Windows Driver Model(WDM)を搭載したWindows 2000以降のUSB 1.1デバイス用のデバイスドライバを開発しました。USBデバイスドライバのTx性能を改善するにはどうすればよいですか?
私の問題は、64byteのバルク転送を使用した場合のTxパフォーマンスがかなり悪いことです。使用されるUSBホストコントローラに応じて、最大パケットスループットは1000パケット(UHCI)または2000パケット(OHCI)/秒です。私はLinuxカーネル2.6上で同様のドライバを開発しました。
Linuxドライバは、最大10の非同期バルク転送を使用し、Windowsドライバは1つの同期バルク転送を使用します。だからこれを比較するとパフォーマンスが悪いことが分かりますが、私はすでに非同期バルク転送でも成功していません(パフォーマンスは向上しません)。
誰でもWindowsのパフォーマンスを向上させるヒントをいくつか持っていますか?
理論的にはUSB 1.1では12MBit/sに制限されていませんか? Linuxでは同じデバイスで最大5倍のパケット数を達成します。パケットサイズは64バイト(最大)ではなく、Linuxでも同じです。 例を見ていきます。ありがとう。 – Seika