(57)【要約】【課題】消費電力の増加を低減することが可能なメモリ回路を内蔵した半導体集積回路装置を提供する。【解決手段】半導体集積回路装置は、内部回路とメモリモジュールとを具備する。メモリモジュールは、複数のメモリ回路を有し、同じアドレスに同じデータが保持される様に、多重化されている。メモリ回路のそれぞれからデータが読み出されたとき、メモリ回路からの読み出しデータに基づいて、メモリ回路に故障の可能性がある場合、検出回路によって故障可能性信号が形成される。故障可能性信号が形成された場合、複数のメモリ回路に対して診断動作が行われる。診断動作においても、故障可能性信号が形成された場合、異なるアドレスを指定するアドレス信号がバッドエリア管理回路により形成される。【選択図】図１
2014174670.tif 000002
【特許請求の範囲】
【請求項１】
１個の半導体チップに形成された内部回路と前記内部回路に接続されたメモリモジュールとを含む半導体集積回路装置であって、
前記メモリモジュールは、
互いに同じデータが書き込まれる複数のメモリ回路と、
供給されるアドレス信号を内部読み出しアドレス信号として、前記複数のメモリ回路へ供給する読み出し制御回路であって、前記内部読み出しアドレス信号により、前記複数のメモリ回路のそれぞれからデータが読み出されたとき、前記複数のメモリ回路のうちの少なくとも１個に故障の可能性がある場合、故障可能性信号を形成する検出回路を含む読み出し制御回路と、
供給されるアドレス信号を内部書き込みアドレス信号として、前記複数のメモリ回路へ供給する書き込み制御回路と、
前記故障可能性信号の形成に応答して、前記内部読み出しアドレス信号をアドレス信号として前記書き込み制御回路へ供給し、前記複数のメモリ回路へデータの書き込みを指示し、前記読み出し制御回路に対して、故障可能性信号が形成されたときの内部読み出しアドレス信号に基づく読み出しを指示するバッドエリア管理回路と、
を具備し、
前記バッドエリア管理回路は、前記読み出しの指示により、前記複数のメモリ回路のそれぞれからデータが読み出されたときに、前記検出回路が故障可能性信号を形成した場合、故障可能性信号が形成されたときの内部読み出しアドレス信号を、それとは異なるアドレスを指定する第１アドレス信号へ変換し、前記書き込み制御回路へ供給し、前記複数のメモリ回路に対してデータの書き込みを指示する、半導体集積回路装置。
【請求項２】
請求項１記載の半導体集積回路装置において、
前記バッドエリア管理回路は、メモリ回路から正しく読み出されたデータを保持する保持回路を有し、前記保持回路に保持されたデータが、前記第１アドレス信号により指定されるアドレスへ書き込むデータとされる、半導体集積回路装置。
【請求項３】
請求項２記載の半導体集積回路装置において、
前記バッドエリア管理回路は、変換前のアドレス信号と変換後の第１アドレス信号とを、それぞれ対として、複数対を保持するアドレス変換テーブルを有し、
第１アドレス信号への変換に際し、前記内部読み出しアドレス信号に相当するアドレス信号が、変換前のアドレス信号として、前記アドレス変換テーブルに保持されていないとき、第１アドレス信号を生成し、前記内部読み出しアドレス信号に相当するアドレス信号と生成した第１アドレス信号とを対として、前記アドレス変換テーブルに保持させる、半導体集積回路装置。
【請求項４】
請求項３記載の半導体集積回路装置において、
前記メモリモジュールは、前記内部回路で形成された外部書き込みアドレス信号を受け、書き込みアドレス信号を出力するインタフェース回路を具備し、
前記バッドエリア管理回路は、前記アドレス変換テーブルに格納されている変換前のアドレス信号と前記書き込みアドレス信号との一致を検出し、一致する場合、一致した変換前のアドレス信号と対をなす変換後の第１アドレス信号を、前記書き込み制御回路に供給し、変換後の第１アドレス信号によって指定されるアドレスにデータの書き込みが行われる様にする、半導体集積回路装置。
【請求項５】
請求項４記載の半導体集積回路装置において、
前記インタフェース回路は、前記内部回路で形成された外部読み出しアドレス信号を受け、読み出しアドレス信号を出力し、
前記バッドエリア管理回路は、前記アドレス変換テーブルに格納されている変換前のアドレス信号と、前記読み出しアドレス信号との一致を検出し、一致する場合、一致した変換前のアドレス信号と対をなす変換後の第１アドレス信号を、前記読み出し制御回路へ供給し、変換後の第１アドレス信号によって指定されるアドレスからデータが読み出される様にする、半導体集積回路装置。
【請求項６】
請求項５記載の半導体集積回路装置において、
前記複数のメモリ回路のそれぞれは、
供給される内部読み出しアドレス信号によって指定されるアドレスに、データと該データに基づいて形成された訂正用データとを保持するメモリ部と、
内部読み出しアドレス信号に応答して、読み出し動作が行われたとき、読み出されたデータと訂正用データとによりデータのチェックを行い、データを訂正するとき、訂正情報を出力するＥＣＣ回路と、
を具備し、
前記検出回路は、前記複数のメモリ回路におけるＥＣＣ回路からの訂正情報を受け、前記故障可能性信号を形成する、半導体集積回路装置。
【請求項７】
請求項６記載の半導体集積回路装置において、
前記複数のメモリ回路のそれぞれにおけるＥＣＣ回路は、訂正用データによりデータを訂正することが不可能な場合、訂正不可を示す訂正不可情報を出力し、
前記検出回路は、前記複数のメモリ回路のそれぞれにおけるＥＣＣ回路から、訂正不可情報が供給された場合、故障信号を形成し、前記バッドエリア管理回路に供給する、半導体集積回路装置。
【請求項８】
請求項７記載の半導体集積回路装置において、
前記内部回路は、マイクロプロセッサを含み、
前記バッドエリア管理回路は、前記故障可能性信号の形成に応答して、前記インタフェース回路へビジー信号を供給し、前記インタフェース回路は、ビジー信号に応答して、前記マイクロプロセッサに前記メモリモジュールへのアクセスを制限する制御信号を形成する、半導体集積回路装置。
【請求項９】
請求項８記載の半導体集積回路装置において、
前記バッドエリア管理回路は、前記マイクロプロセッサにより、アクセス可能なレジスタを具備し、
前記レジスタには、前記ＥＣＣ回路からの訂正情報および訂正不可情報が、保持される、半導体集積回路装置。
【請求項１０】
請求項５記載の半導体集積回路装置において、
前記複数のメモリ回路は、奇数個のメモリ回路であり、
前記検出回路は、内部読み出しアドレス信号に応答して、前記奇数個のメモリ回路のそれぞれから読み出されたデータを受け、読み出されたデータ間で相違があるとき、前記故障可能性信号を形成する、半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置に関し、特にメモリ回路を内蔵した半導体集積回路装置に関する。
【背景技術】
【０００２】
半導体集積回路装置を用いたシステムの安全性あるいは信頼性を向上させることが望まれている。システムの安全性あるいは信頼性を向上させるためには、部品として用いられている半導体集積回路装置に故障が発生した場合、故障発生部位を見つけ、特定することが重要である。メモリ回路を内蔵した半導体集積回路装置においては、故障発生の要因として、内蔵するメモリ回路の一部領域が正常に動作しなくなること（バッドエリア化）が挙げられる。復旧不可能な故障が発生しているかをチェックする技術が、特許文献１に開示されている。
【０００３】
特許文献１においては、その図２にメモリ装置に搭載された設定保存ボードの構成が示されている。設定保存ボードは、２つのメモリ（１０１ａ、１０１ｂ）にそれぞれ対応するエラー検出機能（１０２ａ、１０３ａ、１０２ｂ、１０３ｂ）が設けられた二重化メモリ部（１００ａ、１００ｂ）を含んでいる。設定保存ボードは、二重化メモリ部のそれぞれのデータに対するエラー検出結果に基づいて、一方のメモリのデータでエラーが検出された場合に他方のメモリの対応したデータで修正するエラーチェック処理を各メモリの所定領域全体にわたって繰り返すセルフチェック部（１１０−１１２）を含んでいる。さらに、エラーチェック処理を繰り返した際の異常判定回数ＣＮＴ（Ｘ）が所定回数に達した時にデータ修正不可能と判定する判定部（１１０）を含んでいる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１５４５９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に示された技術では、ＣＰＵによるアクセスが発生していない場合は、常にセルフチェック部が動作している（段落番号「００３０」から「００３４」参照）。そのため、消費電力の増加が懸念される。また、セルフチェック処理の際には、メモリの所定領域全体をチェック対象にしているため、ハード的な故障が、例え１箇所でもあった場合、セルフチェック処理の際のエラー要因がソフトエラーであるかハード的な故障であるかの判断をするまでに、図４から図６に示されている様な処理が必要とされる。そのため、処理時間の増大とそれに伴う消費電力の増大が懸念される。
【０００６】
また、特許文献１に開示されている技術は、段落番号「００５４」の記載から理解される様に、交換が可能な設定保存ボードに向けられており、半導体集積回路装置に内蔵され、交換が困難なメモリ回路については、意識されていない。
【０００７】
本発明の目的は、消費電力の増加を低減することが可能なメモリ回路を内蔵した半導体集積回路装置を提供することにある。
【０００８】
本発明の前記ならびにそのほかの目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１０】
すなわち、半導体集積回路装置は、内部回路と内部回路によりアクセスされるメモリモジュールを具備する。メモリモジュールは、複数のメモリ回路を有し、それぞれのメモリ回路は、同じアドレスに同じデータを格納する様に、多重化されている。メモリモジュールは、それぞれのメモリ回路に対して、データの書き込みを行う際に、内部書き込みアドレス信号を供給する書き込み制御回路と、それぞれのメモリ回路に対して、データの読み出しを行う際に、内部読み出しアドレス信号を供給する読み出し制御回路とを含んでいる。また、読み出し制御回路は、少なくとも１個のメモリ回路に故障の可能性があるとき、故障可能性信号を形成する検出回路を含んでいる。故障可能性信号が形成された場合、メモリ回路のそれぞれに対し、診断データの書き込みと診断データの読み出しを実行させ、診断データの読み出しに応答して、故障可能性信号が形成されたとき、異なるアドレスにデータの書き込みを行う様に、アドレス変換を行うバッドエリア管理回路を、メモリモジュールは具備している。
【００１１】
多重化された複数のメモリ回路のそれぞれから、データが読み出されたときに、検出回路が故障可能性信号を形成した場合、診断データの書き込みと読み出しが行われる。すなわち、故障可能性信号が形成されないときには、診断データの書き込みおよび読み出しが実行されない。そのため、診断データの書き込みおよび読み出しの回数が低減され、消費電力の増大を低減することが可能となる。また、診断データの読み出しにおいて、検出回路が故障可能性信号を形成した場合、メモリ回路内の異なるアドレスに対してデータの書き込みが行われる。これにより、メモリ回路に故障があった場合でも、救済することができ、半導体集積回路装置を継続して使用することが可能となる。
【発明の効果】
【００１２】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
【００１３】
消費電力の増加を低減することが可能なメモリ回路を内蔵した半導体集積回路装置を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施の形態に係わる半導体集積回路装置のメモリモジュールの構成を示すブロック図である。
【図２】本発明の一実施の形態に係わるメモリモジュールの書き込み動作を示すフロチャート図である。
【図３Ａ】本発明の一実施の形態に係わるメモリモジュールの読み出し動作を示すフロチャート図である。
【図３Ｂ】本発明の一実施の形態に係わるメモリモジュールの読み出し動作を示すフロチャート図である。
【図４】本発明の一実施の形態に係わるメモリモジュールの診断動作を示すフロチャート図である。
【図５】本発明の一実施の形態に係わる読み出し制御回路の構成を示すブロック図である。
【図６】本発明の一実施の形態に係わるバッドエリア管理回路の構成を示すブロック図である。
【図７】本発明の一実施の形態に係わる半導体集積回路装置の構成を示すブロック図である。
【図８】本発明の一実施の形態を説明するための説明図である。
【図９】本発明の第２の実施の形態に係わる構成を示すブロック図である。
【図１０】本発明の第３の実施の形態に係わる動作を示すフロチャート図である。
【図１１】本発明の第４の実施の形態に係わる構成を示すブロック図である。
【図１２】本発明の第５の実施の形態に係わる構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部分には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１６】
メモリ回路を含むメモリモジュールに関して、複数の実施の形態を以下に説明するが、各実施の形態を説明する前に、以下で説明するメモリモジュールを内蔵する半導体集積回路装置を、先ず説明する。
【００１７】
図７は、メモリモジュールを内蔵した半導体集積回路装置の構成を示すブロック図である。同図において、７００は、複数のモジュールが１個の半導体チップに形成された半導体集積回路装置である。１個の半導体チップに形成されたモジュールとしては、後で各実施の形態で詳細に説明するメモリモジュール７０１、マイクロプロセッサ（以下、ＣＰＵと称する）７０３、その他モジュール（例えばタイマー等）７０２、Ｉ／Ｏモジュール７０５がある。各モジュールは、内部バス７０４に接続されており、この内部バス７０４を介して相互間でデータの転送が行われる。Ｉ／Ｏモジュール７０５は、内部バス７０４と半導体集積回路装置７００の外部との間でデータ転送を行うインタフェース回路を含んでいる。ＣＰＵ７０３は、図示されていないメモリに格納されたプログラムに従って動作する。プログラムに従って動作する際に、ＣＰＵ７０３は、メモリモジュール７０１に対してアクセスを行い、アクセスによりデータの書き込みあるいはデータの読み出しを行う。特に制限されないが、ＣＰＵ７０３は、メモリモジュール７０１に対してデータの読み出しあるいは書き込みのためのアクセスをする際に、メモリモジュール７０１に対してリクエスト信号７０６を発行する。
【００１８】
リクエスト信号７０６は内部バス７０４を介してメモリモジュール７０１に供給される。メモリモジュール７０１は、リクエスト信号７０６を受けることにより、ＣＰＵ７０３からのアクセス要求を知り、アクセス要求を受け付ける場合、すなわちＣＰＵ７０３によるデータの読み出し動作あるいは書き込み動作を許可する場合、アクノリッジ信号７０７を発行する。このアクノリッジ信号７０７は、内部バス７０４を介して、ＣＰＵ７０３に伝えられる。ＣＰＵ７０３は、アクノリッジ信号７０７を受けることにより、メモリモジュール７０１に対して読み出し動作あるいは書き込み動作を開始する。一方、メモリモジュール７０１からアクノリッジ信号７０７が供給されない場合、アクノリッジ信号７０７が供給されるまで、ＣＰＵ７０３は、メモリモジュール７０１に対するアクセスを待機する。なお、リクエスト信号７０６とアクノリッジ信号７０７の信号経路は、内部バス７０４とは、別であっても良い。
【００１９】
（実施の形態１）
図１は、本発明の一実施の形態に係わる半導体集積回路装置７００に内蔵されたメモリモジュール７０１（図７）の構成を示すブロック図である。メモリモジュール７０１は、メモリ部１、書き込み制御回路４、読み出し制御回路５、バッドエリア管理回路６および内部バスインタフェース回路（以下、内部バスＩＦと称する）７を具備している。メモリ部１は、特に制限されないが互いに同じ構成にされたメモリ回路２および３を含んでおり、それぞれのメモリ回路２、３は、メモリ部２ｂ、３ｂとエラーチェック・コレクト回路（Ｅｒｒｏｒ  Ｃｈｅｃｋ  ａｎｄ  Ｃｏｒｒｅｃｔ回路、以下ＥＣＣ回路と称する）２ａ、３ａを含んでいる。メモリ回路２および３のそれぞれのメモリ部２ｂ、３ｂには、互いに同じデータが書き込まれ、メモリ回路に故障が発生していなければ、同じデータが読み出される。所謂二重化されたメモリ回路である。二重化することにより、メモリ回路の故障に対してデータの信頼性を向上させている。
【００２０】
メモリ回路２および３のそれぞれには、書き込み制御回路４から書き込まれるべきライトデータ１０およびライト制御信号１１が供給される。ライト制御信号１１は、メモリ回路２および３のメモリ部２ｂ、３ｂにおいて、書き込まれるべきアドレスを指定する内部書き込みアドレス信号と書き込み動作を指示するライトイネーブル信号を含んでいる。メモリ回路２および３には、同じライトデータ１０とライト制御信号１１が供給されるため、ライトイネーブル信号により書き込み動作が指示されると、互いに同じアドレス（メモリ部２ｂ、３ｂのアドレス）に、同じライトデータ（以下、単にデータとも称する場合がある）が書き込まれる。また、ＥＣＣ回路２ａおよび３ａのそれぞれは、書き込まれるべきデータ１０を受け、データ１０に従った誤り訂正用データを形成する。形成された誤り訂正用データは、ライト制御信号１１に含まれている内部書き込みアドレス信号により指定されるアドレスに書き込まれる。すなわち、ライト制御信号１１に含まれている内部書き込みアドレス信号により指定されるアドレス（メモリ部２ｂ、３ｂのアドレス）には、書き込み動作により、書き込まれるべきデータ１０と該データ１０に従って形成された誤り訂正用データが格納される。
【００２１】
メモリ回路２および３に格納されたデータ（データ１０と誤り訂正用データ）は、読み出し制御回路５から、メモリ部１に供給されるリード制御信号１３により、読み出される。リード制御信号１３は、メモリ回路２および３に供給される内部読み出しアドレス信号と読み出し動作を指示するリードイネーブル信号を含んでいる。メモリ回路２および３のそれぞれは、リードイネーブル信号により読み出し動作が指示されると、内部読み出しアドレス信号により指定されたアドレス（メモリ部２ｂ、３ｂのアドレス）からデータが出力される。出力されたデータの内、誤り訂正用データは、それぞれのメモリ回路に設けられたＥＣＣ回路２ａおよび３ａに供給される。訂正用データに基づいて、ＥＣＣ回路２ａ、３ａのそれぞれは、出力されたデータの内、データ１０に対応するデータに誤りが含まれているかのチェックを行い、誤りが含まれていないデータあるいは誤り訂正用データで訂正したデータをリードデータ１２として読み出し制御回路５へ供給する。
【００２２】
特に制限されないが、本明細書において述べるＥＣＣ回路は、データに１ビットの誤りが含まれていた場合には、その１ビットを訂正する機能を有し、２ビット以上の誤りが含まれていた場合には、訂正をすることができない。また、ＥＣＣ回路２ａおよび３ａのそれぞれは、チェックにおいて、次の情報を形成する。すなわち、誤りがあった場合には、誤りがあったことを示す誤り情報、誤りが１ビットであり、訂正した場合は訂正したことを示す訂正情報、誤りが２ビット以上あり、訂正できない場合は訂正不可能であったことを示す訂正不可情報を形成して、出力する。特に制限されないが、もし、誤りがなければ、誤り情報、訂正情報、および訂正不可情報は形成されない。
【００２３】
ＥＣＣ回路２ａおよび３ａのそれぞれからの誤り情報、訂正情報および訂正不可情報は、ＥＣＣエラー系情報１４として、読み出し制御回路５に供給される。同図では１本の信号線として示されているが、ＥＣＣエラー系情報１４は、ＥＣＣ回路２ａからのエラー系情報（誤り情報、訂正情報、訂正不可情報）とＥＣＣ回路３ａからのエラー系情報とを含んでいる。リードデータ１２も、同様に１本の信号線で示しているが、メモリ回路２から出力されたデータとメモリ回路３から出力されたデータとを含んでいる。なお、情報は、信号線を介して送受されるので、情報は信号と読み替えることも可能である。
【００２４】
この様に、書き込み動作においては、同じデータを２個のメモリ回路２および３に書き込み、読み出し動作においては、同じデータを２個のメモリ回路から読み出す様にして、メモリの二重化をしている。また、ＥＣＣ回路を設けることにより、１ビットの誤りが含まれていた場合でも、正しいデータが出力できる様にしている。
【００２５】
バッドエリア管理回路６は、その詳細を後で図面を用いて説明するので、ここでは概要を説明する。メモリ回路２および３のいずれかからエラー系情報が発行された場合、バッドエリア管理回路６は、メモリ回路２および３の診断を実行させる。診断を実行した結果、故障であると判断した場合、バッドエリア管理回路６は、その故障のアドレスの代替えとなるアドレスを形成し、代替えアドレスにデータ（書き込むべきデータとそれに基づいて形成された誤り訂正用データ）を書き込む様に管理する。また、診断の結果として故障と判断したアドレスに対して、その後、書き込みあるいは読み出しのアクセスが生じた場合、代替えのアドレスに対してアクセスが行われる様に、バッドエリア管理回路はアドレスの管理を実行する。特に制限されないが、バッドエリア管理回路６は、診断を実施している期間、アクセス元（図７の実施例ではＣＰＵ７０３）に対してアクセスを待機させる。
【００２６】
読み出し制御回路５は、読み出し動作を実施するために、内部読み出しアドレス信号とリードイネーブル信号を、リード制御信号１３としてメモリ部１に供給する。このリード制御信号１３に応答して、メモリ回路２および３のそれぞれから、内部読み出しアドレス信号によって指定されたアドレス（メモリ部２ｂ、３ｂのアドレス）に格納されていたデータが出力される。出力されたデータは、書き込まれたデータに対応するデータ（以下処理用データとも称する）と誤り訂正用データを含んでいる。出力された誤り訂正用データに基づいて、ＥＣＣ回路２ａおよび３ａのそれぞれは、処理用データと誤り訂正用データに誤りが含まれているか否かをチェックする。メモリ部２ｂあるいは３ｂから出力されたデータ（処理用データと誤り訂正用データを含む）のいずれか一方に、１ビットの誤りが含まれていた場合、そのデータは、ＥＣＣ回路により訂正され、訂正されたデータの内、処理用データは、読み出し制御回路５に供給される。
【００２７】
例えば、メモリ回路２内のメモリ部２ｂから出力されたデータは、ＥＣＣ回路２ａにより訂正され、訂正された処理用データが出力される。このとき、メモリ回路３内のメモリ部３ｂから出力されたデータに誤りが含まれていなければ、ＥＣＣ回路３ａによって訂正されず、処理用データとして出力される。この場合、リードデータ１２は、メモリ回路２から出力された訂正された処理用データと、メモリ回路３から出力された訂正されていない処理用データを含んでいる。また、このとき、メモリ回路２内のＥＣＣ回路２ａからは、エラー系情報（誤りがあったことを示す誤り情報、訂正したことを示す訂正情報）が発行される。従って、この時のＥＣＣエラー系情報１４は、メモリ回路２で発行されたエラー系情報を含んでいる。なお、このとき、メモリ回路３内のＥＣＣ回路３ａからもエラー系情報が発行され、ＥＣＣエラー系情報１４に含まれる様にしても良い。この場合、ＥＣＣ回路３ａが発行するエラー系情報は、例えば誤りが発生していないことを示す誤り情報である。
【００２８】
また、ＥＣＣ回路２ａおよび３ａのそれぞれで誤りが検出された場合には、誤りの発生、訂正の有無あるいは訂正不可を示すエラー系情報が発行され、ＥＣＣエラー系情報１４として読み出し制御回路５に供給される。ＥＣＣ回路２ａ、３ａの両方で誤りが検出されなかった場合には、ＥＣＣ回路２ａ、３ａのそれぞれは、エラー系情報を発行しない。あるいは、誤りが発生していないことを示すエラー系情報を発行し、これがＥＣＣエラー系情報１４として読み出し制御回路５に供給される。
【００２９】
読み出し制御回路５は、誤りが発生していることを示す誤り情報と、訂正を実施したことを示す訂正情報あるいは訂正不可を示す訂正不可情報とを含むＥＣＣエラー系情報１４を受けると、このＥＣＣエラー系情報１４と訂正の必要がなかった処理用データ（上記の説明では、メモリ回路３から出力された処理用データ）を、リードＥＣＣエラー系情報１５として、バッドエリア管理回路６に供給する。また、この時の内部読み出しアドレス信号を読み出しアドレス値２０として、読み出し制御回路５は、バッドエリア管理回路６に供給する。バッドエリア管理回路６は、このリードＥＣＣエラー系情報１５を受けると、診断データライト要求１６を書き込み制御回路４に供給する。この診断データライト要求１６は、供給されたリードＥＣＣエラー系情報１５に含まれていた訂正の必要がなかった処理用データと、ライトイネーブル信号と、読み出しアドレス値２０を含んでいる。書き込み制御回路４は、診断データライト要求１６を受けると、リードＥＣＣエラー系情報１５に含まれていた訂正の必要がなかった処理用データを、ライトデータ１０としてメモリ部１に供給する。また、書き込み制御回路４は、読み出しアドレス値２０を内部書き込み用アドレス信号としたライト制御信号１１をメモリ部１に供給する。このとき、書き込み制御回路４は、ライトイネーブル信号もライト制御信号１１として供給する。
【００３０】
これにより、読み出しアドレス値２０を内部書き込みアドレス信号として、メモリ回路２、３内のメモリ部２ｂ、３ｂのそれぞれにおいて、それぞれ指定されたアドレスに、リードＥＣＣエラー系情報１５に含まれていた訂正の必要がなかった処理用データが書き込まれる。すなわち、ＥＣＣ回路により訂正を行ったデータが格納されていた、メモリ回路２および／あるいは３のそれぞれのアドレスに、訂正の必要がなかった処理用データが再度書き込まれる。このとき、処理用データに基づいて、それぞれのＥＣＣ回路２ａおよび３ａでは、誤り訂正用データが生成される。生成された誤り訂正用データも、読み出しアドレス値２０により指定されたアドレスに書き込まれる。すなわち、訂正を必要としなかった処理用データとそれに対応した誤り訂正用データの両方が、メモリ回路２および３のそれぞれにおいて読み出しアドレス値２０により指定されたアドレスに再度書き込まれる。
【００３１】
バッドエリア管理回路６は、上記した再度書き込みの後、診断結果リード要求１７を読み出し制御回路５に供給する。診断結果リード要求１７は、読み出しアドレス値２０として通知されたアドレス信号とリードイネーブル信号とを含んでいる。
【００３２】
読み出し制御回路５は、診断結果リード要求１７を受けると、それに含まれているアドレス信号を内部読み出しアドレス信号としてメモリ部１に供給する。また、リードイネーブル信号をメモリ部１に供給する。これにより、メモリ回路２および３のそれぞれにおいて、読み出しアドレス値２０に対応するアドレス信号により特定されるアドレスに格納されている処理用データと誤り訂正用データが読み出される。読み出された誤り訂正用データに基づいて処理用データおよび誤り訂正用データに誤りがないか否かのチェックが、各ＥＣＣ回路２ａおよび３ａにおいて実施される。チェックの結果として、誤りがあり、誤りを示す誤り情報と、訂正情報あるいは訂正不可情報がＥＣＣ回路２ａまたは３ａから読み出し制御回路５に、ＥＣＣエラー系情報１４として供給された場合、読み出し制御回路５は、誤りを示す誤り情報と、訂正情報あるいは訂正不可情報をリードＥＣＣエラー系情報１５としてバッドエリア管理回路６に伝える。
【００３３】
バッドエリア管理回路６は、診断結果リード要求１７を発行した後、リードＥＣＣエラー系情報１５が供給されると、メモリ回路２、３内のメモリ部２ｂ、３ｂのそれぞれに予め設定してある予備のメモリエリアの特定アドレスを指定するアドレス信号を形成する。この形成されたアドレス信号と、ライトイネーブル信号と、訂正の必要なしとして先に供給されていた処理用データとを含む診断データライト要求１６が、書き込み制御回路４に供給される。書き込み制御回路４は、この診断データライト要求１６を受けると、それに含まれているアドレス信号を内部書き込み用アドレス信号として、訂正の必要なしとして先に供給されていた処理用データを書き込み用のデータとして、メモリ部１に供給する。これにより、メモリ回路２および３のそれぞれにおいて、予備エリア内のアドレスに、訂正の必要なしとして先に供給されていた処理用データが書き込まれる。
【００３４】
また、この書き込みの際には、誤り訂正用データも、ＥＣＣ回路２ａおよび３ａのそれぞれにおいて形成され、予備エリア内のアドレスに書き込まれる。このようにして、診断結果リード要求１７に応答して、誤りを示す誤り情報と、訂正情報あるいは訂正不可情報が発行された場合には、メモリ回路２および３のそれぞれに予め設けられていた予備のエリアにデータが格納される。
【００３５】
バッドエリア管理回路６は、予備のメモリエリア内のアドレスを示すアドレス信号を形成した際、この形成したアドレス信号と読み出しアドレス値２０として供給されたアドレス信号とを、１対として登録するレジスタを有している。すなわち、変換前のアドレス信号と変換後のアドレス信号とを１対として登録するレジスタを有している。
【００３６】
ＣＰＵ７０３からメモリモジュール７０１へのアクセスは、内部バスＩＦ７を介して行われる。例えば、ＣＰＵ７０３からメモリモジュール７０１へ書き込みのアクセスをする場合、ＣＰＵ７０３からメモリモジュール７０１へ供給される外部書き込みアドレス信号と、書き込まれるべきデータと、ライトイネーブル信号は、内部バス７０４を介して、内部バスＩＦ７に供給され、内部バスＩＦ７からライト要求２３として書き込み制御回路４に供給される。すなわち、ライト要求２３は、外部書き込みアドレス信号と、ライトイネーブル信号と、書き込まれるべきデータとを含んでいる。書き込み制御回路４は、供給された外部書き込みアドレス信号を書き込みアドレス値１８として、バッドエリア管理回路６に供給する。バッドエリア管理回路６は、書き込みアドレス値１８として供給された外部書き込みアドレス信号が、前記レジスタに登録されているか否かの確認を行う。すなわち、書き込みアドレス値１８として供給された外部書き込みアドレス信号が、アドレス信号を変換する前のアドレス信号として登録されているアドレス信号と一致するか否かの確認が実行される。
【００３７】
一致した場合、一致したことを示す一致信号と、一致した変換前のアドレス信号と対を構成している変換後のアドレス信号を、書き込みアドレス変換要求１９として出力する。これにより、メモリ回路２および３において、故障しているアドレスではなく、メモリ回路２および３の予備のエリアにおけるアドレスに、データとＥＣＣ回路により形成された誤り訂正データが書き込まれる。この場合、ライトイネーブル信号は、バッドエリア管理回路６により形成され、書き込みアドレス変換要求１９の一部として供給されるようすることができる。また、書き込み制御回路４は、データセレクタを有しており、書き込まれるべきデータは、診断データライト要求１６が発行されたときのみ、上記データセレクタがバッドエリア管理回路６からのデータを選択して、メモリ部１に供給する様にされている。従って、ＣＰＵ７０３による書き込みのアクセスにおいては、上記データセレクタは、ライト要求２３に含まれているデータをメモリ部１に供給する。
【００３８】
一方、書き込みアドレス値１８として供給された外部書き込み用アドレス信号が、アドレス信号を変換する前のアドレス信号として登録されているアドレス信号と一致しなかった場合、一致信号が書き込み制御回路４に供給されないため、書き込み制御回路４は、ライト要求２３に含まれている外部書き込み用アドレス信号をメモリ部１に供給する。これにより、外部書き込み用アドレス信号によって指定されるアドレスにデータの書き込みが行われる。
【００３９】
ＣＰＵ７０３によるメモリモジュール７０１へのアクセスが、読み出しの場合を次に説明する。ＣＰＵ７０３により出力された外部読み出しアドレス信号と、リードイネーブル信号は、内部バス７０４を介して内部バスＩＦ７に供給される。内部バスＩＦ７は、供給された外部読み出しアドレス信号とリードイネーブル信号をリード要求２４として、読み出し制御回路５に供給する。読み出し制御回路５は、供給された外部読み出し用アドレス信号を読み出しアドレス値２０として、バッドエリア管理回路６に供給する。
【００４０】
バッドエリア管理回路６は、供給された読み出しアドレス値２０と、上記したレジスタに登録されているアドレスの変換前のアドレス信号と比較を行う。一致した場合、一致した変換前のアドレス信号と対を構成している変換後のアドレス信号をレジスタから読み出して、バッドエリア管理回路６は、読み出しアドレス変換要求２１として読み出し制御回路５に供給する。このとき、一致したことを示す一致信号も読み出しアドレス変換要求２１の一部としてバッドエリア管理回路６から読み出し制御回路５へ供給される。読み出し制御回路５は、供給された読み出しアドレス変換要求２１に含まれているアドレス信号（この場合には、変換後のアドレス信号）をメモリ部１に供給して、メモリ回路２、３内のメモリ部２ｂ、３ｂから処理用データおよび誤り訂正用データの読み出しを行う。この場合、リードイネーブル信号は、バッドエリア管理回路６から読み出しアドレス変換要求２１とともに、読み出し制御回路５に供給しても良いし、リード要求２４に含まれているリードイネーブル信号を用いても良い。
【００４１】
供給された読み出しアドレス値２０と、バッドエリア管理回路６内の上記したレジスタに登録されているアドレスの変換前のアドレス信号とが一致しなかった場合、すなわち、不一致の場合、バッドエリア管理回路６からは、一致信号が読み出し制御回路５に供給されない。読み出し制御回路５は、一致信号が供給されないため、リード要求２４に含まれている外部読み出し用アドレス信号とリードイネーブル信号をリード制御信号１３として、メモリ部１に供給する。これにより、メモリ回路２、３内のメモリ部２ｂ、３ｂのそれぞれから、処理用データと誤り訂正用データが出力される。読み出し制御回路５も、データセレクタを有しており、診断結果リード要求１７が発行されていないときのみ、メモリ回路２および３からの処理用データがリードデータ２５として内部バスＩＦ７に供給するようにされている。特に制限されないが、診断結果リード要求１７が発行された場合は、メモリ回路２および３から出力された処理用データは、内部バスＩＦ７に供給されない。
【００４２】
ＣＰＵ７０３からの読み出しアクセスにおいて、誤り訂正用データに基づいたデータの訂正が発生した場合には、前述したように、訂正情報が発生し、前述したような診断動作が実行される。診断動作を実施している期間においては、バッドエリア管理回路６は、ＣＰＵ７０３によるメモリモジュール７０１へのアクセスを待機させるために、診断中を示すビジー信号２２を形成して、内部バスＩＦ７に供給する。図１においては、リクエスト信号とアクノリッジ信号が示されていないが、上記したＣＰＵ７０３からメモリモジュール７０１へのアクセスは、リクエスト信号をＣＰＵ７０３が発行し、メモリモジュール７０１はアクノリッジ信号を発行した状態で行われる。一方、内部バスＩＦ７は、ビジー信号２２を受けると、アクノリッジ信号の発行を停止する。これにより、メモリモジュール７０１の診断中にアクセスされるのが防止される。すなわち、ＣＰＵ７０３によるメモリモジュール７０１へのアクセスを制限される制限信号（ビジー信号２２）が形成される。なお、図面においては、ビジー信号２２をＢＵＳＹ信号２２と記載している場合もある。
【００４３】
バッドエリア管理回路６は、同図には示されていないが複数のレジスタを有しており、これらのレジスタをアクセスするための経路が、２６で示されている。また、メモリモジュール７０１の故障等を、ＣＰＵ７０３に通知するために、本実施の形態では、割り込み制御を用いており、その信号がバッドエリア管理回路６から割り込み通知用信号２７として示されている。割り込み通知用信号２７は、内部バス７０４を介さずに、ＣＰＵ７０３へ供給するため、内部バスＩＦ７には供給されていない。
【００４４】
本実施の形態では、ＥＣＣ回路２ａおよび３ａにより、１ビットの誤りを訂正しても、診断動作を実行する様にしている。この様にすることにより、ソフトエラーによる故障であれば、診断動作で故障と判断される可能性が低くなり、予備のメモリエリアを用いずに、継続してメモリ回路２、３の正規領域を使うことができる。一方、ハード的な故障であれば、診断動作において、誤りを示す情報、訂正情報あるいは訂正不可情報が発生するため、予備のメモリエリアを用いる様にできる。ハード的な故障に対して予備のメモリエリアを用いるようにすることにより、ハード的なエラーとソフトエラーとが重なって、ＥＣＣ回路の訂正能力を超えるようなエラーが発生するのを低減することが可能となる。また、常時診断動作を行うのではなく、ＥＣＣ回路により、誤りを示す誤り情報、訂正情報、訂正不可情報が形成された場合に、診断動作が行われるため、診断回数を低減することが可能となり、消費電力の増大を低減することが可能となる。
【００４５】
上述では、診断データおよび予備エリア内のアドレスに書き込まれるデータとして、訂正の必要なしとして先に供給されていた処理用データを用いることを述べた。しかしながら、診断データおよび予備エリア内のアドレスに書き込まれるデータは、訂正されて、正しいデータとなったものでも良い。従って、この実施の形態においては、診断データおよび予備エリアに書き込まれるデータは、訂正の必要なしとして先に供給されていた処理用データだけでなく、後で図３Ａおよび図３Ｂを用いて説明する「正しく読み出されたデータ」であれば良い。
【００４６】
次に、図１に示したメモリモジュールの動作を、フロチャート図を用いながら説明する。図２は、図１に示したメモリモジュール７０１における書き込み動作を示すフロチャート図である。図３Ａおよび図３Ｂのそれぞれは、メモリモジュール７０１における読み出し動作を示すフロチャート図である。図４は、メモリモジュール７０１における診断動作を示すフロチャート図である。
【００４７】
図２は、図７に示したＣＰＵ７０３からメモリモジュール７０１にデータの書き込み指示（命令）があった場合のフロチャート図である。図２において、一点破線よりも上側が、ＣＰＵ７０３による動作を示しており、一点破線の下側がメモリモジュール７０１の動作を示している。ＣＰＵ７０３は、メモリモジュール７０１にデータを書き込むために、リクエスト信号７０６を内部バスＩＦ７に供給し、アクセスする（ステップＳ２００）。内部バスＩＦ７は、ステップＳ２０１において、メモリ部１が診断中か否かをバッドエリア管理回路６から供給されているビジー信号２２により判断する。メモリ部１が診断中であれば、バッドエリア管理回路６からビジー信号２２が供給されているため、内部バスＩＦ７は、アクノリッジ信号７０７の発生を待機させる（ステップＳ２０２）。これにより、ＣＰＵ７０３は、アクノリッジ信号７０７が発行されるまで、メモリモジュール７０１へのアクセスを待機する。
【００４８】
ビジー信号２２が、バッドエリア管理回路６で形成されていない場合、内部バスＩＦ７は、ステップＳ２０３でアクノリッジ信号７０７を形成して、ＣＰＵ７０３へメモリモジュール７０１の使用許可を知らせる。これに応答して、ＣＰＵ７０３から、外部書き込みアドレス信号と書き込まれるべきデータがメモリモジュール７０１に供給される。供給されたデータおよび外部書き込みアドレス信号は、内部バスＩＦ７から書き込み制御回路４に対して、ライト要求２３として供給される（ステップＳ２０４）。書き込み制御回路４は、供給された外部書き込みアドレス信号を書き込みアドレス値１８としてバッドエリア管理回路６に供給する（ステップＳ２０５）。
【００４９】
バッドエリア管理回路６は、ステップＳ２０６において、供給された書き込みアドレス値１８が、バッドエリア管理回路６に登録されているか否かの判断を行う。後で、図６を用いてバッドエリア管理回路６の構成を説明するが、バッドエリア管理回路６は、バッドエリア情報登録レジスタ６０１を有しており、バッドエリア情報登録レジスタ６０１に、書き込みアドレス値１８に該当するアドレス信号が既に登録されているか否かの判断が行われる。バッドエリア管理回路６に、書き込みアドレス値１８に該当するアドレス信号が登録されている場合、ステップＳ２０７において、バッドエリア管理回路６から書き込み制御回路４へアドレス信号が供給され、このアドレス信号が書き込み制御回路４に内部書き込みアドレス信号として設定される。一方、バッドエリア管理回路６に、書き込みアドレス値１８が登録されていない場合には、ライト要求２３として供給された外部書き込みアドレス信号が内部書き込みアドレス信号として書き込み制御回路４に供給され、書き込み制御回路４に設定される。
【００５０】
書き込み制御回路４は、設定された内部書き込みアドレス信号と、書き込まれるべきデータと、書き込み制御信号（ライトイネーブル信号）を、ステップＳ２０９において、メモリ部１に供給する。供給された内部書き込みアドレス信号によって指定されたメモリ回路２、３のそれぞれのアドレスに、データが書き込まれる（ステップＳ２１０）。このステップＳ２１０においては、ＥＣＣ回路２ａおよび３ａにより、書き込まれるべきデータ（書き込み用データ）から誤り訂正用データも形成され、書き込み用データとともに、同じアドレスに書き込まれる。すなわち、メモリ回路２、３内のメモリ部２ｂ、３ｂのそれぞれにおいて、同じアドレスに同じデータが書き込まれる。
【００５１】
次に、メモリモジュール７０１における読み出し動作を図３Ａおよび図３Ｂのフロチャート図に基づいて説明する。読み出し動作は、以下に述べるステップＳ３００からＳ３２１によって実行される。これらのステップの内、ステップＳ３００からＳ３０９までが、図３Ａに示されており、ステップＳ３１０からＳ３２１までが、図３Ｂに示されている。図３ＡのステップＳ３０９の後に、図３Ｂのステップ３１０が実行される。
【００５２】
図３Ａにおいても、一点破線より上側は、ＣＰＵ７０３による動作を示し、下側は、メモリモジュール７０１の動作を示している。図３Ａにおいて、ステップＳ３００からＳ３０３までは、図２に示したステップＳ２００からＳ２０３までと類似している。すなわち、ステップＳ２００からＳ２０３までは、ＣＰＵ７０３による書き込み指示を示しているが、ステップＳ３００からＳ３０３までは、ＣＰＵ７０３による読み出し指示を示している。図３Ａでは、読み出し動作が指示されているため、ＣＰＵ７０３からは外部書き込みアドレス信号ではなく、外部読み出しアドレス信号が外部バスＩＦ７に供給される。ステップＳ３０３までは、図２と類似しているので、その説明は省略する。
【００５３】
ステップＳ３０４において、内部バスＩＦ７から読み出し制御回路５に、外部読み出しアドレス信号を含むリード要求２４が供給される。読み出し制御回路５は、外部読み出しアドレス信号を読み出しアドレス値２０として、バッドエリア管理回路６に供給する（ステップＳ３０５）。
【００５４】
バッドエリア管理回路６は、バッドエリア情報登録レジスタ６０１（後述する）を有しており、供給された読み出しアドレス値２０に該当するアドレス信号がバッドエリア情報登録レジスタに登録されているか否かの判断を行う。該当するアドレス信号が、登録されていた場合、次にステップＳ３０７が実行される。ステップＳ３０７においては、バッドエリア管理回路６からアドレス信号が、読み出しアドレス変換要求２１として出力され、読み出し制御回路５に設定される。一方、該当するアドレス信号が、バッドエリア管理回路６に登録されていない場合には、内部バスＩＦ７からリード要求２４として供給された外部読み出しアドレス信号が、ステップＳ３０８において、読み出し制御回路５に設定される。
【００５５】
次に、読み出し制御回路５は、ステップＳ３０７あるいはＳ３０８で設定された読み出しアドレス信号と読み出し制御信号（リードイネーブル信号）をメモリ部１に供給する（ステップＳ３０９）。これにより、ステップＳ３１０において、メモリ部１内のメモリ回路２、３内のメモリ部２ｂ、３ｂのそれぞれからデータが読み出される。ここで読み出されたデータは、書き込み動作において、同一のアドレスに書き込まれた処理用データと、書き込み用データに基づいて形成された誤り訂正用データの２種類のデータである。
【００５６】
メモリ回路２および３に設けられたＥＣＣ回路２ａおよび３ａのそれぞれにおいて、ステップＳ３１０で読み出された処理用データと誤り訂正用データとを用いて、誤りの有無を示す誤り情報、訂正した場合には訂正情報、訂正不可能な場合には訂正不可情報を含むＥＣＣエラー系情報１４が形成され、読み出し制御回路５に供給される。読み出し制御回路５は、ＥＣＣ回路２ａおよび３ａから供給されるＥＣＣエラー系情報１４に基づいて、ステップＳ３１１で、データの復旧が可能か否かの判断を行う。すなわち、ＥＣＣ回路２ａおよび３ａの両方から、２ビット以上のエラーで訂正不可であることを示す訂正不可情報を含むＥＣＣエラー系情報１４が供給された場合、データの復旧は不可能となる。この場合には、次にステップＳ３１９を実施する。
【００５７】
ステップＳ３１９では、読み出し制御回路５からバッドエリア管理回路６に対して、データ復旧不可の通知を、リードＥＣＣ系エラー情報１５として通知する。この通知を受けて、バッドエリア管理回路６は、ステップＳ３２０において、データ復旧不可を表す割り込み信号を形成し、重度障害の割り込み通知信号２７として、ＣＰＵ７０３に伝える。本実施の形態では、ステップＳ３２０の後のステップＳ３２１において、復旧不可能なデータを、読み出し制御回路５から、リードデータ２５として内部バスＩＦ７へ供給するようにしている。この様にすることにより、復旧不可能なデータをＣＰＵ７０３において、分析することが可能となるが、必ずしも、ステップＳ３２０の後にステップ３２１を実施しなくても良い。
【００５８】
ステップＳ３１１で、復旧不可能なデータではないと判断した場合、メモリ回路２および３のそれぞれから読み出されたデータの内、正しく読み出されたデータが、ステップＳ３１２で、読み出し制御回路５に取り込まれる。ここで、正しく読み出されたデータ（あるいは正しく読み出せたデータ）とは、次の３種類に分類される。
【００５９】
分類（１）：ＥＣＣ回路２ａおよび３ａの両方でエラーなしを示すＥＣＣエラー系情報１４（誤りを示す誤り情報が含まれていない）が形成された場合には、メモリ回路２および３からの読み出されたデータが正しく読み出されたデータである。分類（２）：ＥＣＣ回路２ａまたは３ａのいずれか一方でエラーありを示すＥＣＣエラー系情報１４が形成され、他方ではエラーなしを示すＥＣＣエラー系情報１４が形成された場合には、エラーなしを示すＥＣＣエラー系情報１４（誤りを示す誤り情報が含まれていない）を出力しているＥＣＣ回路を有するメモリ回路から出力されているデータが正しく読み出されたデータである。分類（３）：少なくとも１つのＥＣＣ回路から１ビットエラーの訂正を示しているＥＣＣエラー系情報１４（誤りを示す誤り情報と訂正を実施した旨を示す訂正情報を含む）が形成されている場合、そのＥＣＣエラー系情報１４を形成しているＥＣＣ回路を有するところのメモリ回路から出力されているデータが、正しく読み出されたデータである。メモリモジュールから出力するデータは１つであるため、正しいデータが２つある場合には、いずれか１つのデータが、読み出し制御回路５によって選択されるようにすれば良い。
【００６０】
読み出し制御回路５においては、ステップＳ３１２の後で、故障発生の特定のために、ステップＳ３１３からＳ３１６を実施する。先ず、メモリ回路から供給されているＥＣＣエラー系情報１４から、メモリ回路２においてエラーが発生したのかを、ステップＳ３１３で判断する。メモリ回路２においてエラーが発生している場合には、ステップＳ３１４で、メモリ回路２でエラーが発生している誤り情報と、発生しているエラーを訂正したのか２ビット以上で訂正不可能なのかを示す情報（訂正情報あるいは訂正不可情報）とをＥＣＣエラー系情報１４として取り込む。次に、ステップＳ３１５において、メモリ回路３においてエラーが発生したのかを判断し、ステップＳ３１６において、メモリ回路３でエラーが発生している情報（誤り情報）と、発生しているエラーを訂正したのか、２ビット以上で訂正不可能なのかを示す情報（訂正情報あるいは訂正不可情報）とをＥＣＣエラー系情報１４として取り込む。
【００６１】
ステップＳ３１７において、読み出し制御回路５は、メモリ回路２および３のいずれかでエラーが発生したかを、メモリ回路２および３のそれぞれから取り込んだＥＣＣエラー系情報１４により判断する。メモリ回路２および３のいずれかでエラーが発生していた場合には、ステップＳ３１８を実行する。ステップＳ３１８では、ステップＳ３１４およびステップＳ３１６で取り込んだＥＣＣエラー系情報１４をリードＥＣＣエラー系情報１５として、バッドエリア管理回路６に供給する。また、ステップＳ３１１で「正しく読み出されたデータ」と判定されたデータも、バッドエリア管理回路６にリードＥＣＣエラー系情報１５として供給する。また、「正しく読み出されたデータ」と判定されたデータは、次のステップＳ３２１で、リードデータ２５として、内部バスＩＦ７を介して、ＣＰＵ７０３へ供給される。
【００６２】
ＥＣＣ回路２ａおよび３ａの両方が、エラーなしを示した場合には、ステップＳ３２１が実行される。ステップＳ３２１では、いずれかのメモリ回路から読み出されたデータが、リードデータ２５として、内部バスＩＦ７へ供給され、ＣＰＵ７０３に供給される。
【００６３】
図４には、メモリモジュール７０１における診断動作を示すフロチャートが示されている。バッドエリア管理回路６は、読み出し制御回路５からリードＥＣＣエラー系情報１５によってエラーの発生が通知されるまで、ステップＳ４００で待機する。エラーの発生が通知されると、ステップＳ４０１をバッドエリア管理回路６は実施する。
【００６４】
ステップＳ４０１において、バッドエリア管理回路６は、リードＥＣＣエラー系情報１５と正しく読み出されたデータとを取り込む。また、このとき、読み出しアドレス値２０を取り込み、エラーの発生したアドレスを、バッドエリア管理回路６は、この読み出しアドレス値２０から把握する。リードＥＣＣエラー系情報１５は、図３Ａおよび図３Ｂで説明したように、メモリ回路２および３のそれぞれにおいて発生したエラーの状況を含んでいる。すなわち、本実施の形態においては、メモリ回路２および３のそれぞれにおいて、エラーが発生しているかを示す情報（誤り情報）、１ビットエラーで訂正されているかを示す訂正情報、２ビット以上のエラーで訂正不可を示す訂正不可情報が、バッドエリア管理回路６に供給される。
【００６５】
次に、ステップＳ４０２において、バッドエリア管理回路６は、故障の診断を実施することをメモリモジュールの外部に通知するために、ビジー信号２２を発生する。次のステップＳ４０３において、バッドエリア管理回路６は、診断のための書き込みアドレス信号と診断のために書き込まれるべきデータとを形成する。ここで、書き込みアドレス信号は、ステップＳ４０１において取り込んだ読み出しアドレス値２０を用い、書き込むべきデータとして、同じくステップＳ４０１において取り込んだところの正しく読み出されたデータを用いる。正しく読み出されたデータを、診断用の書き込みデータとして用いることにより、診断の結果として故障が発生していないと判断した場合に書き込み回数の増加を防ぐことができ、消費電力の低減に寄与できる。上記の様にして形成された書き込みアドレス信号と書き込まれるべきデータは、このステップにおいて、バッドエリア管理回路６から書き込み制御回路４へ供給される。
【００６６】
書き込み制御回路４は、ステップＳ４０４において、供給された書き込みアドレス信号と書き込むべきデータを、メモリ回路２および３のそれぞれに供給し、書き込み制御信号（ライトイネーブル信号）を発生する。これにより、メモリ回路２および３のそれぞれにおいて、供給された書き込みアドレス信号（内部書き込みアドレス信号）により指定されたアドレス（診断対象アドレス）に対して、診断用の書き込みデータの書き込み動作が実施される。メモリ回路２および３内のそれぞれのＥＣＣ回路２ａおよび３ａは、診断用の書き込みデータに基づいた誤り訂正用データを形成する。形成された誤り訂正用データは、書き込まれるべきデータとともに、それぞれのメモリ回路２、３内のメモリ部２ｂ、３ｂのアドレスに書き込まれる。
【００６７】
ステップＳ４０４の後に、バッドエリア管理回路６は、読み出し制御回路５に対して診断結果リード要求１７を、ステップＳ４０５において供給する。診断結果リード要求１７は、ステップＳ４０１において取り込んだ読み出しアドレス値２０を含んでいる。読み出し制御回路５は、診断結果リード要求１７を受けることにより、メモリ回路２および３のそれぞれにおいて、読み出しアドレス値２０で指定されるアドレスからデータの読み出しを行う。この時、同じアドレスに格納されている誤り訂正用データも読み出される。
【００６８】
読み出されたデータ（誤り訂正用データと処理用データ）とを、ＥＣＣ回路２ａおよび３ａが受け、誤りの検出と訂正が行われる。ＥＣＣ回路２ａおよび３ａのそれぞれは、それを含むメモリ回路において、故障が発生しているか否かを示す誤り情報と、１ビットエラーで訂正したことを示す訂正情報あるいは２ビット以上のエラーで訂正不可を示す訂正不可情報を、ＥＣＣエラー系情報１４として、読み出し制御回路５に供給する。
【００６９】
読み出し制御回路５は、メモリ回路２および３のそれぞれから供給されるＥＣＣエラー系情報１４に基づいて、メモリ回路２および／あるいは３において故障が発生しているか否かの判断を、ステップＳ４０６において行う。この時の判断は、例えばメモリ回路２および３の少なくとも一方から、故障が発生していることを示す情報が供給された場合、メモリ回路に故障が発生していると判断する。この判断動作は、診断結果リード要求１７に応答して行われるため、診断結果リード要求１７が供給された場合のみ、上記例示した様な判断動作を行う。
【００７０】
ステップＳ４０６において、故障は発生していないと判断された場合、ステップＳ４０２で発生していたビジー信号２２の発生を、バッドエリア管理回路６は停止する（ステップＳ４１１）。言い換えれば、ステップＳ４０２でアサートしたビジー信号２２を、ステップＳ４１１でネゲートする。これにより、メモリモジュール７０１は、ＣＰＵ７０３からリクエスト信号が供給されたとき、アクノリッジ信号を発生することになり、ＣＰＵ７０３によるメモリモジュール７０１へのアクセスが可能となる。
【００７１】
ステップＳ４０６において、故障が発生していると判断された場合には、次にステップＳ４０７が実行される。バッドエリア管理回路６は、後で図６を用いて説明するがバッドエリア情報登録レジスタ６０１を有している。このバッドエリア情報登録レジスタ６０１には、それぞれアドレスを変換する前のアドレス信号と変換後のアドレス信号を対とした複数対のアドレス情報が格納されている。言い換えるならば、複数対のアドレス情報を有するアドレス変換テーブルが、バッドエリア管理回路６に設けられている。特に制限されないが、本実施の形態においては、アドレス変換テーブルに格納できるアドレス情報の数には制限がある。また、ステップＳ４０６において故障と判断されたところのアドレスに代わるアドレスが、メモリ回路２および３のそれぞれにおいて、予備のエリア内に予め用意されている。
【００７２】
バッドエリア管理回路６は、故障と判断されたアドレスに代わる予備エリア内のアドレスを指定するアドレス信号を形成し、故障と判断されたアドレスを指定するアドレス信号を変換前のアドレス信号、予備エリア内のアドレスを指定するアドレス信号を変換後のアドレス信号とし、これらのアドレス信号を対として、アドレス変換テーブルに登録する（ステップＳ４０９）。このステップＳ４０９の登録動作を行う前に、有限な数を格納するアドレス変換テーブルの登録状況をステップＳ４０７で確認する。すなわち、ステップＳ４０７において、バッドエリア管理回路６は、アドレス変換テーブルに格納されているアドレス信号の数が、有限な数を超えていないかの確認を行う。有限な数を超えていた場合、次にステップＳ４０８が実行される。
【００７３】
ステップＳ４０８では、バッドエリア管理回路６内のアドレス変換テーブルへの登録数が、有限値を超えているため、新たな登録が困難となる。そのため、このステップでは、バッドエリア管理回路６が、メモリモジュール７０１の外部に設けられたＣＰＵ７０３に対して、割り込み信号を発生し、メモリモジュール７０１に重要な障害が発生している旨を通知する。本実施の形態においては、バッドエリアとして登録可能な数を超えたバッドエリアを検出した旨を通知する割り込み信号を、バッドエリア管理回路６が形成する。
【００７４】
アドレス変換テーブルに登録する数を超えていない場合、ステップＳ４０７の次に、ステップＳ４０９が実施され、上記したように、アドレス変換テーブルに、変換前のアドレス信号として故障のアドレス信号が登録され、予備のエリアを指定するアドレス信号が変換後のアドレス信号として登録される。これにより、予備のエリア内にアドレスが確保されたので、次回の読み出し動作に備えて、ステップＳ４１０で、正しく読み出せたデータ（ステップＳ４０３参照）を変換後のアドレス信号が指定する予備エリア内のアドレスに格納する。
【００７５】
すなわち、バッドエリア管理回路６は、正しく読み出せたデータと、アドレス変換テーブルに格納した変換後のアドレス信号とを書き込み制御回路４に供給する。この場合、変換後のアドレス信号と正しく読み出せたデータは、診断データライト要求１６として、バッドエリア管理回路６から書き込む制御回路４に供給される。書き込み制御回路４は、供給された変換後のアドレス信号で指定されるところのメモリ回路２および３のそれぞれの予備エリア内のアドレスに、正しく読み出せたデータの書き込みを行う。この場合も、ＥＣＣ回路により、誤り訂正用データは形成され、予備エリア内の同じアドレスに書き込まれる。結果として、メモリ回路２および３のそれぞれの予備エリア内のアドレスに、正しく読み出せたデータと同じデータが格納される。その後、上記したステップＳ４１１が実行される。
【００７６】
なお、バッドエリア管理回路６は、ステップＳ４０１とステップＳ４０６の２回で、リードＥＣＣエラー系情報１５を受けることになる。ステップＳ４０１でリードＥＣＣエラー系情報１５を受けているのか、ステップＳ４０６でリードＥＣＣエラー系情報１５を受けているのかの判断は、例えば、診断結果リード要求１７を発行した後であれば、リードＥＣＣエラー系情報１５を受けたステップは、ステップＳ４０６であると判断すれば良い。
【００７７】
図５は、本発明に係わるメモリモジュールの構成を示すブロック図である。図５には、メモリモジュール７０１のメモリ部１の構成と読み出し制御回路５の構成が示されている。メモリ部１は、図１で述べた様に、メモリ回路２および３を有する。それぞれのメモリ回路２、３は、ＥＣＣ回路２ａ、３ａを有している。書き込み制御回路４からのライトデータとライト制御信号は、データライト信号としてメモリ回路２および３に共通に供給される。ライト制御信号は、内部書き込みアドレス信号と、ライトイネーブル信号を含んでいる。これにより、メモリ回路２および３のそれぞれにおいて、内部書き込みアドレス信号によって指定された同じアドレスへ、同じデータが書き込まれる。また、ＥＣＣ回路２ａおよび３ａにより形成された誤り訂正用データも、内部書き込みアドレス信号によって指定された同じアドレスに書き込まれる。なお、図５では、メモリ部２ｂ、３ｂは省略されている。
【００７８】
メモリ回路２および３には、読み出し制御回路５からリード制御信号が共通に供給される。リード制御信号は、内部読み出しアドレス信号とリードイネーブル信号を有している。これにより、読み出し動作においては、メモリ回路２および３のそれぞれにおいて、内部読み出しアドレス信号により指定される同じアドレスからデータが読み出される。メモリ回路２および３のそれぞれにおいて、アドレスには、処理に用いるために書き込まれた処理用データと該データに基づいてＥＣＣ回路により形成された誤り訂正用データとが格納されている。読み出された処理用データと誤り訂正用データは、それぞれのメモリ回路に設けられたＥＣＣ回路に供給され、処理用データおよび／あるいは誤り訂正用データにエラー（誤り）が存在するか否かの確認が、ＥＣＣ回路により行われ、処理用データはリードデータ１２として出力される。もし、エラーが存在している場合には、ＥＣＣ回路により訂正されてから出力される。
【００７９】
本実施の形態においては、前述したように、ＥＣＣ回路２ａおよび３ａは、１ビットエラーの訂正ができ、２ビット以上のエラーが存在する場合には、エラーである旨を通知するものとして説明している。すなわち、各ＥＣＣ回路は、確認により、エラーが存在しているか否かの誤り情報と、エラーが存在する場合、１ビットエラーで訂正したことを示す訂正情報と、２ビット以上のエラーが存在する場合、２ビット以上のエラーで訂正不可を示す訂正不可情報をＥＣＣエラー系情報１４として出力する。
【００８０】
各ＥＣＣ回路は、メモリ回路に対応している。すなわち、ＥＣＣ回路２ａは、メモリ回路２に設けられ、メモリ回路２における読み出しデータにエラーが存在しないかの確認を行い、ＥＣＣエラー系情報１４を出力する。このとき、２ビット以上のエラーが存在しなければ、訂正したデータあるいは訂正していないデータ（エラーが存在していない場合）も出力する。同様に、ＥＣＣ回路３ａは、メモリ回路３に設けられ、メモリ回路３における読み出しデータにエラーが存在しないかの確認を行い、ＥＣＣエラー系情報１４を出力する。このとき、２ビット以上のエラーが存在しなければ、訂正したデータあるいは訂正していないデータ（エラーが存在していない場合）も出力する。
【００８１】
図面が複雑になるのを避けるために、図１では、リードデータ１２およびＥＣＣエラー系情報１４を、それぞれ１本の信号線で示した。しかしながら、２個のメモリ回路２、３からの信号がメモリ部１から読み出し制御回路５に供給されるため、図５に示されている様に、それぞれ２本のリードデータ１２とＥＣＣエラー系情報１４が、メモリ部１から読み出し制御回路５に供給される。すなわち、メモリ回路２からのリードデータ１２とＥＣＣエラー系情報１４と、メモリ回路３からのリードデータ１２とＥＣＣエラー系情報１４が、読み出し制御回路５に供給される。
【００８２】
図５には、読み出し制御回路５の主要部が示されている。すなわち、ＥＣＣエラー判定回路５００と読み出しセレクタ５０１が示されている。読み出しセレクタ５０１は、メモリ回路２および３のそれぞれからのリードデータ１２を受け、ＥＣＣエラー判定回路５００からの選択信号によって、いずれかを選択する。ＥＣＣエラー判定回路５００は、メモリ回路２および３のそれぞれから、ＥＣＣエラー系情報１４を受け、例えば、これらを纏めた信号をリードＥＣＣエラー系情報１５として形成し、バッドエリア管理回路６に供給する。
【００８３】
ＥＣＣ回路２ａ、３ａのそれぞれにより、メモリ回路２、３においてエラーが発生しているか否かを示すＥＣＣエラー系情報１４が形成され、ＥＣＣエラー判定回路５００によって、ＥＣＣ回路２ａ、３ａからのＥＣＣエラー系情報１４に基づいたリードＥＣＣエラー系情報１５が形成される。ＥＣＣ回路２ａ、３ａのそれぞれは、訂正可能なエラー、例えばソフトエラー等の一時的なエラーであっても、誤りを示す誤り情報を形成する。すなわち、ＥＣＣエラー系情報１４は、メモリ回路２、３において、一時的にエラーを発生している場合も形成される。従って、ＥＣＣ回路２ａ、３ａにより形成されるＥＣＣエラー系情報１４は、メモリ回路２、３が故障している可能性を示す故障可能性情報と見なすことができる。
【００８４】
一方、リードＥＣＣエラー系情報１５は、ＥＣＣ回路２ａ、３ａからのＥＣＣエラー系情報１４に基づいて形成されているため、メモリ回路２、３を含むメモリ部１に一時的にエラーが発生している場合にも形成される。従って、リードＥＣＣエラー系情報１５は、複数のメモリ回路を含むメモリ部１のうちの少なくとも１個のメモリ回路が故障している可能性を示す故障可能性情報と見なすことができる。本実施の形態においては、故障可能性情報であるリードＥＣＣエラー系情報１５は、ＥＣＣエラー判定回路５００により形成されるため、故障可能性情報を形成する検出回路は、ＥＣＣエラー判定回路５００により構成されていると見なすことができる。また、故障可能性情報は、信号線を介してバッドエリア管理回路６に供給されるため、故障可能性信号と見なすことができる。
【００８５】
バッドエリア管理回路６は、リードＥＣＣエラー系情報１５を確認することにより、いずれのメモリ回路でエラーが発生しているのか、訂正可能なのか等を判断することができる。これを、レジスタ等を用いて、ＣＰＵ７０３に知らせることができる。
【００８６】
また、ＥＣＣエラー判定回路５００は、メモリ回路２、３から出力されているリードデータの内、正しく読み出せたデータが、読み出しセレクタ５０１によって選択されるように選択信号を形成する。正しく読み出せたデータを選択する基準は、一例をステップＳ３１１で説明した。例えば、ステップＳ３１１で述べた分類（２）に合致する様な、ＥＣＣエラー系情報１４がメモリ回路２、３から供給された場合、エラーなしを示しているＥＣＣエラー系情報１４を出力しているメモリ回路からのリードデータ１２が、読み出しセレクタ５０１により選択される。選択されたリードデータは、正しく読み出されたデータとして、先に述べた診断動作のための書き込みデータおよび／あるいは内部バスＩＦ７を介してメモリモジュールの外へ出力されるデータとなる。
【００８７】
本実施の形態においては、読み出し制御回路５に、ＥＣＣエラー判定回路５００が設けられている。しかしながら、ＥＣＣエラー判定回路５００は、読み出し制御回路５とは、別に設けても良い。この場合には、読み出し制御回路５とは別に設けられたＥＣＣエラー判定回路５００から、セレクト信号が読み出し制御回路５に供給され、リードＥＣＣエラー系情報１５の内、ＥＣＣエラー系情報１４に基づいた情報が、バッドエリア管理回路６に供給される。バッドエリア管理回路６に供給される正しく読み出せたデータは、読み出し制御回路５から出力されることになる。
【００８８】
図６は、バッドエリア管理回路６の構成を示すブロック図である。バッドエリア管理回路６は、ＲＡＭ診断内容登録レジスタ６００とバッドエリア情報登録レジスタ６０１とを有している。同図には示されていないが、ＲＡＭ診断内容登録レジスタ６００およびバッドエリア情報登録レジスタ６０１のそれぞれは、制御回路を有している。それぞれに含まれている制御回路とレジスタ（ＲＡＭ診断内容登録レジスタ６００、バッドエリア情報登録レジスタ６０１）との協働により、次のように動作する。なお、ＲＡＭ診断内容登録レジスタ６００およびバッドエリア情報登録レジスタ６０１のそれぞれは、複数のレジスタを有している。
【００８９】
ＲＡＭ診断内容登録レジスタ６００は、読み出し制御回路５からリードＥＣＣエラー系情報１５と読み出しアドレス値２０を受け、レジスタに、リードＥＣＣエラー系情報１５に含まれている情報と読み出しアドレス値２０とを格納し、保持する。リードＥＣＣエラー系情報１５は、先にも述べた様に、正しく読み出せたデータと、メモリ回路２、３のそれぞれにおいてエラーがあるか否かを示す誤り情報、エラーがあった場合に１ビットエラーで訂正したことを示す訂正情報、エラーがあった場合で２ビット以上のエラーで訂正不可を示す訂正不可情報を含んでいる。
【００９０】
ＲＡＭ診断内容登録レジスタ６００は、リードＥＣＣエラー系情報１５の供給に応答して、ビジー信号２２を形成して、内部バスＩＦ７へ供給する。また、レジスタ（保持回路）に保持された読み出しアドレス値２０および正しく読み出せたデータとに基づいて、診断データライト要求１６を形成し、書き込み制御回路４に供給する。これにより、メモリ回路２、３へ診断用アドレス信号と診断用のデータが供給され、メモリ回路２、３のそれぞれにおいて書き込み動作が開始される。診断用のデータが書き込まれるので、診断動作が開始されるとも見なせる。
【００９１】
診断データライト要求１６を供給した後で、ＲＡＭ診断内容登録レジスタ６００は、診断結果リード要求１７を形成して、読み出し制御回路５へ供給する。供給後、ＲＡＭ診断内容登録レジスタ６００は、所定時間待機状態になる。なお、診断結果リード要求１７を形成する際には、レジスタに格納されている読み出しアドレス値２０が、診断の際の読み出しアドレス信号として用いられる。
【００９２】
ＲＡＭ診断内容登録レジスタ６００は、待機状態にあるときに、読み出し制御回路５からリードＥＣＣエラー系情報１５が供給されると、バッドエリア情報登録レジスタ６０１に対してバッドエリア情報登録指示を発行する。このバッドエリア情報登録指示は、診断動作で故障と判断したアドレス値と、このアドレス値が故障のアドレス値として有効であることを示す有効情報を含んでいる。ここで、診断動作で故障と判断したアドレスは、レジスタに格納されているところの読み出しアドレス値２０である。また、有効情報は、このアドレス値が故障であることの正当性を示す情報である。
【００９３】
バッドエリア情報登録指示を発行した後、バッドエリア情報登録レジスタ６０１から、ＲＡＭ診断内容登録レジスタ６００へ、アドレスの変換後のアドレス信号（図では変換先アドレス値と記載）が供給された場合、ＲＡＭ診断内容登録レジスタ６００は、レジスタに保持されているところの正しく読み出せたデータと変換後のアドレス信号とを含む診断データライト要求１６を形成する。この形成された診断データライト要求１６は、書き込み制御回路４に供給され、更にメモリ回路２、３のそれぞれに供給される。これにより、メモリ回路２、３のそれぞれに予備のエリアとして設けられていたアドレス（変換後のアドレス信号によって指定されるアドレス）に正しく読み出せたデータが書き込まれる。なお、この書き込みにおいては、ＥＣＣ回路により形成された誤り訂正データも、同じアドレスに書き込まれる。変換後のアドレスに、正しく読み出せたデータの書き込みが終了することにより、診断動作は終了する。
【００９４】
ＲＡＭ診断内容登録レジスタ６００は、もし、変換後のアドレス信号を受ける前に、バッドエリア情報登録レジスタ６０１からバッドエリア登録上限割り込み信号を受けた場合、ＲＡＭ診断内容登録レジスタ６００は、重度の障害が発生したものと判断し、ビジー信号２２の形成を中止する。
【００９５】
次に、バッドエリア情報登録レジスタ６０１について、説明する。バッドエリア情報登録レジスタ６０１は、上記したバッドエリア情報登録指示の供給に応答して、その動作を開始する。バッドエリア情報登録レジスタ６０１は、アドレス変換テーブルとして機能する複数組のレジスタを有している。１組のレジスタは、変換前のアドレス値を保持する変換前レジスタと、それと対をなし、変換後のアドレス値を保持する変換後レジスタと、変換前レジスタに故障のアドレスを示すアドレス値が格納されていることを示す有効ビットを持つ有効レジスタとを含んでいる。バッドエリア情報登録指示が供給されることにより、バッドエリア情報登録レジスタ６０１は、バッドエリア情報登録指示に含まれているアドレス値（読み出しアドレス値２０）が、アドレス変換テーブルを構成する複数組のレジスタにおける変換後レジスタのそれぞれに格納されている変換後アドレス値と、一致しないかの確認を行う。
【００９６】
一致しない場合、複数組のレジスタのそれぞれの有効ビットを確認し、有効ビットが有効を示していない１組のレジスタを特定し、特定したレジスタ組の変換前レジスタに、バッドエリア情報登録指示に含まれているアドレス値を格納し、予備のエリアにおけるアドレスを示すアドレス値を生成して、特定したレジスタ組の変換後レジスタに格納する。また、バッドエリア情報登録指示に含まれているアドレス値を、変換前レジスタに格納する際に、バッドエリア情報登録指示に含まれている有効情報を、有効レジスタの有効ビットに格納する。これにより、アドレス変換テーブルへ、バッドエリア情報登録指示に含まれているアドレス値が登録され、変換前のアドレス値がアドレス変換テーブルに供給された際に、それと対をなす変換後のアドレス値がアドレス変換テーブルから出力される。
【００９７】
一方、バッドエリア情報登録指示に含まれているアドレス値が、変換後レジスタに格納されているアドレス値と一致した場合、予備のエリアにおけるアドレスに故障が発生していることになる。そのため、この場合には、予備のエリアにおける新たなアドレスを指定する新たなアドレス値を生成し、変換後レジスタに新たなアドレス値を格納する。
【００９８】
また、有効ビットを確認するときに、有効ビットが有効を示していないレジスタ組を特定できなかった場合は、アドレス変換テーブルを構成する複数組のレジスタの全てに、アドレス値が格納されていると考えられる。言い換えるならば、バッドエリア登録上限に達していることになる。従って、この場合に、バッドエリア情報登録レジスタ６０１は、上記したバッドエリア登録上限割り込みを発生して、重度な障害が発生していることを通知する。なお、本実施の形態では、変換後アドレス信号は発生するようにしているが、予め変換後レジスタのそれぞれに変換後のアドレス値として予備のエリアにおけるアドレスを指定するアドレス値を格納しておいても良い。
【００９９】
メモリ部１に対する読み出し動作においては、読み出し制御回路５に供給された読み出しアドレス信号は、読み出しアドレス値２０として、読み出し制御回路５からバッドエリア管理回路６に供給される。この読み出しアドレス値２０は、バッドエリア情報登録レジスタ６０１に供給され、アドレス変換テーブルを構成する複数組のレジスタにおける変換前レジスタに格納されているアドレス値と比較される。この比較により一致した場合には、一致した変換前アドレス値を格納した変換前レジスタと対をなす変換後レジスタに格納されているアドレス値を含む読み出しアドレス変換要求２１が、バッドエリア情報登録レジスタ６０１により形成され、読み出し制御回路５に供給される。これにより、予備のエリアからデータの読み出しが行われる。一致しない場合には、例えば、変換不要を示す読み出しアドレス変換要求２１が形成され、読み出し制御回路５は、内部バスＩＦ７から供給された読み出しアドレス信号に従った読み出し動作を行う。
【０１００】
メモリ部１に対する書き込み動作においても同様に、書き込み制御回路４に供給された書き込みアドレス信号は、書き込みアドレス値１８として、書き込み制御回路４からバッドエリア管理回路６に供給される。この書き込みアドレス値１８は、バッドエリア情報登録レジスタ６０１に供給され、アドレス変換テーブルを構成する複数組のレジスタにおける変換前レジスタに格納されているアドレス値と比較される。この比較により一致した場合には、一致した変換前アドレス値を格納した変換前レジスタと対をなす変換後レジスタに格納されているアドレス値を含む書き込みアドレス変換要求１９が、バッドエリア情報登録レジスタ６０１により形成され、書き込み制御回路４に供給される。これにより、予備のエリアへのデータの書き込みが行われる。一致しない場合には、例えば、変換不要を示す書き込みアドレス変換要求１９が形成され、書き込み制御回路４は、内部バスＩＦ７から供給された書き込みしアドレス信号に従った書き込み動作を行う。
【０１０１】
リードＥＣＣエラー系情報１５が、メモリ回路２および３の両方において、２ビット以上のエラーであり、訂正不可であることを示す訂正不可情報であった場合、ＲＡＭ診断内容登録レジスタ６００は、データ復旧不可を表す割り込み信号（図ではデータ復旧不可割り込みと記載）を形成し、割り込み通知用信号２７としてＣＰＵ７０３に伝える。特に制限されないが、ＲＡＭ診断内容登録レジスタ６００とバッドエリア情報登録レジスタ６０１とは、レジスタアクセスパス２６を介して内部バスＩＦ７と接続されている。これにより、内部バスＩＦ７を介して、ＣＰＵ７０３によりＲＡＭ診断内容登録レジスタ６００とバッドエリア情報登録レジスタ６０１内のレジスタにアクセスし、レジスタに設定されているデータを読み出したり、データの設定を行うことが可能とされている。
【０１０２】
図８は、アドレス変換を説明するための説明図である。図８の（Ａ）には、本実施の形態におけるメモリ部１のアドレス空間が示されている。メモリ部１は、１６進数で０ｘ００００から０ｘＦＦＦＣまでのアドレス空間を有している。このアドレス空間の内、１６進数で０ｘＦＦＦ０から〜０ｘＦＦＦＣまでが予備のメモリ領域（エリア）に割り当てられている。また、同図において破線から右側にはＥＣＣ回路により形成された誤り訂正データが格納される訂正用データ領域が設けられている。特に制限されないが、１回のアクセスで、書き込まれるべきデータ（書き込み用データ）は、４バイト（１バイトは８ビット）で、この書き込み用データに基づいて形成された誤り訂正用データは１バイトである。この様に、予備のエリアあるいは通常のエリアにおいて、一つのアドレス（例えば１６進数で０ｘＦＦＥＣ）に書き込み用データと誤り訂正用データが格納される。なお、メモリ回路２および３は、二重化されているため、それぞれのメモリ回路２、３がメモリ部１と同じアドレス空間を有している。
【０１０３】
図８の（Ｂ）には、図８の（Ａ）において、アドレス：０ｘ１０００（１６進数）とアドレス：０ｘ４０００（１６進数）のそれぞれにおいて、故障が発生している場合を示している。この場合には、アドレス変換テーブルを構成する複数組のレジスタの内の１組のレジスタに、変換前のアドレス値として０ｘ１０００（１６進数）が格納され、同じ組のレジスタに、変換後のアドレス値として０ｘＦＦＦ４（１６進数）が格納される。また、別のレジスタ組に、変換前のアドレス値として０ｘ４０００（１６進数）が格納され、同じ組のレジスタに、変換後のアドレス値として０ｘＦＦＦ０（１６進数）が格納される。これにより、読み出し動作および書き込み動作で、ＣＰＵ７０３からメモリモジュール７０１へのアクセスにおいて、故障のアドレス：０ｘ１０００（１６進数）あるいは０ｘ４０００（１６進数）がＣＰＵ７０３により与えられた場合、予備のエリアにあるアドレス：０ｘＦＦＦ４（１６進数）あるいは０ｘ４０００（１６進数）がアクセスされることになる。
【０１０４】
図８の（Ｃ）は、図８の（Ｂ）と類似しているので、相違点を説明する。故障診断で、アドレス：０ｘ１０００（１６進数）に故障を発見し、アドレス変換テーブルに、変換前のアドレスとして、０ｘ１０００（１６進数）を登録し、変換後のアドレスとして、０ｘＦＦＦ４（１６進数）を登録した。登録後の読み出し動作あるいは書き込み動作で、アドレス：０ｘ１０００（１６進数）をアクセスしたとき、エラーが生じた。この場合、アドレス変換テーブルの働きにより、アクセスは予備のエリアにあるアドレス：０ｘＦＦＦ４（１６進数）に対して行われる。この場合には、変換後のアドレス値が、アドレス変換テーブルを構成する変換後レジスタに格納されているか否かの確認を行い、格納されている場合には、変換後レジスタに新たなアドレス値である０ｘＦＦＦ８（１６進数）を格納する。この様にすることにより、予備として設けたエリアに故障が生じても、予備のエリアにおける新たなアドレス：０ｘＦＦＦ８（１６進数）へアクセスすることができ、故障の回避をすることができる。
【０１０５】
アドレス変換テーブルを、複数組のレジスタで構成することを述べたが、メモリ回路によりアドレス変換テーブルを構成しても良い。
【０１０６】
本実施の形態によれば、メモリ部１へのアクセスの際であって、故障の可能性がある場合に、故障診断が実施される。そのため、故障診断の回数を低減することが可能となり、消費電力の増大を低減することが可能となる。また、故障と判断した場合、故障と判断したアドレスを、予備エリアにあるアドレスへ置換する。そのため、故障が発生してもメモリモジュールを交換する必要はなく、継続してメモリモジュールを使用することが可能となる。ＥＣＣ回路により、訂正可能であっても、故障診断が実施される。そのため、ソフトエラーとハード的な故障とを区別することが可能となり、ソフトエラーとハード的な故障とが重なることを低減することが可能となり、より信頼度の高い半導体集積回路装置を提供することが可能となる。さらに、アドレス変換テーブルの変換後アドレスと故障アドレスとの比較を行う様にすれば、予備のエリアにおける故障も回避することが可能となり、信頼性のより高い半導体集積回路装置を提供することが可能となる。
【０１０７】
（実施の形態２）
図９は、本発明に係わる他の実施の形態の構成を示すブロック図である。図９には、メモリ部９０４と読み出し制御回路９０５のブロックが示されている。図５におけるメモリ部１が、図９のメモリ部９０４に変更され、図５における読み出し制御回路５が、図９の読み出し制御回路９０５に変更される。
【０１０８】
本実施の形態においては、メモリ部９０４に、３個以上の奇数個のメモリ回路が設けられる。同図では、奇数個のメモリ回路として３個のメモリ回路９００、９０１、９０２が設けられている。これらのメモリ回路９００、９０１、９０２のそれぞれには、内部バスＩＦ７から、ライトデータとライト制御信号が、共通に供給される。ライト制御信号は、アドレス信号とライトイネーブル信号を含んでいる。これにより、３個のメモリ回路９００、９０１、９０２のそれぞれには、同じアドレスに同じ書き込み用データが書き込まれる。また、アドレス信号とリードイネーブル信号を含むリード制御信号が、３個のメモリ回路９００、９０１、９０２に対して共通に供給される。これにより、それぞれのメモリ回路９００、９０１、９０２の同じアドレスからデータが読み出される。従って、メモリ回路９００、９０１、９０２は、多重化されていることになる。
【０１０９】
メモリ回路９００、９０１、９０２のそれぞれから読み出されたデータは、リード系信号として、読み出し制御回路９０５に供給される。読み出し制御回路９０５は、メモリ回路９００、９０１、９０２のそれぞれから供給されるリード系信号を受けるデータ不一致判定回路９０３を有している。データ不一致判定回路９０３は、リード系信号の間で不一致が発生しているかを判定する。例えば、１個のメモリ回路９０２からのリード系信号が残りの２個のメモリ回路９００、９０１からのリード系信号と異なる場合、データ不一致判定回路は、多数決の論理に従い、残り２個のメモリ回路９００、９０１からのリード系信号が正しく読み出されたデータと判定し、出力する。また、不一致したことを示す不一致信号を、データ不一致判定回路９０３は形成する。
【０１１０】
データ不一致判定回路９０３から出力される不一致信号と正しく読み出されたデータとが、図５に示したリードＥＣＣエラー系情報１５と見なされる。また、図４に示した診断動作においては、読み出し動作のときの不一致信号に応答して、ステップＳ４０１が開始される。この診断動作のステップＳ４０４で、メモリ部９０４に書き込まれるべき診断データは多数決の論理で正しいと判定したデータ（正しく読み出されたデータ）を用いる。すなわち、データ不一致判定回路９０３からのリードデータが、診断動作の時の書き込みデータとされる。診断動作のステップＳ４０６においても、データ不一致信号が形成された場合、このデータ不一致信号により、図６に示したＲＡＭ診断内容登録レジスタ６００の動作を開始させる。
【０１１１】
この実施の形態によれば、各メモリ回路９００、９０１、９０３にＥＣＣ回路を設ける必要がなくなり、メモリモジュールの高速化を図ることが可能となる。すなわち、奇数個のメモリ回路を用いることにより、多数決の論理で、正しく読み出されたデータを推定することが可能となる。また、データ不一致判定回路９０３において、ビット単位で３個のメモリ回路からのリード系信号を比較するため、ビットの位置が異なれば、２つのメモリ回路で異なる値を出力しても、エラーの訂正をすることが可能となる。
【０１１２】
この実施の形態においては、メモリ回路９００、９０１、９０２が、一時的にエラーを発生しているときも、不一致信号が形成される。従って、不一致信号は、リードＥＣＣエラー系情報１５と同様に、メモリ部９０４において少なくとも１個のメモリ回路が故障している可能性があることを示す故障可能性信号と見なすことができる。この場合、データ不一致判定回路９０３が、読み出し動作において、故障の可能性を検出する回路（故障検出回路）を構成していると見なすことができる。なお、読み出し制御回路９０５は、図５と同様に、主要部のみが、図９に示されている。
【０１１３】
（実施の形態３）
図６に示したＲＡＭ診断内容登録レジスタ６００に、次のレジスタが追加される。この実施の形態においては、例えば、１個のアドレスに対して、ＥＣＣ回路によって複数回のエラー検出が行われる。追加されるレジスタは、ＥＣＣ回路によってエラーとして検出される回数の上限値を設定するエラー上限レジスタ（図示せず）と、ＥＣＣ回路によってエラーなしとして検出される回数の上限値を設定する許容上限レジスタ（図示せず）である。
【０１１４】
エラー上限レジスタと許容上限レジスタは、レジスタアクセス用パス２６に接続され、ＣＰＵ７０３により、それぞれのレジスタに値を設定できる様にされる。これらのエラー上限レジスタと許容上限レジスタを設けたことに対応して、バッドエリア情報登録レジスタ６０１には、診断動作において、ＥＣＣ回路がエラーとして判定した回数をカウントする故障カウンタ（図示せず）と、診断動作において、ＥＣＣ回路によりエラーが検出されなかった回数をカウントするパスカウンタ（図示せず）とが設けられる。
【０１１５】
上記したエラー上限レジスタ、許容上限レジスタ、故障カウンタおよびパスカウンタを設けた構成の動作を次に説明する。図１０は、この実施の形態の動作を示すフロチャート図である。図１０に示したステップＳ１００１からＳ１０１３は、図４に示したステップＳ４０３からＳ４１０の代わりに実行される。すなわち、図４に示したステップＳ４０２の次に、図１０に示したステップ（Ｓ１００１からＳ１０１３）が実行される。図１０に示したステップＳ１０００は、図４に示したステップＳ４００からＳ４０２を含んでいるものと理解されたい。
【０１１６】
まず、初期設定としてステップＳ１０００よりも以前のステップ（Ｓ９９９９）において、ＣＰＵ７０３によって、上記したエラー上限レジスタおよび許容上限レジスタのそれぞれに数値を設定する。後の説明で理解されると思うが、１個のアドレスに対するＥＣＣ回路を用いた診断は、それぞれのレジスタに設定された数値だけ実行される。言い換えるならば、エラー上限レジスタに設定された数値だけ、エラーの発生が検出されれば、１つのアドレスに対する診断動作は終了する。同様に、許容上限レジスタに設定された数値だけ、エラーなしが検出されれば、そのアドレスに対する診断動作は終了する。
【０１１７】
図１０において、ステップＳ１００１は、１個のアドレスに対する診断動作を開始する前の初期ステップである。このステップＳ１００１において、上記した故障カウンタおよびパスカウンタのそれぞれは、それぞれの状態がクリアされる。次のステップＳ１００２は、図４のステップＳ４０３とＳ４０４を含むステップであり、正しく読み出されたデータが診断のためのデータとして、１個の対象アドレスに書き込まれる。ステップＳ１００３は、図４のステップＳ４０５を含むステップであり、上記した対象アドレスから、診断のために書き込んだデータとそれに基づいて形成された誤り訂正用データが、このステップで読み出される。ステップＳ１００４は、図４のステップＳ４０６を含むステップである。このステップＳ１００４において、対象アドレスから読み出されたデータを基にしてＥＣＣ回路がエラーの有無（誤り情報）と、エラーの種類（１ビットエラーで訂正したことを示す訂正情報、２ビット以上のエラー発生で訂正不可を示す訂正不可情報）を判定する。
【０１１８】
ステップＳ１００４で、エラーが有りと判定した場合、ステップＳ１００５において、上記した故障カウンタの値をインクリメントする。一方、ステップＳ１００４で、エラーは無いと判定した場合、ステップＳ１００６において、上記したパスカウンタの値をインクリメントする。次にステップＳ１００７において、故障カウンタの値と上記したエラー上限レジスタに設定されている値との比較が行われる。この比較において、エラー上限レジスタに設定されている値よりも、故障カウンタの値が小さい場合、次にステップＳ１０１２が実行される。ステップＳ１０１２においては、パスカウンタの値と上記した許容上限レジスタに設定されている値との比較が行われる。許容上限レジスタに設定されている値が、パスカウンタの値よりも大きい場合、ステップＳ１００２に戻る。これにより、ＥＣＣ回路によりエラーとして判定された回数が、エラー上限レジスタに設定されている回数に達するまで、あるいはＥＣＣ回路によりエラー無しと判定された回数が、許容上限レジスタに設定されている回数に達するまで、１個の対象アドレスに対して診断データの書き込み、読み出し、ＥＣＣ回路による判定が繰り返される。
【０１１９】
ステップＳ１００７において、故障カウンタの値がエラー上限レジスタに設定されている値（数値）よりも大きくなった場合、ステップＳ１００８からＳ１０１１が実行される。ここで、ステップＳ１００８は、図４のステップＳ４０７と同じ処理を行い、ステップＳ１００９は、図４のステップＳ４０８と同じ処理を行う。また、ステップＳ１０１０は、図４のステップＳ４０９と同じ処理を行い、ステップ１０１１は、図４のステップＳ４１０と同じ処理を行う。ステップＳ１０１２において、パスカウンタの値が許容上限レジスタに設定されている値（数値）を超えたと判定された場合、次にステップＳ１０１３が実行される。ステップＳ１００９およびステップ１０１１が終了したときも、次にステップＳ１０１３が実行される。ステップＳ１０１３において、１個のアドレスに対して診断が終了した旨を示す情報が形成される。このステップの後に図４に示したステップＳ４１１が実行される。
【０１２０】
この実施の形態によれば、１個の対象アドレスに対して複数回の診断が行われる。故障が、例えばソフトエラーにより発生しているのであれば、時間の経過によりエラーの発生は消滅する可能性がある。そのため、複数回の診断を繰り返すことにより、エラー無しと判定されるようになる。一方、故障がハード的に発生しているので有れば、複数回の診断を繰り返しても、エラー無しの判定には到達しないと考えられる。従って、この実施の形態によれば、故障の原因がハード的な原因かソフト的な原因かを特定して、対応することが可能となる。また、エラー上限レジスタと許容上限レジスタを別々に設けたことにより、信頼性を考慮して、それぞれに設定される上限の数値を変えることも可能である。もちろん、この２個のレジスタは、１個の上限レジスタに変更しても良い。この場合には、上限レジスタに、エラー発生の許容回数とエラー無しの許容回数が設定され、ステップＳ１００７とＳ１０１２のそれぞれにおいて、上限レジスタの値が、故障カウンタとパスカウンタと比較される。この様にすることにより、半導体集積回路装置の小型化を図ることが可能となる。
【０１２１】
（実施の形態４）
図１１は、本発明に係わるバッドエリア管理回路の他の構成を示すブロック図である。同図に示したバッドエリア管理回路６は、図６に示したバッドエリア管理回路と類似しているので、相違点のみを説明する。
【０１２２】
この実施の形態においては、電気的に書き込み可能な不揮発性メモリ１１０２が、バッドエリア管理回路６に設けられる。本実施の形態では、フラッシュメモリが電気的に書き込み可能な不揮発性メモリ１１０２として用いられている。フラッシュメモリ１１０２は、フラッシュインタフェース回路（図では、フラッシュＩ／Ｆと記載している）１１０１を介してバッドエリア情報登録レジスタ６０１に接続されている。バッドエリア情報登録レジスタ６０１が有するアドレス変換テーブルにアドレスを登録すると、その登録したアドレスは、フラッシュインタフェース回路１１０１により、フラッシュメモリ１１０２にコピーされる。また、電源の投入に応答して、フラッシュインタフェース回路１１０１は、フラッシュメモリ１１０２に格納されているアドレスを、アドレス変換テーブルへ登録する。
【０１２３】
この実施の形態によれば、アドレス変換テーブルは、高速に動作する揮発性のレジスタにより構成することが可能であり、メモリモジュールの高速化を図ることができる。一方、電源投入の際には、フラッシュメモリ１１０２からアドレス変換テーブルに登録されるべきアドレスが、揮発性のレジスタに供給されて、保持される。そのため、電源遮断後に電源を投入した場合、診断動作においてアドレス変換テーブルへのアドレス登録を減らすことができる。その結果として、メモリモジュールの高速化を図ることが可能となる。
【０１２４】
（実施の形態５）
図１２は、本発明に係わるバッドエリア管理回路６に設けられるレジスタの構成を示すブロック図である。本実施の形態では、バッドエリア管理回路６に複数の状態レジスタ１２００から１２０４が設けられる。状態レジスタ１２００〜１２０４のそれぞれは、レジスタアクセス用パス２６に接続されている。各状態レジスタは、レジスタアクセス用パス２６を介してＣＰＵ７０３によりアクセスできるようにされている。状態レジスタ１２００〜１２０４には、メモリモジュールの状態を示す情報が格納され、ＣＰＵ７０３によって読み出すことが可能とされる。例えば、状態レジスタ１２００には、リードＥＣＣエラー系情報１５に含まれている情報の内、メモリ回路２に関する情報（誤り情報、訂正情報、訂正不可情報）が格納される。状態レジスタ１２０１には、リードＥＣＣエラー系情報１５に含まれている情報の内、メモリ回路３に関する情報（誤り情報、訂正情報、訂正不可情報）が格納される。
【０１２５】
この実施の形態によれば、メモリモジュールの状態をＣＰＵ７０３が確認することができ、故障の解析を容易化することが可能となる。
【０１２６】
（実施の形態６）
バッドエリア管理回路６に、１ビットエラーを許可する許可レジスタが設けられる。この許可レジスタは、レジスタアクセス用パス２６を介して、その値が設定できるようにされる。この許可レジスタに１ビットエラーを許可する情報をＣＰＵ７０３によって設定する。１ビットエラーを許可する情報を設定することにより、メモリ回路２および３のそれぞれにおいて、１個のアドレスに格納されるデータに１ビットの誤りが含まれていても、アドレス変換テーブルには、そのアドレスを指定するアドレス値は登録されない。これにより、アドレス変換テーブルに登録される数の低減を図ることが可能となる。この場合、アドレス変換テーブルに登録されないので、予備のエリアの消費についても低減を図ることが可能となり、例えば２ビット以上のエラーに対する救済を多くすることが可能となる。
【０１２７】
図４のステップＳ４０６において、エラーを有していると判定された場合、図４の実施の形態では、次にステップＳ４０７が実施される。本実施の形態においては、ステップＳ４０７を実行する前に、許可レジスタに許可を表す情報が設定されているかを確認するステップＡＳ１（図示せず）が追加される。また、この確認するステップＡＳ１で、許可を表す情報が設定されていると判定した場合には、リードＥＣＣエラー系情報１５に含まれるメモリ回路２および３のエラー情報を確認するステップＡＳ２（図示せず）が追加される。ステップＡＳ２では、メモリ回路２および３からのエラー情報が、２ビット以上のエラーで訂正不可を表す情報が含まれているかを確認する。２ビット以上のエラーで訂正不可を表す情報が含まれている場合は、図４に示したステップＳ４０９を実行し、アドレス変換テーブルへの登録を行う。これに対して、２ビット以上のエラーで訂正不可を表す情報が含まれていない場合には、次にステップＳ４１１を実行する。また、ステップＡＳ１で、許可レジスタに、許可を表す情報が登録されていないと判断した場合には、次に図４のステップＳ４０７が実行される。
【０１２８】
（実施の形態７）
図４に示したステップＳ４０４からＳ４０６が削除され、ステップＳ４０３とステップＳ４０７との間に、２回の診断ステップ（診断用のデータの書き込み、読み出し、エラー判定）が追加される。１回目の診断ステップでは、正しく読み出されたデータに対してビット反転した診断用のデータが作成され、対象のアドレスに書き込まれる。次に、書き込まれたデータを読み出し、リードＥＣＣエラー系情報１５に基づいてエラーの有無を判断し、判断結果を一時的に保持しておく。２回目の診断ステップでは、正しく読み出されたデータを対象のアドレスに書き込む。その後で、対象のアドレスからデータの読み出しを行い、リードＥＣＣエラー系情報１５に基づいてエラーの有無を判断する。保存しておいた１回目の判断結果と２回目の判断結果のいずれかで、エラーであることを示す結果があった場合、その対象のアドレスをアドレス変換テーブルに登録して、予備のエリアにあるアドレスに代替えする様に、図４のステップＳ４０７からＳ４１１を実行する。これに対して、１回目の判断結果と２回目の判断結果のいずれもが、エラーであることを示す結果を含んでいない場合には、アドレス変換テーブルへの登録をせずに、次にステップＳ４１１を実行する。
【０１２９】
１回目の診断ステップで、正しく読み出されたデータをビット反転させて形成させたデータを診断用の書き込みデータとして用いる様にした。これにより、１回目の診断ステップでは、その前の書き込み動作の時とはビット反転したデータが書き込まれることになる。これにより、対象のアドレスにおける各ビットが診断用のデータにおける各ビットに追従して変化しているかを確認することができ、診断の誤りを低減し、信頼性の向上を図ることができる。なお、２回目の診断ステップで正しく読み出されたデータを書き込むようにしているので、２回目にビット反転した診断用のデータを書き込むのに比べて、書き込み回数の低減を図ることが可能となる。
【０１３０】
以上本発明者によってなされた発明を、前記実施形態に基づき具体的に説明したが、本発明は、前記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、各実施の形態を、相互に組み合わせても良いし、ＥＣＣ回路は２ビット以上のエラーに対して訂正可能なＥＣＣ回路であっても良い。
【符号の説明】
【０１３１】
１  メモリ部
２、３  メモリ回路
４  書き込み制御回路
５  読み出し制御回路
６  バッドエリア管理回路
７  内部バスＩＦ
７００  半導体集積回路装置
７０１  メモリモジュール
７０３  ＣＰＵ
【図１】
2014174670.tif 000003
【図２】
2014174670.tif 000004
【図３Ａ】
2014174670.tif 000005
【図３Ｂ】
2014174670.tif 000006
【図４】
2014174670.tif 000007
【図５】
2014174670.tif 000008
【図６】
2014174670.tif 000009
【図７】
2014174670.tif 000010
【図８】
2014174670.tif 000011
【図９】
2014174670.tif 000012
【図１０】
2014174670.tif 000013
【図１１】
2014174670.tif 000014
【図１２】
2014174670.tif 000015