【コラム】
次はTransaction Packet(TR)である。こちらはHostとDeviceの間でやりとりされるPacketだ。TRは8種類のSubTypeを持ち、まずこれを識別するために4bitのSubTypeフィールドが用意される(Photo01)では、具体的にもう少し見てみたい。
|
Photo01: SubTypeはこの8種類。8種類なら3bitで済むわけだが、将来の拡張を考えて4bitにしたものと思われる。0000bと1001b~1111bはReservedになっており、Ackが0001b、NRDYが0010b、...と順に並び、Ping Responseが1000bになっている。 |
ACKには2つの意味があり
これはHostなりDeviceなりが、実際にはData Packetを受け取っていない、あるいは受け取ったものの破損していることを検出し、再送要求を出す場合にSetする。この際に再送されるのは、後述するSequence Numberフィールドで指定されたものとなる。
送受信方向を示す。0ならばHost→Deviceの転送だし、1ならばDevice→Hostの転送となる。
各Deviceは、理論上15のIN EndpointとOUT Endpointを利用できる。例えばUSBで2ポートのSATAポートを持つブリッジを作った場合、IN #1とOUT #1を1つ目のSATAポートに、IN #2とOUT #2を2つ目のSATAポートにそれぞれ割り当てることが出来る。同時に複数のINなりOUTなりのトランザクションを実行できるわけではないから、これで高速化とかは不可能だが、開発の容易さを考えるとこれは便利だ。あるいはMultiFunction Deviceの場合、各々のFunctionにそれぞれ別のEndpoint Numberを割り振るなんていうこともあるだろう。こうした場合に、どのEndpointかをこのフィールドで指定する。
これはHost→Deviceの転送の場合にのみ関係する。Host側が自身の内部エラーなどでパケットを受け取れない(or解釈できない)場合にこれをセットする。ちなみにこれがセットされた場合、同時にRtyフィールドもセットする必要がある。
このフィールドを使い、Data Packetの受信側は最大いくつのData Packetを受信できるかを指示する。このサイズは、Endpointがサポートする最大バースト転送長以下でなければならない。
文字通りSequence Number。次に到着するData PacketのSequence Numberをここから算出することになる。
これはEndpointがバルク転送を行う場合に必要とされるStream IDを指定する。ちなみに値は1~65535までで、0はStream PIPE用に予約されている。バルク転送を行わない場合は0となる。
これもまたHostのみで使われる。これがSetされている場合、HostはEndpoint NumberとDirectionで示される、別のPacketを処理中であることが示される。ただし、存在しないEndpoint Numberが指定されている場合は、Hostが例えばU1とかU2のLow Power stateに入っており、このためにPacketの処理が留保されていることを示す。
となっている(ちなみにRsvdはReservedの略)。
(続く)
| 【レポート】マカフィーの世界の専門家の意識調査「サイバー防衛報告書」とセキュリティソリューション [21:15 5/25] |
| アップル、Aperture 3.2.4を公開 - バグ修正、安定性向上など [20:51 5/25] |
| 【レポート】GTC 2012 - VGXでエンタープライズ環境でのGPU需要開拓を狙うNVIDIA [20:07 5/25] |
| デル、期間限定キャンペーンに特価アイテム追加、アップグレード無料も継続 [19:41 5/25] |
| 上海問屋、iPhoneとほぼ同じ薄さのバッテリ内蔵ヘッドホンアンプ [19:05 5/25] |
|
【連載】これだけは要チェック! TOEIC(R)単語帳 第108回 今回のお題は…「issue」 [20:00 5/27] キャリア |
|
TVアニメ『ペルソナ4』、新規カットを加えた再編集版を劇場でイベント上映 [20:00 5/27] ホビー |
|
「ギャラクシーエンジェル」の大月悠祐子がWEBで新連載 [19:52 5/27] ホビー |
|
[9nine]制服姿見納め? セーラー服で登場も川島海荷「4人はコスプレ」 [19:15 5/27] エンタメ |
|
「NO.6」4巻は書き下ろしドラマCD付、木乃のサイン会も [18:49 5/27] ホビー |