説明

磁気ディスク装置のアクセス制御プログラム、このアクセス制御プログラムを用いたアクセス制御装置及び磁気ディスク装置

【課題】 磁気ヘッドの定点浮上の抑制効果を向上できる磁気ディスク装置のアクセス制御プログラムを提供する。
【解決手段】 磁気ディスクの書き込みまたは読み出しを行なう異なるシリンダ間に、書き込みまたは読み出しを行なわないスキップするシリンダを設けるため、磁気ディスク装置を利用する機器で発行するリード/ライトコマンドに指定された論理アドレスを、書き込みまたは読み出しを行なうシリンダの先にアクセスするシリンダの最後の論理アドレスと次にアクセスするシリンダの最初の論理アドレスとの間がスキップするシリンダに対応する論理アドレス分だけ論理アドレスをスキップした変換論理アドレスに変換する機能と、この変換論理アドレスを指定したリード/ライトコマンドを磁気ディスク装置に対して発行する機能とを与え、スキップするシリンダの数は、使用する必要があるシリンダの数とスキップするシリンダの数との合計が、磁気ディスクが有するシリンダの数を越えない範囲内となるように決定している。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、磁気ディスク装置のアクセス制御技術に係り、特に、磁気ディスク装置を実際の容量よりも小さい容量の磁気ディスク装置として用いるための磁気ディスク装置のアクセス制御技術に関する。
【背景技術】
【0002】
コンピュータなどの記憶手段として、円盤状の磁気ディスクを記録媒体とした磁気ディスク装置が用いられている。近年、磁気ディスク装置では、大容量化が進んでおり、寿命や故障などにより磁気ディスク装置を交換しようとすると、既に同一容量の磁気ディスク装置は製造中止になっており、以前用いていた磁気ディスク装置よりも大容量の磁気ディスク装置に交換せざるを得ない場合が生じる。また、大容量化が進んだことに伴い、磁気ディスク装置を実際の容量よりも小さい容量の磁気ディスク装置として用いる場合なども生じている。
【0003】
このため、以前用いていた磁気ディスク装置よりも大容量の磁気ディスク装置と交換する場合や、実際の磁気ディスク装置の容量よりも小さい容量の磁気ディスク装置として用いたい場合のように、磁気ディスク装置を実際の容量よりも小さい容量の磁気ディスク装置として用いる場合、その磁気ディスク装置を使用するコンピュータなどからは、以前の磁気ディスク装置と同一の容量か、または、実際の磁気ディスク装置の容量よりも小さい容量に見せ、磁気ディスク装置の磁気ディスクが有する全記憶エリアの一部のみを使用することになる。
【0004】
ところが、磁気ディスク装置の磁気ディスクが有する全記憶エリアの一部のみを使用すると、決まった一部のシリンダのみを使用することとなるうえ、大容量化によりシリンダの密度が高くなることでシリンダ間の距離が小さくなっていることから、磁気ディスクに対する書き込みや読み出しをおこなう磁気ヘッドが、ほぼ同じ位置にいる定点浮上状態になり易くなる。磁気ヘッドが定点浮上状態になると、磁気ヘッド位置の磁気ディスク上の潤滑材に“わだち”ができ磁性体がむき出しになってしまう場合がある。磁性体がむき出しになると、磁気ヘッドが磁気ディスクに接触した場合、磁性体を傷つけ、磁気ディスク装置に不具合が発生する可能性がある。
【0005】
特に、サーバなどでは、例えば24時間稼動で使用するといった場合が多く、サーバなどに使用している磁気ディスク装置は、磁気ディスク装置の作動頻度がクライアントとなるコンピュータなどに比べて高い。このため、定点浮上によって磁気ディスク装置に不具合が発生する可能性が高くなる。
【0006】
このような磁気ヘッドの定点浮上を抑制するため、磁気ディスクの外周から内周に向かって同心円上に設けられたシリンダを一つ飛ばしでデータ記憶領域として用いることが提案されている(例えば、特許文献1参照)。
【0007】
【特許文献1】特開2003−296904号公報(第4−5頁、第2図)
【発明の開示】
【発明が解決しようとする課題】
【0008】
ところで、特許文献1のように同心円上に設けられたシリンダを一つ飛ばしでデータ記憶領域として用いる場合、交換後の磁気ディスク装置を交換前の磁気ディスク装置と同一の小さい容量、または、実際の磁気ディスク装置の容量よりも小さい容量で用いるとき、その容量によっては、例えば磁気ディスクの外側の数本のシリンダしか使用しないことがある。このように、数本程度のシリンダしか使用しないで済むときなどでは、大容量化によりシリンダの密度が高くなることでシリンダ間の距離が小さくなっていることから、一つ飛ばしであっても結局、定点浮上状態となってしまい、磁気ヘッドの定点浮上を抑制できない場合がある。したがって、磁気ヘッドの定点浮上の抑制効果を向上した磁気ディスク装置のアクセス技術が必要とされている。
【0009】
本発明の課題は、磁気ヘッドの定点浮上の抑制効果を向上することにある。
【課題を解決するための手段】
【0010】
本発明の、磁気ディスクへのデータの書き込み及び読み出しを行なうための磁気ディスク装置のアクセス制御プログラムは、磁気ディスク装置を利用する機器で発行するリード/ライトコマンドに指定された論理アドレスを、書き込みまたは読み出しを行なうシリンダの先にアクセスするシリンダの最後の論理アドレスと次にアクセスするシリンダの最初の論理アドレスとの間がスキップするシリンダに対応する論理アドレス分だけ論理アドレスをスキップした変換論理アドレスに変換する機能と、この変換論理アドレスを指定したリード/ライトコマンドを磁気ディスク装置に対して発行する機能とを与え、スキップするシリンダの数は、使用する必要があるシリンダの数とスキップするシリンダの数との合計が、磁気ディスクが有するシリンダの数を越えない範囲内となるように決定していることにより上記課題を解決する。
【0011】
このようなアクセス制御プログラムを用いることにより、スキップするシリンダの数をできるだけ多くすることによって、磁気ディスクを使用する領域が、磁気ディスクの一部分の近接したシリンダに集中するのが抑制される。したがって、磁気ヘッドが磁気ディスクのできるだけ広い範囲を動くようにでき、定点浮上の抑制効果を向上できる。
【0012】
また、本発明の、磁気ディスクへのデータの書き込み及び読み出しを行なうための磁気ディスク装置のアクセス制御プログラムは、交換後の磁気ディスク装置の磁気ディスクへのデータの書き込み及び読み出しを行なうため、この交換後の磁気ディスク装置よりも容量が小さい交換前の磁気ディスク装置の磁気ディスクが有していたシリンダ数を使用し、かつ、交換後の磁気ディスク装置の磁気ディスクの1つのシリンダが有するセクタのうち、交換前の磁気ディスク装置の磁気ディスクの1つのシリンダが有していたセクタ数を使用する機能を与えることにより上記課題を解決する。
【0013】
このとき、交換後の磁気ディスク装置の磁気ディスクの1つのシリンダが有する全セクタのうち、の交換後の磁気ディスク装置よりも容量が小さい交換前の磁気ディスク装置の1つのシリンダが有するセクタ数よりも多い分のセクタに1セクタ加えた数のセクタをスキップするように受信論理アドレスを変換論理アドレスに変換する機能を与える。
【0014】
さらに、磁気ディスク装置を利用する機器で発行するリード/ライトコマンドに指定された論理アドレスを、使用するシリンダのうちの1つのシリンダの最後の論理アドレスとこのシリンダの次にアクセスするシリンダの最初の論理アドレスとの間が、少なくとも交換後の磁気ディスク装置の磁気ディスクにおいて交換前の磁気ディスク装置の磁気ディスクの1つのシリンダにおけるセクタ数よりも増えるセクタ数分に対応する論理アドレス分だけスキップした変換論理アドレスに変換する機能と、変換論理アドレスを指定したリード/ライトコマンドを磁気ディスク装置に対して発行する機能とを与えるアクセス制御プログラムとする。
【0015】
このようなアクセス制御プログラムとすることにより、大容量の磁気ディスク装置に交換しても、交換前の小容量の磁気ディスク装置と同じ数のシリンダを利用することになる。このため、磁気ディスクを使用する領域が、磁気ディスクの一部分の近接したシリンダに集中するのが抑制され、磁気ヘッドが磁気ディスクのできるだけ広い範囲を動くようにでき、定点浮上の抑制効果を向上できる。
【0016】
さらに、変換論理アドレスは、磁気ディスク装置を利用する機器で発行する論理アドレスをアドレス変換テーブルに基づいて変換され作成されたものであるアクセス制御プログラムとする。このようなアクセス制御プログラムとすれば、変換アドレスの作成処理を簡素化できるので望ましい。
【0017】
また、本発明の、磁気ディスクへのデータの書き込み及び読み出しを行なうための磁気ディスク装置のアクセス制御プログラムは、磁気ディスクへの書き込みを行なうとき、この磁気ディスクの異なるシリンダで構成された異なる領域に同一の内容を書き込む機能と、磁気ディスクからの読み出しを行なうとき、磁気ディスクの異なる領域のいずれかの領域から読み出しを行なう機能と、磁気ディスクへの書き込みまたは読み出しのためにアクセスする毎にアクセスする領域を変える機能とを与えるアクセス制御プログラムとすることにより上記課題を解決する。
【0018】
さらに、磁気ディスクへの書き込みを行なうとき、磁気ディスク装置を利用する機器で発行するライトコマンドに指定された論理アドレスを、このライトコマンドに指定された論理アドレスを磁気ディスク装置に対して発行すると共に、このライトコマンドに指定された論理アドレスを含むシリンダが属した領域と異なる領域のシリンダが含む論理アドレスで構成された異なる領域となるアドレス分だけこのライトコマンドに指定された論理アドレスに加算した別の論理アドレスを指定したライトコマンドを磁気ディスク装置に対して発行する機能と、この磁気ディスクへの書き込みを行なうとき、前回のライトコマンドで最後にアクセスした領域、または、前回のリードコマンドでアクセスした領域を識別する情報に基づいて、今回のライトコマンドに指定された論理アドレスを含むシリンダが属した領域から書き込みを行なうか、別の論理アドレスを含むシリンダが属した領域から書き込みを行なうかを判定する機能と、前回のライトコマンドで最後にアクセスした領域、または、前回のリードコマンドでアクセスした領域を識別する情報に基づいて、今回のリードコマンドに指定された論理アドレスを含むシリンダが属した領域から読み出しを行なうか、前記別の論理アドレスを含むシリンダが属した領域から読み出しを行なうかを判定し、この判定に応じて今回のリードコマンドに指定された論理アドレス、または、別の論理アドレスを指定したリードコマンドを磁気ディスク装置に対して発行する機能とを与えるアクセス制御プログラムとする。
【0019】
このようなアクセス制御プログラムとすることにより、磁気ディスクへの書き込みや読み出しを行なうために磁気ディスクへアクセスする毎に、磁気ディスクの異なる領域に磁気ヘッドが移動する。このため、磁気ヘッドは、磁気ディスクの異なる領域に分散してアクセスすることになる。したがって、磁気ヘッド移動をできるだけ大きくでき、定点浮上の抑制効果を向上できる。
【0020】
また、磁気ディスクへの書き込みを行なうとき、この磁気ディスクの異なるシリンダで構成された異なる領域に同一の内容を書き込む機能は、磁気ディスクへの書き込みを行なうとき、磁気ディスクの異なる面または磁気ディスクを複数有するときはこれら複数の磁気ディスクの異なる磁気ディスクに書き込みを行なうアクセス制御プログラムとする。このようなアクセス制御プログラムとすることにより、磁気ディスクに不具合が発生しても、不具合が発生していない別のヘッドで別の領域から読み出しを行なうことで動作を続行できる。
【0021】
また、上記のいずれかのアクセス制御プログラムを記録した記録媒体とする。
【0022】
さらに、上記のいずれかのアクセス制御プログラムを記憶した記憶手段と、この記憶手段に記憶したアクセス制御プログラムを用いて磁気ディスク装置を利用する機器で発行したリード/ライトコマンドの処理を行ない、磁気ディスクに対してリード/ライトコマンドを発行する処理部とを有するアクセス制御装置とする。
【0023】
さらに、上記のいずれかのアクセス制御プログラムを用いて磁気ディスク装置を利用する機器で発行したリード/ライトコマンドを処理し、磁気ディスクへのアクセスを行なう磁気ディスク装置とする。
【発明の効果】
【0024】
本発明によれば、磁気ヘッドの定点浮上の抑制効果を向上できる。
【発明を実施するための最良の形態】
【0025】
(第1の実施形態)
以下、本発明を適用してなる磁気ディスク装置のアクセス制御プログラム及びこのアクセス制御プログラムを用いたアクセス制御装置の第1の実施形態について図1乃至図6を参照して説明する。図1は、本発明を適用してなるアクセス制御装置を設け、交換後の大容量の磁気ディスク装置を交換前の小容量の磁気ディスク装置と同じ容量で用いる様子を模式的に示すブロック図である。図2は、本発明を適用してなるアクセス制御装置の概略構成を示すブロック図である。図3は、交換前の小容量の磁気ディスク装置と交換後の大容量の磁気ディスク装置の仕様を比較した一例を示す図である。図4は、交換後の磁気ディスク装置のシリンダのスキップ数と使用するシリンダの数の関係を示す図である。図5は、本発明を適用してなる磁気ディスク装置のアクセス制御プログラムが使用するアドレス変換テーブルの一例を示す図である。図6は、本発明を適用してなる磁気ディスク装置のアクセス制御プログラムによる動作を示すフロー図である。
【0026】
なお、本実施形態では、使用できなくなった磁気ディスク装置を、その磁気ディスク装置よりも大容量の磁気ディスク装置に交換する場合を例とし、SCSIによりサーバやパーソナルコンピュータなどに接続された磁気ディスク装置を例として説明を行う。また、本実施形態のアクセス制御プログラムによるアクセス方式は、磁気ディスク装置がサーバやパーソナルコンピュータなどに内蔵されている場合でも、外付けになっている場合でも用いることができる。さらに、本実施形態では、説明をわかりやすくするため、1枚の磁気ディスクを例とし、シリンダがこの1枚の磁気ディスクの表裏の対応する位置にあるトラックからなる場合について説明している。しかし、本実施形態で説明するアクセス制御プログラムによるアクセス方式は、磁気ディスクが複数枚で、シリンダがこれら複数枚の磁気ディスクの各々の表裏の対応する位置にあるトラックからなる場合でも適用できる。
【0027】
本実施形態では、磁気ディスク装置1は、図1に示すように、アクセス制御装置3を介してSCSIケーブル5により、磁気ディスク装置1を利用するコンピュータなどに設けられたSCSIアダプタ7に接続されている。磁気ディスク装置1は、磁気ディスク装置1よりも容量が小さい磁気ディスク装置9と交換して設置されるものであり、磁気ディスク装置9と同じ容量の磁気ディスク装置として用いようとするものである。
【0028】
交換前の小容量の磁気ディスク装置9は、SCSIケーブル5により直接SCSIアダプタ7に接続され、SCSIアダプタ7から発行される読み出し及び書き取りのコマンドつまりリード/ライトコマンドを直接受けて磁気ディスク装置9が有する磁気ディスク9aへのアクセスを行なっていた。しかし、交換後の大容量の磁気ディスク装置1は、アクセス制御装置3を介してSCSIアダプタ7に接続されており、SCSIアダプタ7から発行されるリード/ライトコマンドを受けたアクセス制御装置3から発行されたリード/ライトコマンドを直接受けて磁気ディスク装置1が有する磁気ディスク1aへのアクセスを行なう。
【0029】
アクセス制御装置3は、SCSIアダプタ7から送られたリード/ライトコマンド内に指定されている磁気ディスク装置へのアクセス開始セクタを示す論理アドレス及びアクセスするセクタ数を示す転送ブロック数を必要に応じて変換し、1または複数のリード/ライトコマンドを、SCSIケーブル5を介して磁気ディスク装置1に発行するものである。
【0030】
アクセス制御装置3は、図2に示すように、μプロセッサ(以下MPUと称する)13、ROM15、RAM17、及び、2つのSCSIコントローラ19、21などを備えている。また、MPU13、ROM15、RAM17、及び、2つのSCSIコントローラ19、21などは、ローカルバス23によって接続されている。ROM15には、複数のシリンダをスキップさせるためのアドレス変換テーブルを含めた磁気ディスク装置へのアクセス制御プログラムが格納されている。MPU13は、ROM15に格納されているアクセス制御プログラムによりSCSIコントローラ19、SCSIコントローラ21を制御する。RAM17は、リード/ライトコマンドのデータバッファ及びアクセス制御プログラムで使用するフラグワークデータなどの格納用に使用する。SCSIコントローラ19には、SCSIアダプタ7に接続される側のSCSIケーブル5が、SCSIコントローラ21には、磁気ディスク装置1に接続される側のSCSIケーブル5が接続されている。
【0031】
このようなアクセス制御装置3では、ROM15に格納されているアクセス制御プログラムにより、SCSIコントローラ19がSCSIアダプタ7からSCSIケーブル5を介して送られてくるリード/ライトコマンドを受信すると、アドレス変換テーブルにより論理アドレス及び転送ブロック数を必要に応じて変換し、SCSIコントローラ21からSCSIケーブル5を介して磁気ディスク装置1にリード/ライトコマンドを発行する。
【0032】
ここで、交換後の大容量の磁気ディスク装置1の磁気ディスク1aでも、交換前の小容量の磁気ディスク装置9の磁気ディスク9aでも、物理的な先頭セクタより、SCSIコマンドで指定している論理アドレス0が割り当てられ、物理的な先頭セクタからそのシリンダが有する先頭セクタに続く各セクタに順次連続する論理アドレスが割り当てられている。さらに、論理アドレスは、交換後の大容量の磁気ディスク装置1でも、交換前の小容量の磁気ディスク装置9でも、外側のシリンダから内側のシリンダに向けて全てのシリンダの各セクタに順に連続的に割り当てられている。
【0033】
そして、ROM15に格納されているアドレス変換テーブルは、複数のシリンダをスキップして書き込み及び読み出しを行うため、SCSIアダプタ7から発行されたリード/ライトコマンド内に指定されている論理アドレスを、磁気ディスク装置1の磁気ディスク1aのスキップするシリンダに割り当てられている論理アドレスの分だけスキップさせた変換論理アドレスに変換するのに用いられる。
【0034】
交換前の小容量の磁気ディスク装置9と交換後の大容量の磁気ディスク装置1の仕様を比較すると、図3に示すように、交換前の小容量の磁気ディスク装置9は、磁気ディスク9aの1トラックのセクタ数が64、磁気ヘッド数が2、シリンダ数が4,578である。したがって、1セクタの容量は512Bであるので、交換前の小容量の磁気ディスク装置9の記憶容量は、512*64*2*4,578=300,023,808B≒300MBとなる。これに対して、交換後の大容量の磁気ディスク装置1は、1トラックのセクタ数が1,024、磁気ヘッド数が2、シリンダ数が76,294であるため、記憶容量は、512*1,024*2*76,294=80,000,057,344B≒80GBとなる。
【0035】
交換後の大容量の磁気ディスク装置1を交換前の小容量の磁気ディスク装置9の容量の磁気ディスク装置として使用するとき、つまり、交換後の大容量の磁気ディスク装置1を交換前の小容量の磁気ディスク装置9の容量分使用するとき、図4に示すように、シリンダをスキップせずに使用した場合の交換後の大容量の磁気ディスク装置1における使用シリンダ数は、交換前の小容量の磁気ディスク装置9の全セクタ数を交換後の大容量の磁気ディスク装置1の1シリンダあたりのセクタ数で割った数であるから、64*2*4,578/1,024*2*76,294=585,984/1,024=286.125となる。したがって、少数点以下切り上げると、大容量の磁気ディスク装置1の全シリンダ数76,294シリンダのうち1−287シリンダしか使用しないことになり、ほとんど磁気ヘッドが移動しない定点浮上状態となる。
【0036】
一方、磁気ディスク装置1の磁気ディスク1aで使用する必要がある287シリンダを1シリンダずつスキップさせてシリンダを使用したとすると、磁気ディスク1aの外側から内側に向けてシリンダを使用してゆくときの最も内側の使用するシリンダ、つまり、最終使用シリンダは、スキップしていないときよりも286シリンダ分磁気ディスク1aの内側に移動する。したがって、大容量の磁気ディスク装置1において複数のシリンダをスキップする場合、使用するシリンダ間でnシリンダスキップした場合の最終使用シリンダは、287+286*nとなる。
【0037】
このことから、使用するシリンダ間でnシリンダスキップした場合の最終使用シリンダまでのシリンダ数を見ると、例えば図4に示すように、300シリンダスキップすると最終使用シリンダが交換後の磁気ディスク装置1の磁気ディスク1aのシリンダ数より大きくなってしまう。このため、本実施形態では、200シリンダスキップすることとし、使用するシリンダ間で200シリンダスキップするためのアドレス変換テーブルを用いている。使用するシリンダ間で200シリンダスキップしながら必要な容量となる287シリンダ使用すると、磁気ディスク1a全シリンダ76,294のうち、1−57,487シリンダの間を磁気ヘッドが移動することになり、スキップしない場合や、1シリンダスキップして1−573シリンダの間を使用する場合に比べて磁気ヘッドの動きが大幅に大きくなる。
【0038】
なお、本実施形態では、200シリンダスキップすることとしているが、交換後の磁気ディスク装置1の磁気ディスク1aのシリンダ数より大きくならない範囲で最終使用シリンダまでのシリンダ数が最も大きくなるようにスキップするシリンダ数を設定すれば、磁気ヘッドの動きを最大にできるので望ましい。スキップするシリンダ数は、交換後の磁気ディスク装置1の磁気ディスク1aが有するシリンダ数やシリンダの密度などに応じて、磁気ヘッドが定点浮上状態にならないように設定を行なう。
【0039】
このように、アクセス制御装置3のアクセス制御プログラムは、図5に示されているようなアドレス変換テーブルを用い、SCSIアダプタ7から発行されたリード/ライトコマンド内に指定されている論理アドレスつまり受信論理アドレスを、交換後の大容量の磁気ディスク装置1に対して発行するリード/ライトコマンド内に指定する200シリンダスキップするための論理アドレスつまり変換論理アドレスに変換する。
【0040】
例えば、交換後の大容量の磁気ディスク装置1の最初の1シリンダのセクタを示す変換論理アドレス0−2,047は、スキップする必要がないので変換する必要はなく、受信論理アドレスのままである。しかし、磁気ヘッドが最初のシリンダから2つ目のシリンダに跨ってデータなどの書き込みや読み出しを行なわなければならない場合、つまり、最初のシリンダ渡りが発生する場合、最初のシリンダの最後のセクタの受信論理アドレス2,048から200シリンダスキップするように受信論理アドレスを変換論理アドレスに変換しなければならない。200シリンダ分のセクタ数は、2,048*200=409,600セクタであるから、409,600セクタ先のセクタにアクセスすれば、200シリンダスキップして2つ目のシリンダにデータなどの書き込みを行なうことになる。
【0041】
したがって、最初のシリンダの最後のセクタの受信論理アドレス2,048に200シリンダ分の論理アドレス409,600を加算して変換論理アドレスに変換する。つまり、受信論理アドレス2,048は、2,048+409,600=411,648で、変換論理アドレス411,648に変換される。受信論理アドレス2,048以降の受信論理アドレスは、その受信論理アドレスに409,600加算した変換論理アドレスに変換される。さらに、シリンダ渡りが発生する毎に、受信論理アドレスに409,600*m(mはシリンダ渡りの回数)分の論理アドレスを加算して変換論理アドレスとする。
【0042】
ところで、本実施形態では、インターフェースがSCSIの場合を例としているが、SCSIのリード/ライトコマンドつまりSCSIコマンドは、アクセスする先頭の論理アドレスと転送ブロック数を指定して発行するので、連続したセクタにしかアクセスできない。このため、シリンダをスキップする場合、シリンダ渡りが発生するとSCSIコマンドを分割して発行しなければならない。
【0043】
したがって、インターフェースがSCSIの場合、アドレス変換テーブルは、図5に示すように、受信論理アドレスに変換論理アドレスを対応させているだけでなく、変換論理アドレスに対する転送可能ブロック数が対応付けられている。転送可能ブロック数は、その変換論理アドレスで発行できるSCSIコマンドの最大転送ブロック数を示している。MPU13は、アクセス制御プログラムにより、SCSIアダプタ7から発行されるSCSIコマンドで指定されている転送ブロック数と本テーブルの転送可能ブロック数を比較して、SCSIコマンドを分割するか否か決定する。そして、アクセス制御装置3は、シリンダ渡りが発生する場合には、磁気ディスク装置1に対するSCSIコマンドを分割して発行している。
【0044】
このようなインターフェースがSCSIの場合の本実施形態のアクセス制御装置3のアクセス制御プログラムによる動作についてまとめる。アクセス制御装置3は、図6に示すように、SCSIアダプタ7より発行されるSCSIコマンドを待つ(ステップ101)。ステップ101においてSCSIアダプタ7からSCSIコマンドを受けると、このSCSIアダプタ7からのSCSIコマンドで指定している書き込みまたは読み出しを開始する開始セクタの論理アドレスつまり受信論理アドレスと、転送ブロック数を読み込む(ステップ102)。
【0045】
ステップ102で読み込んだ開始セクタの受信論理アドレスをアドレス変換テーブルにより変換論理アドレスに変換する(ステップ103)。さらに、アドレス変換テーブルにより、ステップ102で読み込んだ転送ブロック数が転送可能ブロック数以内であるか否か判定する(ステップ104)。ステップ104において、ステップ102で読み込んだ転送ブロック数が転送可能ブロック数以内であれば、変換論理アドレス、転送ブロック数で磁気ディスク装置1にSCSIコマンドを発行し(ステップ105)、コマンド処理の終了を待つ(ステップ106)。ステップ106においてコマンド処理が終了したらステップ101に戻り、SCSIアダプタ7より発行されるSCSIコマンドを待つ。
【0046】
一方、ステップ104において、ステップ102で読み込んだ転送ブロック数が転送可能ブロック数より大きい場合、開始セクタの受信論理アドレスを変換した変換論理アドレスと、アドレス変換テーブルから得られる転送可能ブロック数に対応する転送ブロック数とを指定する第1のSCSIコマンドを磁気ディスク装置1に対して発行し(ステップ107)、コマンド処理の終了を待つ(ステップ108)。ステップ108において、コマンド処理が終了したら、転送可能ブロック数をステップ102で読み込んだ開始セクタの受信論理アドレスに加算して第2のSCSIコマンドの開始セクタに対応する受信論理アドレスを求め、SCSIアダプタ7からのSCSIコマンドの転送ブロック数から転送可能ブロック数を減算して第2のSCSIコマンドの転送ブロック数を求める(ステップ109)。ステップ109の後、ステップ103に戻り、アドレス変換テーブルにより第2のSCSIコマンドの開始セクタに対応する受信論理アドレスを変換論理アドレスに変換し、その後、ステップ104からステップ106、または、ステップ104からステップ109を繰り返す。
【0047】
このように本実施形態のアクセス制御プログラムを用いたアクセス制御装置3では、スキップするシリンダの数をできるだけ多くすることによって、磁気ディスクを使用する領域が、例えば1−57,487シリンダの間になり、磁気ヘッドも磁気ディスク1aの1−57,487シリンダの間で移動することになる。このため、交換前の小容量の磁気ディスク装置9の磁気ディスク9a全体に記録されていたデータが、交換後の大容量の磁気ディスク装置1の磁気ディスク1aの一部分の近接したシリンダに集中して記録されるのが抑制され、磁気ヘッドが動く領域をできるだけ広くできることから、定点浮上の抑制効果を向上できる。
【0048】
さらに、定点浮上の抑制効果を向上できることにより、定点浮上によって発生する磁気ディスク装置の不具合の発生を抑制できる。
【0049】
加えて、本実施形態のようにアクセス制御プログラムを用いて定点浮上の抑制効果を向上できる。このため、磁気ディスク装置を利用する機器であるコンピュータに、本実施形態のアクセス制御プログラムをインストールすること、本実施形態のアクセス制御プログラムを用いたアクセス制御装置をインターフェースやケーブルに設けること、さらに、磁気ディスク装置にアクセス制御プログラムをインストールすることなどで、一般に市販されている磁気ディスク装置を用いることができる。したがって、特殊な磁気ディスク装置などを用いる必要がなく、一般に市販されている磁気ディスク装置でも、実際の容量よりも小さな容量で用いる場合に生じる定点浮上を抑制できる。
【0050】
(第2の実施形態)
以下、本発明を適用してなる磁気ディスク装置のアクセス制御プログラム及びこのアクセス制御プログラムを用いたアクセス制御装置の第2の実施形態について図1乃至図3、図6及び図7を参照して説明する。図7は、本発明を適用してなる磁気ディスク装置のアクセス制御プログラムが使用するアドレス変換テーブルの一例を示す図である。
【0051】
なお、本実施形態では、図1及び図3に示すような第1の実施形態と同じ仕様の小容量の磁気ディスク装置9を、第1の実施形態と同じ仕様の大容量の磁気ディスク装置1に交換し、この交換後の大容量の磁気ディスク装置1を交換前の小容量の磁気ディスク装置9と同じ容量で使用するためのアクセス制御装置3を設けた場合を例として説明する。このため、第1の実施形態と同様の構成や動作などは説明を省略し、第1の実施形態と相違する構成や動作、特徴部などについて説明する。
【0052】
本実施形態では、アクセス制御プログラムが、大容量の磁気ディスク装置1の磁気ディスク1aのシリンダをスキップせずに、小容量の磁気ディスク装置9の磁気ディスク9aのときと同じセクタ数単位で磁気ディスク装置1の磁気ディスク1aの各シリンダを使用する点で第1の実施形態と異なっている。したがって、本実施形態では、図3に示すように、磁気ディスク装置9の磁気ディスク9aのときと同様に、磁気ディスク装置1の磁気ディスク1aの、例えば外側から4,578のシリンダを使用し、そして、1つのシリンダ毎に、1つのシリンダが有するセクタ数のうちの128セクタだけを使用する。
【0053】
このため、交換前の小容量の磁気ディスク装置9の磁気ディスク9aにおける最初の1シリンダのセクタを示す論理アドレス0−127は、シリンダ渡りを発生させる必要がないので論理アドレスは変換する必要はない。しかし、最初のシリンダ渡りが発生する論理アドレス128から、2つ目のシリンダへのシリンダ渡りを発生させるため、受信論理アドレスを変換しなければならない。大容量の磁気ディスク装置1の1シリンダあたりのセクタ数は、2,048であるから、2,048セクタ先のセクタにアクセスすれば1シリンダ渡ることができる。
【0054】
このとき、第1の実施形態で説明したように、SCSIコマンドは、アクセスする先頭の論理アドレスと転送ブロック数を指定して発行するので、連続したセクタにしかアクセスできない。このため、セクタをスキップする場合、シリンダ渡りが発生するとSCSIコマンドを分割して発行しなければならない。ところが、シリンダを渡りの発生前後にSCSIコマンドが分割されるため、分割した第1のSCSIコマンドが発行されてから、分割した第1のSCSIコマンドが発行される間での間に磁気ディスク1aが回転してしまうことによるオーバヘッドが発生する。オーバヘッドが発生すると、シーク動作が遅れ、次のシリンダのアクセス開始セクタへのアクセスが間に合わなくなり、再度次のシリンダのアクセス開始セクタが磁気ヘッドの位置に来るまで回転待ちが発生する。
【0055】
そこで、本実施形態では、このオーバヘッドの時間が1セクタアクセスする時間と同じであるとしたとき、2,048+1=2,049セクタ先にアクセスするため、受信論理アドレス128は、128+2,049=2,177で、変換アドレス2,177に変換する。すなわち、本実施形態のアクセス制御プログラムが用いるアドレス変換テーブルは、図7に示すように、磁気ディスク装置1の磁気ディスク1aの1つのシリンダが有する全セクタのうち、磁気ディスク装置9の磁気ディスク9aの1つのシリンダが有するセクタ数よりも多い分のセクタに1セクタ加えた数のセクタをスキップするように受信論理アドレスを変換論理アドレスに変換する。
【0056】
そして、本実施形態の場合、受信論理アドレス128以降の受信論理アドレスは、その受信論理アドレスに2,177加算した変換論理アドレスに変換される。さらに、シリンダ渡りが発生する毎に、受信論理アドレスに2,177*m(mはシリンダ渡りの回数)分の論理アドレスを加算して変換論理アドレスとする。ただし、変換論理アドレスが1つのシリンダの1つのトラックを越えるような論理アドレスとなった場合には、1トラック分のセクタ数、つまり、本実施形態の場合1,024セクタだけ戻す。すなわち、1トラック分のセクタ数である1024減算することで、磁気ディスク1aの片面側に対して設けられた磁気ヘッドによって書き込み及び読み出しが行なわれるセクタに戻してやる。
【0057】
本実施形態のアクセス制御プログラムを用いたアクセス制御装置3の動作は、図7のようなアドレス変換テーブルを用いること以外、図6に示すような第1の実施形態の動作と同じである。
【0058】
このように本実施形態のアクセス制御プログラムを用いたアクセス制御装置3では、交換前の小容量の磁気ディスク装置9の磁気ディスク9aのときと同じセクタ数及びシリンダ数で、交換後の大容量の磁気ディスク装置1の磁気ディスク1aを使用する。このため、磁気ヘッドの移動範囲が磁気ディスク1aの1−4,578シリンダの間で移動することになり、交換前の小容量の磁気ディスク装置9の磁気ディスク9a全体に記録されていたデータが、交換後の大容量の磁気ディスク装置1の磁気ディスク1aのより少ない数の一部分のシリンダに記録されるのが抑制される。したがって、磁気ヘッドが動く領域をできるだけ広くでき、定点浮上の抑制効果を向上できる。
【0059】
さらに、本実施形態では、定点浮上の抑制効果を向上できるのに加え、交換前の小容量の磁気ディスク装置9と同一タイミングでシークが行なわれるため、大容量の磁気ディスク装置1への交換後でも、小容量の磁気ディスク装置9と同程度のシークタイムが得られる。このため、磁気ディスク装置を実際よりも小さな容量で用いるときに低点浮上を抑制した場合でも、アクセス性能の低下を防ぐことができる。
【0060】
加えて、本実施形態でも、第1の実施形態と同様にアクセス制御プログラムを用いて定点浮上の抑制効果を向上できる。このため、磁気ディスク装置を利用する機器であるコンピュータに、本実施形態のアクセス制御プログラムをインストールすること、本実施形態のアクセス制御プログラムを用いたアクセス制御装置をインターフェースやケーブルに設けること、さらに、磁気ディスク装置にアクセス制御プログラムをインストールすることなどで、一般に市販されている磁気ディスク装置を用いることができる。したがって、特殊な磁気ディスク装置などを用いる必要がなく、一般に市販されている磁気ディスク装置でも、実際の容量よりも小さな容量で用いる場合に生じる定点浮上を抑制できる。
【0061】
なお、本実施形態のように交換前の小容量の磁気ディスク装置9の磁気ディスク9aのときと同じセクタ数及びシリンダ数で、交換後の大容量の磁気ディスク装置1の磁気ディスク1aを使用するとき、第1の実施形態のように、磁気ディスク1aで使用するシリンダ間をスキップさせることもできる。この場合、アクセス性能の低下を防ぐ効果は低くなるが、定点浮上の抑制効果はさらに向上できる。
【0062】
(第3の実施形態)
以下、本発明を適用してなる磁気ディスク装置のアクセス制御プログラム及びこのアクセス制御プログラムを用いたアクセス制御装置の第3の実施形態について図1乃至図3、図6、図8及び図9を参照して説明する。図8及び図9は、本発明を適用してなる磁気ディスク装置のアクセス制御プログラムによる動作を示すフロー図である。
【0063】
なお、本実施形態では、図1及び図3に示すような第1及び第2の実施形態と同じ仕様の小容量の磁気ディスク装置9を、第1の実施形態と同じ仕様の大容量の磁気ディスク装置1に交換し、この交換後の大容量の磁気ディスク装置1を交換前の小容量の磁気ディスク装置9と同じ容量で使用するためのアクセス制御装置3を設けた場合を例として説明する。このため、第1及び第2の実施形態と同様の構成や動作などは説明を省略し、第1及び第2の実施形態と相違する構成や動作、特徴部などについて説明する。
【0064】
本実施形態では、アクセス制御プログラムが、大容量の磁気ディスク装置1の磁気ディスク1aの異なる領域に2重に同じデータなどを書き込み、また、このような磁気ディスク1aへのデータなどの書き込みやデータなどの読み出しを行なう場合、書き込みや読み出しのためにアクセスする毎に、異なる領域に順次アクセスを行なうように動作を制御する点で第1及び第2の実施形態と異なっている。
【0065】
さらに、容量の磁気ディスク装置1の磁気ディスク1aの異なる領域に2重に同じデータなどを書き込むとき、指定された論理アドレスと、ヘッド数をH(H>1)、磁気ディスク1aの1トラックのセクタ数をS、指定された論理アドレスに加算する論理アドレス数をAとすると、A=S*nで、n=使用するセクタ数/S、n≠H*m(m=1,2,3・・・)となるAを指定された論理アドレスに加算した論理アドレスに同じデータなどを書き込んでいる。
【0066】
本実施形態では、第1及び第2の実施形態と同様、図3に示すように、交換後の大容量の磁気ディスク装置1の1トラックあたりのセクタ数は1,024で、磁気ヘッドは、磁気ディスク1aの表裏各面に対するものがあり、2個ある。したがって、A=1,024*n(本実施形態の場合、nは奇数)を加算した論理アドレスは、ある論理アドレスのときのシリンダとは別のシリンダの、ある論理アドレスのときの磁気ヘッドとは異なる側の磁気ヘッドがアクセスするセクタになる。
【0067】
そこで、本実施形態のアクセス制御プログラムでは、例えば、SCSIアダプタ7から発行されるSCSIコマンドがライトコマンドの場合、指定された論理アドレスと、指定された論理アドレス+78,001,152(1,024*76,173=78,001,152、以下78Mと略称する)となる別の論理アドレスとの2箇所に書き込む。SCSIアダプタ7から発行されるSCSIコマンドがリードコマンドの場合、SCSIコマンドで指定された論理アドレスを含む領域か、または、指定された論理アドレス+78Mとなる別の論理アドレスを含む領域のいずれかの該当セクタから読み出しを行なう。
【0068】
リードコマンドにより磁気ディスク1aの読み出しを行なう場合、磁気ヘッドに対してより近くに位置している領域の該当セクタにアクセスして読み出しを行なえば、シークタイムを速くできる。しかし、この場合、読み出しを行なう領域に偏りができ、読み出しを行なう領域に偏りができると、磁気ヘッドの定点浮上を抑制できない場合がある。このため、本実施形態のアクセス制御プログラムでは、SCSIアダプタ7からリードコマンドが発行されると、前回のライトコマンドで最後にアクセスした磁気ディスク1aの領域、または、前回のリードコマンドでアクセスした磁気ディスク1aの領域を識別する情報に基づいて、大容量の磁気ディスク装置1に発行するリードコマンドの論理アドレスを、SCSIコマンドで指定された論理アドレスと、指定された論理アドレス+78Mとなる別の論理アドレスのうち、前回のライトコマンドで最後にアクセスした磁気ディスク1aの領域、または、前回のリードコマンドでアクセスした磁気ディスク1aの領域と異なる磁気ディスク1aの領域となる論理アドレスを指定している。これにより、磁気ヘッドの位置に偏りができないようにしている。
【0069】
本実施形態のアクセス制御プログラムを用いるアクセス制御装置3では、ヘッドポイントフラグ(以下、HPと略称する)を図2に示すRAM17上に有する。HPは、SCSIコマンドで指定された論理アドレスのときHP=0、SCSIコマンドで指定された論理アドレス+78Mとなる別の論理アドレスのとき、HP=1となる。そして、前回大容量の磁気ディスク装置1にアクセスしたときの論理アドレスが、SCSIコマンドで指定された論理アドレスつまりHP=0であるか、または、指定された論理アドレス+78Mとなる別の論理アドレスつまりHP=1であるかを管理することにより、SCSIアダプタ7から発行されるSCSIコマンド毎に交互に大容量に磁気ディスク装置1に発行するSCSIコマンドの論理アドレスを変更している。このように、本実施形態では、HPが、前回のライトコマンドで最後にアクセスした磁気ディスク1aの領域、または、前回のリードコマンドでアクセスした磁気ディスク1aの領域を識別する情報となっている。
【0070】
さらに、本実施形態のアクセス制御プログラムを用いるアクセス制御装置3では、大容量の磁気ディスク装置1に発行したリードコマンドがリードエラーになったときには、もう一方の論理アドレスを指定するリードコマンドを再発行し、動作を続行するようになっている。
【0071】
このような本実施形態のアクセス制御装置3は、図8に示すように、SCSIアダプタ7より発行されるSCSIコマンドを待つ(ステップ201)。SCSIアダプタ7からSCSIコマンドを受けたら、SCSIコマンドで指定している論理アドレス、転送ブロック数を読み込み(ステップ202)、このSCSIコマンドがライトコマンドであるか否か判定する(ステップ203)。ステップ203において、このSCSIコマンドがライトコマンドであり、さらに、HPフラグがHP=0ならば、指定論理アドレス及び指定転送ブロック数でライトコマンドを交換後の大容量の磁気ディスク装置1に発行する(ステップ204)。また、ステップ204において、HP=1ならば、指定論理アドレス+78Mとなる別の論理アドレス及び指定転送ブロック数でライトコマンドを交換後の大容量の磁気ディスク装置1に発行する。ステップ204の後、コマンド処理の終了を待つ(ステップ205)。
【0072】
ステップ205においてコマンド処理が終了した後、同じデータなどを磁気ディスク1aの異なる領域に書き込むため、ステップ204におけるHPフラグがHP=0ならば指定論理アドレス+78Mとなる別の論理アドレス及び転送ブロック数で、ステップ204におけるHPフラグがHP=1ならば指定論理アドレス及び転送ブロック数で、ライトコマンドを交換後の大容量の磁気ディスク装置1に発行する(ステップ206)。さらにステップ206では、このステップ206で最後にライトコマンドを発行したときのHPフラグがHP=0ならばHP=1に、HP=1ならばHP=0に、HPフラグを反転させる。ステップ206の後、コマンド処理の終了を待ち(ステップ207)、このステップ207においてコマンド処理が終了したらステップ201に戻りSCSIコマンドを待つ。
【0073】
一方、ステップ203において、SCSIコマンドがライトコマンドではなくリードコマンドであるとき、図9に示すように、HPフラグがHP=0ならば指定論理アドレス及び指定転送ブロック数でリードコマンドを交換後の大容量の磁気ディスク装置1に発行する(ステップ208)。また、ステップ208においてHP=1ならば指定論理アドレス+78Mとなる別の論理アドレス及び指定転送ブロック数でリードコマンドを交換後の大容量の磁気ディスク装置1に発行する。さらにステップ208において、コマンドを発行したときのHPフラグがHP=0ならばHP=1に、HP=1ならばHP=0に、HPフラグを反転させる。ステップ208の後、コマンド処理の終了を待つ(ステップ209)。ステップ209においてコマンド処理が終了した後、リードエラーが発生していたか確認する(ステップ210)。
【0074】
ステップ210において、リードエラーが発生していなければ、図8に示すステップ201に戻りSCSIコマンドを待つ。また、ステップ210において、図9に示すように、リードエラーが発生していれば、HP=1ならば指定論理アドレス+78Mとなる別の論理アドレス及び指定転送ブロック数で、HPフラグがHP=0ならば指定論理アドレス及び指定転送ブロック数で、ライトコマンドを交換後の大容量の磁気ディスク装置1に発行する(ステップ211)。さらにステップ211において、コマンドを発行したときのHPフラグがHP=1ならばHP=0に、HP=0ならばHP=1にHPフラグを反転させる。
【0075】
ステップ211の後、コマンド処理の終了を待ち(ステップ212)、このステップ212においてコマンド処理が終了したらステップ201に戻りSCSIコマンドを待つ。ステップ212においてコマンド処理が終了した後、リードエラーが発生していたか確認する(ステップ213)。ステップ213において、リードエラーが発生していたら異常終了し、発生していなければ図8に示すステップ201に戻りSCSIコマンドを待つ。
【0076】
このように本実施形態のアクセス制御プログラムを用いたアクセス制御装置3では、交換後の大容量の磁気ディスク装置1の磁気ディスク1aにデータなどを書き込むとき、そして、磁気ディスク1aからデータなどを読み出すとき、SCSIアダプタ7からSCSIコマンドが発行される毎に、例えば指定論理アドレス0−585,983間の領域と、別の論理アドレス78,001,152−78,587,135間の領域とに磁気ヘッドが交互に移動する。このため、磁気ヘッドは、磁気ディスクの異なる領域に分散してアクセスすることになる。したがって、磁気ヘッドの移動をできるだけ大きくでき、定点浮上の抑制効果を向上できる。
【0077】
ところで、磁気ディスク装置は製造上のばらつきで、磁気ヘッドと磁気ディスク間の距離にもばらつきがあり、磁気ヘッドが磁気ディスクを傷つけるといった問題の発生頻度にもばらつきがある。このため、磁気ディスク上の限られた領域に限られた磁気ヘッドがアクセスする状態の場合、その磁気ディスク上の限られた領域が傷つくなどして不具合が発生し、読み出しが行なえなくなると、リードエラーが発生し動作を続行できなくなる。
【0078】
これに対して、本実施形態のアクセス制御プログラムを用いたアクセス制御装置3では、リードコマンドに指定された論理アドレスに加算する論理アドレス数Aは、A=S*nで、n=使用するセクタ数/S、n≠H*m(m=1,2,3・・・)となる。このため、磁気ディスク1aへの書き込みを行なうとき、磁気ディスク1aの異なる面に書き込みを行なう。そして、磁気ディスク1aからデータなどの読み出しをおこなうときにリードエラーが発生すると、動作を続行して磁気ヘッドがもう一方の領域に移動し、このもう一方の領域からデータなどを読み出そうとするうえ、そのときの磁気ヘッドは、リードエラーとなった磁気ヘッドとは異なる磁気ヘッドが行なう。したがって、製造上のばらつきで磁気ディスクを傷つけ易い磁気ヘッドがあっても、他のヘッドで動作を続行でき、また、その他のリードエラーが発生してももう一方のセクタからデータを読み出して動作を続行できる。これにより、読み出しエラーが生じて、他の領域からデータなどを読み出す場合、不具合が発生していない別のヘッドで別の領域から読み出しを行なうことができる。
【0079】
なお、磁気ディスク装置が複数の磁気ディスクを有している場合も、本実施形態のように指定された論理アドレスと、指定された論理アドレス+Aとなる別の論理アドレスに書き込みを行なうことで、磁気ディスクの異なる面または複数の磁気ディスクの異なる磁気ディスクに書き込みを行なうことができる。ただし、磁気ディスクの各トラックのセクタ数が異なる場合には、各トラックのセクタ数を考慮して、指定された論理アドレスに加算する論理アドレス数Aを決定する。
【0080】
加えて、本実施形態でも、第1及び第2の実施形態と同様にアクセス制御プログラムを用いて定点浮上の抑制効果を向上できる。このため、磁気ディスク装置を利用する機器であるコンピュータに、本実施形態のアクセス制御プログラムをインストールすること、本実施形態のアクセス制御プログラムを用いたアクセス制御装置をインターフェースやケーブルに設けること、さらに、磁気ディスク装置にアクセス制御プログラムをインストールすることなどで、一般に市販されている磁気ディスク装置を用いることができる。したがって、特殊な磁気ディスク装置などを用いる必要がなく、一般に市販されている磁気ディスク装置でも、実際の容量よりも小さな容量で用いる場合に生じる定点浮上を抑制できる。
【0081】
なお、本実施形態のように、交換後の大容量の磁気ディスク装置1の磁気ディスク1aの複数の領域にデータなどの書き込みを行い、書き込みや読み出しのために磁気ディスクにアクセスする毎に異なる領域にアクセスすることに加え、第1の実施形態のように、磁気ディスク1aで使用するシリンダ間をスキップさせることもできる。この場合、定点浮上の抑制効果をさらに向上できる。
【0082】
また、本実施形態では、磁気ディスクの2箇所の領域にデータを書き込む場合を例として説明している。しかし、2箇所に限らず、3箇所以上の磁気ディスクの領域に同じデータなどを書き込むこともできる。同じデータなどを書き込む領域の数を増やせば、増やしただけ磁気ヘッドが同じ位置にいる時間が減って定点浮上の抑制効果をより向上できる。また、リードエラーが発生しても動作を続行できる確率も大きくなる。
【0083】
また、本実施形態のような磁気ディスク装置のアクセス制御プログラム、このアクセス制御プログラムを記録した記録媒体、このアクセス制御プログラムを用いたアクセス制御装置や磁気ディスク装置も、第1の実施形態と同様、小容量の磁気ディスク装置を大容量の磁気ディスク装置に交換した場合だけでなく、磁気ディスク装置を実際よりも小さな容量で使用する場合にも適用できる。
【0084】
また、第1乃至第3の実施形態では、アクセス制御プログラムを用いたアクセス制御装置3を用いた場合を例として説明した。しかし、本実施形態のアクセス制御プログラムを、このアクセス制御プログラムを記録した記録媒体を用いて磁気ディスク装置1を利用するコンピュータなどにインストールし、磁気ディスク装置1を利用するコンピュータなどが直接、このコンピュータの磁気ディスク装置1が接続されているインターフェースを制御することもできる。さらに、本実施形態アクセス制御装置3のようなアクセス制御装置となる回路を含むインターフェース基板を、磁気ディスク装置1を利用するコンピュータなどに増設し、この増設したインターフェース基板のコネクタに磁気ディスク装置1を接続することもできる。加えて、磁気ディスク装置1自体が本実施形態のアクセス制御プログラムを有するものとし、磁気ディスク装置1内で、本実施形態のアクセス制御プログラムによる処理が行なわれるようにすることもできる。
【0085】
また、第1乃至第3の実施形態は、インターフェースがSCSIであり、ブロック転送を行なう場合を例として説明した。しかし、本発明のアクセス制御プログラムは、SCSIなどのようにブロック転送を行なう場合に限らず、様々な転送方式に適用できる。例えば、第1及び第2の実施形態のような場合、リード/ライトコマンドが1つ1つのセクタ毎に受信論理アドレスを対応させて指定している場合、転送ブロック数に応じて変換論理アドレスを指定するリード/ライトコマンドを複数のコマンドに分割する処理は必要なく、アドレス変換テーブルの転送可能ブロック数に関する情報も必要なくなる。
【0086】
また、第1及び第3の実施形態のような磁気ディスク装置のアクセス制御プログラム、このアクセス制御プログラムを記録した記録媒体、このアクセス制御プログラムを用いたアクセス制御装置や磁気ディスク装置は、小容量の磁気ディスク装置を大容量の磁気ディスク装置に交換した場合だけでなく、磁気ディスク装置を実際よりも小さな容量で使用する場合などにも適用できる。
【図面の簡単な説明】
【0087】
【図1】本発明を適用してなるアクセス制御装置を設け、交換後の大容量の磁気ディスク装置を交換前の小容量の磁気ディスク装置と同じ容量で用いる様子を模式的に示すブロック図である。
【図2】本発明を適用してなるアクセス制御装置の概略構成を示すブロック図である。
【図3】交換前の小容量の磁気ディスク装置と交換後の大容量の磁気ディスク装置の仕様を比較した一例を示す図である。
【図4】交換後の磁気ディスク装置のシリンダのスキップ数と使用するシリンダの数の関係を示す図である。
【図5】本発明を適用してなる第1の実施形態の磁気ディスク装置のアクセス制御プログラムが使用するアドレス変換テーブルの一例を示す図である。
【図6】本発明を適用してなる第1の実施形態の磁気ディスク装置のアクセス制御プログラムによる動作を示すフロー図である。
【図7】本発明を適用してなる第2の実施形態の磁気ディスク装置のアクセス制御プログラムが使用するアドレス変換テーブルの一例を示す図である。
【図8】本発明を適用してなる第3の実施形態の磁気ディスク装置のアクセス制御プログラムによる動作を示すフロー図である。
【図9】本発明を適用してなる第3の実施形態の磁気ディスク装置のアクセス制御プログラムによる動作を示すフロー図である。
【符号の説明】
【0088】
1 交換後の大容量の磁気ディスク装置
1a 磁気ディスク
3 アクセス制御装置
5 SCSIケーブル
7 SCSIアダプタ
9 交換前の小容量の磁気ディスク装置
9a 磁気ディスク

【特許請求の範囲】
【請求項1】
磁気ディスクへのデータの書き込み及び読み出しを行なうための磁気ディスク装置のアクセス制御プログラムであり、
磁気ディスク装置を利用する機器で発行するリード/ライトコマンドに指定された論理アドレスを、前記書き込みまたは読み出しを行なうシリンダの先にアクセスするシリンダの最後の論理アドレスと次にアクセスするシリンダの最初の論理アドレスとの間がスキップするシリンダに対応する論理アドレス分だけ論理アドレスをスキップした変換論理アドレスに変換する機能と、
該変換論理アドレスを指定したリード/ライトコマンドを磁気ディスク装置に対して発行する機能とを与え、
前記スキップするシリンダの数は、使用する必要があるシリンダの数とスキップするシリンダの数との合計が、前記磁気ディスクが有するシリンダの数を越えない範囲内となるように決定していることを特徴とするアクセス制御プログラム。
【請求項2】
磁気ディスクへのデータの書き込み及び読み出しを行なうための磁気ディスク装置のアクセス制御プログラムであり、
交換後の磁気ディスク装置の磁気ディスクへのデータの書き込み及び読み出しを行なうため、該交換後の磁気ディスク装置よりも容量が小さい交換前の磁気ディスク装置の磁気ディスクが有していたシリンダ数を使用し、かつ、前記交換後の磁気ディスク装置の磁気ディスクの1つのシリンダが有するセクタのうち、前記交換前の磁気ディスク装置の磁気ディスクの1つのシリンダが有していたセクタ数を使用する機能を与えることを特徴とするアクセス制御プログラム。
【請求項3】
磁気ディスク装置を利用する機器で発行するリード/ライトコマンドに指定された論理アドレスを、前記使用するシリンダのうちの1つのシリンダの最後の論理アドレスと該シリンダの次にアクセスするシリンダの最初の論理アドレスとの間が、少なくとも前記交換後の磁気ディスク装置の磁気ディスクにおいて前記交換前の磁気ディスク装置の磁気ディスクの1つのシリンダにおけるセクタ数よりも増えるセクタ数分に対応する論理アドレス分だけスキップした変換論理アドレスに変換する機能と、該変換論理アドレスを指定したリード/ライトコマンドを磁気ディスク装置に対して発行する機能とを与えることを特徴とするアクセス制御プログラム。
【請求項4】
前記変換論理アドレスは、磁気ディスク装置を利用する機器で発行する論理アドレスをアドレス変換テーブルに基づいて変換され作成されたものであることを特徴とする請求項1乃至3のいずれか1項に記載のアクセス制御プログラム。
【請求項5】
磁気ディスク装置の記録媒体である磁気ディスクへのデータの書き込み及び読み出しを行なうための磁気ディスク装置のアクセス制御プログラムであり、
前記磁気ディスクへの書き込みを行なうとき、該磁気ディスクの異なるシリンダで構成された異なる領域に同一の内容を書き込む機能と、前記磁気ディスクからの読み出しを行なうとき、前記磁気ディスクの前記異なる領域のいずれかの領域から読み出しを行なう機能と、前記磁気ディスクへの書き込みまたは読み出しのためにアクセスする毎にアクセスする領域を変える機能とを与えることを特徴とするアクセス制御プログラム。
【請求項6】
前記磁気ディスクへの書き込みを行なうとき、磁気ディスク装置を利用する機器で発行するライトコマンドに指定された論理アドレスを磁気ディスク装置に対して発行すると共に、該ライトコマンドに指定された論理アドレスを含むシリンダが属した領域と異なる領域のシリンダが含む論理アドレスで構成された異なる領域となるアドレス分だけ該ライトコマンドに指定された論理アドレスに加算した別の論理アドレスを指定したライトコマンドを磁気ディスク装置に対して発行する機能と、
該磁気ディスクへの書き込みを行なうとき、前回のライトコマンドで最後にアクセスした領域、または、前回のリードコマンドでアクセスした領域を識別する情報に基づいて、今回のライトコマンドに指定された論理アドレスを含むシリンダが属した領域から書き込みを行なうか、前記別の論理アドレスを含むシリンダが属した領域から書き込みを行なうかを判定する機能と、
前回のライトコマンドで最後にアクセスした領域、または、前回のリードコマンドでアクセスした領域を識別する情報に基づいて、今回のリードコマンドに指定された論理アドレスを含むシリンダが属した領域から読み出しを行なうか、前記別の論理アドレスを含むシリンダが属した領域から読み出しを行なうかを判定し、該判定に応じて今回のリードコマンドに指定された論理アドレス、または、前記別の論理アドレスを指定したリードコマンドを磁気ディスク装置に対して発行する機能とを与えることを特徴とする請求項5に記載のアクセス制御プログラム。
【請求項7】
前記磁気ディスクへの書き込みを行なうとき、該磁気ディスクの異なるシリンダで構成された異なる領域に同一の内容を書き込む機能は、前記磁気ディスクへの書き込みを行なうとき、前記磁気ディスクの異なる面または前記磁気ディスクを複数有するときは該複数の磁気ディスクの異なる磁気ディスクに書き込みを行なうことを特徴とする請求項5または6に記載のアクセス制御プログラム。
【請求項8】
請求項1乃至7のいずれか1項に記載のアクセス制御プログラムを記録した記録媒体。
【請求項9】
請求項1乃至7のいずれか1項に記載のアクセス制御プログラムを記憶した記憶手段と、該記憶手段に記憶したアクセス制御プログラムを用いて磁気ディスク装置を利用する機器で発行したリード/ライトコマンドの処理を行ない、磁気ディスクに対してリード/ライトコマンドを発行する処理部とを有することを特徴とするアクセス制御装置
【請求項10】
請求項1乃至7のいずれか1項に記載のアクセス制御プログラムを用いて磁気ディスク装置を利用する機器で発行したリード/ライトコマンドを処理し、磁気ディスクへのアクセスを行なうことを特徴とする磁気ディスク装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2006−12297(P2006−12297A)
【公開日】平成18年1月12日(2006.1.12)
【国際特許分類】
【出願番号】特願2004−188185(P2004−188185)
【出願日】平成16年6月25日(2004.6.25)
【出願人】(000005108)株式会社日立製作所 (27,607)
【出願人】(000153443)株式会社 日立ハイコス (359)
【Fターム(参考)】