(57)【要約】【課題】情報記録再生装置においてユーザデータの書込み／読出しを行う際に、ヘッドとディスク媒体上のセクタの位置関係により発生する回転待ち時間を削減する。【解決手段】起動判定手段２０２は、ディスク媒体２０３上におけるヘッド２０４の現在位置がディスク媒体２０３上のアクセス対象領域２０５内にあるか否かをチェックし、現在位置がアクセス対象領域２０５内にあるとき、ディスク媒体２０３が回転してアクセス対象領域２０５の先頭位置２０６が現在位置に到達するまでの時間を待たずにアクセス手段２０１を起動する。【選択図】      図１
2005071399.tif 000002
【特許請求の範囲】
【請求項１】
ディスク媒体へのデータの書込みと該ディスク媒体からのデータの読出しのうち少なくとも一方のアクセスを制御するアクセス制御装置であって、  前記ディスク媒体の回転中に、ヘッドを介して該ディスク媒体に対するアクセス動作を行うアクセス手段と、
前記ディスク媒体上における前記ヘッドの現在位置が該ディスク媒体上のアクセス対象領域内にあるか否かをチェックし、該現在位置が該アクセス対象領域内にあるとき、該ディスク媒体が回転して該アクセス対象領域の先頭位置が該現在位置に到達するまでの時間を待たずに前記アクセス手段を起動する起動判定手段と
を備えることを特徴とするアクセス制御装置。
【請求項２】
前記ディスク媒体への書き込むデータと該ディスク媒体から読み出されたデータを一時的に格納するバッファ上における、前記現在位置に対応するバッファアドレスを計算するバッファアドレス計算手段をさらに備え、前記起動判定手段は、計算されたバッファアドレスを該バッファ上のデータの先頭アドレスおよび最終アドレスと比較することで、該現在位置が前記アクセス対象領域内にあるか否かをチェックすることを特徴とする請求項１記載のアクセス制御装置。
【請求項３】
前記起動判定手段は、前記アクセス対象領域の先頭位置と大きさの情報を用いて、前記現在位置が該アクセス対象領域内にあるか否かをチェックすることを特徴とする請求項１記載のアクセス制御装置。
【請求項４】
前記起動判定手段は、前記ディスク媒体の同一トラック上で不連続な複数個のアクセス対象領域に対するアクセスが要求されたとき、該複数個のアクセス対象領域のそれぞれについて、前記現在位置が該アクセス対象領域内にあるか否かのチェックを繰り返すことを特徴とする請求項１記載のアクセス制御装置。
【請求項５】
ディスク媒体の回転中にヘッドを介して該ディスク媒体へのデータの書込みと該ディスク媒体からのデータの読出しのうち少なくとも一方のアクセス動作を行う情報記録再生装置を制御するアクセス制御方法であって、
前記ディスク媒体上における前記ヘッドの現在位置が該ディスク媒体上のアクセス対象領域内にあるか否かをチェックし、
前記現在位置が前記アクセス対象領域内にあるとき、前記ディスク媒体が回転して該アクセス対象領域の先頭位置が該現在位置に到達するまでの時間を待たずに前記アクセス動作を行う
ことを特徴とするアクセス制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディスク媒体への情報の書込みとディスク媒体からの情報の読出しを行う情報記録再生装置において、ディスク媒体に対するアクセス（書込みまたは読出し）を制御する装置および方法に関する。
【０００２】
【従来の技術】
ハードディスクドライブ等の磁気ディスク装置においては、ディスク媒体のトラック上にあるデータの最小アドレスから、バッファ上およびディスク媒体上で連続処理できるデータ（セクタの塊）毎に書込み／読出し処理が行われる。
【０００３】
例えば、バッファ上で連続なアドレスであるＢＡ（Ｂｕｆｆｅｒ  Ａｄｄｒｅｓｓ）＝１０００００ｈ−１１ＦＦＦＦｈの領域に格納されている２５６セクタ分のデータ（１セクタ＝２００ｈバイト）を、ディスク媒体上の連続した論理セクタであるＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ  ）＝５０００ｈ−５０ＦＦｈの領域に書き込む場合、ホスト装置は、ディスク媒体の書込み／読出しを制御しているディスク・コントローラに対して、データの先頭ＢＡ／先頭ＬＢＡをＰＳＮ（Ｐｈｙｓｉｃａｌ  Ｓｅｃｔｏｒ  Ｎｕｍｂｅｒ）に変換した値（仮に０００ｈとする）と処理セクタ数（１００ｈ）を指定して、ディスク・コントローラ内のフォーマッタ（Ｆｏｒｍａｔｔｅｒ  ）を起動している。
（注：ＰＳＮにはＤｅｆｅｃｔ  Ｓｅｃｔｏｒ  が考慮されている、あるいはＰＳＮはＤｅｆｅｃｔ  Ｓｅｃｔｏｒ上でカウントされないものとする。）
ところが、フォーマッタ起動時にヘッドが既にアクセス領域の先頭セクタ（ターゲット・セクタ）の先頭位置を通過していた場合、フォーマッタは次の回転で再びターゲット・セクタを検出するまで書込み／読出し動作を行えないため、最大１回転の回転待ちが発生する。
【０００４】
図１８は、このようなディスク媒体の回転待ちの例を示している。ディスク媒体１００上において、ターゲット・セクタの先頭位置１０１の直前の位置１０２にヘッドがある場合、直ちに書込み／読出し処理を開始できるので回転待ちは発生せず、必要な回転数は書込み／読出し処理の１回転のみである。これに対して、ディスク媒体１００上の位置１０３、１０４、および１０５にヘッドがある場合、それぞれ、２／４回転、３／４回転、および１回転の回転待ちが発生する。
【０００５】
また、１回のフォーマッタ起動によりデータを処理するためには、そのデータのアドレスがバッファ上で連続である必要があり、かつ、ディスク媒体上でもアクセス先のＬＢＡが連続である必要がある。この制限により、複数個のデータの書込み／読出し処理を行う場合、ディスク媒体上で複数個のターゲット・セクタが同一トラック上に存在していても、バッファ上でアドレスが不連続、またはＬＢＡが不連続である場合には、複数回に分けてフォーマッタが起動される。
【０００６】
しかし、ディスク媒体上で複数のデータを書き込む位置が近接している場合（ヘッドが次のターゲット・セクタに到達するまでの時間が、ファームウェアがフォーマッタの停止判定および次のフォーマッタ起動を処理する時間よりも短い場合）は、同様に回転待ちが発生する。
【０００７】
図１９は、バッファ上のアドレス／ディスク媒体上のＬＢＡが不連続なデータを同一トラック上で書き込む場合のハードディスクドライブの制御信号のタイミングチャートである。図１９の横軸は時間を表し、トラック上のヘッド位置に対応する。サーボゲート（ＳＧ）パルスは、ディスク媒体上でユーザデータを書き込めない領域を表しており、セクタパルス（ＳＰ）は、各セクタの先頭位置を表している。ライトゲート（ＷＧ）パルスは、ユーザデータを書き込む領域を表している。
【０００８】
この例では、ユーザデータＡのＷＧパルスとユーザデータＢのＷＧパルスの間のＤｉｓｋ割込み処理パルスが出ている時間ＴＡＢの間に、ユーザデータＡに関するフォーマッタ終了処理とユーザデータＢに関するフォーマッタ起動処理を行う必要がある。これらの処理が間に合わない場合、１回転の回転待ちが発生する。
【０００９】
従来の磁気ディスク装置においては、データの読出し時の回転待ち時間を有効に活用する制御方法が提案されている（例えば、特許文献１参照）。
【００１０】
【特許文献１】
特開２００１−１０１７６７号公報
【００１１】
【発明が解決しようとする課題】
しかしながら、上述した特許文献１の制御方法では、読出し時の回転待ちのみに注目しており、書込み時の回転待ちについては対象外となっている。また、読出し時の回転待ちについても、回転待ち時間を利用して要求されたデータ以外のデータを読み出すことで待ち時間を有効に活用する処理が提案されており、要求されたデータに対する回転待ち時間が削減されるわけではない。
【００１２】
本発明の課題は、磁気ディスク装置のような情報記録再生装置において、ユーザデータの書込み／読出しを行う際に、ヘッド位置とディスク媒体上のセクタ位置の相対的位置関係により発生する回転待ち時間を削減するアクセス制御装置およびその方法を提供することである。
【００１３】
【課題を解決するための手段】
図１は、本発明のアクセス制御装置の原理図である。図１のアクセス制御装置は、アクセス手段２０１および起動判定手段２０２を備え、情報記録再生装置によるディスク媒体２０３へのデータの書込みとディスク媒体２０３からのデータの読出しのうち少なくとも一方のアクセスを制御する。
【００１４】
アクセス手段２０１は、ディスク媒体２０３の回転中に、ヘッド２０４を介してディスク媒体２０３に対するアクセス動作を行う。起動判定手段２０２は、ディスク媒体２０３上におけるヘッド２０４の現在位置がディスク媒体２０３上のアクセス対象領域２０５内にあるか否かをチェックし、現在位置がアクセス対象領域２０５内にあるとき、ディスク媒体２０３が回転してアクセス対象領域２０５の先頭位置２０６が現在位置に到達するまでの時間を待たずにアクセス手段２０１を起動する。
【００１５】
ヘッド２０４の現在位置がディスク媒体２０３上のアクセス対象領域２０５内にあれば、先頭位置２０６が回転により現在位置まで移動するのを待ち合わせることなく直ちにアクセス手段２０１が起動され、現在位置からデータの書込みまたはデータの読出しが開始される。したがって、ディスク媒体２０３の回転待ち時間が削減され、情報記録再生装置の性能向上が図られる。
【００１６】
アクセス手段２０１は、例えば、後述する図３のフォーマッタ３０５および図８のフォーマッタ８０３に対応し、起動判定手段２０２は、例えば、図３のフォーマッタ起動／停止判定器３０４および図８のフォーマッタ起動／停止判定器８０１に対応する。
【００１７】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態を詳細に説明する。
本実施形態では、フォーマッタ起動時にヘッドが既に先頭セクタを通過していた場合でも、書き込む／読み出す領域（先頭セクタ＋処理セクタ）内にヘッドがある場合には、現在のヘッドの位置からフォーマッタを起動できるようにする。また、バッファ上のアドレス／ディスク媒体上のＬＢＡが不連続な複数個のデータを同一トラック上で書き込む時に、ファームウェアの介在なしにそれらのデータの書き込みを可能にする。
【００１８】
図２は、このようなアクセス制御を行うハードディスクドライブの構成図である。図２のハードディスクドライブは、マイクロプロセッサ２１１、ハードディスク・コントローラ（ＨＤＣ）２１２、ヘッド２１３、ディスク２１４、およびスピンドルモータ２１５を備え、ＨＤＣ２１２は、バッファ２２１、ディスク・コントローラ２２２、バッファ制御部２２３、ホスト制御部２２４、ヘッド位置制御部２２５、およびモータ速度制御部２２６を含む。
【００１９】
ヘッド２１３は、ディスク２１４へのデータの書込みとディスク２１４からのデータの読出しを行い、スピンドルモータ２１５はディスク２１４を回転させる。マイクロプロセッサ２１１は、ディスク・コントローラ２２２、バッファ制御部２２３、ホスト制御部２２４、ヘッド位置制御部２２５、およびモータ速度制御部２２６を制御する。
【００２０】
バッファ２２１は、例えば、ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であり、書込み／読出しデータを一時的に格納する。バッファ制御部２２３は、バッファ２２１へのデータの書込みとバッファ２２１からのデータの読出しを制御し、ディスク・コントローラ２２２は、ヘッド２１３とバッファ制御部２２３の間のデータ転送を制御する。
【００２１】
ホスト制御部２２４は、外部の情報処理装置（ホスト装置）からコマンドを受け取り、ホスト装置とバッファ制御部２２３の間のデータ転送を制御する。ヘッド位置制御部２２５は、ディスク２１４上のヘッド２１３の位置を制御し、モータ速度制御部２２６は、スピンドルモータ２１５を制御することでディスク２１４の回転数を制御する。
【００２２】
なお、バッファ２２１は、ＨＤＣ２１２の外部に設けられることもあり、マイクロプロセッサ２１１は、ＨＤＣ２１２に内蔵されることもある。
次に、図３から図１７までを参照しながら、図２のディスク・コントローラ２２２の構成と動作について説明する。
【００２３】
ディスク・コントローラ２２２の第１の構成では、ファームウェアが書込み／読出しを実施するディスク２１４上のトラック・パラメタ（ＳＰＴ［Ｓｅｃｔｏｒ  Ｐｅｒ  Ｔｒａｃｋ］、ＰＳＮ等）より設定したバッファ空間の情報を基に、ＰＳＮ位置をカウントしているＳＰ［Ｓｅｃｔｏｒ  Ｐｕｌｓｅ］から現在のヘッド位置を求め、バッファ空間のディスク側ポインタを補正して、フォーマッタを起動するハードウェア機能を備える。ファームウェアが設定する情報は以下の通りである。
（１）バッファの先頭アドレス（ＢＴＯＰ）／最終アドレス（ＢＥＮＤ）によって決定されるバッファ空間の大きさは、ＳＰＴ分のデータ数と同一に設定し、１トラック分のデータに対応するバッファ空間を確保する。
（２）Ｌｏｇｉｃａｌ  ＩＮＤＥＸ（トラック内の最小ＬＢＡセクタ位置）とＰｈｙｓｉｃａｌ  ＩＮＤＥＸ（ＰＳＮ００ｈ位置）の差分を求め、それをＳＫＥＷとして設定する。
（３）実際に書き込む／読み出すデータの先頭バッファアドレス（ＤＳＴＡＲＴ）と最終バッファアドレス（ＤＬＩＭＩＴ）とセクタ数（ＤＳＣ）を設定して、フォーマッタを起動する。
（注：Ｂｕｆｆｅｒ  Ｆｕｌｌ／Ｅｍｐｔｙ監視用のカウンタおよびＳｔｒｅａｍｉｎｇ制御は、特に記述していない。）
図３は、このようなディスク・コントローラ２２２の構成図である。図３のディスク・コントローラは、ＢＴＯＰ／ＢＥＮＤ算出器３０１、ＤＢＡ算出器３０２、ＳＰ生成器３０３、フォーマッタ起動／停止判定器３０４、およびフォーマッタ３０５を含む。
【００２４】
ＢＴＯＰ／ＢＥＮＤ算出器３０１は、ＳＰＴおよびＳＫＥＷを格納するレジスタを有する。そして、フォーマッタ起動／停止判定器３０４が保持するＤＳＴＡＲＴを参照し、ＤＳＴＡＲＴおよびＳＰＴからＢＴＯＰおよびＢＥＮＤを計算して、ＢＴＯＰ、ＢＥＮＤ、およびＳＫＥＷをＤＢＡ算出器３０２に転送する。
【００２５】
ＤＢＡ算出器３０２は、ＢＴＯＰ、ＢＥＮＤ、およびＰＳＮに対応するバッファアドレス（ＤＢＡ）を格納するレジスタを有する。そして、ＳＰ生成器３０３からＳＰ信号を受け取るとＳＰ生成器３０３が保持するＰＳＮを参照し、ＢＴＯＰ、ＢＥＮＤ、ＳＫＥＷ、およびＰＳＮからＤＢＡを計算する。ＤＢＡ算出器３０２は、ＤＢＡの算出が完了すると、その旨をフォーマッタ起動／停止判定器３０４に通知する。
【００２６】
ＳＰ生成器３０３は、ＰＳＮを格納するレジスタを有し、ＳＰ信号を出力する。
フォーマッタ起動／停止判定器３０４は、ＤＳＴＡＲＴ、ＤＬＩＭＩＴ、ＤＳＣ、および連続処理可能セクタ数（ＤＳＣ２）を格納するレジスタを有する。そして、ＤＢＡ算出器３０２からＤＢＡ算出完了通知を受け取るとＤＢＡ算出器３０２が保持するＤＢＡを参照し、ＤＳＴＡＲＴ、ＤＬＩＭＩＴ、ＤＳＣ、ＤＳＣ２、およびＤＢＡを用いてフォーマッタ３０５の起動／停止を判定して、フォーマッタ３０５に起動／停止を指示する。
【００２７】
フォーマッタ３０５は、ＷＣＳ（Ｗｒｉｔａｂｌｅ  Ｃｏｎｔｒｏｌ  Ｓｔｏｒｅ）とも呼ばれ、フォーマッタ起動／停止判定器３０４からの指示により起動される。そして、ヘッド２１３に対してＷＧパルスおよびリードゲート（ＲＧ）パルスを出力するとともに、ヘッド２１３への書込みデータの転送／ヘッド２１３からの読出しデータの受信を行う。
【００２８】
データの変調方式としては、例えば、ＮＲＺ（Ｎｏｎ  Ｒｅｔｕｒｎ  ｔｏ  Ｚｅｒｏ）が用いられる。ＷＧ／ＲＧパルスが出ている間、データの書込み／読出しを行うことが可能となる。また、フォーマッタ３０５は、フォーマッタ起動／停止判定器３０４に対してＤＳＣおよびＤＳＣ２のデクリメントを指示する。
【００２９】
ここで、ホスト装置からＬＢＡ５０１０ｈ−５０ＥＦｈ／ＳＣ＝Ｅ０ｈのライトコマンドが発行され、図４に示すように、ホスト装置から転送された書込みデータがバッファ２２１上のＢＡ１０００００ｈ−１１ＢＦＦＦｈに格納された場合の動作について説明する。ＬＢＡ５０１０ｈは書込み開始位置４０２を表し、ＬＢＡ５０ＥＦｈは書込み終了位置４０５を表し、ＳＣ＝Ｅ０ｈは書込み対象のセクタ数を表す。ＳＣはＤＳＣとして設定される。
【００３０】
ディスク２１４上では、トラックｎに対してデータが書き込まれるものとし、トラックｎのＳＰＴは１００ｈとする。また、Ｌｏｇｉｃａｌ  ＩＮＤＥＸ４０１を表すＬＳＮ（Ｌｏｇｉｃａｌ  Ｓｅｃｔｏｒ  Ｎｕｍｂｅｒ  ）００ｈはＬＢＡ５０００ｈに対応し、ＬＢＡ５０００ｈ−５０ＦＦｈの論理セクタが配置されているものとする。また、Ｐｈｙｓｉｃａｌ  ＩＮＤＥＸ４０３を表すＰＳＮ００ｈはＬＢＡ５０２０ｈに対応するものとする。
Ｔｒａｃｋ  ｎ：
ＳＰＴ＝１００ｈ
ＬＳＮ００ｈ＝ＬＢＡ５０００ｈ
ＰＳＮ００ｈ＝ＬＢＡ５０２０ｈ
（ＳＫＥＷ＝２０ｈ）
Ｗｒｉｔｅ対象：
ＬＢＡ５０１０ｈ−５０ＥＦｈ，ＳＣ＝Ｅ０ｈ
Ｂｕｆｆｅｒ  Ｄａｔａ：
ＢＡ１０００００ｈ−１１ＢＦＦＦｈ
ＢＴＯＰは、Ｂｕｆｆｅｒ  Ｄａｔａ（Ｗｒｉｔｅ  Ｄａｔａ）の先頭バッファアドレス（ＤＳＴＡＲＴ＝ＢＡ１０００００ｈ）から、Ｌｏｇｉｃａｌ  ＩＮＤＥＸ４０１（ＬＢＡ５０００ｈ）と書込み開始位置４０２（ＬＢＡ５０１０ｈ）の間のセクタ数に対応するデータ数を減算した値となる。また、ＢＥＮＤは、トラック内セクタ数の総データ数をＢＴＯＰに加算した値となる。そこで、ＢＴＯＰ／ＢＥＮＤ算出器３０１は、以下の計算を行ってＢＴＯＰおよびＢＥＮＤを算出する。
2005071399.tif 000003
ターゲット・トラックｎへのシークが完了すると、ＤＢＡ算出器３０２は、以下の計算を行ってＤＢＡを算出する。
2005071399.tif 000004
シーク完了時のＰＳＮ（ヘッド位置４０４）がＰＳＮ０７０ｈであったと仮定すると、ＤＢＡは以下のように算出される。
2005071399.tif 000005
次に、フォーマッタ起動／停止判定器３０４は、以下の判定方法により、現在のヘッド位置（ＰＳＮ）におけるフォーマッタ３０５の起動可否をチェックする。
Ｉｆ（（ＤＢＡ≧ＤＳＴＡＲＴ）＆＆（ＤＢＡ≦ＤＬＩＭＩＴ））｛  ／／フォーマッタ起動可能
2005071399.tif 000006
（注：バッファ空間内でのリロードは考慮していない。）
図５は、このようなフォーマッタ起動／停止判定器３０４の動作フローチャートである。まず、判定器３０４は、ＤＢＡ算出器３０２からＤＢＡ算出完了通知を受け取ったか否かをチェックし（ステップ５０１）、ＤＢＡ算出完了通知を受け取ると、次に、ＤＢＡ≧ＤＳＴＡＲＴかつＤＢＡ≦ＤＬＩＭＩＴの条件が満たされるか否かをチェックする（ステップ５０２）。
【００３１】
この条件が満たされなければ、現在のヘッド位置ではデータの書込みが行えないのでフォーマッタ起動不可能と判定し、ステップ５０１以降の動作を繰り返す。一方、ＤＢＡ≧ＤＳＴＡＲＴかつＤＢＡ≦ＤＬＩＭＩＴの条件が満たされれば、フォーマッタ起動可能と判定し、以下の計算を行ってＤＳＣ２を算出する（ステップ５０３）。
ＤＳＣ２＝（ＤＬＩＭＩＴ＋１−ＤＢＡ）／ＳｅｃｔｏｒＳｉｚｅ（２００ｈ）
そして、得られたＤＳＣ２がＤＳＣより大きければ、ＤＳＣの値をＤＳＣ２に設定して、フォーマッタ３０５に起動を指示する（ステップ５０４）。ＤＳＣ２がＤＳＣ以下であれば、そのままフォーマッタ３０５に起動を指示する。これにより、現在のヘッド位置でデータの書込みが開始され、現在のＢＡからＤＳＣ２分のデータのフォーマッタ・ライト処理が実行される。
【００３２】
ＰＳＮ０７０ｈでシークが完了した場合は、ステップ５０２の条件が満たされるためフォーマッタ起動可能と判定され、ＤＳＣ２は以下のように計算される。
2005071399.tif 000007
そして、図６に示すように、バッファ２２１から６０ｈセクタ分のデータが読み出されて、ディスク２１４上のＬＢＡ５０９０ｈ−５０ＥＦｈのセクタに書き込まれる。このとき、フォーマッタ３０５は、１セクタの書込み処理が完了するごとにＤＳＣ／ＤＳＣ２のデクリメント指示を出力する。
【００３３】
判定器３０４は、フォーマッタ３０５からＤＳＣ／ＤＳＣ２のデクリメント指示を受け取ったか否かをチェックし（ステップ５０５）、デクリメント指示を受け取ると、ＤＳＣおよびＤＳＣ２をデクリメントする（ステップ５０６）。
【００３４】
次に、ＤＳＣが００ｈになったか否かをチェックする（ステップ５０７）。ＤＳＣが００ｈになっていなければ、ＤＳＣ２が００ｈになったか否かをチェックし（ステップ５０８）、ＤＳＣ２が００ｈになっていなければ、ステップ５０５以降の動作を繰り返す。
【００３５】
ＤＳＣ２が００ｈになっていれば、フォーマッタ３０５に停止を指示し（ステップ５１０）、ステップ５０１以降の動作を繰り返す。これにより、判定器３０４は、ＤＢＡ完了通知のチェックを再開し、残りの書込み対象セクタにおけるフォーマッタ起動のタイミングを待つ。また、ステップ５０７においてＤＳＣが００ｈになっていれば、フォーマッタ３０５に停止を指示する（ステップ５０９）。
【００３６】
ＤＳＣ２が６０ｈに設定された場合、ＤＳＣ２が００ｈになった時点で、ＤＳＣは初期値Ｅ０ｈから６０ｈ分デクリメントされて８０ｈとなる。これは、８０ｈセクタ分のデータが書き込まれずに残されていることを意味する。書込み終了位置４０５から書込み開始位置４０２までの間（ＰＳＮが０Ｄ０ｈ−０ＥＦｈの間）は、ステップ５０２の条件が満たされないためフォーマッタ起動不可能と判定される。
【００３７】
そして、ヘッド２１３がＰＳＮ０Ｆ０ｈに到達すると、ＤＢＡ＝１０００００ｈとなり、再びフォーマッタ起動可能と判定される。これにより、ＤＳＣ２が８０ｈに設定され、残りセクタ（８０ｈ）のフォーマッタ・ライト処理が実行される。
【００３８】
このとき、図７に示すように、バッファ２２１から残りの８０ｈセクタ分のデータが読み出されて、ディスク２１４上のＬＢＡ５０１０ｈ−５０８Ｆｈのセクタに書き込まれる。そして、ＤＳＣ２が００ｈになった時点で、ＤＳＣは前の値８０ｈから８０ｈ分デクリメントされて００ｈとなる。そこで、すべてのフォーマッタ動作を完了する。
【００３９】
このようなフォーマッタ起動／停止判定方法によれば、ヘッド２１３が書込み対象領域のいずれかのセクタ上にあれば、直ちにフォーマッタ３０５が起動されて書込み処理が開始されるため、ディスク２１４の回転待ち時間が削減される。
【００４０】
ディスク・コントローラ２２２の第２の構成では、ファームウェアが設定するパラメタの計算方法とハードウェアによるフォーマッタ起動可否の判定方法が、上述した第１の構成とは異なる。第２の構成において、ファームウェアが設定する情報は以下の通りである。
（１）ターゲット・トラック上のＳＰＴを設定する。
（２）実際に書き込む／読み出すデータの先頭バッファアドレス（ＤＳＴＡＲＴ）とセクタ数（ＤＳＣ）と先頭データに対応するＰＳＮの値（ＧＰＳＮ）を設定して、フォーマッタを起動する。
【００４１】
図８は、このようなディスク・コントローラ２２２の構成図である。図８のディスク・コントローラは、フォーマッタ起動／停止判定器８０１、ＳＰ生成器８０２、およびフォーマッタ８０３を含む。
【００４２】
ＳＰ生成器８０２は、ＰＳＮを格納するレジスタを有し、ＳＰ信号を出力する。
フォーマッタ起動／停止判定器８０１は、ＳＰＴ、ワークカウンタ（ＤＳＣ＿ＷＫ）、ＤＳＣ２、ＤＳＴＡＲＴ、ＤＳＣ、およびＧＰＳＮの各パラメタを格納するレジスタを有する。そして、ＳＰ生成器８０２からＳＰ信号を受け取るとＳＰ生成器８０２が保持するＰＳＮを参照し、ＳＰＴ、ＤＳＣ＿ＷＫ、ＤＳＣ２、ＤＳＴＡＲＴ、ＤＳＣ、およびＧＰＳＮを用いてフォーマッタ８０３の起動／停止を判定して、フォーマッタ８０３に起動／停止を指示する。
【００４３】
フォーマッタ８０３は、フォーマッタ起動／停止判定器８０１からの指示により起動され、第１の構成と同様に、データの書込み／読出しを行う。また、フォーマッタ８０３は、フォーマッタ起動／停止判定器８０１に対してＤＳＣ＿ＷＫおよびＤＳＣ２のデクリメントを指示する。
【００４４】
ここで、図４に示した書込み処理が指示された場合の動作について説明する。この場合、フォーマッタ起動／停止判定器８０１には、図９のようなパラメタが設定される。図９のＰａｒａｍｅｔｅｒ−３のＤＳＣ＿ＷＫには、ハードウェアによりＰａｒａｍｅｔｅｒ−２のＤＳＣの値がコピーされる。
【００４５】
ターゲット・トラックｎへのシークが完了すると、フォーマッタ起動／停止判定器８０１は、以下の判定方法により、Ｐａｒａｍｅｔｅｒ−２に設定された値を用いて現在のヘッド位置（ＰＳＮ）におけるフォーマッタ８０３の起動可否をチェックする。
Ｉｆ（（ＧＰＳＮ＋ＤＳＣ）＞ＳＰＴ）｛  ／／Ｐｈｙｓｉｃａｌ  ＩＮＤＥＸを跨いでいる
2005071399.tif 000008
図１０は、このようなフォーマッタ起動／停止判定器８０１の動作フローチャートである。まず、判定器８０１は、ＳＰ生成器８０２からＳＰ信号を受信したか否かをチェックし（ステップ１００１）、ＳＰ信号を受信すると、次に、（ＧＰＳＮ＋ＤＳＣ）＞ＳＰＴの条件が満たされるか否かをチェックする（ステップ１００２）。
【００４６】
この条件が満たされれば、次に、ＰＳＮ≧ＧＰＳＮの条件が満たされるか否かをチェックする（ステップ１００５）。この条件が満たされれば、フォーマッタ起動可能と判定し、以下の計算を行ってＤＢＡおよびＤＳＣ２を算出する（ステップ１００８）。
2005071399.tif 000009
ステップ１００５の条件が満たされなければ、次に、ＰＳＮ＜（ＧＰＳＮ＋ＤＳＣ−ＳＰＴ）の条件が満たされるか否かをチェックする（ステップ１００６）。この条件が満たされれば、フォーマッタ起動可能と判定し、以下の計算を行ってＤＢＡおよびＤＳＣ２を算出する（ステップ１００７）。
2005071399.tif 000010
ステップ１００６の条件が満たされなければ、現在のヘッド位置ではデータの書込みが行えないのでフォーマッタ起動不可能と判定し、ステップ１００１以降の動作を繰り返す。
【００４７】
一方、ステップ１００２の条件が満たされなければ、次に、ＰＳＮ≧ＧＰＳＮかつＰＳＮ＜（ＧＰＳＮ＋ＤＳＣ）の条件が満たされるか否かをチェックする（ステップ１００３）。この条件が満たされれば、フォーマッタ起動可能と判定し、以下の計算を行ってＤＢＡおよびＤＳＣ２を算出する（ステップ１００４）。
2005071399.tif 000011
ステップ１００３の条件が満たされなければ、現在のヘッド位置ではデータの書込みが行えないのでフォーマッタ起動不可能と判定し、ステップ１００１以降の動作を繰り返す。
【００４８】
次に、得られたＤＳＣ２とＤＳＣ＿ＷＫを比較し（ステップ１００９）、ＤＳＣ２がＤＳＣ＿ＷＫより大きければ、ＤＳＣ＿ＷＫの値をＤＳＣ２に設定して（ステップ１０１０）、フォーマッタ８０３に起動を指示する（ステップ１０１１）。ＤＳＣ２がＤＳＣ＿ＷＫ以下であれば、そのままフォーマッタ８０３に起動を指示する。これにより、現在のヘッド位置でデータの書込みが開始され、現在のＢＡからＤＳＣ２分のデータのフォーマッタ・ライト処理が実行される。
【００４９】
ＰＳＮ０７０ｈでシークが完了した場合は、ステップ１００６の条件が満たされるためフォーマッタ起動可能と判定され、ＤＢＡおよびＤＳＣ２は以下のように計算される。
2005071399.tif 000012
そして、図６に示したように、６０ｈセクタ分のデータがディスク２１４上に書き込まれる。このとき、フォーマッタ８０３は、１セクタの書込み処理が完了するごとにＤＳＣ＿ＷＫ／ＤＳＣ２のデクリメント指示を出力する。
【００５０】
判定器８０１は、フォーマッタ８０３からＤＳＣ＿ＷＫ／ＤＳＣ２のデクリメント指示を受け取ったか否かをチェックし（ステップ１０１２）、デクリメント指示を受け取ると、ＤＳＣ＿ＷＫおよびＤＳＣ２をデクリメントする（ステップ１０１３）。
【００５１】
次に、ＤＳＣ＿ＷＫが００ｈになったか否かをチェックする（ステップ１０１４）。ＤＳＣ＿ＷＫが００ｈになっていなければ、ＤＳＣ２が００ｈになったか否かをチェックし（ステップ１０１５）、ＤＳＣ２が００ｈになっていなければ、ステップ１０１２以降の動作を繰り返す。
【００５２】
ＤＳＣ２が００ｈになっていれば、フォーマッタ８０３に停止を指示し（ステップ１０１７）、ステップ１００１以降の動作を繰り返す。これにより、判定器８０１は、ＳＰ信号のチェックを再開し、残りの書込み対象セクタにおけるフォーマッタ起動のタイミングを待つ。また、ステップ１０１４においてＤＳＣ＿ＷＫが００ｈになっていれば、フォーマッタ８０３に停止を指示する（ステップ１０１６）。
【００５３】
ＤＳＣ２が６０ｈに設定された場合、ＤＳＣ２が００ｈになった時点で、ＤＳＣ＿ＷＫは８０ｈとなる。ＰＳＮが０Ｄ０ｈ−０ＥＦｈの間は、ステップ１００５および１００６のいずれの条件も満たされないためフォーマッタ起動不可能と判定される。
【００５４】
次に、ヘッド２１３がＰＳＮ０Ｆ０ｈに到達すると、ステップ１００５の条件が満たされ、再びフォーマッタ起動可能と判定される。これにより、ＤＢＡおよびＤＳＣ２がそれぞれ１０００００ｈおよび１０ｈに設定され、１０ｈセクタ分のフォーマッタ・ライト処理が実行される。そして、ＤＳＣ２が００ｈになった時点で、ＤＳＣ＿ＷＫは前の値８０ｈから１０ｈ分デクリメントされて７０ｈとなる。
【００５５】
次に、ヘッド２１３がＰＳＮ０００ｈに到達すると、ステップ１００６の条件が満たされ、再びフォーマッタ起動可能と判定される。これにより、ＤＢＡおよびＤＳＣ２がそれぞれ１０２０００ｈおよび７０ｈに設定され、７０ｈセクタ分のフォーマッタ・ライト処理が実行される。そして、ＤＳＣ２が００ｈになった時点で、ＤＳＣは前の値７０ｈから７０ｈ分デクリメントされて００ｈとなる。そこで、すべてのフォーマッタ動作を完了する。
【００５６】
このようなフォーマッタ起動／停止判定方法によれば、ディスク・コントローラ２２２の第１の構成の場合と同様に、ディスク２１４の回転待ち時間が削減される。第２の構成では、さらに、同一トラック内で複数のデータを扱うことも可能である。この場合、ファームウェアが設定する情報は以下の通りである。
（１）ターゲット・トラック上のＳＰＴを設定する。
（２）実際に書き込む／読み出す複数個のデータの先頭バッファアドレス（ＤＳＴＡＲＴｎ）とセクタ数（ＤＳＣｎ）と先頭データに対応するＰＳＮの値（ＧＰＳＮｎ）を設定する。
（３）複数個のＤＳＣｎを合計した処理セクタ総数（ＴＤＳＣ）を設定して、フォーマッタを起動する。
【００５７】
この場合、図８のフォーマッタ起動／停止判定器８０１のパラメタは、図１１のように変更される。図１１のフォーマッタ起動／停止判定器８０１は、ＳＰＴ、ＴＤＳＣ、およびＤＳＣ２と、複数個のエントリのＤＳＴＡＲＴｎ、ＤＳＣｎ、およびＧＰＳＮｎを格納するレジスタを有する。そして、これらのパラメタを用いてフォーマッタ８０３の起動／停止を判定し、フォーマッタ８０３に起動／停止を指示する。フォーマッタ８０３は、フォーマッタ起動／停止判定器８０１に対してＴＤＳＣおよびＤＳＣ２のデクリメントを指示する。
【００５８】
ここで、図１２に示すように、ホスト装置からトラックｎ上の不連続な３つの書込み対象領域ＷＴ−１、ＷＴ−２、およびＷＴ−３に対するライトコマンドが発行され、ホスト装置から転送された書込みデータがバッファ２２１上の不連続な３つの領域に格納された場合の動作について説明する。
【００５９】
ＷＴ−１の書込み開始位置１２０２、書込み終了位置１２０４は、それぞれ、ＬＢＡ５０１０ｈ、ＬＢＡ５０４Ｆｈ、およびＳＣは４０ｈとする。ＷＴ−２の書込み開始位置１２０５、書込み終了位置１２０７は、それぞれ、ＬＢＡ５０８０ｈ、ＬＢＡ５０ＡＦｈ、およびＳＣは３０ｈとする。ＷＴ−３の書込み開始位置１２０８、書込み終了位置１２０９は、それぞれ、ＬＢＡ５０Ｃ０ｈ、ＬＢＡ５０ＥＦｈ、およびＳＣは３０ｈとする。
【００６０】
また、トラックｎのＳＰＴは１００ｈとする。Ｌｏｇｉｃａｌ  ＩＮＤＥＸ１２０１を表すＬＳＮ００ｈはＬＢＡ５０００ｈに対応し、ＬＢＡ５０００ｈ−５０ＦＦｈの論理セクタが配置されているものとする。Ｐｈｙｓｉｃａｌ  ＩＮＤＥＸ１２０３を表すＰＳＮ００ｈはＬＢＡ５０２０ｈに対応するものとする。
【００６１】
また、ＷＴ−１の書込みデータは、バッファ２２１上のＢＡ１１００００ｈ−１１７ＦＦＦｈの領域に格納され、ＷＴ−２の書込みデータは、ＢＡ１０００００ｈ−１０５ＦＦＦｈの領域に格納され、ＷＴ−３の書込みデータは、ＢＡ１２００００ｈ−１２５ＦＦＦｈの領域に格納されているものとする。
Ｔｒａｃｋ  ｎ：
ＳＰＴ＝１００ｈ
ＬＳＮ００ｈ＝ＬＢＡ５０００ｈ
ＰＳＮ００ｈ＝ＬＢＡ５０２０ｈ  （ＳＫＥＷ＝２０ｈ）
Ｗｒｉｔｅ対象：
ＷＴ−１  ＬＢＡ５０１０ｈ−５０４Ｆｈ，ＳＣ＝４０ｈ
ＷＴ−２  ＬＢＡ５０８０ｈ−５０ＡＦｈ，ＳＣ＝３０ｈ
ＷＴ−３  ＬＢＡ５０Ｃ０ｈ−５０ＥＦｈ，ＳＣ＝３０ｈ
Ｂｕｆｆｅｒ  Ｄａｔａ：
ＷＴ−１  ＢＡ１１００００ｈ−１１７ＦＦＦｈ
ＷＴ−２  ＢＡ１０００００ｈ−１０５ＦＦＦｈ
ＷＴ−３  ＢＡ１２００００ｈ−１２５ＦＦＦｈ
この場合、フォーマッタ起動／停止判定器８０１には、図１３のようなパラメタが設定される。フォーマッタ起動／停止判定器８０１は、Ｐａｒａｍｅｔｅｒ−２の複数個のエントリのそれぞれについて、ＤＳＴＡＲＴ＝ＤＳＴＡＲＴｎ、ＤＳＣ＝ＤＳＣｎ、およびＧＰＳＮ＝ＧＰＳＮｎと設定し、図１０と同様の判定方法を用いてフォーマッタ８０３の起動／停止を判定する。ただし、フォーマッタ起動／停止判定器８０１は、ＤＳＣ＿ＷＫの代わりにＴＤＳＣを用いるものとする。
【００６２】
具体的には、図１０のステップ１００９においてＤＳＣ２とＴＤＳＣを比較し、ＤＳＣ２がＴＤＳＣより大きければ、ステップ１０１０においてＴＤＳＣの値をＤＳＣ２に設定する。また、ステップ１０１２においてフォーマッタ８０３からＴＤＳＣ／ＤＳＣ２のデクリメント指示を受け取ったか否かをチェックし、デクリメント指示を受け取ると、ステップ１０１３においてＴＤＳＣおよびＤＳＣ２をデクリメントする。さらに、ステップ１０１４においてＴＤＳＣが００ｈになったか否かをチェックし、ＴＤＳＣが００ｈになったときにすべてのフォーマッタ動作を完了する。
【００６３】
このようなフォーマッタ起動／停止判定方法によれば、バッファ２２１上のＢＡおよび／またはディスク２１４上のＬＢＡが不連続な複数個のデータを同一トラック上で書き込む場合でも、ファームウェアの介在なしに処理することが可能となり、ディスク２１４の回転待ち時間が削減される。
【００６４】
次に、ディスク２１４からデータを読み出す場合の動作について説明する。図１４は、ホスト装置から発行されたリードコマンドの読出し要求範囲（Ｒｅａｄ範囲）の例を示している。図１４では、読出し要求範囲が始点１４０１と終点１４０２により表されている。ここで、要求された範囲のデータのみを読み出す場合、図３または図８の構成において、アクセスの方向を書込みから読出しに変更することで、現在のヘッド位置から読出し動作を開始することが可能である。
【００６５】
例えば、図１５に示すように、ディスク２１４上の位置１５０１でシークが完了した場合、ディスク・コントローラ２２２は、まず、シーク完了位置１５０１から終点１４０２までのセクタに対して読出しを行い、次に、始点１４０１からシーク完了位置１５０１までのセクタに対して読出しを行う。これにより、読出し要求範囲のデータをもれなく読み出すことができる。
【００６６】
このように、ヘッドが読出し要求範囲のいずれかのセクタ上にあれば、直ちにフォーマッタが起動されて読出し処理が開始されるため、読出し動作時においてもディスク２１４の回転待ち時間が削減される。
【００６７】
また、書込み動作とは異なり、読出し動作時には、ホスト装置から要求された範囲よりも広い範囲のセクタを読み出し、キャッシュ・データとして保持することも可能である。
【００６８】
例えば、図１６に示すように、要求セクタ数を実際の値よりも大きく設定することで、終点１４０２より後ろに読出し終了位置１６０２を設定すれば、終点１４０２から読出し終了位置１６０２までのセクタを読み出すことができる（後読み）。また、要求範囲の先頭位置を手前にすることで、始点１４０１より手前に読出し開始位置１６０１を設定すれば、読出し開始位置１６０１から始点１４０１までのセクタを読み出すことができる（前読み）。
【００６９】
また、要求範囲の先頭位置をトラック上の先頭位置（ＬＳＮ００ｈ）に設定し、要求セクタ数をトラック上の全セクタ数（ＳＰＴ）に設定することで、図１７に示すように全周のセクタを読み出すこともできる。
【００７０】
（付記１）  ディスク媒体へのデータの書込みと該ディスク媒体からのデータの読出しのうち少なくとも一方のアクセスを制御するアクセス制御装置であって、  前記ディスク媒体の回転中に、ヘッドを介して該ディスク媒体に対するアクセス動作を行うアクセス手段と、
前記ディスク媒体上における前記ヘッドの現在位置が該ディスク媒体上のアクセス対象領域内にあるか否かをチェックし、該現在位置が該アクセス対象領域内にあるとき、該ディスク媒体が回転して該アクセス対象領域の先頭位置が該現在位置に到達するまでの時間を待たずに前記アクセス手段を起動する起動判定手段と
を備えることを特徴とするアクセス制御装置。
【００７１】
（付記２）  前記ディスク媒体への書き込むデータと該ディスク媒体から読み出されたデータを一時的に格納するバッファ上における、前記現在位置に対応するバッファアドレスを計算するバッファアドレス計算手段をさらに備え、前記起動判定手段は、計算されたバッファアドレスを該バッファ上のデータの先頭アドレスおよび最終アドレスと比較することで、該現在位置が前記アクセス対象領域内にあるか否かをチェックすることを特徴とする付記１記載のアクセス制御装置。
【００７２】
（付記３）  前記アクセス対象領域が存在するトラック内の最小論理セクタ位置と前記アクセス対象領域の先頭位置の差分に相当する値を前記データの先頭アドレスから減算して前記バッファの先頭アドレスを計算し、該バッファの先頭アドレスに該トラックのセクタ数に相当する値を加算して該バッファの最終アドレスを計算する先頭／最終アドレス計算手段をさらに備え、前記バッファアドレス計算手段は、計算されたバッファの先頭アドレスと最終アドレスを用いて前記現在位置に対応するバッファアドレスを計算することを特徴とする付記２記載のアクセス制御装置。
【００７３】
（付記４）  前記起動判定手段は、前記アクセス対象領域の先頭位置と大きさの情報を用いて、前記現在位置が該アクセス対象領域内にあるか否かをチェックすることを特徴とする付記１記載のアクセス制御装置。
【００７４】
（付記５）  前記起動判定手段は、前記現在位置が該アクセス対象領域内にあるとき、前記ディスク媒体への書き込むデータと該ディスク媒体から読み出されたデータを一時的に格納するバッファ上におけるデータの先頭アドレスと、該アクセス対象領域の先頭位置の情報とを用いて、該現在位置に対応する該バッファ上のバッファアドレスを計算することを特徴とする付記４記載のアクセス制御装置。
【００７５】
（付記６）  前記起動判定手段は、前記ディスク媒体の同一トラック上で不連続な複数個のアクセス対象領域に対するアクセスが要求されたとき、該複数個のアクセス対象領域のそれぞれについて、前記現在位置が該アクセス対象領域内にあるか否かのチェックを繰り返すことを特徴とする付記１記載のアクセス制御装置。
【００７６】
（付記７）  ディスク媒体の回転中にヘッドを介して該ディスク媒体へのデータの書込みと該ディスク媒体からのデータの読出しのうち少なくとも一方のアクセス動作を行う情報記録再生装置を制御するアクセス制御方法であって、
前記ディスク媒体上における前記ヘッドの現在位置が該ディスク媒体上のアクセス対象領域内にあるか否かをチェックし、
前記現在位置が前記アクセス対象領域内にあるとき、前記ディスク媒体が回転して該アクセス対象領域の先頭位置が該現在位置に到達するまでの時間を待たずに前記アクセス動作を行う
ことを特徴とするアクセス制御方法。
【００７７】
【発明の効果】
本発明によれば、磁気ディスク装置のような情報記録再生装置において、ユーザデータの書込み／読出しを行う際に、ヘッド位置とディスク媒体上のセクタ位置の相対的位置関係により発生する回転待ち時間が削減され、情報記録再生装置の性能向上が期待できる。
【図面の簡単な説明】
【図１】本発明のアクセス制御装置の原理図である。
【図２】ハードディスクドライブの構成図である。
【図３】第１のディスク・コントローラの構成図である。
【図４】第１の書込みデータを示す図である。
【図５】第１のフォーマッタ起動／停止判定器の動作フローチャートである。
【図６】第１の書込み動作を示す図である。
【図７】第２の書込み動作を示す図である。
【図８】第２のディスク・コントローラの構成図である。
【図９】第１のパラメタを示す図である。
【図１０】第２のフォーマッタ起動／停止判定器の動作フローチャートである。
【図１１】第３のディスク・コントローラの構成図である。
【図１２】第２の書込みデータを示す図である。
【図１３】第２のパラメタを示す図である。
【図１４】読出し要求範囲を示す図である。
【図１５】第１の読出し動作を示す図である。
【図１６】第２の読出し動作を示す図である。
【図１７】第３の読出し動作を示す図である。
【図１８】ディスク媒体の回転待ちを示す図である。
【図１９】不連続なデータの書込み処理を示す図である。
【符号の説明】
１００、２０３  ディスク媒体
１０１  ターゲット・セクタの先頭位置
１０２、１０３、１０４、１０５、４０４、１２０６、１５０１  ヘッド位置
２０１  アクセス手段
２０２  起動判定手段
２０５  アクセス対象領域
２０６  アクセス対象領域の先頭位置
２１１  マイクロプロセッサ
２１２  ハードディスク・コントローラ
２０４、２１３  ヘッド
２１４  ディスク
２１５  スピンドルモータ
２２１  バッファ
２２２  ディスク・コントローラ
２２３  バッファ制御部
２２４  ホスト制御部
２２５  ヘッド位置制御部
２２６  モータ速度制御部
３０１  ＢＴＯＰ／ＢＥＮＤ算出器
３０２  ＤＢＡ算出器
３０３、８０２  ＳＰ生成器
３０４、８０１  フォーマッタ起動／停止判定器
３０５、８０３  フォーマッタ
４０１、１２０１  Ｌｏｇｉｃａｌ  ＩＮＤＥＸ
４０２、１２０２、１２０５、１２０８  書込み開始位置
４０３、１２０３  Ｐｈｙｓｉｃａｌ  ＩＮＤＥＸ
４０５、１２０４、１２０７、１２０９  書込み終了位置
１４０１  始点
１４０２  終点
１６０１  読出し開始位置
１６０２  読出し終了位置
【図１】
2005071399.tif 000013
【図２】
2005071399.tif 000014
【図３】
2005071399.tif 000015
【図４】
2005071399.tif 000016
【図５】
2005071399.tif 000017
【図６】
2005071399.tif 000018
【図７】
2005071399.tif 000019
【図８】
2005071399.tif 000020
【図９】
2005071399.tif 000021
【図１０】
2005071399.tif 000022
【図１１】
2005071399.tif 000023
【図１２】
2005071399.tif 000024
【図１３】
2005071399.tif 000025
【図１４】
2005071399.tif 000026
【図１５】
2005071399.tif 000027
【図１６】
2005071399.tif 000028
【図１７】
2005071399.tif 000029
【図１８】
2005071399.tif 000030
【図１９】
2005071399.tif 000031