ブリッジチップ、ハードディスク装置、およびアドレス変換プログラム
【課題】 本発明は、外付けのハードディスクドライブとホスト装置との間に介在するブリッジチップ等に関し、1台のハードディスクドライブを複数のパーティションに分けて利用する場合の、パーティションごとの転送レートの平準化を図る。
【解決手段】 ホスト装置から受け取った、ハードディスクのアクセス先の論理ブロックアドレスを、ユーザデータを記憶するユーザ領域と、そのユーザ領域を複数のパーティションに分割したときの各パーティションの所在を特定するパーティション情報を記憶する管理領域とを有するハードディスクのユーザ領域の最内周と最外周とのうちの一方から他方に向かって複数のパーティションについて循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する。
【解決手段】 ホスト装置から受け取った、ハードディスクのアクセス先の論理ブロックアドレスを、ユーザデータを記憶するユーザ領域と、そのユーザ領域を複数のパーティションに分割したときの各パーティションの所在を特定するパーティション情報を記憶する管理領域とを有するハードディスクのユーザ領域の最内周と最外周とのうちの一方から他方に向かって複数のパーティションについて循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、外付けのハードディスクドライブとホスト装置との間に介在するブリッジチップ、そのブリッジチップを含むハードディスク装置、および、そのブリッジチップ内で実行されるアドレス変換プログラムに関する。
【背景技術】
【0002】
近年はハードディスクの大容量化が進み、2TB(2テラバイト)程度もの大容量のハードディスクが当たり前になってきている。このため、ハードディスクを複数のパーティションに分けて各パーティションごとに利用することができるようになってきている。ここで、ハードディスクはその殆どがCAV(Constant Angular Velocity)方式が採用されており、ハードディスクの回転速度は一定である。しかし、回転速度は一定であってもハードディスクの外周と内周では線速度が異なり、外周側は線速度が速いため転送レートが速く、内周側は線速度が遅いため転送レートが遅くなる。このため、1台のハードディスクを複数のパーティションに分けて利用すると、パーティションごとの転送レートが異なるおそれがある。
【0003】
従来、ハードディスクにデータを書き込むにあたり、書込みデータをハードディスクの内側と外側とに交互に書き込むことが提案されている(特許文献1参照)。これも、転送レートの平準化には寄与するものの、これは、データの書込み順に基づいて平準化するものであり、1台のハードディスクを複数のパーティションに分けて利用する場合の、それらの複数のパーティションに対し転送レートが平準化されるとは限らない。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−87415号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、上記事情に鑑み、1台のハードディスクを複数のパーティションに分けて利用する場合の、パーティションごとの転送レートの平準化を図ることを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成する本発明のブリッジチップは、
ユーザデータを記憶するユーザ領域と、ユーザ領域を複数のパーティションに分割したときの各パーティションの所在を特定するパーティション情報を記憶する管理領域とを有するハードディスクをドライブするハードディスクドライブとの間の通信を担うハードディスクインタフェースと、
ハードディスクドライブをアクセスするホスト装置との間の通信を担うホストインタフェースと、
処理を実行するプロセッサとを備え、
上記プロセッサが、ホスト装置から受け取った、ハードディスクのアクセス先の論理ブロックアドレスを、ハードディスクのユーザ領域の最内周と最外周とのうちの一方から他方に向かって複数のパーティションについて循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行するものであることを特徴とする。
【0007】
ここで本発明のブリッジチップにおいて、上記プロセッサは、複数のパーティションのうちの最小ブロック数のパーティションに対応する再配置単位領域の累積のブロック数が最小ブロック数のパーティションのブロック数に達するまでは、論理ブロックアドレスを、複数のパーティションについて互いに同一のブロック数であって循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行するものであることが好ましい。
【0008】
あるいは、本発明のブリッジチップにおいて、上記プロセッサは、前記論理ブロックアドレスを、複数のパーティションそれぞれの各ブロック数にそれぞれ比例するブロック数であって循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行するものであることも好ましい態様である。
【0009】
また、本発明のブリッジチップにおいて、上記プロセッサが、論理ブロックアドレスと物理ブロックアドレスとの変換テーブルを作成する処理を実行し、論理ブロックアドレスを、その変換テーブルを参照して、物理ブロックアドレスに変換するものであることが好ましい。
【0010】
あるいは、本発明のブリッジチップにおいて、上記プロセッサが、論理ブロックアドレスと物理ブロックアドレスとの変換式を作成する処理を実行し、論理ブロックアドレスを、その変換式を用いて、物理ブロックアドレスに変換するものであることも好ましい態様である。
【0011】
また、上記目的を達成する本発明のハードディスク装置は、
ユーザデータを記憶するユーザ領域と、ユーザ領域を複数のパーティションに分割したときの各パーティションの所在を特定するパーティション情報を記憶する管理領域とを有するハードディスクをドライブするハードディスクドライブと、
ハードディスクドライブとの間の通信を担うハードディスクインタフェース、ハードディスクドライブをアクセスするホスト装置との間の通信を担うホストインタフェース、および処理を実行するプロセッサを備えたブリッジチップとを有し、
上記プロセッサが、ホスト装置から受け取った、ハードディスクのアクセス先の論理ブロックアドレスを、ハードディスクのユーザ領域の最内周と最外周とのうちの一方から他方に向かって複数のパーティションについて循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行するものであることを特徴とする。
【0012】
また、上記目的を達成する本発明のアドレス変換プログラムは、
ユーザデータを記憶するユーザ領域と、ユーザ領域を複数のパーティションに分割したときの各パーティションの所在を特定するパーティション情報を記憶する管理領域とを有するハードディスクをドライブするハードディスクドライブとの間の通信を担うハードディスクインタフェースと、ハードディスクドライブをアクセスするホスト装置との間の通信を担うホストインタフェースと、処理を実行するプロセッサとを備えたブリッジチップ内で実行され、プロセッサに、ホスト装置から受け取った、ハードディスクのアクセス先の論理ブロックアドレスを、ハードディスクのユーザ領域の最内周と最外周とのうちの一方から他方に向かって複数のパーティションについて循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行させることを特徴とする。
【発明の効果】
【0013】
本発明によれば、複数のパーティションごとの転送レートの平準化が図られる。
【図面の簡単な説明】
【0014】
【図1】本発明の一実施形態を含む全体構成図である。
【図2】ブリッジチップの装置構成図である。
【図3】ハードディスクの論理上のパーティションマップを示した図である。
【図4】管理ブロックの配置位置を示す図である。
【図5】管理ブロックの構成図である。
【図6】パーティション情報の詳細図である。
【図7】本実施形態におけるアドレス変換方式を示す図である。
【図8】ユーザによる、パーティション作成時の作業手順を示す図である。
【図9】アプリケーションプログラム上で開かれる初期設定処理要求画面を示す図である。
【図10】ブリッジチップのプロセッサで実行されるプログラムのメインルーチンを示す図である。
【図11】ブリッジチップにおける初期設定処理を、パソコン側の処理とともに示す図である。
【図12】ブリッジチップにおけるリード/ライト処理を示すフローチャートである。
【図13】変換テーブル生成処理を示すフローチャートである。
【図14】変換テーブルの一例を示す図である。
【図15】第2実施形態におけるアドレス変換方式を示す図である。
【図16】ブリッジチップで実行される、第2実施形態における初期設定処理を、パソコン側の処理とともに示した図である。
【図17】ブリッジチップで実行される、第2実施形態におけるリード/ライト処理を示すフローチャートである。
【図18】論理LBA(LBA:Logical Block Address)から物理LBAへの変換処理を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下、本発明の実施形態を説明する。
【0016】
図1は、本発明の一実施形態を含む全体構成図である。
【0017】
ここには、ホスト装置の一例としてのパソコン10と外付けハードディスク装置20が、ホストインタフェース(ホストI/F)で接続されている。このホストI/Fとしては、例えばUSB3.0の規格に準拠したインタフェース(I/F)が用いられる。
【0018】
外付けハードディスク装置20は、ブリッジチップ21とハードディスクドライブ22とで構成されている。
【0019】
ハードディスクドライブ22は、円盤形状の大容量(例えば2TB)のハードディスク(図示せず)を内蔵し、そのハードディスクを回転させながらそのハードディスクを直接にアクセスする構成を備えている。
【0020】
ブリッジチップ21は、パソコン10との間はホストI/Fで接続され、ハードディスクドライブ22との間ではハードディスクインタフェース(HDI/F)で接続されている。パソコン10とハードディスクドライブ22は、このようにインタフェースの規格が異なるため、ブリッジチップ21はそれらの間に介在して各インタフェースに適合するようにデータを変換する役割りを担っている。
【0021】
例えばここに示す例ではハードディスクドライブ22にはSATAインタフェース(SATAI/F)が使われており、ブリッジチップ21はパソコン10で使われているUSB3.0とハードディスクドライブ22で使われているSATAI/Fとの間でデータ変換を行ないながら、パソコン10とハードディスクドライブ22との間の通信を仲介する。
【0022】
尚、パソコン10等のホスト装置との間で使用するインタフェースは、USB3.0以外の、例えばIEEE1394b、Firewire800、eSATA等のいずれかの規格に準拠したものであってもよく、ハードディスクドライブ22との間で使用するインタフェースはSATA(Serial ATA)以外の、例えばPATA(Pararell ATA)等の規格に準拠したものであってもよい。
【0023】
尚、この図1では、ブリッジチップ21はハードディスクドライブ22とは別に示されているが、これは図示の都合上であって、実際には、ブリッジチップ21は、ハードディスクドライブ22を構成するする回路基板(図示せず)に搭載されていてもよい。
【0024】
図2は、ブリッジチップの装置構成図である。
【0025】
このブリッジチップ21は、パソコン10(図1参照)等のホスト装置との間の通信を担うホストI/F211と、ハードディスクドライブ22との間の通信を担うHDI/F212と、それらのインタフェース間でのデータ変換処理を担うプロセッサ213とを有する。
【0026】
図3は、ハードディスクの論理上のパーティションマップを示した図である。
【0027】
ハードディスクの先頭セクタには、パーティション情報を管理する管理ブロックが存在する。この管理ブロック内には、パーティションの数や、各パーティションの開始セクタ、セクタ数といった各パーティションの所在を特定する情報が記録されている。またここでは一例として、ハードディスクの、ユーザが利用できる領域が第1パーティション、第2パーティション、第3パーティションからなる3つのパーティションに分かれている。ここでは、各パーティションごとに利用者が異なり、あるいは同一の利用者であっても、あるパーティションにはある動画が格納され、他のパーティションには別の動画が格納されるなど、パーティションごとに別々に利用されるものとする。尚、図3は論理上のパーティションマップであり、各パーティションのアドレスは、後述するようにして、ハードディスク上の実際のアドレス(物理アドレス)に変換される。
【0028】
図4は、管理ブロックの配置位置を示す図である。ここではハードディスク装置をWindows(登録商標)パソコンで使用する場合を例に挙げて説明する。
【0029】
Windows(登録商標)パソコンで使用する場合のハードディスクの管理ブロックはセクタ0に存在する。セクタ0には管理ブロックの他にMBR(Master Boot Record)も存在しており、図4に示すように、MBRはバイトオフセット0000hから01BDhまで、管理ブロックはバイトオフセット01BEhから01FDhである。
【0030】
図5は、管理ブロックの構成図である。
【0031】
この管理ブロックには、この図5に示すように、最大4つのパーティション情報が格納される。すなわち、図3には3つのパーティションを示したが、この実施形態では最大4つのパーティションの設定が可能である。
【0032】
図6は、パーティション情報の詳細図である。
【0033】
図5に示す4つのパーティション情報の1つ1つが、この図6に示すデータ構造を有する。
【0034】
このパーティション情報自体は従来より規格で定義されているものであり、詳細説明は省略するが、開始ヘッド番号、開始セクタ番号、および開始シリンダ番号により、そのパーティションの、ハードディスク上の開始位置が定義されるなど、このパーティション情報により、そのパーティションの、ハードディスク上の開始位置や終了位置、そのパーティションの大きさなどが定義されている。
【0035】
図7は、本実施形態におけるアドレス変換方式を示す図である。ここでは管理ブロックの図示は省略し、ユーザが利用できる第1〜第3パーティションを示している。
【0036】
図7(A)は、第1〜第3パーティションの論理的なパーティションマップである。ここでは、第1〜第3パーティションの各々が、これら複数のパーティションについて互いに同一のブロック数からなる分断ブロックに分断され、それらの分断ブロックが、図7(B)に示すように、ハードディスクの外周側から内周側に向けて、第1〜第3パーティションについて循環的に再配置される。
【0037】
図7(C)は、第1パーティションが大きく、第2パーティションおよび第3パーティションが小さい場合の例である。この場合、寸法の小さいパーティションが終了するまでは、第1〜第3のパーティションについて循環的に再配置され、寸法の小さいパーティションの配置が終了すると残りの領域は寸法の大きいパーティションに割り当てられる。
【0038】
尚、ここでは、ハードディスクの外周側から内周側に向かって再配置しているが、これとは逆に、ハードディスクの内周側から外周側に向かって再配置してもよい。
【0039】
また、分断ブロックの寸法(ブロック数)は、本実施形態では、パーティションの数(ここに示す例では3つ)、パソコン10が一回にアクセスすることのできる最大アクセスセクタ数、およびハードディスクの全容量に基づいて決定されるが、これに限られずその寸法(ブロック数)を適宜決定してもよい。
【0040】
図8は、ユーザによる、パーティション作成時の作業手順を示す図である。
【0041】
ここでは先ず、例えば購入してきた外付けハードディスク装置がユーザの手作業によりパソコンに接続される(ステップS01)。
【0042】
次に、ユーザのパソコン操作により、必要分のパーティションが作成される(ステップS02)。パーティションの作成手順自体は従来と何ら変わるところがなく、詳細説明は省略する。
【0043】
次に、ユーザのパソコン操作により、初期設定処理要求がなされる(ステップS03)。ここでは、この実施形態のシステム用に作成されたアプリケーションプログラムが実行され、そのアプリケーションプログラム上で操作が行なわれる。
【0044】
図9は、そのアプリケーションプログラム上で開かれる初期設定処理要求画面を示す図である。
【0045】
パソコン上でのメニュー操作により、この図9の初期設定処理要求画面が開かれ、その画面上で「初期設定」ボタンがクリックされると、ブリッジチップにおいて初期設定処理が開始される。詳細は後述する。図9に示す画面上で「終了」ボタンがクリックされるとその画面が閉じる。
【0046】
図10は、ブリッジチップのプロセッサ213(図2参照)で実行されるプログラムのメインルーチンを示す図である。
【0047】
ここでは初期設定要求の有無の判定(ステップS11)と、初期設定要求があった場合の初期設定処理(ステップS20)と、一般的なリード(Read),ライト(Write)処理(ステップS30)が実行される。
【0048】
図11は、ブリッジチップにおける初期設定処理を、パソコン側の処理とともに示す図である。
【0049】
パソコン側で図9に示す画面が開かれて初期設定処理要求が行なわれると(図8のステップS03)、ブリッジチップでは、初期設定処理(図10のステップS20)が開始され、先ずは、パソコンからの最大アクセスセクタ数の受信待ちの状態となる(図11のステップS21)。パソコンからは、そのパソコンからの1回のコマンドでアクセス可能な最大アクセスセクタ数が通知される(ステップS51)。パソコンは、最大アクセスセクタ数を通知した後、初期設定終了待ちの状態となる(ステップS52)。
【0050】
ブリッジチップは、その最大アクセスセクタ数を受信すると、次にハードディスクの管理ブロック(図3参照)より、パーティション数(図3に示す例では3つ)の情報を取得し(ステップS22)、1つの分断ブロックを構成するセクタ数である分断ブロック数が決定される(ステップS23)。ここでは、分断ブロック数は、パーティション数、最大アクセスセクタ数、およびハードディスクの全容量に基づいて決定される。
【0051】
次に、その管理ブロック(図3参照)より、各パーティションの開始位置と容量が取得され(ステップS24)、パーティション数とパーティションの開始位置と容量とに基づいて変換テーブルが生成される(ステップS25)。変換テーブルの生成が終了すると、パソコンに向けて終了通知がなされ(ステップS26)、パソコンではその終了通知が受信される(ステップS52)。変換テーブル生成のステップ(ステップS25)では、一例として後述する図14に示すような変換テーブルが生成されるが、変換テーブル生成手順については後述することとし、次にリード/ライト処理について説明する。
【0052】
図12は、ブリッジチップにおけるリード/ライト処理(図10のステップS30)を示すフローチャートである。
【0053】
ブリッジチップがパソコンからリード又はライトの指示を受けると、変換テーブルに従って、そのリード先又はライト先のアドレス(論理LBA(LBA:Logical Block Address);図7(A)参照)が物理LBA(図7(B),(C)参照)に変換され(ステップS31)、その変換後の物理LBAがハードディスクドライブ22(図1参照)に送られてハードディスクドライブ22に内蔵されたハードディスクがアクセスされる(ステップS32)。
【0054】
図13は、図11のステップS25における変換テーブル生成処理を示すフローチャートである。
【0055】
ここでは、先ず、m=パーティション数、n=分断ブロック数とし、論理LBA(変数)を初期値0とする(ステップS611)。
【0056】
次に、変数rに、各パーティション(割付けが終わったパーティションは除く)のうちのセクタ数が最小のパーティションのセクタ数を代入する(ステップS612)。
【0057】
次にパーティションの番号を表わす変数pn=0とし(ステップS613)、ps[pn]<pl[pn]か否かが判定される(ステップS614)。ps[pn]は、初期値としてはパーティション番号pnの先頭のLBAを表わしており、pl[pn]はパーティション番号pnの最後のLBAを表わしている。
【0058】
最初のうちは、ps[pn]<pl[pn]であるため、次にステップS615に進み、論理LBA(ステップS611で初期値0に設定されている)と、物理LBAとしてのp=ps[pn]が変換テーブルに登録されて、ps[pn]が分断ブロック数=nだけインクリメントされる(ステップS615)。これにより、最初は、図14に示すように左上の論理LBA=0と物理LBA=0とが対応づけられる。
【0059】
次に、論理LBAが分断ブロック数=nだけインクリメントされ(ステップS616)、ハードディスクの全容量(変数)が分断ブロック数nだけ減算される(ステップS617)。この全容量は、初期値はハードディスクの全容量を表わしており、論理LBAと物理LBAが1つ対応づけられるごとに、分断ブロック数=nずつ減算される。
【0060】
次に、パーティション番号pnが1つインクリメントされて、次のパーティションの処理に移る(ステップS618)。
【0061】
そのインクリメントされた後のパーティション番号pnが、パーティション数mを超えるまでは、ステップS620はスキップされ、pn>mになると、ステップS612で設定された最小セクタ数rが分断ブロック数=nだけ減算されて、パーティション番号pnがpn=0に戻される(ステップS620)。
【0062】
次に、r=0か否かが判定され(ステップS621)、r≠0でないときは、ステップS614に戻る。ステップS614を2回目に通過したときは、pn=1であり、ステップS615では、図14の例では、論理LBA=10と物理LBA=100が対応づけられる。
【0063】
図14については、後述する。
【0064】
ステップS622では、全容量=0となったか否かが判定され、全容量≠0のときは、ステップS612に戻ってステップS612以降の処理が繰り返される。全容量=0になると、この変換テーブル生成処理が終了する。
【0065】
図14は、変換テーブルの一例を示す図である。
【0066】
図13に示す変換テーブル生成処理が実行されると、一例としてこの図14に示すような変換テーブルが生成される。
【0067】
この図14は、
パーティション数m=4
第1パーティションの先頭の論理LBA ps[0]=0
第2パーティションの先頭の論理LBA ps[1]=100
第3パーティションの先頭の論理LBA ps[2]=300
第4パーティションの先頭の論理LBA ps[3]=600
であって、各パーティションの容量はそれぞれ100,200,300,400セクタ、分断ブロック数n=10の場合の変換テーブルである。
【0068】
図12のステップS31では、例えばこの図14のように生成された変換テーブルが参照されて論理LBAが物理LBAに変換される。
【0069】
次に、第2実施形態を説明する。
【0070】
この第2実施形態においても、図1〜図6を参照して説明した内容はそのまま当てはまるため、ここでは重複した図示および説明は省略し、相違する点について説明する。
【0071】
図15は、第2実施形態におけるアドレス変換方式を示す図であり、前述した実施形態における図7に相当する図である。
【0072】
ここでは、第1〜第4パーテイションからなる4つのパーティションが設定されている。
【0073】
図15(A)は、第1〜第4パーティションの論理アドレスマップである。ここでは、第1〜第4パーティションの各々の論理LBAが、これら4つのパーティションの、各々のブロック数にそれぞれ比例するブロック数を持つ再配置領域が設定されて、それらの再配置領域が循環的に繰り返す物理LBAに変換される。
【0074】
図15(A)に示す各変数は、以下の通りである。
【0075】
nBlksHdd:ハードディスクのユーザ領域の全ブロック数
nBlksP1 :第1パーティションのブロック数
nBlksP2 :第2パーティションのブロック数
nBlksP3 :第3パーティションのブロック数
nBlksP4 :第4パーティションのブロック数
LbaP1 :第1パーティションの開始LBA
LbaP2 :第2パーティションの開始LBA
LbaP3 :第3パーティションの開始LBA
LbaP4 :第4パーティションの開始LBA
図15(B)は循環的に繰り返す再配置領域を示した図、図15(C)は、繰り返しの1つの単位である再配置単位領域を示した図である。
【0076】
図15(B),図15(C)に示す変数は以下の通りである。
【0077】
nBlksRep :再配置単位領域のブロック数
nRepArea :再配置単位領域数(nBlksHdd/nBlksRep)
nBlksP1Rep:再配置単位領域内の第1パーティションのブロック数
(nBlksP1/nRepArea)
nBlksP2Rep:再配置単位領域内の第2パーティションのブロック数
(nBlksP2/nRepArea)
nBlksP3Rep:再配置単位領域内の第3パーティションのブロック数
(nBlksP3/nRepArea)
nBlksP4Rep:再配置単位領域内の第4パーティションのブロック数
(nBlksP4/nRepArea)
ここで、再配置単位領域数nRepAreaは、かっこ内に示すように、ハードディスクのユーザ領域の全ブロック数nBlksHddを再配置単位ブロック数nBlksRepで割った値である。
【0078】
また、再配置単位領域内の第1パーティションのブロック数nBlksP1Repは、かっこ内に示す通り、第1パーティションのブロック数nBlksP1を再配置単位領域数nRepAreaで割った値である。再配置単位領域内の第2パーティション〜第4パーティションの各ブロック数も同様である。
【0079】
図16は、ブリッジチップで実行される、第2実施形態における初期設定処理を、パソコン側の処理とともに示した図であり、前述の実施形態においては図11に相当する図である。
【0080】
図11との相違点は、ステップS29である。このステップS29では、論理LBAから物理LBAに変換するための計算式が生成される。具体的には、図15に示した各変数の値が決定される。他のステップは図11と同じであり、重複説明は省略する。
【0081】
図17は、ブリッジチップで実行される、この第2実施形態におけるリード/ライト処理を示すフローチャートである。この図17は、前述の実施形態における図12に相当する図である。
【0082】
ステップS39では、図16のステップS29で生成された変換式に従って論理LBAが物理LBAに変換される。他の点は図12と同じである。
【0083】
図18は、図17のステップS39で実行される論理LBAから物理LBAへの変換処理を示すフローチャートである。
【0084】
ここでは、パソコンから送信されてきたリード用又はライト用の論理LBAがLBA(変数)に設定され(ステップS711)、そのLBAが第1パーティションに属するか否か(ステップS712)、第2パーティションに属するか否か(ステップS713)、第3パーティションに属するか第4パーティションに属するか(ステップS714)が判定される。そしてそのLBAが第1パーティションに属するときはステップS715の計算が行なわれ、第2パーティションに属するときはステップS716の計算が行なわれ、第3パーティションに属するときはステップS717の計算が行なわれ、第4パーティションに属するときはステップS718の計算が行なわれる。
【0085】
ステップS715では、第1パーティション内でのオフセットofslbaが
ofslba=LBA−LbaP1(LbaP1:第1パーティションの先頭;図15(A)参照)
により算出され、再配置単位領域内の第1パーティションのブロック数nBlksP1Repが変数nBlksPnRepに代入され、図15(C)に示す1つの再配置単位領域内でのオフセットofsrepが0(第1パーティション用の再配置単位領域の先頭)に設定される。ステップS716,S717,S718も同様である。
【0086】
ステップS719では、ステップS715,S716,S717,S718で算出されたそのパーティション内でのオフセットofslbaが、再配置単位領域内のそのパーティションのブロック数nBlksPnRepで割り算されて、商Xと余りYが算出される。
【0087】
ステップS720では、これらの商Xと余りY、さらに、再配置単位領域のブロック数nBlksRepと、図15(C)に示す再配置単位領域内でのオフセットofsrepとを用いて、物理LBAが、計算式
物理LBA=(nBlksRep*X)+ofsrep+Y
ただし*は乗算を表わす
により、算出される。
【0088】
図17のステップS32では、上記のようにして算出された物理LBAがハードディスクドライブ22(図1参照)に送られてそのハードディスクドライブ22に内蔵されたハードディスクがアクセスされる(ステップS32)。
【0089】
これらの実施形態に示すように、論理LBAから物理LBAへの変換は、変換テーブルを生成しておいてその変換テーブルを参照することにより行なってもよく、変換式を生成しておいてその変換式に基づいて行なってもよい。
【0090】
また、再配置の単位となる分断ブロック数は、各パーティションの大きさによらず互いに同一であってもよく、各パーティションの大きさに応じた大きさに設定してもよい。
【0091】
以上の各実施形態によれば、パーティションによらず転送レートが均一化される。
【符号の説明】
【0092】
10 パソコン
20 外付けハードディスク装置
21 ブリッジチップ
22 ハードディスクドライブ
211 ホストI/F
212 HDI/F
213 プロセッサ
【技術分野】
【0001】
本発明は、外付けのハードディスクドライブとホスト装置との間に介在するブリッジチップ、そのブリッジチップを含むハードディスク装置、および、そのブリッジチップ内で実行されるアドレス変換プログラムに関する。
【背景技術】
【0002】
近年はハードディスクの大容量化が進み、2TB(2テラバイト)程度もの大容量のハードディスクが当たり前になってきている。このため、ハードディスクを複数のパーティションに分けて各パーティションごとに利用することができるようになってきている。ここで、ハードディスクはその殆どがCAV(Constant Angular Velocity)方式が採用されており、ハードディスクの回転速度は一定である。しかし、回転速度は一定であってもハードディスクの外周と内周では線速度が異なり、外周側は線速度が速いため転送レートが速く、内周側は線速度が遅いため転送レートが遅くなる。このため、1台のハードディスクを複数のパーティションに分けて利用すると、パーティションごとの転送レートが異なるおそれがある。
【0003】
従来、ハードディスクにデータを書き込むにあたり、書込みデータをハードディスクの内側と外側とに交互に書き込むことが提案されている(特許文献1参照)。これも、転送レートの平準化には寄与するものの、これは、データの書込み順に基づいて平準化するものであり、1台のハードディスクを複数のパーティションに分けて利用する場合の、それらの複数のパーティションに対し転送レートが平準化されるとは限らない。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−87415号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、上記事情に鑑み、1台のハードディスクを複数のパーティションに分けて利用する場合の、パーティションごとの転送レートの平準化を図ることを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成する本発明のブリッジチップは、
ユーザデータを記憶するユーザ領域と、ユーザ領域を複数のパーティションに分割したときの各パーティションの所在を特定するパーティション情報を記憶する管理領域とを有するハードディスクをドライブするハードディスクドライブとの間の通信を担うハードディスクインタフェースと、
ハードディスクドライブをアクセスするホスト装置との間の通信を担うホストインタフェースと、
処理を実行するプロセッサとを備え、
上記プロセッサが、ホスト装置から受け取った、ハードディスクのアクセス先の論理ブロックアドレスを、ハードディスクのユーザ領域の最内周と最外周とのうちの一方から他方に向かって複数のパーティションについて循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行するものであることを特徴とする。
【0007】
ここで本発明のブリッジチップにおいて、上記プロセッサは、複数のパーティションのうちの最小ブロック数のパーティションに対応する再配置単位領域の累積のブロック数が最小ブロック数のパーティションのブロック数に達するまでは、論理ブロックアドレスを、複数のパーティションについて互いに同一のブロック数であって循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行するものであることが好ましい。
【0008】
あるいは、本発明のブリッジチップにおいて、上記プロセッサは、前記論理ブロックアドレスを、複数のパーティションそれぞれの各ブロック数にそれぞれ比例するブロック数であって循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行するものであることも好ましい態様である。
【0009】
また、本発明のブリッジチップにおいて、上記プロセッサが、論理ブロックアドレスと物理ブロックアドレスとの変換テーブルを作成する処理を実行し、論理ブロックアドレスを、その変換テーブルを参照して、物理ブロックアドレスに変換するものであることが好ましい。
【0010】
あるいは、本発明のブリッジチップにおいて、上記プロセッサが、論理ブロックアドレスと物理ブロックアドレスとの変換式を作成する処理を実行し、論理ブロックアドレスを、その変換式を用いて、物理ブロックアドレスに変換するものであることも好ましい態様である。
【0011】
また、上記目的を達成する本発明のハードディスク装置は、
ユーザデータを記憶するユーザ領域と、ユーザ領域を複数のパーティションに分割したときの各パーティションの所在を特定するパーティション情報を記憶する管理領域とを有するハードディスクをドライブするハードディスクドライブと、
ハードディスクドライブとの間の通信を担うハードディスクインタフェース、ハードディスクドライブをアクセスするホスト装置との間の通信を担うホストインタフェース、および処理を実行するプロセッサを備えたブリッジチップとを有し、
上記プロセッサが、ホスト装置から受け取った、ハードディスクのアクセス先の論理ブロックアドレスを、ハードディスクのユーザ領域の最内周と最外周とのうちの一方から他方に向かって複数のパーティションについて循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行するものであることを特徴とする。
【0012】
また、上記目的を達成する本発明のアドレス変換プログラムは、
ユーザデータを記憶するユーザ領域と、ユーザ領域を複数のパーティションに分割したときの各パーティションの所在を特定するパーティション情報を記憶する管理領域とを有するハードディスクをドライブするハードディスクドライブとの間の通信を担うハードディスクインタフェースと、ハードディスクドライブをアクセスするホスト装置との間の通信を担うホストインタフェースと、処理を実行するプロセッサとを備えたブリッジチップ内で実行され、プロセッサに、ホスト装置から受け取った、ハードディスクのアクセス先の論理ブロックアドレスを、ハードディスクのユーザ領域の最内周と最外周とのうちの一方から他方に向かって複数のパーティションについて循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行させることを特徴とする。
【発明の効果】
【0013】
本発明によれば、複数のパーティションごとの転送レートの平準化が図られる。
【図面の簡単な説明】
【0014】
【図1】本発明の一実施形態を含む全体構成図である。
【図2】ブリッジチップの装置構成図である。
【図3】ハードディスクの論理上のパーティションマップを示した図である。
【図4】管理ブロックの配置位置を示す図である。
【図5】管理ブロックの構成図である。
【図6】パーティション情報の詳細図である。
【図7】本実施形態におけるアドレス変換方式を示す図である。
【図8】ユーザによる、パーティション作成時の作業手順を示す図である。
【図9】アプリケーションプログラム上で開かれる初期設定処理要求画面を示す図である。
【図10】ブリッジチップのプロセッサで実行されるプログラムのメインルーチンを示す図である。
【図11】ブリッジチップにおける初期設定処理を、パソコン側の処理とともに示す図である。
【図12】ブリッジチップにおけるリード/ライト処理を示すフローチャートである。
【図13】変換テーブル生成処理を示すフローチャートである。
【図14】変換テーブルの一例を示す図である。
【図15】第2実施形態におけるアドレス変換方式を示す図である。
【図16】ブリッジチップで実行される、第2実施形態における初期設定処理を、パソコン側の処理とともに示した図である。
【図17】ブリッジチップで実行される、第2実施形態におけるリード/ライト処理を示すフローチャートである。
【図18】論理LBA(LBA:Logical Block Address)から物理LBAへの変換処理を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下、本発明の実施形態を説明する。
【0016】
図1は、本発明の一実施形態を含む全体構成図である。
【0017】
ここには、ホスト装置の一例としてのパソコン10と外付けハードディスク装置20が、ホストインタフェース(ホストI/F)で接続されている。このホストI/Fとしては、例えばUSB3.0の規格に準拠したインタフェース(I/F)が用いられる。
【0018】
外付けハードディスク装置20は、ブリッジチップ21とハードディスクドライブ22とで構成されている。
【0019】
ハードディスクドライブ22は、円盤形状の大容量(例えば2TB)のハードディスク(図示せず)を内蔵し、そのハードディスクを回転させながらそのハードディスクを直接にアクセスする構成を備えている。
【0020】
ブリッジチップ21は、パソコン10との間はホストI/Fで接続され、ハードディスクドライブ22との間ではハードディスクインタフェース(HDI/F)で接続されている。パソコン10とハードディスクドライブ22は、このようにインタフェースの規格が異なるため、ブリッジチップ21はそれらの間に介在して各インタフェースに適合するようにデータを変換する役割りを担っている。
【0021】
例えばここに示す例ではハードディスクドライブ22にはSATAインタフェース(SATAI/F)が使われており、ブリッジチップ21はパソコン10で使われているUSB3.0とハードディスクドライブ22で使われているSATAI/Fとの間でデータ変換を行ないながら、パソコン10とハードディスクドライブ22との間の通信を仲介する。
【0022】
尚、パソコン10等のホスト装置との間で使用するインタフェースは、USB3.0以外の、例えばIEEE1394b、Firewire800、eSATA等のいずれかの規格に準拠したものであってもよく、ハードディスクドライブ22との間で使用するインタフェースはSATA(Serial ATA)以外の、例えばPATA(Pararell ATA)等の規格に準拠したものであってもよい。
【0023】
尚、この図1では、ブリッジチップ21はハードディスクドライブ22とは別に示されているが、これは図示の都合上であって、実際には、ブリッジチップ21は、ハードディスクドライブ22を構成するする回路基板(図示せず)に搭載されていてもよい。
【0024】
図2は、ブリッジチップの装置構成図である。
【0025】
このブリッジチップ21は、パソコン10(図1参照)等のホスト装置との間の通信を担うホストI/F211と、ハードディスクドライブ22との間の通信を担うHDI/F212と、それらのインタフェース間でのデータ変換処理を担うプロセッサ213とを有する。
【0026】
図3は、ハードディスクの論理上のパーティションマップを示した図である。
【0027】
ハードディスクの先頭セクタには、パーティション情報を管理する管理ブロックが存在する。この管理ブロック内には、パーティションの数や、各パーティションの開始セクタ、セクタ数といった各パーティションの所在を特定する情報が記録されている。またここでは一例として、ハードディスクの、ユーザが利用できる領域が第1パーティション、第2パーティション、第3パーティションからなる3つのパーティションに分かれている。ここでは、各パーティションごとに利用者が異なり、あるいは同一の利用者であっても、あるパーティションにはある動画が格納され、他のパーティションには別の動画が格納されるなど、パーティションごとに別々に利用されるものとする。尚、図3は論理上のパーティションマップであり、各パーティションのアドレスは、後述するようにして、ハードディスク上の実際のアドレス(物理アドレス)に変換される。
【0028】
図4は、管理ブロックの配置位置を示す図である。ここではハードディスク装置をWindows(登録商標)パソコンで使用する場合を例に挙げて説明する。
【0029】
Windows(登録商標)パソコンで使用する場合のハードディスクの管理ブロックはセクタ0に存在する。セクタ0には管理ブロックの他にMBR(Master Boot Record)も存在しており、図4に示すように、MBRはバイトオフセット0000hから01BDhまで、管理ブロックはバイトオフセット01BEhから01FDhである。
【0030】
図5は、管理ブロックの構成図である。
【0031】
この管理ブロックには、この図5に示すように、最大4つのパーティション情報が格納される。すなわち、図3には3つのパーティションを示したが、この実施形態では最大4つのパーティションの設定が可能である。
【0032】
図6は、パーティション情報の詳細図である。
【0033】
図5に示す4つのパーティション情報の1つ1つが、この図6に示すデータ構造を有する。
【0034】
このパーティション情報自体は従来より規格で定義されているものであり、詳細説明は省略するが、開始ヘッド番号、開始セクタ番号、および開始シリンダ番号により、そのパーティションの、ハードディスク上の開始位置が定義されるなど、このパーティション情報により、そのパーティションの、ハードディスク上の開始位置や終了位置、そのパーティションの大きさなどが定義されている。
【0035】
図7は、本実施形態におけるアドレス変換方式を示す図である。ここでは管理ブロックの図示は省略し、ユーザが利用できる第1〜第3パーティションを示している。
【0036】
図7(A)は、第1〜第3パーティションの論理的なパーティションマップである。ここでは、第1〜第3パーティションの各々が、これら複数のパーティションについて互いに同一のブロック数からなる分断ブロックに分断され、それらの分断ブロックが、図7(B)に示すように、ハードディスクの外周側から内周側に向けて、第1〜第3パーティションについて循環的に再配置される。
【0037】
図7(C)は、第1パーティションが大きく、第2パーティションおよび第3パーティションが小さい場合の例である。この場合、寸法の小さいパーティションが終了するまでは、第1〜第3のパーティションについて循環的に再配置され、寸法の小さいパーティションの配置が終了すると残りの領域は寸法の大きいパーティションに割り当てられる。
【0038】
尚、ここでは、ハードディスクの外周側から内周側に向かって再配置しているが、これとは逆に、ハードディスクの内周側から外周側に向かって再配置してもよい。
【0039】
また、分断ブロックの寸法(ブロック数)は、本実施形態では、パーティションの数(ここに示す例では3つ)、パソコン10が一回にアクセスすることのできる最大アクセスセクタ数、およびハードディスクの全容量に基づいて決定されるが、これに限られずその寸法(ブロック数)を適宜決定してもよい。
【0040】
図8は、ユーザによる、パーティション作成時の作業手順を示す図である。
【0041】
ここでは先ず、例えば購入してきた外付けハードディスク装置がユーザの手作業によりパソコンに接続される(ステップS01)。
【0042】
次に、ユーザのパソコン操作により、必要分のパーティションが作成される(ステップS02)。パーティションの作成手順自体は従来と何ら変わるところがなく、詳細説明は省略する。
【0043】
次に、ユーザのパソコン操作により、初期設定処理要求がなされる(ステップS03)。ここでは、この実施形態のシステム用に作成されたアプリケーションプログラムが実行され、そのアプリケーションプログラム上で操作が行なわれる。
【0044】
図9は、そのアプリケーションプログラム上で開かれる初期設定処理要求画面を示す図である。
【0045】
パソコン上でのメニュー操作により、この図9の初期設定処理要求画面が開かれ、その画面上で「初期設定」ボタンがクリックされると、ブリッジチップにおいて初期設定処理が開始される。詳細は後述する。図9に示す画面上で「終了」ボタンがクリックされるとその画面が閉じる。
【0046】
図10は、ブリッジチップのプロセッサ213(図2参照)で実行されるプログラムのメインルーチンを示す図である。
【0047】
ここでは初期設定要求の有無の判定(ステップS11)と、初期設定要求があった場合の初期設定処理(ステップS20)と、一般的なリード(Read),ライト(Write)処理(ステップS30)が実行される。
【0048】
図11は、ブリッジチップにおける初期設定処理を、パソコン側の処理とともに示す図である。
【0049】
パソコン側で図9に示す画面が開かれて初期設定処理要求が行なわれると(図8のステップS03)、ブリッジチップでは、初期設定処理(図10のステップS20)が開始され、先ずは、パソコンからの最大アクセスセクタ数の受信待ちの状態となる(図11のステップS21)。パソコンからは、そのパソコンからの1回のコマンドでアクセス可能な最大アクセスセクタ数が通知される(ステップS51)。パソコンは、最大アクセスセクタ数を通知した後、初期設定終了待ちの状態となる(ステップS52)。
【0050】
ブリッジチップは、その最大アクセスセクタ数を受信すると、次にハードディスクの管理ブロック(図3参照)より、パーティション数(図3に示す例では3つ)の情報を取得し(ステップS22)、1つの分断ブロックを構成するセクタ数である分断ブロック数が決定される(ステップS23)。ここでは、分断ブロック数は、パーティション数、最大アクセスセクタ数、およびハードディスクの全容量に基づいて決定される。
【0051】
次に、その管理ブロック(図3参照)より、各パーティションの開始位置と容量が取得され(ステップS24)、パーティション数とパーティションの開始位置と容量とに基づいて変換テーブルが生成される(ステップS25)。変換テーブルの生成が終了すると、パソコンに向けて終了通知がなされ(ステップS26)、パソコンではその終了通知が受信される(ステップS52)。変換テーブル生成のステップ(ステップS25)では、一例として後述する図14に示すような変換テーブルが生成されるが、変換テーブル生成手順については後述することとし、次にリード/ライト処理について説明する。
【0052】
図12は、ブリッジチップにおけるリード/ライト処理(図10のステップS30)を示すフローチャートである。
【0053】
ブリッジチップがパソコンからリード又はライトの指示を受けると、変換テーブルに従って、そのリード先又はライト先のアドレス(論理LBA(LBA:Logical Block Address);図7(A)参照)が物理LBA(図7(B),(C)参照)に変換され(ステップS31)、その変換後の物理LBAがハードディスクドライブ22(図1参照)に送られてハードディスクドライブ22に内蔵されたハードディスクがアクセスされる(ステップS32)。
【0054】
図13は、図11のステップS25における変換テーブル生成処理を示すフローチャートである。
【0055】
ここでは、先ず、m=パーティション数、n=分断ブロック数とし、論理LBA(変数)を初期値0とする(ステップS611)。
【0056】
次に、変数rに、各パーティション(割付けが終わったパーティションは除く)のうちのセクタ数が最小のパーティションのセクタ数を代入する(ステップS612)。
【0057】
次にパーティションの番号を表わす変数pn=0とし(ステップS613)、ps[pn]<pl[pn]か否かが判定される(ステップS614)。ps[pn]は、初期値としてはパーティション番号pnの先頭のLBAを表わしており、pl[pn]はパーティション番号pnの最後のLBAを表わしている。
【0058】
最初のうちは、ps[pn]<pl[pn]であるため、次にステップS615に進み、論理LBA(ステップS611で初期値0に設定されている)と、物理LBAとしてのp=ps[pn]が変換テーブルに登録されて、ps[pn]が分断ブロック数=nだけインクリメントされる(ステップS615)。これにより、最初は、図14に示すように左上の論理LBA=0と物理LBA=0とが対応づけられる。
【0059】
次に、論理LBAが分断ブロック数=nだけインクリメントされ(ステップS616)、ハードディスクの全容量(変数)が分断ブロック数nだけ減算される(ステップS617)。この全容量は、初期値はハードディスクの全容量を表わしており、論理LBAと物理LBAが1つ対応づけられるごとに、分断ブロック数=nずつ減算される。
【0060】
次に、パーティション番号pnが1つインクリメントされて、次のパーティションの処理に移る(ステップS618)。
【0061】
そのインクリメントされた後のパーティション番号pnが、パーティション数mを超えるまでは、ステップS620はスキップされ、pn>mになると、ステップS612で設定された最小セクタ数rが分断ブロック数=nだけ減算されて、パーティション番号pnがpn=0に戻される(ステップS620)。
【0062】
次に、r=0か否かが判定され(ステップS621)、r≠0でないときは、ステップS614に戻る。ステップS614を2回目に通過したときは、pn=1であり、ステップS615では、図14の例では、論理LBA=10と物理LBA=100が対応づけられる。
【0063】
図14については、後述する。
【0064】
ステップS622では、全容量=0となったか否かが判定され、全容量≠0のときは、ステップS612に戻ってステップS612以降の処理が繰り返される。全容量=0になると、この変換テーブル生成処理が終了する。
【0065】
図14は、変換テーブルの一例を示す図である。
【0066】
図13に示す変換テーブル生成処理が実行されると、一例としてこの図14に示すような変換テーブルが生成される。
【0067】
この図14は、
パーティション数m=4
第1パーティションの先頭の論理LBA ps[0]=0
第2パーティションの先頭の論理LBA ps[1]=100
第3パーティションの先頭の論理LBA ps[2]=300
第4パーティションの先頭の論理LBA ps[3]=600
であって、各パーティションの容量はそれぞれ100,200,300,400セクタ、分断ブロック数n=10の場合の変換テーブルである。
【0068】
図12のステップS31では、例えばこの図14のように生成された変換テーブルが参照されて論理LBAが物理LBAに変換される。
【0069】
次に、第2実施形態を説明する。
【0070】
この第2実施形態においても、図1〜図6を参照して説明した内容はそのまま当てはまるため、ここでは重複した図示および説明は省略し、相違する点について説明する。
【0071】
図15は、第2実施形態におけるアドレス変換方式を示す図であり、前述した実施形態における図7に相当する図である。
【0072】
ここでは、第1〜第4パーテイションからなる4つのパーティションが設定されている。
【0073】
図15(A)は、第1〜第4パーティションの論理アドレスマップである。ここでは、第1〜第4パーティションの各々の論理LBAが、これら4つのパーティションの、各々のブロック数にそれぞれ比例するブロック数を持つ再配置領域が設定されて、それらの再配置領域が循環的に繰り返す物理LBAに変換される。
【0074】
図15(A)に示す各変数は、以下の通りである。
【0075】
nBlksHdd:ハードディスクのユーザ領域の全ブロック数
nBlksP1 :第1パーティションのブロック数
nBlksP2 :第2パーティションのブロック数
nBlksP3 :第3パーティションのブロック数
nBlksP4 :第4パーティションのブロック数
LbaP1 :第1パーティションの開始LBA
LbaP2 :第2パーティションの開始LBA
LbaP3 :第3パーティションの開始LBA
LbaP4 :第4パーティションの開始LBA
図15(B)は循環的に繰り返す再配置領域を示した図、図15(C)は、繰り返しの1つの単位である再配置単位領域を示した図である。
【0076】
図15(B),図15(C)に示す変数は以下の通りである。
【0077】
nBlksRep :再配置単位領域のブロック数
nRepArea :再配置単位領域数(nBlksHdd/nBlksRep)
nBlksP1Rep:再配置単位領域内の第1パーティションのブロック数
(nBlksP1/nRepArea)
nBlksP2Rep:再配置単位領域内の第2パーティションのブロック数
(nBlksP2/nRepArea)
nBlksP3Rep:再配置単位領域内の第3パーティションのブロック数
(nBlksP3/nRepArea)
nBlksP4Rep:再配置単位領域内の第4パーティションのブロック数
(nBlksP4/nRepArea)
ここで、再配置単位領域数nRepAreaは、かっこ内に示すように、ハードディスクのユーザ領域の全ブロック数nBlksHddを再配置単位ブロック数nBlksRepで割った値である。
【0078】
また、再配置単位領域内の第1パーティションのブロック数nBlksP1Repは、かっこ内に示す通り、第1パーティションのブロック数nBlksP1を再配置単位領域数nRepAreaで割った値である。再配置単位領域内の第2パーティション〜第4パーティションの各ブロック数も同様である。
【0079】
図16は、ブリッジチップで実行される、第2実施形態における初期設定処理を、パソコン側の処理とともに示した図であり、前述の実施形態においては図11に相当する図である。
【0080】
図11との相違点は、ステップS29である。このステップS29では、論理LBAから物理LBAに変換するための計算式が生成される。具体的には、図15に示した各変数の値が決定される。他のステップは図11と同じであり、重複説明は省略する。
【0081】
図17は、ブリッジチップで実行される、この第2実施形態におけるリード/ライト処理を示すフローチャートである。この図17は、前述の実施形態における図12に相当する図である。
【0082】
ステップS39では、図16のステップS29で生成された変換式に従って論理LBAが物理LBAに変換される。他の点は図12と同じである。
【0083】
図18は、図17のステップS39で実行される論理LBAから物理LBAへの変換処理を示すフローチャートである。
【0084】
ここでは、パソコンから送信されてきたリード用又はライト用の論理LBAがLBA(変数)に設定され(ステップS711)、そのLBAが第1パーティションに属するか否か(ステップS712)、第2パーティションに属するか否か(ステップS713)、第3パーティションに属するか第4パーティションに属するか(ステップS714)が判定される。そしてそのLBAが第1パーティションに属するときはステップS715の計算が行なわれ、第2パーティションに属するときはステップS716の計算が行なわれ、第3パーティションに属するときはステップS717の計算が行なわれ、第4パーティションに属するときはステップS718の計算が行なわれる。
【0085】
ステップS715では、第1パーティション内でのオフセットofslbaが
ofslba=LBA−LbaP1(LbaP1:第1パーティションの先頭;図15(A)参照)
により算出され、再配置単位領域内の第1パーティションのブロック数nBlksP1Repが変数nBlksPnRepに代入され、図15(C)に示す1つの再配置単位領域内でのオフセットofsrepが0(第1パーティション用の再配置単位領域の先頭)に設定される。ステップS716,S717,S718も同様である。
【0086】
ステップS719では、ステップS715,S716,S717,S718で算出されたそのパーティション内でのオフセットofslbaが、再配置単位領域内のそのパーティションのブロック数nBlksPnRepで割り算されて、商Xと余りYが算出される。
【0087】
ステップS720では、これらの商Xと余りY、さらに、再配置単位領域のブロック数nBlksRepと、図15(C)に示す再配置単位領域内でのオフセットofsrepとを用いて、物理LBAが、計算式
物理LBA=(nBlksRep*X)+ofsrep+Y
ただし*は乗算を表わす
により、算出される。
【0088】
図17のステップS32では、上記のようにして算出された物理LBAがハードディスクドライブ22(図1参照)に送られてそのハードディスクドライブ22に内蔵されたハードディスクがアクセスされる(ステップS32)。
【0089】
これらの実施形態に示すように、論理LBAから物理LBAへの変換は、変換テーブルを生成しておいてその変換テーブルを参照することにより行なってもよく、変換式を生成しておいてその変換式に基づいて行なってもよい。
【0090】
また、再配置の単位となる分断ブロック数は、各パーティションの大きさによらず互いに同一であってもよく、各パーティションの大きさに応じた大きさに設定してもよい。
【0091】
以上の各実施形態によれば、パーティションによらず転送レートが均一化される。
【符号の説明】
【0092】
10 パソコン
20 外付けハードディスク装置
21 ブリッジチップ
22 ハードディスクドライブ
211 ホストI/F
212 HDI/F
213 プロセッサ
【特許請求の範囲】
【請求項1】
ユーザデータを記憶するユーザ領域と、該ユーザ領域を複数のパーティションに分割したときの各パーティションの所在を特定するパーティション情報を記憶する管理領域とを有するハードディスクをドライブするハードディスクドライブとの間の通信を担うハードディスクインタフェースと、
前記ハードディスクドライブをアクセスするホスト装置との間の通信を担うホストインタフェースと、
処理を実行するプロセッサとを備え、
前記プロセッサが、前記ホスト装置から受け取った、前記ハードディスクのアクセス先の論理ブロックアドレスを、該ハードディスクのユーザ領域の最内周と最外周とのうちの一方から他方に向かって前記複数のパーティションについて循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行するものであることを特徴とするブリッジチップ。
【請求項2】
前記プロセッサは、前記複数のパーティションのうちの最小ブロック数のパーティションに対応する再配置単位領域の累積のブロック数が該最小ブロック数のパーティションのブロック数に達するまでは、前記論理ブロックアドレスを、該複数のパーティションについて互いに同一のブロック数であって循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行するものであることを特徴とする請求項1記載のブリッジチップ。
【請求項3】
前記プロセッサは、前記論理ブロックアドレスを、前記複数のパーティションそれぞれの各ブロック数にそれぞれ比例するブロック数であって循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行するものであることを特徴とする請求項1記載のブリッジチップ。
【請求項4】
前記プロセッサが、前記論理ブロックアドレスと前記物理ブロックアドレスとの変換テーブルを作成する処理を実行し、前記論理ブロックアドレスを、前記変換テーブルを参照して、前記物理ブロックアドレスに変換するものであることを特徴とする請求項1から3のうちいずれか1項記載のブリッジチップ。
【請求項5】
前記プロセッサが、前記論理ブロックアドレスと前記物理ブロックアドレスとの変換式を作成する処理を実行し、前記論理ブロックアドレスを、前記変換式を用いて、前記物理ブロックアドレスに変換するものであることを特徴とする請求項1から3のうちいずれか1項記載のブリッジチップ。
【請求項6】
ユーザデータを記憶するユーザ領域と、該ユーザ領域を複数のパーティションに分割したときの各パーティションの所在を特定するパーティション情報を記憶する管理領域とを有するハードディスクをドライブするハードディスクドライブと、
前記ハードディスクドライブとの間の通信を担うハードディスクインタフェース、前記ハードディスクドライブをアクセスするホスト装置との間の通信を担うホストインタフェース、および処理を実行するプロセッサを備えたブリッジチップとを有し、
前記プロセッサが、前記ホスト装置から受け取った、前記ハードディスクのアクセス先の論理ブロックアドレスを、該ハードディスクのユーザ領域の最内周と最外周とのうちの一方から他方に向かって前記複数のパーティションについて循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行するものであることを特徴とするハードディスク装置。
【請求項7】
ユーザデータを記憶するユーザ領域と、該ユーザ領域を複数のパーティションに分割したときの各パーティションの所在を特定するパーティション情報を記憶する管理領域とを有するハードディスクをドライブするハードディスクドライブとの間の通信を担うハードディスクインタフェースと、前記ハードディスクドライブをアクセスするホスト装置との間の通信を担うホストインタフェースと、処理を実行するプロセッサとを備えたブリッジチップ内で実行され、該プロセッサに、前記ホスト装置から受け取った、前記ハードディスクのアクセス先の論理ブロックアドレスを、該ハードディスクのユーザ領域の最内周と最外周とのうちの一方から他方に向かって前記複数のパーティションについて循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行させることを特徴とするアドレス変換プログラム。
【請求項1】
ユーザデータを記憶するユーザ領域と、該ユーザ領域を複数のパーティションに分割したときの各パーティションの所在を特定するパーティション情報を記憶する管理領域とを有するハードディスクをドライブするハードディスクドライブとの間の通信を担うハードディスクインタフェースと、
前記ハードディスクドライブをアクセスするホスト装置との間の通信を担うホストインタフェースと、
処理を実行するプロセッサとを備え、
前記プロセッサが、前記ホスト装置から受け取った、前記ハードディスクのアクセス先の論理ブロックアドレスを、該ハードディスクのユーザ領域の最内周と最外周とのうちの一方から他方に向かって前記複数のパーティションについて循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行するものであることを特徴とするブリッジチップ。
【請求項2】
前記プロセッサは、前記複数のパーティションのうちの最小ブロック数のパーティションに対応する再配置単位領域の累積のブロック数が該最小ブロック数のパーティションのブロック数に達するまでは、前記論理ブロックアドレスを、該複数のパーティションについて互いに同一のブロック数であって循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行するものであることを特徴とする請求項1記載のブリッジチップ。
【請求項3】
前記プロセッサは、前記論理ブロックアドレスを、前記複数のパーティションそれぞれの各ブロック数にそれぞれ比例するブロック数であって循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行するものであることを特徴とする請求項1記載のブリッジチップ。
【請求項4】
前記プロセッサが、前記論理ブロックアドレスと前記物理ブロックアドレスとの変換テーブルを作成する処理を実行し、前記論理ブロックアドレスを、前記変換テーブルを参照して、前記物理ブロックアドレスに変換するものであることを特徴とする請求項1から3のうちいずれか1項記載のブリッジチップ。
【請求項5】
前記プロセッサが、前記論理ブロックアドレスと前記物理ブロックアドレスとの変換式を作成する処理を実行し、前記論理ブロックアドレスを、前記変換式を用いて、前記物理ブロックアドレスに変換するものであることを特徴とする請求項1から3のうちいずれか1項記載のブリッジチップ。
【請求項6】
ユーザデータを記憶するユーザ領域と、該ユーザ領域を複数のパーティションに分割したときの各パーティションの所在を特定するパーティション情報を記憶する管理領域とを有するハードディスクをドライブするハードディスクドライブと、
前記ハードディスクドライブとの間の通信を担うハードディスクインタフェース、前記ハードディスクドライブをアクセスするホスト装置との間の通信を担うホストインタフェース、および処理を実行するプロセッサを備えたブリッジチップとを有し、
前記プロセッサが、前記ホスト装置から受け取った、前記ハードディスクのアクセス先の論理ブロックアドレスを、該ハードディスクのユーザ領域の最内周と最外周とのうちの一方から他方に向かって前記複数のパーティションについて循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行するものであることを特徴とするハードディスク装置。
【請求項7】
ユーザデータを記憶するユーザ領域と、該ユーザ領域を複数のパーティションに分割したときの各パーティションの所在を特定するパーティション情報を記憶する管理領域とを有するハードディスクをドライブするハードディスクドライブとの間の通信を担うハードディスクインタフェースと、前記ハードディスクドライブをアクセスするホスト装置との間の通信を担うホストインタフェースと、処理を実行するプロセッサとを備えたブリッジチップ内で実行され、該プロセッサに、前記ホスト装置から受け取った、前記ハードディスクのアクセス先の論理ブロックアドレスを、該ハードディスクのユーザ領域の最内周と最外周とのうちの一方から他方に向かって前記複数のパーティションについて循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行させることを特徴とするアドレス変換プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2012−59308(P2012−59308A)
【公開日】平成24年3月22日(2012.3.22)
【国際特許分類】
【出願番号】特願2010−198819(P2010−198819)
【出願日】平成22年9月6日(2010.9.6)
【出願人】(305054429)株式会社ワークビット (2)
【Fターム(参考)】
【公開日】平成24年3月22日(2012.3.22)
【国際特許分類】
【出願日】平成22年9月6日(2010.9.6)
【出願人】(305054429)株式会社ワークビット (2)
【Fターム(参考)】
[ Back to top ]