(57)【要約】【課題】シリアルインタフェースを備え、バッファメモリを経由してデータの入出力を行うディスク装置で、バッファメモリにおいて正常データがエラーデータで上書きされることによるデータの消失を防ぐことを可能とし、ディスク装置の信頼性を高めること。【解決手段】シリアルインタフェースを備えたディスク装置において、ホストインタフェース制御部１０１が、ホスト２００から受領するパケットデータの最大データサイズ以上の大きさのＦＩＦＯ１０１ｅおよび１０１ｆを備えるとともに、ＣＲＣチェック部１０１ｃおよび１０１ｄが、ホスト２００から受領するデータをパケットデータ単位でチェックし、エラーが発生していないパケットデータのみをＦＩＦＯ１０１ｅおよび１０１ｆからバッファメモリに転送するよう構成する。【選択図】        図２
2007179084.tif 000002
【特許請求の範囲】
【請求項１】
シリアルインタフェースを備え、バッファメモリを経由してデータの入出力を行うディスク装置であって、
上位装置から受領するパケットデータの最大データサイズ以上の大きさを有するとともに該パケットデータを一時的に記憶するキューと、
前記上位装置から受領するパケットデータをチェックし、エラーが発生していないパケットデータのみを前記キューから前記バッファメモリに転送するデータチェック手段と、
を備えたことを特徴とするディスク装置。
【請求項２】
複数のキューを備え、前記上位装置から受領するパケットデータを前記複数のキューに順番に記憶し、
前記データチェック手段は、前記複数のキューから前記バッファメモリにパケットデータを並行に転送することを特徴とする請求項１に記載のディスク装置。
【請求項３】
２つのキューを備え、前記上位装置から受領するパケットデータを前記２つのキューに交互に記憶し、
前記データチェック手段は、それぞれのキューから前記バッファメモリにパケットデータを並行に転送することを特徴とする請求項１に記載のディスク装置。
【請求項４】
前記上位装置から受領するパケットデータにはＣＲＣ（Cyclic Redundancy Check）データが含まれており、
前記データチェック手段は、該ＣＲＣデータに基づいて前記パケットデータのエラーをチェックすることを特徴とする請求項１、２または３に記載のディスク装置。
【請求項５】
シリアルインタフェースを備え、バッファメモリを経由してデータの入出力を行うディスク装置におけるディスク書込データ転送方法であって、
上位装置から受領するパケットデータの最大データサイズ以上の大きさを有するキューに該パケットデータを一時的に登録するパケットデータ登録工程と、
前記上位装置から受領するパケットデータをチェックし、エラーが発生していないパケットデータのみを前記キューから前記バッファメモリに転送するデータチェック工程と、
を含んだことを特徴とするディスク書込データ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、シリアルインタフェースを備え、バッファメモリを経由してデータの入出力を行うディスク装置およびディスク書込データ転送方法に関し、特に、バッファメモリにおいて正常データがエラーデータで上書きされることによるデータの消失を防ぐことによって信頼性を高めたディスク装置およびディスク書込データ転送方法に関するものである。
【背景技術】
【０００２】
近年、例えばシリアルＡＴＡなどのシリアルインタフェースを備えたディスク装置においては、アクセス性能を高めるために、上位装置から受領した書き込み用のデータを、一旦、ディスク装置内部のバッファメモリに取り込み、その段階で上位装置に対しては書き込み完了通知を発行しておき、その後、所定のタイミングで、バッファメモリに蓄積したデータをディスク媒体へ書き込む、いわゆるライトキャッシュ機能を備えたものが広く用いられている。
【０００３】
このようなライトキャッシュ機能を備えたディスク装置では、書き込み動作において上位装置に対して完了通知を発行した後、バッファメモリに蓄積したデータをディスク媒体へ書き込む際に書き込みエラーが発生した場合は、バッファメモリに残っている、ディスク媒体にまだ書き込まれていないデータを救済する方法について考慮が必要となる。
【０００４】
そこで、特許文献１に記載されたディスク装置では、バッファメモリに蓄積したデータをディスク媒体に書き込む際に書き込みエラーが発生した場合は、当該ディスク媒体に対する以降の書き込み処理を保留し、その後、当該ディスク媒体に対する他の書き込み命令を上位装置から受領したタイミングで、上位装置に対してエラー情報を通知し、そのエラー情報に応じて上位装置から通知されるリスタートコマンドを受けて、保留していた書き込み処理を再開するようにしている。
【０００５】
ところで、前述した、ライトキャッシュ機能を備えた従来のディスク装置では、上位装置から受領したデータをバッファメモリに取り込む際に、当該データと書き込みアドレスが重複するデータがバッファメモリにすでに蓄積されていた場合は、バッファメモリ内に先に格納していたデータの当該重複箇所に対して上位装置から受領したデータを上書きしている。
【０００６】
こうすることにより、当該重複箇所とその前後のデータが書き込みアドレス順に連続して配置されることになり、ディスク装置は、バッファメモリに蓄積されたデータをディスク媒体に書き込みする際に効率良く書き込み処理を行うことができる。
【０００７】
【特許文献１】特開平２−６４８１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述したライトキャッシュ機能を備えたディスク装置において発生する主なエラーとしては、バッファメモリに蓄積したデータをディスク媒体に書き込む際に発生する書き込みエラーの他に、上位装置からデータを取り込む際にインタフェース上で発生する通信エラーが考えられる。
【０００９】
シリアルインタフェースを備えたディスク装置においては、上位装置から受領するデータは複数のセクタ単位のデータを含んだパケットデータの単位で転送される。このパケットデータには、転送するパケットデータの内容に基づいて生成されたＣＲＣ（Cyclic Redundancy Check）データが含まれており、このＣＲＣデータと、転送後のパケットデータの内容に基づいて生成したＣＲＣデータとを比較することによって、インタフェース上で通信エラーが発生しているか否かをチェックすることができる。
【００１０】
このチェックによって通信エラーを検知した場合、ディスク装置は、エラーが検出されたデータの再送を上位装置に対して要求するが、インタフェース上の通信エラーによって正しいデータを再度受領することができない状況も考えられる。
【００１１】
この状況で、バッファメモリにおいて、前述した、書き込みアドレスの重複によるデータの上書きが行われていた場合は、先にバッファメモリに格納していた重複箇所のデータはエラー検出データによって上書きされたまま消失してしまうことになり、これによりディスク装置の信頼性が低下してしまうという問題がある。
【００１２】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、バッファメモリにおいて正常データがエラーデータで上書きされることによるデータの消失を防ぐことによって信頼性を高めたディスク装置およびディスク書込データ転送方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するため、請求項１の発明に係るディスク装置は、シリアルインタフェースを備え、バッファメモリを経由してデータの入出力を行うディスク装置であって、上位装置から受領するパケットデータの最大データサイズ以上の大きさを有するとともに該パケットデータを一時的に記憶するキューと、前記上位装置から受領するパケットデータをチェックし、エラーが発生していないパケットデータのみを前記キューから前記バッファメモリに転送するデータチェック手段と、を備えたことを特徴とする。
【００１４】
また、請求項２の発明に係るディスク装置は、請求項１の発明において、複数のキューを備え、上位装置から受領するパケットデータを該複数のキューに順番に記憶し、前記データチェック手段は、前記複数のキューから前記バッファメモリに複数のパケットデータを並行に転送することを特徴とする。
【００１５】
また、請求項３の発明に係るディスク装置は、請求項１の発明において、２つのキューを備え、前記上位装置から受領するパケットデータを前記２つのキューに交互に記憶し、前記データチェック手段は、それぞれのキューから前記バッファメモリにパケットデータを並行に転送することを特徴とする。
【００１６】
また、請求項４の発明に係るディスク装置は、請求項１、２または３の発明において、前記上位装置から受領するパケットデータにはＣＲＣ（Cyclic Redundancy Check）データが含まれており、前記データチェック手段は、該ＣＲＣデータに基づいて前記パケットデータのエラーをチェックすることを特徴とする。
【００１７】
また、請求項５の発明に係るディスク書込データ転送方法は、シリアルインタフェースを備え、バッファメモリを経由してデータの入出力を行うディスク装置におけるディスク書込データ転送方法であって、上位装置から受領するパケットデータの最大データサイズ以上の大きさを有するキューに該パケットデータを一時的に登録するパケットデータ登録工程と、前記上位装置から受領するパケットデータをチェックし、エラーが発生していないパケットデータのみを前記キューから前記バッファメモリに転送するデータチェック工程と、を含んだことを特徴とする。
【発明の効果】
【００１８】
請求項１および５の発明によれば、上位装置から受領するパケットデータの最大データサイズ以上の大きさを有するキューにパケットデータを記憶し、上位装置から受領するパケットデータをチェックしてエラーが発生していないパケットデータのみをキューからバッファメモリに転送するよう構成したので、バッファメモリにおいて正常データにエラーデータが上書きされることによるデータの消失を防ぐことが可能となり、ディスク装置の信頼性を高めることができるという効果を奏する。
【００１９】
また、請求項２の発明によれば、上位装置から受領するパケットデータを複数のキューに順番に記憶し、複数のキューからバッファメモリに複数のパケットデータを並行に転送するよう構成したので、パケットデータのエラーチェックによるディスク装置の処理速度の低下を抑止しつつ、バッファメモリにおいて正常データにエラーデータが上書きされることによるデータの消失を防ぐことが可能となり、ディスク装置の信頼性を高めることができるという効果を奏する。
【００２０】
また、請求項３の発明によれば、上位装置から受領するパケットデータを２つのキューに交互に記憶し、それぞれのキューから前記バッファメモリにパケットデータを並行に転送するよう構成したので、パケットデータのエラーチェックによるディスク装置の処理速度の低下を抑止しつつ、バッファメモリにおいて正常データにエラーデータが上書きされることによるデータの消失を防ぐことが可能となり、ディスク装置の信頼性を高めることができるという効果を奏する。
【００２１】
また、請求項４の発明によれば、上位装置から受領するパケットデータに含まれるＣＲＣデータに基づいてエラーをチェックすることとしたので、パリティ・チェックやチェックサムを用いたチェックに比べて高い精度でエラーを検出し、バッファメモリにおいて正常データにエラーデータが上書きされることによるデータの消失を防ぐことが可能となり、ディスク装置の信頼性を高めることができるという効果を奏する。
【発明を実施するための最良の形態】
【００２２】
以下に添付図面を参照して、この発明に係るディスク装置およびディスク書込データ転送方法の好適な実施例を詳細に説明する。なお、本実施例では、本発明を磁気ディスク装置に適用した場合について説明する。
【実施例】
【００２３】
まず、本実施例に係るディスク装置の構成について説明する。図１は、本実施例に係るディスク装置の構成を示す機能ブロック図である。同図に示すように、このディスク装置１００は、ホストインタフェース３００を介してパーソナルコンピュータなどのホスト２００（上位装置）に接続されている。このホストインタフェース３００には、例えば、シリアルＡＴＡインタフェースが用いられている。
【００２４】
また、ディスク装置１００は、ホストインタフェース制御部１０１と、バッファ制御部１０２と、バッファメモリ１０３と、フォーマット制御部１０４と、リードチャネル１０５と、ヘッドＩＣ１０６と、ヘッド１０７と、ディスク媒体１０８と、サーボ制御部１０９と、ＶＣＭ（Voice Coil Motor：ボイスコイルモーター）１１０と、ＳＰＭ（Spindle Motor：スピンドルモーター）１１１と、不揮発性メモリ１１２と、メモリ１１３と、ＭＰＵ１１４とを備えている。
【００２５】
そして、ホストインタフェース制御部１０１と、バッファ制御部１０２と、フォーマット制御部１０４と、リードチャネル１０５と、ヘッドＩＣ１０６と、サーボ制御部１０９と、不揮発性メモリ１１２と、メモリ１１３と、ＭＰＵ１１４とは、コモンバス１１５を介して接続されている。
【００２６】
ホストインタフェース制御部１０１は、ホストインタフェース３００を介してホスト２００とディスク装置１００との間でやり取りされるデータの入出力を制御する制御部である。図２は、ホストインタフェース制御部１０１の構成を示す機能ブロック図である。同図に示すように、このホストインタフェース１０１は、ホストデータ振分部１０１ａと、ディスクデータ振分部１０１ｂと、ＣＲＣチェック部１０１ｃおよび１０１ｄと、ＦＩＦＯ１０１ｅおよび１０１ｆとを備えている。
【００２７】
ここで、ホストインタフェース３００を介してホスト２００から転送されるデータは、複数のセクタ単位のデータを含んだパケットデータの単位で転送される。ここでいうパケットデータは、１つのサイズが最大で８，１９２バイトと規定されており、各パケットデータには、データのエラーを検出するためのＣＲＣ（Cyclic Redundancy Check）データが含まれている。このＣＲＣデータは、転送するパケットデータの内容をもとにＣＲＣ方式による計算を行うことによって生成されている。
【００２８】
ホストデータ振分部１０１ａは、ホスト２００と、ＦＩＦＯ１０１ｅおよび１０１ｆとの間のデータ転送を制御する制御部である。具体的には、このホストデータ振分部１０１ａは、書き込み動作においては、ホスト２００から受領したパケットデータをＦＩＦＯ１０１ｅおよび１０１ｆに交互に振り分けて格納する。また、これと同時に、ＦＩＦＯ１０１ｅに振り分けたパケットデータをＣＲＣチェック部１０１ｃに、ＦＩＦＯ１０１ｆに振り分けたデータをＣＲＣチェック部１０１ｄにそれぞれ転送する。
【００２９】
ここで転送されたパケットデータは、ＣＲＣチェック部１０１ｃおよび１０１ｄにおいてエラーが発生しているか否かをチェックされるが（このエラーチェック処理については、後に詳細に説明する）、そこでエラーが検出された場合、ホストデータ振分部１０１ａは、ホスト２００に対して当該データの再送を要求する。
【００３０】
また、読み込み動作においては、ホストデータ振分部１０１ａは、ＦＩＦＯ１０１ｅおよび１０１ｆから転送されたデータを、ホストインタフェース３００を介してホスト２００に順次転送する。
【００３１】
ディスクデータ振分部１０１ｂは、バッファ制御部１０２と、ＦＩＦＯ１０１ｅおよび１０１ｆとの間のデータ転送を制御する制御部である。具体的には、このディスクデータ振分部１０１ｂは、書き込み動作においては、ＦＩＦＯ１０１ｅおよび１０１ｆから転送されたデータをバッファ制御部１０２に順次転送する。また、読み込み動作においては、バッファ制御部１０２から転送されたデータを、転送されたデータの単位でＦＩＦＯ１０１ｅおよび１０１ｆに交互に振り分けて格納する。
【００３２】
ＣＲＣチェック部１０１ｃおよび１０１ｄは、ホストデータ振分部１０１ａから転送されたデータにエラーが発生しているか否かをチェックするＩＣである。具体的には、このＣＲＣチェック部１０１ｃおよび１０１ｄは、転送されたパケットデータをもとにＣＲＣデータを新たに生成し、この新たなＣＲＣデータと、転送されたパケットデータにすでに含まれていたＣＲＣデータとを比較し、両者が一致しているか否かを確認する。
【００３３】
そして、両者が一致していた場合、転送されたパケットデータにはエラーが発生していないと判定し、ＣＲＣチェック部１０１ｃはＦＩＦＯ１０１ｅに、ＣＲＣチェック部１０１ｄはＦＩＦＯ１０１ｆに、それぞれ送信許可信号を送信する。
【００３４】
一方、両者が一致していなかった場合は、転送されたパケットデータにエラーが発生していると判定し、ＣＲＣチェック部１０１ｃはＦＩＦＯ１０１ｅに、ＣＲＣチェック部１０１ｄはＦＩＦＯ１０１ｆに、それぞれ送信禁止信号を送信する。そして、同時に、ホストデータ振分部１０１ａに対してエラーデータを検出したことを通知する。
【００３５】
このように、ＣＲＣチェック部１０１ｃおよび１０１ｄが、ホスト２００から受領したパケットデータに含まれるＣＲＣデータに基づいてエラーをチェックするので、パリティ・チェックやチェックサムに比べて高い精度でエラーを検出することができる。
【００３６】
ＦＩＦＯ１０１ｅおよび１０１ｆは、ホスト２００とディスク装置１００との間でやり取りされるデータを蓄積するキューであり、それぞれのサイズは、パケットデータを１つ以上格納できるサイズ、すなわち８，１９２バイト以上であるとする。これらＦＩＦＯ１０１ｅおよび１０１ｆは、ホスト２００とディスク装置１００との間でやり取りされるデータを順次蓄えるとともに、双方の状態に応じて、先に格納したデータから順番にデータを転送する。
【００３７】
ここで、ＦＩＦＯ１０１ｅおよび１０１ｆは、書き込み動作においては、それぞれＣＲＣチェック部１０１ｄおよび１０１ｆから送信される送信許可信号および送信禁止信号に応じて、ディスクデータ振分部１０１ｂに送信するか否かを判断する。
【００３８】
このように、ホストインタフェース制御部１０１が、２つのＦＩＦＯ１０１ｅおよび１０１ｆを備え、ホスト２００から受領するパケットデータをそれぞれのＦＩＦＯに交互に登録し、それぞれのＦＩＦＯからバッファメモリ１３０にパケットデータを並行して転送することによって、一方のキューに格納したパケットデータを処理している間でも、次に上位装置から受領したパケットデータを他方のキューで処理することが可能となり、エラーチェックによる処理速度の低下を防ぐことができる。
【００３９】
また、ここでは２つのＦＩＦＯを備えた場合を説明したが、２つ以上の複数のＦＩＦＯを備えることによって、複数のパケットデータを並行して処理することを可能とし、エラーチェックによる処理速度の低下をさらに防ぐこともできる。
【００４０】
図１に戻って、バッファ制御部１０２は、バッファメモリ１０３へのデータの入出力を制御する制御部である。具体的には、このバッファ制御部１０２は、書き込み動作においては、ホストインタフェース制御部１０１から転送された書き込みデータを後述するバッファメモリ１０３に格納するとともに、書き込みの完了通知を発行する。ここで発行された完了通知は、ホストインタフェース制御部１０１およびホストインタフェース１０１を経由し、ホスト２００に対して送信される。
【００４１】
そして、バッファ制御部１０２は、バッファメモリ１０３に蓄積したデータを所定のタイミング（バッファメモリ１０３が一杯になった場合等）で取り出し、フォーマット制御部１０４に転送する。ここでフォーマット制御部１０４に転送されたデータは、その後、リードチャネル１０５およびヘッドＩＣ１０６を経由してヘッド１０７に送られ、ディスク媒体１０８上の指定された書き込みアドレスに書き込まれる。
【００４２】
一方、読み込み動作においては、バッファ制御部１０２は、ホスト２００から指定された読み込みアドレスに対応するデータをバッファメモリ１０３から取り出し、ホストインタフェース１０１を経由してホスト２００に転送する。ここで、指定された読み込みアドレスに対応するデータがバッファメモリ１０３に格納されていなかった場合、バッファ制御部１０２は、後述するフォーマット制御部１０４に指示することによってディスク媒体１０８から当該データを読み込み、一旦バッファメモリ１０３に格納した上でホスト２００に転送する。
【００４３】
バッファメモリ１０３は、ホスト２００から受領した書き込みデータや、ディスク媒体１０８から読み込んだ読み込みデータを一時的に格納するメモリであり、ホスト２００とディスク装置１００の間の通信速度（高速）と、ディスクの読み書き速度（低速）との差を吸収するための緩衝用のメモリとして用いられる。
【００４４】
フォーマット制御部１０４は、ディスク媒体１０８に対するデータの書き込みおよび読み込みを制御する制御部である。具体的には、このフォーマット制御部１０４は、バッファメモリ１０３に格納されているデータとディスク媒体１０８上のデータとの対応付けを記憶しており、書き込み動作においては、ディスク媒体１０８上にデータが効率良く配置されるように書き込みを制御する。また、読み込み動作においては、ディスク媒体１０８から読み込んだデータをバッファ制御部１０２に転送する。
【００４５】
リードチャネル１０５は、書き込み動作においては、ディスク媒体１０８に書き込むデータを符号化してフォーマット制御部１０４からヘッドＩＣ１０６に転送し、読み込み動作においては、ディスク媒体１０８から読み込んだデータを複合化してヘッドＩＣ１０６からフォーマット制御部１０４に転送するＩＣである。
【００４６】
ヘッドＩＣ１０６は、書き込み動作においては、ヘッド１０７がディスク媒体１０８に書き込むデータを変調し、読み込み動作においては、ヘッド１０７がディスク媒体１０８から読み込んだデータを復調するＩＣである。
【００４７】
ディスク媒体１０８は、ホスト２００とディスク装置１００との間で入出力されるデータを記憶する磁気ディスクであり、ヘッド１０７は、磁気ディスクであるディスク媒体１０８へのデータの書き込みや、ディスク媒体１０８からのデータの読み込みを行う磁気ヘッドである。
【００４８】
サーボ制御部１０９は、ＶＣＭ１１０とＳＰＭ１１１の動作を制御する制御部であり、ＶＣＭ１１０は、ディスク媒体上の目的の位置までヘッド１０７を移動するためのモーターであり、ＳＰＭ１１１は、ディスク媒体１０８を回転するためのモーターである。
【００４９】
不揮発性メモリ１１２は、ディスク装置１００を制御する制御プログラムを記憶するＲＯＭであり、メモリ１１３は、制御プログラムの実行途中結果や、制御用のデータを記憶するＲＡＭである。そして、ＭＰＵ１１４は、不揮発性メモリ１１２から制御プログラムを読み出して実行することによってディスク装置１００全体の制御を行う処理装置である。
【００５０】
次に、ホストインタフェース制御部１０１におけるエラーチェック処理の処理手順について説明する。図３は、ホストインタフェース制御部におけるエラーチェック処理の処理手順を示すフローチャートである。同図に示すように、ホスト２００からパケットデータを受領すると、ホストインタフェース制御部１０１においては、ホストデータ振分部１０１ａが、ホスト２００から新しいパケットデータを受領する（ステップＳ１０１）。
【００５１】
ホストデータ振分部１０１ａは、パケットデータを検知すると、これをＦＩＦＯ１０１ｅおよび１０１ｆにパケットデータ単位で交互に格納する。ここでは、ＦＩＦＯ１０１ｅに格納する場合を説明する。ホストデータ振分部１０１ａは、受領したパケットデータをＦＩＦＯ１０１ｅに格納し、同時に、ＣＲＣチェック部１０１ｃにもそのデータを転送する（ＦＩＦＯ１０１ｆに格納する場合は、同時にＣＲＣチェック部１０１ｄに転送する）。そして、ＣＲＣチェック部１０１ｃは、転送されたデータをもとにＣＲＣ計算を行い、ＣＲＣデータを生成する（ステップＳ１０２）。
【００５２】
また、ＦＩＦＯ１０１ｅが１つのパケットデータを格納し終わると（ステップＳ１０３）、ＣＲＣチェック部１０１ｃは、生成したＣＲＣデータと、受領したパケットデータに含まれていたＣＲＣデータとを比較し、両者が一致しているか否かを判定する。そして、両者が一致していた場合、パケットデータにエラーは発生していないと判定し（ステップＳ１０４，Ｎｏ）、ＦＩＦＯ１０１ｅに転送許可信号を送出する（ステップＳ１０５）。これを受け、ＦＩＦＯｅは、格納しているパケットデータをディスクデータ振分部１０１ｂに転送する。
【００５３】
一方、両者が一致していなかった場合は、ＣＲＣチェック部１０１ｃは、パケットデータにエラーが発生していると判定し（ステップＳ１０４，Ｙｅｓ）、ＦＩＦＯ１０１ｅに転送禁止信号を送出すると同時に、ホストデータ振分部１０１ａに対してエラーデータを検出したことを通知する（ステップＳ１０６）。これを受け、ホストデータ振分部１０１ａは、ホスト２００に対して、エラーが検出されたデータの再送を要求する。
【００５４】
このように、ＣＲＣチェック部１０１ｃおよび１０１ｄが、ＣＲＣデータに基づいて、ＦＩＦＯ１０１ｅおよび１０１ｆに格納されたパケットデータにエラーが発生しているか否かをチェックし、エラーが発生していなかったもののみをバッファメモリ１０３に格納するよう制御することによって、バッファメモリ１０３において正常データがエラーデータで上書きされることによるデータの消失を防ぐことが可能となり、ディスク装置の信頼性を高めることができる。
【００５５】
また、ここでは２つのＦＩＦＯを用いた場合を説明したが、ＣＲＣデータによってエラーをチェックできる単位、すなわちパケットデータ単位でバッファメモリ１０３への格納を制御すれば、バッファメモリ１０３におけるデータの消失は防ぐことができるため、ＦＩＦＯは１つであってもよい。
【００５６】
上述してきたように、本実施例では、ホストインタフェース制御部１０１が、ホスト２００から受領するパケットデータの最大データサイズ以上の大きさのＦＩＦＯ１０１ｅおよび１０１ｆを備えるとともに、ＣＲＣチェック部１０１ｃおよび１０１ｄが、ホスト２００から受領するデータをパケットデータ単位でチェックし、エラーが発生していないパケットデータのみをＦＩＦＯ１０１ｅおよび１０１ｆからバッファメモリ１０３に転送することとしたので、バッファメモリ１０３において正常データがエラーデータで上書きされることによるデータの消失を防ぐことが可能となり、ディスク装置１００の信頼性を高めることができる。
【００５７】
また、本実施例では、磁気ディスク装置について説明したが、本発明はこれに限定されるものではなく、光ディスク装置や、光磁気ディスク装置にも同様に適用することができる。
【００５８】
（付記１）シリアルインタフェースを備え、バッファメモリを経由してデータの入出力を行うディスク装置であって、
上位装置から受領するパケットデータの最大データサイズ以上の大きさを有するとともに該パケットデータを一時的に記憶するキューと、
前記上位装置から受領するパケットデータをチェックし、エラーが発生していないパケットデータのみを前記キューから前記バッファメモリに転送するデータチェック手段と、
を備えたことを特徴とするディスク装置。
【００５９】
（付記２）複数のキューを備え、前記上位装置から受領するパケットデータを前記複数のキューに順番に記憶し、
前記データチェック手段は、前記複数のキューから前記バッファメモリにパケットデータを並行に転送することを特徴とする付記１に記載のディスク装置。
【００６０】
（付記３）２つのキューを備え、前記上位装置から受領するパケットデータを前記２つのキューに交互に記憶し、
前記データチェック手段は、それぞれのキューから前記バッファメモリにパケットデータを並行に転送することを特徴とする付記１に記載のディスク装置。
【００６１】
（付記４）前記上位装置から受領するパケットデータにはＣＲＣ（Cyclic Redundancy Check）データが含まれており、
前記データチェック手段は、該ＣＲＣデータに基づいて前記パケットデータのエラーをチェックすることを特徴とする付記１、２または３に記載のディスク装置。
【００６２】
（付記５）シリアルインタフェースを備え、バッファメモリを経由してデータの入出力を行うディスク装置におけるディスク書込データ転送方法であって、
上位装置から受領するパケットデータの最大データサイズ以上の大きさを有するキューに該パケットデータを一時的に登録するパケットデータ登録工程と、
前記上位装置から受領するパケットデータをチェックし、エラーが発生していないパケットデータのみを前記キューから前記バッファメモリに転送するデータチェック工程と、
を含んだことを特徴とするディスク書込データ転送方法。
【００６３】
（付記６）複数のキューを備え、
前記パケットデータ登録工程は、前記上位装置から受領するパケットデータを前記複数のキューに順番に登録し、
前記データチェック工程は、前記複数のキューから前記バッファメモリにパケットデータを並行に転送することを特徴とする付記５に記載のディスク書込データ転送方法。
【００６４】
（付記７）２つのキューを備え、
前記パケットデータ登録工程は、前記上位装置から受領するパケットデータを前記２つのキューに交互に登録し、
前記データチェック工程は、それぞれのキューから前記バッファメモリにパケットデータを並行に転送することを特徴とする付記５に記載のディスク書込データ転送方法。
【００６５】
（付記８）前記上位装置から受領するパケットデータにはＣＲＣ（Cyclic Redundancy Check）データが含まれており、
前記データチェック工程は、該ＣＲＣデータに基づいて前記パケットデータのエラーをチェックすることを特徴とした付記５、６または７に記載のディスク書込データ転送方法。
【産業上の利用可能性】
【００６６】
以上のように、本発明に係るディスク装置およびディスク書込データ転送方法は、シリアルインタフェースを備えたディスク装置に有用であり、特に、アクセス頻度が高い等の理由で上位装置との間の通信エラーが懸念される場合に適している。
【図面の簡単な説明】
【００６７】
【図１】本実施例に係るディスク装置の構成を示す機能ブロック図である。
【図２】ホストインタフェース制御部の構成を示す機能ブロック図である。
【図３】ホストインタフェース制御部におけるエラーチェック処理の処理手順を示すフローチャートである。
【符号の説明】
【００６８】
１００    ディスク装置
１０１    ホストインタフェース制御部
１０１ａ    ホストデータ振分部
１０１ｂ    ディスクデータ振分部
１０１ｃ、１０１ｄ    ＣＲＣチェック部
１０１ｅ、１０１ｆ    ＦＩＦＯ
１０２    バッファ制御部
１０３    バッファメモリ
１０４    フォーマット制御部
１０５    リードチャネル
１０６    ヘッドＩＣ
１０７    ヘッド
１０８    ディスク媒体
１０９    サーボ制御部
１１０    ＶＣＭ（Voice Coil Motor：ボイスコイルモーター）
１１１    ＳＰＭ（Spindle Motor：スピンドルモーター）
１１２    不揮発性メモリ
１１３    メモリ
１１４    ＭＰＵ
１１５    コモンバス
２００    ホスト
３００    ホストインタフェース
【図１】
2007179084.tif 000003
【図２】
2007179084.tif 000004
【図３】
2007179084.tif 000005