(57)【要約】【課題】  本発明は、外付けのハードディスクドライブとホスト装置との間に介在するブリッジチップ等に関し、１台のハードディスクドライブを複数のパーティションに分けて利用する場合の、パーティションごとの転送レートの平準化を図る。【解決手段】  ホスト装置から受け取った、ハードディスクのアクセス先の論理ブロックアドレスを、ユーザデータを記憶するユーザ領域と、そのユーザ領域を複数のパーティションに分割したときの各パーティションの所在を特定するパーティション情報を記憶する管理領域とを有するハードディスクのユーザ領域の最内周と最外周とのうちの一方から他方に向かって複数のパーティションについて循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する。【選択図】        図７
2012059308.tif 000002
【特許請求の範囲】
【請求項１】
ユーザデータを記憶するユーザ領域と、該ユーザ領域を複数のパーティションに分割したときの各パーティションの所在を特定するパーティション情報を記憶する管理領域とを有するハードディスクをドライブするハードディスクドライブとの間の通信を担うハードディスクインタフェースと、
前記ハードディスクドライブをアクセスするホスト装置との間の通信を担うホストインタフェースと、
処理を実行するプロセッサとを備え、
前記プロセッサが、前記ホスト装置から受け取った、前記ハードディスクのアクセス先の論理ブロックアドレスを、該ハードディスクのユーザ領域の最内周と最外周とのうちの一方から他方に向かって前記複数のパーティションについて循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行するものであることを特徴とするブリッジチップ。
【請求項２】
前記プロセッサは、前記複数のパーティションのうちの最小ブロック数のパーティションに対応する再配置単位領域の累積のブロック数が該最小ブロック数のパーティションのブロック数に達するまでは、前記論理ブロックアドレスを、該複数のパーティションについて互いに同一のブロック数であって循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行するものであることを特徴とする請求項１記載のブリッジチップ。
【請求項３】
前記プロセッサは、前記論理ブロックアドレスを、前記複数のパーティションそれぞれの各ブロック数にそれぞれ比例するブロック数であって循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行するものであることを特徴とする請求項１記載のブリッジチップ。
【請求項４】
前記プロセッサが、前記論理ブロックアドレスと前記物理ブロックアドレスとの変換テーブルを作成する処理を実行し、前記論理ブロックアドレスを、前記変換テーブルを参照して、前記物理ブロックアドレスに変換するものであることを特徴とする請求項１から３のうちいずれか１項記載のブリッジチップ。
【請求項５】
前記プロセッサが、前記論理ブロックアドレスと前記物理ブロックアドレスとの変換式を作成する処理を実行し、前記論理ブロックアドレスを、前記変換式を用いて、前記物理ブロックアドレスに変換するものであることを特徴とする請求項１から３のうちいずれか１項記載のブリッジチップ。
【請求項６】
ユーザデータを記憶するユーザ領域と、該ユーザ領域を複数のパーティションに分割したときの各パーティションの所在を特定するパーティション情報を記憶する管理領域とを有するハードディスクをドライブするハードディスクドライブと、
前記ハードディスクドライブとの間の通信を担うハードディスクインタフェース、前記ハードディスクドライブをアクセスするホスト装置との間の通信を担うホストインタフェース、および処理を実行するプロセッサを備えたブリッジチップとを有し、
前記プロセッサが、前記ホスト装置から受け取った、前記ハードディスクのアクセス先の論理ブロックアドレスを、該ハードディスクのユーザ領域の最内周と最外周とのうちの一方から他方に向かって前記複数のパーティションについて循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行するものであることを特徴とするハードディスク装置。
【請求項７】
ユーザデータを記憶するユーザ領域と、該ユーザ領域を複数のパーティションに分割したときの各パーティションの所在を特定するパーティション情報を記憶する管理領域とを有するハードディスクをドライブするハードディスクドライブとの間の通信を担うハードディスクインタフェースと、前記ハードディスクドライブをアクセスするホスト装置との間の通信を担うホストインタフェースと、処理を実行するプロセッサとを備えたブリッジチップ内で実行され、該プロセッサに、前記ホスト装置から受け取った、前記ハードディスクのアクセス先の論理ブロックアドレスを、該ハードディスクのユーザ領域の最内周と最外周とのうちの一方から他方に向かって前記複数のパーティションについて循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行させることを特徴とするアドレス変換プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外付けのハードディスクドライブとホスト装置との間に介在するブリッジチップ、そのブリッジチップを含むハードディスク装置、および、そのブリッジチップ内で実行されるアドレス変換プログラムに関する。
【背景技術】
【０００２】
近年はハードディスクの大容量化が進み、２ＴＢ（２テラバイト）程度もの大容量のハードディスクが当たり前になってきている。このため、ハードディスクを複数のパーティションに分けて各パーティションごとに利用することができるようになってきている。ここで、ハードディスクはその殆どがＣＡＶ（Ｃｏｎｓｔａｎｔ  Ａｎｇｕｌａｒ  Ｖｅｌｏｃｉｔｙ）方式が採用されており、ハードディスクの回転速度は一定である。しかし、回転速度は一定であってもハードディスクの外周と内周では線速度が異なり、外周側は線速度が速いため転送レートが速く、内周側は線速度が遅いため転送レートが遅くなる。このため、１台のハードディスクを複数のパーティションに分けて利用すると、パーティションごとの転送レートが異なるおそれがある。
【０００３】
従来、ハードディスクにデータを書き込むにあたり、書込みデータをハードディスクの内側と外側とに交互に書き込むことが提案されている（特許文献１参照）。これも、転送レートの平準化には寄与するものの、これは、データの書込み順に基づいて平準化するものであり、１台のハードディスクを複数のパーティションに分けて利用する場合の、それらの複数のパーティションに対し転送レートが平準化されるとは限らない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−８７４１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、上記事情に鑑み、１台のハードディスクを複数のパーティションに分けて利用する場合の、パーティションごとの転送レートの平準化を図ることを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成する本発明のブリッジチップは、
ユーザデータを記憶するユーザ領域と、ユーザ領域を複数のパーティションに分割したときの各パーティションの所在を特定するパーティション情報を記憶する管理領域とを有するハードディスクをドライブするハードディスクドライブとの間の通信を担うハードディスクインタフェースと、
ハードディスクドライブをアクセスするホスト装置との間の通信を担うホストインタフェースと、
処理を実行するプロセッサとを備え、
上記プロセッサが、ホスト装置から受け取った、ハードディスクのアクセス先の論理ブロックアドレスを、ハードディスクのユーザ領域の最内周と最外周とのうちの一方から他方に向かって複数のパーティションについて循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行するものであることを特徴とする。
【０００７】
ここで本発明のブリッジチップにおいて、上記プロセッサは、複数のパーティションのうちの最小ブロック数のパーティションに対応する再配置単位領域の累積のブロック数が最小ブロック数のパーティションのブロック数に達するまでは、論理ブロックアドレスを、複数のパーティションについて互いに同一のブロック数であって循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行するものであることが好ましい。
【０００８】
あるいは、本発明のブリッジチップにおいて、上記プロセッサは、前記論理ブロックアドレスを、複数のパーティションそれぞれの各ブロック数にそれぞれ比例するブロック数であって循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行するものであることも好ましい態様である。
【０００９】
また、本発明のブリッジチップにおいて、上記プロセッサが、論理ブロックアドレスと物理ブロックアドレスとの変換テーブルを作成する処理を実行し、論理ブロックアドレスを、その変換テーブルを参照して、物理ブロックアドレスに変換するものであることが好ましい。
【００１０】
あるいは、本発明のブリッジチップにおいて、上記プロセッサが、論理ブロックアドレスと物理ブロックアドレスとの変換式を作成する処理を実行し、論理ブロックアドレスを、その変換式を用いて、物理ブロックアドレスに変換するものであることも好ましい態様である。
【００１１】
また、上記目的を達成する本発明のハードディスク装置は、
ユーザデータを記憶するユーザ領域と、ユーザ領域を複数のパーティションに分割したときの各パーティションの所在を特定するパーティション情報を記憶する管理領域とを有するハードディスクをドライブするハードディスクドライブと、
ハードディスクドライブとの間の通信を担うハードディスクインタフェース、ハードディスクドライブをアクセスするホスト装置との間の通信を担うホストインタフェース、および処理を実行するプロセッサを備えたブリッジチップとを有し、
上記プロセッサが、ホスト装置から受け取った、ハードディスクのアクセス先の論理ブロックアドレスを、ハードディスクのユーザ領域の最内周と最外周とのうちの一方から他方に向かって複数のパーティションについて循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行するものであることを特徴とする。
【００１２】
また、上記目的を達成する本発明のアドレス変換プログラムは、
ユーザデータを記憶するユーザ領域と、ユーザ領域を複数のパーティションに分割したときの各パーティションの所在を特定するパーティション情報を記憶する管理領域とを有するハードディスクをドライブするハードディスクドライブとの間の通信を担うハードディスクインタフェースと、ハードディスクドライブをアクセスするホスト装置との間の通信を担うホストインタフェースと、処理を実行するプロセッサとを備えたブリッジチップ内で実行され、プロセッサに、ホスト装置から受け取った、ハードディスクのアクセス先の論理ブロックアドレスを、ハードディスクのユーザ領域の最内周と最外周とのうちの一方から他方に向かって複数のパーティションについて循環的に繰り返す再配置単位領域の物理ブロックアドレスに変換する処理を実行させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、複数のパーティションごとの転送レートの平準化が図られる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態を含む全体構成図である。
【図２】ブリッジチップの装置構成図である。
【図３】ハードディスクの論理上のパーティションマップを示した図である。
【図４】管理ブロックの配置位置を示す図である。
【図５】管理ブロックの構成図である。
【図６】パーティション情報の詳細図である。
【図７】本実施形態におけるアドレス変換方式を示す図である。
【図８】ユーザによる、パーティション作成時の作業手順を示す図である。
【図９】アプリケーションプログラム上で開かれる初期設定処理要求画面を示す図である。
【図１０】ブリッジチップのプロセッサで実行されるプログラムのメインルーチンを示す図である。
【図１１】ブリッジチップにおける初期設定処理を、パソコン側の処理とともに示す図である。
【図１２】ブリッジチップにおけるリード／ライト処理を示すフローチャートである。
【図１３】変換テーブル生成処理を示すフローチャートである。
【図１４】変換テーブルの一例を示す図である。
【図１５】第２実施形態におけるアドレス変換方式を示す図である。
【図１６】ブリッジチップで実行される、第２実施形態における初期設定処理を、パソコン側の処理とともに示した図である。
【図１７】ブリッジチップで実行される、第２実施形態におけるリード／ライト処理を示すフローチャートである。
【図１８】論理ＬＢＡ（ＬＢＡ：Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）から物理ＬＢＡへの変換処理を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態を説明する。
【００１６】
図１は、本発明の一実施形態を含む全体構成図である。
【００１７】
ここには、ホスト装置の一例としてのパソコン１０と外付けハードディスク装置２０が、ホストインタフェース（ホストＩ／Ｆ）で接続されている。このホストＩ／Ｆとしては、例えばＵＳＢ３．０の規格に準拠したインタフェース（Ｉ／Ｆ）が用いられる。
【００１８】
外付けハードディスク装置２０は、ブリッジチップ２１とハードディスクドライブ２２とで構成されている。
【００１９】
ハードディスクドライブ２２は、円盤形状の大容量（例えば２ＴＢ）のハードディスク（図示せず）を内蔵し、そのハードディスクを回転させながらそのハードディスクを直接にアクセスする構成を備えている。
【００２０】
ブリッジチップ２１は、パソコン１０との間はホストＩ／Ｆで接続され、ハードディスクドライブ２２との間ではハードディスクインタフェース（ＨＤＩ／Ｆ）で接続されている。パソコン１０とハードディスクドライブ２２は、このようにインタフェースの規格が異なるため、ブリッジチップ２１はそれらの間に介在して各インタフェースに適合するようにデータを変換する役割りを担っている。
【００２１】
例えばここに示す例ではハードディスクドライブ２２にはＳＡＴＡインタフェース（ＳＡＴＡＩ／Ｆ）が使われており、ブリッジチップ２１はパソコン１０で使われているＵＳＢ３．０とハードディスクドライブ２２で使われているＳＡＴＡＩ／Ｆとの間でデータ変換を行ないながら、パソコン１０とハードディスクドライブ２２との間の通信を仲介する。
【００２２】
尚、パソコン１０等のホスト装置との間で使用するインタフェースは、ＵＳＢ３．０以外の、例えばＩＥＥＥ１３９４ｂ、Ｆｉｒｅｗｉｒｅ８００、ｅＳＡＴＡ等のいずれかの規格に準拠したものであってもよく、ハードディスクドライブ２２との間で使用するインタフェースはＳＡＴＡ（Ｓｅｒｉａｌ  ＡＴＡ）以外の、例えばＰＡＴＡ（Ｐａｒａｒｅｌｌ  ＡＴＡ）等の規格に準拠したものであってもよい。
【００２３】
尚、この図１では、ブリッジチップ２１はハードディスクドライブ２２とは別に示されているが、これは図示の都合上であって、実際には、ブリッジチップ２１は、ハードディスクドライブ２２を構成するする回路基板（図示せず）に搭載されていてもよい。
【００２４】
図２は、ブリッジチップの装置構成図である。
【００２５】
このブリッジチップ２１は、パソコン１０（図１参照）等のホスト装置との間の通信を担うホストＩ／Ｆ２１１と、ハードディスクドライブ２２との間の通信を担うＨＤＩ／Ｆ２１２と、それらのインタフェース間でのデータ変換処理を担うプロセッサ２１３とを有する。
【００２６】
図３は、ハードディスクの論理上のパーティションマップを示した図である。
【００２７】
ハードディスクの先頭セクタには、パーティション情報を管理する管理ブロックが存在する。この管理ブロック内には、パーティションの数や、各パーティションの開始セクタ、セクタ数といった各パーティションの所在を特定する情報が記録されている。またここでは一例として、ハードディスクの、ユーザが利用できる領域が第１パーティション、第２パーティション、第３パーティションからなる３つのパーティションに分かれている。ここでは、各パーティションごとに利用者が異なり、あるいは同一の利用者であっても、あるパーティションにはある動画が格納され、他のパーティションには別の動画が格納されるなど、パーティションごとに別々に利用されるものとする。尚、図３は論理上のパーティションマップであり、各パーティションのアドレスは、後述するようにして、ハードディスク上の実際のアドレス（物理アドレス）に変換される。
【００２８】
図４は、管理ブロックの配置位置を示す図である。ここではハードディスク装置をＷｉｎｄｏｗｓ（登録商標）パソコンで使用する場合を例に挙げて説明する。
【００２９】
Ｗｉｎｄｏｗｓ（登録商標）パソコンで使用する場合のハードディスクの管理ブロックはセクタ０に存在する。セクタ０には管理ブロックの他にＭＢＲ（Ｍａｓｔｅｒ  Ｂｏｏｔ  Ｒｅｃｏｒｄ）も存在しており、図４に示すように、ＭＢＲはバイトオフセット００００ｈから０１ＢＤｈまで、管理ブロックはバイトオフセット０１ＢＥｈから０１ＦＤｈである。
【００３０】
図５は、管理ブロックの構成図である。
【００３１】
この管理ブロックには、この図５に示すように、最大４つのパーティション情報が格納される。すなわち、図３には３つのパーティションを示したが、この実施形態では最大４つのパーティションの設定が可能である。
【００３２】
図６は、パーティション情報の詳細図である。
【００３３】
図５に示す４つのパーティション情報の１つ１つが、この図６に示すデータ構造を有する。
【００３４】
このパーティション情報自体は従来より規格で定義されているものであり、詳細説明は省略するが、開始ヘッド番号、開始セクタ番号、および開始シリンダ番号により、そのパーティションの、ハードディスク上の開始位置が定義されるなど、このパーティション情報により、そのパーティションの、ハードディスク上の開始位置や終了位置、そのパーティションの大きさなどが定義されている。
【００３５】
図７は、本実施形態におけるアドレス変換方式を示す図である。ここでは管理ブロックの図示は省略し、ユーザが利用できる第１〜第３パーティションを示している。
【００３６】
図７（Ａ）は、第１〜第３パーティションの論理的なパーティションマップである。ここでは、第１〜第３パーティションの各々が、これら複数のパーティションについて互いに同一のブロック数からなる分断ブロックに分断され、それらの分断ブロックが、図７（Ｂ）に示すように、ハードディスクの外周側から内周側に向けて、第１〜第３パーティションについて循環的に再配置される。
【００３７】
図７（Ｃ）は、第１パーティションが大きく、第２パーティションおよび第３パーティションが小さい場合の例である。この場合、寸法の小さいパーティションが終了するまでは、第１〜第３のパーティションについて循環的に再配置され、寸法の小さいパーティションの配置が終了すると残りの領域は寸法の大きいパーティションに割り当てられる。
【００３８】
尚、ここでは、ハードディスクの外周側から内周側に向かって再配置しているが、これとは逆に、ハードディスクの内周側から外周側に向かって再配置してもよい。
【００３９】
また、分断ブロックの寸法（ブロック数）は、本実施形態では、パーティションの数（ここに示す例では３つ）、パソコン１０が一回にアクセスすることのできる最大アクセスセクタ数、およびハードディスクの全容量に基づいて決定されるが、これに限られずその寸法（ブロック数）を適宜決定してもよい。
【００４０】
図８は、ユーザによる、パーティション作成時の作業手順を示す図である。
【００４１】
ここでは先ず、例えば購入してきた外付けハードディスク装置がユーザの手作業によりパソコンに接続される（ステップＳ０１）。
【００４２】
次に、ユーザのパソコン操作により、必要分のパーティションが作成される（ステップＳ０２）。パーティションの作成手順自体は従来と何ら変わるところがなく、詳細説明は省略する。
【００４３】
次に、ユーザのパソコン操作により、初期設定処理要求がなされる（ステップＳ０３）。ここでは、この実施形態のシステム用に作成されたアプリケーションプログラムが実行され、そのアプリケーションプログラム上で操作が行なわれる。
【００４４】
図９は、そのアプリケーションプログラム上で開かれる初期設定処理要求画面を示す図である。
【００４５】
パソコン上でのメニュー操作により、この図９の初期設定処理要求画面が開かれ、その画面上で「初期設定」ボタンがクリックされると、ブリッジチップにおいて初期設定処理が開始される。詳細は後述する。図９に示す画面上で「終了」ボタンがクリックされるとその画面が閉じる。
【００４６】
図１０は、ブリッジチップのプロセッサ２１３（図２参照）で実行されるプログラムのメインルーチンを示す図である。
【００４７】
ここでは初期設定要求の有無の判定（ステップＳ１１）と、初期設定要求があった場合の初期設定処理（ステップＳ２０）と、一般的なリード（Ｒｅａｄ），ライト（Ｗｒｉｔｅ）処理（ステップＳ３０）が実行される。
【００４８】
図１１は、ブリッジチップにおける初期設定処理を、パソコン側の処理とともに示す図である。
【００４９】
パソコン側で図９に示す画面が開かれて初期設定処理要求が行なわれると（図８のステップＳ０３）、ブリッジチップでは、初期設定処理（図１０のステップＳ２０）が開始され、先ずは、パソコンからの最大アクセスセクタ数の受信待ちの状態となる（図１１のステップＳ２１）。パソコンからは、そのパソコンからの１回のコマンドでアクセス可能な最大アクセスセクタ数が通知される（ステップＳ５１）。パソコンは、最大アクセスセクタ数を通知した後、初期設定終了待ちの状態となる（ステップＳ５２）。
【００５０】
ブリッジチップは、その最大アクセスセクタ数を受信すると、次にハードディスクの管理ブロック（図３参照）より、パーティション数（図３に示す例では３つ）の情報を取得し（ステップＳ２２）、１つの分断ブロックを構成するセクタ数である分断ブロック数が決定される（ステップＳ２３）。ここでは、分断ブロック数は、パーティション数、最大アクセスセクタ数、およびハードディスクの全容量に基づいて決定される。
【００５１】
次に、その管理ブロック（図３参照）より、各パーティションの開始位置と容量が取得され（ステップＳ２４）、パーティション数とパーティションの開始位置と容量とに基づいて変換テーブルが生成される（ステップＳ２５）。変換テーブルの生成が終了すると、パソコンに向けて終了通知がなされ（ステップＳ２６）、パソコンではその終了通知が受信される（ステップＳ５２）。変換テーブル生成のステップ（ステップＳ２５）では、一例として後述する図１４に示すような変換テーブルが生成されるが、変換テーブル生成手順については後述することとし、次にリード／ライト処理について説明する。
【００５２】
図１２は、ブリッジチップにおけるリード／ライト処理（図１０のステップＳ３０）を示すフローチャートである。
【００５３】
ブリッジチップがパソコンからリード又はライトの指示を受けると、変換テーブルに従って、そのリード先又はライト先のアドレス（論理ＬＢＡ（ＬＢＡ：Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）；図７（Ａ）参照）が物理ＬＢＡ（図７（Ｂ），（Ｃ）参照）に変換され（ステップＳ３１）、その変換後の物理ＬＢＡがハードディスクドライブ２２（図１参照）に送られてハードディスクドライブ２２に内蔵されたハードディスクがアクセスされる（ステップＳ３２）。
【００５４】
図１３は、図１１のステップＳ２５における変換テーブル生成処理を示すフローチャートである。
【００５５】
ここでは、先ず、ｍ＝パーティション数、ｎ＝分断ブロック数とし、論理ＬＢＡ（変数）を初期値０とする（ステップＳ６１１）。
【００５６】
次に、変数ｒに、各パーティション（割付けが終わったパーティションは除く）のうちのセクタ数が最小のパーティションのセクタ数を代入する（ステップＳ６１２）。
【００５７】
次にパーティションの番号を表わす変数ｐｎ＝０とし（ステップＳ６１３）、ｐｓ［ｐｎ］＜ｐｌ［ｐｎ］か否かが判定される（ステップＳ６１４）。ｐｓ［ｐｎ］は、初期値としてはパーティション番号ｐｎの先頭のＬＢＡを表わしており、ｐｌ［ｐｎ］はパーティション番号ｐｎの最後のＬＢＡを表わしている。
【００５８】
最初のうちは、ｐｓ［ｐｎ］＜ｐｌ［ｐｎ］であるため、次にステップＳ６１５に進み、論理ＬＢＡ（ステップＳ６１１で初期値０に設定されている）と、物理ＬＢＡとしてのｐ＝ｐｓ［ｐｎ］が変換テーブルに登録されて、ｐｓ［ｐｎ］が分断ブロック数＝ｎだけインクリメントされる（ステップＳ６１５）。これにより、最初は、図１４に示すように左上の論理ＬＢＡ＝０と物理ＬＢＡ＝０とが対応づけられる。
【００５９】
次に、論理ＬＢＡが分断ブロック数＝ｎだけインクリメントされ（ステップＳ６１６）、ハードディスクの全容量（変数）が分断ブロック数ｎだけ減算される（ステップＳ６１７）。この全容量は、初期値はハードディスクの全容量を表わしており、論理ＬＢＡと物理ＬＢＡが１つ対応づけられるごとに、分断ブロック数＝ｎずつ減算される。
【００６０】
次に、パーティション番号ｐｎが１つインクリメントされて、次のパーティションの処理に移る（ステップＳ６１８）。
【００６１】
そのインクリメントされた後のパーティション番号ｐｎが、パーティション数ｍを超えるまでは、ステップＳ６２０はスキップされ、ｐｎ＞ｍになると、ステップＳ６１２で設定された最小セクタ数ｒが分断ブロック数＝ｎだけ減算されて、パーティション番号ｐｎがｐｎ＝０に戻される（ステップＳ６２０）。
【００６２】
次に、ｒ＝０か否かが判定され（ステップＳ６２１）、ｒ≠０でないときは、ステップＳ６１４に戻る。ステップＳ６１４を２回目に通過したときは、ｐｎ＝１であり、ステップＳ６１５では、図１４の例では、論理ＬＢＡ＝１０と物理ＬＢＡ＝１００が対応づけられる。
【００６３】
図１４については、後述する。
【００６４】
ステップＳ６２２では、全容量＝０となったか否かが判定され、全容量≠０のときは、ステップＳ６１２に戻ってステップＳ６１２以降の処理が繰り返される。全容量＝０になると、この変換テーブル生成処理が終了する。
【００６５】
図１４は、変換テーブルの一例を示す図である。
【００６６】
図１３に示す変換テーブル生成処理が実行されると、一例としてこの図１４に示すような変換テーブルが生成される。
【００６７】
この図１４は、
パーティション数ｍ＝４
第１パーティションの先頭の論理ＬＢＡ  ｐｓ［０］＝０
第２パーティションの先頭の論理ＬＢＡ  ｐｓ［１］＝１００
第３パーティションの先頭の論理ＬＢＡ  ｐｓ［２］＝３００
第４パーティションの先頭の論理ＬＢＡ  ｐｓ［３］＝６００
であって、各パーティションの容量はそれぞれ１００，２００，３００，４００セクタ、分断ブロック数ｎ＝１０の場合の変換テーブルである。
【００６８】
図１２のステップＳ３１では、例えばこの図１４のように生成された変換テーブルが参照されて論理ＬＢＡが物理ＬＢＡに変換される。
【００６９】
次に、第２実施形態を説明する。
【００７０】
この第２実施形態においても、図１〜図６を参照して説明した内容はそのまま当てはまるため、ここでは重複した図示および説明は省略し、相違する点について説明する。
【００７１】
図１５は、第２実施形態におけるアドレス変換方式を示す図であり、前述した実施形態における図７に相当する図である。
【００７２】
ここでは、第１〜第４パーテイションからなる４つのパーティションが設定されている。
【００７３】
図１５（Ａ）は、第１〜第４パーティションの論理アドレスマップである。ここでは、第１〜第４パーティションの各々の論理ＬＢＡが、これら４つのパーティションの、各々のブロック数にそれぞれ比例するブロック数を持つ再配置領域が設定されて、それらの再配置領域が循環的に繰り返す物理ＬＢＡに変換される。
【００７４】
図１５（Ａ）に示す各変数は、以下の通りである。
【００７５】
ｎＢｌｋｓＨｄｄ：ハードディスクのユーザ領域の全ブロック数
ｎＢｌｋｓＰ１  ：第１パーティションのブロック数
ｎＢｌｋｓＰ２  ：第２パーティションのブロック数
ｎＢｌｋｓＰ３  ：第３パーティションのブロック数
ｎＢｌｋｓＰ４  ：第４パーティションのブロック数
ＬｂａＰ１      ：第１パーティションの開始ＬＢＡ
ＬｂａＰ２      ：第２パーティションの開始ＬＢＡ
ＬｂａＰ３      ：第３パーティションの開始ＬＢＡ
ＬｂａＰ４      ：第４パーティションの開始ＬＢＡ
図１５（Ｂ）は循環的に繰り返す再配置領域を示した図、図１５（Ｃ）は、繰り返しの１つの単位である再配置単位領域を示した図である。
【００７６】
図１５（Ｂ），図１５（Ｃ）に示す変数は以下の通りである。
【００７７】
ｎＢｌｋｓＲｅｐ    ：再配置単位領域のブロック数
ｎＲｅｐＡｒｅａ    ：再配置単位領域数（ｎＢｌｋｓＨｄｄ／ｎＢｌｋｓＲｅｐ）
ｎＢｌｋｓＰ１Ｒｅｐ：再配置単位領域内の第１パーティションのブロック数
（ｎＢｌｋｓＰ１／ｎＲｅｐＡｒｅａ）
ｎＢｌｋｓＰ２Ｒｅｐ：再配置単位領域内の第２パーティションのブロック数
（ｎＢｌｋｓＰ２／ｎＲｅｐＡｒｅａ）
ｎＢｌｋｓＰ３Ｒｅｐ：再配置単位領域内の第３パーティションのブロック数
（ｎＢｌｋｓＰ３／ｎＲｅｐＡｒｅａ）
ｎＢｌｋｓＰ４Ｒｅｐ：再配置単位領域内の第４パーティションのブロック数
（ｎＢｌｋｓＰ４／ｎＲｅｐＡｒｅａ）
ここで、再配置単位領域数ｎＲｅｐＡｒｅａは、かっこ内に示すように、ハードディスクのユーザ領域の全ブロック数ｎＢｌｋｓＨｄｄを再配置単位ブロック数ｎＢｌｋｓＲｅｐで割った値である。
【００７８】
また、再配置単位領域内の第１パーティションのブロック数ｎＢｌｋｓＰ１Ｒｅｐは、かっこ内に示す通り、第１パーティションのブロック数ｎＢｌｋｓＰ１を再配置単位領域数ｎＲｅｐＡｒｅａで割った値である。再配置単位領域内の第２パーティション〜第４パーティションの各ブロック数も同様である。
【００７９】
図１６は、ブリッジチップで実行される、第２実施形態における初期設定処理を、パソコン側の処理とともに示した図であり、前述の実施形態においては図１１に相当する図である。
【００８０】
図１１との相違点は、ステップＳ２９である。このステップＳ２９では、論理ＬＢＡから物理ＬＢＡに変換するための計算式が生成される。具体的には、図１５に示した各変数の値が決定される。他のステップは図１１と同じであり、重複説明は省略する。
【００８１】
図１７は、ブリッジチップで実行される、この第２実施形態におけるリード／ライト処理を示すフローチャートである。この図１７は、前述の実施形態における図１２に相当する図である。
【００８２】
ステップＳ３９では、図１６のステップＳ２９で生成された変換式に従って論理ＬＢＡが物理ＬＢＡに変換される。他の点は図１２と同じである。
【００８３】
図１８は、図１７のステップＳ３９で実行される論理ＬＢＡから物理ＬＢＡへの変換処理を示すフローチャートである。
【００８４】
ここでは、パソコンから送信されてきたリード用又はライト用の論理ＬＢＡがＬＢＡ（変数）に設定され（ステップＳ７１１）、そのＬＢＡが第１パーティションに属するか否か（ステップＳ７１２）、第２パーティションに属するか否か（ステップＳ７１３）、第３パーティションに属するか第４パーティションに属するか（ステップＳ７１４）が判定される。そしてそのＬＢＡが第１パーティションに属するときはステップＳ７１５の計算が行なわれ、第２パーティションに属するときはステップＳ７１６の計算が行なわれ、第３パーティションに属するときはステップＳ７１７の計算が行なわれ、第４パーティションに属するときはステップＳ７１８の計算が行なわれる。
【００８５】
ステップＳ７１５では、第１パーティション内でのオフセットｏｆｓｌｂａが
ｏｆｓｌｂａ＝ＬＢＡ−ＬｂａＰ１（ＬｂａＰ１：第１パーティションの先頭；図１５（Ａ）参照）
により算出され、再配置単位領域内の第１パーティションのブロック数ｎＢｌｋｓＰ１Ｒｅｐが変数ｎＢｌｋｓＰｎＲｅｐに代入され、図１５（Ｃ）に示す１つの再配置単位領域内でのオフセットｏｆｓｒｅｐが０（第１パーティション用の再配置単位領域の先頭）に設定される。ステップＳ７１６，Ｓ７１７，Ｓ７１８も同様である。
【００８６】
ステップＳ７１９では、ステップＳ７１５，Ｓ７１６，Ｓ７１７，Ｓ７１８で算出されたそのパーティション内でのオフセットｏｆｓｌｂａが、再配置単位領域内のそのパーティションのブロック数ｎＢｌｋｓＰｎＲｅｐで割り算されて、商Ｘと余りＹが算出される。
【００８７】
ステップＳ７２０では、これらの商Ｘと余りＹ、さらに、再配置単位領域のブロック数ｎＢｌｋｓＲｅｐと、図１５（Ｃ）に示す再配置単位領域内でのオフセットｏｆｓｒｅｐとを用いて、物理ＬＢＡが、計算式
物理ＬＢＡ＝（ｎＢｌｋｓＲｅｐ＊Ｘ）＋ｏｆｓｒｅｐ＋Ｙ
ただし＊は乗算を表わす
により、算出される。
【００８８】
図１７のステップＳ３２では、上記のようにして算出された物理ＬＢＡがハードディスクドライブ２２（図１参照）に送られてそのハードディスクドライブ２２に内蔵されたハードディスクがアクセスされる（ステップＳ３２）。
【００８９】
これらの実施形態に示すように、論理ＬＢＡから物理ＬＢＡへの変換は、変換テーブルを生成しておいてその変換テーブルを参照することにより行なってもよく、変換式を生成しておいてその変換式に基づいて行なってもよい。
【００９０】
また、再配置の単位となる分断ブロック数は、各パーティションの大きさによらず互いに同一であってもよく、各パーティションの大きさに応じた大きさに設定してもよい。
【００９１】
以上の各実施形態によれば、パーティションによらず転送レートが均一化される。
【符号の説明】
【００９２】
１０    パソコン
２０    外付けハードディスク装置
２１    ブリッジチップ
２２    ハードディスクドライブ
２１１    ホストＩ／Ｆ
２１２    ＨＤＩ／Ｆ
２１３    プロセッサ
【図１】
2012059308.tif 000003
【図２】
2012059308.tif 000004
【図３】
2012059308.tif 000005
【図４】
2012059308.tif 000006
【図５】
2012059308.tif 000007
【図６】
2012059308.tif 000008
【図７】
2012059308.tif 000009
【図８】
2012059308.tif 000010
【図９】
2012059308.tif 000011
【図１０】
2012059308.tif 000012
【図１１】
2012059308.tif 000013
【図１２】
2012059308.tif 000014
【図１３】
2012059308.tif 000015
【図１４】
2012059308.tif 000016
【図１５】
2012059308.tif 000017
【図１６】
2012059308.tif 000018
【図１７】
2012059308.tif 000019
【図１８】
2012059308.tif 000020