【コラム】
これらの値はいずれもHost側で管理され、Deviceにそれが通知される形になる。そもそもStream IDというものが言ってみれば論理管理番号の様なもので、その値そのものは(0とかNoStreamといった特殊なものを除くと)Deviceには意味が無い値なので、Deviceはこの値を変更したり、その値から何かを推察したり(例えばStream IDが一桁だったら、比較的通信のプライオリティが高いだろうと見做して、転送を一杯掛けようとするとか)してはいけないと定められている。
ところで前回はBulk Stream全体についてSPSMの簡単な模式図を示したが、これをもう少しBreakdownしてみたい。Photo01はBulk IN Streamの場合の模式図(ISPSM:In Stream Protocol State Machine)である。Endpointが構成されたら、まずPipeはDisabled Stateに入る。この状態がPrime Pipe Stateに遷移するのは、Stream IDにPrimeが指定されてACKを受け取った場合である。ここから更にIdle Stateに遷移するのは、やはりStream IDにPrimeが指定されてNRDYを受け取った場合である。
ここで注意すべきは、HostとDeviceの間にHubが入っており、かつこのHubがACK TPをDefered bitを立てて送るケースが考えられることだ(連載の第311回、"USB 3.0の研究(38)"で触れた(2)のケース)。要するにHubが待機状態で処理が間に合ってないケースだが、この結果としてHostとDeviceは共にNRDY TPを送りあうことになる。するとどうなるかというと、Stream IDはPrimeのままだから、HostはPrime Pipe StateからIdle Stateに遷移するし、Deviceは一旦(Defered bitの立った)ACK TPを受け取る事でPrime Pipe Stateに遷移し、続いてNRDY TPを受け取る事でやはりIdle Stateに遷移する。こうしたHubの影響によるState遷移も、ISPSMでは考慮されている。
Idle Stateに遷移すると、ここではStreamの選択(StartStreamないしMoveDataへの遷移)か、Endpoint Bufferの追加/変更通知をHostから受け取る(Prime Pipe Stateへの復帰)のを待つことになる。
ここからMove Dataへの遷移は、Stream IDがStream NかつNumP > 0が指定されたACK TPを受け取る事で行われるし、Start Streamhへの遷移はStream NかつNumP > 0が指定されたERDY TPを受け取る事で行われる。StartStream Stateでは、Deviceが要求したStream IDの転送をHostがAcceptするかRejectするかをまずは待つことになる。HostがこれをRejectする場合、Stream IDにNoStream、NumPに0、そしてPacketPendingにも0をセットしたACK TPを返す。ちなみにこのRejectの理由としては、指定されたStream IDに対するEndpoint Bufferが確保できない場合が挙げられている(逆に言えば、その他のケースでは原則としてAcceptしなければいけない、ということでもある)。これを受けとったら、ISPSMは再びIdle Stateに遷移する。
このISPSMはHostとDeviceの両側で独立に動作するため、例えばDeviceがERDY TPをHostに送って自身はStart Stream Stateに遷移し、その一方HostはStream ID=Prime、Packet Pending=0としたACK TPをDeviceに送って自身はPrime Stateに遷移するといった競合状態が起こりえる。ただこの場合、DeviceがStart Stream StateでHostからのACK TPを受け取ると、DeviceはPrime Pipe ACK Stateに遷移し、ここでHostに対しStream ID=PrimeとしてNRDY TPを送り、自身はIdleに遷移する。一方Hostは送られてきたNRDY TPを受け取ってIdleに戻るという形で競合を解消することになる。
(続く)
| レノボ・ジャパン、ウェブ広告モデルを一般公募 - 新生活キャンペーンの一環で [21:21 2/10] |
| 【レポート】スマートフォンを狙ったワンクリック詐欺やオンラインバンキングを狙うゼットボット - トレンドマイクロマンスリーレポート [20:43 2/10] |
| 【レポート】レノボ、大和研究所の開発陣らによる「ThinkPad X1 Hybrid」の技術解説 [20:41 2/10] |
| デル、「冬モデルファイナルセール」最終週 - 各種アップグレードが無料 [20:13 2/10] |
| Appleが3月初旬にスペシャルイベント開催の噂 - iPad 3の発表か [18:34 2/10] |
|
[西部警察]大門のサングラスは照れ隠し? 制作担当者が語る舞台裏 [09:00 2/11] エンタメ |
|
9ストーリーズ ~バレンタインのエピソード~ [08:05 2/11] キャリア |
|
RX-7改フェラーリ登場!/マジックRX-7XX 【大阪オートメッセ2012】 [08:04 2/11] キャリア |
|
【連載】鉄道トリビア 第137回 山手線と京浜東北線から●●●が消えた!? [08:00 2/11] ライフ |
|
JRグループ、「周遊きっぷ」を見直し - 19の周遊ゾーンが3/31で販売終了に [07:30 2/11] ライフ |