(57)【要約】【課題】最終セクタでオフトラックが発生した場合であっても、確実にオフトラックの発生を検出することができ、読み出したデータを外部コンピュータへ送信する又は書き込むデータを外部コンピュータから受信することを未然に防止することができるディスク装置及びデータ読み書き方法を提供する。【解決手段】ディスク上のトラックにセクタ単位でデータを読み書きする。データの読み出し又は書き込みに係る最終セクタを識別する最終セクタ識別番号を取得し、取得した最終セクタ識別番号に対応する最終セクタのデータを読み出す又は書き込む場合、該最終セクタの次のセクタの識別番号を読み出し、読み出した次のセクタの識別番号が、前記最終セクタ識別番号と連続しているか否かを判断する。連続していると判断した場合、最終セクタから読み出したデータを送信する又は最終セクタへ書き込むデータを受信する。【選択図】図３
2007157226.tif 000002
【特許請求の範囲】
【請求項１】
ディスク上のトラックにセクタ単位でデータを読み書きするヘッドと、
該ヘッドの前記ディスク上の位置を制御するヘッド位置制御手段と
を備えるディスク装置において、
データの読み出し又は書き込みに係る最終セクタを識別する最終セクタ識別番号を取得する手段と、
取得した最終セクタ識別番号に対応する最終セクタのデータを読み出す又は書き込む場合、該最終セクタの次のセクタの識別番号を読み出す次セクタ読み出し手段と、
読み出した次のセクタの識別番号が、前記最終セクタ識別番号と連続しているか否かを判断する手段と、
該手段で連続していると判断した場合、最終セクタから読み出したデータを外部へ送信する又は最終セクタへ書き込むデータを外部から受信する手段と
を備えることを特徴とするディスク装置。
【請求項２】
ディスク上のトラックにセクタ単位でデータを読み書きするヘッドと、
該ヘッドの前記ディスク上の位置を制御するヘッド位置制御手段と
を備えるディスク装置において、
データの読み出し又は書き込みに係る最終セクタを識別する最終セクタ識別番号を取得する手段と、
取得した最終セクタ識別番号に対応する最終セクタのデータを読み出す又は書き込む場合、該最終セクタの次のセクタの識別番号及び手前のセクタの識別番号を読み出す隣接セクタ読み出し手段と、
読み出した次のセクタの識別番号及び手前のセクタの識別番号が、前記最終セクタ識別番号と連続しているか否かを判断する手段と、
該手段で連続していると判断した場合、最終セクタから読み出したデータを外部へ送信する又は最終セクタへ書き込むデータを外部から受信する手段と
を備えることを特徴とするディスク装置。
【請求項３】
ディスク上のトラックにセクタ単位でデータを読み書きするヘッドと、
該ヘッドの前記ディスク上の位置を制御するヘッド位置制御手段と
を備えるディスク装置において、
データの読み出し又は書き込みに係る最終セクタを識別する最終セクタ識別番号を取得する手段と、
取得した最終セクタ識別番号に対応する最終セクタのデータを読み出す又は書き込む場合、該最終セクタ識別番号を１インクリメントした新たな最終セクタ識別番号を生成する手段と、
生成した新たな最終セクタ識別番号までのセクタ識別番号が連続しているか否かを判断する手段と、
該手段で連続していると判断した場合、新たな最終セクタ識別番号に対応するセクタから読み出したデータを除いた他のセクタから読み出したデータを外部へ送信する又は新たな最終セクタ識別番号に対応するセクタを除いた他のセクタへ書き込むデータを外部から受信する手段と
を備えることを特徴とするディスク装置。
【請求項４】
取得した最終セクタ識別番号を１デクリメントしたセクタまでにオフトラックリトライが発生したか否かを判断する手段を備え、
該手段で発生したと判断した場合のみ、前記次セクタ読み出し手段は、前記最終セクタの次のセクタの識別番号を読み出すようにしてあることを特徴とする請求項１記載のディスク装置。
【請求項５】
取得した最終セクタ識別番号を１デクリメントしたセクタまでにオフトラックリトライが発生したか否かを判断する手段を備え、
該手段で発生したと判断した場合のみ、前記隣接セクタ読み出し手段は、前記最終セクタの次のセクタの識別番号及び手前のセクタの識別番号を読み出すようにしてあることを特徴とする請求項２記載のディスク装置。
【請求項６】
ディスク上のトラックからセクタ単位でデータを読み書きするディスク装置で用いるデータ読み書き方法において、
データの読み出し又は書き込みに係る最終セクタを識別する最終セクタ識別番号を取得し、
取得した最終セクタ識別番号に対応する最終セクタのデータを読み出す又は書き込む場合、該最終セクタの次のセクタの識別番号を読み出し、
読み出した次のセクタの識別番号が、前記最終セクタ識別番号と連続しているか否かを判断し、
連続していると判断した場合、最終セクタから読み出したデータを外部へ送信する又は最終セクタへ書き込むデータを外部から受信することを特徴とするデータ読み書き方法。
【請求項７】
ディスク上のトラックからセクタ単位でデータを読み書きするディスク装置で用いるデータ読み書き方法において、
データの読み出し又は書き込みに係る最終セクタを識別する最終セクタ識別番号を取得し、
取得した最終セクタ識別番号に対応する最終セクタのデータを読み出す又は書き込む場合、該最終セクタの次のセクタの識別番号及び手前のセクタの識別番号を読み出し、
読み出した次のセクタの識別番号及び手前のセクタの識別番号が、前記最終セクタ識別番号と連続しているか否かを判断し、
連続していると判断した場合、最終セクタから読み出したデータを外部へ送信する又は最終セクタへ書き込むデータを外部から受信することを特徴とするデータ読み書き方法。
【請求項８】
ディスク上のトラックからセクタ単位でデータを読み書きするディスク装置で用いるデータ読み書き方法において、
データの読み出し又は書き込みに係る最終セクタを識別する最終セクタ識別番号を取得し、
取得した最終セクタ識別番号に対応する最終セクタのデータを読み出す又は書き込む場合、該最終セクタ識別番号を１インクリメントした新たな最終セクタ識別番号を生成し、
生成した新たな最終セクタ識別番号までのセクタ識別番号が連続しているか否かを判断し、
連続していると判断した場合、新たな最終セクタ識別番号に対応するセクタから読み出したデータを除いた他のセクタから読み出したデータを外部へ送信する又は新たな最終セクタ識別番号に対応するセクタを除いた他のセクタへ書き込むデータを外部から受信することを特徴とするデータ読み書き方法。
【請求項９】
取得した最終セクタ識別番号を１デクリメントしたセクタまでにオフトラックリトライが発生したか否かを判断し、
発生したと判断した場合のみ、前記最終セクタの次のセクタの識別番号を読み出すことを特徴とする請求項６記載のデータ読み書き方法。
【請求項１０】
取得した最終セクタ識別番号を１デクリメントしたセクタまでにオフトラックリトライが発生したか否かを判断し、
発生したと判断した場合のみ、前記最終セクタの次のセクタの識別番号及び手前のセクタの識別番号を読み出すようにしてあることを特徴とする請求項７記載のデータ読み書き方法。
【請求項１１】
データ転送対象となるセクタを示すデータ転送ポインタ及びデータの読み書きの対象となるセクタを示す読み書きポインタに基づいてデータ読み書きを実行し、
前記データ転送ポインタは、読み出し開始セクタから前記最終セクタまでの範囲を示し、前記読み書きポインタは、読み書き開始セクタから前記最終セクタに後続する所定のセクタまでの範囲を示していることを特徴とする請求項６乃至１０のいずれか一項に記載のデータ読み書き方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、塵埃、振動等に起因するオフトラックが発生した場合に、特に最終セクタから読み出したデータ又は最終セクタへ書き込んだデータのデータ化けを防止することができるディスク装置及びデータ読み書き方法に関する。
【背景技術】
【０００２】
近年のコンピュータシステムの規模拡大に伴い、データを記憶するディスク装置の更なる大容量化が求められている。このため、記憶媒体であるディスクには情報を高密度で記録し、高密度記録されたデータを確実にディスクから再生する必要がある。
【０００３】
従来のディスク装置は、ヘッドに対してトラッキング制御を行う。ヘッドはディスク上の所望トラック位置を走査するよう制御されるが、外部から受ける振動、塵埃等により、ヘッドの位置がトラックの中心から位置ずれし、再生信号を正しく読取ることができなくなる又は記録信号を正しく書き込むことができなくなるオフトラックが発生する。
【０００４】
従来のディスク装置では、オフトラックが発生しているか否かを、ヘッドのディスク記録面に対する焦点のずれ幅が所定幅を超えたか否かに基づいて判断している。したがって、ディスクに記憶されているデータの読み出しエラー又はディスクへ書き込むデータの書き込みエラーの頻出を防止すべく、オフトラックを過度に検出しないように判断の基準となるずれ幅の所定幅を大きく設定している。これにより、例えば所定のセクタのデータ読み出しの途中で、オフトラック検出することができない微小な振動によりヘッドの位置が隣接する他のトラックへ移動した場合、隣接するトラックのセクタに記録されているデータが正しく読み出されたときには、隣接するトラックのデータを正しいデータとして取り扱うことになる。
【０００５】
斯かる問題を解決すべく、例えば特許文献１では、セクタを識別する情報、例えばセクタＩＤの連続性を検出して、セクタＩＤが連続している場合には、オフトラックが発生していないと判断するディスクドライブ装置が開示されている。
【特許文献１】特開２００２−２５２３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述した特許文献１では、隣接するセクタのセクタＩＤが連続しているか否かを判断し、連続している場合にはオフトラックが発生していないものと判断し、読み出したデータ又は書き込んだデータが正しいデータであることを保証している。しかし、最終セクタについては後続するセクタが存在しないことからセクタＩＤの連続性を判断することができない。したがって、最終セクタでオフトラックが発生した場合には、読み出したデータが他のトラックのデータであっても、あるいは他のトラックにデータを書き込んだ場合であっても正しいデータであると判定され、データの正当性が保証されないという問題点があった。
【０００７】
本発明は、斯かる事情に鑑みてなされたものであり、最終セクタでオフトラックが発生した場合であっても、確実にオフトラックの発生を検出することができ、読み出したデータをホストコンピュータへ送信する又は書き込むデータをホストコンピュータから受信することを未然に防止することができるディスク装置及びデータ読み書き方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために第１発明に係るディスク装置は、ディスク上のトラックにセクタ単位でデータを読み書きするヘッドと、該ヘッドの前記ディスク上の位置を制御するヘッド位置制御手段とを備えるディスク装置において、データの読み出し又は書き込みに係る最終セクタを識別する最終セクタ識別番号を取得する手段と、取得した最終セクタ識別番号に対応する最終セクタのデータを読み出す又は書き込む場合、該最終セクタの次のセクタの識別番号を読み出す次セクタ読み出し手段と、読み出した次のセクタの識別番号が、前記最終セクタ識別番号と連続しているか否かを判断する手段と、該手段で連続していると判断した場合、最終セクタから読み出したデータを外部へ送信する又は最終セクタへ書き込むデータを外部から受信する手段とを備えることを特徴とする。
【０００９】
第２発明に係るディスク装置は、ディスク上のトラックにセクタ単位でデータを読み書きするヘッドと、該ヘッドの前記ディスク上の位置を制御するヘッド位置制御手段とを備えるディスク装置において、データの読み出し又は書き込みに係る最終セクタを識別する最終セクタ識別番号を取得する手段と、取得した最終セクタ識別番号に対応する最終セクタのデータを読み出す又は書き込む場合、該最終セクタの次のセクタの識別番号及び手前のセクタの識別番号を読み出す隣接セクタ読み出し手段と、読み出した次のセクタの識別番号及び手前のセクタの識別番号が、前記最終セクタ識別番号と連続しているか否かを判断する手段と、該手段で連続していると判断した場合、最終セクタから読み出したデータを外部へ送信する又は最終セクタへ書き込むデータを外部から受信する手段とを備えることを特徴とする。
【００１０】
第３発明に係るディスク装置は、ディスク上のトラックにセクタ単位でデータを読み書きするヘッドと、該ヘッドの前記ディスク上の位置を制御するヘッド位置制御手段とを備えるディスク装置において、データの読み出し又は書き込みに係る最終セクタを識別する最終セクタ識別番号を取得する手段と、取得した最終セクタ識別番号に対応する最終セクタのデータを読み出す又は書き込む場合、該最終セクタ識別番号を１インクリメントした新たな最終セクタ識別番号を生成する手段と、生成した新たな最終セクタ識別番号までのセクタ識別番号が連続しているか否かを判断する手段と、該手段で連続していると判断した場合、新たな最終セクタ識別番号に対応するセクタから読み出したデータを除いた他のセクタから読み出したデータを外部へ送信する又は新たな最終セクタ識別番号に対応するセクタを除いた他のセクタへ書き込むデータを外部から受信する手段とを備えることを特徴とする。
【００１１】
第４発明に係るディスク装置は、第１発明において、取得した最終セクタ識別番号を１デクリメントしたセクタまでにオフトラックリトライが発生したか否かを判断する手段を備え、該手段で発生したと判断した場合のみ、前記次セクタ読み出し手段は、前記最終セクタの次のセクタの識別番号を読み出すようにしてあることを特徴とする。
【００１２】
第５発明に係るディスク装置は、第２発明において、取得した最終セクタ識別番号を１デクリメントしたセクタまでにオフトラックリトライが発生したか否かを判断する手段を備え、該手段で発生したと判断した場合のみ、前記隣接セクタ読み出し手段は、前記最終セクタの次のセクタの識別番号及び手前のセクタの識別番号を読み出すようにしてあることを特徴とする。
【００１３】
第６発明に係るデータ読み書き方法は、ディスク上のトラックからセクタ単位でデータを読み書きするディスク装置で用いるデータ読み書き方法において、データの読み出し又は書き込みに係る最終セクタを識別する最終セクタ識別番号を取得し、取得した最終セクタ識別番号に対応する最終セクタのデータを読み出す又は書き込む場合、該最終セクタの次のセクタの識別番号を読み出し、読み出した次のセクタの識別番号が、前記最終セクタ識別番号と連続しているか否かを判断し、連続していると判断した場合、最終セクタから読み出したデータを外部へ送信する又は最終セクタへ書き込むデータを外部から受信することを特徴とする。
【００１４】
第７発明に係るデータ読み書き方法は、ディスク上のトラックからセクタ単位でデータを読み書きするディスク装置で用いるデータ読み書き方法において、データの読み出し又は書き込みに係る最終セクタを識別する最終セクタ識別番号を取得し、取得した最終セクタ識別番号に対応する最終セクタのデータを読み出す又は書き込む場合、該最終セクタの次のセクタの識別番号及び手前のセクタの識別番号を読み出し、読み出した次のセクタの識別番号及び手前のセクタの識別番号が、前記最終セクタ識別番号と連続しているか否かを判断し、連続していると判断した場合、最終セクタから読み出したデータを外部へ送信する又は最終セクタへ書き込むデータを外部から受信することを特徴とする。
【００１５】
第８発明に係るデータ読み書き方法は、ディスク上のトラックからセクタ単位でデータを読み書きするディスク装置で用いるデータ読み書き方法において、データの読み出し又は書き込みに係る最終セクタを識別する最終セクタ識別番号を取得し、取得した最終セクタ識別番号に対応する最終セクタのデータを読み出す又は書き込む場合、該最終セクタ識別番号を１インクリメントした新たな最終セクタ識別番号を生成し、生成した新たな最終セクタ識別番号までのセクタ識別番号が連続しているか否かを判断し、連続していると判断した場合、新たな最終セクタ識別番号に対応するセクタから読み出したデータを除いた他のセクタから読み出したデータを外部へ送信する又は新たな最終セクタ識別番号に対応するセクタを除いた他のセクタへ書き込むデータを外部から受信することを特徴とする。
【００１６】
第９発明に係るデータ読み書き方法は、第６発明において、取得した最終セクタ識別番号を１デクリメントしたセクタまでにオフトラックリトライが発生したか否かを判断し、発生したと判断した場合のみ、前記最終セクタの次のセクタの識別番号を読み出すことを特徴とする。
【００１７】
第１０発明に係るデータ読み書き方法は、第７発明において、取得した最終セクタ識別番号を１デクリメントしたセクタまでにオフトラックリトライが発生したか否かを判断し、発生したと判断した場合のみ、前記最終セクタの次のセクタの識別番号及び手前のセクタの識別番号を読み出すようにしてあることを特徴とする。
【００１８】
第１１発明に係るデータ読み書き方法は、第６乃至第１０発明のいずれか１つにおいて、データ転送対象となるセクタを示すデータ転送ポインタ及びデータの読み書きの対象となるセクタを示す読み書きポインタに基づいてデータ読み書きを実行し、前記データ転送ポインタは、読み出し開始セクタから前記最終セクタまでの範囲を示し、前記読み書きポインタは、読み書き開始セクタから前記最終セクタに後続する所定のセクタまでの範囲を示していることを特徴とする。
【００１９】
第１発明及び第６発明では、データの読み出し又は書き込みに係る最終セクタを識別する最終セクタ識別番号を取得し、取得した最終セクタ識別番号に対応する最終セクタのデータを読み出す又は書き込む場合、該最終セクタの次のセクタの識別番号を読み出し、読み出した次のセクタの識別番号が、前記最終セクタ識別番号と連続しているか否かを判断する。次のセクタの識別番号が最終セクタ番号と連続していると判断した場合、最終セクタから読み出したデータを外部へ送信する又は最終セクタへ書き込むデータを外部から受信する。これにより、最終セクタでオフトラックが発生した場合には、次のセクタ識別番号と最終セクタの識別番号とが連続していないことから、読み出したデータを外部へ送信せず、又は書き込むデータを外部から受信しない。したがって、オフトラックが発生していない場合にのみ読み出したデータを外部へ送信する、あるいは書き込むデータを外部から受信することで、読み出したデータ又は書き込むデータの正当性を保証することが可能となる。
【００２０】
第２発明及び第７発明では、データの読み出し又は書き込みに係る最終セクタを識別する最終セクタ識別番号を取得し、取得した最終セクタ識別番号に対応する最終セクタのデータを読み出す又は書き込む場合、該最終セクタの次のセクタの識別番号及び手前のセクタの識別番号を読み出し、読み出した次のセクタの識別番号及び手前のセクタの識別番号が、前記最終セクタ識別番号と連続しているか否かを判断する。読み出した次のセクタの識別番号及び手前のセクタの識別番号が、前記最終セクタ識別番号と連続していると判断した場合、最終セクタから読み出したデータを外部へ送信する又は最終セクタへ書き込むデータを外部から受信する。これにより、最終セクタの読み出し直前にオフトラックが発生し、そのままデータを読み出そうとした場合、あるいはそのままデータを書き込もうとした場合であっても、手前のセクタの識別番号との連続性は担保されないことからオフトラックの発生を確実に検出することができる。したがって、どのタイミングでオフトラックが発生した場合であっても、読み出したデータを外部へ送信しない、あるいは書き込むデータを外部から受信しないようにすることで、読み出したデータ又は書き込むデータの正当性を保証することが可能となる。
【００２１】
第３発明及び第８発明では、データの読み出し又は書き込みに係る最終セクタを識別する最終セクタ識別番号を取得し、取得した最終セクタ識別番号に対応する最終セクタのデータを読み出す又は書き込む場合、該最終セクタ識別番号を１インクリメントした新たな最終セクタ識別番号を生成し、生成した新たな最終セクタ識別番号までのセクタ識別番号が連続しているか否かを判断する。生成した新たな最終セクタ識別番号までのセクタ識別番号が連続していると判断した場合、新たな最終セクタ識別番号に対応するセクタから読み出したデータを除いた他のセクタから読み出したデータを外部へ送信する又は新たな最終セクタ識別番号に対応するセクタを除いた他のセクタへ書き込むデータを外部から受信する。これにより、読み出すべきデータ又は書き込むべきデータが本来記憶されていない、最終セクタに後続するセクタを最終セクタであると見做した状態で、従来と同様の方法でセクタの識別番号が連続しているか否かを判断することで、本来の最終セクタでオフトラックが発生しているか否かを容易に判断することができる。また、オフトラックが発生していない場合には、新たな最終セクタと見做した部分のデータを排除してデータを送信することにより、正当性が保証された正しいデータを読み出すことが可能となる。
【００２２】
第４発明及び第９発明では、データの読み出し又は書き込みに係る最終セクタを識別する最終セクタ識別番号を取得し、取得した最終セクタ識別番号を１デクリメントしたセクタまでにオフトラックリトライが発生したか否かを判断する。オフトラックリトライが発生したと判断した場合、最終セクタの次のセクタの識別番号を読み出し、読み出した次のセクタの識別番号が、前記最終セクタ識別番号と連続しているか否かを判断する。次のセクタの識別番号が最終セクタ番号と連続していると判断した場合、最終セクタから読み出したデータを外部へ送信する又は最終セクタへ書き込むデータを外部から受信する。これにより、オフトラックリトライが発生していない場合には最終セクタまでのセクタでオフトラックが発生していないと判断することができ、何等セクタ読み出し処理を工夫することなく、データの正当性を保証することができる。オフトラックリトライが発生していた場合には、第１発明及び第６発明と同様、最終セクタについて、次のセクタの識別番号が最終セクタ識別番号と連続しているか否かを判断すれば良い。したがって、セクタＩＤが連続しているか否かを判断する処理の演算処理負荷を軽減することができ、オフトラックが発生していない場合にのみ読み出したデータを外部へ送信する、あるいは書き込むデータを外部から受信することで、読み出したデータ又は書き込むデータの正当性を保証することが可能となる。
【００２３】
第５発明及び第１０発明では、データの読み出し又は書き込みに係る最終セクタを識別する最終セクタ識別番号を取得し、取得した最終セクタ識別番号を１デクリメントしたセクタまでにオフトラックリトライが発生したか否かを判断する。オフトラックリトライが発生したと判断した場合、最終セクタの次のセクタ及び手前のセクタの識別番号を読み出し、読み出した次のセクタの識別番号及び手前のセクタの識別番号が、最終セクタ識別番号と連続しているか否かを判断する。次のセクタの識別番号及び手前のセクタの識別番号が最終セクタ番号と連続していると判断した場合、最終セクタから読み出したデータを外部へ送信する又は最終セクタへ書き込むデータを外部から受信する。これにより、オフトラックリトライが発生していない場合には最終セクタまでのセクタでオフトラックが発生していないと判断することができ、何等セクタ読み出し処理を工夫することなく、データの正当性を保証することができる。オフトラックリトライが発生していた場合には、第２発明及び第７発明と同様、最終セクタについて、次のセクタの識別番号及び手前のセクタの識別番号が最終セクタ識別番号と連続しているか否かを判断すれば良い。したがって、セクタＩＤが連続しているか否かを判断する処理の演算処理負荷を軽減することができ、オフトラックが発生していない場合にのみ読み出したデータを外部へ送信する、あるいは書き込むデータを外部から受信することで、読み出したデータ又は書き込むデータの正当性を保証することが可能となる。
【００２４】
第１１発明では、データ転送対象となるセクタを示すデータ転送ポインタ及びデータの読み書きの対象となるセクタを示す読み書きポインタに基づいてデータ読み出しを実行し、データ転送ポインタは、読み出し開始セクタから最終セクタまでの範囲を示し、読み書きポインタは、読み出し開始セクタから最終セクタに後続する所定のセクタまでの範囲を示す。これにより、従来は範囲が一致しているデータ転送ポインタ及び読み書きポインタの示す範囲を相違させることにより、読み出されるべきではないデータ、例えば最終セクタに後続するセクタに記憶されているデータを外部へ送信すること又は外部から受信することが無く、正当性の保証されたデータのみを外部へ送信すること、又は外部から受信することが可能となる。
【発明の効果】
【００２５】
第１発明又は第６発明によれば、最終セクタでオフトラックが発生した場合には、次のセクタ識別番号と最終セクタの識別番号とが連続していないことから、読み出したデータを外部へ送信せず、又は書き込むデータを外部から受信しない。したがって、オフトラックが発生していない場合にのみ読み出したデータを外部へ送信する、あるいは書き込むデータを外部から受信することで、読み出したデータ又は書き込むデータの正当性を保証することが可能となる。
【００２６】
第２発明又は第７発明によれば、最終セクタの読み出し直前にオフトラックが発生し、そのままデータを読み出そうとした場合、あるいはそのままデータを書き込もうとした場合であっても、手前のセクタの識別番号との連続性は担保されないことからオフトラックの発生を確実に検出することができる。したがって、どのタイミングでオフトラックが発生した場合であっても、読み出したデータを外部へ送信しない、あるいは書き込むデータを外部から受信しないようにすることで、読み出したデータ又は書き込むデータの正当性を保証することが可能となる。
【００２７】
第３発明又は第８発明によれば、読み出すべきデータ又は書き込むべきデータが本来記憶されていない、最終セクタに後続するセクタを最終セクタであると見做した状態で、従来と同様の方法でセクタの識別番号が連続しているか否かを判断することで、本来の最終セクタでオフトラックが発生しているか否かを容易に判断することができる。また、オフトラックが発生していない場合には、新たな最終セクタと見做した部分のデータを排除してデータを送信することにより、正当性が保証された正しいデータを読み出すことが可能となる。
【００２８】
第４発明又は第９発明によれば、オフトラックリトライが発生していない場合には最終セクタまでのセクタでオフトラックが発生していないと判断することができ、何等セクタ読み出し処理を工夫することなく、データの正当性を保証することができる。オフトラックリトライが発生していた場合には、第１発明及び第６発明と同様、最終セクタについて、次のセクタの識別番号が最終セクタ識別番号と連続しているか否かを判断すれば良い。したがって、セクタＩＤが連続しているか否かを判断する処理の演算処理負荷を軽減することができ、オフトラックが発生していない場合にのみ読み出したデータを外部へ送信する、あるいは書き込むデータを外部から受信することで、読み出したデータ又は書き込むデータの正当性を保証することが可能となる。
【００２９】
第５発明又は第１０発明によれば、オフトラックリトライが発生していない場合には最終セクタまでのセクタでオフトラックが発生していないと判断することができ、何等セクタ読み出し処理を工夫することなく、データの正当性を保証することができる。オフトラックリトライが発生していた場合には、第２発明及び第７発明と同様、最終セクタについて、次のセクタの識別番号及び手前のセクタの識別番号が最終セクタ識別番号と連続しているか否かを判断すれば良い。したがって、セクタＩＤが連続しているか否かを判断する処理の演算処理負荷を軽減することができ、オフトラックが発生していない場合にのみ読み出したデータを外部へ送信する、あるいは書き込むデータを外部から受信することで、読み出したデータ又は書き込むデータの正当性を保証することが可能となる。
【００３０】
第１１発明によれば、従来は範囲が一致しているデータ転送ポインタ及び読み書きポインタの示す範囲を相違させることにより、読み出されるべきではないデータ、例えば最終セクタに後続するセクタに記憶されているデータを外部へ送信すること又は外部から受信することが無く、正当性の保証されたデータのみを外部へ送信すること、又は外部から受信することが可能となる。
【発明を実施するための最良の形態】
【００３１】
（実施の形態１）
以下、本発明をその実施の形態１を示す図面に基づいて詳述する。図１は、本発明の実施の形態１に係るディスク装置の構成を示すブロック図である。本実施の形態１に係るディスク装置１は、記憶媒体であるディスク２、ディスク２に対してデータを読み書きするヘッド３、ヘッド３の位置決めを行う位置決め機構４を有し、外部コンピュータ８からの指示信号に応じてディスク制御部７が発行するコマンドにより、ＤＳＰ５が位置決め機構４の動作を制御する。ＤＳＰ５は、ヘッド３で読み出したデータをＩ／Ｏ制御部６を介して外部コンピュータ８へ送信し、外部コンピュータ８から受信したデータをＩ／Ｏ制御部６を介してヘッド３からディスク２へ書き込む。
【００３２】
説明の便宜上、図１では１つのヘッド３と、１つのヘッド位置決め機構４と、１つのディスク２のみが示されているが、実際には複数のヘッド３、３、・・・、複数のヘッド位置決め機構４、４、・・・及び複数のディスク２、２、・・・が設けられていても良い。ヘッド３、ヘッド位置決め機構４及びディスク２自体は、公知のものを使用できることから、これらの詳細な説明は省略する。
【００３３】
ディスク制御部７は、外部コンピュータ８からデータの書き込み指示信号を受信した場合、ＤＳＰ５に対してデータを書き込むセクタ範囲を送信する。ＤＳＰ５は、受信したセクタ範囲でオフトラックが発生しているか否かを判断し、発生していないと判断した場合、位置決め機構４に動作信号を送信してヘッド３を位置決めし、ディスク制御部７を介して書き込むデータを受信し、Ｉ／Ｏ制御部６を介してヘッド３からディスク２へ書き込む。
【００３４】
ディスク制御部７は、外部コンピュータ８からデータの読み出し指示信号を受信した場合、ＤＳＰ５に対してデータを読み出すセクタ範囲を送信する。ＤＳＰ５は、受信したセクタ範囲でオフトラックが発生しているか否かを判断し、発生していないと判断した場合、位置決め機構４に動作信号を送信してヘッド３を位置決めし、Ｉ／Ｏ制御部６を介してディスク２のデータを読み出す。
【００３５】
図２は、ディスク２のセクタ構成の例示図である。ヘッダ３を介して読み書きするデータは、データ部Ｔ１、Ｔ２、・・・、ＴＮ（Ｎは自然数）にセクタ単位で記憶されている。また、セクタを識別する情報であるセクタＩＤは、セクタ０からセクタ（Ｎ−１）までのＮ個のセクタに対してＳ１、Ｓ２、・・・、ＳＮ（Ｎは自然数）という連続した番号とで割当てられている。例えばＳ１＝‘０００１’、Ｓ２＝‘０００２’等のアドレスが割当てられる。したがって、オフトラックが生じない場合には、セクタＩＤは連続した番号となっており、オフトラックが生じた場合には、セクタＩＤの連続性が損なわれる。
【００３６】
図３は、本発明の実施の形態１に係るディスク装置のＤＳＰ５のデータ読み出し処理の手順を示すフローチャートである。ＤＳＰ５は、外部コンピュータ８からデータ読み出しコマンドを受信し（ステップＳ３０１）、読み出しアドレス範囲を算出して（ステップＳ３０２）、最終セクタの識別番号、例えばセクタＩＤを特定する（ステップＳ３０３）。ＤＳＰ５は、最終セクタの手前のセクタまでは従来の方法でデータ読み出しを実行する（ステップＳ３０４）。なお、最終セクタのセクタＩＤとしては、読み出しアドレス範囲の最後に位置するセクタのセクタＩＤを抽出し、読み出したデータはＤＳＰ５に内蔵するＲＡＭ５１に一時記憶する。
【００３７】
ＤＳＰ５は、特定した最終セクタに後続する次のセクタのセクタＩＤを読み出し（ステップＳ３０５）、最終セクタのセクタＩＤと連続しているか否かを判断する（ステップＳ３０６）。すなわちセクタＩＤの番号の連続性の有無を判断する。
【００３８】
ＤＳＰ５が、セクタＩＤが連続していないと判断した場合（ステップＳ３０６：ＮＯ）、ＤＳＰ５は、最終セクタでオフトラックが生じたものと判断し、読み出したデータをＤＳＰ５のＲＡＭ５１から削除することで外部コンピュータ８へのデータ送信を実行せず（ステップＳ３０７）、異常終了である旨を示す情報、例えばエラーメッセージを外部コンピュータ８へ送信する（ステップＳ３０８）。ＤＳＰ５が、セクタＩＤが連続していると判断した場合（ステップＳ３０６：ＹＥＳ）、ＤＳＰ５は、最終セクタのデータを読み出し（ステップＳ３０９）、読み出した最終セクタのデータを外部コンピュータ８へ送信する（ステップＳ３１０）。ＤＳＰ５は、外部コンピュータ８へ正常終了した旨を示す情報、例えば正常終了メッセージを送信して（ステップＳ３１１）、処理を終了する。
【００３９】
図４は、オフトラックが生じた場合（図４（ａ）に相当）と、オフトラックが生じていない場合（図４（ｂ）に相当）との、読み出されるセクタＩＤの例示図である。最終セクタのセクタＩＤが‘０００３’である場合、最終セクタでオフトラックが発生していないときには、図４（ｂ）に示すように後続のセクタのセクタＩＤは、‘０００４’、‘０００５’、・・・と連続した番号となる。この場合、セクタＩＤ‘０００４’には、通常は読み出し不要なデータが記憶されている。データの読み出しは最終セクタまで、すなわち図２の例では、データＴ１、Ｔ２、Ｔ３が読み出される。
【００４０】
一方、最終セクタでオフトラックが発生したときには、図４（ａ）に示すように後続のセクタのセクタＩＤは、‘０００７’、‘０００８’、・・・と番号の連続性を欠く状態となる。したがって、ＤＳＰ５は、最終セクタのセクタＩＤを抽出した時点で、後続のセクタのセクタＩＤを抽出し、最終セクタのセクタＩＤと連続しているか否かを確認する。これにより、ＤＳＰ５は、最終セクタでオフトラックが生じたか否かを容易に判断することができる。
【００４１】
データ書き込み処理も同様の処理手順となる。図５は、本発明の実施の形態１に係るディスク装置のＤＳＰ５のデータ書き込み処理の手順を示すフローチャートである。ＤＳＰ５は、外部コンピュータ８からデータ書き込みコマンドを受信し（ステップＳ５０１）、書き込みアドレス範囲を算出して（ステップＳ５０２）、最終セクタの識別番号、例えばセクタＩＤを特定する（ステップＳ５０３）。ＤＳＰ５は、最終セクタの手前のセクタまでは従来の方法でデータ書き込みを実行する（ステップＳ５０４）。なお、最終セクタのセクタＩＤとしては、書き込みアドレス範囲の最後に位置するセクタのセクタＩＤを抽出し、書き込むべく外部コンピュータ８から受信したデータはＤＳＰ５に内蔵するＲＡＭ５１に一時記憶する。
【００４２】
ＤＳＰ５は、特定した最終セクタに後続する次のセクタのセクタＩＤを読み出し（ステップＳ５０５）、最終セクタのセクタＩＤと連続しているか否かを判断する（ステップＳ５０６）。すなわちセクタＩＤの番号の連続性の有無を判断する。
【００４３】
ＤＳＰ５が、セクタＩＤが連続していないと判断した場合（ステップＳ５０６：ＮＯ）、ＤＳＰ５は、最終セクタでオフトラックが生じたものと判断し、異常終了である旨を示す情報、例えばエラーメッセージを外部コンピュータ８へ送信する（ステップＳ５０７）。ＤＳＰ５が、セクタＩＤが連続していると判断した場合（ステップＳ５０６：ＹＥＳ）、ＤＳＰ５は、最終セクタへ書き込むべきデータを外部コンピュータ８から受信し（ステップＳ５０８）、最終セクタへデータを書き込む（ステップＳ５０９）。ＤＳＰ５は、外部コンピュータ８へ正常終了した旨を示す情報、例えば正常終了メッセージを送信して（ステップＳ５１０）、処理を終了する。
【００４４】
以上のように本実施の形態１によれば、オフトラックが発生した場合のセクタＩＤが連続していない事実を検出することにより、従来は検出することができなかった最終セクタでのオフトラックの発生を確実に検出することができ、オフトラック発生時に読み出したデータを外部コンピュータ８へ送信すること、又は書き込むべきデータを外部コンピュータ８から受信することを停止することが可能となる。したがって、オフトラックが発生していない場合にのみ読み出したデータを外部コンピュータ８へ送信する、あるいは書き込むデータを外部コンピュータ８から受信することで、読み出したデータ又は書き込むデータの正当性を保証することが可能となる。
【００４５】
（実施の形態２）
以下、本発明をその実施の形態２を示す図面に基づいて詳述する。本発明の実施の形態２に係るディスク装置の構成は、実施の形態１と同様であることから、同一の符号を付することにより詳細な説明は省略する。本実施の形態２に係るディスク装置１は、最終セクタに対して個別の処理を実行するのではなく、最終セクタに後続する次のセクタを最終セクタと見做して従来と同様の処理によりセクタＩＤの連続性を検出する点で実施の形態１と相違する。
【００４６】
なお、説明の便宜上、実施の形態１と同様、複数のヘッド３、３、・・・、複数のヘッド位置決め機構４、４、・・・及び複数のディスク２、２、・・・が設けられていても良い。ヘッド３、ヘッド位置決め機構４及びディスク２自体は、公知のものを使用できることから、これらの詳細な説明は省略する。
【００４７】
ディスク制御部７は、外部コンピュータ８からデータの書き込み指示信号を受信した場合、ＤＳＰ５に対してデータを書き込むセクタ範囲を送信する。ＤＳＰ５は、受信したセクタ範囲でオフトラックが発生しているか否かを判断し、発生していないと判断した場合、位置決め機構４に動作信号を送信してヘッド３を位置決めし、ディスク制御部７を介して書き込むデータを受信し、Ｉ／Ｏ制御部６を介してヘッド３からディスク２へ書き込む。
【００４８】
ディスク制御部７は、外部コンピュータ８からデータの読み出し指示信号を受信した場合、ＤＳＰ５に対してデータを読み出すセクタ範囲を送信する。ＤＳＰ５は、受信したセクタ範囲でオフトラックが発生しているか否かを判断し、発生していないと判断した場合、位置決め機構４に動作信号を送信してヘッド３を位置決めし、Ｉ／Ｏ制御部６を介してディスク２のデータを読み出す。
【００４９】
図６は、本発明の実施の形態２に係るディスク装置のＤＳＰ５のデータ読み出し処理の手順を示すフローチャートである。ＤＳＰ５は、外部コンピュータ８からデータ読み出しコマンドを受信し（ステップＳ６０１）、読み出しアドレス範囲を算出して（ステップＳ６０２）、最終セクタの識別番号、例えばセクタＩＤを特定する（ステップＳ６０３）。ＤＳＰ５は、最終セクタの手前のセクタまでは従来の方法でデータ読み出しを実行する（ステップＳ６０４）。なお、最終セクタのセクタＩＤとしては、読み出しアドレス範囲の最後に位置するセクタのセクタＩＤを抽出し、読み出したデータはＤＳＰ５に内蔵するＲＡＭ５１に一時記憶する。
【００５０】
ＤＳＰ５は、特定した最終セクタに後続する次のセクタ及び最終セクタの手前セクタのセクタＩＤを読み出し（ステップＳ６０５）、最終セクタのセクタＩＤと連続しているか否かを判断する（ステップＳ６０６）。すなわち最終セクタを中心として前後のセクタとのセクタＩＤの番号の連続性の有無を判断する。最終セクタの読み出しの直前にオフトラックが発生した場合、最終セクタと後続する次のセクタとの間ではセクタＩＤの番号が連続しているので実施の形態１の方法ではオフトラックを検出することができない。この場合、最終セクタとその手前のセクタとの間でのセクタＩＤの番号は不連続になっていることから、最終セクタと、その手前のセクタとの間でセクタＩＤの番号が連続しているか否かを確認することにより、最終セクタの読み出しの直前にオフトラックが発生した場合であっても、オフトラックの発生を検出することができる。
【００５１】
ＤＳＰ５が、セクタＩＤが連続していないと判断した場合（ステップＳ６０６：ＮＯ）、ＤＳＰ５は、最終セクタでオフトラックが生じたものと判断し、読み出したデータをＤＳＰ５のＲＡＭ５１から削除することで外部コンピュータ８へのデータ送信を実行せず（ステップＳ６０７）、異常終了である旨を示す情報、例えばエラーメッセージを外部コンピュータ８へ送信する（ステップＳ６０８）。ＤＳＰ５が、セクタＩＤが連続していると判断した場合（ステップＳ６０６：ＹＥＳ）、ＤＳＰ５は、最終セクタのデータを読み出し（ステップＳ６０９）、読み出した最終セクタのデータを外部コンピュータ８へ送信する（ステップＳ６１０）。ＤＳＰ５は、外部コンピュータ８へ正常終了した旨を示す情報、例えば正常終了メッセージを送信して（ステップＳ６１１）、処理を終了する。
【００５２】
図７は、オフトラックが生じた場合（図７（ａ）に相当）と、オフトラックが生じていない場合（図７（ｂ）に相当）との、読み出されるセクタＩＤの例示図である。最終セクタのセクタＩＤが‘０００３’である場合、最終セクタでオフトラックが発生していないときには、図４（ｂ）に示すように後続のセクタのセクタＩＤは、‘０００４’、‘０００５’、・・・と連続した番号となる。この場合、セクタＩＤ‘０００４’には、通常は読み出し不要なデータが記憶されている。データの読み出しは最終セクタまで、すなわち図２の例では、データＴ１、Ｔ２、Ｔ３が読み出される。
【００５３】
一方、最終セクタの読み出し直前でオフトラックが発生したときには、図７（ａ）に示すように最終セクタのセクタＩＤが手前のセクタのセクタＩＤとは連続していない‘０００６’となり、後続のセクタのセクタＩＤは、‘０００７’、‘０００８’、・・・と番号が連続している状態となる。したがって、ＤＳＰ５は、最終セクタのセクタＩＤを抽出した時点で、後続のセクタのセクタＩＤ及び手前のセクタのセクタＩＤを抽出し、最終セクタのセクタＩＤと連続しているか否かを確認する。これにより、ＤＳＰ５は、どのタイミングで最終セクタにてオフトラックが発生した場合であっても、確実に検出することができる。
【００５４】
データ書き込み処理も同様の処理手順となる。図８は、本発明の実施の形態２に係るディスク装置のＤＳＰ５のデータ書き込み処理の手順を示すフローチャートである。ＤＳＰ５は、外部コンピュータ８からデータ書き込みコマンドを受信し（ステップＳ８０１）、書き込みアドレス範囲を算出して（ステップＳ８０２）、最終セクタの識別番号、例えばセクタＩＤを特定する（ステップＳ８０３）。ＤＳＰ５は、最終セクタの手前のセクタまでは従来の方法でデータ書き込みを実行する（ステップＳ８０４）。なお、最終セクタのセクタＩＤとしては、書き込みアドレス範囲の最後に位置するセクタのセクタＩＤを抽出し、書き込むべく外部コンピュータ８から受信したデータはＤＳＰ５に内蔵するＲＡＭ５１に一時記憶する。
【００５５】
ＤＳＰ５は、特定した最終セクタに後続する次のセクタ及び最終セクタの手前セクタのセクタＩＤを読み出し（ステップＳ８０５）、最終セクタのセクタＩＤと連続しているか否かを判断する（ステップＳ８０６）。すなわち最終セクタを中心として前後のセクタとのセクタＩＤの番号の連続性の有無を判断する。最終セクタの読み出しの直前にオフトラックが発生した場合、最終セクタと後続する次のセクタとの間ではセクタＩＤの番号が連続しているので実施の形態１の方法ではオフトラックを検出することができない。この場合、最終セクタとその手前のセクタとの間でのセクタＩＤの番号は不連続になっていることから、最終セクタと、その手前のセクタとの間でセクタＩＤの番号が連続しているか否かを確認することにより、最終セクタの読み出しの直前にオフトラックが発生した場合であっても、オフトラックの発生を検出することができる。
【００５６】
ＤＳＰ５が、セクタＩＤが連続していないと判断した場合（ステップＳ８０６：ＮＯ）、ＤＳＰ５は、最終セクタでオフトラックが生じたものと判断し、異常終了である旨を示す情報、例えばエラーメッセージを外部コンピュータ８へ送信する（ステップＳ８０７）。ＤＳＰ５が、セクタＩＤが連続していると判断した場合（ステップＳ８０６：ＹＥＳ）、ＤＳＰ５は、最終セクタへ書き込むべきデータを外部コンピュータ８から受信し（ステップＳ８０８）、最終セクタへデータを書き込む（ステップＳ８０９）。ＤＳＰ５は、外部コンピュータ８へ正常終了した旨を示す情報、例えば正常終了メッセージを送信して（ステップＳ８１０）、処理を終了する。
【００５７】
以上のように本実施の形態２によれば、最終セクタの読み出し直前にオフトラックが発生し、そのままデータを読み出そうとした場合、あるいはそのままデータを書き込もうとした場合であっても、手前のセクタの識別番号との連続性は担保されないことからオフトラックの発生を確実に検出することができる。したがって、どのタイミングでオフトラックが発生した場合であっても、読み出したデータを外部へ送信しない、あるいは書き込むデータを外部から受信しないようにすることで、読み出したデータ又は書き込むデータの正当性を保証することが可能となる。
【００５８】
（実施の形態３）
以下、本発明をその実施の形態３を示す図面に基づいて詳述する。本発明の実施の形態３に係るディスク装置の構成は、実施の形態１と同様であることから、同一の符号を付することにより詳細な説明は省略する。本実施の形態３に係るディスク装置１は、最終セクタの読み出し直前にオフトラックが発生する場合に対応すべく、最終セクタと最終セクタの手前のセクタとの間でもセクタＩＤの連続性を検出する点で実施の形態１と相違する。
【００５９】
なお、説明の便宜上、実施の形態１と同様、複数のヘッド３、３、・・・、複数のヘッド位置決め機構４、４、・・・及び複数のディスク２、２、・・・が設けられていても良い。ヘッド３、ヘッド位置決め機構４及びディスク２自体は、公知のものを使用できることから、これらの詳細な説明は省略する。
【００６０】
ディスク制御部７は、外部コンピュータ８からデータの書き込み指示信号を受信した場合、ＤＳＰ５に対してデータを書き込むセクタ範囲を送信する。ＤＳＰ５は、受信したセクタ範囲でオフトラックが発生しているか否かを判断し、発生していないと判断した場合、位置決め機構４に動作信号を送信してヘッド３を位置決めし、ディスク制御部７を介して書き込むデータを受信し、Ｉ／Ｏ制御部６を介してヘッド３からディスク２へ書き込む。
【００６１】
ディスク制御部７は、外部コンピュータ８からデータの読み出し指示信号を受信した場合、ＤＳＰ５に対してデータを読み出すセクタ範囲を送信する。ＤＳＰ５は、受信したセクタ範囲でオフトラックが発生しているか否かを判断し、発生していないと判断した場合、位置決め機構４に動作信号を送信してヘッド３を位置決めし、Ｉ／Ｏ制御部６を介してディスク２のデータを読み出す。
【００６２】
図９は、本発明の実施の形態３に係るディスク装置のＤＳＰ５のデータ読み出し処理の手順を示すフローチャートである。ＤＳＰ５は、外部コンピュータ８からデータ読み出しコマンドを受信し（ステップＳ９０１）、読み出しアドレス範囲を算出して（ステップＳ９０２）、最終セクタの識別番号、例えばセクタＩＤを特定する（ステップＳ９０３）。なお、最終セクタのセクタＩＤとしては、読み出しアドレス範囲の最後に位置するセクタのセクタＩＤを抽出する。
【００６３】
ＤＳＰ５は、特定した最終セクタのセクタＩＤを１インクリメントし、新たな最終セクタのセクタＩＤとし（ステップＳ９０４）、新たな最終セクタのセクタＩＤまで、従来の方法でデータ読み出しを実行する（ステップＳ９０５）。読み出したデータは、ＤＳＰ５に内蔵するＲＡＭ５１に一時記憶する。ＤＳＰ５は、新たな最終セクタのセクタＩＤの手前、すなわち本来の最終セクタのセクタＩＤまで、セクタＩＤが連続しているか否かを判断する（ステップＳ９０６）。
【００６４】
この場合、セクタＩＤが連続しているか否かを判断する方法は、従来の判断方法であれば特に限定されるものではない。図１０は、本発明の実施の形態３に係るディスク装置における隣接するセクタＩＤが連続しているか否かを判断する方法の一例を示す図である。後述する処理を、いわゆるオフトラックのリトライリード処理、又はオフトラックリトライという。
【００６５】
すなわち、図１０（ａ）に示すように、ＤＳＰ５がＮ個（Ｎは自然数）のセクタＩＤを含むアドレス範囲について読み出しコマンドを受信した場合、セクタＩＤは、Ｓ１、Ｓ２、・・・、ＳＮとなり、ＤＳＰ５は、最終セクタのセクタＩＤがＳＮであると特定することができる。本実施の形態２では、ＤＳＰ５は、ＳＮを１インクリメントしたＳ（Ｎ＋１）を新たな最終セクタを示すセクタＩＤと見做して隣接するセクタＩＤが連続しているか否かを判断する。
【００６６】
まずＤＳＰ５は、図１０（ｃ）に示すように、読み出しアドレスの先頭に位置するセクタのセクタＩＤと次のセクタのセクタＩＤ、すなわちＳ１とＳ２とが連続しているか否かを判断する。ＤＳＰ５が、連続していると判断した場合、図１０（ｄ）に示すように、引き続いてＳ２とＳ３とが連続しているか否かを判断する。以下、順次隣接するセクタＩＤが連続しているか否かを判断していく。
【００６７】
隣接するセクタＩＤが連続しているか否かを判断することから、従来の判断方法では、図１０（ｅ）に示すように最終セクタの手前のセクタのセクタＩＤと最終セクタのセクタＩＤ、すなわちＳ（Ｎ−１）とＳＮとが連続しているか否かまでしか判断することができず、ＳＮでオフトラックが生じた場合にはオフトラックを検出することができない。しかし、本実施の形態２では、ＳＮを１インクリメントしたＳ（Ｎ＋１）を新たな最終セクタを示すセクタＩＤと見做して隣接するセクタＩＤが連続しているか否かを判断していることから、図１０（ｆ）に示すように、本来の最終セクタのセクタＩＤと、後続する次のセクタのセクタＩＤ、すなわちＳＮとＳ（Ｎ＋１）とが連続しているか否かを判断することにより、最終セクタにおいてオフトラックが生じているか否かを判断することができる。
【００６８】
ＤＳＰ５が、セクタＩＤが連続していないと判断した場合（ステップＳ９０６：ＮＯ）、ＤＳＰ５はオフトラックが生じたものと判断し、読み出したデータをＤＳＰ５のＲＡＭ５１から削除することで外部コンピュータ８へのデータ送信を実行せず（ステップＳ９０７）、異常終了である旨を示す情報、例えばエラーメッセージを外部コンピュータ８へ送信する（ステップＳ９０８）。
【００６９】
ＤＳＰ５が、セクタＩＤが連続していると判断した場合（ステップＳ９０６：ＹＥＳ）、ＤＳＰ５は、新たな最終セクタから読み出したデータをＲＡＭ５１から削除し（ステップＳ９０９）、最終セクタから読み出したデータを外部コンピュータ８へ送信する（ステップＳ９１０）。ＤＳＰ５は外部コンピュータ８へ正常終了した旨を示す情報、例えば正常終了メッセージを送信して（ステップＳ９１１）、処理を終了する。
【００７０】
データ書き込み処理も同様の手順となる。図１１は、本発明の実施の形態３に係るディスク装置のＤＳＰ５のデータ書き込み処理の手順を示すフローチャートである。ＤＳＰ５は、外部コンピュータ８からデータ書き込みコマンドを受信し（ステップＳ１１０１）、書き込みアドレス範囲を算出して（ステップＳ１１０２）、最終セクタの識別番号、例えばセクタＩＤを特定する（ステップＳ１１０３）。なお、最終セクタのセクタＩＤとしては、読み出しアドレス範囲の最後に位置するセクタのセクタＩＤを抽出する。
【００７１】
ＤＳＰ５は、特定した最終セクタのセクタＩＤを１インクリメントし、新たな最終セクタのセクタＩＤとし（ステップＳ１１０４）、新たな最終セクタのセクタＩＤまで、従来の方法でデータ書き込みを実行する（ステップＳ１１０５）。書き込むべく外部コンピュータ８から受信したデータは、ＤＳＰ５に内蔵するＲＡＭ５１に一時記憶する。ＤＳＰ５は、新たな最終セクタのセクタＩＤの手前、すなわち本来の最終セクタのセクタＩＤまで、セクタＩＤが連続しているか否かを判断する（ステップＳ１１０６）。なお、セクタＩＤが連続しているか否かを判断する方法は、従来の判断方法であれば特に限定されるものではない。
【００７２】
ＤＳＰ５が、セクタＩＤが連続していないと判断した場合（ステップＳ１１０６：ＮＯ）、ＤＳＰ５はオフトラックが生じたものと判断し、異常終了である旨を示す情報、例えばエラーメッセージを外部コンピュータ８へ送信する（ステップＳ１１０７）。ＤＳＰ５が、セクタＩＤが連続していると判断した場合（ステップＳ１１０６：ＹＥＳ）、ＤＳＰ５は、最終セクタへ書き込むべきデータを外部コンピュータ８から受信し（ステップＳ１１０８）、最終セクタへデータを書き込む（ステップＳ１１０９）。ＤＳＰ５は、外部コンピュータ８へ正常終了した旨を示す情報、例えば正常終了メッセージを送信して（ステップＳ１１１０）、処理を終了する。
【００７３】
以上のように本実施の形態３によれば、読み出すべきデータが記憶されていない最終セクタに後続するセクタを最終セクタであると見做すことで、従来と同様の方法で本来の最終セクタでオフトラックが発生しているか否かを容易に判断することができる。また、オフトラックが発生していない場合には、最終セクタと見做した部分のデータを除いてセクタ単位でデータを読み出して送信することにより、正当性が保証された正しいデータを読み出すことが可能となる。
【００７４】
（実施の形態４）
以下、本発明をその実施の形態４を示す図面に基づいて詳述する。本発明の実施の形態４に係るディスク装置の構成は、実施の形態１及び２と同様であることから、同一の符号を付することにより詳細な説明は省略する。本実施の形態４に係るディスク装置１は、実施の形態２において、オフトラックリトライが発生していたか否かを判断することにより、セクタＩＤが連続しているか否かの判断処理の実行を大幅に削減している点で実施の形態１と相違する。
【００７５】
なお、説明の便宜上、実施の形態１及び２と同様、複数のヘッド３、３、・・・、複数のヘッド位置決め機構４、４、・・・及び複数のディスク２、２、・・・が設けられていても良い。ヘッド３、ヘッド位置決め機構４及びディスク２自体は、公知のものを使用できることから、これらの詳細な説明は省略する。
【００７６】
ディスク制御部７は、外部コンピュータ８からデータの書き込み指示信号を受信した場合、ＤＳＰ５に対してデータを書き込むセクタ範囲を送信する。ＤＳＰ５は、受信したセクタ範囲でオフトラックが発生しているか否かを判断し、発生していないと判断した場合、位置決め機構４に動作信号を送信してヘッド３を位置決めし、ディスク制御部７を介して書き込むデータを受信し、Ｉ／Ｏ制御部６を介してヘッド３からディスク２へ書き込む。
【００７７】
ディスク制御部７は、外部コンピュータ８からデータの読み出し指示信号を受信した場合、ＤＳＰ５に対してデータを読み出すセクタ範囲を送信する。ＤＳＰ５は、受信したセクタ範囲でオフトラックが発生しているか否かを判断し、発生していないと判断した場合、位置決め機構４に動作信号を送信してヘッド３を位置決めし、Ｉ／Ｏ制御部６を介してディスク２のデータを読み出す。
【００７８】
図１２は、本発明の実施の形態４に係るディスク装置のＤＳＰ５のデータ読み出し処理の手順を示すフローチャートである。ＤＳＰ５は、外部コンピュータ８からデータ読み出しコマンドを受信し（ステップＳ１２０１）、読み出しアドレス範囲を算出して（ステップＳ１２０２）、最終セクタの識別番号、例えばセクタＩＤを特定する（ステップＳ１２０３）。ＤＳＰ５は、最終セクタの手前のセクタまでは従来の方法でデータ読み出しを実行する（ステップＳ１２０４）。なお、最終セクタのセクタＩＤとしては、読み出しアドレス範囲の最後に位置するセクタのセクタＩＤを抽出し、読み出したデータはＤＳＰ５に内蔵するＲＡＭ５１に一時記憶する。
【００７９】
ＤＳＰ５は、オフトラックリトライが最終セクタの手前までのセクタにつき発生しているか否かを判断する（ステップＳ１２０５）。具体的には、ＤＳＰ５は、オフトラックの発生したセクタＩＤ及びオフトラックの発生回数を、内蔵するＲＡＭ５１に記憶しておき、オフトラックが発生する都度、発生したセクタＩＤのカウンタをインクリメントしている。したがってＤＳＰ５は、ＲＡＭ５１を参照することにより、最終セクタの手前までのセクタにてオフトラックが発生しているか否か、すなわち後処理としてオフトラックリトライが発生しているか否かを判断することができる。
【００８０】
ＤＳＰ５が、オフトラックリトライが発生していると判断した場合（ステップＳ１２０５：ＹＥＳ）、ＤＳＰ５は、特定した最終セクタに後続する次のセクタのセクタＩＤを読み出し（ステップＳ１２０６）、最終セクタのセクタＩＤと連続しているか否かを判断する（ステップＳ１２０７）。すなわちセクタＩＤの番号の連続性の有無を判断する。
【００８１】
ＤＳＰ５が、セクタＩＤが連続していないと判断した場合（ステップＳ１２０７：ＮＯ）、ＤＳＰ５は、最終セクタでオフトラックが生じたものと判断し、読み出したデータをＤＳＰ５のＲＡＭ５１から削除することで外部コンピュータ８へのデータ送信を実行せず（ステップＳ１２０８）、異常終了である旨を示す情報、例えばエラーメッセージを外部コンピュータ８へ送信する（ステップＳ１２０９）。ＤＳＰ５が、セクタＩＤが連続していると判断した場合（ステップＳ１２０７：ＹＥＳ）、及びＤＳＰ５が、オフトラックリトライが発生していないと判断した場合（ステップＳ１２０５：ＮＯ）、ＤＳＰ５は、最終セクタのデータを読み出し（ステップＳ１２１０）、最終セクタから読み出したデータを外部コンピュータ８へ送信する（ステップＳ１２１１）。ＤＳＰ５は、外部コンピュータ８へ正常終了した旨を示す情報、例えば正常終了メッセージを送信して（ステップＳ１２１２）、処理を終了する。
【００８２】
書き込み処理も同様の処理手順となる。図１３は、本発明の実施の形態４に係るディスク装置のＤＳＰ５のデータ書き込み処理の手順を示すフローチャートである。ＤＳＰ５は、外部コンピュータ８からデータ書き込みコマンドを受信し（ステップＳ１３０１）、書き込みアドレス範囲を算出して（ステップＳ１３０２）、最終セクタの識別番号、例えばセクタＩＤを特定する（ステップＳ１３０３）。ＤＳＰ５は、最終セクタの手前のセクタまでは従来の方法でデータ書き込みを実行する（ステップＳ１３０４）。なお、最終セクタのセクタＩＤとしては、書き込みアドレス範囲の最後に位置するセクタのセクタＩＤを抽出し、書き込むべく外部コンピュータ８から受信したデータはＤＳＰ５に内蔵するＲＡＭ５１に一時記憶する。
【００８３】
ＤＳＰ５は、オフトラックリトライが最終セクタの手前までのセクタにつき発生しているか否かを判断する（ステップＳ１３０５）。具体的には、ＤＳＰ５は、オフトラックの発生したセクタＩＤ及びオフトラックの発生回数を、内蔵するＲＡＭ５１に記憶しておき、オフトラックが発生する都度、発生したセクタＩＤのカウンタをインクリメントしている。したがってＤＳＰ５は、ＲＡＭ５１を参照することにより、最終セクタの手前までのセクタにてオフトラックが発生しているか否か、すなわち後処理としてオフトラックリトライが発生しているか否かを判断することができる。
【００８４】
ＤＳＰ５が、オフトラックリトライが発生していると判断した場合（ステップＳ１３０５：ＹＥＳ）、ＤＳＰ５は、特定した最終セクタに後続する次のセクタのセクタＩＤを読み出し（ステップＳ１３０６）、最終セクタのセクタＩＤと連続しているか否かを判断する（ステップＳ１３０７）。すなわちセクタＩＤの番号の連続性の有無を判断する。
【００８５】
ＤＳＰ５が、セクタＩＤが連続していないと判断した場合（ステップＳ１３０７：ＮＯ）、ＤＳＰ５は、最終セクタでオフトラックが生じたものと判断し、異常終了である旨を示す情報、例えばエラーメッセージを外部コンピュータ８へ送信する（ステップＳ１３０８）。ＤＳＰ５が、セクタＩＤが連続していると判断した場合（ステップＳ１３０７：ＹＥＳ）、及びＤＳＰ５が、オフトラックリトライが発生していないと判断した場合（ステップＳ１３０５：ＮＯ）、ＤＳＰ５は、最終セクタへ書き込むべきデータを外部コンピュータ８から受信し（ステップＳ１３０９）、最終セクタへデータを書き込む（ステップＳ１３１０）。ＤＳＰ５は、外部コンピュータ８へ正常終了した旨を示す情報、例えば正常終了メッセージを送信して（ステップＳ１３１１）、処理を終了する。
【００８６】
なお、ＤＳＰ５が、オフトラックリトライが発生していると判断した場合（ステップＳ１３０５：ＹＥＳ）、最終セクタに後続する次のセクタのセクタＩＤを読み出して、最終セクタのセクタＩＤと連続しているか否かを判断する処理を実行することに限定されるものではなく、例えば実施の形態２と同様に、最終セクタに後続する次のセクタ及び手前のセクタのセクタＩＤを読み出して、最終セクタを中心とした前後のセクタのセクタＩＤとの連続性の有無を判断しても良い。この場合、どのタイミングでオフトラックが発生した場合であっても、読み出したデータを外部へ送信しない、あるいは書き込むデータを外部から受信しないようにすることで、読み出したデータ又は書き込むデータの正当性を保証することが可能となる。
【００８７】
以上のように本実施の形態４によれば、オフトラックリトライが発生していない場合には最終セクタまでのセクタでオフトラックが発生していないと判断することができ、何等セクタ読み出し処理を工夫することなく、データの正当性を保証することができる。オフトラックリトライが発生していた場合には、実施の形態１と同様、最終セクタについて、次のセクタの識別番号が最終セクタ識別番号と連続しているか否かを判断すれば良い。また、実施の形態２と同様、最終セクタについて、次のセクタ及び手前のセクタの識別番号が最終セクタ識別番号と連続しているか否かを判断すれば良い。したがって、セクタＩＤが連続しているか否かを判断する処理の演算処理負荷を軽減することができ、オフトラックが発生していない場合にのみ読み出したデータを外部へ送信することで、読み出したデータの正当性を保証することが可能となる。
【００８８】
なお、上述した実施の形態１乃至４については、データ転送対象となるセクタを示すデータ転送ポインタと、データの読み書きの対象となるセクタを示す読み書きポインタとで、示す範囲が相違している。すなわち、データ転送ポインタは、読み出し開始セクタから最終セクタまでの範囲を示しており、読み書きポインタは、読み出し開始セクタから最終セクタに後続する所定のセクタまでの範囲を示している。このように、従来は同一の範囲を示すポインタを異なる範囲を示すようにすることで、読み出されるべきではないデータ、例えば最終セクタに後続するセクタに記憶されているデータを外部へ送信することを未然に防止することができ、正当性の保証されたデータのみを外部へ送信することが可能となる。
【００８９】
なお、上述した実施の形態１乃至４は一実施例であり、本発明はこれらの実施の形態に特に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
【図面の簡単な説明】
【００９０】
【図１】本発明の実施の形態１に係るディスク装置の構成を示すブロック図である。
【図２】ディスクのセクタ構成の例示図である。
【図３】本発明の実施の形態１に係るディスク装置のＤＳＰのデータ読み出し処理の手順を示すフローチャートである。
【図４】オフトラックが生じた場合と、オフトラックが生じていない場合との、読み出されるセクタＩＤの例示図である。
【図５】本発明の実施の形態１に係るディスク装置のＤＳＰのデータ書き込み処理の手順を示すフローチャートである。
【図６】本発明の実施の形態２に係るディスク装置のＤＳＰのデータ読み出し処理の手順を示すフローチャートである。
【図７】オフトラックが生じた場合と、オフトラックが生じていない場合との、読み出されるセクタＩＤの例示図である。
【図８】本発明の実施の形態２に係るディスク装置のＤＳＰのデータ書き込み処理の手順を示すフローチャートである。
【図９】本発明の実施の形態３に係るディスク装置のＤＳＰのデータ読み出し処理の手順を示すフローチャートである。
【図１０】本発明の実施の形態３に係るディスク装置における隣接するセクタＩＤが連続しているか否かを判断する方法の一例を示す図である。
【図１１】本発明の実施の形態３に係るディスク装置のＤＳＰのデータ書き込み処理の手順を示すフローチャートである。
【図１２】本発明の実施の形態４に係るディスク装置のＤＳＰのデータ読み出し処理の手順を示すフローチャートである。
【図１３】本発明の実施の形態４に係るディスク装置のＤＳＰのデータ書き込み処理の手順を示すフローチャートである。
【符号の説明】
【００９１】
１  ディスク装置
２  ディスク
３  ヘッド
４  位置決め機構
５  ＤＳＰ
６  Ｉ／Ｏ制御部
７  ディスク制御部
８  外部コンピュータ
５１  ＲＡＭ
【図１】
2007157226.tif 000003
【図２】
2007157226.tif 000004
【図３】
2007157226.tif 000005
【図４】
2007157226.tif 000006
【図５】
2007157226.tif 000007
【図６】
2007157226.tif 000008
【図７】
2007157226.tif 000009
【図８】
2007157226.tif 000010
【図９】
2007157226.tif 000011
【図１０】
2007157226.tif 000012
【図１１】
2007157226.tif 000013
【図１２】
2007157226.tif 000014
【図１３】
2007157226.tif 000015