やっとSATA2RAID-PCIXのビットエラー問題にケリをつけた。
SiI3124チップの不良だと考えている。
1年以上前に購入した頃から、書き込んだデータにたま〜にオリジナルと異なるビットが
生じることは気が付いていたが、相性か何かだろうと騙し騙し使っていた。
新しいHDDを買ったのを機会にテストしてみた。
カードにつないだHDD間で300GB分のデータをコピーして、その後コンペアした。
このコピー操作はすべて正常終了した。
その結果わかったこと。
ビットエラーが発生するのは、Port2に接続したHDDでのみ。ケーブル、HDDを交換しても同じ。
ビットエラーの発生頻度は、300GBのコピーで、2〜14箇所。
ビットエラーの発生位置に規則性があり、
ファイルオフセットの下11ビットが0x6C7のバイトのbit5が0→1に化ける。
ひとつのポートのみで発生するので、マシンがSiI3124に送っている書き込みデータには
問題はないと考えられる。また、発生位置の規則性から、シリアルデータに変換される前、
パラレルデータの状態でビットエラーが生じていると考えられる。
つまり、原因はSiI3124内部にあるようだ。
発生頻度が低いので、ノイズの影響を考え、カード上のコンデンサを強化してみたが、変化なし。
カード上のレギュレータに細工して、SiI3124のコア電圧を+5%喝入れしてみたが、これも変化なし。
逆に-5%に落としても、ビットエラーが激増するわけではなく、
電源電圧はあまり関係なさそうなかんじ。
発生位置の規則性から、SiI3124が各ポートごとにもっている2kBのFIFOがあやしいが、
このメモリが壊れているのなら、もっと多量のエラーが出るはず。
釈然としないが、SiI3214が不良なのは間違いないとと思われる。
まあ、今さらの初期不良なのだが、発生頻度が低いため、カード製造元の検査で
検出できなかった可能性がある。
場合によっては、SiliconImageのチップ製造時の検査でも分からなかったのかもしれない。
このような故障モードがあるとなると、かなり低信頼性なチップのように思われる。