• BPnet
  • ビジネス
  • IT
  • テクノロジー
  • 医療
  • 建設・不動産
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版
  • PR

  • PR

  • PR

  • PR

  • PR

WinPC Labs

Serial ATAの理解が深まる、NCQの仕組みを学ぶ

シリアルATA

田中 靖史=日本シーゲイト 2007/05/07 日経WinPC
出典:日経WinPC 2006年6月号
(記事は執筆時の情報に基づいており、現在では異なる場合があります)
目次一覧

 インターフェースの転送速度に比べると、HDDの円盤からデータを読み出すスピードはずっと遅い。現在の7200回転/分の3.5インチHDDでは、円盤の最外周でも理論上の転送速度は90MB/秒程度。Ultra ATA/133の133MB/秒や第2世代Serial ATAの300MB/秒よりもはるかに遅い。

 そこで、HDDの開発には、途切れなくデータを転送する工夫が必要になる。その解決方法の目玉と言えるのが「NCQ(Native Command Queuing)」だ。

 Command QueuingはSCSIの世界で一足先に取り入れられたが、実はUltra ATAでも規格化されていた。しかし、手順が複雑なためか普及に至らず、Serial ATA Revision 2.5で新たにNCQが規定された。

合理的に処理できる順番を HDD自身が探して実行する

 HDD内部のどこに必要なセクターがあるかを知っているのはHDDのファームウエアだけだ。そこでホストは、コマンドを一通り先にHDDに知らせてしまい、HDD自身に最も合理的な順番でコマンドを処理させる。これがNCQの基本原理だ(図1)。

 コマンドを合理的な順番に並べ直す作業をコマンドの「Re-ordering」と呼ぶ。一度に受け取れるコマンドが増えると、Re-orderingの幅が広がり、効率も上がる。この受け取れる数が「Queue Depth(キューデプス)」だ。最大32コマンドのキューができ、性能向上に貢献している(図2)。

 NCQでは、ドライブ内部の無駄な動作を減らす仕組みに加え、インターフェース上でも無駄を省く工夫をしている。

 まず、一般的なコマンドのやり取りを理解しておこう。ホストは細かな付随情報とともにリードやライトのコマンドをHDDに伝える。コマンドを受けたHDDは必要なデータを転送し、最後にコマンドが完了したことをホストに通知する。この「コマンド受領」→「データ転送」→「ステータス通知」がやり取りの単位となっており、順番は崩せない。

 一方、NCQでは同時に複数のコマンドを実行する。1つひとつのコマンドはパラレルATAと同様に、コマンド受領・データ転送・ステータス通知の順序を保っているが、全体では複数のコマンドが入り乱れ、行き交うように見える。

次ページ以降はITpro会員(無料)の方のみお読みいただけます。

次ページ FISの内部構造をのぞくと NCQの仕組みが見え...
  • 1
  • 2
  • 3

あなたにお薦め

連載新着

連載目次を見る

今のおすすめ記事

ITpro SPECIALPR

What’s New!

経営

アプリケーション/DB/ミドルウエア

クラウド

設計/開発

サーバー/ストレージ

クライアント/OA機器

ネットワーク/通信サービス

セキュリティ

もっと見る