[SATA-IP アプリケーション ノート 1] SSD パフォーマンス レポート Rev 1.2 2009 年 3 月 23 日 本 ドキュメントは SATA-IP を 最 新 の 高 速 SSD ドライブと 接 続 し 転 送 パフォーマンスを 実 測 した 結 果 レポートです 1. 概 要 近 年 のストレージ デバイスの 大 容 量 化 と 低 価 格 化 に 伴 い FPGA を 使 った 組 み 込 みシステムに SATA デバイスを 応 用 するアプリケーションが 一 般 的 になりつつあります このようなアプリケーションにおいては SATA-IP を 活 用 す ることで 図 1-1 のような 高 速 大 容 量 の RAID システムや 低 価 格 かつ 高 機 能 な 動 画 システムを 短 期 間 で 開 発 し 製 品 をいちはやく 市 場 に 投 入 することが 可 能 となります 複 数 のSATAチャネルを 実 装 したVirtex5 1200MB/s Link 層 Link 層 GTP PHY 層 GTP PHY 層 300MB/s 300MB/s ビデオカメラ 動 画 収 録 動 画 再 生 ディスプレイ 外 部 I/F MUX/ DeMUX Link 層 GTP PHY 層 300MB/s SATA I/F Link 層 GTP PHY 層 300MB/s SATA-IPによるRAIDシステム Virtex5 + SATA-IP 動 画 格 納 SATAデバイス SATA-IPによる 動 画 システム [ 図 1-1] SATA-IP の 応 用 システム 例 従 来 SATA デバイス 組 み 込 みシステムでは 主 に HDD が 用 いられてきました ところが Flash デバイスの 急 激 な 低 価 格 化 と 大 容 量 化 によって HDD にかわって SSD が 使 われるケースが 飛 躍 的 に 増 えています SSD は HDD と 比 較 して 耐 振 性 に 優 れ またバーストデータの 転 送 速 度 面 でも 有 利 です 容 量 に 対 してのコスト 面 でも HDD と 同 等 レベルに 近 づいており SSD のメリットがより 一 層 注 目 されています このような 背 景 から SATA-IP アプリケーションとして 市 場 ニーズが 高 い SSD をターゲットとした SATA-IP の 転 送 パフォーマンスを ML505 ボードと 最 新 SSD を 使 って 実 測 しました 2009/03/23 Page 1
2. 評 価 条 件 2.1 評 価 環 境 今 回 の 評 価 環 境 を 図 2-1 に 示 します ML505 ボード 上 の Virtex5LXT に 評 価 用 の 回 路 データをコンフィグレー ションし SATA 接 続 した SSD ドライブに 対 するリードライトの 転 送 速 度 を 評 価 します その 転 送 所 要 時 間 は FPGA 内 部 タイマで 計 測 されるので その 結 果 をシリアル ターミナルで 表 示 します 評 価 用 に 無 償 公 開 しているビットファイル( 無 償 公 開 版 )でもリード ライト 実 行 後 に 転 送 速 度 を 表 示 できますが 一 度 のリードライト アクセスは 32MByte(65,536 セクタ) 以 下 に 制 限 されます しかし 例 えば 動 画 システムなどでは それ 以 上 の 大 量 データを 連 続 転 送 するケースが 一 般 的 です そこで 今 回 評 価 用 ビットファイルに 加 えて 大 量 デー タを 連 続 転 送 する 回 路 ( 連 続 転 送 版 )を 追 加 して 評 価 を 実 施 しました シリアル ターミナ ルに 結 果 を 表 示 (P3) Virtex5LXTに Configuration 無 償 公 開 版 連 続 転 送 版 (J40) ML505 SATAケーブル SATA-II SSD [ 図 2-1] 転 送 パフォーマンスの 測 定 環 境 2009/03/23 Page 2
2.2 評 価 対 象 SSD 今 回 の 評 価 は 下 表 2-1 に 示 す(2009 年 2 月 の 時 点 で) 最 新 の2 点 の SSD を 使 って 実 施 しました 外 形 X25-E Extreme G-Monster V2 メーカ Intel PhotoFast 型 番 SSDSA2SH032G1 PF25S128GSSDV2 容 量 32GB 128GB 市 場 価 格 ( ) 43,000 39,800 Write 公 表 値 170MB/s 160MB/s Read 公 表 値 250MB/s 230MB/s [ 表 2-1] 評 価 した SSD の 仕 様 ( ) 市 場 価 格 は 2009 年 2 月 上 旬 時 点 での[ 価 格.com]における 最 低 価 格 情 報 また 現 在 SSD 市 場 でも 競 争 が 激 しくコスト パフォーマンスが 良 い MLC タイプの SSD を 対 象 として 下 表 2-2 に 示 した2 種 類 の 低 価 格 SSD を 追 加 で 評 価 しました これら 32GByte の 低 価 格 SSD では 調 査 したところ 48BitLBA モードの READ/WRITE DMA EXT コマンド(25H/35H)がサポートされていないため 従 来 の 28bitLBA モードの READ/WRITE DMA コマンド(C8H/CAH)でリードライト アクセスを 行 う 必 要 があります Transcend MLC Buffalo MLC 外 形 メーカ Transcend Buffalo 型 番 TS32GSSD25S-M SHD-NSUM30G 容 量 ( 1) 32GB 30GB 市 場 価 格 ( 2) 7,980 7,800 Write 公 表 値 60MB/s Read 公 表 値 123MB/s [ 表 2-2] 追 加 で 評 価 した 低 価 格 SSD の 仕 様 ( 1) 容 量 の 公 表 値 は Transcend/Buffalo で 異 なるが 実 容 量 ( 最 大 LBA)は 両 社 とも 同 じで 62,586,880 であった ( 2) 市 場 価 格 は 2009 年 3 月 下 旬 時 点 での[ 価 格.com]における 最 低 価 格 情 報 追 加 評 価 は 表 2-2 に 示 す2 台 の SSD を 対 象 とし 28bitLBA サポートを 追 加 した 連 続 転 送 版 で 実 施 しました そ の 結 果 を 7 章 の[ 低 価 格 SSD の 追 加 評 価 ]で 報 告 します 2009/03/23 Page 3
3. 評 価 回 路 の 実 装 3.1 SATA のコマンド フォーマット SATA アプリケーションにおいて 大 容 量 データのリード ライトは ATA-7 規 格 で 定 義 された READ DMA EXT / WRITE DMA EXT コマンドが 使 われます READ DMA EXT コマンドのフォーマットを 下 図 3-1 に 示 しますが WRITE DMA EXT コマンドのフォーマットもほぼ 同 様 です このコマンドにおいて 実 行 処 理 するデータ 数 は Sector Count レジスタで 設 定 しますが このレジスタは 全 部 で 16bit 幅 でありその 値 をオール ゼロ(0000h)とした 場 合 に 最 大 の 65,536 セクタ= 32MByte (1 セクタ=512 バイト)が 指 定 さ れます 従 って 32MByte 以 上 のデータを 連 続 転 送 する 場 合 32MByte ごとに 本 コマンドを 繰 り 返 して 連 続 発 行 す る 必 要 があります そしてコマンド 発 行 するたびに LBA(アクセス 先 番 地 )も 更 新 する 必 要 があります セクタカウントは16bit で 設 定 され0000hの 場 合 最 大 の65,536セクタ (=32Mバイト) 転 送 が 設 定 される ATA-7 規 格 によるREAD DMA EXTコマンドのフォーマット (WRITE DMA EXTコマンドも 同 様 ) [ 図 3-1] SATA コマンドのフォーマット 32Mバイト 以 上 の 転 送 は READ/WRITE EXT DMAコマ ンドを32Mバイトごとに 繰 り 返 して 発 行 する 必 要 がある 一 方 28bitLBA のみ 対 応 するドライブの 場 合 従 来 の READ DMA または WRITE DMA コマンドを 使 う 必 要 が あります この 場 合 1コマンドにおいて 最 大 256 セクタ = 128KByte までの 連 続 データ 転 送 が 可 能 となります 2009/03/23 Page 4
3.2 無 償 公 開 版 無 償 公 開 版 の 回 路 においては 一 度 のリードライト アクセス 指 示 に 対 して 図 3-1 の READ/WRITE DMA EXT コ マンドを1コマンドのみ 発 行 します 下 図 3-2 にこの 回 路 の 実 行 フローチャートを 示 します コマンドを 実 行 する 前 に アクセス 先 の LBA や SectorCount 等 FIS パラメータを MicroBlaze のファームウエアによって 設 定 します また MicroBlaze タイマを 起 動 した 直 後 に DMA を 起 動 し DMA 転 送 の 完 了 直 後 にタイマが 停 止 するため タイマによっ て 計 測 された 転 送 パフォーマンスには MicroBlaze によるコマンド 発 行 のためのオーバーヘッドが 含 まれません つまりこの 回 路 による 計 測 結 果 は SSD ドライブによるフロー 制 御 を 含 めた SATA-IP ハードウエア ロジックによ る 転 送 パフォーマンス となります (ただし DMA 起 動 処 理 や DMA 完 了 待 ちのポーリングは MicroBlaze によっ て 行 われるため 正 確 には 若 干 のファームウエア 処 理 オーバーヘッドが 含 まれます ) 例 えばライトなどで SSD のデータバッファが 溜 まってきた 場 合 オーバーフローを 防 ぐため SSD から SATA-IP に 対 して HOLDp プリミティブによる 転 送 の 一 時 停 止 を 要 求 してきますので 計 測 結 果 はそのようなフロー 制 御 が 含 ま れたパフォーマンスとなります 今 回 はセクタ 数 を 最 大 の 65,536 セクタ(32MByte)に 固 定 して 評 価 を 行 っています 開 始 セクタ 数 入 力 DMA 用 のFIS 構 造 体 パラメータを 設 定 MicroBlazeタイマを 開 始 DMAを 起 動 NO DMA 完 了? YES MicroBlazeタイマを 停 止 タ イ マ に よ る 計 測 期 間 タイマ 結 果 を 表 示 終 了 [ 図 3-2] 無 償 公 開 版 の 実 行 フローチャート 2009/03/23 Page 5
3.3 連 続 転 送 版 連 続 転 送 版 の 回 路 においては 図 3-1 の READ/WRITE DMA EXT コマンドを SectorCount=0000h の 最 大 転 送 (32MByte)とした 状 態 でユーザが 指 定 したループ 回 数 分 繰 り 返 すことで 大 量 のデータ 処 理 を 連 続 実 行 します 下 図 3-3 に 連 続 転 送 版 の 実 行 フローチャートを 示 します この 回 路 においては 転 送 パフォーマンス 測 定 用 のタイマ 計 測 中 に コマンドの 連 続 発 行 で 必 要 となる MicroBlaze によるパラメータの 更 新 処 理 オーバーヘッドが 含 まれます 従 って 本 回 路 は 大 量 データの 連 続 リード/ライトの 実 処 理 をエミュレートしたものとなり 実 効 転 送 パフォーマンスそのものの 計 測 が 可 能 となります 1ループにつき 32MByte 分 の 処 理 となるため 例 えば 512 ループを 指 定 した 場 合 は 16GByte の 連 続 処 理 が 行 われることになります 開 始 ループ 数 入 力 DMA 用 のFIS 構 造 体 パラメータを 設 定 赤 色 部 はループ 内 のMicroBlaze 処 理 によるオーバー ヘッドとなる MicroBlazeタイマを 開 始 LBAをセット DMAを 起 動 NO DMA 完 了? YES 転 送 先 ポインタをリセット LBAを 更 新 タ イ マ に よ る 計 測 期 間 ループ 完 了? NO YES MicroBlazeタイマを 停 止 タイマ 結 果 を 表 示 終 了 [ 図 3-3] 連 続 転 送 版 の 実 行 フローチャート 2009/03/23 Page 6
4. 無 償 評 価 版 の 結 果 無 償 評 価 版 による X25E Extreme と G-Monster V2 の 評 価 結 果 をそれぞれ 下 図 4-1 と 図 4-2 に 示 します X25E Extreme にてリード 時 の 286MB/s は SATA-II 規 格 上 最 大 の 300MB/s に 近 い 結 果 となっていることから リード 転 送 中 のフロー 制 御 はほとんど 発 生 しなかったものと 考 えられますがライトでは 220MB/s なので SSD 側 から 若 干 の フロー 制 御 が 発 生 しています G-Monster V2 の 結 果 は X25-E Extreme に 比 べると 若 干 低 くなっています(リー ド 時 223MB/s ライト 時 155MB/s)が 製 品 メーカの 公 表 値 (リード 時 230MB/s ライト 時 160MB/s)はほぼ 達 成 できて います [ 図 4-1] 無 償 評 価 版 の X25E Extreme 評 価 結 果 [ 図 4-2] 無 償 評 価 版 の G-Monster V2 評 価 結 果 2009/03/23 Page 7
5. 連 続 転 送 版 の 結 果 連 続 転 送 版 ではリードとライトそれぞれにおいて ループ 数 を 1,2,4,8,16,32,64,128,256,512 の 10 通 りとして 評 価 を 行 いました X25E Extreme と G-Monster V2 の 評 価 結 果 をそれぞれ 下 表 5-1 と 表 5-2 に 示 します この 結 果 から 両 社 とも 転 送 データ 量 が 増 えるとパフォーマンスはほんの 僅 か 低 下 する 傾 向 が 見 られますが ほぼ 安 定 した 結 果 が 得 られています 即 ち これらの SSD では 例 えば 16GB 程 度 の 大 量 データの 連 続 リードや 連 続 ラ イトにおいても 少 量 の 場 合 と 同 等 の 高 い 転 送 速 度 を 維 持 し 続 けることができるものと 考 えられます Loop 数 転 送 バイト 数 Write 結 果 Read 結 果 1 32MB 217.04 [MB/s] 286.60 [MB/s] 2 64MB 218.11 [MB/s] 286.35 [MB/s] 4 128MB 216.52 [MB/s] 286.36 [MB/s] 8 256MB 214.40 [MB/s] 286.23 [MB/s] 16 512MB 212.45 [MB/s] 286.40 [MB/s] 32 1GB 215.18 [MB/s] 285.99 [MB/s] 64 2GB 210.15 [MB/s] 285.89 [MB/s] 128 4GB 210.22 [MB/s] 286.32 [MB/s] 256 8GB 209.40 [MB/s] 283.93 [MB/s] 512 16GB 209.73 [MB/s] 285.25 [MB/s] 平 均 213.32 [MB/s] 285.93 [MB/s] [ 表 5-1] 連 続 転 送 版 の X25E Extreme 評 価 結 果 Loop 数 転 送 バイト 数 Write 結 果 Read 結 果 1 32MB 157.39 [MB/s] 223.25 [MB/s] 2 64MB 157.18 [MB/s] 223.24 [MB/s] 4 128MB 157.16 [MB/s] 223.23 [MB/s] 8 256MB 157.76 [MB/s] 223.22 [MB/s] 16 512MB 155.15 [MB/s] 223.22 [MB/s] 32 1GB 155.99 [MB/s] 223.21 [MB/s] 64 2GB 155.45 [MB/s] 223.20 [MB/s] 128 4GB 153.32 [MB/s] 217.64 [MB/s] 256 8GB 154.07 [MB/s] 220.93 [MB/s] 512 16GB 154.31 [MB/s] 222.02 [MB/s] 平 均 155.78 [MB/s] 222.32 [MB/s] [ 表 5-2] 連 続 転 送 版 の G-Monster V2 評 価 結 果 2009/03/23 Page 8
6. コマンド オーバーヘッドの 調 査 6.1 ハード 置 換 え 版 の 評 価 更 に 大 量 データの 連 続 転 送 においてコマンド 発 行 のたびに 必 要 となる FIS パラメータ 更 新 などのオーバーヘッドを ソフトウエアのかわりにハードウエアで 実 装 した 場 合 のパフォーマンスについても 評 価 回 路 (ハード 置 換 え 版 )を 試 作 し て 調 査 しました 具 体 的 には 図 3-3 のフローチャートにて ループ 中 に MicroBlaze によって 行 われる 図 中 赤 色 のファームウエア 処 理 を ステートマシンによるハードウエアに 置 き 換 えて 自 動 実 行 するテストロジックを 実 装 しました この 評 価 は 転 送 バイト 数 を 16GB( 連 続 転 送 版 の 512 回 のループと 同 じ)に 固 定 して G-Monster V2 を 対 象 として 実 施 しています そ の 結 果 を 下 表 6-1 に 示 します ( 比 較 検 討 のためファームウエア 処 理 による 連 続 転 送 版 の 16GB 結 果 を 再 掲 してい ます ) bit ファイル Loop 処 理 転 送 バイト 数 Write 結 果 Read 結 果 連 続 転 送 版 ファームウエア 16GB 154.31 [MB/s] 222.02 [MB/s] ハード 置 換 え 版 ステートマシン 16GB 159.93 [MB/s] 223.22 [MB/s] [ 表 6-1] G-Monster V2 による 16GB の 大 量 データ 転 送 結 果 この 結 果 から FIS パラメータ 設 定 等 によるコマンド オーバーヘッドは MicroBlaze によるファームウエアとステー トマシンによるハードウエアであまり 大 きな 差 異 はないことがわかります これはすなわち READ/WRITE DMA EXT コマンドでは1コマンドで 32MByte ものデータを 一 度 に 転 送 できるため データ 転 送 時 間 に 対 してのコマンド オ ーバーヘッド 処 理 時 間 の 割 合 が 非 常 に 小 さいためだと 考 えられます 6.2 コマンド 処 理 時 間 の 実 測 最 後 に 連 続 転 送 版 とハード 置 換 え 版 それぞれで READ/WRITE DMA EXT コマンドの 処 理 オーバーヘッド 実 時 間 を 実 測 したのでその 結 果 を 下 表 6-2 に 示 します bit ファイル WRITE READ 連 続 転 送 版 1600us 3.0us ハード 置 換 え 版 450us 1.0us [ 表 6-2] オーバーヘッド 処 理 時 間 の 計 測 結 果 データ ライトにおいて 転 送 速 度 を 150MB/s とすると 32MByte のデータ 転 送 時 間 は 213ms となります これに 対 してコマンド 処 理 オーバーヘッドは データ 転 送 時 間 と 比 較 してハード 置 換 え 版 で 0.21% 連 続 転 送 版 でも 0.75% にしかなりません いずれにしてもコマンド 全 実 行 時 間 でほとんど(99% 以 上 )を 占 めるデータ 転 送 時 間 に 対 して 無 視 できるレベルです データ リードの 場 合 その 傾 向 はもっと 顕 著 です リード 転 送 速 度 を 220MB/s とすると 32MByte のデータ 転 送 時 間 は 145ms となりますので ハード 置 換 え 版 の 1.0us はデータ 転 送 時 間 の 0.0007% 連 続 転 送 版 の 3.0us でも 0.002%にしかなりません 結 論 としては 1コマンドで 32MByte データを 処 理 できる READ/WRITE DMA EXT コマンドを 使 う 場 合 コマンド オーバーヘッドは MicroBlaze によるファームウエア 処 理 であっても 十 分 無 視 できるレベルであって ステートマシン 処 理 に 変 更 した 場 合 でもパフォーマンスの 改 善 にはほとんど 効 果 がないと 考 えられます 2009/03/23 Page 9
SATA-IP では 顧 客 提 供 のホスト 向 けリファレンス デザインにて MicroBlaze ベースのホスト コントローラのテンプ レート( 雛 形 )がすでに 用 意 されているため リファレンス デザインをもとにして 製 品 システムを 構 築 するのが 開 発 期 間 上 最 もメリットがあります また MicroBlaze のファームウエアの 場 合 ハードウエア 実 装 に 比 べてアップデート に 時 間 のかかる ISE での 回 路 再 コンパイルが 不 要 となるので 柔 軟 性 や 不 具 合 発 生 時 の 即 応 性 でも 有 利 です 従 って 顧 客 の 製 品 システムで MicroBlaze が 実 装 可 能 な 場 合 は パフォーマンス ペナルティは 十 分 小 さいためコ マンド 処 理 を MicroBlaze ファームウエアで 行 うのが 最 適 であると 考 えられます 7. 低 価 格 SSD の 追 加 評 価 更 に SSD 市 場 での 激 しいメーカ 間 競 争 でコスト パフォーマンスが 高 い MLC タイプの 低 価 格 SSD を 2009 年 3 月 に 追 加 して 評 価 しました 今 回 評 価 した 32GByte タイプでは 48bitLBA モードがサポートされていないため 従 来 の 28bitLBA モードでのみアクセスが 可 能 です そこで 連 続 転 送 版 を 改 良 し 28bitLBA コマンドに 対 応 することで 評 価 を 実 施 しました この 追 加 評 価 においては 1 コマンド 当 りの 最 大 セクタ 数 が 256 セクタに 制 限 されるため コマンド 処 理 オーバーヘッドは 48bitLBA 版 に 比 べて 256 倍 に 増 えることになります 評 価 は 転 送 バイト 数 =32GByte となる 全 面 ライト/ 全 面 リード アクセスで 実 施 しました その 結 果 を 下 表 7-1 に 示 します SSD 種 類 転 送 バイト 数 処 理 セクタ 数 Write 結 果 Read 結 果 Transcend MLC 32GB 62,586,880 91 [MB/s] 147 [MB/s] Buffalo MLC 32GB 62,586,880 89 [MB/s] 147 [MB/s] [ 表 7-1] 追 加 評 価 した 低 価 格 SSD の 評 価 結 果 この 結 果 から どちらもほぼ 同 程 度 のパフォーマンス(ライト 時 90MB/s 程 度 リード 時 147MB/s)が 全 面 リードラ イトのような 大 容 量 データ 転 送 にて 確 認 できました 最 初 に 調 査 した 表 2-1 のような 上 位 機 種 と 比 較 するとパフォー マンスは 確 かに 低 下 します しかしコスト 面 を 重 視 したシステムであって 表 7-1 のパフォーマンスで 満 足 できるので あれば 安 価 な MLC タイプの SSD においても 十 分 な 実 力 を 発 揮 できます 8. 結 論 最 新 の SSD を SATA-IP と 組 み 合 わせてストレージ 応 用 製 品 を 実 装 することで 大 量 データの 高 速 リードライトを 実 現 するシステムが 構 築 できます さらに 処 理 オーバーヘッドの 影 響 が 事 実 上 無 視 できる READ/WRITE DMA EXT コマンドを 使 うことで MicroBlaze ファームウエアでのシステム 開 発 が 可 能 となるため SATA-IP リファレンス デザインのテンプレートを 活 用 することで 短 期 間 での 製 品 開 発 に 貢 献 します コスト 重 視 のシステムにおいては 安 価 な MLC タイプの SSD を 活 用 することで 十 分 なパフォーマンスを 維 持 した ままでの 低 コスト 製 品 が SATA-IP によって 実 現 可 能 となります 9. 改 版 履 歴 リビジョン 日 付 内 容 1.0 2009/2/3 初 版 作 成 1.1 2009/2/4 コマンド オーバーヘッドの 実 測 結 果 を 追 加 1.2 2009/3/23 32GB/MLC の 低 価 格 SSD 評 価 結 果 を 追 加 2009 Design Gateway Co,Ltd. 2009/03/23 Page 10