(57)【特許請求の範囲】
【請求項１】
複数の半導体メモリモジュールと、
予備の半導体メモリモジュールと、
半導体メモリモジュールへのデータの書き込み及び読み出しを制御するチャネルアダプタと、
半導体メモリモジュールへのアクセスに関して排他制御を実行する排他制御部と、
各半導体メモリモジュールのメモリエラーを監視し、メモリエラーが発生した半導体メモリモジュールの記憶内容を予備の半導体メモリモジュールにコピーする際、各半導体メモリモジュールをそれぞれ複数のアクセス制御単位に分け、該アクセス制御単位でメモリエラーが生じた半導体メモリモジュールの記憶内容を予備の半導体メモリモジュールにコピーするサービスアダプタと、
前記アクセス制御単位より小さい所定単位毎にコピーが正常に完了したか否かを示すコピー管理テーブル、
を備え、サービスアダプタは、コピーが正常に完了したか否かを示す情報を前記所定単位毎に前記コピー管理テーブルに書込み、
前記チャネルアダプタはデータリード時に該コピー管理テーブルを参照し、アクセス対象である領域が正常の場合にはアクセスし、異常の場合にはアクセスせずエラーとし、又、データライト時、アクセス対象の領域にデータを書き込むと共に、該領域に応じたコピー管理データを正常とすることを特徴とするディスク装置。
【請求項２】
前記排他制御部はアクセス制御単位で排他制御を行うことを特徴とする請求項１記載のディスク装置。
【請求項３】
少なくとも前記チャネルアダプタは、各半導体メモリモジュールのアクセス制御単位毎に論理アドレスと物理アドレスの対応を保持する制御テーブルを備え、
前記サービスアダプタはアクセス制御単位のコピー完了後に、該制御テーブルにおけるアクセス制御単位の物理アドレスをコピー先の物理アドレスに変更するように制御する、
ことを特徴とする請求項１又は請求項２記載のディスク装置。
【請求項４】
複数の半導体メモリモジュールと、
予備の半導体メモリモジュールと、
半導体メモリモジュールへのデータの書き込み及び読み出しを制御するチャネルアダプタと、
半導体メモリモジュールへのアクセスに関して排他制御を実行する排他制御部と、
各半導体メモリモジュールのメモリエラーを監視し、メモリエラーが発生した半導体メモリモジュールの記憶内容を予備の半導体メモリモジュールにコピーする際、各半導体メモリモジュールをそれぞれ複数のアクセス制御単位に分け、該アクセス制御単位でメモリエラーが生じた半導体メモリモジュールの記憶内容を予備の半導体メモリモジュールにコピーするサービスアダプタ、
を備え、少なくとも前記チャネルアダプタは、各半導体メモリモジュールのアクセス制御単位毎に論理アドレスと物理アドレスの対応を保持する制御テーブルを備え、
メモリエラーが発生して半導体メモリモジュールの記憶内容を予備の半導体メモリモジュールにコピーするに先だって、前記サービスアダプタは、エラーが生じた半導体メモリモジュールの各論理アドレスにオリジナルな物理アドレスとコピー先の物理アドレスとが対応するように前記制御テーブルを変更すると共に、前記チャネルアダプタに該半導体メモリモジュールへのデータ書き込みをオリジナルな物理アドレスとコピー先の物理アドレスが示す２つの記憶エリアに書き込むように指示し、エラーが生じた半導体メモリモジュールの予備の半導体メモリモジュールへのコピー終了後に、エラーが生じた半導体メモリモジュールの各論理アドレスに前記コピー先の物理アドレスのみが対応するように前記制御テーブルを変更することを特徴とするディスク装置。
【請求項５】
前記チャネルアダプタは上位装置よりライト命令を受信した時、前記排他制御部にアクセス許可を要求し、
該排他制御部はライト命令の対象である領域がコピー中の場合には、前記サービスアダプタにライト命令の発生を通知し、
該サービスアダプタは該通知によりコピーを停止し、
前記チャネルアダプタは該領域にデータを書き込むことを特徴とする請求項４記載のディスク装置。
【請求項６】
前記サービスアダプタは、ライト命令のアクセス単位がコピーのアクセス単位よりも大きい場合には、当該ライト命令に書き込まれたアクセス単位領域のコピーを行わず、小さい場合にはコピーのアクセス単位で再度コピーすることを特徴とする請求項５記載のディスク装置。
【請求項７】
前記サービスアダプタは、ライト命令のアクセス単位がコピーのアクセス単位よりも大きい場合には、当該ライト命令に書き込まれたアクセス単位領域のコピーを行わず、小さい場合にはライト命令で書き込まれた領域以外の部分をコピーすることを特徴とする請求項５記載のディスク装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明はディスク装置に係り、特に、磁気ディスク装置（ＤＡＳＤ：Direct Access Storage Device）に格納されるユーザデータを全て半導体メモリに書き込むことにより機械動作を伴わずに上位装置から高速にアクセスできるようにしたディスク装置に関する。
【０００２】
【従来の技術】
半導体ディスク装置は、磁気ディスク装置の振舞（コマンドコード、データ転送の仕方等）を維持したまま、記録媒体を磁気ディスクから半導体メモリに置き換えたものである。このため、上位装置（ＣＰＵ）と半導体ディスク制御装置間のインターフェースはＣＰＵと磁気ディスク制御装置とのインターフェースと全く同一になっている。この半導体ディスク装置によれば、磁気ディスク装置のようにヘッドの移動が不必要のため、瞬時にアクセスできる利点があり、しかも、ＣＰＵと磁気ディスク制御装置間のソフトウェア資産をそのまま使える利点がある。
【０００３】
図５７はかかる半導体ディスク装置の構成図である。１ａはＣＰＵ、２は半導体ディスク装置（ＳＳＤ：Ｓｈａｒｅｄ  Ｓｔｏｒａｇｅ  Ｄｅｖｉｃｅ）、３は半導体ディスク制御装置、４は半導体ディスクであり、複数の半導体メモリモジュール（ＭＳ：Ｍａｉｎ  Ｓｔｏｒａｇｅ）４ａ，４ｂ，４ｃ・・・４ｎ及び半導体メモリモジュールへのデータの書き込み／読み出しを制御するメモリインターフェースアダプタ（ＥＳＰ：Ｅｘｔｅｎｄｅｄ  Ｓｔｏｒａｇｅ  Ａｄａｐｔｏｒ）４ｓを備えている。５は保守パネルあるいはパソコンである。
半導体ディスク制御装置３において、３ａは上位装置（ＣＰＵ）１ａとの間に単一あるいは複数のインターフェース（上位インターフェース）を有するチャネルアダプタＣＡであり、図では１つしか示してないが複数のチャネルアダプタが設けられている。３ｂは排他制御テーブル（図示せず）を備え、いずれの上位インターフェースも所定の半導体メモリモジュールを使用していない場合には他の上位インターフェースに該半導体メモリモジュールの使用を許可し、使用中の場合には使用を許可しない排他制御を実行するリソースマネージャＲＭである。尚、実際には、半導体メモリモジュールは複数の論理ドライブに分割されており、リソースマネージャＲＭは各論理ドライブ毎に排他制御を行う。３ｃは各ユニットのＩＭＬ（イニシャル・マイクロプログラム・ローデング）処理や状態監視処理、障害時のリカバリ処理を行うサービスアダプタ（ＳＡ：Ｓｅｒｖｉｃｅ  Ａｄａｐｔｏｒ）である。３ｄ，３ｅ，３ｆは各種制御テーブルやプログラムを記憶する制御記憶部（Ｃｏｎｔｒｏｌ  Ｓｔｏｒａｇｅ）である。
【０００４】
【発明が解決しようとする課題】
・第１の課題
半導体ディスク装置においては、半導体メモリモジュールの障害は致命的である。半導体メモリモジュールに障害が発生すると、従来は、データを退避させ、しかる後、電源を切断し、障害が発生した半導体メモリモジュールを別の半導体メモリモジュールで交換する。交換後、電源を投入して半導体ディスク装置を立ち上げ、データを復元させるという手順をとっている。しかし、かかる方法では、データを退避させる装置が別途必要になり、しかも、電源切断時並びにデータ退避／復元時に半導体ディスク装置を使用できなくなり、ノンストップ装置という要求に答えられない問題がある。又、半導体ディスク装置を停止することなく障害が発生した半導体メモリモジュールを交換する方法も提案されている（特開平３−２６８０２０号公報、名称：半導体ディスクの無停止保守方式）。しかし、この提案されている半導体ディスクの無停止保守方式では、半導体ディスク装置とは別に、無停止保守を可能にするための大がかりな保守装置が必要となる問題がある。
【０００５】
・第２の課題
ところで、半導体ディスク装置は電源を切断するとその記憶内容が消失する。このため、半導体ディスク装置にバックアップディスク装置が接続される場合がある。半導体ディスクを構成する各半導体メモリモジュールは複数の論理ドライブに分割され、上位装置はＳｔａｒｔ  Ｉ／Ｏ命令により論理ドライブを指定し、該論理ドライブが使用可能であれば該論理ドライブの所定位置にアクセスするようになっている。かかる半導体ディスクの論理ドライブの構成とバックアップディスク装置における論理ドライブの構成は１：１の関係がある。しかし、半導体ディスクの論理ドライブのサイズを変更したり、位置を変更すると、半導体ディスクとバックアップディスク装置における論理ドライブの構成が１：１に対応しなくなる。このため、半導体ディスクの構成を変更する前にバックアップディスク装置にデータを退避しておいても、半導体ディスク装置の論理ドライブの構成を変更すると、バックアップディスク装置に退避しておいたデータを半導体ディスクに復元できなくなり、変更前のユーザデータが無効化されて使用できなくなる問題がある。
【０００６】
・第３の課題
半導体ディスク装置は、磁気ディスク装置をエミュレーションしているため、実デバイスが有するユーザデータ部に加えてディレクトリ（ＤＩＲＥＣＴＯＲＹ）とよばれるコントロール情報部を各トラック毎に持ち、該ディレクトリにより現在エミュレートしているトラックフィールド内のレコード（ユーザデータ）に関するメモリ上のアドレスや各セクタ情報等を管理している。
チャネルアダプタは、指定されたトラックフィールドのユーザデータエリアをアクセスする場合、指定されたトラックのディレクトリをチャネルアダプタ内部に取り込むことによって、目的のトラックフィールドの制御情報を取得し、その情報に従ってユーザデータをアクセスする。このディレクトリは、▲１▼当該トラックフィールドに書き込まれているレコードのうち最終レコードのレコード番号や▲２▼セクタディレクトリ、▲３▼レコードディレクトリから成っている。セクタディレクトリは、セットセクタ処理で何番目のレコードが最初に読み出せるかが書き込まれたテーブルであり、レコードディレクトリは、各レコード毎のトラック先頭からの相対アドレス（オフセットアドレス）が書き込まれたテーブルであり、直接レコード番号で位置付けたレコードフィールドをアクセスするために用いるものである。これら情報を用いることにより、セットセクタ処理やサーチＩＤ処理時に直接オリエント（仮想ヘッド位置）を移動することができ、アクセスを高速に行うことができる。
【０００７】
ところで、メモリの２ビットエラー等で目的のディレクトリ部を読み込めなくなると、当該ディレクトリが制御するトラックフィールドのユーザデータが全てアクセス不可能になってしまい、事実上、有効なユーザデータが失われてしまう。このため、データ消失回避機構として、ディレクトリが読み込み不可能な状態に陥った場合でも、ユーザデータをアクセスできるようにするデータ消失回避機構が必要になる。
従来の半導体ディスク装置では、チャネルアダプタのファームウェアが指定するトラックフィールドをアクセスしようとした時、まず当該トラックフィールドの制御情報が書き込まれているディレクトリを読み込んでから、通常処理を開始する。そのため、ディレクトリが読み込み不可能な場合、当該トラックフィールドへのアクセスをしようとしても、ディレクトリ崩壊時の回復手段がないため、アクセスが不可能である。そこで、読み込み不可能となったトラックを再度利用できるようにするために、最低単位のイニシャライズ（例えば１シリンダ単位）をして、崩壊したディレクトリを初期化し、ディレクトリを有効化してやる必要がある。しかし、イニシャライズ処理はイニシャライズする領域のユーザデータを消失させてしまうので、あらかじめイニシャライズする領域のデータを退避しておかなければならない。又、ディレクトリの崩壊によってアクセス不可能に陥ったトラックフィールドのデータはチャネルコマンドの１つとして用意されたメモリダンプ命令でしか読みだすことができない。このため、半導体ディスク装置内部のトラックフォーマットを知っている者以外は、当該トラックフィールドのユーザデータとして必要な部分を抜き出して再現することは不可能であり、完全に元のデータを復旧させることは殆ど不可能であった。
【０００８】
・第４の課題
半導体ディスク装置は、データの記憶・格納媒体が半導体メモリチップである。このため、磁気ディスク装置に比較すると、ビット当りの記憶コストが高くなる。又、半導体ディスク装置１台当りの記憶容量は少なくなる。この容量に関する問題を解決するために、データを圧縮して書き込み、読み出す場合には圧縮データを復元する方法が提案されている。かかる圧縮方式の問題点は、ユーザデータを書き替える際に、圧縮後のサイズが圧縮前のサイズと異なる場合が生じることである。圧縮後のデータサイズが小さい場合には、メモリの有効利用のために余分な領域を解放する必要があり、逆に圧縮後のデータサイズが大きい場合には新たな領域を確保して書き替える必要がある。かかるメモリ管理は煩雑であり、従来は、メモリの有効利用を図りつつ、しかも簡単な方法でメモリ領域の解放、割当て管理を行うことができない問題があった。
【０００９】
以上から本発明の目的は、別途保守装置を設けなくても半導体ディスク装置を運用中のまま、半導体メモリモジュールの交換ができ、しかも、半導体メモリモジュール交換中におけるアクセス速度を低下しないようにできるディスク装置を提供することである。
【００１０】
【課題を解決するための手段】
上記課題は、本発明によれば、複数の半導体メモリモジュールと、予備の半導体メモリモジュールと、半導体メモリモジュールへのデータの書き込み及び読み出しを制御するチャネルアダプタと、半導体メモリモジュールへのアクセスに関して排他制御を実行する排他制御部と、各半導体メモリモジュールのメモリエラーを監視し、メモリエラーが発生した半導体メモリモジュールの記憶内容を予備の半導体メモリモジュールにコピーする際、各半導体メモリモジュールをそれぞれ複数のアクセス制御単位に分け、該アクセス制御単位でメモリエラーが生じた半導体メモリモジュールの記憶内容を予備の半導体メモリモジュールにコピーするサービスアダプタと、前記アクセス制御単位より小さい所定単位毎にコピーが正常に完了したか否かを示すコピー管理テーブルを備え、サービスアダプタは、コピーが正常に完了したか否かを示す情報を前記所定単位毎に前記コピー管理テーブルに書込み、前記チャネルアダプタはデータリード時に該コピー管理テーブルを参照し、アクセス対象である領域が正常の場合にはアクセスし、異常の場合にはアクセスせずエラーとし、又、データライト時、アクセス対象の領域にデータを書き込むと共に、該領域に応じたコピー管理データを正常とすることを特徴とするディスク装置により達成される。
【００１３】
【作用】
サービスアダプタは、各半導体メモリモジュールのメモリエラーを監視し、メモリエラーが発生した半導体メモリモジュールの記憶内容を予備の半導体メモリモジュールにコピーする際、各半導体メモリモジュールをそれぞれ複数のアクセス制御単位に分け、該アクセス制御単位でメモリエラーが生じた半導体メモリモジュールの記憶内容を予備の半導体メモリモジュールにコピーする。この際、サービスアダプタは、アクセス制御単位より小さい所定単位(たとえばトラック単位)毎にコピーが正常に完了したか否かを示す情報をコピー管理テーブルに書込み、チャネルアダプタはデータリード時に該コピー管理テーブルを参照し、アクセス対象である領域が正常の場合にはアクセスし、異常の場合にはアクセスせずエラーとし、又、データライト時、アクセス対象の領域にデータを書き込むと共に、該領域に応じたコピー管理データを正常とする。
【００１８】
【実施例】
（ａ）  本発明の第１の実施例
（ａ−１）  半導体ディスク装置の構成
図１は本発明の半導体ディスク装置の構成図である。１１ａ−１，１１ａ−２，・・・はＣＰＵ（上位装置）、１２は半導体ディスク装置（ＳＳＤ）、１３は半導体ディスク制御装置、１４は半導体ディスク、１５はサービスアダプタ（後述）に各種指示を出して保守を実行させるメンテナンスパネル（ＰＮＬ）である。
半導体ディスク１４は、複数のユーザデータ格納用の半導体メモリモジュール（ＭＳ：Ｍａｉｎ  Ｓｔｏｒａｇｅ）１４ａ，１４ｂ，１４ｃ・・・１４ｎと、半導体メモリモジュールにエラーが発生した時、該半導体メモリモジュールが新たな半導体メモリモジュールと交換されるまでその代役を勤める予備の半導体メモリモジュール（ＨＳ：Ｈｏｔ  Ｓｐａｒｅ  Ｍｅｍｏｒｙ）１６、各半導体メモリモジュールへのデータの書き込み／読み出しを制御するメモリインターフェースアダプタ（ＥＳＰ：Ｅｘｔｅｎｄｅｄ  Ｓｔｏｒａｇｅ  Ａｄａｐｔｏｒ）１７を備えている。予備の半導体メモリモジュール（ＨＳ）は１枚しか示してないが、２枚以上設けることもできる。
【００１９】
各半導体メモリモジュールは所定サイズ、例えばＣＰＵからのアクセスの排他制御単位であるシリンダ単位で多数の範囲（範囲１〜範囲ｎ）に区分されており、メモリエラー発生時にはこの範囲毎に予備の半導体メモリモジュール１６への退避制御が行われ、該範囲のサイズがアクセス制御単位となる。
例えば、半導体メモリモジュール１４ａにエラーが発生した時の交換手順は、大略以下のようになる。
▲１▼エラーが発生した半導体メモリモジュール１４ａの記憶内容をアクセス制御単位に予備の半導体メモリモジュール（ＨＳ）１６に退避する。排他制御はこのアクセス制御単位で行われる。
▲２▼退避完了後、予備の半導体メモリモジュール１６がユーザデータ格納用の半導体メモリモジュールとなる。
▲３▼全アクセス制御単位の退避完了後に、メモリエラーが発生した半導体メモリモジュール１４ａを新たな半導体メモリモジュールと交換する。以後、この交換された半導体メモリモジュール１４ａが予備の半導体メモリモジュールとなる。尚、半導体メモリモジュール１６を予備に戻すためには、▲１▼の手順と同様に半導体メモリモジュール１６の記憶内容をアクセス制御単位に半導体メモリモジュール１４ａに復元する。
【００２０】
半導体ディスク制御装置１３において、１３ａ−１，１３ａ−２，・・・は上位装置（ＣＰＵ）１１ａ−１，１１ａ−２，・・・との間に単一あるいは複数のインターフェース（上位インターフェース）を有するチャネルアダプタ（ＣＡ）、１３ｂはリソースマネージャ（ＲＭ）であり、排他制御テーブルＥＣＴ（図示せず）を備え、いずれのユニットも所定の半導体メモリモジュールのある領域を使用していない場合には、要求により他のユニットに半導体メモリモジュールの該領域へのアクセスを許可し、使用中の場合にはアクセスを許可しない排他制御を実行する。尚、本実施例では、リソースマネージャはアクセス制御単位で使用／未使用を管理し、該アクセス制御単位で排他制御を行う。
【００２１】
１３ｃは各ユニットのＩＭＬ（イニシャル・マイクロプログラム・ローデング）処理や状態監視処理、障害時のリカバリ処理、例えばメモリエラー発生時における半導体メモリモジュールの交換処理を行うサービスアダプタ（ＳＡ）である。１３ｄ〜１３ｇは各種制御テーブルＣＴＬやプログラムを記憶する制御記憶部（ＣＳ）である。制御テーブルＣＴＬには、図２に示すように各半導体メモリモジュールの範囲（アクセス制御単位）毎に論理アドレス（ＣＣＨＨ）と半導体ディスクの物理アドレスの対応が記憶されている。論理アドレスとはＣＰＵより指定されるアドレス（例えば磁気ディスクのデータアドレスで指定される場合は、シリンダ／ヘッド番号ＣＣＨＨ）、物理アドレスとは半導体ディスク装置内部で半導体メモリモジュールをアクセスする実アドレスである。各モジュールは制御テーブルＣＴＬを用いて論理アドレスを物理アドレスに変換する。
【００２２】
１３ｈはコピーの成功／不成功（有効／無効）を示すコピー管理テーブルＣＣＴを記憶する記憶部（ＴＳ）である。このコピー管理テーブルＣＣＴは半導体メモリモジュールに書き込まれるデータのうち纏まった単位でコピーの成功／不成功を管理する。コピーが失敗した場合（媒体エラーで読めなかった場合等）、当該部分を無効とする。例えば、図３に示すようにトラック毎にコピーの成功／不成功を管理する。磁気ディスクをエミュレーションレートしている半導体ディスクの場合、シリンダ（アクセス制御単位）毎にコピーしていた場合に、エラーしてもそのシリンダ全てが無効ではない。そこで、コピー管理テーブルＣＣＴによりトラック毎にエラーしたトラックのみ無効にすれば、きめ細かいデータの保証ができる。この場合、トラック毎でなくレコード単位で管理するとより細かいデータの保証ができる。コピー管理テーブルＣＣＴは各モジュールが参照／更新できる場所におけばよく、半導体メモリモジュール内に配置することもできる。
【００２３】
（ａ−２）  本発明の半導体メモリの第１の交換制御の概略
半導体ディスク１４は、図４に示すように３枚の半導体メモリモジュール（ＭＳ▲１▼〜ＭＳ▲３▼）１４ａ〜１４ｃと、１枚の予備の半導体メモリモジュール（ＨＳ）１６で構成され、それぞれ５個のアクセス制御単位で構成されている。初期時、各半導体メモリモジュール１４ａ〜１４ｃの制御テーブルＣＴＬの内容は図５に示すようになっている。尚、図中、ＣＴＬａは半導体メモリモジュール１４ａ（ＭＳ▲１▼）の制御テーブル部分、ＣＴＬｂは半導体メモリモジュール１４ｂ（ＭＳ▲２▼）の制御テーブル部分、ＣＴＬｃは半導体メモリモジュール１４ｃ（ＭＳ▲３▼）の制御テーブル部分である。又、図中、ＸＸＸＸは論理アドレスを、ＭＳ▲１▼−００は半導体メモリモジュール１４ａ（ＭＳ▲１▼）のオフセットアドレス００（図４参照）を意味しており、他の表記も同様である。
【００２４】
半導体メモリモジュール１４ｂ（ＭＳ▲２▼）にメモリエラーが発生すると、サービスアダプタＳＡの制御でアクセス制御単位で半導体メモリモジュール１４ｂ（ＭＳ▲２▼）から予備の半導体メモリモジュール１６にコピーが行われる。図６に示すように、コピー処理が進行して、第１、第２の制御単位▲６▼，▲７▼のコピーが終了し、第３の制御単位▲８▼のコピーは他のモジュールにより使用中のため行えず、現在第４の制御単位▲９▼をコピー中で、最後の制御単位をまだコピーしてないとすると、その時点で制御テーブルＣＴＬの内容は図７に示すようになる。すなわち、コピーが完了した制御単位（範囲）▲６▼▲７▼の物理アドレスはコピー先の半導体メモリモジュール１６の物理アドレスとなる。
以後、制御単位毎のコピーが行われ、全ての制御単位のコピーが完了すれば、制御テーブルＣＴＬの内容は図８に示すようになる。すなわち、コピーが完了した全ての制御単位（範囲）の物理アドレスはコピー先の物理アドレスとなる。
【００２５】
（ａ−３）  本発明の半導体メモリモジュールの交換制御処理
・コピー処理
図９及び図１０は半導体メモリモジュールの記憶内容を予備の半導体メモリモジュールにコピーするためのコピー処理のフロー図である。
保守パネル（ＰＮＬ）１５からの指示により、あるいはエラー検出管理により、サービスアダプタ（ＳＡ）１３ｃはメモリエラー発生の半導体メモリモジュール（半導体メモリモジュール１４ｂとする）を認識する（ステップ１０１）。尚、サービスアダプタＳＡは常時各メモリモジュールから１アドレスづつ順次データを読み出してメモリエラーが発生していないか監視している（パトロール）。１ビットエラーは元のデータに復元できるため、直ちにメモリエラー発生としないが設定値以上の１ビットエラーを検出した時メモリエラー発生と認定する。又、２ビットエラーはメモリインターフェースアダプタ（ＥＳＰ）１７よりサービスアダプタＳＡに通知される。
【００２６】
サービスアダプタＳＡはメモリエラー発生の半導体メモリモジュールを認識すると、リソースマネージャ（ＲＭ）１３ｂに予備の半導体メモリモジュール（ＨＳ）１６の使用許可を要求する（ステップ１０２）。これは予備の半導体メモリモジュールＨＳが他の半導体メモリモジュールＭＳの交換作業に使用されていないことを確認するためのものである。例えば、半導体ディスク制御装置１３が二重化されている場合において、他方のサービスアダプタＳＡが交換作業を行っている場合があるからである。
リソースマネージャＲＭは半導体メモリモジュールＨＳが使用中の場合にはサービスアダプタＳＡに不許可通知を出す（ステップ１０３，１０４）。これにより、サービスアダプタＳＡは、使用許可になる迄待つ。一方、半導体メモリモジュールＨＳが使用中でなければ、リソースマネージャＲＭは使用許可をサービスアダプタＳＡに通知し、内蔵の排他制御テーブルＥＣＴに「半導体メモリモジュールＨＳが使用中になったこと」を記入する（ステップ１０５）。
ついで、サービスアダプタＳＡはリソースマネージャＲＭにエラー発生の半導体メモリモジュールの第１番目のアクセス制御単位部分の使用許可を要求する（ステップ１０６）。
【００２７】
使用可能であれば、リソースマネージャＲＭはサービスアダプタＳＡに使用許可を通知すると共に、排他制御テーブルＥＣＴに「第１番目のアクセス制御単位が使用中になったこと」を記入する（ステップ１０７，１０８）。
サービスアダプタＳＡは使用許可通知により、当該制御単位のコピーを実行する（ステップ１０９）。コピー中にエラーが発生せず、当該アクセス制御単位のコピーが完了すれば（ステップ１１０、１１１）、サービスアダプタＳＡは各モジュール１３ａ−１，１３ａ−２、１３ｂ等に制御テーブルＣＴＬの変更を指示する（ステップ１１２）。すなわち、サービスアダプタＳＡは、制御テーブルＣＴＬｂの制御単位▲６▼における物理アドレスをＨＳ−００に変更するように各モジュールに指示する。
各モジュールは指示された通りに制御メモリＣＳの制御テーブルＣＴＬを変更し、変更完了をサービスアダプタＳＡに通知する（ステップ１１３）。尚、サービスアダプタＳＡも制御メモリＣＳの制御テーブルＣＴＬを変更する。
【００２８】
サービスアダプタＳＡは全モジュールから変更完了通知を受信すれば、リソースマネージャＲＭにアクセス終了を通知する。これによりリソースマネージャＲＭは、「第１番目のアクセス制御単位が不使用になったこと」を記入する（ステップ１１４）。ついで、サービスアダプタＳＡは半導体メモリモジュール１４ｂの全制御単位のコピーが終了したチェックする（ステップ１１５）。
全制御単位のコピーが終了すれば、サービスアダプタＳＡはチャネルアダプタＣＡを介して上位装置ＣＰＵにコピー終了を通知すると共に、保守パネルＰＮＬにコピー完了を表示し（ステップ１１６）、コピー処理を終える。コピー処理が完了すれば、保守員がメモリエラーを生じた半導体メモリモジュール（ＭＳ）１４ｂを新たな半導体メモリモジュールと交換する。
一方、全制御単位のコピーが終了していなければ、コピー対象をコピーを終了していない別の制御単位に変更し（ステップ１１７）、以後ステップ１０６以降の処理を繰り返す。
ステップ１０７において、第１番目のアクセス制御単位が使用中である場合には、リソースマネージャＲＭはサービスアダプタＳＡに使用不許可通知を出す（ステップ１１８）。これにより、サービスアダプタＳＡはステップ１１５に飛び、以降の処理を繰り返す。
【００２９】
又、ステップ１１０において、コピー時に所定トラックにおいてエラーが発生すれば、サービスアダプタＳＡはチャネルアダプタＣＡを介して上位装置ＣＰＵにエラー発生を通知すると共に（ステップ１１９）、コピー管理テーブルＣＣＴの該当トラックにコピー不成功（無効）を記入する（ステップ１２０）。以後、ステップ１１１以降の処理を繰り返す。図１１はコピーの成功／不成功を示すコピー管理テーブルＣＣＴの説明図であり、制御単位▲６▼（半導体メモリモジュール１４ｂの第１アクセス制御単位）のコピー管理テーブル部分を示している。尚、制御単位▲６▼は３つのトラック１〜３で構成されているものとしている。
図１１（ａ）は制御単位▲６▼の全トラックのコピーがエラーを生じることなく成功した場合であり、コピー管理テーブルＣＣＴのトラック１〜３には「有効」が記入される。図１１（ｂ）はトラック２のコピー時にエラーが発生した場合であり、コピー管理テーブルＣＣＴのトラック２に「無効」が記入され、トラック１、３には「有効」が記入される。尚、コピーが不成功のトラックにデータを書き込んだ場合には、該トラックは「有効」に成り、コピー管理テーブルＣＣＴが書き替えられる。
【００３０】
・半導体メモリモジュール交換後の処理
図１２は半導体メモリモジュール交換後の処理フロー図である。
コピー完了後に保守員がエラーを生じた半導体メモリモジュールを交換すれば、サービスアダプタＳＡは交換完了を感知し（ステップ１３１）、以後、交換後の半導体メモリモジュールを予備の半導体メモリモジュールとする（ステップ１３２）。尚、交換完了後、保守員の保守パネルＰＮＬからの指示により、半導体メモリモジュール１６を予備の半導体メモリモジュールに戻すように構成することもできる。又、交換完了後、自動的に半導体メモリモジュール１６を予備の半導体メモリモジュールに戻すように構成することもできる。図１３はかかる場合の処理フロー図である。サービスアダプタＳＡは半導体メモリモジュールの交換完了を感知し（ステップ１４１）、前述のコピー処理と同様の手順で半導体メモリモジュール１６の記憶データを交換後の半導体メモリモジュール１４ｂにコピーする（ステップ１４２）。
【００３１】
・コピー管理テーブルを用いたアクセス処理
各モジュールは半導体メモリモジュールよりレコードを読み出す場合にはコピー管理テーブルＣＣＴを参照する。図１４はコピー管理テーブルＣＣＴを参照したアクセスの処理フロー図である。
まず、レコード読み出しか、書き込みかを判断し（ステップ１５１）、読み出しの場合には、アクセス先のトラックの有効／無効をコピー管理テーブルＣＣＴを参照して調べ（ステップ１５２）、有効の場合には該レコードを読み出し（ステップ１５３）、無効の場合にはエラー処理を行う（ステップ１５４）。一方、書き込みの場合には、アクセス先のトラックが無効であれば「有効」に変更し（ステップ１５５）、しかる後、該トラックにレコードを書き込む（ステップ１５６）。
【００３２】
以上のように、予備の半導体メモリモジュールを追加するだけで、メモリエラーが生じた半導体メモリモジュールの記憶内容を無停止で退避することができ、大がかりな保守装置を必要としない。また、半導体メモリモジュールをアクセス制御単位に細分化し、該アクセス制御単位でコピーを行うため、該制御単位で排他制御を行うことができ、コピー中であっても上位装置はコピー対象でない他のアクセス制御単位部分にアクセスすることができ、上位装置のアクセスに悪影響を与えることがない。
又、アクセス制御単位のコピーが完了する毎にサービスアダプタＳＡは、チャネルアダプタＣＡ等に設けられている制御テーブルＣＴＬにおける物理アドレスをコピー先の物理アドレスに変更するため、アクセス制御単位のコピー完了後、該アクセス制御単位については直ちにコピー先（予備の半導体メモリモジュール）にアクセスすることができる。
更に、アクセス制御単位毎にコピーが正常に完了したか否かを管理するコピー管理テーブルを設け、チャネルアダプタＣＡ等のモジュールはデータリード時に該コピー管理テーブルを参照し、アクセス対象である領域（トラック）が正常の場合にはアクセスし、異常の場合にはアクセスせずエラーとする。この結果、コピー時にコピーエラーが発生しても誤ったデータを読み取って処理することがなく、誤動作を防止できる。
【００３３】
（ａ−４）  本発明の半導体メモリの第２の交換制御の概略
以上は制御テーブルＣＴＬが図２に示す構成を備えている場合である。制御テーブルＣＴＬは図１５に示すように構成することもできる。この制御テーブルＣＴＬは、各半導体メモリモジュールの範囲（アクセス制御単位）毎に、▲１▼論理アドレス（ＣＣＨＨ）と、▲２▼半導体ディスクのオリジナルな物理アドレスと、▲３▼コピー先の物理アドレスを記入する欄を備えている。論理アドレスはＣＰＵ等より指定されるアドレス（例えば磁気ディスクのデータアドレスで指定される場合は、シリンダ／ヘッド番号ＣＣＨＨ）、オリジナルな物理アドレスは半導体ディスク装置内部で半導体メモリモジュールをアクセスする実アドレスである。通常は、論理アドレスに対応させてオリジナルな物理アドレスのみが対応付けされており、コピー先の物理アドレスは無効（マークを付けるなどして制御）となっている。
【００３４】
半導体ディスク１４は、図４に示すように３枚の半導体メモリモジュール（ＭＳ▲１▼〜ＭＳ▲３▼）１４ａ〜１４ｃと、１枚の予備の半導体メモリモジュール（ＨＳ）１６で構成され、それぞれ５個のアクセス制御単位で構成されているものとする。初期時、各半導体メモリモジュール１４ａ〜１４ｃの制御テーブルＣＴＬの内容は図１６に示すようになっている。尚、図中、ＣＴＬａは半導体メモリモジュール１４ａ（ＭＳ▲１▼）の制御テーブル部分、ＣＴＬｂは半導体メモリモジュール１４ｂ（ＭＳ▲２▼）の制御テーブル部分、ＣＴＬｃは半導体メモリモジュール１４ｃ（ＭＳ▲３▼）の制御テーブル部分である。又、図中、ＸＸＸＸは論理アドレスを、ＭＳ▲１▼−００は半導体メモリモジュール１４ａ（ＭＳ▲１▼）のオフセットアドレス００を意味しており、他の表記も同様である。
【００３５】
半導体メモリモジュール１４ｂ（ＭＳ▲２▼）にメモリエラーが発生すると、サービスアダプタＳＡの制御でアクセス制御単位で半導体メモリモジュール１４ｂ（ＭＳ▲２▼）から予備の半導体メモリモジュール１６にコピーが行われる。この場合、コピーに先だって、サービスアダプタＳＡは各モジュールに対し制御テーブルの変更を指示する。すなわち、エラーを生じた半導体メモリモジュール１４ｂの各論理アドレスに、▲１▼元の物理アドレスと▲２▼コピー先の物理アドレスとがそれぞれ対応するように制御テーブルの変更を指示する。これにより、各モジュールの制御テーブルＣＴＬは図１７に示すように変更される。
又、サービスアダプタＳＡは、チャネルアダプタＣＡ等のモジュールに対して、半導体メモリモジュール１４ｂへのアクセスに際してフォーキング処理を行うように指示する。フォーキング処理とは、図１８に示すように、データ読み出しはオリジナルな物理アドレスが指示するエリアからデータを読み出し、データ書き込みは、オリジナルな物理アドレスとコピー先の物理アドレスが示す２つの記憶エリアに書き込む処理である。
【００３６】
以後、図１９に示すようにアクセス制御単位のコピーを行う。サービスアダプタＳＡは半導体メモリモジュール１４ｂの全アクセス制御単位のコピーが終了すれば、各モジュールに制御テーブルＣＴＬのオリジナルな物理アドレスとコピー先の物理アドレスの交換を指示する。これにより、各モジュールの制御テーブルＣＴＬは図２０に示すように変更される。以後、サービスアダプタＳＡは、各モジュールに対してフォーキング処理の終了を通知すると共に、コピー先の物理アドレス記入欄のアドレスを無効にするように指示してコピー処理を終了する。この結果、各モジュールの制御テーブルＣＴＬは図２１に示すようになり、オリジナルな物理アドレスはコピー先の物理アドレスとなる。
【００３７】
（ａ−５）  本発明の半導体メモリモジュールの交換制御
・コピー処理
図２２及び図２３は半導体メモリモジュールの記憶内容を予備の半導体メモリモジュールにコピーするためのコピー処理のフロー図である。尚、制御テーブルＣＴＬは図１６に示すように構成されているものとする。
保守パネル（ＰＮＬ）１５からの指示により、あるいはエラー管理により、サービスアダプタ（ＳＡ）１３ｃはメモリエラー発生の半導体メモリモジュール（半導体メモリモジュール１４ｂとする）を認識する（ステップ２０１）。
サービスアダプタＳＡはメモリエラー発生の半導体メモリモジュールを認識すると、リソースマネージャ（ＲＭ）１３ｂに予備の半導体メモリモジュール（ＨＳ）１６の使用許可を要求する（ステップ２０２）。リソースマネージャＲＭは半導体メモリモジュールＨＳが使用中の場合にはサービスアダプタＳＡに不許可通知を出す（ステップ２０３，２０４）。これにより、サービスアダプタＳＡは、使用許可になる迄待つ。一方、半導体メモリモジュールＨＳが使用中でなければ、リソースマネージャＲＭは使用許可をサービスアダプタＳＡに通知し、内蔵の排他制御テーブルＥＣＴに「半導体メモリモジュールＨＳが使用中になったこと」を記入する（ステップ２０５）。
【００３８】
ついで、サービスアダプタＳＡはチャネルアダプタＣＡ等の各モジュールに半導体メモリモジュール１４ｂの交換開始及びフォーキング処理開始を指示する（ステップ２０６）。又、サービスアダプタＳＡは各モジュールに対し制御テーブルの変更を指示する。これにより、各モジュールは指示された通りに制御テーブルＣＴＬを変更し（図１７参照）、変更終了をサービスアダプタＳＡに通知する（ステップ２０７）。
各モジュールから制御テーブルの変更終了が通知されると、サービスアダプタＳＡはリソースマネージャＲＭにエラー発生の半導体メモリモジュールの第１番目のアクセス制御単位の使用許可を要求する（ステップ２０８）。
【００３９】
使用可能であれば、リソースマネージャＲＭはサービスアダプタＳＡに使用許可を通知すると共に、排他制御テーブルＥＣＴに「第１番目のアクセス制御単位が使用中になったこと」を記入する（ステップ２０９，２１０）。
サービスアダプタＳＡは使用許可通知により、当該制御単位のコピーを実行する（ステップ２１１）。コピー中にエラーが発生せず、当該アクセス制御単位のコピーが完了すれば（ステップ２１２，２１３）、サービスアダプタＳＡはリソースマネージャＲＭにアクセス終了を通知する。これによりリソースマネージャＲＭは、「第１番目のアクセス制御単位が不使用になったこと」を記入する（ステップ２１４）。ついで、サービスアダプタＳＡは半導体メモリモジュール１４ｂの全制御単位のコピーが終了したチェックする（ステップ２１５）。
全制御単位のコピーが終了していなければ、コピー対象をコピーを終了していない別の制御単位に変更し（ステップ２１６）、以後ステップ２０８以降の処理を繰り返す。
ステップ２０９において、第１番目のアクセス制御単位が使用中である場合には、リソースマネージャＲＭはサービスアダプタＳＡに使用不許可通知を出す（ステップ２１７）。これにより、サービスアダプタＳＡはステップ２１５に飛び、以降の処理を繰り返す。
【００４０】
ステップ２１２において、コピー時に所定トラックにおいてエラーが発生すれば、サービスアダプタＳＡはチャネルアダプタＣＡを介して上位装置ＣＰＵにエラー発生を通知すると共に（ステップ２１８）、コピー管理テーブルＣＣＴの該当トラックにコピー不成功（無効）を記入する（ステップ２１９）。以後、ステップ２１３以降の処理を繰り返す。
ステップ２１５において、半導体メモリモジュール１４ｂの全制御単位のコピーが終了した場合には、サービスアダプタＳＡは各モジュール１３ａ−１，１３ａ−２、１３ｂ等に対して、半導体メモリモジュール１４ｂに関係する制御テーブル部分のオリジナルな物理アドレスとコピー先の物理アドレスの交換を指示する（ステップ２２０）。これにより、各モジュールは制御テーブルＣＴＬを指示通りに変更し（図２０参照）、変更終了をサービスアダプタＳＡに通知する（ステップ２２１）。ついで、サービスアダプタＳＡは、各モジュールに対してコピー完了及びフォーキング処理の終了を通知すると共に（ステップ２２２）、半導体メモリモジュール１４ｂに関係する制御テーブル部分のコピー先物理アドレス欄を無効にするように指示する（ステップ２２３）。各モジュールは制御テーブルＣＴＬを指示された通りに変更する（図２１参照）。これにより、オリジナルな物理アドレスはコピー先の物理アドレスとなる。
【００４１】
以後、サービスアダプタＳＡはチャネルアダプタＣＡを介して上位装置ＣＰＵにコピー終了を通知すると共に、保守パネルＰＮＬにコピー完了を表示し（ステップ２２４）、コピー処理を終える。コピー処理が完了すれば、保守員がメモリエラーを生じた半導体メモリモジュール（ＭＳ）１４ｂを新たな半導体メモリモジュールと交換する。
以上のように、予備の半導体メモリモジュールを追加するだけで、メモリエラーが生じた半導体メモリモジュールの記憶内容を無停止でコピーすることができる。又、チャネルアダプタ等のモジュールはコピー中の半導体メモリモジュールにデータを書き込む際、フォーキング処理に従ってオリジナルな物理アドレスとコピー先の物理アドレスが示す２つの記憶エリアにデータを書き込むようにしたから、第１の交換制御処理のように制御単位のコピー完了毎に制御テーブルを変更する必要がなく、コピーを高速に行うことができる。
【００４２】
・コピー中の制御単位エリアにライト命令が発生した場合の処理
コピー中の制御単位エリアに上位装置ＣＰＵからライト命令が発生する場合がある。かかる場合には、ライト命令をコピーが完了するまで待たせることもできるが上位装置のアクセス速度が低下する。そこで、ライト命令を優先してコピーを一時停止させるように制御する。図２４はかかるコピー中の制御単位エリアにライト命令が発生した場合の処理の流れ図である。
上位装置ＣＰＵよりライト命令がチャネルアダプタＣＡに発行されると（ステップ２５１）、チャネルアダプタはアクセス制御単位についてリソースマネージャＲＭにアクセス許可を要求する（ステップ２５２）。リソースマネージャは、該アクセス制御単位がコピー中であるか調べ、コピー中でなければチャネルアダプタＣＡにアクセス許可を通知する（ステップ２５３、２５４）。これにより、チャネルアダプタＣＡはライトコマンドをフォーキング処理に従って実行する。
【００４３】
一方、コピー中の場合には、リソースマネージャ２５５はサービスアダプタＳＡにコピー中の制御単位エリアに上位装置よりライトコマンドが発生したことを通知する（ステップ２５５）。これにより、サービスアダプタＳＡはコピーを停止する（ステップ２５６）。ついで、リソースマネージャＲＭはチャネルアダプタＣＡにアクセスを許可し（ステップ２５７）、チャネルアダプタＣＡはライトコマンドをフォーキング処理に従って実行する。
チャネルアダプタＣＡによる書き込みが完了すれば（ステップ２５８）、サービスアダプタＳＡは前記書き込みのアクセス単位（トラック数＝Ａｗ）とコピーのアクセス単位（トラック数＝Ａｃで例えばＡｃ＝１）の大小を比較する（ステップ２５９）。
Ａｗ≧Ａｃの場合には、サービスアダプタＳＡは書き込みコマンドのアクセス単位についてコピーが完了したものとみなし（ステップ２６０）、以後残りの部分についてコピーを再開する。
【００４４】
一方、Ａｗ＜Ａｃの場合には、書き込みコマンドのアクセス単位を包含するコピー単位は、コピーが完了していないものとみなして再度コピーし、あるいは、アクセス単位以外のコピー単位部分をコピーし（ステップ２６１）、以後残りの部分についてコピーを再開する。
以上のように、コピーを停止して上位装置ＣＰＵの書き込みコマンドを実行するようにしたから上位装置のアクセス速度は低下しない。又、アクセス単位がコピー単位より大きい場合には、アクセス単位部分のコピーは完了したものとみなせるからコピー速度を向上することができる。
【００４５】
（ａ−６）  半導体ディスク装置の実際の構成
図２５は半導体ディスク装置の全体構成図であり、二重化構成になっており、添字１を有するモジュールは第１の半導体ディスク装置Ｇ０側のモジュールであり、添字２を有するモジュールは第２半導体ディスク装置Ｇ１側のモジュール、添字の無いモジュールは共通のモジュールである。尚、制御記憶部ＣＳは各モジュールに内蔵されている。
ＣＡは上位装置のチャネルとのインターフェース制御を行うチャネルアダプタであり、電気チャネル、光チャネル、ＯＣリンクに対応する種々のチャネルアダプタが適宜接続されるようになっている。ＲＭはリソースマネージャであり排他制御、論理パス管理等の処理動作を制御すると共にサブシステム全体の資源管理を行う。ＳＡはサービスアダプタであり、自分がマスターになり、他のユニット（モジュール）の状況を管理する。
【００４６】
Ｃ−ＢＵＳは各ユニットがメッセージ通信及び制御情報のアクセスを行う制御用バス、Ｄ−ＢＵＳは各ユニットが半導体ディスクとの間でデータを授受するデータ転送用バス、Ｓ−ＢＵＳはサービスモジュールがマスターになり、各ユニットの状況を管理するサービスバスである。ＢＨ−１、ＢＨ−２はバスの競合制御、バスクロックの分配を行うバスハンドラ、ＭＤＫはメモリ障害時に該メモリの内容を一時的にバックアップする磁気ディスク装置（オプション）、ＤＡは磁気ディスク装置とのインターフェース制御を行うデバイスアダプタ、ＢＡＮＫは半導体ディスク（共用メモリ）であり、半導体メモリモジュールＭＳ，ＨＳ及び予備の半導体メモリモジュールＨＳが搭載されるようになっている。ＥＳＰ１〜ＥＳＰ４は半導体ディスクへのアクセス制御を行うポート（Ｅｘｔｅｎｄｅｄ  Ｓｔｏｒａｇｅ  Ｐｏｒｔ）、ＥＳＡ１〜ＥＳＡ４はＥＳＰと半導体メモリモジュールＭＳ間のタイミング制御や、メモリのリフレッシュ、エラーチェックコードに基づくデータ修正を実行するメモリインタフェースアダプタ、ＰＡＮＥＬは保守パネルである。
【００４７】
第１、第２半導体ディスク装置Ｇ０，Ｇ１は中央点線を中心に対称に構成されており、上位ＣＰＵは対称に第１、第２半導体ディスク装置のチャネルアダプタＣＡ１，ＣＡ２に接続され、それぞれのポートＥＳＰ２，ＥＳＰ３は他方のメモリアダプタＥＳＡ３，４と接続されている。従って、一方のチャネルアダプタに障害が生じてもＣＰＵは他方のチャネルアダプタから半導体ディスクをアクセスすることができる。又、一方の半導体ディスクが障害を生じても他方の半導体ディスクにアクセスすることができ、信頼性を向上している。
チャネルアダプタＣＡ，リソースマネージャＲＭ、サービスアダプタＳＡ等のモジュールはそれぞれマイクロプロセッサで構成されており、おおむね図２６に示す構成を備えている。図において、９１はマイクロプロセッサ（ＭＰＵ）、９２はＲＡＭ構成の制御記憶部（ＣＳ）、９３はＲＯＭ構成の制御記憶部（ＣＳ）、９４は内部バスに接続されたドライバ／レシーバ（ＤＶ／ＲＶ）、９５はバスインターフェースロジック（ＢＩＬ）、９６は外部インターフェースと接続されたドライバ／レシーバ（ＤＶ／ＲＶ）、９７はバッファ又はテーブル記憶部（ＴＳ）、９８は個別ＬＳＩ（ゲートアレイ）である。尚、接続される外部インターフェースの数によってドライバ／レシーバ（ＤＶ／ＲＶ）９６の数が異なる。
【００４８】
（ｂ）  本発明の第２の実施例
（ｂ−１）  全体の構成
半導体ディスク装置は電源を切断するとその記憶内容が消失する。このため、半導体ディスク装置にバックアップディスク装置が接続される場合がある。
図２７はバックアップディスク装置を備えた半導体ディスク装置の構成図であり、図１と同一部分には同一符号を付している。１１ａ−１はＣＰＵ（上位装置）、１２は半導体ディスク装置（ＳＳＤ）、１３は半導体ディスク制御装置、１４は半導体ディスク、１５はサービスアダプタＳＡに各種指示を出して保守を実行させるメンテナンスパネル（ＰＮＬ）である。
【００４９】
半導体ディスク１４は、複数のユーザデータ格納用の半導体メモリモジュール（ＭＳ：Ｍａｉｎ  Ｓｔｏｒａｇｅ）１４ａ，１４ｂ，１４ｃ・・・と、半導体メモリモジュールにエラーが発生した時、該半導体メモリモジュールが新たな半導体メモリモジュールと交換されるまでその代役を勤める予備の半導体メモリモジュール（ＨＳ）１６を備えている。尚、１７はメモリインタフェースアダプタである。
半導体ディスク制御装置１３において、１３ａ−１はチャネルアダプタ（ＣＡ）、１３ｂはリソースマネージャ（ＲＭ）、１３ｃはサービスアダプタ（ＳＡ）、１３ｄ，１３ｆ，１３ｇは各種制御テーブルＣＴＬやプログラムを記憶する制御記憶部（ＣＳ）である。１８は電源切断時等において半導体ディスク１４に記憶されているデータを記憶するバックアップ用の磁気ディスク装置、１９は磁気ディスク装置１８に半導体ディスク１４に記憶されているデータを退避すると共に、退避されたデータを磁気ディスク装置より読み出して半導体ディスク１４に復元するディスクアダプタである。
【００５０】
（ｂ−２）  半導体ディスクと磁気ディスクの論理ドライブ構成
半導体ディスク１４を構成する各半導体メモリモジュール（ＭＳ）１４ａ〜１４ｃはそれぞれ１枚のプリント板で構成され、メモリバンクのスロットに挿入されている。各半導体メモリモジュール（ＭＳ）１４ａ〜１４ｃはそれぞれ所定サイズの複数の論理ドライブに分割されており、上位装置ＣＰＵはＳｔａｒｔ  Ｉ／Ｏ命令により所定の論理ドライブを指定し、該論理ドライブが使用可能であれば該論理ドライブの所定位置にアクセスするようになっている。
図２８は半導体ディスク１４と磁気ディスク装置１８の論理ドライブの構成図である。半導体ディスク１４は２枚の半導体メモリモジュール１４ａ，１４ｂで構成されているものとしており、第１半導体メモリモジュール１４ａは３つの論理ドライブ０〜３を備え、それぞれのサイズは１０シリンダとなっている。又、第２の半導体メモリモジュール１４ｂは１０シリンダサイズの２つの論理ドライブ３〜４を備えている。
【００５１】
磁気ディスク装置１８における論理ドライブの構成は矢印で示すように半導体ディスク１４の論理ドライブ構成と１：１の対応関係がある。すなわち、磁気ディスク装置１８の論理ドライブ構成と半導体ディスク１４の論理ドライブ構成は同一になっている。
半導体ディスク１４における論理ドライブの構成を示す第１の構成情報テーブル２１は、論理ドライブ０〜４毎に先頭アドレス（シリンダアドレス）及び容量（シリンダ数）を保持しており、所定の半導体メモリモジュール（マスターモジュール）１４ａに格納されている。又、ディスク装置１８における論理ドライブの構成を示す第２の構成情報テーブル２２は、第１の構成情報テーブル２１と同一の構成を有し磁気ディスク装置１８に記憶されている。
【００５２】
半導体ディスク１４に記憶されているデータを磁気ディスク装置１８に退避させる場合には、ディスクアダプタ（ＤＡ）１９は第１、第２の構成情報テーブル２１，２２を読み取る。ついで、該第１の構成情報テーブル２１を参照して第ｉ論理ドライブ（ｉ＝０〜４）のデータを半導体ディスク１４より読み取り、該データを第２の構成情報テーブル２２を参照して磁気ディスク装置１８の第ｉ論理ドライブ（ｉ＝０〜４）に格納する。
又、磁気ディスク装置１８に退避されているデータを半導体ディスク１４に復元させる場合には、ディスクアダプタ（ＤＡ）１９は第１、第２の構成情報テーブル２１，２２を読み取る。ついで、該第２の構成情報テーブル２２を参照して第ｉ論理ドライブ（ｉ＝０〜４）のデータを磁気ディスク１８より読み取り、該データを第１の構成情報テーブル２１を参照して半導体ディスク１４の第ｉ論理ドライブ（ｉ＝０〜４）に格納する。
【００５３】
（ｂ−３）  半導体ディスク１４の論理ドライブ構成を変更した場合の問題点
ところで、半導体ディスク１４のデータを磁気ディスク装置１８に退避した後に、半導体ディスク１４の論理ドライブ構成を変更したい場合がある。図２９は論理ドライブ構成の変更説明図であり、（ａ）は変更前の構成、（ｂ）は変更後の構成であり、論理ドライブ０のサイズを１０シリンダから２０シリンダに増加し、論理ドライブ１〜論理ドライブ４の先頭アドレスを変更した場合である。
半導体ディスク１４の構成を前記のように変更すると、従来装置では半導体ディスク１４と磁気ディスク１８の第１、第２の構成情報テーブル２１、２２は図３０に示すようになる。この結果、磁気ディスク１８に退避されているデータを半導体ディスク１４に復元すると、矢印に示すように復元され、正しくデータの復元ができなくなる。すなわち、磁気ディスク１８に退避されている論理ドライブ０、１のデータ（点線で囲んである）が半導体ディスク１４の論理ドブ０に復元され、論理ドライブ２のデータが論理ドライブ１に復元され、論理ドライブ３のデータが論理ドライブ２に復元され、論理ドライブ４のデータが論理ドライブ３に復元されてしまう。この結果、退避したデータを使用できなくなる。
以上は、論理ドライブのサイズを変更した場合であるが、図３１に示すように論理ドライブの配置を変更した場合も同様の問題点が生じる。
【００５４】
（ｂ−４）  本発明の復元処理の概略
図３２はデータ退避後に半導体ディスク１４の論理ドライブ構成を変更した場合における本発明の復元処理の概略説明図である。１４は半導体ディスク、１８は磁気ディスク装置１９はディスクアダプタである。半導体ディスクディスク１４において、２０はユーザデータ格納領域、２１は半導体ディスクの論理ドライブ構成を保持する第１構成情報テーブル、２３は後述するアドレス変換テーブルである。磁気ディスク装置１８において、２２は磁気ディスクの論理ドライブ構成を保持する第２構成情報テーブル、２４はユーザデータ格納領域である。半導体ディスク１４及び磁気ディスク１８は初期時に図２８に示す構成を備えている。
半導体ディスク１４のデータを磁気ディスク１８に退避した後、保守パネル（ＰＮＬ）１５からの指示により半導体ディスク１４の構成を図２９（ｂ）に示すように変更する。この結果、半導体ディスク１４の第１の構成情報テーブル２１は図３０に示すようになる。
【００５５】
ついで、保守パネルＰＮＬより復元が指示されると、ディスクアダプタ（ＤＡ）１９は、半導体ディスク１４及び磁気ディスク１８より第１、第２の構成情報テーブル２１、２２を読み取り、これら第１，第２の構成情報テーブル２１，２２を用いて、論理ドライブ毎にディスクアドレスを半導体メモリのアドレスに変換するためのアドレス変換テーブル２３（図３３参照）を作成する。このアドレス変換テーブル２３は論理ドライブ毎に▲１▼半導体ディスク１４の先頭アドレス、シリンダ数、及び▲２▼磁気ディスク１８の先頭アドレス、シリンダ数を持たせたものである。
しかる後、ディスクアダプタＤＡは図３４に示すようにアドレス変換テーブル２３を参照して第ｉ論理ドライブ（ｉ＝０〜４）のデータを磁気ディスク１８より読み取り、該データをアドレス変換テーブル２３が指示する半導体ディスク１４の第ｉ論理ドライブ（ｉ＝０〜４）に格納する。以上により、磁気ディスク１８に退避してある各論理ドライブのデータを構成変更後の論理ドライブに復元でき、該データを使用することができる。
復元完了後に、磁気ディスク装置１８の第２の構成情報テーブル２２を半導体ディスク１４の第１の構成情報テーブル２１に一致させる。
【００５６】
（ｂ−５）  本発明の復元処理
図３５は本発明の復元処理のフロー図である。
データを磁気ディスク装置１８に退避した後に、半導体ディスク１４の論理ドライブ構成を変更したい場合には、保守パネル（ＰＮＬ）１５より構成情報変更コマンドと論理ドライブの構成情報を入力する（ステップ３０１）。これにより、サービスアダプタＳＡは半導体ディスク１４に記憶されている第１の構成情報テーブル２１を更新する（ステップ３０２）。しかる後、磁気ディスク装置１８に退避してあるデータを半導体ディスク１４へ復元するために、保守パネルＰＮＬよりリストアコマンドを入力する（ステップ３０３）。サービスアダプタＳＡはリストアコマンドが入力されると、ディスクアダプタ（ＤＡ）１９に対して、アドレス変換テーブル２３の作成を指示する（ステップ３０４）。
【００５７】
ディスクアダプタＤＡは半導体ディスク１４及び磁気ディスク装置１８より第１、第２の構成情報テーブル２１、２２を読み取り、これら第１，第２の構成情報テーブル２１，２２を用いてアドレス変換テーブル２３（図３２参照）を作成し、半導体ディスク１４に記憶する（ステップ３０５）。ついで、ディスクアダプタＤＡは該アドレス変換テーブル２３を参照して第ｉ論理ドライブ（ｉ＝０〜４）のデータを磁気ディスク１８より読み取り、該データをアドレス変換テーブル２３が指示する半導体ディスク１４の第ｉ論理ドライブ（ｉ＝０〜４）に格納する（ステップ３０６、３０７）。
【００５８】
全データの半導体ディスク１４への復元が完了すれば、保守パネルＰＮＬより構成情報合わせ込みコマンドを発行する（ステップ３０８）。サービスアダプタＳＡは構成情報合わせ込みコマンドが発行されると、ディスクアダプタＤＡに第２の構成情報テーブル２２の変更を指示する（ステップ３０９）。これにより、ディスクアダプタＤＡは半導体ディスク１４より第１の構成情報テーブル２１を読み出し、第１、第２の構成情報テーブル２１，２２が１：１に対応するように第２の構成情報テーブル２２を作成し、磁気ディスク１８に記憶されている内容を更新する（ステップ３１０）。
以上より、半導体ディスクの構成を変更しても、構成変更前にバックアップディスク装置に退避したデータを構成変更後の半導体ディスク装置に正しく復元でき、変更前のユーザデータが使用することができる。
【００５９】
（ｃ）  本発明の第３の実施例
（ｃ−１）  トラックフォーマット、ディレクトリ及びカウント部の構成
・トラックフォーマット
半導体ディスク装置では、各トラックフィールドの先頭にディレクト（コントロール情報部）が設けられている。チャネルアダプタＣＡは指定されたトラックフィールドのユーザデータをアクセスする場合、該トラックフィールドのディレクトリを読み込み、該ディレクトリを用いてユーザデータをアクセスする。
図３６は半導体ディスクにおけるトラックフォーマットの例であり、各トラックの先頭にはディレクトリ（ＤＩＲＥＣＴＯＲＹ）が配置され、その後にホームアドレス（ＨＡ）が置かれ、以降にＣＫＤフォーマットにしたがった可変長のレコード（ＲＥＣＯＲＤ−０，ＲＥＣＯＲＤ−１，・・・）が配列されている。ホームアドレスＨＡはトラックアドレス（ＣＣＨＨ）を示すものであり、各レコードはカウント部Ｃ、キー部Ｋ、データ部Ｄで構成されている。
【００６０】
・ディレクトリ
ディレクトリは図３７に示すように４４８バイトを有し、▲１▼１バイトの最終レコード番号（ＬＡＳＴ  ＲＥＣＯＲＤ  ＮＯ．）、▲２▼２１８バイトのセクタディレクトリ（ＳＥＣＴＯＲ  ＤＩＲＥＣＴＯＲＹ）、▲３▼１９０バイトのレコードディレクトリ（ＲＥＣＯＲＤ  ＤＩＲＥＣＴＯＲＹ）、▲４▼その他有効性を確認するためのＩＤ部等のエリア、▲５▼未使用エリアで構成されている。
最終レコード番号（ＬＡＳＴ  ＲＥＣＯＲＤ  ＮＯ．）はトラックフィールドに書き込まれている最後のレコードのレコード番号を示すものである。各トラックフィールドの最終レコードの直後にはエンドマーク（ＥＯＦ）が書き込まれており、最終レコードはこのエンドマークを読み込む直前のレコードということになる。そして、最終レコードのレコード番号が最終レコード番号と成る。
【００６１】
セクタディレクトリ（ＳＥＣＴＯＲ  ＤＩＲＥＣＴＯＲＹ）は、セットセクタ処理で最初に読める物理レコード番号をセクタ値別に格納したものである。物理レコード番号とは、ホームアドレスＨＡを０として、論理レコード番号に１を加えた値である。トラックは例えば２１８のセクタに区分され、それぞれセクタ値０〜２１７迄の値が割り当てられる。セクタ値２１７はトラックを所定サイズのセクタで分割した時の最後のセクタを示すもので、最大セクタ値である。このセクタディレクトリ（ＳＥＣＴＯＲ  ＤＩＲＥＣＴＯＲＹ）はセットセクタ命令に対するセットセクタ処理において使用され、セクタ処理で何番目のレコードが最初に読み出せるかを示す。尚、実際は０〜２２１のセクタが存在する。但し２１８〜２２１はレコード配置の関係上これ以降にレコードがくることはないのでセクタディレクトリには存在しない。
レコードディレクトリ（ＲＥＣＯＲＤ  ＤＩＲＥＣＴＯＲＹ）は各レコード（レコード０〜レコード９４）までのトラック先頭からのオフセットアドレスを２バイトで示すものである。トラックの先頭アドレスに目的レコードのオフセットアドレスを加えることにより、該目的レコードのカウント部のメモリアドレスを求めることができる。レコード番号９４はトラックに書き込める最大のレコード数を示す。このレコードディレクトリ（ＲＥＣＯＲＤ  ＤＩＲＥＣＴＯＲＹ）は、セクタ処理で取得したレコード番号のフィールドの読み出しや直接レコード番号を指定してレコードを読み出す際に使用される。
【００６２】
・カウント部
各レコードは前述のように、カウント部Ｃ、検索のためのキーが記録されるキー部Ｋ（必ずしも必要でない）、ユーザデータが記録されるデータ部Ｄで構成されている。カウント部Ｃは図３８に示すように６４バイトを有し、▲１▼ホストから与えられる８バイトの実データ部、▲２▼データの保証のために前後に付加される各４バイトのＩＤ部、▲３▼トラックフィールドをアクセスするための４８バイトのコントロール情報部より成っている。実データ部には、トラックアドレス（ＣＣＨＨ）、レコード番号（Ｒ）、及び後に続くキー部の長さ（ＫＬ）、データ部の長さ（ＤＬ）が記録される。ＩＤ部にはレコードの先頭を識別するコードや、データが書き込まれた最新の時刻（タイムスタンプ）等が記録される。コントロール情報部は、ディレクトリが消失しても目的レコードを検索し、かつ、ディレクトリの一部を復元できるようにするためにディレクトリ復元データ（制御情報復元データ）が記録されている。ディレクトリ復元データには、▲１▼自分のレコードの先頭から次のレコード先頭迄の相対アドレス（オフセットアドレス）Ａｉと▲２▼自分のレコードが位置するセクタのセクタ値Ｓｉが含まれている。
【００６３】
ディレクトリ、ホームアドレス、各レコードのカウント部の長さは一定のため、ディレクトリ、ＨＡ及びＲＥＣＯＲＤ−０のカウント部はトラック先頭から決まった相対位置にある。図３９（ａ）に示すようにトラック先頭からホームアドレスＨＡまでのオフセットアドレスＬ０，レコードＲｉ−１迄のオフアドレスをＬｉとすると、これらオフセットアドレスＬｉ（ｉ＝０，１，２，・・・）はレコードディレクトリ（ＲＥＣＯＲＤ  ＤＩＲＥＣＴＯＲＹ）に記録される（図３７参照）。この場合、レコードＲｉ−１からレコードＲｉ迄のオフセットアドレスをＡｉとすると、該オフセットアドレスＡｉはディレクトリ復元データとしてレコードＲｉのカウント部に記録される。Ａｉ，Ｌｉ間には次式
Ｌｉ＋Ａｉ→Ｌｉ＋１
の関係が成立する。
【００６４】
又、セクタとレコードの関係が図３９（ｂ）に示すようになっているものとすると、セクタディレクトリ（ＳＥＣＴＯＲ  ＤＩＲＥＣＴＯＲＹ）におけるセクタ値０に対応させて０（ＨＡ）が、セクタ値１〜２に対応させて１（レコードＲ０）が、セクタ値３〜６に対応させてレコード２（Ｒ１）が、セクタ値７〜１３に対応させて３（レコードＲ２）が・・・記録される。すなわち、セクタｉにレコードＲｊが存在すれば、セクタ値ｉに対応させてレコードＲｊ＋１がセクタディレクトリに記録される。そして、レコードＲｊがセクタｉ〜（ｉ＋ｍ）に位置すると、セクタ値ｉ〜（ｉ＋ｍ）がディレクトリ復元データとしてレコードＲｊ＋１のカウント部に記録される。
【００６５】
（ｃ−２）  レコード読み取り、書き込み手順
図４０は半導体ディスク装置のレコード読み取りシーケンス説明図である。尚、半導体ディスク装置は図１と同一構成を備えているものとする。
上位装置ＣＰＵよりシークコマンドＳＫが発生すると、チャネルアダプタＣＡは直ちに動作終了信号を上位装置に返す。上位装置ＣＰＵは動作終了信号を受信すれば、つぎにセットセクタコマンドＳＳを発行する。以後、同様にして上位装置はサーチＩＤコマンドＳＩＤを発行し、チャネルアダプタＣＡはこれらコマンドを受信する。
チャネルアダプタＣＡはサーチＩＤコマンドを受信すると、シ−クコマンドで指示されている論理アドレス（トラックアドレスＣＣＨＨ）を半導体ディスクの物理アドレスに変換する。この物理アドレスはトラックの先頭アドレス、換言すればディレクトリの先頭アドレスを示しているから、半導体ディスクよりディレクトリを読み込む。
【００６６】
ついで、セットセクタコマンドで指示されているセクタ値に応じたレコード番号をセクタディレクトリより求める（セットセクタ動作）。しかる後、該レコード番号のアドレスをレコードディレクトリより求め、該アドレスよりレコードのカウント部を読み取る。ついで、該カウント部に含まれるレコードのＣＣＨＨＲとサーチＩＤコマンドで指示されている目的レコードのＣＣＨＨＲが一致するかチェックし、一致すればサーチＩＤ動作を終了する。一致しない場合には次のレコード番号のレコードを読み取って同様の処理を行う。
目的のレコードが見つかれば、チャネルアダプタＣＡは上位装置に動作終了信号を返す。これにより上位装置はリードコマンド（ＲＥＡＤ  ＣＫＤ）を発行し、チャネルアダプタＣＡは該コマンドを受信する。以後、チャネルアダプタＣＡはカウント部Ｃ、キー部Ｋ、データ部Ｄを順次上位装置ＣＰＵに転送し、最後に正常終了を送って一連のレコードリード処理を終了する。
【００６７】
図４１は半導体ディスク装置のレコード書き込みシーケンス説明図であり、サーチ動作迄はレコード読み取り手順と同一である。
サーチＩＤ動作により目的とするレコードが見つかれば、チャネルアダプタＣＡは上位装置に動作終了信号を返す。これにより上位装置はライトコマンド（ＷＲＩＴＥ  ＣＫＤ）を発行し、チャネルアダプタＣＡは該コマンドを受信する。以後、チャネルアダプタＣＡは、ディレクトリ復元データ（制御情報復元データ）Ａｉ，Ｓｉを求めてカウント部に挿入し、しかる後、レコードを記録する。
レコード記録完了後、チャネルアダプタＣＡは上位装置ＣＰＵに書き込み終了を通知する。通知後、ディレクトリの内容を更新し、ディレクトリが記録されていた半導体ディスク位置に書き戻す。
【００６８】
（ｃ−３）  ディレクトリの読み込みエラーが発生した場合の処理
▲１▼スキップサーチ処理
レコードの読み込み、書き込み時に、チャネルアダプタＣＡがディレクトリを読み込めなくなった場合には、各レコードのカウント部に記録されているディレクトリ復元データを用いて目的とするレコードをサーチ（スキップサーチ）する。尚、ディレクトリが読み込めなくなった場合としては、２ビットエラーの発生、ＩＤエラーの発生（ディレクトリの書き込み失敗）等があり、かかるエラー発生時、チャネルアダプタＣＡはディレクトリを取り込むことができず、通常のアクセスができなくなる。
図４２はチャネルアダプタＣＡがディレクトリを読み込めなくなった場合のスキップサーチ処理のフロー図、図４３はスキップサーチ処理の説明図である。
まず、チャネルアダプタは１→ｉとする（ステップ４０１）。ついで、チャネルアダプタＣＡはアドレスＬｉ−１（＝Ｌ０）よりレコードＲｉ−１（＝Ｒ０）のカウント部Ｃ０を読み込む（ステップ４０２）。なお、レコードＲ０のトラック先頭からの記憶位置は固定でＬ０は既知である。
【００６９】
カウント部の読み込み後、該カウント部に含まれるているレコード番号がアクセス指示されたレコード番号Ｎと等しいかチェックする（ステップ４０３）。等しければ、レコードＲｉ−１が目的とするレコードであり、該レコードを読み込み、あるいは書替えを行う（ステップ４０４）。
しかし、カウント部に記録されているレコード番号がアクセス指示されたレコード番号Ｎと等しくなければ、カウント部に記録されている次のレコードＲｉ迄の相対アドレス（オフセットアドレス）Ａｉを取得する（ステップ４０５）。
ついで、次式
Ｌｉ−１＋Ａｉ→Ｌｉ
により、レコードＲｉのトラック先頭からのオフセットアドレスＬｉを演算し（ステップ４０６）、Ｌｉ演算後ｉを歩進し（ｉ＋１→ｉ、ステップ４０７）、以後ステップ４０２以降の処理を繰り返す。以上により、最終的にステップ４０３においてカウント部に記録されているレコード番号がアクセス指示されたレコード番号Ｎと等しくなり、目的とするレコードが求まり、該レコードの読み込み、あるいは書替えを行う。
以上のようにすれば、上位装置ＣＰＵより指示されたレコードの読み取りあるいは書き込み時に、ディレクトリを読み込めなくなってもチャネルアダプタＣＡは自動的に各レコード中に記録されているディレクトリ復元データを用いて上位装置より指示された目的レコードをサーチして該レコードの読み取りあるいは書き込みを行うことができる。
【００７０】
▲２▼ディレクトリの再構築
ディレクトリを読み込めなくなった場合には、上記スキップサーチ法により目的とするレコードをサーチすることができる。この場合、スキップサーチ処理と並行してディレクトリ復元データを用いてディレクトリを再構築することができる。
・レコードディレクトリの再構成処理
図４４はレコードディレクトリの再構成処理フロー図である。
まず、ホームアドレスＨＡ、レコードＲ０のオフセットアドレスとしてＬ０，Ｌ１（固定値）をレコードディレクトリにセットする（ステップ４２１）。しかる後、ｉを１にセットし、レコードＲｉ−１のカウント部を読み込む（ステップ４２２，４２３）。
ついで、読み込んだ情報がエンドマーク（ＥＯＦ）でないかチェックし（ステップ４２４）、ＥＯＦでなければ、カウント部より次のレコードＲｉ迄の相対アドレス（オフセットアドレス）Ａｉを取得する（ステップ４２５）。
【００７１】
Ａｉが求まれば、次式
Ｌｉ−１＋Ａｉ→Ｌｉ
により、レコードＲｉのトラック先頭からのオフセットアドレスＬｉを演算する（ステップ４２６）。ついで、ＬｉをレコードＲｉの先頭からのオフセットアドレスとしてレコードディレクトリにセットし（ステップ４２７）、ｉを歩進し（ｉ＋１→ｉ、ステップ４２８）、以後ステップ４２３以降の処理を繰り返す。
以上の処理を繰り返せば、いつかステップ４２４においてエンドマークがＥＯＦが検出される。エンドマークが検出されればレコードディレクトリにおける残りを”ＦＦ”で埋める（ステップ４２５）。
以上によりレコードディレクトリを復元することができる。
【００７２】
・セクタディレクトリの再構成処理
図４５はセクタディレクトリの再構成処理フロー図である。
ホームアドレスＨＡ、レコードＲ０のカウント部の位置は固定である。従って、セクタディレクトリにおける最初の幾つかのセクタ値に対応させてＨ０，Ｒ０をセットする（ステップ４５１）。
ついで、ｉを１にし、レコードＲｉ−１のカウント部を読み込む（ステップ４５２，４５３）。しかる後、カウント部より次のレコードＲｉ迄の相対アドレス（オフセットアドレス）Ａｉを取得する（ステップ４５４）。
【００７３】
Ａｉが求まれば、次式
Ｌｉ−１＋Ａｉ→Ｌｉ
により、レコードＲｉのトラック先頭からのオフセットアドレスＬｉを演算する（ステップ４５５）。ついで、レコードＲｉのカウント部を読み込み（ステップ４５６）、読み込んだ情報がエンドマーク（ＥＯＦ）でないかチェックする（ステップ４５７）。ＥＯＦでなければ、レコードＲｉのカウント部より該レコードＲｉの先頭セクタ値Ｓｉを取得する（ステップ４５８）。ついで、セクタディレクトリにおけるセクタ値Ｓｉに対応させてレコードＲｉを記入し（ステップ４５９）、しかる後、ｉを歩進し（ｉ＋１→ｉ、ステップ４６０）、ステップ４５４以降の処理を繰り返す。
【００７４】
以上の処理を繰り返せば、いつかステップ４２４においてエンドマークがＥＯＦが検出される。エンドマークが検出されればセクタディレクトリにおける残りを”ＦＦ”で埋める（ステップ４６１）。以上によりセクタディレクトリを復元することができる。
以上のようにすれば、上位装置ＣＰＵより指示されたレコードの読み取りあるいは書き込み時に、ディレクトリを読み込めなくなるエラーが発生した場合であっても、チャネルアダプタＣＡは自動的にディレクトリ復元データを用いてディレクトリを再構築するから、次のアクセスに際して該ディレクトリを参照して高速のアクセスが可能となる。
【００７５】
図４６は、ディレクトリにエラーが発生した場合の全体の概略シーケンスの説明図である。上位装置（ホスト）ＣＰＵよりレコード読み取り命令ＲＥＡＤ  Ｄが発行されると、チャネルアダプタＣＡは該コマンドを受け付け、ディレクトリの読み込み処理を行う。ディレクトリの読み込みエラーが発生すると、チャネルアダプタＣＡはアクセス法を通常のディレクトリ使用のアクセス法からスキップサーチ法に切り替える。以後、図４２に示す手順に従って目的とするレコードをスキップサーチし、目的レコードが求まればデータ部を上位装置に転送する。この場合、スキップサーチ処理と並行して図４４及び図４５のレコードディレクトリ、セクタディレクトリの再構成処理を行ってディレクトリを再構築することもできる。
【００７６】
（ｃ−４）  ディレクトリにエラーが発生した場合の別の処理
以上では、ディレクトリにエラーが発生した場合、自動的に目的のレコードをサーチして読み／書きし、またディレクトリを再構築した場合について説明した。しかし、かかる目的レコードのサーチやディレクトリの再構築は上位装置ＣＰＵからの指示に従って行うようにしても良い。
図４７はかかる場合のレコードリード手順説明図である。
上位装置（ホスト）ＣＰＵよりレコード読み取り命令ＲＥＡＤ  ＣＫＤが発行されると、チャネルアダプタＣＡは該コマンドを受け付け、ディレクトリの読み込み処理を行う。この場合、ディレクトリの読み込みエラーが発生すると、チャネルアダプタＣＡはエラー情報を作成して上位装置にエラー報告を行う。
【００７７】
上位装置ＣＰＵはエラーを解析し、特殊ダンプコマンドとレコード番号ＮをチャネルアダプタＣＡに発行する。チャネルアダプタＣＡは特殊ダンプコマンドを受け付け、図４２に示す手順に従って目的とするレコードをサーチし、目的レコードが求まれば、カウント部、キー部、データ部を順次上位装置に転送する。
以上は、特殊ダンプ命令による処理にディレクトリ再構築処理が伴わない場合である。ディレクトリ再構築処理が伴う場合には、図４４及び図４５のレコードディレクトリ、セクタディレクトリの再構築処理を行い、ディレクトリを再構築し、対象トラックの先頭に書き込む。
【００７８】
（ｃ−５）  コピー時にディレクトリエラーが発生した場合の処理
半導体ディスク装置にメモリ障害を生じると、サービスアダプタＳＡの制御によりエラーが生じた半導体メモリモジュールＭＳの内容を予備の半導体メモリモジュールＨＳにコピーし、しかる後、障害を生じた半導体メモリモジュールを新たな半導体メモリモジュールと交換する（第１実施例、図１参照）。
かかる場合、エラーが発生したトラック以外のコピーはサービスアダプタＳＡが行い、エラーが発生したトラックフィールドのコピーについてはチャネルアダプタＣＡに依頼して該当チャネルアダプタＣＡが行う。
というのは、サービスアダプタＳＡはフィールド単位の処理ができず、固定長（６４バイト）毎のブロックコピーをする。このため、エラーが発生したトラックフィールドのコピーについて、同様のコピー処理を行ってもエラー発生情報をディレクトリや各カウント部付加情報に書き込めず、ユーザデータのアクセスは保証できないものになってしまうからである。そこで、サービスアダプタＳＡはメモリ障害が発生したトラックフィールドのコピー処理についてはチャネルアダプタＣＡに依頼し、依頼を受けたチャネルアダプタＣＡは、ディレクトリから順にエンドマークＥＯＦまでフィールド単位でコピー処理を行う。
【００７９】
チャネルアダプタＣＡはコピーの途中でメモリ障害を起こしているフィールド（カウント部、キー部、データ部）を発見すると、そのフィールド（カウント部の場合にはレコード全体）のみを無効化し、カウント部における必要な制御情報の書替えを行う。しかし、ディレクトリ部がメモリ障害を起こしている場合にディレクトリを無効化してしまうと、当該トラックフィールド上の全てのレコードが無効化してしまい、更にはチャネルアダプタＣＡもディレクトリを読み込めないためトラックのフォーマットを判断できない。
【００８０】
これを回避するために、チャネルアダプタＣＡは、固定位置のＨＡフィールド及びレコードＲ０をコピーし、レコードＲ１以降のフィールドに関しては、スキップサーチ方法により次のレコードフィールドのアドレスを取得しながらエンドマークまでコピーを行う。すなわち、現レコードのカウント部を読み込めば、ディレクトリの再構築に必要な次のレコード迄のオフセットアドレスや現レコードのセクタ値、現レコードのキー長、データ長を取得でき、現レコードフィールドのコピーを行って次のレコードの処理に移れる。これをエンドマーク検出まで続けるとディレクトリを除く全てのフィールドのコピーができる。更に、上記コピー処理はディレクトリ再構築のために必要な全てのレコード部のディレクトリ復元データの読み込み処理を含んでいるため、必然的にディレクトリを再構築することができる。そこで、各フィールドのコピー処理をすると同時にディレクトリの再構築処理を行い、最後にチャネルアダプタＣＡ内部で再構築したディレクトリをコピー先のディレクトリ領域に書き込むことでメモリ交換処理時のユーザデータ消失を防止することができる。
【００８１】
図４８及び図４９は半導体メモリにエラーが生じた時のコピー処理のフロー図である。尚、半導体ディスク装置は図１に示す構成を有しているものとする。
サービスアダプタＳＡはエラーが発生した半導体メモリモジュールＭＳ及びトラックを認識すると（ステップ５０１）、該半導体メモリモジュールＭＳのコピーを開始する（ステップ５０２）。
コピー対象トラックがエラー発生トラックであるかチェックし（ステップ５０３）、エラー発生トラックでなければ該トラックのコピーを実行し（ステップ５０４）、コピー完了後半導体メモリモジュールＭＳのコピーが完了したチェックし（ステップ５０５）、完了していれば次のトラックについてステップ５０３以降の処理を行う。
【００８２】
一方、ステップ５０３において、コピー対象トラックがエラー発生トラックの場合には、該エラー発生トラックのコピーをチャネルアダプタＣＡに依頼する（ステップ５０６）。チャネルアダプタＣＡはフィールド単位でのコピーを開始し、フィールドの読み込みを行う（ステップ５０７）。該フィールドでエラーを検出すれば（ステップ５０８）、ディレクトリのエラーかチェックし（ステップ５０９）、ディレクトリのエラーでない場合には当該フィールドを無効化し（ステップ５１０）、ステップ５０７に飛ぶ。しかし、ディレクトリのエラーであればフラグＦを”１”にし（”１”→Ｆ、ステップ５１１）、ステップ５０７に飛ぶ。
ステップ５０８において、フィールドにエラーが存在しない場合には、該フィールドのコピーを実行し（ステップ５１２）、ついで、Ｆ＝”１”かチェックし（ステップ５１３）、Ｆ＝”１”の場合にはディレクトリの再構築処理を行う（ステップ５１４）。
【００８３】
しかる後、エンドマークＥＯＦが検出されたチェックし（ステップ５１５）、検出してなければステップ５０７に飛び以降のフィールドのコピーを実行する。
エンドマークＥＯＦが検出された場合には、Ｆ＝”１”かチェックし（ステップ５１６）、Ｆ＝”０”の場合にはサービスアダプタＳＡにコピー終了を通知する（ステップ５１７）。これにより、サービスアダプタは次のトラックに対してステップ５０３以降のコピー処理を繰り返す。
ステップ５１６において、Ｆ＝”１”の場合には、再構築したディレクトリをコピー先のディレクトリ領域に書き込み（ステップ５１８）、ついでＦを”０”にし（”０”→Ｆ、ステップ５１９）、サービスアダプタＳＡにコピー終了を通知する（ステップ５１７）。これにより、サービスアダプタは次のトラックに対してステップ５０３以降のコピー処理を繰り返す。
【００８４】
以上のように、第３実施例によれば、ディレクトリを読み込めなくなっても、該ディレクトリを用いずに各レコードに含まれる制御情報復元データを用いて上位装置により指示された目的レコードへのアクセスが可能となる。又、制御情報復元データを用いてディレクトリの再構築ができるため、以後、再構築したディレクトリを用いてアクセスができる。このため、アクセス速度が低下することはない。
又、メモリエラーによる半導体メモリモジュール交換時のコピー処理において、ディレクトリを読み込めなくなるエラーが検出された場合にも、各レコードに含まれる制御情報復元データを用いて順次次のレコード位置が判明するためレコードのコピーができ、しかも、ディレクトリを再構築してコピー先のディレクトリ領域に書き込むことができる。
【００８５】
（ｄ）  第４実施例
（ｄ−１）  全体の構成
図５０はデータを圧縮して半導体ディスクに記憶する半導体ディスク装置の実施例の構成図であり、二重化構成になっており、添字１を有するモジュールは第１の半導体ディスク装置Ｇ０側のモジュールであり、添字２を有するモジュールは第２半導体ディスク装置Ｇ１側のモジュール、添字の無いモジュールは共通のモジュールである。
【００８６】
ＣＡ１，ＣＡ２は上位装置のＣＰＵ、チャネルとのインターフェース制御を行うチャネルアダプタであり、上位装置（チャネル）に接続されるようになっている。ＲＭ１，ＲＭ２はリソースマネージャであり排他制御等の処理動作を制御すると共にサブシステム全体の資源管理を行う。ＴＳ１，ＴＳ２は排他制御テーブル等のテーブル類を記憶するテーブルストーリッジ（テーブル記憶部）、ＳＡ１，ＳＡ２はサービスアダプタ、ＭＤＫは半導体ディスクの内容を一時的にバックアップする磁気ディスク装置、ＤＡ１，ＤＡ２は磁気ディスク装置とのインターフェース制御を行うデバイスアダプタ、ＢＡＮＫ１，ＢＡＮＫ２は半導体ディスクであり、複数の半導体メモリモジュール及び予備の半導体メモリモジュールが搭載されるようになっている。ＥＳＰ１，ＥＳＰ２は半導体ディスクへのアクセス制御を行うポート、ＭＴ１，ＭＴ２は半導体メモリを多数の所定サイズのブロックに分割した時、各ブロックの使用／未使用状態を記憶する半導体メモリテーブル、ＭＣＡ１，ＭＣＡ２は半導体メモリにおけるブロック毎の使用／未使用状態を管理し、チャネルアダプタＣＡ１，ＣＡ２からのブロック要求により未使用ブロックを割り当て、該ブロックを使用中にすると共に、チャネルアダプタからのブロック解放要求により所定の使用中ブロックを未使用中に変更する。
【００８７】
ＢＵＳ１，ＢＵＳ２はバスであり、制御用バス、データ転送用バス、サービスバスを有している。ＣＢＵＳは一方のテーブル記憶部ＴＳ１（ＴＳ２）の内容が変化した時、直ちに他方のテーブル記憶部ＴＳ２（ＴＳ１）にコピーするコピーバス、ＣＢＵＳ′は一方の半導体メモリテーブルＭＴ１（ＭＴ２）の内容が変化した時、直ちに他方の半導体メモリテーブルＭＴ２（ＭＴ１）にコピーするコピーバスである。
第１、第２半導体ディスク装置Ｇ０，Ｇ１は中央点線を中心に対称に構成されており、上位ＣＰＵは対称に第１、第２半導体ディスク装置のチャネルアダプタＣＡ１，ＣＡ２に接続されている。
【００８８】
（ｄ−２）  半導体メモリの構成
半導体メモリＢＡＮＫは図５１に示すように、トラックエミュレーションエリア５１と、レコードのうちデータ部を圧縮して記憶する圧縮データ格納エリア５２に分けられている。圧縮データ格納エリア５２は所定サイズの多数のブロック（論理ブロック）に分割され、各レコードのデータ部は圧縮された後、必要数のブロックに連続的にあるいは分散して格納される。
【００８９】
トラックエミュレーションエリア５１の各トラックはレコードのデータ部が記憶されない点を除けば、図３６に示すトラックフォーマットを備えている。各トラックフィールドには図５２に示すように、ディレクトリ、ホームアドレスＨＡ、レコード０のカウント部及びデータ部、各レコードのカウント部、キー部が記憶される。各レコードＲｉ（ｉ＝１，２・・・）のカウント部Ｃにはフィールドを制御する制御情報やレコード番号ＣＣＨＨＲ、キー長ＫＬデータ長ＤＬ等が書かれ、更に、データ部が記憶される圧縮データ格納エリア５２のブロック番号（ブロックアドレス）が書かれるようになっている。
レコードを書き込は、図５３に示すように書き込むべきレコードのデータ部ＤＴを圧縮して圧縮データＤＴ′とし、ついで、該圧縮データＤＴ′のサイズに応じた数のブロック（図では３つ）確保し、該確保したブロックＢ１〜Ｂ３に圧縮データＤＴ′の第１〜第３部分▲１▼〜▲３▼を格納し、これらブロックＢ１〜Ｂ３のブロックアドレスをカウント部に挿入してトラックエミュレーションエリア５１に格納する。
【００９０】
（ｄ−３）  チャネルアダプタの構成
図５４は圧縮／復号処理を行うチャネルアダプタの構成図である。チャネルアダプタ内部において、６１は非圧縮データを記憶する大容量（例えば１トラック分）の第１データバッファ、６２は圧縮データを記憶する大容量（例えば１トラック分）の第２のデータバッファ、６３はデータの圧縮・復号を行うデータ圧縮機構部、６４は圧縮・復号動作を補助する辞書メモリ、６４はチャネルインターフェースプロトコル制御部、６５は第１、第２のデータバッファからのデータを選択して出力すると共に、逆にデータを第１、第２のデータバッファに選択的に出力するセレクタ、６６は半導体ディスク装置内部の他のユニットと接続された内部バスを制御する内部バスインターフェース制御部（ＢＩＬ）、６７は非圧縮データのバイト数を計数する第１のカウンタ、６８は圧縮データのバイト数を計数する第２のカウンタ、６９はこれらハードウェア資源をマイクロプログラムにより制御するＭＰＵ、７０はプログラム、制御テーブルその他のテーブル類を格納するコントロールストレージ、７１はバスである。
【００９１】
（ｄ−４）  レコード読み取り処理
図５５はレコード読み取り処理のシーケンス説明図である。
上位装置ＣＰＵよりシークコマンドＳＫが発生すると、チャネルアダプタＣＡ（ＭＰＵ６９）は直ちに動作終了信号を上位装置に返す。上位装置ＣＰＵは動作終了信号を受信すれば、つぎにセットセクタコマンドＳＳを発行する。以後、同様にして上位装置はサーチＩＤコマンドＳＩＤ及びリードコマンド（ＲＥＡＤ  ＣＫＤ）を発行し、チャネルアダプタＣＡはこれらコマンドを受信する。
チャネルアダプタＣＡのＭＰＵ６９はリードコマンドを受信すると、制御テーブルを用いてシ−クコマンドで指示されている論理アドレス（トラックアドレスＣＣＨＨ）を半導体ディスクの物理アドレスに変換する。この物理アドレスはトラックエミュレーションエリア５１における対応トラックの先頭アドレス、換言すればディレクトリの先頭アドレスを示しているから、半導体ディスクよりディレクトリを読み込む。
【００９２】
ついで、セットセクタコマンドで指示されているセクタ値に応じたレコード番号をセクタディレクトリより求める（セットセクタ動作）。しかる後、該レコード番号のアドレスをレコードディレクトリより求め、該アドレスよりレコードのカウント部を読み取り、該カウント部に含まれるレコードのＣＣＨＨＲとサーチＩＤコマンドで指示されている目的レコードのＣＣＨＨＲが一致するかチェックする。一致すればサーチＩＤ動作を終了する。一致しない場合には次のレコード番号のレコードを読み取って同様の処理を行う。
目的のレコードが見つかれば、内部バスインタフェース制御部（ＢＩＬ）６６を介して該レコードのカウント部Ｃ、キー部Ｋを読み出す。セレクタ６５は該カウント部Ｃ、キー部Ｋを第１のデータバッファ６１にセットし、チャネルインタフェースプロトコル制御部６４は該カウント部、キー部を上位装置に転送する。ついで、チャネルアダプタＣＡのＭＰＵはカウント部Ｃに書き込まれているブロックアドレス（１つに限らない）をＢＩＬにセットする。これにより、以後ＢＩＬはブロックアドレスが指示するブロックよりデータを順次読み取りセレクタ６５を介して第２のデータバッファ６２に書き込む。データ圧縮機構６３は圧縮データを復元し、第１データバッファ６１にセットし、チャネルインタフェースプロトコル制御部６４は該データを上位装置に転送する。
【００９３】
（ｄ−５）  レコード書替え処理
図５６はレコード書替え処理のフロー図である。ライトコマンド（ＷＲＩＴＥ  Ｄ）を受付けるまではリードコマンドの処理と同様である。
チャネルインターフェースプロトコル制御部６４は上位装置からライトコマンド（ＷＲＩＴＥ  Ｄ）を受信するとレコードを一時的に大容量のデータバッファ６１に格納する（ステップ６０１）。ついで、チャネルアダプタＣＡのＭＰＵ６９は制御テーブルを用いてシ−クコマンドで指示されている論理アドレス（トラックアドレスＣＣＨＨ）を半導体ディスクの物理アドレスに変換する。この物理アドレスは対応トラックのディレクトリ位置を示しているから、該ディレクトリを読み込む（ステップ６０２）。
【００９４】
しかる後、リードコマンドの場合と同様に目的レコードのアドレスを求め、該アドレスより目的レコードのカウント部を読み取る（ステップ６０３）。そして、カウント部に含まれるブロックアドレス及びブロック数Ｂｏを保存する（ステップ６０４）。尚、このブロックアドレス及びブロック数は、目的レコードのデータ部が記憶されているブロックのアドレス及びその数を示す。
ブロックアドレス及びブロック数Ｂｏの保存が完了すれば、あるいは以上と並行してデータ圧縮機構６３はレコードのうちデータ部を圧縮して第２のデータバッファ６２に格納する（ステップ６０５）。圧縮データのバイト数は第２のカウンタ６８が監視しているから、該バイト数を１ブロックの容量で除算することにより必要なブロック数Ｂｎを求める（ステップ６０６）。
ブロック数Ｂｎが求まれば、今までのブロック数Ｂｏとの大小を比較し（ステップ６０７）、Ｂｎ＝Ｂｏであれば、ＢＩＬに今までのブロックアドレスをセットし（ステップ６０８）、該ブロックアドレスが指示するブロックに圧縮データを書き込む（ステップ６０９）。
【００９５】
一方、Ｂｎ＜Ｂｏの場合には、ＭＰＵ６９は不要になった（Ｂｏ−Ｂｎ）個のブロックアドレスを半導体メモリ管理アダプタＭＣＴに指示する。これにより、半導体メモリ管理アダプタＭＣＴは指示されたブロックアドレスを未使用にするようにメモリテーブルＭＴの内容を変更する（ステップ６１０）。又、ＭＰＵ６９は目的レコードのカウント部より、解放指示したブロックのブロックアドレスを削除する（ステップ６１１）。以後、チャネルアダプタのＭＰＵ６９はＢＩＬ６６に必要な数のブロックアドレスをセットし（ステップ６０８）、該ブロックアドレスが指示するブロックに圧縮データを書き込む（ステップ６０９）。
【００９６】
又、Ｂｎ＞Ｂｏの場合には、ＭＰＵ６９は（Ｂｎ−Ｂｏ）個の不足ブロックの割り当てを半導体メモリ管理アダプタＭＣＴに要求する（ステップ６１２）。半導体メモリ管理アダプタＭＣＴは該ブロック要求を受信すると、メモリテーブルＭＴを参照して要求された数の未使用ブロックを求めて使用中に変更すると共に、該求めた未使用ブロックのブロックアドレスをチャネルアダプタＣＡに通知する。チャネルアダプタＣＡのＭＰＵ６９は半導体メモリ管理アダプタＭＣＴより必要な数のブロックアドレスを受信すれば（ステップ６１３）、目的レコードのカウント部に新たに割り当てられたブロックのブロックアドレスを追加する（ステップ６１４）。以後、チャネルアダプタのＭＰＵ６９はＢＩＬ６６に新レコードの書き込みに必要な数のブロックアドレスをセットし（ステップ６０８）、該ブロックアドレスが指示するブロックに順次圧縮データを書き込む（ステップ６０９）。
【００９７】
以上、第４の実施例によれば、ユーザデータを圧縮して記憶するからメモリの有効利用が図れ、しかも、制御情報（ディレクトリ、カウント部等）は圧縮しないため、復元処理が不要となり上位装置のデータアクセス時間の短縮を図ることができる。又、第４実施例によれば、データを圧縮して半導体メモリに書き込む場合、効果的にメモリ領域の解放、割当てを行ってメモリの有効利用を図ることができる。
以上、本発明を実施例により説明したが、本発明は請求の範囲に記載した本発明の主旨に従い種々の変形が可能であり、本発明はこれらを排除するものではない。
【００９８】
【発明の効果】
本発明によれば、予備の半導体メモリモジュールを追加するだけで、メモリエラーが生じた半導体メモリモジュールの記憶内容を無停止で退避することができ、しかも、大がかりな保守装置を必要としない。
また、本発明によれば、半導体メモリモジュールをアクセス制御単位に細分化し、該アクセス制御単位でコピーを行う。このため、該制御単位で排他制御を行うことができ、コピー中であっても上位装置はコピー対象でない他のアクセス制御単位部分にアクセスすることができ、上位装置のアクセスに悪影響を与えることがない。
更に、本発明によれば制御単位のコピーが完了する毎にサービスアダプタＳＡは、チャネルアダプタＣＡ等に設けられている制御テーブルＣＴＬにおける物理アドレスをコピー先の物理アドレスに変更する、このため、アクセス制御単位のコピー完了後、該アクセス制御単位については直ちにコピー先（予備の半導体メモリモジュール）にアクセスすることができる。
【００９９】
また、本発明によれば、アクセス制御単位毎にコピーが正常に完了したか否かを管理するコピー管理テーブルを設け、チャネルアダプタＣＡ等のモジュールはデータリード時に該コピー管理テーブルを参照し、アクセス対象である領域（トラック）が正常の場合にはアクセスし、異常の場合にはアクセスせずエラーとする。この結果、コピー時にコピーエラーが発生しても誤ったデータを読み取って処理することがなく、誤動作を防止できる。
更に本発明によれば、チャネルアダプタ等のモジュールはコピー中の半導体メモリモジュールにデータを書き込む際、フォーキング処理に従ってオリジナルな物理アドレスとコピー先の物理アドレスが示す２つの記憶エリアにデータを書き込む。この結果、制御単位のコピー完了毎に制御テーブルを変更する必要がなく、コピーを高速に行うことができる。
又、本発明によれば、コピーを停止して上位装置ＣＰＵの書き込みコマンドを実行するようにしたから上位装置のアクセス速度は低下しない。又、この場合、アクセス単位がコピー単位より大きいければ、アクセス単位部分のコピーが完了したものとみなするからコピー速度を向上することができる。
【図面の簡単な説明】
【図１】本発明の半導体ディスク装置の構成図（第１実施例）である。
【図２】制御テーブルの説明図である。
【図３】コピー管理テーブルの説明図である。
【図４】半導体ディスクの構成図である。
【図５】制御テーブルの内容（初期状態）説明図である。
【図６】コピー処理説明図である。
【図７】制御テーブルの内容（中間）説明図である。
【図８】制御テーブルの内容（コピー完了）説明図である。
【図９】コピー処理のフロー図（その１）である。
【図１０】コピー処理のフロー図（その２）である。
【図１１】コピー管理テーブルの説明図である。
【図１２】半導体メモリモジュールの交換後の処理フロー図である。
【図１３】半導体メモリモジュールの交換後の別の処理フロー図である。
【図１４】コピー管理テーブルを用いたアクセス処理フロー図である。
【図１５】制御テーブルの別の構成図である。
【図１６】制御テーブルの内容（初期時）説明図である。
【図１７】制御テーブルの内容（変更指示後）説明図である。
【図１８】フォーキング処理説明図である。
【図１９】コピー処理説明図である。
【図２０】制御テーブルの内容（物理アドレス交換指示後）説明図である。
【図２１】制御テーブルの内容（コピー終了時）説明図である。
【図２２】コピー処理のフロー図（その１）である。
【図２３】コピー処理のフロー図（その２）である。
【図２４】コピー中の制御単位エリアにライト命令が発生した場合の処理フロー図である。
【図２５】半導体ディスク装置の実際の構成図である。
【図２６】各モジュールの構成図である。
【図２７】本発明の半導体ディスク装置の別の構成図（第２実施例）である。
【図２８】論理ドライブの構成である。
【図２９】論理ドライブ構成の変更説明図である。
【図３０】論理ドライブ変更時の従来の問題点説明図である。
【図３１】論理ドライブ構成変更の別の説明図である。
【図３２】本発明の復元処理の概略説明図である。
【図３３】アドレス変換テーブル説明図である。
【図３４】ユーザデータ復元説明図である。
【図３５】本発明の復元処理のフロー図である。
【図３６】半導体ディスクにおけるトラックフォーマット説明図である。
【図３７】ディレクトリの構成図である。
【図３８】カウント部の構成図である。
【図３９】トラックフィールドの構成説明図である。
【図４０】レコードの読み取りシーケンス説明図である。
【図４１】レコード書き込みシーケンス説明図である。
【図４２】カウント部付加情報を用いたスキップサーチ処理のフロー図である。
【図４３】カウント部付加情報を用いたスキップサーチ処理の説明図である。
【図４４】レコードディレクトリの再構成処理のフロー図である。
【図４５】セクタディレクトリの再構成処理のフロー図である。
【図４６】ディレクトリにエラーが発生した場合の全体のシーケンス説明図である。
【図４７】トラック特殊アクセス法を用いたホストアクセスの説明図である。
【図４８】半導体メモリにエラーが発生した時のコピー処理フロー図（その１）である。
【図４９】半導体メモリにエラーが発生した時のコピー処理フロー図（その２）である。
【図５０】半導体ディスク装置の構成図（第４実施例）である。
【図５１】メモリマップ説明図である。
【図５２】トラックエミュレーションエリアの説明図である。
【図５３】ユーザデータの論理ブロックへの格納説明図である。
【図５４】チャネルアダプタの構成図である。
【図５５】レコードの読み取りシーケンス説明図である。
【図５６】レコードの書替え処理のフロー図である。
【図５７】従来の半導体ディスク装置の構成図である。
【符号の説明】
１１ａ−１，１１ａ−２・・上位装置
１２・・半導体ディスク装置
１３・・半導体ディスク制御装置
１３ａ−１，１３ａ−２・・チャネルアダプタ
１３ｂ・・リソースマネージャ
１３ｃ・・サービスアダプタ
１４・・半導体ディスク
１４ａ〜１４ｎ・・複数の半導体メモリモジュール
１６・・予備の半導体メモリモジュール
【図１】
0003561002.tif 000002
【図２】
0003561002.tif 000003
【図３】
0003561002.tif 000004
【図４】
0003561002.tif 000005
【図５】
0003561002.tif 000006
【図６】
0003561002.tif 000007
【図７】
0003561002.tif 000008
【図８】
0003561002.tif 000009
【図９】
0003561002.tif 000010
【図１０】
0003561002.tif 000011
【図１１】
0003561002.tif 000012
【図１２】
0003561002.tif 000013
【図１３】
0003561002.tif 000014
【図１４】
0003561002.tif 000015
【図１５】
0003561002.tif 000016
【図１６】
0003561002.tif 000017
【図１７】
0003561002.tif 000018
【図１８】
0003561002.tif 000019
【図１９】
0003561002.tif 000020
【図２０】
0003561002.tif 000021
【図２１】
0003561002.tif 000022
【図２２】
0003561002.tif 000023
【図２３】
0003561002.tif 000024
【図２４】
0003561002.tif 000025
【図２５】
0003561002.tif 000026
【図２６】
0003561002.tif 000027
【図２７】
0003561002.tif 000028
【図２８】
0003561002.tif 000029
【図２９】
0003561002.tif 000030
【図３０】
0003561002.tif 000031
【図３１】
0003561002.tif 000032
【図３２】
0003561002.tif 000033
【図３３】
0003561002.tif 000034
【図３４】
0003561002.tif 000035
【図３５】
0003561002.tif 000036
【図３６】
0003561002.tif 000037
【図３７】
0003561002.tif 000038
【図３８】
0003561002.tif 000039
【図３９】
0003561002.tif 000040
【図４０】
0003561002.tif 000041
【図４１】
0003561002.tif 000042
【図４２】
0003561002.tif 000043
【図４３】
0003561002.tif 000044
【図４４】
0003561002.tif 000045
【図４５】
0003561002.tif 000046
【図４６】
0003561002.tif 000047
【図４７】
0003561002.tif 000048
【図４８】
0003561002.tif 000049
【図４９】
0003561002.tif 000050
【図５０】
0003561002.tif 000051
【図５１】
0003561002.tif 000052
【図５２】
0003561002.tif 000053
【図５３】
0003561002.tif 000054
【図５４】
0003561002.tif 000055
【図５５】
0003561002.tif 000056
【図５６】
0003561002.tif 000057
【図５７】
0003561002.tif 000058