(57)【特許請求の範囲】
【請求項１】
ディスクアクセス命令に応じてデータがリード／ライトされる揮発性のメモリを有する半導体ディスク装置において、
前記メモリの容量より大きい容量をそれぞれ有する第１の領域及び第２の領域が設定されているハードディスクと、
前記メモリに記憶されているデータを退避する前記第１の領域の開始アドレス及びサイズを格納する第１のレジスタと、
前記第１の領域に退避されるデータと同一のデータを退避する前記第２の領域の開始アドレス及びサイズを格納する第２のレジスタと、
前記半導体ディスク装置の電源の遮断に応じ、前記第１のレジスタ及び前記第２のレジスタを参照して、前記メモリに記憶されている同一のデータを、前記第１の領域及び前記第２の領域にそれぞれ記憶させる退避手段と、
前記電源の遮断に応じ、前記退避手段に動作電源を供給するバッテリと
を具備することを特徴とする半導体ディスク装置。
【請求項２】
電源の供給開始に応じ、前記第１の領域及び前記第２の領域の内の１つの領域に記憶されているデータを読み出し、前記メモリに記憶させるリストア手段と、
このリストア手段によるデータ読み出しにおいて、エラーが発生したか否か判定する判定手段と、
この判定手段によりエラーが発生したことが判定された場合、エラーが発生した領域とは異なる領域に記憶されているデータを前記メモリに記憶するように前記リストア手段を制御する制御手段と
を具備することを特徴とする請求項１記載の半導体ディスク装置。
【請求項３】
前記リストア手段は、所定の大きさのブロック毎にデータを読み出し、
前記制御手段は、前記判定手段によりエラーが発生したことが判定された場合、前記エラーが発生した１ブロック分のデータを、前記エラーが発生した領域とは異なる領域から読み出して前記メモリに記憶するように前記リストア手段を制御する、ことを特徴とする請求項２記載の半導体ディスク装置。
【請求項４】
前記リストア手段は、所定の大きさのブロック毎にデータを読み出し、
前記制御手段は、前記判定手段によりエラーが発生したことが判定された場合、前記エラーが発生したブロック以降のデータを、前記エラーが発生した領域とは異なる領域から読み出して前記メモリに記憶するように前記リストア手段を制御する、ことを特徴とする請求項２記載の半導体ディスク装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、揮発性のメモリを記憶媒体とする半導体ディスク装置に関し、特に、前記揮発性のメモリに格納されているデータをバックアップするためのハードディスク（ＨＤＤ）を有する半導体ディスク装置に関する。
【０００２】
【従来の技術】
近年、パーソナルコンピュータ等のコンピュータシステムにおいて、記憶媒体に半導体メモリを用い、ハードディスク（ＨＤＤ）に対するアクセスと同様に、トラック及びセクタを用いたデータのリード／ライトが可能な半導体ディスク装置が注目されている。このような半導体ディスク装置は、従来普及されているＨＤＤに比べ、データのリード／ライトが高速に行うことができるという利点がある。
【０００３】
しかし、このような半導体ディスク装置の記憶媒体にＤＲＡＭ(dynamic random access memory)等の揮発性のメモリを適用した場合、半導体ディスク装置の電源の遮断（オフ）により、半導体メモリに記憶されていたデータが消失してしまう問題がある。このため、電源が遮断されている間、半導体メモリに記憶されていたデータを保持するためのバックアップ用ＨＤＤを有する半導体ディスク装置が提供されている。
【０００４】
このような半導体ディスク装置では、電源の遮断命令に応じ、所定の時間だけ電源の遮断を遅らせたり、予め設けられているバッテリ等からの電力によって半導体メモリに記憶されているデータをバックアップ用ＨＤＤに退避（セーブ）する処理が行われる。
又、電源が投入された際には、退避されたデータを半導体メモリに戻す、リストア処理が行われる。
【０００５】
【発明が解決しようとする課題】
しかし、前述した半導体ディスク装置においては、バックアップ用ＨＤＤに欠陥がある場合に、電源の投入において退避されたデータが半導体メモリに正常にリストアされないという不具合が生じる。
【０００６】
前記半導体ディスク装置では、図８（ａ）に示されるように、例えばバックアップ用ＨＤＤのメディア上に欠陥がある場合であっても、電源の遮断命令に応じたデータの退避処理は、正常に行われる。このように、メディア上に欠陥があるにもかかわらずデータの退避処理が通常通りに行われた場合、次に、電源が投入された時、図８（ｂ）に示されるように、データのリストア処理が完全に行うことができず、半導体ディスク装置を通常通りに立ち上げることができない。
【０００７】
この発明は、前記実情に鑑みてなされたものであり、バックアップ用ＨＤＤのメディア上に欠陥がある場合であっても、電源投入時のデータのリストア処理を正常に実行し、半導体メモリに記憶されるデータの破壊・消失を防止することが可能な半導体ディスク装置を提供することを目的とする。
【０００８】
【課題を解決するための手段】
この発明に係る半導体ディスク装置は、ディスクアクセス命令に応じてデータがリード／ライトされる揮発性のメモリを有する半導体ディスク装置において、前記メモリの容量より大きい容量をそれぞれ有する第１の領域及び第２の領域が設定されているハードディスクと、前記メモリに記憶されているデータを退避する前記第１の領域の開始アドレス及びサイズを格納する第１のレジスタと、前記第１の領域に退避されるデータと同一のデータを退避する前記第２の領域の開始アドレス及びサイズを格納する第２のレジスタと、前記半導体ディスク装置の電源の遮断に応じ、前記第１のレジスタ及び前記第２のレジスタを参照して、前記メモリに記憶されている同一のデータを、前記第１の領域及び前記第２の領域にそれぞれ記憶させる退避手段と、前記電源の遮断に応じ、前記退避手段に動作電源を供給するバッテリとを具備することを特徴とする。
【０００９】
このような構成により、電源遮断時には、退避用に設けられた各領域に、揮発性のメモリに記憶されているデータが退避される。従って、例えば、前記複数の領域の内、いずれかにメディア上の欠陥があり、データの退避が正常に行われなかった場合であっても、他の領域に正常にデータの退避を行うことができる。
【００１０】
前記半導体ディスク装置は、更に、電源の供給開始に応じ、前記第１の領域及び前記第２の領域の内の１つの領域に記憶されているデータを読み出し、前記メモリに記憶させるリストア手段と、このリストア手段によるデータ読み出しにおいて、エラーが発生したか否か判定する判定手段と、この判定手段によりエラーが発生したことが判定された場合、エラーが発生した領域とは異なる領域に記憶されているデータを前記メモリに記憶するように前記リストア手段を制御する制御手段とを具備することを特徴とする。
【００１１】
このような構成によれば、ＨＤＤのメディア上に欠陥がある場合であっても、他の領域に記憶されているデータをメモリに転送することにより、電源投入時のデータリストア処理を正常に実行し、半導体メモリに記憶されるデータの破壊・消失を防止でき、半導体ディスク装置の正常な立ち上げ処理が可能となる。
【００１２】
又、前記リストア手段は、所定の大きさのブロック毎にデータを読み出し、前記制御手段は、前記判定手段によりエラーが発生したことが判定された場合、前記エラーが発生した１ブロック分のデータを、前記エラーが発生した領域とは異なる領域から読み出して前記メモリに記憶するように前記リストア手段を制御するように構成しても良い。
【００１３】
又、この前記制御手段は、前記判定手段によりエラーが発生したことが判定された場合、前記エラーが発生したブロック以降のデータを、前記エラーが発生した領域とは異なる領域から読み出して前記メモリに記憶するように前記リストア手段を制御するように構成しても良い。
このように、前記制御手段を構成することにより、前記複数の領域それぞれに欠陥がある場合であっても有効なデータリストア処理を実現することができる。
【００１４】
【発明の実施の形態】
以下、図面を参照してこの発明に係る半導体ディスク装置の各実施形態を説明する。
図１は、この発明の第１実施形態に係る半導体ディスク装置をコンピュータシステムに適用した場合の構成を示すブロック図である。
【００１５】
図１に示されるコンピュータシステム１では、半導体ディスク装置１０がバス２０を介してホストコンピュータ３０に接続されている。半導体ディスク装置１０は、バス２０を介して送られるホストコンピュータ３０の命令に応じ、各種処理を行う。尚、この実施形態においては、バス２０は、ＳＣＳＩ(Small Computer System Interface) 規格に準拠したものとする。
【００１６】
半導体ディスク装置１０は、制御部１１、メモリ１２、バックアップＨＤＤ（ハードディスク）１３、インターフェイス１４、スイッチング回路１５、バッテリ１６、バッテリコントローラ１７、及び内部バス１８を有し、外部に設けられた電源(PS:Power Supply) から供給される電力に従って動作する。
【００１７】
制御部１１は、半導体ディスク装置１０全体の制御を司るものであり、マイクロプロセッサ１１０、Ｆ／Ｗ（ファームウェア）メモリ１１１、及びレジスタＲｅｇ１，Ｒｅｇ２を有する。マイクロプロセッサ１１０は、制御部１１の中心部であり、ホストコンピュータ３０から送られる命令に従った処理等、各種処理を実行する。Ｆ／Ｗメモリ１１１は、マイクロプロセッサ１１０の動作に必要な各種プログラムを記憶する。レジスタＲｅｇ１及びＲｅｇ２は、それぞれ、後述する退避領域の開始アドレス及びサイズを記憶する。尚、この実施形態においては、電源１９の電源遮断時、レジスタＲｅｇ１，Ｒｅｇ２に記憶されている内容は、バックアップＨＤＤ１３の所定の領域に退避される。
【００１８】
メモリ１２は、ＤＲＡＭ等の揮発性の半導体メモリであり、例えば、１６Ｍバイトの半導体メモリがセットされたＳＩＭＭが８個ある構成で、合計１２８Ｍバイトのメモリ容量を有する。バックアップＨＤＤ１３は、少なくともメモリ１２のメモリ容量の２倍のメモリ容量を有し、例えば、３４０Ｍバイトのメモリ容量を有する。これにより、バックアップＨＤＤ１３は、メモリ１２に記憶されているデータを、２つの異なる領域に記憶することができる。以降、この各領域を図２（ａ），（ｂ）に示されるように退避領域１，退避領域２と称する。更に、このバックアップＨＤＤ１３は、Ｆ／Ｗメモリ１１１、及びレジスタＲｅｇ１，Ｒｅｇ２に記憶されるデータを記憶するための、例えば、５１２バイトの所定領域を、前記退避領域１，退避領域２とは異なる領域に有する。
【００１９】
インターフェイス１４は、ＳＣＳＩ規格に準拠したバス２０に対応するインターフェイスであり、バス２０を介して接続されるホストコンピュータ３０等との間のインターフェイスを行う。スイッチング回路１５は、電源１９から供給される電力を送る電源ラインの接続を、制御部１１の制御に従って接続／遮断する。このスイッチング回路１５から送出される電力を供給する電源ラインは、バッテリ１６から電力が供給される電源ラインとワイヤードオアとなる。このワイヤードオアからの出力ラインは、マイクロプロセッサ１１０、メモリ１２、バックアップＨＤＤ１３に接続され、電力が供給される構成となっている。
【００２０】
バッテリ１６は、リチウム電池等により実現され、半導体ディスク装置１０に内蔵されており、バッテリコントローラ１７の制御に従って、電源ラインに電力を供給する。バッテリコントローラ１７は、内部バス１８を介して制御部１１から送られる命令に従って、バッテリ１６からの電源供給の開始／停止を制御する。但し、半導体ディスク装置１０の動作時には、バッテリ１６から常に電力が出力されている。
【００２１】
電源１９は、半導体ディスク装置の動作に必要な電力を生成し、スイッチング回路１５の指示に従って電力を供給する。この第１実施形態では、半導体ディスク装置１０の外部に設けられているが、装置内部に設けられても良い。
【００２２】
ここで、メモリ１２からバックアップＨＤＤ１３へのデータの退避処理及びリストア処理を図２（ａ），（ｂ）を参照して簡単に説明する。
前述したように、バックアップＨＤＤ１３には、メモリ１２と同様の容量を有する退避領域１及び退避領域２が設けられている。半導体ディスク装置１０では、電源が遮断された際、図２（ａ）に示されるように、メモリ１２に記憶されているデータがバックアップＨＤＤ１３の退避領域１に退避（セーブ）されると共に、退避領域２にも、同様のデータが退避される。一方、電源が投入された場合、バックアップＨＤＤ１３からメモリ１２にデータを戻すリストア処理が行われる。ここで、図２（ｂ）に示されるように退避領域１にメディア上の欠陥があり、このため、退避領域１に退避されていたデータのリストア処理が完了しなかった場合（例えば、データの読み出しが失敗した場合）、退避領域２に退避されていたデータを用いてリストア処理が実行される。
【００２３】
次に、この半導体ディスク装置の電源の投入時／遮断時の制御部１１の処理を図３及び図４のフローチャートを参照して説明する。
先ず、電源の遮断時におけるデータ退避処理について説明する。この電源遮断時の処理は、図示せぬタイマのカウントに従って発生するタイマ割込みによって実行される。制御部１１は、この割込み信号の発生に応じて電源遮断時の処理を開始する。制御部１１は、先ず、スイッチング回路１５の状態を検出することにより電源が遮断された状態、即ち、電源１９から電力の供給されないオフ状態であるか否かを判定する（ステップＳ１）。ここで、検出されたスイッチング回路１５の状態が電源オフを示していない場合、制御部１１は、再度スイッチング回路１５の状態を検出するよう処理を行う（ステップＳ２，Ｓ３）。再度検出した結果が、電源オフを示していない場合、制御部１１は、再び通常の処理に戻る。これは、半導体ディスク装置１０が電源の投入された状態で、何らかの通常処理を行うことが可能であることを示す。
【００２４】
前記ステップＳ１において、電源オフが検出された場合、または、再度検出した結果が電源オフを示している場合（ステップＳ３，ＹＥＳ）、制御部１１は、メモリ１２に記憶されているデータをバックアップＨＤＤ１３の退避領域１に退避する処理を開始する。この際、制御部１１は、レジスタＲｅｇ１に記憶されている退避領域１の開始アドレス及びサイズに従って退避処理を実行する。尚、電源１９からの電力の供給が遮断されている場合には、前述したように、バッテリ１６からの電力が、電源１９から供給されていた電力の代わりに、制御部１１等の各構成要素に供給されている。
【００２５】
次に、制御部１１は、このデータ退避が正常に完了したか否かを判定する（ステップＳ５）。ここでのデータ退避の完了判定とは、バックアップＨＤＤ１３内でデータのリード／ライトを行うヘッドがメディアに接触するヘッドクラッシュ等、ハードウェアの機構上の問題が生じたか否かの判定を示す。このようなハードウェアの機構上の問題が生じた場合後、バックアップＨＤＤ１３に対するデータのリード／ライト処理は行われない。即ち、データ退避処理が正常に完了していない場合（ステップＳ５，ＮＯ）、データ退避処理を正常に行うことができない旨の通知をホストコンピュータ３０に通知し、ホストコンピュータ３０からコンピュータシステム１のオペレータにバックアップＨＤＤ１３の異常を通知する等のエラー及び異常に対する処理が行われる（ステップＳ６，Ｓ７）。
【００２６】
退避領域１へのデータ退避が正常に完了した場合（ステップＳ５，ＹＥＳ）、制御部１１は、メモリ１２に記憶されているデータを、即ち、退避領域１に退避したデータと同じデータを退避領域２に退避する処理を行う（ステップＳ８）。この際、制御部１１は、レジスタＲｅｇ２に記憶されている退避領域２の開始アドレス及びサイズを参照して退避処理を実行する。この後、制御部１１は、前記ステップＳ５と同様にデータ退避が正常に完了したか否かを判定する（ステップＳ９）。ヘッドクラッシュ等により、データ退避処理が正常に完了していない場合、前述したデータ及び異常に対する処理が行われる（ステップＳ６，Ｓ７）。
【００２７】
退避領域２へのデータ退避が正常に完了した場合（ステップＳ９，ＹＥＳ）、制御部１１は、バッテリ１６による電源供給を中止するようにバッテリコントローラ１７に指示を送る。
【００２８】
以上の処理により、電源の遮断に応じ、メモリ１２に記憶されているデータが、バックアップＨＤＤ１３の退避領域１及び退避領域２に退避される。
尚、前述した電源遮断処理は、タイマによるタイマ割込みに応じて実行されているが、電源遮断処理は、これに限らず、例えば、コンピュータシステム１のオペレータにより、スイッチング回路１５に電源オフの操作がなされたり、もしくは、ホストコンピュータ３０からバス２０を介し、半導体ディスク装置１０の電源を遮断する旨の命令が送られた場合に割込み信号が発生するようにしてもよい。
【００２９】
次に、電源投入時におけるデータのリストア処理について図４を参照して説明する。
先ず、ホストコンピュータ３０からバス２０を介して電源を投入する命令が送られたり、もしくは、コンピュータシステム１のオペレータがスイッチング回路１５をオンにする処理を行った場合、電源１９から半導体ディスク装置１０の各構成要素に動作用の電力が供給され、割込み信号が発生する。この割込み信号に応じ、電源投入時の処理が開始される。
【００３０】
制御部１１は、先ず、バックアップＨＤＤ１３の退避領域１に記憶されているデータを、メモリ１２に記憶する処理（リストア処理）を開始する（ステップＳ１１）。この後、制御部１１は、退避領域１からのデータ読み出しが完了したか否かを判定する（ステップＳ１２）。即ち、ここでは、バックアップＨＤＤ１３の退避領域１から正しくデータが読み込めたか否の判定を行う。ここで、データの読み出しが完了している場合、制御部１１は、電源投入に応じた半導体ディスク装置１０の立ち上げが完了したとして、通常の処理を開始する。
【００３１】
退避領域１からのデータの読み出しが完了しなかった場合（ステップＳ１２，ＮＯ）、例えば、前記図２（ｂ）に示されるように退避領域１内にメディア上の欠陥があり、このためデータの転送が正常に行われなかった場合、制御部１１は、バックアップＨＤＤ１３の退避領域２に記憶されているデータを、メモリ１２に転送する処理を開始する（ステップＳ１３）。この後、制御部１１は、退避領域２に記憶されているデータが正常に読み出されたか否かを判定する（ステップＳ１４）。ここで、データの読み出しが完了している場合、制御部１１は、電源投入に応じた半導体ディスク装置１０の立ち上げが完了したとして、通常の処理を開始する。
【００３２】
退避領域２からのデータの読み出しが完了しなかった場合（ステップＳ１４，ＮＯ）、制御部１１は、リストア処理が失敗したことを示すステータスを所定のレジスタに保持し、電源投入時の処理を終了する（ステップＳ１５）。
【００３３】
リストア処理が失敗した後は、ホストコンピュータ３０から何らかの命令が半導体ディスク装置１０に送られた場合に、前記ステップＳ１５において保持されたステータスが読み出され、これにより、ホストコンピュータ３０は、半導体ディスク装置１０においてリストア処理が失敗したことを認識する。
【００３４】
以上の処理により、いずれかの退避領域に退避したデータが、メディア上の欠陥によって破壊・消失されていても、他方の退避領域に退避されたデータを用いて電源投入に応じたリストア処理を実行することができる。
【００３５】
特に、メディア上の欠陥には進行性の欠陥があり、データ退避処理において、再読み出しを行い（ベリファイ処理）、バックアップＨＤＤのメディア上に正常に退避されたことが認識された場合であっても、時間の経過に応じてデータが破壊・消失する恐れがある。このような場合であっても、前述した実施形態いおいては、２つの異なる領域にデータを退避することにより、いずれかの領域で進行性の欠陥によりデータが破壊・消失した場合であっても、他方の領域に退避されたデータを用いてリストア処理を実行することができる。
【００３６】
尚、前述した第１実施形態においては、メモリに記憶されているデータを退避するため、退避領域を２つ設けているがこれに限らず、３つ以上の複数の退避領域を異なる領域に設けても良い。
【００３７】
次に、この発明に係る半導体ディスク装置の第２実施形態について説明する。
但し、この第２実施形態における半導体ディスク装置の構成は、前述した第１実施形態の構成と同様（図１参照）であるので詳細な説明は省略する。更に、この第２実施形態におけるデータ退避処理も前記第１実施形態と同様であり、詳細な説明は省略する。
【００３８】
この第２実施形態では、データのリストア処理に特徴があり、これを図５を参照して説明する。この第２実施例では、データのリストア処理が所定のサイズ、ここでは５１２バイトのブロック毎に行われている。図５に示される退避領域１及び退避領域２は、前記図２（ａ），（ｂ）に示される退避領域と同様に、メモリ１２と同様の容量を有する。
【００３９】
ここで、図５に示されるように、退避領域１にメディア欠陥があることを仮定する。この第２実施形態では、このメディア欠陥ために、データ読み出しが正常に行われない場合、このメディア欠陥を含んだブロックについてのみ、退避領域２からデータ読み出しが行われる。
【００４０】
このようなリストア処理を図６に示されるフローチャートを参照して詳細に説明する。尚、各構成要素は、前記第１実施形態と同様の参照符号を用いて説明する。
【００４１】
先ず、ホストコンピュータ３０からバス２０を介して電源を投入する命令が送られたり、もしくは、コンピュータシステム１のオペレータがスイッチング回路１５をオンにする処理を行った場合、電源１９から半導体ディスク装置１０の各構成要素に動作用の電力が供給され、割り込み信号が発生する。この割り込み信号に応じ、電源投入時の処理が開始される。
【００４２】
制御部１１は、例えば、変数ｎを用いて、ブロック数をカウントしながらリストア処理を実行する。尚、メモリ１２は、ブロック１〜ｍまでのｍ個のブロック数により構成される。制御部１１は、先ず、退避領域１のブロック１からメモリへのデータ転送を開始する（ステップＳ２１，２２）。
【００４３】
ここで、制御部１１は、前記ブロック１のデータ読み出しが正常に行われたか否かを判定する（ステップＳ２３）。データ読み出しが正常に行われた場合（ステップＳ２３，ＹＥＳ）、制御部１１は、ブロック数ｎが、最大ブロック数ｍと等しいか否かを判定する（ステップＳ２４）。
【００４４】
ブロック数ｎが、最大ブロック数ｍと等しい場合には（ステップＳ２４，ＹＥＳ）、このリストア処理は終了する。ブロック数がｍと等しくない場合には（ステップＳ２４，ＮＯ）、ｎが１つだけインクリメントされて再びステップＳ２２の処理に戻る（ステップＳ２５）。
【００４５】
即ち、退避領域１からのデータ読み出しが失敗しない限り、ステップＳ２２，Ｓ２３，Ｓ２４，Ｓ２５のループ処理によって、リストア処理が完了する。
前記ステップＳ２３において、データ読み出しが正常に行われなかった場合、制御部１１は、退避領域２のブロックｎからメモリへのデータ転送を開始する（ステップＳ２６）。この後、制御部１１は、前記ブロックｎのデータ読み出しが正常に行われたか否かを判定する（ステップＳ２７）。データ読み出しが正常に行われた場合（ステップＳ２７，ＹＥＳ）、前記ステップＳ２４の処理に戻る。
【００４６】
ブロックｎのデータ読み出しが、退避領域２からも正常に行われなかった場合（ステップＳ２７，ＮＯ）、制御部１１は、リストア処理が失敗したことを示すステータスを所定のレジスタに保持し、電源投入時の処理を終了する（ステップＳ２８）。
【００４７】
リストア処理が失敗した後は、ホストコンピュータ３０から何らかの命令が半導体ディスク装置１０に送られた場合に、前記ステップＳ２８において保持されたステータスが読み出され、これにより、ホストコンピュータ３０は、半導体ディスク装置１０においてリストア処理が失敗したことを認識する。
【００４８】
以上の処理により、いずれかの退避領域に退避したデータが、メディア上の欠陥によって破壊・消失されていても、他方の退避領域に退避されたデータを用いて電源投入に応じたリストア処理を実行することができる。
【００４９】
特に、この第２実施形態では、欠陥の検出されたブロックについてのみ、他の退避領域からデータ読み出しが行われるため、各退避領域それぞれに欠陥があった場合でも有効なリストア処理を実現することができる。
【００５０】
次に、この発明に係る半導体ディスク装置の第３実施形態について説明する。
但し、この第３実施形態における半導体ディスク装置の構成は、前述した第１実施形態の構成と同様（図１参照）であるので詳細な説明は省略する。更に、この第３実施形態におけるデータ退避処理も前記第１実施形態と同様であり、詳細な説明は省略する。
【００５１】
この第３実施形態も、前述した第２実施形態と同様にリストア処理に特徴がある。特にこの第３実施形態では、前述した第２実施形態と異なり、第１の退避領域において、欠陥によりデータ読み出しが不可能な場合、以降のデータ読み出しを第２の退避領域から行い、又、この第２の退避領域においてデータの正常な読み出しができなかった場合には、再び前記第１の退避領域からデータ読み出しを行うことを特徴としている。
【００５２】
このリストア処理の詳細を、図７に示されるフローチャートを参照して説明する。
この第３実施形態においても、制御部１１は、変数ｎを用いて、ブロック数をカウントしながらリストア処理を実行する。同じく、メモリ１２は、ブロック１〜ｍまでのｍ個のブロック数により構成される。
【００５３】
先ず、ホストコンピュータ３０からバス２０を介して電源を投入する命令が送られたり、もしくは、コンピュータシステム１のオペレータがスイッチング回路１５をオンにする処理を行った場合、電源１９から半導体ディスク装置１０の各構成要素に動作用の電力が供給され、割り込み信号が発生する。この割り込み信号に応じ、電源投入時の処理が開始される。
【００５４】
制御部１１は、先ず、退避領域１のブロック１からメモリへのデータ転送を開始する（ステップＳ３１，３２）。
ここで、制御部１１は、前記ブロック１のデータ読み出しが正常に行われたか否かを判定する（ステップＳ３３）。データ読み出しが正常に行われた場合（ステップＳ３３，ＹＥＳ）、制御部１１は、ブロック数ｎが、最大ブロック数ｍと等しいか否かを判定する（ステップＳ３４）。
【００５５】
ブロック数ｎが、最大ブロック数ｍと等しい場合には（ステップＳ３４，ＹＥＳ）、このリストア処理は終了する。ブロック数がｍと等しくない場合には（ステップＳ３４，ＮＯ）、ｎが１つだけインクリメントされて再びステップＳ３２の処理に戻る（ステップＳ３５）。
【００５６】
即ち、退避領域１からのデータ読み出しが失敗しない限り、ステップＳ３２，Ｓ３３，Ｓ３４，Ｓ３５のループ処理によって、リストア処理が完了する。
前記ステップＳ３３において、データ読み出しが正常に行われなかった場合、制御部１１は、退避領域２のブロックｎからメモリへのデータ転送を開始する（ステップＳ３６）。この後、制御部１１は、前記ブロックｎのデータ読み出しが正常に行われたか否かを判定する（ステップＳ３７）。データ読み出しが正常に行われた場合（ステップＳ３７，ＹＥＳ）、制御部１１は、ブロック数ｎが、最大ブロック数ｍと等しいか否かを判定する（ステップＳ３８）。
【００５７】
ブロック数ｎが、最大ブロック数ｍと等しい場合には（ステップＳ３８，ＹＥＳ）、このリストア処理は終了する。ブロック数がｍと等しくない場合には（ステップＳ３８，ＮＯ）、制御部１１は、ｎを１つだけインクリメントした後、退避領域２のブロックｎからメモリへのデータ転送を開始する（ステップＳ３９，Ｓ４０）。
【００５８】
この後、制御部１１は、前記ブロックｎのデータ読み出しが正常に行われたか否かを判定する（ステップＳ４１）。データ読み出しが正常に行われた場合（ステップＳ４１，ＹＥＳ）、制御部１１は、ブロック数ｎが、最大ブロック数ｍと等しいか否かを判定する（ステップＳ４２）。
【００５９】
ブロック数ｎが、最大ブロック数ｍと等しい場合には（ステップＳ４２，ＹＥＳ）、このリストア処理は終了する。ブロック数がｍと等しくない場合には（ステップＳ４２，ＮＯ）、制御部１１は、ステップＳ３９の処理に戻る。
【００６０】
即ち、一旦、退避領域２からのデータ読み出しが行われると、データ読み出しが失敗しない限り、退避領域２からのデータ読み出しが継続される（ステップＳ３９，Ｓ４０，Ｓ４１，Ｓ４２）。
【００６１】
前記ステップＳ４１において、データ読み出しが正常に行われなかった場合（ステップＳ４１，ＮＯ）、制御部１１は、退避領域１のブロックｎからメモリへのデータ転送を開始する（ステップＳ４３）。この後、制御部１１は、前記ブロックｎのデータ読み出しが正常に行われたか否かを判定する（ステップＳ４４）。データ読み出しが正常に行われた場合（ステップＳ４４，ＹＥＳ）、制御部１１は、再びステップＳ３４の処理に戻る。
【００６２】
即ち、再度、退避領域１からのデータ読み出しが行われると、データ読み出しが失敗しない限り、退避領域１からのデータ読み出しが継続される（ステップＳ３４，Ｓ３５，Ｓ３２，Ｓ３３）。
【００６３】
前記ステップＳ３７，Ｓ４４において、データの読み出しが正常に行われなかったと判定された場合、これは、同一のブロックに対して、退避領域１及び退避領域２いずれからもデータが正常に読み出されなかったことを意味する。従って、この場合には（ステップＳ３７，ＮＯ、又はステップＳ４４，ＮＯ）、制御部１１は、リストア処理が失敗したことを示すステータスを所定のレジスタに保持し、電源投入時の処理を終了する（ステップＳ４５，Ｓ４６）。
【００６４】
リストア処理が失敗した後は、ホストコンピュータ３０から何らかの命令が半導体ディスク装置１０に送られた場合に、前記ステップＳ４５，Ｓ４６において保持されたステータスが読み出され、これにより、ホストコンピュータ３０は、半導体ディスク装置１０においてリストア処理が失敗したことを認識する。
【００６５】
以上の処理により、いずれかの退避領域に退避したデータが、メディア上の欠陥によって破壊・消失されていても、他方の退避領域に退避されたデータを用いて電源投入に応じたリストア処理を実行することができる。
【００６６】
特に、この第３実施形態では、欠陥の検出されたブロックについてのみ、他の退避領域からデータ読み出しが行われるため、前記第２実施形態と同様に、各退避領域それぞれに欠陥があった場合でも有効なリストア処理を実現することができる。
【００６７】
【発明の効果】
以上詳述したように、この発明によれば、揮発性のメモリに記憶されているデータをバックアップするためのＨＤＤの退避領域を複数領域設け、電源遮断時には、各領域にメモリに記憶されているデータを退避する。これにより、ＨＤＤのメディア上に欠陥がある場合であっても、他の領域に記憶されているデータをメモリに転送することにより、電源投入時のデータリストア処理を正常に実行し、半導体メモリに記憶されるデータの破壊・消失を防止でき、正常な立ち上げ処理が可能となる。
【図面の簡単な説明】
【図１】この発明の第１実施形態に係る半導体ディスク装置を適用したコンピュータシステムの構成を示すブロック図。
【図２】この第１実施形態において、揮発性のメモリからバックアップ用のハードディスクへのデータ退避処理、及びハードディスクからメモリへのリストア処理を説明するための概念図。
【図３】この第１実施形態において、揮発性のメモリからバックアップ用のハードディスクへのデータ退避処理を説明するためのフローチャート。
【図４】この第１実施形態において、バックアップ用のハードディスクから揮発性のメモリへのデータのリストア処理を説明するためのフローチャート。
【図５】この発明の第２実施形態において、揮発性のメモリからバックアップ用のハードディスクへのデータ退避処理、及びハードディスクからメモリへのリストア処理を説明するための概念図。
【図６】この第２実施形態にいおいて、バックアップ用のハードディスクから揮発性のメモリへのデータのリストア処理を説明するためのフローチャート。
【図７】この発明の第３実施形態において、バックアップ用のハードディスクから揮発性のメモリへのデータのリストア処理を説明するためのフローチャート。
【図８】従来の揮発性のメモリからバックアップ用のハードディスクへのデータ退避処理、及びハードディスクからメモリへのリストア処理を説明するための概念図。
【符号の説明】
１…コンピュータシステム、１０…半導体ディスク装置、１１…制御部、１２…メモリ、１３…バックアップＨＤＤ、１４…インターフェイス、１５…スイッチング回路、１６…バッテリ、１７…バッテリコントローラ、１８…内部バス、１９…電源（ＰＳ）、２０…バス、３０…ホストコンピュータ。
【図１】
0004098400.tif 000002
【図２】
0004098400.tif 000003
【図３】
0004098400.tif 000004
【図４】
0004098400.tif 000005
【図５】
0004098400.tif 000006
【図６】
0004098400.tif 000007
【図７】
0004098400.tif 000008
【図８】
0004098400.tif 000009