(57)【特許請求の範囲】
【請求項１】
ランダムアクセス可能な大容量記憶手段と、前記大容量記憶手段から読出したデータの誤りを訂正する誤り訂正手段と、前記誤り訂正手段で誤りを訂正したデータに欠けエラーが残っている時及びデータの化けが残っている時に前記欠けエラー及びその化けエラー各々を示す所定のデータパタンを挿入して出力するエラー処理手段とを有し、前記欠けエラーがある場合と前記化けエラーがある場合とで異なるデータパタンを挿入することを特徴とする記憶装置。
【請求項２】
前記エラー処理手段は、前記誤り訂正手段で誤りを訂正したデータに欠けエラーが残っている時に、欠けたデータと同じ大きさになるまで前記欠けエラーを示す所定のデータパタンを繰返し挿入して出力するよう構成したことを特徴とする請求項１記載の記憶装置。
【請求項３】
前記エラー処理手段は、前記誤り訂正手段で誤りを訂正したデータにデータの化けが残っている場合に、前記データの化けを含むデータを削除してそのデータと同じ大きさになるまで前記化けエラーを示す所定のデータパタンを繰返し挿入して出力するよう構成したことを特徴とする請求項１記載の記憶装置。
【請求項４】
前記エラー処理手段は、前記誤り訂正手段で誤りを訂正したデータにデータの化けが残っている場合に、前記データの化けを含むデータの直前及び途中の少なくとも一箇所に前記化けエラーを示す所定のデータパタンを挿入して出力するよう構成したことを特徴とする請求項１記載の記憶装置。
【請求項５】
前記エラー処理手段は、前記大容量記憶手段から読出したデータのエラー発生時に前記所定のデータパタンの出力可否を示すエラー出力モードを前記大容量記憶手段から読出すデータの種類に応じて変更自在としたことを特徴とする請求項１から請求項４のいずれか記載の記憶装置。
【請求項６】
外部コマンドに含まれかつ前記エラー出力モードの変更を指示するエラー制御サブコマンドに応じて前記エラー出力モードを変更自在としたことを特徴とする請求項５記載の記憶装置。
【請求項７】
前記データの種類に応じたエラー出力モードを格納するエラー出力モード記憶手段と、外部コマンドに含まれかつ前記データの種類を示すデータ種別情報を基に前記エラー出力モード記憶手段を参照して前記エラー出力モードを変更する手段とを含むことを特徴とする請求項５記載の記憶装置。
【請求項８】
前記大容量記憶手段から読出すデータの種類を判断するデータ判別手段と、前記データの種類に応じたエラー出力モードを格納するエラー出力モード記憶手段と、前記データ判別手段の判別結果を基に前記エラー出力モード記憶手段を参照して前記エラー出力モードを変更する手段を含むことを特徴とする請求項５記載の記憶装置。
【請求項９】
ランダムアクセス可能な大容量記憶手段と、前記大容量記憶手段から読出したデータの誤りを訂正する誤り訂正手段と、前記誤り訂正手段で誤りを訂正したデータに欠けエラーが残っている時及びデータの化けが残っている時に前記欠けエラー及びその化けエラー各々を示す所定のデータパタンを挿入して出力するエラー処理手段とを含みかつ前記欠けエラーがある場合と前記化けエラーがある場合とで異なるデータパタンを挿入する記憶装置と、
前記記憶装置から読出したデータから前記欠けエラーを示す所定のデータパタンを検出した時に当該欠けエラーの発生を通知するエラー検出手段と、
前記エラー検出手段で検出された欠けエラーに対応してデータを処理するデータ処理手段とを有することを特徴とする記憶システム。
【請求項１０】
前記エラー処理手段は、前記誤り訂正手段で誤りを訂正したデータに欠けエラーが残っている時に、欠けたデータと同じ大きさになるまで前記欠けエラーを示す所定のデータパタンを繰返し挿入して出力するよう構成したことを特徴とする請求項９記載の記憶システム。
【請求項１１】
前記エラー検出手段は、前記データの欠けの発生を検出するとともに前記欠けたデータの大きさを検出するよう構成し、
前記データ処理手段は、前記エラー検出手段で検出された前記データの欠け及びその大きさに対応してデータを処理するよう構成したことを特徴とする請求項９記載の記憶システム。
【請求項１２】
前記エラー処理手段は、前記大容量記憶手段から読出したデータのエラー発生時に前記欠けエラーを示す所定のデータパタンの出力可否を示すエラー出力モードを前記大容量記憶手段から読出すデータの種類に応じて変更自在としたことを特徴とする請求項９から請求項１１のいずれか記載の記憶システム。
【請求項１３】
外部コマンドに含まれかつ前記エラー出力モードの変更を指示するエラー制御サブコマンドに応じて前記エラー出力モードを変更自在としたことを特徴とする請求項１２記載の記憶システム。
【請求項１４】
前記データの種類に応じたエラー出力モードを格納するエラー出力モード記憶手段と、外部コマンドに含まれかつ前記データの種類を示すデータ種別情報を基に前記エラー出力モード記憶手段を参照して前記エラー出力モードを変更する手段とを含むことを特徴とする請求項１３記載の記憶システム。
【請求項１５】
前記大容量記憶手段から読出すデータの種類を判断するデータ判別手段と、前記データの種類に応じたエラー出力モードを格納するエラー出力モード記憶手段と、前記データ判別手段の判別結果を基に前記エラー出力モード記憶手段を参照して前記エラー出力モードを変更する手段を含むことを特徴とする請求項１３記載の記憶システム。
【請求項１６】
ランダムアクセス可能な大容量記憶手段と、前記大容量記憶手段から読出したデータの誤りを訂正する誤り訂正手段と、前記誤り訂正手段で誤りを訂正したデータに欠けエラーが残っている時及びデータの化けが残っている時に前記欠けエラー及びその化けエラー各々を示す所定のデータパタンを挿入して出力するエラー処理手段とを含みかつ前記欠けエラーがある場合と前記化けエラーがある場合とで異なるデータパタンを挿入する記憶装置と、
前記記憶装置から読出したデータから前記化けエラーを示す所定のデータパタンを検出した時に当該化けエラーの発生を通知するエラー検出手段と、
前記エラー検出手段で検出された化けエラーに対応してデータを処理するデータ処理手段とを有することを特徴とする記憶システム。
【請求項１７】
前記エラー処理手段は、前記誤り訂正手段で誤りを訂正したデータにデータの化けが残っている場合に、前記データの化けを含むデータを削除してそのデータと同じ大きさになるまで前記化けエラーを示す所定のデータパタンを繰返し挿入して出力するよう構成したことを特徴とする請求項１６記載の記憶システム。
【請求項１８】
前記エラー処理手段は、前記誤り訂正手段で誤りを訂正したデータにデータの化けが残っている場合に、前記データの化けを含むデータの直前及び途中の少なくとも一箇所に前記化けエラーを示す所定のデータパタンを挿入して出力するよう構成したことを特徴とする請求項１６記載の記憶システム。
【請求項１９】
前記エラー検出手段は、前記化けエラーの発生を検出するとともに前記化けエラーを含むデータの大きさを検出するよう構成し、
前記データ処理手段は、前記エラー検出手段で検出された前記データの化け及びその化けを含むデータの大きさに対応してデータを処理するよう構成したことを特徴とする請求項１６記載の記憶システム。
【請求項２０】
前記エラー処理手段は、前記大容量記憶手段から読出したデータのエラー発生時に前記所定のデータパタンの出力可否を示すエラー出力モードを前記大容量記憶手段から読出すデータの種類に応じて変更自在としたことを特徴とする請求項１６から請求項１９のいずれか記載の記憶システム。
【請求項２１】
外部コマンドに含まれかつ前記エラー出力モードの変更を指示するエラー制御サブコマンドに応じて前記エラー出力モードを変更自在としたことを特徴とする請求項２０記載の記憶システム。
【請求項２２】
前記データの種類に応じたエラー出力モードを格納するエラー出力モード記憶手段と、外部コマンドに含まれかつ前記データの種類を示すデータ種別情報を基に前記エラー出力モード記憶手段を参照して前記エラー出力モードを変更する手段とを含むことを特徴とする請求項２０記載の記憶システム。
【請求項２３】
前記大容量記憶手段から読出すデータの種類を判断するデータ判別手段と、前記データの種類に応じたエラー出力モードを格納するエラー出力モード記憶手段と、前記データ判別手段の判別結果を基に前記エラー出力モード記憶手段を参照して前記エラー出力モードを変更する手段を含むことを特徴とする請求項２０記載の記憶システム。
【請求項２４】
ランダムアクセス可能な大容量記憶手段と、前記大容量記憶手段から読出したデータの誤りを訂正する誤り訂正手段とを含む記憶装置のエラー発生通知方法であって、前記誤り訂正手段で誤りを訂正したデータに欠けエラーが残っている時及びデータの化けが残っている時に前記欠けエラー及びその化けエラー各々を示す所定のデータパタンを挿入して出力し、前記欠けエラーがある場合と前記化けエラーがある場合とで異なるデータパタンを挿入することを特徴とするエラー発生通知方法。
【請求項２５】
前記誤り訂正手段で誤りを訂正したデータに欠けエラーが残っている時に、欠けたデータと同じ大きさになるまで前記欠けエラーを示す所定のデータパタンを繰返し挿入して出力するようにしたことを特徴とする請求項２４記載のエラー発生通知方法。
【請求項２６】
前記誤り訂正手段で誤りを訂正したデータにデータの化けが残っている場合に、前記データの化けを含むデータを削除してそのデータと同じ大きさになるまで前記化けエラーを示す所定のデータパタンを繰返し挿入して出力するようにしたことを特徴とする請求項２４記載のエラー発生通知方法。
【請求項２７】
前記誤り訂正手段で誤りを訂正したデータにデータの化けが残っている場合に、前記データの化けを含むデータの直前及び途中の少なくとも一箇所に前記化けエラーを示す所定のデータパタンを挿入して出力するようにしたことを特徴とする請求項２４記載のエラー発生通知方法。
【請求項２８】
前記大容量記憶手段から読出したデータのエラー発生時に前記所定のデータパタンの出力可否を示すエラー出力モードを前記大容量記憶手段から読出すデータの種類に応じて変更自在としたことを特徴とする請求項２４から請求項２７のいずれか記載のエラー発生通知方法。
【請求項２９】
外部コマンドに含まれかつ前記エラー出力モードの変更を指示するエラー制御サブコマンドに応じて前記エラー出力モードを変更自在としたことを特徴とする請求項２８記載のエラー発生通知方法。
【請求項３０】
外部コマンドに含まれかつ前記データの種類を示すデータ種別情報を基に、前記データの種類に応じたエラー出力モードを格納するエラー出力モード記憶手段を参照して前記エラー出力モードを変更するようにしたことを特徴とする請求項２８記載のエラー発生通知方法。
【請求項３１】
前記大容量記憶手段から読出すデータの種類の判別結果を基に、前記データの種類に応じたエラー出力モードを格納するエラー出力モード記憶手段を参照して前記エラー出力モードを変更するようにしたことを特徴とする請求項２８記載のエラー発生通知方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は記憶装置及びそれを用いた記憶システム並びにそれらに用いるエラー発生通知方法に関し、特にディスク装置から読出したデータを専用プロセッサで処理するシステムにおけるディスクから専用プロセッサへのエラー発生の通知方法に関する。
【０００２】
【従来の技術】
記憶装置の一種であるディスク装置は、ディスクインタフェースを通してリードコマンドやライトコマンドといった入出力コマンドを受信し、指定した記憶領域（セクタ）に対するデータの蓄積と取出しとを行っている。
【０００３】
ディスク装置の内部では、データが、記録媒体面を同心円状またはらせん状に区分けしたトラックを、さらにセクタと呼ばれる一定長の区画に分割されて記録されている。この記録媒体を回転させ、記録媒体面に相対したヘッドをアクチュエータで半径方向に移動させることで、記録面の目的の個所にヘッドを位置合わせしてデータを読み書きしている。
【０００４】
しかしながら、記録媒体に記録された信号レベルの劣化や、読み書き時の機械的振動や電気的なノイズが発端となって、ヘッドの位置合わせに失敗してデータの一部が読出せずにデータが欠けるというエラーや、読み書きしたデータが本来の値と異なる化けエラーが時々発生することがある。
【０００５】
欠けや化けといった誤りがあった場合の対策として、正味のデータのほかに、誤り検出と訂正とのための誤り制御符号（ＥＣＣ：Ｅｒｒｏｒ  ＣｏｎｔｒｏｌＣｏｄｉｎｇ）をデータとともに記憶媒体に書込んでいる。
【０００６】
この場合、読出した誤り制御符号によって正味のデータに誤りが見つかれば、誤り訂正回路が訂正を試みるが、訂正しきれない場合には誤り検出信号を出力する。
【０００７】
誤り訂正回路が訂正しきれない場合、エラー処理手段は再びデータの読出しを試みて、訂正可能なデータが読出せるまで繰り返す。再読出しを何回か繰り返しても誤りを訂正しきれない場合、エラー処理手段はデータ・エラーが発生したと判断する。
【０００８】
従来、上記のようなディスク装置のほとんどが計算やデータベース処理を目的としたコンピュータシステムで用いられてきている。このようなシステムではディスク装置に対するデータの入出力要求も、入出力したデータの処理も、いずれも汎用プロセッサで行っている。
【０００９】
また、入出力されるデータの特性としてはプログラムやデータベースのデータのように、入出力の所要時間にはそれほど制約がないが、一方で、誤りが一個所でもあると残りのデータが読出せても、無意味になるというデータが多い。
【００１０】
このため、従来のディスク装置では誤り訂正ができない場合にかなりの時間（１セクタ当たり数秒から１０秒間）をかけて、何度も再読出しを試みるようになっている。また、再読出ししても、なお読出せずに、エラー処理手段がデータエラーと判断した場合、データの出力を中断し、出力要求元である汎用プロセッサに対して割込みをかけてエラーの発生を通知している。
【００１１】
近年、ディスク装置の大容量化と動画の圧縮技術の進歩とによって、音声や動画データをディスク装置に蓄積して利用するビデオサーバ等のシステムが多く開発されている。
【００１２】
音声や動画のデータには、従来のコンピュータシステムにおけるデータと異なる２つの特徴がある。一つ目の特徴は放送から録画する場合や、再生してＴＶモニタに表示する場合、ディスクとのデータの入出力時間に期限があることである。つまり、何度も再読出しを試みることは許されない。もう一つの特徴は、データエラーによる音声や動画の乱れがエラーの周辺に限定されるので、残りのデータを読出すことには意味がある点である。
【００１３】
最近、このような観点から、ディスク装置の改良点として、主に、（ａ）再読出しの回数を含めた入出力の所要時間の上限を外部から指定する機能、（ｂ）データ・エラーが起こった時に、入出力を停止する機能を省くこと、（ｃ）データ・エラーを含むデータを出力しない機能を省くことというような点が検討されている。
【００１４】
（ｂ）の機能では読出したデータにエラーが残っている場合、エラーを含むデータをディスク装置の外には出力しない。この場合でも、読出し自体は中止せずに、後続のデータの読出しを行い、エラーがないデータのみを出力する機能である。
【００１５】
（ｃ）の機能が考えられた理由は、動画や音声のデコーダにはデータのエラーに対処する機能があり、エラーを含むデータをそのまま処理した方が、（ｂ）の機能のようにエラーを含むデータ全体を処理しない場合よりも、再生品質の劣化が少ない場合があることによる。但し、（ｃ）の機能については、エラーを含むデータがＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）データのどの部分であるかや、その長さによって影響の大きさが異なるので、ディスク装置内部でその影響を正確に推測することは困難である。
【００１６】
音声や動画のデータを蓄積する場合のその他の改良点として、扱うデータ量が動画や音声の場合に大量で、しかも途切れずに処理をしなければならないため、このようなデータの処理を専用プロセッサに委ねるという構成が検討されている。この場合、汎用プロセッサはディスク装置に対する入出力要求だけを行うことになる。出力されたデータは汎用プロセッサで処理されることなく、そのまま専用プロセッサに渡される。
【００１７】
このような動画や音声処理の専用プロセッサの例としては、ＭＰＥＧ２（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  ｐｈａｓｅ  ２）デコーダが挙げられる。ＭＰＥＧにおける画像圧縮では空間領域と時間領域とにおける冗長性を除去することで圧縮をしている。特に、時間領域で冗長性を除去するために、動画像を複数コマづつの静止画フレームの組に分け、そのうちの１フレームを静止画として圧縮し、他のフレームを相互のフレーム間の差分情報のみを抽出して圧縮している。ＭＰＥＧデコーダはこのＭＰＥＧデータから元の動画を復元する。
【００１８】
ＭＰＥＧデコーダ以外にも、ディスク装置とＭＰＥＧデコーダとの間にはフィルタや通信処理の専用プロセッサが介在する。例えば、特開平０３−２３５５８９号公報に開示されているフィルタ・プロセッサがある。これは通信で受信した動画や音声のパケット列から、再生に必要な有効パケットと再生に不要な無効パケットとを分別し、無効パケットを除去してデータ量を減らすことで、ディスク装置への録画可能な時間を増やすものである。
【００１９】
この時、除去した無効パケットの個数を有効パケットに付加して記憶装置に記録しておき、記憶装置から取出す時は、有効パケットの間に記録された個数の空パケットを挿入して送信する。これによって、受信した時と同じ時間間隔で有効パケットを送信することができる。
【００２０】
【発明が解決しようとする課題】
しかしながら、上述したディスク装置の（ａ）の機能によってデータエラーの発生頻度が増加し、そのデータエラーの度に（ｂ）の機能や（ｃ）の機能のようにしてデータの欠けや化けを含んだデータが出力されることが予想される。このようなデータを受取ると、上記のような専用プロセッサが誤動作して、動画や音声の再生が途切れてしまうことが懸念される。
【００２１】
例えば、上記のフィルタ・プロセッサの場合、ディスク装置から読出したデータにエラーが含まれていて、受信時にカウントした無効パケット数の部分に誤りがあると、空パケットを大量に送出したり、逆に有効パケットを一度に送出してしまう可能性がある。
【００２２】
このようなことが発生すると、データの送付先にＭＰＥＧデコーダがある場合には絵や音が途切れたり、受信したデータをデコードし切れずに絵や音が飛んだり、ノイズが発生する可能性がある。
【００２３】
従来のディスク装置だけでなく、上述した（ａ）〜（ｃ）の機能のような改良型ディスク装置を用いた場合でも、ディスクで発生したエラーが汎用プロセッサにのみ通知され、汎用プロセッサ上でのプログラム処理を経て、専用プロセッサに通知されることになる。
【００２４】
この通知は、具体的に、以下の手順で行われる。まず、ディスク装置でエラーが発生すると、従来のディスク装置ならデータの読出しを途中で終了し、上記の（ａ）の機能のディスク装置ならデータの読出しをそのまま続けて所定のデータを全て読出してから終了する。
【００２５】
そして、読出しコマンドが終了したことは割込み信号線を用いて汎用プロセッサに通知される。汎用プロセッサでは実行中のプログラム処理を区切りのよいところまで実行し、内部レジスタの値をメモリに保存してから、割込み処理のプログラムをコールする。
【００２６】
割込み処理プログラムでは割込みの原因を調べるために、ディスク装置にステータス読出しコマンドを送り、ステータス情報を受取る。このステータス情報を調べて、読出しコマンド実行中にデータエラーが発生したことが分かると、汎用プロセッサは専用プロセッサにデータにエラーがあったことを通知する。
【００２７】
このように、ディスク装置から専用プロセッサにエラーが通知されるまでには、しばしば長いステップを必要とする。もし、エラーの通知前にエラーを含むデータが専用プロセッサに渡れば、専用プロセッサは上述したように誤動作する可能性がある。したがって、これを防ぐには、ディスク装置から専用プロセッサにデータを渡す部分に、新規または追加のＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）メモリを設けて、伝達を遅らせる必要がある。
【００２８】
このようなプログラムによるエラーの通知時間は割込み処理に特化したリアルタイムＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を基本ソフトウェアとして用いることで、短くすることができる。しかしながら、動画や音声を扱う機器ではグラフィカルなユーザ・インタフェースが不可欠であるが、リアルタイムＯＳの多くはまだグラフィカルなユーザ・インタフェースの開発環境に乏しい。
【００２９】
その一方で、ユーザ・インタフェースの開発に適した基本ソフトウェアでは、現時点において割込み処理の起動が遅く、エラーの通知時間が非常に長くなることがある。
【００３０】
そこで、本発明の目的は上記の問題点を解消し、記憶装置から読出したデータを専用プロセッサで処理するシステムにおいて、記憶装置で発生したデータエラーを汎用プロセッサの助けなしに専用プロセッサに伝達することができる記憶装置及びそれを用いた記憶システム並びにそれらに用いるエラー発生通知方法を提供することにある。
【００３１】
【課題を解決するための手段】
本発明による記憶装置は、ランダムアクセス可能な大容量記憶手段と、前記大容量記憶手段から読出したデータの誤りを訂正する誤り訂正手段と、前記誤り訂正手段で誤りを訂正したデータに欠けエラーが残っている時及びデータの化けが残っている時に前記欠けエラー及びその化けエラー各々を示す所定のデータパタンを挿入して出力するエラー処理手段とを備え、前記欠けエラーがある場合と前記化けエラーがある場合とで異なるデータパタンを挿入している。
【００３３】
本発明による記憶システムは、ランダムアクセス可能な大容量記憶手段と、前記大容量記憶手段から読出したデータの誤りを訂正する誤り訂正手段と、前記誤り訂正手段で誤りを訂正したデータに欠けエラーが残っている時及びデータの化けが残っている時に前記欠けエラー及びその化けエラー各々を示す所定のデータパタンを挿入して出力するエラー処理手段とを含みかつ前記欠けエラーがある場合と前記化けエラーがある場合とで異なるデータパタンを挿入する記憶装置と、
前記記憶装置から読出したデータから前記欠けエラーを示す所定のデータパタンを検出した時に当該欠けエラーの発生を通知するエラー検出手段と、
前記エラー検出手段で検出された欠けエラーに対応してデータを処理するデータ処理手段とを備えている。
【００３４】
本発明による他の記憶システムは、ランダムアクセス可能な大容量記憶手段と、前記大容量記憶手段から読出したデータの誤りを訂正する誤り訂正手段と、前記誤り訂正手段で誤りを訂正したデータに欠けエラーが残っている時及びデータの化けが残っている時に前記欠けエラー及びその化けエラー各々を示す所定のデータパタンを挿入して出力するエラー処理手段とを含みかつ前記欠けエラーがある場合と前記化けエラーがある場合とで異なるデータパタンを挿入する記憶装置と、
前記記憶装置から読出したデータから前記化けエラーを示す所定のデータパタンを検出した時に当該化けエラーの発生を通知するエラー検出手段と、
前記エラー検出手段で検出された化けエラーに対応してデータを処理するデータ処理手段とを備えている。
【００３５】
本発明によるエラー発生通知方法は、ランダムアクセス可能な大容量記憶手段と、前記大容量記憶手段から読出したデータの誤りを訂正する誤り訂正手段とを含む記憶装置のエラー発生通知方法であって、前記誤り訂正手段で誤りを訂正したデータに欠けエラーが残っている時及びデータの化けが残っている時に前記欠けエラー及びその化けエラー各々を示す所定のデータパタンを挿入して出力し、前記欠けエラーがある場合と前記化けエラーがある場合とで異なるデータパタンを挿入している。
【００３７】
すなわち、本発明の記憶装置は、記憶媒体からデータを読出した際に、誤り訂正手段で訂正しきれないデータの値の欠けや化けといったデータエラーが発生した場合、読出したデータに予め定めたデータパタンを挿入するエラー処理手段を備えている。
【００３８】
これによって、本発明の記憶システムにおいて、記憶装置から読出したデータを処理する専用プロセッサは、エラー箇所を示すデータパタンを検出することによって、エラーが発生したことを知ることができる。また、エラーが発生した場合に、そのエラーの箇所や専用プロセッサの内部状態に応じて、適切なエラー処理をすることによって、処理の乱れを最小限とすることが可能となる。
【００３９】
このデータパタンを挿入する箇所としては、データエラーの含まれる箇所の先頭及び末尾の位置、あるいはどちらか一方に発生箇所の長さ情報を追加するか、あるいはエラー発生箇所に等間隔に挿入する方法が考えられる。
【００４０】
また、データエラーのうち、データの値に化けがある場合とデータの一部が欠けている場合とで異なるデータパタンを挿入することで、専用プロセッサはより適切な処理を選択することが可能となる。
【００４１】
さらに、プロセッサにデータエラーを知らせる上記の通知方式を、読出すデータに応じて切換える手段も考えられる。これによって、種類の異なるプロセッサで処理される複数の種類のデータを、同一の記憶装置に格納することが可能になる。
【００４２】
【発明の実施の形態】
次に、本発明の実施例について図面を参照して説明する。図１は本発明の第１の実施例によるディスクシステムの構成を示すブロック図であり、図２は本発明の第１の実施例によるディスク装置の動作を示すタイムチャートである。これら図１及び図２を参照して本発明の第１の実施例によるディスクシステム及びディスク装置１の動作について説明する。
【００４３】
ディスク装置１の回転する記憶媒体２上には正味のデータ１００と誤り制御符号１０１（ＥＣＣ：Ｅｒｒｏｒ  Ｃｏｎｔｒｏｌ  Ｃｏｄｉｎｇ）とが交互に記録されており、指定された記憶領域のデータをヘッド３で読み書きする。
【００４４】
汎用プロセッサ（コマンド発行手段）１０はＩＯ（入出力）バス１１経由でディスク装置１のコントローラ（エラー処理手段）４にリードコマンド１０２を発行する。
【００４５】
コントローラ４はリードコマンド１０２で指定された記憶媒体２の記録領域から正味のデータ１００と誤り制御符号１０１とを読出す。誤り訂正回路５は正味のデータ１００を誤り制御符号１０１で検証し、誤りが見つかると、これをできるだけ訂正してデータ１０４（データ▲１▼〜▲５▼）として出力する。誤り訂正回路５は誤りが訂正しきれなければ、エラー信号１０５を出力する。
【００４６】
コントローラ４は読出したデータ１０４をＩＯバス１１経由で専用プロセッサ（エラー検出手段及びデータ処理手段）２０のバッファメモリ１３にデータ１０６として転送する。
【００４７】
また、コントローラ４はエラー信号１０５がセットされると、レジスタ６に予め格納されている制御データパタン１０７をＩＯバス１１経由で専用プロセッサ２０のバッファメモリ１３にデータ１０６として転送する。
【００４８】
同様に、エラー信号１０５がリセットされると、レジスタ７に予め格納されているデータパタン１０８をＩＯバス１１経由でバッファメモリ１３にデータ１０６として転送する。
【００４９】
専用プロセッサ２０はバッファメモリ１３に転送されたデータ１０６を順に読出して処理する。読出したデータがレジスタ２１に格納されているデータパタンと一致すると、エラーフラグレジスタ２２をセットし、以後、ディスク装置１から読出したデータは誤りを含んでいるものとして処理する。
【００５０】
ディスク装置１から読出したデータがレジスタ２３に格納されているデータパタンと一致すると、エラーフラグレジスタ２２をリセットし、以後、ディスク装置１から読出したデータは誤りを含んでいないものとして処理する。
【００５１】
図３は本発明の第２の実施例によるディスクシステムの構成を示すブロック図である。図３において、本発明の第２の実施例ではディスク装置１が、どのエラー発生通知方法が選択されているかを格納する出力モード設定レジスタ５０のほかに、各エラー誤り発生通知方法における所定のデータパタンを格納する置換パタンレジスタ５１と、化け先頭パタンレジスタ５２と、化け末尾パタンレジスタ５３と、欠け挿入パタンレジスタ５４とを備えており、読出しデータに欠けや誤りといったデータエラーが含まれる場合に、コントローラ４がどのようなデータを出力すべきかを設定自在としている。
【００５２】
化け置換パタンレジスタ５１は化けが検出された時に、それを置き換えるべき値、すなわち化け置換パタン１５１を設定するレジスタである。化け先頭パタンレジスタ５２は化けが検出された時に、その化けを含むと思われるデータ範囲の先頭に挿入する値、すなわち化け先頭パタン１５２を設定するレジスタである。
【００５３】
化け末尾パタンレジスタ５３は化けが検出された時に、その化けを含むと思われるデータ範囲の末尾に挿入する値、すなわち化け末尾パタン１５３を設定するレジスタである。
【００５４】
欠け挿入レジスタ５４は読出したデータに欠けが検出された時に、そこに代わりのデータパタンを挿入するのであれば、その値、すなわち欠け挿入データ１５４を設定するレジスタである。
【００５５】
これらの化け置換パタンレジスタ５１、化け先頭パタンレジスタ５２、化け末尾パタンレジスタ５３、欠け挿入パタンレジスタ５４各々の設定値を用いて、置換や挿入をするかどうかや、エラー発生時にコマンドの処理を中断するかしないかを示す値１５０を設定するレジスタが、出力モード設定レジスタ５０である。
【００５６】
図４は図３の出力モード設定レジスタ５０のビット構成例を示す図である。図４において、出力モード設定レジスタ５０を構成する７ビットのレジスタは３つに区分される。最上位の１ビットである第６ビットには、リードエラーが発生した時の出力モードを設定する。このビットが“０”ならば、リードエラーが発生した時に、コマンドの半ばであっても、エラーの直前の箇所でリードは終了する。このビットが“１”ならば、リードエラーが発生しても、コマンドで指定された最後のセクタまで出力してから終了する。
【００５７】
次の２ビットである第５ビット及び第４ビットには、データ欠けを含むエラーが発生した場合の出力モードを設定する。データに欠けエラーが含まれる場合、第５ビットが“０”ならば、そのまま出力する。
【００５８】
上記と同様に、データに欠けエラーが含まれる場合、第５ビットが“１”で第４ビットが“０”ならば、上記の欠け挿入パタン１５４を欠け挿入パタンレジスタ５４から読出して、欠けているデータと同じ大きさになるまで繰り返し挿入する。また、上記と同様に、データに欠けエラーが含まれる場合、第５ビットと第４ビットとが“１”ならば、上記の欠け挿入パタン１５４を１つ挿入する。
【００５９】
最下位の４ビットである第３ビットから第０ビットには、データ化けを含むエラーが発生した場合の出力モードを設定する。データに化けエラーが含まれる場合、第３ビットが“０”ならば、化けを含むデータを削除して出力する。
【００６０】
第３ビットが“１”で、第２ビットが“０”ならば、上記の化け置換パタン１５１を化け置換パタンレジスタ５１から読出して化けを含むと思われるデータと置換して出力する。
【００６１】
第３ビットと第２ビットとが“１”ならば、化けを含むデータをそのまま出力する。この時に、第１ビットが“１”ならば、化けを含むデータの直前に化け置換パタン１５１を１つ挿入し、第１ビットが“０”ならば、何も挿入しない。同じ時、第０ビットが“１”ならば、化けを含むデータの直後に化け置換パタン１５１を１つ挿入し、第０ビットが“０”ならば、何も挿入しない。
【００６２】
図５は図３のディスク装置１の読出し動作例を示すタイムチャートである。図５は図３に示すシステム構成において、図４に示す出力モードを切替えながら２種類のデータの読出しを行っている時の動作を示している。
【００６３】
最初の読出しデータは汎用プロセッサ１０で処理する。このため、汎用プロセッサ１０はエラー出力モードとして７ビットの２進数で“０００００００”（すなわち、エラー発生時にデータの出力を中断する）を出力モード設定レジスタ５０に設定する。この状態でデータを読出すと、エラー発生時にはデータの出力が中断され、読出しコマンドが終了する。
【００６４】
これに対して、次の読出しデータは専用プロセッサ２０で処理する。このため、汎用プロセッサ１０はエラー出力モードとして、“１１０１０００”（すなわち、エラー発生時にデータの出力を中断せず、欠けは欠け挿入パタン１５４で埋め、化けを含むデータは化け置換パタン１５１で置換）を出力モード設定レジスタ５０に設定する。この状態でデータを読出すと、エラー発生時にはデータの出力が中断せず、欠けエラーの部分には欠け挿入パタン１５４が挿入され、化けを含むデータは化け置換パタン１５１に置換されて出力される。
【００６５】
このシーケンスに示すように、図４に示す出力モード設定レジスタ５０を動的に変更すれば、ディスク装置１において読出すデータの種類に合わせたエラー処理が可能となる。この出力モードの設定は、図４に示すように、設定専用の制御コマンドとして行う方法の他に、リードコマンド中のビットを利用して行う方法も考えられる。
【００６６】
また、これらの方法を組合わせた方法としては、例えば２種類のデータについて、それぞれエラー出力モードを制御コマンドで設定しておき、リードコマンド中の１ビットでデータの種類を指定する方法や、それぞれのデータの種類に対応した２種類のリードコマンドを設ける方法が考えられる。
【００６７】
これ以外にエラー出力モードの切替え方式として考えられるのは、自動的にエラー出力モードを切替える方式である。すなわち、ディスク装置１から読出すデータが何れも固定長のパケットで、そのヘッダを見ればデータの種類が分かるシステムではディスク装置１内部でこのデータの種類を比較的容易に判断することができる。したがって、出力モード設定レジスタ５０をその種類に応じて設けておけば、汎用プロセッサ１０がそのつど変更しなくても、ディスク装置１内部でデータの種類に応じてエラー出力モードを自動的に切替えることができる。
【００６８】
図６は本発明の第３の実施例によるエラーの通知に応じてデータの処理方法を変える専用プロセッサの動作例を示すタイムチャートである。ここでは、上述した特開平０３−２３５５８９号公報に開示されたパケット・フィルタに上記の機能を付加したものを示している。
【００６９】
ディスク装置１に書込まれた正味のデータの中身は、図６に示すように、有効パケット１１０と無効パケット数１１１とが交互に並んだデータ構造となっている。ディスク装置１から出力されたデータはバッファメモリ１３から交互に読出される。エラーがない時には有効パケットと有効パケットとの間に、無効パケット数分の空パケット１１４を挿入して出力パケット１１５として出力する。
【００７０】
エラーになると、有効パケットと有効パケットとの間に、予め設定された空パケット数を暫定的に出力する。有効パケット１１０はエラーの有無に関わらず、そのまま出力パケット１１５として出力する。
【００７１】
図７は本発明の第３の実施例によるパケットフィルタの回路構成例を示すブロック図である。図７において、バッファメモリ１３から読出したデータ１０６はデマルチプレクサ２４で有効パケット１１０と無効パケット数１１１とに分離される。
【００７２】
セレクタ２５はエラーフラグレジスタ２２がリセットされている間、デマルチプレクサ２４が出力した無効パケット数１１１を出力する。一方、エラーフラグレジスタ２２がセットされている間、無効パケット数１１１が誤っている可能性があるので、セレクタ２５は平均空パケット数レジスタ２６の値１１２を暫定的な空パケット数１１３として出力する。
【００７３】
マルチプレクサ２７は有効パケット１１０を１個出力する毎に、セレクタ２５の示す個数分の空パケット１１４を空パケットレジスタ２８から取出して出力する。
【００７４】
図８は本発明の第４の実施例によるパケットフィルタの回路構成例を示すブロック図である。上記の本発明の第３の実施例によるパケット出力回路では挿入される空パケットの個数が自然数で一定値である。これに対して、図８の点線で囲んだ部分は、挿入する空パケット数を有効パケット数に対する無効パケット数の比率１１６から求める回路例を示している。
【００７５】
空パケット率レジスタ３０は無効パケットの比率を固定小数点数で表わした値１１６を、下位８ビットを小数点以下とする固定小数点数として格納する。空パケット数レジスタ２９も、同様の固定小数点数レジスタであり、１個の有効パケットが送出されると、小数部と空パケット率レジスタ３０の値との和が代入される。その結果、空パケット数レジスタ２９の整数部が示す個数の空パケットが送出される。
【００７６】
図９は本発明の第４の実施例によるパケットフィルタの動作例を示すタイムチャートである。これら図８及び図９を参照して本発明の第４の実施例によるパケットフィルタの動作について説明する。
【００７７】
エラーフラグレジスタ２２がリセットされている場合、有効パケット１１０の後には無効パケット数１１１の個数分の空パケット１１４が挿入される。エラーフラグレジスタ２２がセットされている場合、有効パケット１１０が送出されると、空パケット数レジスタ２９に空パケット率レジスタ３０の値１１６が加算される。
【００７８】
この例では、空パケット率レジスタ３０には「１．７５」（上記の浮動小数点数で１６進表記すると、‘０１Ｃ０’）が設定されている。また、空パケット数レジスタ２９には最初、「０．０」が設定されている。したがって、この時の空パケット数レジスタ２９の値は「０．００＋１．７５＝１．７５」となる。これによって、「１．７５」の整数部にあたる１個の空パケットが挿入される。
【００７９】
次の有効パケットが送出された時点で、まだエラーフラグレジスタ２２がセットされているので、空パケット数レジスタ２９の小数点以下の値に空パケット率レジスタ３０の値を加算した値（＝０．７５＋１．７５＝２．５０）が、空パケット数レジスタ２９に格納される。これによって、整数部の値から２個の空パケットが挿入される。
【００８０】
上述した専用プロセッサ（パケットフィルタ）はエラーの有無に関わらず、全ての有効パケットをそのまま出力している。一般のＭＰＥＧデコーダにはパケット列に含まれるエラーをＭＰＥＧデータの構造等から検出し、エラー処理する機能が備わっているので問題はない。
【００８１】
図１０は本発明の第５の実施例による専用プロセッサにおけるパケットを選別・分類するデマルチプレクサの動作例を示すタイムチャートである。図１０において、専用プロセッサにおけるパケットを出力する条件としては、パケットの種類［データパケット、上記のディスク装置１が出力する制御パケット（図１の制御データパタン１０７，１０８）］のほか、エラーの可能性のあるデータパケットの出力の可否を指定することができる。
【００８２】
図１１は本発明の第５の実施例によるデマルチプレクサの回路の構成例を示すブロック図である。図１１において、パケット識別器４０は図１に示すバッファメモリ１３から読出した入力パケット１０６のヘッダを調べてパケットの種類を判別し、対応するパケット検出信号（パケットＡ検出１２０，パケットＢ検出１２１，制御パケット検出１２２）をセットする。
【００８３】
また、パケット識別器４０は、図１に示すように、エラーデータの始まりを示す制御パケット１０７を検出するとエラーフラグレジスタ２２をセットし、エラーデータの終わりを示す制御パケット１０８を検出するとエラーフラグレジスタ２２をリセットする。
【００８４】
選択レジスタ４１Ａ〜４１Ｄは各出力端子毎に、どのようなパケットを出力するかを設定する。このため、選択レジスタ４１Ａ〜４１Ｄ各々は出力パケットを指定するパケット選択レジスタ、つまりパケットＡ選択レジスタ４２Ａ〜４２Ｄ、パケットＢ選択レジスタ４３Ａ〜４３Ｄ、制御パケット選択レジスタ４４Ａ〜４４Ｄと、エラーの可能性のあるパケットを出力するか否かを指定するエラー出力許可レジスタ４５Ａ〜４５Ｄとからなる。
【００８５】
バッファレジスタ４６はパケット識別器４０がバッファメモリ１３から読出したパケットの種類をパケット識別器４０が判断する所要時間分だけ、パケットの出力を遅延させて出力する。
【００８６】
パケット識別器４０が出力したパケット検出信号１２０〜１２２それぞれに対応するパケット選択レジスタ４１Ａ〜４１Ｄ内のパケットＡ選択レジスタ４２Ａ〜４２Ｄ、パケットＢ選択レジスタ４３Ａ〜４３Ｄ、制御パケット選択レジスタ４４Ａ〜４４Ｄの値の論理積の何れかが真で、かつエラーフラグレジスタ２２の否定とエラー出力許可レジスタ４５Ａ〜４５Ｄの論理和が真（パケットがエラーでないか、エラーでも出力可）ならば、バッファ４７Ａ〜４７Ｄはバッファレジスタ４６が出力するデータをパケット出力（１〜４）１２３Ａ〜１２３Ｄとして出力する。
【００８７】
図１０に示す動作例における選択レジスタ４１Ａ〜４１Ｄの状態はパケット出力１に対しては、選択レジスタ４１Ａにおいて、パケットＡ選択レジスタ４２Ａ、制御パケット選択レジスタ４４Ａ、エラー出力許可レジスタ４５Ａがセットされ、パケットＢ選択レジスタ４３Ａがリセットされている。
【００８８】
パケット出力２に対しては、選択レジスタ４１Ｂにおいて、パケットＢ選択レジスタ４３Ｂ及び制御パケット選択レジスタ４４Ｂがセットされ、パケットＡ選択レジスタ４２Ｂ及びエラー出力許可レジスタレジスタ４５Ｂがリセットされている。
【００８９】
パケット出力３に対しては、選択レジスタ４１Ｃにおいて、パケットＡ選択レジスタ４２Ｃ及びエラー出力許可レジスタ４５Ｃがセットされ、パケットＢ選択レジスタ４３Ｃ及び制御パケット選択レジスタ４４Ｃがリセットされている。
【００９０】
パケット出力４に対しては、選択レジスタ４１Ｄにおいて、パケットＢ選択レジスタ４３Ｄがセットされ、パケットＡ選択レジスタ４２Ｄ、制御パケット選択レジスタ４４Ｄ、エラー出力許可レジスタ４５Ｄがリセットされている。
【００９１】
図１２は本発明の第５の実施例によるデマルチプレクサの内部動作を示すタイムチャートである。図１２においては図１０に対して、パケット識別器４０で識別した結果の出力信号であるパケット検出信号１２０〜１２２とエラーフラグレジスタ２２及び選択レジスタ４１Ａ〜４１Ｄの状態とによって、バッファ４７Ａ〜４７Ｄの出力イネーブル信号が生成されるタイミングを示している。
【００９２】
ディスク装置１から読出したデータに欠けや化けといったエラーがあった場合、読出したデータを処理する専用プロセッサ２０にエラーの発生を直接通知することができる。
【００９３】
従来のディスク装置では汎用プロセッサに割込みをかけて他の処理を中断し、専用プロセッサにエラーを通知する処理を起動しているが、この処理が不要となる。そのため、専用プロセッサにエラーの発生を素早く通知することができる。
【００９４】
【発明の効果】
以上説明したように本発明によれば、記憶媒体上の指定された領域にデータを読み書きする記憶手段と、記憶手段から読出したデータの誤りを訂正する誤り訂正手段とを含むディスク装置において、誤り訂正手段で誤りを訂正したデータに欠けエラーや化けエラーが残っている時に、その欠けエラーや化けエラーを示す所定のデータパタンを欠けたデータや誤ったデータと同じ大きさだけ繰り返し挿入して出力することによって、ディスク装置から読出したデータを専用プロセッサで処理するシステムにおいて、ディスク装置で発生したデータエラーを汎用プロセッサの助けなしに専用プロセッサに伝達することができるという効果がある。
【図面の簡単な説明】
【図１】本発明の第１の実施例によるディスクシステムの構成を示すブロック図である。
【図２】本発明の第１の実施例によるディスク装置の動作を示すタイムチャートである。
【図３】本発明の第２の実施例によるディスクシステムの構成を示すブロック図である。
【図４】図３の出力モード設定レジスタのビット構成例を示す図である。
【図５】図３のディスク装置の読出し動作例を示すタイムチャートである。
【図６】本発明の第３の実施例によるエラーの通知に応じてデータの処理方法を変える専用プロセッサの動作例を示すタイムチャートである。
【図７】本発明の第３の実施例によるパケットフィルタの回路構成例を示すブロック図である。
【図８】本発明の第４の実施例によるパケットフィルタの回路構成例を示すブロック図である。
【図９】本発明の第４の実施例によるパケットフィルタの動作例を示すタイムチャートである。
【図１０】本発明の第５の実施例による専用プロセッサにおけるパケットを選別・分類するデマルチプレクサの動作例を示すタイムチャートである。
【図１１】本発明の第５の実施例によるデマルチプレクサの回路の構成例を示すブロック図である。
【図１２】本発明の第５の実施例によるデマルチプレクサの内部動作を示すタイムチャートである。
【符号の説明】
１  ディスク装置
２  記憶媒体
３  ヘッド
４  コントローラ
５  誤り訂正回路
６  エラーデータの始まりを示す制御パケット格納レジスタ
７  エラーデータの終わりを示す制御パケット格納レジスタ
１０  汎用プロセッサ
１１  ＩＯバス
１３  バッファメモリ
２０  専用プロセッサ
２１  誤りデータ検出レジスタ
２２  エラーフラグレジスタ
２３  正常データ検出レジスタ
２４  デマルチプレクサ
２５  セレクタ
２６  平均空パケット数レジスタ
２７  マルチプレクサ
２８  空パケットレジスタ
２９  空パケット数レジスタ
３０  空パケット率レジスタ
４０  パケット識別器
４１Ａ〜４１Ｄ  選択レジスタ
４２Ａ〜４２Ｄ  パケットＡ選択レジスタ
４３Ａ〜４３Ｄ  パケットＢ選択レジスタ
４４Ａ〜４４Ｄ  制御パケット選択レジスタ
４５Ａ〜４５Ｄ  エラー出力許可レジスタ
４６  バッファレジスタ
４７Ａ〜４７Ｄ  バッファ
５０  出力モード設定レジスタ
５１  化け置換パタンレジスタ
５２  化け先頭パタンレジスタ
５３  化け末尾パタンレジスタ
５４  欠け挿入パタンレジスタ
１００  正味のデータ
１０１  誤り制御符号
１０２  リードコマンド
１０３  エラー制御コマンド
１０４  誤り訂正回路の出力データ
１０５  エラー信号
１０６  コントローラの出力データ
１０７  エラーデータの始まりを示す制御パケット
１０８  エラーデータの終わりを示す制御パケット
１１０  有効パケット
１１１  無効パケット数
１１２  平均空パケット数
１１３  セレクタ出力の空パケット数
１１４  空パケット
１１５  マルチプレクサの出力パケット
１１６  空パケット率データ
１２０  パケットＡ検出信号
１２１  パケットＢ検出信号
１２２  制御パケット検出信号
１２３Ａ〜１２３Ｄ  バッファの出力パケット
１５０  出力モード設定データ
１５１  化け置換パタン
１５２  化け先頭パタン
１５３  化け末尾パタン
１５４  欠け挿入パタン
【図１】
0003570324.tif 000002
【図２】
0003570324.tif 000003
【図３】
0003570324.tif 000004
【図４】
0003570324.tif 000005
【図５】
0003570324.tif 000006
【図６】
0003570324.tif 000007
【図７】
0003570324.tif 000008
【図８】
0003570324.tif 000009
【図９】
0003570324.tif 000010
【図１０】
0003570324.tif 000011
【図１１】
0003570324.tif 000012
【図１２】
0003570324.tif 000013