(57)【要約】【課題】  効率的にデータの書き直しを行うことができる記録装置及び記録方法を提供する。【解決手段】  データが書き込まれる記憶領域が設けられた磁気ディスク１０１と、前記記憶領域を区分した各記憶区へのデータの書込み、及び当該記憶区からのデータの読込みを行う磁気ヘッド１０２と、物理アドレスの順に各記憶区へデータを書き込むシーケンシャルな書込みが行われたか否か判断する判断手段１１５と、同一記憶区への書込みを重ねた書込回数をカウントすると共に、前記判断手段でシーケンシャルな書込みが行われたと判断した記憶区の前記書込回数を初期値に戻す書込回数管理手段１１５と、前記書込回数を参照し、前記磁気ヘッドを用いて記憶区が格納するデータを新たに書き直すリフレッシュ手段１１５を具備する。【選択図】      図１
2010044820.tif 000002
【特許請求の範囲】
【請求項１】
データが書き込まれる記憶領域が設けられた磁気ディスクと、
前記記憶領域を区分した複数の記憶区へのデータの書込み、及び当該記憶区からのデータの読込みを行う磁気ヘッドと、
物理アドレスの順に複数の記憶区へデータを書き込むシーケンシャルな書込みが行われたか否か判断する判断手段と、
データの書込みが重複した記憶区での書込回数をカウントすると共に、前記判断手段でシーケンシャルな書込みが行われたと判断した記憶区の前記書込回数を初期値に戻す書込回数管理手段と、
前記書込回数を参照し、前記磁気ヘッドを用いて記憶区に書き込まれたデータを新たに書き直すリフレッシュ手段と
を具備することを特徴とする記録装置。
【請求項２】
前記判断手段は、書込み時期が最も新しい最新データを格納する記憶区に隣接する、データを格納しない記憶区から書込みが開始された場合、シーケンシャルな書込みが行われたと判断することを特徴とする請求項１記載の記録装置。
【請求項３】
前記判断手段は、論理アドレスの順に各記憶区へデータを書き込むコマンドに応じてデータを書き込む場合、シーケンシャルな書込みが行われたと判断することを特徴とする請求項２記載の記録装置。
【請求項４】
前記判断手段は、前記最新データを格納する記憶区の論理アドレスの次の論理アドレスを有する、データを格納しない記憶区から書込みが開始された場合、シーケンシャルな書込みが行われたと判断することを特徴とする請求項３記載の記録装置。
【請求項５】
前記判断手段は、２以上の記憶区にストリームデータを書き込む場合、シーケンシャルな書込みが行われたと判断することを特徴とする請求項１記載の記録装置。
【請求項６】
前記判断手段は、データ書込み要求コマンドを参照し、シーケンシャルな書込みが行われたと判断することを特徴とする請求項１記載の記録装置。
【請求項７】
前記書込回数管理手段は、前記記憶領域内の連続するトラック群単位で書込回数をカウントし、
前記リフレッシュ手段は、前記書込回数を参照し、前記磁気ヘッドを用いて前記トラック群が格納するデータを新たに書き直すことを特徴とする請求項４記載の記録装置。
【請求項８】
前記書込回数管理手段は、前記記憶領域内のトラック単位で書込回数をカウントし、
前記リフレッシュ手段は、前記書込回数を参照し、前記磁気ヘッドを用いて各トラックが格納するデータを新たに書き直すことを特徴とする請求項７記載の記録装置。
【請求項９】
前記書込回数管理手段は、前記記憶領域内のトラックを区分したセクタ単位で書込回数をカウントし、
前記リフレッシュ手段は、前記書込回数を参照し、前記磁気ヘッドを用いて各セクタが格納するデータを新たに書き直すことを特徴とする請求項７記載の記録装置。
【請求項１０】
記憶区に書き込まれたデータを新たに書き直す記録方法であって、
磁気ディスクの記憶領域を区分した複数の記憶区へ物理アドレスの順にデータを書き込むシーケンシャルな書込みが行われたか否か判断し、
データの書込みが重複した記憶区での書込回数をカウントすると共に、前記判断手段でシーケンシャルな書込みが行われたと判断した記憶区の前記書込回数を初期値に戻し、
前記書込回数を参照し、磁気ヘッドを用いて記憶区に書き込まれたデータを新たに書き直すことを特徴とする記録方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録装置及び記録方法に関する。
【背景技術】
【０００２】
近年、コンピュータデータやディジタル映像データなどのストリームデータを格納するディスク装置が広く普及している。これらのディスク装置では、記録媒体であるディスク媒体上に同心円状に複数のトラック（シリンダ）が構成されている。また、各トラックはそれぞれ複数のデータセクタに分割され、このセクタ単位でデータのリード／ライトアクセスが実行される。
【０００３】
また、これらのディスク装置には、記録容量を増大化するために隣接するトラックの間隔（トラックピッチ）を狭く設計して高密度化を図った装置がある。しかしながら、トラックピッチを狭くした場合、隣接するトラック同士の境界近傍で過去のデータの上に新たなデータをオーバーライト（上書き）してしまい、過去のデータが読み出せなくなる可能性がある。
【０００４】
このようなディスク装置の中には、定期的に過去のデータを読み出し、当該データを新たに書き直すリフレッシュ機能を有するものがある。例えば特許文献１には、トラック上にデータをライトした回数を記録し、規定回数に達したトラックの隣接トラックをリードして再ライトする機能を有する装置が開示されている。
【特許文献１】特開２００４−２７３０６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に示す装置では、データがシーケンシャルに書き込まれた記憶領域とデータがシーケンシャルに書き込まれていない記憶領域とを区別してリフレッシュ処理を行うことついて考慮されていない。よって、リフレッシュ処理が不要な記憶領域まで過去のデータの書き直しを実行してしまう虞がある。
【０００６】
そこで、本発明は、効率的にデータの書き直しを行うことができる記録装置及び記録方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述の課題を解決するため、本発明は、データが書き込まれる記憶領域が設けられた磁気ディスクと、前記記憶領域を区分した各記憶区へのデータの書込み、及び各記憶区からのデータの読込みを行う磁気ヘッドと、物理アドレスの順に記憶区へデータを書き込むシーケンシャルな書込みが行われたか否か判断する判断手段と、同一記憶区への書込みを重ねた書込回数をカウントすると共に、前記判断手段でシーケンシャルな書込みが行われたと判断した記憶区の前記書込回数を初期値に戻す書込回数管理手段と、前記書込回数を参照し、前記磁気ヘッドを用いて記憶区が格納するデータを新たに書き直すリフレッシュ手段とを具備することを特徴とする。
【０００８】
また、本発明は、記憶区に書き込まれたデータを新たに書き直す記録方法であって、磁気ディスクの記憶領域を区分した複数の記憶区へ物理アドレスの順にデータを書き込むシーケンシャルな書込みが行われたか否か判断し、データの書込みが重複した記憶区での書込回数をカウントすると共に、前記判断手段でシーケンシャルな書込みが行われたと判断した記憶区の前記書込回数を初期値に戻し、前記書込回数を参照し、磁気ヘッドを用いて記憶区に書き込まれたデータを新たに書き直すことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、効率的にデータの書き直しを行うことができる記録装置を提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態につき図面を参照して説明する。
まず、図１乃至図３を参照して本実施例の記録装置の構成について説明する。図１は、本発明の一実施形態に係る記録装置の構成を示すブロック図である。図２は、ディスクのトラック配置を含むフォーマットを示す概念図である。図３は、本実施例のトラック管理テーブル３００のデータ構造の例を示す図である。
【００１１】
図１に示すように、本実施例の記録装置は例えば磁気ディスク装置（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ；ＨＤＤ）１００等の装置である。ＨＤＤ１００は、ホストシステム２００からの要求に応じてディスク（磁気ディスク）１０１の記録面上へのデータの書込み、及び当該記録面からデータの読込みを実行する記憶装置である。ホストシステム２００は、ＨＤＤ１００を記憶装置として利用するパーソナルコンピュータ等の電子機器である。
【００１２】
ディスク１０１はスピンドルモータ（Ｓｐｉｎｄｌｅ  Ｍｏｔｏｒ；ＳＰＭ）１０３に固定されており、ＳＰＭ１０３が駆動されることにより一定の速度で回転する。ディスク１０１の例えば一方のディスク面は、データが磁気記録される記録面をなしている。ヘッド（磁気ヘッド）１０２はディスク１０１の記録面に対応して配置される。
【００１３】
ヘッド１０２はアクチュエータ１０５の一端に固定されており、アクチュエータ１０５の他端はボイスコイルモータ（Ｖｏｉｃｅ  Ｃｏｉｌ  Ｍｏｔｏｒ；ＶＣＭ）１０４に固定されている。ヘッド１０２は、ＶＣＭ１０４が駆動されることにより、ＶＣＭ１０４の軸を中心とした円弧軌道のうちディスク１０１の面に重なる範囲を移動する。
【００１４】
尚、図１の構成では、単一枚のディスク１０１を備えたＨＤＤ１００を想定しているが、これに限らず、複数のディスク１０１が間隙を有す状態でＳＰＭ１０３に固定された構成であっても構わない。この場合、複数のアクチュエータ１０５が複数のディスク１０１の間隙に合わせて重なった状態でＶＣＭ１０４に固定される。複数のアクチュエータ１０５の一端にはそれぞれヘッド１０２が固定されている。したがってＳＰＭ１０３の駆動に伴い、全てのディスク１０１が同時に回転し、ＶＣＭ１０４の駆動に伴い、全てのヘッド１０２は同時に移動する。
【００１５】
また、図１の構成ではディスク１０１の一方の面が記録面をなしているが、これに限らずディスク１０１の両面がいずれも記録面をなし、両記録面にそれぞれ対応してヘッド１０２が配置されても構わない。
【００１６】
ここで図２に示すように、ディスク１０１の記録面には、複数のトラック２０１が同心円状に配置されている。ホストシステム２００からＨＤＤ１００が受け取ったデータは、当該ホストシステム２００によって指定されたアドレスに応じ、複数のトラック２０１の少なくとも１つに記録される。
【００１７】
また、ディスク１０１の複数のトラック２０１上にはサーボ領域２０２及びデータ領域２０３が交互に且つ等間隔に配置されている。サーボ領域２０２には、ヘッド１０２の位置決めに用いられるサーボ信号が記録されている。データ領域２０３は、ホストシステム２００から転送されるデータを記録するのに用いられる。
【００１８】
再び図１を参照すると、ＣＰＵ１１５はＨＤＤ１００の主コントローラとして機能する。ＣＰＵ１１５はモータドライバ１０６を介してＳＰＭ１０３の起動・停止及び回転速度維持のための制御を行う。ＣＰＵ１１５はまたモータドライバ１０６を介してＶＣＭ１０４を駆動制御することでヘッド１０２を目標とするトラックに移動させ、当該トラックの目標とする範囲内に整定するための制御を行う。
【００１９】
ヘッド１０２を目標とするトラックに移動させる制御はシーク制御と呼ばれ、ヘッド１０２を目標トラックの目標範囲内に整定する制御はヘッド位置決め制御と呼ばれる。また、ＣＰＵ１１５はディスク１０１のトラック２０１に書き込まれたデータを改めて書き直すリフレッシュ制御（リフレッシュ処理）を行う。
【００２０】
ヘッド１０２の位置決めはＳＰＭ１０３の起動後の定常回転状態で行われる。サーボ領域２０２はディスク１０１上に等間隔に配置されているため、ヘッド１０２によってディスク１０１から読み出され、ヘッドＩＣ１０７で増幅されたアナログ信号中には、サーボ領域２０２に記録されたサーボ信号が時間的に等間隔で現れることになる。
【００２１】
リード・ライトＩＣ１０８とゲートアレイ１０９とは、アナログ信号を処理することによってヘッド１０２の位置決めのための信号を生成する。ＣＰＵ１１５は、この信号をもとにモータドライバ１０６を制御することにより、当該モータドライバ１０６からＶＣＭ１０４にヘッド１０２の位置決めのための電流（ＶＣＭ電流）をリアルタイムで供給させる。
【００２２】
また、ＣＰＵ１１５はモータドライバ１０６を介してＳＰＭ１０３及びＶＣＭ１０４を制御する一方で、他のＩＣの制御及びコマンド処理などを実行し、ＨＤＤ全体を制御する。また、ＣＰＵ１１５はＣＰＵバス１１２に接続されている。このＣＰＵバス１１２には、リード・ライトＩＣ１０８、ゲートアレイ１０９、ディスクコントローラ（ＨＤＣ）１１０、ＲＡＭ１１３及びフラッシュＲＯＭ１１４が接続されている。
【００２３】
フラッシュＲＯＭ１１４は、書き換え可能な不揮発性メモリである。尚、フラッシュＲＯＭ１１４の書き換えはＣＰＵ１１５からの制御により行われる。また、フラッシュＲＯＭ１１４には、ＣＰＵ１１５が実行すべきプログラムが予め格納されている。また、フラッシュＲＯＭ１１４の記憶領域の一部は、後述する各トラックの情報を管理するトラック管理テーブル３００や割り当てられた記憶領域毎の書込回数を管理するライトカウントテーブルを格納する。
【００２４】
図３に示すように、例えば本実施例では各トラックに書き込まれたデータをテーブル形式で管理する。このトラック管理テーブル３００は、論理アドレス（ＬＢＡ）、データのサイズ、書込みを開始する物理アドレス、及びリンク情報が登録される。尚、リンク情報は、トラックの物理アドレスとＲＡＭ１１３の論理ブロックとの対応関係を示す属性情報である。このように、本実施例ではトラック管理テーブル３００を参照することで、論理アドレスと物理アドレスを対応付けることができ、ホストシステム２００からのライトコマンドを処理することができる。
【００２５】
再び図１を参照すると、ＲＡＭ１１３は、例えばＣＰＵ１１５が使用する種々の変数を格納するのに用いられる。またＲＡＭ１１３の記憶領域の一部は、ＣＰＵ１１５のワーク領域として用いられる。
【００２６】
リード・ライトＩＣ１０８は、サーボブロック１２１とリード・ライトブロック１２２とを有する。サーボブロック１２１は、サーボ信号の抽出を含む、ヘッド１０２の位置決めに必要な信号処理を行う。リード・ライトブロック１２２は、データの読み出し・書き込みのための信号処理を行う。ゲートアレイ１０９は、サーボブロック１２１によるサーボ信号の抽出のための信号を含む、制御用の諸信号を生成する。
【００２７】
ＨＤＣ１１０は、ＣＰＵバス１１２以外に、ホストシステム２００、ゲートアレイ１０９及びバッファＲＡＭ１１１に接続されている。ＨＤＣ１１０は、ホストブロック１２３、リード・ライトブロック１２４及びバッファブロック１２５を有する。ホストブロック１２３は、ホストシステム２００から転送されるコマンド（ライトコマンド、リードコマンド等）を受信すると共にホストとＨＤＣ１１０との間のデータ転送を制御するホストインタフェース制御機能を有する。リード・ライトブロック１２４は、リード・ライトＩＣ１０８及びゲートアレイ１０９と接続され、リード・ライトＩＣ１０８を介して行われるデータの読み出し・書き込み処理を行う。バッファブロック１２５は、バッファＲＡＭ１１１を制御する。バッファＲＡＭ１１１の記憶領域の一部は、ＨＤＣ１１０（ＨＤＣ１１０内のリード・ライトブロック１２４）を介してディスク１０１に書き込まれるデータ（ライトデータ）を一時格納するためのライトバッファとして用いられる。バッファＲＡＭ１１１の記憶領域の別の一部は、ＨＤＣ１１０を介してディスク１０１から読み出されたデータ（リードデータ）を一時格納するためのリードバッファとして用いられる。
【００２８】
リード・ライトＩＣ１０８、ゲートアレイ１０９、及びＨＤＣ１１０は、それぞれ制御用レジスタを有する。これらの制御用レジスタは、それぞれＣＰＵ１１５のメモリ空間の一部に割り当てられており、ＣＰＵ１１５はこの一部の領域に対してアクセスすることで、制御用レジスタを介してリード・ライトＩＣ１０８、ゲートアレイ１０９、またはＨＤＣ１１０を制御する。
【００２９】
次に、本実施例のＨＤＤ１００におけるデータの読出処理について、図４を参照しながら説明する。図４は、本実施例におけるデータの読出処理の流れを示すフローチャートである。
【００３０】
まず、ＨＤＤ１００のＣＰＵ１１５は、ホストシステムからのデータ読出しコマンドに従い、ヘッド１０２を用いてディスク１０１からアナログ信号を読み出す（Ｓ１１）。次に、ヘッドＩＣ１０７は読み出されたアナログ信号を増幅し、リード・ライトＩＣ１０８に出力する（Ｓ１２）。リード・ライトＩＣ１０８は、ヘッドＩＣ１０７から受けた信号をサーボ信号とデータ信号とに分離し、データ信号をリード・ライトブロック１２２に出力する（Ｓ１３）。
【００３１】
リード・ライトＩＣ１０８内のリード・ライトブロック１２２は、データ信号を復号化し、ＨＤＣ１１０に送る（Ｓ１４）。次に、ＨＤＣ１１０内のリード・ライトブロック１２４は、復号化されたデータ信号をゲートアレイ１０９からの制御用の信号に従って処理することにより、ホストシステム２００に転送すべきデータを生成する（Ｓ１５）。
【００３２】
ＨＤＣ１１０内のバッファブロック１２５は、Ｓ１５で生成されたデータをバッファＲＡＭ１１１に一時的に格納しながら、ホストシステム２００に転送する（Ｓ１６）。
【００３３】
次に、本実施例のＨＤＤ１００におけるデータの書込処理について、図５を参照しながら説明する。図５は、本実施例におけるデータの書込処理の流れを示すフローチャートである。
【００３４】
まず、ＨＤＤ１００のＣＰＵ１１５は、ホストシステムから出力されたデータ読出しコマンドと転送データとをホストブロック１２３で受信する（Ｓ２１）。次に、ＨＤＣ１１０内のバッファブロック１２５は、転送データをバッファＲＡＭ１１１に一時的に格納しながら取り出し、ＨＤＣ１１０内のリード・ライトブロック１２４に出力する。
【００３５】
バッファブロック１２５からデータを受けると、ＨＤＣ１１０内のリード・ライトブロック１２４は、ゲートアレイ１０９で生成したヘッド１０２の位置決めのための制御用信号を参照し、当該データをリード・ライトＩＣ１０８へ送る。リード・ライトＩＣ１０８内のリード・ライトブロック１２２は、ＨＤＣ１１０内のリード・ライトブロック１２４から受けたデータを符号化し、ヘッド１０２に出力する（Ｓ２２）。最後にヘッド１０２は、ＣＰＵ１１５の制御の下、符号化されたデータをディスク１０１に書き込み、処理を終える（Ｓ２３）。
【００３６】
次に、図６及び図７を参照して、本実施例におけるシーケンシャルなデータ書き込み動作について説明する。図６は、ディスク１０１上の隣接トラックにデータＡ、Ｂを書き込んだ状態を示す図である。図７は、ディスク１０１上の隣接トラックＮ＋１から順番に、シーケンシャルにデータを書き込んだ状態を示す図である。
【００３７】
ここで、本実施例におけるシーケンシャルにデータを書き込む状態とは、ライトコマンドに応じて物理アドレスの順に隣接するトラックにデータを書き込む状態を指す。本実施例のＨＤＤ１００では、例えばホストシステム２００からシーケンシャルにデータを書き込むコマンド受けた場合、ＴＶ番組等のストリームデータを１トラック以上の領域に書き込む場合、又は前回書込みを最後に終えたトラックのＬＢＡに連続するＬＢＡを有すトラックから書き込みを始める場合のいずれかの場合にシーケンシャルライトが実行されたとみなす。尚、ＬＢＡは、連続するトラック内に含まれるセクタに順番に割り当てられる。また、本実施例では前回書込みを最後に終えたトラックを発見する方法として、例えば最後に更新された最新データを検知する方法を採用する。最新データを検知することができれば、当該最新データを格納したトラックを、前回書込みを最後に終えたトラックとして発見できる。
【００３８】
図６に示すように、ディスク１０１上のトラックＮ＋１にデータAを書き込んだ後で隣のトラックＮ＋２にデータＢを書き込む場合、記録データＡにおいて、トラックＮ＋２側のデータ部分がオーバーライトされてしまう。このようなオーバーライトが繰り返し行なわれると、トラックＮ＋１の記録データＡの記録信号は弱められ、読出し動作が不可能となる可能性がある。
【００３９】
また、図７に示すように、ディスク１０１上のトラックＮ＋１から順番にシーケンシャルにデータを書き込んだ場合、データＮ＋４が書き込まれた時点でデータＮ＋１〜Ｎ＋３は片側の隣接トラックに１回だけ其々オーバーライトされている。即ち、シーケンシャルライトのみの場合には、片側の隣接トラックに対して最大でも１回だけオーバーライトされるだけなので、トラックピッチが狭くなった場合も記録データの信号が消去する危険性は極めて低い。
【００４０】
そこで、本実施例では、シーケンシャルにデータが書き込まれた記憶領域とシーケンシャルにデータが書き込まれていない記憶領域とを区別してリフレッシュ処理を実行する。これにより、効率よくリフレッシュ処理が実行でき、消費電力の低減・ホストからのコマンドに対するパフォーマンスの低下防止を図ることができる。
【００４１】
次に、図８を参照して本実施例のリフレッシュ処理を実施するか否かの判断を具体的に説明する。図８はトラックグループ毎の書込回数を保持するライトカウントテーブル４００のデータ構造例を示す図である。尚、ライトカウントテーブル４００は例えば図１におけるＲＡＭ１１３の所定の領域に格納される。
【００４２】
図８のライトカウントテーブル４００の例では、説明の簡略化のために、ＨＤＤ１００が１本のヘッド１０２を有すると共に、当該ＨＤＤ１００が１個のトラックグループ（管理トラック範囲）から構成される場合を想定している。
【００４３】
図８に示すように、ライトカウントテーブル４００は管理トラック範囲として設定したトラックグループの物理アドレスと、其々の管理トラック範囲毎にカウントされるライトカウント値を保持している。
【００４４】
尚、トラックグループとは予め定められた一定数のトラックの集合である。ここでは、１トラックグループ当たりのトラック数は１００に設定しているが、これに限らずトラック単位、又はセクタ単位で設定しても良いものとする。トラックグループ内のトラックへのデータの書き込みが行われると、カウントテーブル４００に保持されている書込回数が、書き込みが行われた回数だけインクリメントされる。
【００４５】
尚、図８では物理アドレス０〜９９の管理トラック範囲で１０００回のデータ書込みが実行され、物理アドレス１００〜１９９の管理トラック範囲で１０回のデータ書込みが実行され、物理アドレス２００〜２９９の管理トラック範囲で４０００回のデータ書込みが実行された場合の例を示している。
【００４６】
そして、本実施例のＨＤＤ１００では書込回数が所定の値に到達した場合、リフレッシュ処理の実行が必要であると判断する。しかし、例えば物理アドレス０〜９９の管理トラック範囲でシーケンシャルなデータの書込みが実行された場合、ＨＤＤ１００では当該管理トラック範囲でリフレッシュ処理の実行が不必要であると判断し、ライトカウント値を初期値０にリセットする。
【００４７】
このように、本実施例ではライトカウントテーブル４００を参照することでリフレッシュ処理の実行が必要であるか否かを判断することができる。また、シーケンシャルなデータの書込みが実行された場合、書込みが行われた記憶領域のライトカウント値を初期値にリセットすることで不要なリフレッシュ処理を回避できる。
【００４８】
本実施例では、ライトカウントテーブル４００及びトラック管理テーブル３００は、前述のようにＲＡＭ１１３に格納される。しかし、ＲＡＭ１１３の内容はＨＤＤ１００の電源の遮断により失われるため、例えば必要に応じて（例えばＨＤＤ１００の省電力状態への移行時に）、ディスク１０１の所定領域に保存（退避）する構成を設けても良いものとする。これにより、このディスク１０１の所定領域に保存されたカウントテーブル４００及びトラック管理テーブル３００を含む内容を、ＨＤＤ１００の起動時（電源投入時）に読み出してＲＡＭ１１３内に復元することができる。
【００４９】
次に、図９を参照しながら、本実施例のＨＤＤ１００におけるリフレッシュ処理の流れを説明する。図９は、本実施例のＨＤＤ１００におけるリフレッシュ処理の流れを示すフローチャートである。
【００５０】
まず、ＨＤＤ１００の電源が投入されると、ＣＰＵ１１５はＨＤＤ１００全体を対象とする初期化処理及び起動処理を行う（Ｓ１０１）。起動処理が終わるとＣＰＵ１１５は、ＨＤＣ１１０を介してホストシステム２００からのコマンド待ちループ（Ｓ１０２〜Ｓ１１２）に入る。
【００５１】
Ｓ１０２においてホストシステム２００からのコマンドの受信を確認すると、ＣＰＵ１１５は、Ｓ１０３に分岐することでコマンド待ちループを抜け、ホストシステム２００からのコマンドに応じた処理を実行する。
【００５２】
コマンドを受信すると、ＣＰＵ１１５はホストシステム２００からのコマンドがライトコマンドであるかを判定する（Ｓ１０３）。ホストシステム２００からのコマンドがライトコマンドではない場合（Ｓ１０３のＮｏ）、ＣＰＵ１１５は当該コマンドに応じた処理を実行し（Ｓ１０４）、処理をＳ１０９に進める。
【００５３】
反対に、ホストシステム２００からのコマンドがライトコマンドあれば（Ｓ１０３のＹｅｓ）、ＣＰＵ１１５はシーケンシャルなライトコマンドを受けたか否か、又は書込みを開始するトラックのＬＢＡが前回書込みを終えたトラックのＬＢＡに連続しているか否か判断する（Ｓ１０５）。尚、図９のフローチャートには示されていないが、Ｓ１０５に到達する以前に、ホストシステム２００からのライトコマンドで指定される論理アドレスを物理アドレスに変換するための処理は既に実施されているものとする。
【００５４】
Ｓ１０５でシーケンシャルなライトコマンドを受けた場合、又は書込みを開始するトラックのＬＢＡが前回書込みを終えたトラックのＬＢＡに連続している場合（Ｓ１０５のＹｅｓ）、ＣＰＵ１１５は処理をＳ１０６に移す。
【００５５】
反対に、Ｓ１０５でシーケンシャルなライトコマンドを受けていない場合、又は書込みを開始するトラックのＬＢＡが前回書込みを終えたトラックのＬＢＡに連続していない場合（Ｓ１０５のＮｏ）、ＣＰＵ１１５は現在書き込むデータが、１トラック以上の領域に書き込むストリームデータであるか否か判断する（Ｓ１０６）。
【００５６】
現在書き込むデータが１トラック以上の領域に書き込むストリームデータではない場合（Ｓ１０６のＮｏ）、ＣＰＵ１１５はデータを書き込んだ範囲に含まれる管理トラックのライトカウント値をインクリメントし（Ｓ１０７）、処理をＳ１０９に移す。反対に、現在書き込むデータが、１トラック以上の領域に書き込むストリームデータである場合（Ｓ１０６のＹｅｓ）、ＣＰＵ１１５は、データを書き込んだ範囲に含まれる管理トラックのライトカウント値をリセットし（Ｓ１０８）、処理をＳ１０９に移す。
【００５７】
Ｓ１０４、Ｓ１０７、又はＳ１０８のいずれかの処理が実行されると、ライトコマンドの処理は完了する。そこでＣＰＵ１１５は、レジスタ類の更新、及びビジー状態の解除など、コマンドの終了処理を行い（Ｓ１０９）、コマンド待ちループに戻る。
【００５８】
次に、コマンド待ちループにおけるＳ１０２で、コマンドを受信していないと判定された場合（Ｓ１０２のＮｏ）、アイドル時処理が行われる。アイドル時処理は、トラックに格納されたデータのリフレッシュ処理を含む。ＣＰＵ１１５は、アイドル時にリフレッシュ処理を行うかを判定する（Ｓ１１０）。
【００５９】
Ｓ１１０においてＣＰＵ１１５は、リフレッシュ処理を行わずにホストシステム２００からのコマンドを即座に実行する必要があるか、或いはリフレッシュ処理を回避すべき状況にあるかなどを総合的に判断する。コマンドを即座に実行する必要があるのは、例えば、Ｓ１０９の直後にホストシステム２００からコマンドを受信した場合である。リフレッシュ処理を回避すべき状況は、外部からＨＤＤ１００に一定レベルを超える振動が加わった場合、ＨＤＤ１００の環境温度が、当該ＨＤＤ１００の動作が保証される温度範囲から外れた場合等、ＨＤＤ１００が悪条件下で用いられる場合である。
【００６０】
リフレッシュ処理を行うと判定された場合（Ｓ１１１のＹｅｓ）、ＣＰＵ１１５は、リフレッシュ処理を行う（Ｓ１１２）。反対にトラックリフレッシュ処理を行わないと判定された場合（Ｓ１１１のＮｏ）、ＣＰＵ１１５は処理をＳ１０２に戻す。以後ＣＰＵ１１５は、上述の処理を繰り返す。
【００６１】
上述した通り、本実施例によれば効率的にデータの書き直しを行うことができる記録装置及び記録方法を提供することを実現する。
なお、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【００６２】
【図１】本発明の一実施形態に係る磁気ディスク装置（ＨＤＤ）の構成を示すブロック図。
【図２】本実施例のトラック配置を含むフォーマットを示す概念図。
【図３】本実施例のトラック管理テーブルのデータ構造の例を示す図。
【図４】本実施例におけるデータの読出処理の流れを示すフローチャート。
【図５】本実施例におけるデータの書込処理の流れを示すフローチャート。
【図６】本実施例におけるディスク上の隣接トラックにデータＡ、Ｂを書き込んだ状態を示す図。
【図７】本実施例におけるディスク上の隣接トラックＮ＋１から順番に、シーケンシャルにデータを書き込んだ状態を示す図。
【図８】本実施例のライトカウントテーブルのデータ構造例を示す図。
【図９】本実施例のＨＤＤ１００におけるリフレッシュ処理の流れを示すフローチャート。
【符号の説明】
【００６３】
１００…磁気ディスク装置（ＨＤＤ）
１０１…ディスク
１０２…ヘッド
１０３…スピンドルモータ
１０４…ボイスコイルモータ
１０５…アクチュエータ
１０６…モータドライバ
１０７…ヘッドＩＣ
１０８…リード・ライトＩＣ
１０９…ゲートアレイ
１１０…ＨＤＣ
１１１…バッファＲＡＭ
１１２…ＣＰＵバス
１１３…ＲＡＭ
１１４…フラッシュＲＯＭ
１１５…ＣＰＵ（コントローラ）
１２１…サーボブロック
１２２，１２４…リード・ライトブロック
１２３…ホストブロック
１２５…バッファブロック
２０１…トラック
３００…トラック管理テーブル。
４００…ライトカウントテーブル
【図１】
2010044820.tif 000003
【図２】
2010044820.tif 000004
【図３】
2010044820.tif 000005
【図４】
2010044820.tif 000006
【図５】
2010044820.tif 000007
【図６】
2010044820.tif 000008
【図７】
2010044820.tif 000009
【図８】
2010044820.tif 000010
【図９】
2010044820.tif 000011