(57)【要約】【課題】データ書き込み処理の遅延を抑制する。【解決手段】メインデータを管理するファイルデータＦＤを５１２Ｂ毎に分割して第１サブデータＳＤ０および第２サブデータＳＤ１を含むサブデータＳＤを作成し、得られたサブデータＳＤと予め準備されたダミーデータＤＤとを用いて、ＨＤＤに出力するためのサブライトデータＳＷＤを作成する。このとき、連続する８つのブロックで構成された１つの群に、サブデータＳＤのうちの１つと７個のダミーデータＤＤとが含まれるように、サブデータＳＤの並べ替えおよびダミーデータＤＤの配置が行われる。特に、この例では、最初となる１番目の群に、第１サブデータＳＤ０と７個のダミーデータＤＤとが含まれ、最後となる２番目の群に、第２サブデータＳＤ１と７個のダミーデータＤＤとが含まれるように、サブライトデータＳＷＤが作成される。【選択図】図８
2014116053.tif 000002
【特許請求の範囲】
【請求項１】
保存の対象となる対象データを、予め決められた第１容量毎に複数のブロックデータに分割する分割手段と、
複数の前記第１容量を包含する第２容量を１つの群とした場合に、当該１つの群の中に前記ブロックデータを含むとともに残りの部位にはダミーデータを含むように配列を行うことで、複数の群を含む出力データを作成する作成手段と、
前記出力データを記憶装置に向けて出力する出力手段と
を含む出力データ作成装置。
【請求項２】
前記作成手段は、前記出力データの作成において、前記１つの群のうち先頭となる位置に前記ブロックデータを配置するとともに、当該１つの群のうち先頭以外となる位置に当該ブロックデータとは内容が異なるダミーデータを配置することを特徴とする請求項１記載の出力データ作成装置。
【請求項３】
前記対象データは、特定のデータを前記記憶装置に記憶させる際に、当該特定のデータを管理するために当該記憶装置に記憶させる管理データであることを特徴とする請求項１または２記載の出力データ作成装置。
【請求項４】
保存の対象となる対象データを、予め決められた第１容量毎に複数のブロックデータに分割する分割手段と、
複数の前記第１容量を包含する第２容量を１つの群とした場合に、当該１つの群の中に前記ブロックデータを含むとともに残りの部位にはダミーデータを含むように配列を行うことで、複数の群を含む出力データを作成する作成手段と、
前記作成手段によって作成された前記出力データを記憶する記憶手段と
を含むコンピュータ装置。
【請求項５】
前記記憶手段が、アドバンストフォーマット（Advanced Format）に基づくセクタ構造を有するハードディスクドライブにて構成され、
前記第２容量が前記第１容量の偶数倍であることを特徴とする請求項４記載のコンピュータ装置。
【請求項６】
コンピュータに、
保存の対象となる対象データを、予め決められた第１容量毎に複数のブロックデータに分割する機能と、
複数の前記第１容量を包含する第２容量を１つの群とした場合に、当該１つの群の中に前記ブロックデータを含むとともに残りの部位にはダミーデータを含むように配列を行うことで、複数の群を含む出力データを作成する機能と、
前記出力データを記憶装置に向けて出力する機能と
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、出力データ作成装置、コンピュータ装置およびプログラムに関する。
【背景技術】
【０００２】
ハードディスクドライブ等の記憶装置においては、予め決められた大きさの物理セクタを単位として、ハードディスクに対するデータの書き込み／読み出しが行われる。また、ハードディスクドライブ等の記憶装置とホスト装置との間では、予め決められた大きさの論理セクタを単位として、データの授受が行われる。
【０００３】
従来においては、論理セクタおよび物理セクタを同じ大きさ（例えば５１２Ｂ）としていたが、最近では、論理セクタの大きさのｎ倍（ｎは２以上の整数）となるように物理セクタの大きさを設定する（例えば論理セクタの大きさを５１２Ｂとし、物理セクタの大きさを５１２Ｂの８倍となる４ＫＢとする）技術が採用されてきている（特許文献１参照）。なお、この技術は、一般に、ビッグセクタ（Big Sector）あるいはアドバンストフォーマット（Advanced Format：以下ではＡＦと表記する）と呼ばれている。
【０００４】
また、ＡＦを採用した記憶装置では、ｎ個の論理セクタの大きさを含む１つの物理セクタに対し、例えばｎ−１個の論理セクタの大きさを有するデータ（１つの物理セクタの大きさよりも小さいデータ）を書き込む際に、この物理セクタに既に書き込まれている記録済のデータを読み出し、読み出した記録済のデータとこれから書き込むデータとを合成し、得られた合成データをこの物理セクタに書き込む動作（リードモディファイライト（Read Modify Write）と呼ぶ）を行うことで、この物理セクタのうち今回のデータの書き込み対象となっていない領域に既に書き込まれているデータの破壊を防いでいる（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１４６４８１号公報
【特許文献２】特開２００９−３２３２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、データ書き込み処理の遅延を抑制することを目的とする。
【課題を解決するための手段】
【０００７】
請求項１記載の発明は、保存の対象となる対象データを、予め決められた第１容量毎に複数のブロックデータに分割する分割手段と、複数の前記第１容量を包含する第２容量を１つの群とした場合に、当該１つの群の中に前記ブロックデータを含むとともに残りの部位にはダミーデータを含むように配列を行うことで、複数の群を含む出力データを作成する作成手段と、前記出力データを記憶装置に向けて出力する出力手段とを含む出力データ作成装置である。
【０００８】
請求項２記載の発明は、前記作成手段は、前記出力データの作成において、前記１つの群のうち先頭となる位置に前記ブロックデータを配置するとともに、当該１つの群のうち先頭以外となる位置に当該ブロックデータとは内容が異なるダミーデータを配置することを特徴とする請求項１記載の出力データ作成装置である。
請求項３記載の発明は、前記対象データは、特定のデータを前記記憶装置に記憶させる際に、当該特定のデータを管理するために当該記憶装置に記憶させる管理データであることを特徴とする請求項１または２記載の出力データ作成装置である。
【０００９】
請求項４記載の発明は、保存の対象となる対象データを、予め決められた第１容量毎に複数のブロックデータに分割する分割手段と、複数の前記第１容量を包含する第２容量を１つの群とした場合に、当該１つの群の中に前記ブロックデータを含むとともに残りの部位にはダミーデータを含むように配列を行うことで、複数の群を含む出力データを作成する作成手段と、前記作成手段によって作成された前記出力データを記憶する記憶手段とを含むコンピュータ装置である。
【００１０】
請求項５記載の発明は、前記記憶手段が、アドバンストフォーマット（Advanced Format）に基づくセクタ構造を有するハードディスクドライブにて構成され、前記第２容量が前記第１容量の偶数倍であることを特徴とする請求項４記載のコンピュータ装置である。
【００１１】
請求項６記載の発明は、コンピュータに、保存の対象となる対象データを、予め決められた第１容量毎に複数のブロックデータに分割する機能と、複数の前記第１容量を包含する第２容量を１つの群とした場合に、当該１つの群の中に前記ブロックデータを含むとともに残りの部位にはダミーデータを含むように配列を行うことで、複数の群を含む出力データを作成する機能と、前記出力データを記憶装置に向けて出力する機能とを実現させるプログラムである。
【発明の効果】
【００１２】
請求項１記載の発明によれば、本構成を有していない場合と比較して、データ書き込み処理の遅延を抑制することができる。
請求項２記載の発明によれば、本構成を有していない場合と比較して、ブロックデータをより速く読み出すことが可能になる。
請求項３記載の発明によれば、本構成を有していない場合と比較して、管理データの書き込み処理の遅延を抑制することが可能になる。
請求項４記載の発明によれば、本構成を有していない場合と比較して、データ書き込み処理の遅延を抑制することができる。
請求項５記載の発明によれば、本構成を有していない場合と比較して、対象となるコンピュータ装置の種類を拡大することができる。
請求項６記載の発明によれば、本構成を有していない場合と比較して、データ書き込み処理の遅延を抑制することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態が適用されるコンピュータ装置の構成を示した図である。
【図２】コンピュータ装置に設けられたＨＤＤの構成を説明するための図である。
【図３】ＨＤＤにおける磁気ディスクの上面図である。
【図４】磁気ディスクにおけるセクタの構成を説明するための図である。
【図５】セクタ構造を説明するための図である。
【図６】ＨＤＤにデータを書き込むための前処理として実行される、コンピュータ装置におけるデータ出力処理の手順を示すフローチャートである。
【図７】データ出力処理におけるメインライトデータの作成手順の一例を説明するための図である。
【図８】データ出力処理におけるサブライトデータの作成手順の一例を説明するための図である。
【図９】データ出力処理に基づくライトデータが書き込まれたＨＤＤにおけるデータ配置の一例を説明するための図である。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
図１は、本実施の形態が適用されるコンピュータ装置１の構成を説明するための図である。
このコンピュータ装置１は、各種プログラムを実行するＣＰＵ（Central Processing Unit）２と、各種プログラムやデータ等を記憶するＨＤＤ（Hard Disk Drive）３と、ＨＤＤ３から読み出したプログラムやＣＰＵ２によるプログラムの実行に伴って一時的に生じるデータ等を記憶するＲＡＭ（Random Access Memory）４と、コンピュータ装置１の外部に設けられた機器との間でデータの授受を行うネットワークインターフェイス５と、ユーザからの入力を受け付ける入力デバイス６と、コンピュータ装置１の内部においてデータの転送を行うＤＭＡＣ（Direct Memory Access Controller）７と、これらＣＰＵ２、ＨＤＤ３、ＲＡＭ４、ネットワークインターフェイス５、入力デバイス６およびＤＭＡＣ７を接続する内部バス８とを備えている。ここで、本実施の形態では、ＣＰＵ２が分割手段および作成手段としての機能を有しており、ＨＤＤ３が記憶装置あるいは記憶手段としての機能を有しており、ＤＭＡＣ７が出力手段としての機能を有している。ただし、ＣＰＵ２が出力手段の機能をさらに有していてもかまわない。
【００１５】
図２は、図１に示すコンピュータ装置１に設けられたＨＤＤ３の構成を説明するための図である。ここで、図２（ａ）はＨＤＤ３の内部構成を説明するための図であり、図２（ｂ）はＨＤＤ３における記憶領域の配分を模式的に示した図である。
【００１６】
図２（ａ）に示すように、本実施の形態のＨＤＤ３は、ＨＤＤ３の動作および内部バス８（図１参照）を介したデータの授受を制御するための機能を有する制御基板１０と、データの記憶およびデータの読み書きを行うための機能を有するディスクエンクロージャ（Disk Enclosure：以下ではＤＥと表記する）２０とを備えている。
【００１７】
これらのうち、制御基板１０は、後述する複数の機能ブロックを搭載してなるＳｏＣ（System-on-a-Chip）１１と、ＤＥ２０をサーボ制御するサーボコントローラ１２と、データの読み書き動作においてデータをバッファするデータバッファ１３と、ＨＤＤ３に与えられる衝撃を検知するショックセンサ１４と、ＳＡＴＡ（Serial Advanced Technology Attachment）で定義されたインターフェイスによって他の機器と通信を行うＳＡＴＡコネクタ１５とを備えている。また、ＳｏＣ１１は、ＨＤＤ３の全体の動作を制御するＭＣＵ（Micro Control Unit）１１Ａと、ＨＤＤ３におけるデータの授受および読み書きを制御するＨＤＣ（Hard Disk Controller）１１Ｂと、サーボ信号に処理を施してサーボデータを出力するＲＤＣ（Read Channel）１１Ｃとを有している。
【００１８】
一方、ＤＥ２０は、回転可能に設けられた磁気ディスク２１と、磁気ディスク２１を回転駆動するスピンドルモータ２２と、回転する磁気ディスク２１に対してデータの読み書きを行う磁気ヘッド２３と、回転する磁気ディスク２１に対して磁気ヘッド２３を位置決めするＶＣＭ（Voice Coil Motor）２４とを有している。また、スピンドルモータ２２およびＶＣＭ２４は、制御基板１０に設けられたサーボコントローラ１２によって制御される。
【００１９】
本実施の形態のＨＤＤ３では、制御基板１０に設けられたＨＤＣ１１Ｂが、ＨＤＤ３の外部に設けられたホスト（例えばＤＭＡＣ７）との間で、論理セクタを単位としてデータの授受を行う一方、ＨＤＤ３の内部に設けられたＤＥ２０との間で、物理セクタを単位としてデータの授受を行う。本実施の形態において、論理セクタの大きさは５１２Ｂであり、物理セクタの大きさは論理セクタの大きさの８倍となる４ＫＢ（４０９６Ｂ）である。
【００２０】
また、図２（ｂ）に示すように、本実施の形態のＨＤＤ３における記憶領域は、第１の記憶容量に設定された第１記憶領域Ｄ１と、第１の記憶容量よりも少ない第２の記憶容量に設定された第２記憶領域Ｄ２とに分けられている。この例において、第１記憶領域Ｄ１には、ＣＰＵ２（図１参照）が実行する各種プログラムや各種データ（以下では、これらを総称してユーザデータと呼ぶ）が記憶され、第２記憶領域Ｄ２には、第１記憶領域Ｄ１に格納されたユーザデータの位置情報など、ユーザデータを管理するために必要な、特定のデータの一例としてのファイルデータ（ＦＡＴ（File Allocation Table）等を含む）が記憶される。
【００２１】
図３は、図２に示すＨＤＤ３における磁気ディスク２１の上面図である。また、図３には、磁気ディスク２１の表面に設けられる各種データ領域を模式的に示している。
この磁気ディスク２１は、円盤状の形状を有しており、その中央部には磁気ディスク２１の表裏を貫通する円形状の孔が形成されている。
【００２２】
図３に示す磁気ディスク２１の表面には、磁気ヘッド２３（図２参照）を用いたデータ（上記ユーザデータおよびファイルデータの両者を含む）の読み書きを行うための読み書きデータ記憶領域αと、磁気ヘッド２３を用いたデータの読み書きにおいて磁気ヘッド２３の位置決めに用いられるデータ（位置決めデータという）を予め記憶する位置決めデータ記憶領域βとが設けられている。この例において、位置決めデータ記憶領域βは、磁気ディスク２１の表面に、放射状に複数設けられている。また、磁気ディスク２１の表面には、同心円状に複数のトラックＴが設けられる。なお、図示はしていないが、図３に示す磁気ディスク２１の裏面にも、表面側と同じ構造を有する読み書きデータ記憶領域αと位置決めデータ記憶領域βとが設けられている。そして、図２に示す第１記憶領域Ｄ１および第２記憶領域Ｄ２は、それぞれが、これら読み書きデータ記憶領域αおよび位置決めデータ記憶領域βを含んで構成される。
【００２３】
ここで、磁気ディスク２１の読み書きデータ記憶領域αでは、各トラックＴが、周方向に沿って配列された複数のセクタＳによって構成されている。
【００２４】
これに対し、磁気ディスク２１の位置決めデータ記憶領域βには、位置決めデータとして、例えば、磁気ヘッド２３による読み取り時において、検出信号の利得調整に用いられるＡＧＣ（Auto Gain Control）パターン、サーボ信号の検出に用いられる検出パターン、サーボ・トラックのシリンダ情報あるいはセクタ情報の検出に用いられるアドレス・パターン、そして目的とするトラックＴに磁気ヘッド２３を移動させた後にそのトラックＴ上に磁気ヘッド２３を追従させるのに用いられるバースト・パターン（いずれも図示せず）等を含むサーボ・パターンが、周方向に沿って記憶されている。
【００２５】
図４は、図３に示す磁気ディスク２１におけるセクタＳの構成を説明するための図である。なお、ここでは、磁気ディスク２１のａ番目のトラックＴａにおけるセクタＳの構成を例示している。
このａ番目のトラックＴａには、周方向に沿って複数個のセクタＳが並べて配置されている。そして、各セクタＳは、磁気ディスク２１の回転方向上流側から順に、セクタＳの開始地点を示す同期データやセクタＳの番号および位置を特定するためのアドレスデータ等を記憶する先頭データ記憶領域Ａと、保存の対象となるデータ（ユーザデータやファイルデータ）を記憶する保存データ記憶領域Ｂと、エラー訂正用のＥＣＣ（Error Correction Code）等を記憶する後尾データ記憶領域Ｃとを含んでいる。また、隣接する２つのセクタＳの間には、セクタＳの区切りを示すギャップ領域Ｇが設けられている。
【００２６】
次に、セクタＳにおける保存データ記憶領域Ｂの構造について説明を行う。
本実施の形態では、各セクタＳにおける保存データ記憶領域Ｂの記憶容量が、従来から用いられてきた５１２Ｂ（論理セクタの大きさと同じ）ではなく４ＫＢ（４０９６Ｂ：物理セクタの大きさと同じ）に設定された、所謂アドバンストフォーマット（Advanced Format：ＡＦ）を採用している。このアドバンストフォーマットは、２０１０年に、国際ディスクドライブ協会（International Disk Drive Equipment and Materials Association：ＩＤＥＭＡ）において策定されたものである。
【００２７】
図５は、セクタ構造を説明するための図である。より具体的に説明すると、図５（ａ）は従来のセクタ構造を説明するための図であり、図５（ｂ）はＡＦを採用した本実施の形態のセクタ構造を説明するための図である。ここで、以下の説明においては、図５（ａ）に示す従来のセクタ構造におけるセクタＳを、スモールセクタＳＳと呼ぶこととし、図５（ｂ）に示す本実施の形態のセクタ構造におけるセクタＳを、ラージセクタＬＳと呼ぶこととする。そして、図５（ａ）には８つのスモールセクタＳＳを示しており、図５（ｂ）には１つのラージセクタＬＳを示している。
【００２８】
図５（ａ）に示すスモールセクタＳＳでは、保存データ記憶領域Ｂの大きさが論理セクタの大きさと同じ５１２Ｂに設定されており、図５（ｂ）に示すラージセクタＬＳでは、保存データ記憶領域Ｂの大きさが、論理セクタの大きさの８倍となる４ＫＢ（４０９６Ｂ）に設定されている。そして、図５（ｂ）に示すラージセクタＬＳにおける保存データ記憶領域Ｂは、５１２Ｂの記憶容量を単位とする８つの領域に分けられている。以下の説明においては、これら８つの領域を、磁気ディスク２１の回転方向上流側から順に、第１保存領域Ｂ０、第２保存領域Ｂ１、第３保存領域Ｂ２、第４保存領域Ｂ３、第５保存領域Ｂ４、第６保存領域Ｂ５、第７保存領域Ｂ６および第８保存領域Ｂ７と呼ぶことにする。
【００２９】
なお、本実施の形態では、ラージセクタＬＳの保存データ記憶領域Ｂにおける１つの保存領域（例えば第１保存領域Ｂ０）の大きさ（５１２Ｂ）が、第１容量に対応しており、ラージセクタＬＳの保存データ記憶領域Ｂの大きさ（４ＫＢ＝４０９６Ｂ）が、第２容量に対応している。
【００３０】
ここで、例えば４ＫＢ（５１２Ｂ×８）の容量を有する書き込みデータを、ＨＤＤ３に記憶させようとした場合について考えてみる。図５（ａ）に示す従来のセクタ構造では、８つのスモールセクタＳＳが必要となり、各スモールセクタＳＳの保存データ記憶領域Ｂに、それぞれが５１２Ｂの大きさを有するデータ♯０〜♯７が記憶される。これに対し、図５（ｂ）に示す本実施の形態のセクタ構造では、１つのラージセクタＬＳで済むことになり、１つのラージセクタＬＳの保存データ記憶領域Ｂを構成する第１保存領域Ｂ０〜第８保存領域Ｂ７に、それぞれが５１２Ｂの大きさを有するデータ♯０〜♯７が記憶される。
【００３１】
このとき、図５（ａ）に示す従来のセクタ構造では、４ＫＢの書き込みデータを記憶させるために８つの保存データ記憶領域Ｂが必要となり、これに付随して８つの先頭データ記憶領域Ａ、８つの後尾データ記憶領域Ｃおよび８つのギャップ領域Ｇが必要とされる。これに対し、図５（ｂ）に示す本実施の形態のセクタ構造では、同じ４ＫＢのユーザデータを記憶させるために１つの保存データ記憶領域Ｂが必要となり、これに付随して１つの先頭データ記憶領域Ａ、１つの後尾データ記憶領域Ｃおよび１つのギャップ領域Ｇが必要とされる。このとき、ラージセクタＬＳにおける先頭データ記憶領域Ａの大きさは、スモールセクタＳＳにおける先頭データ記憶領域Ａの８個分の大きさよりも小さく、ラージセクタＬＳにおける後尾データ記憶領域Ｃの大きさは、スモールセクタＳＳにおける後尾データ記憶領域Ｃの８個分の大きさよりも小さい。また、ラージセクタＬＳ同士の間に配置されるギャップ領域Ｇの大きさは、スモールセクタＳＳ同士の間に配置されるギャップ領域Ｇの８個分の大きさよりも小さい。したがって、本実施の形態のように、セクタ構造としてＡＦを採用することにより、従来のセクタ構造と比較して、磁気ディスク２１（図２参照）の全記憶領域に占める保存データ記憶領域Ｂの割合（セクタ効率）が高まる。
【００３２】
ここで、ホスト側（ＤＭＡＣ７等）とＨＤＤ３との間のデータの授受は、論理セクタの大きさである５１２Ｂを単位として行われる。そして、従来のセクタ構造（スモールセクタＳＳ）を有するＨＤＤ３では、ＨＤＤ３における物理セクタの大きさを論理セクタの大きさと同じ５１２Ｂに設定し、５１２Ｂを単位として磁気ディスク２１に対するデータの読み書きを行っていた。これに対し、本実施の形態のセクタ構造（ラージセクタＬＳ（ＡＦ））を有するＨＤＤ３では、ＨＤＤ３における物理セクタの大きさを論理セクタの大きさの８倍とし、４ＫＢを単位として磁気ディスク２１に対するデータの読み書きを行っている。
【００３３】
では、本実施の形態のセクタ構造（ラージセクタＬＳ（ＡＦ））を採用したＨＤＤ３におけるデータの書き込み処理について、簡単に説明しておく。なお、ここでは、図５（ｂ）に示す１つのラージセクタＬＳにおける保存データ記憶領域Ｂにデータを書き込む場合を例とする。このとき、この保存データ記憶領域Ｂを構成する第１保存領域Ｂ０〜第８保存領域Ｂ７には、既にデータ♯０〜♯７が記憶されているものとする。
【００３４】
まず、このラージセクタＬＳに対し、保存データ記憶領域Ｂと同じ大きさを有する４ＫＢ（４０９６Ｂ）のデータを書き込む場合について説明を行う。
この場合において、新たに書き込む４ＫＢのデータは、それぞれが５１２Ｂの大きさに分割された８つのデータとしてＨＤＤ３に入力される。そして、８つに分割されたデータは、図５（ｂ）に示すラージセクタＬＳの保存データ記憶領域Ｂを構成する第１保存領域Ｂ０〜第８保存領域Ｂ７にそれぞれ書き込まれる。したがって、この保存データ記憶領域Ｂに既に書き込まれていたデータ♯０〜♯７は、それぞれが新たなデータによって上書きされる。
【００３５】
続いて、このラージセクタＬＳに対し、例えば保存データ記憶領域Ｂの半分の大きさを有する２ＫＢ（２０４８Ｂ）のデータを書き込む場合について説明を行う。
この場合において、新たに書き込む２ＫＢのデータは、それぞれが５１２Ｂの大きさに分割された４つのデータとしてＨＤＤ３に入力される。次に、図５（ｂ）に示すラージセクタＬＳの保存データ記憶領域Ｂを構成する第１保存領域Ｂ０〜第８保存領域Ｂ７から、記憶済の８つのデータ♯０〜♯７が読み出される。次いで、読み出した８つのデータ♯０〜♯７と、これから書き込む４つのデータとの合成が行われる。なお、この例では、読み出した８つのデータ♯０〜♯７のうち前半の４つのデータ♯０〜♯３が、これから書き込む４つのデータによって置き換えられるものとする。そして、合成によって得られた８つのデータ（前半の４つは新たに書き込むデータ、後半の４つは既に書き込まれていた４つのデータ♯４〜♯７）は、図５（ｂ）に示すラージセクタＬＳの保存データ記憶領域Ｂを構成する第１保存領域Ｂ０〜第８保存領域Ｂ７にそれぞれ書き込まれる。したがって、この保存データ記憶領域Ｂに既に書き込まれていたデータ♯０〜♯７は、データ♯０〜♯３がそれぞれ新たなデータによって上書きされ、データ♯４〜♯７は、同じ内容のデータ♯４〜♯７によって上書きされる。
【００３６】
本実施の形態のセクタ構造（ラージセクタＬＳ（ＡＦ））を採用したＨＤＤ３では、論理セクタの大きさ（５１２Ｂ）と物理セクタの大きさ（４ＫＢ）とが一致していないため、例えば論理セクタ（５１２Ｂ）１個分のデータをＨＤＤ３における１つの物理セクタにそのまま書き込んでしまうと、この物理セクタにおける残りのデータ（この例では論理セクタ７個分）が、上書きによって消去されてしまうことになる。このため、本実施の形態では、論理セクタ８個分のデータを１つの物理セクタに書き込む場合にはそのまま上書きする書き込み処理を行う一方、論理セクタ８個未満（１個以上７個以下）のデータを１つの物理セクタに書き込む場合には、この物理セクタに既に書き込まれているデータを読み出すとともに、読み出した記録済のデータとこれから書き込むデータとを合成し、得られた合成データをこの物理セクタに上書き（書き戻し）する書き込み処理を行っている。なお、以下の説明においては、前者の書き込み処理を「ダイレクトオーバーライト処理」と呼び、後者の書き込み処理を「リードモディファイライト処理」と呼ぶ。
【００３７】
では次に、図１に示すコンピュータ装置１における、ＨＤＤ３に対するデータの書き込み処理について説明を行う。
図６は、ＨＤＤ３にデータを書き込むための前処理として実行される、コンピュータ装置１におけるデータ出力処理の手順を示すフローチャートである。なお、この処理は、ＨＤＤ３から読み出されるとともにＲＡＭ４に展開されたプログラムを、ＣＰＵ２が実行することによって行われる。
【００３８】
ＨＤＤ３に対するユーザデータ（User Data）ＵＤの書き込み要求が発生すると（ステップ１０）、ＣＰＵ２は、書き込み要求があったユーザデータＵＤを、論理セクタの大きさ（ここでは５１２Ｂ）毎に分割するとともに、それぞれにＬＢＡ（Logical Block Addressing）を付与することで、複数のメインデータＭＤを作成する（ステップ２０）。なお、以下の説明においては、複数のメインデータＭＤに付与されるＬＢＡを、ホスト側アドレスｈＬＢＡと呼ぶ。
【００３９】
次に、ＣＰＵ２は、ステップ２０で得られた複数のメインデータＭＤに対し、ホスト側アドレスｈＬＢＡを、ＨＤＤ３におけるＬＢＡであるドライブ側アドレスｄＬＢＡに変換するアドレス変換を施して、メインライトデータ（Main Write Data）ＭＷＤを作成する（ステップ３０）。
【００４０】
また、ＣＰＵ２は、ステップ２０で得られた複数のメインデータＭＤに基づき、これら複数のメインデータＭＤを管理するためのファイルデータ（File Data）ＦＤを作成する（ステップ４０）。次いで、ＣＰＵ２は、ステップ４０で得られたファイルデータＦＤを、論理セクタの大きさ（ここでは５１２Ｂ）毎に分割するとともに、それぞれにホスト側アドレスｈＬＢＡを付与することで、複数のサブデータＳＤを作成する（ステップ５０）。続いて、ＣＰＵ２は、ステップ５０で得られた複数のサブデータＳＤに対し、ホスト側アドレスｈＬＢＡをドライブ側アドレスｄＬＢＡに変換するアドレス変換を施して、サブライトデータ（Sub Write Data）ＳＷＤを作成する（ステップ６０）。
【００４１】
そして、ＣＰＵ２は、ステップ３０で得られたメインライトデータＭＷＤおよびステップ６０で得られたサブライトデータＳＷＤを、１まとまりのライトデータ（write Data）ＷＤとして、ＤＭＡＣ７を介してＨＤＤ３に出力させ（ステップ７０）、一連の処理を完了する。
その後、ＨＤＤ３に出力されたライトデータＷＤは、その後、ＨＤＤ３において磁気ディスク２１に書き込まれる。
【００４２】
ここで、メインライトデータＭＷＤに付与されるホスト側アドレスｈＬＢＡおよびドライブ側アドレスｄＬＢＡは、ＨＤＤ３における第１記憶領域Ｄ１（図２参照）に設定されたＬＢＡから選ばれている。また、サブライトデータＳＷＤに付与されるホスト側アドレスｈＬＢＡおよびドライブ側アドレスｄＬＢＡは、ＨＤＤ３における第２記憶領域Ｄ２（図２参照）に設定されたＬＢＡから選ばれている。
【００４３】
図７は、図６に示すデータ出力処理におけるメインライトデータＭＷＤの作成手順の一例を説明するための図である。ここで、図７（ａ）はステップ１０で書き込み要求がなされたユーザデータＵＤを、図７（ｂ）はステップ２０で得られたメインデータＭＤを、図７（ｃ）はステップ３０で得られたメインライトデータＭＷＤを、それぞれ例示している。
【００４４】
この例において、ステップ１０で書き込み要求がなされたユーザデータＵＤ（図７（ａ）参照）は、５０００Ｂの容量を有しているものとする。このため、このユーザデータＵＤを、ステップ２０において論理セクタの大きさ（５１２Ｂ）毎に分割して得られるメインデータＭＤは、図７（ｂ）に示すように１０個のデータで構成される。ここでは、メインデータＭＤ０を構成する１０個のデータを、配列の先頭側から順に、第１メインデータＭＤ０、第２メインデータＭＤ１、第３メインデータＭＤ２、第４メインデータＭＤ３、第５メインデータＭＤ４、第６メインデータＭＤ５、第７メインデータＭＤ６、第８メインデータＭＤ７、第９メインデータＭＤ８、第１０メインデータＭＤ９、とそれぞれ呼ぶことにする。また、この例において、メインデータＭＤを構成する第１メインデータＭＤ０〜第１０メインデータＭＤ９には、ホスト側アドレスｈＬＢＡとしてｈＬＢＡ８０００〜ｈＬＢＡ８００９が付与される。
【００４５】
では、図７（ｃ）を参照しつつ、ステップ３０におけるメインライトデータＭＷＤの作成手順について、具体的に説明を行う。
本実施の形態では、ＣＰＵ２が、連続する８つのブロックを１つの群とし、この群を単位として、メインライトデータＭＷＤの作成を行う。これは、上述したように、本実施の形態のＨＤＤ３におけるセクタ構造がＡＦに基づくものであり、１つのラージセクタＬＳにおける保存データ記憶領域Ｂが、連続する８つの保存領域（第１保存領域Ｂ０〜第８保存領域Ｂ７）で構成されていること、換言すれば、物理セクタの大きさが論理セクタの大きさの８個分に設定されていることによる。
【００４６】
そして、ＣＰＵ２は、メインデータＭＤを構成する第１メインデータＭＤ０〜第１０メインデータＭＤ９を順次配列して、メインライトデータＭＷＤを作成する。また、ＣＰＵ２は、メインデータＭＤからメインライトデータＭＷＤを作成するにあたり、メインデータＭＤ（第１メインデータＭＤ０〜第１０メインデータＭＤ９）に付与されていたホスト側アドレスｈＬＢＡをドライブ側アドレスｄＬＢＡに変換するが、その際、ＣＰＵ２は、メインライトデータＭＷＤを構成する第１メインデータＭＤ０〜第１０メインデータＭＤ９に、変換前と同じ番号となるアドレスを付与する。すなわち、第１メインデータＭＤ０〜第１０メインデータＭＤ９には、ドライブ側アドレスｄＬＢＡとしてｄＬＢＡ８０００〜ｄＬＢＡ８００９が付与される。
【００４７】
図８は、図７に示すデータ出力処理におけるサブライトデータＳＷＤの作成手順の一例を説明するための図である。ここで、図８（ａ）はステップ４０で得られた対象データの一例としてのファイルデータＦＤを、図８（ｂ）はステップ５０で得られた複数のブロックデータの一例としてのサブデータＳＤを、図８（ｃ）はステップ６０で得られた出力データの一例としてのサブライトデータＳＷＤを、それぞれ例示している。なお、ステップ４０で得られるファイルデータＦＤの元となるメインデータＭＤは、図７（ｂ）に示したものである。
【００４８】
この例において、ステップ４０で得られたファイルデータＦＤは、８００Ｂの容量を有しているものとする。このため、このファイルデータＦＤを、ステップ５０において論理セクタ（５１２Ｂ）毎に分割して得られるサブデータＳＤは、図８（ｂ）に示すように２個のデータで構成される。ここでは、サブデータＳＤを構成する２個のデータを、配列の先頭側から順に、第１サブデータＳＤ０、第２サブデータＳＤ１と呼ぶことにする。また、この例において、サブデータＳＤを構成する第１サブデータＳＤ０および第２サブデータＳＤ１には、ホスト側アドレスｈＬＢＡとして、ｈＬＢＡ０、ｈＬＢＡ１が付与される。
【００４９】
では、図８（ｃ）を参照しつつ、ステップ６０におけるサブライトデータＳＷＤの作成手順について、具体的に説明を行う。
本実施の形態では、ＣＰＵ２が、連続する８つのブロックを１つの群とし、この群を単位として、サブライトデータＳＷＤの作成を行う。この理由は、上記メインライトデータＭＷＤの作成において説明した通りである。
【００５０】
そして、ＣＰＵ２は、サブデータＳＤを構成する第１サブデータＳＤ０および第２サブデータＳＤ１と、予め準備してあったダミーデータＤＤとを用いて、サブライトデータＳＷＤを作成する。なお、ダミーデータＤＤは、５１２Ｂの容量を有するものであって、この例においては空のデータ（例えば“００００”）が用いられている。
【００５１】
より具体的に説明すると、ＣＰＵ２は、連続する８つのブロックで構成された１つの群に、サブデータＳＤのうちの１つと７個のダミーデータＤＤとが含まれるように、サブデータＳＤの並べ替えおよびダミーデータＤＤの配置を行うことで、サブライトデータＳＷＤを作成する。
【００５２】
この例では、最初となる１番目の群に、第１サブデータＳＤ０と７個のダミーデータＤＤとが含まれ、最後となる２番目の群に、第２サブデータＳＤ１と７個のダミーデータＤＤとが含まれるように、サブライトデータＳＷＤの作成が行われる。
【００５３】
そして、この例では、各群において先頭となる１番目のブロックに、サブデータＳＤを構成する第１サブデータＳＤ０、第２サブデータＳＤ１のいずれかが配置され、これに続く２番目から８番目のブロックに、ダミーデータＤＤが配置される。
【００５４】
そして、ＣＰＵ２は、サブデータＳＤおよびダミーデータＤＤからサブライトデータＳＷＤを作成するにあたり、サブデータＳＤ（第１サブデータＳＤ０、第２サブデータＳＤ１）に付与されていたホスト側アドレスｈＬＢＡをドライブ側アドレスｄＬＢＡに変換する。その際、ＣＰＵ２は、サブライトデータＳＷＤを構成する第１サブデータＳＤ０、第２サブデータＳＤ１および複数のダミーデータＤＤに、配列順にアドレスを付与する。すなわち、１番目の群において１番目のブロックに配置された第１サブデータＳＤ０には、ドライブ側アドレスｄＬＢＡとしてｄＬＢＡ０が付与され、１番目の群において２番目〜８番目のブロックに配置されたダミーデータＤＤには、ドライブ側アドレスｄＬＢＡとしてｄＬＢＡ１〜ｄＬＢＡ７が付与される。また、２番目の群において１番目のブロックに配置された第２サブデータＳＤ１には、ドライブ側アドレスｄＬＢＡとしてｄＬＢＡ８が付与され、２番目の群において２番目〜８番目のブロックに配置されたダミーデータＤＤには、ドライブ側アドレスｄＬＢＡとしてｄＬＢＡ９〜ｄＬＢＡ１５が付与される。
【００５５】
そして、この例においては、図６に示すステップ７０において、図７（ｃ）に示すメインライトデータＭＷＤと図８（ｃ）に示すサブライトデータＳＷＤとが合成されることにより、ライトデータＷＤが作成される。
【００５６】
ここで、メインライトデータＭＷＤを構成するブロックの数は、１つの群を構成するブロックの数（この例では８）の倍数になる場合とならない場合とがある。これに対し、サブライトデータＳＷＤを構成するブロックの数は、必ず、１つの群を構成するブロックの数（この例では８）の倍数となる。
【００５７】
図９は、上述したデータ出力処理に基づくライトデータＷＤが書き込まれたＨＤＤ３（より具体的には磁気ディスク２１）におけるデータ配置の一例を説明するための図である。なお、図９は、図７（ｃ）に示すメインライトデータＭＷＤと図８（ｃ）に示すサブライトデータＳＷＤとを、図６に示すステップ７０において合成することで得られたライトデータＷＤを用いて、磁気ディスク２１に書き込みを行った場合を例示している。ここで、図９は、ＨＤＤ３に設定された領域（第１記憶領域Ｄ１、第２記憶領域Ｄ２）と、ホスト側アドレスｈＬＢＡと、ドライブ側アドレスｄＬＢＡと、書き込むデータと、データの書き込み対象となるセクタ（この場合はラージセクタＬＳ）との関係を示している。また、この例においては、ファイルデータＦＤを含むサブライトデータＳＷＤを書き込む第２記憶領域Ｄ２が、１番目のラージセクタＬＳ０〜１０００番目のラージセクタＬＳ９９９(図示せず)で構成され、ユーザデータＵＤを含むメインライトデータＭＷＤを書き込む第１記憶領域Ｄ１が、１００１番目のラージセクタＬＳ１０００〜で構成されているものとする。
【００５８】
まず、メインライトデータＭＷＤに基づいてデータの書き込み処理がなされた第１記憶領域Ｄ１におけるデータ配置について説明を行う。
図７（ｃ）に示したように、メインライトデータＭＷＤは、第１メインデータＭＤ０、第２メインデータＭＤ１、第３メインデータＭＤ２、第４メインデータＭＤ３、第５メインデータＭＤ４、第６メインデータＭＤ５、第７メインデータＭＤ６、第８メインデータＭＤ７、第９メインデータＭＤ８および第１０メインデータＭＤ９を、この順に配列して構成されている。また、これら第１メインデータＭＤ０〜第１０メインデータＭＤ９には、ドライブ側アドレスｄＬＢＡ８０００〜ｄＬＢＡ８００９が、それぞれ付与されている。
【００５９】
一方、ＨＤＤ３における第１記憶領域Ｄ１では、１００１番目のラージセクタＬＳ１０００にドライブ側アドレスｄＬＢＡ８０００〜ｄＬＢＡ８００７が設定され、１００２番目のラージセクタＬＳ１００１にドライブ側アドレスｄＬＢＡ８００８〜ｄＬＢＡ８０１５（後者については図示せず）が設定されている。そして、１００１番目のラージセクタＬＳ１０００では、保存データ記憶領域Ｂにおける第１保存領域Ｂ０〜第８保存領域Ｂ７（図５（ｂ）参照）にｄＬＢＡ８０００〜ｄＬＢＡ８００７が割り当てられ、１００１番目のラージセクタＬＳ１００１では、保存データ記憶領域Ｂにおける第１保存領域Ｂ０〜第８保存領域Ｂ７にｄＬＢＡ８００８〜ｄＬＢＡ８０１５が割り当てられる。
【００６０】
したがって、図７（ｃ）に示すメインライトデータＭＷＤをＨＤＤ３（磁気ディスク２１）に書き込む場合、１００１番目のラージセクタＬＳ１０００についてはダイレクトオーバーライト処理が行われ、１００２番目のラージセクタＬＳ１００１についてはリードモディファイライト処理が行われる。
【００６１】
次に、サブライトデータＳＷＤに基づいてデータの書き込み処理がなされた第２記憶領域Ｄ２におけるデータ配置について説明を行う。
図８（ｃ）に示したように、サブライトデータＳＷＤは、第１サブデータＳＤ０、７個のダミーデータＤＤ、第２サブデータＳＤ１および７個のダミーデータＤＤを、この順に配列して構成されている。また、第１サブデータＳＤ０にはドライブ側アドレスｄＬＢＡ０が、第１サブデータＳＤ０に続く７個のダミーデータＤＤにはドライブ側アドレスｄＬＢＡ１〜ｄＬＢＡ７が、第２サブデータＳＤ１にはドライブ側アドレスｄＬＢＡ８が、第２サブデータＳＤ１に続く７個のダミーデータＤＤにはドライブ側アドレスｄＬＢＡ９〜ｄＬＢＡ１５が、それぞれ付与されている。
【００６２】
一方、ＨＤＤ３における第２記憶領域Ｄ２では、１番目のラージセクタＬＳ０にドライブ側アドレスｄＬＢＡ０〜ｄＬＢＡ７が設定され、２番目のラージセクタＬＳ１にドライブ側アドレスｄＬＢＡ８〜ｄＬＢＡ１５が設定されている。そして、１番目のラージセクタＬＳ０では、保存データ記憶領域Ｂにおける第１保存領域Ｂ０〜第８保存領域Ｂ７（図５（ｂ）参照）にｄＬＢＡ０〜ｄＬＢＡ７が割り当てられ、２番目のラージセクタＬＳ１では、保存データ記憶領域Ｂにおける第１保存領域Ｂ０〜第８保存領域Ｂ７にｄＬＢＡ８〜ｄＬＢＡ１５が割り当てられる。
【００６３】
したがって、図８（ｃ）に示すサブライトデータＳＷＤをＨＤＤ３（磁気ディスク２１）に書き込む場合、１番目のラージセクタＬＳ０および２番目のラージセクタＬＳ１の両者について、ダイレクトオーバーライト処理が行われる。
【００６４】
本実施の形態のメインライトデータＭＷＤは、上述したように、８の倍数に等しい数のブロックを含む場合と８の倍数とは等しくない数のブロックを含む場合とが存在する。ここで、前者の場合は、書き込み対象となるすべてのラージセクタＬＳにおいてダイレクトオーバーライト処理による書き込みが行われる。これに対し、後者の場合は、８個のブロックの書き込み対象となるラージセクタＬＳにおいてダイレクトオーバーライト処理による書き込みが行われる一方、剰余となる残り１つのラージセクタＬＳではリードモディファイライト処理による書き込みが行われる。
【００６５】
これに対し、本実施の形態のサブライトデータＳＷＤは、上述したように、ダミーデータＤＤの付加によってブロックの数を調整することで、必ず、８の倍数に等しい数のブロックを含むようになっている。したがって、サブライトデータＳＷＤは、書き込み対象となるすべてのラージセクタＬＳにおいてダイレクトオーバーライト処理による書き込みが行われる。
【００６６】
本実施の形態のセクタ構造（ラージセクタＬＳ（ＡＦ））を採用したＨＤＤ３では、リードモディファイライト処理を行うことにより、本来消去されるべきでないデータの消去を抑制することができる。しかしながら、ダイレクトオーバーライト処理ではデータの書き込みによって処理が完了するのに対し、リードモディファイライト処理ではデータの読み出し、データの合成およびデータの書き込みによって処理が完了することになる分、データの書き込みが完了するまでに要する時間が長くなりやすい。
【００６７】
特に、ＨＤＤ３における第１記憶領域Ｄ１に記憶されるファイルデータＦＤ（サブデータＳＤで構成）は、第２記憶領域Ｄ２に記憶されるユーザデータＵＤ（メインデータＭＤで構成）に比べてデータの書き換え頻度が高くなりやすく、リードモディファイライト処理による書き込みが頻発した場合には、書き込み処理の遅延に起因するＨＤＤ３のパフォーマンスの低下を招くことになってしまう。
【００６８】
そこで、本実施の形態では、第１記憶領域Ｄ１に対するデータの書き込みが、常にダイレクトオーバーライト処理となるように、書き込むデータの構造に工夫を施した。すなわち、実際のファイル管理において必要となるファイルデータＦＤ（サブデータＳＤ）にダミーデータＤＤを加えることで、ブロックの数が常に８の倍数となるように、サブライトデータＳＷＤを作成するようにした。これにより、第１記憶領域Ｄ１にサブライトデータＳＷＤを書き込む際においてリードモディファイライト処理の実行を不要とすることができ、第１記憶領域Ｄ１に対するデータの書き込み処理の遅延を抑制することが可能となる。
【００６９】
一方、第２記憶領域Ｄ２に対するデータの書き込みは、これまで通り、ダイレクトオーバーライト処理あるいはリードモディファイライト処理のいずれかが行われるようにした。これにより、第２記憶領域Ｄ２が例えばダミーデータＤＤで埋められることに起因するＨＤＤ３の使用効率の低下を抑制することができる。ただし、第２記憶領域Ｄ２についても、メインライトデータＭＷＤを作成する際に、例えばメインデータＭＤとダミーデータＤＤとを組み合わせてブロックの数を調整（８の倍数）することで、ＨＤＤ３の使用効率は低くなるものの、リードモディファイライト処理の実行を不要とすることができる。
【００７０】
本実施の形態では、ホスト側アドレスｈＬＢＡおよびドライブ側アドレスｄＬＢＡの対応付けおよび管理を、コンピュータ装置１（より具体的にはデバイスドライバ）側で行う。したがって、ホスト側アドレスｈＬＢＡとドライブ側アドレスｄＬＢＡとの違いを考慮する必要がないことから、アプリケーションレベルでは、従来通りのソフトウェアを使用することが可能である。
【００７１】
なお、本実施の形態では、サブライトデータＳＷＤを作成する際に、サブデータＳＤ（第１サブデータＳＤ０、第２サブデータＳＤ１）とダミーデータＤＤとを組み合わせるようにしていたが、これに限られるものではない。例えば、サブライトデータＳＷＤにおいて、１番目の群を構成する８つのブロックをすべて第１サブデータＳＤ０で構成するとともに、２番目の群を構成する８つのブロックをすべて第２サブデータＳＤ１で構成する手法を採用してもかまわない。また、本実施の形態では、ダミーデータＤＤをすべて同じ内容としていたが、中身が異なるものを用いてもかまわない。
【００７２】
また、本実施の形態では、記憶装置あるいは記憶手段の一例としてのＨＤＤ３に対するデータの書き込み処理を例として説明を行ったが、ＨＤＤ３以外の記憶装置に対しても、適用することが可能である。
【符号の説明】
【００７３】
１…コンピュータ装置、２…ＣＰＵ（Central Processing Unit）、３…ＨＤＤ（Hard Disk Drive）、４…ＲＡＭ（Random Access Memory）、５…ネットワークインターフェイス、６…入力デバイス、７…ＤＭＡＣ（Direct Memory Access Controller）、８…内部バス、１０…制御基板、１１…ＳｏＣ（System-on-a-chip）、１１Ａ…ＭＣＵ（Micro Control Unit）、１１Ｂ…ＨＤＣ（Hard Disk Controller）、１１Ｃ…ＲＤＣ（Read Channel）、１２…サーボコントローラ、１３…データバッファ、１４…ショックセンサ、１５…ＳＡＴＡコネクタ、２０…ＤＥ（Disk Enclosure）、２１…磁気ディスク、２２…スピンドルモータ、２３…磁気ヘッド、２４…ＶＣＭ（Voice Coil Motor）、Ｄ１…第１記憶領域、Ｄ２…第２記憶領域、Ａ…先頭データ記憶領域、Ｂ…保存データ記憶領域、Ｃ…後尾データ記憶領域、Ｇ…ギャップ領域、Ｓ…セクタ、Ｔ…トラック、α…読み書きデータ記憶領域、β…位置決めデータ記憶領域
【図１】
2014116053.tif 000003
【図２】
2014116053.tif 000004
【図３】
2014116053.tif 000005
【図４】
2014116053.tif 000006
【図５】
2014116053.tif 000007
【図６】
2014116053.tif 000008
【図７】
2014116053.tif 000009
【図８】
2014116053.tif 000010
【図９】
2014116053.tif 000011