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 )