reset
select without atn
transfer (command: test unit ready)
transfer (status)
transfer (message)
negate
select without atn
transfer (command: inquiry)
transfer (data)
transfer (status)
transfer (message)
negate
select without atn
transfer (command: read capacity)
transfer (data)
transfer (status)
transfer (message)
negate
select without atn ←ここまで動いた
transfer (command: mode sense)
> フェーズの遷移先もどう決まるのかわからない。
イニシエータ(PC)とターゲット(HDD)との接続が確立した後は、
ターゲットがフェーズも切断も決めるらしい。
selectコマンドは、接続が確立したらCPUに割り込み。
その後、ターゲットからコマンド転送要求があって、割り込み。
transfer infoコマンドは、送信が終わって、ターゲットがフェーズを
次に移して最初にターゲットからREQが来たときにCPUに割り込み。
ただし、message-in フェーズでのtransfer infoコマンドは、
送信が終わったらCPUに割り込み。
イニシエータとターゲット間の通信は、ターゲットがREQを、イニシエータがACKを制御して、REQ上げる->ACK上げる->REQ下げる->ACK下げるで1バイト転送する。よって、データ転送は、転送方向がどちらであれ、ターゲットが開始する。
フェーズは、その他4本の制御線(I/O, C/D, MSG, SEL)で決定され、SEL(接続要求)を除いた3本はターゲットが制御する。フェーズの遷移は、これら3本の値をターゲットが決めた上でREQを上げることによって、イニシエータに通知される(のだろう)。
なんとなくすっきり。
2008年04月14日
この記事へのコメント
コメントを書く
この記事へのトラックバック

