(57)【要約】【課題】処理を規定時間以内に終了することが求められる時間制限付きコマンドを受けて、ディスク上の各記録エリアへのアクセスを制御するアクセス制御装置に関し、リードとライトとの双方のアクセスについて、タイムアウトを生じさせずに自動交替処理を行なわせる。  【解決手段】時間制限付きコマンドに応じた処理を実行させ、アクセス不良が発生した場合に、ＲＡＭ等のメモリに、アクセス不良の記録エリアのアドレスを記録するとともに、そのアクセス不良の記録エリアに記録されるデータを取得した場合に、上記メモリに、そのデータをアクセス不良の記録エリアのアドレスに対応づけて記録し、規定時間上限までの残り時間に、上記メモリ上にデータが記録されている記録エリアについて自動交替処理を実行させ、その自動交替処理の成功を受けて、上記メモリから、自動交替処理が成功した記録エリアのアドレスとデータを削除する。【選択図】        図７
2009110287.tif 000002
【特許請求の範囲】
【請求項１】
処理を規定時間以内に終了することが求められる時間制限付きコマンドを受けて、ディスク上の各記録エリアへのアクセスを制御するアクセス制御装置において、
書込みおよび読出しが自在なメモリと、
時間制限付きコマンドを受けて該時間制限付きコマンドに応じた処理を実行させ、アクセス不良が発生した場合に、前記メモリに、アクセス不良の記録エリアのアドレスを記録するとともに、該アクセス不良の記録エリアに記録されるデータを取得した場合に、前記メモリに、該データを、該アクセス不良の記録エリアのアドレスに対応づけて記録するコマンド実行部と、
前記コマンド実行部による処理が終了した後の、前記規定時間上限までの残り時間に、前記メモリ上にデータが記録されている記録エリアについて自動交替処理を実行させる自動交替処理部と、
前記自動交替処理部による自動交替処理の成功を受けて、前記メモリから、自動交替処理が成功した記録エリアのアドレスとデータを削除するメモリ更新部とを備えたことを特徴とするアクセス制御装置。
【請求項２】
前記コマンド実行部が、
時間制限付きコマンドを受けて前記メモリを検索し、該メモリ上に当該時間制限付きコマンドによるアクセス対象の記録エリアのアドレスと同一のアドレスが記録されていた場合に、
当該時間制限付きコマンドがライトコマンドであったときは、当該アドレスに記録すべきデータを前記メモリ上に記録し、
当該時間制限付きコマンドがリードコマンドであって、かつ前記メモリ上に当該アドレスに対応するデータが記録されていたときは、該データを該メモリから読み出して出力し、
前記メモリ上に前記同一のアドレスが記録されていないとき、および当該時間制限付きコマンドがリードコマンドであって前記メモリ上に当該アドレスに対応するデータが記録されていないときに、当該時間制限付きコマンドに従うディスクのアクセスを実行させるものであることを特徴とする請求項１記載のアクセス制御装置。
【請求項３】
前記コマンド処理部は、当該時間制限付きコマンドに従うディスクのアクセスを実行させるにあたり、初回のアクセスで失敗したときは所定の規定回数を上限としてアクセスを繰り返させるものであって、
前記規定回数までアクセスを繰り返させてもアクセスに失敗したときは、
当該時間制限付きコマンドがライトコマンドであったときは、前記メモリに、当該記録エリアのアドレスと当該記録エリアに記録されるべきデータを記録し、
当該時間制限付きコマンドがリードコマンドであったときは、前記メモリに、当該記録エリアのアドレスを記録し、
前記規定回数よりも少ない閾値回数以上の回数までアクセスを繰り返した段階でアクセスに成功したときは、
当該時間制限付きコマンドがライトコマンドであったときは、前記メモリに、当該記録エリアのアドレスと当該記録エリアに記録されるべきデータを記録し、
当該時間制限付きコマンドがリードコマンドであったときは、前記メモリに、当該記録エリアのアドレスと当該記録エリアから読み出したデータを記録し、
前記閾値回数未満の回数までアクセスを繰り返した段階でアクセスに成功したときは、前記メモリへの記録は行なわないことを特徴とする請求項１又は２記載のアクセス制御装置。
【請求項４】
処理を規定時間以内に終了することが求められる時間制限付きコマンドを受けて、ディスク上の各記録エリアへのアクセスを制御するアクセス制御方法において、
時間制限付きコマンドを受けて該時間制限付きコマンドに応じた処理を実行させ、アクセス不良が発生した場合に、書込みおよび読出しが自在なメモリに、アクセス不良の記録エリアのアドレスを記録するとともに、該アクセス不良の記録エリアに記録されるデータを取得した場合に、前記メモリに、該データを、該アクセス不良の記録エリアのアドレスに対応づけて記録するコマンド実行ステップと、
前記コマンド実行ステップにおける処理が終了した後の、前記規定時間上限までの残り時間に、前記メモリ上にデータが記録されている記録エリアについて自動交替処理を実行させる自動交替処理ステップと、
前記自動交替処理ステップにおける自動交替処理の成功を受けて、前記メモリから、自動交替処理が成功した記録エリアのアドレスとデータを削除するメモリ更新ステップとを有することを特徴とするアクセス制御方法。
【請求項５】
前記コマンド実行ステップが、
時間制限付きコマンドを受けて前記メモリを検索し、該メモリ上に当該時間制限付きコマンドによるアクセス対象の記録エリアのアドレスと同一のアドレスが記録されていた場合に、
当該時間制限付きコマンドがライトコマンドであったときは、当該アドレスに記録すべきデータを前記メモリ上に記録し、
当該時間制限付きコマンドがリードコマンドであって、かつ前記メモリ上に当該アドレスに対応するデータが記録されていたときは、該データを該メモリから読み出して出力し、
前記メモリ上に前記同一のアドレスが記録されていないとき、および当該時間制限付きコマンドがリードコマンドであって前記メモリ上に当該アドレスに対応するデータが記録されていないときに、当該時間制限付きコマンドに従うディスクのアクセスを実行させるステップであることを特徴とする請求項４記載のアクセス制御方法。
【請求項６】
前記コマンド処理ステップは、当該時間制限付きコマンドに従うディスクのアクセスを実行させるにあたり、初回のアクセスで失敗したときは所定の規定回数を上限としてアクセスを繰り返させるステップであって、
前記規定回数までアクセスを繰り返させてもアクセスに失敗したときは、
当該時間制限付きコマンドがライトコマンドであったときは、前記メモリに、当該記録エリアのアドレスと当該記録エリアに記録されるべきデータを記録し、
当該時間制限付きコマンドがリードコマンドであったときは、前記メモリに、当該記録エリアのアドレスを記録し、
前記規定回数よりも少ない閾値回数以上の回数までアクセスを繰り返してアクセスに成功したときは、
当該時間制限付きコマンドがライトコマンドであったときは、前記メモリに、当該記録エリアのアドレスと当該記録エリアに記録されるべきデータを記録し、
当該時間制限付きコマンドがリードコマンドであったときは、前記メモリに、当該記録エリアのアドレスと当該記録エリアから読み出したデータを記録し、
前記閾値回数未満の回数までアクセスを繰り返した段階でアクセスに成功したときは、前記メモリへの記録は行なわないことを特徴とする請求項４又は５記載のアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理を規定時間以内に終了することが求められる時間制限付きコマンドを受けて、ディスク上の各記録エリアへのアクセスを制御するアクセス制御装置およびアクセス制御方法に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータ（以下、「ＰＣ」と略記する）に内蔵され、又は接続されるデータ記憶装置として磁気ディスク装置（以下、「ＨＤＤ」と略記する）が広範に利用されており、その用途はＰＣのみでなく、ビデオ録画装置やカーナビゲーション装置など、大容量のデータ記録が必要な様々な機器にまで広がってきている。
【０００３】
このＨＤＤに組み込まれている磁気ディスク（以下、「ＨＤ」と略記する）は、必ずしも全ての記録エリアにデータ書込み／読出しが可能であるとは限らず、ところどころにデータ書込み／読出しが不良な箇所が存在する。このため、ＨＤＤでは、自動交替処理が行なわれる。
【０００４】
図１は、自動交替処理の説明図である。
【０００５】
図１（Ａ）に示すように、ＨＤの各記録エリアである各セクタにはＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓｉｎｇ）と呼ばれる、そのセクタを特定するためのアドレスが付されており、ここでは、ＬＢＡ１０，１１，１２，…の各セクタにこの順に各データを書き込んでいるものとする。ここで、ＬＢＡ１３のセクタにデータを書き込もうとしたとき、書き込みに失敗し、さらに規定回数リトライしても正しく書き込めないときは、図１（Ｂ）に示すような、同じＨＤ上の別の領域に設けられた交替エリアの、ここではＬＢＡ０のセクタに、図１（Ａ）のＬＢＡ１３のセクタに記録すべきデータを記録し、さらに、図１（Ｃ）に示すような、そのＨＤのさらに別の領域に設けられた交替テーブルに、ＬＢＡ１３に記録すべきデータをＬＡＢ０に記録したことを記録しておく。
【０００６】
こうしておくことにより、ＬＢＡ１３のデータを読み出すリードコマンドを受けたときは、ＬＢＡ１３の代わりにＬＢＡ０からデータを読み出して出力することができる。
【０００７】
このように、本来使用すべきセクタに代えて別のセクタを使用するようにデータを記録する処理を交替処理と呼び、その交替処理が、所定のシーケンスに従って自動的に行なわれるようにした場合に、自動交替処理と呼ばれる。
【０００８】
この自動交替処理は、本体使用すべきセクタを何回もアクセスして、それでも失敗したときに磁気ヘッドを移動させて交替エリアへの記録および交替テーブルへの記録を行なうため、長時間を費やしてしまうことになる。
【０００９】
ここで、例えば映画や音楽など、実時間性が要求される処理を行なうためにストリームコマンドが用意されている。このストリームコマンドは、タイマー付き（ＣＣＴＬ）でコマンドが発行され、そのタイマーで指定された時間以内に必ず処理を終了させることを要求するコマンドである。この場合、複数のセクタでリトライが発生するとタイムエラーとなってしまうおそれがあり、タイムエラーになると、映画や音楽が途切れるといった事態も予想される。
【００１０】
特許文献１には、自動交替処理が必要であると判断しても、残り時間が短いときは自動交替処理を行なわないことが開示されている。
【００１１】
しかしながら、この場合、自動交替処理が行なわれないことにより、記録すべきデータが記録されず、あるいは読み出すべきデータが存在しないことが生じ、映画の画質や音楽の音質といったデータの品質の低下を招くことになる。
【００１２】
特許文献２には、データの記録に失敗したときにその時点では直ちには自動交替処理を行なわずにその失敗したデータを退避バッファに記録しておき、後で処理時間に余裕ができたときにそのメモリから読み出してＨＤの交替領域に記録することが開示されている。
【００１３】
しかしながら、この特許文献２ではＨＤへの書込処理に限られており、読出処理を含めた総合的な観点が欠けている。また、退避バッファに記録しておいたデータが再びＨＤに記録されるよりも前に同じＬＡＢへの再度のリードコマンドが発行されたとき、又は、同じＬＢＡへのリードコマンドが発行されたときの問題点の指摘や解決策は何ら示されていない。
【特許文献１】特開平１１−３２７８０８号公報
【特許文献２】特開２００３−１９６９２４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明は、上記事情に鑑み、タイムアウトを生じさせずにリードとライトとの双方のアクセスについて自動交替処理を行なわさせるアクセス制御装置およびアクセス制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記目的を達成する本発明のアクセス制御装置は、処理を規定時間以内に終了することが求められる時間制限付きコマンドを受けて、ディスク上の各記録エリアへのアクセスを制御するアクセス制御装置において、
書込みおよび読出しが自在なメモリと、
時間制限付きコマンドを受けてその時間制限付きコマンドに応じた処理を実行させ、アクセス不良が発生した場合に、上記メモリに、アクセス不良の記録エリアのアドレスを記録するとともに、アクセス不良の記録エリアに記録されるデータを取得した場合に、上記メモリに、そのデータを、アクセス不良の記録エリアのアドレスに対応づけて記録するコマンド実行部と、
コマンド実行部による処理が終了した後の、規定時間上限までの残り時間に、上記メモリ上にデータが記録されている記録エリアについて自動交替処理を実行させる自動交替処理部と、
自動交替処理部による自動交替処理の成功を受けて、上記メモリから、自動交替処理が成功した記録エリアのアドレスとデータを削除するメモリ更新部とを備えたことを特徴とする。
【００１６】
本発明の、アクセス制御装置によれば、アクセス不良が生じたときにメモリに記録しておき、自動交替処理を後で行なうようにしたため、タイムアウトを生じさせずに自動交替処理が行なわれる。また、本発明のアクセス制御装置によれば、リードとライトを区別せずに上記の残り時間に自動交替処理を実行させるため、自動交替処理完了までの時間が短縮化される。
【００１７】
ここで、上記本発明のアクセス制御装置において、上記コマンド実行部が、
時間制限付きコマンドを受けて上記メモリを検索し、そのメモリ上にその時間制限付きコマンドによるアクセス対象の記録エリアのアドレスと同一のアドレスが記録されていた場合に、
その時間制限付きコマンドがライトコマンドであったときは、そのアドレスに記録すべきデータを上記メモリ上に記録し、
その時間制限付きコマンドがリードコマンドであって、かつ上記メモリ上にそのアドレスに対応するデータが記録されていたときは、そのデータを上記メモリから読み出して出力し、
そのデータを上記メモリから読出して出力し、
上記メモリ上に上記の同一のアドレスが記録されていないとき、およびこの時間制限付きコマンドがリードコマンドであって上前記メモリ上にこのアドレスに対応するデータが記録されていないときに、この時間制限付きコマンドに従うディスクのアクセスを実行させるものであることが好ましい。
【００１８】
ここでは、ディスクをアクセスするに先立って、上記のとおりにメモリをアクセスするために、自動交替処理が行なわれるよりも前に、アクセス不良のあった記録エリアと同じ記録エリアへの再度のアクセスがあった場合であっても、データの整合性が確保され、アクセス不良があった時点よりも遅れた時点で自動交替処理を行なうことによる不都合の発生が回避される。
【００１９】
また、本発明のアクセス制御装置において、上記コマンド処理部は、上記の時間制限付きコマンドに従うディスクのアクセスを実行させるにあたり、初回のアクセスで失敗したときは所定の規定回数を上限としてアクセスを繰り返させるものであって、
その規定回数までアクセスを繰り返させてもアクセスに失敗したときは、
その時間制限付きコマンドがライトコマンドであったときは、上記メモリに、その記録エリアのアドレスとその記録エリアに記録されるべきデータを記録し、
その時間制限付きコマンドがリードコマンドであったときは、上記メモリに、その記録エリアのアドレスを記録し、
規定回数よりも少ない閾値回数以上の回数までアクセスを繰り返してアクセスに成功したときは、
その時間制限付きコマンドがライトコマンドであったときは、上記メモリに、記録エリアのアドレスとその記録エリアに記録されるべきデータを記録し、
その時間制限付きコマンドがリードコマンドであったときは、上記メモリに、記録エリアのアドレスとその記録エリアから読み出したデータを記録し、
上記閾値回数未満の回数までアクセスを繰り返した段階でアクセスに成功したときは、上記メモリへの記録は行なわないことが好ましい。
【００２０】
典型的には、自動交替処理は、ライトコマンドにおいてリトライが規定回数行なわれて、それでもデータの記録に失敗してリトライアウトが発生したときに行なわれるが、ここでは、リードコマンドにおいて読出しに成功した場合やライトコマンドにおいて書き込み成功した場合であってもリトライ回数が多い場合にも自動交替処理の対象としている。
【００２１】
このように、その記録エリアが完全には破損されていなくても自動交替処理の対象とすることによって全体としてのリトライ回数の削減につながっており、全体としてのアクセス時間が短縮される。
【００２２】
また、上記目的を達成する本発明のアクセス制御方法は、処理を規定時間以内に終了することが求められる時間制限付きコマンドを受けて、ディスク上の各記録エリアへのアクセスを制御するアクセス制御方法において、
時間制限付きコマンドを受けてその時間制限付きコマンドに応じた処理を実行させ、アクセス不良が発生した場合に、書込みおよび読出しが自在なメモリに、アクセス不良の記録エリアのアドレスを記録するとともに、アクセス不良の記録エリアに記録されるデータを取得した場合に、上記メモリに、そのデータを、アクセス不良の記録エリアのアドレスに対応づけて記録するコマンド実行ステップと、
コマンド実行ステップにおける処理が終了した後の、規定時間上限までの残り時間に、上記メモリ上にデータが記録されている記録エリアについて自動交替処理を実行させる自動交替処理ステップと、
自動交替処理ステップにおける自動交替処理の成功を受けて、上記メモリから、自動交替処理が成功した記録エリアのアドレスとデータを削除するメモリ更新ステップとを有することを特徴とする。
【００２３】
ここで、本発明のアクセス制御方法においても、上記コマンド実行ステップが、
時間制限付きコマンドを受けて上記メモリを検索し、そのメモリ上にその時間制限付きコマンドによるアクセス対象の記録エリアのアドレスと同一のアドレスが記録されていた場合に、
その時間制限付きコマンドがライトコマンドであったときは、そのアドレスに記録すべきデータを上記メモリ上に記録し、
その時間制限付きコマンドがリードコマンドであって、かつ上記メモリ上にそのアドレスに対応するデータが記録されていたときは、そのデータを上記メモリから読み出して出力し、
上記メモリ上に上記の同一のアドレスが記録されていないとき、およびこの時間制限付きコマンドがリードコマンドであって上記メモリ上にこのアドレスに対応するデータが記録されていないときに、この時間制限付きコマンドに従うディスクのアクセスを実行させるステップであることが好ましい。
【００２４】
さらに、本発明のアクセス制御方法においても、上記コマンド処理ステップは、上記の時間制限付きコマンドに従うディスクのアクセスを実行させるにあたり、初回のアクセスで失敗したときは所定の規定回数を上限としてアクセスを繰り返させるステップであって、
その規定回数までアクセスを繰り返させてもアクセスに失敗したときは、
その時間制限付きコマンドがライトコマンドであったときは、上記メモリに、その記録エリアのアドレスとその記録エリアに記録されるべきデータを記録し、
その時間制限付きコマンドがリードコマンドであったときは、上記メモリに、その記録エリアのアドレスを記録し、
規定回数よりも少ない閾値回数以上の回数までアクセスを繰り返してアクセスに成功したときは、
その時間制限付きコマンドがライトコマンドであったときは、上記メモリに、記録エリアのアドレスとその記録エリアに記録されるべきデータを記録し、
その時間制限付きコマンドがリードコマンドであったときは、上記メモリに、記録エリアのアドレスとその記録エリアから読み出したデータを記録し、
閾値回数未満の回数までアクセスを繰り返してアクセスに成功したときは、上記メモリへの記録は行なわないことが好ましい。
【発明の効果】
【００２５】
以上の本発明によれば、タイムアウトを生じさせずに自動交替処理が行なわれ、また、自動交替処理完了までの時間が短縮化される。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施形態について説明する。
【００２７】
図２は、本発明の一実施形態が組み込まれた磁気ディスク装置の平面図である。
【００２８】
この図２に示す磁気ディスク装置１０は、図示しないスピンドルモータ（ＳＰＭ）によって回転軸１１ａを中心に回転する磁気ディスク１１、回動軸１２ａの回りに回動するアクチュエータ１２、アクチュエータ１２の先端部に搭載されそのアクチュエータ１２の回動により磁気ディスクと対向してその磁気ディスク１１をアクセスする磁気ヘッド１３、アクチュエータ１２に搭載された磁気ヘッド１３が磁気ディスク１１から離れたアンロード位置にあるときに、そのアクチュエータ１２の先端が置かれるランプ１４を備えている。
【００２９】
また、この磁気ディスク装置１０にはさらに、アクチュエータ１２の後端部１５に、コイル１５ａが備えられている。このアクチュエータ１２の後端部１５と上下方向になる位置には、固定マグネット１７が備えられて、この固定マグネット１７とコイル１５ａとによりボイスコイルモータ（ＶＣＭ）が構成されており、コイル１５ａに電流を流すとコイル１５ａの電流と固定マグネット１７の磁力との相互作用により、アクチュエータ１２が、この図２に示すアンロード位置と、磁気ヘッド１３が磁気ディスク１１上に移動したロード位置との間で回動する。
【００３０】
また、この磁気ディスク装置１０には、アウターストッパ１７が備えられている。このアウターストッパ１７は、アンロード方向に回動してきたアクチュエータ１２の後端部１５が当接することによって、このアクチュエータ１２のアンロード方向の回動限界を規定している要素である。
【００３１】
さらに、この磁気ディスク装置１０には、イナーシャラッチ１８が備えられている。このイナーシャラッチ１８は、この磁気ディスク装置１０に衝撃が加わり、アクチュエータ１２にロード方向の力が働いたときに、その同じ衝撃により軸１８ａを中心に回動してアクチュエータ１２の後端部１５のロード方向先端１５ｂに係止し、アクチュエータ１２のロード方向へのそれ以上の回動を阻止し、磁気ヘッド１３が磁気ディスク１１上に不用意にロードされるのを防止する役割りを担っている。
【００３２】
図３は、図２に示す磁気ディスク装置の回路構成を示すブロック図である。
【００３３】
ここには、ＭＰＵ２０、インタフェース制御回路２１、データバッファ制御回路２２、フォーマッタ回路２３、データバッファ２４、ヘッドＩＣ２５、ＳＰＭドライブ２６、ＶＣＭドライブ２７、ＳＰＭ２８、およびＶＣＭ２９が示されている。また、ここには、磁気ディスク１１、アクチュエータ１２、およびアクチュエータ先端部に備えられた磁気ヘッド１３も模式的に示されている。
【００３４】
ここで、ＭＰＵ２０と、インタフェース制御回路２１、データバッファ制御回路２２、およびフォーマッタ回路２３、ＳＰＭドライブ２６、およびＶＣＭドライブ２７は、バス３０により相互に接続されている。
【００３５】
ＭＰＵ２０は、各種のプログラムを実行して、この装置全体の制御を担う要素である。本実施形態に特有な制御については後述する。
【００３６】
また、インタフェース制御回路２１は、この磁気ディスク装置と接続された外部装置（例えばＰＣに内蔵された磁気ディスク装置におけるＰＣの本体内のＣＰＵなどを含む）からのデータやコマンドの受信や外部装置へのデータの送信を担う構成部分である。このインタフェース制御回路２１で受信したコマンドは、ＭＰＵ２０に伝えられ、ＭＰＵ２０ではそのコマンドに応じた処理が行なわれる。
【００３７】
また、データバッファ制御回路２２は、ＭＰＵ２０の制御の下で、インタフェース制御回路２１が外部装置から受け取ったデータをデータバッファ２４に一旦蓄積しデータバッファ２４から読み出してフォーマッタ回路２３に渡し、また、フォーマッタ回路２３から受け取ったデータをデータバッファ２４に一時的に蓄積した後インタフェース制御回路２１に渡して外部装置に送信させる役割りを担っている。さらに、このデータバッファ制御回路２２は、ＭＰＵ２０からの指示に従って、データバッファ２４に、アクセス不良のセクタのＬＢＡやそのセクタに書き込まれるべきデータの記録や読出しも担っている。
【００３８】
また、フォーマッタ回路２３は、ＭＰＵ２３の制御の下で、データバッファ制御回路２２から受け取ったデータの形式を整えてヘッドＩＣ２５に渡し、またヘッドＩＣ２５から受け取ったデータをデータバッファ制御回路２２に渡す。
【００３９】
さらに、ヘッドＩＣ２５は、ヘッド１３をドライブして磁気ディスク１１にデータを記録させたり、また、磁気ディスク１１に記録されているデータを磁気ヘッド１３にピックアップさせてそのデータを受け取る役割りを担っている。
【００４０】
さらに、ＳＰＭドライブ２６は、ＭＰＵ２０の制御の下で、磁気ディスク１１を回転させるためのスピンドルモータ（ＳＰＭ）２８を駆動して磁気ディスク１１を回転させるものであり、ＶＣＭドライブ２７は、ＭＰＵ２０の制御の下で、アクチュエータ１２を回動させるボイスコイルモータ（ＶＣＭ）２９を駆動して（図２に示すコイル１５ａに電流を流して）、アクチュエータ１２を回動させるものである。磁気ディスク１１の回転とアクチュエータ１２の回動により、磁気ヘッド１３は磁気ディスク１１上の任意のセクタに対面した位置に移動することができる。
【００４１】
図４は、図３に示すデータバッファ内に構築された交換候補テーブル（Ａ）と専用ワークエリア（Ｂ）を示す図である。
【００４２】
データバッファ２４は、前述のように、インタフェース制御回路２１とフォーマッタ回路２３との間を流れるデータの一時的な蓄積にも利用されるが、これらの交替候補テーブル（Ａ）および専用ワークエリア（Ｂ）は、それらのデータの蓄積により書き換えられてしまわないよう、データバッファ２４内のデータの蓄積領域とは別の領域に構築される。
【００４３】
尚、図１を参照して説明した磁気ディスク上のエリアの構成は、この実施形態でも同一であり、この実施形態でも、図１をそのまま参照するものとする。
【００４４】
図４（Ａ）に示す交替候補テーブルには、アクセス不良が生じたセクタのＬＢＡと、そのセクタに書き込むべき（あるいは書き込まれていた）データが図４（Ｂ）の専用ワークエリアに存在する「１」か否「０」かを示すフラグとのペアが格納される。
【００４５】
この図４（Ａ）には、ＬＢＡ１３のセクタでアクセス不良が存在したこと、および図４（Ｂ）の専用ワークエリアにそのＬＢＡ１３のセクタを書き込むべき（あるいは書き込まれていた）データが存在することを示すフラグ「１」が記録されていることが示されており、図４（Ｂ）の専用ワークエリアには、ＬＢＡ１３のデータが記録されている。
【００４６】
フラグ「１」が記録される場合、すなわち、そのＬＢＡのデータが専用ワークエリアに存在する場合と、フラグ「０」が記録される場合、すなわち、そのＬＢＡのデータが専用ワークエリアに存在しない場合との別については後述する。
【００４７】
図５は、ライトストリームコマンドを受け取ったときのＭＰＵ２０における処理を示すフローチャートである。
【００４８】
ライトストリームコマンドは、磁気ディスク１１へのデータの書込みを指示するコマンドであり、その処理に要する時間が規定されてその規定時間内にその処理を終えることが求められているコマンドである。
【００４９】
ここでは、ライトストリームコマンドを受信すると、先ず、図４（Ａ）に示す交替候補テーブルが参照され、その交替候補テーブルに、今回のライトストリームコマンドにより書込みが行なわれるセクタのＬＢＡのうち、交替候補テーブルに記録されているＬＢＡが存在するか否かがサーチされ（ステップＳ１０１）、そこに今回のライトストリームコマンドで書込み対象となっているセクタのＬＢＡのうちの一部のＬＢＡが記録されていた場合、その一部のＬＢＡのそれぞれについて、フラグとして「１」が上書きされ、さらに専用ワークエリアの対応する領域に、そのＬＢＡに書き込もうとしていたデータが記録される（ステップＳ１０２）。
【００５０】
ステップＳ１０１で、今回の書込み対象のＬＢＡが交換候補テーブルに記録されていないと判定されたとき、又は、ステップＳ１０２で専用ワークエリアにデータを記録した後、ステップＳ１０３に進み、交替候補エリアに記録されていたＬＢＡを除くＬＢＡのうちの１つについて、通常のライトシーケンスが実行されて磁気ディスクにデータが書き込まれる。正常終了ではなかったときは（ステップＳ１０４）、ライトが規定回数だけリトライされ（ステップＳ１０５）、それでもなお書込み不能であってリトライアウトになると（ステップＳ１０６）、そのリトライアウトになったセクタのＬＢＡが図４（Ａ）の交替候補テーブルに書き込まれてフラグ「１」が上書きされ、さらに専用ワークエリアにそのＬＢＡのセクタに書き込もうとしたデータが記録される。
【００５１】
ステップＳ１０５における、規定回数のライトリトライが行なわれている途中で、閾値回数以上の回数リトライした段階で正常に書き込めたときは、ステップＳ１０８に進み、この場合、正常に書き込めたがリトライ回数が閾値回数以上であったことからそのセクタを今後使わないこととし、リトライアウトになった場合と同様、交換候補テーブルにそのセクタのＬＢＡを記録するとともにフラグ「１」が上書きされ、さらに専用ワークエリアにそのＬＢＡのデータが記録される。
【００５２】
ステップＳ１０５におけるライトリトライが行なわれ、閾値回数に達するよりも少ないリトライ回数でデータの書込みが正常に行なわれた場合は、そのセクタを引き続き使うこととし、交替候補テーブルおよび専用ワークエリアへの書込みは行なわれない。
【００５３】
ステップＳ１０９では、今回のライトストリームコマンドで対象としているセクタのうち、交替候補テーブルにＬＢＡが記録されていたセクタと、磁気ディスクに既に書き込んだセクタとを除く、残りのセクタがまだ存在するか否かが判定され、残りのセクタが存在する場合は、ステップＳ１０３に戻り、その残りのセクタのうちの１つのセクタについて同様の処理が行なわれる。
【００５４】
ステップＳ１０９で、残りのセクタが存在しないと判定されると、今度は、自動交替処理が行なわれる。すなわち、ここでは、先ず、今回のライトストリームコマンドで指定された規定時間から、ここまでの処理に要した時間を差し引いた残り時間が、自動交替処理を行なうのに必要な時間以上であるか否かが判定され（ステップＳ１１０）、残り時間があるときは図４（Ａ）の交替候補テーブルが調べられて、その交替候補テーブルにＬＢＡが記録されているか否かが判定され（ステップＳ１１１）、さらにＬＢＡが記録されていたときはそのＬＢＡに対応するフラグが「１」になっているか否か、すなわち専用ワークエリアに交替候補のデータが記録されているか否かが判定され、フラグが「１」のときは、専用ワークエリアからデータが読み出されて、図１を参照して説明した自動交替処理が行なわれる（ステップＳ１１３）。その後、交替候補テーブルおよび専用ワークエリアから、その自動交替処理が行なわれたＬＢＡの情報が削除される（ステップＳ１１４）。ステップＳ１１０に戻り、さらに残り時間があるときは、交替候補テーブルからさらに別のＬＢＡが記録されているか否かが判定され、以下、上記と同様の自動交替処理が行なわれる。
【００５５】
残り時間が少ない場合、および自動交替処理を行なうべきデータがなくなった場合は、今回の、ライトストリームコマンドに対する一連の処理が終了する。
【００５６】
図６は、リードストリームコマンドを受け取ったときのＭＰＵ２０における処理を示すフローチャートである。
【００５７】
リードストリームコマンドは、磁気ディスク１１からのデータの読出しを指示するコマンドであり、その処理に要する時間が規定されてその規定時間内にその処理を終えることが求められているコマンドである。
【００５８】
ここでは、リードストリームコマンドを受信すると、ライトストリームコマンドを受信した場合と同様、先ず、図４（Ａ）に示す交替候補テーブルが参照され、今回のリードストリームコマンドにより読出しが行なわれるセクタのＬＢＡについて１つずつ、その交替候補テーブルに記録されているＬＢＡが存在するか否かがサーチされ（ステップＳ２０１）、そこに今回のリードストリームコマンドで読出し対象となっているセクタのＬＢＡのうちの、今回サーチの対象とした１つのＬＢＡが記録されていた場合、専用ワークエリア（図４（Ｂ））に、そのＬＢＡに対応するデータが記録されているか否か、すなわち、交替候補テーブルの、そのＬＢＡに対応して記録されているフラグが「１」か否かが判定され（ステップＳ２０２）、フラグが「１」、すなわち専用ワークエリアにそのＬＢＡに対応するデータが存在すると判定されると、専用ワークエリアからそのデータが読み出されて外部機器への出力用に利用される。
【００５９】
次にステップＳ２１０に進んで今回のリードストリームコマンドによる読出し対象の全てのセクタのうち読出しの終了していない残りのセクタが存在するか否かが判定され、残りのセクタが存在するときは、ステップＳ２０１に戻り、次の１つのＬＢＡについて処理が繰り返される。
【００６０】
ステップＳ２０１で、交替候補テーブルには今回のリードストリームコマンドで読出しの対象となっているセクタのうちの、今回サーチの対象とした１つのＬＢＡが記録されていないと判定されると、ステップＳ２０４に進み、その１つのＬＢＡについて通常のリードシーケンスが実行される。このリードシーケンスが正常に終了すると（ステップＳ２０５）、ステップＳ２１０に進んで残りのセクタが存在するか否かが判定され、残りのセクタが存在するときはステップＳ２０１に戻ってその残りのセクタのうちの１つのセクタについて処理が繰り返される。
【００６１】
正常終了ではなかったときは（ステップＳ２０５）、リードが規定回数だけリトライされ（ステップＳ２０６）、それでもなお読出し不能であってリトライアウトが発生すると（ステップＳ２０７）、そのリトライアウトになったセクタのＬＢＡが図４（Ａ）の交替候補テーブルに書き込まれ、ここではそのＬＢＡのセクタからデータは存在しないため、フラグには、「０」が書き込まれる。
【００６２】
ステップＳ２０６における、規定回数のリードリトライが行なわれている途中で、閾値回数以上の回数リトライした段階で正常に読み出されたときは、ステップＳ２０９に進み、この場合、正常には読み出されたがリトライ回数が閾値回数以上であったことからそのセクタを今後使わないこととし、交換候補テーブルにそのセクタのＬＢＡを記録するとともにここではフラグ「１」が上書きされ、さらに専用ワークエリアにそのＬＢＡのセクタから読み出されたデータが記録される。
【００６３】
ステップＳ２０６におけるリードリトライが行なわれ、閾値回数に達するよりも少ないリトライ回数でデータの読出しが正常に行なわれた場合は、そのセクタを引き続き使うこととし、交替候補テーブルおよび専用ワークエリアへの書込みは行なわれない。
【００６４】
ステップＳ２１０では、今回のリードストリームコマンドで対象としているセクタのうち、専用ワークエリアからデータを読み出したセクタおよび磁気ディスクからデータを読み出したセクタを除く、残りのセクタがまだ存在するか否かが判定され、残りのセクタが存在する場合は、ステップＳ２００に戻り、その残りのセクタのうちの１つのセクタについて同様の処理が行なわれる。
【００６５】
ステップＳ２１０で、残りのセクタが存在しないと判定されると、今度は、自動交替処理が行なわれる。ここでは、先ず、今回のリードストリームコマンドで指定された規定時間から、ここまでの処理に要した時間を差し引いた残り時間が、自動交替処理を行なうのに必要な時間以上であるかどうかが判定され（ステップＳ２１１）、残り時間があるときは図４（Ａ）の交替候補テーブルが調べられて、その交替候補テーブルにＬＢＡが記録されているか否かが判定され（ステップＳ２１２）、さらにＬＢＡが記録されていたときはそのＬＢＡに対応するフラグが「１」になっているか否か、すなわち専用ワークエリアに交替候補のデータが記録されているか否かが判定され（ステップＳ２１３）、フラグが「１」のときは、専用ワークエリアからデータが読み出されて、図１を参照して説明した自動交替処理が行なわれる（ステップＳ２１４）。その後、交替候補テーブルおよび専用ワークエリアから、その自動交替処理が行なわれたＬＢＡの情報が削除される（ステップＳ２１５）。ステップＳ２１１に戻り、さらに残り時間があるときは、交替候補テーブルからさらに別のＬＢＡが記録されているか否かが判定され、以下、上記と同様の自動交替処理が行なわれる。
【００６６】
残り時間が少ない場合、および自動交替処理を行なうべきデータがなくなった場合は、今回の、リードストリームコマンドに対する一連の処理が終了する。
【００６７】
図７は、ストリームシーケンスにおいて、交替条件を満たしたときの処理の流れの例を示す図である。
【００６８】
左端のストリーム０のリードストリームではリードシーケンスが正常に行なわれ、次のストリーム１のライトストリームで交替条件を満たし専用ワークエリアにデータがコピーされたものとする。そのストリーム１については残り時間が空いていなかったものとし、この場合、このストリーム１では自動交替処理は行なわれずにそのまま終了する。
【００６９】
次のストリーム２でも残り時間が空いていなかったとした場合、このストリーム２でも自動交替処理は行なわれない。
【００７０】
さらに次のストリーム０のリードストリームでは、そのリードストリーム本来の処理が終了した後に残り時間が空いていたとすると、そこで自動交替処理が行なわれる。さらに次のストリーム１のライトストリームでも、残り時間が空いているが、自動交替処理を行なうべきデータが存在しないので何も行なわれない。
【００７１】
さらにその次のストリーム２でも同様である。
【００７２】
以上の実施形態では、リードストリームコマンドとライトストリームコマンドとの双方について残り時間が調べられ、残り時間が空いているときは、リードストリームであるかライトストリームであるかの別なく、自動交替処理を行なうこととしている。
【００７３】
また、本実施形態では、図３のデータバッファ２４内に、図４に示すような変換候補テーブルおよび専用ワークエリアを構築し、ライトストリームの場合もリードストリームの場合も先ずはこの変換候補テーブルおよび専用ワークエリアを参照して、上述した必要な処理を行っているため、自動交替処理が未だ行なわれていないデータが存在していても、外部機器から見たときは、自動交替処理が終了している場合と同様のデータの書込み／読出しが行なわれる。
【００７４】
さらに、本実施形態ではリトライアウトが発生しなくても、リトライをある閾値回数以上の回数行なってはじめてライト又はリードに成功した場合も自動交替候補としているため、全体としてもリトライ回数を減少させることができ、タイムアウトエラーとなるまでの余裕がさらに大きくなっている。
【図面の簡単な説明】
【００７５】
【図１】自動交替処理の説明図である。
【図２】本発明の一実施形態が組み込まれた磁気ディスク装置の平面図である。
【図３】図２に示す磁気ディスク装置の回路構成を示すブロック図である。
【図４】図３に示すデータバッファ内に構築された交換候補テーブル（Ａ）と専用ワークエリア（Ｂ）を示す図である。
【図５】ライトストリームコマンドを受け取ったときのＭＰＵにおける処理を示すフローチャートである。
【図６】リードストリームコマンドを受け取ったときのＭＰＵにおける処理を示すフローチャートである。
【図７】ストリームシーケンスにおいて、交替条件を満たしたときの処理の流れの例を示す図である。
【符号の説明】
【００７６】
１１    磁気ディスク
１２    アクチュエータ
１３    ヘッド
１５ａ    コイル
２０    ＭＰＵ
２１    インタフェース制御回路
２２    データバッファ制御回路
２３    フォーマッタ回路
２４    データバッファ
２５    ヘッドＩＣ
２６    ＳＰＭドライブ
２７    ＶＣＭドライブ
２８    スピンドルモータ
２９    ボイスコイルモータ
３０    バス
【図１】
2009110287.tif 000003
【図２】
2009110287.tif 000004
【図３】
2009110287.tif 000005
【図４】
2009110287.tif 000006
【図５】
2009110287.tif 000007
【図６】
2009110287.tif 000008
【図７】
2009110287.tif 000009