(57)【要約】【課題】割り込み信号線の設置や新たなバスプロトコルの規定が不要で、内部におけるデータ読み出しの不具合の発生をホスト装置に通知可能とする記憶装置を提供する。【解決手段】磁気ディスク装置１０３は、コンテンツにＣＲＣを付随させたデータパケットでホスト装置１０１データを送信する。この磁気ディスク装置１０３は、コンテンツが格納されたＨＤＡユニット１０６と、ＨＤＡユニット１０６からの読み出しエラーを検知しエラー情報部１０７に格納させる手段と、コンテンツに関するＣＲＣを作成する際に、正常なＣＲＣを作成するか、又はホスト装置１０１にＣＲＣエラーを検知させるための不整合なＣＲＣを意図的に作成するかを、上記エラー情報に基づいて選択可能な手段と、を備えている。【選択図】図１
2008159152.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置に送信すべきコンテンツにＣＲＣを付随させたデータ形式で、前記ホスト装置に対してデータを送信可能なデータ送信手段と、
前記コンテンツが格納された記憶媒体と、
前記記憶媒体から前記コンテンツが読み出される処理において発生する読み出しエラーを検知可能なエラー検知手段と、
前記エラー検知手段で検知されたエラー情報を、エラー情報格納部に格納させるエラー情報記録手段と、
前記コンテンツに関する前記ＣＲＣを作成する際に、正常なＣＲＣを作成するか、又は前記ホスト装置にＣＲＣエラーを検知させるための不整合なＣＲＣを意図的に作成するかを、前記エラー情報に基づいて選択可能なＣＲＣ選択手段と、を備えたことを特徴とする記憶装置。
【請求項２】
前記ＣＲＣ選択手段は、
前記エラー情報格納部に前記読み出しエラーの発生を示すエラー情報が格納されている場合には、前記不整合なＣＲＣの作成を選択し、それ以外の場合には、前記正常なＣＲＣの作成を選択することを特徴とする請求項１に記載の記憶装置。
【請求項３】
前記エラー情報格納部に格納された前記エラー情報を、前記ホスト装置に通知可能であることを特徴とする請求項１又は２に記載の記憶装置。
【請求項４】
前記ホスト装置への前記エラー情報の通知は、前記ホスト装置が前記ＣＲＣエラーを検知したときに発行するエラー情報リードコマンドに対応して行われることを特徴とする請求項３に記載の記憶装置。
【請求項５】
前記ホスト装置からのデータリードコマンドに対応して複数のデータ群を前記前記ホスト装置に順次転送する場合に、
前記複数のデータ群のうちの１つのデータ群について、前記エラー検知手段による前記読み出しエラー検知がされた場合、当該データ群の後に続く残りのデータ群を前記ホスト装置に転送するか否かを、選択可能であることを特徴とする請求項１〜４の何れか１項に記載の記憶装置。
【請求項６】
前記残りのデータ群を前記ホスト装置に転送するか否かを、
前記データリードコマンドの種類に基づいて選択可能であることを特徴とする請求項５に記載の記憶装置。
【請求項７】
前記残りのデータ群を前記ホスト装置に転送するか否かを、
前記ホスト装置から予め事前に受信した設定用コマンドに基づいて選択可能であることを特徴とする請求項５に記載の記憶装置。
【請求項８】
前記ホスト装置との間でのデータ転送を、パケット方式で行うことを特徴とする請求項１〜７の何れか１項に記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト装置にデータ送信する記憶装置に関するものである。
【背景技術】
【０００２】
従来、このような分野の技術として、下記特許文献１に記載の記憶装置が知られている。この文献に記載された記憶装置のホストインタフェース部は、ホスト装置との間でコマンドの受信、デコード及びレスポンスの送信、及びデータの送受信を行う。また、記憶装置のリードライト制御部は、コマンドのデコード結果に従って、メモリとの間でデータの書き込み又は読み出しを行う。この記憶装置においては、リードライト制御部によるデータの書き込み／読み出しで発生したエラーは、エラー検出部によって検出される。そして、検出された上記のエラーをホスト装置に通知するために、ホスト装置への割り込み信号を出力している。
【特許文献１】特開２００６−１３９５５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、割り込み信号でこのようなエラー通知を行うこととすれば、割り込み信号線を設ける必要がある。また、エラー通知に既存のバスを用いようとする場合であっても、新たなバスプロトコルを規定する必要がある。また、ホスト装置側においても、このような割り込み信号線や新たなバスプロトコルに対応する必要が出てくるので、装置の複雑化を招いてしまう。
【０００４】
そこで、本発明は、割り込み信号線の設置や新たなバスプロトコルの規定が不要で、内部におけるデータ読み出しの不具合の発生をホスト装置に通知可能とする記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の記憶装置は、ホスト装置に送信すべきコンテンツにＣＲＣを付随させたデータ形式で、ホスト装置に対してデータを送信可能なデータ送信手段と、コンテンツが格納された記憶媒体と、記憶媒体からコンテンツが読み出される処理において発生する読み出しエラーを検知可能なエラー検知手段と、エラー検知手段で検知されたエラー情報を、エラー情報格納部に格納させるエラー情報記録手段と、コンテンツに関するＣＲＣを作成する際に、正常なＣＲＣを作成するか、又はホスト装置にＣＲＣエラーを検知させるための不整合なＣＲＣを意図的に作成するかを、エラー情報に基づいて選択可能なＣＲＣ選択手段と、を備えたことを特徴とする。
【０００６】
この記憶装置では、記憶媒体からのコンテンツの読み出しの際に読み出しエラーが発生した場合には、エラー情報格納部にエラー情報が格納される。ＣＲＣ選択手段は、このエラー情報に基づいて、正常なＣＲＣ、又は意図的に不整合なＣＲＣの何れのＣＲＣを作成するかを選択する。ここで、不整合なＣＲＣが選択され作成された場合には、ホスト装置ではＣＲＣエラーが検知されることで不具合の発生が認識される。
【０００７】
この場合、具体的には、ＣＲＣ選択手段は、エラー情報格納部に読み出しエラーの発生を示すエラー情報が格納されている場合には、不整合なＣＲＣの作成を選択し、それ以外の場合には、正常なＣＲＣの作成を選択するという構成にしてもよい。この構成によれば、記憶媒体からのコンテンツの読み出しエラー発生に対応させて、不整合なＣＲＣが作成され、ホスト装置においてＣＲＣエラーを検知させることができる。
【０００８】
また、本発明の記憶装置は、エラー情報格納部に格納されたエラー情報を、ホスト装置に通知可能であることが好ましい。また、この場合、ホスト装置へのエラー情報の通知は、ホスト装置がＣＲＣエラーを検知したときに発行するエラー情報リードコマンドに対応して行われてもよい。この場合、ホスト装置は、通知されたエラー情報を基にして、ＣＲＣエラーの原因が記憶装置における読み出しエラーであるか否かを判断することができる。
【０００９】
また、本発明の記憶装置は、ホスト装置からのデータリードコマンドに対応して複数のデータ群をホスト装置に順次転送する場合に、複数のデータ群のうちの１つのデータ群について、エラー検知手段による読み出しエラー検知がされた場合、当該データ群の後に続く残りのデータ群をホスト装置に転送するか否かを、選択可能であることとしてもよい。この構成によれば、複数のデータ群をホスト装置に順次転送する場合に、読み出しエラー検知後の残りのデータ群をホスト装置に転送することも可能になる。
【００１０】
この場合、残りのデータ群をホスト装置に転送するか否かを、データリードコマンドの種類に基づいて選択可能であることしてもよい。また、残りのデータ群をホスト装置に転送するか否かを、ホスト装置から予め事前に受信した設定用コマンドに基づいて選択可能であることとしてもよい。
【００１１】
また、本発明の記憶装置は、ホスト装置との間でのデータ転送を、パケット方式で行うこととしてもよい。
【発明の効果】
【００１２】
本発明によれば、割り込み信号線の設置や新たなバスプロトコルの規定が不要で、記憶装置の内部におけるデータ読み出しの不具合の発生をホスト装置に通知可能することが可能になる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照しつつ、本発明の記憶装置の好適な一実施形態としての磁気ディスク装置について詳細に説明する。
【００１４】
図１に示すように、磁気ディスク装置（記憶装置）１０３は、ホストバス１０２を介してホスト装置１０１と接続され、ホスト装置１０１との間でデータ転送を行う。例えば、このホスト装置１０１には、パーソナルコンピュータ、携帯端末、又は携帯電話機などに代表される電子機器が適用される。また、磁気ディスク装置１０３は、このような電子機器の記憶装置として利用されるものであり、ハードディスク装置とも呼ばれるものである。ホスト装置１０１と、磁気ディスク装置１０３との間のデータ転送方式は、特に限定されないが、以下では一例として、パケット方式を用いるものとして説明する。
【００１５】
ホスト装置１０１は、磁気ディスク装置１０３に対してデータ転送を要求すべく任意のデータアドレスとデータ長とを含むデータリードコマンドを発行する。磁気ディスク装置１０３は、このデータリードコマンドに対応し、要求に係るコンテンツデータをデータパケット２００（図２参照）として、ホスト装置１０１に転送する。データパケット２００のレイアウトの一例を図２に示すと、このデータパケット２００は、先頭から、スタートビット２０１、コンテンツデータ２０２、コンテンツデータに関するＣＲＣ（Cyclic Redundancy Check；巡回冗長符号）データ２０３、及びエンドビット２０４で構成されている。なお、図２におけるＺは、データパケット２００前後のハイインピーダンス部を示している。また、詳細は後述するが、ホスト装置１０１から、エラー情報リードコマンドが発行されると、磁気ディスク装置１０３は、エラー情報部１０７に格納されたエラー情報をホスト装置１０１に転送する。
【００１６】
磁気ディスク装置１０３は、ホストインタフェース制御部１０４と、エラー情報部１０７を含むデータ転送制御部１０５と、ハードディスクアセンブルユニット（以下「ＨＤＡユニット」という）１０６と、データパケット制御部１０８と、を備えている。ホストインタフェース制御部１０４は、例えば、シリアルインタフェースによりホスト装置１０１側のインタフェース部に接続されるインタフェース回路で構成される。ＨＤＡユニット１０６は、主として磁気ディスク装置１０３の機構部分を備える。即ち、詳細な図示は省略するが、ＨＤＡユニット１０６は、コンテンツデータをＥＣＣ（Error Correcting Code）情報と一緒に磁気記録するための磁気ディスクと、磁気ディスクからデータの読み出し／書き込みを行う磁気ヘッドと、磁気ヘッドを磁気ディスクの半径方向に移動可能に支持するアクチュエータとを備えている。更に、ＨＤＡユニット１０６は、上記磁気ディスクを回転させるスピンドルモータと、上記アクチュエータの駆動源のボイスコイルモータと、を備えている。
【００１７】
図３に示すように、データ転送制御部１０５は、リードチャネル１０５ａと、ホスト装置１０１からの命令を格納する各レジスタ１０５ｂ，１０５ｃ，１０５ｄ，１０５ｊと、ホストからの命令に応じたデータ転送処理を行うＭＰＵ１０５ｅと、ＲＡＭ１０５ｆとを備えている。リードチャネル１０５ａは信号処理デバイスであり、ＨＤＡユニット１０６から読み出されたリード信号のアナログ／ディジタル変換、リードデータの復号化を含む各種の信号処理を実行する。セクタアドレスレジスタ１０５ｂは、読み出しの目標となる先頭のセクタを保持し、セクタカウントレジスタ１０５ｃは、読み出すデータのセクタ数を保持し、コマンドレジスタ１０５ｄは、ホスト装置１０１からのコマンドを保持する。また、設定レジスタ１０５ｊは、ホスト装置１０１からの命令に基づき動作を設定する情報を保持する。例えば、設定レジスタ１０５ｊには、データ転送中にエラーが発生した場合に、データ転送を継続するか終了するかの設定等が保持される。ＲＡＭ１０５ｆは、ＨＤＡユニット１０６から読み出しＥＣＣ処理後のコンテンツデータを一時保存したり、データ転送制御プログラムを格納したりする。
【００１８】
更に、データ転送制御部１０５は、ＨＤＡユニット１０６からのコンテンツデータについてＥＣＣをチェックし読み出しの成功又はエラーを検出するＥＣＣ部１０５ｈと、エラーステータスレジスタ１０５ｋとを備えている。このエラーステータスレジスタ１０５ｋは、ＥＣＣ部１０５ｈでデータの誤り訂正ができない場合やデータが読み出せなかった場合にエラー情報が格納される。即ち、このエラーステータスレジスタ１０５ｋは、上記エラー情報部１０７として機能する。
【００１９】
図４に示すように、データパケット制御部１０８は、ＣＲＣ計算部３０１、データビット反転部３０２、データバッファ３０３、ＣＲＣデータバッファ３０４、及びStart-Endビット付加部３０５を備えている。データパケット制御部１０８は、上記データ転送制御部１０５からのコンテンツデータをデータバッファ３０３に受け取りつつ、ＣＲＣ計算部３０１でＣＲＣ値を計算する。計算されたＣＲＣ値は、データビット反転部３０２を介して、ＣＲＣデータバッファ３０４に格納される。このとき、データビット反転部３０２においては、前述のエラー情報部１０７のエラー情報に基づいて、上記ＣＲＣ値のビット反転を行う処理、又はビット反転を行わない処理の何れかの処理が選択され、実行される。
【００２０】
具体的には、エラー情報部１０７に「読み出しエラー」の発生を示すエラー情報がある場合には、データビット反転部３０２は、ＣＲＣ値のビット反転処理を行ってＣＲＣデータバッファ３０４に格納させる。この場合は、最終的にホスト装置１０１に転送されるデータパケット２００はＣＲＣが不整合となるので、ホスト装置１０１においてＣＲＣエラーを発生させる。すなわち、データビット反転部３０２の、このような処理により、ＣＲＣが不整合なデータパケット２０２が意図的に作成され、ホスト装置１０１に転送されることになる。一方、エラー情報部１０７に「読み出しエラー」の発生を示すエラー情報がない場合には、データビット反転部３０２は、ＣＲＣ値のビット反転処理を行わずにＣＲＣデータバッファ３０４に格納させる。この場合、最終的にホスト装置１０１に転送されるデータパケット２００はＣＲＣが整合であり、ホスト装置１０１において正常に処理される。
【００２１】
Start-Endビット付加部３０５は、上記のようにデータバッファ３０３及びＣＲＣデータバッファ３０４に格納されたデータ２０２，２０３の前後に、所定のスタートビット２０１とエンドビット２０４とを付加することで、データパケット２００（図２参照）を形成させる。このように形成されたデータパケット２００は、データパケット制御部１０８から、ホストインタフェース制御部１０４を介して、ホスト装置１０１に転送される。
【００２２】
続いて、上記磁気ディスク装置１０３とホスト装置１０１との間のデータ転送について説明する。
【００２３】
まず、磁気ディスク装置１０３が、データリードコマンドに対応してデータパケット２００を作成し送信する処理を、図５及び図１を参照しながら説明する。
【００２４】
磁気ディスク装置１０３のホストインタフェース制御部１０４は、コマンド受信待ち状態（Ｓ５０１）において、ホスト装置１０１からのデータリードコマンドを受信する。データ転送制御部１０５は、ホストインタフェース制御部１０４からのデータリードコマンドの内容に応じて、ＨＤＡユニット１０６に対する適当なアドレスから適当なサイズのコンテンツデータ（データパケット２００を構成するのに適当なデータ）を読み出す（Ｓ５０４）。この読み出し処理において読み出しが成功し、エラーと判定されなかった（Ｓ５０５）場合には、読み出したコンテンツデータ２０２が、データパケット制御部１０８に送られる。データパケット制御部１０８では、データ転送制御部１０５からのコンテンツデータ２０２がデータバッファ３０３に格納され（Ｓ５０６）、コンテンツデータ２０２とエラー情報部１０７のエラー情報に基づいて、ＣＲＣデータ２０３が作成される。
【００２５】
この場合、エラー情報部１０７には、「読み出しエラー」の発生を示すエラー情報が格納されていないので、前述したデータビット反転部３０２によってコンテンツデータ２０２に関するＣＲＣ計算値がビット反転処理されずに、ＣＲＣデータバッファ３０４に格納される（Ｓ５０６）。このように、データパケット制御部１０８からは、コンテンツデータ２０２及びこのコンテンツデータ２０２に関する正常なＣＲＣデータ２０３が、Start-Endビット付加部３０５に送られる。その後、Start-Endビット付加部３０５によるスタートビット２０１、エンドビット２０４の付加処理を経て正常なＣＲＣ値をもつデータパケット２００が作成され、ホストインタフェース制御部１０４を介してホスト装置１０１に送信される（Ｓ５０７）。その後、データ転送制御部１０５は、前記データリードコマンド時に含まれるデータ分のデータパケット２００をすべて送信したか否かを判定する（Ｓ５０８）。この判定で、Ｙｅｓであれば処理は終了し（Ｓ５０９）、Ｎｏであれば後に続くデータパケット２００についての処理が、Ｓ５０４から繰り返される。
【００２６】
一方、Ｓ５０４の読み出し処理における何らかの異常で読み出しエラーと判定（Ｓ５０５）された場合は、エラー情報部１０７に「読み出しエラー」の発生を示すエラー情報が格納される（Ｓ５１０）。そして、データ転送制御部１０５は、任意の代替データを用意して（Ｓ５１１）、データパケット制御部１０８に送る。上記代替データとしては、例えば、読み出しエラーが生じないようなＨＤＡユニット１０６上の任意アドレスのデータ等を用いることができる。
【００２７】
次に、データパケット制御部１０８では、データ転送制御部１０５からの上記代替データがコンテンツデータ２０２としてデータバッファ３０３に格納され（Ｓ５１２）、このコンテンツデータ２０２とエラー情報部１０７のエラー情報に基づいて、ＣＲＣデータ２０３が作成される。この場合、エラー情報部１０７には、上記Ｓ５１０で既に「読み出しエラー」の発生を示すエラー情報が格納されているので、前述したデータビット反転部３０２によってコンテンツデータ２０２に関するＣＲＣ計算値がビット反転処理され、ＣＲＣデータバッファ３０４に格納される（Ｓ５１２）。このように、データパケット制御部１０８からは、意図的にＣＲＣ不整合とされたコンテンツデータ２０２及びＣＲＣデータ２０３が、Start-Endビット付加部３０５に送られる。その後、Start-Endビット付加部３０５によるスタートビット２０１、エンドビット２０４の付加処理を経てデータパケット２００が作成され、ホストインタフェース制御部１０４を介してホスト装置１０１に送信される（Ｓ５１３）。なお、このデータパケット２００は、ＣＲＣ不整合であるので、後述するとおり、受信されたホスト装置１０１にＣＲＣエラーを検知させる。
【００２８】
次に、データ転送制御部１０５は、上記ような「読み出しエラー」が発生した場合に、後に続くデータパケット２００の送信処理を継続するか否かを判断する（Ｓ５１４）。送信処理を継続する場合には、処理がＳ５０８に戻り、後に続くデータパケット２００についての処理が、Ｓ５０４から上記同様に繰り返される。一方、送信処理を終了する場合には、後に続くデータパケット２００の処理は行われず、磁気ディスク装置１０３は処理を終了する（Ｓ５０９）。
【００２９】
上記Ｓ５１４における送信処理の継続／終了の判定を磁気ディスク装置１０３に行わせるため、ホスト装置１０１からの上記データリードコマンドとしては、第１及び第２のデータリードコマンドの２種類が準備されている。そして、ホスト装置１０１は、磁気ディスク装置１０３へのデータ転送要求の際には、データ格納部に格納する終了判定情報１０１ａに基づいて、上記第１又は第２のデータリードコマンドの何れかを発行する。ホスト装置１０１から発行されたデータリードコマンドが第１のデータリードコマンドであった場合には、磁気ディスク装置１０３の設定レジスタ１０５ｊ（図３参照）に「継続」を示す終了判定情報が保持され、第２のデータリードコマンドであった場合には、設定レジスタ１０５ｊに「終了」を示す終了判定情報が保持される。そして、磁気ディスク装置１０３では、Ｓ５１４の判定が設定レジスタ１０５ｊに保持された終了判定情報に基づいて行われ、設定レジスタ１０５ｊの終了判定情報が「継続」を示す場合には処理がＳ５０８に戻り、終了判定情報が「終了」を示す場合には処理がＳ５０９で終了する。なお、上記終了判定情報を磁気ディスク装置１０３に通知する他の方法としては、ホスト装置１０１が、データリードコマンドの発行直前に、終了判定情報を含む設定用コマンドを別途発行してもよい。
【００３０】
また、上記終了判定情報を磁気ディスク装置１０３に通知する更に他の方法としては、上記データリードコマンドに先立って、予め事前にモード設定用コマンドをホスト装置１０１から送信するようにしてもよい。このモード設定用コマンドに対応して磁気ディスク装置１０３では、終了判定情報が設定レジスタ１０５ｊに予め格納される。このことで、磁気ディスク装置１０３の動作モードが、エラー発生後にもデータ転送を継続するモード、又はエラー発生後はデータ転送を終了するモードの何れかのモードに事前に設定される。従って、データリードコマンドを発行するごとに終了判定情報を設定しなくてもよい。
【００３１】
例えば、１パケット程度の欠落が許容されるようなデータ（例えば、音楽データ等）の転送にあたっては、上記終了判定情報が「継続」に設定されることで、無効なデータの後に続く有効なデータをホスト装置１０１に転送することができる。逆に、パケット欠落が許容されないようなデータの転送にあたっては、上記終了判定情報が「終了」に設定されることで、エラー発生後の無駄なデータ転送を省略することができる。なお、上記終了判定情報は、設定レジスタ１０５ｊに保持される代わりに、ＲＡＭ１０５ｆに保持されてもよい。
【００３２】
続いて、図６及び図１を参照し、ホスト装置１０１からのエラー情報リードコマンドを受けた場合の、磁気ディスク装置１０３の処理について説明する。
【００３３】
磁気ディスク装置１０３が、エラー情報リードコマンド待ち（Ｓ６０１）の状態において、当該コマンドを受けると、データ転送制御部１０５は、エラー情報部１０７に格納されたエラー情報を、ホストインタフェース制御部１０４を介してホスト装置１０１に送信する（Ｓ６０２）。その後、エラー情報部１０７に格納されたエラー情報はクリアされる（Ｓ６０３）。詳細は後述するが、データ転送時における不具合が発生した場合、ホスト装置１０１は、この不具合の原因がホストバス１０２にあるのか、或いは磁気ディスク装置１０３にあるのかを判別するにあたり、上記エラー情報の参照によって判別が可能である。
【００３４】
続いて、図７及び図１を参照し、データ転送におけるホスト装置１０１のコマンド送信制御フローを説明する。
【００３５】
まず、ホスト装置１０１は、リードすべきデータアドレスとデータ長とを含むデータリードコマンドを、磁気ディスク装置１０３に送信する（Ｓ７０１）。その後、磁気ディスク装置１０３から受信すべきデータパケット２００の受信待ち状態となる（Ｓ７０２）。上記データリードコマンドに対応して、磁気ディスク装置１０３からは、複数のデータパケット（データ群）２００が順次送信される。そして、ホスト装置１０１では、上記複数のデータパケット２００を受信すると、データパケット２００ごとに順次以下の処理を行う。ホスト装置１０１は、まず、データパケット２００のコンテンツデータ２０２に関するＣＲＣ値を、所定のＣＲＣ計算に基づき計算する（Ｓ７０３）。
【００３６】
次に、ホスト装置１０１は、このＣＲＣ計算値と、データパケット２００内に実際に格納されているＣＲＣデータ２０３の値と、を比較し（Ｓ７０４）、上記ＣＲＣ計算値が上記ＣＲＣデータ２０３に一致する場合（等しい場合）には、当該データパケット２００のコンテンツデータが正しいものとして受け入れる。その後、ホスト装置１０１は、データリードコマンドに含まれるデータ長に相当するデータパケットをすべて受信したか否かを判定する（Ｓ７０５）。この判定で、Ｙｅｓであれば処理は終了し（Ｓ７０９）、Ｎｏであれば、後に続くデータパケット２００についての処理がＳ７０２から繰り返される。
【００３７】
一方、Ｓ７０４において、ＣＲＣ計算値がＣＲＣデータ２０３に等しくない場合には、ＣＲＣ不整合としてＣＲＣエラーが検知される。この場合、ホスト装置１０１は、ホストバス１０２上でデータ転送に何らかの具合が生じたか、或いは、磁気ディスク装置１０３内の読み出しエラーの発生により意図的にＣＲＣ不整合のデータパケット２００が作成されたか、の何れかの事象であることを認識することができる。
【００３８】
この場合、ホスト装置１０１は、上記２つの事象の何れであるかを判別するため、磁気ディスク装置１０３のエラー情報を参照する。具体的には、エラー情報を磁気ディスク装置１０３から読み出すためのエラー情報リードコマンドを送信する（Ｓ７０６）。このコマンドに対応して、磁気ディスク装置１０３からは、前述の通り、エラー情報部１０７に格納されたエラー情報が送信され、ホスト装置１０１は、このエラー情報を受信する（Ｓ７０７）。そして、ホスト装置１０１は、受信した上記エラー情報に「読み出しエラー」の発生を示す情報が含まれていれば、上記のＣＲＣ不整合の原因は、磁気ディスク装置１０３による意図的なＣＲＣ不整合パケットの作成であると判別することができる。この場合は、磁気ディスク装置１０３において、例えば、ＨＤＡユニット１０６上に格納済みのデータがなんらかの要因により破壊されているといったことに起因する読み出しエラーの発生が認識され、ホスト装置１０１は、当該データパケット２００のデータを無効データとする。
【００３９】
なお、所定のプロトコル（例えば、既存のメモリカードプロトコル）を利用することにより、上記エラー情報リードコマンドの受付けは、磁気ディスク装置１０３においてデータリードコマンドの処理中に行わせることが可能である。従って、ホスト装置１０１は、ＣＲＣエラーを検知したときに、ＣＲＣエラーの原因の上記判別を瞬時に素早く行うことができる。
【００４０】
一方、Ｓ７０７で受信した上記エラー情報に「読み出しエラー」の発生を示す情報が含まれていなければ、上記のＣＲＣ不整合の原因は、ホストバス１０２上の不具合であると判別することができる。この場合、ホスト装置１０１は、例えば、データ転送中止のコマンドやリセットコマンドを発行することでデータ転送を中止したり、又は、リトライを行ったりすることができる。
【００４１】
次に、ホスト装置１０１は、上記ようなＣＲＣエラーを検知した場合に、後に続くデータパケット２００の受信処理を継続するか否かを判断する（Ｓ７０８）。この受信処理の継続／終了の判定は、データ格納部に格納する終了判定情報１０１ａに基づいて行われ、終了判定情報１０１ａが「継続」を示す場合には、処理がＳ７０５に戻り、後に続くデータパケット２００についての処理が、Ｓ７０２から上記同様に繰り返される。一方、終了判定情報１０１ａが「終了」を示す場合には、後に続くデータパケット２００の処理は行われず、ホスト装置１０１は処理を終了する（Ｓ７０９）。なお、この終了判定情報１０１ａは、前述した通り、磁気ディスク装置１０３にも送信され格納されているので、ホスト装置１０１と磁気ディスク装置１０３との間では、上記の継続／終了について同じ判定がなされる。
【００４２】
以上のようなホスト装置１０１と磁気ディスク装置１０３との処理により、磁気ディスク装置１０３内でコンテンツ読み出しエラーが発生した場合、磁気ディスク装置１０３では、ＣＲＣ不整合のデータパケット２００が意図的に作成されてホスト装置１０１に送信される。ＣＲＣ不整合のデータパケット２００を受けたホスト装置１０１では、ＣＲＣエラーが検知され、磁気ディスク装置１０３のエラー情報部１０７にあるエラー情報が参照される。そして、ホスト装置１０１は、上記エラー情報の参照によって、ＣＲＣ不整合のデータパケット２００が意図的に作成されたものであることが判別できれば、磁気ディスク装置１０３で発生した読み出しエラーを検知することができる。また、上記ＣＲＣ不整合のデータパケット２００が意図的に作成されたものではないことが判別できれば、通常どおり、ホストバス１０２上の不具合を検知することができる。
【００４３】
このように、一般にはホストバス１０２上の不具合検出に用いられるＣＲＣ検査を利用して、磁気ディスク装置１０３内における読み出しエラーをホスト装置１０１に検知させることができる。従って、この磁気ディスク装置１０３によれば、ＨＤＡユニット１０６からの読み取りエラーが発生したことをホスト装置１０１へ通知することができる。この場合、上記読み出しエラーを通知するための信号線を別途追加する必要がなく、新たなバスプロトコルを規定する必要もない。また、このようなＣＲＣ検査は、ホストバス１０２上の不具合検出のために、一般的にホスト装置１０１で用いられるものであるので、磁気ディスク装置１０３は、既存のホスト装置にも適用することが可能である。
【００４４】
また、磁気ディスク装置１０３が複数のデータパケット２００としてデータを送信する場合は、ホスト装置１０１においては、順次各データパケットごとに上記ＣＲＣ検査が行われるので、全データの転送が完了しなくても、転送途中で読み出しエラーが検知される。従って、全ての読み出しデータの転送終了後にエラーの発生を通知する方式に比べて、磁気ディスク装置１０３の読み出しエラーの発生をホスト装置１０１に早く通知することができ、その結果、制御効率の向上を図ることができる。
【００４５】
本発明は、前述した実施形態に限定されるものではない。上記実施形態では、本発明を磁気ディスク装置に適用しているが、記憶媒体の態様は、磁気ディスクには限られない。例えば、図１０に示すように、不揮発性メモリ８０６を記憶媒体として備えた記憶装置８０３に本発明を適用することも可能である。このような記憶装置の例としては、ＭＭＣ（マルチメディアカード）、ＳＤカード、ＳＤＩＯカード、フラッシュメモリ、その他のメモリカードが挙げられる。この記憶装置８０３のデータ転送制御部８０５では、データ転送制御部１０５のリードチャネル１０５ａに代えて、不揮発性メモリに対応する不揮発性メモリＩ／Ｆ８０５ａを有している。この記憶装置８０３において、磁気ディスク装置１０３と同一又は同等な構成については、図面に同一符号を付し、その説明は省略する。また、上記実施形態では、コンテンツは１ビットで送信されるパケットとして説明されているが、複数ビットに並列または直列に分割した送信としてもよい。
【図面の簡単な説明】
【００４６】
【図１】本発明に係る記憶装置の一実施形態としての磁気ディスク装置を示すブロック図である。
【図２】図１の磁気ディスク装置で送信されるデータパケットの一例を示す図である。
【図３】図１の磁気ディスク装置のデータ転送制御部の詳細を示すブロック図である。
【図４】図１の磁気ディスク装置のデータパケット制御部の詳細を示すブロック図である。
【図５】磁気ディスク装置がデータリードコマンドの受信によりデータ転送を行う場合のコマンド受信制御フロー例を示す図である。
【図６】磁気ディスク装置がエラー情報リードコマンドの受信によりエラー情報の転送を行う場合のコマンド受信制御フロー例を示す図である。
【図７】データ転送を行うときのホスト装置のコマンド送信制御フロー例を示す図である。
【図８】本発明に係る記憶装置の他の実施形態としての不揮発性メモリを用いた記憶装置を示すブロック図である。
【符号の説明】
【００４７】
１０１…ホスト装置、１０３…磁気ディスク装置（記憶装置）、１０４…ホストインタフェース制御部、１０６…ＨＤＡユニット（記憶媒体）、１０５ｈ…ＥＣＣ部（エラー検知手段、エラー情報記録手段）、１０５ｋ…エラーステータスレジスタ（エラー情報格納部）、１０７…エラー情報部（エラー情報格納部）、２００…データパケット、２０２…コンテンツデータ、２０３…ＣＲＣ、３０２…データビット反転部（ＣＲＣ選択手段）、８０３…記憶装置。
【図１】
2008159152.tif 000003
【図２】
2008159152.tif 000004
【図３】
2008159152.tif 000005
【図４】
2008159152.tif 000006
【図５】
2008159152.tif 000007
【図６】
2008159152.tif 000008
【図７】
2008159152.tif 000009
【図８】
2008159152.tif 000010