(57)【特許請求の範囲】
【請求項１】
磁気ディスクと、
ブロック単位のデータを前記磁気ディスクから読み込むバッファと、
所定数の前記ブロック単位のデータに対応した管理テーブルであって、リードゲートが開かれたタイミングでセットされ前記バッファの読み込み箇所を示すポインタと当該ポインタにより示される読み込み箇所に格納されるデータに関する管理フラグとを格納する管理テーブルと、
前記ポインタにより示される読み込み箇所に前記ブロック単位のデータが読み込まれた場合に、当該データが読み込まれた読み込み箇所の管理フラグをセットする制御部と、
を備える磁気記録装置。
【請求項２】
前記制御部は、前記フラグ管理テーブル内で前記所定数よりも少ない数のブロック単位となる管理対象範囲を定め、この管理対象範囲の先頭の管理フラグのセットを判定した場合に、この管理フラグを管理対象範囲から外す請求項１に記載の磁気記録装置。
【請求項３】
前記フラグ管理テーブルにかかる所定数は、レイテンシに基づいて定められる請求項１または請求項２に記載の磁気記録装置。
【請求項４】
磁気ディスクを備える磁気記録装置におけるデータ読み込み方法であって、
ブロック単位のデータを前記磁気ディスクからバッファに読み込み、
所定数の前記ブロック単位のデータに対応した管理テーブルであって、リードゲートが開かれたタイミングでセットされ前記バッファの読み込み箇所を示すポインタと当該ポインタにより示される読み込み箇所に格納されるデータに関する管理フラグとをフラグ管理テーブルに格納し、
前記ポインタにより示される読み込み箇所に前記ブロック単位のデータが読み込まれた場合に、当該データが読み込まれた読み込み箇所の管理フラグをセットする、
データ読み込み方法。
【請求項５】
前記フラグ管理テーブル内で前記所定数よりも少ない数のブロック単位となる管理対象範囲を定め、この管理対象範囲の先頭の管理フラグのセットを判定した場合に、この管理フラグを管理対象範囲から外す請求項４に記載のデータ読み込み方法。
【請求項６】
前記フラグ管理テーブルにかかる所定数はレイテンシに基づいて定められる請求項４または請求項５に記載のデータ読み込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、磁気記録装置及びそのデータ読み込み方法に関する。
【背景技術】
【０００２】
磁気記憶装置において、ECCの処理時間は増大し続けている。例えばLDPCを用いて復号した場合、一旦復号に失敗したデータについて、何度も繰り返して復号処理を行う場合がある。
【０００３】
従来は、セクタデータは、リードゲートを開いた順に返すことで、メディアから読み出したセクタの順番とバッファに転送されるセクタの順番とは一致するように制御していた。このため、LDPCなど、復号完了まで非常に長い時間がかかるケースが存在するような符号を採用した場合、あるセクタが復号に非常に時間がかかる場合、後続のセクタが復号完了していてもバッファに出力することはできなかった。そのためECC制御部に大きなバッファをもち、後続のセクタはバッファへの出力の順番待ちをするように制御していた。
【０００４】
または、復号完了した順番にバッファに転送できるようにする場合は、バッファ上に、事前にリードゲートを開く分以上のバッファの連続した空き領域を確保しておく必要があった。
【０００５】
関連して特許文献１には、２次元配列データのうち一部分のデータを記憶する記憶装置を備え、他装置からのデータを順に記憶装置に格納して、該記憶装置のデータの順序を入れ替えて読出し制御装置に転送する技術が開示されている。しかしこの先行特許文献は２次元配列データとしてデータを取り扱う事を前提にしており、一般的にデータを取り扱うものではない。
【０００６】
一般的にデータを取り扱うことにおいてより効率的なデータ読み込みの要望があるが、かかる要望を実現するための手段は知られていない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平４−１００９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、より効率的にデータを読み込みすることができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、実施形態によれば磁気記録装置は、磁気ディスクと、ブロック単位のデータを前記磁気ディスクから読み込むバッファと、所定数の前記ブロック単位のデータに対応した管理テーブルであって、リードゲートが開かれたタイミングでセットされ前記バッファの読み込み箇所を示すポインタと当該ポインタにより示される読み込み箇所に格納されるデータに関する管理フラグとを格納する管理テーブルと、前記ポインタにより示される読み込み箇所に前記ブロック単位のデータが読み込まれた場合に、当該データが読み込まれた読み込み箇所の管理フラグをセットする制御部と、を備える。
【図面の簡単な説明】
【００１０】
【図１】実施形態に関するディスクドライブの要部を示すブロック図。
【図２】この発明の一実施形態を示す機能ブロック構成図。
【図３】同実施形態のデータ管理方法を示すフローチャート。
【図４】同実施形態の管理フラグの動作を説明するために示す模式図。
【発明を実施するための形態】
【００１１】
以下図面を参照して、実施形態を説明する。
（第１の実施形態）
本発明による第１の実施形態を図１乃至図４を参照して説明する。
一般的に、データ記憶装置や通信装置では、データの誤りを検出し訂正する誤り訂正機能が組み込まれている。この誤り訂正機能は、例えば１ビット訂正可能なハミング符号（短縮化ハミング符号語）を使用する符号化・復号化方式により実現できる。
【００１２】
［ディスクドライブの構成］
図１は、本実施形態の符号化・復号化装置１を適用するデータ記憶装置として、ハードディスクドライブ（以下、単にディスクドライブと表記する）の要部を示すブロック図である。
【００１３】
図１に示すように、ディスクドライブは大別して、ヘッド・ディスクアセンブリ（head-disk assembly：ＨＤＡ）、ヘッドアンプ集積回路（以下、ヘッドアンプＩＣ）２５と、回路基板２６とから構成されている。ＨＤＡは、磁気記録媒体であるディスク２０と、スピンドルモータ（ＳＰＭ）２１と、ヘッド２２を搭載しているアーム２３と、ボイスコイルモータ（ＶＣＭ）２４とを有する。
【００１４】
ディスク２０は、スピンドルモータ２１より回転する。アーム２３とＶＣＭ２４は、アクチュエータを構成している。アクチュエータは、ＶＣＭ２４の駆動により、アーム２３に搭載されているヘッド２２をディスク２０上の指定の位置まで移動制御する。ヘッド２２は、リードヘッド素子及びライトヘッド素子を有する。リードヘッド素子は、ディスク２０上に記録されているデータを読み出す。ライトヘッド素子は、ディスク２０上にデータを書き込む。
【００１５】
ヘッドアンプＩＣ２５は、リードアンプ及びライトドライバを有する。リードアンプは、リードヘッド素子により読み出されたリード信号を増幅して、リード／ライト（Ｒ／Ｗ）チャネル２７に伝送する。一方、ライトドライバは、Ｒ／Ｗチャネル２７から出力されるライトデータに応じたライト電流をライトヘッド素子に伝送する。
【００１６】
回路基板２６は、Ｒ／Ｗチャネル２７と、ディスクコントローラ２８と、マイクロプロセッサ（ＣＰＵ）２９とを含む。Ｒ／Ｗチャネル２７は、リードデータの信号処理を実行するリードチャネルと、ライトデータの信号処理を実行するライトチャネルとを含む。ＣＰＵ２９は、ドライブのメインコントローラであり、ヘッド２２の位置決めを行なうサーボ制御及びデータのリード／ライト制御を実行する。
【００１７】
ディスクコントローラ２８は、ホストシステム３０とＲ／Ｗチャネル２７との間のデータ転送を制御するインターフェース制御を実行する。ディスクコントローラ２８は、本実施形態の符号化・復号化モジュール１０の他、後述のフラグ・ポインタマネージャー３２に代表されるモジュール１９を主要部とする符号化・復号化装置１を含む。ディスクコントローラ２８は、ＤＲＡＭからなるバッファメモリ２８０を制御し、ホストシステム３０から転送されるユーザデータまたはディスク２０から読み出されたリードデータをバッファメモリ２８０に格納する。
【００１８】
さて磁気記憶装置において、ECC (Error Checking and Correcting)の処理時間は増大し続けている。例えばLDPC(Low Density Parity Check)を用いて復号した場合、一旦復号に失敗したデータについて、何度も繰り返して復号処理を行う場合がある。
【００１９】
従来は、セクタデータは、リードゲートを開いた順に返すことで、メディアから読み出したセクタの順番とバッファに転送されるセクタの順番とは一致するように制御していた。このため、LDPCなど、復号完了まで非常に長い時間がかかるケースが存在するような符号を採用した場合、あるセクタが復号に非常に時間がかかる場合、後続のセクタが復号完了していてもバッファに出力することはできなかった。そのためECC制御部に大きなバッファをもち、後続のセクタはバッファへの出力の順番待ちをするように制御していた。
【００２０】
または、復号完了した順番にバッファに転送できるようにする場合は、バッファ上に、事前にリードゲートを開く分以上のバッファの連続した空き領域を確保しておく必要があった。
【００２１】
本実施形態はこのような事情を改善するためになされたものである。すなわち、後述する管理テーブルをもち、リードゲートが開くタイミングと、復号が完了するタイミングで動的にこの管理テーブルを更新することで、事前に十分な空きを確保することなしに、復号完了した順にバッファへの転送を行いつつ、バッファ上のデータの整合性を保つことが可能とする。
【００２２】
図２は、一実施形態を示す機能ブロック構成図である。ディスクマネージャー３１、フラグ・ポインタマネージャー３２、バッファマネージャー３３とデータバッファ３４とからなる。
【００２３】
ディスクマネージャー３１は、リード／ライト（Ｒ／Ｗ）チャネル２７とディスクコントローラ２８の連携体であり、フラグ・ポインタマネージャー３２に対してリードゲート発行とデータ転送とを行う構成となっている。
【００２４】
フラグ・ポインタマネージャー３２は、ディスクコントローラ２８にある一つのモジュールであり、バッファマネージャー３３へバッファポインタを出力しセクタカウントアップを指示する。
【００２５】
バッファマネージャー３３は、ディスクコントローラ２８にある一つのモジュールであり、フラグ・ポインタマネージャー３２の制御のもとにディスクマネージャー３１からデータバッファ３４へとデータを転送させる。データバッファ３４は、バッファメモリ２８０（以下総称してバッファ）に相当する。なお、フラグ・ポインタマネージャー３２は後述するフラグ管理テーブルＦを含んでいる。
【００２６】
図３は、実施形態のデータ管理方法を示すフローチャートである。ホストシステム３０からデータリード要求があると起動され要求が終わると終了する。
ステップＳ４１：リードゲートが発行されたか判定する。発行されていないと判定した場合にはステップＳ４３へ進む。
ステップＳ４２：ステップＳ４１でリードゲートが発行されたと判定した場合には、バッファポインタを保持し、ステップＳ４３へ進む。
ステップＳ４３：バッファにセクタが転送されたか判定する。転送されていないと判定した場合にはステップＳ４１へ戻る。
ステップＳ４４：ステップＳ４３でバッファにセクタが転送されたと判定した場合には、転送セクタのフラグをセットし、ステップＳ４５へ進む。
ステップＳ４５：フラグ管理しているセクタの先頭セクタであるか判定する。先頭セクタでないと判定した場合にはステップＳ４１へ戻る。
ステップＳ４６：ステップＳ４５でフラグ管理しているセクタの先頭セクタであると判定した場合には、転送セクタをフラグ管理からはずして（セクタカウントをインクリメントして）ステップＳ４５へ戻る。
【００２７】
図４は、実施形態の管理フラグの動作を説明するために示す模式図であり図３の動作と対応している。このテーブルの動作を以下で説明する。
まず、メディア上でリードゲートが開かれた（発行の）タイミングで、そのセクタが入るべきバッファ上のポインタを保持しておく[1]。このポインタは、単純にバッファ上でシーケンシャルに動作するかもしれないし、リンク情報を元にリンクしたり、ラップするかもしれない。これらの事を判定した上で、今リードゲートが開かれたセクタが転送されるべきポインタ情報を保持する。このポインタは、従来手法であれば実際にバッファにセクタが転送される際に管理できていればよく、リードゲートを開くタイミングでは管理する必要が無かったものである。
【００２８】
このとき、リードゲートを開くかどうかは、バッファにそのセクタを格納できるかどうかで判断する。こうしないと、実際にセクタをバッファに格納する時に、そのセクタを格納する場所がまだバッファ上に存在しないという事が発生する。これにより、バッファがフルとなった時にバッファ上ではセクタが歯抜けで存在する状態が発生し、バッファ上のセクタの管理が煩雑となる。バッファ上でそのデータを格納できる場所がある場合のみリードゲートを開くことで、バッファがフルとなった時には必ずバッファ上のセクタは順番に抜けなく揃っている事が保障される。
【００２９】
リードゲートが開くたびに同様の動作を繰り返す。[2]は、4回リードゲートが開いた状態である。ここで、4番目のセクタが今からバッファに転送される事が分かったとする。このセクタは、管理テーブルから判断して、バッファ上でポインタ3の位置に転送される。バッファへの転送が終わった時点で管理フラグを1にセットする。この時点で、そのセクタの手前のセクタ(ポインタ0からポインタ3に入るセクタ)はまだ揃っていないため、このセクタはまだバッファに転送されていないものとして扱う。すなわち、バッファカウンタをインクリメントしない。
【００３０】
その後、ポインタ1、2、3のセクタがバッファに転送されたとする。ここで、ポインタ0に入るセクタがバッファに転送された状態が[3]である。ここにおいて、フラグ管理しているセクタ中の、先頭のセクタが用意できたことになる。このセクタは、順番の整合性の取れたセクタなので、フラグ管理する必要が無くなり、フラグを0にクリアする[4]。また、正しくバッファに格納できたセクタとして、セクタカウンタをインクリメントする(このデータは、ホストに転送する事ができる)。
【００３１】
ここで、フラグ管理しているセクタ中の先頭セクタは、ポインタ1のセクタに移る。
ポインタ1のセクタについても、フラグ管理しているセクタであり、かつフラグが1なので、[4]で説明した事と同様に、フラグのクリア、セクタカウンタのインクリメントを行う[5]。この処理を繰り返していくと、最終的にはフラグ管理テーブルが空の状態になる[6]。ただし、フラグ管理テーブルの書き込みポインタの位置は、最初の位置から移動している。
【００３２】
この例では、フラグ管理テーブルＦのサイズは８としているが、このサイズはレイテンシによって異なる。ここでいうレイテンシとは、あるセクタのリードゲートが開いてからそのセクタがバッファに格納されて、かつそのセクタより前にリードゲートが開いたセクタも全てバッファに格納されるまでに、リードゲートが何セクタ分開くことができるか、という値である。
【００３３】
管理テーブルの情報をセクタの順番の整合性が取れた時点で破棄していく事で、管理テーブルのサイズを最低限に抑えることができる。
（第２の実施形態）
本発明による第２の実施形態を図１乃至図４を参照して説明する。実施形態１と共通する部分は説明を省略する。
例えばアンコレクタブルエラーの発生等により、リトライして再度セクタをメディアから読み出す場合がある。ここで、上述のようにメディアから読み出した順番とは異なる順番でバッファにセクタが転送される場合、アンコレクタブルエラーの発生したセクタよりも後ろのセクタが既にバッファに格納されている可能性がある。その際、管理テーブルの情報を用いることで、既にバッファに転送されているセクタを再度メディアから読み出さずに、ディスク側の処理を軽減できる。例えば、既に読み出されているデータでも、再度メディアから読み出した際にはアンコレクタブルエラーが発生してリトライする必要がある可能性があるが、こういった事態を避けることができる。
【００３４】
上述の説明では、所望のセクタのそれより前のセクタのデータが揃うまではセクタカウンタをインクリメントしないとしたが、NCQ等ではホストは順番を変えて転送する事もできるため、そのような場合には必ずしもセクタカウンタをインクリメントせずに動作させる必要は無い。
【００３５】
メディアから読んだ順番とは無関係にデータがバッファに送られる場合のデータ管理方法を説明した。以上の実施形態の特徴をまとめると以下のようになる。
１．        磁気記録装置において、バッファ上でセクタの順番の整合性を保つための管理テーブルを持つことにより、リードデータの復号が完了した順にバッファに出力できるようにする。（リードゲートを開いた順番とは異なる）
【００３６】
２．        １でいう管理テーブルには、
(1)          対応セクタが格納されるバッファのポインタ
(2)          (1)の情報を管理テーブルのどこに書き込む場所かを示すポインタ
(3)          対応セクタが既にバッファに格納されているかどうかを示すフラグ
(4)          既に使用済みで破棄出来るテーブル情報の位置を示すポインタ
が含まれる
３．        リードゲートを開く際に、対応するセクタが格納できるだけの空きがバッファにあるかどうかを判断し、ここで空きがあればリードゲートを開く
４．        リードゲートを開いた際に、対応するセクタが格納されるバッファのポインタ(1)を前もって保持しておく。セクタが実際にバッファに格納される時に、この保持しておいたポインタ情報を用いる。セクタがバッファに格納されると、それを示すフラグ(3)をセットする
【００３７】
５．        (4)のポインタの位置の次の(3)のフラグがセットされていたら、バッファ上で順番の整合性が取れているので、対応セクタを有効セクタとして扱う
【００３８】
６．        有効セクタとなったセクタに関しては、ポインタ情報を管理対象から外す
７．        リトライ時には上述した情報を用いて、既にメディアから正しく読み出されたセクタについて、再度メディアから読み出す事をせずに、処理を少なくする
【００３９】
なお、この発明は上記実施形態に限定されるものではなく、この外その要旨を逸脱しない範囲で種々変形して実施することができる。管理フラグやポインタに対応するデータの単位（ブロック）はセクタとしているが、このブロックは別の単位でもよい。またセクタのサイズは５１２Ｂでなくてもよい。
【００４０】
また、上記した実施の形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除しても良いものである。さらに、異なる実施の形態に係わる構成要素を適宜組み合わせても良いものである。
【符号の説明】
【００４１】
１…符号化・復号化装置、１０…（符号化・復号化）モジュール、
１１…マルチプレクサ（ＭＵＸ）、１２…記憶デバイス、
１３…エラー訂正（ＥＣ）モジュール、１９…モジュール、２０…ディスク（磁気記録媒体）、
２１…スピンドルモータ（ＳＰＭ）、２２…ヘッド、２３…アーム、
２４…ボイスコイルモータ（ＶＣＭ）、２５…ヘッドアンプＩＣ、２６…回路基板、
２７…リード／ライト（Ｒ／Ｗ）チャネル、２８…ディスクコントローラ、
２９…マイクロプロセッサ（ＣＰＵ）、３０…ホストシステム、
２８０…バッファメモリ。
１１…ネットワークＩ／Ｆ部、１２…チューナ部、１３…入力部、１４…、１５…、１６…、１７…、１８…ハードディスクドライブ部、１９…ディスクドライブ部、２０…データ処理部、２１…エンコーダ部、２２…デコーダ部、２３…フォーマッタ部、２４…ビデオミキシング部、２６…ディスプレイ、２７…Ｉ／Ｆ部、３０…制御部（読出・書込アドレス決定部）、３１…表示部、３２…操作部、Ｒ…リモコン。
【図１】
0005727756.tif 000002
【図２】
0005727756.tif 000003
【図３】
0005727756.tif 000004
【図４】
0005727756.tif 000005