(57)【要約】  メモリコントローラ（１）は、メモリ（４）のＲＡＳを評価する試験時以外は、メモリ（４）に送信するＤＡＴＡ［０：３１］をヒストリとして記憶し、試験時には、エラービットを記憶するヒストリメモリ（１５）を有する。また、メモリコントローラ（１）は、試験を有効にするか否かを示すＥＮおよび試験の制御に用いるＣＮＴを出力するＥＧ制御レジスタ（１２）を有する。また、メモリコントローラ（１）は、試験時に、ヒストリメモリ（１５）の読み出しアドレスを生成するアドレスカウンタ（１３）を有する。そして、メモリコントローラ（１）は、アドレスカウンタ（１３）が生成したアドレスが示すヒストリメモリ（１５）の記憶領域に格納されたエラービットを読み出しする。その後、メモリコントローラ（１）は、読み出ししたエラービットに基づいて、擬似エラーが含まれるＤＡＴＡ［０：３１］をメモリ（４）に送信する。
2013018202.tif 000002
【特許請求の範囲】
【請求項１】
他の装置へ送信するデータを生成するデータ生成部と、
前記他の装置の試験を有効にするか否かを示すイネーブル信号及び前記試験の制御に用いるテスト制御信号を出力する制御レジスタと、
前記試験時以外は特定の用途に用いられ、前記試験時には、前記データ生成部が生成したデータを擬似故障が含まれるデータに変更する際に用いる疑似故障データが書き込まれるメモリと、
前記試験時に、前記イネーブル信号及び前記テスト制御信号に基づいて、前記メモリの読み出しアドレスを生成するメモリアドレス生成部と、
前記試験が有効であることを前記イネーブル信号が示す場合には、前記メモリアドレス生成部が生成した読み出しアドレスを用いて前記メモリから擬似故障データを読み出し、読み出した擬似故障データに基づいて、前記データ生成部が生成したデータを擬似故障が含まれるデータに変更する故障設定部と、
前記故障設定部が変更した前記擬似故障が含まれるデータを前記他の装置へ送信する送信部と
を備えたことを特徴とするデータ通信装置。
【請求項２】
前記故障設定部は、前記試験時に、前記メモリから読み出した疑似故障データと前記データ生成部が生成したデータとの排他的論理和により、前記データ生成部が生成したデータを擬似故障が含まれるデータに変更する
ことを特徴とする請求項１に記載のデータ通信装置。
【請求項３】
前記メモリは、複数種類の擬似故障データを記憶し、
前記メモリアドレス生成部は、前記試験が有効であることを前記イネーブル信号が示す場合、前記テスト制御信号に基づいて、前記複数種別の擬似故障データを記憶する前記メモリの読み出しアドレスを順次生成する
ことを特徴とする請求項１または２に記載のデータ通信装置。
【請求項４】
前記制御レジスタは、固定パターンの擬似故障を設定する旨、または、連続したパターンの擬似故障を設定する旨のどちらかを示す前記テスト制御信号を出力し、
前記メモリアドレス生成部は、前記テスト制御信号が固定パターンの擬似故障を設定する旨を示す場合には、前記擬似故障データが書き込まれた１つのメモリアドレスを生成し、前記テスト制御信号が連続したパターンの擬似故障を設定する旨を示す場合には、各パターンの擬似故障データが書き込まれたメモリアドレスを順次生成し、
前記故障設定部は、前記テスト制御信号が前記固定パターンの擬似故障を設定する旨を示す場合には、前記メモリアドレス制御部が生成したメモリアドレスに記憶された擬似故障データに基づいて、前記データ生成部が生成したデータを擬似故障が含まれるデータに変更し、前記テスト制御信号が前記連続したパターンの擬似故障を設定する旨を示す場合には、前記メモリアドレス制御部が順次生成した各メモリアドレスに記憶された擬似故障をそれぞれ用いて、前記データ生成部が生成したデータを各パターンの擬似故障が含まれるデータに順次変更することを特徴とする請求項３に記載のデータ通信装置。
【請求項５】
前記試験時には、利用者が入力した前記擬似故障データを受信し、当該受信した擬似故障データを前記メモリに格納する格納部をさらに有し、
前記メモリは、前記試験時以外は、前記データ生成部が生成したデータを記憶し、前記試験時は、前記格納部によって格納された前記擬似故障データを記憶することを特徴とする請求項３に記載のデータ通信装置。
【請求項６】
前記他の装置は、
前記データ通信装置が送信したデータを記憶する第１の記憶領域と、
前記第１の記憶領域が故障した際に、該第１の記憶領域が記憶するデータの複製を記憶する第２の記憶領域と
を有し、
前記データ通信装置は、
前記送信部が前記故障設定部によって前記擬似故障が含まれるデータを前記他の装置へ送信した場合には、当該他の装置へ送信したデータを前記第１の記憶領域から読み出す読み出し部と、
前記読み出し部が読み出したデータに訂正可能なエラーが含まれているか否かを判別する判別部と、
前記判別部がデータに訂正可能なエラーが含まれていると判別した場合には、当該エラーの訂正を行うエラー訂正部と、
前記エラー訂正部がエラーを訂正したデータに再度エラーが含まれる場合には、前記第１の記憶領域に記憶されたデータを前記第２の記憶領域に移動させるデータ移動部と
を有し、
前記故障設定部は、前記エラー訂正部によってエラーが訂正されたデータを前記擬似故障が含まれるデータに再度変換し、
前記送信部は、前記故障設定部が前記擬似故障が含まれるデータに再度変換したデータを前記第１の記憶領域へ送信する
ことを特徴とする請求項３に記載のデータ通信装置。
【請求項７】
他の装置へデータを送信するデータ通信装置の制御方法であって、
前記他の装置へ送信するデータを生成し、
前記他の装置の試験を有効にするか否かを示すイネーブル信号及び前記試験の制御に用いるテスト制御信号を出力し、
前記試験時に、前記イネーブル信号及び前記テスト制御信号に基づいて、前記メモリの読み出しアドレスを生成し、
前記試験が有効であることを前記イネーブル信号が示す場合には、前記生成した読み出しアドレスを用いて前記メモリから擬似故障データを読み出し、
前記読み出した擬似故障データに基づいて、前記データ生成部が生成したデータを擬似故障が含まれるデータに変更し、
前記擬似故障が含まれるデータを前記他の装置へ送信する
処理を前記データ通信装置に実行させることを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信装置および制御方法に関する。
【背景技術】
【０００２】
従来、情報システム装置におけるＲＡＳ（Ｒｅｌｉａｂｉｌｉｔｙ  Ａｖａｉｌａｂｉｌｉｔｙ  ａｎｄ  Ｓｅｒｖｉｃｅａｂｉｌｉｔｙ：信頼性・可用性・保守性）を検証する技術が知られている。このような技術の一例として、データ信号のビットを反転させることで擬似エラーを発生させたデータをメモリに送信することで、メモリのＲＡＳを評価するメモリコントローラが知られている。【０００３】
このようなメモリコントローラの一例として、発生させる擬似エラーのパターンを示すエラービットをレジスタに記憶し、レジスタに記憶したエラービットのパターンに応じて、メモリに送信するデータに擬似エラーを発生させるメモリコントローラが知られている。例えば、このようなメモリコントローラは、メモリに送信するデータの各ビットの位置と対応する複数のレジスタを有し、各レジスタに擬似エラーを発生させるためのビットを記憶する。【０００４】
そして、メモリコントローラは、各レジスタが記憶するビットとメモリに送信するデータとの排他的論理和を算出することで、メモリに送信するデータの各ビットをレジスタに記憶するビットのパターンに従って反転させ、擬似エラーを含んだデータを生成する。その後、メモリコントローラは、擬似エラーを含んだデータをメモリに送信し、メモリにおけるエラーの検出結果に応じて、メモリのＲＡＳを評価する。【０００５】
また、複数のビットパターンを記憶したレジスタを有し、レジスタに記憶された各ビットパターンに応じて、メモリに送信するデータのビットを反転させる技術が知られている。このような技術が適用されたメモリコントローラは、メモリのＲＡＳを検証する場合には、メモリに送信するデータとレジスタが記憶する各ビットパターンとの排他的論理和を順次算出し、算出した排他的論理和をメモリに送信する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２００３００号公報
【特許文献２】特開昭５４−３６１４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述したエラービットをレジスタに記憶させる技術では、複数パターンの擬似エラーについて、ＲＡＳの検証を連続して行う事ができないという問題がある。【０００８】
以下、図面を用いて、ＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）を介してエラービットをレジスタに記憶させる技術の一例について説明する。図１８は、従来のＲＡＳを検証する技術の一例を説明するための図である。図１８に示す例では、メモリコントローラ１００は、ＪＴＡＧ１０１、内部ロジック１１０を有し、サービスプロセッサ１０２、メモリ１０３と接続される。内部ロジック１１０は、エラー生成回路１１１、アドレスカウンタ１１５、ヒストリメモリ１１６を有する。【０００９】
また、エラー生成回路１１１は、データ通信制御回路１１２、ＥＧ（Ｅｒｒｏｒ  Ｇｅｎｅｒａｔｅ）制御ビット１１３、ＥＯＲ（Ｅｘｃｌｕｓｉｖｅ  Ｏｒ：排他的論理和）ゲート１１４を有する。また、メモリ１０３は、ＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋ  ａｎｄ  Ｃｏｒｒｅｃｔ）判定部１０４を有する。【００１０】
例えば、データ通信制御回路１１２は、アクセス命令を受信すると、３２ビットのＤＡＴＡ［０：３１］と、ＥＣＣに用いる７ビットのＣＢ（Ｃｈｅｃｋ  Ｂｉｔ）［０：６］とをメモリ１０３に送信する。このような場合には、メモリ１０３は、ＥＣＣ判定部１０４を用いて、受信したＤＡＴＡ［０：３１］から生成されるＣＢ［０：６］と受信したＣＢ［０：６］とを比較することで、ＤＡＴＡ［０：３１］にエラーが発生しているか否かを判別する。【００１１】
また、メモリコントローラ１００は、ＪＴＡＧコマンドの「ＬＯＡＤ＿ＥＧ＿ＣＮＴＬ」信号を用いてＪＤＲ（Ｊｔａｇ  Ｄａｔａ  Ｒｅｇｉｓｔｅｒ）［０：３１］を擬似故障を発生させるデータとしてＥＧ制御ビット１１３に記憶する。そして、メモリコントローラ１００は、ＥＧ制御ビット１１３に記憶したビットとＤＡＴＡ［０：３１］との排他的論理和を算出することで、擬似エラーを含むデータを生成する。【００１２】
すなわち、メモリコントローラ１００は、ＥＧ制御ビット１１３に記憶したビットのパターンに応じて、ＤＡＴＡ［０：３１］のビットを反転させることで、擬似エラーを含むデータを生成する。その後、メモリコントローラ１００は、擬似エラーを含むデータをメモリ１０３へ送信し、ＥＣＣ判定部１０４によるエラーの検出結果に応じて、メモリ１０３のＲＡＳを評価する。【００１３】
また、メモリコントローラ１００は、ＤＡＴＡ［０：３１］をＷＤ（Ｗｒｉｔｅ  ＤＡＴＡ）［０：３１］としてヒストリメモリ１１６のうち、アドレスカウンタ１１５が生成したアドレスに格納する。そして、メモリコントローラ１００は、ＪＴＡＧ１０１を介して、ヒストリ読み出し要求を受信した場合には、ヒストリメモリ１１６に格納されたＷＤ［０：３１］をＲＤ（Ｒｅａｄ  Ｄａｔａ）［０：３１］として出力することで、故障の原因解析を容易とする。【００１４】
次に、図を用いて、メモリコントローラ１００が有するエラー生成回路１１１の一例について説明する。図１９は、従来のエラー生成回路の一例を説明するための図である。図１９に示す例では、データ通信制御回路１１２は、データ送信回路１１２ａ、ＣＧ（Ｃｈｅｃｋ  Ｂｉｔ  Ｇｅｎｅｒａｔｅ）１１２ｂを有する。また、エラー生成回路１１１は、４つのＥＯＲゲート１１４を有する。【００１５】
図１９に示す例では、データ送信回路１１２ａは、アクセス命令を受信した場合には、ＤＡＴＡ［０：３１］を生成し、生成したＤＡＴＡ［０：３１］を出力する。ＣＧ１１２ｂは、データ送信回路１１２ａから受信したＤＡＴＡ［０：３１］からＣＢ［０：６］を生成し、生成したＣＢ［０：６］をメモリ１０３へ送信する。【００１６】
また、各ＥＯＲゲート１１４には、ＤＡＴＡ［０：３１］のうち、１ビット目のＤＡＴＡ［０］、９ビット目のＤＡＴＡ［８］、１７ビット目のＤＡＴＡ［１６］、２５ビット目のＤＡＴＡ［２４］が入力される。各ＥＯＲゲート１１４は、ＥＧ制御ビット１１３に記憶されたビットと入力されたデータとの排他的論理和を算出する。すなわち、各ＥＯＲゲート１１４は、ＥＧ制御ビット１１３に記憶されたビットのパターンに従って、３２ビットのＤＡＴＡ［０：３１］のうち、所定の位置のビットを反転させる。そして、各ＥＯＲゲート１１４は、算出した排他的論理和をＤＡＴＡ［０］、ＤＡＴＡ［８］、ＤＡＴＡ［１６］、ＤＡＴＡ［２４］として出力する。【００１７】
次に、図２０を用いて、メモリコントローラ１００が実行する処理の流れを説明する。図２０は、従来のメモリコントローラが実行する処理の流れの一例を説明するための図である。図２０に示す例では、メモリコントローラ１００は、ＪＴＡＧ１０１を介して、ＥＧ制御ビット１１３の設定を行う（ステップＳ１）。【００１８】
そして、メモリコントローラ１００は、アクセス命令を実行する際に（ステップＳ２）、ＥＧ制御ビット１１３に記憶されたビットパターンに従って、ＤＡＴＡ［０：３１］のうち、所定の位置のビットを反転させる（ステップＳ３）。その後、メモリコントローラ１００は、所定の位置のビットを反転させたＤＡＴＡ［０：３１］をメモリ１０３へ送信し、メモリ１０３にＥＣＣエラーの検出を実行させる（ステップＳ４）。【００１９】
このようなメモリコントローラ１００は、ＥＧ制御ビット１１３に記憶されたビットを用いて疑似エラーを発生させる。このため、メモリコントローラ１００は、複数パターンの擬似エラーについてメモリ１０３のＲＡＳを保持する機構の検証を行う場合には、擬似エラーを発生させる度に、別のパターンを示すビットをＥＧ制御ビット１１３に記憶しなおさなければならない。この結果、複数パターンの擬似エラーについて、ＲＡＳの検証を連続して行う事ができない。【００２０】
また、複数パターンの擬似エラーを示すビットを記憶したレジスタを設置する技術では、データの全ビット幅分について、擬似エラーのパターンを記憶するレジスタを設置するので、回路規模が増大する。また、このような回路規模の増大を防止するため、レジスタの数を削減した場合には、反転させることができるビットの位置が減少する。この結果、データの全ビット幅についてＲＡＳを検証できない。この結果、ＲＡＳの検証に漏れが発生してしまうという問題がある。【００２１】
本願に開示の技術は、上述した問題に鑑みてなされたものであって、複数パターンのエラーについて、連続してＲＡＳを検証する。
【課題を解決するための手段】
【００２２】
１つの側面では、他の装置へ送信するデータを生成するデータ通信装置である。このようなデータ通信装置は、他の装置の試験を有効にするか否かを示すイネーブル信号及び前記試験の制御に用いるテスト制御信号を出力する。また、データ通信装置は、試験時以外は特定の用途に用いられ、試験時には、データ生成部が生成したデータを擬似故障が含まれるデータに変更する際に用いる疑似故障データが書き込まれるメモリを有する。そして、データ通信装置は、試験が有効であることをイネーブル信号が示す場合、メモリから読み出される擬似故障データに基づいてデータ生成部が生成したデータを擬似故障が含まれるデータに変更する。その後、データ通信装置は、変更した擬似故障が含まれるデータを前記他の装置へ送信する。
【発明の効果】
【００２３】
１つの側面では、複数パターンのエラーについて、連続してＲＡＳを検証する。
【図面の簡単な説明】
【００２４】
【図１】図１は、実施例１に係るメモリコントローラを説明するための図である。
【図２】図２は、実施例１に係るＥＧ制御レジスタの一例を説明するための図である。
【図３】図３は、実施例１に係るＥＧ制御レジスタが記憶するデータの例について説明するための図である。
【図４】図４は、実施例１に係るアドレスカウンタの一例を説明するための図である。
【図５】図５は、実施例１に係るヒストリメモリアドレス指示部の回路例を説明するための図である。
【図６】図６は、実施例１に係るＥＧ制御アドレス指示部の回路例を説明するための図である。
【図７】図７は、実施例１に係るメモリコントローラが実行する処理の流れの一例を説明するためのフローチャートである。
【図８】図８は、実施例１に係るメモリコントローラが複数パターンの擬似エラーを連続して挿入する処理の一例を説明するためのフローチャートである。
【図９】図９は、実施例２に係るＭＡＣを説明するための図である。
【図１０】図１０は、実施例２に係るＥＧ制御レジスタの一例を説明するための図である。
【図１１】図１１は、実施例２に係るＥＧ制御レジスタが記憶するデータの例について説明するための図である。
【図１２】図１２は、実施例２に係るアドレスカウンタの一例を説明するための図である。
【図１３】図１３は、実施例２に係る故障情報レジスタの一例を説明するための図である。
【図１４】図１４は、実施例２に係る故障情報レジスタが記憶する情報の一例を説明するための図である。
【図１５】図１５は、実施例２に係るＭＡＣがビットを反転させる回路の一例を説明するための図である。
【図１６】図１６は、実施例２に係るＭＡＣが実行する処理の流れを説明するための第１のフローチャートである。
【図１７】図１７は、実施例２に係るＭＡＣが実行する処理の流れを説明するための第２のフローチャートである。
【図１８】図１８は、従来のＲＡＳを検証する技術の一例を説明するための図である。
【図１９】図１９は、従来のエラー生成回路の一例を説明するための図である。
【図２０】図２０は、従来のメモリコントローラが実行する処理の流れの一例を説明するための図である。
【発明を実施するための形態】
【００２５】
以下に添付図面を参照して本願に係るデータ通信装置および制御方法について説明する。
【実施例１】
【００２６】
以下の実施例１では、図１を用いて、メモリコントローラの一例を説明する。図１は、実施例１に係るメモリコントローラを説明するための図である。【００２７】
図１に示すように、メモリコントローラ１は、サービスプロセッサ３、および、メモリ４と接続される。また、メモリコントローラ１は、ＪＴＡＧ（Joint  Test  Action  Group）２、内部ロジック１０を有する。また、内部ロジック１０は、データ通信制御回路１１、ＥＧ制御レジスタ１２、アドレスカウンタ１３、セレクタ１４、ヒストリメモリ１５、ＥＯＲ（Exclusive  Or：排他的論理和）ゲート１６を有する。また、メモリ４は、ＥＣＣ（Error  Check  and  Correct）判定部５、エラーログ記憶部６を有する。【００２８】
ＪＴＡＧ２は、サービスプロセッサ３とＢＵＳで接続されており、ＢＵＳを介して、サービスプロセッサ３からＪＴＡＧコマンドを示すＣＭＤ信号を受信する。そして、ＪＴＡＧ２は、受信したＣＭＤ信号が示すＪＴＡＧコマンドに基づいて、内部ロジック１０の制御を行う。【００２９】
例えば、図１に示す例では、ＪＴＡＧ２は、ＥＧ制御レジスタ１２にＬＯＡＤ＿ＥＧ＿ＣＮＴＬ信号を用いて、ＪＤＲ（Ｊｔａｇ  Ｄａｔａ  Ｒｅｇｉｓｔｅｒ）で設定された３２ビットのデータＪＤＲ［０：３１］をＥＧ制御レジスタ１２に記憶させる。また、ＪＴＡＧ２は、ＪＤＲ［０：３１］を内部ロジック１０が有するセレクタ１４に送信する。【００３０】
また、ＪＴＡＧ２は、内部ロジック１０が有するアドレスカウンタ１３に対して、ヒストリフリーズ要求、フリーズ解除要求、ヒストリ書き込み要求、ヒストリ読み出し要求を送信する。ここで、ヒストリフリーズ要求とは、メモリ４に送信するデータとしてデータ通信制御回路１１が生成した３２ビットのデータであるＨ−ＷＤ（History  Write  Data）［０：３１］をヒストリメモリ１５に格納する処理の停止要求である。【００３１】
また、フリーズ解除要求とは、Ｈ−ＷＤ［０：３１］をヒストリメモリ１５に格納する処理の再開要求である。また、ヒストリ書き込み要求とは、エラービットをヒストリメモリ１５に記憶させる処理の実行要求である。また、ヒストリ読み出し要求とは、ヒストリメモリ１５が記憶するＨ−ＷＤ［０：３１］の読み出し要求、すなわちヒストリデータの読み出し要求である。【００３２】
なお、ＪＴＡＧ２は、ヒストリ読み出し要求をアドレスカウンタ１３に対して送信した場合には、図１中（Ａ）に示す経路を介して、ヒストリメモリ１５に記憶されたＨ−ＷＤ［０：３１］をＲＤ（Read  Data）［０：３１］として取得する。【００３３】
サービスプロセッサ３は、インターフェース信号であるＢＵＳおよびＣＭＤをＪＴＡＧ２へ送信し、ＪＴＡＧ２に各要求の発行を行わせる。【００３４】
次に、内部ロジック１０が有するデータ通信制御回路１１、ＥＧ制御レジスタ１２、アドレスカウンタ１３、セレクタ１４、ヒストリメモリ１５、ＥＯＲゲート１６について説明する。まず、データ通信制御回路１１は、メモリ４に対するアクセス命令に応じて、メモリ４に送信する３２ビットのＤＡＴＡ［０：３１］を生成する。そして、データ通信制御回路１１は、生成したＤＡＴＡ［０：３１］をＥＯＲゲート１６に送信する。また、データ通信制御回路１１は、生成したＤＡＴＡ［０：３１］をＨ−ＷＤ［０：３１］としてセレクタ１４に送信する。【００３５】
また、データ通信制御回路１１は、生成したＤＡＴＡ［０：３１］から送信中に発生したエラーを検出するためのＣＢ（Check  Bit）［０：６］を生成する。そして、データ通信制御回路１１は、生成したＣＢ［０：６］をメモリ４に対して送信する。【００３６】
ＥＧ制御レジスタ１２は、メモリ４のＥＣＣを検証する試験を有効にするか否かを示すイネーブル信号と、試験の制御に用いるテスト制御信号を出力する。具体的には、ＥＧ制御レジスタ１２は、３２ビットのデータを記憶するレジスタであり、ＪＴＡＧ２から受信したＬＯＡＤ＿ＥＧ＿ＣＮＴＬ信号により設定されるＪＤＲ［０：３１］を記憶する。そして、ＥＧ制御レジスタ１２は、記憶した３２ビットのデータをアドレスカウンタ１３およびセレクタ１４に出力する。【００３７】
以下、図面を用いて、ＥＧ制御レジスタ１２の一例について説明する。まず、図２を用いて、ＥＧ制御レジスタ１２が記憶するデータの内容について説明する。図２は、実施例１に係るＥＧ制御レジスタの一例を説明するための図である。図２に示す例では、ＥＧ制御レジスタ１２は、０ビット目から３１ビット目までの３２ビットの記憶領域を有し、各記憶領域に、ＪＤＲ［０：３１］を記憶する。【００３８】
詳細には、ＥＧ制御レジスタ１２は、ＪＤＲ［０：３１］の０ビット目のデータを１ビットのＥＮ［０］（ENABLE  BIT）として記憶する。また、ＥＧ制御レジスタ１２は、ＪＤＲ［０：３１］の１ビット目から２ビット目までのデータを２ビットのＣＮＴ（ERR  CONTROL）［０：１］として記憶する。また、ＥＧ制御レジスタ１２は、ＪＤＲ［０：３１］の３ビット目から１３ビット目までのデータを１１ビットのＥＡＤＤ（EG  ADDRESS）［０：１０］として記憶する。【００３９】
また、ＥＧ制御レジスタ１２は、ＪＤＲ［０：３１］の１４ビット目から２４ビット目までのデータを１１ビットのＭＡＤＤ（MAX  ADDRESS）［０：１０］として記憶する。なお、ＥＧ制御レジスタ１２は、ＪＤＲ［０：３１］の２５ビット目から３１ビット目までのビットをリザーブ領域（Ｒｅｓｅｒｖｅｄ）として記憶する。そして、ＥＧ制御レジスタ１２は、記憶したＥＮ［０］、ＣＮＴ［０：１］、ＥＡＤＤ［０：１０］、ＭＡＤＤ［０：１０］をアドレスカウンタ１３に送信するとともに、ＥＮ［０］をセレクタ１４に出力する。【００４０】
次に、図３を用いて、ＥＧ制御レジスタ１２が記憶する各データについて説明する。図３は、実施例１に係るＥＧ制御レジスタが記憶するデータの例について説明するための図である。ＥＧ制御レジスタ１２が記憶するＥＮ［０］は、擬似エラーを用いて、メモリ４のＲＡＳを評価する試験を実行するか否かを示す情報である。図３に示す例では、メモリコントローラ１は、ＥＮ［０］が「１」（すなわち、「Ｈｉｇｈ」）の際にメモリ４のＲＡＳを評価する試験を実行する。また、メモリコントローラ１は、ＥＮ［０］が「０」（すなわち、「Ｌｏｗ」）の際は、メモリ４のＲＡＳを評価する試験を実行しない。【００４１】
次に、ＣＮＴ［０：１］の説明に先んじて、ＥＡＤＤ［０：１０］およびＭＡＤＤ［０：１０］について説明する。ＥＡＤＤ［０：１０］は、ヒストリメモリ１５の記憶領域のうち、エラービットを記憶する記憶領域を示すヒストリアドレスである。具体的には、ＥＡＤＤ［０：１０］は、ヒストリメモリ１５が記憶する複数の擬似エラーのパターンが記憶された記憶領域のうち、メモリコントローラ１が最初に挿入するエラービットを記憶する記憶領域を示すヒストリアドレスである。【００４２】
ＭＡＤＤは、ヒストリメモリ１５が記憶する複数の擬似エラーのパターンのうち、メモリコントローラ１が最後に挿入する擬似エラーのパターンを記憶する記憶領域を示すヒストリアドレスである。すなわち、メモリコントローラ１は、連続して異なるパターンの擬似エラーをＤＡＴＡ［０：３１］に挿入する場合には、以下の処理を実行する。すなわち、メモリコントローラ１は、ＥＡＤＤ［０：１０］からＭＡＤＤまでのヒストリアドレスが示す記憶領域に記憶されたエラービットをＤＡＴＡ［０：３１］に挿入する。【００４３】
ＣＮＴ［０：１］は、試験の制御に用いる情報である。具体的には、ＣＮＴ［０：１］は、メモリコントローラ１がデータに挿入する擬似エラーの種別を示す。図３に示す例では、メモリコントローラ１は、ＣＮＴ［０：１］が「０１」の場合には、１パターンのエラービットをメモリ４に送信するＤＡＴＡ［０：３１］に１度だけ挿入する。【００４４】
また、メモリコントローラ１は、ＣＮＴ［０：１］が「１０」の場合には、ＥＡＤＤ［０：１０］からＭＡＤＤ［０：１０］までのヒストリアドレスが示す記憶領域に記憶されたエラービットをＤＡＴＡ［０：３１］に連続して挿入する。すなわち、メモリコントローラ１は、それぞれ異なるエラービットを挿入した複数のＤＡＴＡ［０：３１］を連続してメモリ４に送信する。【００４５】
また、メモリコントローラ１は、ＣＮＴ［０：１］が「００」の場合には、エラービットの挿入を行わない。また、メモリコントローラ１は、ＣＮＴ［０：１］が「１１」の場合には、アドレスカウンタ１３が指示するＥＧ制御アドレスをリセットする。ここで、ＥＧ制御アドレスとは、エラービットを記憶した記憶領域を示すヒストリアドレスである。【００４６】
図１に戻って、アドレスカウンタ１３は、ＥＧ制御レジスタ１２が出力するＥＮ［０］とＣＮＴ［０：１］とに基づいて、ヒストリメモリ１５の読み出しアドレスを生成する。具体的には、アドレスカウンタ１３は、ＪＴＡＧ２からヒストリフリーズ要求を受信した場合には、ヒストリメモリの読み出し状態となる。そして、アドレスカウンタ１３は、ヒストリ読み出し要求を受信する度に、ヒストリメモリ１５からＲＤ［０：３１］を読み出すためのヒストリアドレスを生成する。【００４７】
また、アドレスカウンタ１３は、直前に生成したヒストリメモリアドレスを保持し、新たなヒストリメモリアドレスを生成する場合には、保持したヒストリメモリアドレスに１インクリメントした値を新たなヒストリメモリアドレスとして生成する。【００４８】
また、アドレスカウンタ１３は、フリーズ解除要求を受信した場合には、ＲＤ［０：３１］を読み出すためのヒストリメモリドレスの生成を停止し、再度、ヒストリメモリ１５へのヒストリデータ、すなわちＷＤ［０：３１］の書き込み動作を再開させる。また、アドレスカウンタ１３は、ヒストリ書き込み要求を受信した場合には、エラービットを記憶させるためのＥＧ制御アドレスの生成を行う。【００４９】
以下、アドレスカウンタ１３がＥＧ制御アドレスを生成し、生成したＥＧ制御アドレスを出力する処理について具体例を説明する。例えば、アドレスカウンタ１３は、ＥＧ制御レジスタ１２が出力するＥＮ［０］、ＣＮＴ［０：１］、ＥＡＤＤ［０：１０］、ＭＡＤＤ［０：１０］を受信する。そして、アドレスカウンタ１３は、受信したＣＮＴ［０：１］に従って、ＥＧ制御アドレスの生成を行う。【００５０】
また、アドレスカウンタ１３は、ＥＮ［０］が試験の実行を示す場合には、生成したＥＧ制御アドレスを出力する。そして、アドレスカウンタ１３は、直前に生成したＥＧ制御アドレスを保持し、新たなＥＧ制御アドレスを生成する場合には、保持したＥＧ制御アドレスに１インクリメントした値を新たなＥＧ制御アドレスとして生成する。【００５１】
詳細には、アドレスカウンタ１３は、ＣＮＴ［０：１］が［０１］の場合には、エラービットが格納された記憶領域のヒストリアドレスを１つだけ生成する。また、アドレスカウンタ１３は、ＣＮＴ［０：１］が［１０］の場合には、ＥＡＤＤ［０：１０］からＭＡＤＤ［０：１０］までのヒストリアドレスを順次生成する。【００５２】
そして、アドレスカウンタ１３は、受信したＥＮ［０］が「Ｈｉｇｈ」である場合には、生成したＥＧ制御アドレスをヒストリメモリ１５に出力する。なお、アドレスカウンタ１３は、ＣＮＴ［０：１］が［００］の場合には、ヒストリアドレスの生成を行わない。また、アドレスカウンタ１３は、ＣＮＴ［０：１］が［１１］の場合には、ＥＧ制御アドレスのリセットを行う。【００５３】
次に、図４を用いて、アドレスカウンタ１３の一例について説明する。図４は、実施例１に係るアドレスカウンタの一例を説明するための図である。図４に示す例では、アドレスカウンタ１３は、ヒストリメモリアドレス指示部１３ａとＥＧ制御アドレス指示部１３ｂとを有する。【００５４】
また、図４に示す例では、アドレスカウンタ１３は、システムクロックである−ＣＬＫ信号、ヒストリフリーズ要求、フリーズ解除要求、ヒストリ読み出し要求をヒストリメモリアドレス指示部１３ａに入力する。また、アドレスカウンタ１３は、−ＣＬＫ信号、ヒストリ読み出し要求、ヒストリ書き込み要求、ＣＮＴ［０：１］、ＥＡＤＤ［０：１０］、ＭＡＤＤ［０：１０］をＥＧ制御アドレス指示部１３ｂに入力する。【００５５】
ヒストリメモリアドレス指示部１３ａは、ヒストリフリーズ要求、フリーズ解除要求、ヒストリ読み出し要求を受信する。そして、ヒストリメモリアドレス指示部１３ａは、受信した各要求に従って、読み出し対象となるヒストリアドレスを示す＋Ｈ−ＡＤＤ［０：１０］と、ヒストリメモリ１５に対する書き込みを指示する＋Ｈ−ＷＥとを出力する。【００５６】
例えば、ヒストリメモリアドレス指示部１３ａは、ヒストリメモリ１５に対し、ヒストリの書き込みを指示する場合には、「Ｈｉｇｈ」を＋Ｈ−ＷＥとして出力するとともに、＋Ｈ−ＡＤＤ［０：１０］とを出力する。このような場合には、ヒストリメモリ１５は、＋Ｈ−ＡＤＤ［０：１０］が示す記憶領域にヒストリを格納する。【００５７】
また、ヒストリメモリアドレス指示部１３ａは、ヒストリメモリ１５に対し、ヒストリメモリ１５の読み出しを指示する場合には、「Ｌｏｗ」を＋Ｈ−ＷＥとして出力するとともに、＋Ｈ−ＡＤＤ［０：１０］を出力する。このような場合には、ヒストリメモリ１５は、＋Ｈ−ＡＤＤ［０：１０］が示す記憶領域に格納されたヒストリをＪＴＡＧ２に対して出力する。【００５８】
ＥＧ制御アドレス指示部１３ｂは、−ＣＬＫ信号、ヒストリ読み出し要求、ヒストリ書き込み要求、ＣＮＴ［０：１］、ＥＡＤＤ［０：１０］、ＭＡＤＤ［０：１０］を受信する。そして、ＥＧ制御アドレス指示部１３ｂは、受信した各要求、および、ＣＮＴ［０：１］、ＥＡＤＤ［０：１０］、ＭＡＤＤ［０：１０］に応じて、ＥＧ制御アドレスである＋ＥＧ−ＡＤＤ［０：１０］と、書き込みを指示する＋ＥＧ−ＷＥとを出力する。【００５９】
例えば、ＥＧ制御アドレス指示部１３ｂは、ヒストリメモリ１５に対し、ＥＧ制御アドレスの書き込みを指示する場合には、「Ｈｉｇｈ」を＋ＥＧ−ＷＥとして出力するとともに、＋ＥＧ−ＡＤＤ［０：１０］を出力する。このような場合には、ヒストリメモリ１５は、＋ＥＧ−ＡＤＤ［０：１０］が示す記憶領域にエラービットを格納する。【００６０】
また、ＥＧ制御アドレス指示部１３ｂは、ヒストリメモリ１５に対し、ＥＧ制御アドレスの読み出しを指示する場合には、「Ｌｏｗ」を＋ＥＧ−ＷＥとして出力するとともに、＋ＥＧ−ＡＤＤ［０：１０］を出力する。このような場合には、ヒストリメモリ１５は、＋ＥＧ−ＡＤＤ［０：１０］が示す記憶領域に格納されたエラービットを出力する。【００６１】
ここで、アドレスカウンタ１３は、＋Ｈ−ＡＤＤ［０：１０］と反転入力されたＥＮ［０］との論理積を算出するＡＮＤゲート、＋ＥＧ−ＡＤＤ［０：１０］とＥＮ［０］との論理積を算出するＡＮＤゲートを有する。そして、アドレスカウンタ１３は、各ＡＮＤゲートの論理和を算出することで、＋Ｈ−ＡＤＤ［０：１０］または＋ＥＧ−ＡＤＤ［０：１０］を＋ＡＤＤ［０：１０］として出力する。【００６２】
すなわち、アドレスカウンタ１３は、ＥＮ［０］が「Ｌｏｗ」である場合には、＋Ｈ−ＡＤＤ［０：１０］を＋ＡＤＤ［０：１０］としてヒストリメモリ１５に出力する。また、アドレスカウンタ１３は、ＥＮ［０］が「Ｈｉｇｈ」である場合には、＋ＥＧ−ＡＤＤ［０：１０］を＋ＡＤＤ［０：１０］としてヒストリメモリ１５に出力する。【００６３】
また、アドレスカウンタ１３は、＋Ｈ−ＷＥと反転入力されたＥＮ［０］との論理積を算出するＡＮＤゲート、＋ＥＧ−ＷＥとＥＮ［０］との論理積を算出するＡＮＤゲートを有する。そして、アドレスカウンタ１３は、各ＡＮＤゲートの論理和を算出し、算出した論理和の反転信号を−ＷＥとして出力する。【００６４】
すなわち、アドレスカウンタ１３は、ＥＮ［０］が「Ｌｏｗ」である場合には、＋Ｈ−ＷＥの反転信号を−ＷＥとしてヒストリメモリ１５に出力する。また、アドレスカウンタ１３は、ＥＮ［０］が「Ｈｉｇｈ」である場合には、＋ＥＧ−ＷＥの反転信号を−ＷＥとしてヒストリメモリ１５に出力する。【００６５】
次に、図５を用いて、ヒストリメモリアドレス指示部１３ａの回路例について説明する。図５は、実施例１に係るヒストリメモリアドレス指示部の回路例を説明するための図である。図５に示す例では、ヒストリメモリアドレス指示部１３ａは、クロック（ＣＫ）端子とインヒビット（ＩＨ）端子を有する１１個のＤ型ＦＦ（Flip  Flop）を接続した１１ビットのアップカウンタを有する。【００６６】
このようなアップカウンタの各ＦＦは、＋Ｈ−ＡＤＤ［０：１０］の各ビットであるＨＡＤＤ［０］〜ＨＡＤＤ［１０］を保持する。そして、各ＦＦは、保持するＨＡＤＤ［０］〜ＨＡＤＤ［１０］を＋Ｈ−ＡＤＤ［０：１０］として出力する。また、各ＦＦは、ＩＨ端子に「Ｌｏｗ」が入力された場合には、以下の処理を実行する。【００６７】
すなわち、ＨＡＤＤ［０］を保持するＦＦは、−ＣＬＫ信号のクロックサイクルごとに、保持する値が反転入力される。また、ＨＡＤＤ［１］を保持するＦＦは、−ＣＬＫ信号のクロックサイクルごとに、自身が出力したＨＡＤＤ［１］とＨＡＤＤ［０］との排他的論理和を新たに保持する。【００６８】
また、ＨＡＤＤ［２］〜ＨＡＤＤ［１０］を保持する各ＦＦは、−ＣＬＫ信号のクロックサイクルごとに、自身が保持するＨＡＤＤよりも下位２ビットの論理積と自身が出力したＨＡＤＤとの排他論理和を新たに保持する。つまり、各ＦＦは、ＩＨ端子に「Ｌｏｗ」が入力された場合には、−ＣＬＫ信号のクロックサイクルごとに、ＨＡＤＤ［０］〜ＨＡＤＤ［１０］の値をカウントアップさせるアップカウンタとして動作する。【００６９】
また、ヒストリメモリアドレス指示部１３ａは、＋ＦＲＺを出力することで、アップカウンタの各ＦＦに供給されるクロックインヒビット（ＩＨ）を制御する１ビットのセット・リセット回路を有する。詳細には、ヒストリメモリアドレス指示部１３ａは、セット・リセット回路のレジスタの出力の反転信号とヒストリ読み出し要求との論理和を算出し、算出した論理和の反転信号をＩＨとして、アップカウンタの各ＦＦに供給する。また、ヒストリメモリアドレス指示部１３ａは、各ＦＦのＣＫに−ＣＬＫ信号を供給する。【００７０】
以下、ヒストリメモリアドレス指示部１３ａの動作について説明する。例えば、ヒストリメモリアドレス指示部１３ａは、ヒストリメモリ１５にヒストリを書き込む場合には、セット・リセット回路のＦＦから出力される＋ＦＲＺが「Ｌｏｗ」となるため、アップカウンタの各ＦＦにＩＨ「Ｌｏｗ」を供給する。このため、ヒストリメモリアドレス指示部１３ａのアップカウンタは、＋Ｈ−ＡＤＤ［０：１０］を出力しつつ、＋Ｈ−ＡＤＤ［０：１０］のカウントアップを行う。また、ヒストリメモリアドレス指示部１３ａは、＋ＦＲＺを反転した「Ｈｉｇｈ」を＋Ｈ−ＷＥとして出力する。【００７１】
この結果、ヒストリメモリアドレス指示部１３ａは、「Ｈｉｇｈ」を＋Ｈ−ＷＥとして出力しつつ、−ＣＬＫ信号のクロックサイクル毎に＋Ｈ−ＡＤＤ［０：１０］を１ずつインクリメントしながら出力する。このため、ヒストリメモリアドレス指示部１３ａは、ヒストリメモリ１５の連続したヒストリアドレスが示す記憶領域にヒストリを記憶させることができる。【００７２】
また、ヒストリメモリアドレス指示部１３ａは、システムエラー発生時、ＪＴＡＧ２からヒストリフリーズ要求を受信すると、セット・リセット回路の＋ＳＥＴが「Ｈｉｇｈ」となり、−ＲＳＴが「Ｈｉｇｈ」となる。この結果、セット・リセット回路のＦＦから出力される＋ＦＲＺが「Ｈｉｇｈ」となり、アップカウンタの各ＦＦに供給されるＩＨが「Ｈｉｇｈ」となる結果、ヒストリメモリアドレス指示部１３ａは、＋Ｈ−ＡＤＤ［０：１０］のカウントアップを停止する。【００７３】
また、ヒストリメモリアドレス指示部１３ａは、＋Ｈ−ＷＥとして「Ｌｏｗ」を出力する。このため、ヒストリメモリ１５は、ヒストリの読み出し状態となる。その後、ヒストリメモリアドレス指示部１３ａは、ＪＴＡＧ２からヒストリ読み出し要求を受信する度に、＋Ｈ−ＡＤＤ［０：１０］に１をインクリメントしながらヒストリメモリ１５に出力する。このため、ヒストリメモリアドレス指示部１３ａは、連続するヒストリアドレスが示す記憶領域に記憶されたヒストリを出力させることができる。【００７４】
また、ＪＴＡＧ２からフリーズ解除要求を受信した場合には、−ＲＳＴが「Ｌｏｗ」となるので、セット・リセット回路のＦＦの出力＋ＦＲＺが「Ｌｏｗ」にリセットされる。この結果、ヒストリメモリアドレス指示部１３ａは、ヒストリメモリ１５にヒストリの書き込みを再開させることができる。【００７５】
次に、図６を用いて、ＥＧ制御アドレス指示部１３ｂの回路例について説明する。図６は、実施例１に係るＥＧ制御アドレス指示部の回路例を説明するための図である。図６に示す例では、ＥＧ制御アドレス指示部１３ｂは、ヒストリメモリアドレス指示部１３ａと同様に、ＣＫ端子とＩＨ端子を有する１１個のＤ型ＦＦを接続した１１ビットのアップカウンタを有する。このようなアップカウンタの各ＦＦは、＋ＥＧ−ＡＤＤ［０：１０］の各ビットであるＥＧＡＤＤ［０］〜ＥＧＡＤＤ［１０］を保持する。また、ＥＧ制御アドレス指示部１３ｂは、アップカウンタの各ＦＦのＣＫ端子に−ＣＬＫ信号を供給する。【００７６】
また、ＥＧ制御アドレス指示部１３ｂは、アップカウンタの各ＦＦに供給するＩＨを＋ＥＧ  ＲＴＮによって制御する１ビットのセット・リセット回路と、１ビットのＦＦとを有する。以下、このようなＥＧ制御アドレス指示部１３ｂの動作について説明する。なお、ＥＧ制御アドレス指示部１３ｂが実行する動作のうち、ヒストリメモリアドレス指示部１３ａが実行する動作と同様の動作については、適宜説明を省略する。【００７７】
まず、ＥＧ制御アドレス指示部１３ｂがヒストリメモリ１５にエラービットを書き込む際の動作について説明する。例えば、ＥＧ制御アドレス指示部１３ｂは、ＥＧ制御レジスタ１２から受信したＣＮＴ［０：１］が「０１」または「１０」の際に、ＪＴＡＧ２からヒストリ書き込み要求を受信する。このような場合には、ＥＧ制御アドレス指示部１３ｂは、アップカウンタの各ＦＦにＩＨ「Ｌｏｗ」を供給する。また、ＥＧ制御アドレス指示部１３ｂは、ＥＧ制御レジスタ１２から受信したＥＡＤＤ［０：１０］をアップカウンタの各ＦＦにＥＧＡＤＤ［０］〜ＥＧＡＤＤ［１０］として保持させる。【００７８】
そして、ＥＧ制御アドレス指示部１３ｂは、保持したＥＧＡＤＤ［０］〜ＥＧＡＤＤ［１０］を＋ＥＧ−ＡＤＤ［０：１０］としてヒストリメモリ１５に出力するとともに、「Ｈｉｇｈ」を＋ＥＧ−ＷＥとして出力する。この結果、ＥＧ制御アドレス指示部１３ｂは、ヒストリメモリ１５にエラービットを記憶させる。【００７９】
また、ＥＧ制御アドレス指示部１３ｂは、ＣＮＴ［０：１］が［１０］の際にヒストリ書き込み要求を受信した場合には、ＥＧ制御レジスタ１２から受信したＥＡＤＤ［０：１０］をＥＧＡＤＤ［０］〜ＥＧＡＤＤ［１０］に保持させる。また、ヒストリ書き込み要求を受信した場合には、＋ＳＥＴが「Ｈｉｇｈ」、−ＲＳＴが「Ｈｉｇｈ」となるので、セット・リセット回路のＦＦに「Ｈｉｇｈ」が保持される結果、＋ＥＧ  ＲＴＮが「Ｈｉｇｈ」となる。【００８０】
ここで、ＥＧ制御アドレス指示部１３ｂは、ＭＡＤＤ［０：１０］と＋ＥＧ−ＡＤＤ［０：１０］との排他的論理和を算出することで、＋ＥＧ−ＡＤＤ［０：１０］がＭＡＤＤ［０：１０］とを比較する。そして、ＥＧ制御アドレス指示部１３ｂは、＋ＥＧ−ＡＤＤ［０：１０］とＭＡＤＤ［０：１０］とが同じになるまで＋ＥＧ  ＲＴＮの値を「Ｈｉｇｈ」に保持する。つまり、ＥＧ制御アドレス指示部１３ｂは、ヒストリ書き込み要求を受信する度に、＋ＥＧ−ＡＤＤ［０：１０］を１ずつインクリメントしながらＭＡＤＤ［０：１０］と比較する。【００８１】
このため、ＥＧ制御アドレス指示部１３ｂは、＋ＥＧ−ＡＤＤ［０：１０］とＭＡＤＤ［０：１０］とが同じになるまで、ヒストリ書き込み要求を受信する度に、連続するヒストリアドレスが示す記憶領域にエラービットを記憶させる。そして、ＥＧ制御アドレス指示部１３ｂは、＋ＥＧ−ＡＤＤ［０：１０］とＭＡＤＤ［０：１０］とが一致した場合には、以下のように動作する。すなわち、ＥＧ制御アドレス指示部１３ｂは、−ＲＳＴが「Ｌｏｗ」となるため、セット・リセット回路の出力＋ＥＧ  ＲＴＮが「Ｌｏｗ」にリセットされる結果、ヒストリメモリ１５の書き込みを終了する。【００８２】
次に、ＥＧ制御アドレス指示部１３ｂがヒストリメモリ１５からエラービットを読み出す際の動作について説明する。例えば、ＥＧ制御アドレス指示部１３ｂは、ＥＧ制御レジスタ１２から受信したＣＮＴ［０：１］が「０１」の際に、ＪＴＡＧ２からヒストリ読み出し要求を受信する。【００８３】
このような場合には、ＥＧ制御アドレス指示部１３ｂは、ＥＧ制御レジスタ１２に予め設定されたＥＡＤＤ［０：１０］を各ＦＦにセットし、セットしたＥＡＤＤ［０：１０］を＋ＥＧ−ＡＤＤ［０：１０］としてヒストリメモリ１５に出力する。この結果、ＥＧ制御アドレス指示部１３ｂは、ＥＡＤＤ［０：１０］が示す記憶領域に記憶されたエラービットをヒストリメモリ１５から出力させることができる。【００８４】
また、ＥＧ制御アドレス指示部１３ｂは、ＥＧ制御レジスタ１２から受信したＣＮＴ［０：１］が「１０」の際に、ＪＴＡＧ２からヒストリ読み出し要求を受信すると、ＥＡＤＤ［０：１０］がアップカウンタの各ＦＦにセットさせる。また、セット・リセット回路の入力＋ＳＥＴが「Ｈｉｇｈ」となり、−ＲＳＴが「Ｈｉｇｈ」となるので、セット・リセット回路のＦＦに「Ｈｉｇｈ」が保持される。また、ＥＡＤＤ［０：１０］とＭＡＤＤ［０：１０］とが一致するまで、＋ＥＧ  ＲＴＮが「Ｈｉｇｈ」となる。【００８５】
この結果、ＥＧ制御アドレス指示部１３ｂは、ＥＡＤＤ［０：１０］とＭＡＤＤ［０：１０］とが一致するまで、ＪＴＡＧ２からヒストリ読み出し要求を受信する度に、＋ＥＧ−ＡＤＤ［０：１０］を１ずつインクリメントしながらヒストリメモリ１５に送信する。その後、ＥＧ制御アドレス指示部１３ｂは、ＥＡＤＤ［０：１０］とＭＡＤＤ［０：１０］とが一致した場合には、−ＲＳＴが「Ｌｏｗ」となるため、＋ＥＧ  ＲＴＮが「Ｌｏｗ」にリセットされる結果、ヒストリメモリの読み出し動作を終了する。【００８６】
また、ＥＧ制御アドレス指示部１３ｂは、ＣＮＴ［０：１］が「００」である場合には、アップカウンタを動作させず、また、＋ＥＧ−ＷＥの出力も行わない。このため、ＥＧ制御アドレス指示部１３ｂは、ＣＮＴ［０：１］が「００」である場合には、ヒストリメモリ１５からエラービットの出力を行わない。【００８７】
また、ＥＧ制御アドレス指示部１３ｂは、ＣＮＴ［０：１］が「１１」である場合には、ＪＴＡＧ２からヒストリ書き込み要求またはヒストリ読み出し要求を受信することで、アップカウンタをリセットする。具体的には、ＥＧ制御アドレス指示部１３ｂは、各ＦＦが保持するＥＧＡＤＤ［０］〜ＥＧＡＤＤ［１０］の値を全て「Ｌｏｗ」にリセットし、＋ＥＧ−ＡＤＤ［０：１０］を初期状態とする。【００８８】
図１に戻って、セレクタ１４は、ＪＴＡＧ２からＪＤＲ［０：３１］を受信し、データ通信制御回路１１からＨ−ＷＤ［０：３１］を受信し、ＥＧ制御レジスタ１２からＥＮ［０］を受信する。そして、セレクタ１４は、ＥＮ［０］が「Ｌｏｗ」の場合には、Ｈ−ＷＤ［０：３１］をＷＤ［０：３１］としてヒストリメモリ１５に送信し、ＥＮ［０］が「Ｈｉｇｈ」の場合には、ＪＤＲ［０：３１］をＷＤ［０：３１］としてヒストリメモリ１５へ送信する。【００８９】
ヒストリメモリ１５は、メモリ４のＲＡＳの試験時以外は、エラー発生時にエラー要因の判別を容易とするために、メモリ４に送信するＤＡＴＡ［０：３１］をヒストリとして記憶するメモリである。また、ヒストリメモリ１５は、メモリ４のＲＡＳ試験時には、エラービットを記憶する。例えば、ヒストリメモリ１５は、３２ビットのデータを２０４８ワード記憶することができるＳＲＡＭ（Static  Random  Access  Memory）である。【００９０】
具体的には、ヒストリメモリ１５は、アドレスカウンタ１３から＋ＡＤＤ［０：１０］と−ＷＥとを受信し、セレクタ１４からＷＤ［０：３１］を受信する。そして、ヒストリメモリ１５は、−ＣＬＫ信号のクロックサイクル毎に、以下の処理を実行する。【００９１】
すなわち、ヒストリメモリ１５は、アドレスカウンタ１３から受信した−ＷＥが「Ｌｏｗ」の場合には、セレクタ１４から受信したＷＤ［０：３１］をアドレスカウンタ１３から受信した＋ＡＤＤ［０：１０］が示す記憶領域に記憶する。また、ヒストリメモリ１５は、アドレスカウンタ１３から受信した−ＷＥが「Ｈｉｇｈ」である場合には、＋ＡＤＤ［０：１０］が示す記憶領域に記憶したデータをＲＤ［０：３１］として、出力する。【００９２】
ここで、ヒストリメモリ１５が出力したＲＤ［０：３１］は、ＥＮ［０］が「Ｌｏｗ」である場合には、図１中（Ａ）に示す経路を介してＪＴＡＧ２に伝達される。また、ＲＤ［０：３１］は、ＥＮ［０］が「Ｈｉｇｈ」である場合には、図１中（Ｂ）に示す経路を介してＥＯＲゲート１６に伝達される。【００９３】
次に、ヒストリメモリ１５が記憶するＷＤ［０：３１］の内容、および、ヒストリメモリ１５が出力するＲＤ［０：３１］の内容について説明する。例えば、ヒストリメモリ１５は、ＥＮ［０］が「Ｌｏｗ」である場合には、データ通信制御回路１１が出力したＨ−ＷＤ［０：３１］をＷＤ［０：３１］として受信する。また、ヒストリメモリ１５は、アドレスカウンタ１３から＋Ｈ−ＡＤＤ［０：１０］を＋ＡＤＤ［０：１０］として受信し、＋Ｈ−ＷＥを−ＷＥとして受信する。【００９４】
この結果、ヒストリメモリ１５は、ＥＮ［０］が「Ｌｏｗ」である場合には、データ通信制御回路１１が出力したＨ−ＷＤ［０：３１］をヒストリ情報として＋Ｈ−ＡＤＤ［０：１０］が示す記憶領域に記憶する。また、ヒストリメモリ１５は、−ＣＬＫ信号のクロックサイクルごとに、前回受信した＋Ｈ−ＡＤＤ［０：１０］に１インクリメントした値を新たな＋Ｈ−ＡＤＤ［０：１０］として受信する。このため、ヒストリメモリ１５は、データ通信制御回路１１が出力した複数のＨ−ＷＤ［０：３１］を、連続するヒストリアドレスが示す記憶領域に格納する。【００９５】
また、ヒストリメモリ１５は、ＥＮ［０］が「Ｌｏｗ」であり、ＪＴＡＧ２からヒストリフリーズ要求が発行された場合は、アドレスカウンタ１３から−ＷＥとして「Ｈｉｇｈ」を受信する。そして、ヒストリメモリ１５は、ＪＴＡＧ２からヒストリ読み出し要求が発行されるたびに、アドレスカウンタ１３から受信した＋ＡＤＤ［０：１０］が示す記憶領域に記憶されたヒストリを図１中（Ａ）に示す経路を介してＪＴＡＧ２に送信する。また、ヒストリメモリ１５は、ＥＮ［０］が「Ｌｏｗ」であり、ＪＴＡＧ２からフリーズ解除要求が発行された場合には、−ＷＥとして「Ｌｏｗ」を受信するため、再度ヒストリの書き込みを開始する。【００９６】
また、ヒストリメモリ１５は、ＥＮ［０］が「Ｈｉｇｈ」である場合には、ＪＴＡＧ２が発行したＪＤＲ［０：３１］をＷＤ［０：３１］として受信する。また、ヒストリメモリ１５は、アドレスカウンタ１３から＋ＥＧ−ＡＤＤ［０：１０］を＋ＡＤＤ［０：１０］として受信し、＋ＥＧ−ＷＥを−ＷＥとして受信する。【００９７】
この結果、ヒストリメモリ１５は、ＥＮ［０］が「Ｈｉｇｈ」であり、ＪＴＡＧ２がヒストリ書き込み要求を発行した場合には、アドレスカウンタ１３から受信した＋ＥＧ−ＡＤＤ［０：１０］が示す記憶領域にＪＤＲ［０：３１］を格納する。すなわち、ヒストリメモリ１５は、エラービットを、＋ＥＧ−ＡＤＤ［０：１０］が示す記憶領域に記憶する。またＣＮＴ［０：１］が「１０」の場合、ヒストリメモリ１５は、ＪＴＡＧ２がヒストリ書き込み要求を発行するたびに、１インクリメントされた＋ＥＧ−ＡＤＤ［０：１０］を受信する。このため、ヒストリメモリ１５は、連続するヒストリアドレスが示す記憶領域に、複数のパターンのビットを記憶する。【００９８】
また、ヒストリメモリ１５は、ＥＮ［０］が「Ｈｉｇｈ」であり、ＪＴＡＧ２がヒストリ読み出し要求を発行した場合は、＋ＥＧ−ＡＤＤ［０：１０］を受信するとともに、アドレスカウンタ１３から「Ｈｉｇｈ」を−ＷＥとして受信する。このため、ヒストリメモリ１５は、アドレスカウンタ１３から受信した＋ＥＧ−ＡＤＤ［０：１０］が示す記憶領域に記憶されたエラービットをＲＤ［０：３１］として、図１中（Ｂ）に示す経路を介し、ＥＯＲゲート１６に送信する。【００９９】
また、ヒストリメモリ１５は、ＪＴＡＧ２がヒストリ読み出し要求を発行するたびに、１インクリメントされた＋ＥＧ−ＡＤＤ［０：１０］を受信する。このため、ヒストリメモリ１５は、連続したヒストリアドレスが示す記憶領域に記憶された、複数のパターンのビットを連続してＥＯＲゲート１６に送信する。【０１００】
なお、図１では、ＥＮ［０］の値に応じてＲＤ［０：３１］の伝達先を変更する機能を実現する回路の図示を省略した。この回路は、例えば、ＥＧ制御レジスタ１２が出力するＥＮ［０］を取得し、ＥＮ［０］が「Ｌｏｗ」である場合には、ＲＤ［０：３１］を図１中（Ａ）に示す経路に出力する回路である。また、この回路は、ＥＮ［０］が「Ｈｉｇｈ」である場合には、ＲＤ［０：３１］を図１中（Ｂ）に示す経路に出力する回路である。【０１０１】
ＥＯＲゲート１６は、データ通信制御回路１１が生成したＤＡＴＡ［０：３１］と、ヒストリメモリ１５から出力されたＲＤ［０：３１］との排他的論理和を新たなＤＡＴＡ［０：３１］としてメモリ４に送信する。すなわち、ＥＯＲゲート１６は、ＤＡＴＡ［０：３１］の各ビットのうち、ＲＤ［０：３１］に「Ｈｉｇｈ」が格納された位のビットを反転させる。【０１０２】
例えば、ＥＯＲゲート１６は、ＲＤ［０：３１］の各ビットのうち、１０桁目、２３桁目、３１桁目のビットが「Ｈｉｇｈ」である場合には、ＤＡＴＡ［０：３１］のうち、１０桁目、２３桁目、３１桁目のビットを反転させる。そして、ＥＯＲゲート１６は、ビット反転したＤＡＴＡ［０：３１］をメモリ４へ送信する。【０１０３】
メモリ４が有するＥＣＣ判定部５は、メモリコントローラ１からＤＡＴＡ［０：３１］とＣＢ［０：６］とを受信する。そして、ＥＣＣ判定部５は、受信したＤＡＴＡ［０：３１］からＣＢ［０：６］を算出し、算出したＣＢ［０：６］と受信したＣＢ［０：６］との齟齬を検出することによって、ＤＡＴＡ［０：３１］のエラーを検出する。【０１０４】
ここで、メモリコントローラ１は、メモリ４のＲＡＳを評価する試験を行う場合には、ＤＡＴＡ［０：３１］の各ビットをＲＤ［０：３１］のビットに応じて反転させることで、擬似エラーを挿入したＤＡＴＡ［０：３１］を送信する。このため、ＥＣＣ判定部５は、ＲＡＳを評価する試験が実行中である場合には、ＤＡＴＡ［０：３１］から算出したＣＢ［０：６］と受信したＣＢ［０：６］とに齟齬が生じるため、エラーを検出することとなる。そして、ＥＣＣ判定部５は、検出したエラーの詳細をエラーログ記憶部６に記憶させるとともに、エラーを検出した旨を出力する。【０１０５】
次に、図７を用いて、メモリコントローラ１が実行する処理の流れの一例について説明する。図７は、実施例１に係るメモリコントローラ１が実行する処理の流れの一例を説明するためのフローチャートである。なお、図７には、メモリコントローラ１が擬似エラーをＤＡＴＡ［０：３１］に挿入する処理の流れとメモリコントローラ１がヒストリを記憶する処理の流れとを示す。まず、図７を用いて、メモリコントローラ１が擬似エラーをＤＡＴＡ［０：３１］に挿入する処理の流れについて説明する。【０１０６】
まず、メモリコントローラ１は、ＪＴＡＧ２がＬＯＡＤ＿ＥＧ＿ＣＮＴＬを発行すると、ＥＧ制御レジスタ１２にＥＮ［０］、ＣＮＴ［０：１］，ＥＡＤＤ、ＭＡＤＤを記憶する（ステップＳ１０１）。次に、メモリコントローラ１は、複数パターンの擬似エラーを示す複数のビットをそれぞれヒストリメモリ１５の連続するヒストリアドレスの記憶領域に記憶する（ステップＳ１０２）。【０１０７】
また、ヒストリメモリ１５は、アクセス命令を実行し（ステップＳ１０３）、ＪＴＡＧ２から発行されるヒストリ読み出し要求によって、エラービットを連続するヒストリアドレスが示す記憶領域から読み出す（ステップＳ１０４）。そして、ヒストリメモリ１５は、読み出したビットに応じて、ＤＡＴＡ［０：３１］の任意ビットについてビット反転させ（ステップＳ１０５）、ＤＡＴＡ［０：３１］をメモリ４に送信する。メモリ４は、受信したＤＡＴＡ［０：３１］からＥＣＣのエラーを検出する（ステップＳ１０６）。【０１０８】
次に、メモリコントローラ１が、ヒストリを記憶する処理の流れについて説明する。まず、メモリコントローラ１は、アクセス命令を実行し（ステップＳ２０１）、メモリに送信したＤＡＴＡ［０：３１］をＷＤ［０：３１］としてヒストリメモリ１５に記憶する（ステップＳ２０２）。【０１０９】
また、メモリコントローラ１は、ＪＴＡＧ２がヒストリフリーズ要求を発行した場合には、ヒストリメモリの書き込みを停止し（ステップＳ２０３）、ヒストリメモリ１５に記憶したＷＤ［０：３１］の読み出しを行う（ステップＳ２０４）。この際、メモリコントローラ１は、読み出し対象のヒストリアドレスを１インクリメントする。【０１１０】
また、メモリコントローラ１は、全アドレスについてヒストリの読み出しを行ったか否かを判別し（ステップＳ２０５）、全アドレスについてヒストリの読み出しを行ったと判別した場合には（ステップＳ２０５肯定）、処理を終了する。また、メモリコントローラ１は、全アドレスについてヒストリの読み出しを行っていないと判別した場合には（ステップＳ２０５否定）、ヒストリの読み出しを行い、読み出し対象のヒストリアドレスを１インクリメントする（ステップＳ２０４）。【０１１１】
次に、図８を用いて、メモリコントローラ１が複数パターンの擬似エラーを連続して挿入する処理の流れの一例を説明する。図８は、実施例１に係るメモリコントローラ１が複数パターンの擬似エラーを連続して挿入する処理の一例を説明するためのフローチャートである。まず、メモリコントローラ１は、ＪＴＡＧ２からＪＴＡＧコマンドを発行し、ＥＧ制御レジスタ１３のＥＮ［０］、ＣＮＴ［０：１］、ＥＡＤＤ［０：１０］、ＭＡＤＤ［０：１０］の設定を行う（ステップＳ３０１）。この際、制御レジスタ１３にＥＮ［０］に「Ｈｉｇｈ」が設定されたものとする。【０１１２】
このような場合には、メモリコントローラ１は、ＣＮＴ［０：１］が「００」または「１１」以外であるか否かを判別する（ステップＳ３０２）。そして、メモリコントローラ１は、ＣＮＴ［０：１］が［００］または［１１］以外であると判別した場合には（ステップＳ３０２肯定）、以下の処理を実行する。すなわち、メモリコントローラ１は、ヒストリ書き込み要求が発行された際に、エラービット（ＪＤＲ［０：３１］）をヒストリメモリ１５に書き込む（ステップＳ３０３）。【０１１３】
次に、メモリコントローラ１は、ＣＮＴ［０：１］が「０１」であるか否かを判別する（ステップＳ３０４）。そして、メモリコントローラ１は、ＣＮＴ［０：１］が「０１」でないと判別した場合には（ステップＳ３０４否定）、＋ＥＧ−ＡＤＤ［０：１０］とＭＡＤＤ［０：１０］とが一致するか否かを判別する（ステップＳ３０５）。【０１１４】
そして、メモリコントローラ１は、＋ＥＧ−ＡＤＤ［０：１０］とＭＡＤＤ［０：１０］が一致しないと判別した場合には（ステップＳ３０５否定）、＋ＥＧ−ＡＤＤ［０：１０］を１インクリメントする（ステップＳ３０６）。そして、メモリコントローラ１は、新たなヒストリ書き込み要求が発行された際に、ステップＳ３０６にて１インクリメントした＋ＥＧ−ＡＤＤ［０：１０］が示す記憶領域に、エラービット（ＪＤＲ［０：３１］）を記憶する（ステップＳ３０３）。【０１１５】
一方、メモリコントローラ１は、ＣＮＴ［０：１］が「０１」である場合（ステップＳ３０４肯定）、または、＋ＥＧ−ＡＤＤ［０：１０］がＭＡＤＤ［０：１０］と一致した場合には（ステップＳ３０５肯定）、エラービットの記憶を終了する。そして、メモリコントローラ１は、アクセス命令の実行を契機として（ステップＳ３０７）、以下の処理を実行する。【０１１６】
すなわち、メモリコントローラ１は、ヒストリ読み出し要求が発行されると（ステップＳ３０８）、＋ＥＧ−ＡＤＤ［０：１０］が示す記憶領域のエラービットを読み出す（ステップＳ３０９）。そして、メモリコントローラ１は、読み出したエラービットに従って、ＤＡＴＡ［０：３１］のビット反転を行い、ビット反転させたＤＡＴＡ［０：３１］をメモリ４に送信する（ステップＳ３１０）。その後、メモリ４にて、ＥＣＣエラーの検出が実行される（ステップＳ３１１）。【０１１７】
また、メモリコントローラ１は、ＤＡＴＡ［０：３１］をメモリ４に送信した後に、ＣＮＴ［０：１］が「０１」であるか否かを判別する（ステップＳ３１２）。そして、メモリコントローラ１は、ＣＮＴ［０：１］が「０１」ではないと判別した場合、すなわち、ＣＮＴ［０：１］が「１０」であると判別した場合には（ステップＳ３１２否定）、以下の処理を実行する。【０１１８】
すなわち、メモリコントローラ１は、＋ＥＧ−ＡＤＤ［０：１０］がＭＡＤＤ［０：１０］と一致するか否かを判別する（ステップＳ３１３）。そして、メモリコントローラ１は、＋ＥＧ−ＡＤＤ［０：１０］がＭＡＤＤ［０：１０］と一致しないと判別した場合には（ステップＳ３１３否定）、＋ＥＧ−ＡＤＤ［０：１０］を＋１インクリメントする（ステップＳ３１４）。そして、メモリコントローラ１は、再度ヒストリ読み出し要求を発行することにより、以下の処理を実行する。すなわち、メモリコントローラ１は、インクリメントした＋ＥＧ−ＡＤＤ［０：１０］が示す記憶領域のエラービットを挿入したＤＡＴＡ［０：３１］をメモリ４に送信する（ステップＳ３０８〜Ｓ３１１）。【０１１９】
一方、メモリコントローラ１は、ＣＮＴ［０：１］が「０１」であると判別した場合（ステップＳ３１２肯定）、または、＋ＥＧ−ＡＤＤ「０：１０」がＭＡＤＤ［０：１０］と一致した場合には（ステップＳ３１３肯定）、処理を終了する。【０１２０】
また、メモリコントローラ１は、ＣＮＴ［０：１］が［００］または［１１］ではないと判別した場合には（ステップＳ３０２否定）、ＣＮＴ［０：１］が「１１」であるか否かを判別する（ステップＳ３１５）。そして、メモリコントローラ１は、ＣＮＴ［０：１］が［１１］であると判別した場合には（ステップＳ３１５肯定）、ヒストリ書き込み要求またはヒストリ読み出し要求で、ＥＧＡＤＤをリセットし（ステップＳ３１６）、処理を終了する。また、メモリコントローラ１は、ＣＮＴ［０：１］が［１１］ではないと判別した場合には（ステップＳ３１５否定）、そのまま処理を終了する。【０１２１】
［実施例１の効果］
上述したように、メモリコントローラ１は、メモリ４に送信するＤＡＴＡ［０：３１］を生成するデータ通信制御回路１１を有する。また、メモリコントローラ１は、試験が有効か否かを示すＥＮ［０］と試験の制御に用いるＣＮＴ［０：１］を出力するＥＧ制御レジスタ１２を有する。また、メモリコントローラ１は、試験時以外は、ヒストリを記憶し、試験時には、ＤＡＴＡ［０：３１］に挿入する擬似エラーのパターンを示すエラービットを記憶するヒストリメモリ１５を有する。また、メモリコントローラ１は、試験時に、ＥＮ［０］およびＣＮＴ［０：１］に基づいて、＋ＥＧ−ＡＤＤ［０：１０］を生成するアドレスカウンタ１３を有する。【０１２２】
そして、メモリコントローラ１は、ＥＮ［０］が「Ｈｉｇｈ」である場合には、ヒストリメモリ１５に記憶されたエラービットを読み出し、読み出したエラービットに応じて、データ通信制御回路１１が生成したＤＡＴＡ［０：３１］に擬似エラーを挿入する。その後、メモリコントローラ１は、擬似エラーを挿入したＤＡＴＡ［０：３１］をメモリ４に送信する。【０１２３】
このため、メモリコントローラ１は、メモリ４のＲＡＳの検証を連続して行うことができる。すなわち、メモリコントローラ１は、ヒストリメモリ１５に複数パターンのエラービットを記憶させ、試験時に、各エラービットに従って、各パターンの擬似エラーをＤＡＴＡ［０：３１］に挿入することができる。このため、メモリコントローラ１は、複数パターンの擬似エラーについて、メモリ４のＲＡＳの検証を連続して行うことができる。【０１２４】
また、メモリコントローラ１は、ヒストリメモリ１５に複数パターンのエラービットを記憶させる。このため、メモリコントローラ１は、新たなエラービットを記憶させるメモリを新たに設置することなく、複数パターンの擬似エラーについて、メモリ４のＲＡＳを検証する試験を行う事ができる。【０１２５】
また、メモリコントローラ１は、ＤＡＴＡ［０：３１］とエラービットであるＲＤ［０：３１］との排他的論理和を生成することにより、ＤＡＴＡ［０：３１］に擬似エラーを挿入する。このため、メモリコントローラ１は、簡易な回路構成により、擬似エラーを挿入する処理を実現することができる。【０１２６】
また、メモリコントローラ１は、ヒストリメモリ１５に複数パターンのエラービットを記憶させる。そして、メモリコントローラ１は、ＣＮＴ［０：１］が「１０」である場合には、各エラービットが記憶された記憶領域のヒストリアドレスである＋ＥＧ−ＡＤＤ［０：１０］をアドレスカウンタ１３に順次生成させる。このため、メモリコントローラ１は、様々なパターンの擬似エラーを連続して挿入することができるので、メモリ４のＲＡＳを、漏れなく、かつ、短時間で検証することができる。【０１２７】
また、メモリコントローラ１は、ＣＮＴ［０：１］が「１０」の場合には、様々なパターンの擬似エラーをＤＡＴＡ［０：３１］に連続して挿入し、ＣＮＴ［０：１］が「０１」の場合には、１パターンの擬似エラーをＤＡＴＡ［０：３１］に挿入する。このため、メモリコントローラ１は、状況に応じて、メモリ４のＲＡＳを様々な方法により検証することができる。すなわち、メモリコントローラ１は、１つの擬似エラーを用いたＲＡＳの検証と、様々なパターンの擬似エラーを用いたＲＡＳの検証とを、状況に応じて選択して実行することができる。【０１２８】
また、メモリコントローラ１は、試験時には、ＪＴＡＧコマンドによって入力されるＪＤＲ［０：３１］を擬似故障データとしてヒストリメモリ１５に記憶する。このため、メモリコントローラ１は、任意に定められたパターンの擬似エラーをＤＡＴＡ［０：３１］に挿入することができる。すなわち、メモリコントローラ１は、擬似エラーを挿入する数や位置を任意に設定することができる。この結果、メモリコントローラ１は、漏れなくメモリ４のＲＡＳを検証することができる。
【実施例２】
【０１２９】
以下の実施例２では、冗長機能を有するＤＩＭＭ（Dual  Inline  Memory  Module）にデータを送信するＭＡＣ（Memory  Access  Control）について説明する。【０１３０】
図９は、実施例２に係るＭＡＣを説明するための図である。図９に示す例では、ＭＡＣ１ａは、ＪＴＡＧ２、ＥＧ制御レジスタ１２ａ、アドレスカウンタ１３ｃ、セレクタ１４、ヒストリメモリ１５、内部ロジック２０を有する。また、内部ロジック２０は、入力回路２１、故障情報レジスタ２２、入力回路２３、出力回路２４、生成部２５、ＣＳ変換部２６、ＥＧ制御部２７、ＤＱ，ＤＱＳ生成部２８を有する。【０１３１】
また、ＤＱ，ＤＱＳ生成部２８は、ＷＤＴＱ（Write  Data  Time  Quanta）２９、ＥＯＲゲート３０、ＲＲＥＧ（Read  Register）３１、ＥＣＣ３２、ＥＬＯＧ（Error  LOG）３３を有する。なお、図９に示すＪＴＡＧ２、サービスプロセッサ３、セレクタ１４、ヒストリメモリ１５については、実施例１に係るＪＴＡＧ２、サービスプロセッサ３、セレクタ１４、ヒストリメモリ１５と同様の処理を実行するものとして、以下の説明を省略する。【０１３２】
このようなＭＡＣ１ａは、２つのＤＩＭＭ−Ｈ４ａとＤＩＭＭ−Ｌ４ｂと接続される。ここで、各ＤＩＭＭ−Ｈ４ａとＤＩＭＭ−Ｌ４ｂとは、ＤＤＲ−ＳＤＲＡＭ（Double-Data-Rate  Synchronous  Dynamic  Random  Access  Memory）またはＤＤＲ２−ＳＤＲＡＭで構成されたメモリモジュールである。また、ＤＩＭＭ−Ｈ４ａとＤＩＭＭ−Ｌ４ｂとは、ＪＥＤＥＣ（Joint  Election  Device  Engineering  Council）で規格化された７２ビットデータ幅の２Ｒａｎｋ構成を有するＤＩＭＭである。【０１３３】
また、ＭＡＣ１ａは、ＤＩＭＭ−Ｈ４ａに対して、コントロール信号であるＨ−ＡＤＤ（Address）、ＲＡＳ（Row  Address  Strobe）、ＣＡＳ（Column  Address  Strobe）、ＷＥ（Write  Enable）を送信する。また、ＭＡＣ１ａは、ＤＩＭＭ−Ｌ４ｂに対して、Ｌ−ＡＤＤ、ＲＡＳ、ＣＡＳ、ＷＥを送信する。【０１３４】
また、ＭＡＣ１ａは、ＤＩＭＭ−Ｈ４ａのＣＳ０にＨ−ＣＳ０を送信し、ＤＩＭＭ−Ｈ４ａのＣＳ１にＨ−ＣＳ１を送信する。また、ＭＡＣ１ａは、ＤＩＭＭ−Ｌ４ｂのＣＳ０にＬ−ＣＳ０を送信し、ＤＩＭＭ−Ｌ４ｂのＣＳ１にＬ−ＣＳ１を送信する。【０１３５】
また、ＭＡＣ１ａは、６４ビットのＨ−ＤＱ（Data  Queue）［０：６３］、８ビットのＨ−ＣＢ［０：７］、１８ビットのＨ−ＤＱＳ（Data  Queue  Strobe）［０：１７］をＤＩＭＭ−Ｈ４ａに送信する。また、ＭＡＣ１ａは、６４ビットのＬ−ＤＱ［０：６３］、８ビットのＬ−ＣＢ［０：７］、１８ビットのＬ−ＤＱＳ［０：１７］をＤＩＭＭ−Ｌ４ｂに送信する。なお、Ｈ−ＤＱ［０：６３］およびＬ−ＤＱ［０：６３］は、データ信号であり、Ｈ−ＣＢ［０：７］およびＬ−ＣＢ［０：７］はデータ信号のチェックビットであり、Ｈ−ＤＱＳ［０：１７］およびＬ−ＤＱＳ［０：１７］は、データストローブ信号である。【０１３６】
ここで、ＤＩＭＭ−Ｈ４ａは、Ｈ−ＣＳ０信号を受信するＳＤＲＡＭ素子とＨ−ＣＳ１信号を受信するＳＤＲＡＭ素子との２Ｒａｎｋ構成を有する。また、ＤＩＭＭ−Ｌ４ｂも同様に、Ｌ−ＣＳ０信号を受信するＳＤＲＡＭ素子とＬ−ＣＳ１信号を受信するＳＤＲＡＭ素子との２Ｒａｎｋ構成を有する。なお、以下の説明においては、Ｈ−ＣＳ０信号、Ｌ−ＣＳ０信号を受信するＳＤＲＡＭ素子をＣＳ０とし、Ｈ−ＣＳ１信号、Ｌ−ＣＳ１信号を受信するＳＤＲＡＭ素子をＣＳ１と記載する。【０１３７】
ＤＩＭＭ−Ｈ４ａが有するＣＳ１は、ＤＩＭＭ−Ｈ４ａが有するＣＳ０の冗長領域である。すなわち、ＭＡＣ１ａは、通常時においては、ＤＩＭＭ−Ｈ４ａが有するＣＳ０のみに対してメモリアクセスを実行する。そして、ＭＡＣ１ａは、ＤＩＭＭ−Ｈ４ａが有するＣＳ０において訂正可能なエラーが検出された場合には、リライト命令を実行する。すなわち、ＭＡＣ１ａは、エラーが検出されたデータを訂正し、訂正したデータを再度ＤＩＭＭ−Ｈ４ａが有するＣＳ０に記憶させる。【０１３８】
また、ＭＡＣ１ａは、エラーを訂正したデータをＤＩＭＭ−Ｈ４ａが有するＣＳ０に再度記憶させた後に、再度、ＤＩＭＭ−Ｈ４ａが有するＣＳ０において訂正可能なエラーが検出された場合には、以下の処理を実行する。すなわち、ＭＡＣ１ａは、ＤＩＭＭ−Ｈ４ａのＣＳ０に固定故障が発生したと判別し、ＤＩＭＭ−Ｈ４ａのＣＳ０に記憶された全データをＣＳ１にコピーする冗長処理を実行する。【０１３９】
このようなＭＡＣ１ａは、ＤＩＭＭ−Ｈ４ａに送信するＨ−ＤＱ［０：６３］に訂正可能な擬似エラーを挿入し、ＤＩＭＭ−Ｈ４ａから訂正可能な擬似エラーの検出を行うことでＲＡＳの検証を行う。また、ＭＡＣ１ａは、検出された擬似エラーを訂正したデータに再度擬似エラーを挿入し、ＤＩＭＭ−Ｈ４ａから擬似エラーの検出を行うことで、ＤＩＭＭ−Ｈ４ａの固定故障を擬似的に発生させ、ＤＩＭＭ−Ｈ４ａの冗長処理が正しく実行されるかを検証する。【０１４０】
以下、ＭＡＣ１ａが有する各部について説明する。ＥＧ制御レジスタ１２ａは、ＥＧ制御レジスタ１２と同様に、ＥＮ［０］、ＣＮＴ［０：１］、ＥＡＤＤ［０：１０］を記憶するレジスタである。以下、図１０を用いて、ＥＧ制御レジスタ１２ａが記憶するデータの内容について説明する。図１０は、実施例２に係るＥＧ制御レジスタの一例を説明するための図である。【０１４１】
図１０に示す例では、ＥＧ制御レジスタ１２ａは、ＪＤＲ［０：３１］の「０」ビット目のデータをＥＮ［０］として記憶し、「１」ビット目のデータをＣＳ［０］として記憶し、「２」ビット目のデータをＤＩＭＭ［０］として記憶する。また、ＥＧ制御レジスタ１２ａは、「３」ビット目および「４」ビット目のデータを２ビットのＣＮＴ［０：１］として記憶し、「５」ビット目から「１５」ビット目までの１１ビットをＥＡＤＤ［０：１０］として記憶する。なお、ＪＤＲ［０：３１］の「１６」ビット目から「３１」ビット目までは、リザーブ領域として記憶する。【０１４２】
次に、図１１を用いて、ＥＧ制御レジスタ１２ａが記憶する各データについて説明する。図１１は、実施例２に係るＥＧ制御レジスタが記憶するデータの例について説明するための図である。ＥＧ制御レジスタ１２ａが記憶するＥＮ［０］は、擬似エラーを用いて、各ＤＩＭＭ４ａ、４ｂのＲＡＳを評価する試験を実行するか否かを示す情報である。図１１に示す例では、ＭＡＣ１ａは、ＥＮ［０］が「Ｈｉｇｈ」の場合には試験を実行し、「Ｌｏｗ」の場合には試験を実行しない。【０１４３】
また、ＥＧ制御レジスタ１２ａが記憶するＣＳ［０］は、ＤＩＭＭ−Ｈ４ａおよびＤＩＭＭ−Ｌ４ｂが有するＣＳ０又はＣＳ１のどちら側に固定故障を擬似的に発生させるかを示す。例えば、図１１に示す例では、ＭＡＣ１ａは、ＣＳ［０］が「Ｌｏｗ」の場合には、ＣＳ０側に固定故障を擬似的に発生させ、ＣＳ［０］が「Ｈｉｇｈ」の場合には、ＣＳ１側に固定故障を擬似的に発生させる。【０１４４】
また、ＥＧ制御レジスタ１２ａが記憶するＤＩＭＭ［０］は、ＤＩＭＭ−Ｈ４ａとＤＩＭＭ−Ｌ４ｂとのどちらに固定故障を擬似的に発生させるかを示す。例えば、図１１に示す例では、ＭＡＣ１ａは、ＤＩＭＭ［０］が「Ｌｏｗ」の場合には、ＤＩＭＭ−Ｈ４ａ側に固定故障を擬似的に発生させ、ＤＩＭＭ［０］が「Ｈｉｇｈ」の場合には、ＤＩＭＭ−Ｌ４ｂ側に固定故障を擬似的に発生させる。【０１４５】
また、ＥＧ制御レジスタ１２ａが記憶するＣＮＴ［０：１］は、ＤＱ［０：６３］信号のうち、どの信号を反転させるかを示す情報である。例えば、図１１に示す例では、ＭＡＣ１ａは、ＣＮＴ［０：１］が「００」の場合には、ＤＱ［０：６３］のうち、ＤＱ［０］からＤＱ［３１］までの範囲に含まれるビットの反転を行う。つまり、ＭＡＣ１ａは、ＤＱ［００：３１］の各ビットとエラービットとの排他的論理和を算出することで、ＤＱ［００：３１］の範囲に擬似エラーを挿入する。【０１４６】
また、例えば、図１１に示す例では、ＭＡＣ１ａは、ＣＮＴ［０：１］が「０１」の場合には、ＤＱ［０：６３］のうち、ＤＱ［３２］からＤＱ［６３］までの範囲に含まれるビットを反転させる。つまり、ＭＡＣ１ａは、ＤＱ［３２：６３］とエラービットとの排他的論理和を算出することで、ＤＱ［３２：６３］の範囲に擬似エラーを挿入する。【０１４７】
また、例えば、図１１に示す例では、ＭＡＣ１ａは、ＣＮＴ［０：１］が「１０」の場合には、ＣＢ［０：７］のビット反転を行う。つまり、ＭＡＣ１ａは、ＣＢ［０：７］とエラービットとの排他的論理和を算出することで、ＣＢ［０：７］に擬似エラーを挿入する。なお、図１１に示す例では、ＣＮＴ［０：１］が「１１」の場合に反転させる信号は規定されていない。すなわち、図１１に示す例では、利用者は、ＣＮＴ［０：１］が「１１」以外の場合に反転させる信号を任意に定めることができる。【０１４８】
また、ＥＧ制御レジスタ１２ａが記憶するＥＡＤＤ［０：１０］は、ＤＱ［０：６３］またはＣＢ［０：７］に挿入する擬似エラーのパターンを記憶する記憶領域を示すヒストリアドレスである。すなわち、ＭＡＣ１ａは、ヒストリメモリ１５のうちＥＡＤＤ［０：１０］が示す記憶領域に記憶されたエラービットとＤＱ［０：６３］またはＣＢ［０：７］との排他的論理和を算出することによってＤＱ［０：６３］またはＣＢ［０：７］のビット反転を行う。すなわち、ＭＡＣ１ａは、ＥＡＤＤ［０：１０］が示す記憶領域に記憶されたエラービットを用いて、ＤＱ［０：６３］またはＣＢ［０：７］に擬似エラーを挿入する。【０１４９】
このようなＥＧ制御レジスタ１２ａは、ＪＴＡＧ２により発行されたＪＤＲ［０：３１］を受信した場合には、受信したＪＤＲ［０：３１］の各ビットをＥＮ［０］、ＣＳ［０］、ＤＩＭＭ［０］、ＣＮＴ［０：１］、ＥＡＤＤ［０：１０］として記憶する。そして、ＥＧ制御レジスタ１２ａは、ＥＮ［０］をセレクタ１４に出力し、ＥＮ［０］、ＥＡＤＤ［０：１０］をアドレスカウンタ１３ｃに出力する。また、ＥＧ制御レジスタ１２ａは、ＥＮ［０］、ＣＳ［０］、ＤＩＭＭ［０］をＥＧ制御部２７に出力し、ＤＩＭＭ［０］、ＣＮＴ［０：１］をＤＱ，ＤＱＳ生成部２８に送信する。【０１５０】
アドレスカウンタ１３ｃは、実施例１に係るアドレスカウンタ１３と同様に、ＪＴＡＧ２からヒストリフリーズ要求、フリーズ解除要求、ヒストリ書き込み要求、ヒストリ読み出し要求を受信する。また、アドレスカウンタ１３ｃは、ＥＧ制御レジスタ１２ａからＥＮ［０］とＥＡＤＤ［０：１０］とを受信する。そして、アドレスカウンタ１３ｃは、受信した各要求、および、受信したＥＮ［０］、ＥＡＤＤ［０：１０］に応じて、＋ＡＤＤ［０：１０］と−ＷＥとを生成し、生成した＋ＡＤＤ［０：１０］と−ＷＥとをヒストリメモリ１５に送信する。【０１５１】
以下、図１２を用いて、アドレスカウンタ１３ｃの一例について説明する。図１２は、実施例２に係るアドレスカウンタの一例を説明するための図である。図１２に示す例では、アドレスカウンタ１３ｃは、ヒストリメモリアドレス部１３ａを有する。なお、実施例２に係るヒストリメモリアドレス部１３ａは、実施例１に係るヒストリメモリアドレス部１３ａと同様の処理を実行するものとして、以下の説明を省略する。【０１５２】
また、アドレスカウンタ１３ｃは、ヒストリ読み出し要求、または、ヒストリ書き込み要求を受信した際に、ＥＧ制御レジスタ１２ａのＥＡＤＤ［０：１０］をラッチし、ラッチしたＥＡＤＤ［０：１０］を＋ＥＧ−ＡＤＤ［０：１０］として出力するＦＦを有する。また、アドレスカウンタ１３ｃは、ヒストリ書き込み要求が発行された場合には、発行されたヒストリ書き込み要求をラッチし、ラッチしたヒストリ書き込み要求を＋ＥＧ−ＷＥとして出力するＦＦを有する。【０１５３】
このようなアドレスカウンタ１３ｃは、ＥＮ［０］が「Ｌｏｗ」である場合には、ヒストリメモリアドレス部１３ａが出力した＋Ｈ−ＡＤＤ［０：１０］を＋ＡＤＤ［０：１０］として出力し、ヒストリメモリアドレス部１３ａが出力した＋Ｈ−ＷＥを−ＷＥとして出力する。また、アドレスカウンタ１３ｃは、ＥＮ［０］が「Ｈｉｇｈ」である場合には、ＦＦが出力する＋ＥＧ−ＡＤＤ［０：１０］を＋ＡＤＤ［０：１０］として出力し、＋ＥＧ−ＷＥを−ＷＥとして出力する。【０１５４】
ヒストリメモリ１５は、実施例１に係るヒストリメモリ１５と同様に、通常時には内部ロジック２０から出力されるヒストリ情報をＷＤ［０：３１］として記憶し、エラー発生時には記憶したＷＤ［０：３１］をＲＤ［０：３１］としてＪＴＡＧ２へ送信する。また、ヒストリメモリ１５は、試験時には、ＪＴＡＧ２から取得したＪＤＲ［０：３１］をエラービットとして、アドレスカウンタ１３ｃが出力した＋ＡＤＤ［０：１０］、すなわち、＋ＥＧ−ＡＤＤ［０：１０］が示す記憶領域に記憶する。【０１５５】
具体的には、ヒストリメモリ１５は、ＥＮ［０］が「Ｈｉｇｈ」で−ＷＥが「Ｌｏｗ」の場合は、ＪＤＲ［０：３１］を＋ＡＤＤ［０：１０］が示す記憶領域に記憶する。また、ヒストリメモリ１５は、ＥＮ［０］が「Ｈｉｇｈ」で−ＷＥが「Ｈｉｇｈ」の場合は、＋ＡＤＤ［０：１０］が示す記憶領域に記憶したエラービットをＤＱ，ＤＱＳ生成部２８へ送信する。【０１５６】
例えば、図１２に示す例では、ヒストリメモリ１５は、ＡＤＤ０にＤＱ［００：３１］に挿入するエラービットを記憶し、ＡＤＤ１にＤＱ［３２：６３］に挿入するエラービットを記憶し、ＡＤＤ２にＣＢ［００：０７］に挿入するエラービットを記憶する。そして、ヒストリメモリ１５は、−ＷＥが「Ｈｉｇｈ」の場合には、＋ＡＤＤ［０：１０］が示す記憶領域に記憶されたエラービットをＤＱ，ＤＱＳ生成部２８へ送信する。【０１５７】
図９に戻って、内部ロジック２０が有する各部２１〜３３について説明する。入力回路２１は、アクセス命令により送信されたインタフェース信号であるＴＡＧ、ＢＵＳ、ＥＣＣを受信する。そして、入力回路２１は、受信したインタフェース信号に基づくＣＭＤ（コマンド）信号を、生成部２５、ＣＳ変換部２６、ＤＱ，ＤＱＳ生成部２８へと出力する。【０１５８】
故障情報レジスタ２２は、ＤＩＭＭ−Ｈ４ａ、および、ＤＩＭＭ−Ｌ４ｂにおいて発生した故障の有無を示す情報を記憶する。以下、図面を用いて、故障情報レジスタ２２が記憶する情報の一例について説明する。図１３は、実施例２に係る故障情報レジスタの一例を説明するための図である。図１３に示す例では、故障情報レジスタ２２は、ＪＴＡＧ２が発行したＪＤＲ「０：３１」のうち、［０］ビット目をＥＮＢＬ（Enable  Bit）［０］として記憶し、［１］ビット目をＳＬＯＴ（DIMM  Select）［０］として記憶する。そして、故障情報レジスタ２２は、記憶したＥＮＢＬ［０］とＳＬＯＴ［０］とをＣＳ変換部２６が有するＥＧ制御部２７へ送信する。【０１５９】
図１４は、実施例２に係る故障情報レジスタが記憶する情報の一例を説明するための図である。例えば、ＥＮＢＬ［０］は、ＤＩＭＭ−Ｈ４ａおよびＤＩＭＭ−Ｌ４ｂが有するＣＳ０およびＣＳ１のうち、利用する記憶領域を示す情報である。例えば、ＭＡＣ１ａは、ＥＮＢＬ［０］が「Ｈｉｇｈ」である場合には、ＤＩＭＭ−Ｈ４ａおよびＤＩＭＭ−Ｌ４ｂが有するＣＳ０のデータを冗長系であるＣＳ１に移す。つまり、ＭＡＣ１ａは、使用する記憶領域をＣＳ０からＣＳ１に切替える。【０１６０】
また、ＳＬＯＴ［０］は、固定故障が発生したＤＩＭＭを示す情報である。例えば、ＭＡＣ１ａは、ＳＬＯＴ［０］が「Ｌｏｗ」である場合には、ＤＩＭＭ−Ｈ４ａに固定故障が発生したと判別し、ＳＬＯＴ［０］が「Ｈｉｇｈ」である場合には、ＤＩＭＭ−Ｌ４ｂに固定故障が発生したと判別する。【０１６１】
入力回路２３は、アクセス命令により送信されたインタフェース信号を受信し、受信したインタフェース信号に基づいてＤＩＭＭ−Ｈ４ａ、または、ＤＩＭＭ−Ｌ４ｂに書き込むＷＤ（Write  Data）を生成し、生成したＷＤをＷＤＴＱ２９へ送信する。出力回路２４は、ＤＩＭＭ−Ｈ４ａ、または、ＤＩＭＭ−Ｌ４ｂから読取ったＲＤ（Read  Data）をＥＣＣ３２から受信し、受信したＲＤをインタフェース信号で送出する。【０１６２】
生成部２５は、入力回路２１からＣＭＤを受信する。そして、生成部２５は、受信したＣＭＤに応じてＨ−ＡＤＤ、ＲＡＳ、ＣＡＳ、ＷＥをＤＩＭＭ−Ｈ４ａに送信する。また、生成部２５は、受信したＣＭＤに応じて、Ｌ−ＡＤＤ、ＲＡＳ、ＣＡＳ、ＷＥをＤＩＭＭ−Ｌ４ｂに送信する。【０１６３】
ＣＳ変換部２６は、故障情報レジスタ２２からＥＮＢＬ［０］、ＳＬＯＴ［０］を受信し、ＥＧ制御レジスタ１２ａからＥＮ［０］、ＣＳ［０］、ＤＩＭＭ［０］を受信する。そして、ＣＳ変換部２６は、受信したＳＬＯＴ［０］、ＥＮ［０］、ＣＳ［０］、ＤＩＭＭ［０］に基づいて、ＤＱ信号のビットの反転制御を行うタイミング信号である＋ＦＯＲＣＥ＿ＥＲＲ＿ＴＩＭを生成する。その後、ＣＳ変換部２６は、生成した＋ＦＯＲＣＥ＿ＥＲＲ＿ＴＩＭをＤＱ，ＤＱＳ生成部２８のＥＯＲ３０へ送信する。【０１６４】
また、ＣＳ変換部２６は、受信したＥＮＢＬ［０］に基づいて、Ｈ−ＣＳ０とＬ−ＣＳ０、または、Ｈ−ＣＳ１とＬ−ＣＳ１を生成し、生成したＨ−ＣＳ０とＬ−ＣＳ０、または、Ｈ−ＣＳ１とＬ−ＣＳ１をＤＩＭＭ−Ｈ４ａ、および、ＤＩＭＭ−Ｌ４ｂへ送信する。【０１６５】
ＥＧ制御部２７は、受信したＳＬＯＴ［０］、ＥＮ［０］、ＣＳ［０］、ＤＩＭＭ［０］に基づいて、ＤＱ信号のビットの反転制御を行うタイミング信号である＋ＦＯＲＣＥ＿ＥＲＲ＿ＴＩＭを生成する。そして、ＥＧ制御部２７は、生成した＋ＦＯＲＣＥ＿ＥＲＲ＿ＴＩＭをＥＯＲゲート３０へ送信する。【０１６６】
ＷＤＴＱ２９は、入力回路２３からＷＤを受信し、受信したＷＤをＤＩＭＭ−Ｈ４ａおよびＤＩＭＭ−Ｌ４ｂに書き込むためのバッファである。具体的には、ＷＤＴＱ２９は、入力回路２３からＷＤを受信した場合には、受信したＷＤを保持する。そして、ＷＤＴＱ２９は、受信したＷＤを格納した＋ＷＤＴＱ［０：６３］をＥＯＲゲート３０に対して出力するとともに、データストローブ信号であるＨ−ＤＱＳ［０：１７］およびＬ−ＤＱＳ［０：１７］を出力する。なお、以下の説明においては、ＤＩＭＭ−Ｈ４ａへ書き込むＷＤを＋ＷＤＴＱ＿Ｈ［０：６３］、ＤＩＭＭ−Ｌ４ｂへ書き込むＷＤを＋ＷＤＴＱ＿Ｌ［０：６３］とする。【０１６７】
ＥＯＲゲート３０は、ＷＤＴＱ２９から＋ＷＤＴＱ［０：６３］を受信し、ヒストリメモリ１５からＲＤ［０：３１］を受信する。そして、ＥＯＲゲート３０は、ＥＧ制御部２７から＋ＦＯＲＣＥ＿ＥＲＲ＿ＴＩＭを受信したタイミングで、＋ＷＤＴＱ［０：６３］とＲＤ［０：３１］との排他的論理和をＨ−ＤＱ［０：６３］またはＬ−ＤＱ［０：６３］として出力する。【０１６８】
ＲＲＥＧ３１は、メモリ読出し時にＤＩＭＭ−Ｈ４ａから出力したＨ−ＤＱ［０：６３］およびＨ−ＣＢ［０：７］を、同じく出力されたＨ−ＤＱＳ［０：１７］の各立ち上がりまたは立下りエッジのタイミングに従って保持する。また、ＲＲＥＧ３１は、メモリ読出し時にＤＩＭＭ−Ｌ４ｂから出力したＬ−ＤＱ［０：６３］およびＬ−ＣＢ［０：７］を、同じく出力されたＬ−ＤＱＳ［０：１７］の各立ち上がりまたは立下りエッジのタイミングに従って保持する。【０１６９】
ＥＣＣ３２は、ＲＲＥＧ３１が保持したＨ−ＤＱ［０：６３］、Ｈ−ＣＢ［０：７］およびＬ−ＤＱ［０：６３］、Ｌ−ＣＢ［０：７］のＥＣＣをチェックを行い、エラーの検出を行う。そして、ＥＣＣ３２は、訂正可能なエラー（ＣＥ）が検出された場合には、検出されたエラーの訂正を行い、訂正したＨ−ＤＱ［０：６３］およびＬ−ＤＱ［０：６３］をＲＤとして出力回路２４へ送信する。また、ＥＣＣ３２は、訂正可能なエラーが検出された旨を割り込み信号によりサービスプロセッサ３に対して通知する。【０１７０】
また、ＥＣＣ３２は、訂正不可能なエラー（ＵＥ）が検出された場合には、特殊パターンのＲＤを出力回路２４に送信するとともに、検出したエラーのログ情報をＥＬＯＧ３３に格納する。なお、ＥＬＯＧ３３は、ＥＣＣが検出したエラーに関する詳細なログ情報を記憶する記憶部である。【０１７１】
このようなＥＣＣ３２が送信する割り込み信号を受信したサービスプロセッサ３は、ＥＬＯＧ３３に格納された詳細なログ情報を収集し、エラー解析を行う。そして、サービスプロセッサ３は、リライト命令実行後に再度、訂正可能なエラーが連続して発生した場合には、ＤＩＭＭが故障したと判別し、ＣＳ０からＣＳ１へデータを写す冗長処理を実行する。【０１７２】
次に、図１５を用いて、ＣＳ変換部２６、ＤＱ，ＤＱＳ生成部２８がＨ−ＤＱ［０：６３］またはＬ−ＤＱ［０：６３］のビットを反転する処理の一例について説明する。図１５は、実施例２に係るＭＡＣがビットを反転させる回路の一例を説明するための図である。なお、図１５に示す例では、ＭＡＣ１ａは、ＲＡＳの検証時にＳＬＯＴ［０］とＤＩＭＭ［０］が一致するように、ＪＴＡＧコマンド「０：３１」によって設定されているものとする。【０１７３】
まず、ＣＳ変換部２６が実行する処理について説明する。例えば、図１５に示す例では、ＣＳ変換部２６は、故障情報レジスタ２２から受信したＥＮＢＬ［０］とアクセス命令のＣＳアドレス（＋ＣＳ＿ＡＤＤ）との論理和を＋ＣＳ＿ＳＥＬとする。そして、ＣＳ変換部２６は、＋ＣＳ＿ＳＥＬとＥＧ制御レジスタ１２ａから受信したＣＳ［０］とを比較するとともに、故障情報レジスタ２２から受信したＳＬＯＴ［０］とＥＧ制御レジスタ１２ａから受信したＤＩＭＭ［０］とを比較する。【０１７４】
そして、ＣＳ変換部２６は、＋ＣＳ＿ＳＥＬとＣＳ［０］とが一致し、かつ、ＳＬＯＴ［０］とＤＩＭＭ［０］とが一致し、かつＥＮ［０］が有効、すなわち「Ｈｉｇｈ」である場合には、以下の処理を実行する。すなわち、ＣＳ変換部２６は、＋ＷＤＴＱ＿ＯＵＴ＿ＴＩＭが発行されたタイミングに従って、＋ＦＯＲＣＥ＿ＥＲＲ＿ＴＩＭを発行する。【０１７５】
また、ＣＳ変換部２６は、各ＣＳ信号を送信するタイミングを示す＋ＣＳ−ＯＵＴ  ＴＩＭとのセレクト論理に従って、ＤＩＭＭ−Ｈ４ａのＣＳ０またはＣＳ１およびＤＩＭＭ−Ｌ４ｂのＣＳ０またはＣＳ１の素子を有効とする。例えば、ＣＳ変換部２６は、ＣＳ通常のアクセス命令時には、ＣＳ０またはＣＳ１の素子のうち、＋ＣＳ＿ＡＤＤで選択された側のメモリ素子を有効とする。また、ＣＳ変換部２６は、メモリ素子の切り替えを行う場合には、ＥＮＢＬ［０］が「Ｈｉｇｈ」となるため、常にＣＳ１側のメモリ素子を有効とする。【０１７６】
次に、ＤＱ，ＤＱＳ生成部２８が実行する処理について説明する。例えば、図１５に示す例では、ＷＤＴＱ２９は、＋ＷＤＴＱ＿Ｈ［０：６３］を＋ＷＤＴＱ＿Ｈ［０：３１］と＋ＷＤＴＷ  Ｌ［３２：６３］とに分けて出力する。また、ＤＱ，ＤＱＳ生成部２８は、ＣＧ（Check  Bit  Generator）を用いて、＋ＷＤＴＱ＿Ｈ［０：６３］からチェックビットである＋ＷＤＴＱ＿Ｈ＿ＣＢ［０：７］を生成する。【０１７７】
また、ＤＱ，ＤＱＳ生成部２８は、ＥＧ制御レジスタ１２ａから受信したＣＮＴ［０：１］の値に応じて、ヒストリメモリ１５から受信したＲＤ［０：３１］、すなわちエラービットを挿入する信号を決定する。詳細には、ＤＱ，ＤＱＳ生成部２８は、＋ＷＤＴＱ＿Ｈ［０：６３］を＋ＷＤＴＱ＿Ｈ［０：３１］、＋ＷＤＴＷ  Ｈ［３２：６３］、＋ＷＤＴＱ＿Ｈ＿ＣＢ［０：７］をそれぞれ別のＥＯＲゲートに入力する。そして、ＤＱ，ＤＱＳ生成部２８は、ＤＩＭＭ［０］が「Ｌｏｗ」である場合に、＋ＦＯＲＣＥ＿ＥＲＲ＿ＴＩＭが有効となったタイミングで、ＣＮＴ［０：１］に応じたＥＯＲゲートにＲＤ［０：３１］を入力する。【０１７８】
換言すると、ＤＱ，ＤＱＳ生成部２８は、ＣＮＴ［０：１］が「００」の場合には、＋ＷＤＴＱ＿Ｈ［０：３１］とＲＤ［０：３１］との排他的論理和を算出する。また、ＤＱ，ＤＱＳ生成部２８は、ＣＮＴ［０：１］が［０１］の場合には、＋ＷＤＴＱ＿Ｈ［３２：６３］とＲＤ［０：３１］との排他的論理和を算出する。また、ＤＱ，ＤＱＳ生成部２８は、ＣＮＴ［０：１］が［１０］の場合には、＋ＷＤＴＱ＿Ｈ＿ＣＢ［０：７］とＲＤ［０：３１］との排他的論理和を算出する。【０１７９】
そして、ＤＱ，ＤＱＳ生成部２８は、＋ＷＤＴＱ＿Ｈ［０：３１］または＋ＷＤＴＱ＿Ｈ［０：３１］とＲＤ［０：３１］との排他的論理和をＨ  ＤＱ［０：３１］として出力する。また、ＤＱ，ＤＱＳ生成部２８は、＋ＷＤＴＱ＿Ｈ［３２：６３］または＋ＷＤＴＱ＿Ｈ［３２：６３］とＲＤ［０：３１］との排他的論理和をＨ＿ＤＱ［３２：６３］として出力する。また、ＤＱ，ＤＱＳ生成部２８は、＋ＷＤＴＱ＿Ｈ＿ＣＢ［０：７］または＋ＷＤＴＱ＿Ｈ＿ＣＢ［０：７］とＲＤ［０：３１］との排他的論理和をＨ＿ＣＢ［０：７］として出力する。【０１８０】
なお、ＤＱ，ＤＱＳ生成部２８は、上述した処理と同様の処理をＤＩＭＭ−Ｌ４ｂへ送信するデータ、すなわち、＋ＷＤＴＱ＿Ｌ［０：６３］および＋ＷＤＴＱ＿Ｌ＿ＣＢ［０７］に対しても実行するＤＩＭＭ−Ｌセレクタを有する。ＤＩＭＭ−Ｌセレクタは、ＤＩＭＭ［０］が「Ｈｉｇｈ」である場合には、＋ＷＤＴＱ＿Ｈ［０：６３］または＋ＷＤＴＱ＿Ｈ＿ＣＢ［０：７］のビットを反転させる処理と同様の処理を実行する。そして、ＤＩＭＭ−Ｌセレクタは、Ｌ＿ＤＱ［０：６３］とＬ＿ＣＢ［０：７］とを出力する。【０１８１】
次に、フローチャートを用いて、ＭＡＣ１ａがＤＱ信号に擬似エラーを挿入する処理の流れ、および、ＤＩＭＭ−Ｈ４ａに固定故障が発生したと判別する処理の流れ、ＣＳ０のデータをＣＳ１に複製する冗長化処理の流れについて説明する。まず、図１６を用いて、ＭＡＣ１ａがＤＱ信号に擬似エラーを挿入する処理の流れ、および、ＤＩＭＭ−Ｈ４ａに固定故障が発生したと判別する処理の流れについて説明する。【０１８２】
図１６は、実施例２に係るＭＡＣが実行する処理の流れを説明するための第１のフローチャートである。まず、図１６に示す例では、ＭＡＣ１ａは、ＪＴＡＧコマンドで制御レジスタ１２ａにＥＮ［０］＝１（すなわち「Ｈｉｇｈ」）、ＥＡＤＤ［０：１０］＝ＡＤＤ０を設定する（ステップＳ４０１）。次に、ＭＡＣ１ａは、ヒストリ書き込み要求で、ヒストリメモリ１５のＡＤＤ０にエラービットを書き込む（ステップＳ４０２）。なお、ＭＡＣ１ａは、ステップＳ４０１、Ｓ４０２を処理１として実行する。【０１８３】
次に、ＭＡＣ１ａは、ＪＴＡＧコマンドで、故障情報レジスタ２２に、ＥＮＢＬ［０］＝０（すなわち、「Ｌｏｗ」）、ＳＬＯＴ［０］＝１を設定する（ステップＳ４０３）。つぎに、ＭＡＣ１ａは、ＪＴＡＧコマンドで、ＥＧ制御レジスタ１２ａに、ＥＮ［０］＝１、ＣＳ［０］＝「Ｌｏｗ」、ＤＩＭＭ［０］＝「１」、ＣＮＴ［０：１］＝「００」、ＥＡＤＤ［０：１０］＝ＡＤＤ０を設定する（ステップＳ４０４）。そして、ＭＡＣ１ａは、ヒストリ読み出し要求を発行することで、ヒストリメモリ１５のＡＤＤ０に記憶したＤＱ［００：３１］に挿入するエラービットの読み出しを行う（ステップＳ４０５）。【０１８４】
なお、ＭＡＣ１ａは、ステップＳ４０３〜４０５までの処理を処理２として実行する。つまり、ＭＡＣ１ａは、処理２を実行することで、ＤＩＭＭ−Ｌ４ｂ側に擬似故障を発生させると判別し、ヒストリメモリ１５からエラービットの読み出しを行う。【０１８５】
次に、ＭＡＣ１ａは、ＤＩＭＭ−Ｌ４ｂに対するメモリアクセス、すなわち、データの書き込み要求を発行する（ステップＳ４０６）。そして、ＭＡＣ１ａは、＋ＣＳ＿ＳＥＬとＣＳ［０］とが一致するか否かを判別し（ステップＳ４０７）、一致すると判別した場合には（ステップＳ４０７肯定）、ＳＬＯＴ［０］とＤＩＭＭ［０］とが一致するか否かを判別する（ステップＳ４０８）。【０１８６】
そして、ＭＡＣ１ａは、ＳＬＯＴ［０］とＤＩＭＭ［０］とが一致すると判別した場合には（ステップＳ４０８肯定）、＋ＷＤＴＱ＿ＯＵＴ＿ＴＩＭ信号が示すタイミングで、＋ＦＯＲＣＥ＿ＥＲＲ＿ＴＩＭを発行する（ステップＳ４０９）。次に、ＭＡＣ１ａは、＋ＷＤＴＱ＿Ｌ［０：３１］をヒストリメモリ１５が出力したＲＤ［０：３１］との排他的論理和を算出することで、ビットの反転を行う（ステップＳ４１０）。その後、ＭＡＣ１ａは、ビットを反転させた＋ＷＤＴＱ＿Ｌ「０：３１」、すなわち、ＤＱ＿Ｌ［０：３１］をＤＩＭＭ−Ｌ４ｂのＣＳ０に出力し、ＤＩＭＭの書き込みを終了する（ステップＳ４１１）。【０１８７】
一方、ＭＡＣ１ａは、＋ＣＳ＿ＣＥＬとＣＳ［０］とが一致しない場合には（ステップＳ４０７否定）、ビットの反転を行わず、ＤＱ＿Ｌ［０：３１］をＤＩＭＭ−Ｌ４ｂのＣＳ０に出力する（ステップＳ４１１）。また、ＭＡＣ１ａは、ＳＬＯＴ［０］とＤＩＭＭ［０］とが一致しない場合には（ステップＳ４０８否定）、ビットの反転を行わず、ＤＱ＿Ｌ［０：３１］をＤＩＭＭ−Ｌ４ｂへ出力する（ステップＳ４１１）。【０１８８】
なお、ＭＡＣ１ａは、ステップＳ４０６〜Ｓ４１１の処理を処理３として実行する。つまり、ＭＡＣ１ａは、処理３を実行することで、擬似エラーを挿入したＤＱ信号をＤＩＭＭに送信する。【０１８９】
次に、ＭＡＣ１ａは、メモリアクセスを実行し、ＤＩＭＭ−Ｌ４ｂに記憶されたデータの読み出しを行い（ステップＳ４１２）、ＤＩＭＭ−Ｌ４ｂからのＤＱ＿Ｌ［０：６３］の読み出しを行う（ステップＳ４１３）。次に、ＭＡＣ１ａは、ＥＣＣ３２を用いてＥＣＣエラーを検出する（ステップＳ４１４）。そして、ＭＡＣ１ａは、検出したエラーが訂正可能なエラーであるか否かを判別する（ステップＳ４１５）。【０１９０】
次に、ＭＡＣ１ａは、検出したエラーが訂正可能なエラーであると判別した場合には（ステップＳ４１５肯定）、読み出したデータの訂正を行う（ステップＳ４１６）。そして、ＭＡＣ１ａは、サービスプロセッサ３に訂正可能なエラーが検出された旨の割り込み信号を送信する（ステップＳ４１７）。【０１９１】
一方、ＭＡＣ１ａは、検出したエラーが訂正可能ではないと判別した場合には（ステップＳ４１５否定）、読み出したデータを特殊パターンのデータに変換する（ステップＳ４１８）。そして、ＭＡＣ１ａは、特殊パターンのデータを出力し（ステップＳ４１９）、その後、ＤＩＭＭの読み出しを終了する（ステップＳ４２０）。なお、ＭＡＣ１ａは、ステップＳ４１２〜Ｓ４２０の処理を処理４として実行する。つまり、ＭＡＣ１ａは、処理４を実行することで、ＤＩＭＭ−Ｌ４ｂからエラーの検出を行う。【０１９２】
次に、ＭＡＣ１ａは、訂正可能なデータのリライトを示すメモリアクセスを実行する（ステップＳ４２１）。すなわち、ＭＡＣ１ａは、ステップＳ４１６にて訂正したデータをＤＩＭＭ−Ｌ４ｂに再度書き込む処理を実行する。また、ＭＡＣ１ａは、訂正したデータを書き込む際に、ヒストリメモリ１５が出力したらＲＤ［０：３１］で、再度データのビットを反転させる（ステップＳ４２２）。【０１９３】
そして、ＭＡＣ１ａは、ＤＩＭＭ−Ｌ４ｂに対する読み出しを示すメモリアクセスを実行する（ステップＳ４２３）。すると、ＭＡＣ１ａは、読み出したデータから再度ＥＣＣエラーを検出することとなる（ステップＳ４２４）。このため、サービスプロセッサ３にて固定故障の判定が行われ（ステップＳ４２５）、固定故障であると判別された場合には（ステップＳ４２５肯定）、図１７に示す一連の処理を実行する。【０１９４】
一方、サービスプロセッサ３によって固定故障ではないと判別された場合には（ステップＳ４２５否定）、ＭＡＣ１ａは、間欠的に故障が発生したと判定し、各処理をステップＳ４０１から再度やりなおす（ステップＳ４２６）。なお、ＭＡＣ１ａは、ステップＳ４２１〜Ｓ４２６に示す処理を処理５として実行する。つまり、ＭＡＣ１ａは、処理５を実行することによって、ＤＩＭＭ−Ｌ４ｂにて訂正可能な擬似エラーを連続して発生させることで、ＤＩＭＭ−Ｌ４ｂに固定故障が発生したと判定し、後述する冗長化処理の実行を開始する。【０１９５】
次に、図１７を用いて、ＭＡＣ１ａがＤＩＭＭ−Ｌ４ｂのＣＳ０が記憶するデータをＣＳ１に冗長化する処理の流れについて説明する。図１７は、実施例２に係るＭＡＣが実行する処理の流れを説明するための第２のフローチャートである。なお、ＭＡＣ１ａは、図１６に示すステップＳ４２５においてＤＩＭＭ−４ｂに固定故障が発生したと判定したことをトリガとして、図１７に示す各処理を実行する。【０１９６】
まず、ＤＩＭＭ−Ｌ４ｂに固定故障が発生したと判定した場合には、サービスプロセッサ３がＤＩＭＭ−Ｈ４ａおよびＤＩＭＭ−Ｌ４ｂのＣＳ０側の全記憶領域についてリライト命令を発行する（ステップＳ４２７）。このような場合にはＭＡＣ１ａは、ＤＩＭＭ−Ｈ４ａおよびＤＩＭＭ−Ｌ４ｂのＣＳ０側のデータを読み出し、ＤＩＭＭ−Ｈ４ａおよびＤＩＭＭ−Ｌ４ｂのＣＳ１側に訂正書き込み処理を実行する（ステップＳ４２８）。【０１９７】
なお、ＭＡＣ１ａは、ＣＳ０側のデータをＣＳ１側にコピーする場合には、＋ＣＳ＿ＳＥＬが「Ｈｉｇｈ」となるため、ＥＧ制御レジスタ１２ａが記憶するＣＳ［０］と一致しないため、ビットの反転処理を実行することなく、データのコピーを行う。【０１９８】
次に、ＭＡＣ１ａは、ＤＩＭＭ−Ｈ４ａおよびＤＩＭＭ−Ｌ４ｂのＣＳ０側における全記憶領域をＣＳ１側にコピーしたか否かを判別し（ステップＳ４２９）、全記憶領域をコピーしたと判別した場合には（ステップＳ４２９肯定）、以下の処理を実行する。すなわち、ＭＡＣ１ａは、ＪＴＡＧコマンドで故障情報レジスタ２２のＥＮＢＬ［０］を「Ｈｉｇｈ」に設定し、ＤＩＭＭ−Ｈ４ａおよびＤＩＭＭ−Ｌ４ｂの冗長側であるＣＳ１への切り替えを有効とする（ステップＳ４３０）。【０１９９】
次に、ＭＡＣ１ａは、ＤＩＭＭ−Ｌ４ｂへの読み出しを示すメモリアクセスを実行し（ステップＳ４３１）、ＤＩＭＭ−Ｌ４ｂのＣＳ１からデータの読み出しを行う（ステップＳ４３２）。ここで、ＭＡＣ１ａは、ステップＳ４２８においてビット反転を行わずにデータのコピーを行うため、ステップＳ４３２にて読み出したデータからは、ＥＣＣエラーが検出しない（ステップＳ４３３）。このため、ＭＡＣ１ａは、適切に冗長化処理を終了する。【０２００】
なお、ＭＡＣ１ａは、ステップＳ４２７〜Ｓ４２９の処理を処理６として実行する。すなわち、ＭＡＣ１ａは、処理６を実行することで、ＣＳ０側のデータを読み出し、読み出したデータにエラーを挿入することなくＣＳ１側に書き込む冗長処理を実行する。また、ＭＡＣ１ａは、ステップＳ４３０〜Ｓ４３３の処理を処理７として実行する。すなわち、ＭＡＣ１ａは、処理７を実行することで、ＣＳ０側のデータをＣＳ１側に移す冗長処理が適切に行われたか否かを判別する。【０２０１】
［実施例２の効果］
上述したように、ＤＩＭＭ−Ｈ４ａおよびＤＩＭＭ−Ｌ４ｂは、ＭＡＣ１ａから受信したＤＱ［０：６３］を記憶する記憶領域であるＣＳ０と、ＣＳ０が故障した際にＣＳ０に記憶されたデータの複製を記憶する冗長系であるＣＳ１とを有する。そして、ＭＡＣ１ａは、ＣＳ０から読み出したデータに訂正可能なエラーが含まれているか否かを判別し、訂正可能なエラーが含まれていると判別した場合には、以下の処理を実行する。すなわち、ＭＡＣ１ａは、読み出したエラーの訂正を行い、エラーを訂正したデータに擬似エラーを挿入し、擬似エラーを挿入したデータを書き戻す。そして、ＭＡＣ１ａは、書き戻したデータの読み出しを行い、読み出したデータから再度訂正可能なエラーを検出した場合には、ＣＳ０に記憶された全てのデータをＣＳ１側に複製する冗長処理を実行する。【０２０２】
このため、ＭＡＣ１ａは、ＤＩＭＭ−Ｈ４ａ、および、ＤＩＭＭ−Ｌ４ｂの冗長機能を評価することができる。すなわち、ＭＡＣ１ａは、ＤＩＭＭ−Ｈ４ａ、および、ＤＩＭＭ−Ｌ４ｂに記憶させるデータに擬似的なエラーを挿入し、エラーを挿入したデータの再読み出しを行う事で、固定故障が発生したと判定する。この結果ＭＡＣ１ａは、ＤＩＭＭ−Ｈ４ａ、および、ＤＩＭＭ−Ｌ４ｂにおいて冗長機能が発揮されるか否かを適切に評価することができる。
【実施例３】
【０２０３】
これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例３として本発明に含まれる他の実施例を説明する。【０２０４】
（１）各信号について
上述したメモリコントローラ１は、３２ビットのＤＡＴＡ［０：３１］に擬似エラーを挿入した。また、上述したＭＡＣ１ａは、６４ビットのＤＱ［０：６３］、または、８ビットのＣＢ［０：７］のビットを反転させることで、擬似エラーを挿入した。しかし、実施例はこれに限定されるものではない。すなわち、メモリコントローラ１およびＭＡＣ１ａが擬似エラーを挿入する信号は、任意のビット数を有する任意のデータであってよい。【０２０５】
また、上述したメモリコントローラ１、ＭＡＣ１ａにおいては、ＥＮ［０］が「Ｈｉｇｈ」の場合に、ＲＡＳを検証する試験を実行することとした。また、メモリコントローラ１においては、ＣＮ［０：１］が「１０」の場合に、複数パターンの擬似エラーを連続してＤＡＴＡ［０：３１］に挿入した。しかし、実施例はこれに限定されるものではなく、メモリコントローラ１は、ＣＮＴ［０：１］が示す動作について任意の設定を行う事ができる。【０２０６】
（２）メモリコントローラについて
上述した実施例１においては、メモリ４のＲＡＳを評価するメモリコントローラ１について説明した。また、上述した実施例２においては、ＤＩＭＭ−Ｈ４ａおよびＤＩＭＭ−Ｌ４ｂのＲＡＳを評価するＭＡＣ１ａについて説明した。しかし、実施例は、これに限定されるものではなく、ＲＡＳの評価対象に対してデータを送信する装置であれば、任意の装置に対して本実施例のメモリコントローラ１およびＭＡＣ１ａと同様の機能を付加することができる。【０２０７】
また、本実施例のメモリコントローラ１とＭＡＣ１ａとの機能を同時に発揮することも可能である。すなわち、ＭＡＣ１ａは、複数パターンの擬似エラーを連続してＤＱ＿Ｈ［０：６３］に挿入することとしてもよい。【０２０８】
（３）各回路について
上述した実施例１、２においては、メモリコントローラ１およびＭＡＣ１ａの機能を発揮するための回路の一例について説明した。しかし、実施例はこれに限定されるものではなく、同様の機能を発揮することができるものであれば、任意の構成を有する回路によって実現することとしてもよい。
【符号の説明】
【０２０９】
１、１ａ、１００  メモリコントローラ
２、１０１  ＪＴＡＧ
３、１０２  サービスプロセッサ
４〜４ｂ、１０３  メモリ
５、１０４  ＥＣＣ判定部
６  エラーログ記憶部
１０、２０、１１０  内部ロジック
１１、１１２  データ通信制御回路
１２、１２ａ  ＥＧ制御レジスタ
１３〜１３ｃ、１１５  アドレスカウンタ
１４  セレクタ
１５、１１６  ヒストリメモリ
１６、、３０、１１４  ＥＯＲゲート
２１、２３  入力回路
２２  故障情報レジスタ
２４  出力回路
２５  生成部
２６  ＣＳ変換部
２７  ＥＧ制御部
２８  ＤＱ，ＤＱＳ生成部
２９  ＷＤＴＱ
３１  ＲＲＥＧ
３２  ＥＣＣ
３３  ＥＬＯＧ
１１１  エラー生成回路
１１２ａ  データ送信回路
１１２ｂ  ＣＧ
１１３  ＥＧ制御ビット
【図１】
2013018202.tif 000003
【図２】
2013018202.tif 000004
【図３】
2013018202.tif 000005
【図４】
2013018202.tif 000006
【図５】
2013018202.tif 000007
【図６】
2013018202.tif 000008
【図７】
2013018202.tif 000009
【図８】
2013018202.tif 000010
【図９】
2013018202.tif 000011
【図１０】
2013018202.tif 000012
【図１１】
2013018202.tif 000013
【図１２】
2013018202.tif 000014
【図１３】
2013018202.tif 000015
【図１４】
2013018202.tif 000016
【図１５】
2013018202.tif 000017
【図１６】
2013018202.tif 000018
【図１７】
2013018202.tif 000019
【図１８】
2013018202.tif 000020
【図１９】
2013018202.tif 000021
【図２０】
2013018202.tif 000022
【国際調査報告】
2013018202.tif 000023
2013018202.tif 000024