本ウェブサイトでは、JavaScriptおよびスタイルシートを使用しております。
お客さまがご使用のブラウザではスタイルが未適応のため、本来とは異なった表示になっておりますが、
情報は問題なくご利用いただけます。
480MHzのBus動作を実現するためには電気的な仕様の変更が、 USB1.xとの互換性を維持しながら必要になります。 また、12/1.5MHzの 転送と480MHzの転送が混在できるようにするために、プロトコルの変更が必要になります。さらに、USB1.xで目立つようになってきた 問題点も改善されます。
USB1.xにおいてOut transactionにおけるNAK応答はTOKEN、DATA packetの転送が終了した後にしか発行できません。このため、ファンクション側の処理が遅くNAK応答の回数が多いデバイスを接続するとUSB busにOUT → DATA → NAKが多数発行されることになります。OUT → DATA → NAKは実際にUSB Busを占有する期間が長い上、データ転送としては無効ですから、USB Busでの実際の転送レートを低下させることになります。
USB2.0ではこれを解決するためにPINGとNYETと言う新しいパケットを仕様として追加しました。
Bulk OUTデバイスに対して、ホストはまずPINGによってデータを受け付けるための空きBufferがあるかどうかを問い合わせます。ファンクションはデータを受け付けられないならNAK応答し、データを受け付けられるならACKで応答します。ホストはPINGに対してNAK応答を受信している限り、PINGを繰り返し送り、ファンクションの受信Bufferの空き状況を確認し続けます。
ホストがPINGに対してACK応答を受信したら、実際のBulk-out転送を行います。
ファンクションはこれに対してACK,NYET,NAK,(STALL)応答のいずれかで応答します。
ACK応答はさらにBufferの空きがあるので次のBulk-out転送を受け付けられることを意味しています。このため、ホストは連続してBulk-out転送を行います。NYET応答は、Bufferの空きがないため、次のBulk-out転送をすぐには受け付けられないことを意味しています。このため、ホストは次のBulk-out転送を行う代わりにPINGを送り、ファンクションの受信Bufferの空き状況を確認します。
NAK応答は基本的には使用すべきではありませんが、何らかの理由によりBufferの空きがなくなり、データ受信ができない場合には使うことができます。
このPING、NYETによって無意味にUSB Busのバンド幅を消費してしまうOut → data → NAKシーケンスの発生を防ぎ、効率的なUSB Busの利用を可能にします。