JP2001126386A - コンピュータシステム及びフロッピー(登録商標)ディスク装置へのデータ書き込み時のエラー検出・リカバリ方法 - Google Patents

コンピュータシステム及びフロッピー(登録商標)ディスク装置へのデータ書き込み時のエラー検出・リカバリ方法

Info

Publication number
JP2001126386A
JP2001126386A JP30789399A JP30789399A JP2001126386A JP 2001126386 A JP2001126386 A JP 2001126386A JP 30789399 A JP30789399 A JP 30789399A JP 30789399 A JP30789399 A JP 30789399A JP 2001126386 A JP2001126386 A JP 2001126386A
Authority
JP
Japan
Prior art keywords
sector
data
write
floppy disk
written
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
JP30789399A
Other languages
English (en)
Inventor
Masaji Wada
正路 和田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP30789399A priority Critical patent/JP2001126386A/ja
Priority to PCT/JP2000/003619 priority patent/WO2001033566A1/en
Priority to AU49539/00A priority patent/AU762703B2/en
Priority to EP00931686A priority patent/EP1145240A1/en
Priority to US09/869,348 priority patent/US6751038B1/en
Priority to CA002356192A priority patent/CA2356192A1/en
Priority to TW089111184A priority patent/TW466440B/zh
Publication of JP2001126386A publication Critical patent/JP2001126386A/ja
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10814Data buffering arrangements, e.g. recording or playback buffers involving specific measures to prevent a buffer underrun

Landscapes

  • Debugging And Monitoring (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

(57)【要約】 【課題】DMAアンダーランに起因する書き込みエラー
をシステムの負荷の増大を抑えながら検出でき、しかも
後続セクタのデータが保証できるようにする。 【解決手段】フロッピーディスク装置に対する書き込み
要求が発生した場合、書き込みの対象となる書き込み最
終セクタに後続するセクタのデータを読み込んだ後、書
き込みを実行し(S2,S3)、その後、書き込まれた
データを読み出して元データと比較することで、要求さ
れたデータの書き込み結果を検証する(S5,S6)。
また、書き込み最終セクタの次のセクタが破壊されてい
るか否かを、当該次セクタのデータを読み出して当該次
セクタの元のデータと比較することで検証し(S8)、
次セクタが破壊されている場合、当該次セクタを元のデ
ータにより回復させ(S9)、ここで回復できて且つ更
に次のセクタがあるならば、この更に次のセクタについ
いて、S8の検証を行わせる(S10,S11)。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、フロッピーディス
ク装置を対象とするデータの読み出し/書き込みが可能
なコンピュータシステムに係り、特にフロッピーディス
ク装置へのデータ書き込みで本来書き込むべき領域をは
み出してデータが書き込まれるエラーを検出してリカバ
リするのに好適なコンピュータシステム及びフロッピー
ディスク装置へのデータ書き込み時のエラー検出・リカ
バリ方法に関する。
【0002】
【従来の技術】近年のコンピュータシステムでは、外部
記憶装置として、高速・大容量であるという理由で、ハ
ードディスク装置(HDD)が標準装備されるのが一般
的である。このハードディスク装置の記録媒体(磁気デ
ィスク)はリムーバブルでない。このため、ハードディ
スク装置を備えたコンピュータシステムには、ユーザの
使い勝手を考慮して、フロッピーディスク装置(FD
D)も装備しているものが多い。
【0003】通常、1.44MBのフロッピーディスク
を適用するフロッピーディスク装置では、1セクタ51
2バイトを8msで転送して書き込む設計仕様となって
いる。つまり、1バイト16μsで転送して書き込む必
要がある。ここで、書き込みデータはDMA(ダイレク
トメモリアクセス)コントローラ(DMAC)により1
バイト単位でバスを介してフロッピーディスクコントロ
ーラ (FDC)に転送される。そのため、バスの取得
と解放が1バイトの転送毎に行われる。
【0004】ところが近年のコンピュータシステムで
は、バスにはサウンドコントローラを始めとする種々の
バス利用装置(I/Oデバイス)が接続されていて、当
該各バス利用装置から頻繁にバス取得の割込み要求(I
RQ)が出されてバスが使用されるため、フロッピーデ
ィスク装置に対して1バイトを16μsで転送して書き
込むのに十分なタイミングでバスが取得できるとは限ら
ない。このような場合、本来書き込むべき領域をはみ出
してデータが書き込まれる、いわゆるDMAアンダーラ
ン(DMAオーバーラン)が発生する虞がある。これに
ついて図3を参照して説明する。
【0005】まず、フロッピーディスク上のあるセクタ
(書き込み対象セクタ)に、1セクタ分のバイトデータ
A,B,C,…,X,Y,Zを書き込むものとする。こ
の際に、バイトデータのA,B,C,…,X,Y,Zの
転送(更に詳細に述べるならば、DMAコントローラが
書き込むべきバイトデータをバスを介して主メモリ等か
ら読み込んでフロッピーディスクコントローラ(FD
C)に転送して、フロッピーディスク上の書き込み対象
セクタに書き込ませる動作)が16μs毎に正常に行わ
れた場合には、書き込み対象セクタ(書き込みセクタ)
上のデータは図3(a)のようになる。
【0006】ところが、バスが速やかに取得できないた
めに、バイトデータの転送が16μsで完了できない場
合がある。このような場合、該当するバイトデータが後
続のバイトデータを書き込むべき位置にも続けて書かれ
てDMAアンダーランを招く。
【0007】例を挙げると、先頭のバイトデータAの書
き込みの後に一旦解放したバスを速やかに取得できなか
ったために、次のバイトデータBの転送に16μsを超
える時間、例えば30μsを要した場合であれば、当該
バイトデータBは、図3(b)に示すように、2バイト
分連続して書き込まれる。この場合、後続のバイトデー
タC,…を16μs毎に正しく書き込めたとしても、書
き込みセクタに書き込まれたデータはA,B,B,C,
…,X,Yのように、本来のデータA,B,C,…,
X,Y,Zとは異なるものとなる。
【0008】図3(b)に示すようなDMAアンダーラ
ンに起因する書き込みエラーは、フロッピーディスクコ
ントローラ(FDC)にて検出して、内部のステータス
レジスタに書き込みエラーを示すステータスとして設定
することができる。したがって、フロッピーディスクド
ライバ(FDドライバ)からは、当該コントローラのス
テータスレジスタの内容を読み取ることで、書き込みエ
ラーを判断することができる。つまり、図3(b)に示
すDMAアンダーランに起因する書き込みエラーは、コ
ントローラからのステータスによりフロッピーディスク
ドライバにて判断できるため、大きな問題とはならな
い。
【0009】ところが、最終のバイトデータ(最終の書
き込みセクタ、つまり書き込み最終セクタの最終バイト
位置に書き込まれるバイトデータ)Zの転送が16μs
で完了せずに、図3(c)のように、当該データZが次
のセクタにも続けて書かれるDMAアンダーランの場
合、フロッピーディスクコントローラでは当該DMAア
ンダーランが書き込みエラーとして検出されない。この
場合、書き込みエラーがコントローラのステータスレジ
スタに反映されないため、フロッピーディスクドライバ
から完全なエラーチェックを行うことができないという
問題が発生する。
【0010】そこで米国特許5,379,414(以
下、Adams特許と称する)では、図3(c)のタイ
プの書き込みエラー、つまり最終バイトが次のセクタの
領域まで続けて書かれてしまうDMAアンダーランを検
出できる手法を提案している。
【0011】このAdams特許では、タイマのリプロ
グラミングによりシステム標準(一般に55ms)より
も短い時間(1セクタ分のデータの転送に要する時間8
msより短い時間)を作ってタイマ割り込みを発生し、
図4(a)のフローチャートに示す手順で、最終バイト
のDMAアンダーランを監視するようにしている。
【0012】即ちAdams特許では、フロッピーディ
スク装置への書き込みを始めると、上述のタイマ割り込
みを使ってバスを取得してDMAカウンタをリードし
て、最終バイト近くの転送であるか否かを判断する動作
を、最終バイトが近くなるまで繰り返す(ステップS2
1,S22)。
【0013】そして、最終バイト近くとなった場合に
は、バスを占有してDMAカウンタをリードする動作
を、当該カウンタ値が0になるまで、即ち最終バイトの
転送となるまで繰り返す(ステップS23,S24)。
ここで、DMAカウンタ値が0となったことを検出した
なら、DMAカウンタ値が0でなくなるまで、つまり最
終バイトの転送が完了するまで、一定の周期でDMAカ
ウンタ値を監視する動作を繰り返して、その繰り返しの
回数、つまりループ回数をカウントする(ステップS2
5,S26)。
【0014】やがて、DMAカウンタ値が0でなくなっ
たならば、カウントしていたループ回数を閾値Nと比較
し(ステップS27)、ループ回数がNより大きい場合
には、最終バイトの転送が16μsで完了せず、最終バ
イトでDMAアンダーランが発生しているものと判断す
る。
【0015】このようにAdams特許では、タイマ割
り込みを使用して、タイマのリプログラミングによりシ
ステム標準よりも短い時間を作ってDMAカウンタを監
視している。またAdams特許では、最終バイト近く
なると、最終バイト(の転送)を検出するために、1バ
イトの転送に要する時間(16μs)より短いサイクル
でDMAカウンタを監視する必要がある。またAdam
s特許では、最終バイトの転送に要する時間を検出する
ために、上記最終バイトの検出時より更に短いサイクル
でDMAカウンタを監視してループ回数をカウントする
必要もある。その間、CPUはDMAカウンタの監視、
ループ回数のカウントに占有される。
【0016】このようなAdams特許で適用される、
最終バイトのDMAアンダーランの検出手法では、最近
の高速CPUを用いたとしても非常に大きな負荷とな
り、またタイマを使用して動作しているマルチタスクの
0Sのもとでは、非現実的な手法である。しかもAda
ms特許では、最終バイトのDMAアンダーランが検出
できたとしても、後続のセクタの破壊については何も考
慮されていない。
【0017】また、米国特許5,379,414には、
従来技術として、図4(b)のフローチャートに示すよ
うに、フロッピーディスク装置への書き込みを1セクタ
単位に分割して、1セクタ単位の書き込みを行い(ステ
ップS31,S32)、1セクタ書き込み毎に、書き込
み先のセクタのデータをリードして、元の書き込みデー
タと比較することで(ステップS33,S34)、セク
タ単位でデータが正しく書かれたか否かを判断する技術
が記載されている。
【0018】しかし、この従来技術では、フロッピーデ
ィスク装置への書き込みを1セクタ単位に分割すると共
に、データ書き込みが正しく行われたか否かを判断する
ためのデータ比較も1セクタ単位で行われるため、シス
テムの負荷が大きい。しかも、最終バイトのDMAアン
ダーランの発生は検出できず、その際の後続のセクタの
破壊については何も考慮されていない。
【0019】
【発明が解決しようとする課題】上記したように、フロ
ッピーディスク装置への書き込み時における従来の最終
バイトのDMAアンダーランの検出手法(Adams特
許)は、タイマ割り込みを使用して、タイマのリプログ
ラミングによりシステム標準よりも短い時間を作ってD
MAカウンタを監視しているため、最近の高速CPUを
用いたとしても非常に大きな負荷となり、またタイマを
使用して動作しているマルチタスクの0Sのもとでは、
非現実的な手法であった。このため、上記検出手法が実
現できたとしても、システムの負荷が大きく、また速度
低下も大きいという問題があった。しかも、後続のセク
タのデータ破壊については何も考慮されていなかった。
【0020】また従来から、フロッピーディスク装置へ
の書き込みを1セクタ単位に分割して、1セクタ単位の
書き込み、読み込み、比較を行い、データが正しく書か
れたか否かを判断する手法も知られているが、この手法
ではシステムの負荷が大きいだけでなく、最終バイトの
DMAアンダーランの発生が検出できないという問題が
あった。また当然のことながら、後続のセクタのデータ
破壊については何も考慮されていない。
【0021】本発明は上記事情を考慮してなされたもの
でその目的は、フロッピーディスク装置への書き込みで
最終バイトのDMAアンダーランが発生しても、当該D
MAアンダーランに起因する書き込みエラーをシステム
の負荷の増大を抑えながら検出でき、しかも後続のセク
タのデータが保証できるコンピュータシステム及びフロ
ッピーディスク装置へのデータ書き込み時のエラー検出
・リカバリ方法を提供することにある。
【0022】
【課題を解決するための手段】本発明は、フロッピーデ
ィスクコントローラ及びDMAコントローラを使用する
ことでフロッピーディスク装置を対象とするデータの読
み出し/書き込みが可能なコンピュータシステムにおい
て、上記フロッピーディスク装置に対する書き込み要求
が発生して当該書き込み要求で要求されたデータの書き
込みが行われた場合、書き込まれたデータを読み出して
元データと比較することで、要求されたデータの書き込
み結果を検証する書き込み結果検証手段と、上記書き込
み最終セクタの次のセクタが破壊されているか否かを、
当該次セクタのデータを読み出して当該次セクタの元の
データと比較することで検証する次セクタ破壊検証手段
と、この次セクタ破壊検証手段により上記次セクタの破
壊が検証された場合に、当該次セクタを上記元のデータ
により回復させるリカバリ手段とを備えたことを特徴と
する。
【0023】このような構成においては、フロッピーデ
ィスク装置へのデータ書き込み後にその書き込んだデー
タを読み出して元データと比較して、両データが一致し
ているか否かを調べることで、書き込み結果が正しいか
否かが書き込み要求単位で検証される。また、書き込み
最終セクタの次のセクタが破壊されているか否かが、当
該次セクタのデータを読み出して当該次セクタの元のデ
ータと比較して、両データが一致しているか否かを調べ
ることで検証される。そして、次セクタが破壊されてい
ると判定されたときは、元のデータを用いて当該次セク
タへの書き込みを行うことで、当該次セクタの破壊部分
の回復が図られる。
【0024】このため上記の構成においては、システム
の負荷が増大するのを抑えながら、完全なエラーチェッ
クと後続セクタのデータの保証とを実現できる。
【0025】ここで、上記元のデータを利用可能とする
ためには、フロッピーディスク装置へのデータ書き込み
前に書き込み最終セクタに後続するセクタ(少なくと
も、書き込み最終セクタの次のセクタ)のデータの読み
込みを行っておくとよい。
【0026】また、リカバリ手段により上記次セクタが
正しく回復されない場合もあり得ることから、リカバリ
手段により上記次セクタが正しく回復されているか否か
を、当該次セクタのデータを読み出して当該次セクタの
上記元のデータと比較することで検証する検証するリカ
バリ検証手段を追加するとよい。
【0027】また、リカバリ検証手段により上記次セク
タが正しく回復されていることが検証された場合、当該
次セクタの更に次のセクタが、上記リカバリ手段のリカ
バリ操作で破壊されている可能性もあるため、当該更に
次のセクタが破壊されているか否かを上記次セクタ破壊
検証手段により検証させる制御手段を追加するとよい。
ここで、上記更に次のセクタの破壊検証を可能とするた
めには、上記後続セクタ読み込み手段により、書き込み
の対象となる書き込み最終セクタの次のセクタから同一
トラックの最終セクタまでのデータを予め読み込む構成
とするとよい。
【0028】また、書き込み要求に対する書き込みの実
行の結果、書き込みに成功したか或いは失敗したかを上
記書き込み要求の要求元に通知する書き込み検証結果通
知手段であって、上記リカバリ手段により次セクタが正
しく回復されなかった場合には、上記書き込み結果検証
手段の検証結果に無関係に書き込み失敗を通知する検証
結果通知手段を更に備えるとよい。
【0029】
【発明の実施の形態】以下、本発明の実施の形態につき
図面を参照して説明する。図1は本発明の一実施形態に
係るコンピュータシステムの概略構成を示すブロック図
である。
【0030】図1のコンピュータシステムは、システム
の制御中枢をなすCPU11と、OS(オペレーティン
グシステム)、処理対象のアプリケーションプログラ
ム、当該アプリケーションによって作成されたユーザデ
ータ等を格納するのに用いられる主メモリ12とを備え
ている。CPU11及び主メモリ12はバス13に接続
されている。
【0031】バス13には、システムタイマ14、キー
ボードコントローラ(KBC)16、フロッピーディス
クコントローラ(FDC)18、DMAコントローラ
(DMAC)19、ハードディスクコントローラ(HD
C)21、その他の各種I/Oデバイス22、及び割り
込みコントローラ23等も接続されている。
【0032】システムタイマ14は、プログラマブル・
インターバル・タイマ(PIT)であり、通常は標準の
55msの時間間隔で割り込み要求(IRQ)を発生す
る。この割り込み要求の発生間隔はプログラマブルに設
定可能であり、0S環境によっては高速タスクの切り替
えのために、55msよりも更に短い値に設定されるこ
ともある。システムタイマ14からの割り込み要求の優
先度はシステムで最も高い。
【0033】キーボードコントローラ16は、キーボー
ド(KB)15のキー入力制御を行う。フロッピーディ
スクコントローラ18は、フロッピーディスク装置(F
DD)17を対象とするデータの読み出し/書き込みの
制御を行う。フロッピーディスクコントローラ18には
ステータスレジスタ(図示せず)が内蔵されており、読
み出し/書き込みの実行結果を示す各種ステータスが設
定される。
【0034】DMAコントローラ19は、CPU11か
らの指示により、主メモリ12とI/Oデバイスとの間
のデータのDMA(ダイレクトメモリアクセス)転送を
制御する。特に、本実施形態におけるDMAコントロー
ラ19は、CPU11から指定されたフロッピーディス
ク装置17への書き込みデータ、またはフロッピーディ
スク装置17からの読み出しデータの転送を制御する。
そのためDMAコントローラ19には、CPU11から
指定された書き込みまたは読み出しデータの転送量(転
送バイト数)を初期値として例えば1バイト転送毎に1
デクリメントするDMAカウンタ(図示せず)が設けら
れている。
【0035】ハードディスクコントローラ(HDC)2
1は、ハードディスク装置(HDD)20を対象とする
データの読み出し/書き込みの制御を行う。このハード
ディスク装置20には、OS、各種アプリケーションプ
ログラム、各種ドライバプログラム、ユーザデータ等が
保存されている。このドライバプログラムの1つに、ア
プリケーションプログラムからのフロッピーディスク装
置17に対する読み出し/書き込み要求を受けて、対応
する読み出し/書き込みの実行を制御するフロッピーデ
ィスクドライバプログラム(以下、FDドライバと称す
る)120があり、図1のように主メモリ12にロード
されて使用される。
【0036】その他の各種I/Oデバイス22には、サ
ウンドコントローラ、シリアルポート、SCSIポート
などがある。
【0037】割り込みコントローラ23は、システムタ
イマ14、キーボードコントローラ16、フロッピーデ
ィスクコントローラ18、ハードディスクコントローラ
21、その他の各種I/Oデバイス22からの割り込み
要求(IRQ)を受けて、各割り込み要求の優先度に従
う要求受け付け制御を行い、CPU11への割り込み信
号出力を行う。この場合、受け付けた割り込み要求を示
すステータス情報は、割り込みコントローラ23に内蔵
のレジスタ(図示せず)に保持され、CPU11が読み
込むことで割り込み要求(割り込み要求元)が識別可能
なようになっている。
【0038】以上の構成のコンピュータシステムにおい
て、主メモリ12に格納されている処理対象アプリケー
ションプログラムからフロッピーディスク装置17に対
する書き込み要求が発行された場合には、FDドライバ
120に従うCPU11の動作により、図2のフローチ
ャートに示す手順の処理が次のように行われる。
【0039】まずCPU11は、アプリケーションプロ
グラムからの書き込み要求が、トラックの最終セクタを
含む書き込みを指定しているか否かをチェックする(ス
テップS1)。もし、トラック最終セクタを含む書き込
みでないならば、書き込みデータの最終バイトのDMA
アンダーランが発生する可能性があることから、その際
の対処のために、CPU11はフロッピーディスクコン
トローラ18に対して、書き込むべきセクタ(書き込み
対象セクタ)の最終セクタ(書き込み最終セクタ)の次
のセクタから同一トラックの最終セクタ(トラック最終
セクタ)までのデータを読み込む指令を発行すると共
に、DMAコントローラ19に対して該当する読み出し
データを主メモリ12内の所定の領域へ転送する指令を
発行する(ステップS2)。即ちCPU11は、書き込
み最終セクタの次セクタからトラック最終セクタまでの
全セクタのデータの読み込みを行わせる。
【0040】CPU11は、トラック最終セクタを含む
書き込みでない場合は直ちに、トラック最終セクタを含
む書き込みの場合には上記ステップS2の実行後に、フ
ロッピーディスクコントローラ18及びDMAコントロ
ーラ19を制御して上記要求された書き込みを実行する
(ステップS3)。
【0041】フロッピーディスクコントローラ18は、
フロッピーディスク装置17に対してCPU11から指
示された書き込みを行うと、そのステータスを内蔵のス
テータスレジスタに設定して、割り込みコントローラ2
3に対し割り込み要求を発生する。この割り込み要求が
割り込みコントローラ23で受け付けられると、当該コ
ントローラ23からCPU11に割り込み信号が出力さ
れると共に、当該コントローラ23内のレジスタに、対
応する割り込み要求がフロッピーディスクコントローラ
18からのものであることを示す情報を設定する。
【0042】CPU11は、割り込みコントローラ23
からの割り込み信号に応じて当該コントローラ23内の
レジスタを参照して、フロッピーディスクコントローラ
18からの割り込み要求であることを識別すると、フロ
ッピーディスクコントローラ18内のステータスレジス
タの内容を読み込んで、書き込みエラーの有無をチェッ
クする(ステップS4)。もし、書き込みエラーが検出
されているならば、CPU11は書き込み要求元のアプ
リケーションプログラムに書き込み失敗を通知する。
【0043】これに対し、書き込みエラーが検出されて
いない場合には、CPU11は、フロッピーディスクコ
ントローラ18では検出できない、最終バイトのDMA
アンダーランの発生の有無を調べ、発生している場合に
は隣接セクタをリカバリするための一連の処理を次のよ
うに行う。
【0044】まずCPU11は、フロッピーディスクコ
ントローラ18及びDMAコントローラ19を制御し
て、ステップS3で書き込んだデータを主メモリ12上
の所定の領域に読み込ませる(ステップS5)。
【0045】次にCPU11は、ステップS5で主メモ
リ12に読み込んだデータと、ステップS3でフロッピ
ーディスク装置17に書き込んだデータ、つまりアプリ
ケーションプログラムから要求された書き込みデータ
(元データ)とを比較し、一致しているか否かのフラグ
情報を主メモリ12の所定領域に設定する(ステップS
6)。このフラグ情報は、書き込みが要求された書き込
み対象セクタ(書き込みセクタ)に、要求された書き込
みデータが正しく書き込まれているか否か、つまり書き
込み結果が正しいか否かを示す。但し、書き込み結果は
正しくても、最終バイトのDMAアンダーランの発生に
より、後続のセクタ(次セクタ)のデータが破壊されて
いる可能性はあり得る。
【0046】そこでCPU11は、先のステップS1と
同様の判定処理を行い(ステップS7)、トラック最終
セクタを含む書き込みであったなら、最終バイトのDM
Aアンダーランを考慮する必要がないことから、後述す
るステップS12に進む。
【0047】これに対し、トラック最終セクタを含む書
き込みでなかったならば、CPU11は最終バイトのD
MAアンダーランを考慮して、ステップS3で書き込ん
だ最終セクタ(書き込み最終セクタ)の次のセクタのデ
ータが破壊されていないかどうか、つまり次セクタが正
常か否かを次のようにしてチェックする(ステップS
8)。即ちCPU11は、フロッピーディスクコントロ
ーラ18及びDMAコントローラ19を制御して書き込
み最終セクタの次のセクタのデータの読み込みを行わ
せ、当該次セクタのデータと、先のステップS2で主メ
モリ12の所定領域に既に読み込まれている当該次セク
タのデータとを比較し、両データが一致しているか否か
により、当該次セクタが破壊されてないか(つまり次セ
クタが正しいか)どうかを判定する。
【0048】もし、次セクタが破壊されてないならば、
ステップS12に進む。これに対し、次セクタが破壊さ
れているならば、CPU11は当該次セクタの直前のセ
クタ(ここでは、書き込み最終セクタ)への書き込みの
最終バイトの転送でDMAアンダーランが発生したもの
として、当該次セクタのデータをリカバリするための処
理を次のように行う(ステップS9)。即ちCPU11
は、先のステップS2で主メモリ12の所定領域に読み
込んでおいた当該次セクタのデータを、当該次セクタに
書き込ませることで、当該次セクタのリカバリを行う。
【0049】続いてCPU11は、上記リカバリを行っ
た次セクタが正しくリカバリされているか否か、つまり
次セクタのリカバリに成功したか否かを次のようにして
チェックする(ステップS10)。即ちCPU11は、
先のステップS8でのチェック処理と同様にして、フロ
ッピーディスクコントローラ18及びDMAコントロー
ラ19を制御して上記次セクタのデータの読み込みを行
わせ、当該次セクタのデータと、先のステップS2で主
メモリ12の所定領域に既に読み込まれている当該次セ
クタのデータとを比較し、両データが一致しているか否
かにより、次セクタのリカバリに成功したか否かを判定
する。
【0050】もし、上記次セクタのリカバリに失敗した
ならば、CPU11は書き込み結果が正しいか否かに無
関係に、書き込み要求元のアプリケーションプログラム
に書き込み失敗を通知する。これに対し、上記次セクタ
のリカバリに成功したならば、当該次セクタがトラック
最終セクタであるか否かをチェックする(ステップS1
1)。
【0051】もし、リカバリに成功した次セクタがトラ
ック最終セクタであるならば、当該次セクタのリカバリ
処理、つまり次セクタへの元のデータの書き込みで当該
次セクタの最終バイトのDMAアンダーランが発生する
虞はないことから、CPU11はステップS12に進
む。
【0052】これに対し、リカバリに成功した次セクタ
がトラック最終セクタでないならば、当該次セクタのリ
カバリ処理で当該次セクタの最終バイトのDMAアンダ
ーランが発生して、更に次のセクタを破壊する可能性が
あることから、CPU11は、この更に次のセクタを上
記した次セクタとして、上記ステップS8以降の処理を
行う。これにより、ステップS9のリカバリ処理は、当
該リカバリ処理でリカバリされたセクタの更に次のセク
タが正しいと判定されるか、或いはトラック最終セクタ
がリカバリされるまで、繰り返される。
【0053】さて、ステップS7でトラック最終セクタ
を含む書き込みであると判定された場合、或いはステッ
プS8で次セクタが正しいと判定された場合、或いはリ
カバリに成功した次セクタがトラック最終セクタである
とステップS11で判定された場合、つまり書き込み最
終セクタの次セクタ〜トラック最終セクタまでに、最終
バイトのDMAアンダーランで破壊されてリカバリでき
ていないセクタは存在しないことが確認できた場合、C
PU11はステップS12に進む。CPU11は、この
ステップS12において、先のステップS6でのデータ
比較結果を表すフラグ情報を参照し、一致を示すなら
ば、即ち書き込み結果が正しいならば、CPU11は書
き込み要求元のアプリケーションプログラムに書き込み
成功を通知する。これに対し、フラグ情報が不一致を示
すならば、即ち書き込み結果が誤っていたならば、CP
U11は書き込み要求元のアプリケーションプログラム
に書き込み失敗を通知する。
【0054】このように本実施形態では、トラック最終
セクタを含む書き込みでないときは、次セクタが正しい
か、或いはリカバリでき、且つ書き込み結果が正しい場
合に限り、要求元のアプリケーションプログラムに書き
込み成功が通知される。一方、次セクタが正しいか、或
いはリカバリできても、書き込み結果が誤っている場合
には、書き込み失敗が通知される。更に、次セクタが正
しくなく、且つリカバリもできない場合には、書き込み
結果に無関係に書き込み失敗が通知される。
【0055】一方、トラック最終セクタを含む書き込み
の場合には、次セクタの破壊を考慮する必要がないこと
から、書き込み結果だけに基づいて書き込み成功または
失敗が通知される。
【0056】
【発明の効果】以上詳述したように本発明によれば、フ
ロッピーディスク装置へのデータ書き込み後にその書き
込んだデータを読み出して元データと比較することで書
き込み結果が正しいか否かを検証すると共に、書き込み
最終セクタの次のセクタが破壊されているか否かを当該
次セクタのデータを読み出して当該次セクタの元のデー
タと比較することで検証し、破壊されているときは上記
元のデータにより当該次セクタの破壊部分の回復を図る
ようにしたので、システムの負荷が増大するのを抑えな
がら、完全なエラーチェックと後続セクタのデータの保
証とを実現できる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るコンピュータシステ
ムの概略構成を示すブロック図。
【図2】同実施形態におけるフロッピーディスク装置へ
のデータ書き込み時の動作手順を示すフローチャート。
【図3】フロッピーディスク上で同一データが誤って連
続して書き込まれるDMAアンダーランを説明するため
の図。
【図4】従来技術を説明するためのフローチャート。
【符号の説明】
11…CPU 12…主メモリ 13…バス 14…システムタイマ 17…フロッピーディスク装置(FDD) 18…フロッピーディスクコントローラ(FDC) 19…DMAコントローラ(DMAC) 23…割り込みコントローラ 120…FDドライバ(フロッピーディスクドライバプ
ログラム)
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 13/00 301 G06F 13/00 301J G11B 20/12 G11B 20/12 20/18 520 20/18 520C 522 522Z 552 552Z 572 572B 572F Fターム(参考) 5B018 GA06 HA01 KA02 KA22 MA13 QA15 RA11 5B065 BA02 CE07 EA21 EA22 EA39 5B083 AA08 BB01 BB02 CC06 CD06 EE08 EF05 5D044 BC01 CC04 DE03 DE12 DE37 DE47 DE49 DE62 DE64 DE96

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 フロッピーディスクコントローラ及びD
    MAコントローラを使用することでフロッピーディスク
    装置を対象とするデータの読み出し/書き込みが可能な
    コンピュータシステムにおいて、 前記フロッピーディスク装置に対する書き込み要求が発
    生して当該書き込み要求で要求されたデータの書き込み
    が行われた場合、書き込まれたデータを読み出して元デ
    ータと比較することで、要求されたデータの書き込み結
    果を検証する書き込み結果検証手段と、 前記書き込み最終セクタの次のセクタが破壊されている
    か否かを、当該次セクタのデータを読み出して当該次セ
    クタの元のデータと比較することで検証する次セクタ破
    壊検証手段と、 前記次セクタ破壊検証手段により前記次セクタの破壊が
    検証された場合に、当該次セクタを前記元のデータによ
    り回復させるリカバリ手段とを具備することを特徴とす
    るコンピュータシステム。
  2. 【請求項2】 前記フロッピーディスク装置に対する書
    き込み要求が発生した場合に、要求された書き込みの実
    行に先立ち、書き込みの対象となる書き込み最終セクタ
    に後続するセクタのデータを読み込む後続セクタ読み込
    み手段を更に具備し、 前記次セクタ破壊検証手段及び前記リカバリ手段は、前
    記次セクタの元のデータとして、後続セクタ読み込み手
    段により読み込まれている該当セクタのデータを用いる
    ことを特徴とする請求項1記載のコンピュータシステ
    ム。
  3. 【請求項3】 前記書き込み要求で要求された書き込み
    の実行に先立ち、書き込みの対象となる書き込み最終セ
    クタの次のセクタから同一トラックの最終セクタまでの
    データを読み込む後続セクタ読み込み手段と、 前記リカバリ手段により前記次セクタが正しく回復され
    ているか否かを、当該次セクタのデータを読み出して当
    該次セクタの前記元のデータと比較することで検証する
    検証するリカバリ検証手段と、 前記リカバリ検証手段により前記次セクタが正しく回復
    され、且つ同一トラックに更に次のセクタが存在する場
    合に、当該更に次のセクタが破壊されているか否かを前
    記次セクタ破壊検証手段により検証させる制御手段とを
    更に具備し、 前記次セクタ破壊検証手段、前記リカバリ手段及び前記
    リカバリ検証手段は、前記次セクタの元のデータとし
    て、後続セクタ読み込み手段により読み込まれている該
    当セクタのデータを用いることを特徴とする請求項1記
    載のコンピュータシステム。
  4. 【請求項4】 前記書き込み要求に対する書き込みの実
    行の結果、書き込みに成功したか或いは失敗したかを前
    記書き込み要求の要求元に通知する書き込み検証結果通
    知手段であって、前記リカバリ手段により前記次セクタ
    が正しく回復されなかった場合には、前記書き込み結果
    検証手段の検証結果に無関係に書き込み失敗を通知する
    検証結果通知手段を更に具備することを特徴とする請求
    項1記載のコンピュータシステム。
  5. 【請求項5】 フロッピーディスクコントローラ及びD
    MAコントローラを使用することでフロッピーディスク
    装置を対象とするデータの読み出し/書き込みが可能な
    コンピュータシステムに適用されるフロッピーディスク
    装置へのデータ書き込み時のエラー検出・リカバリ方法
    であって、 前記フロッピーディスク装置に対する書き込み要求が発
    生した場合、書き込みの対象となる書き込み最終セクタ
    に後続するセクタのデータを読み込んだ後、 前記書き込み要求で要求されたデータの書き込みを実行
    し、 しかる後に、書き込まれたデータを読み出して元データ
    と比較することで、要求されたデータの書き込み結果を
    検証すると共に、 前記書き込み最終セクタの次のセクタが破壊されている
    か否かを、当該次セクタのデータを読み出して当該次セ
    クタの元のデータと比較することで検証し、 前記次セクタの破壊が検証された場合、当該次セクタを
    前記元のデータにより回復させることを特徴とするフロ
    ッピーディスク装置へのデータ書き込み時のエラー検出
    ・リカバリ方法
JP30789399A 1999-10-29 1999-10-29 コンピュータシステム及びフロッピー(登録商標)ディスク装置へのデータ書き込み時のエラー検出・リカバリ方法 Abandoned JP2001126386A (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP30789399A JP2001126386A (ja) 1999-10-29 1999-10-29 コンピュータシステム及びフロッピー(登録商標)ディスク装置へのデータ書き込み時のエラー検出・リカバリ方法
PCT/JP2000/003619 WO2001033566A1 (en) 1999-10-29 2000-06-05 Data write control system and method therefor
AU49539/00A AU762703B2 (en) 1999-10-29 2000-06-05 Data write control system and method therefor
EP00931686A EP1145240A1 (en) 1999-10-29 2000-06-05 Data write control system and method therefor
US09/869,348 US6751038B1 (en) 1999-10-29 2000-06-05 Data write control system and method therefor
CA002356192A CA2356192A1 (en) 1999-10-29 2000-06-05 Data write control system and method therefor
TW089111184A TW466440B (en) 1999-10-29 2000-06-08 Data write control system and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30789399A JP2001126386A (ja) 1999-10-29 1999-10-29 コンピュータシステム及びフロッピー(登録商標)ディスク装置へのデータ書き込み時のエラー検出・リカバリ方法

Publications (1)

Publication Number Publication Date
JP2001126386A true JP2001126386A (ja) 2001-05-11

Family

ID=17974443

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30789399A Abandoned JP2001126386A (ja) 1999-10-29 1999-10-29 コンピュータシステム及びフロッピー(登録商標)ディスク装置へのデータ書き込み時のエラー検出・リカバリ方法

Country Status (1)

Country Link
JP (1) JP2001126386A (ja)

Similar Documents

Publication Publication Date Title
US5822782A (en) Methods and structure to maintain raid configuration information on disks of the array
US20020169996A1 (en) Method and apparatus for providing write recovery of faulty data in a non-redundant raid system
US20050229033A1 (en) Disk array controller and information processing apparatus
JP2001228980A (ja) ディスクアレイ用コントローラ
US20060031722A1 (en) Apparatus, system, and method for active data verification in a storage system
US20070174678A1 (en) Apparatus, system, and method for a storage device's enforcing write recovery of erroneous data
JP2009187049A (ja) 装置
JP4535371B2 (ja) ディスクアレイ制御プログラム、方法及び装置
JP4454204B2 (ja) ディスクアレイ制御装置及び方法並びにディスクアレイ制御プログラム
US6751038B1 (en) Data write control system and method therefor
JP4905510B2 (ja) ストレージ制御装置及びストレージ装置のデータ回復方法
JP2001142650A (ja) アレイディスク制御方法及び装置
JP2001126386A (ja) コンピュータシステム及びフロッピー(登録商標)ディスク装置へのデータ書き込み時のエラー検出・リカバリ方法
JP2548475B2 (ja) アレイディスク装置のデータ復元量制御方法
KR20110039416A (ko) 인터럽트된 기록 복구를 위한 데이터 저장 방법, 장치 및 시스템
US20110205654A1 (en) Control apparatus, nonvolatile storage apparatus and data initialization method
JP2003228925A (ja) 磁気ディスク装置の書き込みデータ保証方法
JP3964629B2 (ja) ディスクアレイ装置のパトロールによるデータパス異常検出方法及びディスクアレイ装置を備えたコンピュータシステム
CN114327007B (zh) Nvm子系统复位的实现方法、装置、计算机设备及存储介质
JP3069829B2 (ja) ディスクアレイ装置
JPH0281224A (ja) 磁気ディスク装置のバックアップ装置
JPH04311218A (ja) 外部記憶制御装置
JP3597766B2 (ja) ディスクアレイ装置の制御方法
JPH04310671A (ja) ディスク制御装置
JPH07141120A (ja) 情報記憶媒体障害処理方法

Legal Events

Date Code Title Description
A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20050916

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050927