JP2013250594A - 自己修復メモリ回路およびその修復方法 - Google Patents

自己修復メモリ回路およびその修復方法 Download PDF

Info

Publication number
JP2013250594A
JP2013250594A JP2012122690A JP2012122690A JP2013250594A JP 2013250594 A JP2013250594 A JP 2013250594A JP 2012122690 A JP2012122690 A JP 2012122690A JP 2012122690 A JP2012122690 A JP 2012122690A JP 2013250594 A JP2013250594 A JP 2013250594A
Authority
JP
Japan
Prior art keywords
memory
circuit
repair
data
error
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012122690A
Other languages
English (en)
Inventor
Naoki Kaneko
尚樹 金子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2012122690A priority Critical patent/JP2013250594A/ja
Publication of JP2013250594A publication Critical patent/JP2013250594A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】システムの応答時間の低下を防止し、メモリに発生したデータ誤りに対する誤動作を抑制する。
【解決手段】自己修復回路1は、修復データFIFO回路11、メモリ制御信号生成回路12、メモリ制御信号選択回路10を備える。修復データFIFO回路11は、メモリ4へのリードアクセスが行われており、かつ、ECC回路3において誤り訂正が行われた場合に、誤り訂正済のリードデータAおよびそのアドレスAを修復データバッファ110に保持する。メモリ制御信号生成回路12は、メモリ4へのメモリアクセスが行われていない場合に、修復データバッファ110に保持した誤り訂正済のリードデータAおよびそのアドレスAを含む第2のメモリアクセス制御信号を生成する。メモリ制御信号選択回路10は、メモリ4へのメモリアクセスが行われていない場合に第2のメモリアクセス制御信号を出力する。
【選択図】図13A

Description

本発明は自己修復メモリ回路およびその修復方法に関し、例えば、半導体集積回路(LSI)のメモリにおいて、ソフトエラーによるメモリの保持データ誤りに対する誤動作を抑制する自己修復メモリ回路およびその修復方法に関する。
近年、LSI微細化に伴って、ソフトエラーに起因するメモリのデータ誤りがより発生しやすくなっている。ここでソフトエラーとは、LSI外部から入射したアルファ線などがLSI内の記憶素子に衝突して、電荷により記憶素子に保持されていた値が変化することによりシステムが誤動作する現象を指す。例えば車載マイコンでは信頼性や安全性が強く求められており、車載マイコンに搭載するメモリにおいては、メモリに発生したデータ誤りに対する誤動作を抑制して、自動車制御の安全性を高めることが要求されている。
本発明に関連する技術として、特許文献1がある。特許文献1は、ECC付きメモリのパトロール診断における1ビットエラー検出時のエラー修正方式に関し、1つのポートからの1ビットエラー修正のために用いるリードモディファイライトと、他のポートからのライトと、が競合して発生する場合に、正しいライト動作が行われるようにする技術を開示する。
特許文献1のメモリ装置は、1ビットエラーデータを修正するリードモディファイライト・コマンドをメモリアクセス制御回路が実行するときに、アクセスポート回路に対してメモリアクセス制御回路へのアクセスを1メモリサイクルだけ強制的に禁止して、ライト・コマンドの発生を抑止する。さらに、特許文献1のメモリ装置は、上記ライト・コマンドの発生を抑止すると共に、他のポートからのライト・コマンドの発生を監視して、1ビットエラー修正対象のアドレスへのライト・コマンドが検出された場合には、実行を開始したリードモディファイライト・コマンドを中止するよう動作する。
なお、本発明に関連する他の技術としては、特許文献2〜4に開示される技術がある。
特開平4−119442号公報 特開平2−205955号公報 特許2623687号公報 特開平1−239656号公報
しかしながら特許文献1のメモリ装置では、例えば、監視モジュールが片方のポートを経由してメモリカードを占有している間に他方のポート群からアクセスがあった場合、他方のポート群からのアクセスが待たされる動作となる。その結果、システムの応答時間が低下するという問題がある。この問題は、特許文献1のメモリ装置では、監視モジュールによるアクセスと他のポート群からのアクセスとがその優先順位が等しくなる構造となっていることに起因する。
特許文献1に関する上記問題が発生する理由を、以下、簡単に説明する。特許文献1のメモリ装置では、ECCによる訂正が可能な1ビットエラー検出時においてリードモディファイライトを実行し、その際に以下の動作(i)、(ii)を行う。
(i)エラーを検出した際に、エラー通知を受けた監視モジュールがポートに対して「RD Modify WT CMD」を発行する(特許文献1、第3図中の、(4)〜(6)の処理)。
(ii)「RD Modify WT CMD」を実行する際には、下記のシーケンスA)〜D)により処理を行う(特許文献1、第3図中の、(9)の処理)。
A)「ポート群へのアービトレーション禁止信号を1cycle ON」
B)「ポートPnはメモリアクセス制御回路へ1ビットエラーを修正したデータとRD Modify WT CMDを発行」
C)「メモリアクセス制御回路は、記憶したAddrをリセットし修正データをメモリカードへ書き込む」
D)「ポートPnは監視モジュールへ正常終了を通知」
特許文献1のメモリ装置は、上記(ii)におけるA)の処理の段階で、監視モジュールが使用するアクセスポート回路以外のアクセスポート回路からのアクセスを遮断した上で、RD Modify WTを実行している。すなわち、特許文献1の手法では、監視モジュールとポート群とからのアクセス要求が同時に発生していた場合、ポート群からのアクセスにWaitがかかる動作となる。これは、他のポート群からのアクセス要求を、監視モジュールが阻害することを意味する。従って、監視モジュールによるリードモディファイライト動作は、メモリカードを一時的に占有するように制御することをもたらし、その結果、システムバスの応答時間の低下につながる。
なお、その他の課題・問題、または新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態において、自己修復メモリ回路は、メモリと、ECC回路と、メモリインタフェース回路と、自己修復回路と、を備えている。自己修復回路は、修復データFIFO回路と、メモリ制御信号生成回路と、メモリ制御信号選択回路と、を備えている。
修復データFIFO回路は、メモリインタフェース回路によるメモリへのリードアクセスが行われており、かつ、ECC回路において誤り訂正が行われた場合に、ECC回路において誤り訂正が行われた誤り訂正済のリードデータと、その誤り訂正済みリードデータのアドレスと、を修復データバッファに保持する。
メモリ制御信号生成回路は、メモリインタフェース回路によるメモリへのメモリアクセスが行われていない場合に、修復データバッファに保持した誤り訂正済のリードデータおよびその誤り訂正済みのリードデータのアドレスを含む第2のメモリアクセス制御信号を生成する。
メモリ制御信号選択回路は、メモリインタフェース回路によるメモリへのメモリアクセスが行われている場合に第1のメモリアクセス制御信号を選択し、メモリインタフェース回路によるメモリへのメモリアクセスが行われていない場合に第2のメモリアクセス制御信号を選択して、その選択したメモリアクセス制御信号を第3のメモリアクセス制御信号として出力する。
また、他の一実施の形態では、自己修復メモリ回路における自己修復方法は、監視ステップと、修復ステップと、を含む。
監視ステップでは、メモリインタフェース回路によるメモリへのリードアクセスが行われており、かつ、ECC回路において誤り訂正が行われた場合に、自己修復回路が、ECC回路において誤り訂正が行われた誤り訂正済のリードデータと、その誤り訂正済みリードデータのアドレスと、を修復データバッファに保持する。
修復ステップでは、メモリインタフェース回路によるメモリへのメモリアクセスが行われていない場合に、自己修復回路が、修復データバッファに保持した誤り訂正済のリードデータおよびその誤り訂正済みのリードデータのアドレスを含む第2のメモリアクセス制御信号を生成して、その生成した第2のメモリアクセス制御信号を第3のメモリアクセス制御信号として出力する。
上述した一実施の形態によれば、システムの応答時間の低下を防止すると共に、メモリに発生したデータ誤りに対する誤動作を抑制することができる。
実施の形態1に係る自己修復メモリ回路の回路構成を示す図である。 実施の形態1に係る自己修復回路の構成を示す図である。 実施の形態1に係るメモリ制御信号選択回路の構成を示す図である。 実施の形態1に係るメモリ制御信号選択回路の他の構成を示す図である。 実施の形態1に係る修復データバッファの構成を示す図である。 実施の形態1に係るメモリインタフェース回路の構成を示す図である。 実施の形態1に係る修復方法の動作処理を示すフローチャートである。 実施の形態1に係るFIFO入力処理を示すフローチャートである。 実施の形態1に係るFIFO出力処理を示すフローチャートである。 実施の形態1に係る修復方法における監視プロセスと修復プロセスの動作処理を示すタイミングチャートである。 実施の形態1に係る修復方法における監視プロセスと修復プロセスの動作処理を示すタイミングチャートである。 実施の形態1に係る修復方法における監視プロセスと修復プロセスの動作処理を示すタイミングチャートである。 実施の形態1に係る修復方法における修復待ち期間での修復データ更新の動作処理を示すタイミングチャートである。 実施の形態1に係る修復方法における修復待ち期間での修復データ更新の動作処理を示すタイミングチャートである。 実施の形態1に係る修復方法における巡回プロセスの動作処理を示すタイミングチャートである。 実施の形態1に係る修復方法における巡回プロセスの動作処理を示すタイミングチャートである。 実施の形態2に係る自己修復回路の構成を示す図である。 実施の形態2に係る自己修復回路の変形構成を示す図である。 実施の形態3に係る自己修復回路の構成を示す図である。 実施の形態4に係る自己修復回路の構成を示す図である。 実施の形態5に係る修復方法の動作処理を示すフローチャートである。 実施の形態6に係る修復方法の動作処理を示すフローチャートである。 実施の形態7に係る修復方法の動作処理を示すフローチャートである。
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
<発明の実施の形態1>
図1は、本実施の形態に係る自己修復メモリ回路の構成例を示すブロック図である。
自己修復メモリ回路は、自己修復回路1と、メモリインタフェース回路2と、ECC回路3と、メモリ4と、を備えている。
自己修復回路1は、チップイネーブルA、ライトイネーブルA、アドレスA、およびライトデータAが入力される。チップイネーブルA、ライトイネーブルA、アドレスA、およびライトデータAは、メモリインタフェース回路2から出力される。第1のメモリアクセス制御信号は、メモリインタフェース回路2から出力されて自己修復回路1に入力されるメモリアクセス制御信号に相当し、チップイネーブルA、ライトイネーブルA、アドレスA、およびライトデータAを含む。
また、自己修復回路1は、ECC回路3から出力されたリードデータAおよび誤り検出信号が入力される。また、自己修復回路1は、チップイネーブルB、ライトイネーブルB、アドレスB、およびライトデータBをECC回路3に出力する。同時に、自己修復回路1は、チップイネーブルB、ライトイネーブルB、およびアドレスBをメモリ4に出力する。第3のメモリアクセス制御信号は、自己修復回路1から出力されてECC回路3およびメモリ4に入力されるメモリアクセス制御信号に相当し、チップイネーブルB、ライトイネーブルB、アドレスB、およびライトデータBを含む。
自己修復回路1は、メモリインタフェース回路2から出力された第1のメモリアクセス制御信号と、その第1のメモリアクセス制御信号に応答してECC回路3から出力されるメモリアクセス応答信号と、を監視する。メモリアクセス応答信号は、リードデータAおよび誤り検出信号を含む。
自己修復回路1は、監視結果に応じて後述する各動作処理を行い、第3のメモリアクセス制御信号を生成する。さらに、自己修復回路1は、その生成した第3のメモリアクセス制御信号をECC回路3およびメモリ4に出力する。自己修復回路1の構成および動作の詳細についは後述する。
メモリインタフェース回路2は、第1のメモリアクセス制御信号を自己修復回路1に出力する。詳細は後述するが、第1のメモリアクセス制御信号は、自己修復回路1を介して、ECC回路3およびメモリ4に出力される。また、メモリインタフェース回路2は、ECC回路3からのメモリアクセス応答信号に含まれるリードデータAが入力される。メモリインタフェース回路2の構成および動作の詳細については後述する。
ECC回路3は、自己修復回路1から出力された第3のメモリアクセス制御信号が入力される。また、ECC回路3は、ライトデータCをメモリ4に出力する。また、ECC回路3は、メモリ4から出力されたリードアクセス応答信号が入力される。リードアクセス応答信号は、リードデータBを含む。ECC回路3は、メモリアクセス応答信号(リードデータAおよび誤り検出信号)を自己修復回路1に出力する。また、ECC回路3は、メモリアクセス応答信号のうちのリードデータAをメモリインタフェース回路2に出力する。
ECC回路3は、ECC生成回路31およびECC訂正回路32を備えている。ECC生成回路31は、ライトデータBに基づき誤り訂正符号(ECC)を生成し、生成したECCを本来のライトデータであったライトデータBに付加する。ECC生成回路31は、ECCが付加されたライトデータBをライトデータCとしてメモリ4に出力する。
ECC訂正回路32は、リードデータBからECCを分離して、リードデータBに誤りが発生しているか否かを判断する。ECC訂正回路32は、リードデータBに誤りが発生していた場合にはその誤りを訂正した上で、ECCを分離したデータをリードデータAとして自己修復回路1およびメモリインタフェース回路2に出力する。また、ECC訂正回路32は、誤りを訂正した場合には、誤り検出信号のレベルをアクティブに設定して出力する。なお、ECC訂正回路32は、リードデータBに誤りが発生していなかった場合には、リードデータBからECCを分離したデータを、リードデータAとして自己修復回路1に出力する。
メモリ4は、チップイネーブルB、ライトイネーブルB、アドレスB、およびアドレスBが入力される。チップイネーブルB、ライトイネーブルB、アドレスB、およびアドレスBは、自己修復回路1から出力された第3のメモリアクセス制御信号に含まれる。また、メモリ4は、ECC回路3から出力されたライトデータCが入力される。
メモリ4は、チップイネーブルB、ライトイネーブルB、アドレスB、およびライトデータCと、に基づいてメモリアクセス制御を行う。メモリ4は、ライトアクセス制御信号に応答して、ライトデータCをメモリ4にライトする。メモリ4は、リードアクセス制御信号に応答して、リードアクセス応答信号(リードデータB)をECC回路3に出力する。
図2は、自己修復回路1の詳細な回路構成を示す。
自己修復回路1は、メモリ制御信号選択回路10と、修復データFIFO回路11と、メモリ制御信号生成回路12と、FIFO制御回路13と、一時保存バッファ回路14と、を備えている。
メモリ制御信号選択回路10は、第1のメモリアクセス制御信号が入力される。第1のメモリアクセス制御信号は、自己修復回路1の外部から入力される。また、メモリ制御信号選択回路10は、チップイネーブルA'、ライトイネーブルA'、アドレスA'、およびライトデータA'が入力される。チップイネーブルA'、ライトイネーブルA'、アドレスA'、およびライトデータA'は、メモリ制御信号生成回路12から出力される。第2のメモリアクセス制御信号は、メモリ制御信号生成回路12から出力されてメモリ制御信号選択回路10に入力されるメモリアクセス制御信号に相当し、チップイネーブルA'、ライトイネーブルA'、アドレスA'、およびライトデータA'を含む。
メモリ制御信号選択回路10は、チップイネーブルAのレベルに応じて、第1のメモリアクセス制御信号または第2のメモリアクセス制御信号のいずれかのメモリアクセス制御信号を選択する。メモリ制御信号選択回路10は、選択したメモリアクセス制御信号を第3のメモリアクセス制御信号として、ECC回路3およびメモリ4に出力する。
具体的には、メモリ制御信号選択回路10は、チップイネーブルAのレベルがアクティブである場合(メモリインタフェース回路2からのメモリアクセスが行われていると判別した場合)、第1のメモリアクセス制御信号を選択する。また、メモリ制御信号選択回路10は、チップイネーブルAのレベルがアクティブでない場合(メモリインタフェース回路2からのメモリアクセスが行われていないと判別した場合)、第2のメモリアクセス制御信号を選択する。
図3は、メモリ制御信号選択回路10の詳細な回路構成を示す。
メモリ制御信号選択回路10は、チップイネーブルセレクタ101と、ライトイネーブルセレクタ102と、アドレスセレクタ103と、ライトデータセレクタ104と、を備えている。
チップイネーブルセレクタ101は、チップイネーブルAおよびチップイネーブルA'が入力される。チップイネーブルセレクタ101は、チップイネーブルAがアクティブレベルであればチップイネーブルA、チップイネーブルAがインアクティブレベルであればチップイネーブルA'を選択する。チップイネーブルセレクタ101は、選択したチップイネーブルをチップイネーブルBとして、メモリ制御信号選択回路10の外部に出力する。
ライトイネーブルセレクタ102は、ライトネーブルA、ライトイネーブルA'、およびチップイネーブルAが入力される。ライトイネーブルセレクタ102は、チップイネーブルAがアクティブレベルであればライトイネーブルーブルA、チップイネーブルAがインアクティブレベルであればチップイネーブルA'を選択する。ライトイネーブルセレクタ102は、選択したライトイネーブルをライトイネーブルBとしてメモリ制御信号選択回路10の外部に出力する。
アドレスセレクタ103は、アドレスA、アドレスA'、およびチップイネーブルAが入力される。アドレスセレクタ103は、チップイネーブルAがアクティブレベルであればアドレスA、チップイネーブルAがインアクティブレベルであればアドレスA'を選択する。アドレスセレクタ103は、選択したアドレスをアドレスBとしてメモリ制御信号選択回路10の外部に出力する。
ライトデータセレクタ104は、ライトデータA、ライトデータA'、およびチップイネーブルAが入力される。ライトデータセレクタ104は、チップイネーブルAがアクティブレベルであればライトデータA、チップイネーブルAがインアクティブレベルであればライトデータA'を選択する。ライトデータセレクタ104は、選択したライトデータをライトデータBとしてメモリ制御信号選択回路10の外部に出力する。
なお、図3のメモリ制御信号選択回路10の回路構成では、チップイネーブルAのみに応じて出力するメモリアクセス制御信号の選択を行うものとして説明したが、本発明はこれに限定されない。本発明の趣旨は、メモリアクセスの仕様に応じて論理構成を行うことである。すなわち、選択論理の構成はチップイネーブルAのみに基づくマルチプレクサ構成に限定されず、他の構成としてもよい。
図4は、メモリ制御信号選択回路10の他の回路構成を示す。
メモリ制御信号選択回路10は、図3に示した構成と比較して、時分割制御回路105を備える点が異なっている。
時分割制御回路105は、チップイネーブルセレクタ101、ライトイネーブルセレクタ102、アドレスセレクタ103、およびライトデータセレクタ104を制御する。これによって、時分割制御回路105は、各セレクタによる信号の選択を制御する。図4に示す例では、チップイネーブルAのレベルがアクティブにならないクロックサイクルを持つように制御される。そして、時分割制御回路105は、チップイネーブルAのレベルがアクティブでないクロックサイクルにおいてのみ、チップイネーブルA'を選択する制御を行う。
図2に戻って説明を続ける。
修復データFIFO回路11は、自己修復回路1の外部から誤り検出信号が入力される。また、修復データFIFO回路11は、一時保存バッファ回路14から、監視アドレス、監視データ、およびライト上書イネーブル信号が入力される。また、修復データFIFO回路11は、FIFO制御回路13から、FIFO修復ポインタおよびFIFO記録ポインタが入力される。また、修復データFIFO回路11は、修復アドレス、修復データ、および修復待ち制御フラグを、メモリ制御信号生成回路12に出力する。
修復データFIFO回路11は、修復データバッファを備えている。修復データFIFO回路11は、修復対象のデータおよびメモリアドレスのセットを修復データバッファに保持する。修復対象のデータとは、ECC回路3において誤り訂正が行われた誤り訂正済みのリードデータであり、修復対象のメモリアドレスとは、その誤り訂正済みのリードデータのメモリアドレスである。本実施の形態では、修復データFIFO回路11は、データおよびメモリアドレスのセットを複数保持するために、修復データバッファ0−110、修復データバッファ1−111、...、修復データバッファN−11N(Nは0以上の任意の整数)を備えている。以下、これら複数の修復データバッファを、「修復データバッファ110〜修復データバッファ11N(Nは0以上の任意の整数)」と表記する。
図5に、修復データバッファ11W(Wは0以上のN以下の任意の整数)の詳細な回路構成を示す。修復データバッファ11Wは、修復待ちアドレスレジスタ11W0と、修復待ちデータレジスタ11W1と、修復待ち制御フラグレジスタ11W2と、を備えている。
修復データFIFO回路11は、後述する監視プロセスS0または巡回プロセスS4において、誤り検出信号のレベルがアクティブとなった場合に、修復対象となるデータおよびアドレスを、FIFO記録ポインタの値に応じた修復データバッファ11Wに保持する。これにより、自己修復回路1は、修復対象となるデータおよびアドレスを修復データFIFO回路11に保持する。
具体的には、修復データFIFO回路11は、誤り検出信号のレベルがアクティブとなったときに、FIFO記録ポインタがx(xは0以上のN以下の任意の整数)であった場合、修復データバッファ11xのみについて、修復待ちアドレスレジスタ11x0に監視アドレスを保持し、修復待ちデータレジスタ11x1に監視データを保持し、修復待ち制御フラグレジスタ11x2をアクティブレベルに設定する。なお、修復待ち制御フラグレジスタ11x2のレベルがアクティブである場合には、その修復データバッファ11xが修復待ち状態にあることを示す。
修復データFIFO回路11は、修復待ち制御フラグレジスタ11x2のレベルに応じて、対応する修復待ち制御フラグのビットのレベルを設定する。修復待ち制御フラグは、複数のビット(1102、1112、…、11N2)からなる。修復待ち制御フラグの各ビットは、修復データバッファ110〜修復データバッファ11Nの修復待ち制御フラグレジスタにそれぞれ対応する。修復データFIFO回路11は、修復待ち制御フラグレジスタ11x2がアクティブレベルにある場合には、修復待ち制御フラグのビットのうちの対応するビットのレベルをアクティブに設定し、空き状態となった場合には対応するビットのレベルをインアクティブに設定する。
また、修復データFIFO回路11は、後述する修復プロセスS2において、ライト上書イネーブル信号のレベルがアクティブとなった場合に、FIFO修復ポインタの値に応じた修復データバッファ11Wに保持しているデータを出力する。これにより、自己修復回路1は、修復データFIFO回路11に保持した修復対象となるデータおよびアドレスを、メモリ制御信号生成回路12に出力する。この結果、修復対象のアドレスについて修復対象のデータがメモリ4にライトされ、メモリ4に対する修復が行われる。
具体的には、修復データFIFO回路11は、FIFO修復ポインタがy(yは0以上のN以下の任意の整数)であった場合に、修復データバッファ11yのみについて、修復待ちアドレスレジスタ11y0に保持した監視アドレスを出力し、修復待ちデータレジスタ11y1に保持した監視データを出力し、修復待ち制御フラグレジスタ11y2のレベルにインアクティブを設定する。なお、修復待ち制御フラグレジスタ11y2のレベルがインアクティブである場合には、その修復データバッファ11yが空き状態にあることを示す。
なお、修復データFIFO回路11が出力する修復アドレスの値は、修復データバッファ11yの修復待ちアドレスレジスタ11y0の値と等しくなる。また、修復データFIFO回路11が出力する修復データの値は、修復データバッファ11yの修復待ちデータレジスタ11y1の値に等しくなる。
また、修復データFIFO回路11は、ライト上書イネーブル信号がアクティブである場合、修復データバッファ110〜11Nにそれぞれ保持しているアドレスと、監視アドレスとが同一であるか否かを判別する。修復データFIFO回路11は、修復データバッファ110〜11Nのいずれかが保持している修復待ちアドレスが、監視アドレスと同一であった場合、保持している修復待ちデータレジスタの値を監視データの値に更新する。
具体的には、修復データFIFO回路11は、ライト上書イネーブル信号がアクティブであるときに、修復データバッファ11z(zは0以上のN以下の任意の整数)の修復待ちアドレスレジスタ11z0の値が、監視アドレスの値と同一であった場合、修復待ちデータレジスタ11z1の値を、監視データの値に更新する。
図2に戻って説明を続ける。
メモリ制御信号生成回路12は、自己修復回路1の外部からチップイネーブルAが入力される。また、メモリ制御信号生成回路12は、修復データFIFO回路11から、修復アドレス、修復データ、および修復待ち制御フラグが入力される。メモリ制御信号生成回路12は、第2のメモリアクセス制御信号を出力する。
メモリ制御信号生成回路12は、チップイネーブルAのレベルに応じて、メモリインタフェース回路2によりメモリアクセスが行われているか否かを判別する。メモリ制御信号生成回路12は、チップイネーブルAがインアクティブレベルである場合(メモリインタフェース回路2によりメモリアクセスが行われていないと判別した場合)、後述する修復プロセスS2において、修復データFIFO回路11から出力された修復アドレス、修復データ、および修復待ち制御フラグに基づいて、修復対象となるデータおよびアドレスをメモリ制御信号選択回路10に出力する。
具体的には、メモリ制御信号生成回路12は、修復データFIFO回路11から出力された修復アドレスの値をアドレスA'の値とし、修復データFIFO回路11から出力された修復データをライトデータA'とした、ライトアクセス制御信号を生成する。さらに、メモリ制御信号生成回路12は、チップイネーブルA'にアクティブレベルを出力し、ライトイネーブルA'のレベルにアクティブを出力する。
また、メモリ制御信号生成回路12は、メモリインタフェース回路2によりメモリアクセスが行われていないと判別し、かつ、修復データバッファ110〜修復データバッファ11Nのいずれにも誤り訂正済のリードデータAおよびその誤り訂正済みのリードデータAのアドレスAが保持されていない場合、後述する巡回プロセスS4において、メモリ4の全メモリアドレスに対するリードアクセスを行うように、第2のメモリアクセス制御信号を生成する。
具体的には、メモリ制御信号生成回路12は、アドレスA'の値としてメモリ4の任意のアドレスの値を設定したリードアクセス制御信号を生成する。メモリ制御信号生成回路12は、メモリ4の全アドレスを対象とするリードアクセス制御信号を生成するために、設定したアドレスA'の値をインクリメントしていく。さらに、メモリ制御信号生成回路12は、チップイネーブルA'にアクティブレベルを出力し、ライトイネーブルA'のレベルにインアクティブを出力する。
FIFO制御回路13は、自己修復回路1の外部から誤り検出信号が入力される。また、FIFO制御回路13は、メモリ制御信号生成回路12から、ライトイネーブルA'が入力される。また、FIFO制御回路13は、修復データFIFO回路11から修復待ち制御フラグが入力される。また、FIFO制御回路13は、FIFO修復ポインタおよびFIFO記録ポインタを修復データFIFO回路11に出力する。FIFO制御回路13は、修復データFIFO回路11に対して、修復データバッファ110〜修復データバッファ11Nのうち、使用対象とする修復データバッファの指示を行う。
FIFO記録ポインタは、後述する監視プロセスS0および巡回プロセスS4において、監視アドレス(すなわち、誤りが発生したメモリ4のアドレス)と、監視データ(すなわち、発生したデータ誤りを訂正済のデータ)とを、修復データバッファ110〜修復データバッファ11Nのいずれに保持するかを示すポインタである。FIFO制御回路13は、監視プロセスS0または巡回プロセスS4において、修復データバッファ110〜修復データバッファ11Nに監視アドレスおよび監視データを入力した場合に、FIFO記録ポインタの値をインクリメントする。
具体的には、FIFO制御回路13は、誤り検出信号がアクティブであり、かつ、修復待ち制御フラグの複数のビットのうち少なくとも1つのビットのレベルがインアクディブレベルとなった場合に、FIFO記録ポインタの値をインクリメントする。FIFO制御回路13は、全てのビットのレベルがアクティブである場合には、FIFO記録ポインタの値をインクリメントしない。
FIFO修復ポインタは、後述する修復プロセスS2において、修復データおよび修復アドレスを、修復データバッファ110〜修復データバッファ11Nのいずれに保持されたデータおよびアドレスから生成するかを示すポインタである。FIFO制御回路13は、修復プロセスS2において、修復データバッファ110〜修復データバッファ11Nに保持された監視アドレスおよび監視データを出力した場合に、FIFO修復ポインタの値をインクリメントする。具体的には、FIFO制御回路13は、ライトイネーブルA'がアクティブになった場合(すなわち、修復プロセスS2において、メモリ制御信号生成回路12が修復のためのライト動作を行った場合)、FIFO修復ポインタをインクリメントする。
一時保存バッファ回路14は、自己修復回路1の外部から、第1のメモリアクセス制御信号(チップイネーブルA、ライトイネーブルA、アドレスA、およびライトデータA)およびリードデータAが入力される。また、一時保存バッファ回路14は、メモリ制御信号生成回路12から、第2のメモリアクセス制御信号(チップイネーブルA'、ライトイネーブルA'、およびアドレスA')が入力される。また、一時保存バッファ回路14は、監視アドレス、監視データ、およびライト上書イネーブル信号を修復データFIFO回路11に出力する。
一時保存バッファ回路14は、監視プロセスS0ではチップイネーブルAのレベルに応じて、巡回プロセスS4ではチップイネーブルA'のレベルに応じて、メモリアクセスが行われているか否かをそれぞれ判別する。また、一時保存バッファ回路14は、監視プロセスS0ではライトイネーブルAのレベルに応じて、巡回プロセスS4ではライトイネーブルA'のレベルに応じて、ライトアクセスまたはリードアクセスのいずれのメモリアクセスが行われているかをそれぞれ判別する。
一時保存バッファ回路14は、メモリアクセスが行われており、かつ、リードアクセスであると判別した場合、アドレスAおよびリードデータAを一時的に保持し、アドレスAを監視アドレス、リードデータAを監視データ、ライト上書イネーブル信号をインアクティブレベルとしてそれぞれ出力する。また、一時保存バッファ回路14は、メモリアクセスが行われており、かつ、ライトアクセスであると判別した場合、アドレスAを監視アドレス、ライトデータAを監視データ、ライト上書イネーブル信号をアクティブレベルとしてそれぞれ出力する。
ここで、図6を参照して、メモリインタフェース回路2の構成を説明する。図6はメモリインタフェース回路2の詳細な回路構成を示す。
メモリインタフェース回路2は、アクセスポート20と、システムバス21と、主回路0−220〜主回路M−22M(Mは0以上の任意の整数)と、を備えている。
アクセスポート20は、バス接続210を介してシステムバス21と接続する。アクセスポート20は、第1のメモリアクセス制御信号をメモリインタフェース回路2の外部に出力する。また、アクセスポート20は、メモリインタフェース回路2の外部からメモリアクセス応答信号のリードデータAが入力される。
システムバス21は、バス接続210を介してアクセスポート20と接続する。また、システムバス21は、バス接続230を介して主回路0−220と接続する。また、バス接続231を介して主回路1−221と接続する。以下同様にして、バス接続23Mを介して主回路M−22Mと接続する。
主回路0−220はバス接続230を介してシステムバス21と接続する。主回路1−221はバス接続231を介してシステムバス21と接続する。以下同様にして、主回路M−22Mはバス接続23Mを介してシステムバス21と接続する。
主回路0−220、主回路1−221、...、主回路M−22Mは、それぞれバスマスタとして機能する。図6に示すように、メモリインタフェース回路2では、主回路0−220、主回路1−221、...、主回路M−22Mがメモリ4を共有する構成を採用しており、主回路0−220、主回路1−221、...、主回路M−22Mに対するアービトレーションをシステムバス21が行う。これによって、バススレーブとして機能するアクセスポート20を、主回路0−220、主回路1−221、...、主回路M−22Mが共有する。
アクセスポート20は、システムバス21からのアクセス要求に従い、メモリ4に対する第1のメモリアクセス制御信号を生成して出力する。メモリインタフェース回路2は、メモリ4に対するメモリアクセス制御に関して、リードアクセス制御信号またはライトアクセス制御信号を生成して出力する。
続いて以下では、自己修復回路1の動作の一例を説明する。図7は、自己修復回路1により実行される自己修復方法における動作手順の具体例を示すフローチャートである。自己修復方法は、監視プロセスS0と、修復プロセスS2と、巡回プロセスS4と、を含んでいる。
まず、図7を参照して、監視プロセスS0の詳細を説明する。監視プロセスS0は、ステップS00、ステップS01、ステップS02、ステップS03、ステップS04、ステップS05、ステップS06、ステップS1を含む。
ステップS00において、一時保存バッファ回路14は、チップイネーブルAのレベルに応じて、メモリインタフェース回路2によりメモリアクセスが行われているか否かを判別する。一時保存バッファ回路14は、チップイネーブルAがアクティブレベルである場合(メモリインタフェース回路2によりメモリアクセスが行われていると判別した場合)、ステップS01へと処理を進める。
また、ステップS00において、チップイネーブルAがインアクティブレベルである場合(メモリインタフェース回路2によりメモリアクセスが行われていないと判別した場合)、後述する修復プロセスS2におけるステップS20へと処理が進められる。
ステップS01において、一時保存バッファ回路14は、ライトイネーブルAのレベルに応じて、メモリアクセスがライトアクセスまたはリードアクセスのいずれであるかを判別する。一時保存バッファ回路14は、ライトイネーブルAがアクティブレベルである場合(ライトアクセスであると判別した場合)、アドレスAの値を監視アドレスの値とし、ライトデータAの値を監視データの値とし、ライト上書イネーブルをアクティブレベルとして、修復データFIFO回路11に出力する。また、一時保存バッファ回路14は、ライトイネーブルAがインアクティブレベルである場合(リードアクセスであると判別した場合)、ステップS05へと処理を進める。
ステップS02において、修復データFIFO回路11は、修復データバッファ110〜修復データバッファ11Nに、修復待ちデータが存在するか否かを判別する。修復データFIFO回路11は、全ての修復データバッファ110〜修復データバッファ11Nについて、それぞれの修復待ち制御フラグレジスタのレベルを確認する。修復データFIFO回路11は、いずれか1の修復待ち制御フラグレジスタのレベルがアクティブである場合(修復待ち状態の修復待ちデータが存在すると判別した場合)、ステップS03へと処理を進める。また、修復データFIFO回路11は、全ての修復待ち制御フラグレジスタのレベルがインアクティブである場合(修復待ち状態の修復待ちデータが存在しないと判別した場合)、監視プロセスS0を終了する。
ステップS03において、修復データFIFO回路11は、修復データバッファ110〜修復データバッファ11Nのうちで修復待ち制御フラグレジスタのレベルがアクティブである修復データバッファについて、その修復データバッファの修復待ちアドレスレジスタの値と、一時保存バッファ回路14から出力された監視アドレスの値(ライトされたアドレスAの値に等しい。)と、を比較する。修復データFIFO回路11は、修復データバッファ110〜修復データバッファ11Nのうちで修復待ちアドレスレジスタが監視アドレスと等しいものが存在した場合には、ステップS04へと処理を進める。修復データFIFO回路11は、修復データバッファ110〜修復データバッファ11Nのうちで修復待ちアドレスレジスタが監視アドレスと等しいものが存在しない場合には、監視プロセスS0を終了する。
ステップS04において、修復データFIFO回路11は、修復データバッファ110〜修復データバッファ11Nのうちで修復待ちアドレスレジスタと監視アドレスの値が等しかったものについて、その修復データバッファの修復待ちデータレジスタの値を、監視データ(ライトデータAの値に等しい。)の値によって上書する。
他方、ステップS05において、一時保存バッファ回路14は、メモリインタフェース回路2から出力されたアドレスAと、ECC回路3から出力されたリードデータAと、を一時的に保持し、ステップS06へと処理を進める。
ステップS06において、修復データFIFO回路11は、誤り検出信号のレベルに応じて、リードデータAが訂正されているか否かを判別する。修復データFIFO回路11は、誤り検出信号のレベルがアクティブである場合(監視データ(一時保存バッファ回路14が一時的に保持しているリードデータAに等しい)が訂正されていると判別した場合)、ステップS1へと処理を進める。
修復データFIFO回路11は、誤り検出信号のレベルがインアクティブである場合(リードデータAが訂正されていないと判別した場合)、監視プロセスS0を終了する。なお、ステップS1でのFIFO入力処理の詳細は後述する。
図8は、ステップS1のFIFO入力処理を示すフローチャートである。図8を参照して、ステップS1のFIFO入力の詳細を説明する。FIFO入力処理は、ステップS10、ステップS11、ステップS12、ステップS13を含む。
ステップS10において、修復データFIFO回路11は、修復待ち制御フラグレジスタのレベルに応じて、修復データバッファが空き状態であるか否かを判別する。修復データFIFO回路11は、例えば、FIFO記録ポインタの値をx(x=0〜Nのいずれか)としたときに、修復データバッファx−11xの修復待ち制御フラグレジスタ11x2のレベルがインアクティブである場合、修復データバッファx−11xは空き状態であると判別し、ステップS11へと処理を進める。
修復データFIFO回路11は、修復待ち制御フラグレジスタ11x2のレベルがアクティブである場合、修復データバッファx−11xは空き状態でない(つまり、修復待ちである。)と判別し、FIFO入力を終了する。なお、このような場合は、全ての修復データバッファが修復待ち状態であり、新たにデータを入力することができない状態である。
ステップS11において、修復データFIFO回路11は、FIFO記録ポインタの値に対応する修復データバッファについて、修復対象となるデータを記録する。具体的には、修復データFIFO回路11は、監視アドレス(すなわち、一時保存バッファ回路14がステップS05で一時的に保持して出力したアドレスA)を、修復データバッファx−11xの修復待ちアドレスレジスタ11x0に保持する。また、修復データFIFO回路11は、監視データ、すなわち、一時保存バッファ回路14がステップS05で保持して出力したリードデータAを、修復データバッファx−11xの修復待ちデータレジスタ11x1に保持する。そして、修復データFIFO回路11は、ステップS12へと処理を進める。
ステップS12において、修復データFIFO回路11は、修復データバッファx−11xの修復待ち制御フラグレジスタ11x2のレベルをアクティブに設定する。そして、ステップS13へと処理を進める。ステップS13において、FIFO制御回路13は、FIFO記録ポインタの値をインクリメントし、ステップS1での処理を終了する。
次に、図7に戻って、修復プロセスS2の詳細を説明する。修復プロセスS2は、ステップS20、ステップS3を含む。
ステップS20において、メモリ制御信号生成回路12は、チップイネーブルAのレベルがインアクティブである場合(メモリインタフェース回路2によりメモリアクセスが行われていない場合)、修復データFIFO回路11から出力された修復待ち制御フラグのレベルに応じて、修復データFIFO回路11の修復データバッファに修復待ちデータが保持されているか否かを判別する。
メモリ制御信号生成回路12は、修復待ち制御フラグのいずれか1ビットのレベルがアクティブである場合(修復待ちデータが保持されていると判別した場合)、ステップS3へと処理を進める。メモリ制御信号生成回路12は、修復待ち制御フラグのいずれか1ビットのレベルがインアクティブである場合(修復待ちアドレスおよび修復待ちデータを保持していないと判別した場合)、後述する巡回プロセスS4のステップS40へと処理を進める。なお、ステップS3でのFIFO出力処理の詳細は後述する。
図9は、FIFO出力処理を示すフローチャートである。図9を参照して、ステップS3のFIFO出力の詳細を説明する。FIFO出力処理は、ステップS30、ステップS31、ステップS32、ステップS33を含む。
ステップS30において、メモリ制御信号生成回路12は、修復データバッファ11y(yはFIFO修復ポインタが示す値。)に保持された修復対象のデータおよびアドレスを用いて、メモリ4に対するライト(すなわち修復処理)を行う。具体的には、メモリ制御信号生成回路12は、チップイネーブルA'にアクティブレベルを出力し、ライトイネーブルA'にアクティブレベルを出力し、修復データバッファ11yの修復アドレスの値をアドレスA'の値として出力し、修復データバッファ11yの修復データの値をライトデータA'の値として出力する。
そして、チップイネーブルAのレベルがアクティブでないため(つまり、メモリインタフェース回路2によりメモリアクセスが行われていないため)、メモリ制御信号選択回路10は、メモリ制御信号生成回路12から出力された第2のメモリアクセス制御信号を第3のメモリアクセス制御信号として選択し、選択した第3のメモリアクセス制御信号をECC回路3およびメモリ4に対して出力する。ステップS31へと処理を進める。
ステップS31において、修復データFIFO回路11は、修復データバッファ11yの修復待ち制御フラグレジスタ11y2の値をクリアする。そして、ステップS32へと処理を進める。
ステップS32において、FIFO制御回路13は、FIFO修復ポインタの値をインクリメントし、ステップS3での処理を終了する。
次に、図7に戻って、巡回プロセスS4の詳細を説明する。巡回プロセスS4は、ステップS40、ステップS41、ステップS42、ステップS43、ステップS1を含む。
ステップS40において、メモリ制御信号生成回路12は、チップイネーブルAのレベルがインアクティブである場合(メモリインタフェース回路2によりメモリアクセスが行われていない場合)、メモリ4の全てのメモリアドレスに対するリード(すなわち、巡回処理)を行う。具体的には、ステップS40において、メモリ制御信号生成回路12は、チップイネーブルA'にアクティブレベルを出力し、ライトイネーブルA'のレベルにインアクティブレベルを出力し、アドレスA'の値として任意のメモリアドレスの値を設定して出力する。
また、ステップS40において、メモリ制御信号選択回路10は、チップイネーブルAのレベルがアクティブでないため(つまり、メモリインタフェース回路2によりメモリアクセスが行われていないため)、メモリ制御信号生成回路12から出力された第2のメモリアクセス制御信号を、ECC回路3およびメモリ4に対して出力する第3のメモリアクセス制御信号として選択および出力する。そして、ステップS43へと処理を進める。
ステップS43において、メモリ制御信号生成回路12は、ステップS40で出力したアドレスA'について、そのアドレスA'のメモリアドレスの値をインクリメントする。そして、ステップS41へと処理を進める。
ステップS41において、一時保存バッファ回路14は、メモリ制御信号生成回路12から出力されたアドレスA'と、ECC回路3から出力されたリードデータAと、を一時的に保持し、ステップS42へと処理を進める。
ステップS42において、修復データFIFO回路11は、誤り検出信号のレベルに応じて、リードデータA'が訂正されているか否かを判別する。修復データFIFO回路11は、誤り検出信号のレベルがアクティブである場合(リードデータA'が訂正されていると判別した場合)、ステップS1へと処理を進める。ステップS1でのFIFO入力処理は上述した処理と同様であるため、ここではその説明を省略する。修復データFIFO回路11は、誤り検出信号のレベルがインアクティブである場合(リードデータA'が訂正されていないと判別した場合)、巡回プロセスS4を終了する。
ステップS43において、メモリ制御信号生成回路12は、ステップS40で出力したアドレスA'について、そのアドレスA'のメモリアドレスの値をインクリメントし、巡回プロセスS4を終了する。
上述したステップS00、S01、S02、S05、S06、S1での動作処理によって、「監視プロセスS0において、リードデータの誤り訂正が検出された場合に、自己修復回路1が、修復待ちデータを修復データFIFO回路11に保持する」という動作処理を実現することができる。
また、上述したステップS00、S20、S3での動作処理によって、「メモリインタフェース回路2がメモリ4にアクセスしていないタイミングにおいて、修復データFIFO回路11に保持しておいた誤り訂正済のデータを、自己修復回路1がメモリ4に上書する。」という動作処理を実現することができる。これにより、修復プロセスを実現することができる。
また、上述したステップS00、S01、S02、S03、S04での動作処理によって、「監視プロセスS0において、誤り訂正済のデータが保持されて修復待ち状態であるときに、メモリインタフェース回路2が修復予定のアドレスにライトアクセスを行い上書する場合であっても、自己修復回路1が、保持している誤り訂正済のデータをそのライトアクセスに追従して修復する。これにより、自己修復回路1が、修復待ちデータを自動的に更新する。」という動作処理を実現することができる。
また、上述したS00、S20、S40、S41、S42、S43での動作処理によって、「メモリインタフェース回路2がメモリ4にアクセスしていないタイミングにおいて、自己修復回路1が、メモリ4の全てのアドレスを順次リードする。これにより、自己修復回路1が、メモリ4内のデータ誤り発生の有無をチェックすると共に、誤り発生を検出した際には修復待ちデータとして修復データFIFO回路11に保持する。」という動作処理を実現することができる。これにより、巡回プロセスを実現することができる。
図10A、図10B、図10Cは、自己修復回路1による修復方法における、監視プロセスおよび修復プロセスの動作処理を示すタイミングチャートである。図10A、図10B、図10Cを参照して、自己修復回路1の監視プロセスと修復プロセスの動作例を説明する。
図10Aを参照する。t01に示す監視プロセス期間において、ECC誤り検出が検出される(同図の602)。この場合、自己修復回路1は、メモリインタフェース回路2により出力されたアドレスAを誤りの発生したアドレス値(同図の600)として、修復データバッファ110の修復待ちアドレスレジスタ1100(同図の603)に保持する。また、自己修復回路1は、ECC回路3により訂正済のリードデータA(同図の601)を、修復データバッファ110の修復待ちデータレジスタ1101(同図の604)に保持する。
続けて誤りが発生し、ECC誤りが検出される(同図の622)。この場合、自己修復回路1は、上記と同様に、誤りの発生したアドレスの値(同図の620)を、修復データバッファ111の修復待ちアドレスレジスタ1110(同図の623)に保持する。また、自己修復回路1は、訂正済のリードデータA(同図の622)を、修復データバッファ111の修復待ちデータレジスタ1111(同図の624)に保持する。
図10Bを参照する。自己修復回路1は、修復待ちデータを保持した状態のまま、メモリインタフェース回路2とメモリ4の間でメモリアクセスが行われていない未使用時間(同図のt10)を検出する。この場合、メモリ制御信号生成回路12が、チップイネーブルA'をアクティブレベルにし(同図の605)、ライトイネーブルA'のレベルをアクティブにし(同図の606)、誤りの発生したアドレスの値(同図の607)をアドレスA'の値にし、訂正済のリードデータの値(同図の608)をライトデータA'の値にして出力する。
図10Cを参照する。自己修復回路1は、ECC回路3およびメモリ4に対して、チップイネーブルB(同図の609)、ライトイネーブルB(同図の610)、アドレスB(同図の613)、およびライトデータB(同図の614)を出力する。これにより、ライトデータBによってメモリ4のデータがライトされることで、誤りの発生したデータが修復される。
自己修復回路1は、修復データバッファ110に保持したデータおよびアドレスを用いて、修復対象データのライト動作に必要とする第2のメモリアクセス制御信号を生成する。そして、自己修復回路1は、第2のメモリアクセス制御信号を出力した後、修復データバッファ110内の修復待ち制御フラグレジスタ1102のレベルをクリアする。
同様にして、自己修復回路1は、修復データバッファ111に保持したデータおよびアドレスを用いて、修復対象データのライト動作に必要とする第2のメモリアクセス制御信号(同図の629、630、633、634)を生成する。そして、自己修復回路1は、第2のメモリアクセス制御信号を出力した後、修復データバッファ111内の修復待ち制御フラグレジスタ1112のレベルをクリアする。
上述した動作処理によって、メモリ4に対するメモリアクセスが行われていない未使用期間t10において、誤りが発生したメモリ4のアドレスに対して、訂正済のデータを上書することができる。
図11A、図11Bは、自己修復回路1による修復方法における、修復待ち期間における修復データ更新の動作処理を示すタイミングチャートである。図11A、図11Bを参照して、自己修復回路1が修復待ちデータを保持しているときに、メモリインタフェース回路2が修復対象となるメモリアドレスにデータを上書する場合の監視プロセスおよび修復プロセスの動作例を説明する。
図11Aを参照する。t04に示す監視プロセス期間において、誤り検出信号のレベルがアクティブになる(同図の644)。この場合、自己修復回路1は、メモリインタフェース回路2により出力されたアドレスAを誤りの発生したアドレスの値(同図の640)として、修復データバッファ110の修復待ちアドレスレジスタ1100(同図の645)に保持する。また、自己修復回路1は、ECC回路3により訂正済のリードデータA(同図の642)を、修復データバッファ110の修復待ちデータレジスタ1101(同図の646)に保持する。
図11Bを参照する。修復データバッファ110に修復待ちデータが存在するときに、その修復待ちデータのアドレスについて同じ値のアドレスであるデータが上書きされる(同図の641のアドレスおよび同図の643のデータに関して、同じ値のアドレスのデータについてライトアクセスがあった場合。)。この場合、自己修復回路1は、修復データバッファ110内に既に保持されている訂正済データの値(同図の646)を、メモリインタフェース回路2が出力したライトデータAの値(同図の647)によって上書する。
自己修復回路1は、メモリインタフェース回路2とメモリ4の間でメモリアクセスが行われていない未使用時間(同図のt12)を検出する。この場合、自己修復回路1は、メモリ制御信号生成回路12において、チップイネーブルA'をアクティブレベルにし(同図の648)、ライトイネーブルA'をアクティブレベルにし(同図の649)、誤りの発生したアドレスの値(図の650)をアドレスA'の値にし、訂正済のリードデータの値(同図の651)をライトデータA'の値にして出力する。
そして、自己修復回路1は、ECC回路3およびメモリ4に対して、チップイネーブルB(同図の656)、ライトイネーブルB(同図の657)、アドレスB(同図の658)、およびライトデータB(同図の659)を出力する。これにより、ライトデータBによってメモリ4のデータがライトされることで、誤りの発生したデータが修復される。
自己修復回路1は、修復データバッファ110に保持したデータおよびアドレスを用いて、修復対象データのライト動作に必要とする第2のメモリアクセス制御信号を生成する。そして、自己修復回路1は、第2のメモリアクセス制御信号を出力した後、修復データバッファ110内の修復待ち制御フラグレジスタ1102のレベルをクリアする。
上述した動作処理によって、メモリ4に対するメモリアクセスが行われていない未使用期間t12において、修復待ち中にデータが更新された場合においても、誤りの発生したアドレスに対して、更新された訂正済のデータを上書することができる。
図12A、図12Bは、自己修復回路1による修復方法における、巡回プロセスの動作処理を示すタイミングチャートである。図12A、図12Bを参照して、自己修復回路1の動作タイミングにおける巡回プロセスの動作例を説明する。
図12Aを参照する。t20に示す巡回プロセス期間において、修復データバッファ110に修復データが存在しない状態で、かつ、メモリインタフェース回路2とメモリ4の間でメモリアクセスが行われていない未使用時間になる。この場合、メモリ制御信号生成回路12は、チップイネーブルA'のレベルをLow(同図の680)にし、ライトイネーブルA'のレベルをLow(図の681)にし、任意の値をアドレスA'の値(同図の682)にして出力する。これにより、メモリ制御信号生成回路12は、メモリ4に対するリードアクセス制御信号を生成する。
図12Bを参照する。メモリ制御信号生成回路12からのリードアクセス制御信号に対して、メモリ4はリードアクセス応答としてリードデータBを出力する。リードデータBに対して誤りの訂正が検出される(同図の683)。この場合、自己修復回路1は、誤りの発生したアドレスの値を、修復データバッファ110の修復待ちアドレスレジスタ1100の値(同図の684)として保持する。また、自己修復回路1は、訂正済リードデータBの値を、修復待ちデータレジスタ1101の値(同図の685)として保持する。
修復データバッファ110に修復データを保持した状態で、かつ、メモリインタフェース回路2とメモリ4の間でメモリアクセスが行われていない未使用時間(同図のt21期間)になる。この場合、自己修復回路1は修復プロセスに移行する。自己修復回路1は、メモリ制御信号生成回路12において、チップイネーブルA'をアクティブレベルにし(同図の680)、ライトイネーブルA'をアクティブレベルにし(図の686)、誤りの発生したアドレスの値(同図の687)をアドレスA'の値にし、訂正済のリードデータの値(同図の688)をライトデータA'の値にして出力する。これにより、メモリ制御信号生成回路12は、メモリ4に対するライトアクセス制御信号を生成する。
そして、自己修復回路1は、ECC回路3およびメモリ4に対して、チップイネーブルB(同図の689)、ライトイネーブルB(同図の690)、アドレスB(同図の691)、およびライトデータB(同図の692)を出力する。これにより、t21期間において訂正済のリードデータを、誤りの発生したメモリ4のアドレスに対して上書する。修復プロセスを完了する。
修復プロセスの完了後、再度、メモリインタフェース回路2とメモリ4の間でメモリアクセスが行われていない未使用時間(同図のt22期間)になる。自己修復回路1は、再び巡回プロセスに移行する。自己修復回路1において、メモリ制御信号生成回路12は、t20期間での手順と同様にして、メモリ4に対するリードアクセス制御信号の生成を再開する。このとき、メモリ制御信号生成回路12は、アドレスA'の値(同図の682)をインクリメントして出力する。
上述した動作処理によって、メモリ4に対するメモリアクセスが行われていない未使用期間t20において、巡回プロセスの動作処理と、巡回プロセス中に誤りが検出された後のt21期間における修復プロセスの動作処理と、以降のt22期間における再度の巡回プロセスの動作処理と、を実現することができる。
以上に説明したように、自己修復回路1によるメモリ4の誤りデータの修復方法では、メモリインタフェース回路2がメモリ4にリードアクセスするときに、リードデータの誤りが検出された場合、誤りが訂正されたデータを自己修復回路1に蓄積する。そして、修復方法では、メモリインタフェース回路2とメモリ4の間でライトアクセスおよびリードアクセスのいずれもが行われていないタイミングを検出し、蓄積しておいた訂正済データをメモリ4に上書きする動作処理を行う。上述した本実施の形態によって奏する効果を、以下により具体的に説明する。
第1の効果として、自己修復回路1は、メモリインタフェース回路2とメモリ4の間で行われる通常のメモリアクセス制御動作(ライトアクセスおよびリードアクセス)を阻害することなく、メモリ4のデータ誤りのチェックを行うことができる。このため、システムの応答時間の低下を防止することができる。したがって、本発明に関連する技術の問題点を解決することができる。
第2の効果として、ソフトエラーなどのメモリに発生したデータ誤りに対する誤動作を防止することができる。上述した監視プロセス、修復プロセス、および巡回プロセスが継続して動作することによって、メモリ4に発生するデータ誤りを、順次修復することができる。これにより、メモリ4に保持されたデータの信頼性を高めることができる。その結果、メモリ4のデータ誤りに起因して発生する予期不可能な制御ソフトウェア上の誤動作を防ぐことができる。
第3の効果として、メモリの面積を小型化することができる。自己修復回路1によるデータ誤りの修復を行わずに、メモリ4にデータ誤りのない状態を長時間にわたって維持するためには、多ビット訂正可能なECC回路を必要とする。しかし、これは、メモリ面積の増大を招くことになる。これに対して本実施の形態では、上述した監視プロセス、修復プロセス、および巡回プロセスが継続して動作することによって、メモリ4に発生したデータ誤りが蓄積されないうちに順次修復されていくために、ECC回路の訂正能力が低いものであってもメモリ4にデータ誤りのない状態を維持することができる。この結果、多ビット訂正可能なECC回路が不要となり、メモリの面積を小型化することができる。
<発明の実施の形態2>
本実施の形態では、上述した発明の実施の形態1に係る自己修復回路1の変形例について説明する。上述した実施の形態1と比較して、本実施の形態では、自己修復回路1の構成が相違する。このため、以下では、自己修復回路1の構成を中心に説明し、他の構成についてはその説明を省略する。
図13Aは、本実施の形態に係る自己修復回路1の構成を示す。本実施の形態に係る自己修復回路1の構成は、上述した実施の形態1および後述する実施の形態3、4と比較して、最も基本的な構成を示す。
自己修復回路1は、メモリ制御信号選択回路10と、修復データFIFO回路11と、メモリ制御信号生成回路12と、を備えている。修復データFIFO回路11は、修復データバッファ110を備えている。
メモリ制御信号選択回路10は、メモリ4へのメモリアクセスが行われているか否かに応じて、第1のメモリアクセス制御信号または第2のメモリアクセス制御信号のいずれかを選択する。メモリ制御信号選択回路10は、選択したメモリアクセス制御信号を第3のメモリアクセス制御信号として出力する。
メモリ制御信号選択回路10は、メモリ4へのメモリアクセスが行われている場合に、第1のメモリアクセス制御信号を選択する。メモリ制御信号選択回路10は、メモリ4へのメモリアクセスが行われていない場合に、第2のメモリアクセス制御信号を選択する。
修復データFIFO回路11は、メモリ4へのリードアクセスが行われており、かつ、ECC回路3において誤り訂正が行われた場合に、ECC回路3において誤り訂正が行われた誤り訂正済のリードデータAと、その誤り訂正済みリードデータAのアドレスAと、を修復データバッファ110に保持する。
また、修復データFIFO回路11は、修復データバッファ110に保持した誤り訂正済のリードデータAおよびその誤り訂正済みリードデータAのアドレスAを、修復データおよび修復アドレスとしてメモリ制御信号生成回路12に出力する。さらに、修復データFIFO回路11は、修復データバッファ110に誤り訂正済のリードデータAおよびその誤り訂正済みリードデータAのアドレスAを保持した場合には、修復待ち制御フラグのビットのレベルをアクティブに設定して、メモリ制御信号生成回路12に出力する。
メモリ制御信号生成回路12は、メモリ4へのメモリアクセスが行われておらず、かつ、修復待ち制御フラグのビットのレベルがアクティブである場合に、修復データバッファ110に保持された誤り訂正済のリードデータAおよびその誤り訂正済みのリードデータAのアドレスAを、ライトデータA'およびアドレスA'としてメモリ制御信号選択回路10に出力する。さらに、この場合、メモリ制御信号生成回路12は、チップイネーブルA'にアクティブレベルを出力し、ライトイネーブルA'にアクティブレベルを出力する。
本実施の形態によっても、上述した第1の効果、第2の効果、および第3の効果を奏することができる。また、本実施の形態によれば、自己修復による回路規模のオーバーヘッドを最小限に抑制することができる。また、本実施の形態では、ユースケース上、メモリに対するアクセス頻度が低いため、未使用期間が多い場合に特に好適である。また、本実施の形態は、メモリリード・ライトアクセスに対してメモリが同一サイクルにより応答する場合において使用すると好適である。
なお、図13Bは、図13Aに示す自己修復回路1の構成の変形例を示す。図13Bに示す自己修復回路1では、図13Aに示した自己修復回路1と比較して、メモリ制御信号生成回路12から出力されたチップイネーブルA'、ライトイネーブルA'、およびアドレスA'が、修復データFIFO回路11に入力される点が相違する。図13Bに示した自己修復回路1によれば、上述した監視プロセスS0および修復プロセスS2に加えて、上述した巡回プロセスS4を実行することができる。他の構成および動作については図13Aに示した自己修復回路1の構成および動作と同一であるため、ここではその詳細な説明を省略する。
<発明の実施の形態3>
本実施の形態では、上述した発明の実施の形態1、2に係る自己修復回路1の変形例について説明する。上述した実施の形態1、2と比較して、本実施の形態では、自己修復回路1の構成が相違する。このため、以下では、自己修復回路1の構成を中心に説明し、他の構成についてはその説明を省略する。
図14は、本実施の形態に係る自己修復回路1の構成を示す。本実施の形態に係る自己修復回路1の構成は、上述した実施の形態2と比較して、修復データFIFO回路11が、複数の修復データバッファ110〜11Nを備えている。複数の修復データバッファ110〜11Nは、誤り訂正済のリードデータAおよびその誤り訂正済みのリードデータAのアドレスAのセットをそれぞれ保持する。
また、本実施の形態に係る自己修復回路1の構成は、上述した実施の形態2と比較して、FIFO記録ポインタおよびFIFO修復ポインタを修復データFIFO回路11に出力するFIFO制御回路13をさらに備えている。
修復データFIFO回路11は、修復データバッファ110〜11Nのそれぞれに対応する複数のビットからなる修復待ち制御フラグを、FIFO制御回路13およびメモリ制御信号生成回路12に出力する。修復データFIFO回路11は、修復データバッファ110〜11Nのうちの対応する修復データバッファにおいて、誤り訂正済のリードデータおよびその誤り訂正済みのリードデータのアドレスを保持している場合には、対応する修復待ち制御フラグのビットのレベルをアクティブに設定する。修復データFIFO回路11は、対応する修復データバッファにおいて誤り訂正済のリードデータおよびその誤り訂正済みのリードデータのアドレスを保持していない場合には、対応する修復待ち制御フラグのビットのレベルをインアクティブに設定する。
FIFO制御回路13は、チップイネーブルAのレベルがアクティブであり、かつ、ライトイネーブルAのレベルがインアクティブであり(すなわち、リードアクセスであり)、かつ、誤り検出信号のレベルがアクティブとなり、かつ、修復待ち制御フラグの複数ビット(1102、1112、…、11N2)の少なくとも1つのレベルがインアクティブとなった場合に、FIFO記録ポインタの値をインクリメントする。
修復データFIFO回路11は、メモリ4へのリードアクセスが行われており、かつ、ECC回路3において誤り訂正が行われた場合に、誤り訂正済のリードデータAおよび誤り訂正済みのリードデータAのアドレスAのセットを、複数の修復データバッファ110〜11NのうちのFIFO記録ポインタが指示する修復データバッファに保持する。
メモリ制御信号生成回路12は、第2のメモリアクセス制御信号を生成する場合には、ライトイネーブルA'のレベルをアクティブに設定して、FIFO制御回路13およびメモリ制御信号選択回路10に出力する。
FIFO制御回路13は、ライトイネーブルA'のレベルがアクティブとなった場合に、FIFO修復ポインタの値をインクリメントする。
修復データFIFO回路11は、メモリ4へのメモリアクセスが行われていない場合に、複数の修復データバッファ110〜11NのうちのFIFO修復ポインタが指示する修復データバッファについて、その修復データバッファに保持された誤り訂正済のリードデータAおよび誤り訂正済みのリードデータAのアドレスAのセットを、メモリ制御信号生成回路12に出力する。
本実施の形態によっても、上述した第1の効果、第2の効果、および第3の効果を奏することができる。本実施の形態においても、自己修復による回路規模のオーバーヘッドをより効果的に抑制することができる。また、本実施の形態では、ユースケース上、メモリに対するアクセス頻度が高いため、未使用期間が少ない場合に特に好適である。また、本実施の形態は、メモリリード・ライトアクセスに対してメモリが同一サイクルにより応答する場合において使用すると好適である。
<発明の実施の形態4>
本実施の形態では、上述した発明の実施の形態1、2、3に係る自己修復回路1の変形例について説明する。上述した実施の形態1、2、3と比較して、本実施の形態では、自己修復回路1の構成が相違する。このため、以下では、自己修復回路1の構成を中心に説明し、他の構成についてはその説明を省略する。
図15は、本実施の形態に係る自己修復回路1の構成を示す。本実施の形態に係る自己修復回路1の構成は、上述した実施の形態2と比較して、一時保存バッファ回路14をさらに備えている。
一時保存バッファ回路14は、第1のメモリアクセス制御信号に基づいて、メモリ4へのリードアクセスが行われているか否かを判別する。また、一時保存バッファ回路14は、誤り訂正済のリードデータAおよびその誤り訂正済みのリードデータAのアドレスを一時的に保存する
一時保存バッファ回路は、メモリ4へのリードアクセスが行われたと判別した場合に、ライト上書イネーブル信号のレベルをアクティブに設定する。また、この場合、一時保存バッファ回路は、一時的に保存した誤り訂正済のリードデータAおよびその誤り訂正済みのリードデータAのアドレスAを、それぞれ監視データおよび監視アドレスとして、修復データFIFO回路11に出力する。
修復データFIFO回路11は、誤り検出信号に基づいてECC回路3において誤り訂正が行われたか否かを判別する。修復データFIFO回路11は、ECC回路3において誤り訂正が行われたと判別した場合に、一時保存バッファ回路14から出力された監視データおよび監視アドレスを修復データバッファ110に保持する。
また、修復データFIFO回路11は、ライト上書イネーブル信号のレベルがアクティブに設定された場合に、修復データバッファ110に保持した監視データおよび監視アドレスを、それぞれ修復データおよび修復アドレスとして設定し、メモリ制御信号生成回路12に出力する。
本実施の形態によっても、上述した第1の効果、第2の効果、および第3の効果を奏することができる。本実施の形態においても、自己修復による回路規模のオーバーヘッドをより効果的に抑制することができる。また、本実施の形態では、ユースケース上、メモリに対するアクセス頻度が高いため、未使用期間が少ない場合に特に好適である。また、本実施の形態は、一般的なメモリ(メモリリード・ライトアクセスに対して、メモリが次サイクル以降に応答するメモリである場合)において、使用すると好適である。
<発明の実施の形態5>
本実施の形態では、上述した発明の実施の形態1に係る自己修復回路1の動作の変形例について説明する。上述した実施の形態1と比較して、本実施の形態では、自己修復回路1により実行される自己修復方法における動作手順が相違する。このため、以下では、自己修復方法における動作手順を中心に説明し、他の構成についてはその説明を省略する。なお、本実施の形態に係る自己修復回路1の構成例は、上述した実施の形態1〜4のいずれかの構成例と同様とすればよい。ここでは、実施の形態2に係る自己修復回路1の構成例を備える場合を例に説明する。
図16は、本実施の形態に係る自己修復方法における動作手順の具体例を示すフローチャートを示す。本実施の形態に係る自己修復方法における動作手順は、上述した実施の形態1および後述する実施の形態6、7と比較して、最も基本的な動作手順を示す。本実施の形態に係る自己修復方法における動作手順は、監視ステップとしての監視プロセスS0と、修復ステップとしての修復プロセスS2と、を含む。
監視プロセスS0において、自己修復回路1は、メモリ4へのリードアクセスが行われているか否かを判別する(ステップS00、S01)。さらに、自己修復回路1は、メモリ4へのリードアクセスが行われている場合、ECC回路3において誤り訂正が行われたか否かを判別する(ステップS06)。そして、自己修復回路1は、メモリ4へのリードアクセスが行われており、かつECC回路3において誤り訂正が行われた場合、ECC回路3において誤り訂正が行われた誤り訂正済のリードデータAと、その誤り訂正済みリードデータAのアドレスAと、を修復データバッファ110に保持する(ステップS1)。
なお、ステップS1でのFIFO入力処理は、図8に示したFIFO入力処理と同様とすればよい。ただし、修復データFIFO回路11が備える修復データバッファ110の個数が1である場合には、FIFO制御回路13によるFIFO記録ポインタを使用せずに済む。このため、この場合には、図8に示したステップS13を省略することができる。
修復プロセスS2において、自己修復回路1は、メモリ4へのメモリアクセスが行われていない場合に、修復データバッファ110に保持した誤り訂正済のリードデータAおよびその誤り訂正済みのリードデータAのアドレスAを含む第2のメモリアクセス制御信号を生成して、その生成した第2のメモリアクセス制御信号を第3のメモリアクセス制御信号として出力する(ステップS3)。
なお、ステップS3でのFIFO出力処理は、図9に示したFIFO出力処理と同様とすればよい。ただし、修復データFIFO回路11が備える修復データバッファ110の個数が1である場合には、FIFO制御回路13によるFIFO修復ポインタを使用せずに済む。このため、この場合には、図9に示したステップS32を省略することができる。
本実施の形態によっても、上述した第1の効果、第2の効果、および第3の効果を奏することができる。また、本実施の形態によれば、回路構成が単純化されるため、自己修復回路そのものの信頼性が向上される。
<発明の実施の形態6>
本実施の形態では、上述した発明の実施の形態1、5に係る自己修復回路1の動作の変形例について説明する。上述した実施の形態1、5と比較して、本実施の形態では、自己修復回路1により実行される自己修復方法における動作手順が相違する。このため、以下では、自己修復方法における動作手順を中心に説明し、他の構成についてはその説明を省略する。なお、本実施の形態に係る自己修復回路1の構成例は、上述した実施の形態1〜4のいずれかの構成例と同様とすればよい。ここでは、実施の形態2に係る自己修復回路1の構成例を備える場合を例に説明する。
図17は、本実施の形態に係る自己修復方法における動作手順の具体例を示すフローチャートを示す。本実施の形態に係る自己修復方法における動作手順は、上述した実施の形態5と比較して、巡回ステップとしての巡回プロセスS4をさらに含む。巡回プロセスS4は、ステップS40、S42、S43、S1を含む。(a)ステップが、ステップS40、S42、S43を含む。(b)ステップが、S42、S1を含む。
まず、上述した修復プロセスS2において、自己修復回路1は、修復データバッファ110〜11Nに誤り訂正済のリードデータAおよびその誤り訂正済みのリードデータAのアドレスAが保持されているか否かを判別する(ステップS20)。
巡回プロセスS4の(a)ステップにおいて、自己修復回路1は、メモリ4へのメモリアクセスが行われておらず、かつ、修復データバッファ110に誤り訂正済のリードデータAおよびその誤り訂正済みのリードデータAのアドレスAが保持されていない場合、メモリ4の全メモリアドレスに対するリードアクセスを行うように第2のメモリアクセス制御信号を生成して、その生成した第2のメモリアクセス制御信号を第3のメモリアクセス制御信号として出力する(ステップS40、S42、S43)。
巡回プロセスS4の(b)ステップにおいて、自己修復回路1は、メモリ4へのメモリアクセスが行われていない場合、ECC回路3において誤り訂正が行われたか否かを判別する(ステップS42)。さらに、自己修復回路1は、メモリ4へのメモリアクセスが行われておらず、かつECC回路3において誤り訂正が行われた場合、ECC回路3において誤り訂正が行われた誤り訂正済のリードデータAと、その誤り訂正済みリードデータAのアドレスA'と、を修復データバッファ110に保持する(ステップS1)。
本実施の形態によっても、上述した第1の効果、第2の効果、および第3の効果を奏することができる。本実施の形態によっても、回路構成が単純化されるため、自己修復回路そのものの信頼性についても相応に向上される。
<発明の実施の形態7>
本実施の形態では、上述した発明の実施の形態1、5、6に係る自己修復回路1の動作の変形例について説明する。上述した実施の形態1、5、6と比較して、本実施の形態では、自己修復回路1により実行される自己修復方法における動作手順が相違する。このため、以下では、自己修復方法における動作手順を中心に説明し、他の構成についてはその説明を省略する。なお、本実施の形態に係る自己修復回路1の構成例は、上述した実施の形態1〜4のいずれかの構成例と同様とすればよい。ここでは、実施の形態2に係る自己修復回路1の構成例を備える場合を例に説明する。
図18は、本実施の形態に係る自己修復方法における動作手順の具体例を示すフローチャートを示す。本実施の形態に係る自己修復方法における動作手順は、上述した実施の形態5と比較して、メモリ4へのライトアクセス中に修復データバッファ110に保持された修復待ちデータを上書きするステップをさらに含む、
修復待ちデータを上書きするステップにおいて、自己修復回路1は、メモリ4へのライトアクセスが行われている場合に、修復データバッファ110に誤り訂正済のリードデータAおよびその誤り訂正済みのリードデータAのアドレスAが保持されているか否かを判別する(ステップS02)。さらに、自己修復回路1は、その保持されている誤り訂正済みのリードデータAのアドレスAとライトアクセスのアドレスAとが等しいか否かを判別する(ステップS03)。そして、自己修復回路1は、メモリ4へのライトアクセスが行われており、かつ、修復データバッファ110に誤り訂正済のリードデータAおよびその誤り訂正済みのリードデータAのアドレスAが保持されていると共に、その保持されている誤り訂正済みのリードデータAのアドレスAとライトアクセスのアドレスAとが等しい場合に、その保持されている誤り訂正済みのリードデータAをライトアクセスのライトデータの値によって上書きする(ステップS04)。
本実施の形態によっても、上述した第1の効果、第2の効果、および第3の効果を奏することができる。本実施の形態によっても、回路構成が単純化されるため、自己修復回路そのものの信頼性についても相応に向上される。
<その他の実施の形態>
上述した複数の実施の形態は、適宜組み合わせることも可能である。さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
1 自己修復回路、
10 メモリ制御信号選択回路、
101 チップイネーブルセレクタ、
102 ライトイネーブルセレクタ、
103 アドレスセレクタ、
104 ライトデータセレクタ、
105 時分割制御回路、
11 修復データFIFO回路、
110、111、...、11N、11W 修復データバッファ、
11W0 修復待ちアドレスレジスタ、
11W1 修復待ちデータレジスタ、
11W2 修復待ち制御フラグレジスタ、
12 メモリ制御信号生成回路、
13 FIFO制御回路、
14 一時保存バッファ回路、
2 メモリインタフェース回路、
20 アクセスポート、
21 システムバス、
210、230、231、...、23M バス接続、
220、221、...、22M 主回路、
3 ECC回路、
31 ECC生成回路、
32 ECC訂正回路、
4 メモリ、

Claims (9)

  1. メモリと、
    前記メモリへのライトデータに対する誤り訂正符号の生成および付加と、前記メモリからのリードデータに対する誤り検出および誤り訂正と、を行うECC回路と、
    前記メモリに対するメモリアクセスを制御する第1のメモリアクセス制御信号を生成して、当該第1のメモリアクセス制御信号を前記メモリおよび前記ECC回路に対して出力するメモリインタフェース回路と、
    前記第1のメモリアクセス制御信号と、前記ECC回路から出力されたリードデータと、前記ECC回路において誤り訂正が行われたか否かを示す誤り検出信号と、に基づいて、前記メモリに対するメモリアクセスを制御する第3のメモリアクセス制御信号を生成して、当該第3のメモリアクセス制御信号を前記メモリおよび前記ECC回路に対して出力する自己修復回路と、を備え、
    前記自己修復回路は、
    前記メモリインタフェース回路による前記メモリへのリードアクセスが行われており、かつ、前記ECC回路において誤り訂正が行われた場合に、前記ECC回路において誤り訂正が行われた誤り訂正済のリードデータと、当該誤り訂正済みリードデータのアドレスと、を修復データバッファに保持する修復データFIFO回路と、
    前記メモリインタフェース回路による前記メモリへのメモリアクセスが行われていない場合に、前記修復データバッファに保持した前記誤り訂正済のリードデータおよび当該誤り訂正済みのリードデータのアドレスを含む第2のメモリアクセス制御信号を生成するメモリ制御信号生成回路と、
    前記メモリインタフェース回路による前記メモリへのメモリアクセスが行われている場合に前記第1のメモリアクセス制御信号を選択し、前記メモリインタフェース回路による前記メモリへのメモリアクセスが行われていない場合に前記第2のメモリアクセス制御信号を選択して、当該選択したメモリアクセス制御信号を前記第3のメモリアクセス制御信号として出力するメモリ制御信号選択回路と、を備える
    自己修復メモリ回路。
  2. 前記自己修復回路は、
    前記誤り訂正済のリードデータおよび前記誤り訂正済みのリードデータのアドレスのセットをそれぞれ保持する複数の修復データバッファと、
    FIFO記録ポインタおよびFIFO修復ポインタを前記修復データFIFO回路に出力するFIFO制御回路と、をさらに備え、
    前記修復データFIFO回路は、
    前記複数の修復データバッファのそれぞれに対応する複数のビットからなる修復待ち制御フラグについて、対応する前記修復データバッファにおいて前記誤り訂正済のリードデータおよび当該誤り訂正済みのリードデータのアドレスを保持している場合には、対応する前記修復待ち制御フラグのビットのレベルをアクティブに設定し、対応する前記修復データバッファにおいて前記誤り訂正済のリードデータおよび当該誤り訂正済みのリードデータのアドレスを保持していない場合には、対応する前記修復待ち制御フラグのビットのレベルをインアクティブに設定して前記FIFO制御回路に出力し、
    前記FIFO制御回路は、
    前記メモリインタフェース回路による前記メモリへのリードアクセスが行われており、かつ、前記ECC回路において誤り訂正が行われ、かつ、前記修復待ち制御フラグの複数ビットのうちの少なくとも1つのビットのレベルがインアクティブに設定された場合に、前記FIFO記録ポインタの値をインクリメントし、
    前記修復データFIFO回路は、
    前記メモリインタフェース回路による前記メモリへのリードアクセスが行われており、かつ、前記ECC回路において誤り訂正が行われた場合に、前記誤り訂正済のリードデータおよび前記誤り訂正済みのリードデータのアドレスのセットを前記FIFO記録ポインタが指示する修復データバッファに保持し、
    前記メモリ制御信号生成回路は、
    前記第2のメモリアクセス制御信号にライトイネーブル信号を含み、前記第2のメモリアクセス制御信号を生成する場合に、前記ライトイネーブル信号のレベルをアクティブに設定して前記FIFO制御回路に出力し、
    前記FIFO制御回路は、
    前記第2のメモリアクセス制御信号に含まれる前記ライトイネーブル信号のレベルがアクティブに設定された場合に、前記FIFO修復ポインタの値をインクリメントし、
    前記修復データFIFO回路は、
    前記メモリインタフェース回路による前記メモリへのメモリアクセスが行われていない場合に、前記FIFO修復ポインタが指示する修復データバッファに保持された前記誤り訂正済のリードデータおよび前記誤り訂正済みのリードデータのアドレスのセットを、前記メモリ制御信号生成回路に出力する、
    請求項1に記載の自己修復メモリ回路。
  3. 前記自己修復回路は、
    前記第1のメモリアクセス制御信号に基づいて前記メモリインタフェース回路による前記メモリへのリードアクセスが行われているか否かを判別すると共に、前記誤り訂正済のリードデータおよび当該誤り訂正済みのリードデータのアドレスを一時的に保存し、前記メモリインタフェース回路による前記メモリへのリードアクセスが行われたと判別した場合に、ライト上書イネーブル信号のレベルをアクティブに設定し、前記一時的に保存した前記誤り訂正済のリードデータおよび当該誤り訂正済みのリードデータのアドレスを、それぞれ監視データおよび監視アドレスとして設定し、前記修復データFIFO回路に出力する一時保存バッファ回路をさらに備え、
    前記修復データFIFO回路は、
    前記誤り検出信号に基づいて前記ECC回路において誤り訂正が行われたか否かを判別し、前記ECC回路において誤り訂正が行われたと判別した場合に、前記一時保存バッファ回路から出力された監視データおよび監視アドレスを前記修復データバッファに保持し、
    前記ライト上書イネーブル信号のレベルがアクティブに設定された場合に、前記修復データバッファに保持した前記監視データおよび前記監視アドレスを、それぞれ修復データおよび修復アドレスとして設定し、前記メモリ制御信号生成回路に出力する、
    請求項1または2に記載の自己修復メモリ回路。
  4. 前記メモリ制御信号生成回路は、
    前記メモリインタフェース回路による前記メモリへのメモリアクセスが行われておらず、かつ、前記修復データバッファに前記誤り訂正済のリードデータおよび当該誤り訂正済みのリードデータのアドレスが保持されていない場合、前記メモリの全メモリアドレスに対するリードアクセスを行うように前記第2のメモリアクセス制御信号を生成し、
    前記修復データFIFO回路は、
    前記メモリインタフェース回路による前記メモリへのメモリアクセスが行われておらず、かつ、前記ECC回路において誤り訂正が行われた場合に、前記ECC回路において誤り訂正が行われた誤り訂正済のリードデータと、当該誤り訂正済みリードデータのアドレスと、を前記修復データバッファに保持する、
    請求項1に記載の自己修復メモリ回路。
  5. 前記修復データFIFO回路は、
    前記メモリインタフェース回路による前記メモリへのライトアクセスが行われており、かつ、前記修復データバッファに前記誤り訂正済のリードデータおよび当該誤り訂正済みのリードデータのアドレスが保持されていると共に、当該保持されている前記誤り訂正済みのリードデータのアドレスと前記ライトアクセスのアドレスとが等しい場合、当該保持されている前記誤り訂正済みのリードデータを前記ライトアクセスのライトデータの値によって上書きする、
    請求項1に記載の自己修復メモリ回路。
  6. 前記修復データバッファは、
    前記誤り訂正済のリードデータを保持する修復待ちデータレジスタと、
    前記誤り訂正済みのリードデータのアドレスを保持する修復待ちアドレスレジスタと、
    当該修復データバッファが修復待ち状態にあるか否かを示す修復待ち制御フラグレジスタと、を備える、
    請求項1に記載の自己修復メモリ回路。
  7. メモリと、
    前記メモリへのライトデータに対する誤り訂正符号の生成および付加と、前記メモリからのリードデータに対する誤り検出および誤り訂正と、を行うECC回路と、
    前記メモリに対するメモリアクセスを制御する第1のメモリアクセス制御信号を生成して、当該第1のメモリアクセス制御信号を前記メモリおよび前記ECC回路に対して出力するメモリインタフェース回路と、
    前記第1のメモリアクセス制御信号と、前記ECC回路から出力されたリードデータと、前記ECC回路において誤り訂正が行われたか否かを示す誤り検出信号と、に基づいて、前記メモリに対するメモリアクセスを制御する第3のメモリアクセス制御信号を生成して、当該第3のメモリアクセス制御信号を前記メモリおよび前記ECC回路に対して出力する自己修復回路と、を備えた自己修復メモリ回路における自己修復方法であって、
    前記メモリインタフェース回路による前記メモリへのリードアクセスが行われており、かつ、前記ECC回路において誤り訂正が行われた場合に、前記自己修復回路が、前記ECC回路において誤り訂正が行われた誤り訂正済のリードデータと、当該誤り訂正済みリードデータのアドレスと、を修復データバッファに保持する監視ステップと、
    前記メモリインタフェース回路による前記メモリへのメモリアクセスが行われていない場合に、前記自己修復回路が、前記修復データバッファに保持した前記誤り訂正済のリードデータおよび当該誤り訂正済みのリードデータのアドレスを含む第2のメモリアクセス制御信号を生成して、当該生成した第2のメモリアクセス制御信号を前記第3のメモリアクセス制御信号として出力する修復ステップと、を含む、
    自己修復方法。
  8. (a)前記メモリインタフェース回路による前記メモリへのメモリアクセスが行われておらず、かつ、前記修復データバッファに前記誤り訂正済のリードデータおよび当該誤り訂正済みのリードデータのアドレスが保持されていない場合、前記自己修復回路が、前記メモリの全メモリアドレスに対するリードアクセスを行うように前記第2のメモリアクセス制御信号を生成して、当該生成した第2のメモリアクセス制御信号を前記第3のメモリアクセス制御信号として出力するステップと、
    (b)前記メモリインタフェース回路による前記メモリへのメモリアクセスが行われておらず、かつ、前記ECC回路において誤り訂正が行われた場合に、前記自己修復回路が、前記ECC回路において誤り訂正が行われた誤り訂正済のリードデータと、当該誤り訂正済みリードデータのアドレスと、を前記修復データバッファに保持するステップと、を含む巡回ステップをさらに含む、
    請求項7に記載の自己修復方法。
  9. 前記メモリインタフェース回路による前記メモリへのライトアクセスが行われており、かつ、前記修復データバッファに前記誤り訂正済のリードデータおよび当該誤り訂正済みのリードデータのアドレスが保持されていると共に、当該保持されている前記誤り訂正済みのリードデータのアドレスと前記ライトアクセスのアドレスとが等しい場合、前記自己修復回路が、当該保持されている前記誤り訂正済みのリードデータを前記ライトアクセスのライトデータの値によって上書きするステップをさらに含む、
    請求項7または8に記載の自己修復方法。
JP2012122690A 2012-05-30 2012-05-30 自己修復メモリ回路およびその修復方法 Pending JP2013250594A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012122690A JP2013250594A (ja) 2012-05-30 2012-05-30 自己修復メモリ回路およびその修復方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012122690A JP2013250594A (ja) 2012-05-30 2012-05-30 自己修復メモリ回路およびその修復方法

Publications (1)

Publication Number Publication Date
JP2013250594A true JP2013250594A (ja) 2013-12-12

Family

ID=49849273

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012122690A Pending JP2013250594A (ja) 2012-05-30 2012-05-30 自己修復メモリ回路およびその修復方法

Country Status (1)

Country Link
JP (1) JP2013250594A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113496745A (zh) * 2020-04-03 2021-10-12 澜起科技股份有限公司 用于修复存储模块缺陷的装置和方法以及存储器系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6371751A (ja) * 1986-09-12 1988-04-01 Fujitsu Ltd 外部記憶装置
JPH04162161A (ja) * 1990-10-26 1992-06-05 Hitachi Ltd 記憶制御装置
JPH056313A (ja) * 1991-06-27 1993-01-14 Oki Electric Ind Co Ltd メモリアクセス制御装置
JPH064412A (ja) * 1992-06-18 1994-01-14 Nec Ibaraki Ltd ローカルメモリ検査訂正回路
JPH06149685A (ja) * 1992-11-11 1994-05-31 Kofu Nippon Denki Kk メモリエラー回復装置
JPH08129510A (ja) * 1994-10-31 1996-05-21 Nec Corp メモリデータ訂正装置
JP2010224967A (ja) * 2009-03-24 2010-10-07 Fujitsu Semiconductor Ltd 半導体装置及び電子機器

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6371751A (ja) * 1986-09-12 1988-04-01 Fujitsu Ltd 外部記憶装置
JPH04162161A (ja) * 1990-10-26 1992-06-05 Hitachi Ltd 記憶制御装置
JPH056313A (ja) * 1991-06-27 1993-01-14 Oki Electric Ind Co Ltd メモリアクセス制御装置
JPH064412A (ja) * 1992-06-18 1994-01-14 Nec Ibaraki Ltd ローカルメモリ検査訂正回路
JPH06149685A (ja) * 1992-11-11 1994-05-31 Kofu Nippon Denki Kk メモリエラー回復装置
JPH08129510A (ja) * 1994-10-31 1996-05-21 Nec Corp メモリデータ訂正装置
JP2010224967A (ja) * 2009-03-24 2010-10-07 Fujitsu Semiconductor Ltd 半導体装置及び電子機器

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113496745A (zh) * 2020-04-03 2021-10-12 澜起科技股份有限公司 用于修复存储模块缺陷的装置和方法以及存储器系统
CN113496745B (zh) * 2020-04-03 2024-03-08 澜起科技股份有限公司 用于修复存储模块缺陷的装置和方法以及存储器系统

Similar Documents

Publication Publication Date Title
KR101374455B1 (ko) 메모리 에러와 리던던시
US8589763B2 (en) Cache memory system
US8365031B2 (en) Soft error correction method, memory control apparatus and memory system
US9003260B2 (en) Partial-writes to ECC (error check code) enabled memories
JPWO2007097019A1 (ja) キャッシュ制御装置およびキャッシュ制御方法
TWI611296B (zh) 記憶體控制器與資料儲存裝置
US9513838B2 (en) Method and apparatus for processing system command during memory backup
US20140040680A1 (en) Memory control device and control method
EP4379553A1 (en) Memory fault recovery method, system, and memory
US9081700B2 (en) High performance read-modify-write system providing line-rate merging of dataframe segments in hardware
US20130305000A1 (en) Signal processing circuit
CN116126581A (zh) 内存故障处理方法、装置、系统、设备及存储介质
JP2013214212A (ja) メモリコントローラ、半導体記憶装置および復号方法
US11221789B2 (en) Semiconductor device, memory controller, and memory accessing method
JP2013250594A (ja) 自己修復メモリ回路およびその修復方法
WO2010013437A1 (ja) 誤り訂正機能付きコントローラ、誤り訂正機能付き記憶装置、及び誤り訂正機能付きシステム
US10269194B2 (en) Multiprocessor system and vehicle control system
US11450398B2 (en) Method of testing slave device of inter-integrated circuit bus
EP3882774A1 (en) Data processing device and data processing method
US9542266B2 (en) Semiconductor integrated circuit and method of processing in semiconductor integrated circuit
JP6193112B2 (ja) メモリアクセス制御装置、メモリアクセス制御システム、メモリアクセス制御方法、及び、メモリアクセス制御プログラム
TWI676104B (zh) 記憶體控制器與資料儲存裝置
JP3962853B2 (ja) メモリデータ誤り訂正方法
JP6497746B2 (ja) 情報処理システム、トランジスタ回路の診断方法及びプログラム
WO2024190403A1 (ja) 半導体装置、およびそれを備えた情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151201

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160107

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160524