説明

ハードディスクドライブ装置およびその処理装置

【課題】ハードディスクドライブ装置20は、ホスト側からアクセスされるデータサイズよりも大きなデータサイズにて読み書きされるエミュレーション機能を有し、その書込み速度を向上させる。
【解決手段】ハードディスクドライブ装置20は、ディスク32と、管理データM/Dを一時的に保存するためのキャッシュメモリ34と、読込みおよび書込みを制御するコントローラ36とを備える。コントローラ36は、ディスク32に記憶されている512バイトの管理データを含む4Kバイトのデータを予めキャッシュメモリ34に記憶しておき、データの書込み命令により、パーソナルコンピュータ10からの管理データでキャッシュメモリ34に記憶されている管理データを更新し、更新された管理データMを含むキャッシュメモリ34に記憶されたデータを4Kバイトでディスクに書き込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ホスト側からアクセスされるデータサイズよりも大きなデータサイズにて読み書きされるエミュレーション機能を有するハードディスクドライブ装置に関する。
【背景技術】
【0002】
従来、この種のエミュレーション機能を有するハードディスク装置として、特許文献1,2の技術が知られている。ハードディスク装置は、ファイルの操作・管理を行うファイル管理プログラム(以下、ファイルシステムという)を必要としている。ファイルシステムは、一般のコンピュータシステムでは、オペレーティングシステムの機能の一部として提供されている。ファイルシステムの具体的な方式としては、一般的なファイルシステムであるFAT(File Allocation Table)ファイルシステムが挙げられる。FATファイルシステムを用いたハードディスク装置では、セクタと呼ばれる単位で行われ、通常、1セクタ=512バイトである。
【0003】
しかし、データの大容量化に伴いアクセスの速度向上を図るために、上述したエミュレーション機能を用いて、ホストからアクセスされるデータ容量よりも大きなデータで読み書きしている。すなわち、エミュレーション機能は、ホストからは512バイト単位でアクセスされるが、ハードディスクユニット本体には、4096バイト(以下、4Kバイトと簡略化していう。)単位で読み書きしている。したがって、4Kバイト未満のデータを書き込む場合にも、一旦、対象のセクタから4Kバイトのデータを読込み、ユニットのメモリ内でデータを合成し、4Kバイトの書込みデータを作成し、その後、4Kバイトのデータをまとめて書込みを行なっている。
【0004】
しかし、こうしたエミュレーション機能を有するハードディスク装置において、512バイトのデータ容量にて頻繁にアクセスする管理データが特定のセクタに保存されている。こうした管理データは、512バイトのデータ単位で書き込むことができず、該管理データ以外のデータも併せて4Kバイト単位で読込み、そして、このデータを管理データの箇所だけ更新し、4Kバイトの容量で更新されていない他のデータとともにディスクに書き込んでいる。このため、データの書込み処理の際に、同時に読込み処理を行なわなければならず、処理速度の低下を招いているという課題があった。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2010−49764号公報
【特許文献2】特開2005−63441号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、上記従来の技術の課題を踏まえ、ホスト側からアクセスされるデータサイズよりも大きなデータサイズにて読み書きされるエミュレーション機能を有するハードディスクドライブ装置につき、その書込み速度を向上することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態または適用例として実現することが可能である。
【0008】
[適用例1] 適用例1は、第1データサイズおよび該第1データサイズの整数倍である第2データサイズの容量に設定された複数のデータにて、アクセス可能であるホスト・インターフェースを有し、ホスト側から第1データサイズによりアクセスされたときに、第2データサイズでディスクに読み書きするハードディスクドライブ装置において、
ユーザにより作成されたユーザデータと、該ユーザデータを管理しかつデータサイズが一定で第2データサイズより小さい管理データとに分けたファイル形式でフォーマットされて管理されるディスクと、
上記第2データサイズ以上の容量に設定され、上記管理データを一時的に保存するためのキャッシュメモリと、
上記ホストからの指令により、上記ディスクおよび上記キャッシュメモリのデータの読込み、および書込みを制御するコントローラと、
を備え、
上記コントローラは、上記ディスクに記憶されている管理データを含む第2データサイズのデータを予め上記キャッシュメモリに記憶しておき、データの書込み命令により、ホスト側からの管理データでキャッシュメモリに記憶されている管理データを含む第2データサイズのデータを上書きし、該上書きされた管理データを含む上記キャッシュメモリに記憶されている第2データサイズのデータで上記ディスクに書き込むように構成したこと、を特徴とする。
【0009】
適用例1にかかるハードディスクドライブ装置において、データの書込み処理の際に、ユーザデータの書込み処理の前後で、ディスクに書き込まれる管理データは、第1データサイズであっても、パーソナルコンピュータからキャッシュメモリに上書きすれば、キャッシュメモリからディスクに第1データサイズより大きい第2データサイズに調製されて書き込まれる。よって、従来の技術のように、管理データを上書きする際に、管理データを含む第2データサイズのデータを読み込む必要がなく、処理速度を向上させることができる。
【0010】
[適用例2] 適用例1において、上記管理データは、一定のデータサイズである構成をとることができる。
【0011】
[適用例3] 適用例3における管理データを上記ディスクに書き込む処理は、ディスクへの書込みがなされていないアイドリング状態の割合が所定以上の場合に実行する構成とすることができる。この構成により、一層、書込み処理速度を向上させることができる。
【0012】
[適用例4] 適用例4は、上記第1データサイズは、512バイトであり、上記第2データサイズは、4096バイトであり、上記管理データは、所定のアドレスに記憶された512バイトのデータ容量である構成とすることができる。
【0013】
[適用例5] 適用例5は、第1データサイズおよび該第1データサイズの整数倍である第2データサイズの容量に設定された複数のデータにて、アクセス可能であるホスト・インターフェースと、上記データを一時的に記憶するキャッシュメモリとを有し、ホスト側から第1データサイズによりアクセスされたときに、第2データサイズでディスクおよびキャッシュメモリに読み書きするハードディスクドライブ装置の処理方法であって、
上記ディスクの記憶領域を、ユーザにより作成されたユーザデータと、該ユーザデータを管理しかつデータサイズが一定で第2データサイズより小さい管理データとに分けたファイル形式でフォーマットする処理と、
上記キャッシュメモリに上記管理データを予め記憶しておく処理と、
上記ホストからのデータの書込み命令により、上記ホスト側からの管理データでキャッシュメモリに記憶されている管理データを更新し、該更新された管理データを含む上記キャッシュメモリに記憶されたデータを第2データサイズで上記ディスクに書き込む処理と、
を備えたことを特徴とする。
【図面の簡単な説明】
【0014】
【図1】本発明の一実施例にかかる情報処理システムの概略構成を示す説明図である。
【図2】FAT形式によりフォーマットされているディスクのメモリマップを示す説明図である。
【図3】パーソナルコンピュータの起動時に実行される処理を示すフローチャートである。
【図4】パーソナルコンピュータおよびコントローラにより実行される処理を示すフローチャートである。
【図5】管理データの転送過程を説明する説明図である。
【図6】図5に続く過程を説明する説明図である。
【図7】図6に続く過程を説明する説明図である。
【図8】他の実施例にかかる情報処理システムを示す概略構成図である。
【発明を実施するための形態】
【0015】
以下、本発明の一実施例にかかるハードディスクドライブ装置を備えた情報処理システムについて説明する。
(1) ハードウェアの構成:
図1は本発明の一実施例にかかる情報処理システム100の概略構成を示す説明図である。図示するように、情報処理システム100は、情報処理装置としてのパーソナルコンピュータ10(ホスト)と、USBタイプのハードディスクドライブ装置20とを備える。パーソナルコンピュータ10は、本体側メモリ11、USBルートハブ12を備え、USB機器との接続が可能となっている。本実施例では、USB機器としてのハードディスクドライブ装置20が、USBケーブル51を介して接続されている。
【0016】
ハードディスクドライブ装置20は、インタフェース部22と、記録媒体としてのディスク32を有するハードディスクユニット30と、後述する管理データを含むデータを一時的に蓄えておく4Kバイトの容量のキャッシュメモリ34と、コントローラ36とを備える。インタフェース部22は、パーソナルコンピュータ10とUSB接続するためのインタフェースである。
【0017】
コントローラ36は、前述したインタフェース部22、ハードディスクユニット30、およびキャッシュメモリ34に接続されており、ディスク32に対する書込みおよび読み出しを行う。すなわち、コントローラ36は、インタフェース部22から送られてきたデータをディスク32またはキャッシュメモリ34に書込み、また、ディスク32に記憶されたデータを読み出してキャッシュメモリ34に記憶する。キャッシュメモリ34は、管理データを含むデータを一時的に記憶し、4Kバイトのデータサイズに調製してディスク32に書き込む。なお、コントローラ36は、CPUやメモリ等を備える小型マイクロコンピュータにより構成される。コントローラ36は、小型マイクロコンピュータの構成に換えて、複数のディスクリートな電子部品による構成とすることもできる。
【0018】
(2) ハードディスクドライブ装置20の動作の概要:
ハードディスクユニット30は、ディスク32上に記憶されたデータとして、起動対象のシステムの起動時に必要なデータ(例えば、電源投入時に最初に実行されるプログラム等)を含んでおり、FATファイルシステムの構造に従って格納されている。図2はFAT形式によりフォーマットされているディスク32のメモリマップを示す説明図である。FATファイルシステムでは、ディスク32を、512バイトのセクタと呼ばれる論理単位に分割し、複数のセクタを単位として、4Kバイトで読み書きされるエミュレーション機能を有している。このとき、あるファイルを構成しているのは、どのセクタか、あるセクタは、現在使用中か、または未使用かといった情報を、管理領域に記録して管理する。
【0019】
FAT形式のフォーマットでは、ディスク32の記憶領域は、管理領域MAとユーザデータ領域DAとに分離されている。管理領域MAは、マスタブートレコード(Master Boot Record:以下、「MBR領域」という)や、バイオスパラメータブロック(BIOS Parameter Block:以下、「BPB領域」という)、FAT1、FAT2、ルートディレクトリなどと呼ばれる領域によって構成される。FATのデータ構造は、周知のため、以下、これらの各領域について簡単に説明する。ここで、FTファイルシステムは、データをセクタという単位で管理するようになっている。ディスク32のセクタのサイズが512バイトで、クラスタのサイズが4Kバイトの場合、1クラスタは、8セクタで構成されていることになり、8セクタ単位でデータを扱っている。
【0020】
MBR領域は、パーソナルコンピュータ10が接続された場合に、最初に読み込まれる領域であり、ブートストラップコードやパーティションテーブルなどが記録されている。パーティションテーブルには、生成されているパーティションの数や、各パーティションの開始セクタおよび終了セクタ、オフセット、総セクタ数などの情報が記録されている。
【0021】
BPB領域は、各パーティションの先頭セクタに記録されており、ディスク32のフォーマットに関する各種情報として、パーティションのフォーマット形式やセクタ数、FATの数などの管理データが記録されている。また、BPB領域に記憶される管理データとして、ディスク32がファイルの書込み作業中である場合に、その旨を示すフラグが含まれている。
【0022】
FAT1およびFAT2には、ユーザデータ領域DAに記録された各ファイルを構成するクラスタチェーンの情報が記録されている。FAT1とFAT2には、同一の情報が記録されることにより、ディスク32に保存されているデータをシステムに読み込む際にデータの正当性を保証するようにしている。
【0023】
ルートディレクトリには、ルートにあるファイルのファイル名や拡張子、属性、そのファイルを構成する最初のクラスタ番号等が記録されている。
【0024】
(3) ソフトウエアの構成:
このような構造を有したFATファイルシステムにおいて、本発明の特徴的な管理データの処理は、キャッシュメモリ34を用いて、以下のように処理される。図3ないし図4はパーソナルコンピュータ10およびコントローラ36により実行される処理を示すフローチャートである。
【0025】
(3)−1 起動時の処理
図3はパーソナルコンピュータ10の起動時にコントローラ36により実行される起動処理を示すフローチャート、図5はパーソナルコンピュータ10、ディスク32およびキャッシュメモリ34との間のデータの転送過程を説明する説明図である。図1に示すパーソナルコンピュータ10の電源投入により該パーソナルコンピュータ10がバイオス(Basic Input / Output System)を起動すると、インタフェース部22を介して、ハードディスクユニット30のディスク32のデータを読み込む。また、図3に示すように、ステップS102にて、コントローラ36は、ディスク32のパーティションの先頭セクタから4Kバイトのデータ、つまり管理データM/DであるBPB領域(図2参照)のデータを読み込み(図5参照)、さらにステップS104にて、読み込んだ4KバイトのBPB領域のデータをキャッシュメモリ34に書き込む。これにより、図5に示すように、キャッシュメモリ34の先頭のメモリ領域に512バイトの管理データM/Dが記憶され、続くメモリ領域にデータB〜Hが記憶される。
【0026】
(3)−2 データの書込み処理
図4はパーソナルコンピュータ10からハードディスクユニット30へのデータの書込み処理を説明するフローチャートである。コントローラ36は、パーソナルコンピュータ10からハードディスクユニット30への書込み命令に基づき、書込み処理を実行する。すなわち、図6(A)に示すように、本体側メモリ11に記憶されているユーザデータU/Dをハードディスクユニット30に書き込む際に、まず、図4のステップS120にて、パーソナルコンピュータ10から送られてきたデータが4Kバイト以下であるか、さらに続くステップS122にて、データが先頭セクタのデータであるかを判定する。すなわち、管理データM/Dは、4Kバイト以下の512バイトであり、かつ先頭セクタのデータであることから、これらの判定によりパーソナルコンピュータ10から送られたデータが管理データM/Dであることを判定する。このとき、管理データM/Dは、パーソナルコンピュータ10で書込み処理を示すフラグをセットした管理データM/D(W)となっている。ステップS120,S122にて肯定判定されると、ステップS124に進み、キャッシュメモリ34の管理データM/Dを更新(上書き)する処理を実行する。すなわち、図6(A)に示すように、キャッシュメモリ34の4Kバイトのデータのうち、先頭セクタの512バイトをパーソナルコンピュータ10から送られてきた管理データM/D(W)で更新する。続いて、ステップS126にて、管理データM/D(W)を含むデータをディスク32に書込みする。このとき、図6(B)に示すように、512バイトでの管理データM/D(W)は、512バイトの容量ではディスク32に書き込めないから、キャッシュメモリ34の他のメモリ領域にデータB〜Hのデータを加えて、4Kバイトのデータの容量で、ディスク32に書き込む。なお、管理データM/Dのデータサイズが一定でない場合は、管理データM/Dを含む4Kバイトのデータの全てを更新する構成にしてもよい。
【0027】
一方、ステップS120およびステップS122にて、パーソナルコンピュータ10から送られたデータがユーザデータU/Dであるときには、ステップS130に進み、通常のユーザデータU/Dの書込み処理を実行する。すなわち、ユーザデータU/Dは、4Kバイト以上のデータであり、しかもパーティションの先頭セクタのデータでないことから、図6(C)に示すように、通常の書込み処理を実行する。
【0028】
そして、ユーザデータU/Dが全て書き込まれた後に、512バイトの管理データM/Dが送られてくると、つまり、書込みの終了を示すフラグを含む管理データM/Dが送られてくると、上述したように、図4のステップS120〜S126の処理が実行される。これにより、図7(A)に示すように、キャッシュメモリ34の管理データM/Dが更新された後に、図7(B)に示すように、キャッシュメモリ34の4Kバイトのデータでディスク32に書き込まれる。
【0029】
(4) 上記実施例にかかるハードディスクユニット30によれば、以下の作用効果を奏する。
(4)−1 本実施例にかかるハードディスクドライブ装置20において、データの書込み処理の際に、ユーザデータU/Dの書込み処理の前後で、ディスク32に書き込まれる管理データM/Dは、512バイトのデータサイズであっても、パーソナルコンピュータ10からキャッシュメモリ34に書き込めば、キャッシュメモリ34からディスク32に4Kバイトのデータサイズに調製されて書き込まれる。よって、従来の技術のように、管理データM/Dを書き込む際に、管理データM/Dを含む4Kバイトのデータを読み込む必要がなく、処理速度を向上させることができる。
【0030】
(4)−2 ハードディスクドライブ装置20に搭載するキャッシュメモリ34は、その容量が4Kバイトで小さく、ユーザデータ用のキャッシュメモリのように、大容量ではなく、コストアップにならず、処理速度を向上させることができる。
【0031】
(4)−3 キャッシュメモリ34、パーソナルコンピュータ10およびディスク32への管理データM/Dの読み書き処理は、コントローラ36に搭載されたソフトウエアにより実行されるから、パーソナルコンピュータ10の本体側メモリ11の一部をキャッシュメモリとして設定する処理をしたり、パーソナルコンピュータ10のプログラムを変更するような面倒な作業や構成も不要である。
【0032】
(4)−4 管理データM/Dは、パーソナルコンピュータ10によるデータ更新の際に、キャッシュメモリ34からディスク32への書込み処理により更新しているから、不用意な電源の遮断によっても、ディスク32の管理データM/Dが失われることがない。
【0033】
(5) 他の実施例
この発明は、上記実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【0034】
(5)−1 上記実施例では、管理データM/Dがハードディスクドライブ装置20に送られる毎に、図4のステップS124およびステップS126にて、管理データM/Dのキャッシュメモリ34の更新および、ディスク32の更新(書込み)を実行しているが、ディスク32への書込みがなされていないアイドリング状態の割合が所定以上の場合に実行することにより、一層、書込み処理速度を向上させることができる。
【0035】
(5)−2 図8は他の実施例にかかる情報処理システムを示す概略構成図である。本実施例は、ハードディスクドライブ装置20Bのインタフェースとして、シリアルATA(Serial Advanced Technology Attachment)に適用した例である。すなわち、ハードディスクドライブ装置20Bは、変換部22Bと、変換部22Bに接続されたキャッシュメモリ23Bと、ディスク32Bを有するハードディスクユニット30Bと、シリアルATAインタフェース31Bと、コントローラ36Bとを備えている。変換部22Bは、USB規格のシリアル信号をSATAの信号に変換を行なう機能を有するとともに、キャッシュメモリ23Bに一時的に記憶される管理データM/Dを制御するプログラムを備える。このように、ハードディスクドライブ装置20Bは、汎用のシリアルATAのハードディスクユニット30Bにも適用することができる。なお、管理データM/Dを制御するプログラムは、コントローラ36Bに備えてもよい。
【0036】
(5)−3 上記コンピュータプログラムは、予めROMに記憶した構成としてもよいし、ディスク32に格納される構成とし、CD−ROMなどの各種記憶媒体(コンピュータ読み取り可能な記録媒体等)に記憶されて配布されたり、またはインターネットなど各種通信手段を通じて配信されたりするものとすることもできる。
【0037】
(5)−4 上記実施例では、その効果の高いファイルシステムとしてFAT32を含むFile Allocation Tablesであって、管理データとしてBPB領域のデータのみを使用している構成について説明したが、これに限らず、NTFS(New Technology File System)等のファイルシステムでも実施可能である。こうした他のファイルシステムにおけるファイル形式において、管理データとしてBPB領域に加え、MBR領域や他のシステム領域のデータを使用する場合であってもよい。
【0038】
(5)−5 上記実施例では、ハードディスクユニット30の外に、キャッシュメモリ34、コントローラ36を配置したが、これに限らず、ハードディスクユニット30の中にキャッシュメモリ34、コントローラ36を組み込んでもよい。
【符号の説明】
【0039】
10…パーソナルコンピュータ
11…本体側メモリ
20…ハードディスクドライブ装置
20B…ハードディスクドライブ装置
22…インタフェース部
22B…変換部
23B…キャッシュメモリ
30…ハードディスクユニット
30B…ハードディスクユニット
32…ディスク
32B…ディスク
34…キャッシュメモリ
36…コントローラ
36B…コントローラ
100…情報処理システム

【特許請求の範囲】
【請求項1】
第1データサイズおよび該第1データサイズの整数倍である第2データサイズの容量に設定された複数のデータにて、アクセス可能であるホスト・インターフェースを有し、ホスト側から第1データサイズによりアクセスされたときに、第2データサイズでディスクに読み書きするハードディスクドライブ装置において、
ユーザにより作成されたユーザデータと、該ユーザデータを管理しかつデータサイズが一定で第2データサイズより小さい管理データとに分けたファイル形式でフォーマットされて管理されるディスクと、
上記第2データサイズ以上の容量に設定され、上記管理データを一時的に保存するためのキャッシュメモリと、
上記ホストからの指令により、上記ディスクおよび上記キャッシュメモリのデータの読込み、および書込みを制御するコントローラと、
を備え、
上記コントローラは、上記ディスクに記憶されている管理データを含む第2データサイズのデータを予め上記キャッシュメモリに記憶しておき、データの書込み命令により、ホスト側からの管理データでキャッシュメモリに記憶されている管理データを含む第2データサイズのデータを上書きし、該上書きされた管理データを含む上記キャッシュメモリに記憶されている第2データサイズのデータで上記ディスクに書き込むように構成したこと、
を特徴とするハードディスクドライブ装置。
【請求項2】
請求項1に記載のハードディスクドライブ装置において、
上記管理データは、一定のデータサイズであるハードディスクドライブ装置。
【請求項3】
請求項1または請求項2に記載のハードディスクドライブ装置において、
上記管理データを上記ディスクに書き込む処理は、ディスクへの書込みがなされていないアイドリング状態の割合が所定以上の場合に実行するハードディスクドライブ装置。
【請求項4】
請求項1ないし請求項3のいずれかに記載のハードディスクドライブ装置において、
上記第1データサイズは、512バイトであり、上記第2データサイズは、4096バイトであり、上記管理データは、所定のアドレスに記憶された512バイトのデータ容量であるハードディスクドライブ装置。
【請求項5】
第1データサイズおよび該第1データサイズの整数倍である第2データサイズの容量に設定された複数のデータにて、アクセス可能であるホスト・インターフェースと、上記データを一時的に記憶するキャッシュメモリとを有し、ホスト側から第1データサイズによりアクセスされたときに、第2データサイズでディスクおよびキャッシュメモリに読み書きするハードディスクドライブ装置の処理方法であって、
上記ディスクの記憶領域を、ユーザにより作成されたユーザデータと、該ユーザデータを管理しかつデータサイズが一定で第2データサイズより小さい管理データとに分けたファイル形式でフォーマットする処理と、
上記キャッシュメモリに上記管理データを予め記憶しておく処理と、
上記ホストからのデータの書込み命令により、上記ホスト側からの管理データでキャッシュメモリに記憶されている管理データを含む第2データサイズのデータを上書きし、該上書きされた管理データを含む上記キャッシュメモリに記憶されている第2データサイズのデータで上記ディスクに書き込む処理と、
を備えたことを特徴とするハードディスクドライブ装置の処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−113789(P2012−113789A)
【公開日】平成24年6月14日(2012.6.14)
【国際特許分類】
【出願番号】特願2010−263319(P2010−263319)
【出願日】平成22年11月26日(2010.11.26)
【出願人】(390040187)株式会社バッファロー (378)
【Fターム(参考)】