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

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

Info

Publication number
JPH05347075A
JPH05347075A JP4015688A JP1568892A JPH05347075A JP H05347075 A JPH05347075 A JP H05347075A JP 4015688 A JP4015688 A JP 4015688A JP 1568892 A JP1568892 A JP 1568892A JP H05347075 A JPH05347075 A JP H05347075A
Authority
JP
Japan
Prior art keywords
data
syndrome
byte
error
error correction
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.)
Granted
Application number
JP4015688A
Other languages
English (en)
Other versions
JP2724934B2 (ja
Inventor
R Peterson Bruce
ブルース・アール・ピーターソン
Hung C Nguyen
ハン・シィ・ニューエン
Michael G Machado
マイケル・ジィ・マチャド
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.)
Quantum Corp
Original Assignee
Quantum 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 Quantum Corp filed Critical Quantum 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

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 データデコーディングプロセスの間に実質的
に隣接するデータブロックのストリーム内のデータブロ
ックを訂正するためのオンザフライ誤り訂正方法を提供
する。 【構成】 誤りシンドローム情報に関する回復された情
報を得るステップと、誤りバーストのデータブロック内
での有無を決定するステップと、誤りバースト存在時に
残余ラッチの中に回復された情報をラッチするステップ
と、マイクロコントローラに誤り訂正サービスルーチン
を要求、実行させるステップと、回復された情報のバイ
トを残余ラッチからマイクロコントローラへ選択的に転
送するステップと、サービスルーチンによってマイクロ
コントローラ内で実現化されるリードソロモン誤り訂正
アルゴリズムで誤りバースト用の場所、訂正値をマイク
ロコントローラを使って決定するステップと、ホストシ
ステムに入力前に誤りバーストが検出されたブロック内
での訂正値を誤りバーストの代替ステップとを含む。

Description

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

Claims (38)

    【特許請求の範囲】
  1. 【請求項1】 データブロックの複数の連続ブロックを
    一時的に記憶するためのブロックバッファメモリ手段
    と、ブロックバッファメモリ手段を経て送られたデータ
    ブロックのフローを監督するためのマイクロコントロー
    ラ手段とを経てソースから目的地へと流れる実質的に隣
    接するデータブロックのシーケンス内のデータブロック
    上でオンザフライ誤り訂正を行なうためのリードソロモ
    ン誤り訂正装置であって、 ソースから各データブロックを受信しかつ処理するため
    のストリームに接続され、前記データブロックのために
    ガロア体シンドローム発生器および複数の誤り訂正残余
    バイトを回復するための残余回復回路手段を含み、前記
    バイトはソースから送られているそれに付随してデータ
    ブロックに付加されたシンドロームバイトに関連し、 発生器および残余回復回路手段は前記回復された複数の
    誤り訂正シンドロームバイトの予め定められたバイトを
    名目の値と比べるためのチェッキング手段と前記チェッ
    キング手段によって定められた非等価に応答して回復さ
    れた部分誤り訂正残余バイトをラッチするためのラッチ
    手段とを含み、 マイクロコントローラ手段は前記非等価に応答して誤り
    訂正サービスルーチンファームウェア手段を実行し、か
    つその後回復された誤り訂正残余バイトを選択的に得る
    ためのラッチ手段への直接アクセスを有し、かつさらに
    得られた再発生された誤り訂正残余バイトから少なくと
    も1つの誤り場所と対応する誤り値とを計算するための
    計算手段を実現化し、計算手段は誤っていると決定され
    たブロックのデータに取ってかわるための訂正されたデ
    ータを発生し、かつさらにそれが目的地に転送される前
    にそこに記憶されたブロックの誤ったデータに訂正され
    たデータを代入するためのバッファメモリ手段に直接ア
    クセスするための直接アクセス手段を制御する、装置。
  2. 【請求項2】 発生器および回復回路手段は前記ソース
    から流れる前に各データブロックに前に付加されたクロ
    スチェッキングシンドローム情報を回復しかつ前記回復
    されたクロスチェッキングシンドローム情報を前記ラッ
    チ手段に記憶するためのリードソロモンクロスチェック
    シンドローム発生器手段をさらに含み、マイクロコント
    ローラは、誤り訂正サービスルーチンファームウェア手
    段を実行するとすぐ、誤り訂正の回復されたクロスチェ
    ッキングシンドローム情報に対する影響をさらにチェッ
    クする、請求項1に記載の装置。
  3. 【請求項3】 発生器および回復回路手段は各前記デー
    タブロックのデータIDフィールドに前に付加された誤
    り検出シンドローム情報を回復しかつチェックするため
    の誤り検出手段をさらに含む、請求項1に記載の装置。
  4. 【請求項4】 発生器および回復回路手段はx8 +x4
    +x3 +x2 +1の形を有するフィールド発生器多項式
    によって発生されるガロア体(28 )に従って誤り訂正
    コード化シンドローム情報を発生し、かつフィールドの
    第1の項はx 5 +x3 +x+1(00101011二進
    法である)であり、各誤り訂正シンドローム多項式はG
    (x)=X4 +(alpha18)・x3 +(alpha
    87)・x2 +(alpha18)・x1 +1の形である、
    請求項1に記載の装置。
  5. 【請求項5】 リードソロモン誤り訂正およびクロスチ
    ェッキング装置であって、ブロックバッファメモリ手段
    を経てソースから目的地へ流れる実質的に隣接するデー
    タブロックのシーケンス内のデータブロック上で誤り訂
    正およびクロスチェッキングを行ない、ブロックバッフ
    ァメモリ手段はデータブロックの複数の連続するブロッ
    クを一時的に記憶するためのものであり、装置はブロッ
    クバッファメモリ手段を経て送られたデータブロックの
    フローを監督するためのマイクロコントローラ手段を含
    み、 ソースからの各データブロックを受信しかつ処理するた
    めのストリームに接続されて、前記データブロックのた
    めに複数の誤り訂正残余バイトを回復するためのガロア
    有限体シンドローム発生器および残余回復回路手段を含
    み、前記バイトはソースから送られているそれに付随し
    てデータブロックに付加されるシンドロームバイトに関
    連し、 発生器および残余回復回路手段は前記回復された複数の
    誤り訂正残余バイトの予め定められたバイトを名目値と
    比較してその等価または非等価を決定するためのチェッ
    キング手段を含み、かつ多項式G(x)=x2 +aに従
    ってクロスチェックシンドローム情報に関するクロスチ
    ェッキング残余情報を回復するためのリードソロモンク
    ロスチェックシンドローム回復手段をさらに含み、この
    式においてaは1に等しくなくソースから送られている
    それに付随してデータブロックに付加され、 マイクロコントローラ手段は前記非等価に応答して誤り
    訂正サービスルーチンファームウェア手段を実行し、そ
    の後回復された誤り訂正残余バイトを選択的に得るため
    のラッチ状態への直接アクセスを有し、かつさらに得ら
    れた再発生された誤り訂正残余バイトから少なくとも1
    つの誤り場所と対応する誤り値とを計算するための計算
    手段を実現化し、計算手段は誤っていると決定されたブ
    ロックのデータを取って代わるための訂正されたデータ
    を発生して、かつ訂正されたデータのクロスチェック残
    余情報に対する影響を計算し、かつさらにそれが目的地
    に転送される前にそこに記憶されたブロックの誤ったデ
    ータに訂正されたデータを代入するためのバッファメモ
    リ手段に直接アクセスするための直接アクセス手段を制
    御する、装置。
  6. 【請求項6】 リードソロモンクロスチェックシンドロ
    ーム情報は多項式G(x)=x2 +alpha1 に従
    う、請求項5に記載の装置。
  7. 【請求項7】 ブロックバッファメモリ手段を経てソー
    スから目的地へ流れる実質的に隣接するデータブロック
    のシーケンス内でデータブロック上で誤り訂正を行な
    い、ためのブロックバッファメモリ手段はデータブロッ
    クの複数の連続するブロックを一時的に記憶するための
    ものであり、かつ各前記ブロックのデータIDフィール
    ド上で誤り検出を行なうためのリードソロモン誤り訂正
    および検出装置であって、装置はブロックバッファメモ
    リ手段を経て送られるデータブロックのフローを監督す
    るためのマイクロコントローラ手段を含み、 ソースから各データブロックを受信しかつ処理するため
    のストリームに接続されて、前記データブロックのため
    に複数の誤り訂正残余バイトを回復するためのガロア有
    限体シンドローム発生器および残余回復回路手段を含
    み、前記バイトはソースから送られていあるそれに付随
    してデータブロックに付加されるシンドロームバイトに
    関連し、 発生器および残余回復回路手段は前記回復された複数の
    誤り訂正シンドロームバイトの予め定められたバイトを
    名目値と比較して、等価同値または非等価を決定するた
    めのチェッキング手段を含み、かつさらに次の多項式に
    従う2バイトシンドロームに従ってそれに付加された誤
    り検出情報を有する前記データIDフィールドで誤りを
    検出するための誤り検出手段をさらに含み、その多項式
    はGEDC2(x)=x2 +ax+bでありこの式にお
    いてbは0に等しくない、装置。
  8. 【請求項8】 誤り検出手段は次の多項式に従って2バ
    イトシンドロームを発生し、その多項式はG
    EDC2(x)=x2 +x+alpha18である、請求
    項7に記載の装置。
  9. 【請求項9】 発生器および回復回路手段は次の多項式
    に従って2バイトシンドロームを発生することによって
    各前記データブロックのデータIDフィールドにおける
    誤りを検出するための誤り検出手段をさらに含み、その
    多項式はGEDC2(x)=x2 +alpha81・x+
    alpha81である、請求項7に記載の装置。
  10. 【請求項10】 ブロックバッファメモリ手段を経てソ
    ースから目的地へ流れる実質的に隣接するデータブロッ
    クのシーケンス内のデータブロック上で誤り訂正を行
    い、ブロックバッファメモリ手段はデータブロックの複
    数の連続するブロックを一時的に記憶するためのもので
    あり、かつ各前記ブロックのデータIDフィールド上で
    誤り検出を行なうためのリードソロモン誤り訂正および
    検出装置であって、ものであって、装置はブロックバッ
    ファメモリ手段を経て送られたデータブロックのフロー
    を監督するためのマイクロコントローラ手段を含み、 ソースからの各データブロックを受信しかつ処理するた
    めのストリームに接続されて前記データブロックのため
    に複数の誤り訂正残余バイトを回復するためのガロア有
    限体シンドローム発生器および残余回復回路手段を含
    み、前記バイトはソースから送られているあるそれに付
    随してデータブロックに付加されたシンドロームバイト
    に関連し、 発生器および残余回復回路手段は前記回復された複数の
    誤り訂正シンドロームバイトの予め定められたバイトを
    名目値と比較して、その等価または非等価を決定するた
    めのチェッキング手段を含み、かつ次の多項式に従う3
    バイトシンドロームに従ってそれに付加された誤り検出
    情報を有する前記データIDフィールドにおける誤りを
    検出するための誤り検出手段をさらに含み、その多項式
    はGEDC3(x)=x3 +ax2 +bx+cである、
    装置。
  11. 【請求項11】 誤り検出手段は次の形の3バイトシン
    ドロームを発生し、その形は GEDC3(x)=x3 +alpha87・x2 +alp
    ha87・x+1である、請求項10に記載の装置。
  12. 【請求項12】 発生器および回復回路手段は次の形の
    3バイトシンドロームを発生することによってデータブ
    ロックのデータIDフィールドにおける誤りを検出する
    ための誤り検出手段をさらに含み、その形は GEDC3(x)=x3 +alpha81・x2 +alp
    ha87・x+alpha18である、請求項10に記載の
    装置。
  13. 【請求項13】 計算システム内のデータブロック転送
    経路において使用するためのリードソロモン誤り訂正符
    号シンドローム発生器装置であって、転送されている各
    データブロックはブロックのデータ内の誤りの検出およ
    び訂正を可能にするためのその端部に付加されたリード
    ソロモン誤り訂正コード化シンドローム情報を含み、各
    データブロックに付加されたリードソロモンクロスチェ
    ッキングシンドローム情報をさらに含み、誤り訂正コー
    ド化シンドローム情報はブロックのクロスチェッキング
    シンドローム情報に関連してさらに引出され、x8 +x
    4 +x3 +x2 +1の形を有するフィールド発生器多項
    式によって発生されるガロア体(28 )に従って誤り訂
    正コード化シンドローム情報を計算するための誤り訂正
    コードシンドローム発生器手段を含み、フィールドの第
    1の項はx5 +x 3 +x+1(00101011二進法
    である)であり、各誤り訂正シンドローム多項式はG
    (x)=x4 +(alpha18)・x3 +(alpha
    87)・x2 +(alpha18)・x1 +1であり、形G
    (x)=x2 +bの形の多項式からのクロスチェッキン
    グシンドローム情報を計算するためのクロスチェックシ
    ンドローム発生器手段をさらに含み、この式においてb
    は1に等しくない、装置。
  14. 【請求項14】 クロスチェックシンドローム発生器手
    段は同時式G(x)=x2 +alpha1 の形の多項式
    からクロスチェッキングシンドローム情報を計算する、
    請求項13に記載の装置。
  15. 【請求項15】 クロスチェックシンドローム発生器手
    段は直列バイトのクロック動作されたデータストリーム
    として各入来データブロックを受信するための入力と、 入来データブロックのクロック動作されたデータストリ
    ームの各バイトをフィードバックバイトと合計して、合
    計バイトを生み出すための第1の合計接合手段と、 alpha1 で合計バイトを掛けて第1の積バイトを生
    み出すための第1の乗算器手段と、 第1の乗算器手段に接続されて第1のバイトクロック期
    間の間第1の積バイトを記憶し、かつ後続のバイトクロ
    ック期間の間後続の積バイトを記憶するための第1のク
    ロック動作されたラッチステージ手段と、 第1のクロック動作されたラッチステージ手段に接続さ
    れて第2のバイトクロック期間の間第1の積バイトを記
    憶するための第2のクロック動作されたラッチステージ
    手段とを含み、第2のクロック動作されたラッチステー
    ジ手段は第2のバイトクロック期間の間合計接合へのフ
    ィードバックバイトとして第1の積バイトをフィードバ
    ックする、装置。
  16. 【請求項16】 計算システム内のデータブロック転送
    経路で使用するためのリードソロモン誤り訂正符号シン
    ドローム発生器装置であって、転送されている各データ
    ブロックはブロックのデータ内の誤り検出および訂正を
    可能にするためのその端部に付加されたリードソロモン
    誤り訂正コード化シンドローム情報を含み、各データブ
    ロックに付加されたリードソロモンクロスチェッキンク
    シンドローム情報をさらに含み、誤り訂正コード化シン
    ドローム情報はブロックのクロスチェックシンドローム
    情報に関連してさらに引出され、残余ラッチ手段を含む
    オンザフライ誤り訂正コードシンドローム発生器手段を
    含み、シンドローム発生器手段はx8 +x4 +x3 +x
    2 +1の形を有するフィールド発生器多項式によって発
    生されたガロア体(28 )に従って誤り訂正コード化シ
    ンドローム情報を計算し、フィールドの第1の項はx5
    +x3 +x+1(00101011二進法である)であ
    り、各誤り訂正シンドロームはG(x)=x4 +(al
    pha18)・x3 +(alpha87)・x2 +(alp
    ha18)・x1 +1の形であり、かつ誤り訂正コードシ
    ンドローム発生器手段はデータブロックのデータIDフ
    ィールドのための誤り検出シンドロームを発生するため
    の手段をさらに含む、装置。
  17. 【請求項17】 データブロックのデータIDフィール
    ドのための誤り検出シンドロームを発生するため手段は
    次の形の2バイトシンドロームを発生し、その形は GEDC2(x)=x2 +ax+bであり、この式にお
    いてbは1に等しくない、装置。
  18. 【請求項18】 誤り検出シンドロームを発生するため
    の手段は次の形の2バイトシンドロームを発生し、その
    形は GEDC2(x)=x2 +x+alpha18である、請
    求項17に記載の装置。
  19. 【請求項19】 データブロックのデータIDフィール
    ドのための誤り検出シンドロームを発生するための手段
    は次の形の2バイトシンドロームを発生し、その形は GEDC2(x)=x2 +alpha81・x+alph
    81である、請求項17に記載の装置。
  20. 【請求項20】 データブロックのデータIDフィール
    ドのための誤り検出シンドロームを発生するための手段
    は次の形3バイトシンドロームを発生し、その形は GEDC3(x)=x3 +ax2 +bx+cである、請
    求項12に記載の装置。
  21. 【請求項21】 データブロックのデータIDフィール
    ドのための誤り検出シンドロームを発生するための手段
    は次の形の3バイトシンドロームを発生し、その形は、 GEDC3(x)=x3 +alpha87・2+alph
    87・x+1である、請求項20に記載の装置。
  22. 【請求項22】 データブロックのデータIDフィール
    ドのための誤り検出シンドロームを発生するための手段
    は次の形の3バイトシンドロームを発生し、その形は GEDC3(x)=x3 +alpha87・2+alph
    87・x+alpha 18である、請求項20に記載の装
    置。
  23. 【請求項23】 データブロックデコーディングプロセ
    ス内で、実質的に隣接するデータブロックのストリーム
    内で前記データブロックを訂正するためのオンザフライ
    誤り訂正方法であって、各ブロックはデータデコーディ
    ングプロセスの前に発生するコーデ化プロセスの間予め
    定められたリードソロモン符号に従って計算されかつ付
    加された誤りシンドローム情報を有し、 誤りシンドローム情報に関連した回復された情報を得る
    ためにシンドローム情報回復回路の中をデータのブロッ
    クを通過させるステップと、 回復された情報をゼロと比較して誤りバーストがデータ
    ブロック内に存在するかどうかを決定するステップと、
    さらにもし誤りバーストが存在すると決定されれば、 ストリームの次のデータブロックのためにシンドローム
    情報回復回路を自由にするために回復された情報をシン
    ドロームラッチの中にラッチするステップと、 マイクロコントローラ手段が誤り訂正サービスルーチン
    ファームウェア手段を要求してかつ実行することを引起
    こすステップと、 回復された情報のバイトをシンドロームラッチからマイ
    クロコントローラ手段へと選択的に転送するステップ
    と、その後マイクロコントローラ手段とファームウェア
    手段とを使ってファームウェア手段によってマイクロコ
    ントローラ手段内で実現化された予め定められたリード
    ソロモンバースト誤り訂正アルゴリズムに従って誤りバ
    ーストのための場所および訂正された値を決定するステ
    ップと、さらにポストシステムに伝えられる前に誤りバ
    ーストを含むことが検出されたブロック内で訂正された
    値を誤りバーストと置換えるステップとを含む、方法。
  24. 【請求項24】 データブロックはコード化プロセスの
    間計算されかつそれに付加されたリードソロモンクロス
    チェック情報をさらに含み、方法は回復されたクロスチ
    ェック残余情報を残余ラッチの中にラッチするステップ
    と、回復されたクロスチェック残余情報を回復されたク
    ロスチェック部分シンドローム情報に変換するステップ
    と、さらにファームウェアによって可能化されたマイク
    ロコントローラ手段を使って、回復されたクロスチェッ
    ク部分シンドローム情報に対する正しい値の影響を決定
    して、正しい値が決定された後可能な誤訂正を検出する
    ステップとをさらに含む、請求項23に記載の方法。
  25. 【請求項25】 少なくとも1つの回転データ記憶ディ
    スクと、ディスクにデータを書込みかつディスクからデ
    ータを読出すための少なくとも1つの放射状に位置決め
    可能なデータ変換器と、データ書込動作の間ブロックバ
    ッファメモリ手段からディスク上に直列にデータブロッ
    クをシーケンスしかつデータ読出動作の間ブロックバッ
    ファメモリ手段への伝達のためにデータブロックの中に
    直列データをシーケンスするためのシーケンサ手段とを
    含み、ブロックバッファメモリ手段は複数の前記ブロッ
    クを記憶することが可能であり、かつマイクロプロセッ
    サ手段はデータ変換器ヘッドを選択されたデータトラッ
    ク場所に位置付けるためのヘッド位置決め装置手段を監
    督しかつデータシーケンサ手段、ブロックバッファメモ
    リ手段およびホストへのインタフェースを経るホストコ
    ンピュータへのデータの転送を監督するためのマイクロ
    プロセッサ手段を含む。ディスクドライブデータ記憶サ
    ブシステム内でオンザフライ誤り訂正を行なうためのリ
    ードソロモン誤り訂正装置であって、 各データブロックを受信しかつ処理するためのシーケン
    サ手段に接続されて前記データブロックのための複数部
    分誤り訂正シンドロームを発生するためのガロア体シン
    ドローム発生器および回復回路手段をさらに含み、前記
    バイトはデータ書込の間ディスクに書込まれているそれ
    に付随するデータブロックに付加され、前記発生器およ
    び回復回路手段はディスクから読出された各データブロ
    ックから複数の誤り訂正残余バイトを回復することによ
    って誤りを検出し、 発生器および回復回路手段は前記再発生された複数の誤
    り訂正残余バイトの予め定められたバイトを名目値と比
    較するためのチェッキング手段と、前記チェッキング手
    段によって決定された非等価に応答して回復された誤り
    訂正残余バイトをラッチするためのラッチ手段とを含
    み、 プログラムされたマイクロプロセッサ手段は回復された
    誤り訂正残余バイトを選択的に得るためのラッチ手段へ
    の直接アクセスを実現化し、かつさらに得られた再発生
    された誤り訂正残余バイトから誤り場所および誤り値を
    計算するための計算手段を実現化するための誤り訂正サ
    ービスルーチン手段を含み、計算手段は誤っていると決
    定されたブロックのデータに取って代わるための訂正さ
    れたデータを発生し、マイクロプロセッサ手段はホスト
    に転送される前にそこに記憶されたブロックの誤ったデ
    ータに訂正されたデータを代入することを可能にするた
    めのバッファメモリ手段に直接アクセスするための直接
    アクセス制御手段を制御する、装置。
  26. 【請求項26】 発生器および回復回路手段は計算して
    データ書込に付随するデータブロックにクロスチェッキ
    ングシンドローム情報を付加するためのリードソロモン
    クロスチェックシンドローム発生器手段をさらに含み、
    クロスチェックシンドローム発生器手段はディスクから
    読出された各データブロックからのクロスチェック残余
    バイトを回復し、ラッチ手段は回復された残余バイトを
    付加的にラッチし、かつさらにファームウェア手段はマ
    イクロプロセッサ手段が訂正されたデータを誤ったデー
    タに代入するのに先立って提案された誤り訂正の回復さ
    れた残余バイトに対する影響を決定することを可能にす
    る、請求項25に記載の装置。
  27. 【請求項27】 発生器および回復回路手段は各前記デ
    ータブロックのデータIDフィールドの誤り検出残余バ
    イトを回復しかつチェックするための誤り検出手段をさ
    らに含む、請求項25に記載の装置。
  28. 【請求項28】 発生器および回復回路手段はx8 +x
    4 +x3 +x2 +1を有するフィールド発生器多項式に
    よって発生されるガロア体(28 )に従って誤り訂正コ
    ード化シンドローム情報を発生し、フィールドの第1の
    項はx5 +x 3 +x+1(00101011二進法であ
    る)であり、各誤り訂正シンドロームは一G(x)=x
    4 +(alpha18)・x3 +(alpha87)・x2
    +(alpha18)・x+1の形である、請求項25に
    記載の装置。
  29. 【請求項29】 発生器および回復回路手段はG(x)
    =x2 +aの形のチェッキングシンドローム情報を計算
    するためのリードソロモンクロスチェックシンドローム
    発生器手段をさらに含み、この式においてaは1に等し
    くない、請求項28に記載の装置。
  30. 【請求項30】 クロスチェックシンドローム発生器手
    段はG(x)=x2+alpha1 の形のチェッキング
    シンドローム情報を計算する、請求項29に記載の装
    置。
  31. 【請求項31】 発生器および回復回路手段は次の形の
    2バイトシンドロームを発生することによって各前記デ
    ータブロックのデータIDフィールドにおける誤りを検
    出するための誤り検出手段をさらに含み、その形はG
    EDC2(x)=x2 +ax+bであり、この式におい
    てbは1に等しくない、請求項28に記載の装置。
  32. 【請求項32】 誤り検出手段は次の形の2バイトシン
    ドロームを発生し、その形は GEDC2(x)=x2 +x+alpha18である、請
    求項31に記載の装置。
  33. 【請求項33】 発生器および回復回路手段は次の形の
    2バイトシンドロームを発生することによって各前記デ
    ータブロックのデータIDフィールドにおける誤りを検
    出するための誤り検出手段をさらに含み、その形は GEDC2(x)=x2 +alpha81・x+alph
    81である、請求項31に記載の装置。
  34. 【請求項34】 発生器および回復回路手段は次の形の
    3バイトシンドロームを発生することによって各前記デ
    ータブロックのデータIDフィールドにおける誤りを検
    出するための誤り検出手段をさらに含み、その形は、 GEDC3(x)=x3 +ax2 +bx+cである、請
    求項28に記載の装置。
  35. 【請求項35】 誤り検出手段は次の形の3バイトシン
    ドロームを発生し、その形は GEDC3(x)=x3 +alpha87・2+alph
    87・x+1である、請求項34に記載の装置。
  36. 【請求項36】 誤り検出手段は次の形の3バイトシン
    ドロームを発生し、その形は GEDC3(x)=x3 +alpha87・2+alph
    87・x+alpha18である、請求項34に記載の装
    置。
  37. 【請求項37】 プログラムされたマイクロプロセッサ
    手段は単一マイクロプロセッサを含む、請求項25に記
    載の装置。
  38. 【請求項38】 プログラムされたマイクロプロセッサ
    はその機能的活動をヘッド位置制御および監督と前記誤
    り訂正サービスルーチンの実行を含むデータフロー監督
    との間に分割する、請求項37に記載の装置。
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 true JPH05347075A (ja) 1993-12-27
JP2724934B2 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
US5629949A (en) * 1993-09-21 1997-05-13 Cirrus Logic, Inc. Error correction verification method and apparatus using CRC check remainders
SG50471A1 (en) * 1993-11-04 1998-07-20 Cirrus Logic Inc Burst error corrector
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
KR100278534B1 (ko) * 1994-03-03 2001-01-15 로버트 에프. 도나휴 테이블 구동 방식의 자동 분할 필드 계산 방법
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
EP0766245A4 (en) * 1995-04-12 1998-07-22 Toshiba Kk DATA PROCESSING METHOD FOR GENERATING A PRODUCT-CODED ERROR CORRECTION BLOCK, DATA PROCESSING METHOD FOR DATA RECORDING ON A RECORDING MEDIUM AND DATA PROCESSING DEVICE
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 株式会社日立グローバルストレージテクノロジーズ 性能評価方法及び性能評価装置並びにこれらを用いた記録再生装置
WO2001039190A1 (fr) * 1999-11-25 2001-05-31 Fujitsu Limited Procede de lecture d'un support de donnees, dispositif de stockage de donnees, procede de reproduction de donnees, systeme de reproduction de donnees et support de donnees utilise a cet effet
EP1146650A1 (en) * 2000-04-10 2001-10-17 Hewlett-Packard Company, A Delaware Corporation Error detection for data storage and transmission
EP1146651A1 (en) * 2000-04-10 2001-10-17 Hewlett-Packard Company 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
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
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
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 富士通株式会社 データ送信装置、データ送受信システム、データ送信装置の制御方法およびデータ送受信システムの制御方法
US20060056092A1 (en) * 2004-09-10 2006-03-16 Ehrlich Richard M System for microjog calibration by read-write zone
US20060056093A1 (en) * 2004-09-10 2006-03-16 Ehrlich Richard M Method 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
MX2007011093A (es) * 2005-03-10 2007-12-04 Qualcomm Inc Una arquitectura de descodificador para manejo optimizado de errores en multimedia continua.
US8693540B2 (en) * 2005-03-10 2014-04-08 Qualcomm Incorporated Method and apparatus of temporal error concealment for P-frame
US7925955B2 (en) * 2005-03-10 2011-04-12 Qualcomm Incorporated Transmit driver in communication system
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
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
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
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
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
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
IE920104A1 (en) 1992-08-12
EP0497593A2 (en) 1992-08-05
KR920017083A (ko) 1992-09-26
KR950009384B1 (ko) 1995-08-21
EP0497593A3 (ja) 1995-05-31
DE69229753D1 (de) 1999-09-16
EP0497593B1 (en) 1999-08-11
JP2724934B2 (ja) 1998-03-09
US5241546A (en) 1993-08-31
DE69229753T2 (de) 2000-03-02

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
US6574774B1 (en) Physical block address recovery apparatus system and method for cyclic error correction codes
US6003151A (en) Error correction and detection system for mass storage controller
US5805799A (en) Data integrity and cross-check code with logical block address
US5602857A (en) Error correction method and apparatus
US7530009B2 (en) Data storage method and data storage device
US5946328A (en) Method and means for efficient error detection and correction in long byte strings using integrated interleaved Reed-Solomon codewords
US6125469A (en) Error correction method and apparatus
JP4709485B2 (ja) オンドライブ統合化セクタ・フォーマットraidの誤り訂正符号システムおよび方法
US6462898B2 (en) Disk drive with information encoded in the position error signal fields
US6009550A (en) PBA recovery apparatus and method for interleaved reed-solomon codes
US7127660B2 (en) Method, apparatus and program storage device for correcting a burst of errors together with a random error using shortened cyclic codes
EP0341863B1 (en) Sector mis-synchronization detection method
US7131052B2 (en) Algebraic decoder and method for correcting an arbitrary mixture of burst and random errors
US6587977B1 (en) o,k,m,/m recording code
US5943348A (en) Method to check for burst limiting in error correcting systems
US5974582A (en) High-speed chien search logic
US6141176A (en) Data storage disk with information encoded in the position error signal fields
Arai et al. High capability error correction LSI for CD player and CD rom
JP2544109B2 (ja) 情報記録装置
JP3279501B2 (ja) 大容量記憶装置用コントローラの誤り訂正及び誤り検出方法
EP1232499A1 (en) Rogue packet detection and correction method for data storage device
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