Last Update 2022/10/04

ストレージ用高速シリアル・インターフェースの規格概要から応用設計まで
シリアルATAの基礎とFPGAへの実装

菅原 博英 著
B5判 272ページ
定価2,640円(税込)
JAN9784789849906
2010年2月1日発行
[品切れ重版未定2022.10.4] シリアルATAの基礎とFPGAへの実装
大変恐縮ですが,こちらの商品は品切れ重版未定となりました.

 HDDに代表されるストレージは,大容量化とともに高速化も要求されている.しかしパラレル伝送であるIDE(ATA/ATAPI)ではクロック周波数として最高133MHz程度が限界である.このパラレル伝送の限界を超えるために,昨今では高速シリアル伝送が注目されている.
 シリアルATAとは,これまでパラレル伝送だったIDEをシリアル化したインターフェースである.1.5Gbpsまたは3Gbpsといったクロック周波数でシリアル伝送を行う.本書の前半では,このシリアルATAの仕様について解説する.
 また本書の後半では,FPGA(Field Programmable Gate Array)を使って実際にシリアルATAコントローラを設計する事例について解説する.本書ではXilinx社製デバイスVirtex-5を搭載したFPGA評価ボードを使い,実際にシリアルATAのHDDを接続してセクタを読み書きする事例について詳しく解説する.設計したシリアルATAコントローラは,設計したHDLソースはもちろん,シミュレーション・ファイルやセクタ・アクセス・テスト・プログラムなど一式を公開している.
目次

はじめに

プロローグ シリアル化へのトレンド

第1部 シリアルATA規格解説編

 難しそうだけどポイントを絞れば大丈夫
第1章 シリアルATAの各層の定義
 1.1 シリアルATAの範囲
 1.2 シリアルATAの各層の定義

 まずはこれだけ知っておきたい 〜仕様書を理解しよう〜
第2章 シリアルATAの各層の仕様
 2.1 導入部
 2.2 物理(Physical)層
 2.3 リンク(Link)層
 2.4 トランスポート(Transport)層
 2.5 コマンド(Command)層
 2.6 エラー・ハンドリング

 外付けストレージをより高速に手軽に接続したい
Appendix 1 eSATA(External SATA)の概要


第2部 SATA_COREの設計

 基本コアを設計する 〜何をいかに設計するか〜
第3章 シリアルATAコア全体の構成
 3.1 設計に当たって
 3.2 SATA_COREの構成
 3.3 内部ブロックの機能とブロック間インターフェース
 3.4 シミュレーションの階層と構成

 本書を読むにあたって理解しておきたい
Appendix 2 ハードウェア記述について
 A2.1 Verilog HDLとVHDL
 A2.2 Verilog HDL記述あれこれ
 A2.3 非同期クロックの場合

 FPGAの選択とシミュレーションの準備
第4章 PHY層(SerDes/アナログ部)の設計
 4.1 PHY層のアナログ部の機能
 4.2 RTLデザイン(ビヘイビア)
 4.3 FPGAのアナログ・コア(トランシーバ)
 4.4 シミュレーションでの確認
 4.5 実機での確認

 シリアルATAコアの設計を開始する!
第5章 PHY層(ディジタル部)とLINK下位層の設計
 5.1 PHY層(ディジタル部)の仕様
 5.2 リンク(LINK)下位層の仕様
 5.3 PHY層ディジタル部のRTLデザイン
 5.4 リンク下位層〔受信デコーダ部(LINK_DEC.v)〕
 5.5 リンク下位層〔送信エンコーダ部(LINK_ENC.v)〕
 5.6 ブロック・シミュレーション
 5.7 実機での確認(\test\phy_dig\phy_dig_fpga)

 シリアルATAの核心部分を設計する
第6章 LINK上位層の設計
 6.1 リンク(LINK)上位層の仕様
 6.2 データ受信部(LINK_RCV.v)のRTLデザイン
 6.3 データ送信部(LINK_TRS.v)のRTLデザイン
 6.4 リンク層ステートマシン(LINK_CNTL.v)

 プロトコルの制御部を設計する
第7章 TRANSPORT層/ COMMAND層の設計
 7.1 トランスポート(TRANSPORT)層/コマンド(COMMAND)層の転送手順(プロトコル)
 7.2 受信FIFO部(TRNS_RFIFO.v)のRTLデザイン
 7.3 送信FIFO部(TRNS_XFIFO.v)のRTLデザイン
 7.4 プロトコル制御部(TRNS_CNTL.v)のRTLデザイン

 上位層との接続部を設計する
第8章 内部コア・インターフェースの設計
 8.1 デザインの仕様
 8.2 内部バス接続ブロック(TRNS_TFR.v)のRTLデザイン
 8.3 DMAバス接続ブロック(TRNS_DMA.v)

 デザインの動きを確認する
第9章 コア全体シミュレーション
 9.1 環境の全体(ファイル)構成
 9.2 リンク層の確認
 9.3 ソフト・リセットとNo-dataプロトコルの確認
 9.4 PIOデータ転送の確認
 9.5 DMAデータ転送の確認
 9.6 全プロトコルのランダム走行


第3部 実機FPGA評価ボード実装編

 ループバック・バージョンを設計する
第10章 FPGA評価ボードでの基本動作確認
 10.1 実機評価ボード全体の構成
 10.2 ループバック・バージョンの構成と仕様
 10.3 ループバック・バージョンのRTLデザイン
 10.4 FPGA全体での確認と実装

 ボード分割バージョンで実装設計の準備をする
第11章 FPGAへの応用設計 〜PCIバス接続編〜
 11.1 ボード分割バージョンの全体の構成と仕様
 11.2 ボード接続部のプロトコル考察
 11.3 ボード分割部の確認と実装
 11.4 PCIコア部の改造

 PCIバスのシミュレーションと実機でのテスト
第12章 FPGAでの実機デバッグ〜PCIテスト編〜
 12.1 ボード全体での確認と実装
 12.2 実機デバッグ用テスト・プログラムの作成(\LSI86\PCItest)

 シリアルATAコアのPCI評価ボードへ実装設計を完成する
第13章 シリアルATAコントローラへの応用設計
 13.1 ボード一体化バージョンの全体の構成と仕様
 13.2 一体化バージョンへの変更点と実装
 13.3 実機による動作確認



このほかの関連書籍

 IDE,E-IDE,ATA(パラレル),ATAPIについて詳しく知りたい…

   「改訂版 ATA(IDE)/ATAPIの徹底研究」

 ハード・ディスクの構造や仕組みについて知りたい…

   「改訂 ハード・ディスク装置の構造と応用」