Seagate製ハードディスクのロジックアナライザによる分析
2003年2月14日
FR-DK1にSeagate ST360021Aを組み込みロジックアナライザ波形を測定。 | |||||
以下ロジックアナライザの波形は、FR-DK1にSeagate Barracuda ATA IV ST360021A(60GB)を組み込み、Ultra
DMA Burst 転送モードで1GB程度のファイルをPC内蔵HDDよりFR-DK1に書き込んだ際に発生する不具合を示しています。
|
|||||
Seagate製HDDはUltraDMAモードでの信号のドライブがATA仕様と異なる。 | |||||
Ultra DMA Burst 転送モードではFR-DK1がドライブするHSTROBE信号の立ち上がり・立ち下りエッジ(波形1ではA、B、C、Dのタイミング)で1ワード(2バイト)づつデータ転送が行われます。Bのタイミングで転送されているワードデータはAの"0100h"のままで、誤ってAと同じデータが転送されていることがわかります。(正常な場合は(5)あたりで次のデータに変化します)FR-DK1が誤動作する原因は、Ultra
DMA Burst 転送モードの開始処理における(2)のタイミングで、Seagete製HDDが#DDMARDYの信号をドライブするためです。ATA仕様書の正しい手順では、Seagete製HDDが(1)で#DDMARDY信号をドライブした後、FR-DK1が(3)でHSTROBE信号をドライブするまで、(2)の様に#DDMARDY信号を戻す操作を行ってはいけないことになっています。
|
|||||
弊社採用のIEEE1394-ATA変換コントローラではATA仕様と異なる動作は想定していない。 | |||||
FR-DK1に搭載されている1394-ATA 変換コントローラIC(TI StorageLynx TSB42AA9/A)は、ATA仕様書の解釈と異なったSeagete製HDDの動作は想定されていません。これにより、大容量(数百メガバイト以上)のデータ書込実行開始時にブロックとブロックの境界でブロックの先頭データ1ワードを重複して転送してしまうという問題が発生します。その結果、書き込まれたデータの途中に1ワードが挿入されることになり、以降のデータが元のデータと比較して1ワードずれるという障害が発生します。 波形2は同じ環境で観測した正常時の波形です。波形1との違いはFR-DK1が(6)でHSTROBE信号をドライブするまでにSeagete製HDD は#DDMARDY信号を戻す操作を行っていません。従ってE、F、G、Hのタイミングで正しいデータ転送が行われます。 なお、Seagete製HDDが弊社RS-FWEC5X, U2-DK1,U2-FWEC5X及びPC本体内蔵IDEに接続された場合は、Seagete製HDDが問題となる動作を行っても無視されます。 |