説明

磁気記録装置及びそのデータ読み込み方法

【課題】より効率的にデータを読み込みすることができる技術を提供する。
【解決手段】磁気ディスクと駆動装置と磁気ディスク制御装置とより成る磁気記録装置において、所定のブロック単位のデータを前記磁気ディスク上の指定の読み込み範囲から読み込むバッファと、前記ブロック単位毎のデータに対する前記バッファの読み込み箇所を示すポインタとこのポインタの管理フラグとを格納するフラグ管理テーブルとを備え、前記磁気ディスク制御装置は、前記バッファに前記ブロック単位のデータが読み込まれる場合に、このブロック単位に相当する前記ポインタの管理フラグを、セットする磁気記録装置。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、磁気記録装置及びそのデータ読み込み方法に関する。
【背景技術】
【0002】
磁気記憶装置において、ECCの処理時間は増大し続けている。例えばLDPCを用いて復号した場合、一旦復号に失敗したデータについて、何度も繰り返して復号処理を行う場合がある。
【0003】
従来は、セクタデータは、リードゲートを開いた順に返すことで、メディアから読み出したセクタの順番とバッファに転送されるセクタの順番とは一致するように制御していた。このため、LDPCなど、復号完了まで非常に長い時間がかかるケースが存在するような符号を採用した場合、あるセクタが復号に非常に時間がかかる場合、後続のセクタが復号完了していてもバッファに出力することはできなかった。そのためECC制御部に大きなバッファをもち、後続のセクタはバッファへの出力の順番待ちをするように制御していた。
【0004】
または、復号完了した順番にバッファに転送できるようにする場合は、バッファ上に、事前にリードゲートを開く分以上のバッファの連続した空き領域を確保しておく必要があった。
【0005】
関連して特許文献1には、2次元配列データのうち一部分のデータを記憶する記憶装置を備え、他装置からのデータを順に記憶装置に格納して、該記憶装置のデータの順序を入れ替えて読出し制御装置に転送する技術が開示されている。しかしこの先行特許文献は2次元配列データとしてデータを取り扱う事を前提にしており、一般的にデータを取り扱うものではない。
【0006】
一般的にデータを取り扱うことにおいてより効率的なデータ読み込みの要望があるが、かかる要望を実現するための手段は知られていない。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平4−10095号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明は、より効率的にデータを読み込みすることができる技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記課題を解決するために、実施形態によれば磁気記録装置は、磁気ディスクと駆動装置と磁気ディスク制御装置とより成る磁気記録装置において、所定のブロック単位のデータを前記磁気ディスク上の指定の読み込み範囲から読み込むバッファと、前記ブロック単位毎のデータに対する前記バッファの読み込み箇所を示すポインタとこのポインタの管理フラグとを格納するフラグ管理テーブルとを備え、前記磁気ディスク制御装置は、前記バッファに前記ブロック単位のデータが読み込まれる場合に、このブロック単位に相当する前記ポインタの管理フラグを、セットする。
【図面の簡単な説明】
【0010】
【図1】実施形態に関するディスクドライブの要部を示すブロック図。
【図2】この発明の一実施形態を示す機能ブロック構成図。
【図3】同実施形態のデータ管理方法を示すフローチャート。
【図4】同実施形態の管理フラグの動作を説明するために示す模式図。
【発明を実施するための形態】
【0011】
以下図面を参照して、実施形態を説明する。
(第1の実施形態)
本発明による第1の実施形態を図1乃至図4を参照して説明する。
一般的に、データ記憶装置や通信装置では、データの誤りを検出し訂正する誤り訂正機能が組み込まれている。この誤り訂正機能は、例えば1ビット訂正可能なハミング符号(短縮化ハミング符号語)を使用する符号化・復号化方式により実現できる。
【0012】
[ディスクドライブの構成]
図1は、本実施形態の符号化・復号化装置1を適用するデータ記憶装置として、ハードディスクドライブ(以下、単にディスクドライブと表記する)の要部を示すブロック図である。
【0013】
図1に示すように、ディスクドライブは大別して、ヘッド・ディスクアセンブリ(head-disk assembly:HDA)、ヘッドアンプ集積回路(以下、ヘッドアンプIC)25と、回路基板26とから構成されている。HDAは、磁気記録媒体であるディスク20と、スピンドルモータ(SPM)21と、ヘッド22を搭載しているアーム23と、ボイスコイルモータ(VCM)24とを有する。
【0014】
ディスク20は、スピンドルモータ21より回転する。アーム23とVCM24は、アクチュエータを構成している。アクチュエータは、VCM24の駆動により、アーム23に搭載されているヘッド22をディスク20上の指定の位置まで移動制御する。ヘッド22は、リードヘッド素子及びライトヘッド素子を有する。リードヘッド素子は、ディスク20上に記録されているデータを読み出す。ライトヘッド素子は、ディスク20上にデータを書き込む。
【0015】
ヘッドアンプIC25は、リードアンプ及びライトドライバを有する。リードアンプは、リードヘッド素子により読み出されたリード信号を増幅して、リード/ライト(R/W)チャネル27に伝送する。一方、ライトドライバは、R/Wチャネル27から出力されるライトデータに応じたライト電流をライトヘッド素子に伝送する。
【0016】
回路基板26は、R/Wチャネル27と、ディスクコントローラ28と、マイクロプロセッサ(CPU)29とを含む。R/Wチャネル27は、リードデータの信号処理を実行するリードチャネルと、ライトデータの信号処理を実行するライトチャネルとを含む。CPU29は、ドライブのメインコントローラであり、ヘッド22の位置決めを行なうサーボ制御及びデータのリード/ライト制御を実行する。
【0017】
ディスクコントローラ28は、ホストシステム30とR/Wチャネル27との間のデータ転送を制御するインターフェース制御を実行する。ディスクコントローラ28は、本実施形態の符号化・復号化モジュール10の他、後述のフラグ・ポインタマネージャー32に代表されるモジュール19を主要部とする符号化・復号化装置1を含む。ディスクコントローラ28は、DRAMからなるバッファメモリ280を制御し、ホストシステム30から転送されるユーザデータまたはディスク20から読み出されたリードデータをバッファメモリ280に格納する。
【0018】
さて磁気記憶装置において、ECC (Error Checking and Correcting)の処理時間は増大し続けている。例えばLDPC(Low Density Parity Check)を用いて復号した場合、一旦復号に失敗したデータについて、何度も繰り返して復号処理を行う場合がある。
【0019】
従来は、セクタデータは、リードゲートを開いた順に返すことで、メディアから読み出したセクタの順番とバッファに転送されるセクタの順番とは一致するように制御していた。このため、LDPCなど、復号完了まで非常に長い時間がかかるケースが存在するような符号を採用した場合、あるセクタが復号に非常に時間がかかる場合、後続のセクタが復号完了していてもバッファに出力することはできなかった。そのためECC制御部に大きなバッファをもち、後続のセクタはバッファへの出力の順番待ちをするように制御していた。
【0020】
または、復号完了した順番にバッファに転送できるようにする場合は、バッファ上に、事前にリードゲートを開く分以上のバッファの連続した空き領域を確保しておく必要があった。
【0021】
本実施形態はこのような事情を改善するためになされたものである。すなわち、後述する管理テーブルをもち、リードゲートが開くタイミングと、復号が完了するタイミングで動的にこの管理テーブルを更新することで、事前に十分な空きを確保することなしに、復号完了した順にバッファへの転送を行いつつ、バッファ上のデータの整合性を保つことが可能とする。
【0022】
図2は、一実施形態を示す機能ブロック構成図である。ディスクマネージャー31、フラグ・ポインタマネージャー32、バッファマネージャー33とデータバッファ34とからなる。
【0023】
ディスクマネージャー31は、リード/ライト(R/W)チャネル27とディスクコントローラ28の連携体であり、フラグ・ポインタマネージャー32に対してリードゲート発行とデータ転送とを行う構成となっている。
【0024】
フラグ・ポインタマネージャー32は、ディスクコントローラ28にある一つのモジュールであり、バッファマネージャー33へバッファポインタを出力しセクタカウントアップを指示する。
【0025】
バッファマネージャー33は、ディスクコントローラ28にある一つのモジュールであり、フラグ・ポインタマネージャー32の制御のもとにディスクマネージャー31からデータバッファ34へとデータを転送させる。データバッファ34は、バッファメモリ280(以下総称してバッファ)に相当する。なお、フラグ・ポインタマネージャー32は後述するフラグ管理テーブルFを含んでいる。
【0026】
図3は、実施形態のデータ管理方法を示すフローチャートである。ホストシステム30からデータリード要求があると起動され要求が終わると終了する。
ステップS41:リードゲートが発行されたか判定する。発行されていないと判定した場合にはステップS43へ進む。
ステップS42:ステップS41でリードゲートが発行されたと判定した場合には、バッファポインタを保持し、ステップS43へ進む。
ステップS43:バッファにセクタが転送されたか判定する。転送されていないと判定した場合にはステップS41へ戻る。
ステップS44:ステップS43でバッファにセクタが転送されたと判定した場合には、転送セクタのフラグをセットし、ステップS45へ進む。
ステップS45:フラグ管理しているセクタの先頭セクタであるか判定する。先頭セクタでないと判定した場合にはステップS41へ戻る。
ステップS46:ステップS45でフラグ管理しているセクタの先頭セクタであると判定した場合には、転送セクタをフラグ管理からはずして(セクタカウントをインクリメントして)ステップS45へ戻る。
【0027】
図4は、実施形態の管理フラグの動作を説明するために示す模式図であり図3の動作と対応している。このテーブルの動作を以下で説明する。
まず、メディア上でリードゲートが開かれた(発行の)タイミングで、そのセクタが入るべきバッファ上のポインタを保持しておく[1]。このポインタは、単純にバッファ上でシーケンシャルに動作するかもしれないし、リンク情報を元にリンクしたり、ラップするかもしれない。これらの事を判定した上で、今リードゲートが開かれたセクタが転送されるべきポインタ情報を保持する。このポインタは、従来手法であれば実際にバッファにセクタが転送される際に管理できていればよく、リードゲートを開くタイミングでは管理する必要が無かったものである。
【0028】
このとき、リードゲートを開くかどうかは、バッファにそのセクタを格納できるかどうかで判断する。こうしないと、実際にセクタをバッファに格納する時に、そのセクタを格納する場所がまだバッファ上に存在しないという事が発生する。これにより、バッファがフルとなった時にバッファ上ではセクタが歯抜けで存在する状態が発生し、バッファ上のセクタの管理が煩雑となる。バッファ上でそのデータを格納できる場所がある場合のみリードゲートを開くことで、バッファがフルとなった時には必ずバッファ上のセクタは順番に抜けなく揃っている事が保障される。
【0029】
リードゲートが開くたびに同様の動作を繰り返す。[2]は、4回リードゲートが開いた状態である。ここで、4番目のセクタが今からバッファに転送される事が分かったとする。このセクタは、管理テーブルから判断して、バッファ上でポインタ3の位置に転送される。バッファへの転送が終わった時点で管理フラグを1にセットする。この時点で、そのセクタの手前のセクタ(ポインタ0からポインタ3に入るセクタ)はまだ揃っていないため、このセクタはまだバッファに転送されていないものとして扱う。すなわち、バッファカウンタをインクリメントしない。
【0030】
その後、ポインタ1、2、3のセクタがバッファに転送されたとする。ここで、ポインタ0に入るセクタがバッファに転送された状態が[3]である。ここにおいて、フラグ管理しているセクタ中の、先頭のセクタが用意できたことになる。このセクタは、順番の整合性の取れたセクタなので、フラグ管理する必要が無くなり、フラグを0にクリアする[4]。また、正しくバッファに格納できたセクタとして、セクタカウンタをインクリメントする(このデータは、ホストに転送する事ができる)。
【0031】
ここで、フラグ管理しているセクタ中の先頭セクタは、ポインタ1のセクタに移る。
ポインタ1のセクタについても、フラグ管理しているセクタであり、かつフラグが1なので、[4]で説明した事と同様に、フラグのクリア、セクタカウンタのインクリメントを行う[5]。この処理を繰り返していくと、最終的にはフラグ管理テーブルが空の状態になる[6]。ただし、フラグ管理テーブルの書き込みポインタの位置は、最初の位置から移動している。
【0032】
この例では、フラグ管理テーブルFのサイズは8としているが、このサイズはレイテンシによって異なる。ここでいうレイテンシとは、あるセクタのリードゲートが開いてからそのセクタがバッファに格納されて、かつそのセクタより前にリードゲートが開いたセクタも全てバッファに格納されるまでに、リードゲートが何セクタ分開くことができるか、という値である。
【0033】
管理テーブルの情報をセクタの順番の整合性が取れた時点で破棄していく事で、管理テーブルのサイズを最低限に抑えることができる。
(第2の実施形態)
本発明による第2の実施形態を図1乃至図4を参照して説明する。実施形態1と共通する部分は説明を省略する。
例えばアンコレクタブルエラーの発生等により、リトライして再度セクタをメディアから読み出す場合がある。ここで、上述のようにメディアから読み出した順番とは異なる順番でバッファにセクタが転送される場合、アンコレクタブルエラーの発生したセクタよりも後ろのセクタが既にバッファに格納されている可能性がある。その際、管理テーブルの情報を用いることで、既にバッファに転送されているセクタを再度メディアから読み出さずに、ディスク側の処理を軽減できる。例えば、既に読み出されているデータでも、再度メディアから読み出した際にはアンコレクタブルエラーが発生してリトライする必要がある可能性があるが、こういった事態を避けることができる。
【0034】
上述の説明では、所望のセクタのそれより前のセクタのデータが揃うまではセクタカウンタをインクリメントしないとしたが、NCQ等ではホストは順番を変えて転送する事もできるため、そのような場合には必ずしもセクタカウンタをインクリメントせずに動作させる必要は無い。
【0035】
メディアから読んだ順番とは無関係にデータがバッファに送られる場合のデータ管理方法を説明した。以上の実施形態の特徴をまとめると以下のようになる。
1. 磁気記録装置において、バッファ上でセクタの順番の整合性を保つための管理テーブルを持つことにより、リードデータの復号が完了した順にバッファに出力できるようにする。(リードゲートを開いた順番とは異なる)
【0036】
2. 1でいう管理テーブルには、
(1) 対応セクタが格納されるバッファのポインタ
(2) (1)の情報を管理テーブルのどこに書き込む場所かを示すポインタ
(3) 対応セクタが既にバッファに格納されているかどうかを示すフラグ
(4) 既に使用済みで破棄出来るテーブル情報の位置を示すポインタ
が含まれる
3. リードゲートを開く際に、対応するセクタが格納できるだけの空きがバッファにあるかどうかを判断し、ここで空きがあればリードゲートを開く
4. リードゲートを開いた際に、対応するセクタが格納されるバッファのポインタ(1)を前もって保持しておく。セクタが実際にバッファに格納される時に、この保持しておいたポインタ情報を用いる。セクタがバッファに格納されると、それを示すフラグ(3)をセットする
【0037】
5. (4)のポインタの位置の次の(3)のフラグがセットされていたら、バッファ上で順番の整合性が取れているので、対応セクタを有効セクタとして扱う
【0038】
6. 有効セクタとなったセクタに関しては、ポインタ情報を管理対象から外す
7. リトライ時には上述した情報を用いて、既にメディアから正しく読み出されたセクタについて、再度メディアから読み出す事をせずに、処理を少なくする
【0039】
なお、この発明は上記実施形態に限定されるものではなく、この外その要旨を逸脱しない範囲で種々変形して実施することができる。管理フラグやポインタに対応するデータの単位(ブロック)はセクタとしているが、このブロックは別の単位でもよい。またセクタのサイズは512Bでなくてもよい。
【0040】
また、上記した実施の形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除しても良いものである。さらに、異なる実施の形態に係わる構成要素を適宜組み合わせても良いものである。
【符号の説明】
【0041】
1…符号化・復号化装置、10…(符号化・復号化)モジュール、
11…マルチプレクサ(MUX)、12…記憶デバイス、
13…エラー訂正(EC)モジュール、19…モジュール、20…ディスク(磁気記録媒体)、
21…スピンドルモータ(SPM)、22…ヘッド、23…アーム、
24…ボイスコイルモータ(VCM)、25…ヘッドアンプIC、26…回路基板、
27…リード/ライト(R/W)チャネル、28…ディスクコントローラ、
29…マイクロプロセッサ(CPU)、30…ホストシステム、
280…バッファメモリ。
11…ネットワークI/F部、12…チューナ部、13…入力部、14…、15…、16…、17…、18…ハードディスクドライブ部、19…ディスクドライブ部、20…データ処理部、21…エンコーダ部、22…デコーダ部、23…フォーマッタ部、24…ビデオミキシング部、26…ディスプレイ、27…I/F部、30…制御部(読出・書込アドレス決定部)、31…表示部、32…操作部、R…リモコン。

【特許請求の範囲】
【請求項1】
磁気ディスクと駆動装置と磁気ディスク制御装置とより成る磁気記録装置において、
所定のブロック単位のデータを前記磁気ディスク上の指定の読み込み範囲から読み込むバッファと、
前記ブロック単位毎のデータに対する前記バッファの読み込み箇所を示すポインタとこのポインタの管理フラグとを格納するフラグ管理テーブルとを備え、
前記磁気ディスク制御装置は、前記バッファに前記ブロック単位のデータが読み込まれる場合に、このブロック単位に相当する前記ポインタの管理フラグを、セットする磁気記録装置。
【請求項2】
前記磁気ディスク制御装置は、前記フラグ管理テーブル内の管理対象範囲を定め、この管理対象範囲の先頭の管理フラグのセットを判定した場合に、この管理フラグを管理対象範囲から外す請求項1に記載の磁気記録装置。
【請求項3】
前記フラグ管理テーブルのサイズは、レイテンシに基づいて定められる請求項2に記載の磁気記録装置。
【請求項4】
磁気ディスクと駆動装置と磁気ディスク制御装置とより成る磁気記録装置におけるデータ読み込み方法であって、
所定のブロック単位のデータを前記磁気ディスク上の指定の読み込み範囲からバッファに読み込み、
前記ブロック単位毎のデータに対する前記バッファの読み込み箇所を示すポインタとこのポインタの管理フラグとをフラグ管理テーブルに格納し、
前記磁気ディスク制御装置は、前記バッファに前記ブロック単位のデータが読み込まれる場合に、このブロック単位に相当する前記ポインタの管理フラグを、セットするデータ読み込み方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2012−113777(P2012−113777A)
【公開日】平成24年6月14日(2012.6.14)
【国際特許分類】
【出願番号】特願2010−260544(P2010−260544)
【出願日】平成22年11月22日(2010.11.22)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】