(57)【要約】  本発明を適用した１システムでは、同時に動作可能な複数のメモリ素子を有する動作ブロックを複数備えた１個以上のメモリモジュールを備えている。この１システムは、選択した２つ以上の動作ブロックに対し、データを書き込む書込アクセスを並行して行う。２つ以上の動作ブロックのうちの１つに障害が検出された場合、障害が検出された動作ブロックを除外し、２つ以上の動作ブロックへの書込アクセスを含むアクセスを行う。
2012046343.tif 000002
【特許請求の範囲】
【請求項１】
同時に動作可能な複数のメモリ素子を有する動作ブロックを複数備えた１個以上のメモリモジュールから選択された２つ以上の動作ブロックに対し、データを書き込む書込アクセスを並行して行い、
前記２つ以上の動作ブロックのうちの１つに障害が検出された場合、該障害が検出された動作ブロックを除外し、該２つ以上の動作ブロックへの前記書込アクセスを含むアクセスを行う、
ことを特徴とするメモリモジュール冗長化方法。
【請求項２】
前記２つ以上の動作ブロックは、データが読み出される信号線群の異なる２個以上のメモリモジュールから選択する、
ことを特徴とする請求項１記載のメモリモジュール冗長化方法。
【請求項３】
前記２つ以上の動作ブロックを２個以上のメモリモジュールからそれぞれ選択した場合、前記障害が検出されていない状況では、該２つ以上の動作ブロックへのデータの入力は、異なる信号線群を介して同時に行わせる、
ことを特徴とする請求項２記載のメモリモジュール冗長化方法。
【請求項４】
前記アクセス対象単位とする２つ以上の動作ブロックへのデータの入力は、同一の信号線群を介して同時に行わせる、
ことを特徴とする請求項１記載のメモリモジュール冗長化方法。
【請求項５】
同時に動作可能な複数のメモリ素子を有する動作ブロックを複数備えたメモリモジュールに発生する障害を該動作ブロック毎に検出する障害検出手段と、
１個以上のメモリモジュールから選択された２つ以上の動作ブロックをアクセス対象単位として、該アクセス対象単位の２つ以上の動作ブロックに対し、データを書き込む書込アクセスを並行して行うアクセス実行手段と、
前記アクセス対象単位の２つ以上の動作ブロックのうちの１つに前記障害検出手段が障害を検出した場合、該２つ以上の動作ブロックのなかで該障害が検出された動作ブロックを除く少なくとも１つの動作ブロックに前記アクセス実行手段による前記書込アクセスを含むアクセスを制限するアクセス制限手段と、
を具備することを特徴とする記憶処理装置。
【請求項６】
同時に動作可能な複数のメモリ素子を有する動作ブロックを複数備えた少なくとも１個のメモリモジュールと、
２つ以上の動作ブロックを前記メモリモジュールへのアクセスを行うアクセス対象単位として、該アクセス対象単位の２つ以上の動作ブロックに対し、データを書き込む書込アクセスを並行して行うアクセス実行手段と、
前記メモリモジュールに発生する障害を前記動作ブロック毎に検出する障害検出手段と、
前記アクセス対象単位の２つ以上の動作ブロックのうちの１つに前記障害検出手段が障害を検出した場合、該２つ以上の動作ブロックのなかで該障害が検出された動作ブロックを除く少なくとも１つの動作ブロックに前記アクセス実行手段による前記書込アクセスを含むアクセスを制限するアクセス制限手段と、
を具備することを特徴とするデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同時に動作可能な複数のメモリ素子を有する動作ブロックを複数備えた１個以上のメモリモジュールを用いた冗長化技術に関する。
【背景技術】
【０００２】
コンピュータ等のデータ処理装置では、ＣＰＵへのデータの供給用に半導体メモリが採用されている。その半導体メモリは、通常、メモリモジュールの形でデータ処理装置に搭載される。メモリモジュールとは、接続端子を設けたプリント配線板に複数の半導体メモリを装着したものである。プリント配線板の接続端子により、メモリモジュールは、例えばマザーボード等のプリント基板に設けられたソケット（スロット）に差し込んで使用される。以降、メモリモジュールの一部として使用される半導体メモリは「メモリ素子」と呼ぶこととする。メモリモジュールには、実際にデータを記憶するメモリ素子が一つ以上搭載されている。【０００３】
高い信頼性が要求されるサーバ等のデータ処理装置では、メモリモジュールからデータを読み出す場合に、読み出したデータに誤りが有るか否かの確認を行う。読み出しデータの確認によってデータの誤りが判明した場合、データ訂正が行われる。【０００４】
データの誤りは、メモリモジュールの故障によって発生する場合がある。故障したメモリモジュールは、使用しないことが望ましい。しかし、故障したメモリモジュールを使用しないようにした場合、使用可能なメモリモジュールが無くなる、或いは使用可能なメモリモジュールが少なくなって、データ処理が高速に行えなくなる、といった不具合が発生する。このことから、メモリモジュールの故障に対応するためのメモリの冗長化が行われている。【０００５】
メモリの冗長化方法としては、同じバスに接続するメモリモジュールを複数、データ処理装置に搭載し、そのうちの少なくとも一つを冗長用とするものがある。この冗長化方法では、或るメモリモジュールが故障した場合に、冗長用のメモリモジュールを故障したメモリモジュールに置き換える。【０００６】
上記の冗長化方法では、故障したメモリモジュールを停止させ、故障したメモリモジュールの代わりとする冗長用のメモリモジュールを動作状態にさせる。動作状態にさせた冗長用のメモリモジュールでは、故障したメモリモジュールに応じた設定が行われる。その設定により、冗長用のメモリモジュールは故障したメモリモジュールの代わりとして動作する。【０００７】
このようなことから、上記の冗長化方法では、同じバスに接続された冗長用のメモリモジュールは故障したメモリモジュールとして動作可能とさせる設定を行える機能（特別な仕組み）が搭載されたメモリモジュールとなっている。そのような機能を追加する必要から、冗長用のメモリモジュールは特殊なもの、且つより高価なものとなる。特殊なメモリモジュールの採用は、データ処理装置のコストを上昇させることから、コスト面で望ましくない。【０００８】
メモリモジュールの故障は、訂正不可能なエラーを発生させる場合がある。訂正不可能なエラーがメモリモジュールの故障によって発生した場合、故障したメモリモジュールに格納されていたデータは喪失することになる。データが喪失すると、データ処理を続けることはできない。上記の冗長化方法では、冗長用のメモリモジュールはメモリモジュールの故障を契機に、故障したメモリモジュールの代わりとして用いる。冗長用のメモリモジュールは、故障前のメモリモジュールの冗長用としては用いられない。そのため、この冗長化方法は、メモリモジュールの故障によるデータの喪失に対応していない。このことから、メモリモジュールの故障によるデータの喪失に対応可能にするメモリの冗長化が行われている。【０００９】
データの喪失に対応可能なもう一つのメモリモジュールの冗長化方法としては、メモリ素子毎に、冗長用のメモリ素子を搭載したメモリモジュールを用意してメモリを２重化し、各メモリ素子に同じデータを格納させるというものがある。それにより、この冗長化方法では、故障によるデータの喪失に対応することが可能となっている。【００１０】
冗長用のメモリ素子は、対応付けられたメモリ素子と共にメモリモジュールを構成する。そのように２重化した構成から、メモリモジュールには、２重化したメモリ素子のなかで有効とするメモリ素子を選択する機能が搭載されている。しかし、そのような機能を追加したメモリモジュールは、特殊なものとなる。そのため、もう一つの冗長化方法も、データ処理装置のコストを上昇させるという面があった。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平８−２２７３９４号公報
【特許文献２】特開２００９−１８１４２５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明を適用した１システムは、データ処理装置におけるコスト増を抑えつつ、故障によるデータの喪失に対応できるメモリモジュールの冗長化を実現させるための技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明を適用した１システムは、同時に動作可能な複数のメモリ素子を有する動作ブロックを複数備えたメモリモジュールに発生する障害を該動作ブロック毎に検出する障害検出手段と、１個以上のメモリモジュールから選択された２つ以上の動作ブロックをアクセス対象単位として、該アクセス対象単位の２つ以上の動作ブロックに対し、データを書き込む書込アクセスを並行して行うアクセス実行手段と、アクセス対象単位の２つ以上の動作ブロックのうちの１つに障害検出手段が障害を検出した場合、該２つ以上の動作ブロックのなかで該障害が検出された動作ブロックを除く少なくとも１つの動作ブロックにアクセス実行手段による書込アクセスを含むアクセスを制限するアクセス制限手段と、を具備する。
【発明の効果】
【００１４】
本発明を適用した１システムは、データ処理装置におけるコスト増を抑えつつ、故障によるデータの喪失に対応できるメモリモジュールの冗長化を実現させることができる。
【図面の簡単な説明】
【００１５】
【図１Ａ】ＳＤＲＡＭモジュールを採用した従来のコンピュータシステムの構成を説明する図（その１）である。
【図１Ｂ】ＳＤＲＡＭモジュールを採用した従来のコンピュータシステムの構成を説明する図（その２）である。
【図１Ｃ】ＳＤＲＡＭモジュールを採用した従来のコンピュータシステムの構成を説明する図（その３）である。
【図２】ＳＤＲＡＭモジュールの構成を説明する図である。
【図３】アドレスデータの構成を説明する図である。
【図４】オペレーションコードの構成を説明する図である。
【図５】各種故障情報が表す内容を説明する図である。
【図６】ＣＳアドレス変換回路の構成、及び動作を説明する図である。
【図７】メモリパトロールのために記憶処理装置が行う制御処理の流れの例を表すフローチャートである。
【図８Ａ】第１の実施形態による記憶処理装置を実装したプリント配線基板の構成を説明する図（その１）である。
【図８Ｂ】第１の実施形態による記憶処理装置を実装したプリント配線基板の構成を説明する図（その２）である。
【図９】第１の実施形態におけるＣＳアドレス変換回路の構成を説明する図である。
【図１０】第１の実施形態における各種故障情報が表す内容を説明する図である。
【図１１】第１の実施形態におけるＣＳアドレス変換回路の動作を説明する図である。
【図１２Ａ】冗長無効時のＳＤＲＡＭモジュールの動作を表すタイムチャートである。ブレンド処理のフローチャートである（書き込みアクセス時）。
【図１２Ｂ】冗長無効時のＳＤＲＡＭモジュールの動作を表すタイムチャートである。ブレンド処理のフローチャートである（読み出しアクセス時）。
【図１３Ａ】冗長有効時のＳＤＲＡＭモジュールの動作を表すタイムチャートである。ブレンド処理のフローチャートである（書き込みアクセス時）。
【図１３Ｂ】冗長有効時のＳＤＲＡＭモジュールの動作を表すタイムチャートである。ブレンド処理のフローチャートである（読み出しアクセス時）。
【図１４】メモリパトロールのために第１の実施形態における記憶処理装置が行う制御処理の流れの例を表すフローチャートである。
【図１５Ａ】第２の実施形態による記憶処理装置を実装したプリント配線基板の構成を説明する図（その１）である。
【図１５Ｂ】第２の実施形態による記憶処理装置を実装したプリント配線基板の構成を説明する図（その２）である。
【図１５Ｃ】第２の実施形態による記憶処理装置を実装したプリント配線基板の構成を説明する図（その３）である。
【図１６】第２の実施形態におけるＣＳアドレス変換回路の構成を説明する図である。
【図１７】書込変換回路の構成を説明する図である。
【図１８】読出変換回路の構成を説明する図である。
【図１９】第２の実施形態における各種固定情報が表す意味を説明する図である。
【図２０】第２の実施形態におけるＣＳアドレス変換回路の動作を説明する図である。
【図２１】メモリパトロールのために第２の実施形態における記憶処理装置が行う制御処理の流れの例を表すフローチャートである。
【図２２Ａ】第３の実施形態による記憶処理装置が適用されたコンピュータシステムの構成を説明する図（その１）である。
【図２２Ｂ】第３の実施形態による記憶処理装置が適用されたコンピュータシステムの構成を説明する図（その２）である。
【図２２Ｃ】第３の実施形態による記憶処理装置が適用されたコンピュータシステムの構成を説明する図（その３）である。
【発明を実施するための形態】
【００１６】
現在コンピュータ等のデータ処理装置に用いられるメモリモジュールはＳＤＲＡＭ（Synchronous DRAM）モジュールが標準となっている。メモリモジュールはＤＩＭＭ（Dual Inline Memory Module）が主流である。最初に、通常のＳＤＲＡＭモジュールを採用した場合のコンピュータ（データ処理装置）システムの構成、及びＳＤＲＡＭモジュールを用いた冗長化の例について、図１Ａ〜図７を参照して具体的に説明する。
【００１７】
図１Ａ〜図１Ｃは、ＳＤＲＡＭモジュールを採用したコンピュータシステムの構成を説明する図である。図２は、ＳＤＲＡＭモジュールの構成を説明する図である。
【００１８】
図２に表すＳＤＲＡＭモジュール２３は、ＪＥＤＥＣ（Joint Electron Device Engineering Council）準拠のものである。ＳＤＲＡＭモジュール２３では、４ビット単位でデータを入力、或いは出力するメモリ素子２３１が、１８個ずつの２つのグループ（ランク）に分けられている。ランクは、ＳＤＲＡＭモジュール２３上のメモリ素子２３１を動作させるうえでの動作ブロック（動作構成単位）、言い換えれば同時に動作させることが可能なメモリ素子２３１の組み合わせのことである。ＳＤＲＡＭモジュール２３はランク毎に動作させることが可能になっている。図２の例では、「Ｄ０」〜「Ｄ１７」の何れかが表記されたメモリ素子２３１はランク０に属し、「Ｄ０’」〜「Ｄ１７’」の何れかが表記されたメモリ素子２３１はランク１に属する。一つのランクに属する１８個のメモリ素子２３１のうち、１６個はデータの格納に用いられ、２個はＥＣＣ（Error-Correction Coding)データの格納に用いられる。各ランクは６４（＝４×１６）ビットのデータを入力、或いは出力できるようになっている。
【００１９】
メモリ素子２３１は、データを格納するメモリ・セル・アレイを備えたものである。多くの場合、１メモリ素子は１メモリチップである。特定のメモリ素子を指す場合には、「２３１」の代わりに「Ｄ０」等を符号として用いる。
【００２０】
同一ランクに属する１８個のメモリ素子２３１には、全て同じチップセレクト信号がＳＤＲＡＭモジュール２３の外部から供給されるようになっている。チップセレクト信号は、ＳＤＲＡＭモジュール２３を構成するメモリ素子２３１をランク単位で選択的に動作させる。レジスタ２３２は、ランク毎にチップセレクト信号を供給する。図２中に表記の「/CS0」「/CS1」は共にチップセレクト信号を表している。/CS0はランク０用であり、/CS1はランク１用である。
【００２１】
図２中に表記の「ＤＱＳ」「／ＤＱＳ」は、データストローブ信号を表している。「ＤＱＳ」「／ＤＱＳ」の後に続く数字は、データストローブ信号が入力されるメモリ素子２３１を表している。例えば「ＤＱＳ０」はメモリ素子Ｄ０及びＤ０’に入力されるデータストローブ信号ＤＱＳであることを表している。また、「ＤＱ」はデータ信号、「ＣＢ」はＥＣＣデータ信号をそれぞれ表し、その後に続く数字はデータあるいはＥＣＣデータ全体のなかで各信号が対応する部分を表している。図２では、例えば「ＤＱ０  ｔｏ  ＤＱ３」は６４ビットのデータ信号のうち、０〜３ビット目のデータを示しており、０から３ビット目のデータ信号がメモリ素子Ｄ０及び／或いはＤ０’に入力する。また、「ＣＢ４  ｔｏ  ＣＢ７」は、８ビットのＥＣＣデータ信号のうち、５〜８ビット目のＥＣＣデータ信号であることを示しており、ＥＣＣデータ信号の５〜８ビット目がメモリ素子Ｄ１７及び／或いはＤ１７’に入力可する。特には図示していないが、各ランクの対応するメモリ素子２３１にはそれぞれ、同一のアドレス信号が入力する。  図１Ａ〜図１Ｃに表すコンピュータシステム１は、図２に示すＳＤＲＡＭモジュール２３をメモリモジュールとして採用している。図１Ａ〜図１Ｃのコンピュータシステム１は、図２のＳＤＲＡＭモジュール２３が２個装着されたプリント配線基板２、コンソール３、及び外部制御部４を備えている。図１Ａ〜図１Ｃのプリント配線基板２は、例えばコンピュータシステム１を構成するコンピュータ本体に搭載されたマザーボードである。
【００２２】
プリント配線基板２に搭載された２個のＳＤＲＡＭモジュール２３は、そのうちの一方が予備、つまり冗長側とされる。各ＳＤＲＡＭモジュール２３は、ランク単位で使用される。ここでは、予備用ＳＤＲＡＭモジュールはＳＤＲＡＭモジュール２３ｂ、通常時使用するＳＤＲＡＭモジュールはＳＤＲＡＭモジュール２３ａと想定する。予備のＳＤＲＡＭモジュール２３ｂは以降「冗長ＳＤＲＡＭモジュール２３ｂ」とも表記する。ＳＤＲＡＭモジュール２３ａが挿入されているスロットはスロット１、ＳＤＲＡＭモジュール２３ｂが挿入されているスロットはスロット１’と表記する。
【００２３】
外部制御部４は、例えばコンピュータ本体とは別に用意された装置であり、コンピュータシステム１を制御する。外部制御部４には、オペレータが操作するコンソール３と接続されている。外部制御部４は、ＳＰＣ（System Power Controller）４１、ＳＶＰ（SerVice Processor）４２及びＳＣＩ（System Console Interface）４３を備えている。
【００２４】
ＳＰＣ４１は、コンピュータシステム１全体の電源管理を行う。ＳＶＰ４２は、例えば１台のコンピュータであり、コンソール３から出力される命令を処理する。ＳＣＩ４３は、ＳＶＰ４２とコンピュータ本体との間で命令、或いはデータ等の授受（中継）を行う。
【００２５】
プリント配線基板２上には、複数のＣＰＵ２１が実装されている。各ＣＰＵ２１は、ＳＣ（System Controller）２２と接続されている。ＳＣ２２は、他に記憶処理装置（ＭＡＣ：Memory Access Controller）２０と接続される。記憶処理装置２０は各ＳＤＲＡＭモジュール２３と接続されている。
【００２６】
ＳＣ２２は、接続されたＣＰＵ２１にとって必要なデータ転送を制御する。ＳＣ２２とＳＤＲＡＭモジュール２３の間に位置する記憶処理装置２０は、ＳＣ２２を介してＣＰＵ２１からの命令を受け取り、受け取った命令に従ってＳＤＲＡＭモジュール２３へアクセスする。記憶処理装置２０は、ＣＰＵから受け取った命令に従い、ＳＤＲＡＭモジュール２３へのデータの書き込み、或いはＳＤＲＡＭモジュール２３からのデータの読み出しを行う。記憶処理装置２０は、読み出しアクセスによって得たデータをＳＣ２２に転送する。
【００２７】
ＳＣ２２から出力された命令は、記憶処理装置２０の入力回路２０１に入力され、メモリモジュールへのアクセスを制御するアクセス制御回路２０２に出力される。入力回路２０１からアクセス制御回路２０２に出力された命令は、レジスタ２２１に格納され、レジスタ２２１を介してパイプライン部２２２、ＣＳアドレス変換回路２２３、及びメモリアクセス制御回路２２４に出力される。パイプライン部２２２は、直近の所定数の命令を保持する。ＣＳアドレス変換回路２２３は、ＳＤＲＡＭモジュール２３に供給すべきチップセレクト信号を生成する。メモリアクセス制御回路２２４は、アクセスするＳＤＲＡＭモジュール２３のアドレスを指定する信号（以降「アドレス信号」と総称する）を生成する。アドレス信号としては、行（ロウ）アドレスを指定する行アドレス信号、列（カラム）アドレスを指定する列アドレス信号、及びバンクを指定するバンクアドレス信号が存在する。
【００２８】
ＳＣ２２から記憶処理装置２０に出力される命令は、記憶処理装置２０を起動させる起動データと、命令の種類を表すオペレーションコードと、ＳＤＲＡＭモジュール２３内のアクセスすべき場所を表すアドレスデータと、を含む。起動データには１ビット、オペレーションコードには３ビット、アドレスデータには３１ビットが割り当てられる。パイプライン部２２２には、全てのデータを含む命令が出力される。ＣＳアドレス変換回路２２３には、起動データ、オペレーションコード、及びアドレスデータの一部が出力される。メモリアクセス制御回路２２４には、アドレスデータの残りが出力される。図１Ａにおいて、「＋ＭＡＣ−ＧＯ」は起動信号、「＋ＭＡＣ−ＯＰＣＯＤＥ［２：０］」はオペレーションコード、「＋ＭＡＣ−ＡＤＤ［３０：０］」はアドレスデータを表している。
【００２９】
図３は、アドレスデータの構成を説明する図である。図３に示すように、アドレスデータは、行（ロウ）アドレスを指定する１４ビットの行アドレスデータ（ＲＡ［１３：００］）、列（カラム）アドレスを指定する１２ビットの列アドレスデータ（ＣＡ［１１、９：０］）、バンクを指定する３ビットのバンクアドレスデータ（ＢＡ［２：０］）、及び２ビットのチップセレクトデータ（ＣＳ［１：０］）を含む。
【００３０】
列アドレスデータの１０ビット目のビット１０（ＣＡ［１０］）は、現在の列アドレスでの動作を終了して、別の列アドレスでの動作を開始するまでの状態（プリチャージ状態）に移行させるプリチャージ命令に割り当てられている。それにより、図３に表記の「ＣＡ［１１，９：０］」は、列アドレスデータのなかで実際に列アドレスの指定に用いられるのはビット１０を除く１１ビットであることを表している。列アドレスデータは、アドレスデータのビット０〜１１に割り当てられている。同様に、図３に表記の「ＲＡ［１３：００］」は、行アドレスデータの１４ビットすべてが行アドレスの指定に用いられることを表している。行アドレスデータは、アドレスデータのビット１２〜２５に割り当てられている。「ＢＡ［２：０］」は、バンクアドレスデータの３ビットすべてがバンクアドレスの指定に用いられることを表している。バンクアドレスデータは、アドレスデータのビット２６〜２８に割り当てられている。「ＣＳ」と表記の２ビットのチップセレクトデータは、アドレスデータの残りのビット、つまりアドレスデータのビット２９及び３０に割り当てられている。ビット２９及びビット３０のデータは、それぞれ対応付けられたランクの選択／非選択を指定するために用いられる。例えばビット２９のデータはランク０、ビット３０のデータはランク１に対応付けられ、０の値は非選択、１の値は選択を指定する。以降は、対象とするビットを特定する場合、データを示すシンボル列に続く括弧内に、対象とするビットを表す数字を記載する表記法を用いる。例えば列アドレスデータのビット０〜９のデータは、「列アドレスデータＣＡ［９：０］」と表記する。チップセレクトデータは、チップセレクト信号との区別のために「ＣＳ−ＡＤＤ」をシンボル列として用いる。
【００３１】
図４は、オペレーションコードが表す命令の種別を説明する図である。図４中に表記の「［０］」〜「［２］」は、オペレーションコード（＋ＭＡＣ−ＯＰＣＯＤＥ）の各ビットを表している。オペレーションコードの「Ｌ」及び「Ｈ」は、対応するビットの信号レベル、つまり論理値が０及び１の何れであるかを表している。Ｌは０の論理値に対応し、Ｈは１の論理値に対応する。以降、論理値は「値」と略記する。
【００３２】
図４に表記の「ＭＡＣ  ＲＥＱＵＥＳＴ」は、オペレーションコード＋ＭＡＣ−ＯＰＣＯＤＥによって要求される動作の種類を表している。図４は、オペレーションコード＋ＭＡＣ−ＯＰＣＯＤＥのビット０〜２の値の組み合わせ毎に、そのオペレーションコード＋ＭＡＣ−ＯＰＣＯＤＥの命令種別、及びそのオペレーションコード＋ＭＡＣ−ＯＰＣＯＤＥによって要求される動作の種類を表している。
【００３３】
図４には、命令種別を表す文字列として「＋ＭＳ−ＦＣＨ」及び「＋ＭＳ−ＳＴＲ」が表記されている。「＋ＭＳ−ＦＣＨ」は、データの読み出し命令を表している。「＋ＭＳ−ＳＴＲ」はデータの書き込み命令を表している。
【００３４】
図４には、動作の種類を表す文字列として「ＦＣＨ６４Ｂ」、「ＰＴＲＬ−ＦＣＨ」、「ＣＳ−ＲＥＡＤ」、「ＣＳ−ＷＲＩＴＥ」、「ＳＴＲ６４Ｂ」、「ＲＥＷ−ＲＥＡＤ」及び「ＲＥＷ−ＷＲＩＴＥ」が表記されている。これらはそれぞれ、以下の動作を表している。
【００３５】
「ＦＣＨ６４Ｂ」は、６４ビットのデータを読み出す読み出しアクセスを表している。上記のようにＳＤＲＡＭモジュール２３の１ランクでは、２個のメモリ素子２３１がＥＣＣデータの格納に用いられる。ＥＣＣデータを格納するメモリモジュールでは、故障検出のためのメモリパトロールが定期的に行われる。「ＰＴＲＬ−ＦＣＨ」は、メモリパトロールにおける読み出しアクセスを表している。
【００３６】
「ＳＴＲ６４Ｂ」は、６４ビットのデータを書き込む書き込みアクセスを表している。
「ＲＥＷ−ＲＥＡＤ」は、訂正可能エラーの検出時に再度行われる読み出しアクセスを表している。同様に「ＲＥＷ−ＷＲＩＴＥ」は、訂正可能エラーの検出時に、読み出しアクセスＲＥＷ−ＲＥＡＤに続けて行われる書き込みアクセスを表している。
【００３７】
メモリ素子の同一箇所で訂正可能なエラーが常に発生する故障（固定故障）が発生した場合、故障が発生したメモリ素子が含まれるランクのデータを同じＳＤＲＡＭモジュール２３の別のランク、或いは別のＳＤＲＡＭモジュール２３にコピーする。「ＣＳ−ＲＥＡＤ」及び「ＣＳ−ＷＲＩＴＥ」はそれぞれ、コピー処理のための読み出しアクセス、及び書き込みアクセスを表している。
【００３８】
図４に表記の「ＮＯＰ」は、動作しないこと（No Operation）を表している。
上記メモリパトロールは、例えばＪＴＡＧ（Joint Test Action Group）を用いて行われる。メモリパトロールを実行させる命令は、コンソール３への操作により、ＳＶＰ４２が生成し出力する。ＳＶＰ４２が出力した命令は、ＳＣＩ４３を介してＳＶＰ制御部２０６に入力され、処理される。ＳＶＰ制御部２０６は、ＳＶＰ４２が出力する命令を処理するものであり、ＪＴＡＧに対応している。ＳＶＰ制御部２０６は、ＳＶＰ４２がメモリパトロール用の命令を出力した場合、入力回路２０１を制御して、アクセス制御回路２０２を用いたメモリパトロールを実現させる。
【００３９】
ＣＳアドレス変換回路２２３は、起動データ＋ＭＡＣ−ＧＯ、オペレーションコード＋ＭＡＣ−ＯＰＣＯＤＥ、及びＳＤＲＡＭモジュール２３の故障に係わる複数の故障情報を用いて、チップセレクト信号を生成する。図１Ａ或いは図１Ｂ中に表記の「ＣＮＴＬ１（／ＣＳ０）」、「ＣＮＴＬ１（／ＣＳ１）」、「ＣＮＴＬ１’（／ＣＳ０）」及び「ＣＮＴＬ１’（／ＣＳ１）」はそれぞれチップセレクト信号を表している。「ＣＮＴＬ１（／ＣＳ０）」はＳＤＲＡＭモジュール２３ａのランク０を選択するチップセレクト信号を表している。同様に、「ＣＮＴＬ１（／ＣＳ１）」はＳＤＲＡＭモジュール２３ａのランク１を選択するチップセレクト信号、「ＣＮＴＬ１’（／ＣＳ０）」はＳＤＲＡＭモジュール２３ｂのランク０を選択するチップセレクト信号、「ＣＮＴＬ１’（／ＣＳ１）」はＳＤＲＡＭモジュール２３ｂのランク１を選択するチップセレクト信号をそれぞれ表している。各チップセレクト信号は、それぞれ対応するランクに対して出力される。図１Ｂに表記の「ＣＳ  ＳＥＬ［１：０］」、「ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ」及び「ＡＬＤＲ
ＲＥＬＥＡＳＥ  ＢＩＴ」はそれぞれ故障情報を表している。
【００４０】
図５は、各種故障情報が表す内容を説明する図である。各種故障情報としては、図５に示すように、故障情報ＣＳ  ＳＥＬ［１：０］、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ及び故障情報ＡＬＤＲ  ＲＥＬＥＡＳＥ  ＢＩＴが存在する。故障情報全体としては、１６ビットの情報量を想定している。故障情報ＣＳ  ＳＥＬ［１：０］はビット１２−１３の情報として割り当てられている。同様に、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴはビット１５の情報、故障情報ＡＬＤＲ  ＲＥＬＥＡＳＥ  ＢＩＴはビット１５の情報として割り当てられている。ビット０−１１は未使用である。
【００４１】
図５に示すように、故障情報ＣＳ  ＳＥＬ［１：０］は、故障が検出された場所を表している。より具体的には、故障情報ＣＳ  ＳＥＬ［０］は、故障が検出されたＳＤＲＡＭモジュール２３を表している。例えばＣＳ  ＳＥＬ［０］が「０」の場合は、故障が発生したＳＤＲＡＭモジュールがスロット１に装着されたＳＤＲＡＭモジュール２３ａであることを表し、値が１の場合は故障が発生したＳＤＲＡＭモジュールがスロック１’に装着された冗長ＳＤＲＡＭモジュール２３ｂであることを表している。故障情報ＣＳ  ＳＥＬ［１］は、ＣＳ  ＳＥＬが示すＳＤＲＡＭモジュールの中の故障が検出されたランクを表している。ＣＳ  ＳＥＬ［１］の値が０であれば、故障が検出されたランクがランク０であることを表し、値が１の場合はランク１を表している。
【００４２】
故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴは、予備のＳＤＲＡＭモジュール（図５には「冗長ＤＩＭＭ」と表記）への切換が有効か否かを表す。予備のＳＤＲＡＭモジュールは、例えばスロット１’に挿入された冗長ＳＤＲＡＭモジュール２３ｂである。１の値は、冗長ＳＤＲＡＭモジュール２３ｂへの切換が有効であることを表し、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴの値が０の場合、冗長ＳＤＲＡＭモジュール２３ｂへの切換が無効であることを表す。冗長ＳＤＲＡＭモジュール２３ｂへの切換は、ＳＤＲＡＭモジュール２３ａ内の使用していたランクで訂正可能なエラーが連続して検出された場合に行われる。訂正可能なエラーが連続して検出された場合に、固定故障が発生したと見なされる。
【００４３】
冗長ＳＤＲＡＭモジュール２３ｂへの切換では、固定故障が発生したランクに格納されていたデータは、別の場所にコピーされる。冗長ＳＤＲＡＭモジュール２３ｂへの切換に伴うデータコピー処理の実行を行うか否かは、故障情報ＡＬＤＲ  ＲＥＬＥＡＳＥ  ＢＩＴによって表される。故障情報ＡＬＤＲ  ＲＥＬＥＡＳＥ  ＢＩＴの値が１である場合は、データコピー処理（ＣＳ−ＲＥＡＤ及びＣＳ−ＷＲＩＴＥの繰り返し）を実行することを表している。
【００４４】
ＣＳアドレス変換回路２２３は、ＳＤＲＡＭモジュール２３へのアクセスを行う場合、４種類のチップセレクト信号のうちの一つを有効にする。メモリアクセス制御回路２２４が生成するアドレス信号は、例えば各ＳＤＲＡＭモジュール２３の各ランクに出力される。その結果、有効なチップセレクト信号が出力されたＳＤＲＡＭモジュール２３のランクを対象とするアクセスが行われる。アクセスが読み出しアクセスであった場合、７２ビットのデータがＳＤＲＡＭモジュール２３から読み出され、データバス２４或いは２５を介してデータ切換回路２０３に入力される。データがスロット１から読み出された場合、そのデータは読み出されたＳＤＲＡＭモジュール２３に係わらず、データバス２４を介してデータ切換回路２０３に入力される。同様に、データがスロット１’から読み出された場合、そのデータは読み出されたＳＤＲＡＭモジュール２３に係わらず、データバス２５を介してデータ切換回路２０３に入力される。
【００４５】
データバス２４及び２５は共に双方向のバスであり、メモリアクセス制御回路２２４が管理するバッファ２２６及び２２７に格納された選択情報＋ＷＲ−ＳＥＬの値に応じて、有効とする方向を選択する。
【００４６】
例えば、選択情報＋ＷＲ−ＳＥＬは、データバス２４及び２５に有効とさせる方向を選択させるための１ビットの情報である。例えば選択情報＋ＷＲ−ＳＥＬの値が０であれば、データ切換回路２０３から各ＳＤＲＡＭモジュール２３へのデータ出力が有効となり、選択情報＋ＷＲ−ＳＥＬの値が１であれば、各ＳＤＲＡＭモジュール２３からデータ切換回路２０３へのデータ出力が有効となる。このため、読み出しアクセス時は、選択情報＋ＷＲ−ＳＥＬの値は１に設定され、書き込みアクセス時は、選択情報＋ＷＲ−ＳＥＬの値は０に設定される。
【００４７】
データバス２４は、各ＳＤＲＡＭモジュール２３のランク０と接続された信号線群２４ａ及びバスバッファ２４ｂを備えている。バスバッファ２４ｂは、データ切換回路２０３のバッファ２３２と接続されたバッファ２４ｃ、及びデータ切換回路２０３のＯＲゲート群２３４と接続されたバッファ２４ｄを備えている。バッファ２４ｃは、選択情報＋ＷＲ−ＳＥＬの値が０であれば、データ切換回路２０３のバッファ２３２が出力するデータを格納する。バッファ２４ｄは、選択情報＋ＷＲ−ＳＥＬの値が１であれば、何れかのＳＤＲＡＭモジュール２３から出力されたデータを格納する。この結果、選択情報＋ＷＲ−ＳＥＬの値が１の場合、データ切換回路２０３から各ＳＤＲＡＭモジュール２３へのデータ出力のみが有効となり、選択情報＋ＷＲ−ＳＥＬの値が０の場合、各ＳＤＲＡＭモジュール２３からデータ切換回路２０３へのデータ出力のみが有効となる。データバス２４は、選択情報＋ＷＲ−ＳＥＬの値に応じたバスバッファ２４ｂの動作により、１方向のみ有効とさせる。
【００４８】
データバス２５も同様に、各ＳＤＲＡＭモジュール２３のランク１と接続された信号線群２５ａ及びバスバッファ２５ｂを備えている。バスバッファ２５ｂも同様に、データ切換回路２０３のバッファ２３２と接続されたバッファ２５ｃ、及びデータ切換回路２０３のＯＲゲート群２３４と接続されたバッファ２５ｄを備えている。バッファ２５ｃは、選択情報＋ＷＲ−ＳＥＬの値が０であれば、データ切換回路２０３のバッファ２３２が出力するデータを格納する。バッファ２５ｄは、選択情報＋ＷＲ−ＳＥＬの値が１であれば、何れかのＳＤＲＡＭモジュール２３から出力されたデータを格納する。この結果、選択情報＋ＷＲ−ＳＥＬの値が１の場合、データ切換回路２０３から各ＳＤＲＡＭモジュール２３へのデータ出力のみが有効となり、選択情報＋ＷＲ−ＳＥＬの値が０の場合、各ＳＤＲＡＭモジュール２３からデータ切換回路２０３へのデータ出力のみが有効となる。データバス２５は、選択情報＋ＷＲ−ＳＥＬの値に応じたバスバッファ２５ｂの動作により、１方向のみ有効とさせる。
【００４９】
データバス２４或いは２５を介してデータ切換回路２０３に出力された読み出しデータは、ＯＲゲート群２３４に入力される。ＯＲゲート群２３４は、データバス２４及び２５からそれぞれ入力したデータの論理和をビット毎に計算し、その計算結果をＳＤＲＡＭモジュール２３から読み出されたデータとして出力する。４つのチップセレクト信号のうちの一つのみが有効となることから、ＯＲゲート群２３４の計算結果は、チップセレクト信号によって有効とされたＳＤＲＡＭモジュール２３のランクから読み出されたデータと一致する。
【００５０】
ＯＲゲート群２３４から出力されたデータはＥＣＣ部２０５に入力され、そのデータ中のＥＣＣデータを用いたデータのチェックがＥＣＣ部２０５によって行われる。チェックによりデータからエラーが検出されなかった場合、ＥＣＣ部２０５は、入力したデータをＳＣ２２に出力する。
【００５１】
一方、チェックにより訂正可能なエラーが検出された場合、ＥＣＣ部２０５は、検出されたエラーを訂正し、訂正後のデータをＳＣ２２に出力する。また、ＥＣＣ部は、訂正可能なエラーが発生した旨を表すメッセージであるエラー報告を外部制御部４に出力する。ＥＣＣ部からのエラー報告は、ＳＣＩ４３を介してＳＶＰ４２に入力される。メモリパトロールの実行中は、エラー報告はＳＶＰ４２によって処理される。
【００５２】
検出されるエラーは、同じ格納場所、つまり同じＳＤＲＡＭモジュール２３の同じランクの同じアドレスで連続して発生するとは限らない。何らかの理由によって或る格納場所に格納されたデータ、或いはその格納場所から読み出したデータの内容が変化した可能性がある。そのため、エラーの発生は固定故障によるものであるとは限らない。このことから、例えばＳＶＰ４２は、最初のエラーの検出時には同じデータの再読み出し（ＲＥＷ−ＲＥＡＤ）をＳＶＰ制御部２０６に指示する。
【００５３】
訂正不可能なエラーの検出時は、ＥＣＣ部２０５はその旨を表すエラー報告を外部制御部４に出力する。ＥＣＣ部２０５からのエラー報告はＳＣＩ４３を介してＳＶＰ４２に入力される。エラー報告を入力したＳＶＰ４２は、自動的に、或いはオペレータの指示に従って、エラー報告の内容をコンソール３に出力（例えば表示）する。それにより、コンソール３のオペレータは、訂正不可能なエラーの発生を認識し、そのエラーに対応する。
【００５４】
上記再読み出し指示が入力されたＳＶＰ制御部２０６は、パトロールアクセスを停止させる。ＳＶＰ制御部２０６はまた、アクセス制御回路２０２に再読み出しを指示して、エラーを生じたデータが読み出された格納場所から再度、データを読み出させる（ＲＥＷ−ＲＥＡＤ）。ＳＶＰ制御部２０６からの指示による読み出しは、パイプライン部２２２に格納された命令を用いて行われる。再度のデータ読み出しにより、ＥＣＣ部２０５は再度エラー検出を行い、必要に応じてエラーが検出されたデータを訂正する。必要に応じた訂正されたデータは、データが読み出された格納場所に書き込まれる（ＲＥＷ−ＷＲＩＴＥ）。データの書き込みは、例えばＥＣＣ部２０５からデータ切換回路２０３にデータを出力することで行われる。また、先にエラーが検出されたデータと同じ格納場所から読み出したデータから再度エラーを検出した場合、つまりＥＣＣ部２０５が再度エラー報告を出力した場合、ＳＶＰ２２は固定故障が発生していると見なす。
【００５５】
一方、再度のデータ読み取りの結果、ＥＣＣ部２０５がエラーを検出しなければ、ＳＶＰ４２は、固定故障は発生していないと見なし、メモリパトロールを再開させる。
【００５６】
このように、エラーを検出した場合に、エラーを訂正してメモリ素子に書き込んだデータを再度読み出してＥＣＣ部２０５にエラー検出を行わせることにより、データを書き込んだ格納場所に固定故障が発生しているか否かが確認される。
【００５７】
ＥＣＣ部２０５は、上記エラー報告の他に、故障情報ＣＳ  ＳＥＬ［１：０］を生成して故障情報格納部２２５に出力する。ＥＣＣ部２０５は、ＣＳアドレス変換回路２２３が出力した各チップセレクト信号を参照することにより、有効とされたチップセレクト信号に応じて故障情報ＣＳ  ＳＥＬ［１：０］を生成する。ＥＣＣ部２０５で生成される故障情報ＣＳ  ＳＥＬ［１：０］は、訂正可能なエラーが生じたデータが読み出されたＳＤＲＡＭモジュール２３とそのランクを表すものとなっている。
【００５８】
エラーの発生箇所を表す情報は、ＥＣＣ部２０５からのエラー報告にも含まれている。ＳＶＰ４２は、再度ＥＣＣ部２０５から入力したエラー報告の内容を自動的、或いはオペレータの指示によりコンソール３に表示させる。それによりオペレータは、コンソール３を操作して、表示されたエラー報告の内容から故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ及びＡＬＤＲ  ＲＥＬＥＡＳＥ  ＢＩＴを設定する。設定された故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ及びＡＬＤＲ  ＲＥＬＥＡＳＥ  ＢＩＴは、ＳＶＰ４２から出力され、ＳＣＩ４３及びＳＶＰ制御部２０６を介して故障情報格納部２２５に入力される。故障情報格納部２２５には、ＥＣＣ部２０５から出力された故障情報ＣＳ  ＳＥＬ［１：０］に加えて、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ及びＡＬＤＲ  ＲＥＬＥＡＳＥ  ＢＩＴが格納される。これらの故障情報は、ＣＳアドレス変換回路２２３に入力され、ＣＳアドレス変換回路２２３によるチップセレクト信号の生成に反映される。
【００５９】
固定故障が検出された場合、故障情報において、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴの初期値として、例えば「０」が設定される。これは、固定故障の発生時、冗長ＳＤＲＡＭモジュール２３ｂへの切換を有効とすべき状況ではないからである。より具体的には、冗長ＳＤＲＡＭモジュール２３ｂに必要なデータを格納させる後述のデータコピー処理は、固定故障が発生したＳＤＲＡＭモジュール２３ａへのアクセスを行う必要があるからである。故障情報ＡＬＤＲ  ＲＥＬＥＡＳＥ  ＢＩＴの値としては、例えば初期値として「１」が設定される。
【００６０】
ＳＶＰ制御部２０６は、これらの故障情報を故障情報格納部２２５に格納した後、固定故障が発生したＳＤＲＡＭモジュール２３ａのデータを冗長ＳＤＲＡＭモジュール２３ｂに格納するデータコピー処理をアクセス制御回路２０２に実行させる。データコピー処理をアクセス制御回路２０２に実行させるための命令、つまりアクセス制御回路２０２を動作させる命令は、ＳＶＰ制御部２０６の制御により入力回路２０１が生成する。データコピー処理が完了した後、オペレータはコンソール３を操作して、故障情報ＡＬＤＲ  ＲＥＬＥＡＳＥ  ＢＩＴの値を１から０に、故障情報ＡＬＲＤ  ＥＮＡＢＬＥ  ＢＩＴの値を０から１に変更する。故障情報ＡＬＲＤ  ＥＮＡＢＬＥ  ＢＩＴの変更により、冗長切換が行われ、アクセス制御回路２０２は以降、冗長ＳＤＲＡＭモジュール２３ｂのみにアクセスする。
【００６１】
図６は、ＣＳアドレス変換回路の構成、及び動作を説明する図である。図６に示すように、ＣＳアドレス変換回路２２３は、デコーダ２２３ａ、レジスタ２２３ｂ及びＣＳアドレス変換部２２３ｃを備える。デコーダ２２３ａは、起動データ＋ＭＡＣ−ＧＯとオペレーションコード＋ＭＡＣ−ＯＰＣＯＤＥを入力する。デコーダ２２３ａは、起動データ＋ＭＡＣ−ＧＯが有効となっていた場合に、オペレーションコード＋ＭＡＣ−ＯＰＣＯＤＥをデコードして、命令＋ＭＳ−ＳＴＲ及び＋ＭＳ−ＦＣＨのうちの一つを有効（アクティブ）、つまり例えばその値を１にする。各命令＋ＭＳ−ＳＴＲ及び＋ＭＳ−ＦＣＨはそれぞれ別の信号線を介してＣＳアドレス変換部２２３ｃに供給される。
【００６２】
アドレスデータ＋ＭＡＣ−ＡＤＤ［３０：２９］、つまりチップセレクトデータ＋ＣＳ−ＡＤＤ［１：０］は、レジスタ２２３ｂを介してＣＳアドレス変換部２２３ｃに供給される。故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ、ＡＬＤＲ  ＲＥＬＥＡＳＥ  ＢＩＴ及びＣＳ  ＳＥＬ［１：０］は、図１Ａ及び図１Ｂに示すように、故障情報格納部２２５を介してＣＳアドレス変換部２２３ｃに供給される。
【００６３】
ＣＳアドレス変換部２２３ｃは、入力した各信号の値に応じたチップセレクト信号を生成する。チップセレクト信号の生成により、ＣＳアドレス変換部２２３ｃは、図６（及び図１Ａ或いは図１Ｂ）にチップセレクト信号として表記の「ＣＮＴＬ１（／ＣＳ０）」、「ＣＮＴＬ１（／ＣＳ１）」、「ＣＮＴＬ１’（／ＣＳ０）」及び「ＣＮＴＬ１’（／ＣＳ１）」のうちの一つを有効にする。図６において、ＣＳアドレス変換部２２３ｃ内に示す表は、ＣＳアドレス変換部２２３ｃが入力した各種情報の内容から有効とするチップセレクト信号を表す変換表である。
【００６４】
変換表に表記の「＋ＣＳ−ＡＤＤ［１：０］＝“００”」は、ＳＤＲＡＭモジュール２３ａのランク０が＋ＣＳ−ＡＤＤ［１：０］によって指定されていることを表している。「＋ＣＳ−ＡＤＤ［１：０］＝“１０”」は、ＳＤＲＡＭモジュール２３ａのランク１が指定されていることを表している。ＣＳアドレス変換部２２３ｃは、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ及びＡＬＤＲ  ＲＥＬＥＡＳＥ  ＢＩＴが共に０であった場合、チップセレクトデータ＋ＣＳ−ＡＤＤ［１：０］によって指定されるＳＤＲＡＭモジュール２３ａのランクのチップセレクト信号を有効とする。故障に対応する必要のない通常時は、記憶処理装置２０はＳＤＲＡＭモジュール２３ａにアクセスする。
【００６５】
図６の変換表において、故障情報ＣＳ−ＳＥＬ［１：０］の内容として表記の「＝“００”」は、故障がＳＤＲＡＭモジュール２３ａのランク０に発生したことを表している。同様に故障情報ＣＳ−ＳＥＬ［１：０］の「＝“１０”」は、故障がＳＤＲＡＭモジュール２３ａのランク１に発生したことを表している。「冗長ＳＤＲＡＭモジュール（ＳＬＯＴ１’）」は、故障の発生により冗長ＳＤＲＡＭモジュール２３ｂにアクセスする状況、つまり故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ及びＡＬＤＲ  ＲＥＬＥＡＳＥ  ＢＩＴのうちの一方の値が１となっている状況を表している。「ＳＤＲＡＭモジュール（ＳＬＯＴ１）」は、故障が発生していない状況、つまり故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ及びＡＬＤＲ  ＲＥＬＥＡＳＥ  ＢＩＴの各値が共に１となっている状況を表している。
【００６６】
ＣＳアドレス変換部２２３ｃは、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴが０、ＡＬＤＲ  ＲＥＬＥＡＳＥ  ＢＩＴが１であった場合、つまり冗長切換前のデータコピー処理時の場合、命令＋ＭＳ−ＦＣＨ及び＋ＭＳ−ＳＴＲのなかで有効となっている命令に応じて、アクセスするＳＤＲＡＭモジュール２３を異ならせる。また、ＣＳアドレス変換部２２３は、チップセレクトデータ＋ＣＳ−ＡＤＤ［１：０］の値によって有効とするチップセレクト信号を異ならせる。この結果、図６に表す例では、例えばＳＤＲＡＭモジュール２３ａのランク０のデータは冗長ＳＤＲＡＭモジュール２３ｂのランク０に書き込まれる。
【００６７】
データコピー処理には、ＳＤＲＡＭモジュール２３ａの故障を確認したランクのデータを、冗長ＳＤＲＡＭモジュール２３ｂの同じランクに書き込む。データコピー処理の終了後、故障情報ＡＬＤＲ  ＲＥＬＥＡＳＥ  ＢＩＴの値が１から０に、ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴの値が０から１に変更されることで、冗長切換が行われる。冗長切換が行われた後は、データがコピーされた冗長ＳＤＲＡＭモジュール２３ｂのランクへのアクセスを可能とさせるチップセレクト信号がチップセレクトデータ＋ＣＳ−ＡＤＤ［１：０］に応じて生成される。
【００６８】
図７は、メモリパトロールのために記憶処理装置が行う制御処理の流れの例を表すフローチャートである。次に図７を参照して、メモリパトロールのために記憶処理装置２０が行う動作について詳細に説明する。
【００６９】
メモリパトロールは、コンソール３へのオペレータの操作によりＳＶＰ４２が出力する命令によって開始される。先ず、ステップＳ１では、記憶処理装置２０は、ＳＣＩ４３を介してＳＶＰ４２からのメモリパトロールの開始を指示する命令を入力し、メモリパトロールを開始する。メモリパトロール開始を指示する命令は、ＳＶＰ制御部２０６により処理される。入力回路２０１は、ＳＶＰ制御部２０６から指定された読み出しアクセス用の命令を出力する。ステップＳ２では、記憶処理装置２０は、入力回路２０１の出力した命令に従って、メモリパトロールのためのアクセス（読み出しアクセス）を行う。
【００７０】
入力回路２０１は、例えばアドレスデータ＋ＭＡＣ−ＡＤＤ［３０：０］格納用のレジスタ（以降「アドレスレジスタ」）を備え、アドレスレジスタの値を命令の生成に用いている。メモリパトロールは、アドレスレジスタの値を例えばインクリメントしながら行われる。
【００７１】
メモリパトロールのためのアクセスによってＳＤＲＡＭモジュール２３から読み出されたデータは、双方向バス２４、及びデータ切換回路２０３を介してＥＣＣ部２０５に出力され、ＥＣＣ部２０５でエラーチェックが行われる。ステップＳ３では、例えばＳＶＰ制御部２０６が、ＥＣＣ部２０５が検出したエラーが訂正可能なエラーか否かを判定する。ＥＣＣ部２０５が検出したエラーが訂正可能なエラーである場合、その旨は例えばＳＶＰ４２を介してＳＶＰ制御部２０６に通知される。この場合、Ｓ３の判定はＹＥＳとなってステップＳ４に移行する。一方、ＥＣＣ部２０５が検出したエラーが訂正可能なエラーではなかった場合、Ｓ３の判定はＮＯとなってステップＳ１３に移行する。
【００７２】
ステップＳ３でのＮＯの判定は、訂正不可能なエラーをＥＣＣ部２０５が検出した場合を含む。しかし図７では、Ｓ３のＮＯの判定はエラーが検出されなかった場合のみを想定しており、訂正不可能なエラーが検出された場合の動作は図７では図示を省略している。
【００７３】
Ｓ３で訂正可能なエラーが検出された場合、ステップＳ４では、ＳＶＰ制御部２０６はパトロールアクセスを停止、つまり入力回路２０１からの命令の出力を停止させる。ステップＳ５では、アクセス制御回路２０２は、ＳＤＲＡＭモジュール２３ａ（ＳＬＯＴ１）のエラーが検出されたデータを読み出したアドレスに正しいデータを書き込むリライトアクセスを実行する。リライトアクセスは、パイプライン部２２２に格納された命令を用いて、エラーが検出されたデータを読み出したアドレスからデータを再度読み出し（ステップＳ２１）、読み出したデータを必要に応じて訂正し、訂正されたデータをそのアドレスに書き込む（ステップＳ２２）ことで行われる。リライトアクセスを実行した後はステップＳ６に移行する。
【００７４】
ステップＳ６では、アクセス制御回路２０２は、Ｓ２２でデータを書き込んだアドレスからデータを再度読み出す。続くステップＳ７では、ＳＶＰ制御部２０６が、ＳＤＲＡＭモジュール２３ａ（スロット１）に固定故障が発生しているか否かを判定する。再読み出しの結果、ＥＣＣ部２０５が訂正可能なエラーを再度検出した場合、ＳＶＰ制御部２０６はデータを読み出したＳＤＲＡＭモジュール２３ａに固定故障が発生していると判定して、Ｓ７での判定はＹＥＳとなってステップＳ８に移行する。一方、再度読み出したデータからエラーをＥＣＣ部２０５が検出しなかった場合、ＳＶＰ制御部２０６は固定故障は発生していないと判定して、Ｓ７での判定はＮＯとなってステップＳ１２に移行する。Ｓ１２では、Ｓ４で一旦停止されたメモリパトロールが再開される。
【００７５】
固定故障が生じていると判定された場合、ステップＳ８では、ＥＣＣ部２０５は検出したエラーに応じて故障情報ＣＳ  ＳＥＬ［１：０］を生成し、生成した故障情報を故障情報格納部２２５にセットし、固定故障が生じている旨を示すエラー報告を外部制御部４に出力する。ＥＣＣ部２０５からのエラー報告の出力により、コンソール３を操作するオペレータに、固定故障が発生していることがＳＶＰ４２によって通知される。ＳＶＰ４２による通知により、オペレータは、データコピー処理を行わせるように、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ及びＡＬＤＲ  ＲＥＬＥＡＳＥ  ＢＩＴを設定する。つまり、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴの値を０に、ＡＬＤＲ  ＲＥＬＥＡＳＥ  ＢＩＴの値を１にする。設定された故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ及びＡＬＤＲ  ＲＥＬＥＡＳＥ  ＢＩＴは、ＳＶＰ４２からその格納を指示する命令と共にＳＣＩ４３を介してＳＶＰ制御部２０６に入力される。
【００７６】
ステップＳ９では、ＳＶＰ制御部２０６は、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ及びＡＬＤＲ  ＲＥＬＥＡＳＥ  ＢＩＴが入力したら、入力した故障情報を故障情報格納部２２５にセットする。故障情報のセットを行った後はステップＳ１０に移行し、ＳＶＰ制御部２０６は、ＳＤＲＡＭモジュール２３ａのデータを冗長ＳＤＲＡＭモジュール２３ｂに書き込むデータコピー処理を実行させる。
【００７７】
データコピー処理内では、以下のような一連の処理が実行される。
先ず、ステップＳ３１では、ＳＶＰ制御部２０６は例えば入力回路２０１のアドレスレジスタに初期値を格納する。アドレスレジスタの初期値は、例えば全てのビットの値を０としたものである。続くステップＳ３２では、入力回路２０１は、アドレスレジスタに格納された値を用いて読み出し命令を作成し、作成した読み出し命令をアクセス制御回路２０２に出力する。アクセス制御回路２０２は、入力回路２０１から入力した命令に従って、ＳＤＲＡＭモジュール２３ａからのデータの読み出しを行う。
【００７８】
ステップＳ３３では、入力回路２０１は、アドレスレジスタに格納されたアドレスを用いて、読み出したデータをアドレスレジスタに格納されているアドレスに書き込ませる命令を作成し、アクセス制御回路２０２に出力する。アクセス制御回路２０２は、入力回路２０１から入力した命令に従って、読み出したデータをＳＤＲＡＭモジュール２３ｂに書き込む。
【００７９】
アクセス制御回路２０２のＣＳアドレス変換回路２２３は、故障情報格納部２２５から供給される各種故障情報の値により、図６に表すようにチップセレクト信号を有効とさせる。データの読み出し時は、固定故障が検出されたＳＤＲＡＭモジュール２３ａのランクを選択するチップセレクト信号が有効とされ、データの書き込み時は、データ読み出し時に選択されたＳＤＲＡＭモジュール２３ａのランクと同じ冗長ＳＤＲＡＭモジュール２３ｂのランクを選択するチップセレクト信号が有効とされる。この結果、双方のＳＤＲＡＭモジュール２３の同じランクの間で、ＳＤＲＡＭモジュール２３ａのデータが冗長ＳＤＲＡＭモジュール２３ｂにコピーされる。
【００８０】
ステップＳ３４では、入力回路２０１は、アドレスレジスタの値をインクリメントする。次のステップＳ３５では、ＳＶＰ制御部２０６は、全アドレスのデータのコピーが終了したか否かを判定する。入力回路２０１は、例えばアドレスレジスタの値がＳＤＲＡＭモジュール２３の最大アドレス値よりも大きくなった場合に、その旨をＳＶＰ制御部２０６に通知する。入力回路２０１からの通知があった場合、Ｓ３５での判定はＹＥＳとなり、ＳＶＰ制御部２０６はデータコピー処理を終了させる。一方、通知が入力回路からない場合、Ｓ３５の判定はＮＯとなってステップＳ３２に戻り、未コピーのアドレスを対象にしたデータの読み出しおよびデータ書込みが行われる。
【００８１】
データコピー処理の終了は、例えばＳＶＰ制御部２０６から外部制御部４に通知され、ＳＶＰ制御部２０６からの通知内容は外部制御部４のＳＶＰ４２によってコンソール３に表示される。それにより、コンソール３のオペレータは、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴの値を１に、ＡＬＤＲ  ＲＥＬＥＡＳＥ  ＢＩＴの値を０に変更する。変更された故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ及びＡＬＤＲ  ＲＥＬＥＡＳＥ  ＢＩＴは、ＳＶＰ４２からその格納を指示する命令と共にＳＣＩ４３を介してＳＶＰ制御部２０６に入力される。ステップＳ１０のデータコピー処理の終了後に移行するステップＳ１１では、ＳＶＰ制御部２０６は、入力した故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ及びＡＬＤＲ  ＲＥＬＥＡＳＥ  ＢＩＴを故障情報格納部２２５にセットする。故障情報をセットした後ステップＳ１２に移行し、ＳＶＰ制御部２０６は、入力回路２０１に指示して、メモリパトロールによるアクセスを再開させる。このとき、メモリパトロールの対象となるのは、データをコピーした先である冗長ＳＤＲＡＭモジュール２３ｂのランクである。
【００８２】
ステップＳ１３では、ＳＶＰ制御部２０６は、メモリパトロールが完了したか否か判定する。入力回路２０１は、例えばアドレスレジスタの値がＳＤＲＡＭモジュール２３によって決定される値（最大のアドレス値）よりも大きくなった場合に、その旨をＳＶＰ制御部２０６に通知する。入力回路２０１からの通知があった場合、Ｓ１３の判定はＹＥＳとなり、ＳＶＰ制御部２０６はメモリパトロールを終了させる。一方、入力回路２０１からの通知がない場合、Ｓ１３での判定はＮＯとなってステップＳ２に戻る。ステップＳ２では、先にアクセスしたアドレスとは別のアドレスからデータを読み出すメモリパトロールによるアクセスが行われる。
【００８３】
このように、ＳＤＲＡＭモジュール２３の冗長化方法の一つとして、訂正可能なエラーを発生させる固定故障を検出した場合に、その固定故障が検出されたランクのデータを別のＳＤＲＡＭモジュールにコピーするというものが考えられる。これに対し、以下に説明する実施形態では、以下のような冗長化を提供する。以下、本発明の実施形態について、図面を参照しながら詳細に説明する。ここでは、上記したものと同じ、或いは基本的に同じと見なせる構成要素には同一の符号を用い、同一の符号を付したものの詳細な説明は省略する。
【００８４】
＜第１の実施形態＞
図８Ａ及び図８Ｂは、第１の実施形態による記憶処理装置（ＭＡＣ：Memory Access Controller）を実装したプリント配線基板の構成を説明する図である。図８Ａ及び図８Ｂのプリント配線基板８００は、例えば図１Ａ〜図１Ｃに表すコンピュータシステム１を構成するコンピュータ本体に搭載されたものである。図８Ａ及び図８Ｂでは、ＳＤＲＡＭモジュールを搭載するためのスロットは１個となっている。図８Ａ及び図８Ｂのプリント配線基板８００上には、図示した記憶処理装置８１０、１個のＳＤＲＡＭモジュール２３、及び２個の双方向のデータバス８０１及び８０２の他に、不図示の複数のＣＰＵ２１、及びＳＣ（System Controller）２２が実装されている。
【００８５】
記憶処理装置８１０は、１個のＳＤＲＡＭモジュール２３の実装に対応したものであり、ＳＣ２２、及び外部制御部４と接続されている。外部制御部４は、ＳＰＣ（System Power Controller）４１、ＳＶＰ（SerVice Processor）４２及びＳＣＩ（System Console Interface）４３を備えている。ここでは、プリント配線基板に実装されるＳＤＲＡＭモジュール２３として、図２に表す構成のＳＤＲＡＭモジュールを想定する。
【００８６】
記憶処理装置８１０は、入力回路８１１、アクセス制御回路８１２、データ切換回路８１３、入力回路８１４、ＥＣＣ部８１５及びＳＶＰ制御部８１６を備えている。これらは、それぞれ以下のような機能を備えている。
【００８７】
入力回路８１１は、ＳＣ２２を介してＣＰＵ２１からの命令を入力し、アクセス制御回路８１２に出力する。また、ＳＶＰ制御部８１６の制御により命令を作成し、作成した命令をアクセス制御回路８１２に出力する機能を備えている。
【００８８】
アクセス制御回路８１２に出力される命令は、記憶処理装置２０を起動させる起動データ＋ＭＡＣ−ＧＯと、命令の種類を表すオペレーションコード＋ＭＡＣ−ＯＰＣＯＤＥ［２：０］と、ＳＤＲＡＭモジュール２３内のアクセスすべき場所を表すアドレスデータ＋ＭＡＣ−ＡＤＤ［３０：０］とを含む。プリント配線基板８００は、ＳＤＲＡＭモジュール２３を装着可能なスロットを１個のみ搭載しているため、アドレスデータ＋ＭＡＣ−ＡＤＤのビット３０及び３１に割り当てられたチップセレクトデータ＋ＣＳ−ＡＤＤ［１：０］は、１ビットのみ使用される。図８の例では、使用されるチップセレクトデータのビットは、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］とする。
【００８９】
アドレスデータ＋ＭＡＣ−ＡＤＤ［３０：０］の構成は、図３に表すものとなっている。また、オペレーションコード＋ＭＡＣ−ＯＰＣＯＤＥ［２：０］の各ビットの値によって表される命令の種別は、図４に表すものとなっている。アドレスデータ＋ＭＡＣ−ＡＤＤ［３０：０］、及びオペレーションコード＋ＭＡＣ−ＯＰＣＯＤＥ［２：０］についての詳細な説明は省略する。
【００９０】
アクセス制御回路８１２は、入力回路８１１から入力した命令に従って、ＳＤＲＡＭモジュール２３にアクセスする。処理する命令の種類に応じて、アクセス制御回路８１２は２つの双方向のバス８０１及びデータバス８０２に供給される選択情報＋ＷＲ−ＳＥＬの値を変更する。バス８０１及びデータバス８０２を介したデータ転送は、選択情報の値により、制御される。この結果、読み出しアクセス時にはＳＤＲＡＭモジュール２３からのデータの転送が可能となり、書き込みアクセス時にはＳＤＲＡＭモジュール２３へのデータの転送が可能となる。
【００９１】
例えば、選択情報＋ＷＲ−ＳＥＬは、バス８０１及びデータバス８０２に有効とさせる方向を選択させるための１ビットの情報である。例えば選択情報＋ＷＲ−ＳＥＬの値が０であれば、データ切換回路８１３からＳＤＲＡＭモジュール２３へのデータ出力が有効となり、選択情報＋ＷＲ−ＳＥＬの値が１であれば、ＳＤＲＡＭモジュール２３からデータ切換回路８１３へのデータ出力が有効となる。このため、読み出しアクセス時は、選択情報＋ＷＲ−ＳＥＬの値は１に設定され、書き込みアクセス時は、選択情報＋ＷＲ−ＳＥＬの値は０に設定される。
【００９２】
バス８０１は、ＳＤＲＡＭモジュール２３と接続された信号線群８０１ａ及びバスバッファ８０１ｂを備えている。バスバッファ８０１ｂは、データ切換回路８１３から出力されるデータを格納するバッファ８０１ｃ、及びデータ切換回路８１３に出力されるデータを格納するバッファ８０１ｄを備えている。バッファ８０１ｃは、選択情報＋ＷＲ−ＳＥＬの値が０であれば、データ切換回路８１３から出力されるデータを格納する。バッファ８０１ｄは、選択情報＋ＷＲ−ＳＥＬの値が１であれば、ＳＤＲＡＭモジュール２３側からのデータを格納する。この結果、選択情報＋ＷＲ−ＳＥＬの値が１の場合、データ切換回路８１３からＳＤＲＡＭモジュール２３へのデータ出力のみが有効となり、選択情報＋ＷＲ−ＳＥＬの値が０の場合、ＳＤＲＡＭモジュール２３からデータ切換回路８１３へのデータ出力のみが有効となる。バス８０１は、選択情報＋ＷＲ−ＳＥＬの値に応じたバスバッファ８０１ｂの動作により、１方向のみ有効とさせる。
【００９３】
データバス８０２も同様に、ＳＤＲＡＭモジュール２３の各ランクと接続された信号線群８０２ａ及びバスバッファ８０２ｂを備えている。バスバッファ８０２ｂも同様に、データ切換回路８１３から出力されたデータを格納するバッファ８０２ｃ、及びＳＤＲＡＭモジュール２３から読み出されたデータを格納するバッファ８０２ｄを備えている。バッファ８０２ｃは、選択情報＋ＷＲ−ＳＥＬの値が０であれば、データ切換回路８１３から出力されるデータを格納する。バッファ８０２ｄは、選択情報＋ＷＲ−ＳＥＬの値が１であれば、ＳＤＲＡＭモジュール２３から出力された読み出しデータを格納する。この結果、選択情報＋ＷＲ−ＳＥＬの値が１の場合、データ切換回路８１３からＳＤＲＡＭモジュール２３へのデータ出力のみが有効となり、選択情報＋ＷＲ−ＳＥＬの値が０の場合、ＳＤＲＡＭモジュール２３からデータ切換回路８１３へのデータ出力のみが有効となる。データバス８０２は、選択情報＋ＷＲ−ＳＥＬの値に応じたバスバッファ８０２ｂの動作により、１方向のみ有効とさせる。
【００９４】
アクセス制御回路８１２は、レジスタ８２１、パイプライン部８２２、ＣＳアドレス変換回路８２３、メモリアクセス制御回路８２４、故障情報格納部８２５及びバッファ８２６を備えている。
【００９５】
レジスタ８２１は、入力回路８１１から出力された命令を格納する。パイプライン部８２２は、レジスタ８２１に格納された直近の所定数の命令を保持する。ＣＳアドレス変換回路８２３は、ＳＤＲＡＭモジュール２３に供給すべきチップセレクト信号を生成する。メモリアクセス制御回路８２４は、アクセスするＳＤＲＡＭモジュール２３のアドレスを指定するアドレス信号を生成する。故障情報格納部８２５は、各種故障情報を格納する。バッファ８２６は、選択情報＋ＷＲ−ＳＥＬを格納する。選択情報＋ＷＲ−ＳＥＬは、メモリアクセス制御回路８２４によって生成される。バス８０１及びデータバス８０２は、バッファ８２６に格納された選択情報＋ＷＲ−ＳＥＬに従って、有効とする方向を変更する。
【００９６】
データ切換回路８１３は、ＳＤＲＡＭモジュール２３から読み出されたデータの出力、及びＣＰＵ２１からのデータのＳＤＲＡＭモジュール２３への出力を管理するための回路である。
【００９７】
ＣＰＵ２１からのデータはＳＣ２２を介して記憶処理装置８１０に入力される。入力回路８１４は、ＳＣ２２から出力されたＣＰＵ２１からのデータを入力し、データ切換回路８１３に供給する。図８Ｂに表記の「＋ＭＡＣ−ＷＤ［７１：０］」は、入力回路８１４に入力される７２ビットの書き込みデータを表している。
【００９８】
データ切換回路８１３は、レジスタ８３１、バッファ８３２、バッファ８３３、及びレジスタ群８３５を備えている。レジスタ群８３５は、ＳＤＲＡＭモジュール２３の１ランクを構成するメモリ素子２３１の数と同数のレジスタ８３５を少なくとも含む。図８Ｂでは、レジスタ群８３５は計１８個のレジスタを有する。各レジスタは、ＳＤＲＡＭモジュール２３の１８個のメモリ素子のいずれかに対応している。
【００９９】
ＳＤＲＡＭモジュール２３の各ランクを構成する各メモリ素子２３１にはそれぞれ、データストローブ信号ＤＱＳ０〜ＤＱＳ１７が供給される。図８Ｂに表記の「＋ＭＡＣ−ＤＱＳ［１７：０］」は、書き込みアクセス時にメモリアクセス制御回路８２４が各メモリ素子２３１に出力すべきデータストローブ信号ＤＱＳ０〜ＤＱＳ１７に対応したデータ（以降「データストローブ情報」）を表している。データストローブ情報を格納したバッファ８３２から出力されるデータは、バスバッファ８０１ｂのバッファ８０１ｃ及び信号線群８０１ａを介して各メモリ素子２３１にデータストローブ信号として供給される。図８Ｂに表記の「ＤＱＳ０〜ＤＱＳ１７」は、読み出しアクセス時、或いは書き込みアクセス時に信号線群８０１ａを流れるデータストローブ信号を表している。読み出しアクセス時、信号線群８０１ａにはＳＤＲＡＭモジュール２３に供給される、各メモリ素子２３１へのデータストローブ信号が流れる。
【０１００】
各メモリ素子２３１にデータストローブ信号を供給する必要から、信号線群８０１ａは１８のデータストローブ信号を並行に転送可能である。バスバッファ８０１ｂの各バッファ８０１ｃ及び８０１ｄは、１８ビット以上の記憶容量を備えている。
【０１０１】
書き込みアクセス時は、レジスタ８３１に格納されたデータはデータバス８０２を介して、バッファ８３２から出力されたデータストローブ信号はバス８０１を介してそれぞれＳＤＲＡＭモジュール２３に供給される。ＳＤＲＡＭモジュール２３の各ランクの各メモリ素子２３１は、データバス８０２を介して供給されるデータ中の各メモリ素子に対応する４ビットのデータを格納することができる。
【０１０２】
書き込みアクセス時では、ＳＤＲＡＭモジュール２３の各ランクに供給されるチップセレクト信号は、固定故障が検出されたランクのチップセレクト信号を除き、有効とされる。故障が検出されたランクが存在しない場合、各ランクに供給されるチップセレクト信号は有効とされる。故障が検出されたランクが存在する場合、故障が検出されていないランクに供給されるチップセレクト信号のみが有効とされる。
【０１０３】
読み出しアクセス時は、ＳＤラムモジュール２３の１ランクに供給されるチップセレクト信号のみが有効とされる。有効なチップセレクト信号が供給されたＳＤＲＡＭモジュール２３の１ランクから読み出されたデータはデータバス８０２を介して、ＳＤＲＡＭモジュール２３に供給されたデータストローブ信号はバス８０１を介して、それぞれレジスタ群８３５に入力される。レジスタ群８３５を構成する各レジスタ８３６には、対応するデータストローブ信号、及びデータが供給される。各レジスタ８３６は、供給されたデータストローブ信号が有効となった場合に、供給された対応する４ビットのデータを格納する。各レジスタ８３６に格納されたデータは、ＥＣＣ部８１５に供給される。ＥＣＣ部８１５に供給されるデータは７２ビットであり、そのうちの８ビットはＥＣＣデータである。
【０１０４】
ＥＣＣ部８１５は、データ切換回路８１３から供給されたデータに含まれるＥＣＣデータを用いて、ＥＣＣデータを除く６４ビットのデータのエラーチェックを行う。エラーチェックによりデータからエラーが検出されなかった場合、ＥＣＣ部８１５は、入力したデータをそのままＳＣ２２に出力する。一方、チェックにより訂正不可能なエラーがデータから検出された場合、ＥＣＣ部８１５は、訂正不可能なエラーが発生した旨を表すメッセージであるエラー報告を外部制御部４に出力する。また、エラーチェックにより訂正可能なエラーがデータから検出された場合、ＥＣＣ部８１５は、訂正可能なエラーが発生した旨を表すメッセージであるエラー報告を外部制御部４に出力し、エラーを訂正して、訂正したデータをＳＣ２２に出力する。
【０１０５】
ＥＣＣ部８１５はまた、読み出しデータからエラーが検出された場合、エラー報告の他に、故障情報ＣＳ  ＳＥＬ［０］を生成して出力する。
【０１０６】
外部制御部４に出力されたエラー報告は、ＳＶＰ４２によって処理され、コンソール３を介してオペレータにエラー報告の内容が通知される。エラー通知を確認したオペレータは、コンソール３を操作して、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴを設定、つまりＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴの値を０から１に変更する。値が変更された故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴは、ＳＶＰ４２から出力され、ＳＣＩ４３及びＳＶＰ制御部８１６を介して故障情報格納部８２５に入力される。
【０１０７】
故障情報格納部８２５は、ＥＣＣ部８１５から出力された故障情報ＣＳ  ＳＥＬ［０］、及び外部制御部４から出力された故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴを格納する。これらの故障情報は、ＣＳアドレス変換回路８２３に入力され、ＣＳアドレス変換回路８２３によるチップセレクト信号の生成に反映される。
【０１０８】
ＳＶＰ制御部８１６は、ＪＴＡＧに対応したものであり、ＳＶＰ４２から出力される命令を処理する。ＳＶＰ４２からの命令がＳＤＲＡＭモジュール２３の状態を確認するためのメモリパトロールを指示する命令である場合、メモリパトロールが実行される。ＳＶＰ制御部８１６は、メモリパトロールの実現のために、入力回路８１１を制御する。
【０１０９】
入力回路８１１は、例えばアドレスデータ＋ＭＡＣ−ＡＤＤ［３０：０］格納用のアドレスレジスタを備え、アドレスレジスタの値をメモリパトロール用の命令の生成に用いている。アドレスレジスタの値は、ＳＶＰ制御部８１６の制御により随時インクリメントされる。アドレスレジスタの値をインクリメントすることにより、メモリパトロールは、アクセスするＳＤＲＡＭモジュール２３のアドレスを順次変更しながら行われる。
【０１１０】
図１０は、第１の実施形態における各種故障情報が表す内容を説明する図である。故障情報格納部８２５には、故障情報として、故障情報ＣＳ  ＳＥＬ［０］、及び故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴを格納する。図１０に示すように、故障情報ＣＳ  ＳＥＬ［０］は、故障が検出されたＳＤＲＡＭモジュール２３、具体的には故障が検出されたＳＤＲＡＭモジュール２３が搭載されているスロットを表している。本実施形態では、ＳＤＲＡＭモジュール２３を搭載するスロットは一つのみであるため、ＣＳ  ＳＥＬ［０］の値が０の場合は、ＳＤＲＡＭモジュール２３に故障が検出されていないことを表し、ＣＳ  ＳＥＬ［０］の１の値はＳＤＲＡＭモジュール２３に故障が検出されたことを表している。故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴは、冗長側への切換が有効か否かを表す。ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴの値が０の場合は冗長側への切換が無効であることを表し、値が１の場合は冗長側への切換が有効であることを表す。
【０１１１】
第１の実施形態では、コンピュータ本体、つまりプリント配線基板８００は、２ランクを有する１個のＳＤＲＡＭモジュール２３のみを搭載すると想定している。その想定から、第１の実施形態では、１個のＳＤＲＡＭモジュール２３の２つのランクのうちの１ランクを冗長側として用いている。残りの１ランクは通常アクセスする通常側として用いる。第１の実施形態では、故障が発生したＳＤＲＡＭモジュール２３及びランクをそれぞれ特定する必要がないことから、図５に図示されている故障情報ＣＳ  ＳＥＬ［１］は用いない。故障情報ＣＳ  ＳＥＬ［０］は、１個のＳＤＲＡＭモジュール２３で通常側とするランクに故障が発生したか否かを表す情報として用いる。
【０１１２】
ＳＤＲＡＭモジュール２３は、上記したように、アクセスするランクをチップセレクト信号によって選択する。書き込みアクセス時は、２つのランクのチップセレクト信号を共に有効とさせ、同じデータを各ランクに同時に格納させる。
【０１１３】
第１の実施形態では、同じデータを各ランクに格納させているので、通常側のランクに固定故障によるエラーが検出されたとしても、通常側のランクのデータを冗長側のランクに格納させるデータコピーを行う必要性はない。また、訂正不可能なエラーが発生しても、同一データが冗長側のランクにも格納されているため、必要なデータが失われるとは限らない。従って、第１の実施形態では、システムの信頼性は大幅に向上し、エラーへの対応を迅速に行えるようになる。同じデータの各ランクへの格納に要する時間は、１ランクへのデータの格納に要する時間と同じにすることができる。このことから、本実施形態では、冗長化に伴うアクセス速度の低下を回避することができる。また、本実施形態ではデータコピーを行う必要性がないことから、図５に示されている故障情報ＡＬＤＲ  ＲＥＬＥＡＳＥ  ＢＩＴは用いない。
【０１１４】
本実施形態のＳＤＲＡＭモジュール２３は、特殊な機能を持つものではない。そのようなＳＤＲＡＭモジュール２３を用いて冗長化を実現させることから、特殊なメモリモジュールを用いて冗長化を実現させる場合と比較して、本実施形態ではシステム全体のコスト増を抑えることができる。また、特殊なメモリモジュールを採用することによる制御の複雑化等も回避される。
【０１１５】
図１１は、第１の実施形態におけるＣＳアドレス変換回路の動作を説明する図である。ＣＳアドレス変換回路の動作は、図６と同様に、入力した各種情報の内容からＣＳアドレス変換回路８２３が有効とするチップセレクト信号を表形式（変換表）で表している。図１１中に表記の「＋ＭＳ−ＳＴＲ」、「＋ＭＳ−ＦＣＨ」、「ＣＮＴＬ１（ＣＳ０）」、「ＣＮＴＬ１（ＣＳ１）」、及び「＋ＣＳ−ＡＤＤ［０］」等が表す対象は図６と同じであるため、ここでは説明は省略する。
【０１１６】
図１１に示すように、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴの値が０、つまり冗長無効時は、書き込みアクセス用のチップセレクト信号は各ランクで有効とされる（＋ＭＳ−ＳＴＲ＝“１”、＋ＣＳ−ＡＤＤ［０］＝“０”）。一方、読み出しアクセス用のチップセレクト信号は、通常側のランク（ＣＮＴＬ１（／ＣＳ））のみ有効とされる（+ＭＳ−ＦＣＨ＝“１”、＋ＣＳ−ＡＤＤ［０］＝“０”）。そのようにして、書き込みアクセスは各ランクに対して同時に実行し、読み出しアクセスは通常側の１ランクに対してのみ実行する。
【０１１７】
故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴの値が１となる冗長有効時には、書き込みアクセス用のチップセレクト信号、及び読み出しアクセス用のチップセレクト信号は共に冗長側のランクのみ有効とされる（ＣＮＴＬ（／ＣＳ１））。冗長有効時は、故障情報ＣＳ  ＳＥＬ［０］の値が１の状況下である。冗長有効時には、故障が発生したランク（通常側に故障が発生）にはアクセスは行われない。以降、冗長有効は、図１１にも記載されているように冗長切換とも呼ぶことにする。
【０１１８】
図９は、第１の実施形態におけるＣＳアドレス変換回路の構成を説明する図である。次に図９を参照して、図１１の変換表に表すようにチップセレクト信号を生成するＣＳアドレス変換回路８２３の構成について具体的に説明する。
【０１１９】
図９に示すＣＳアドレス変換回路８２３は、デコーダ９０１、レジスタ９０２、６個のＡＮＤゲート９１１〜９１６、２個のＮＯＴゲート９２１〜９２２、及び２個のＯＲゲート９３１〜９３２を備えている。
【０１２０】
デコーダ９０１は、起動データ＋ＭＡＣ−ＧＯとオペレーションコード＋ＭＡＣ−ＯＰＣＯＤＥを入力する。デコーダ９０１は、起動データ＋ＭＡＣ−ＧＯが有効となっていた場合に、オペレーションコード＋ＭＡＣ−ＯＰＣＯＤＥをデコードして、命令＋ＭＳ−ＳＴＲ及び＋ＭＳ−ＦＣＨのうちの一つを有効（アクティブ）、つまり例えばその値を１にする。レジスタ９０２は、アドレスデータ＋ＭＡＣ−ＡＤＤ［３０：２９］を格納する。レジスタ９０２に格納されたアドレスデータ＋ＭＡＣ−ＡＤＤ［３０：２９］のうちのアドレスデータ＋ＭＡＣ−ＡＤＤ［２９］が、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］としてレジスタ９０２から出力される。図９の例では、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］のみがチップセレクト信号の生成に用いられる。
【０１２１】
始めに、書き込みアクセス時、つまり命令＋ＭＳ−ＳＴＲの有効時にチップセレクト信号の生成に係わる構成、及び動作について説明する。
【０１２２】
レジスタ９０２から出力されたチップセレクトデータ＋ＣＳ−ＡＤＤ［０］はＮＯＴゲート９２１に入力し、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の否定がＮＯＴゲート９２１から出力される。ＡＮＤゲート９１１は、ＮＯＴゲート９２１から出力されたチップセレクトデータ＋ＣＳ−ＡＤＤ［０］の否定と命令＋ＭＳ−ＳＴＲを入力し、それらの論理積をＡＮＤゲート９１２に出力する。
【０１２３】
ＡＮＤゲート９１２には、ＡＮＤゲート９１１から出力された論理積のほかに、ＮＯＴゲート９２２が出力する故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴの反転信号が入力し、それらの論理積（図９中「＋ＮＯＲＭ＿ＳＴＲ＿ＣＳ０」と表記）を出力する。論理積＋ＮＯＲＭ＿ＳＴＲ＿ＣＳ０は、２個のＯＲゲート９３１及び９３２に出力される。これらＯＲゲート９３１及び９３２が出力する論理和は、ランク０及び１にそれぞれチップセレクト信号ＣＮＴＬ１（／ＣＳ０）、ＣＮＴＬ１（／ＣＳ１）として供給される。
【０１２４】
論理積＋ＮＯＲＭ＿ＳＴＲ＿ＣＳ０の値が１となるのは、命令＋ＭＳ−ＳＴＲの有効時である。命令＋ＭＳ−ＳＴＲの有効時において、論理積＋ＮＯＲＭ＿ＳＴＲ＿ＣＳ０の値が１となるには、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］、及び故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴの各値が共に０である必要がある。このため、故障が未発生の状況下、つまり冗長無効時では論理積＋ＮＯＲＭ＿ＳＴＲ＿ＣＳ０の値は１となる。
【０１２５】
故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴは、ＡＮＤゲート９１３に入力される。ＡＮＤゲート９１３は他に、ＡＮＤゲート９１１が出力する論理積、及び故障情報ＣＳ−ＳＥＬ［０］を入力し、それらの論理積（図９中「＋ＡＬＤＲ＿ＳＴＲ＿ＣＳ１」と表記）を出力する。論理積＋ＡＬＤＲ＿ＳＴＲ＿ＣＳ１の値が１となるのは、命令＋ＭＳ−ＳＴＲの有効時である。命令＋ＭＳ−ＳＴＲの有効時において、論理積＋ＡＬＤＲ＿ＳＴＲ＿ＣＳ１の値が１となるには、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が０であり、且つ故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ及び故障情報ＣＳ−ＳＥＬ［０］の各値が共に１である必要がある。このため、論理積＋ＡＬＤＲ＿ＳＴＲ＿ＣＳ１の値が１となるのは、故障が発生した状況下、つまり冗長切換時となる。
【０１２６】
論理積＋ＮＯＲＭ＿ＳＴＲ＿ＣＳ０は２個のＯＲゲート９３１及び９３２に出力される。論理積＋ＡＬＤＲ＿ＳＴＲ＿ＣＳ１はＯＲゲート９３２にのみ出力される。ＯＲゲート９３１及び９３２が出力する論理和は、ランク０及び１にそれぞれチップセレクト信号ＣＮＴＬ１（／ＣＳ０）、ＣＮＴＬ１（／ＣＳ１）として供給される。上記のようなことから、命令＋ＭＳ−ＳＴＲの有効時では、冗長無効時の場合はチップセレクト信号ＣＮＴＬ１（／ＣＳ０）、ＣＮＴＬ１（／ＣＳ１）が共に有効とされ、冗長切換時の場合はチップセレクト信号ＣＮＴＬ１（／ＣＳ１）のみが有効とされる。
【０１２７】
このようにして、命令＋ＭＳ−ＳＴＲの有効時には、図１１の変換表に表すようにチップセレクト信号が有効とされる。
【０１２８】
次に、読み出しアクセス時、つまり命令＋ＭＳ−ＦＣＨの有効時にチップセレクト信号の生成に係わる構成について説明する。
【０１２９】
命令＋ＭＳ−ＦＣＨはＡＮＤゲート９１４に入力する。ＡＮＤゲート９１４は、命令＋ＭＳ−ＦＣＨと、ＮＯＴゲート９２１から入力するチップセレクトデータ＋ＣＳ−ＡＤＤ［０］の否定との論理積を出力する。ＡＮＤゲート９１４から出力される論理積は、ＡＮＤゲート９１５及び９１６にそれぞれ入力される。
【０１３０】
ＡＮＤゲート９１５は、ＡＮＤゲート９１４から入力する論理積と、ＮＯＴゲート９２２から入力する故障情報＋ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴの否定との論理積＋ＮＯＲＭ＿ＦＣＨ＿ＣＳ０を出力する。論理積＋ＮＯＲＭ＿ＦＣＨ＿ＣＳ０の値は、命令＋ＭＳ−ＦＣＨの有効時のみ１となる。論理積＋ＮＯＲＭ＿ＦＣＨ＿ＣＳ０の値が１となるのは、命令＋ＭＳ−ＦＣＨの有効時において、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］及び故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴの各値が共に０の場合である。このため、故障が未発生の状況下では論理積＋ＮＯＲＭ＿ＦＣＨ＿ＣＳ０の値は１となる。論理積＋ＮＯＲＭ＿ＦＣＨ＿ＣＳ０はＯＲゲート９３１に入力されることから、故障が未発生の状況下（冗長無効時）ではチップセレクト信号ＣＮＴＬ１（／ＣＳ０）が有効とされる。
【０１３１】
ＡＮＤゲート９１６には、ＡＮＤゲート９１４が出力する論理積、故障情報＋ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ、及び故障情報ＣＳ−ＳＥＬ［０］が入力する。このため、ＡＮＤゲート９１６から出力される論理積（図９中「＋ＡＬＤＲ＿ＦＣＨ＿ＣＳ１」と表記）の値は、命令＋ＭＳ−ＦＣＨが有効である場合、故障情報＋ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴが１である冗長切換時は１となる。論理積＋ＡＬＤＲ＿ＦＣＨ＿ＣＳ１はＯＲゲート９３２に出力される。この結果、ランク１のチップセレクト信号ＣＮＴＬ１（／ＣＳ１）は、冗長切換時は有効とされ、冗長無効時は無効とされる。
【０１３２】
このようにして、命令＋ＭＳ−ＦＣＨの有効時にも、図１１の変換表に表すようにチップセレクト信号が有効とされる。ＣＳアドレス変換回路８２３は、アクセスの種類に応じて、また冗長無効か否かに応じて、有効とさせるチップセレクト信号を図１１に表すように変更する。
【０１３３】
図１２Ａ及び図１２Ｂは、冗長無効時のＳＤＲＡＭモジュールの動作を表すタイムチャートである。図１２Ａは、書き込みアクセス時のタイムチャートであり、図１２Ｂは、読み出しアクセス時のタイムチャートである。
【０１３４】
図１２Ａ及び図１２Ｂにおいて、ＣＬＫはＳＤＲＡＭ２３を動作させるクロック（例えばシステムクロック）を表している。同様に、ＣＮＴＬ１（／ＣＳ０）はランク０に供給されるチップセレクト信号、ＣＮＴＬ１（／ＣＳ１）はランク１に供給されるチップセレクト信号、ＣＮＴＬ１（ＣＭＤ）はＳＤＲＡＭモジュール２３に供給される命令、ＣＮＴＬ１（ＡＤＤ）はＳＤＲＡＭモジュール２３に供給されるアドレス信号、ＤＱＳ０〜１７は１８個の各メモリ素子２３１に供給されるデータストローブ信号、ＤＱは各メモリ素子２３１に供給、或いは各メモリ素子２３１から出力されるデータ信号、をそれぞれ表している。
【０１３５】
クロックの波形は、位相が１８０度異なる実線と点線でそれぞれ表している。これは、ＳＤＲＡＭモジュール２３はクロックの立ち上がり、及び立ち下がりの両方に同期して動作するからである。ＳＤＲＡＭモジュール２３が動作するタイミングを、実線と点線でそれぞれ描いたクロックの波形が交差する点により表している。クロックの波形の上方に表記の０〜９の数字は、０の数字の位置からのクロック数を表している。
【０１３６】
命令としては、図１２Ａ、図１２ＢにはＡＣＴ、ＷＲＩＴ、及びＲＥＡＤが表記されている。ＡＣＴは、ＳＤＲＡＭモジュール２３をアクティブ状態に移行させるための命令である。行アドレス信号（図１２Ａ及び図１２Ｂ中「ＲＯＷ」と表記）、及びバンクアドレス信号（図示なし）は、ＡＣＴ命令と同時に出力され、ＳＤＲＡＭモジュール２３に取り込まれる。
【０１３７】
ＷＲＩＴは、データの書き込みを指示する命令である。書き込みアクセスをＳＤＲＡＭモジュール２３に行わせる場合、列アドレス信号（図１２Ａ及び図１２Ｂ中「ＣＯＬ」と表記）がＷＲＩＴ命令と同時に出力される。
【０１３８】
ＲＥＡＤは、データの読み出しを指示する命令である。読み出しアクセスをＳＤＲＡＭモジュール２３に行わせる場合、列アドレス信号ＣＯＬはＲＥＡＤ命令と同時に出力される。
【０１３９】
ｔＲＣＤ（active To Read or write Command delay）は、１命令を入力してから次の命令が入力可能になるまでの時間を意味する。例えば「ｔＲＣＤ＝３」は、次の命令が入力可能になるまでの時間が３クロックであることを表している。
【０１４０】
列アドレス信号は、ＣＡＳ（column address strobe）信号と呼ばれる。ＣＬ（CAS latency）は、ＳＤＲＡＭモジュール２３に列アドレス（ＣＡＳ）信号が入力されてから実際にデータの読み出し、或いは書き込みが行われるまでに要する遅延時間を意味する。例えば「ＣＬ＝３」は、その遅延時間は３クロックであることを表している。
【０１４１】
書き込みアクセス時には、図１２Ａに表すように、ランク０及び１のチップセレクト信号ＣＮＴＬ１（／ＣＳ０）、ＣＮＴＬ１（／ＣＳ１）が同時に有効とされる。これは、図９に表すＣＳアドレス変換回路８２３において、ＡＮＤゲート９１２の出力する値が１の論理積＋ＮＯＲＭ＿ＳＴＲ＿ＣＳ０がＯＲゲート９３１及び９３２にそれぞれ入力されることによって実現される。各命令、各アドレス信号、各データストローブ信号、及び各データ信号はそれぞれ各メモリ素子２３１に供給される。このため、データは各ランクに書き込まれることとなる。
【０１４２】
データの書き込みとは異なり、データの読み出しは各ランクで行う必要はない。このため、読み出しアクセス時は、図１２Ｂに表すように、ランク０のチップセレクト信号ＣＮＴＬ１（／ＣＳ０）のみ有効とされる。これは、図９に表すＣＳアドレス変換回路８２３において、ＡＮＤゲート９１５の出力する値が１の論理積＋ＮＯＲＭ＿ＦＣＨ＿ＣＳ０がＯＲゲート９３１にのみ入力されることによって実現される。それにより、データはランク０のみから読み出される。
【０１４３】
図１３Ａ及び図１３Ｂは、冗長有効時のＳＤＲＡＭモジュールの動作を表すタイムチャートである。図１３Ａは、書き込みアクセス時のタイムチャートであり、図１３Ｂは、読み出しアクセス時のタイムチャートである。図１３Ａ及び図１３Ｂに表記の複数のシンボル列の意味は図１２Ａ及び図１２Ｂと同じであるため、各シンボル列の説明は省略する。
【０１４４】
冗長有効時とは、ランク０に固定故障が発生しており、ランク１に切り替えられている状況である。このため、書き込みアクセス時は、図１３Ａに表すように、ランク１のチップセレクト信号ＣＮＴＬ１（／ＣＳ１）のみが有効とされる。同様に、読み出しアクセス時も図１３Ｂに表すように、ランク１のチップセレクト信号ＣＮＴＬ１（／ＣＳ１）のみが有効とされる。そのようにして、書き込みアクセス時、及び読み出しアクセス時ともに、固定故障が発生しているランク０へのアクセスは回避される。
【０１４５】
図９に表すＣＳアドレス変換回路８２３において、冗長有効時に書き込みアクセスを行う場合、ＡＮＤゲート９１３の出力する論理積＋ＮＯＲＭ＿ＳＴＲ＿ＣＳ１の値は１となり、値が１の論理積＋ＮＯＲＭ＿ＳＴＲ＿ＣＳ１がＯＲゲート９３２にのみ入力される。このため、ランク１のチップセレクト信号ＣＮＴＬ１（／ＣＳ１）のみが有効となる。同様に、冗長有効時に読み出しアクセスを行う場合、ＡＮＤゲート９１６の出力する論理積＋ＮＯＲＭ＿ＦＣＨ＿ＣＳ１の値が１となり、値が１の論理積＋ＮＯＲＭ＿ＦＣＨ＿ＣＳ１がＯＲゲート９３２にのみ入力される。このため、ランク１のチップセレクト信号ＣＮＴＬ１（／ＣＳ１）のみが有効となる。
【０１４６】
図１４は、メモリパトロールのために第１の実施形態における記憶処理装置が行う制御処理の流れの例を表すフローチャートである。次に図１４を参照して、メモリパトロールのために記憶処理装置８１０が行う動作について詳細に説明する。メモリパトロールは、コンソール３へのオペレータの操作によりＳＶＰ４２が出力する命令によって開始される。
【０１４７】
先ず、ステップＳ１０１では、記憶処理装置８１０はＳＣＩ４３を介してＳＶＰ４２からメモリパトロールの開始を指示する命令を入力し、メモリパトロールを開始する。メモリパトロール開始を指示する命令は、ＳＶＰ制御部８１６により処理される。入力回路８１１は、ＳＶＰ制御部８１６に指定された読み出しアクセス用の命令を出力する。ステップＳ１０２では、記憶処理装置８１０は入力回路８１１の出力した命令に従って、メモリパトロールのためのアクセス（読み出しアクセス）を行う。
【０１４８】
入力回路８１１は、例えばアドレスデータ＋ＭＡＣ−ＡＤＤ［３０：０］格納用のレジスタ（以降「アドレスレジスタ」）、及びアドレスレジスタの値をインクリメントする機能を備えている。入力回路８１１は、アドレスレジスタの値を用いて命令を生成する。メモリパトロールによるアクセスは、アドレスレジスタの値を用いて生成される命令がアクセス制御回路８１２に入力されることによって実現される。
【０１４９】
メモリパトロールによるアクセスによってＳＤＲＡＭモジュール２３のランク０の各メモリ素子２３１から読み出されたデータは、双方向のデータバス８０２を介してデータ切換回路８１３のレジスタ群８３５の対応するレジスタ８３６に出力される。各メモリ素子２３１にアクセス制御回路８１２が供給したデータストローブ信号は、双方向のバス８０１を介してデータ切換回路８１３のレジスタ群８３５の対応するレジスタ８３６に出力される。データストローブ信号が入力することにより、各レジスタ８３６には対応するメモリ素子２３２のデータが格納される。各レジスタ８３６のデータはＥＣＣ部８１５に出力され、エラーチェックが行われる。ステップＳ１０３では、ＥＣＣ部８１５がエラーを検出したか否かをＳＶＰ制御部８１６が判定する。ＥＣＣ部８１５がエラーを検出した場合、その旨は例えばＳＶＰ４２を介してＳＶＰ制御部８１６に通知される。この場合、Ｓ１０３の判定はＹＥＳとなってステップＳ１０４に移行する。一方、エラーをＥＣＣ部８１５が検出しなかった場合、Ｓ１０３の判定はＮＯとなってステップＳ１１０に移行する。
【０１５０】
ステップＳ１１０では、ＳＶＰ制御部８１６は入力回路８１１に指示して、次にデータを読み出すための命令を出力させる。次のステップＳ１１１では、ＳＶＰ制御部８１６は、メモリパトロールが完了したか否かを判定する。入力回路８１１は、例えばアドレスレジスタの値がＳＤＲＡＭモジュール２３によって決定された値、例えばＳＤＲＡＭモジュールの最大のアドレス値よりも大きくなった場合に、その旨をＳＶＰ制御部８１６に通知する。入力回路８１１からの通知があった場合、Ｓ１１１の判定はＹＥＳとなり、ＳＶＰ制御部８１６はここでメモリパトロールを終了させる。一方、入力回路からの通知がない場合、Ｓ１１１の判定はＮＯとなってステップＳ１０２に戻る。ステップＳ１０２では、別のアドレスからデータを読み出すメモリパトロールによるアクセスが行われる。
【０１５１】
Ｓ１０３でエラーが検出された場合、ステップＳ１０４では、ＳＶＰ制御部８１６はメモリパトロールによるアクセスを停止、つまり入力回路８１１からの命令の出力を停止させる。次のステップＳ１０５では、アクセス制御回路８１２は、スロット１に挿入されたＳＤＲＡＭモジュール２３において、エラーが検出されたデータを読み出したランク０のアドレスに正しいデータを書き込むリライトアクセスを実行する。リライトアクセスでは、パイプライン部８２２に格納された命令を用いて、エラーが検出されたデータが読み出されたアドレスからデータを再度読み出し（ステップＳ１２１）、読み出したデータをそのアドレスに書き込む（ステップＳ１２２）ことで行われる。再度読み出したデータにエラーが生じている場合、ＥＣＣ部８１５はエラーを訂正して、エラー訂正後のデータを書き込む。リライトアクセスを実行した後は、ステップＳ１０６に移行する。
【０１５２】
ステップＳ１０６では、アクセス制御回路８１２は、エラーが検出されたデータに対応するアドレスからデータを再度読み出す。続くステップＳ１０７では、ＳＶＰ制御部８１６が、ＳＤＲＡＭモジュール２３のランク０に固定故障が発生しているか否か判定する。Ｓ１０６でのデータ読み出しの結果、ＥＣＣ部８１５がエラーを再度検出した場合、ＳＤＲＡＭモジュールのランク０に固定故障が発生しているとして、Ｓ１０７の判定はＹＥＳとなってステップＳ１０８に移行する。一方、再度のデータ読み出しの結果、エラーをＥＣＣ部８１５が検出しなかった場合、固定故障は発生していないとして、Ｓ１０７の判定はＮＯとなってステップＳ１１０に移行する。
【０１５３】
固定故障が生じていると判定された場合、ステップＳ１０８では、ＥＣＣ部８１５は故障情報ＣＳ  ＳＥＬ［０］を生成し、生成した故障情報を故障情報格納部８２５にセットし、固定故障が生じている旨を示すエラー報告を外部制御部４に出力する。ＥＣＣ部８１５からのエラー報告の出力により、コンソール３を操作するオペレータに固定故障が発生していることが通知される。その通知により、オペレータは、冗長切換のために故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴを設定する。つまり、オペレータは、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴの値を１にする。設定された故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴは、ＳＶＰ４２からその格納を指示する命令と共にＳＣＩ４３を介してＳＶＰ制御部８１６に入力される。ステップＳ１０９では、ＳＶＰ制御部２０６は、入力した故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴを故障情報格納部８２５にセットする。故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴのセットを行った後はステップＳ１１０に移行する。
【０１５４】
ステップＳ１１０では、ＳＶＰ制御部８１６は入力回路８１１にメモリパトロール用の命令の生成を指示し、メモリパトロールを再開させる。次のステップＳ１１１では、ＳＶＰ制御部８１６は、メモリパトロールが完了したか否かを判定する。入力回路８１１は、例えばアドレスレジスタの値がＳＤＲＡＭモジュール２３によって決定された値、例えばＳＤＲＡＭモジュールの最大のアドレス値よりも大きくなった場合に、その旨をＳＶＰ制御部８１６に通知する。入力回路８１１からの通知があった場合、Ｓ１１１の判定はＹＥＳとなり、ＳＶＰ制御部８１６はここでメモリパトロールを終了させる。一方、入力回路からの通知がない場合、Ｓ１１１の判定はＮＯとなってステップＳ１０２に戻る。ステップＳ１０２では、別のアドレスからデータを読み出すメモリパトロールによるアクセスが行われる。
【０１５５】
このように、ＳＤＲＡＭモジュールから読み出したデータにエラーが検出された場合、そのエラーが再度検出されるか否かの確認が行われる。これは、訂正不可能なエラーが検出された場合も同様である。このため、ステップＳ１０３でのＹＥＳの判定には、訂正不可能なエラーが検出された場合が含まれる。しかし、訂正不可能なエラーの検出時には、ランク０へのアクセスは回避すべきとして、ステップＳ１０３からステップＳ１０８に移行させるようにしても良い。つまり、オペレータにエラーへの対応方法を選択させるようにしても良い。
【０１５６】
なお、第１の実施形態では、冗長切換、つまり障害発生時にアクセスを有効とさせるランクの制限は、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ及びＣＳ  ＳＥＬ［０］の設定を通して実現させている。これは、アクセス制御回路８１２に入力される命令の内容を変更する必要性を回避させるためである。つまりＳＤＲＡＭモジュール２３にアクセスするための制御の複雑化を抑えるためである。しかし、冗長切換は、他の方法を採用して実現させても良い。例えばアクセス制御回路８１２に入力される命令の内容の変更により実現させても良い。
【０１５７】
また、冗長切換は、第１の実施形態ではメモリパトロールの実行時に行うようにしているが、メモリパトロールの実行時以外でも冗長切換を行えるようにしても良い。例えば、メモリパトロールの実行時以外、ＳＶＰ制御部８１６にＥＣＣ部８１５が出力する故障情報ＣＳ  ＳＥＬ［０］等を監視させることにより、ＳＶＰ制御部８１６に状況切換を自動的に行わせても良い。故障情報の監視のためには、ＥＣＣ部８１５はエラーの検出により常に故障情報ＣＳ  ＳＥＬ［０］を出力するものであるのが望ましい。ＥＣＣ部８１５がエラーの検出により常に故障情報ＣＳ  ＳＥＬ［０］を出力するものであっても、その故障情報ＣＳ  ＳＥＬ［０］の故障情報格納部８２５への格納を制御すれば、ＣＳアドレス変換回路８２３が不適切に動作するのは回避される。
【０１５８】
＜第２の実施形態＞
上記第１の実施形態は、１個のＳＤＲＡＭモジュール２３のみを用いる場合を想定したものである。これに対し第２の実施形態は、複数のＳＤＲＡＭモジュール２３を用いる場合を想定して冗長化を実現させたものである。
【０１５９】
第２の実施形態でも第１の実施形態と同様に、既に説明したものと同じ、或いは基本的に同じと見なせるものには同一の符号を用いる。第２の実施形態は、第１の実施形態から異なる部分にのみ着目する形で説明する。
【０１６０】
図１５Ａ〜図１５Ｃは、第２の実施形態による記憶処理装置を実装したプリント配線基板の構成を説明する図である。図１５Ａ〜図１５Ｃのプリント配線基板１７００は、例えば第１の実施形態と同じく図１Ａ〜図１Ｃに表すコンピュータシステム１を構成するコンピュータ本体に搭載されたものである。本実施形態では、ＳＤＲＡＭモジュール２３を搭載するスロットは２個となっている。本実施形態のプリント配線基板１７００上には、図示した記憶処理装置１７１０、２個のＳＤＲＡＭモジュール２３（２３ａ及び２３ｂ）、及び２個の双方向のデータバス１７４０及び１７５０の他に、不図示の複数のＣＰＵ２１、及びＳＣ２２が実装されている。
【０１６１】
記憶処理装置１７１０は、２個のＳＤＲＡＭモジュール２３の実装に対応したものであり、ＳＣ２２、及び外部制御部４と接続されている。ここでも実装されるＳＤＲＡＭモジュール２３として、図２に表す構成のもの、つまり２つのランクを備えたものを想定する。
【０１６２】
第２の実施形態では、ＳＤＲＡＭモジュールの冗長化は、２個のＳＤＲＡＭモジュール２３のうちの一方を通常側、他方を冗長側とすることで実現させている。各ＳＤＲＡＭモジュール２３は、ランク単位で扱われる。ＳＤＲＡＭモジュール２３ａの１ランクは、ＳＤＲＡＭモジュール２３ｂの１ランクと組み合わせて用いている。ここではランクの組み合わせ（アクセス対象単位）として、ＳＤＲＡＭモジュール２３ａのランク０とＳＤＲＡＭモジュール２３ｂのランク０の組み合わせを想定する。もう一つのランクの組み合わせは、ＳＤＲＡＭモジュール２３ａのランク１とＳＤＲＡＭモジュール２３ｂのランク１との組み合わせとなる。２個のＳＤＲＡＭモジュール２３へのアクセスは、この２つの組み合わせのうちから一つを選択して行われる。以降の説明は、選択されている組み合わせに沿った各ＳＤＲＡＭモジュール２３へのアクセスを可能とさせる構成、及び動作に着目して行う。
【０１６３】
上記２つの組み合わせに従ったアクセスを可能とするために、ＳＤＲＡＭモジュール２３ａの各ランクのメモリ素子は同一のデータバス１７４０に接続され、ＳＤＲＡＭモジュール２３ｂの各ランクのメモリ素子も同一のデータバス１７５０に接続されている。
【０１６４】
データバス１７４０は、ＳＤＲＡＭモジュール２３ａと接続された信号線群１７４１、及び１方向のみを選択的に有効とさせるバスバッファ１７４２を備えている。バスバッファ１７４２は、ＳＤＲＡＭモジュール２３ａへのデータ転送を可能にさせるバッファ１７４２ａ及びＳＤＲＡＭモジュール２３ａからのデータ転送を可能にさせるバッファ１７４２ｂを備えている。バッファ１７４２ａ及び１７４２ｂのうちの一方のみが、選択信号＋ＷＲ−ＳＥＬの値に応じてデータを格納することにより、１方向のデータ転送のみが選択的に有効とされる。
【０１６５】
データバス１７５０も同様に、ＳＤＲＡＭモジュール２３ａと接続された信号線群１７５１、及び１方向のみを選択的に有効とさせるバスバッファ１７５２を備えている。バスバッファ１７５２は、ＳＤＲＡＭモジュール２３ｂへのデータ転送を可能にさせるバッファ１７５２ａ及びＳＤＲＡＭモジュール２３ｂからのデータ転送を可能にさせるバッファ１７５２ｂを備えている。バッファ１７５２ａ及び１７５２ｂのうちの一方のみが、選択信号＋ＷＲ−ＳＥＬの値に応じてデータを格納することにより、１方向のデータ転送のみが選択的に有効とされる。
【０１６６】
各信号線群１７４１及び１７５１は、１８個のメモリ素子２３１にそれぞれ供給される１８ビットのデータストローブ信号、及び７２ビットのデータ信号を伝送可能なものである。このため、各バッファ１７４２ａ、１７４２ｂ、１７５２ａ及び１７５２ｂは少なくとも９０ビットのデータを格納可能なものとなっている。
【０１６７】
各ＳＤＲＡＭモジュール２３の各ランクを別々に用いることから、各ＳＤＲＡＭモジュール２３の各ランクにはそれぞれ異なる信号線によりチップセレクト信号が供給される。つまり、ＳＤＲＡＭモジュール２３ａのランク０へのチップセレクト信号（図１５Ａ中「ＣＮＴＬ１（／ＣＳ０）」と表記）は信号線１７５１を介して１７１２からＳＤＲＡＭモジュール２３ａに供給され、ＳＤＲＡＭモジュール２３ａのランク１へのチップセレクト信号（図１５Ａ中「ＣＮＴＬ２（／ＣＳ０）」と表記）は信号線１７６２を介してアクセス制御回路１７１２からＳＤＲＡＭモジュール２３ａに供給される。同様に、ＳＤＲＡＭモジュール２３ｂのランク０へのチップセレクト信号（図１５Ｂ中「ＣＮＴＬ１（／ＣＳ１）」と表記）は信号線１７６３を介してアクセス制御回路１７１２からＳＤＲＡＭモジュール２３ｂに供給され、ＳＤＲＡＭモジュール２３ｂのランク１へのチップセレクト信号（図１５Ｂ中「ＣＮＴＬ２（／ＣＳ１）」と表記）は信号線１７６４を介して１７１２からＳＤＲＡＭモジュール２３ｂに供給される。ＳＤＲＡＭモジュール２３ａの各ランクへの各種命令、及び各種アドレス信号（図１５Ａ中「ＣＮＴＬ１（ＣＭＤ）」及び「ＣＮＴＬ１（ＡＤＤ）」と表記）等は、信号線群１７７１を介してＳＤＲＡＭモジュール２３ａに供給される。同様に、ＳＤＲＡＭモジュール２３ｂの各ランクへの各種命令、及び各種アドレス信号（図１５Ｂ中「ＣＮＴＬ２（ＣＭＤ）」及び「ＣＮＴＬ１（ＡＤＤ）」と表記）等は、信号線群１７７２を介してＳＤＲＡＭモジュール２３ｂに供給される。
【０１６８】
上記のように、ＳＤＲＡＭモジュール２３ａ及び２３ｂのランク０にそれぞれ供給されるチップセレクト信号は「ＣＮＴＬ１（／ＣＳ０）」、「ＣＮＴＬ１（／ＣＳ１）」と表記している。第２の実施形態では、「ＣＮＴＬ１」は異なるＳＤＲＡＭモジュール２３間におけるランクの組み合わせを表し、「ＣＳ０」、「ＣＳ１」はそれぞれ通常側のランク、冗長側のランクを表している。これは、「ＣＮＴＬ２（／ＣＳ０）」、「ＣＮＴＬ２（／ＣＳ１）」でも同様である。以降、便宜的に、「ＣＮＴＬ１」により表される組み合わせを「第１の組み合わせ」、「ＣＮＴＬ２」により表される組み合わせを「第２の組み合わせ」とそれぞれ呼ぶことにする。
【０１６９】
２個のＳＤＲＡＭモジュール２３を用いたランクの組み合わせは２つ存在することから、第２の実施形態では、アドレスデータ＋ＭＡＣ−ＡＤＤ［３０：２９］のうちアドレスデータ＋ＭＡＣ−ＡＤＤ［２９］、つまりチップセレクトデータ＋ＣＳ−ＡＤＤ［０］が用いられる。チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値は、０のときは第１の組み合わせ、１のときは第２の組み合わせを指定する。第１の組み合わせと第２の組み合わせとは同時に指定されないようになっている。
【０１７０】
第２の実施形態による記憶処理装置１７１０は、入力回路１７１１、アクセス制御回路１７１２、データ切換回路１７１３、入力回路１７１４、ＥＣＣ部１７１５及びＳＶＰ制御部１７１６を備えている。これらにおいて、アクセス制御回路１７１２及びデータ切換回路１７１３は第１の実施形態から異なっている。このことから、図１５Ａ〜図１５Ｃに示す構成および動作の説明は、アクセス制御回路１７１２及びデータ切換回路１７１３に着目して行う。
【０１７１】
データ切換回路１７１３は、レジスタ１７３１、２個のバッファ１７３２及び１７３３、ＯＲゲート群１７３４、及びレジスタ群１７３５を備えている。
【０１７２】
レジスタ１７３１は、入力回路１７１４から、７２ビット分のデータ信号を入力する。このため、レジスタ１７３１は少なくとも７２ビットのデータ（図中「＋ＭＡＣ−ＷＤ［７１：０］」と表記）を格納可能となっている。レジスタ１７３１に格納されたデータは、バッファ１７３２及び１７３３に出力され、各バッファ１７３２及び１７３３に保持される。これら各バッファ１７３２及び１７３３は、レジスタ１７３１から出力されたデータの他に、アクセス制御回路１７１２が出力する１８ビット分のデータストローブ情報（図１５Ｂ中「＋ＭＡＣ−ＤＱＳ［１７：０］」と表記）をそれぞれ保持する。各バッファ１７３２及び１７３３は少なくとも９０ビットのデータを保持する。各バッファ１７３２及び１７３３に保持されたデータは、それぞれデータバス１７４及び１７５０に出力される。
【０１７３】
各データバス１７４０及び１７５０は、アクセス制御回路１７１２から出力される選択信号＋ＷＲ−ＳＥＬの値に応じて、同じ方向を有効とさせる。書き込みアクセス時は、各信号線群１７４１及び１７５１に９０ビット分の信号、つまり１８ビット分のデータストローブ信号、及び７２ビット分のデータ信号が出力される。このため、異なる２個のＳＤＲＡＭモジュール２３ａ及び２３ｂの各ランクに同時にデータを格納することができる。異なる２個のＳＤＲＡＭモジュール２３ａ及び２３ｂの各ランクに同時にデータを格納できることから、異なる２個のＳＤＲＡＭモジュール２３ａ及び２３ｂからそれぞれ指定（選択）された１ランクを組み合わせたことによるアクセス速度の低下は回避される。一方、読み出しアクセス時は、ＳＤＲＡＭモジュール２３から読み出され、各データバス１７４０及び１７５０を伝搬する９０ビット分の信号が、それぞれデータ切換回路１７１３に出力される。
【０１７４】
ＯＲゲート群１７３４は、少なくとも９０個のＯＲゲートを備えている。データ切換回路１７１３にそれぞれ出力された９０ビット分の信号は、１ビット毎に分けられ、対応するＯＲゲートに供給される。各ＯＲゲートは、各データバス１７４０及び１７５０からそれぞれ１ビット分の信号（データ）を入力し、それらの論理和を出力する。
【０１７５】
レジスタ群１７３５は、少なくとも１８個のレジスタ１７３６を備えている。各ＯＲゲートが出力する論理和は、各ＯＲゲートに対応するレジスタ１７３６に供給される。各ＯＲゲートが出力する論理和は全て、ＳＤＲＡＭモジュール２３からのデータ信号として扱われる。レジスタ群１７３５を構成する各レジスタ１７３６は、動作用の信号、つまり対応するデータストローブ信号ＤＱＳ００〜ＤＱＳ１７が有効となった場合に、それぞれ４ビットのデータを格納する。そのようにして、レジスタ群１７３５は、７２ビットのデータを保持する。レジスタ群１７３５が保持する７２ビットのデータは、ＥＣＣ部１７１５に出力される。
【０１７６】
ＥＣＣ部１７１５は、レジスタ群１７３５から出力された７２ビットのデータのうちの８ビットのＥＣＣデータを用いて、残りの６４ビットのデータに発生したエラーの検出を行う。ＥＣＣ部１７１５は、エラーを検出した場合に、その内容を表すエラー報告、及び故障情報ＣＳ  ＳＥＬ［１：０］を生成し、それぞれ外部制御部４及びアクセス制御回路１７１２に出力する。ここでのエラーは、訂正可能なものに限定されない。つまりエラーとしては、訂正不可能なものも含む。
【０１７７】
エラー報告の出力により、コンソール３のオペレータはＳＶＰ４１を介してエラーの発生を認識する。エラーの発生を認識したオペレータは、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２を設定する。設定された故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２は、ＳＶＰ制御部１７１６に出力され、ＳＶＰ制御部１７１６を介してアクセス制御回路１７１２の固定情報格納部１７２５に格納される。
【０１７８】
図１９は、第２の実施形態における各種故障情報が表す意味を説明する図である。故障情報ＣＳ  ＳＥＬ［１：０］は、エラー（故障）が検出された場所を表している。故障情報ＣＳ  ＳＥＬ［０］は、ＳＤＲＡＭモジュール２３ａのランク０で故障が検出されたか否かを表している。例えばＣＳ  ＳＥＬ［０］の値が０の論理値である場合は、ＳＤＲＡＭモジュール２３ａ（スロット１）のランク０でエラーが検出されていないことを表し、１の論理値の場合はＳＤＲＡＭモジュール２３ａ（スロット１）のランク０でエラーが検出されたことを表している。同様に、故障情報ＣＳ  ＳＥＬ［１］は、ＳＤＲＡＭモジュール２３ａのランク１で故障が検出されたか否かを表している。例えばＣＳ  ＳＥＬ［１］の値が０の場合は、ＳＤＲＡＭモジュール２３ａ（スロット１）のランク１でエラーが検出されていないことを表し、値が１の場合はＳＤＲＡＭモジュール２３ａ（スロット１）のランク１でエラーが検出されたことを表している。
【０１７９】
故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２は、各ランクについて冗長側への切換が有効か否かを表している。故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１は、ＳＤＲＡＭモジュール２３ｂのランク０への切換が有効か否かを表している。ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１の値が０の場合は、ＳＤＲＡＭモジュール２３ｂのランク０への切換が無効であることを表し、ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１の値が１の場合は、ＳＤＲＡＭモジュール２３ｂのランク０への切換が有効であることを表す。同様に、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２は、ＳＤＲＡＭモジュール２３ｂのランク１への切換が有効か否かを表している。ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２の値が０の場合は、ＳＤＲＡＭモジュール２３ｂのランク１への切換が無効であることを表し、ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２の値が１の場合は、ＳＤＲＡＭモジュール２３ｂのランク１への切換が有効であることを表す。
【０１８０】
図２０は、第２の実施形態におけるＣＳアドレス変換回路の動作を説明する図である。ＣＳアドレス変換回路１７２３の動作は、入力した各種情報の内容からＣＳアドレス変換回路１７２３が有効とするチップセレクト信号を表形式（変換表）で表している。図２０中に表記の「＋ＭＳ−ＳＴＲ」、「＋ＭＳ−ＦＣＨ」、「ＣＮＴＬ１（ＣＳ０）」、「ＣＮＴＬ１（ＣＳ１）」、及び「＋ＣＳ−ＡＤＤ［０］」等が表す意味は上述したため、説明は省略する。また、「ケース１」〜「ケース３」については、後述する。
【０１８１】
図２０に示すように、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２の各値が共に０、つまり冗長無効時は、書き込みアクセス用のチップセレクト信号はチップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値に対応する通常側、冗長側ともに有効とされる。読み出しアクセス用のチップセレクト信号は、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値に対応する通常側のみ有効とされる。書き込みアクセスは通常側及び冗長側で共に実行させ、読み出しアクセスは通常側のみ実行させる。
【０１８２】
冗長切換時は、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２のうちの少なくとも一つの値が１に設定されている。冗長切換時には、状況に応じて、以下のようにチップセレクト信号が有効とされる。状況別に分けて具体的に説明する。
【０１８３】
状況は、有効となっている命令の種類、つまり命令＋ＭＳ−ＳＴＲが有効か否かと、故障情報ＣＳ  ＳＥＬ［１：０］のうちで値が１となっているビットとによって分けることができる。第２の実施形態では、これらの他に、エラーが検出された場所に応じた状況分けも行っている。
【０１８４】
第２の実施形態では、エラーが検出される場所は、ＳＤＲＡＭモジュール２３ａのランク０（ケース１）、及びＳＤＲＡＭモジュール２３ａのランク１（ケース２）の計２ケースを想定している。各ケースは、対応するランクを構成するメモリ素子２３１のうちの少なくとも１個が故障する他に、ランクに信号を供給する信号線の不具合によっても生じる可能性がある。例えばケース１は、ＳＤＲＡＭモジュール２３ａのランク０にチップセレクト信号を供給する信号線１７６１の不具合によっても生じる。ケース２も同様に、ＳＤＲＡＭモジュール２３ａのランク１にチップセレクト信号を供給する信号線１７６２の不具合によっても生じる。データバス１７４０の信号線群１７４１に不具合が生じた場合、ケース１及び２が共に発生する。同様に、ＳＤＲＡＭモジュール２３ａの各ランクへの各種命令、及び各種アドレス信号を供給するための信号線群１７７１に不具合が生じた場合も、ケース１及び２が共に発生する。何れの不具合も、エラーを発生させる原因となる。
【０１８５】
他方のＳＤＲＡＭモジュール２３ｂでも同様に、信号線、或いは信号線群の不具合によってエラーが発生する。ランク０にチップセレクト信号を供給する信号線１７６３、ランク１にチップセレクト信号を供給する信号線１７６４、データバス１７５０の信号線群１７５１、或いはＳＤＲＡＭモジュール２３ｂの各ランクへの各種命令、及び各種アドレス信号を供給するための信号線群１７７２のうちの何れかに不具合が生じた場合、ＳＤＲＡＭモジュール２３ｂのランク０或いは１から読み出されたデータにエラーが発生する。
【０１８６】
第２の実施形態では、冗長無効時にエラーを検出した場合、エラーを検出したＳＤＲＡＭモジュール２３ａのランクに応じて、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２のうちの一方の値のみ１に設定し、冗長有効に切り換える。冗長有効にした後、再度エラーを検出すると、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２のうちの残りの値を１に設定する。従って、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及び２の各値が共に１とさせるのは、各値の組み合わせが“０１”或いは“１０”となっている場合としている。これは、次のエラーの検出時とは、ＳＤＲＡＭモジュール２３ａの２つのランクでそれぞれエラーが検出された場合となる。「ケース３」は、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及び２の各値として共に１が設定される状況である。
【０１８７】
ＳＤＲＡＭモジュール２３ａのランク０から読み出したデータからエラーが検出された場合（ケース１に相当）、ＥＣＣ部１７１５は、故障情報ＣＳ  ＳＥＬ［１：０］として“０１”を設定する。また、この場合には、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２としては“１０”がオペレータにより設定される。
【０１８８】
同様に、ＳＤＲＡＭモジュール２３ａのランク１から読み出したデータからエラーが検出された場合（ケース２に相当）、ＥＣＣ部１７１５は、故障情報ＣＳ  ＳＥＬ［１：０］として“１０”を設定する。故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２としては“０１”がオペレータにより設定される。
【０１８９】
故障情報ＣＳ  ＳＥＬ［１：０］として“０１”或いは“１０”を設定した後、ＳＤＲＡＭモジュール２３の何れかのランクから読み出したデータからエラーが検出された場合、ＥＣＣ部１７１５は、故障情報ＣＳ  ＳＥＬ［１：０］として“１１”を設定する。また、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２としては“１１”がオペレータにより設定される。
【０１９０】
第２の実施形態では、異なるＳＤＲＡＭモジュール２３間で通常側、冗長側のランクを組み合わせている。これは、より高い信頼性を実現させるためである。例えば第１の実施形態と同様に、ＳＤＲＡＭモジュール２３ａのランク０を通常側、ＳＤＲＡＭモジュール２３ａのランク１を冗長側とした場合、信号線１７６１、または１７６２、或いは信号線群１７７１、または１７４１の不具合によってＳＤＲＡＭモジュール２３ａに格納されたデータは事実上、喪失してしまう。しかし、冗長側をＳＤＲＡＭモジュール２３ｂのランク０にすると、信号線１７６１及び１７６２、並びに信号線群１７７１及び１７４１の何れに不具合が発生してもデータの喪失は回避される。このため、より高い信頼性が実現されることとなる。通常側、冗長側のＳＤＲＡＭモジュール２３にそれぞれ異なる信号線、及び信号線群を接続することは、より高い信頼性の実現に極めて有効である。
【０１９１】
エラーはアクセスに必要な何れかの信号線、及び信号線群の不具合によっても生じる。これは、冗長有効にする必要がある障害は、何れかのメモリ素子２３１に生じた故障のみではないことを意味する。冗長有効にするうえでの契機とする障害とは、メモリ素子２３１に生じた、訂正可能なエラーを発生させる故障のみには限定されない。つまり、メモリ素子２３１にアクセスするために必要な、各信号線、及び信号線群を含むハードウェア信号線群の不具合も含める必要がある。
【０１９２】
第２の実施形態では、各組み合わせの冗長側のランクはそれぞれ１つとしている。このため、冗長側のランクに発生した訂正不可能なエラー、つまりケース３は事実上対応範囲外となる。これは以下の理由からである。
【０１９３】
第２の実施形態では、対応すべきエラーは訂正不可能なエラーとしており、訂正可能なエラーの発生によって冗長無効から冗長有効に切り換えない。ケース１或いは２の発生によって冗長有効に切り換えた状況では、冗長側のランクにのみ完全なデータが保存されており、メモリパトロールは冗長側のランクのみを対象に行われる。このため、冗長有効に切り換えた状況における、冗長側のランクでの訂正不可能なエラーの発生は、冗長側のランクから正確なデータが読み出せなくなったことを意味する。従って、冗長有効後に訂正不可能なエラーが発生した状況であるケース３では、冗長側のランクから正確なデータが読み出せなくなり、事実上、データが喪失する。データの喪失を回避するために、組み合わせ毎に冗長側のランクを２つ以上用意するか、或いは各組み合わせが冗長側として使用可能な共有のランクを１つ以上用意することにより、冗長側の１ランクに発生したエラーに対応可能とさせても良い。
【０１９４】
上記したように、第２の実施形態ではエラーの発生を３ケースに分けている。このことから以降、有効とされた命令の種類別、及びチップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値別に、ケース１〜３でそれぞれ有効とされるチップセレクト信号について、更に図２０を参照して具体的に説明する。
【０１９５】
始めに、命令＋ＭＳ−ＳＴＲが有効、且つチップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が０の場合に有効とされるチップセレクト信号について説明する。この場合では、ケース１〜３の全てでＳＤＲＡＭモジュール２３ｂのランク０に供給されるチップセレクト信号ＣＮＴＬ１（／ＣＳ１）が有効とされる。ケース３でＳＤＲＡＭモジュール２３ｂのランク０に供給されるチップセレクト信号ＣＮＴＬ１（／ＣＳ１）が有効とされるのは、ケース１及び２の何れでもＳＤＲＡＭモジュール２３ｂのランク０に供給されるチップセレクト信号ＣＮＴＬ１（／ＣＳ１）が有効とされているからである。つまりケース３の状況時、ＳＤＲＡＭモジュール２３ｂのランク０には最新のデータが保存されているからである。ケース２では、ＳＤＲＡＭモジュール２３ａのランク０に供給されるチップセレクト信号ＣＮＴＬ１（／ＣＳ０）も有効とされる。これは、ケース２ではＳＤＲＡＭモジュール２３ａのランク０でエラーが検出されていないからである。
【０１９６】
命令＋ＭＳ−ＳＴＲが有効、且つチップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が１の場合、ケース１〜３の全てでＳＤＲＡＭモジュール２３ｂのランク１に供給されるチップセレクト信号ＣＮＴＬ２（／ＣＳ１）が有効とされる。ケース３でＳＤＲＡＭモジュール２３ｂのランク１に供給されるチップセレクト信号ＣＮＴＬ２（／ＣＳ１）が有効とされるのは、ケース１及び２の何れでもＳＤＲＡＭモジュール２３ｂのランク０に供給されるチップセレクト信号ＣＮＴＬ２（／ＣＳ１）が有効とされているからである。ケース１では、ＳＤＲＡＭモジュール２３ａのランク１に供給されるチップセレクト信号ＣＮＴＬ２（／ＣＳ０）も有効とされる。これは、ケース１ではＳＤＲＡＭモジュール２３ａのランク１でエラーが検出されていないからである。
【０１９７】
命令＋ＭＳ−ＳＴＲが無効、つまり命令＋ＭＳ−ＦＣＨが有効で、且つチップセレクトデータＣＳ−ＡＤＤ［０］の値が０の場合、チップセレクト信号は、ケース１ではＳＤＲＡＭモジュール２３ｂのランク１に供給されるものが有効となる。これは、通常側であるＳＤＲＡＭモジュール２３ａのランク０でエラーが検出されているからである。同様に、ケース２ではＳＤＲＡＭモジュール２３ａのランク０のチップセレクト信号ＣＮＴＬ１（／ＣＳ０）、ケース３ではＳＤＲＡＭモジュール２３ｂのランク１のチップセレクト信号ＣＮＴＬ１（／ＣＳ１）がそれぞれ有効とされる。
【０１９８】
命令＋ＭＳ−ＦＣＨが有効、且つチップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が１の場合、チップセレクト信号は、ケース１ではＳＤＲＡＭモジュール２３ａのランク１に供給されるものが有効となる。これは、通常側であるＳＤＲＡＭモジュール２３ａのランク１でエラーが検出されているからである。ケース２及び３では共に、ＳＤＲＡＭモジュール２３ｂのランク１のチップセレクト信号ＣＮＴＬ２（／ＣＳ１）が有効となる。
【０１９９】
上記のように、命令＋ＭＳ−ＦＣＨが有効の場合、ケース、及びチップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値に応じて、チップセレクト信号が有効とされる。有効とされるチップセレクト信号は、データが保存されているＳＤＲＡＭモジュール２３のランクに供給されるものである。
【０２００】
図１６は、第２の実施形態におけるＣＳアドレス変換回路の構成を説明する図である。図１６に表すように、第２の実施形態におけるＣＳアドレス変換回路１７２３は、デコーダ１８０１、レジスタ１８０２、書込変換回路１８０３及び読出変換回路１８０４を備えている。デコーダ１８０１は、起動データ＋ＭＡＣ−ＧＯとオペレーションコード＋ＭＡＣ−ＯＰＣＯＤＥを入力し、起動データ＋ＭＡＣ−ＧＯが有効となっていた場合に、オペレーションコード＋ＭＡＣ−ＯＰＣＯＤＥをデコードする。デコーダ１８０１は、命令＋ＭＳ−ＳＴＲ及び＋ＭＳ−ＦＣＨのうちの一つを有効（アクティブ）、つまりその論理値を１にする。レジスタ１８０２は、アドレスデータ＋ＭＡＣ−ＡＤＤ［３０：２９］を格納する。書込変換回路１８０３は、デコーダ１８０１から命令＋ＭＳ−ＳＴＲ、レジスタ１８０２からアドレスデータ＋ＭＡＣ−ＡＤＤ［２９］、つまりチップセレクトデータ＋ＣＳ−ＡＤＤ［０］、及び故障情報格納部１７２５から各故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１、ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２及びＣＳ  ＳＥＬ［１：０］を入力する。これら入力したデータを用いて書き込みアクセス時のチップセレクト信号を生成する。
【０２０１】
読出変換回路１８０４は、デコーダ１８０１から命令＋ＭＳ−ＦＣＨ、レジスタ１８０２からチップセレクトデータＣＳ−ＡＤＤ［０］、及び故障情報格納部１７２５から各故障情報を入力する。それにより、これら入力したデータを用いて読み出しアクセス時のチップセレクト信号を生成する。
【０２０２】
書込変換回路１８０３及び読出変換回路１８０４の構成について、図１７及び図１８を参照して具体的に説明する。
【０２０３】
図１７は、書込変換回路の構成を説明する図である。
図１７の書込変換回路１８０３は、ＮＯＴゲート１９１１、７個のＡＮＤゲート１９２１〜１９２７、２個のＮＡＮＤゲート１９２８及び１９２９、１個のＮＯＲゲート１９４１、及び５個のＯＲゲート１９４２〜１９４６を備えた構成である。詳細な構成、及びその動作の説明は、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値で分けて行う。
【０２０４】
先ず、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が０の場合に係わる構成、及びその動作について説明する。
【０２０５】
故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２は、それぞれＮＯＲゲート１９４１に入力される。ＮＯＲゲート１９４１は、入力した情報の否定論理和を出力する。ＮＯＲゲート１９４１が出力する否定論理和の値は、冗長無効時、つまりALDR ENABLEBIT1とALDR ENABLE BIT2とがともに０の場合にのみ１となる。
【０２０６】
ＮＯＲゲート１９４１から出力された否定論理和は、ＡＮＤゲート１９２１に入力する。ＡＮＤゲート１９２１は、ＮＯＲゲート１９４１から入力した否定論理和と、命令＋ＭＳ−ＳＴＲとの論理積を出力する。書き込みアクセス時、命令＋ＭＳ−ＳＴＲの値は１となるため、冗長無効時は、ＡＮＤゲート１９２１から出力される論理積の値は１となる。
【０２０７】
ＡＮＤゲート１９２１から出力された論理積は、ＡＮＤゲート１９２２に入力される。ＡＮＤゲート１９２２は、ＡＮＤゲート１９２１から入力した論理積の他に、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の否定をＮＯＴゲート１９１１から入力する。ＡＮＤゲート１９２２は、ＡＮＤゲート１９２１からの論理積とチップセレクトデータ＋ＣＳ−ＡＤＤ［０］の否定の論理積（図１７中「＋ＮＯＲＭ＿ＳＴＲ＿ＣＮＴＬ１＿ＣＳ０」と表記）を出力する。ＡＮＤゲート１９２２が出力する論理積ＮＯＲＭ＿ＳＴＲ＿ＣＮＴＬ１＿ＣＳ０は、ＯＲゲート１９４３及び１９４４にそれぞれ出力される。ＯＲゲート１９４３が出力する、論理積ＮＯＲＭ＿ＳＴＲ＿ＣＮＴＬ１＿ＣＳ０とＡＮＤゲート１７２３が出力する論理積ＮＯＲＭ＿ＳＴＲ＿ＣＮＴＬ２＿ＣＳ０の論理和は、ＳＤＲＡＭモジュール２３ａのランク０に供給されるチップセレクト信号ＣＮＴＬ１（／ＣＳ０）となる。ＯＲゲート１９４４が出力する、論理積ＮＯＲＭ＿ＳＴＲ＿ＣＮＴＬ１＿ＣＳ０とＡＮＤゲート１７２４が出力する論理積ＡＬＤＲ＿ＳＴＲ＿ＣＮＴＬ１＿ＣＳ１の論理和は、ＳＤＲＡＭモジュール２３ｂのランク０に供給されるチップセレクト信号ＣＮＴＬ１（／ＣＳ１）となる。このため、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が０で且つ冗長無効時には、ＳＤＲＡＭモジュール２３ａ及び２３ｂの各ランク０に供給されるチップセレクト信号は共に有効とされる。
【０２０８】
冗長切換時は、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２のうちの少なくとも一つは１となる。このため、この場合にＡＮＤゲート１９２２が出力する論理積の値は０となる。
【０２０９】
ＯＲゲート１９４２は、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩ２を入力し、両者の論理和を出力する。ＯＲゲート１９４２が出力する論理和は、ＡＮＤゲート１９２４に入力される（ALDR ENABLE BIT1あるいはALDR ENABLE BIT2が「１」の場合／冗長切換時、１９４２出力が「１」）。ＡＮＤゲート１９２４は、ＯＲゲート１９４２からの論理和の他に、ＮＯＴゲート１９１１からチップセレクトデータ＋ＣＳ−ＡＤＤ［０］の否定、及び命令＋ＭＳ−ＳＴＲを入力し、それらの論理積（図１７中「＋ＡＬＤＲ＿ＳＴＲ＿ＣＮＴＬ１＿ＣＳ１」と表記）を出力する。ＡＮＤゲート１９２４が出力する論理積ＡＬＤＲ＿ＳＴＲ＿ＣＮＴＬ１＿ＣＳ１の値は、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が０のときに１となる。
【０２１０】
ＡＮＤゲート１９２４が出力する論理積は、ＯＲゲート１９４４に出力される。このため、ケース１〜３の何れかによって冗長切換時となった場合であっても、ＳＤＲＡＭモジュール２３ｂのランク０に供給されるチップセレクト信号ＣＮＴＬ１（／ＣＳ１)は有効となる。
【０２１１】
ＡＮＤゲート１９２４が出力する論理積は、ＡＮＤゲート１９２６にも入力される。ＡＮＤゲート１９２６は、ＮＡＮＤゲート１９２８の出力する、命令＋ＭＳ−ＤＴＲ、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＣＳ  ＳＥＬ［０］の否定論理積を入力し、ＡＮＤゲート１９２４からの論理積との論理積（図１７中「＋ＡＬＤＲ＿ＳＴＲ＿ＣＮＴＬ１＿ＣＳ０」と表記）をＯＲゲート１９４３に出力する。
【０２１２】
ＮＡＮＤゲート１９２８は、命令＋ＭＳ−ＳＴＲ、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１、及び故障情報ＣＳ  ＳＥＬ［０］を入力し、それらの否定論理積を出力する。ＮＡＮＤゲート１９２８が出力する否定論理積の値は、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１、及び故障情報ＣＳ−ＳＥＬ［０］の各値が共に０となるケース２のときに１となる。それにより、ケース２のときにはＳＤＲＡＭモジュール２３ａのランク０に供給されるチップセレクト信号は有効となる。一方、ケース１及びケース３では、故障情報ＣＳ  ＳＥＬ［０］の値は１であるため、ＳＤＲＡＭモジュール２３ａのランク０に供給されるチップセレクト信号は無効となる。
【０２１３】
このようにして、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が０の場合、図２０に表す変換表に従ってチップセレクト信号が有効とされる。チップセレクトデータＣＳ−ＡＤＤ［０］の値が１の場合にも、以下のようにして、図２０に表す変換表に従ってチップセレクト信号が有効とされる。
【０２１４】
ＡＮＤゲート１９２３は、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］、及びＡＮＤゲート１９２１の出力する論理積を入力し、それらの論理積（図１７中「＋ＮＯＲＭ＿ＳＴＲ＿ＣＮＴＬ２＿ＣＳ０」と表記）を出力する。ＡＮＤゲート１９２３が出力する論理積は、ＯＲゲート１９４５及び１９４６にそれぞれ出力される。
【０２１５】
ＯＲゲート１９４５の出力する論理和は、ＳＤＲＡＭモジュール２３ａのランク１に供給されるチップセレクト信号ＣＮＴＬ２（／ＣＳ０）となる。ＯＲゲート１９４６の出力する論理和は、ＳＤＲＡＭモジュール２３ｂのランク１に供給されるチップセレクト信号ＣＮＴＬ２（／ＣＳ１）となる。このため、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が１の冗長無効時には、ＳＤＲＡＭモジュール２３ａ及び２３ｂの各ランク１に供給されるチップセレクト信号は共に有効とされる。
【０２１６】
冗長切換時は、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２のうちの少なくとも一つは１となる。このため、ＡＮＤゲート１９２３が出力する論理積の値は常に０となる。
【０２１７】
チップセレクトデータ＋ＣＳ−ＡＤＤ［０］は、ＡＮＤゲート１９２５に入力される。ＡＮＤゲート１９２５は、ＣＳ−ＡＤＤ［０］の他に、ＯＲゲート１９４２の論理和、及び命令＋ＭＳ−ＳＴＲを入力し、それらの論理積（図１７中「＋ＡＬＤＲ＿ＳＴＲ＿ＣＮＴＬ２＿ＣＳ１」と表記）を出力する。このため、ＡＮＤゲート１９２５が出力する論理積の値は、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が１の冗長切換時に常に１となる。ＡＮＤゲート１９２５の論理積は、ＯＲゲート１９４６に出力される。このため、ケース１〜３の何れの場合であってもＳＤＲＡＭモジュール２３ｂのランク１に供給されるチップセレクト信号は有効となる。
【０２１８】
ＡＮＤゲート１９２５が出力する論理積は、ＡＮＤゲート１９２７にも入力される。ＡＮＤゲート１９２７は、ＮＡＮＤゲート１９２９の出力する否定論理積を入力し、ＡＮＤゲート１９２５からの論理積との論理積（図１７中「＋ＡＬＤＲ＿ＳＴＲ＿ＣＮＴＬ２＿ＣＳ０」と表記）をＯＲゲート１９４５に出力する。
【０２１９】
ＮＡＮＤゲート１９２９は、命令＋ＭＳ−ＳＴＲ、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２、及び故障情報ＣＳ  ＳＥＬ［１］を入力し、それらの否定論理積を出力する。このため、ＮＡＮＤゲート１９２９の否定論理積の値は、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２、及び故障情報ＣＳ  ＳＥＬ［１］の各値が共に１となるケース２及びケース３のときには０となる。つまり、ＮＡＮＤ］ゲート１９２９の否定論理積の値は、ケース１のときのみ１となる。その結果、ケース１のときのみＳＤＲＡＭモジュール２３ａのランク１に供給されるチップセレクト信号は有効となる。このようなことから、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が１の場合にも、チップセレクト信号は図２０に表す変換表に従って有効とされる。
【０２２０】
チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が１の場合、ＡＮＤゲート１９２２、１９２４及び１９２６の各論理積は常に０となる。このため、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が１の状況下では、ＳＤＲＡＭモジュール２３ａ及び２３ｂの各ランク０のチップセレクト信号は有効とならない。同様に、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が０の場合、ＡＮＤゲート１９２３、１９２５及び１９２７の各論理積は常に０となる。このため、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が０の状況下では、ＳＤＲＡＭモジュール２３ａ及び２３ｂの各ランク１のチップセレクト信号は有効とならない。
【０２２１】
図１８は、読出変換回路の構成を説明する図である。次に図１８を参照して、読出変換回路１８０４の構成について詳細に説明する。
【０２２２】
読出変換回路１８０４は、図１８に表すように、ＮＯＴゲート２０１１、７個のＡＮＤゲート２０２１〜２０２７、ＮＯＲゲート２０３１、３個のＯＲゲート２０３２〜２０３４、２個のバッファ２０４１及び２０４２を備えた構成である。読出変換回路１８０４の具体的な構成、及び動作は、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値で分けて説明する。
【０２２３】
先ず、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が０の場合に対応した構成、及び動作について詳細に説明する。
【０２２４】
故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２は、それぞれＮＯＲゲート２０３１に入力される。ＮＯＲゲート２０３１は、入力した故障情報の否定論理和を出力する。ＮＯＲゲート２０３１が出力する否定論理和の値は、冗長無効時にのみ１となる。
【０２２５】
ＮＯＲゲート２０３１からの否定論理和は、ＡＮＤゲート２０２１に入力される。ＡＮＤゲート２０２１は、ＮＯＲゲート２０３１からの否定論理和と、命令＋ＭＳ−ＦＣＨとの論理積を出力する。読み出しアクセス時、命令＋ＭＳ−ＦＣＨの値は１となる。このため、冗長無効時は、ＮＯＲゲート２０３１の論理積の値は１となる。
【０２２６】
ＮＯＲゲート２０３１の論理積は、ＡＮＤゲート２０２２に入力される。ＡＮＤゲート２０２２は、ＮＯＲゲート２０３１からの論理積の他に、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の否定をＮＯＴゲート２０１１から入力する。それにより、ＡＮＤゲート２０２２は、ＡＮＤゲート２０２１の論理積とチップセレクトデータ＋ＣＳ−ＡＤＤ［０］の否定の論理積（図１８中「＋ＮＯＲＭ＿ＦＣＨ＿ＣＮＴＬ１＿ＣＳ０」と表記）を出力する。ＡＮＤゲート２０２２が出力する論理積は、ＯＲゲート２０３３に出力される。ＯＲゲート２０３３の出力する論理和は、ＳＤＲＡＭモジュール２３ａのランク０に供給されるチップセレクト信号ＣＮＴＬ１（／ＣＳ０）となる。チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が０の冗長無効時には、ＳＤＲＡＭモジュール２３ａのランク０に供給されるチップセレクト信号は有効とされる。
【０２２７】
冗長切換時は、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２のうちの少なくとも一つは１となる。このため、ＡＮＤゲート２０２２が出力する論理積の値は常に０となる。
【０２２８】
ＡＮＤゲート２０２４は、ＮＯＴゲート２０１１からチップセレクトデータ＋ＣＳ−ＡＤＤ［０］の否定、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１、命令＋ＭＳ−ＦＣＨ及び故障情報ＣＳ  ＳＥＬ［０］を入力し、それらの論理積（図１８中「＋ＡＬＤＲ＿ＦＣＨ＿ＣＮＴＬ１＿ＣＳ１」と表記）を出力する。チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が０の場合、ＡＮＤゲート２０２４の出力する論理積の値が１となるには、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１、及び故障情報ＣＳ  ＳＥＬ［０］の各値が共に１でなければならない。故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及び故障情報ＣＳ  ＳＥＬ［０］の各値が共に１となるのは、ケース１及びケース３のときである。ＡＮＤゲート２０２４の出力する論理積は、バッファ２０４１に入力する。バッファ２０４１の出力は、ＳＤＲＡＭモジュール２３ｂのランク０のチップセレクト信号ＣＮＴＬ１（／ＣＳ１）となる。このようなことから、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が０の状況下では、ケース１及びケース３でＳＤＲＡＭモジュール２３ｂのランク０のチップセレクト信号が有効とされる。
【０２２９】
ＯＲゲート２０３２は、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２を入力し、その論理和を出力する。ＯＲゲート２０３２が出力する論理和は、ＡＮＤゲート２０２６に入力される。ＡＮＤゲート２０２６は、ＯＲゲート２０３２からの論理和の他に、ＮＯＴゲート２０１１からチップセレクトデータ＋ＣＳ−ＡＤＤ［０］の否定、ＡＮＤゲート２０２４の出力する論理積の否定、及び命令＋ＭＳ−ＦＣＨを入力し、それらの論理積（図１８中「＋ＡＬＤＲ＿ＦＣＨ＿ＣＮＴＬ１＿ＣＳ０」と表記）をＯＲゲート２０３３に出力する。ＡＮＤゲート２０２４が出力する論理積の値は、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が０の冗長切換時、ＡＮＤゲート２０２４の論理積の値が０であれば１となる。アンドゲート２０２４の論理積の値が０となるのはケース２のときである。このため、チップセレクトデータＣＳ−ＡＤＤ［０］の値が０の状況下では、ケース２でＳＤＲＡＭモジュール２３ａのランク０のチップセレクト信号ＣＮＴＬ１（／ＣＳ０）が有効とされる。
【０２３０】
冗長無効時は、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１の値は０であることから、ＡＮＤゲート２０２４の論理積の値は０となり、ＳＤＲＡＭモジュール２３ｂのランク０のチップセレクト信号ＣＮＴＬ１（／ＣＳ１）は有効となる。また、ケース１及びケース３の冗長切換時、ＡＮＤゲート２０２４の出力する論理積の値は１であることから、ケース２でＳＤＲＡＭモジュール２３ａのランク０のチップセレクト信号ＣＮＴＬ１（／ＣＳ０）は無効となる。
【０２３１】
以降は、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が１の場合に対応した構成、及び動作について詳細に説明する。
【０２３２】
ＡＮＤゲート２０２３は、チップセレクトデータＣＳ−ＡＤＤ［０］、及びＡＮＤゲート２０２１の論理積を入力し、それらの論理積（図１８中「＋ＮＯＲＭ＿ＦＣＨ＿ＣＮＴＬ２＿ＣＳ０」と表記）をＯＲゲート２０３４に出力する。ＯＲゲート２０３４の出力する論理和は、ＳＤＲＡＭモジュール２３ａのランク１のチップセレクト信号ＣＮＴＬ２（／ＣＳ０）となる。ＡＮＤゲート２０２１の論理積の値は、冗長無効時に１となる。このため、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が１の冗長無効時、ＳＤＲＡＭモジュール２３ａのランク１のチップセレクト信号ＣＮＴＬ２（／ＣＳ０）が有効となる。
【０２３３】
ＡＮＤゲート２０２５は、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２、命令＋ＭＳ−ＦＣＨ及び故障情報ＣＳ  ＳＥＬ［１］を入力し、それらの論理積（図１８中「＋ＡＬＤＲ＿ＦＣＨ＿ＣＮＴＬ２＿ＣＳ１」と表記）を出力する。チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が１の場合、ＡＮＤゲート２０２５の出力する論理積の値が１となるには、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２、及び故障情報ＣＳ  ＳＥＬ［１］の各値が共に１でなければならない。故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２及び故障情報ＣＳ  ＳＥＬ［１］の各値が共に１となるのは、ケース２及びケース３のときである。ＡＮＤゲート２０２５の出力する論理積＋ＡＬＤＲ＿ＦＣＨ＿ＣＮＴＬ２＿ＣＳ１は、バッファ２０４２に入力する。バッファ２０４２の出力は、ＳＤＲＡＭモジュール２３ｂのランク１のチップセレクト信号ＣＮＴＬ２（／ＣＳ１）となる。チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が１の状況下では、ケース２及びケース３でＳＤＲＡＭモジュール２３ｂのランク１のチップセレクト信号ＣＮＴＬ２（／ＣＳ１）が有効とされる。冗長無効時、及びケース１の冗長無効時は共に、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２の値は０となる。このため、各状況下では、ＳＤＲＡＭモジュール２３ｂのランク１のチップセレクト信号ＣＮＴＬ２（／ＣＳ１）は無効となる。
【０２３４】
ＡＮＤゲート２０２５の論理積の否定は、ＡＮＤゲート２０２７に出力される。ＡＮＤゲート２０２７は、ＡＮＤゲート２０２５の論理積の否定の他に、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］、命令＋ＭＳ−ＦＣＨ及びＯＲゲート２０３２の論理和を入力し、それらの論理積（図１８中「＋ＡＬＤＲ＿ＦＣＨ＿ＣＮＴＬ２＿ＣＳ１」と表記）をＯＲゲート２０３４に出力する。チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が１の状況下では、ＡＮＤゲート２０２５の出力する論理積の値が０となるのはケース１のときである。このため、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が１の状況下では、ケース１でＳＤＲＡＭモジュール２３ａのランク１のチップセレクト信号（信号名特定）が有効となる。ケース２及びケース３では、ＡＮＤゲート２０２５の論理積の値が１となり、ＡＮＤゲート２０２７の論理積の値は０となる。このため、ケース２及びケース３では、ＳＤＲＡＭモジュール２３ａのランク１のチップセレクト信号ＣＮＴＬ２（／ＣＳ０）は無効となる。
【０２３５】
チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が１の状況下では、ＡＮＤゲート２０２２、２０２４及び２０２６の各論理和の値は常に０となる。このため、その状況下では、ＳＤＲＡＭモジュール２３ａ及び２３ｂの各ランク０に供給されるチップセレクト信号ＣＮＴＬ１（／ＣＳ０）、ＣＮＴＬ１（／ＣＳ１）は有効とならない。同様に、チップセレクトデータ＋ＣＳ−ＡＤＤ［０］の値が０の状況下では、ＡＮＤゲート２０２３、２０２５及び２０２７の各論理和の値は常に０となる。このため、その状況下では、ＳＤＲＡＭモジュール２３ａ及び２３ｂの各ランク１に供給されるチップセレクト信号ＣＮＴＬ２（／ＣＳ０）、ＣＮＴＬ２（／ＣＳ１）は有効とならない。このようなことから、読み出しアクセス時、読出変換回路１８０４は、図２０に表す変換表に従ってチップセレクト信号を有効とさせることとなる。
【０２３６】
図２１は、メモリパトロールのために第２の実施形態における記憶処理装置が行う制御処理の流れの例を表すフローチャートである。次に図２１を参照して、メモリパトロールのために記憶処理装置１７１０が行う動作について詳細に説明する。メモリパトロールは、コンソール３へのオペレータの操作によりＳＶＰ４２が出力する命令によって開始される。
【０２３７】
先ず、ステップＳ２０１では、記憶処理装置１７１０はＳＣＩ４３を介してＳＶＰ４２からメモリパトロールの開始を指示する命令を入力し、メモリパトロールを開始させる。メモリパトロール開始を指示する命令は、ＳＶＰ制御部１７１６により処理され、入力回路１７１１はＳＶＰ制御部１７１６に指定された読み出しアクセス用の命令を出力する。ステップＳ２０２では、記憶処理装置１７１０は入力回路１７１１の出力した命令に従って、メモリパトロールのためのアクセス（読み出しアクセス）を行う。
【０２３８】
入力回路１７１１は、第１の実施形態と同様に、例えばアドレスデータ＋ＭＡＣ−ＡＤＤ［３０：０］格納用のアドレスレジスタ、及びそのアドレスレジスタの値をインクリメントする機能を備えている。入力回路１７１１は、アドレスレジスタの値を用いて命令を生成する。メモリパトロールによるアクセスは、アドレスレジスタの値を用いて生成される命令がアクセス制御回路１７１２に入力されることによって実現される。
【０２３９】
メモリパトロールによるアクセスによってＳＤＲＡＭモジュール２３のランク０或いは１の各メモリ素子２３１から読み出されたデータは、データバス１７４０を介して、データ切換回路１７１３のレジスタ群１７３５の対応するレジスタ１７３６に出力される。各メモリ素子２３１に供給されたデータストローブ信号は、同様に、データバス１７４０を介してデータ切換回路１７１３のレジスタ群１７３５の対応するレジスタ１７３６に動作用の信号として供給される。それにより、各レジスタ１７３６には対応するメモリ素子２３１のデータが格納される。各レジスタ１７３６のデータはＥＣＣ部１７１５に出力され、エラーチェックが行われる。ステップＳ２０３では、ＥＣＣ部１７１５が訂正不可能なエラーを検出したか否かをＳＶＰ制御部１７１６が判定する。ＥＣＣ部１７１５が訂正不可能なエラーを検出した場合、その旨は例えばＳＶＰ４２を介してＳＶＰ制御部１７１６に通知される。このためＳ２０３の判定はＹＥＳとなってステップＳ２０４に移行する。一方、訂正不可能なエラーをＥＣＣ部１７１５が検出しなかった場合、Ｓ２０３の判定はＮＯとなってステップＳ２０９に移行する。
【０２４０】
ステップＳ２０９では、ＳＶＰ制御部１７１６は入力回路１７１１に指示して、次にデータを読み出すための命令を出力させる（図面表記と対応が異なる）。次のステップＳ２１０では、ＳＶＰ制御部１７１６は、メモリパトロールが完了したか否か判定する。入力回路１７１１は、例えばアドレスレジスタの値がＳＤＲＡＭモジュール２３によって決定された値よりも大きくなった場合に、その旨をＳＶＰ制御部１７１６に通知する。ＳＶＰ制御部１７１６は、例えば第１の組合せ及び第２の組み合わせに交互にアクセスさせるように、入力回路１７１１に命令を生成させる。入力回路からの通知があった場合、Ｓ２１０４の判定はＹＥＳとなり、ＳＶＰ制御部１７１６はここでメモリパトロールを終了させる。一方、入力回路からの通知がない場合、Ｓ２１０４の判定はＮＯとなってステップＳ２０２に戻る。ステップＳ２０２では、別の組み合わせからデータを読み出すメモリパトロールによるアクセスが行われる。
【０２４１】
ステップＳ２０４では、ＳＶＰ制御部１７１６はメモリパトロールによるアクセスを停止、つまり入力回路１７１１からの命令の出力を停止させる。次のステップＳ２０５では、ＳＶＰ制御部１７１６は、故障情報格納部１７２５に格納されている故障情報ＣＳ  ＳＥＬ［１：０］が“００”か否かを判定する。冗長無効時、ＣＳ  ＳＥＬ［１：０］の値は“００”である。このため、現在、冗長無効時であった場合、Ｓ２０５の判定はＹＥＳとなってステップＳ２０６に移行する。図２０に表記の１回目のルート」は、冗長無効時におけるエラーの検出を意味する。冗長無効時でなかった場合、つまり冗長切換時であった場合、Ｓ２０５の判定はＮＯとなってステップＳ２１３に移行する。図２０に表記の「２回目のルート」は冗長切換後におけるエラーの検出を意味する。
【０２４２】
ステップＳ２０６では、ＳＶＰ制御部１７１６は、ＥＣＣ部１７１５が出力した故障情報ＣＳ  ＳＥＬ［１：０］の値を判定する。ＣＳ  ＳＥＬ［１：０］の値が“０１”となっていた場合、つまりＳＤＲＡＭモジュール２３のランク０でエラーが検出されていた場合、その旨が判定され、ステップＳ２０７に移行する。一方、ＣＳ  ＳＥＬ［１：０］の値が“１０”となっていた場合、つまりＳＤＲＡＭモジュール２３のランク０でエラーが検出されていた場合、その旨が判定されてステップＳ２１１に移行する。
【０２４３】
ステップＳ２０７では、ＳＶＰ制御部１７１６は、ＥＣＣ部１７１５が出力する故障情報ＣＳ  ＳＥＬ［１：０］（このときの各値は“０１”である）を故障情報格納部１７２５に格納させる。続くステップＳ２０８では、ＳＶＰ制御部１７１６は、コンソール３のオペレータの操作によってＳＶＰ４２から出力される命令により、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２を故障情報格納部１７２５に格納する。このとき、格納される故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２の各値は“１０”である。故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２の格納が終了した後は、ステップＳ２０９に移行し、ＳＶＰ制御部１７１６は、入力回路１７１１に指示して、次にデータを読み出すための命令を出力させる。それにより、メモリパトロールによるアクセスが再開される。
【０２４４】
一方、ステップＳ２１１では、ＳＶＰ制御部１７１６は、ＥＣＣ部１７１５が出力する故障情報ＣＳ  ＳＥＬ［１：０］（このときの各値は“１０”である）を故障情報格納部１７２５に格納させる。続くステップＳ２１２では、ＳＶＰ制御部１７１６は、コンソール３のオペレータの操作によってＳＶＰ４２から出力される命令により、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２を故障情報格納部１７２５に格納する。このとき、格納される故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２の各値は“０１”である。故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２の格納が終了した後は、ステップＳ２０９に移行する。
【０２４５】
ステップＳ２０５でのＮＯの判定は、ＳＤＲＡＭ２３ａの何れか１ランクでエラーが検出されていることを意味する（「２回目のルート」との関係を説明のこと）。Ｓ２０５での判定がＮＯとなって移行するステップＳ２１３では、ＳＶＰ制御部１７１６は、ＥＣＣ部１７１５が出力する故障情報ＣＳ  ＳＥＬ［１：０］（このときの各値は“１１”である）を故障情報格納部１７２５に格納させる。続くステップＳ２１４では、ＳＶＰ制御部１７１６は、コンソール３のオペレータの操作によってＳＶＰ４２から出力される命令により、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２を故障情報格納部１７２５に格納する。このとき、格納される故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２の各値は“１１”である。その格納が終了した後は、ステップＳ２０９に移行する。
【０２４６】
このようにして、第２の実施形態では、記憶処理装置１７１０は、エラーの検出により、そのエラーが訂正可能な固定故障によるものか否か確認するためのリライトアクセスを実行することなく、検出したエラーに応じた冗長切換を行うようになっている。これは、何れかの信号線、或いは信号線群の不具合によってエラーが発生した可能性を考慮しているからである。信号線、或いは信号線群に発生した不具合は、継続的にエラーを発生させるのが普通である。そのため、第２の実施形態では、検出したエラーが訂正不可能なものか否かにより区別している。
【０２４７】
エラーの原因が信号線、或いは信号線群の不具合によるものか否かの判定は、信号線、及び信号線群の不具合を検出する仕組みを用意しなければ行うのが困難である。このことから、記憶処理装置１７１０は、エラーの検出により、リライトアクセスを実行するものであっても良い。また、冗長切換は、メモリパトロールの実行時以外でも行えるようにしても良い。例えば、メモリパトロールの実行時以外での冗長切換は、ＳＶＰ制御部１７１６の制御により行わせても良い。
【０２４８】
冗長切換後にエラーが検出される場所は、ＳＤＲＡＭモジュール２３ａのエラーが検出されていないランク、或いはＳＤＲＡＭモジュール２３ｂの何れかのランクとなる。ＳＤＲＡＭモジュール２３ｂの何れかのランクでのエラーの検出は、完全なデータが保存されている最後の１ランクからデータを正確に読み出せなくなることを意味する。つまりデータの喪失を意味する。第２の実施形態では、冗長切換後にエラーが検出された場所に係わらず、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２の各値を１にしている。しかし、ＳＤＲＡＭモジュール２３ｂでのエラーの検出はデータの喪失を意味することから、エラーを検出した場所に応じて実行すべき処理を変更するようにしても良い。つまり故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ１及びＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ２の各値を１にするのは、ＳＤＲＡＭモジュール２３ａのエラーが検出されていないランクからエラーが検出された場合のみとしても良い。ＳＤＲＡＭモジュール２３ｂの何れかのランクからエラーが検出された場合は、オペレータにＳＤＲＡＭモジュール２３の交換を促すメッセージを直ちに出力させるようにしても良い。
【０２４９】
＜第３の実施形態＞
上記第１及び第２の実施形態では、記憶処理装置は１個の部品（半導体装置）として実現し、コンピュータ（データ処理装置）上に実装させている。これに対し第３の実施形態は、記憶処理装置以外の装置も１個の部品（半導体装置）として実現し、コンピュータ上に実装させたものである。
【０２５０】
第３の実施形態でも第１及び第２の実施形態と同様に、既に説明したものと同じ、或いは基本的に同じと見なせるものには同一の符号を用いる。それにより、第３の実施形態は第２の実施形態から異なる部分に着目する形で説明する。
【０２５１】
図２２Ａ〜図２２Ｃは、第３の実施形態による記憶処理装置が適用されたコンピュータシステムの構成を説明する図である。図２２Ａ〜図２２Ｃのコンピュータシステム２４００は、プリント配線基板２４１０、コンソール３、外部制御部４、複数のＩ／Ｏユニット２４０２、及び複数のＣＨＥ（CHannel Element）２４０３を備えている。
【０２５２】
プリント配線基板２４０１は、例えばシステムボードである。システムボードは、ＣＰＵとメモリを搭載したモジュールである。Ｉ／Ｏユニット２４０２は、例えばデータを記憶する記憶装置、及び複数のスロットを備えたモジュールである。コンピュータシステム２４００を構成する１台のコンピュータは、プリント配線基板（以降「システムボード」）２４０１、及びＩ／Ｏユニット２４０２をそれぞれ１枚以上、収納したサーバとして実現されている。ＣＨＥ２４０３は、少なくともシステムボード２４０１とＩ／Ｏユニット２４０２間のデータ伝送を実現させる経路であり、例えばクロスバである。
【０２５３】
システムボード２４０１上には、複数のＳＤＲＡＭモジュール２３（スロット）、ＡＳＩＣ（Application Specific Integrated Circuit）２４１０、バス２４１１及びデータバス２４１２が実装されている。バス２４１１及びデータバス２４１２は、ＡＳＩＣ２４１０とＳＤＲＡＭモジュール２３間のデータ伝送の管理に用いられる。
【０２５４】
バス２４１１、ＳＤＲＡＭモジュール２３と接続された信号線群２４１１ａ及びバスバッファ２４１１ｂを備えている。バスバッファ２４１１ｂは、データ切換回路２４３３から出力されるデータを格納するバッファ２４１１ｃ、及びデータ切換回路２４３３に出力されるデータを格納するバッファ２４１１ｄを備えている。バッファ２４１１ｃは、選択情報＋ＷＲ−ＳＥＬの値が０であれば、データ切換回路２４３３から出力されるデータを格納する。バッファ２４１１ｄは、選択情報＋ＷＲ−ＳＥＬの値が１であれば、ＳＤＲＡＭモジュール２３側からのデータを格納する。この結果、選択情報＋ＷＲ−ＳＥＬの値が１の場合、データ切換回路２４３３からＳＤＲＡＭモジュール２３へのデータ出力のみが有効となり、選択情報＋ＷＲ−ＳＥＬの値が０の場合、ＳＤＲＡＭモジュール２３からデータ切換回路２４３３へのデータ出力のみが有効となる。バス２４１１は、選択情報＋ＷＲ−ＳＥＬの値に応じたバスバッファ２４１１ｂの動作により、１方向のみ有効とさせる。
【０２５５】
データバス２４１２も同様に、ＳＤＲＡＭモジュール２３の各ランクと接続された信号線群２４１２ａ及びバスバッファ２４１２ｂを備えている。バスバッファ２４１２ｂも同様に、データ切換回路２４３３から出力されたデータを格納するバッファ２４１２ｃ、及びＳＤＲＡＭモジュール２３から読み出されたデータを格納するバッファ２４１２ｄを備えている。バッファ２４１２ｃは、選択情報＋ＷＲ−ＳＥＬの値が０であれば、データ切換回路２４３３から出力されるデータを格納する。バッファ２４１２ｄは、選択情報＋ＷＲ−ＳＥＬの値が１であれば、ＳＤＲＡＭモジュール２３から出力された読み出しデータを格納する。この結果、選択情報＋ＷＲ−ＳＥＬの値が１の場合、データ切換回路２４３３からＳＤＲＡＭモジュール２３へのデータ出力のみが有効となり、選択情報＋ＷＲ−ＳＥＬの値が０の場合、ＳＤＲＡＭモジュール２３からデータ切換回路２４３３へのデータ出力のみが有効となる。データバス２４１２は、選択情報＋ＷＲ−ＳＥＬの値に応じたバスバッファ８０２ｂの動作により、１方向のみ有効とさせる。
【０２５６】
ＡＳＩＣ２４１０は、ＣＰＵ部２４２１、ＳＣ部２４２２、Ｉ／Ｏ部２４２３、ＭＡＣ（Memory Access Controller）部２４２４、及び外部Ｉ／Ｆ（Interface）２４２５を備えている。ＣＰＵ部２４２１は、それぞれが１個のＣＰＵとして動作可能なＣＰＵコア２４２１ａを複数備えている。ＳＣ部２４２２は、ＳＣ（System Controller）として機能する。Ｉ／Ｏ部２４２３は、Ｉ／ＯＰ（Input Output Processor）であり、ＡＳＩＣ２４１０とＣＨＥ２４０３間のデータの入出力を行う。ＭＡＣ部２４２４は記憶処理装置として機能する。外部Ｉ／Ｆ（Interface）２４２５は、外部制御部４とＡＳＩＣ２４１０間のデータの送受信を実現させる。
【０２５７】
上記構成のＡＳＩＣ２４１０は、ＣＰＵ部２４２１、ＳＣ部２４２２及びＭＡＣ部２４２４を搭載しており、ＳＤＲＡＭモジュール２３に直接アクセスし、データ処理を行う。ＣＰＵ部２４２１、ＳＣ部２４２２及びＭＡＣ部２４２４は同一パッケージ内（例えば同一チップ上）に存在するため、それらが別々の部品となっている第１及び第２の実施形態と比較して、アクセス及びデータ処理の高速化はより容易である。第１及び第２の実施形態ではシリアルで行われていた部品間のデータ伝送をパラレルで行わせることも、第３の実施形態では比較的に容易である。そのため、ＳＣ部２４２２とＭＡＣ部２４２４間、外部Ｉ／Ｆ２４２５とＭＡＣ部２４２４間等のデータ伝送はパラレルで行うようにしても良い。このようなことに加えて、Ｉ／Ｏ部２４２３も同一パッケージ内に存在するため、必要なデータ伝送の高速化もより容易となっている。
【０２５８】
なお、ＭＡＣ部２４２４と同一パッケージに組み込むハードウェアは、上記のものに限定されない。つまり、例えばＭＡＣ部２４２４とＳＣ部２３２２のみ、或いはＭＡＣ部２４２２とＩＯ部２４２３のみを同一パッケージに搭載させるようにしても良い。
【０２５９】
ＭＡＣ部２４２４は、複数のＳＤＲＡＭモジュール２３の実装に対応したものであり、ＡＳＩＣ２４１０内ではＳＣ部２４２２、及び外部Ｉ／Ｆ２４２５と接続されている。ＭＡＣ部２４２４は、第１及び第２の実施形態と同様に、入力回路２４３１、アクセス制御回路２４３２、データ切換回路２４３３、入力回路２４３４、ＥＣＣ部２４３５及びＳＶＰ制御部２４３６を備えている。
【０２６０】
第３の実施形態のＭＡＣ部２４２４は、ＳＤＲＡＭモジュール２３毎に、第１の実施形態と同様の冗長化を実現させる。ＭＡＣ部２４２４は、ＳＤＲＡＭモジュール２３毎に、２つのランクのうちの一つを通常側、残りを冗長側として扱い、冗長無効時のデータの書き込みは各ランクに対して行う。第３の実施形態でも、１つのＳＤＲＡＭモジュール２３用の故障情報は、第１の実施形態と同じく、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ及びＣＳ  ＳＥＬ［０］となっている。
【０２６１】
アクセス制御回路２４３２は、レジスタ２４４１、パイプライン部２４４２、ＣＳアドレス変換回路２４４３、メモリアクセス制御回路２４４４、故障情報格納部２４４５及びバッファ２４４６を備えている。ＣＳアドレス変換回路２４４３は、ＳＤＲＡＭモジュール２３毎に、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ及びＣＳＳＥＬ［０］をチップセレクト信号の生成に反映させる（図１１参照）。故障情報格納部２４４５は、ＳＤＲＡＭモジュール２３（スロット）毎に、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴ及びＣＳＳＥＬ［０］を格納する。
【０２６２】
バッファ２４４６は、メモリアクセス制御回路２４４４が出力する選択情報＋ＷＲ−ＳＥＬを格納する。データバス２４１１及び２４１２は、バッファ２４４６に格納された選択情報＋ＷＲ−ＳＥＬに従って、同じ方向を有効とさせる。データバス２４１１は、１８ビット分のデータストローブ信号の伝送管理用であり、データバス２４１２は、７２ビット分のデータ信号の伝送管理用である。
【０２６３】
データ切換回路２４３３は、ＳＤＲＡＭモジュール２３から読み出されたデータの出力、及びＳＤＲＡＭモジュール２３へのデータの出力を管理するための回路である。ＳＤＲＡＭモジュール２３に出力すべきデータは、ＣＰＵ部２４２１の何れかのＣＰＵコア２４２１ａからＳＣ部２４２２を介してデータ切換回路２４３３に入力される。ＳＤＲＡＭモジュール２３から読み出されたデータは、データ切換回路２４３３、ＥＣＣ部２４３５及びＳＣ部２４２２を介してＣＰＵ部２４２１に入力される。入力回路２４３４は、ＳＣ部２４２２とＭＡＣ部２４２４間のデータの入出力を行う。
【０２６４】
データ切換回路２４３３は、２個のレジスタ２４５１及び２４５２、セレクタ２４５３、２個のバッファ２４５４及び２４５５及びレジスタ群２４５６を備えている。レジスタ群２４５６は、ＳＤＲＡＭモジュール２３の１ランクを構成するメモリ素子２３１の数（ここでは１８。「×１８」はレジスタ群２４５６のレジスタ数の他にメモリ素子２３１の数を表している）のレジスタ２４５７を少なくとも備える。
【０２６５】
書き込みアクセス時、レジスタ２４５１は入力回路２４３４から出力されたデータを格納する。レジスタ２４５２は、リライトアクセス時にＥＣＣ部２４３５から出力されるデータを格納する。セレクタ２４５３は、レジスタ２４５１及び２４５２にそれぞれ格納されたデータのうちの一方を選択し、バッファ２４５５に出力する。セレクタ２４５３の選択動作を制御するための選択情報は、例えばＳＶＰ制御部２４３６が生成する。
【０２６６】
バッファ２４５５に格納されたデータは、データ信号としてデータバス２４１２に出力される。バッファ２４５４は、メモリアクセス制御回路２４４４から出力される１８ビットのデータストローブ情報（図２２Ｃに表記の「＋ＭＡＣ−ＤＱＳ［１７：０］」）を格納する。データストローブ情報は、データストローブ信号としてデータバス２４１１に出力される。書き込みアクセス時、各データバス２４１１及び２４１２は共にデータ切換回路２４３３から出力されている信号を伝送させる。ＳＤＲＡＭモジュール２３は、データ切換回路２４３３から出力されたデータを格納する。
【０２６７】
読み出しアクセス時は、ＳＤＲＡＭモジュール２３から読み出されたデータはデータバス２４１２を介して、データ切換回路２４３３に入力する。また、ＳＤＲＡＭモジュール２３の各メモリ素子２３１に供給されたデータストローブ信号（ＤＱＳ０〜ＤＱＳ１７）はデータバス２４１１を介して、データ切換回路２４３３に入力される。データ切換回路２４３３に入力されたデータは、１メモリ素子分毎に分けられ、レジスタ群２４５６の対応するレジスタ２４５７にそれぞれ供給される。データ切換回路２４３３に入力された１８ビットのデータストローブ信号は、それぞれ、対応するレジスタ２４５７に格納制御用の信号として出力される。この結果、ＳＤＲＡＭモジュール２３の各メモリ素子２３１から読み出されたデータは、それぞれ、対応付けられたレジスタ２４５７に格納される。
【０２６８】
各レジスタ２４５７に格納されたデータは、全てＥＣＣ部２４３５に出力される。ＥＣＣ部２４３５は、７２ビットのデータを入力し、エラー検出を行う。ＥＣＣ部は、入力したデータからエラーを検出した場合に、エラーの内容を表すエラー報告、及び故障情報ＣＳ  ＳＥＬ［０］を生成する。エラー報告は、例えば外部Ｉ／Ｆ２４２５を介して外部制御部４に出力される。故障情報ＣＳ  ＳＥＬ［０］は、アクセス制御回路２４３２に出力される。一方、訂正不可能なエラーを検出しなかった場合、ＥＣＣ部２４３５は、入力したデータを入力回路２４３４に出力する。エラーが検出されなかったデータ、或いは訂正を行ったデータは、入力回路２４３４、及びＳＣ部２４２２を介してＣＰＵ部２４２１に出力される。
【０２６９】
メモリパトロールの実行時にＥＣＣ部２４３５が訂正可能なエラーを検出した場合、そのエラーが固定故障によるものか否か確認するためのリライトアクセスが行われる。リライトアクセス時にＥＣＣ部２４３５から出力されたデータは、データ切換回路２４３３のレジスタ２４５２に格納され、ＳＤＲＡＭモジュール２３に転送される。それにより、リライトアクセスが実現される。
【０２７０】
リライトアクセスによってＳＤＲＡＭモジュールに書き込まれたデータは直ちに読み出される。ＥＣＣ部２４３５は、読み出しによって得られたデータからエラーを検出した場合、エラーの内容を表すエラー報告を出力する。ＥＣＣ部によるエラー報告は、例えば外部Ｉ／Ｆ２４２５を介して外部制御部４に入力し、ＳＶＰ４２によってコンソール３のオペレータにエラーが通知される。エラー通知により、オペレータは、故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴを設定する。設定された故障情報ＡＬＤＲ  ＥＮＡＢＬＥ  ＢＩＴはＳＣＩ４３、外部Ｉ／Ｆ２４２５、及びＳＶＰ制御部２４３６に出力され、故障情報格納部２４４５に格納される。ＥＣＣ部２４３５が出力する故障情報ＣＳ  ＳＥＬ［０］も故障情報格納部２４４５に格納される。それら故障情報の格納により、冗長切換が実現される。ＥＣＣ部２４３５による故障情報ＣＳ  ＳＥＬ［０］の生成は、例えば上述したように、ＣＳアドレス変換回路２４４３が出力する各チップセレクト信号を参照して行われる。
【０２７１】
ＳＶＰ制御部２４３６は、入力回路２４３１を用いて、メモリパトロールを行う。メモリパトロールは、例えばＳＤＲＡＭモジュール２３単位で行う。ＳＤＲＡＭモジュール２３単位で行うメモリパトロールの内容は、例えば第１の実施形態と同様で良い。このため、詳細な説明は省略する。
【０２７２】
なお、本実施形態（第１〜第３の実施形態）は、２ランクのＳＤＲＡＭモジュールをメモリモジュールとして採用した場合のものである。採用可能なメモリモジュールは、３ランク以上のＳＤＲＡＭであっても良い。チップセレクト信号等により選択可能な動作ブロック（ＳＤＲＡＭモジュールではランク）が複数、存在するメモリモジュールは、ＳＤＲＡＭモジュールでなくとも、幅広く採用することができる。冗長切換後の制御としては、例えば予備のメモリモジュールを用意しておき、冗長側のランクに予備のメモリモジュールのランクを組み合わせることにより、冗長切換時から冗長無効時に移行させることもできる。これらのことを含め、適用には様々な変形を行うことができる。
【図１Ａ】
2012046343.tif 000003
【図１Ｂ】
2012046343.tif 000004
【図１Ｃ】
2012046343.tif 000005
【図２】
2012046343.tif 000006
【図３】
2012046343.tif 000007
【図４】
2012046343.tif 000008
【図５】
2012046343.tif 000009
【図６】
2012046343.tif 000010
【図７】
2012046343.tif 000011
【図８Ａ】
2012046343.tif 000012
【図８Ｂ】
2012046343.tif 000013
【図９】
2012046343.tif 000014
【図１０】
2012046343.tif 000015
【図１１】
2012046343.tif 000016
【図１２Ａ】
2012046343.tif 000017
【図１２Ｂ】
2012046343.tif 000018
【図１３Ａ】
2012046343.tif 000019
【図１３Ｂ】
2012046343.tif 000020
【図１４】
2012046343.tif 000021
【図１５Ａ】
2012046343.tif 000022
【図１５Ｂ】
2012046343.tif 000023
【図１５Ｃ】
2012046343.tif 000024
【図１６】
2012046343.tif 000025
【図１７】
2012046343.tif 000026
【図１８】
2012046343.tif 000027
【図１９】
2012046343.tif 000028
【図２０】
2012046343.tif 000029
【図２１】
2012046343.tif 000030
【図２２Ａ】
2012046343.tif 000031
【図２２Ｂ】
2012046343.tif 000032
【図２２Ｃ】
2012046343.tif 000033
【手続補正書】
【提出日】平成25年1月28日(2013.1.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
同時に動作可能な複数のメモリ素子を有する動作ブロックを複数備えた１個以上のメモリモジュールから選択された２つ以上の動作ブロックに対し、データを書き込む書込アクセスを並行して行い、
前記２つ以上の動作ブロックのうちの１つに障害が検出された場合、該障害が検出された動作ブロックを除外し、該２つ以上の動作ブロックへの前記書込アクセスを含むアクセスを行う、
ことを特徴とするメモリモジュール冗長化方法。
【請求項２】
前記２つ以上の動作ブロックは、データが読み出される信号線群の異なる２個以上のメモリモジュールから選択する、
ことを特徴とする請求項１記載のメモリモジュール冗長化方法。
【請求項３】
前記２つ以上の動作ブロックを２個以上のメモリモジュールからそれぞれ選択した場合、前記障害が検出されていない状況では、該２つ以上の動作ブロックへのデータの入力は、異なる信号線群を介して同時に行わせる、
ことを特徴とする請求項２記載のメモリモジュール冗長化方法。
【請求項４】
同時に動作可能な複数のメモリ素子を有する動作ブロックを複数備えたメモリモジュールに発生する障害を該動作ブロック毎に検出する障害検出手段と、
１個以上のメモリモジュールから選択された２つ以上の動作ブロックをアクセス対象単位として、該アクセス対象単位の２つ以上の動作ブロックに対し、データを書き込む書込アクセスを並行して行うアクセス実行手段と、
前記アクセス対象単位の２つ以上の動作ブロックのうちの１つに前記障害検出手段が障害を検出した場合、該２つ以上の動作ブロックのなかで該障害が検出された動作ブロックを除く少なくとも１つの動作ブロックに前記アクセス実行手段による前記書込アクセスを含むアクセスを制限するアクセス制限手段と、
を具備することを特徴とする記憶処理装置。
【請求項５】
同時に動作可能な複数のメモリ素子を有する動作ブロックを複数備えた少なくとも１個のメモリモジュールと、
２つ以上の動作ブロックを前記メモリモジュールへのアクセスを行うアクセス対象単位として、該アクセス対象単位の２つ以上の動作ブロックに対し、データを書き込む書込アクセスを並行して行うアクセス実行手段と、
前記メモリモジュールに発生する障害を前記動作ブロック毎に検出する障害検出手段と、
前記アクセス対象単位の２つ以上の動作ブロックのうちの１つに前記障害検出手段が障害を検出した場合、該２つ以上の動作ブロックのなかで該障害が検出された動作ブロックを除く少なくとも１つの動作ブロックに前記アクセス実行手段による前記書込アクセスを含むアクセスを制限するアクセス制限手段と、
を具備することを特徴とするデータ処理装置。
【手続補正書】
【提出日】平成25年9月30日(2013.9.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
同時に動作可能な複数のメモリ素子を有する動作ブロックを複数備えた１個以上のメモリモジュールから選択された２つ以上の動作ブロックに対し、データを書き込む書込アクセスを並行して行い、
前記２つ以上の動作ブロックのうちの１つに障害が検出された場合、該障害が検出された動作ブロックを除外し、該２つ以上の動作ブロックへの前記書込アクセスを含むアクセスを行い、
前記２つ以上の動作ブロックは、データが読み出される信号線群の異なる２個以上のメモリモジュールから選択する、
ことを特徴とするメモリモジュール冗長化方法。
【請求項２】
前記２つ以上の動作ブロックを２個以上のメモリモジュールからそれぞれ選択した場合、前記障害が検出されていない状況では、該２つ以上の動作ブロックへのデータの入力は、異なる信号線群を介して同時に行わせる、
ことを特徴とする請求項１記載のメモリモジュール冗長化方法。
【請求項３】
同時に動作可能な複数のメモリ素子を有する動作ブロックを複数備えたメモリモジュールに発生する障害を該動作ブロック毎に検出する障害検出手段と、
１個以上のメモリモジュールから選択された２つ以上の動作ブロックをアクセス対象単位として、該アクセス対象単位の２つ以上の動作ブロックに対し、データを書き込む書込アクセスを並行して行うアクセス実行手段と、
前記アクセス対象単位の２つ以上の動作ブロックのうちの１つに前記障害検出手段が障害を検出した場合、該２つ以上の動作ブロックのなかで該障害が検出された動作ブロックを除く少なくとも１つの動作ブロックに前記アクセス実行手段による前記書込アクセスを含むアクセスを制限するアクセス制限手段と、を具備し、
前記メモリモジュールが複数、存在する場合、前記２つ以上の動作ブロックは、データが読み出される信号線群の異なる２個以上のメモリモジュールから選択される、
ことを特徴とする記憶処理装置。
【請求項４】
同時に動作可能な複数のメモリ素子を有する動作ブロックを複数備えた少なくとも１個のメモリモジュールと、
２つ以上の動作ブロックを前記メモリモジュールへのアクセスを行うアクセス対象単位として、該アクセス対象単位の２つ以上の動作ブロックに対し、データを書き込む書込アクセスを並行して行うアクセス実行手段と、
前記メモリモジュールに発生する障害を前記動作ブロック毎に検出する障害検出手段と、
前記アクセス対象単位の２つ以上の動作ブロックのうちの１つに前記障害検出手段が障害を検出した場合、該２つ以上の動作ブロックのなかで該障害が検出された動作ブロックを除く少なくとも１つの動作ブロックに前記アクセス実行手段による前記書込アクセスを含むアクセスを制限するアクセス制限手段と、を具備し、
前記メモリモジュールが複数、存在する場合、前記２つ以上の動作ブロックは、データが読み出される信号線群の異なる２個以上のメモリモジュールから選択される、
ことを特徴とするデータ処理装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
本発明を適用した１システムは、同時に動作可能な複数のメモリ素子を有する動作ブロックを複数備えたメモリモジュールに発生する障害を該動作ブロック毎に検出する障害検出手段と、１個以上のメモリモジュールから選択された２つ以上の動作ブロックをアクセス対象単位として、該アクセス対象単位の２つ以上の動作ブロックに対し、データを書き込む書込アクセスを並行して行うアクセス実行手段と、アクセス対象単位の２つ以上の動作ブロックのうちの１つに障害検出手段が障害を検出した場合、該２つ以上の動作ブロックのなかで該障害が検出された動作ブロックを除く少なくとも１つの動作ブロックにアクセス実行手段による書込アクセスを含むアクセスを制限するアクセス制限手段と、を具備し、メモリモジュールが複数、存在する場合、２つ以上の動作ブロックは、データが読み出される信号線群の異なる２個以上のメモリモジュールから選択される。
【国際調査報告】
2012046343.tif 000034
2012046343.tif 000035