JP2724934B2 - リードソロモン誤り訂正装置 - Google Patents

リードソロモン誤り訂正装置

Info

Publication number
JP2724934B2
JP2724934B2 JP4015688A JP1568892A JP2724934B2 JP 2724934 B2 JP2724934 B2 JP 2724934B2 JP 4015688 A JP4015688 A JP 4015688A JP 1568892 A JP1568892 A JP 1568892A JP 2724934 B2 JP2724934 B2 JP 2724934B2
Authority
JP
Japan
Prior art keywords
data
byte
syndrome
error
alpha
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP4015688A
Other languages
English (en)
Other versions
JPH05347075A (ja
Inventor
ブルース・アール・ピーターソン
ハン・シィ・ニューエン
マイケル・ジィ・マチャド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KUONTAMU CORP
Original Assignee
KUONTAMU CORP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KUONTAMU CORP filed Critical KUONTAMU CORP
Publication of JPH05347075A publication Critical patent/JPH05347075A/ja
Application granted granted Critical
Publication of JP2724934B2 publication Critical patent/JP2724934B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials

Description

【発明の詳細な説明】
【0001】
【発明の分野】この発明は、データストリーム内でバイ
ト誤りを検出しかつ訂正するための方法および装置に関
する。特に、この発明は、たとえば回転ディスクデータ
記憶サブシステム内で記憶表面から読出されたデータブ
ロックのようなデータブロック内で、バイト誤りを検出
しかつ訂正するための方法および装置に関し、ここでそ
のようなサブシステムはプログラムされたディジタルコ
ントローラを含んでいる。
【0002】
【発明の背景】誤り訂正技術は、たとえばディスクドラ
イブデータ記憶サブシステムおよびテープドライブデー
タ記憶サブシステムのようなメモリ記憶を含むディジタ
ルデータ処理システムにおいて既知であり、かつディジ
タルデータ通信システムにおいもて既知である。ディジ
タルデータストリームの実質的に隣接するブロック、セ
ットまたはサブセットからシンドローム情報を発生する
方法が選択されかつ実施されている。この「隣接する」
という言葉は、ブロックの間のまたはブロックを分離す
る最小の間隔または時間経過を伴って、ブロックが次か
ら次へと発生することを意味する。シンドローム情報
は、典型的にはデータ書込または伝達プロセスにおい
て、エンコーダ側で、ブロック、セットまたはサブセッ
トに付加される。データ読出または受信プロセスで、こ
こでは「剰余」と呼ばれる受信された誤り訂正シンドロ
ーム情報が、受信されたデータブロックから得られかつ
ゼロと比較される。もし何らかの非ゼロ剰余値またはバ
イトがあれば、誤りが存在するものと決定される。付加
されたシンドローム情報の性質および量に依存して、デ
ータブロックの中の1つ以上の誤りバーストを検出しか
つ訂正することが可能である。
【0003】誤りバーストとは、誤りである1組の隣接
するビット位置のことである。単一の誤りバーストと
は、データブロック内でかかる誤ったビット位置が1つ
発生していることであり、かつそのインタリーブに亘っ
て延びることが可能である。二重の誤りバーストとは、
たとえば、データブロック内で誤りバーストが2つ別個
に発生していることである。誤り訂正システムおよび方
法は典型的に、単一のバースト誤りおよび二重のバース
ト誤りを位置決めしかつ訂正する能力、ならびに実行速
度、および誤り訂正方法による誤りバーストの誤訂正の
確率が低いこと、に基づいて評価される。
【0004】先行技術のアプローチにおいて、シンドロ
ームコンバータは、タップおよび外部乗算器要素を有す
るシフトレジスタとして典型的に実現される。外部形式
において、加算器は、シンドロームを発生するためにシ
フトレジスタからの乗数項を入来データストリームと組
合わせた。その開示が引用により援用されるマーチャー
ゾウ(Machado )の同一譲受人に譲渡された米国特許第
4,730,321 号において、シフトレジスタが加算ノードを
含む内部形式が、論理要素が共用されることを可能に
し、かつゆえに誤り訂正ハードウェアを実現するために
要求される構成要素の数を最小限にするために使用され
た。
【0005】ディスクドライブ内で使用される多くの誤
り訂正コードスキームは、1ビットのガロア体[GF
(21 )]を採用してきた。1ビット実現化例におい
て、乗数項はそれゆえに存在するかまたは存在しないか
のどちらかであり、かつ加算ノードは排他的ORゲート
として実現化される。いくつかの先行の実現化例は、引
用されたマーチャーゾウへの米国特許第4,730,321 号で
行なわれたように、ガロア体バイト単位(つまり記号に
つき8つのビット)で行なわれてきた。これらの先行の
アプローチにおいて、シンドローム発生器は、8ビット
を中に受入れかつ8ビットを外に出した。引用されたマ
ーチャーゾウの第′321号特許は、原始元alpha
1 項が、シンドローム発生器回路を実現化するために必
要とされるゲートの数を低減するために、2B(He
x)であるガロア体を採用した。
【0006】ビット/入力ないしビット/出力であろう
と、またはバイト入力/バイト出力であろうと、古典的
な誤り訂正アプローチに伴う一般的な問題は、1つ以上
の誤りが特定のブロック内で検出されたときに、システ
ムデータストリームは、その場所を決定しかつ誤りを含
むと決定されたブロック内で単数または複数のバースト
誤りを訂正するために要求される時間間隔の間、遮断さ
れなければならないということである。
【0007】特にディスクドライブデータ記憶サブシス
テムにおいて、1つ以上のプログラムされたモノリシッ
クディジタルマイクロコントローラに遭遇することは今
やありふれたことである。これらのマイクロ制御要素
は、データ変換器ヘッド位置決めおよびトラック追従動
作を監督するために、かつ必要に応じてホスト計算シス
テムとのデータ、命令および状態値の転送を監督するた
めに、適当な動作および計算を実行する際に非常に有力
である。
【0008】誤りおよび結果として生じる訂正プロセス
は、うまく設計されかつ製造されたディスクドライブに
おいては比較的稀にしか発生しないので、マイクロコン
トローラの計算力は、必要に応じて中断しながら誤り位
置決めおよび訂正動作を行なうというタスクに最もよく
適合する。たとえば、もしデータブロックがディスク表
面から読出されているのなら、後に続くブロックの読出
は、誤り位置決めおよび訂正プロセスの間中止する。引
用されたマーチャーゾウの第′321号特許の場合のよ
うに、データストリームが遮断された後、ディスクドラ
イブマイクロコントローラは誤りを有するデータブロッ
クに対するECC剰余を得る。剰余に基づいて、マイク
ロコントローラはそれから誤りを位置決めしかつ訂正す
るための値を計算する。誤ったデータ値はそれから、バ
ッファメモリのデータブロックに挿入された訂正された
データ値と取換えられる。訂正後、データブロックはホ
ストコンピュータに送出されるために利用可能であり、
かつこの時点でデータストリームはデータブロックのそ
の流れを再開することが可能になる。
【0009】要約すると、ビット単位であろうとバイト
単位であろうと、先行技術のアプローチは3つの共通機
能を実行する。つまりそれらの方法は、入来データを読
出し、かつ回復された剰余値をゼロと比較する。もし誤
りがあれば、それらの方法は、データストリームを遮断
し、その後、たとえば非反復の、すなわち「ソフト」誤
りを排除しようとしてデータを再び読出しかつデータを
シンドローム発生器の中を通して再び送ることによっ
て、リトライを実行し得る。もしそれが作用しなけれ
ば、つまりハードのデータ誤りが存在すれば、それらの
方法は、そのとき誤り訂正動作を実行する。もしその動
作が成功であると決定されれば、データストリームはそ
の後再び開始される。もし誤りが訂正不可能であると決
定されれば、誤りメッセージがホスト計算システムまた
は通信システムに送られ、データ転送プロセスは無期限
に中止される。
【0010】非常に急速な誤りの訂正の実行に向けられ
たいくつかの先行の努力があった。何千ものゲートを有
する特別のハードウェアチップで実施されると考えられ
た1つのアーキテクチュアは、テネンゴルツ(Tenengol
ts)の米国特許第4,782,490号で説明され、その開示は
引用により援用される。テネンゴルツは、高速誤り訂正
技術を実現化するためにハードウェアとファームウェア
の双方を使用する実施例のことを言っているが、オンザ
フライ誤り訂正の実現化に対して何ら実際的なガイダン
スが与えられていない。たとえば、テネンゴルツ特許の
図8の「誤りトラッピング」実施例において、誤りを検
出するために使用されるのと同一のシフトレジスタが、
誤りトラッピングプロセスに対して誤りが検出された後
にも使用されるので、したがって、リアルタイムで入来
データの次のブロックのためにシフトレジスタを利用で
きる可能性を取除く。
【0011】ここで使用されるように、「オンザフラ
イ」という表現は、最小限のデータフローの割込で実行
され、かつ訂正プロセスを実行するために1つ以上のデ
ィスク回転を要求しない誤り訂正プロセスを意味する。
ECC「オンザフライ」を実行するために、データ誤り
を検出し訂正し、かつ多数のブロックの典型的な転送の
間データブロックの流れを中止しない態様でそうするこ
とが必要である。従来、これらの2つの要求はこれまで
概念的に一まとめにされてきた。実際、本発明者はこれ
らの2つの要求が、誤り訂正の全体の問題に対する別個
でかつ分離可能な局面であることを発見した。
【0012】シンドローム発生器は誤り訂正のためのハ
ードウェア実現例の中に典型的に設けられる。このシン
ドローム発生器は各予め定められたデータブロックに対
してECCシンドロームを発生するためにデータストリ
ーム上でオンザフライで動作する。一旦シンドロームが
発生されれば、それは記録/ECCコード化プロセスの
間データブロックの端部で典型的に付加される。
【0013】引用されたマーチャーゾウの第′321特
許によって教示されるように、シンドローム発生器回路
はまた、記憶表面からのデータブロック読戻しの間、剰
余回復回路として使用され得る。たとえばディスク表面
から来るデータブロックまたはサブセットからの読戻し
の間に再発生されるシンドローム剰余バイトは、ハード
ウェア比較器によってゼロと比較される。もし剰余バイ
トがゼロでなければ、誤りは読戻しデータブロックまた
はそのインタリーブに存在する。マーチャーゾウ第′3
21号特許のアプローチにおいて、データストリームは
その後停止され、かつシンドローム発生器シフトレジス
タで保持される非ゼロ剰余バイトはその後、バス構造を
介してマイクロコントローラに送られる。マイクロコン
トローラはそれからファームウェアルーチンを実行して
単数または複数の誤りを位置決めしかつ訂正する。先行
のマーチャーゾウ第′321号特許アプローチは、誤り
訂正プロセスを実行するために搭載されたディジタルマ
イクロコントローラを使用するが、オンザフライでそう
しなかった。いずれの誤りの検出もデータフローを停止
させた。
【0014】オンザフライ誤り訂正を実行するための他
の典型的なアプローチは、そのタスクが誤りの訂正を計
算しかつ誤ったデータに対する訂正されたデータを訂正
が行なわれているデータブロックの1つ以上の適当な位
置に挿入することである、1つ以上の専用のハードウェ
アプロセッサを設けることであった。専用ハードウェア
プロセッサと典型的に関連するのは専用FIFOまたは
バッファメモリであり、典型的に記憶容量において4キ
ロビット(バイトにつき512バイト×8ビット)であ
る。
【0015】ハードウェアベースのECCアーキテクチ
ュアの例は引用されたテネンゴルツ米国特許第4,782,49
0 号で与えられる。最もよく理解されるように、テネル
ゴルツは図2に関連して誤り訂正およびクロスチェッキ
ングへの非常に一般的なアプローチを提供するが、オン
ザフライでの誤り訂正に関する言及または議論は何も与
えられていない。しかしながら、彼の図8の実施例に関
連して、バースト誤りを検出したシンドロームは、誤り
が位置決めされるまで最初のECC回復回路のシフトレ
ジスタを通ってシフトされる。ゼロ値剰余バイトに遭遇
するまでに要求される直列シフトの数が数えられる。数
えることによって誤りバーストの位置決めが与えられ、
一方ゼロバイト剰余バイトの直後の剰余バイトは、デー
タストリームに挿入されるべき訂正されたデータ値を決
定するための基礎を与える。テネルゴルツは「単一バー
スト訂正が記録転送時間において実行されること」を可
能にするために4倍のクロック速度でECCシフトレジ
スタをクロック動作することを提案しているが(テネン
ゴルツのコラム15、47−48行)、かかる手続がデ
ータの次の隣接するブロックがリアルタイムで(つまり
オンザフライで)、シフトレジスタの中を通過すること
をどのようにして可能にするかは、データブロックの間
に存在するかなりのギャップまたはブロック転送遅延が
FIFOブロックバッファなどを使って実際にデータス
トリーム中にプログラムされない限り、明らかではな
い。テネルゴルツの図2のアプローチは非常に速いと述
べられているが、それはまた明らかに複雑である。図8
のアプローチはそれよりは遅いと言われているが、たと
えデコーディングプロセスがファームウェアで実現化さ
れるといわれても、十分に速い。ファームウェア実現化
例が述べられているが、ファームウェアコード一覧表の
ような詳細はテネンゴルツ特許では与えられていない。
テネンゴルツ特許はたとえば図2で与えられたハードウ
ェア実現化例の制限内でのクロスチェッキングおよびI
Dフィールド(ヘッダ)誤り検出技術もまた説明する。
【0016】ステップ間転送を回避するためにパイプラ
イン態様で動作する専用並列プロセッサを含む他の高速
ECCアーキテクチュアは、ディーオダー(Deodhar )
の米国特許第4,567,594 号で述べられ、その開示もまた
引用により援用される。ディーオダーの米国特許第′5
94号で述べられた技術は、リード−ソロモン(Reed-S
olomon)デコーディングプロセスを、最小のステップ間
パラメータ転送でパイプライン専用プロセッサによって
実行される一連のステップに分割する。
【0017】誤り訂正へのより進んだ先行技術のアプロ
ーチは、データコントローラ機能に関連するデータブロ
ックバッファを利用する。このアプローチはデータブロ
ックバッファにアクセスしかつ制御するためにDMAチ
ャネルを使用する。ECCハードウェアはブロックバッ
ファへのDMA要求を発生して、それによって訂正され
るべき誤ったデータセルへのアクセスを得る。このアプ
ローチは誤り訂正プロセスのために既に現存するデータ
ブロックバッファを使用する利点を認める。これは引用
された同一の譲受人に譲渡されたマーチャーゾウの米国
特許第4,730,321 号で手本とされたアプローチである。
しかしながら、この先行のアプローチは「オンザフラ
イ」の誤り訂正を達成しなかった。
【0018】オンザフライで単一バースト誤り訂正を実
行できないことに加えて、引用されたマーチャーゾウの
第′321号特許に述べられたアプローチの他の欠点
は、二重バースト訂正モードにおけるデータの誤検出お
よび結果として生じる誤訂正の確率から生じ、本質的に
その利用を単一バースト訂正に制限する。特定のリード
ソロモン誤り訂正アルゴリズムの訂正能力の範囲内での
ランダムな誤りの発生は誤訂正の確率がゼロという結果
になるが、もしランダムな誤りの数がその訂正能力を超
えれば、誤訂正の確率は非常に高く、約.233にな
る。これは訂正能力を超えて統計的に発生する誤りの約
4分の1が誤検出されかつ誤訂正されることを意味す
る。誤検出の確率を低減するために採用された既知の先
行技術は、たとえばデータブロック内のチェックサムを
含むクロスチェックを含んだ。しかしながら、かかるク
ロスチェックは特に有効でもなければデータブロック内
のデータ値のシャッフリングまたは再配列を検出するこ
ともできなかった。
【0019】
【発明の目的の概要】この発明の一般的な目的は、剰余
ラッチを含むハードウェアの形にされたECCシンドロ
ーム発生器回路ならびに埋込型ディジタルマイクロコン
トローラおよびブロックバッファを、先行技術の制限お
よび欠点を克服するような態様で作動的に組合わせるこ
とによって、一連のデータブロック内のデータのブロッ
クに「オンザフライ」誤り訂正を提供することである。
【0020】この発明の他の一般的な目的は、背景動作
としてかつデータのフローに割込むことなく、埋込型マ
イクロコントローラスーパバイザーによって必要に応じ
て実行されるドライブ剰余ファームウェア内で訂正プロ
セスが実質的に実行される、ディジタルデータシステム
内での「オンザフライ」誤り訂正の実際的に最小のハー
ドウェアでの実現化例を実現することである。
【0021】この発明の他の一般的な目的は、ゼロに等
しくないECCシンドローム剰余を選択的にラッチし
て、それによってオンザフライ誤り訂正がディジタルデ
ータシステム内のデータブロックのフローを中止するこ
となくマイクロコントローラおよびブロックバッファメ
モリによって実行されることを可能にするラッチを含む
ECCシンドローム剰余回復回路を提供することであ
る。
【0022】この発明の他の一般的な目的は、リードソ
ロモン誤り訂正多項式によってデータブロックの誤りバ
ーストの訂正可能性をチェックするために使用するため
のリードソロモンクロスチェック多項式を提供すること
であり、クロスチェック多項式と誤り訂正多項式との双
方は、原始元alpha1 項が02(Hex)に等しく
ないガロア体に基づく。
【0023】この発明のより特定的な目的は、2B(H
EX)値を有する原始元alpha1 項を採用するリー
ドソロモンクロスチェック多項式を提供することであ
る。
【0024】この発明のより特定的な目的は、ディスク
からホスト計算システムへのデータブロックのフローの
割込を通常は要求しない、背景動作としてラッチされた
非ゼロシンドローム剰余バイトから存在すると決定され
た誤りバースト内の誤り位置と値とを決定するスーパパ
イザマイクロプロセッサを含むディスクドライブデータ
記憶サブシステム内のオンザフライ誤り訂正システムを
提供することである。
【0025】この発明のさらに他のより特定的な目的
は、訂正可能性を決定してかつそれによってデータブロ
ックの検出された誤りバーストの誤訂正の確率を低減す
るためにオンザフライクロスチェッキングを含む誤り訂
正方法を提供することである。
【0026】この発明のさらに他のより特定的な目的
は、データブロックIDフィールド(ヘッダ)のための
2バイトかまたは3バイトのリアルタイム誤り検出を実
行するとともに、データブロックの誤り訂正のために剰
余を回復するために、最小限に修正され得る最小のハー
ドウェアでの誤り訂正/誤り検出シンドローム発生器装
置を提供することである。
【0027】この発明の1つのより特定的な目的は、誤
り検出プロセスの完全性を傷つけることなくハードウェ
ア要求を最小限にするために非連続根を有するガロア体
発生器多項式を採用するリードソロモンベースのIDフ
ィールド誤り検出方法および装置を提供することであ
る。
【0028】この発明の1つのより特定的な目的は、ク
ロスチェッキングを実行するために要求される付加的な
ハードウェアの量を最小限にしながら誤り訂正プロセス
のクロスチェッキングを実行するための方法および構造
を提供することである。
【0029】この発明のさらなる特定的な目的は、識別
されたデータブロックのために誤り訂正プロセス内で使
用されるのと同一の乗数項を使用するデータブロックI
Dフィールド誤り検出プロセスを提供することであり、
それによってIDフィールド誤り検出とデータブロック
誤り訂正プロセスとの双方にとって共通の乗算器回路の
使用を可能にする。
【0030】この発明のさらに他の1つのより特定的な
目的は、リアルタイムでかつ少なくとも単一のバースト
誤りの場合はデータフローに割込むことなく、データブ
ロックの誤り訂正およびクロスチェッキングならびにI
Dフィールドの誤り検出を実行する、最適化された柔軟
性のあるハードウェア/ファームウェアシステムを提供
することである。
【0031】この発明の原理に従って、オンザフライ誤
り訂正方法はデータデコーディングプロセス内でストリ
ームのデータブロックを訂正する。各ブロックは、デー
タデコーディングプロセスの前に発生するコード化プロ
セスの間予め定められたリードソロモン符号に従って計
算されかつ付加されたECCシンドローム情報を有す
る。デコーディングプロセスの間に発生する訂正方法は
以下のステップを含み、そのステップは、誤りシンドロ
ーム情報に関連した剰余情報を得るためにデータのブロ
ックをシンドローム情報回復回路の中を通過させるステ
ップと、誤りバーストがデータブロック内に存在するか
どうかを決定するためにその剰余情報をゼロと比較する
ステップと、さらにもし誤りが存在すると決定されれ
ば、ストリームの次のデータブロックのためにシンドロ
ーム情報回復回路を解放するために回復された情報を剰
余ラッチの中にラッチするステップと、回復された情報
を剰余ラッチからマイクロコントローラへと転送しかつ
それに誤り訂正サービスルーチンを実行させるステップ
と、予め定められたリードソロモン誤り訂正アルゴリズ
ムに従ってマイクロコントローラを使って単数または複
数の誤りバーストのために位置および訂正された値を決
定するステップと、さらに誤りバーストを含むことが検
出されたブロック内の誤りバーストの代わりに訂正され
た値を用いるステップとである。
【0032】この発明の方法の一面として、データブロ
ックはさらにコード化プロセスの間に計算されかつそれ
に付加されたリードソロモンクロスチェック情報を含
み、かつその方法は、回復されたクロスチェックシンド
ローム情報をシンドロームラッチにラッチするステップ
と、可能性のある誤訂正を検出するために回復されたク
ロスチェックシンドローム情報に対する訂正された値の
影響をマイクロコントローラを使って決定するステップ
さらに含む。
【0033】この発明の方法の他の一面として、データ
ブロックは、誤り訂正のために採用されるのと同一の乗
数項を採用するリードソロモンIDフィールド誤り検出
情報を含む少なくとも1つのIDフィールドを含み、そ
れによってシンドローム情報回復回路が前記データブロ
ックIDフィールドの誤りを検出することを可能にす
る。
【0034】さらにこの発明に従って、リードソロモン
誤り訂正符号シンドローム発生器装置は、固定ディスク
ドライブデータ記憶サブシステム内のような計算システ
ム内のデータブロック転送経路で使用するために設けら
れる。転送されつつある実質的に隣接するデータブロッ
クの各々は、その端部に付加されたリードソロモン誤り
訂正コード化シンドローム情報を含み、ブロックのデー
タ内での誤りの検出および訂正を可能にする。各データ
ブロックは以下のような態様で各データブロックに付加
されたリードソロモンクロスチェッキングシンドローム
情報をさらに含み、その態様は誤り訂正コード化シンド
ローム情報がブロックのクロスチェッキングシンドロー
ム情報に関連してさらに引出されるというものである。
コード化プロセスの間、誤り訂正コードシンドローム発
生器は、x8 +x4 +x3 +x2+1の形式を有するフ
ィールド発生器多項式によって発生されるガロア有限体
(28 )に従って誤り訂正コード化シンドローム情報を
計算し、かつこのフィールドの第1の項はx5 +x3
x+1(2進数で00101011)であり、各誤り訂
正シンドロームはG(x)=x4 +(alpha18)・
3 +(alpha87)・x2 +(alpha18)・x
1 +1の形である。コード化プロセスの間、クロスチェ
ッキングシンドローム発生器はG(x)=x2 +alp
ha1 の形式を有するクロスチェッキングシンドローム
情報を計算する。誤り訂正コード化シンドローム情報お
よびクロスチェッキングシンドローム情報はそれから各
データブロックに付加される。
【0035】デコーディングプロセスの間、リードソロ
モン誤り訂正コードシンドローム発生器装置は剰余回復
回路として動作して、そこを通過するデータブロックか
らシンドローム剰余を得る。シンドローム剰余は、誤り
バースト位置および訂正値がデータブロックに対して決
定されるように誤り訂正シンドロームに関連付けられ
る。発生器装置は剰余をゼロと比較する。もしシンドロ
ーム剰余が非ゼロであれば、その剰余は、クロスチェッ
キングシンドロームに関連付けられるクロスチェックシ
ンドローム剰余とともに剰余ラッチでラッチされる。プ
ログラムされたディジタルマイクロコントローラはそれ
からラッチされた剰余から誤りバースト位置および訂正
された値を決定し、かつラッチされたクロスチェッキン
グ剰余に対する訂正された値の影響をチェックする。マ
イクロコントローラはそれから、もし誤訂正でないと決
定されれば、訂正された値をデータブロック内の誤りバ
ーストの代わりに用いるようにする。
【0036】この発明のこの面の一局面において、クロ
スチェッキングシンドローム発生器は、直列バイトのク
ロック動作されたデータストリームとして各入来データ
ブロックを受信するための入力と、入来データブロック
のクロック動作されたデータストリームの各バイトをフ
ィードバックバイトと合計して合計バイトを生み出すた
めの第1の合計接続点と、alpha1 でこの合計バイ
トを乗算して第1の積バイトを生み出すための乗算器
と、この乗算器に接続されて第1のバイトクロック期間
の間第1の積バイトを記憶するためのかつ後続のバイト
クロック期間の間後続の積バイトを記憶するための第1
のクロック動作されたラッチステージと、第1のクロッ
ク動作されたラッチステージに接続されて第2のバイト
クロック期間の間第1の積バイトを記憶するための第2
のクロック動作されたラッチステージとを含み、第2の
クロック動作されたラッチステージは第2のバイトクロ
ック期間の間第1の積バイトを合計接続点へのフィード
バックバイトとしてフィードバックするためのものであ
る。
【0037】この発明のこの面の他の局面において、上
述のリードソロモン誤り訂正コードシンドローム発生器
装置は、データブロックのデータIDフィールドのため
の誤り検出シンドロームをリアルタイムで発生するため
の誤り検出回路をさらに含む。
【0038】この発明のこれらのおよび他の目的、局
面、利点および特徴は添付の図面とともに表わされた好
ましい実施例の以下の詳細な説明を考慮すると当業者に
よってより完全に理解されかつ真価を認められるであろ
う。
【0039】
【好ましい実施例の詳細な説明】この発明は、記憶であ
れ通信であれ、データのブロックを転送するいかなるシ
ステムにおいても効果的に具体化されるが、この発明は
固定ディスクデータ記憶サブシステム内のようなデータ
記憶および検索の分野において特に有用性および効率性
を見出す。以下に詳細に述べられることになるかかるシ
ステムにおいて、データブロックは1つ以上のデータ記
憶ディスクの同心データ記憶トラック場所内のデータフ
ィールドまたはデータセクタとして記憶される。ここで
使用されるように、データブロック、データフィールド
およびデータセクタという言葉は実質的に交換して使用
され得る。データ読出/書込変換器は、興味あるトラッ
ク位置上に選択的に位置付けられ、かつブロックはトラ
ック位置内のデータセクタ記憶場所へ書込まれかつそれ
から読出される。この発明の誤り訂正、クロスチェッキ
ングおよびIDフィールド誤り検出技術に対する必要性
が生じるのは、たとえばデータのブロックの記憶および
検索プロセスである。
【0040】まず、この発明の詳細な実施例の説明に入
る前に、この発明の全体的な構成および基本的な動作を
明瞭に理解するために、図面の第10図のシステム全体
の概略ブロック図を参照して、本願発明の概略説明を行
なうこととする。
【0041】まず、第10図のホストコンピュータは、
ドライブ−ホストバス220を介して、たとえば512
バイトの固定長のデータブロックをディスクドライブ1
60に供給する。これらのブロックは、インタフェース
コントローラ218によって受取られ、かつ内部バッフ
ァバス216を介してバッファ214のブロック記憶位
置に記憶される。バッファ214に記憶された各ブロッ
クは、バス216を経由してメモリコントローラ210
を通ってシーケンサ100に送られる。シーケンサ10
0内のリードソロモンシンドローム発生器回路10は、
12個のECC剰余バイトc[512]ないしc[52
6]を発生し、それらを、2つのクロスチェックバイト
xc[513]およびxc[514]とともに512の
データバイトd[1]ないしd[512]に付加する。
回路10はユーザデータバイトおよびクロスチェックバ
イトを図1の後述するグラフに示されたような3つのイ
ンターリーブに分割する。その後、データバイトと、ク
ロスチェックバイトと、ECC剰余バイトとは、エンコ
ーダ/デコーダ104を介して通過して、書込データ経
路を経由して直列データストリームでプリアンプ/書込
ドライバ182にコード化されたデータブロックとして
送信される。ヘッド170Aはコード化されたデータブ
ロックをディスク162上のトラックに書込む。
【0042】読出期間中に、コード化されたデータブロ
ックはディスク162上のトラックから読戻され、そし
てアナログ信号がプリアンプ182によって増幅され
る。PLLデータ回復回路188は、アナログのピーク
値をデジタル値に変換する。これらの値はコード化アル
ゴリズムの逆としてエンコーダ/デコーダ104によっ
デコーダされ、剰余回復回路として機能するリードソロ
モンシンドローム発生器回路10を介して通過させられ
る。データバイトd[1]ないしd[512]はバッフ
ァ214に送られてブロックとして記憶され、回路10
によって回復された剰余バイトは回路10内の比較回路
78に送られる。もしも剰余バイトが、たとえば0のよ
うな期待値と等しくなければ、データブロックにおいて
誤りが検出されており、剰余バイトは回路10内のラッ
チ68にラッチされる。
【0043】データバイトd[1]ないしd[512]
がバッファ214からインタフェース218およびバス
220を介してホストコンピュータに送信される前に、
マイクロコントローラ196はプログラムメモリ206
から誤り訂正ルーチンを読出しかつ実行する一方で、デ
ータの次のブロックはリードソロモンシンドローム発生
器回路10を介して通過させられる。訂正ルーチンはラ
ッチ68に保持されていた剰余バイトをマイクロコント
ローラ196に転送させる。マイクロコントローラ19
6はその後、訂正ルーチンを実行する一方で、次のデー
タブロックがディスク162から読出されて回路10を
介して通過させられる。
【0044】次に、クロスチェックバイトを用いて有効
な訂正が達成されたことが確認された後に、マイクロコ
ントローラ196は、バッファ214内のブロック内の
誤り位置から直接メモリアクセス(DMA)経路を経由
してマイクロコントローラインタフェース202、メモ
リコントローラ210およびバス216を通って誤った
バイトを取下げ、誤ったバイトを訂正値とXOR処理し
て訂正されたバイトを発生し、そして訂正されたバイト
を同じDMA経路を介して誤り位置に書戻すことによっ
て、バッファ214におけるデータバイトd[1]ない
しd[512]内の誤りを訂正する。その後、訂正され
たブロックはバッファ214からホストコンピュータに
インタフェース218およびバス220を介して転送さ
れる。複数のブロックがホストコンピュータに転送され
る前にバッファ214に累積されているので、訂正のプ
ロセスは、ブロック転送を停止することなく「オンザフ
ライ」で実行され得る。以上がこの発明の動作の概略で
ある。
【0045】次に、このような本発明の実施例につい
て、図面の各図を参照して詳細に説明する。
【0046】たとえば固定ディスクデータ記憶サブシス
テム内で見出される模範的なデータブロックまたはフィ
ールドは図1で明らかにされる。[1]から[512]
と記された512のデータバイトがある。バイト[51
3]および[514]は、[1]から[512]のデー
タバイトをクロスチェッキングするための2つのクロス
チェッキングバイトを含み、かつデータバイトおよびク
ロスチェッキングバイトの誤り訂正のために使用される
[515]から[526]の12のECCバイトがあ
る。図1の下位部分に例示されるように、この特定的な
ディスクドライブデータブロック例において、3つのイ
ンタリーブ、すなわちインタリーブ1、インタリーブ2
およびインタリーブ3がある。インタリーブ1はバイト
[1]、[4]、[7]、[10]などを含む。インタ
リーブ2はバイト[2]、[5]、[8]、[11]な
どを含む。インタリーブ3はバイト[3]、[6]、
[9]、[12]などを含む。インタリーブ1および2
は各々合計で171のデータバイトを含み、かつインタ
リーブ3は170のデータバイトを含む。図1から明ら
かなように、2つのクロスチェッキングバイト位置[5
13]および[514]は異なったインタリーブに置か
れ、かつ各インタリーブに4つのECCバイトが置かれ
ている、つまりインタリーブ1にはバイト[517]、
[520]、[523]および[526]、インタリー
ブ2にはバイト[515]、[518]、[521]お
よび[524]ならびにインタリーブ3にはバイト[5
16]、[519]、[522]および[525]が置
かれる。セクタ内インタリーブの使用はECC能力をよ
り長い誤りバースト長へ延ばすために誤り訂正スキーム
において従来からのものである。他の理由はいくつかの
インタリーブを横切って隣接するブロック誤りバースト
を広げて、それによってたとえば誤り訂正技術の複雑さ
を低減することである。
【0047】現在好まれる誤り訂正の例では、単一の誤
りバーストはインタリーブの1つ内の1つのバイトで発
生する誤りとして規定される。二重のバースト誤りはイ
ンタリーブの1つ内の2つのバイトで発生する誤りとし
て規定される。図1で描かれた3つのインタリーブを考
えると、単一バースト誤りは、誤りを含む各バイトが3
つのインタリーブのうち異なった1つ内に置かれる限
り、長さで3バイトまでになり得ることは明らかであ
る。
【0048】引用されたマーチャーゾウの特許で述べら
れた単一バースト誤り訂正方法にあてはまったように、
この誤り訂正例によって採用されるガロア体は以下の多
項式から発生される。
【0049】 P(x)=x8 +x4 +x3 +x2 +1 (1) [以下でそうでないと特に言及されない限り、記号
「+」はビットごとの排他的OR演算を示す。]フィー
ルドの第1の要素は、乗算器を実現化するために必要と
されるゲートの数が最小限にされるように選択された。
【0050】 alpha1 =x5 +x3 +x+1i (2) 現在好まれる実施例内で実現化されたリードソロモン符
号のためのモデルは126に等しい指数オフセットを採
用する以下の発生器多項式G(x)によって規定され
る。
【0051】 G(x)=x4 +alpha18・x3 +alpha87・x2 +alpha18・ x+1 (3) 因数分解された形では、方程式(3)は以下のようにな
る。
【0052】 G(x)=(x+alpha126 )(x+alpha127 )(x+alpha128 )(x+alpha129 ) (3a) 12のECCバイトは、各512バイトブロックのユー
ザデータバイト(および2つのチェックバイト)のすべ
てを直列のバイト単位でシンドローム発生器10(図4
および図5で示される)を通過させるとすぐ発生され
る。値C(x)は各データブロックのためのデータおよ
びクロスチェックバイトに基づくディスクに書込まれた
コード化されたデータ多項式である。値D(x)はデー
タブロックのデータバイトにのみ基づくコード化された
データ多項式である。値C′(x)はディスク表面から
読み戻されたコード化されたデータ多項式C(x)であ
る。したがって、C′(x)は、検出されかつもし訂正
可能であれば訂正されなければならない1つ以上の誤り
バーストを含み得る。値R(x)は値C′(x)に関連
付けられた剰余を含む。
【0053】各インタリーブ内の各シンドロームバイト
のためのコード化されたデータコードワードC(x)は
以下の方程式によって生み出される。
【0054】 C(x)=[x4 ・D(x)modG(x)]+x4 ・D(x) (4) 同一のシンドローム発生器10によるリードバックプロ
セスの間、各インタリーブのための剰余値R(x)は回
復され、かつもしゼロでなければ、以下によって剰余ラ
ッチ68でラッチされる。
【0055】 R(x)=C′(x)modG(x) (5a) =R3x3 +R2x2 +R1x+R0 (5b) プログラムされたマイクロコントローラ196はそれか
ら以下に従って各インタリーブのためのコードワードの
各部分シンドロームバイト(Si)をデコードする。
【0056】
【数1】
【0057】(この式において、i=0、1、2および
3であり、かつ指数+は加算動作を示す。)もし剰余バ
イト(R(x)の係数)が非ゼロ値を有すれば、読戻し
データブロックには少なくとも1つの誤りバーストが存
在する。
【0058】ここに与えられた現在好まれる実施例にお
いて、上の誤り訂正プロセスは3つのインタリーブの各
1つに対して少なくとも1つの誤りバーストをオンザフ
ライで訂正する能力を有する。このオンザフライ誤り訂
正プロセスにおいて、部分シンドロームは以下の形を有
する。
【0059】 S0=el.alpha126*L1 (6) S1=el.alpha127*L1 (7) S2=el.alpha128*L1 (8) S3=el.alpha129*L1 (9) L1(場所)およびe1(単一誤り値)に対する解は以
下のとおりである。
【0060】 L1=log[alphaL1=log[S1/S0] (10) e1=S1.(S0/S1)127 (11) この発明のシステムはまた以下の部分シンドロームに従
って二重バースト誤り訂正を実行する。
【0061】 S0=el・alpha126*L1+e2・alpha126*L2 (12) S1=el・alpha127*L1+e2・alpha127*L2 (13) S2=el・alpha128*L1+e2・alpha128*L2 (14) S3=el・alpha129*L1+e2・alpha129*L2 (15) これらの方程式の解を求めるために、以下のステップが
行なわれる。 1.phi1およびphi2の値が求められる。
【0062】
【数2】
【0063】
【数3】
【0064】線形二次方程式(18)の解を求めるため
のいくつかの方法がある。1つの古典的な方法はすべて
のガロア体要素を方程式に代入してゼロ値に対して検出
するシーン・サーチ・ループ(Chien Search loop )を
実現化することである。ゼロ値結果が求められた場合
は、ループは中止し入力要素がそれに基づいてX1と規
定される。もし解が求められなければ、訂正不可能な誤
り事象が検出されたことになる。方程式(18)は線形
二次方程式であるので、 phi1=x1+x2 (18a) X2は以下のように求められ得る。
【0065】 X2=X1+phi1 (19) 3.ローケータ値L1およびL2はそれから数値を求め
られる。
【0066】 L1=log[x1] (20) L2=log[x2] (21) 4.誤り値e1およびe2はそれから数値を求められ
る。
【0067】
【数4】
【0068】
【数5】
【0069】マイクロプロセッサ196で適当な処理能
力と速度があれば、かつ訂正プロセスにおいて合理的な
ユーザ信頼レベルがあれば、この発明の方法を使って二
重バースト誤りをオンザフライで訂正することは実用的
である。
【0070】誤訂正の確率を多数ランダム誤りに対し
て.233未満に低減するために、発生器多項式G
xc(x)はリードソロモンクロスチェッキングを行なう
ために選択された。この発生器多項式は以下の形であ
る。
【0071】 Gxc(x)=X2 +alpha1 (24) このクロスチェック多項式は驚くほど強力なアルゴリズ
ムとなる。これは誤り訂正プロセスをクロスチェッキン
グしかつデータブロック内のデータ値のスクランブリン
グまたはミスオーダリングに敏感である。このクロスチ
ェッキング方法は、インタリーブごとに少なくとも単一
のバースト誤りがある場合にオンザフライで、かつイン
タリーブごとに二重のバースト誤りがある場合に十分な
処理速度をもって、実行されるように設計される。
【0072】もし特定の誤りが存在すれば、その誤りを
表わす正しい方法は多項式E(x)としてであり、 E(x)=ei Li i (25) である。
【0073】データブロックになされた誤り訂正の、対
応するクロスチェックシンドロームに対する影響を決定
するために、alpha1 が誤り多項式(25)のxに
対して代入され、それからクロスチェックシンドローム
(XC)が更新される。シンドロームクロスチェック
(XC)=以前の(XC)+ei alphaLiであり、
i alphaLiは以下に述べられるプログラムされた
マイクロコントローラ196によって計算される。もし
更新されたクロスチェックバイトがデータフィールドに
対して訂正が行なわれた後ゼロでなければ、その誤りは
この方法によって訂正不可能であると決定される。
【0074】このアプローチは、現在の誤りバーストは
たとえば二重バースト訂正の場合に対する予め定められ
た誤訂正確率、たとえば.233の範囲内ではなく、か
つ単一バースト誤りシナリオでオンザフライに行なわれ
る誤り訂正動作がデータバーストの誤った訂正すなわち
「誤訂正」という結果にならかなったことを決定するた
めに、誤り訂正が正しいかどうかを確かめるための非常
に急速なオンザフライ方法を提供する。
【0075】注目されるように、上述のクロスチェック
多項式(5)において2に等しくない値の予め定められ
たalpha1 (ガロア体定数)を使用することは望ま
しい。予め定められた開始オフセット、たとえば126
を有するリードソロモン符号を選択することによって、
望ましいalpha1 定数は2B(HEX)、または0
0101011(二進法)となる。この特に好ましい実
施例において、好ましいalpha1 定数にはゼロと同
様多数の1がある。したがって、それはクロスチェック
多項式内で驚くほど効果的であるために十分な「量」ま
たは「実質」を有する、なぜならそれはECCシンドロ
ーム発生器を通って伝播するとき非常に急速にスクラン
ブルするからである。
【0076】したがって、クロスチェック多項式のため
の根alphan を選択する際に、ECC多項式のため
に選択された根は回避されなければならない。現在の好
ましい実施例において、ECC根はn=126、n=1
27、n=128およびn=129であるように選択さ
れた。これらの値はクロスチェック根n=1とは異な
り、ファームウェアを単純化しかつオンザフライでのイ
ンタリーブごとの単一誤りバースト訂正のクロスチェッ
キングの速度を高める。
【0077】この発明が実現化されるディスクドライブ
のためのデータフォーマットは、複数個のたとえば8個
の放射状のデータゾーンを使用する。各ゾーンは複数の
同心データトラックを含み、各トラックは予め定められ
た数のデータセクタを有する。各データセクタは、図1
の512のデータバイト、2つのクロスチェッキングバ
イトおよび12のECCバイトの配列が続くデータID
フィールドを含む。データIDフィールドは3つのED
Cバイトが続くアドレスフィールドを含む。データ記憶
を最大限にするために、分割されたデータフィールドま
たはデータセクタが採用される。「分割されたデータフ
ィールド」というのはサーボセクタSがデータ表面上の
放射状スポークとしてに延び、かつデータセクタの少な
くともいくらかに割込むまたはそれをセグメントに分割
するという意味である。現在考えられる型のゾーンにさ
れたデータ記録技術は、一定のディスク角速度または可
変データ転送速度のいずれかを使用するか、または固定
データ転送速度を使用し、たとえばデータ変換器が半径
方向に外部のゾーンから半径方向に内部のゾーンへと移
動するときにディスク速度を遅らせる。現在は、切り換
えられたデータ転送速度が好まれる。結果として、異な
ったデータゾーンに対して異なったデータ転送速度があ
り、かつディスク記憶フォーマットのデータ記憶容量を
最適化するために選択された異なったゾーンのトラック
内には異なった数のデータセクタがある。また、「可変
長、ゼロラン長制限コードのための集積されたエンコー
ダデコーダ(Integrated Encoder Decoder for Variabl
e Length, Zero Run Length Limited Codes )という名
称のマーチャーゾウの同一譲受人に譲渡された米国特許
第4,675,652 号で述べられるように、その開示は引用に
より援用されるが、1,7RLLコード化配列はデータ
記憶ディスク162の記憶表面上のデータコンパクショ
ンのために好ましくは使用される。
【0078】図2のレイアウト図によって与えられる例
に示されるように、たとえば2.5インチの直径の回転
データ記憶ディスク162の2つの反対のデータ記憶表
面は、表面ごとにたとえば110の同心データ記憶トラ
ックを有する半径方向に最も外のゾーンZ1を含み、各
々は、60のデータセクタと、たとえば総記憶容量6.
48MByteに対して1秒につき18.13メガビッ
ト(Mbps)(27.20のコード化されたデータ周
波数)の生のデータ速度とを含む。次に半径方向に内側
のゾーンZ2はたとえば109のデータトラックを含
み、各々は56のデータセクタと、17.45Mbps
の生のデータ速度(26.18MHzのコード化された
周波数)を有する。ゾーン2はディスク162の両側に
6.19メガバイトのユーザデータを記憶する。第3の
データゾーンZ3は109のデータトラックを含み、各
々は52のデータセクタと、15.69Mbpsの生の
データ速度(23.53MHzのコード化されたデータ
周波数)を有し、かつそれゆえにディスク162の両側
に5.75メガバイトのユーザデータを記憶する。第4
のデータゾーンZ4は109のデータトラックを含み、
各々は52のデータセクタを有し、かつ15.69Mb
psの生のデータ速度(23.53MHzのコード化さ
れたデータ周波数)を有し、かつそれゆえにディスクの
両側に5.75メガバイトのユーザデータを記憶する。
第5のデータゾーンZ5は109のデータトラックを含
み、各々は47のデータセクタを有し、かつ14.77
Mbpsの生のデータ速度(22.15MHzのコード
化されたデータ周波数)を有し、ディスク14の両側で
5.19メガバイトのユーザデータの記憶を達成する。
第6のデータゾーンZ6は108のデータトラックを有
し、各々は44のセクタを有し、かつ14.00Mbp
sの生のデータ速度(21.00MHzのコード化され
たデータ周波数)を有し、かつディスク162の両側で
4.81メガバイトのユーザデータの容量を達成する。
第7のデータゾーンZ7は108のデータトラックを有
し、各々は41のセクタを有し、かつディスク162の
両側で4.48メガバイトを記憶するように12.95
Mbpsの生のデータ速度(19.43MHzのコード
化された周波数)を使用する。第8のデータゾーンZ8
は108のデータトラックを含み、各々39のデータセ
クタをたとえば有し、かつディスク162の両側で4.
26メガバイトを記憶するために12.09Mbpsの
生のデータ速度(18.13MHzのコード化された周
波数)を有する。たとえばゾーン8フォーマットの後の
14の同心データトラックを含むデータ表面12の半径
方向に最も外の領域SYSは、ディスクドライブサブシ
ステム100の動作のために必要とされるシステム情報
を含み得る。第8のデータゾーンの内側でかつ第8のデ
ータゾーンのビット転送特性を有するいくつかのトラッ
クがシステム診断および他の値の記憶に利用可能にされ
得る。
【0079】これらの8つのデータゾーンは上に与えら
れた特性を有すると説明されるが、ゾーンの数、ゾーン
ごとのトラックおよびセクタの数、ならびに各ゾーン内
のデータ転送速度は、当業者によってよく理解されるよ
うに、ヘッドならびに媒体の設計および品質、ヘッド位
置サーボシステムならびに所望の記憶容量に依存して、
与えられた例と異なり得ることを理解しなければならな
い。この例では、42.91メガバイトのデータ記憶容
量が、単一の2 1/2インチの直径の薄膜媒体データ
記憶ディスク162を使って、かつ薄膜データ変換器ヘ
ッド170aおよび170bを使って達成される。
【0080】各ゾーン内で使用されるデータ転送周波数
は、システムマイクロコントローラ196の制御下で動
作するたとえば周波数シンセサイザ190によって好ま
しくは合成される。シンセサイザはそれゆえに各データ
ゾーンごとにコード化された周波数を合成しかつPLL
188に出力するように設定される。
【0081】図1の例から重要であると考えられること
は、カウントバイトが各データセクタIDフィールド内
に含まれていることで、これによりデータシーケンサ1
00がセクタの直後のデータフィールドの構成レイアウ
トをすぐに決定することが可能になる。このレイアウト
は、図2に示されるように、分割されたデータフィール
ドを含むかもしれずまたは含まないかもしれず、かつ1
つ以上の割込サーボセクターを含むかもしれずまたは含
まないかもしれない。
【0082】図2はまた図式的に、複数個の均質に間隔
をあけられたサーボセクタS(たとえば52のサーボセ
クタ)を例示し、これらのセクタは記憶ディスク162
のデータ表面のあたりに均質に配置され、かつ各ゾーン
のデータセクタの間に埋込まれるかまたは実際に各ゾー
ンのデータセクタに割込む。これらのサーボセクタSは
データセクタの少なくともいくらかに「割込む」ので、
すべてのサーボセクタ割込に続いて、ドライブがデータ
速度に再び同期化することを可能にするための特別のデ
ータ同期フィールドがある。データブロックIDフィー
ルドに与えられたデータフィールドカウント情報は、デ
ータ書込および読戻しプロセスの間データシーケンサ1
00によって使用され、興味あるデータフィールドのレ
イアウト(つまりサーボセクタ割込の数および場所なら
びに結果として生じるデータフィールドセグメントの各
々の長さ)を決定する。バイト位置カウントはデータI
Dフィールドごとに異なるので、リアルタイムでIDフ
ィールドから回復された情報の正確さを確認することは
非常に重要である。この発明は、選択されたヘッド17
0によって読出されたデータIDフィールドの各1つに
対してリアルタイムでリードソロモン誤り検出プロセス
を行なうために、同一のシンドローム発生器回路10
(図4および図5)を有利に使用する。
【0083】図3aは分割されたデータフィールドフォ
ーマットに特によく合った現在好まれるデータブロック
IDフィールド配列を例示する。各IDフィールドは、
9バイトプリアンブル、IDフィールドアドレスマーク
バイト、3つのデータフィールドカウントバイト、つま
りカウント3、カウント2およびカウント1、セクタ識
別子バイトおよびヘッド識別子バイトを含む。それから
3つの誤り検出コードバイト、つまりEDCバイト1、
EDCバイト2およびEDCバイト3があり、それに続
いて2バイトパッド、書込スプライスギャップ(ギャッ
プ2)バイトおよびサーボセクタSの位置で終端するデ
ータフィールドがある。3つのカウントバイト内にある
値は、サーボセクタによって割込まれ得るデータフィー
ルドの3つのセグメントまでの長さをそれぞれ決定す
る。たとえば、データフィールドの割込が何もなけれ
ば、カウントバイト1はたとえば512のバイトの全フ
ィールドセグメント長を示すであろう。もしいくつかの
データブロックの場合のようにデータフィールドの2つ
のサーボセクタ割込があれば、カウントバイト1は第1
のデータフィールドセグメントのバイト長を規定し、カ
ウントバイト2は第2のデータフィールドセグメントの
バイト長を規定し、かつカウントバイト3はたとえば第
3のデータフィールドセグメントの長さを規定するであ
ろう。
【0084】バイトカウント値を含む好ましいゾーンに
されたデータ記録スキームでIDフィールドが使用され
る状態で、各IDフィールドから読み戻される情報の正
当性をチェックする誤り検出方法を提供することは非常
に重要になる。3バイトコードは、埋込み型サーボセク
タSがデータブロックの少なくともいくらかに割込む状
態で分割されたデータフィールドを有するこの応用で現
在好まれる。この発明の重要な局面は、図4および図5
のシンドローム発生器を利用する誤り検出コード化配列
を提供することである。かかる配列は既にわかってい
た。以下の現在最も好まれるコードは各データIDフィ
ールドに付加される3つの誤り検出チェックバイトを発
生する。
【0085】 GEDC3(x) =x3 +ax2 +bx+c (26) 現在好まれる形では、この誤り検出コードは以下のよう
に表わされ得る。
【0086】 GEDC3(x) =x3 +alpha87・x2 +alpha87・x+1 (26a) 因数分解された形では、方程式26aは次のように書直
される。
【0087】 GEDC3(x) =(x+alpha0 )(x+alpha108 )(x+alpha147 ) (26b) これらのalpha係数は連続していないことは調べれ
ば明らかである。このコードは3つの誤り検出バイトを
発生する。図4および図5に表わされたシンドローム発
生器は既にalpha87乗算器論理を有しているので、
その論理は誤り検出プロセスでの使用に利用可能であ
る。
【0088】データセクタのデータフィールドに割込む
(かつデータIDセクタがバイトカウントを含まない)
埋込み型サーボセクタを使用しないドライブにとって
は、2バイト誤り検出コードは十分であると決定され
た。2バイト誤り検出コードを使用するIDフィールド
の一例は図3bに示される。図3bに示された例におい
て、IDフィールドは9バイトプリアンブル、IDフィ
ールドアドレスマークバイト、シリンダハイバイト、シ
リンダローバイト、ヘッドバイト、セクタバイトならび
に2つの誤り検出コード(EDC)バイト、つまりED
C1およびEDC2を含む。前に埋込型サーボセクタS
がある次のデータセクタまで割込まれないで続くデータ
フィールドに到達する前に、これらのEDCバイトの後
には2バイトパッドおよびギャップ2バイトが続いた。
【0089】現在最も好まれる2バイトEDCコードは
以下の一般化された関係によって発生され得る。
【0090】 GEDC2(x) =x2 +ax+b (27) この式においてbは1に等しくない。この関係のより特
定的な形は以下のとおりである。
【0091】 GEDC2(x) =x2 +x+alpha18 (27a) 因数分解された形では、方程式(27a)は次のように
なる。
【0092】 GEDC2(x) =(x+alpha22)(x+alpha251 ) (27b) こ のコードを使ってただ1つの乗算器回路、alpha18
が要求され、この回路は図4および図5のECCシンド
ローム発生器回路において既に存在している。
【0093】他のEDCコードはデータブロックのID
フィールド内の誤りを検出するために利用可能であるこ
とが知られている。しかしながら、以下のアルゴリズム
の各々は付加的な乗数項を要求し、かつそれゆえに上に
与えられたアルゴリズム(26)および(27)よりも
実現するにはわずかに複雑である。
【0094】現在あまり好まれない3バイトEDCコー
ドは以下の関係によって発生され得る。
【0095】 GEDC3(x) =x3 +alpha18・x2 +alpha87・x+alpha18 (28) =(x+alpha5 )(x+alpha6 )(x+alpha7 ) (28a) 現在あまり好まれない2バイトEDCコードは以下の関
係によって発生され得る。
【0096】 GEDC2(x) =x2 +alpha81・x+alpha81 (29) =(x+alpha105 )(x+alpha231 )(29a) 図4および図5を参照して、ECCシンドローム発生器
回路10はデータフィールドのためのECC機能、デー
タフィールドのためのクロスチェッキング機能およびデ
ータブロックIDフィールドのためのEDC機能を実行
するための回路を同時に実現化する。単一の単純化され
た回路10内で実行されるこれらの多数の機能はこの発
明に従うオンザフライの誤り訂正を容易にする。図4お
よび図5のECC回路10はバイト直列のデータを運ぶ
入来直列データバス12を含む。論理ゲート13の出力
状態に従って、データ拡張ラッチ14はバス12上の直
列データを内部ECCバス16上へと送る。バス16は
バイト幅の排他的OR(ここではXOR)ゲートアレイ
18へとつながり、そこでは各入来バイトは流出バス6
3上で回路10のECC部分を出るバイトと排他的OR
をとられる(ここではXORをとられる)。結果として
生じる合計はゲート18によってゼロ化回路22を介し
て他のバス24へとつながるバス20上へ送られる。ゼ
ロ化回路22は、ECCまたはEDCバイトをデータフ
ィールドに付加するとき、たとえばディスク動作にまた
はディスクフォーマット動作にデータを書込む間のよう
なときに、バス20をゼロに強制するために使用され
る。
【0097】バス24は3バイトレジスタ26の中へと
つながり、その出力はXORゲートアレイ28へとつな
がる。バス24はまた、バス32上でalpha18積を
発生してかつ出力するとともにバス34上でalpha
87積を発生しかつ出力する二係数乗算器につながる。a
lpha18積は、バイト幅の排他的ORゲートアレイ2
8においてシフトレジスタ26からの出力とXORをと
られ、結果として生じる合計は他の3バイトシフトレジ
スタ36を通される。バス34上のalpha87積はそ
れから他のバイト幅のXORゲートアレイ38において
レジスタ36からの出力とXORをとられる。XORア
レイ38の出力合計は他の3バイトシフトレジスタ40
を通り、バス32上のalpha87積はシフトレジスタ
40からの出力とXORをとられ、かつバス43上の出
力合計を与える。
【0098】バス43上の出力合計はそれからマルチプ
レクサ44を介して単一バイトレジスタ46へと選択的
に送られる。マルチプレクサ44は以下に説明されるE
DCプロセスと関連して動作する。単一バイトレジスタ
46からの出力はそれからバス54上のalpha87
とXORをとられる。この点に関して、バス34上のa
lpha87積はマルチプレクサ50およびゼロ化回路52
を通ってバス54へと到達する。XORゲートアレイ4
8からのバス55上の出力はマルチプレクサ56を通っ
て第2の単一バイトシフトレジスタ58へ到達する。マ
ルチプレクサ50および56は、2つのEDCバイトか
3つのEDCバイトかのどちらかを有するIDフィール
ドの間を選択するために使用される。
【0099】レジスタ58の出力はそれからXORゲー
トアレイ60においてバス54上のalpha87係数と
XORをとられる。XORアレイ60によって出力され
る結果として生じる合計はそれから、出力バス63に直
接つながる単一バイトシフトレジスタ62の中へ送られ
かつ通される。レジスタ46、58および62を含む最
後のレジスタグループはXORゲートアレイ48および
60によって分割されて、EDC機能が2つかまたは3
つのEDCバイト上で実行されることが可能であること
は明らかである。この態様で、データセクタIDフィー
ルドをチェックするための2つのバイトかまたは3つの
バイトのリードソロモン誤り検出コードは、最小の付加
的な回路を使って現存するECCシンドローム発生器1
0内で容易に実行されかつ実現化され得る。
【0100】正常のECC動作の間、ゼロ化回路52
は、入来バイト値(2バイトEDC)かまたはalph
87積(3バイトEDC)かのどちらかの代わりにゼロ
係数を表わす。したがって、正常なECC動作の間、X
ORゲートアレイ48および60はレジスタ46、58
および62の間の経路で機能的に動作不可能になる。マ
ルチプレクサ56は2バイトEDC動作の間alpha
87積をレジスタ58の中に置く。
【0101】最後のレジスタ62からの出力バス63
は、図1で示されるように、回路10が各データフィー
ルドのECCチェックバイト位置の中に付加される12
のECCシンドロームバイトを適切に間に合って発生し
かつクロックアウトすることを可能にするECC出力バ
ス66へマルチプレクサ64を介してつながる。2つの
制御信号、つまりバイトクロック信号BYTCLKAお
よびECC可能化動作信号ECCENOPがANDゲー
ト13で結合され、その出力はラッチ14ならびにシフ
トレジスタ26、36、40、46、58および62を
介して漸進的にバイトをクロック動作するためのマスタ
クロック信号を与える。シフトレジスタ26、36、4
0、46、58および62は初期化制御信号CTLIE
Cのアサーションによって予め定められた初期値で初期
化される。この値は任意に選択され得るが、シフトレジ
スタの各初期化で繰り返される。
【0102】上で注目されるように、シンドローム剰余
ラッチ68はシンドローム発生器回路10内に設けられ
る。このラッチ68は多数の剰余バイトを受信しかつ記
憶する。バス70を介する第1のバイトを含む3つの剰
余バイトはレジスタ26から受信される。バス72を介
する第4のバイトを含むさらに3つの剰余バイトはシフ
トレジスタ36から受信される。バス74を介する第7
のバイトを含むさらに3つの剰余バイトはシフトレジス
タ40から受信される。第10の剰余バイトはバス76
を介して単一バイトシフトレジスタ46から受信され、
かつ第11の剰余バイトはバス77を介してシフトレジ
スタ58から受信され、一方第12の剰余バイトはバス
79を介して受信される。
【0103】剰余ラッチ68は3つの制御信号によって
制御される。まず、5ビット制御信号LADD[4:
0]は現在動作中のマイクロコントローラサイクルの5
つの最下位アドレスビットを含む。これらの5つのアド
レスビットは、特定にラッチされた剰余バイトを取出し
てオンザフライECC動作の間マイクロコントローラ1
96によって処理するために、マイクロコントローラに
よって使用される。第2に、シンドロームラッチ閉鎖制
御SYNLCLS信号は、剰余ラッチ68を動作してオ
ンザフライECC動作のために特定の(たとえば非ゼロ
の)剰余をラッチするために使用される。剰余ラッチ6
8は通常は透過モードにある。出力ライン80で誤りを
検出するとすぐ、データシーケンサ100がこの信号を
非同期にアサートして、シフトレジスタ26、36、4
0、46、58および62からの剰余バイトをラッチす
る。この動作は次のデータセクタのために起こる再初期
化の前に実行される。したがって、12ビットのECC
シンドローム剰余は、次のデータセクタがシンドローム
発生器回路10によって計算されかつその剰余バイトが
回復されている間に誤り場所および誤り値がマイクロコ
ントローラ196によって決定されかつ訂正されること
が可能な情報を与える。第3に、シンドロームラッチ開
放制御SYNLOPE信号はシンドロームラッチ閉鎖制
御信号の逆でなければならない。このSYNLOPE信
号はシンドローム剰余ラッチ68がその透過モードであ
る場合に真であり、かつシンドロームラッチ68がラッ
チされているときはローである。
【0104】バス70、72、74、76および77上
のバイト値はゼロ検出回路60に送られ、それらがゼロ
であるかどうかを見るためにチェックされる。シンドロ
ームバイトは、シフトレジスタグループ26、36、4
0および3つのインタリーブの個々のシフトレジスタ4
6、58、および62からなる最後のグループを通って
斬進的にクロック動作するので、シンドロームレジスタ
の4つのグループの各々の第1のものからのバイトのみ
がECCシンドロームゼロチェッキングのためにゼロ検
出回路に入力される必要がある。この配列は論理要素を
節約する。データ読出動作の間のゼロのパリティは現在
のデータブロック内に誤りが何ら検出されなかったこと
を示す。
【0105】5つの制御値がゼロ検出回路78に入り、
この5つの制御値とは、ECC可能化動作制御ECCE
NOP、誤り検出動作制御CRCOP、誤り訂正動作制
御ECCOP、バイトクロック信号BYTCLKAおよ
び非クロスチェッキング動作制御NOXCである。これ
らの制御信号はゼロ検出回路78が特定のECCシンド
ローム、クロスチェッキングシンドロームまたはEDC
シンドロームがゼロであるかどうかを決定し、それによ
ってオンザフライ訂正を容易にすることを漸進的に可能
にする。
【0106】単一ビット剰余出力制御値はライン80上
に与えられる。このラインはチェックされている剰余バ
イトがゼロに等しいときはに1つの論理状態であり、か
つゼロ検出回路78によって決定されるようにゼロのパ
リティがないときは他の論理状態である。オンザフライ
サービスルーチンはマイクロコントローラ196によっ
て要求され、かつその実行の一部としてシンドロームラ
ッチ68によって実際にラッチされたシンドロームバイ
ト値は、ライン80上の単一ビットシンドローム値が非
ゼロパリティを示すときはいつでも、シンドロームデー
タバス82を介してディスクファイルのマイクロコント
ローラ196へと出力される。かかる状態は各データフ
ィールド上に付加された12のECCバイトをチェック
することから生じ得る。他の誤り状態マイクロコントロ
ーラ介入は、たとえば誤り検出コード(EDC)動作の
間に、3バイトIDチェックフィールドか2バイトID
チェックフィールドかのどちらかをチェックすることか
ら生じ得る。
【0107】一旦マイクロコントローラ196がセクタ
内の誤りバーストをオンザフライで位置決めしかつ訂正
すれば、発生した誤訂正の確率はやはり、剰余ラッチ1
68の中で保持されかつ必要に応じてマイクロコントロ
ーラ196によって読出されるクロスチェック剰余バイ
トに対するデータの訂正の影響をマイクロコントローラ
196に決定させることによって調べられる。
【0108】クロスチェック剰余バイトを得るために、
ECCデータバス16上のデータブロックは排他的OR
ゲート84を通される。ゲート84からの出力は、al
pha1 積を計算してバス88上に出力する乗算器86
を通される。alpha1 積はそれから2つのバイトク
ロスチェッキングシフトレジスタ90aおよび90bの
中にラッチれさる。シフトレジスタ90bからの出力は
XORゲートアレイ84にフィードバックされ、またマ
ルチプレクサ64へ他の入力を与えるので、その結果ク
ロスチェッキングバイトは図1で示されるようにデータ
フィールドに付加されることが可能である。
【0109】レジスタ90aからの出力バス94は第1
のクロスチェッキングバイトがシンドロームラッチ68
の中にラッチされて、かつまたゼロ検出回路78によっ
てチェックされることを可能にする。同様に、レジスタ
90bからの出力バス96は第2のクロスチェッキング
バイトが剰余ラッチ68の中にラッチされるとともにゼ
ロ検出回路78によってゼロパリティをチェックされる
ことを可能にする。
【0110】ECC剰余バイト値がゼロではないと決定
されかつ12のECC剰余バイトが剰余ラッチの中にラ
ッチされる場合に、そのときレジスタ90aおよび90
bにある2つのクロスチェッキング剰余バイトもまた剰
余ラッチ68の中にラッチされる。クロスチェッキング
剰余バイトはそれから部分シンドロームバイトXC1お
よびXC2へ変換される。マイクロコントローラ196
による誤りバースト訂正の計算に続くECC動作の後、
それは部分シンドロームバイトXC1およびXC2に対
する訂正の影響を計算する。もしそれらのバイトがデー
タ誤りの訂正後ゼロでなければ、オンザフライ誤り訂正
によって訂正されることが不可能な誤りが存在すると決
定され、データストリームは中止され、かつリトライ
が、一例として、たとえばSCSIインタフェース規約
に従って実施された従来のECC手順に従って処理され
7る。結局、もしクロスチェック剰余バイトが訂正後ゼ
ロでなければ、その誤りは訂正不可能であると決定さ
れ、ディスクドライブは停止しかつホストの装置に訂正
不可能な誤りが発生したことを知らせる。もしクロスチ
ェックバイトが誤り訂正後ゼロであれば、データの誤訂
正の確率がそれによって大幅に低減されることが決定さ
れる。
【0111】クロスチェッキングシフトレジスタ90a
および90bは、それらを既知の状態に設定する初期化
制御信号CTLIECによって初期化され、かつバイト
クロック信号BYTCLKAによって、ならびにECC
およびクロスチェッキング動作が制御ゲート89によっ
て決定されたように行なわれている(IDフィールド誤
り検出動作の代わりに)ことを示す信号によって、クロ
ック動作される。
【0112】以下の説明はそのラベルが図4および図5
に現われている様々な制御およびデータ信号をまとめた
ものである。これらの信号のタイミングは図6に示され
たタイミンググラフで与えられる。
【0113】SYNLDAT[7:0]シンドロームラ
ッチされたデータ:シンドロームデータのバイトは5ビ
ットのラッチされたアドレス(LADD)バス上のアド
レスによって決定された選択されたラッチされたシンド
ロームバイト位置から読出される。このバイトはマイク
ロコントローラ読出動作の間マイクロコントローラアド
レス/データバスを介して送られる。このデータはRS
ECC制御信号によってストローブされる。
【0114】LADD[4:0]ラッチされたアドレス
バス:現在動作中のマイクロコントローラアドレスサイ
クルの5つの最下位アドレスビットがシンドロームラッ
チ68のバイトレジスタの特定的な1つをアドレスする
ために入力される。これらの5つのアドレスビットはど
のラッチされたシンドロームバイトがマイクロコントロ
ーラ読出動作の間マイクロコントローラ196に読出さ
れるかを決定するために使用される。
【0115】SYNLCLSシンドロームラッチ閉鎖:
この信号はオンザフライ誤り訂正のためにシンドローム
ラッチ68を閉鎖するために使用される。シンドローム
ラッチ68は通常は透過モードである。ECCシンドロ
ームの誤りを検出するとすぐ、データシーケンサ回路1
00(図7および図8)はこの信号を非同期にアサート
してシンドローム発生器シフトレジスタからシンドロー
ムラッチ68の中へデータをラッチし、その結果誤りを
示すシンドロームデータは失われることはない。データ
シーケンサ100によるこのアサーションは初期化制御
信号CTLIECによって次のデータセクタのために起
こる再初期化に先立って行なわれる。したがって、コー
ド化された誤り場所を含むシンドロームはマイクロコン
トローラ196によってデコードされ、次のセクタが読
出されかつシンドロームシフトレジスタの組26、3
6、40ならびに最後のグループのレジスタ44、58
および62を通されている間に訂正される。
【0116】SYNLOPEシンドロームラッチ開放:
この制御信号はシンドロームラッチ閉鎖制御信号の逆で
なければならない。これはシンドロームラッチ68が透
過モード(ラッチ出力=シンドローム)である場合に真
であり、かつシンドロームラッチ68がラッチされて静
的である場合に偽である。
【0117】ECCCRCN ECC/CRC制御:こ
の信号はどの型のシンドロームをECC発生器10が計
算しようとしているかを示す。真のときは、この制御ラ
インはECCおよびクロスチェッキングがデータバイト
上で計算されようとしていることを示す。偽のときは、
このラインはEDCがIDフィールドのバイト上で計算
されようとしていることを示す。
【0118】CTLIEC制御割込ECC:真のとき、
この制御ラインはECC発生器とクロスチェッキング発
生器との双方のすべてのシンドロームバイトを予め規定
された初期化値に非同期に設定し、この値は不変であり
得るが、1と0とからなる任意のパターンである。
【0119】WRGATE書込ゲート:この制御信号
は、シンドロームがバイトクロックBYTCLKAによ
ってクロックアウトされている間にシンドローム発生器
がシンドロームを計算し続けることを妨げるためにCR
COP(IDフィールドの誤り検出)かECCOP(E
CC動作)かのどちらかが真にアサートされている間に
使用される。
【0120】CRC2B2バイトフォーマット:真にア
サートされている場合、この制御信号はデータIDフィ
ールド上のEDCのための2バイトフォーマットを選択
する。この場合、同一のシンドローム発生器が2バイト
EDCのために使用される。デアサートされている場
合、このラインは3バイトEDCシンドロームプロセス
を選択する。
【0121】SYND0剰余イコールゼロ:ゼロ検出回
路78によって出力されたこの制御信号は誤りを検出す
るために使用される。2バイトEDCフォーマット上
で、この信号はもしEDC剰余バイトが両方ともゼロに
等しければ、BYTCLKAの立上がり縁に続いてアサ
ートされるであろう。3バイトEDCフォーマットを使
ってかつECC動作の間に、この制御信号は、もしバイ
トクロックBYTCLKAの最後の3つの立上がり縁に
続いてこの信号が真にアサートされれば、ゼロEDC剰
余バイト状態を示すであろう。つまり、もしBYTCL
KAの最後の2つの立上がり縁上でECCENABが真
にアサートされ、かつBYTCLKAの後の立上がり縁
上でECCENABがこの信号が真であるとデアサート
した後、ECC剰余バイトはゼロに等しい。
【0122】SERDOUT[7:1]直列/非直列デ
ータアウト:このバス12はシンドロームが計算される
ことになっているデータバイトをECC回路10に伝え
る。データはBYTCLKAの立上がり縁上で有効でな
ければならない。データシーケンサ読出動作中に、EC
CINデータは並直列変換器/直並列変換器SERDE
S106から生じ、これは前に引用された同一譲受人に
譲渡されたマーチャーゾウの米国特許第4,675,652 号で
より完全に説明される。データバイト、クロスチェッキ
ングバイトおよびECCバイトのすべてはBYTCLK
Aと同期してクロック動作される。データシーケンサ書
込動作中に、ECCINデータはFIFOバッファメモ
リから生じ、すべてのデータバイトはBYTCLKAと
同期してクロック動作され、かつクロスチェッキングバ
イトおよびシンドロームバイトは計算されてデータスト
リームに付加される。最後のデータバイトに続いて、E
CCINはECCOUTに接続されなければならず、そ
の結果ECCシンドロームはクロスチェッキングバイト
上で計算され得る。
【0123】ECCDOUT[7:0]ECCデータア
ウト:このバス66はECC回路10から外へデータを
運ぶ。データはBYTCLKAの立上がり縁上で有効で
ある。ECCシンドロームデータは、WRGATEおよ
びECCOP制御ラインが真にアサートされている間、
バイト直列フォーマットのこのポートで利用可能であ
る。EDCシンドロームデータは、WRGATEおよび
CRCOP制御ラインが真にアサートされている間、利
用可能である。
【0124】BYTCLKAバイトクロックA:この信
号はすべてのECCおよびEDC動作のための基本クロ
ック動作信号を表わす。
【0125】ECCENOP ECC可能化動作:この
制御ラインはどのBYTCLKA縁がECC回路10の
ためのデータを含むかを示す。BYTCLKA信号は、
いかなる過渡誤りもBYTCLKAが真である間に発生
しないように、ANDゲート13においてこの信号と内
部でゲート処理される。
【0126】CRCOP EDCおよびクロスチェッキ
ング制御:この制御ラインはどのバイトがEDCバイト
であってかつどのバイトがクロスチェッキングバイトで
あるかを示す。この信号は、EDCまたはクロスチェッ
キングバイトがその上でECC発生器ブロック10の中
にクロック動作されるBYTCLKAの立上がり縁上で
真にアサートされなければならない。
【0127】ECCOP ECC動作制御:この制御ラ
インはどのバイトがECCバイトであるかを示す。この
信号は、ECCバイトがECCシンドローム発生器10
の中にクロック動作されているBYTCLKAの立上が
り縁上で真にアサートされなければならない。
【0128】図6のタイミング図を参照して、共通の水
平な時間軸に沿うタイミング信号の上部グループは、I
Dフィールド上でのEDCチェックの間のリストに挙げ
られた制御信号の様々な論理状態を示す。図6のタイミ
ング信号の下部グループは、ECCおよびクロスチェッ
キング動作の間のリストに挙げられた制御信号の様々な
論理状態を表わす。
【0129】ここで図7および図8を参照して、ECC
シンドローム発生器回路10が、図9に示されかつ以下
でより詳細に論じられるように、全体のディスクドライ
ブアーキテクチュア160のデータシーケンサ100内
の一つの機能的要素にすぎないことが理解される。デー
タシーケンサ100は、パルス検出器から直接入来デー
タを受信するデータフィールドアドレスマーク検出器1
02を含む。検出器102は高周波数磁束遷移のシーケ
ンスを探し、そのようなものが検出されたときには、P
LL188がそのシーケンスにロックされ、かつ回復さ
れたディジタルランレングスコード化されたデータがア
ドレスマークシーケンスの存在についてチェックする。
この点に関して、アドレスマーク検出器102は、1,
7コード化ルールと一致せずかつアドレスマークを表わ
すように予め定められた独特のビットシーケンスを検出
するために、データストリームをモニタする。アドレス
マーク検出器102は、アドレスマークを表わすビット
シーケンスが生のデータストリームで発見されるときは
いつでも、生のデータストリームからのバイトクロック
信号BYTCLKAおよびアドレスマーク発見制御信号
を発生する。
【0130】1,7ランレングス制限されたエンコーダ
/デコーダ104は1,7ランレングス制限された(R
LL)コードへおよびそのコードから直列データをコー
ド化およびデコードし、並直列変換器/直並列変換器
(SERDES)106は直列のビットごとのフォーマ
ットへおよびそのフォーマットからデータバイトをまと
めたりばらしたりする。エンコーダ/デコーダ104お
よびSERDES106は実質上、上に記された引用さ
れたマーチャーゾウの米国特許第4,675,652 号で説明さ
れたようなものである。FIFOバイトレジスタ108
は、データバイトがシーケンサ100と外部キャッシュ
バッファメモリアレイ214との間で非同期に転送さ
れ、外部結晶クロック標準(ディスクから読み戻された
生のデータストリームと同期化されるBYTCLKAと
反対の)によってクロック動作されることを可能にす
る。マルチプレクサ110は並直列変換器/直並列変換
器106およびエンコーダ/デコーダ104によって2
方向のデータフローを調整し、その結果ECC発生器1
0によって発生されるECCシンドロームバイトは記憶
表面へと流れるデータブロックに付加され、かつ書込可
能制御記憶(WCS)バス134上に存在するデータ値
は記憶のためのディスクに送られることが可能である。
【0131】データIDフィールドから読出された参照
データセクタ(つまり物理的なセクタおよび変換器ヘッ
ド)識別バイトは、比較マルチプレクサ112を介して
比較回路114へと送られる。比較回路114はSER
DES106から受信された実際のデータセクタ識別バ
イトをセクタカウンタ116で保持された参照識別バイ
トと比較する。もし一致が存在すれば、所望のセクタ場
所に到達しており、かつCompare =0制御信号が比較回
路114によってジャンプ制御マルチプレクサ回路13
2へと出力される。
【0132】書込可能制御記憶(WCS)116は、シ
ーケンサ110の動作状態のすべてを制御しかつマイク
ロコントローラアドレスデコーダ118によってデコー
ドされたアドレスによって制御されたその場所でマイク
ロコントローラ196によって直接読出されかつ書込ま
れた情報を取込んだ制御語を記憶する二重の機能を与え
る。BYTCLKAクロックサイクルの半分の間、マル
チプレクサ120はマイクロコントローラ196による
制御記憶116への直接アクセスを可能にする。
【0133】BYTCLKAサイクルの残りの半分の
間、シーケンサコントローラ122からのアドレスは制
御記憶メモリ領域116をアドレス指定するために使用
される。コントローラ122は、コントローラ122が
複数個の予め定められた状態にジャンプすることを可能
にするシーケンス制御デコーダブロック124、様々な
アドレス間を選択するシーケンサアドレスマルチプレク
サ、マルチプレクサ120を経て制御記憶116に印加
するための最後のシーケンサアドレスを保持するための
最後のアドレスレジスタ128、およびレジスタ128
で保持された最後のアドレスをシーケンサアドレスマル
チプレクサ126へ選択的に送り戻す書込可能制御記憶
マルチプレクサ130を含む。
【0134】シーケンサコントローラ122は、図7お
よび図8に示されるように複数個の論理入力からジャン
プ制御信号を発生するジャンプ制御マルチプレクサ13
2によって直接制御される。28ビット幅書込可能制御
記憶(WCS)データバス134は書込可能制御記憶メ
モリ116と直接通信し、かつそこに保持された値が図
7および図8に示された経路に沿ってシーケンサ100
を通して循環することを可能にする。オプコードバス1
36はオプコードデコーダ138につながり、デコーダ
138はそこから出てくるように示された制御ライン上
の複数個の論理状態に各5ビットオプコードをデコード
する。ECC/CRC SELライン、ECCOPライ
ンおよびCRCOPラインは、前に説明されたように、
ECCシンドローム発生器10に直接接続する。PUS
H SELラインは、たとえばデータフィールドカウン
トバイトC3、C2およびC1が4バイトレジスタスタ
ック142のトップ上に直接押付けられることを可能に
するプッシュマルチプレクサ140へと延びる。トップ
オブスタック(TOS)バスおよびネクストオブスタッ
ク(NOS)バスは、「1」の値でシーケンサカウンタ
146をロードする能力を有するマルチプレクサ144
を経てバイトシーケンスカウンタ146にスタック14
2を接続する。バイトシーケンスカウンタ146はシー
ケンス100内に現在のバイトカウント(ブロック内の
バイトにおける残りのフィールド長)を維持する。現在
ロードされたバイトカウントがゼロに増分する場合、特
定のフィールドの端部に到達しており、シーケンサカウ
ンタ146はジャンプ制御マルチプレクサ132にSC
NT=0値を出力し、その結果次の状態がもたらされ得
る。
【0135】制御デコーダ148は書込可能制御記憶1
16から一次制御バイト、二次制御バイトおよびカウン
ト選択バイトを受信し、書込ゲート信号WRGATEお
よびECCシンドローム発生器10を直接制御する初期
設定ECC信号IECCを含んで、図7および図8のデ
コーダ148から出るように示された制御ラインを介し
て出力される特定の論理制御値にこれらの値をデコード
する。
【0136】ループカウンタ150は特定のデータブロ
ック転送トランザクションの間に作られるべきループの
数でプリセットされ(各ループはデータブロックを転送
するために要求される状態を名目上表わす)、かつカウ
ントがゼロに達するときLOOPCNT=0制御値を発
生する。要求された数のデータブロックが転送されたこ
とを表わすこの制御値はまたジャンプ制御マルチプレク
サ132にも与えられる。インデックスタイムアウトカ
ウンタ152は、シーケンスコントローラ124を制御
するために使用されるインデックスタイムアウト値IN
XCNT=0を発生することによって各トラックの開始
の跡をたどる。サーボセクタSの第1のセクタに記憶さ
れた1回転につき1回の生のインデクス信号は、サーボ
制御回路180によって検出され、かつインデックスカ
ウンタ152をクロック動作するために使用される。シ
ーケンスコントローラへの他の入力はジャンプ制御マル
チプレクサ132からのジャンプ値、アドレスマーク検
出器102からのアドレスマーク発見値AMFOUND
およびシーケンスカウンタ146からのバイトシーケン
スカウンタSCNT=0値である。
【0137】図9を参照して、固定ディスクドライブデ
ータ記憶サブシステム160は、たとえば直径で3.5
インチまたはより好ましくは2.5インチの直径の記憶
ディスクである少なくとも1つの回転データ記憶ディス
ク162を含み(この発明は大小どちらであってもいか
なる実際的なディスクの直径にも関連して有利に作用す
るが)、かつこのディスク162は、ディスク162が
固定されているディスクスピンドルハブに関連して形成
される直接ドライブブラシレスDCスピンドルモータの
ようなスピンドルモータ164によって、3600RP
Mのような実質的に一定の角速度で回転する。モータ1
64は、シーケンサ100、ENDEC104、サーボ
コントローラ180およびPWM出力178、マイクロ
コントローラインタフェース202およびバッファメモ
リコントローラ210を含むVLSI回路チップ内に含
まれたモータ制御回路168によって制御されるモータ
ドライバ回路166によって駆動される。
【0138】モータ制御回路168はたとえば複数のサ
ーボセクタSの第1のセクタから読出される生のインデ
ックスパルスを供給するサーボ制御回路180に直接応
答する。生のインデックスパルスは基準周波数に対して
時間決めされ、かつサーボ制御回路180は、次から次
へと示されるスピードアップまたはスローダウン命令を
モータドライバ166に伝える。
【0139】複数個のたとえば薄膜データ変換器ヘッド
170aおよび170bは、少なくとも1つのデータ記
憶ディスク162の両側の主要データ記憶表面にそれぞ
れ関連する。データ変換器ヘッドは好ましくは、必ずし
も必要というわけではないが、質量平衡の回転ボイスコ
イルアクチュエータ172のアームアセンブリ171の
垂直に整列されたアームに順に装着されたインライン整
列されたロードビームに取付けられる。ヘッド170a
および170bはデータ表面に対して接触−開始−中止
関係で従来動作し、かつそれらはたとえばウィンチェス
タ(Winchester)の固定ディスク技術で通常の空気ベア
リングに基づく動作中にその表面の上を「飛ぶ」。
【0140】アクチュエータ172のコイルは、フィル
タ176から受信されたローパスフィルタされた幅変調
パルスから応答して2方向の駆動電流を発達させるサー
ボドライバ回路174によって駆動される。フィルタ1
76はサーボ制御回路180内でサーボパルス幅コンバ
ータ178に接続される。パルス検出器184によって
形づくられるサーボパルスおよびピーク検出器192に
よって検出されるピークは、アナログ対ディジタルコン
バータ194でディジタル値に変換されて、マイクロコ
ントローラ196に直接伝えられる。埋込型サーボセク
タSからヘッド170によって読出された粗のヘッド位
置情報は、PLL188、ENDEC104およびシー
ケンサ100から独立した態様でサーボ制御回路180
によって直接デコードされる。サーボ制御回路180
は、回路180のデータリーダによってデコードされる
トラック識別フィールドおよび精の位置オフセット信号
を含む、各サーボセクタを含む様々なフィールドのため
のタイミングを確立するマスタステートマシンを使って
実現化される。精の位置オフセット信号の振幅はピーク
検出回路192でサンプリングされかつ保持され、時間
配分された動作のサーボ段階の間マイクロコントローラ
196によって処理される。ドライブ160にとって現
在好ましいサーボ配列のさらなる詳細は、1990年8
月17日に出願された同一譲受人に譲渡された米国特許
出願連続番号第07/569,065号で見出され、その開示は引
用により援用される。
【0141】たとえば各データヘッド170aまたは1
70bはシリコン・システムズ・インコーポレーテッド
(Sylicon Systems, Inc. )、タスチン(Tustin)、カ
リフォルニア(California)によって作られた型SSI
32R4610R 2または4チャネル薄膜ヘッド読
出/書込装置または均等物のような前置増幅器/選択/
書込ドライバ回路182内に含まれるヘッド選択回路に
よって選択される。選択されたヘッドによって変換され
たアナログ磁束遷移信号は、記憶表面から回復されたア
ナログ信号の信号対雑音比を増大するために、密閉され
たヘッドおよびディスクアセンブリ内でかつデータ変換
器ヘッド170aおよび170bに非常に近接した多数
の導電トレースを保持する薄くかつ柔軟性のあるプラス
チックサブストレート( MylarTM)に好ましくは取付け
られる回路182の前置増幅器部分で前置増幅される。
【0142】回復されたアナログデータは、従来のよう
にアナログ磁束遷移をディジタル論理端縁に変形するパ
ルス検出器184を通される。書込事前補正回路186
はシーケンサ100から受信されたディスクに書込まれ
るべきデータを事前補正する。事前補正された書込デー
タは、選択されたヘッド変化器への伝達のためにヘッド
選択/前置増幅器回路182に直接供給される。位相ロ
ックされたループ回路188はディジタル端縁をデータ
ビットペア(コード化されたデータ)に分離するように
動作し、かつそれらのデータビットペアをシーケンス1
00の一部として図6に例示されるエンコーダ/デコー
ダ104に伝える。周波数シンセサイザ190は、様々
な基準周波数が上に述べられたようにゾーン状にされた
ビット記録を与えるために合成されることを可能にす
る。シンセサイザ190はプログラムされたマイクロコ
ントローラ196の制御下で直接動作する。パルス検出
器184、書込事前補正回路186、PLL188、周
波数シンセサイザ190およびサーボバーストピーク検
出器192はナショナル・セミコンダクタ・コーポレー
ション(National Semiconductor Corporation)によっ
て作られる型DP8491または均等物のような単一の
VLSI集積回路パッケージ内にすべて好ましくは含ま
れる。
【0143】マイクロコントローラアドレス/データバ
ス198およびハイオーダアドレスバス200はマイク
ロコントローラ196から、シーケンサ100、エンコ
ーダ/デコーダ104、モータ制御168、サーボ制御
回路180およびバッファメモリコントローラ210と
直接通信するマイクロコントローラインタフェース20
2へと直接延びる。述べられたように、これらの回路は
好ましくは、必ずしも必要ではないが、図7および図8
のこれらの回路に対して単一ブロックによって提案され
た単一VLSI特定用途向けCMOS回路内で具体化さ
れる。アドレスバス204はマイクロコントローライン
タフェース202からプログラムメモリ206へと延び
る。プログラムメモリ206をアドレス指定するための
アドレスビット位置のいくらかが発生され、かつマイク
ロコントローラ196によってアドレスバス208を介
してプログラムメモリ206へ直接出力される。
【0144】バッファメモリコントローラ210はバッ
ファアドレスを発生してデータキャッシュとして好まし
くは構成されるバッファメモリ214へバス212を介
してそれらを出力する。この実施例において、バッファ
メモリ214は8Kビット×8ビットアレイ(64Kビ
ット)として構成される。データブロックはバッファデ
ータバス216を経てシーケンサ100内のFIFOレ
ジスタ108およびバッファメモリ214へおよびそれ
らから転送される。このバス216はまた、ホストシス
テムに接続されたインタフェースバス220を経てデー
タブロックおよび命令値を受信し、かつその値およびブ
ロックをメモリ214で記憶し、かつメモリ214から
インタフェースバス220を経てホストへ状態値および
データブロックを戻すインタフェース制御回路218へ
延びる。インタフェース回路はSCSIインタフェース
標準のような産業標準ホストサブシステムバスレベルイ
ンタフェースを実現化するか、または当該技術分野にお
いて従来から知られているIDEインタフェース標準
(IBM ATバス)を実現化し得る。たとえば、NC
R型5380SCSIインタフェースコントローラはS
CSIバス規約標準を実現化するために適したインタフ
ェース制御回路218である。
【0145】直接メモリアクセス経路はマイクロインタ
フェース202およびバッファ制御210を経てマイク
ロコントローラ196とバッファメモリ214との間に
存在する。この発明のオンザフライ誤り訂正方法を実現
化するために、この経路を使って、誤り場所から誤った
バイトを取出し、誤ったバイトと訂正値とのXORをと
り、かつ訂正値を訂正場所に書込んで、マイクロコント
ローラがバッファメモリ214の特定のバイト場所にア
クセスすることは実際的である。
【0146】上に繰り返し記されたように、ディスクド
ライブ160はこの発明のオンザフライ誤り訂正技術を
利用するために現在好ましいサブシステムまたは環境で
ある。当業者によって理解されるように、タスクを発生
しかつチェックするローレベルの反復性シンドロームの
多くは、図4および図5で示されかつ図4および図5に
関連して説明されるシンドローム発生器ハードウェアで
実行される。誤り訂正値を計算するハイレベルタスクは
この明細書で概略を示された誤り訂正サービスルーチン
プログラムに従ってマイクロコントローラ196によっ
て必要に応じて実行される。
【0147】必ずしも必要ではないが好ましくは、マイ
クロコントローラ196はNEC78322 または均等物の
ような単一モノリシックマイクロコントローラであっ
て、サーボセクタごとに2段の時間分割された配列で動
作し、各サーボセクタの到着に基づく第1の時間間隔は
ヘッド位置決めのためのサーボ制御動作に専用され、第
2のかつ続く時間間隔は、たとえばデータブロック転送
の監督および誤り訂正動作を含む他のタスクに向けられ
る。ディスクドライバアーキテクチュアのこの形式のあ
らましは同一譲受人に譲渡されたムーン(Moon)他の米
国特許第4,669,004 号で与えられ、その開示は引用によ
り援用される。第2のかつ続く時間間隔の間にマイクロ
コントローラ196によって行なわれるタスクを管理す
るための階層的なシステムは、1988年5月10日出
願された同一譲受人に譲渡された米国特許出願連続番号
第07/192,353号で、現在は米国特許第5,005,089 号で開
示され、その開示は引用により援用される。模範的なマ
イクロコントローラ196の誤り訂正機能は多重マイク
ロコントローラアーキテクチュアにおける1つ以上のマ
イクロコントローラによって、リアルタイム性能は改良
され、実現化のコストはより高くなるが、容易に実行さ
れ得る。
【0148】概観において、ディスクからのデータ読出
動作のための誤り訂正プロセスはデータ読み戻しプロセ
スの間(および各データブロックが前のデータ書込動作
の間にシンドロームバイトとそれに付加されるクロスチ
ェッキングバイトとを有した後)、以下のステップを含
む。
【0149】1. シンドローム発生器10のシフトレ
ジスタを、任意に順番が定められた1と0との周期的に
起こるパターンである予め定められた既知の状態にプリ
セットするステップ。
【0150】2. ディスクから読出されたデータバイ
トのストリームからのデータブロック(データセクタ)
のために、これらのバイトをシンドローム発生器10を
通すことによってシンドローム剰余バイトとクロスチェ
ッキングシンドローム剰余バイトとを発生するステッ
プ。
【0151】3. 各インタリーブのための剰余バイト
が各インタリーブの最後のバイトがシンドローム発生器
10の中にクロック動作されているときゼロに等しいか
どうかを見るためにチェックするステップ。
【0152】a.もし各インタリーブのための剰余バイ
トがゼロに等しければ、訂正は何も必要ないので次のブ
ロックまたはセクタまで待て。
【0153】b.もしインタリーブのための1つ以上の
剰余バイトがゼロに等しくなくかつシンドロームラッチ
がシンドロームを保持するために利用可能であれば、ス
テップ4に進め。
【0154】c.もし剰余バイトがゼロに等しくなくか
つシンドロームラッチがシンドロームを保持するために
現在利用可能でなければ(最後のデータブロックからの
剰余バイトは既に開始されたオンザフライ誤り訂正動作
の間そこでラッチされたままであることを意味する)、
データフローを中止せよ。つまりオンザフライ誤り訂正
はその実行を続けることができない。
【0155】4. 各インタリーブのための剰余バイト
をシンドロームラッチ68の中にラッチせよ。これらの
剰余バイトは形式R0、R1、R2およびR3(各イン
タリーブにつき)を有し、 R(x)=R3x3 +R2x2 +R1x+R0 (30) である。現在のデータブロックのための剰余バイトRi
がシンドロームラッチ68の中にラッチされた後、シン
ドローム発生器10は次のデータブロックのために剰余
バイトをデコードし続ける。隣接するデータブロックか
らの1対の非ゼロ剰余バイトは、オンザフライ誤り訂正
プロセスの現在述べられた実現化例を効果的に遮断する
であろう、なぜなら現在使用されているマイクロコント
ローラ196はオンザフライで連続的なデータブロック
から剰余バイトを受信しかつ記憶するための十分なラン
ダムアクセスメモリ空間に欠けるからである。しかしな
がら、増大されたランダムアクセスメモリ空間がこれら
のバイトを保持するために使用され、かつそれゆえに多
数の連続データブロックのためにオンザフライ誤り訂正
を継続することを可能にするために使用される理由は何
もない。遮断の可能性はマイクロコントローラ196に
よって第1の誤りを訂正しかつクロスチェッキングシン
ドロームでその訂正をテストするために要求される時間
にも依存する。さらなる制限がブロックバッファメモリ
214の大きさに帰する。また、シンドローム発生器1
0は、誤り訂正の速度を上げるために、シンドロームラ
ッチを経てマイクロコントローラ196に部分シンドロ
ームバイトを直接計算して出力するための付加的な回路
を設けることによって修正され得る。
【0156】5. マイクロコントローラ196が誤り
訂正サービスルーチンを要求してかつ実行することを引
起こしかつそのルーチンの実行を開始するステップ。当
業者によって既知であるように、このステップは割込ま
たはポーリング技術によって実現化され得る。
【0157】6. 誤り訂正アルゴリズムを実行してい
る間に必要に応じて剰余バイトを剰余ラッチ68からマ
イクロコントローラ196へ転送するステップ。ファー
ムウェアはもし剰余バイトのいずれもがゼロに等しくな
ければ、次の式に従って剰余バイトR(x)を部分シン
ドロームバイトS(x)に変換する。
【0158】
【数6】
【0159】ここでi=0,1,2および3である。
【0160】[指数の+記号は排他的OR動作よりはむ
しろ算術的な加算を示す]ので、その結果部分シンドロ
ームS0、S1、S2およびS3が得られる。我々はこ
の変換プロセスをよく調べなければならない、なぜなら
シンドローム発生器10はまた要求されるハードウェア
の量をより最適に最小限にするために剰余バイトRIを
与えるためにデータ読戻しの間使用されるからである。
【0161】7. 各インタリーブのために、3のイン
タリーブ内で剰余バイトを部分シンドロームバイトに変
換するステップ。
【0162】 S0=データモジュロ(X+alpha126 ) S1=データモジュロ(X+alpha127 ) S2=データモジュロ(X+alpha128 ) S3=データモジュロ(X+alpha129 ) a.オンザフライ単一バースト誤り訂正。オンザフライ
単一バースト誤り訂正のために、L1を誤り場所に等し
くかつe1を誤り値に等しくせよ。
【0163】(1)もし(S0=0)または(S1=
0)または(S2=0)またはS3=0)であれば、二
重バースト誤り訂正アルゴリズムに進め。
【0164】(2)もし(S1/S0=S2/S1=S
3/S2)であれば、継続せよ、さもなければ二重バー
スト誤り訂正アルゴリズムに進め。
【0165】(3)L1=Log[S1/S0]および
e1=S1(S0/S1)127を実行せよ。
【0166】(4)もしL1が予め定められた範囲外で
あれば(つまりインタリーブ1に対して0−175、イ
ンタリーブ2および3に対して0−174)、二重バー
スト誤りに進むか下のステップ8に進め。
【0167】b.二重バースト誤り訂正。二重バースト
誤り訂正のために、L1およびL2を誤り場所に等しく
し、かつe1およびe2をそれぞれの場所での誤り値に
等しくせよ。
【0168】(1)上の方程式(16)および(17)
に従ってphi1およびphi2を計算せよ。
【0169】(2)もしphi1またはphi2の分母
または分子がゼロに等しければ、訂正不可能な誤りをホ
ストに知らせよ。
【0170】(3)上に与えられた二次方程式(18)
の根を求めて結果として生じるX1およびX2値を出力
せよ。
【0171】(4)もしphi(x)に解がなければ、
訂正不可能な誤りをホストに知らせよ。
【0172】(5)上の方程式(19)および(20)
に従って誤り場所L1およびL2を計算せよ。もしL1
かL2のどちらかが予め定められた許される範囲内の値
を超えて位置づけられた値を有すれば、訂正不可能な誤
りをホストに知らせよ。
【0173】(6)上に与えられた方程式(21)およ
び(22)に従って誤り値e1およびe2を計算せよ。
もしe1かe2のどちらかがゼロに等しければ訂正不可
能な誤りをホストに知らせるか下のステップ8に進め。
【0174】8. マイクロコントローラ196は変化
したバイトのクロスチェッキング部分シンドロームに対
する影響を計算し、この計算された値を保管し、データ
ブロックの他の2つのインタリーブの各々のためにこの
プロセスを反復する。
【0175】9. もし訂正がクロスチェッキングチェ
ッキングステップ8を通過すれば、マイクロコントロー
ラ196は、誤ったバイトをブロック内の誤り場所から
取出し、訂正されたバイトを与えるために誤ったバイト
と訂正値とのXORをとり、かつ訂正されたバイトを誤
り場所に書き戻すことによってマイクロインタフェース
202およびバッファ制御210を通じるバッファメモ
リ214へのそのDMAチャネルを使って誤りを訂正す
る。
【0176】10. 誤り訂正を考慮に入れると、 a.もしクロスチェッキング部分シンドロームがゼロに
等しければ、誤り訂正プロセスは誤訂正の確率内にある
と決定され、それゆえに完了される。シンドロームラッ
チ68は解放され、訂正された誤りを含むメモリバッフ
ァ214のデータブロックはホストへの転送のためにそ
れから解放される。
【0177】b.もしクロスチェッキング部分シンドロ
ームがゼロに等しくなければ、オンザフライ誤り訂正は
中止されステップ11が実行される。
【0178】11. 1つ以上のリトライが、訂正が達
成されるかまたはその誤りは初めに考えられたよりはる
かに大きいと決定され、その場合に訂正不可能な誤りが
ホストに知らされるまで、着手される。リトライがマイ
クロコントローラ196でプログラムすることによって
命令されるとき、そのリトライは、データフローが割込
まれた後このプロセスが実行されるという意味でオフラ
インでマイクロコントローラによって行なわれる。誤り
メッセージが発生され、ホストに送られ、リトライプロ
セスはインタフェースで標準のように、たとえば8つの
リトライの間続き得る。
【0179】したがって、オンザフライECCは、それ
によってデータがホストマシンに透過な態様でディスク
からホストに転送される読出チャネルプロセスの一部と
しての背景で本質的に発生する。もしここに述べられる
透過なオンザフライECC方法がユーザが受容可能な信
頼レベルに単数または複数の誤りを訂正することができ
なければ、より従来的な誤り回復活動および手順が、た
とえば従来のSCSI誤り訂正標準によりホストとのイ
ンタフェースで前面で発生するかもしれない。
【0180】IDフィールドをチェックするための誤り
検出プロセスはすべてシーケンサ100内で実行され、
その結果もし誤りがIDフィールドで検出されれば、セ
クタがアクセス不可能であると宣言されるかまたはアク
セスされるまで繰り返される。
【0181】この発明の一実施例を説明してきたが、こ
の発明の目的は十分に達成されたことが理解されるであ
ろうし、この発明の構成における多くの変更および幅広
く変化する実施例および応用例がこの発明の精神および
範囲から逸脱することなく提案されることは当業者によ
って理解されるであろう。この開示および説明は純粋に
例証的なものでありいかなる意味においても制限的なも
のではないことが意図される。
【図面の簡単な説明】
【図1】この発明の方法および装置とともに使用するた
めの512バイトデータフィールドの概略のグラフであ
って、データフィールドは3つのインタリーブの中に配
列され、それに対して2つのクロスチェッキングバイト
および12の誤り訂正バイトが付加された図である。。
【図2】回転データ記憶ディスクのデータ表面の平面図
グラフであり、異なったデータ転送速度およびユーザデ
ータ記憶容量を各々が有し、かつデータ記憶表面の全面
に延びる共通に整列されたサーボセクタSを各々が有す
る、トラックの8つのデータゾーンZ1からZ8を例示
する図である。
【図3】aは図2のグラフで示されたデータセクタのた
めでありかつ3バイト誤り訂正コードを使用するデータ
IDフィールドの概略のグラフの図であり、bはカウン
ト情報を含まず、かつそれゆえにそれほど有効でない2
バイト誤り検出コードを使用することが可能なデータセ
クタIDフィールドの概略のグラフの図である。
【図4】この発明の方法を実現化するECCエンコーダ
/デコーダおよびクロスチェッキング構造の詳細なブロ
ック図である。
【図5】この発明の方法を実現化するECCエンコーダ
/デコーダおよびクロスチェッキング構造の詳細なブロ
ック図である。
【図6】図2のECC構造の動作を例示する一連のタイ
ミング図である。
【図7】固定ディスクドライバのデータシーケンサ要素
内の図2のECC構造を示すブロック図である。
【図8】固定ディスクドライバのデータシーケンサ要素
内の図2のECC構造を示すブロック図である。
【図9】この発明の原理を実現化する図7および図8の
データシーケンスおよびECC構造を含む固定ディスク
ドライブデータ記憶サブシステムのブロック図である。
【図10】この発明の基本原理を概略的に説明するため
のブロック図である。
【符号の説明】
10 ECCシンドローム発生器回路 12 バス 13 論理ゲート 14 データエキステンダラッチ 22 ゼロ化回路 44 マルチプレクサ 68 シンドロームラッチ 196 マイクロコントローラ
フロントページの続き (72)発明者 ハン・シィ・ニューエン アメリカ合衆国、95131 カリフォルニ ア州、サン・ホーゼィ、ハツレット・コ ート、1286 (72)発明者 マイケル・ジィ・マチャド アメリカ合衆国、80303 コロラド州、 ボウルダー、パノラマ・ドライブ、7509

Claims (36)

    (57)【特許請求の範囲】
  1. 【請求項1】 データブロックのシーケンスを送信しか
    つ受取るための第1のデータソース装置(バス220に
    接続されたホストコンピュータ)と、 データブロックのシーケンスを一時的に記憶するための
    ブロックバッファ手段(214)と、 コードブロックのシーケンスを送信しかつ受取るための
    第2のデータソース装置(180,182,170a,
    162)とを備え、ここで各コードブロック(c[1]
    …c[526])は、対応するデータブロックに含まれ
    たユーザバイト(d[1]…d[512])を含みかつ
    ユーザバイトに関連する誤り訂正シンドロームバイト
    (c[515]…c[526])を付加的に含み、 前記第1のデータソース装置と前記ブロックバッファ手
    段(214)との間のインタフェース回路(218)
    と、 前記ブロックバッファ手段(214)と前記第2のデー
    タソース装置(188,182,170a,162)と
    の間に配され前記データブロックをコードブロックにコ
    ード化しかつ前記コードブロックをデータ行先装置に順
    序付けるためのエンコーダ(104)/シーケンサ(1
    00)と、 インタフェース回路(218)およびエンコーダ(10
    4)/シーケンサ(100)のブロック転送動作を監督
    するプログラムされたマイクロコントローラ(196)
    とを備えたデータ処理システムにおいて、前記シーケン
    ス内のデータブロック上でオンザフライ誤り訂正を実行
    するためのリードソロモン誤り訂正装置であって、前記
    リードソロモン誤り訂正装置は、 前記エンコーダ(104)/シーケンサ(100)に接
    続されて前記第2のデータソース装置(188,18
    2,170a,162)から各コードブロックを受取り
    かつ処理して、ユーザバイト(d[1]…d[51
    2])が前記データブロックとして前記ブロックバッフ
    ァ手段(214)に転送されている間に前記コードブロ
    ックに対する誤り訂正剰余バイトを回復するガロア体シ
    ンドローム発生器および剰余回復回路手段(10)を備
    え、前記誤り訂正剰余バイトはコードブロックに付加さ
    れたシンドロームバイト(c[515]…c[52
    6])に関連しており、 前記発生器および剰余回復回路手段(10)は、前記回
    復された誤り訂正剰余バイトのうちの所定のものを名目
    上の値と比較する比較手段(78)と、前記比較手段
    (78)によって等しくないことが決定されたことに応
    答して回復された複数の誤り訂正剰余バイトをラッチす
    るラッチ手段(68)とを含み、これにより前記発生器
    および剰余回復回路手段(10)を自由にして、システ
    ムにおけるデータブロックのフローの重大な割込なし
    に、前記シーケンスのコードブロックの次のものから誤
    り訂正剰余バイトを回復し、 前記マイクロコントローラ手段(196)は、前記等し
    くないことに応答して、誤り訂正サービスプログラムル
    ーチン(206における)を呼出しかつ実行し、かつそ
    のとき前記ラッチ手段から回復された誤り訂正剰余バイ
    トを選択的に獲得し、前記マイクロコントローラ手段
    (196)は、前記マイクロコントローラ手段内に配さ
    れ前記選択的に得られた誤り訂正剰余バイトに応答して
    少なくとも1つの誤り位置と対応する誤りの値とを計算
    することによって誤り訂正計算を実行しかつブロックの
    誤ったデータを置換える訂正されたデータを発生する計
    算手段を含み、かつ前記ブロックバッファ手段(21
    4)を直接アクセスして前記ブロックが前記インタフェ
    ース回路(218)によって前記第1のデータソース装
    置(バス220に接続されたホスト)に転送される前に
    誤ったデータを前記訂正されたデータで置換える直接ア
    クセス手段をさらに含む、リードソロモン誤り訂正装
    置。
  2. 【請求項2】 前記発生器および回復回路手段は、前記
    エンコーダ/シーケンサによって各データブロックに付
    加されたクロスチェッキングシンドローム情報を回復し
    かつ前記回復されたクロスチェッキングシンドローム情
    報を前記ラッチ手段に記憶するリードソロモンクロスチ
    ェックシンドローム発生器手段をさらに含み、かつ前記
    マイクロコントローラ手段は前記誤り訂正サービスプロ
    グラムルーチンを実行したときにさらに回復されたクロ
    スチェッキングシンドローム情報により誤り訂正計算の
    精度を確認する、請求項1に記載の装置。
  3. 【請求項3】 前記コードブロックの各々はデータ識別
    フィールドを含み、かつ前記発生器および回復回路手段
    はさらに、各コードブロックの前記データ識別(ID)
    フィールドに先に付加された誤り検出シンドローム情報
    を回復しかつチェックするエラー検出手段を含む、請求
    項1に記載の装置。
  4. 【請求項4】 前記発生器および回復回路手段は、x8
    +x4 +x3 +x2 +1の形式を有するフィールド発生
    器多項式によって発生されるガロア体(28 )に従って
    誤り訂正コード化シンドローム情報を発生し、かつフィ
    ールドの第1項はx5 +x3 +x+1(2進数で001
    01011)であり、各誤り訂正シンドローム多項式
    は、G(x)=x4 +(alpha18 )・ x3 +(alpha87)
    ・ x2 (alpha18 )・ x1 +1の形式である、請求項1
    に記載の装置。
  5. 【請求項5】 前記回復されたクロスチェッキング情報
    は、多項式G(x)=x2 +aに従ってリードソロモン
    クロスチェックシンドローム情報に関連し、ここでaは
    1に等しくない、請求項2に記載の装置。
  6. 【請求項6】 前記リードソロモンクロスチェックシン
    ドローム情報は、多項式G(x)=x2 +alpha 1 に従
    い、ここでalpha 1 は1に等しくない、請求項5に記載
    の装置。
  7. 【請求項7】 前記誤り検出手段は、次の多項式に従っ
    て発生した2バイトのシンドロームに従って付加された
    誤り検出情報を有する前記データIDフィールドにおけ
    る誤りを検出し、前記多項式は、 GEDC2(x)=x2 +ax+bであり、ここでbは1に
    等しくない定数である、請求項3に記載の装置。
  8. 【請求項8】 前記誤り検出手段は、次の多項式に従っ
    て発生した2バイトのシンドロームに従って付加された
    誤り検出情報を有する前記データIDフィールドにおけ
    る誤りを検出し、前記多項式は、 GEDC2(x)=x2 +x+alpha 18である、請求項7に
    記載の装置。
  9. 【請求項9】 前記誤り検出手段は、次の多項式に従っ
    て発生した2バイトのシンドロームに従って付加された
    誤り検出情報を有する前記データIDフィールドにおけ
    る誤りを検出し、前記多項式は、 GEDC2(x)=x2 +alpha 81・x+alpha 81である、
    請求項7に記載の装置。
  10. 【請求項10】 前記誤り検出手段は、次の多項式に従
    って発生した3バイトのシンドロームに従って付加され
    た誤り検出情報を有する前記データIDフィールドにお
    ける誤りを検出し、前記多項式は、 GEDC3(x)=x3 +ax2 +bx+cである、請求項
    3に記載の装置。
  11. 【請求項11】 前記誤り検出手段は、次の多項式に従
    って発生した3バイトのシンドロームに従って付加され
    た誤り検出情報を有する前記データIDフィールドにお
    ける誤りを検出し、前記多項式は、 GEDC3(x)=x3 +alpha 87・x2 +alpha 87・x+1 である、請求項10に記載の装置。
  12. 【請求項12】 前記誤り検出手段は、次の多項式に従
    って発生した3バイトのシンドロームに従って付加され
    た誤り検出情報を有する前記データIDフィールドにお
    ける誤りを検出し、前記多項式は、 GEDC3(x)=x3 +alpha 81・x2 +alpha 87・x+alpha 18 である、請求項10に記載の装置。
  13. 【請求項13】 前記発生器および回復回路手段はさら
    に、各コードブロックに付加されたクロスチェッキング
    シンドローム情報を回復するためのリードソロモンクロ
    スチェックシンドローム発生器手段を含み、かつ前記ラ
    ッチ手段はまた回復されたクロスチェッキングシンドロ
    ーム情報を記憶し、かつ前記マイクロコントローラ手段
    は、回復されたクロスチェッキングシンドローム情報で
    誤り訂正計算の精度を確認し、前記リードソロモンクロ
    スチェックシンドローム発生器手段は次の多項式に従っ
    てクロスチェッキングシンドローム情報を計算し、前記
    多項式は、 G(x)=x2 +bであり、ここでbは1に等しくな
    い、請求項4に記載の装置。
  14. 【請求項14】 前記クロスチェックシンドローム発生
    器手段は、次の多項式に従ってクロスチェッキングシン
    ドローム情報を計算し、前記多項式は、 G(x)=x2 +alpha 1 である、請求項13に記載の装置。
  15. 【請求項15】 前記クロスチェックシンドローム発生
    器手段は、前記エンコーダ/シーケンサに接続され、入
    来するブロックを直列バイトのクロックされたデータス
    トリームとして受取る入力と、 クロックされたデータストリームの各バイトをフィード
    バックバイトと合計して合計バイトを発生する第1の合
    計接続点手段と、 前記合計バイトをalpha 1 で乗算して第1の積バイトを
    発生する第1の乗算器手段と、 前記第1の乗算器手段に接続されて、第1のバイトクロ
    ック期間中に前記第1の積バイトを記憶しかつ後続のバ
    イトクロック期間中に後続の積バイトを記憶する第1の
    クロックされたラッチステージ手段と、 前記第1のクロックされたラッチステージ手段に接続さ
    れて、第2のバイトクロック期間中に前記第1の積バイ
    トを記憶する第2のクロックされたラッチステージ手段
    とを含み、前記第2のクロックされたラッチステージ手
    段は前記第2のバイトクロック期間中に前記第1の積バ
    イトを前記フィードバックバイトとして前記合計接続点
    にフィードバックする、請求項13に記載の装置。
  16. 【請求項16】 前記ガロア体シンドローム発生器およ
    び剰余回復回路手段は、x8 +x4 +x3 +x2 +1の
    形式を有するフィールド発生器多項式によって発生され
    るガロア体(28 )に従って誤り訂正コード化シンドロ
    ーム情報を計算し、前記フィールドの第1項はx5 +x
    3 +x+1(2進数で00101011)であり、各誤
    り訂正シンドロームは、G(x)=x4 +(alpha 18
    ・x3 +(alpha 87)・x2 +(alpha 18)・x1 +1
    の形式である、請求項3に記載の装置。
  17. 【請求項17】 前記誤り検出手段は、次の多項式に従
    って2バイトのシンドロームを発生し、前記多項式は、 GEDC2(x)=x2 +ax+bであり、ここでbは1に
    等しくない、請求項16に記載の装置。
  18. 【請求項18】 前記誤り検出手段は、次の多項式に従
    って2バイトのシンドロームを発生し、前記多項式は、 GEDC2(x)=x2 +x+alpha 18 である、請求項17に記載の装置。
  19. 【請求項19】 前記誤り検出手段は、次の多項式に従
    って2バイトのシンドロームを発生し、前記多項式は、 GEDC2(x)=x2 +alpha 81・x+alpha 81 である、請求項17に記載の装置。
  20. 【請求項20】 前記誤り検出手段は、次の多項式に従
    って3バイトのシンドロームを発生し、前記多項式は、 GEDC3(x)=x3 +ax2 +bx+c である、請求項16に記載の装置。
  21. 【請求項21】 前記誤り検出手段は、次の多項式に従
    って3バイトのシンドロームを発生し、前記多項式は、 GEDC3(x)=x3 +alpha 87・x2 +alpha 87・x+1 である、請求項20に記載の装置。
  22. 【請求項22】 前記誤り検出手段は、次の多項式に従
    って3バイトのシンドロームを発生し、前記多項式は、 GEDC3(x)=x3 +alpha 81・x2 +alpha 87・x+alpha 18 である、請求項20に記載の装置。
  23. 【請求項23】 ディスクドライブデータ記憶サブシス
    テム内においてオンザフライ誤り訂正を実行するための
    リードソロモン誤り訂正装置であって、前記ディスクド
    ライブデータ記憶サブシステムは、 少なくとも1つの回転データ記憶ディスクと、 前記ディスクにデータを書込むためにかつ前記ディスク
    からデータを読出すために制御可能な態様で位置決めさ
    れる少なくとも1つのデータ変換器ヘッドと、 前記データ変換器ヘッドを位置決めするヘッド位置決め
    手段と、 読出/書込データチャネルと、 前記データブロックをコードブロックにコード化しかつ
    ブロックバッファメモリ手段からの前記コードブロック
    をデータ書込動作期間中に前記読出/書込チャネルおよ
    びデータ変換器ヘッドを介してディスク上に直列に順序
    付け、かつデータ読出動作期間中に前記直列データコー
    ドブロックをデコードしかつデータブロックに順序付け
    て前記ブロックバッファメモリ手段に与えるシーケンサ
    手段とを含み、前記ブロックバッファメモリ手段は前記
    データブロックの複数の連続するものを記憶することか
    でき、前記ディスクドライブ記憶サブシステムは、 ホストコンピュータとブロックバッファメモリ手段との
    間でデータブロックを転送するインタフェースコントロ
    ーラと、 前記ヘッド位置決め手段を監督し、かつ前記データシー
    ケンサ手段と、前記ブロックバッファメモリ手段と、前
    記インタフェースコントローラとの動作を制御するプロ
    グラムされたマイクロプロセッサ手段とをさらに含み、 前記リードソロモン誤り訂正装置は、 前記シーケンサ手段に接続されて各データブロックを受
    取りかつ処理し、前記データブロックに対して複数の部
    分的な誤り訂正シンドロームバイトを発生するガロア体
    シンドローム発生器および剰余回復回路手段を備え、前
    記バイトは前記データブロックに付加されてデータ書込
    動作期間中に前記ディスクに書込まれるべき対応するコ
    ードブロックを形成し、前記発生器および回復回路手段
    はデータ読出動作中に前記ディスクから読出された各コ
    ードブロックから複数の誤り訂正剰余バイトを回復する
    ことによって誤りを検出し、 前記発生器および回復回路手段は、前記再発生した複数
    の誤り訂正剰余バイトの予め定められたものと名目上の
    値とを比較する比較手段と、前記比較手段によって等し
    くないことが決定されたことに応答して回復された誤り
    訂正剰余バイトをラッチする手段とを含み、 前記プログラムされたマイクロプロセッサ手段は、前記
    等しくないことに応答して、誤り訂正サービスプログラ
    ムルーチンを呼出しかつ実行し、かつそのとき前記ラッ
    チ手段からの回復された誤り訂正剰余バイトを選択的に
    獲得し、かつ前記マイクロプロセッサ手段は、少なくと
    も1つの誤り位置と、再発生された誤り訂正剰余バイト
    から得られた少なくとも1つの誤りの値とを計算する計
    算手段を含み、前記計算手段は誤りの値を置換える訂正
    された値を発生し、かつ前記マイクロプロセッサ手段
    は、前記データブロックが前記インタフェースコントロ
    ーラによって前記ホストコンピュータに転送される前
    に、かつデータブロックの前記ホストコンピュータへの
    フローを重大に停止させることなく、誤り位置を含む記
    憶されたデータブロックの誤りの値を訂正された値で置
    換えるための前記ブロックバッファメモリ手段を直接ア
    クセスするための直接アクセス手段を制御する、誤り訂
    正装置。
  24. 【請求項24】 前記発生器および回復回路手段はさら
    に、データ書込期間中にクロスチェッキングシンドロー
    ム情報を計算しかつ前記コードブロックに付加するリー
    ドソロモンクロスチェックシンドローム発生器手段を含
    み、かつ前記クロスチェックシンドローム発生器手段は
    前記ディスクから読出された各コードブロックからのク
    ロスチェッキング剰余バイトを回復し、かつ前記ラッチ
    手段は前記回復されたクロスチェック剰余バイトをラッ
    チし、かつ前記誤り訂正サービスプログラムルーチンは
    前記マイクロプロセッサ手段に、前記訂正された値で前
    記データブロック内の誤りの値を置換えるのに先立って
    前記回復されたクロスチェック剰余バイトに関連して提
    案された誤り訂正の精度を確認させる、請求項23に記
    載の装置。
  25. 【請求項25】 前記コードブロックの各々はさらに、
    その中にデータ識別(ID)フィールドを含み、かつ前
    記発生器および回復回路手段はさらに、前記コードブロ
    ックの各々の前記IDフィールドの誤り検出剰余バイト
    を回復しかつチェックする誤り検出手段を含む、請求項
    23に記載の装置。
  26. 【請求項26】 前記発生器および回復回路手段は、x
    8 +x4 +x3 +x2+1の形式を有するフィールド発
    生器多項式によって発生したガロア体(28 )に従って
    誤り訂正コード化シンドローム情報を発生し、かつ前記
    フィールドの第1項はx5 +x3 +x+1(2進数で0
    0101011)であり、各誤り訂正シンドロームは次
    の多項式に従い、前記多項式は、 G(x)=x4 +(alpha 18)・x3 +(alpha 87)・x2 +(alpha 18)・ x+1 である、請求項23に記載の装置。
  27. 【請求項27】 前記発生器および回復回路手段はさら
    に、次の多項式に従ってチェッキングシンドローム情報
    を計算するリードソロモンクロスチェックシンドローム
    発生器手段を含み、前記多項式は、 G(x)=x2 +a、ここでaは1に等しくない、請求
    項26に記載の装置。
  28. 【請求項28】 前記クロスチェックシンドローム発生
    器手段は、次の多項式に従ってチェッキングシンドロー
    ム情報を計算し、前記多項式は、 G(x)=x2 +alpha 1 であり、ここでalpha 1 は1
    に等しくない、請求項27に記載の装置。
  29. 【請求項29】 前記発生器および回復回路手段はさら
    に、次の多項式に従って2バイトのシンドロームを発生
    することによって前記データブロックの各々のデータ識
    別(ID)フィールドにおける誤りを検出する誤り検出
    手段を含み、前記多項式は、 GEDC2(x)=x2 +ax+bであり、ここでbは1に
    等しくない、請求項26に記載の装置。
  30. 【請求項30】 前記誤り検出手段は、次の多項式に従
    って2バイトのシンドロームを発生し、前記多項式は、 GEDC2(x)=x2 +x+alpha 18 である、請求項29に記載の装置。
  31. 【請求項31】 前記発生器および回復回路手段はさら
    に、次の多項式に従って2バイトのシンドロームを発生
    することによって前記コードブロックの各々のデータI
    Dフィールドにおける誤りを検出する誤り検出手段をさ
    らに備え、前記多項式は、 GEDC2(x)=x2 +alpha 81・x+alpha 81 である、請求項29に記載の装置。
  32. 【請求項32】 前記発生器および回復回路手段はさら
    に、次の多項式に従って3バイトのシンドロームを発生
    することによって前記コードブロックの各々のデータ識
    別(ID)フィールドにおける誤りを検出する誤り検出
    手段を備え、前記多項式は、 GEDC3(x)=x3 +ax2 +bx+c である、請求項26に記載の装置。
  33. 【請求項33】 前記誤り検出手段は、次の多項式に従
    って3バイトのシンドロームを発生し、前記多項式は、 GEDC3(x)=x3 +alpha 87・x2 +alpha 87・x+1 である、請求項32に記載の装置。
  34. 【請求項34】 前記誤り検出手段は、次の多項式に従
    って3バイトのシンドロームを発生し、前記多項式は、 GEDC3(x)=x3 +alpha 81・x2 +alpha 87・x+alpha18 である、請求項32に記載の装置。
  35. 【請求項35】 前記プログラムされたマイクロプロセ
    ッサ手段は、単一のマイクロプロセッサを含む、請求項
    23に記載の装置。
  36. 【請求項36】 前記プログラムされたマイクロプロセ
    ッサは、ヘッド位置制御と、前記誤り訂正サービスプロ
    グラムルーチンの実行を含むデータフローの監督との間
    で機能的なアクティビィティを分割する、請求項35に
    記載の装置。
JP4015688A 1991-02-01 1992-01-31 リードソロモン誤り訂正装置 Expired - Fee Related JP2724934B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/650,791 US5241546A (en) 1991-02-01 1991-02-01 On-the-fly error correction with embedded digital controller
US650791 1991-02-01

Publications (2)

Publication Number Publication Date
JPH05347075A JPH05347075A (ja) 1993-12-27
JP2724934B2 true JP2724934B2 (ja) 1998-03-09

Family

ID=24610305

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4015688A Expired - Fee Related JP2724934B2 (ja) 1991-02-01 1992-01-31 リードソロモン誤り訂正装置

Country Status (6)

Country Link
US (1) US5241546A (ja)
EP (1) EP0497593B1 (ja)
JP (1) JP2724934B2 (ja)
KR (1) KR950009384B1 (ja)
DE (1) DE69229753T2 (ja)
IE (1) IE920104A1 (ja)

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5210660A (en) * 1990-01-17 1993-05-11 International Business Machines Corporation Sectored servo independent of data architecture
US5475540A (en) * 1991-06-04 1995-12-12 Quantum Corporation Magnetic data storage disk drive with data block sequencing by using ID fields after embedded servo sectors
DE4140018A1 (de) * 1991-12-04 1993-06-09 Bts Broadcast Television Systems Gmbh, 6100 Darmstadt, De Verfahren und schaltungsanordnung zum decodieren von rs-codierten datensignalen
US5422895A (en) * 1992-01-09 1995-06-06 Quantum Corporation Cross-checking for on-the-fly Reed Solomon error correction code
US5357520A (en) * 1992-01-31 1994-10-18 International Business Machines Corporation Method and apparatus for precompensation value determination in a PRML data channel
EP0570648A1 (en) * 1992-05-21 1993-11-24 International Business Machines Corporation Apparatus for generating and checking the error correction codes of messages in a message switching system
US5517634A (en) * 1992-06-23 1996-05-14 Quantum Corporation Disk drive system including a DRAM array and associated method for programming initial information into the array
US5905347A (en) * 1993-07-16 1999-05-18 Dell Usa, L.P. System and method for controlling a computer drive motor
US5491395A (en) * 1993-09-17 1996-02-13 Maxtor Corporation TUT servo IC architecture
US5602857A (en) * 1993-09-21 1997-02-11 Cirrus Logic, Inc. Error correction method and apparatus
US5491701A (en) * 1993-11-04 1996-02-13 Cirrus Logic, Inc. Burst error corrector
US5629949A (en) * 1993-09-21 1997-05-13 Cirrus Logic, Inc. Error correction verification method and apparatus using CRC check remainders
US5729718A (en) * 1993-11-10 1998-03-17 Quantum Corporation System for determining lead time latency as function of head switch, seek, and rotational latencies and utilizing embedded disk drive controller for command queue reordering
US5544334A (en) * 1993-12-22 1996-08-06 International Business Machines Corporation Micro channel bus computer system with IDE hard drive interface
US5864716A (en) * 1994-01-07 1999-01-26 Cirrus Logic, Inc. Tagged data compression for parallel port interface
WO1995024035A1 (en) * 1994-03-03 1995-09-08 Cirrus Logic, Inc. A table driven method and apparatus for automatic split field processing
US5610929A (en) * 1994-03-11 1997-03-11 Fujitsu Limited Multibyte error correcting system
KR100187383B1 (ko) * 1994-03-25 1999-05-15 니시모토 강이치 사진필름 처리장치 및 그 제어방법
US5548795A (en) * 1994-03-28 1996-08-20 Quantum Corporation Method for determining command execution dependencies within command queue reordering process
US5623700A (en) * 1994-04-06 1997-04-22 Dell, Usa L.P. Interface circuit having zero latency buffer memory and cache memory information transfer
US5603063A (en) * 1994-06-27 1997-02-11 Quantum Corporation Disk drive command queuing method using two memory devices for storing two types of commands separately first before queuing commands in the second memory device
US5642366A (en) * 1994-07-05 1997-06-24 Adaptec, Inc. Global parity symbol for interleaved reed-solomon coded data
KR100335482B1 (ko) * 1994-08-17 2002-11-27 삼성전자 주식회사 에러정정시스템
US5761220A (en) * 1994-09-19 1998-06-02 Cirrus Logic, Inc. Minimum latency asynchronous data path controller in a digital recording system
US6125469A (en) * 1994-10-18 2000-09-26 Cirrus Logic, Inc. Error correction method and apparatus
US5774481A (en) * 1995-03-31 1998-06-30 International Business Machines Corporation Reduced gate error detection and correction circuit
WO1996032718A1 (fr) * 1995-04-12 1996-10-17 Kabushiki Kaisha Toshiba Procede de traitement de donnees pour produire un bloc de code de produit de correction d'erreurs, procede de traitement de donnees pour enregistrer des donnees dans un support d'enregistrement, et dispositif de traitement de donnees
US5854800A (en) * 1995-06-07 1998-12-29 Micron Technlogy, Inc. Method and apparatus for a high speed cyclical redundancy check system
US5778009A (en) * 1995-06-14 1998-07-07 Quantum Corporation Dedicated ALU architecture for 10-bit Reed-Solomon error correction module
US6012839A (en) * 1995-06-30 2000-01-11 Quantum Corporation Method and apparatus to protect data within a disk drive buffer
US5757826A (en) * 1995-07-12 1998-05-26 Quantum Corporation Word-wise processing for reed-solomon codes
US5757822A (en) * 1995-08-24 1998-05-26 Quantum Corporation Bit-interleaved rate 16/17 modulation code with three-way byte-interleaved ECC
US5787099A (en) * 1995-10-12 1998-07-28 Adaptec, Inc. System and method for encoding and decoding data using numerical computations in galois fields
US5812438A (en) * 1995-10-12 1998-09-22 Adaptec, Inc. Arithmetic logic unit and method for numerical computations in galois fields
US5771184A (en) * 1995-10-12 1998-06-23 Adaptec, Inc. System and method for solving quadratic equation in galois fields
US5805799A (en) * 1995-12-01 1998-09-08 Quantum Corporation Data integrity and cross-check code with logical block address
US5828513A (en) * 1995-12-07 1998-10-27 International Business Machines Corporation Servo address apparatus and positioning methods for read, write and seek operations in a direct access storage device
US5909334A (en) * 1996-05-10 1999-06-01 Western Digital Corporation Verifying write operations in a magnetic disk drive
US6108812A (en) * 1996-06-20 2000-08-22 Lsi Logic Corporation Target device XOR engine
US5889792A (en) * 1996-10-01 1999-03-30 Intel Corporation Method and apparatus for generating syndromes associated with a block of data that employs re-encoding the block of data
US5774648A (en) * 1996-10-02 1998-06-30 Mitsubishi Semiconductor Of America, Inc. Address generator for error control system
US5917670A (en) * 1996-10-15 1999-06-29 Quantum Corporation Method for recovering data from disk with magneto-resistive head in presence of thermal asperities
US6003151A (en) * 1997-02-04 1999-12-14 Mediatek Inc. Error correction and detection system for mass storage controller
US5905740A (en) * 1997-04-08 1999-05-18 Seagate Technology, Inc. Apparatus and method for error correction
GB2324445B (en) * 1997-04-17 2002-08-21 United Microelectronics Corp Error correction and detection system for mass storage controller
JP2954083B2 (ja) 1997-05-01 1999-09-27 株式会社東芝 情報記録再生用媒体及び情報記録再生用媒体フォーマット装置並びに情報記録再生装置
IT1296023B1 (it) * 1997-07-16 1999-06-04 Sgs Thomson Microelectronics Sistema di pilotaggio misto pwm/lineare impiegante due distinti stadi di pilotaggio
US5943348A (en) * 1997-10-14 1999-08-24 Lsi Logic Corporation Method to check for burst limiting in error correcting systems
US5974582A (en) * 1997-10-14 1999-10-26 Lsi Logic Corporation High-speed chien search logic
US6279135B1 (en) * 1998-07-29 2001-08-21 Lsi Logic Corporation On-the-fly row-syndrome generation for DVD controller ECC
US6615387B1 (en) * 1998-09-22 2003-09-02 Seagate Technology Llc Method and apparatus for error detection
JP4077993B2 (ja) * 1999-07-30 2008-04-23 株式会社日立グローバルストレージテクノロジーズ 性能評価方法及び性能評価装置並びにこれらを用いた記録再生装置
DE19983990T1 (de) * 1999-11-25 2002-12-19 Fujitsu Ltd Verfahren zur Leseverarbeitung eines Speichermediums, Speichervorrichtung, Datenreproduktionsverfahren, Datenreproduktionssystem und Speichermedium dafür
EP1146651A1 (en) * 2000-04-10 2001-10-17 Hewlett-Packard Company Error detection for data storage and transmission
EP1146650A1 (en) * 2000-04-10 2001-10-17 Hewlett-Packard Company, A Delaware Corporation Error detection for data storage and transmission
US6986094B2 (en) * 2001-03-29 2006-01-10 Intel Corporation Device and method for selecting opcode values with maximum hamming distance to minimize latency and buffering requirements
US20030009558A1 (en) * 2001-07-03 2003-01-09 Doron Ben-Yehezkel Scalable server clustering
US6961197B1 (en) 2001-12-28 2005-11-01 Marvell International Ltd. Correcting errors in disk drive read back signals by iterating with the Reed-Solomon decoder
US7751138B1 (en) 2001-12-28 2010-07-06 Marvell International Ltd. Correcting errors in disk drive read back signals by iterating with the Reed-Solomon decoder
US6959411B2 (en) * 2002-06-21 2005-10-25 Mediatek Inc. Intelligent error checking method and mechanism
JPWO2004051650A1 (ja) * 2002-11-29 2006-04-06 富士通株式会社 データ記録再生装置及び、データ記録再生方法
US7426676B2 (en) * 2004-01-14 2008-09-16 Broadcom Corporation Data retrieval from a storage device using a combined error correction and detection approach
JP4260688B2 (ja) * 2004-06-09 2009-04-30 富士通株式会社 データ送信装置、データ送受信システム、データ送信装置の制御方法およびデータ送受信システムの制御方法
US20060056093A1 (en) * 2004-09-10 2006-03-16 Ehrlich Richard M Method for microjog calibration by read-write zone
US20060056092A1 (en) * 2004-09-10 2006-03-16 Ehrlich Richard M System for microjog calibration by read-write zone
US7425719B2 (en) * 2005-01-13 2008-09-16 Wd Media, Inc. Method and apparatus for selectively providing data from a test head to a processor
US7925955B2 (en) * 2005-03-10 2011-04-12 Qualcomm Incorporated Transmit driver in communication system
US8693540B2 (en) * 2005-03-10 2014-04-08 Qualcomm Incorporated Method and apparatus of temporal error concealment for P-frame
EP2268042B1 (en) * 2005-03-10 2014-07-02 Qualcomm Incorporated A decoder architecture for optimized error management in streaming multimedia
US20060242450A1 (en) * 2005-04-11 2006-10-26 Li-Lien Lin Methods and apparatuses for selectively rebuffering and decoding a portion of a data block read from an optical storage medium
US7743311B2 (en) * 2006-01-26 2010-06-22 Hitachi Global Storage Technologies Netherlands, B.V. Combined encoder/syndrome generator with reduced delay
US7823049B2 (en) * 2006-03-15 2010-10-26 Mediatek Inc. Methods and apparatuses for generating parity symbols for data block
US7913151B1 (en) * 2006-05-26 2011-03-22 Pmc-Sierra, Inc. Forward error correction with self-synchronous scramblers
US20070283208A1 (en) * 2006-06-01 2007-12-06 International Business Machines Corporation Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code with bus diagnostic features
US7721178B2 (en) * 2006-06-01 2010-05-18 International Business Machines Corporation Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code
US20070283223A1 (en) * 2006-06-01 2007-12-06 International Business Machines Corporation Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code with all checkbits transferred last
US20070283207A1 (en) * 2006-06-01 2007-12-06 International Business Machines Corporation Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code with bus timing improvements
US7958434B1 (en) * 2006-07-26 2011-06-07 Marvell International Ltd. Method for synchronizing to a digital signal
JP4672743B2 (ja) * 2008-03-01 2011-04-20 株式会社東芝 誤り訂正装置および誤り訂正方法
US8291259B2 (en) * 2009-04-15 2012-10-16 International Business Machines Corporation Delete of cache line with correctable error
TWI465898B (zh) * 2009-07-13 2014-12-21 Silicon Motion Inc 避免資料儲存裝置之資料發生移位錯誤的方法及控制器
US20110179315A1 (en) * 2010-01-21 2011-07-21 Brocade Communications Systems, Inc. Serdes link error management
US9086992B1 (en) * 2012-06-08 2015-07-21 Digital Ordnance Storage, Inc. System and method for interconnecting storage elements
US10073731B2 (en) * 2013-11-27 2018-09-11 Intel Corporation Error correction in memory
US9397703B2 (en) * 2013-12-04 2016-07-19 Seagate Technology Llc Adaptive read error recovery for memory devices
US9378083B2 (en) 2013-12-04 2016-06-28 Seagate Technology Llc Adaptive read error recovery for memory devices
US10991445B2 (en) * 2018-09-06 2021-04-27 Micron Technology, Inc. Memory sub-system including an in-package sequencer to perform error correction and memory testing operations
CN115052047A (zh) * 2022-01-27 2022-09-13 昆明理工大学 一种Gossip网络协议的前置验证方法
CN116400200B (zh) * 2023-06-05 2023-09-01 中国汽车技术研究中心有限公司 车规级安全芯片的电磁侧信道信息的交叉验证方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4185269A (en) * 1978-06-30 1980-01-22 International Business Machines Corporation Error correcting system for serial by byte data
US4413339A (en) * 1981-06-24 1983-11-01 Digital Equipment Corporation Multiple error detecting and correcting system employing Reed-Solomon codes
FR2533091A1 (fr) * 1982-09-13 1984-03-16 Cii Honeywell Bull Systeme de detection et de correction d'erreurs de transmission d'un message binaire utilisant un code cyclique detecteur et correcteur d'erreurs de type reed-solomon entrelace
US4567594A (en) * 1983-06-07 1986-01-28 Burroughs Corporation Reed-Solomon error detecting and correcting system employing pipelined processors
US4633471A (en) * 1983-09-19 1986-12-30 Storage Technology Partners Ii Error detection and correction in an optical storage system
US4675652A (en) * 1986-04-11 1987-06-23 Quantum Corporation Integrated encoder decoder for variable length, zero run length limited codes
US4730321A (en) * 1986-05-30 1988-03-08 Quantum Corporation Disk drive with improved error correction code
US4782490A (en) * 1987-03-16 1988-11-01 Cythera Corporation Method and a system for multiple error detection and correction
US4937829A (en) * 1987-04-24 1990-06-26 Ricoh Company, Ltd. Error correcting system and device
US4890287A (en) * 1988-03-09 1989-12-26 Magnetic Peripherals Inc. On-the-fly error correction
US4928280A (en) * 1988-04-29 1990-05-22 International Business Machines Corporation Fast processor for multi-bit error correction codes
US5170299A (en) * 1990-08-17 1992-12-08 Quantum Corporation Edge servo for disk drive head positioner

Also Published As

Publication number Publication date
EP0497593B1 (en) 1999-08-11
KR950009384B1 (ko) 1995-08-21
JPH05347075A (ja) 1993-12-27
EP0497593A3 (ja) 1995-05-31
DE69229753T2 (de) 2000-03-02
DE69229753D1 (de) 1999-09-16
IE920104A1 (en) 1992-08-12
KR920017083A (ko) 1992-09-26
EP0497593A2 (en) 1992-08-05
US5241546A (en) 1993-08-31

Similar Documents

Publication Publication Date Title
JP2724934B2 (ja) リードソロモン誤り訂正装置
US5422895A (en) Cross-checking for on-the-fly Reed Solomon error correction code
US4730321A (en) Disk drive with improved error correction code
US6003151A (en) Error correction and detection system for mass storage controller
US7530009B2 (en) Data storage method and data storage device
US6192499B1 (en) Device and method for extending error correction beyond one sector time
US6574774B1 (en) Physical block address recovery apparatus system and method for cyclic error correction codes
US5805799A (en) Data integrity and cross-check code with logical block address
KR100613056B1 (ko) 오정정 보호 방법, 저장 장치, 데이터 세트 보호 방법,데이터 저장 장치, 및 에러 정정 코드
EP0998791A1 (en) Concurrent row/column syndrome generator for a product code
KR19990028535A (ko) 디스크 드라이브 버퍼 내의 데이터 보호 방법 및 장치
US5889796A (en) Method of insuring data integrity with a data randomizer
US7127660B2 (en) Method, apparatus and program storage device for correcting a burst of errors together with a random error using shortened cyclic codes
US7131052B2 (en) Algebraic decoder and method for correcting an arbitrary mixture of burst and random errors
EP0341863B1 (en) Sector mis-synchronization detection method
US6587977B1 (en) o,k,m,/m recording code
US5754565A (en) Reconstruction of syndromes for bi-level on-the-fly error correction in disk drive systems
JP3279501B2 (ja) 大容量記憶装置用コントローラの誤り訂正及び誤り検出方法
JPH01307063A (ja) 光デイスク記録再生装置
JP2001144628A (ja) データ転送装置
EP1232499A1 (en) Rogue packet detection and correction method for data storage device
JP3345997B2 (ja) 誤り訂正符号化復号装置および誤り訂正符号化復号装置を備えたディスクアレイシステムコントローラ
JP2001101020A (ja) 誤り訂正装置およびディスク装置
JP2001283538A (ja) 記録再生装置のデータ再生回路及びその誤り訂正方法

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19971028

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees