<< 前のエントリ |メイン | 次のエントリ >>
2004 年06 月29 日

シリアルATAのNCQについて

Serial ATAのNCQについて以下のソースを眺めた^^;
まとめた^^;;

http://pc.watch.impress.co.jp/docs/2003/1208/it012.htm
ソース:SCSIユーザも注目!?のシリアルATA Native Command Queuing

で、実際どうなのよって思ってるわけだが、結構いいらしいという事が
知られてる「らしい」。
どうも予測の域をでてないのだが、これからの主流になるんだろうか。
まぁ新しいチップセットも出た(どうも不具合あったらしいけど)ので
これから期待できる技術らしいことはわかる。
 よくよく考えてみればPCの発展の中でディスクは大きな役割果たしてる
のはよくわかるよ。昔FD 256Kbyte書き込めるだけでもエラク感動した
もんだけどよぉ。昔はザナドゥのデータ入れる為にFD買いにいって
2DD買ってきてしまって放り投げた記憶があるw
 とまぁそんな昔から語らなくてもいいのではあるけど、ついぞ大学時分
(8、9年前)に研究室皆の卒論用HDDが2.0Gbyteで、こんなん1人で
埋めれネェよとかおもってたのが、今普通に120Gbyteとかだしなぁ。
モノスゲェ進歩。
うまくまとめれねぇけど、ガンガレwおれもガンガル。
(まとまってねぇーー;)

ーーーーーーソースの要約
●HDDからのデータの読書きは「ヘッドの移動時間」
「ディスクの回転待ち時間」といった機械的動作が時間がかかる。

●「ヘッドの移動時間」は希望のトラックにヘッドを位置付けるまで。
 平均シーク時間
 =(最内周へのヘッド移動時間+最外周へのヘッド移動時間)/2

●「回転待ち時間」はトラック上の希望のセクタがヘッド位置まで
 回転してくるまでの時間
 回転待ち時間の最大値はディスクの回転速度で決まる。
 5400rpm→11.1ms
 7200rpm→8.3ms
 10000rpm→6ms
 15000rpm→4ms

●Command Queuing
 命令→機械的動作→完了→命令・・・ってやってたら遅くなるので
 命令をキュー(待ち行列)に放り込んで
 効率の良い順番に並べ替える←アウトオブオーダー
 (←→順番通り「インオーダー」)

●Rotational Positioning Ordering(RPO)
 効率の良い順番=HDDの機械的動作を短縮できるような順番
 早期アルゴリズム トラック間の位置関係のみ着目
 現在のアルゴリズム トラック・セクタの位置関係・直近のヘッド位置

●Native Command Queuing
・Race-free Status Return Mechanism
 HDDのコマンド実行完了などステータスをコントローラにハンドシェーク
 無しに連続で返せる
・Interrupt Aggregation
 1コマンドの流れはCommand→wait→Transfer→Interruptだが1つに
 まとめて実行すれば割り込みがすくなくてすむ。
・First Party DMA(FPDMA)
 データ転送の為のDMA操作をセットアップできる
 Read FPDMA Queued、Write FPDMA Queued コマンドを使う

●SCSI Command Queuing(SCSINCQ)との違い
 SATA NCQはSCSINCQの簡素版
 キューの深さ
    SCSINCQ 255   SATANCQ 32
 キューの個数
    SCSINCQ 3個までサポート   SATANCQ 1個
 ターゲットデータの位置情報
    SCSINCQ LBAとRPS   SATANCQ LBAのみ
 

投稿者:ノブat 02 :46| 日記 | コメント(0 ) | トラックバック(0 )

◆この記事へのトラックバックURL:

http://control.onair-blog.jp/util/tb.php?us_no=1354&bl_id=1354&et_id=18461

◆この記事へのコメント:

※必須