(57)【要約】      （修正有）【課題】冗長性構成を有するデータ記憶システムを提供する。【解決手段】ホストコンピュータがシステムインターフエイスを介してデイスクドライブの列に接続され、インターフエイスは一対のシステムメモリ部分を持つ。各々が一対のシステムメモリ部分に接続された複数のデイレクタがあり、ホストコンピュータとディスクドライブの列との間のデータ転送をこのデータがシステムメモリを通過する時に制御する。システムが二重書込みモードにある時、デイレクタの１つが、その中にホストコンピュータとディスクドライブの列との間に転送されるべきデータを記憶し、記憶されたデータを両方のメモリ部分に順次転送する。【選択図】図１Ａ
2006024230.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータがデイスクドライブの列にインターフエイスを介して接続されるデータ記憶システムにおいて、このインターフエイスが、
一対のシステムメモリ部分を含むシステムメモリと、
各々が一対のシステムメモリ部分に接続された複数のデイレクタであって、ホストコンピュータとデイスクドライブの列との間のデータ転送をこのデータがシステムメモリを通過する時に制御するデイレクタと、を備え、
システムが二重書込みモードにある時、前記デイレクタの１つが、その中にホストコンピュータとデイスクドライブの列との間に転送されるべきデータを記憶し、そしてこの記憶されたデータを両方の前記メモリ部分に順次に転送することを特徴とするデータ記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にデータ記憶装置に関し、そしてより詳細には記憶システムのサブアセンブリまたは部品の故障時に全体システムの故障を防ぐための冗長性構成を有するデータ記憶システムに関する。
【背景技術】
【０００２】
当該技術において知られているように、大型のメインフレーム計算機システムは大容量データ記憶システムを必要とする。これらの大型メインフレーム計算機システムは一般にデータプロセッサを含み、データ記憶システムを含む周辺装置を通じて計算機システムに導入されるデータに関して多くの操作を実行する。これらの操作の結果は記憶システムを含む周辺装置に出力される。
データ記憶システムの１タイプは磁気デイスク記憶システムである。デイスクドライブの列とメインフレーム計算機システムはインターフエイスを介して一緒に結合される。インターフエイスはＣＰＵ又は「フロントエンド」コントローラ（又はデイレクタ）及び「バックエンド」デイスクコントローラ（又はデイレクタ）を含む。インターフエイスはコントローラ（又はデイレクタ）を計算機に透明なように制御する。すなわち、メインフレーム計算機システムが一つのメインメモリと共に動作していると思うように、データがデイスクドライブの列から取り出され又は記憶される。このようなシステムが本発明と同じ譲受人に譲渡された１９９３年４月２７日付与の米国特許５，２０６，９３９号「デイスクマッピング及びデータ検索のためのシステム及び方法」、発明者モシュ・ヤナイ、ナタン・ビシュルツキイ、ブルーノ・アルタレスキュ、及びダニエル・キャスルに記載されている。
このような米国特許に記載されているように、インターフエイスはＣＰＵコントローラ（又はテイレクタ）及びデイスクコントローラ（又はデイレクタ）に加えてさらに、アドレス可能キャシユメモリを有する。キャシユメモリは半導体メモリであり、デイスクドライブへ記憶する前にメインフレーム計算機システムから高速にデータを記憶するため、及び反対にデイスクドライブからのデータをメインフレーム計算機へ送る前に記憶するために設けられる。半導体メモリであるキヤシュメモリは、デイスクドライブのような磁気メモリとは異なり、データの書込み及び読出しをデイスクドライブよりもずっと高速に行なう。
【０００３】
ＣＰＵコントローラ、デイスクコントローラ、及びキヤシュメモリはバックプレーン印刷回路基板を介して相互接続されている。より詳細には、デイスクコントローラはデイスクコントローラ印刷回路基板上に搭載されている。ＣＰＵコントローラはＣＰＵコントローラ印刷回路基板上に搭載されている。そしてキヤシュメモリはキヤシュメモリ印刷回路基板上に搭載されている。テイスクコントローラ、ＣＰＵコントローラ、及びキヤシュメモリ印刷回路基板はバックプレーン印刷回路基板に挿入される。コントローラ内の故障の場合のデータ整合性を提供するために、バックプレーン印刷回路基板は一対のバスから構成されたシステムバスを有する。１組のデイスクコントローラが１つのバスに接続され、他の組のデイスクコントローラが他のバスに接続される。同様に、１組のＣＰＵコントローラが１つのバスに接続され、他の組のＣＰＵコントローラが他のバスに接続されている。キヤシュメモリは両方のバスに接続されている。各々のバスはデータ、アドレス、制御情報を供給する。
従って、２つのバスの使用はある程度の冗長性を与えて、１つのバスに接続されたコントローラ又はデイスクドライブが故障した場合に全体システムが故障することを防ぐ。さらに、２つのバスの使用は１つのバスを有するシステムに較べてシステムのデータ転送帯域幅を増加する。
【発明の開示】
【課題を解決するための手段】
【０００４】
本発明によれば、ホストコンピュータがインターフエイスを介してデイスクドライブの一列に結合されたデータ記憶システムが提供される。インターフエイスは一対のシステムメモリ部分を有するシステムメモリを有する。メモリ部分のそれぞれは複数のアドレス可能な位置を有し、データがメモリ部分の一つのアドレス可能な位置に書き込まれて記憶される。システムバスが一対のシステムメモリ部分に接続される。複数のデイレクタがシステムバスを経てシステムメモリに接続される。このデイレクタはデータがシステムメモリを通過する時、ホストコンピュータとデイスクドライブの一列の間のデータ転送を制御するように構成される。デイレクタはシステムを二重書込みモードに置くように構成される。そしてこのモードにおいては、ホストコンピュータとデイスクドライブの一列との間に転送されるべきデータのバーストを記憶し、このように記憶されたデータのバーストをシステムバスに順次に転送し、そしてこのシステムバスに接続されたメモリ部分の両方に、そのアドレス可能な同じ位置に、システムバスに順次に転送される同じデータのバーストが書込まれることを可能にする。
【０００５】
本発明の別の特徴によれば、インターフエイスが一対のシステムメモリ部分を持ったシステムメモリを含む。システムメモリ部分のそれぞれは複数のアドレス可能な位置を有し、メモリ部分の１つのアドレス可能な位置にデータを書込んで記憶する。一対のシステムバスを含むシステムバスか提供される。一対のシステムバスのそれぞれは一対のシステム部分の対応する一つに接続される。複数のデイレクタがシステムバスを経由してシステムメモリに接続される。デイレクタはデータがシステムメモリを通過する時、ホストコンピュータとデイスクドライブの一列の間のデータ転送を制御するように構成されている。デイレクタはシステムを二重書込みモードに置くように構成されている。そして、このモードにおいては、ホストコンピュータとデイスクドライブの列の間に転送されるべきデータのバーストを記憶し、このように記憶されたデータのバーストを一対のシステムバスに順次に転送する。そして、システムバスのこのような１対に接続されたシステムメモリ部分の両方に、アドレス可能な位置の同じ場所に、一対のシステムバスに順次に転送される同じデータのバーストが書込まれることを可能にする。
【０００６】
本発明の別の特徴によると、二重書込みモード中、デイレクタはその中にホストコンピュータとデイスクドライブの一列との間に転送されるべきデータのバーストを記憶する。デイレクタ中に記憶されたデータの各バーストはそして１メモリサイクル中にそのデイレクタに接続された一対のシステムバスの一つへ転送される。そして、次のサイクル中に、データの同じバーストが再度転送される。しかし、今度はそのデイレクタに接続されたシステムバス対の他方へ転送される。従って、同じ記憶されたデータのバーストがそのデイレクタに接続された一対のシステムバスの対の両方に順次に転送される。デイレクタは順次にこの一対のシステムバスの両方に接続されているメモリ部分の両方を使用可能にして、同じアドレス可能な位置にそのデイレクタに接続されたシステムバス対の各々に順次に転送された同じデータバーストを書き込ませる。従って、一対のシステムメモリサイクル後、データのバースト及びこのデータのバーストのコピーが両方のメモリ部分の同じアドレス可能な位置に記憶される。この結果、システムメモリ内に冗長なデータバーストが記憶される。
【０００７】
本発明の別の特徴によれば、二重書込みバスが複数のデイレクタに接続されている。デイレクタのそれぞれは、（ａ）ホストコンピュータ又はデイスクドライブの一列のいずれからデータのバーストが供給されるデイレクタメモリと、（ｂ）二重書込みコントローラとを有する。二重書込みコントローラは、（ｉ）システムに供給された二重書込みモード命令に応答して二重書込みバス上に二重書き込み割込みを提供し、（ｉｉ）二重書込みバス上に生成された二重書込み割込みを受取り、そして（ｉｉｉ）二重書込みバス上に受け取られた二重書込み割込みに応答して、デイレクタメモリ内に記憶されたデータのバーストを順次に一対のシステムバスに置いて、システムメモリ部分の両方の同じアドレス可能位置に順次に記憶する、ように構成されている。
【０００８】
本発明のさらに別の特徴によれば、システムはシステムに提供されるリセット条件に応答して複数のデイレクタのそれぞれが非二重書込みモードへリセットされる時に、非二重書込みモードへ復帰するように構成されている。非二重書込みモードに復帰した時、デイレクタのそれぞれはデイレクタメモリ内に記憶されているデータのバーストを一対のシステムバスの選択された一つに置いて、この選択されたシステムバス対の一つに接続されているシステムメモリ部分の一つにこの記憶されたデータを記憶する。
【０００９】
本発明のさらに別の特徴によれば、デイレクタのそれぞれはデイレクタと一対のシステムメモリ部分の一つとの間のデータ転送の故障を検出するように構成されている。デイレクタと一対のシステムメモリ部分との間に検出された故障に応答して、デイレクタのそれぞれはデイレクタと一対のシステムメモリ部分の他方との間にその後のデータ転送を発生せしめるように構成されている。
本発明のこれらの特徴及び他の特徴は、添付図面を参照して以下に詳細に説明されるところから容易に明らかになるであろう。
【発明を実施するための最良の形態】
【００１０】
図１を参照すると、データ記憶システム１０が示されている。システム１０内では、ホストコンピュータ１２がシステムインターフエイス１６を介してデイスクドライブの列１４が接続されている。システムインターフエイス１６はシステム１６は高アドレス部分１８Ｈ及び低アドレス部分１８Ｌを有するシステム、又はキヤシュ、メモリ１８を有する。複数のデイレクタ２０0−２０15が設けられていて、ホストコンピュータ１２とデイスクドライブ列１４間のデータ転送をこのデータがシステムメモリ１８を通過する時に制御する。システム１０は、上高アドレスメモリバスＴＨ、上低アドレスメモリバスＴＬ、底上アドレスメモリバスＢＨ、底下アドレスメモリバスＢＬの４つのシステムバスを含むシステムバス１７を含む。このバスは本出願と同日に出願され共に継続している本出願人に同じく譲渡された発明者、ダニエル・キャスル等の特許出願「データ記憶装置」に詳細に説明されている。より詳細には、高アドレスシステムバスＴＨ、ＢＨは高アドレスメモリ部分１８Ｈに電気的に接続されている。低アドレスシステムバスＴＬ、ＢＬは低アドレスメモリ部分１８Ｌに電気的に接続されている。デイレクタ２０0−２０15のそれぞれは一対のシステムバスに接続されている。一つは高アドレスバス、他は低アドレスバスである。従って、デイレクタ２０0−２０15のそれぞれは一対のシステムメモリ部分１８Ｈ及び１８Ｌに接続している。
【００１１】
ここで、非二重書込みモード中、より高い位置を持ったシステムメモリ１８の記憶位置は高アドレスメモリ部分１８Ｈ内にあり、より低いアドレス部分を持った記憶位置は低アドレスメモリ部分１８Ｌ内にある。デイレクタ２０0−２０15のそれぞれは高アドレスシステムバスＴＨ、ＢＨ対の一つ、及び低アドレスシステムバスＴＬ、ＢＬ対の一つに電気的に接続されていることに注意すべきである。従って、デイレクタのそれぞれは全システムメモリ１８内の全ての位置にアドレス可能であり（すなわち、高アドレスメモリ部分１８Ｈ及び低アドレスメモリ部分１８Ｌ）、このため全システムメモリ１８内のどんな記憶位置からデータを読出し及書込みすることができる。システムバスＢＨ、ＢＬ、ＴＨ、ＴＬはメモリ１８へデータ、アドレス、及びメモリ制御（すなわち、書込み可能、読出し可能）を供給する。システム１０はまた図示するように全てのデイレクタに接続された二重書込み制御信号バスＤＷを含む。
【００１２】
より詳細には、デイレクタのバックエンド部分、ここでデイレクタ２０0−２０3及び２０12−２０15、はそれぞれＩ／Ｏアダプターカード２２0−２２3及び２２12−２２15を介してデイスクドライブの列１４へ電気的に接続している。そして、デイレクタのフロントエンド部分、ここでデイレクタ２０4−２０11及び２０12−２０15、はそれぞれＩ／Ｏアダプターカード２２4−２２11を介してホストコンピュータ１２へ電気的に接続している。バスＴＨ、ＴＬ、ＢＨ、ＢＬの各端は図示しないが前記の共に継続している特許出願に関して詳細に記載されている一対のマスター及びスレーブアービターに終端している。
【００１３】
以下に詳細に説明されるように、システム１０はいくつかのモードで動作するように構成されている。１つのモードが非二重書込みモード、別のモードは二重書込みモード、そしてまた他のモードは強制された高／低モードである。最初に、ホストコンピュータ１２及びデイスクドライブ１４の列の間に転送されるデータは、このようなデータのバーストの一続きとして転送されることに注意すべきである。さらに、デイレクタ２０0−２０15はホストコンピュータ１２とデイスクドライブ１４の列の間を転送されるデータのバーストを記憶することに注意すべきである。非二重書込みモード中、記憶されたデータのバーストはこのデータを記憶しているデイレクタによりシステムメモリ１８内に一時的に記憶するために接続されている２つのシステムバスの１つに転送される。しかし、二重書込みモードにおいては、デイレクタ中に記憶されているデータのバーストはこのデイレクタに接続されている両方のバスに順次に転送される。デイレクタはこのバスの両方に接続されているメモリ部分１８Ｈ及び１８Ｌの両方のアドレス可能な位置の同じ所に、バスへ順次に転送されるデータのバーストを書き込むことを可能にする。このように、データの同じバーストの２つのコピーが一対のメモリ部分１８Ｈ、１８Ｌに冗長性のため記憶される。
【００１４】
さらに、デイレクタ２０0−２０15のそれぞれはデイレクタとメモリ部分１８Ｈ及び１８Ｌの間のデータ転送の故障を検出するように構成されている。デイレクタとメモリ部分１８Ｈ、１８Ｌ対の一つの間の故障の検出に応答して、デイレクタのそれぞれはデイレクタとメモリ部分対の他の一つとの間にその後のデータ転送を強制するように構成されている。従って、バスＢＬ及びＴＨに接続されているデイレクタ２０4を考えると、もしこのデイレクタがそこに記憶されているデータのバーストをシステムバスＴＨを経由してメモリ部分１８Ｈへ転送するものであり、そしてこの転送の故障がデイレクタ２０4又はメモリ部分１８Ｈ内のエラー検出及び修正（ＥＤＡＣ）又は「タイムアウト」回路（図示しない）により検出されると、システム１０のデイレクタ２０4はこのデイレクタ２０4により後に説明される強制高／低モードに置かれる。より詳細には、例えば、デイレクタ２０4はそれに接続されている他のメモリ、ここではメモリ部分１８Ｌへ故障が修正されるまでシステムバスＢＬを経由して全てのデータのバーストの転送を強制する。
【００１５】
システム１０の一般的な動作を考えると、ホストコンピュータ１２がデータを記憶しようと欲する時、ホストコンピュータ１２はフロントエンドデイレクタ２０4−２０11の１つに書込み命令を実行するために書き込み要求を出す。フロントエンドデイレクタ２０4−２０11の１つは、要求に応答して、ホストコンピュータ１２にデータを要求する。要求がフロントエンドデイレクタ２０4−２０11の要求している１つに送られた後、デイレクタはデータの大きさを決定し、要求を記憶するためにシステムメモリ１８内にスペースを予約する。そしてフロントエンドデイレクタはデータを記憶するために割当てられているシステムメモリ１８内の位置に依存してこのフロントエンドデイレクタに接続している高アドレスメモリシステムバス（ＴＨ又はＢＨ）又は低アドレスメモリシステムバス（ＴＬ又はＢＬ）のいずれかの上のバスを調停するための制御信号を発生し、そしてシステムメモリ１８への転送を可能にする。ホストコンピュータ１２はその後、フロントエンドデイレクタへデータバーストとしてデータを転送する。そしてフロントエンドデイレクタはホストコンピュータ１２へ転送が完了したことを知らせる。フロントエンドデイレクタはシステムメモリ１８内に記憶された図示しないテーブルを見て、バックエンドデイレクタ２０0−２０3及び２０12−２０15の内のどの一つがこの要求を処理するかを決定する。テーブルはホストコンピュータ１２のアドレスをデイスクドライブの列１４内のアドレスにマップする。フロントエンドデイレクタはそして要求を処理する予定のバックエンドデイレクタのために「メールボックス」（図示しない、システムメモリ１８内に記憶されている）中にデータ量とデータのデイスクアドレスの通知を置く。他のバックエンドデイレクタはアイドル状態の時にかれらの「メールボックス」を検査するためにシステムメモリ１８をポーリングする。もしポーリングされた「メールボックス」が転送が行なわれるべきことを示すと、バックエンドデイレクタが要求を処理し、列内のデイスクドライブにアクセスし、システムメモリ１８からデータを読出し、そしてそれを列１４内のデイスクドライブのアドレス内に書込む。デイスクドライブの列１４からホストコンピュータ１２からデータが読み出される時、システム１０は逆の態様で動作する。
【００１６】
簡単に上記したように、デイレクタ２０0−２０15はシステム１０を二重書込みモードに置くように構成されている。このような二重書込みモードにおいて、デイレクタ２０0−２０15はホストコンピュータ１２とデイスクドライブの列１４の間に転送されるデータのバーストをその中に記憶する。デイレクタの中に記憶されたデータの各バーストは１メモリサイクル中にこのデイレクタに接続された一対のシステムバスの１つに転送され、次のメモリサイクル中に、データの同じバーストが再び今度はこのデイレクタに接続された一対のシステムバスの内の他方に送られる。このように同じ記憶されたデータのバーストが、このデイレクタに接続された一対のシステムバスへ順次に転送される。デイレクタはこの一対のシステムバスに接続されたメモリ部分１８Ｈ及び１８Ｌの両方を順次に使用可能にして、このデイレクタに接続された一対のシステムバスのそれぞれに順次に転送された同じデータバーストを同じアドレス位置に記憶する。例えば、デイレクタ２０4を考えると、二重書込みモード中、ホストコンピュータ１２からのデータバーストはこのデイレクタ２０4を通り、このデイレクタ２０4内に記憶される。この記憶されたデータバーストはシステムメモリサイクル中、このデータバーストが書込まれる例えばメモリ部分１８Ｌのアドレスと共にシステムバスＢＬへ転送される。次のシステムメモリサイクル中に、同じバーストデータがメモリ部分１８Ｌに記憶するために使用された同じアドレス可能な位置と共にシステムバスＴＨへ転送される。このようにして、第２メモリサイクル中、同じデータバーストがメモリ部分１８Ｌに記憶されたデータバーストと同じアドレス可能な位置のメモリ部分１８Ｈ中に記憶される。従って、一対のシステムメモリサイクル後、データバースト及びこのデータバーストのコピーがメモリ部分１８Ｈ及び１８Ｌの両方の同じアドレス可能な位置に記憶される。この結果、システムメモリ１８中に冗長的なデータバーストが記憶される。
【００１７】
図２にメモリ部分１８Ｈ、１８Ｌの一つ、ここでは部分１８Ｈの一例が示されていて、図示するようにバスインターフエイス及びＡＳＩＣ制御ロジックを介して上及び底バスに接続した４つのＤＲＡＭ部分の複数を有する。
図３に例として一つの、ここではバックエンドデイレクタ２０0が示されている。それぞれのデイレクタ２０0−２０3及び２０12−２０15のバックエンド部分は同一の構成を有する。一対の中央処理部分と、ＣＰＵＸ及びＣＰＵＹ、データバーストを記憶するための二重ポートランダムアクセスメモリ（ＲＡＭ）部分とを有し、ＹＣＰＵに接続された二重ポートＲＡＭＹと、ＸＣＰＵに接続された二重ポートＲＡＭＸと、共有資源（特に図６、７及び８等にフローチャートのいくつかが示されるプログラムを記憶するためのフラッシュメモリ）と、一対のパックプレーンインターフエイス２２Ｈ、２２Ｌと、一対のデータラッチ２４Ｈ、２４Ｌと、一対のアドレスラッチ２６Ｈ、２６Ｌと、一対のＩ／Ｏバックプレーンインターフエイス２８1、２８2と、二重書込み強制高／低制御部分３０（図５と関連して詳細に説明される）とを図示の構成で有する。Ｘ及びＹＣＰＵ部分はデイスクドライブの列１４（図１）に図示のＩ／Ｏバックプレーン部分インターフエイス２８1、２８2を経て、Ｉ／Ｏアダプターカード２２0（図１）を介して接続する。デイレクタは主出力ポートＰ及び２次出力ポートＳを有することに注意する。上記の共に継続している特許出願に関して詳述されるように、主ポートＰはＩ／Ｏバックプレーンインターフエイス２８1とＩ／Ｏバックプレーンインターフエイス２８2の両方に接続されている。同様に、２次ポートＳはＩ／Ｏバックプレーンインターフエイス２８2と、Ｉ／Ｏバックプレーンインターフエイス２８1の両方に接続されている。
【００１８】
デイレクタ２０0の二重ポートＲＡＭ部分は（１）データラッチ２４Ｈ及びバックプレーン部分インターフエイス２２Ｈを介して高アドレスメモリバス、ここではＢＨに、そして（２）データラッチ２４Ｌ及びバックプレーン部分インターフエイス２２Ｌを介して低アドレスメモリバス、ここではＴＬに図示の様に接続している。データ（すなわち、データバースト）は、データラッチ２４Ｈ、２４Ｌにそれぞれ線３２Ｈ、３２Ｌ上で二重書込み強制高／低制御部分３０からそこへ供給されるラッチ信号に応答して記憶される。上記したように、二重書込み／強制メモリ高／低制御部分３０は、図５と関連して詳細に説明される。ここでは、この部分３０は、（ｉ）システム１０へ供給される二重書込みモード命令に応答して二重書込みバスＤＷ上にグローバル二重書込み割込み（ＧＬＢ＿ＤＷ）を供給し、（ｉｉ）デイレクタの別の１つにより二重書込みバスＤＷ上に発生されたグローバル二重書込み割込み（ＧＬＢ＿ＤＷ）を受け取り、そして（ｉｉｉ）二重書込みバスＤＷ上で受信したグローバル二重書込み割込み（ＧＬＢ＿ＤＷ）に応答して、（それが発生した又は他のデイレクタのいずれか一つが発生したＧＬＢ＿ＤＷのいずれか）、二重ポートＲＡＭに記憶されているデータバーストをこのデイレクタに接続されたシステムバスＢＨ、ＴＬの両方の同じアドレス可能位置に順次に置く。ここで上記したように、二重ポートＲＡＭ中に記憶されているデータバーストを同じアドレス可能な位置でシステムバスＢＨ及びＴＬの両方に順次に置く。システム１０が二重書込みモード命令を供給されていない時（すなわち、システム１０が非二重書込みモードにある）、部分３０は二重ポートＲＡＭのバーストデータを、２つのシステムバスの一つ、ここではＢＨ又はＴＬのいずれかに異なるアドレス位置で置くように構成されていることに注意する。さらに、もしシステム１０が二重書込みモードに置かれると、この部分３０は複数のデイレクタ２０0−２０15のそれぞれがリセットされる時に、システム１０を非二重書込みモードにするように供給されるリセット条件に応答して非二重書込みモードに復帰するように構成されている。上記したように、さらにデイレクタ２０0−２０15のそれぞれはデイレクタとメモリ部分１８Ｈ及び１８Ｌの間のデータ転送中の故障を検出するように構成されている。デイレクタと１つのメモリ部分１８Ｈ、１８Ｌの間に検出された故障に応答して、デイレクタのそれぞれはデイレクタと他のメモリとの間のその後のデータ転送を強制するように構成されている。このようにして、バスＴＬ及びＢＨに接続されているデイレクタ２０4を考えると、もしこのデイレクタがそこに記憶されているデータのバーストをバスＢＨを介してメモリ部分１８Ｈに転送すべきもので、そしてもしこの転送に故障がメモリ部分１８Ｈ又はデイレクタ２０4内のＥＤＡＣ又は「タイムアウト」回路により検出されると、システム１０はこのデイレクタ２０4により強制高／低モードに置かれる。より詳細には、この例においては、デイレクタ２０4がバーストデータの全ての転送をそこに接続されている他のメモリへ、ここではメモリ部分１８Ｌへ故障が修理されるまでバスＴＬを介して強制する。
【００１９】
さらに詳細には、二重書込みモードにおいて、ラッチ可能信号が制御部３０により順次に線３２Ｈ及び３２Ｌ上に発生される。すなわち、１メモリサイクル中にラッチ可能信号が例えば線３２Ｈ上で発生され、そして次のメモリサイクル中にこの例ではラッチ可能信号が線３２Ｌ上に発生される。このラッチ可能信号に応答して、二重ポートＲＡＭ内のデータバーストがこの例では順次にデータラッチ２４Ｈ及び２４Ｌ内にそれぞれ記憶される。さらに、二重書込みモードにおいて、線３２Ｈ、３２Ｌ上のラッチ信号はバス３４Ｘ又はバス３４Ｙいずれか上の共通アドレスをアドレスラッチ２４Ｈ又は２４Ｌいずれかにラッチする。ラッチ２６Ｈ又は２６Ｌ内にラッチされたアドレスはデータバーストが記憶されるべきシステムメモリ１８内の同じアドレス位置を提供する。二重ポートＲＡＭからのデータバーストがデータラッチ２４Ｈにラッチされ、このラッチされたデータバーストのためのアドレスが線３２Ｈ上のラッチ可能信号により１メモリサイクル中にアドレスラッチ２６Ｈ中にラッチされ、このラッチされたデータバーストがそのアドレスと共にバックプレーンインターフエイス３２Ｈを介してこの例では高アドレスメモリシステムバスＢＨに送られる。同様に、この例では次のメモリサイクル中に、二重ポートＲＡＭからの同じデータバーストがデータラッチ２４Ｌにラッチされ、このラッチされたデータバーストのためのアドレスが線３２Ｌ上のラッチ可能信号により１メモリサイクル中にアドレスラッチ２６Ｌ中にラッチされ、このラッチされたデータバーストがそのアドレスと共にバックプレーンインターフエイス３２Ｌを介してこの例では低アドレスメモリシステムバスＴＬに送られる。このようにして、二重ポートＲＡＭからシステムメモリ１８上へ記憶するために転送されるデータバーストはここでは最初にバスＢＨ上に、１メモリサイクル中に例えばデータラッチ２４Ｈ及びバックプレーンインターフエイス２２Ｈを介して置かれ、そして次のメモリサイクル中にバスＴＬ上にデータラッチ２４Ｌ及びバックプレーンインターフエイス２２Ｌを介して置かれる。
【００２０】
デイレクタ２０4−２０11のフロントエンド部分のそれぞれは、同一の構成を有し、図３に関して説明されたバックエンドデイレクタと実質的に同じである。従って、図４に１つの例示としてデイレクタ２０4を詳細に示し、同じ部分には図３に使用されているのと同じ番号を付す。従って、例示的なフロントエンドデイレクタ２０4は一対の中央処理部分（すなわち、ＣＰＵＸ及びＣＰＵＹ）と、ＹＣＰＵに結合した二重ポートＲＡＭＹ及びＸＣＰＵに結合した二重ポートＲＡＭＸを含む二重ポートランダムアクセスメモリ（ＲＡＭ）部分と、共有資源（フラッシュメモリ等）と、一対のバックプレーンインターフエイス２２Ｈ、２２Ｌと、一対のデータラッチ２４Ｈ、２４Ｌと、一対のアドレスラッチ２６Ｈ、２６Ｌ、一対のＩ／Ｏバックプレーンインターフエイス２８1、２８2と、二重書込み強制高／低制御部分３０（図５と関連して詳細に説明される）とを図示の構成で含む。Ｘ及びＹＣＰＵ部分はホストコンピュータ１２（図１）に図示するようにＩ／Ｏバックプレーンインターフエイス２８1、２８2を介してＩ／Ｏアダプターカード２２4（図１）を経て接続する。
【００２１】
リヤエンドデイレクタと同じく、二重ポートＲＡＭ部分は、（１）ラッチ２４Ｈ及びバックプレーン部分インターフエイス２２Ｈを介して高アドレスメモリバス、ここではＴＨ、及び（２）データラッチ２４Ｌ及びバックプレーン部分インターフエイス２２Ｌを介して底低アドレスメモリバス、ここではＢＬ、に接続している。データ（すなわち、データバースト）はデータラッチ２４Ｈ、２４Ｌへ二重書込み強制高／低制御部分３０から線３２Ｈ、３２Ｌ上にそれぞれ供給されるラッチ信号に応答して記憶される。上記したように、部分３０は、（ｉ）システム１０に供給される二重書込みモード命令に応答して二重書込みバスＤＷ上にグローバル二重書込み割込み（ＧＬＢ＿ＤＷ）を供給し、（ｉｉ）二重書込みバスＤＷ上にデイレクタのいずれかひとつにより発生されたグローバル二重書き込み割込み（ＧＬＢ＿ＤＷ）を受取り、そして（ｉｉｉ）二重書込みバスＤＷ上に受信されたグローバル二重書込み割込み（ＧＬＢ＿ＤＷ）に応答して（それが発生したまたは他のデイレクタのいずれかが発生したＧＬＢ＿ＤＷのいずれか）、順次に二重ポートＲＡＭに記憶されているデータバーストをこのデイレクタに接続されているシステムバスの両方に同じアドレス位置で置く、ように構成されている。ここで、二重ポートＲＡＭ内に記憶されているデータバーストをシステムバスＴＨ及びＢＬの同じアドレス可能な位置に順次に置く。さらに、もしシステム１０が二重書込みモードに置かれていると、この部分３０は複数のデイレクタ２０0−２０15のそれぞれがシステム１０に供給される非二重モードへのリセット条件に応答してリセットされる時に非二重書込みモードに復帰するように構成されている。さらに上記したように、デイレクタ２０0−２０15のそれぞれはデイレタとメモリ１８Ｈ及び１８Ｌの間のデータ転送中の故障を発見するように構成されている。デイレクタとメモリ部分１８Ｈ、１８Ｌの一つの間の検出された故障に応答して、デイレクタのそれぞれはデイレクタとメモリ部分の他の一つとの間にその後のデータ転送を強制するように構成されている。
【００２２】
図５を参照すると、二重書込み／強制高／低制御部分３０が示されており、この制御部分３０を持つデイレクタのＸＣＰＵ及びＹＣＰＵ部分にそれぞれ接続された一対の二重書込み割込みコントローラ４０X、４０Yを有する。コントローラ４０X、４０Yのそれぞれは同じ構成を有し、そして（ｉ）システム１０（図１）に供給される二重書込みモード命令に応答して、それぞれグローバル二重書込み割込みＹＧＬＢ＿ＤＷ、ＸＧＬＢ＿ＤＷを提供し、そして（ｉｉ）制御部分３０を有するデイレクタ又は他のデイレクタのいずれかにより、二重書込みバスＤＷ上に発生された二重書込み割込みＤＷ＿ＩＮＴを受取るように構成されている。ＸＧＬＢ＿ＤＷ及びＹＧＬＢ＿ＤＷ信号、ここではそれぞれ２ビット信号、はＯＲゲート４２に供給される。ＯＲゲート４２の出力はＧＴＬドライバーに供給される２ビット信号ＧＬＢ＿ＤＷ＿ＯＵＴである。ＧＴＬドライバの出力はグローバル二重書込み信号ＧＬＢ＿ＤＷであり、二重書込みバスＤＷを介して他のデイレクタへ供給される。このデイレクタは一対の二重書込み割込みコントローラ４０X、４０Yに対して信号ＤＷ＿ＩＮＴを発生するＧＴＬ受信器を介してＧＬＢ＿ＤＷ信号を発生する。
【００２３】
二重書込み／強制高／低制御部分３０は、図示のようにそれぞれＸ及びＹ割込みコントローラ４０X、４０Yに接続した一対のアドレスゲートアレイ４６X、４６Yを含む。一対のアドレスゲートアレイ４６X、４６Yは、二重ポートＲＡＭに記憶されたデータバーストのためのシステムメモリ１８のアドレスを提供する。これは二重書込みモード中に、上記した各データバーストについての共通アドレスである。アドレスゲートアレイ５６X、及び６４Yの出力はロジック部分５０に供給される。ロジック部分５０は、線２３Ｈ、３２Ｌ上にラッチ信号を発生し、ＤＲＡＭ部分に対してＸ及びＹＤＲＡＭ制御信号（例えば読出し／書込み／アドレス）を発生する。コントローラ４０X、４０Yは二重ポートＤＲＡＭ部分（図３及び４）からそれぞれバス３４X及び３４Y上のデータラッチ２４Ｈ、２４Ｌへ接続されるデータバーストのためのアドレスを供給する。このようにして、一対のアドレスゲートアレイ４６X及び４６Yによりバス３４X及び３４Y上に供給されたアドレスは、上記したように図３及び４に示すようにアドレスラッチ２６Ｈ、２６Ｌに供給される。バス３４X及び３４Yのアドレスは、線３２Ｈ及び３２Ｌ上のラッチ信号に従って選択的にアドレスラッチ２６Ｈ及び２６Ｌに選択的にラッチされることに注意する。
【００２４】
より詳細には、上記したように二重書込みモード中、二重ポートＲＡＭ部分のバーストデータはデータラッチ２４Ｈ及び２４Ｌ内に順次に置かれる。二重書込みモード中、例えは、データバーストがデータラッチ２４Ｈ内にラッチされる時、このデータのアドレスはアドレスラッチ２６Ｈ内にラッチされることに注意すべきである。さらに、次のシステムメモリサイクル中、ラッチ２６Ｌ内にデータがラッチされる時、前のメモリサイクル中にアドレスラッチ２６Ｈ中にラッチされた同じアドレスがアドレスラッチ２６Ｌ内にラッチされる。非二重書込みモード中、アドレスラッチ２６Ｈ及び２６Ｌ中にラッチされたアドレスは引き続くメモリサイクル中、互いに独立している。
【００２５】
図６を参照すると、デイレクタ２０0−２０15に記憶されたプログラムのフローチャートが示されている。このプログラムはシステム１０（図１）を二重書込みモードへ置くように構成されている。従って、電力投入時において（ステップ６００）、システム１０は高アドレスメモリ部分１８Ｈと低アドレスメモリ部分１８Ｌの間にシステムメモリ１８容量のバランスがあるかどうかを決定するために検査される（すなわち、部分はメモリ容量バランスを有する）。もし、非バランスが検出されると（ステップ６０２）、システム１０はユーザにより電源が落とされる（ステップ６０４）。そして、追加のメモリ容量がメモリ容量不足の部分１８Ｌ又は１８Ｈの一つに追加される。
【００２６】
システムメモリ１８のバランスが検出された後、所望ならばユーザは二重書込みモード動作を選択する。このモードはユーザがシステムメモリ１８内に冗長データを有すること、すなわち、各メモリ部分１８Ｌ及び１８Ｈ中に同じデータバースト、を望む時に選択される。従って、メモリ部分１８Ｈ又は１８Ｌの一つに故障が生じて、データが正しくホストコンピュータ１２又はデイスクドライブの列１４（図１）とこのメモリ部分の一つとの間に転送されない場合、メモリ部分１８Ｈ、１８Ｌの他の一つ内に転送されたデータの同じバーストが利用可能である。二重書込みモードでシステムを正しく動作するために、デイレクタ２０0−２０15のそれぞれは、システム１０が二重書込みモードに置かれていることを知る必要がある。ここで、デイレクタ２０0−２０15のいずれか一つがユーザがシステムを二重書込みモードに置いていることを知ると、信号がこのデイレクタ内の両Ｘ及びＹＣＰＵへ送られる（ステップ６０６）。この信号に応答して、第１のその後のシステムクロックパルスにおいて、Ｘ及びＹ割込み制御部分４０X、４０Yは状態機械レジスタ（図示しない）をその２ビットの内の１つを初期、リセット、論理０状態から論理１へ変化させる。もしこの割り込みが存在すると次のシステムクロックパルスにおいて、Ｘ及びＹ割込み制御部分４０Ｘ及び４０Ｙの両方の状態機械レジスタはその第二ビットを初期論理０状態から論理１状態へ変化させる。従って、二重書込み要求が存在する時の２システムクロックパルス後に、両Ｘ及びＹ割込み制御部分４０X及び４０Yの状態機械レジスタはそれぞれ両バスＸＧＬＢ＿ＤＷ*及びＹＧＬＢ＿ＤＷ*上に２進値００論理状態を発生する。（図５において、星印（*）で示される論理はここでは「アクテイブ」低論理である）。この論理００条件がバスＸＧＬＢ＿ＤＷ*及びＹＧＬＢ＿ＤＷ*上に発生される時のみ、ＯＲゲート４２はバスＧＬＢ＿ＤＷ*上に論理００状態を発生する（ステップ６０８、６１０、６１２）。再び「アクテイブ低」論理にある（ステップ６０６）。バスＧＬＢ＿ＤＷ*上の論理００状態が、ＧＴＬドライバを経由して、グローバル二重書込み信号、ＧＬＢ＿ＤＢ*、として二重書込みバスＤＷ（図５）へ、そして図５に示すようにＧＴＬ受信器を経由してＸ及びＹ割込み制御部分４０X及び４０Yに戻る。ＧＬＢ＿ＤＢ*信号は、このデイレクタ及び全ての他のデイレクタに二重書込みモードが要求されたことを指示する。すなわち、ＧＬＢ＿ＤＢ*信号は二重書込みバスＤＷ上に主張される（ステップ６１４、図６）。上記したように、二重書込み時にＧＬＢ＿ＤＢ*、１１論理信号が割込みを発している１つのデイレクタ２０0−２０15及び全ての他のデイレクタ２０0−２０15へ供給される。デイレクタ２０0−２０15のそれぞれはそのＸ及びＹ割込み制御部４０X及び４０Y内の状態機械レジスタが論理００状態にあるかどうかを決定する。割込みを発生している一つのデイレクタ２０0−２０15がその状態機械レジスタに００論理状態を有する時、割込みを発生している他の一つのデイレクタ２０0−２０15はその状態機械レジスタが論理００状態に置かれる前に、２システムクロックパルスを待たなければならない（ステップ６１３）。一旦、全てのデイレクタ２０0���２０15が二重書込みモードになると、ソフトウエア状態（ステップ６１５）により指示されるように、割込み制御部分４０X及び４０Yはグローバル二重書込みモード信号指示をアドレスゲートアレイコントローラ４６X、４６Yへ送る（図５）（ステップ６１６）。
【００２７】
図７を参照すると、デイレクタ２０0−２０15に記憶されているプログラムのフローチャートが示されている。このプログラムはシステム１０（図１）を二重書込みモードから非二重書込みモードへリセットするように構成されている。二重書込みをリセットするユーザ命令（すなわち、使用不可）に応答して、ソフトウエアは「ターンオフ」グローバル二重書込みルーチン（ステップ７００）に入る。割込みが、一対のＹ及びＸ割込み制御コントローラ４０X及び４０Yに供給され（図５、ステップ７０２）、そしてもし２システムクロックパルス後に割込みが正しければ（ステップ７０４）、二重書込みバスＤＷ上のＧＬＢ＿ＤＷ*信号が主張されなくなる（ステップ７０６）。二重書込み制御部分３０は二重書込みバスＤＷ上でワイヤ・オアされているから、全てのコントローラ２０0−２０15が二重書込みバスＤＷにＧＬＢ＿ＤＷ*信号を供給して、低い、すなわち、非主張論理状態に全てデイレクタ２０0−２０15がリセット状態に置かれる前にすることが必要である。すなわち、二重書込みモードは使用不可にされて、システム１０は非二重書込みモードに置かれる、ステップ７０８。二重書込みバスＤＷからの非主張信号に応答して（すなわち、全てのデイレクタ２０0−２０15が二重書込みバスＤＷ上に二重書込みモード非主張信号を発生する）、Ｘ及びＹ割込みコントローラ４０X、４０Yはアドレスゲートアレイコントローラ４６X、４６Yにシステム１０が今は非二重書込みモードにあることを指示する（ステップ７１０）。
【００２８】
図８を参照すると、デイレクタ２０0−２０15に記憶されているプログラムのフローチャートが示されている。このプログラムはシステム１０（図１）を強制された高／低モードへ置くように構成されている。システム１０が二重書込みモードで通常に動作していると仮定する（ステップ８００）。コントローラはそれに報告される故障数又は「タイムアウト」エラーを測定する（ステップ８０２）。もしデイレクタ２０0−２０15のいずれもが所定数以下のエラー又は「タイムアウト」をそのデイレクタに報告しないとき、システムは二重書込みモードを続ける（ステップ８０４、８０６）。一方、デイレクタ２０0−２０15の一つが所定数以上のエラー又は「タイムアウト」をそのデイレクタに報告するとき、そのデイレクタはシステム１０について強制された高／低モードを開始する（ステップ８０６）。図６（ステップ６０８）及び図７（ステップ７０２）と関連して説明したように、両Ｘ及びＹ割込み制御部分４０X及び４０Yの状態機械レジスタが２進値１１論理条件を、故障が高アドレスメモリバス又は低アドレスメモリバスのどちらかの転送に発生したかに依存して、（ａ）バスＸＧＬＢ＿ＦＯＲ＿ＨＩ*及びＹＧＬＢ＿ＦＯＲ＿ＨＩ*のどちらも、又は（ｂ）バスＸＧＬＢ＿ＦＯＲ＿ＬＯ及びＹＧＬＢ＿ＦＯＲ＿ＬＯ*のどちらも、のいずれかのバス上にそれぞ発生した後（ステップ８１０）。（ここで論理は図５において星印（*）により示される「アクテイブ」低論理である）。バスＸＧＬＢ＿ＦＯＲ＿ＨＩ*及びＹＧＬＢ＿ＦＯＲ＿ＨＩ*の信号はＮＡＮＤゲート６０ＨＩに供給され、バスＸＧＬＢ＿ＦＯＲ＿ＬＯ*及びＹＧＬＢ＿ＦＯＲ＿ＬＯ*の信号はＮＡＮＤゲート６０ＬＯに供給される。もしバスＸＧＬＢ＿ＦＯＲ＿ＨＩ*及びＹＧＬＢ＿ＦＯＲ＿ＨＩ*上のどちらの信号も強制ＨＩバス条件を指示すると（すなわち、低いアドレスメモリ部分１８Ｌに過剰な故障又はタイムアウトが存在する）、ＧＬＢ＿ＦＯＲ＿ＨＩ*信号（「アクティブ」低論理の）がこの信号を発するデイレクタ及び他のデイレクタ２０0−２０15に対して発生される。同様に、もしどちらのバスＸＧＬＢ＿ＦＯＲ＿ＬＯ*及びＹＧＬＢ＿ＦＯＲ＿ＬＯ*上の信号も強制ＬＯバス条件を指示すると（すなわち、低いアドレスメモリ部分１８Ｈに過剰な故障又はタイムアウトが存在する）、ＧＬＢ＿ＦＯＲ＿ＨＩ*信号（「アクティブ」低論理の）がこの信号を発するデイレクタ及び他のデイレクタ２０0−２０15に対して発生される（ステップ８１２）。ＮＡＮＤゲート６０ＨＩ及び６０ＬＯは二重書込みバスＤＷに対してワイヤオアされていることに注意する。またＮＡＮＤゲート６０ＨＩ及び６０ＬＯはそれらの出力を、図示するオープンコレクタドライバ６１ＨＩ及び６１ＬＯに供給されるユーザ活性化信号、ＤＩＳ＿ＩＦ*を介して使用不可にすることができることに注意する。このように、デイレクタ２０0−２０15のいずれかが強制高／低割込みを主張する時、割込みが発生される（すなわち、ＧＬＢ＿ＦＯＲ＿ＬＯ*信号又はＧＬＢ＿ＦＯＲ＿ＨＩ*信号のいずれか、図５）（ステップ８１４）。デイレクタ２０0−２０15が今、強制高／低モードにあり（すなわち、二重書込みモードが使用不可にされ）、そしてＸ及びＹ割込みコントローラ４０X及び���０Yは強制高及び／又は強制低条件が選択されているアドレスゲートアレイコントローラ４６X及び４６Yを指示する。そしてアドレスゲートアレイコントローラ４６X及び４６YはＹ＿ＴＢＭ＿ＭＥＭ*及びＸ＿ＴＢ＿ＭＥＭ*バス上にそれぞれ信号を供給して、これにより論理５０が線３２Ｈ及び３２Ｌ上にラッチ信号を発生することを可能にし、前者は強制高条件中に発生され（すなわち、低アドレスメモリ部分１８Ｌについて過剰なエラーまたはタイムアウト）、そして後者は強制低条件中に発生される（すなわち、高アドレスメモリ部分１８Ｈについて過剰なエラーまたはタイムアウト）（ステップ８１６）。
他の実施例も特許請求の範囲に記載の範囲およびその精神の中である。
【図面の簡単な説明】
【００２９】
【図１Ａ】本発明による二重書込みモード又は非二重書込みモードで動作するように構成されたデータ記憶システムのブロック図。
【図１Ｂ】本発明による二重書込みモード又は非二重書込みモードで動作するように構成されたデータ記憶システムのブロック図。
【図２】図１のシステムに使用されるように構成された例示的なメモリのブロック図。
【図３】本発明によるリアエンドデイレクタで、図１のシステムに使用されるように構成されたデイレクタのブロック図。
【図４】本発明によるフロントエンドデイレクタで、図１のシステムに使用されるように構成されたデイレクタのブロック図。
【図５】本発明による二重書込み強制高／低コントローラで、図３及び図４のフロントエンド及びリアエンドデイレクタに使用されるように構成されたデイレクタのブロック図。
【図６】図３及び図４のデイレクタに記憶されたプログラムで、図１のシステムを二重書込みモードに置くように構成されたフローチャート図。
【図７】図３及び図４のデイレクタに記憶されたプログラムで、図１のシステムを二重書込みモードから非二重書込みモードへリセットするように構成されたフローチャート図。
【図８】図３及び図４のデイレクタに記憶されたプログラムで、図１のシステムを強制高／低モードに置くように構成されたフローチャート図。
【符号の説明】
【００３０】
１０  データ記憶システム
１２  ホストコンピュータ
１４  デイスクドライブの列
１６  システムインターフエイス
１７  システムバス
１８  システムメモリ
２０  デイレクタ
２２  Ｉ／Ｏアダプタカード
【図１Ａ】
2006024230.tif 000003
【図１Ｂ】
2006024230.tif 000004
【図２】
2006024230.tif 000005
【図３】
2006024230.tif 000006
【図４】
2006024230.tif 000007
【図５】
2006024230.tif 000008
【図６】
2006024230.tif 000009
【図７】
2006024230.tif 000010
【図８】
2006024230.tif 000011