(57)【特許請求の範囲】
【請求項１】
情報データを記憶するメモリセルを有する複数のデータブロックと、
前記データブロックに記憶されたデータを復号するための符号データを記憶するメモリセルを有する複数の符号ブロックと、
前記データブロックおよび前記符号ブロックにリフレッシュ動作を順次実行させるためにリフレッシュ要求信号を出力するリフレッシュ制御回路と、
前記データブロックおよび前記符号ブロックのうちリフレッシュ動作によりデータを読み出せないブロックである１つのリフレッシュブロックから読み出されるべき論理１および論理０の予想データを、他のブロックから読み出されるデータにそれぞれ付加して２つの読み出しデータ列を生成するデータ付加回路と、
前記２つの読み出しデータ列についてそれぞれエラーを検出し、これ等のエラー検出結果からエラーの少ない方の読み出しデータ列を選択し、選択した読み出しデータ列のデータ保持不良による１ビットエラーを訂正するエラー訂正回路とを備え、
前記エラー訂正回路は、「エラー無し」、「データブロックのいずれかの１ビットエラー」、「符号ブロックのいずれかの１ビットエラーである符号エラー」および「２ビット以上のエラー」のいずれかを検出し、エラー判定の優先度を、エラー無し＞符号エラー＞１ビットエラー＞２ビット以上のエラーとすることを特徴とする半導体メモリ。
【請求項２】
情報データを記憶するメモリセルを有する複数のデータブロックと、
前記データブロックに記憶されたデータを復号するための符号データを記憶するメモリセルを有する複数の符号ブロックと、
前記データブロックおよび前記符号ブロックにリフレッシュ動作を順次実行させるためにリフレッシュ要求信号を出力するリフレッシュ制御回路と、
前記データブロックおよび前記符号ブロックのうちリフレッシュ動作によりデータを読み出せないブロックである１つのリフレッシュブロックから読み出されるべき論理１および論理０の予想データを、他のブロックから読み出されるデータにそれぞれ付加して２つの読み出しデータ列を生成するデータ付加回路と、
前記２つの読み出しデータ列についてそれぞれエラーを検出し、これ等のエラー検出結果からエラーの少ない方の読み出しデータ列を選択し、選択した読み出しデータ列のデータ保持不良による１ビットエラーを訂正するエラー訂正回路とを備え、
前記エラー訂正回路は、「エラー無し」、「データブロックまたは符号ブロックのいずれかの１ビットエラー」、および「２ビット以上のエラー」のいずれかを検出し、エラー判定の優先度を、エラー無し＞１ビットエラー＞２ビット以上のエラーとすることを特徴とする半導体メモリ。
【請求項３】
請求項１または請求項２の半導体メモリにおいて、
前記リフレッシュ制御回路は、前記データブロックおよび前記符号ブロックのいずれか１つにリフレッシュ動作を実行させるために、前記データブロックおよび前記符号ブロックに前記リフレッシュ要求信号を順次出力することを特徴とする半導体メモリ。
【請求項４】
請求項１または請求項２の半導体メモリにおいて、
読み出しコマンドに応答してリフレッシュブロックを除く前記データブロックおよび前記符号ブロックに読み出し要求信号を出力するアクセス制御回路を備えていることを特徴とする半導体メモリ。
【請求項５】
請求項１または請求項２の半導体メモリにおいて、
書き込みコマンドに応答して前記データブロックおよび前記符号ブロックに書き込み要求信号を出力するアクセス制御回路を備え、
前記データブロックおよび前記符号ブロックは、前記リフレッシュ要求信号と前記書き込み要求信号が競合するときに、リフレッシュ動作を実行した後書き込み動作を順次遅れて実行するブロック制御回路をそれぞれ備えていることを特徴とする半導体メモリ。
【請求項６】
請求項１または請求項２の半導体メモリにおいて、
前記エラー訂正回路が「２ビット以上のエラー」を検出したときに、エラー信号を出力するエラー端子を備えていることを特徴とする半導体メモリ。
【請求項７】
情報データを記憶するメモリセルを有する複数のデータブロックと、前記データブロックに記憶されたデータを復号するための符号データを記憶するメモリセルを有する複数の符号ブロックと、前記データブロックおよび前記符号ブロックにリフレッシュ動作を順次実行させるためにリフレッシュ要求信号を出力するリフレッシュ制御回路とを備えた半導体メモリの動作方法であって、
前記データブロックおよび前記符号ブロックのうちリフレッシュ動作によりデータを読み出せないブロックである１つのリフレッシュブロックから読み出されるべき論理１および論理０の予想データを、他のブロックから読み出されるデータにそれぞれ付加して２つの読み出しデータ列を生成し、
前記２つの読み出しデータ列についてそれぞれエラーを検出し、
これ等のエラー検出結果からエラーの少ない方の読み出しデータ列を選択し、選択した読み出しデータ列のデータ保持不良による１ビットエラーを訂正し、
「エラー無し」、「データブロックのいずれかの１ビットエラー」、「符号ブロックのいずれかの１ビットエラーである符号エラー」および「２ビット以上のエラー」のいずれかを検出し、
エラー判定の優先度を、エラー無し＞符号エラー＞１ビットエラー＞２ビット以上のエラーとすることを特徴とする半導体メモリの動作方法。
【請求項８】
情報データを記憶するメモリセルを有する複数のデータブロックと、前記データブロックに記憶されたデータを復号するための符号データを記憶するメモリセルを有する複数の符号ブロックと、前記データブロックおよび前記符号ブロックにリフレッシュ動作を順次実行させるためにリフレッシュ要求信号を出力するリフレッシュ制御回路とを備えた半導体メモリの動作方法であって、
前記データブロックおよび前記符号ブロックのうちリフレッシュ動作によりデータを読み出せないブロックである１つのリフレッシュブロックから読み出されるべき論理１および論理０の予想データを、他のブロックから読み出されるデータにそれぞれ付加して２つの読み出しデータ列を生成し、
前記２つの読み出しデータ列についてそれぞれエラーを検出し、
これ等のエラー検出結果からエラーの少ない方の読み出しデータ列を選択し、選択した読み出しデータ列のデータ保持不良による１ビットエラーを訂正し、
「エラー無し」、「データブロックおよび符号ブロックのいずれかの１ビットエラー」、および「２ビット以上のエラー」のいずれかを検出し、
エラー判定の優先度を、エラー無し＞１ビットエラー＞２ビット以上のエラーとすることを特徴とする半導体メモリの動作方法。
【請求項９】
請求項７または請求項８の半導体メモリの動作方法において、
前記データブロックおよび前記符号ブロックのいずれか１つにリフレッシュ動作を実行させるために、前記データブロックおよび前記符号ブロックに前記リフレッシュ要求信号を順次出力することを特徴とする半導体メモリの動作方法。
【請求項１０】
請求項７または請求項８の半導体メモリの動作方法において、
読み出しコマンドに応答してリフレッシュブロックを除く前記データブロックおよび前記符号ブロックに読み出し要求信号を出力することを特徴とする半導体メモリの動作方法。
【請求項１１】
請求項７または請求項８の半導体メモリの動作方法において、
書き込みコマンドに応答して前記データブロックおよび前記符号ブロックに書き込み要求信号を出力し、
前記データブロックおよび前記符号ブロックは、前記リフレッシュ要求信号と前記書き込み要求信号が競合するときに、リフレッシュ動作を実行した後書き込み動作を順次遅れて実行することを特徴とする半導体メモリの動作方法。
【請求項１２】
請求項７または請求項８の半導体メモリの動作方法において、
「２ビット以上のエラー」を検出したときに、エラー信号をエラー端子に出力することを特徴とする半導体メモリの動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リフレッシュ動作が必要なダイナミックメモリセルを有する半導体メモリおよびその動作方法に関する。
【背景技術】
【０００２】
近年、擬似SRAM（Pseudo-SRAM）と呼ばれる半導体メモリが注目されている。擬似SRAMは、DRAMのメモリセルを有し、メモリセルのリフレッシュ動作を内部で自動的に実行することでSRAMとして動作する。ダイナミックメモリセルは、面積が小さいため、ビットコストが低く、かつ大容量の擬似SRAMを開発できる。
【０００３】
一方、擬似SRAMは、メモリセルのキャパシタに蓄えられる電荷によってデータを記憶するために、データは、電荷のリークなどによりやがて失われる。これを避けるために、擬似SRAMは、所定期間毎にリフレッシュ動作が必要である。リフレッシュ動作は、メモリセルに保持されているデータをビット線に読み出し、ビット線上のデータをセンスアンプで増幅し、メモリセルに再書き込みする動作である。
【０００４】
リフレッシュ動作を実行するためのリフレッシュ要求は、外部アクセス要求と無関係に発生する。このため、リフレッシュ動作は、アクセス動作と競合する場合がある。擬似SRAMは、SRAMインタフェースを有するため、この競合が発生したときにも、外部のシステムに対してリフレッシュ動作を隠す必要がある。近時、リフレッシュ動作を隠すために、書き込みデータと共にエラー訂正符号を記憶する半導体メモリが提案されている（例えば、特許文献１参照）。この半導体メモリでは、エラー訂正符号を用いることで、リフレッシュ動作中のメモリブロックからデータを読み出すことなく、読み出しデータを再生できる。また、読み出し要求とリフレッシュ要求が競合しないため、読み出しサイクル時間にリフレッシュ動作時間を含める必要はない。この結果、読み出しサイクル時間をSRAMと同等にできる。
【０００５】
一方、擬似SRAMは、リフレッシュ動作が必要なため、メモリセルがラッチで構成されるSRAMに比べ、スタンバイ期間中の消費電力が大きい。スタンバイ期間中に消費される電力として、ＤＣ成分とＡＣ成分がある。ＤＣ成分は、リーク成分であり、トランジスタのオフ電流および内部回路（特に、電源回路）の動作のために意図的に流している電流等である。これ等、ＤＣ成分は、半導体プロセスおよび回路構成に依存するため、擬似SRAMとSRAMとの差異は、議論できない。
【０００６】
擬似SRAMのスタンバイ期間の消費電流のうちＡＣ成分は、主にリフレッシュ動作による電流である。このため、リフレッシュ動作電流の削減は、ＡＣ成分を削減するために有効である。近時、リフレッシュ動作電流を削減するために、書き込みデータと共にエラー訂正符号を記憶する半導体メモリが提案されている。この半導体メモリは、エラー訂正符号によりメモリセルのデータ保持特性を実質的に向上し、リフレッシュ間隔を延ばすことで、リフレッシュ動作電流を削減している。（例えば、特許文献２−４参照）。
【特許文献１】特開２００３−５１１８６号公報
【特許文献２】特開平５−４１０８４号公報
【特許文献３】特開２００２−５６６７１号公報
【特許文献４】特開２００３−５９２９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来の擬似SRAMで用いられるエラー訂正手法では、読み出しサイクル時間の削減またはスタンバイ電流の削減の一方しかできない。具体的には、読み出しサイクル時間（ＡＣ特性）は、SRAMと同等にできても、スタンバイ電流（ＤＣ特性）はSRAMと同等にできない。あるいは、スタンバイ電流はSRAMと同等にできても、読み出しサイクル時間は、SRAMと同等にできない。すなわち、SRAMと完全に互換性を有する擬似SRAMは、実現されていない。この結果、例えば、システムに搭載されているSRAMをコスト削減のために擬似SRAMに単純に置き換えるだけでは、システムを動作させることは困難であった。
【０００８】
本発明の目的は、アクセスサイクル時間を延ばすことなくリフレッシュ動作を隠すことができ、同時にスタンバイ期間の消費電力を削減できる擬似SRAMを提供することにある。
【０００９】
本発明の別の目的は、SRAMと完全な互換性を有する擬似SRAMを提供することにある。
【課題を解決するための手段】
【００１０】
本発明の半導体メモリの一形態では、複数のデータブロックは、情報データを記憶するメモリセルを有する。複数の符号ブロックは、データブロックに記憶されたデータを復号するための符号データを記憶するメモリセルを有する。リフレッシュ制御回路は、データブロックおよび符号ブロックにリフレッシュ動作を順次実行させるためにリフレッシュ要求信号を出力する。データ付加回路は、リフレッシュブロックから読み出されるべき複数種の予想データを、他のブロックから読み出されるデータにそれぞれ付加して複数の読み出しデータ列を生成する。ここで、リフレッシュブロックは、データブロックおよび符号ブロックのうちリフレッシュ動作によりデータを読み出せないブロックである。
【００１１】
エラー訂正回路は、読み出しデータ列についてそれぞれエラーを検出し、これ等のエラー検出結果から最も確からしい一つを真とする。また、エラー訂正回路は、真としたエラー検出結果に対応する読み出しデータ列のエラーを訂正する。符号データは、例えば、水平垂直パリティ符号または拡大ハミング符号であり、符号データの最小ハミング距離は、４以上である。
【００１２】
このように、データの一部を予想した複数の読み出しデータ列のエラー検出結果を互いに比較して真のエラーを検出し、真のエラーに基づいてブロックのいずれかで実際に発生したエラーを訂正することで、リフレッシュ動作を外部のシステムに対して隠すこと、およびエラー訂正を同時に達成できる。リフレッシュ動作を読み出し要求と競合することなく隠すことができるため、読み出しサイクル時間が長くなることを防止できる（ＡＣ特性の改善）。
【００１３】
エラー訂正機能により、例えば、データを保持できる最小時間であるデータリテンション時間が短いメモリセルによって発生するエラーを訂正できる。このため、リフレッシュ要求間隔を延ばすことができ、スタンバイ中の消費電力を削減できる（ＤＣ特性の改善）。具体的には、各メモリセルのリフレッシュ間隔を、ワーストのメモリセルのデータリテンション時間より長く設定しても、誤ったデータが読み出されることはない。したがって、本発明を、例えば、擬似SRAMに適用した場合、ＡＣ特性およびＤＣ特性の両方をSRAMと同等以下にできる。換言すれば、SRAMと完全に互換性を有する擬似SRAMをユーザに提供できる。ユーザは、システム上に搭載されるSRAMを本発明が適用された擬似SRAMに置き換えるだけで、コストを削減できる。
【００１４】
本発明の半導体メモリの別の一形態では、リフレッシュ制御回路は、データブロックおよび符号ブロックのいずれか１つにリフレッシュ動作を実行させるために、データブロックおよび符号ブロックにリフレッシュ要求信号を順次出力する。リフレッシュ要求に応答するリフレッシュ動作を１つのブロックでのみ実行することで、リフレッシュ動作により読み出せないデータを、容易に復元できる。
【００１５】
本発明の半導体メモリの別の一形態では、アクセス制御回路は、読み出しコマンドに応答してリフレッシュブロックを除くデータブロックおよび符号ブロックに読み出し要求信号を出力する。すなわち、リフレッシュブロックは、読み出し動作を実行しない。このため、リフレッシュ要求と読み出し要求が競合することを防止でき、読み出しアクセス時間が増加することを防止できる。また、アクセス制御回路による読み出し動作の制御を容易にできる。
【００１６】
本発明の半導体メモリの別の一形態では、アクセス制御回路は、書き込みコマンドに応答してデータブロックおよび符号ブロックに書き込み要求信号を出力する。データブロックおよび符号ブロック内の各ブロック制御回路は、リフレッシュ要求信号と書き込み要求信号が競合するときに、リフレッシュ動作を実行した後に書き込み動作を遅れて実行する。このため、書き込みデータをリフレッシュブロックに対して確実に書き込むことができる。
【発明の効果】
【００１７】
本発明では、アクセスサイクル時間を延ばすことなくリフレッシュ動作を隠すことができ、同時にスタンバイ期間の消費電力を削減できる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施形態を図面を用いて説明する。図中の二重丸は、外部端子を示している。図中、太線で示した信号線は、複数本で構成されている。太線が接続されているブロックの一部は、複数の回路で構成されている。外部端子を介して供給される信号には、端子名と同じ符号を使用する。信号が伝達される信号線には、信号名と同じ符号を使用する。信号名の末尾の"ｚ"は、正論理を示している。
【００１９】
図１は、本発明の半導体メモリの第１の実施形態を示している。この半導体メモリは、シリコン基板上にCMOSプロセスを使用してクロック同期式のシンクロナス擬似SRAMとして形成されている。
【００２０】
擬似SRAMは、アドレスバッファ１０、データ制御回路１２、データ入出力バッファ１４、コマンドバッファ１６、アクセス制御回路１８、リフレッシュ制御回路２０、クロックバッファ２２およびメモリコア２４を有している。
【００２１】
メモリコア２４は、データブロックMBD0-15、符号ブロックMBE0-7およびブロック制御回路BCNTを有している。データブロックMBD0-15は、データ端子DQ15-0にそれぞれ対応して形成されており、データ端子DQ15-0を介して供給される情報データ（以下、単にデータとも称する）をそれぞれ保持する。符号ブロックMBE0-7は、データブロックMBD0-15に保持されるデータにより生成される８ビットの誤り訂正符号の各ビットをそれぞれ保持する。誤り訂正符号は、データブロックに記憶された情報データを復号するための符号データとして使用される。なお、特に図示していないが、メモリコア２４は、ワード線単位で不良を救済するためのロウ冗長回路およびビット線単位で不良を救済するためのコラム冗長回路を有している。
【００２２】
ブロック制御回路BCNTは、ブロックMBD0-15、MBE0-7に対応してそれぞれ形成され、これ等ブロックの動作をそれぞれ制御する。ブロック制御回路BCNTは、書き込み要求信号と、リフレッシュ要求信号（refd[15:0]、refe[7:0]のいずれか）とを同時に受けたとき、対応する書き込み要求信号（wrd[15:0]、wde[7:0]のいずれか）を、リフレッシュ動作が挿入される期間だけ順次遅らせて出力する。
【００２３】
データブロックMBD0-15および符号ブロックMBE0-7は、互いに同じ構造を有し、同じメモリ容量を有している。各ブロックMBD0-15、MBE0-7は、ダイナミックメモリセルと、これ等ダイナミックメモリセルに接続されたワード線、ビット線とを有している。メモリセルは、データの論理値を電荷として保持するキャパシタと、キャパシタをビット線に接続する転送トランジスタとを有している。転送トランジスタのゲートは、ワード線に接続されている。なお、この実施形態では、後述する図７に示すように、水平垂直パリティが、エラー訂正符号として採用されている。
【００２４】
アドレスバッファ１０は、アドレス端子ADを介してアドレス信号ADを受信する。この擬似SRAMは、ロウアドレス信号およびコラムアドレス信号を一度に受信するアドレスノンマルチプレクス方式を採用している。ロウアドレス信号は、ブロックMBD0-15、MBE0-7内のワード線の選択に使用される。コラムアドレスは、ブロックMBD0-15、MBE0-7内のビット線の選択に使用される。
【００２５】
クロックバッファ２２は、クロック端子CLKを介してクロック信号CLKを受信し、受信した信号を内部クロック信号ICLKとして出力する。クロック信号CLKは、例えば、擬似SRAMが搭載されるシステム基板のシステムクロックである。内部クロック信号ICLKは、擬似SRAM内のクロック同期が必要な回路に供給される。
【００２６】
リフレッシュ制御回路２０は、特に図示していないが、タイマ、カウンタ、シフトレジスタおよびリフレッシュ要求生成回路を有している。タイマは、内部クロック信号ICLKに同期して動作し、周期信号（パルス信号）を生成する。タイマの周期は、リフレッシュ要求の発生間隔に一致する。カウンタは、タイマからの周期信号に同期してカウント動作し、リフレッシュアドレス信号REFADを生成する。リフレッシュアドレス信号REFADは、リフレッシュ動作中にワード線を選択するために出力される。カウンタのビット数は、カウンタが一周したときに、ブロックMBD0-15、MBE0-7内の全てのワード線が選択される数に設定されている。
【００２７】
シフトレジスタは、縦続接続された２４個のラッチを有しており、最終段のラッチの出力は初段のラッチの入力に帰還されている。パワーオンリセット中に、ラッチの一つは高レベルにセットされ、残りのラッチは低レベルにリセットされる。シフトレジスタは、カウンタのオーバフロー毎にシフト動作し、リフレッシュ動作を実行するブロックMBD0-15、MBE0-7を示すためのリフレッシュポイント信号refpointd[15:0]、refpointe[7:0]をラッチからそれぞれ出力する。すなわち、シフトレジスタは、リフレッシュポイント信号refpointd[15:0]、refpointe[7:0]の一つを順次活性化する。このため、ブロックMBD0-15、MBE0-7の一つのみは、リフレッシュ動作を実行するリフレッシュブロックとして順次動作する。リフレッシュ要求生成回路は、リフレッシュポイント信号refpointd[15:0]、refpointe[7:0]の活性化期間に、周期信号に同期して、リフレッシュポイント信号refpointd[15:0]、refpointe[7:0]にそれぞれ対応するリフレッシュ要求信号refd[15:0]、refe[7:0]を出力する。
【００２８】
コマンドバッファ１６は、コマンド端子CMDを介してコマンド信号CMDを受信し、受信したコマンド信号CMDをアクセス制御回路１８に出力する。コマンド信号CMDは、例えば、チップイネーブル信号/CE、アウトプットイネーブル信号/OEおよびライトイネーブル信号/WE等の擬似SRAMの動作を制御する信号である。コマンド端子CMDを介して供給されるコマンドとして書き込み動作を実行するための書き込みコマンドおよび読み出し動作を実行するための読み出しコマンドがある。
【００２９】
アクセス制御回路１８は、コマンド信号CMDを解読し、解読結果に応じて読み出し動作を実行する読み出し要求信号rdd[15:0]、rde[7:0]、または書き込み要求信号wrd[15:0]、wde[7:0]を出力する。但し、アクセス制御回路１８は、リフレッシュポイント信号refpointd[15:0]、refpointe[7:0]のいずれかの活性化に応答して、対応する読み出し要求信号（rdd[15:0]、rde[7:0]のいずれか）の出力をマスクする。すなわち、読み出し動作は、リフレッシュブロックで禁止され、他のブロックで実行される。リフレッシュブロックの読み出し動作を常に禁止することで、アクセス制御回路１８の読み出し制御を簡易にできる。
【００３０】
データ入出力バッファ１４は、書き込み動作中に、データ端子DQ15-0を介して受信したデータ信号を入力データDIN[15:0]として出力し、読み出し動作中に、データ制御回路１２から供給される出力データDOUT[15:0]をデータ端子DQ15-0に出力する。
【００３１】
データ制御回路１２は、書き込み動作中に、入力データDIN[15:0]を書き込みデータwdat[15:0]としてメモリコア２４に出力し、同時に入力データDIN[15:0]から生成されるエラー訂正符号（書き込み符号データ）wecc[7:0]をメモリコア２４に出力する。また、データ制御回路１２は、読み出し動作中に、メモリコア２４から読み出しデータrdat[15:0]およびエラー訂正符号（読み出し符号データ）recc[7:0]を受け、リフレッシュブロックから読み出されるべき１ビットのデータを復号する。データ制御回路１２は、同時に、データ保持特性が悪くデータが失われたメモリセルからの読み出しデータ（１ビット）を復号する。エラー訂正された読み出しデータは、出力データDOUT[15:0]として出力される。
【００３２】
なお、書き込み要求信号wrd[15:0]、読み出し要求信号rdd[15:0]、リフレッシュポイント信号refpointd[15:0]、リフレッシュ要求信号refd[15:0]、書き込みデータwdat[15:0]、読み出しデータrdat[15:0]、入力データDIN[15:0]および出力データDOUT[15:0]のビット番号は、データブロックMBD15-0のブロック番号にそれぞれ対応する。同様に、書き込み要求信号wde[7:0]、読み出し要求信号rde[7:0]、リフレッシュポイント信号refpointe[7:0]、リフレッシュ要求信号refe[7:0]、エラー訂正符号wecc[7:0]およびエラー訂正符号recc[7:0]のビット番号は、符号ブロックMBE7-0のブロック番号にそれぞれ対応する。
【００３３】
図２は、図１に示したデータ制御回路１２の詳細を示している。
【００３４】
データ制御回路１２は、メモリコア２４からの読み出しデータrdat[15:0]、recc[7:0]をエラー訂正するデータ訂正部１２ａおよびメモリコア２４への入力データDIN[15:0]からエラー訂正符号を生成するデータ符号化部１２ｂを有している。データ訂正部１２ａは、データ付加回路２６およびエラー訂正回路１２ｃを有している。エラー訂正回路１２ｃは、符号化回路２８、３０、エラー判定回路３２、３４およびエラー復号回路３６を有している。データ符号化部１２ｂは、符号化回路３８を有している。
【００３５】
データ付加回路２６は、読み出し動作を実行できないリフレッシュブロックとして動作しているデータブロック（MBD0-15のいずれか）からの読み出しデータを"論理１"および"論理０"と仮定して、読み出しデータrdat0[15:0]、rdat1[15:0]をそれぞれ生成する。あるいは、データ付加回路２６は、読み出し動作を実行できないリフレッシュブロックとして動作している符号ブロック（MBE0-7のいずれか）からのエラー訂正符号を"論理１"および"論理０"と仮定して、読み出しデータrecc0[7:0]、recc1[7:0]を生成する。すなわち、データ付加回路２６は、リフレッシュブロックから読み出されるべきデータを"論理１"または"論理０"の予想データとして、他のブロックからの読み出しデータに付加し、読み出しデータ列rdat0[15:0]、recc0[7:0]および読み出しデータ列rdat1[15:0]、recc1[7:0]を生成する。
【００３６】
符号化回路２８は、読み出しデータrdat0[15:0]（情報データ列）からエラー訂正符号rrecc0[7:0]（第１符号データ）を生成する。符号化回路３０は、読み出しデータrdat1[15:0]（情報データ列）からエラー訂正符号rrecc1[7:0]（第２符号データ）を生成する。
【００３７】
エラー判定回路３２は、エラー訂正符号rrecc0[7:0]をエラー訂正符号recc0[7:0]（符号データ）と比較することでエラーの有無およびエラーの種類を判定し、判定結果を比較結果信号res0として出力する。エラー判定回路３４は、エラー訂正符号rrecc1[7:0]をエラー訂正符号recc1[7:0]（符号データ）と比較することでエラーの有無およびエラーの種類を判定し、判定結果を比較結果信号res1として出力する。比較結果信号res0、res1は、一致（エラー無し）、ECCエラー（符号ブロックMBDの１ビットエラー；符号エラー）、１ビットエラー（データブロックMBEの１ビットエラー）、２ビット以上のエラーのいずれかをそれぞれ示す。エラー項目の詳細は、後述する図８、図９で説明する。
【００３８】
エラー復号回路３６は、比較結果信号res0、res1が示すエラー内容に応じて、比較結果信号res0、res1のどちらが真かを判定し、判定した比較結果信号res0またはres1に応じて読み出しデータのエラーを訂正し、出力データ[15:0]として出力する。出力データ[15:0]は、データ端子DQ15-0を介して擬似SRAMの外部に出力される。比較結果信号res0が真と判定された場合、リフレッシュブロックから読み出されるべきデータは、"論理０"である。比較結果信号res1が真と判定された場合、リフレッシュブロックから読み出されるべきデータは、"論理１"である。
【００３９】
データ符号化部１２ｂの符号化回路３８は、入力データ[15:0]（書き込みデータ）からエラー訂正符号wecc[7:0]を生成し、書き込みデータwdat[15:0]とともにメモリコア２４に出力する。
【００４０】
図３は、図１に示したリフレッシュ制御回路２０の動作を示している。
【００４１】
リフレッシュ制御回路２０は、リフレッシュポイント信号refpointd[15:0]、refpointe[7:0]を順次高レベルに活性化する。各リフレッシュポイント信号refpointd[15:0]、refpointe[7:0]の活性化間隔（例えば、リフレッシュポイント信号refpointd[0]の活性化間隔T1は、ワーストのメモリセルのデータリテンション時間より長く設定されている。データリテンション時間は、メモリセルがデータを失うことなく保持できる時間である。
【００４２】
活性化間隔T1は、各メモリセルのリフレッシュ間隔にも対応している。このため、この実施形態では、ワーストのメモリセルは、リフレッシュ動作を実行するときに既にデータを消失する。しかし、失われたデータは、データ制御回路１２のエラー訂正機能により復号できる。このため、メモリセルのリフレッシュ間隔を長くでき、リフレッシュ要求間隔およびリフレッシュ動作間隔を長くできる。この結果、特に、スタンバイ期間の消費電力を削減できる。
【００４３】
図４は、図１に示したリフレッシュ制御回路２０の動作の詳細を示している。図４の波形は、図３に一点鎖線で示した領域に対応する。
【００４４】
例えば、リフレッシュ制御回路２０は、リフレッシュポイント信号refpointe[7]の活性化期間T2に、対応するデータブロックMBD7のリフレッシュ要求信号refe[7]を所定回数高レベルに活性化する。このように、リフレッシュ要求に応答するリフレッシュ動作は、活性化されたリフレッシュポイント信号refpointe（またはrefpointd）に対応するブロックMBE（またはMBD）でのみ実行される。換言すれば、同時にアクセスされる２４個のブロックMBD15-0、MBE7-0のうち、常に一つのブロックのみが、リフレッシュ動作を実行するリフレッシュブロックとして動作する。
【００４５】
リフレッシュ要求信号refe[7]の活性化回数は、ブロックMBEのメモリセルを全てリフレッシュするために必要な回数である。例えば、リフレッシュ要求毎に１本のワード線が選択される場合、活性化回数は、各ブロックのワード線の本数に等しい。リフレッシュポイント信号refpointd[15:0]、refpointe[7:0]は、リフレッシュブロックの最後のリフレッシュ要求信号refd（またはrefe）の出力から次のリフレッシュブロックの最初のリフレッシュ要求信号refd（またはrefe）の出力までに切り替えられる。最後のリフレッシュ要求信号の出力からリフレッシュポイント信号の切り替えまでの期間T3は、リフレッシュ要求と書き込み要求とが競合したときの処理に必要である。期間T3については、後述する図６で説明する。
【００４６】
図５は、第１の実施形態の読み出し動作の概要を示している。図５の波形は、図４に一点鎖線で示した領域に対応する。
【００４７】
この例では、擬似SRAMは、コマンド端子CMDから読み出しコマンドを連続して受信し、読み出し動作を連続して実行する。図１に示したアクセス制御回路１８は、リフレッシュポイント信号refpointd[15:0]、refpointe[7:0]のいずれかの活性化を受けている間、対応する読み出し要求信号rdd[15:0]、rde[7:0]の出力をマスクする。このため、リフレッシュブロックでは、読み出し動作は実行されず、リフレッシュ動作のみが実行される。読み出し動作を実行しないリフレッシュブロックから読み出されるべきデータは、他のブロックからの読み出しデータにより復号される。このため、読み出し動作は、リフレッシュ動作により遅れない。すなわち、読み出しアクセス時間を長くすることなくリフレッシュ動作を外部に対して完全に隠すことができる。
【００４８】
図６は、第１の実施形態の書き込み動作の概要を示している。
【００４９】
この例では、擬似SRAMは、コマンド端子CMDから書き込みコマンドを連続して受信し、書き込み動作を連続して実行する。ブロックMBD15-0、MBE7-0は、書き込み要求信号wrd[15:0]、wre[7:0]に応答して書き込み信号wrzをそれぞれ生成し、書き込み動作を実行する。書き込み信号wrzの高レベル期間は、ブロックMBD15-0、MBE7-0の書き込み動作時間を示す。
【００５０】
書き込み要求に応答する書き込み動作は、全てのブロックMBD15-0、MBE7-0で実行される。このため、リフレッシュ要求（refdまたはrefe）と書き込み要求（wrdまたはwre）との競合が発生する。図１に示したアクセス制御回路１８は、リフレッシュ要求と書き込み要求とが競合したとき、リフレッシュ動作を優先して実行する（図６（ａ））。アクセス制御回路１８は、リフレッシュ動作の完了後、待たせていた書き込み要求に対応する書き込み動作を順次実行する（図６（ｂ））。
【００５１】
書き込みコマンドの最小供給間隔（wrdの出力間隔；外部書き込みサイクル時間）は、メモリコア２４の書き込み動作時間（wrzの最小出力間隔；内部書き込みサイクル時間）より長く設計されている。このため、リフレッシュ動作の割り込みに伴う書き込み動作の遅れは、書き込み動作を所定回数連続して実行することで、取り戻せる。この例では、あるリフレッシュブロックの最後のリフレッシュ要求信号refd（またはrefe）から次のリフレッシュブロックに切り替わるまでの切り替え時間T4の間に、８回の外部書き込みサイクル時間が挿入可能であり、かつ１回のリフレッシュ動作と８回の書き込み動作を実行できる。切り替え時間T4は、リフレッシュ動作の割り込みに伴う書き込み動作の遅れを取り戻すまでの回復時間である。このため、書き込みコマンドが連続して供給される場合にも、リフレッシュブロックの書き込み動作は、そのリフレッシュブロックが切り替わる前に必ず完了できる。
【００５２】
この結果、リフレッシュブロックから通常のデータブロックまたは符号ブロックに切り替わった直後に、読み出しコマンドが供給される場合にも、読み出しデータの出力が遅れることを防止できる。すなわち、読み出しアクセス時間および読み出しサイクル時間が、書き込み動作の影響を受けて長くなることを防止できる。なお、切り替え時間T4は、外部書き込みサイクル時間Tcyceと内部書き込みサイクル時間Tcyciとの差をδとするとき、（Tcyce／δ）×Tcyce以上であればよい。
【００５３】
また、切り替え時間T4は、次式（１）の関係を満たすように設計してもよい。差δは、切り替え時間T4を内部書き込みサイクル時間Tcyciに対して十分に大きく設定できる場合、無視できる程度になる。このため、外部書き込みサイクル時間Tcyceを内部書き込みサイクル時間Tcyciとほぼ等しくできる。すなわち、リフレッシュ動作を書き込み動作に優先して実行するためのアクセスペナルティは、ほとんどない。
(T4/Tcyci)−(T4/(Tcyci+δ))≧Tcyci  ‥‥‥（１）
図７は、第１の実施形態のパリティ符号の生成規則を示している。
【００５４】
この実施形態では、最小ハミング距離が"４"の水平垂直パリティが、エラー訂正符号として採用されている。パリティは、偶数パリティ、奇数パリティのいずれでもよい。この符号は、１ビットのエラーを訂正し、同時に２ビットのエラーを検出できる。
【００５５】
データブロックMBD0-15内の同じアドレスに対応するデータを４行４列で示すとき、データブロックMBD0-15は、行アドレスL1-L0および列アドレスC1-C0でそれぞれ表すことができる。例えば、データブロックMBD0は、L1-L0＝"00"、C1-C0＝"00"で表せ、データブロックMBD10は、L1-L0＝"10"、C1-C0＝"10"で表せる。
【００５６】
例えば、符号ブロックMBE0には、行アドレスL0が"0"のデータブロックMBD0-3、8-11のパリティが格納される（パリティLP0）。符号ブロックMBE1には、行アドレスL0が"1"のデータブロックMBD4-7、12-15のパリティが格納される（パリティLP1）。符号ブロックMBE2には、行アドレスL1が"0"のデータブロックMBD0-5のパリティが格納される（パリティLP2）。符号ブロックMBE3には、行アドレスL1が"1"のデータブロックMBD8-15のパリティが格納される（パリティLP3）。
【００５７】
同様に、符号ブロックMBE4には、列アドレスC0が"0"のデータブロックMBD0、4、8、12、2、6、10、14のパリティが格納される（パリティCP0）。符号ブロックMBE5には、列アドレスC0が"1"のデータブロックMBD1、5、9、13、3、7、11、15のパリティが格納される（パリティCP1）。符号ブロックMBE6には、列アドレスC1が"0"のデータブロックMBD0、4、8、12、1、5、9、13のパリティが格納される（パリティCP2）。符号ブロックMBE7には、列アドレスC1が"1"のデータブロックMBD2、6、10、14、3、7、11、15のパリティが格納される（パリティCP3）。
【００５８】
上述した水平垂直パリティ符号は、符号化する情報データが１６ビット（本実施形態）、３２ビット、６４ビット、１２８ビット、２５６ビットのとき、それぞれ８ビット、１０ビット、１２ビット、１４ビット、１６ビット必要になる。すなわち、情報ビットが２のｎ乗のとき、符号データは２ｎビット必要になる。これに対して、一般的な水平垂直パリティ符号は、符号化する情報データが１６ビット、３２ビット、６４ビット、１２８ビット、２５６ビットのとき、それぞれ８ビット、１２ビット、１６ビット、２４ビット、３２ビット必要になる。このため、上述した水平垂直パリティ符号は、特に、情報データが３２ビット以上のときに符号ブロックの数を一般の水平垂直パリティ符号より減らすことができる。
【００５９】
図８は、図２に示したエラー判定回路３２、３４の動作の概要を示している。ここでは、符号ブロックMBE0-7から読み出されたエラー訂正符号recc[0:7]をlp[0:3]、cp[0:3]と表し、データブロックMBD0-7から読み出されるデータに応じて図２に示した符号化回路２８（または３０）により生成されるエラー訂正符号rrecc0[0:7]（またはrrecc1[0:7]）をLP[0:3]、CP[0:3]と表す。
【００６０】
まず、ステップS10において、cp[0:3]とCP[0:3]、lp[0:3]とLP[0:3]とがそれぞれ比較される。cp[0:3]とCP[0:3]、lp[0:3]とLP[0:3]が両方とも一致する場合、エラー無しと判定され、処理はステップS20に移行する。cp[0:3]とCP[0:3]、lp[0:3]とLP[0:3]の少なくともいずれかが一致しない場合、エラー有りと判定され、処理はステップS30に移行する。ステップS20において、エラー無しを示す比較結果信号res0（またはres1）＝"1000"が出力され、処理は終了する。
【００６１】
ステップS30において、次式（２）〜（５）が全て成立するか否かが判定される。全ての式が成立する場合、１ビットエラーと判定され、処理はステップS50に移行する。少なくともいずれかの式が不成立の場合、２ビット以上のエラーと判定され、処理はステップS40に移行する。ステップS40において、２ビット以上のエラーを示す比較結果信号res0（またはres1）＝"0001"が出力され、処理は終了する。
cp[0]+cp[1]+CP[0]+CP[1]=1  ‥‥‥（２）
cp[2]+cp[3]+CP[2]+CP[3]=1  ‥‥‥（３）
lp[0]+lp[1]+LP[0]+LP[1]=1  ‥‥‥（４）
lp[2]+lp[3]+LP[2]+LP[3]=1  ‥‥‥（５）
ステップS50において、cp[0:3]とCP[0:3]、lp[0:3]とLP[0:3]とがそれぞれ比較される。これ等８ビットの比較のうち、１ビットのみ不一致の場合、ECCコードエラーと判定され、処理はステップS60に移行する。それ以外の場合、１ビットエラーと決定され、処理はステップS70に移行する。ステップS60において、ECCコードエラーを示す比較結果信号res0（またはres1）＝"0100"が出力され、処理は終了する。ステップS70において、１ビットエラーを示す比較結果信号res0（またはres1）＝"00100"が出力され、処理は終了する。
【００６２】
図９は、図２に示したエラー復号回路３６の動作の概要を示している。
【００６３】
エラー復号回路３６は、エラー判定回路３２、３４から比較結果信号res0、res1を受信する。比較結果信号res0、res1は、図８に示したように、エラーの内容により、２進数の"1000（エラー無し）"、"0100（ECCエラー；符号ブロックの１ビットエラー）"、"0010（１ビットエラー；データブロックの１ビットエラー）"、"0001（２ビット以上のエラー）"のいずれかを示す。
【００６４】
図９（ａ）、（ｂ）、（ｃ）は、データブロックMBD0-15のいずれかがリフレッシュブロックとして動作し、このリフレッシュブロックから読み出されるべきデータが"論理０"の場合を示している。図９（ａ）において、読み出し動作でエラーがない場合、リフレッシュブロックからの読み出しデータを"論理0"とした比較結果信号res0は、エラー無しを示し、リフレッシュブロックからの読み出しデータを"論理1"とした比較結果信号res1は、１ビットエラー（リフレッシュブロックのみエラー）を示す。
【００６５】
図９（ｂ）において、読み出し動作でリフレッシュブロックを除くデータブロックMBD0-15のいずれかに１ビットエラーがある場合、比較結果信号res0は、１ビットエラーを示し、比較結果信号res1は、２ビット以上のエラー（リフレッシュブロックの１ビットおよびデータブロックの１ビットエラー）を示す。図９（ｃ）において、読み出し動作で符号ブロックMBE0-7のいずれかに１ビットエラーがある場合、比較結果信号res0は、ECCエラーを示し、比較結果信号res1は、２ビット以上のエラー（リフレッシュブロックの１ビットおよびECCエラー）を示す。
【００６６】
図９（ｄ）、（ｅ）、（ｆ）は、データブロックMBD0-15のいずれかがリフレッシュブロックとして動作し、このリフレッシュブロックから読み出されるべきデータが"論理１"の場合を示している。図９（ｄ）、（ｅ）、（ｆ）では、リフレッシュブロックから読み出されるべきデータの論理値は、図９（ａ）、（ｂ）、（ｃ）と逆になる。このため、比較結果信号res0、res1は、図９（ａ）、（ｂ）、（ｃ）の逆になる。
【００６７】
図９（ｇ）、（ｈ）、（ｉ）は、符号ブロックMBE0-7のいずれかがリフレッシュブロックとして動作し、このリフレッシュブロックから読み出されるべきデータが"論理０"の場合を示している。図９（ｇ）において、読み出し動作でエラーがない場合、リフレッシュブロックからの読み出しデータを"論理0"とした比較結果信号res0は、エラー無しを示し、リフレッシュブロックからの読み出しデータを"論理1"とした比較結果信号res1は、ECCエラー（リフレッシュブロックのみエラー）を示す。
【００６８】
図９（ｈ）において、読み出し動作でデータブロックMBD0-15のいずれかに１ビットエラーがある場合、比較結果信号res0は、１ビットエラーを示し、比較結果信号res1は、２ビット以上のエラー（リフレッシュブロックの１ビットおよびデータブロックの１ビットエラー）を示す。図９（ｉ）において、読み出し動作でリフレッシュブロックを除く符号ブロックMBE0-7のいずれかに１ビットエラーがある場合、比較結果信号res0は、ECCエラーを示し、比較結果信号res1は、２ビット以上のエラー（リフレッシュブロックの１ビットおよびECCエラー）を示す。
【００６９】
図９（ｊ）、（ｋ）、（ｌ）は、符号ブロックMBE0-7のいずれかがリフレッシュブロックとして動作し、このリフレッシュブロックから読み出されるべきデータが"論理１"の場合を示している。図９（ｊ）、（ｋ）、（ｌ）では、リフレッシュブロックから読み出されるべきデータの論理値は、図９（ｇ）、（ｈ）、（ｉ）と逆になる。このため、比較結果信号res0、res1は、図９（ｇ）、（ｈ）、（ｉ）の逆になる。
【００７０】
エラー復号回路３６は、比較結果信号res0、res1のいずれかを真のエラーとし、この結果に基づいてエラーを訂正する。この際、エラー復号回路３６は、エラー判定の優先度を高い順から、エラー無し＞ECCエラー＞１ビットエラー＞２ビット以上のエラーとする。すなわち、エラーの少ない比較結果信号res0、res1のいずれかが真とされる。このため、図９（ａ）、（ｄ）、（ｇ）、（ｊ）では、エラー無しと判定される。図９（ｂ）、（ｅ）、（ｈ）、（ｋ）では、１ビットエラーと判定される。図９（ｃ）、（ｆ）、（ｉ）、（ｌ）では、ECCエラーと判定される。
【００７１】
エラー復号回路３６は、優先度の高い比較結果信号res0、res1に対応する論理値をリフレッシュブロックから読み出されるべきデータの論理値とし、出力データDOUT[15:0]として出力する。具体的には、res0の優先度がres1より高い場合、リフレッシュブロックに対応する出力データDOUTのビットは、"論理０"に設定される。res1の優先度がres0より高い場合、リフレッシュブロックに対応する出力データDOUTのビットは、"論理１"に設定される。
【００７２】
さらに、エラー復号回路３６は、データブロックMBD0-15のいずれかに１ビットエラーが存在すると判定した場合、このエラーを訂正する。エラーのあるデータブロックMBD0-15（１ビットエラーを発生しているエラーアドレス）は、次式（６）、（７）にエラー訂正符号recc[0:7]を代入して求められる。例えば、(L1,L0)＝"01"、(C1,C0)＝"11"の場合、図７に示したように、エラーブロックは、データブロックMBD7である。このとき、エラー復号回路３６は、データブロックMBD7から読み出されたデータの論理値を反転してデータ出力バッファ１４に出力する。なお、この実施形態では、エラーを訂正したデータは、ブロックに書き込まれない。これは、１ビットエラーおよびECCエラーは、そのメモリセルのデータリテンション時間の不足あるいは物理的な不良と考えられるためである。この種のエラーに対してメモリセルに正しいデータを書き込んでも、エラーは再び発生するため、処理時間の無駄になる。
(L1,L0)=(lp[3]+LP[3], lp[1]+LP[1])‥‥‥（６）
(C1,C0)=(cp[3]+CP[3], cp[1]+CP[1])‥‥‥（７）
図１０は、第１の実施形態の読み出し動作の一例（シミュレーション結果）を示している。
【００７３】
この例では、データブロックMBD10がリフレッシュブロックとして動作する（図１０（ａ））。擬似SRAMは、読み出しコマンドRDZとともに、１６進数の"０"から"Ｆ"のロウアドレスMBADを読み出しアドレスとして順次受け、読み出し動作を連続して実行する（図１０（ｂ））。
【００７４】
読み出しアドレス"０"、"１"、"２"、...、"Ｄ"、"Ｅ"、"Ｆ"が示すデータブロックMBD0-15のメモリセルには、予め１６進数のデータ"0000"、"1111"、"2222"、...、"DDDD"、"EEEE"、"FFFF"がそれぞれ書き込まれている。読み出しアドレス"０"、"１"、"２"、...、"Ｄ"、"Ｅ"、"Ｆ"が示す符号ブロックMBE0-7のメモリセルには、予め１６進数のデータ"00"が書き込まれている。しかし、この例では、符号ブロックMBE6に１ビットエラー（ECCエラー）が発生するため、読み出しデータrecc[7:0]は、１６進数の"40"になる（図１０（ｃ））。なお、実際の異なるアドレスの読み出し動作において、符号ブロックMBE6に連続して１ビットエラーが発生することはまれである。
【００７５】
図１に示したリフレッシュ制御回路２０は、読み出しアドレス"２"の読み出し動作中に、リフレッシュ要求信号refd[10]を出力する（図１０（ｄ））。メモリコア２４は、リフレッシュ要求信号refd[10]に応答して、データブロックMBD10のリフレッシュ動作を実行する。
【００７６】
リフレッシュブロックとして動作するデータブロックMBD10からデータは読み出されないため、読み出しデータrdat[15:0]の第１０ビットは、例えば"論理０"として読み出される。このため、第１０ビットの期待値が"論理１"のとき（例えば、"4444"、"5555"など）、リフレッシュブロックの読み出しエラーが発生する。このとき、エラー復号回路３６は、２ビット以上のエラーを示す比較結果信号res0（"0001"）と、ECCエラーを示す比較結果信号res1（"0100"）を受け、比較結果信号res1の優先度が高いと判定し、ECCエラーの発生を検出する（図１０（ｅ、ｆ））。
【００７７】
また、エラー復号回路３６は、比較結果信号res1の優先度が高いため、リフレッシュブロックから読み出されるべきデータの論理値を"論理１"と判定し、アシュームフラグASMFLGを"論理１"にセットする（図１０（ｇ、ｈ））。アシュームフラグASMFLGは、エラー復号回路３６内で使用される内部信号である。アシュームフラグASMFLGのセットにより、出力データ[15:0]の第１０ビットは、"論理１"に設定される。すなわち、読み出し動作を実行しないリフレッシュブロックからのデータが再生される。
【００７８】
一方、読み出しデータrdat[15:0]の第１０ビットの期待値が"論理０"のとき（例えば、"0000"、"1111"、"2222"、"3333"など）、リフレッシュブロックの読み出しエラーは発生しない。このとき、エラー復号回路３６は、ECCエラーを示す比較結果信号res0（"0100"）と、２ビット以上のエラーを示す比較結果信号res1（"0001"）を受け、比較結果信号res0の優先度が高いと判定し、ECCエラーの発生を検出する（図１０（ｉ、ｊ、ｋ））。
【００７９】
また、エラー復号回路３６は、比較結果信号res0の優先度が高いため、リフレッシュブロックから読み出されるべきデータの論理値を"論理０"と判定し、アシュームフラグASMFLGを"論理０"にセットする（図１０（ｌ、ｍ、ｎ））。アシュームフラグASMFLGにセットにより、出力データ[15:0]の第１０ビットは、"論理０"に設定される。すなわち、読み出し動作を実行しないリフレッシュブロックからのデータが再生される。
【００８０】
図１１は、第１の実施形態の読み出し動作の別の例（シミュレーション結果）を示している。図１０と同じ動作については、詳細な説明を省略する。
【００８１】
この例では、図１０と同様に、擬似SRAMは、読み出しコマンドRDZとともに、１６進数の"０"から"Ｆ"のロウアドレスMBADを読み出しアドレスとして順次受け、読み出し動作を連続して実行する（図１１（ａ））。リフレッシュブロックは、連続する読み出し動作の途中で、データブロックMBD10からデータブロックMBD11に切り替わる（図１１（ｂ））。データブロックMBD0-15、符号ブロックMBE0-7に予め書き込まれているデータは、図１０と同じである。この例では、データブロックMBD12に１ビットエラーが発生し、読み出しデータrdat[15:0]の第１２ビットは、読み出し動作毎に"０"および"１"に変化する。なお、実際の異なるアドレスの読み出し動作において、符号ブロックMBD12に連続して１ビットエラーが発生することはまれである。
【００８２】
リフレッシュブロックとして動作するデータブロックMBD10からデータは読み出されないため、読み出しデータrdat[15:0]の第１０ビットは、例えば"論理０"として読み出される。同様に、リフレッシュブロックとして動作するデータブロックMBD11からデータは読み出されないため、読み出しデータrdat[15:0]の第１１ビットは、例えば"論理１"として読み出される。
【００８３】
上述した図１０と同様に、データ制御回路１２のエラー判定回路３２、３４は、読み出しデータrdat[15:0]およびエラー訂正符号recc[7:0]から比較結果信号res0、res1を生成する。比較結果信号res0、res1は、２ビット以上のエラー（"0001"）またはデータブロックの１ビットエラー（"0010"）を示す。エラー復号回路３６は、比較結果信号res0、res1に基づいて、リフレッシュ動作の実行により読み出せないデータを再生する。また、エラー復号回路３６は、上述の式（６）、（７）に示したように、エラー訂正符号recc[7:0]から１ビットエラーが発生したブロックアドレスを求め、そのブロックアドレスから読み出されたデータを反転する。すなわち、データブロックMBD12で発生した１ビットエラーが訂正される。
【００８４】
以上、本実施形態では、リフレッシュブロックから読み出されるべき予想データ（論理１、論理０）を、他のブロックから読み出されるデータにそれぞれ付加して２つの読み出しデータ列rdat0、rdat1を生成するデータ付加回路２６と、読み出しデータ列rdat0、rdat1についてそれぞれエラーを検出し、これ等のエラー検出結果から最も確からしい一つを真とするエラー訂正回路１２ｃとを擬似SRAMに構成した。このため、擬似SRAMをアクセスするシステムに対してリフレッシュ動作を隠すことができ、同時にリフレッシュブロック以外で発生した１ビットエラーを訂正できる。これは、最小ハミング距離が"４"の水平垂直パリティ符号を使用することで可能になる。
【００８５】
リフレッシュ動作を読み出し要求と競合することなく隠すことができるため、読み出しサイクル時間が長くなることを防止できる。また、リフレッシュ要求間隔を延ばすことができ、スタンバイ中の消費電力を削減できる。したがって、ＡＣ特性およびＤＣ特性の両方をSRAMと同等以下にできる擬似SRAMを構成できる。換言すれば、SRAMと完全に互換性を有する擬似SRAMをユーザに提供できる。ユーザは、システム上に搭載されるSRAMを本発明の擬似SRAMに置き換えるだけで、コストを削減できる。
【００８６】
リフレッシュ制御回路２０が出力するリフレッシュポイント信号refpointd[15:0]、refpointd[7:0]により、データブロックMBD0-15および符号ブロックMBE0-7のいずれか１つのみをリフレッシュブロックに設定した。リフレッシュ動作により読み出せないデータを常に１ビットにできるため、リフレッシュ動作により読み出せないデータを、簡易なデータ付加回路２６およびエラー訂正回路１２ｃによって復号できる。
【００８７】
アクセス制御回路１８は、リフレッシュブロックに対して読み出し要求信号rdd、rdeを出力しないため、リフレッシュブロックは、リフレッシュ動作の実行中、非実行中にかかわらず読み出し動作を実行しない。このため、ブロック制御回路BCNTの読み出し制御を容易にできる。
【００８８】
ブロック制御回路BCNTは、リフレッシュ要求信号refd（またはrefe）と書き込み要求信号wrd（またはwre）が競合するときに、リフレッシュ動作を実行した後に、書き込み動作を遅れて実行する。このため、書き込みデータwdat（またはwecc）をリフレッシュブロックに対して確実に書き込むことができる。
【００８９】
書き込みコマンドの最小供給間隔である外部書き込みサイクル時間Tcyceを、内部書き込みサイクル時間Tcyciより長く設定した。具体的には、８回の外部書き込みサイクル時間Tcyceの間に、１回のリフレッシュ動作と８回の書き込み動作を実行可能にした。このため、リフレッシュ動作の優先により発生した書き込み動作の遅れを徐々に取り戻すことができる。すなわち、書き込みデータをリフレッシュブロックに確実に書き込むことができる。
【００９０】
また、リフレッシュブロックの最後のリフレッシュ要求信号から次のリフレッシュブロックに切り替わるまでの切り替え期間に、８回の外部書き込みサイクル時間Tcyceを挿入可能とした。このため、あるブロックにおいてリフレッシュ要求により遅れた書き込み動作は、そのブロックがリフレッシュブロックの間に完了する。したがって、読み出し動作が、リフレッシュブロック中の書き込み動作の遅れの影響を受けて遅れることを防止でき、リフレッシュ動作と書き込み動作の競合に伴い読み出しアクセス時間が増加することを防止できる。
【００９１】
エラー訂正回路１２ｃは、４種類のエラー項目を検出し（エラー無し、データブロックのいずれかの１ビットエラー、符号ブロックのいずれかの１ビットエラーである符号エラーおよび２ビット以上のエラー）、優先度の高いエラー項目を真とする。このため、簡易な論理でエラー訂正回路１２ｃを構成できる。
【００９２】
データブロックMBD0-15を、データ端子DQ0-15にそれぞれ対応して形成することで、擬似SRAMに一度に入出力されるデータ単位でエラーを訂正できる。このため、符号データの生成および読み出しデータのエラー訂正の論理を簡易にでき、読み出しサイクル時間および書き込みサイクル時間が増加することを防止できる。
【００９３】
図１２は、本発明の半導体メモリの第２の実施形態を示している。第１の実施形態で説明した回路・信号と同一の回路・信号については、同一の符号を付し、これ等については、詳細な説明を省略する。
【００９４】
この実施形態の半導体メモリは、シリコン基板上にCMOSプロセスを使用してクロック非同期式の擬似SRAMとして形成されている。すなわち、擬似SRAMは、クロック信号を受けるクロック端子を持っていない。また、この実施形態では、後述する図１３、図１４に示すように、拡大ハミング符号がエラー訂正符号として使用される。この拡大ハミング符号の最小ハミング距離は、"４"であり、１ビットのエラー訂正と、２ビットのエラー検出とを同時にできる。
【００９５】
擬似SRAMは、第１の実施形態のデータ制御回路１２、アクセス制御回路１８、リフレッシュ制御回路２０およびメモリコア２４の代わりに、データ制御回路１２Ａ、アクセス制御回路１８Ａ、リフレッシュ制御回路２０Ａおよびメモリコア２４Ａを有している。また、擬似SRAMは、クロック信号OSCを生成する発振器４０Ａを新たに有している。
【００９６】
メモリコア２４Ａは、データ端子DQ15-0にそれぞれ対応する１６個のデータブロックMBD0-15、６ビットの誤り訂正符号の各ビットをそれぞれ保持する６個の符号ブロックMBE0-5およびブロック制御回路BCNTを有している。データブロックMBD0-15および符号ブロックMBE0-5の構造、メモリ容量は、第１の実施形態と同じである。すなわち、各ブロックMBD0-15、MBE0-5は、ダイナミックメモリセルと、これ等ダイナミックメモリセルに接続されたワード線、ビット線とを有している。
【００９７】
拡大ハミング符号は、符号化する情報データが１６ビット（本実施形態）、３２ビット、６４ビット、１２８ビット、２５６ビットのとき、それぞれ６ビット、７ビット、８ビット、９ビット、１０ビット必要になる。すなわち、情報ビットが２のｎ乗のとき、符号データはｎ＋２ビット必要になる。このため、拡大ハミング符号は、上述した水平垂直パリティ符号より符号化率が高く、符号ブロックMBEの数を減らすことができる。また、符号ブロックMBEに配線される信号線を減らすことができる。この結果、擬似SRAMのチップサイズを削減できる。
【００９８】
発振器４０Ａは、パワーオン後、所定の周期のクロック信号OSCを自己発振する。この実施形態では、クロック信号OSCの周波数は、第１の実施形態のクロック信号CLKの周波数と同じに設定されている。
【００９９】
リフレッシュ制御回路２０Ａは、リフレッシュポイント信号refpointd[15:0]、refpointe[7:0]およびリフレッシュ要求信号refd[15:0]、refe[7:0]の代わりに、リフレッシュポイント信号refpoint[21:0]およびリフレッシュ要求信号ref[21:0]を出力することを除き、第１の実施形態のリフレッシュ制御回路２０と同じである。すなわち、リフレッシュ制御回路２０Ａは、クロック信号OSCに同期して動作するタイマ、カウンタ、シフトレジスタおよびリフレッシュ要求生成回路を有している。シフトレジスタは、縦続接続された２２個のラッチを有しており、最終段のラッチの出力は初段のラッチの入力に帰還されている。シフトレジスタは、カウンタのオーバフロー毎にシフト動作し、リフレッシュ動作を実行するブロックMBD0-15、MBE0-5を示すためのリフレッシュポイント信号refpoint[21:0]をラッチからそれぞれ出力する。リフレッシュポイント信号refpoint[21:0]により選択されたブロックMBD0-15、MBE0-5の一つは、リフレッシュ動作を実行するリフレッシュブロックとして動作する。リフレッシュ要求生成回路は、リフレッシュポイント信号refpoint[21:0]の活性化期間に、周期信号に同期して対応するリフレッシュ要求信号ref[21:0]を出力する。
【０１００】
リフレッシュ制御回路２０Ａの動作は、信号名が異なることを除き、図３および図４と同じである。すなわち、各リフレッシュポイント信号refpoint[21:0]の活性化間隔T1（各メモリセルのリフレッシュ間隔に対応）は、ワーストのメモリセルのデータリテンション時間より長く設定されている。ワーストのメモリセルは、リフレッシュ動作を実行するときに既にデータを消失する。しかし、失われたデータは、データ制御回路１２Ａのエラー訂正機能により復号できる。この結果、第１の実施形態と同様にスタンバイ期間の消費電力を削減できる。
【０１０１】
アクセス制御回路１８Ａは、コマンド信号CMDを解読し、解読結果に応じて読み出し動作を実行する読み出し要求信号rd[21:0]または書き込み要求信号wr[21:0]を出力する。但し、アクセス制御回路１８Ａは、リフレッシュポイント信号refpoint[21:0]のいずれかの活性化を受けたとき、対応する読み出し要求信号rd[21:0]のいずれかの出力をマスクする。また、アクセス制御回路１８Ａは、リフレッシュ要求信号ref[21:0]のいずれかを受けたとき、対応する書き込み要求信号wr[21:0]のいずれかを、リフレッシュ動作が挿入される期間だけ順次遅らせて出力する。
【０１０２】
データ制御回路１２Ａは、書き込み動作中に、入力データDIN[15:0]を書き込みデータwdat[21:0]としてメモリコア２４Ａに出力する。書き込みデータwdat[21:0]の上位６ビット[21:16]は、入力データDIN[15:0]から生成されるエラー訂正符号（書き込み符号データ）である。また、データ制御回路１２は、読み出し動作中に、メモリコア２４から読み出しデータrdat[21:0]を受け、リフレッシュ動作により読み出させないデータおよびデータ保持特性が悪くデータが失われたメモリセルからの読み出しデータをエラー訂正し、出力データDOUT[15:0]として出力する。読み出しデータrdat[21:0]の上位６ビット[21:16]は、符号ブロックMBE21-16から読み出されるエラー訂正符号（読み出し符号データ）である。また、データ制御回路１２Ａは、読み出し動作中に訂正が不可能な２ビット以上のエラーを検出したときに、ECCエラー信号ECCERRをエラー端子に出力する。
【０１０３】
なお、書き込み要求信号wr[21:0]、読み出し要求信号rd[21:0]、リフレッシュポイント信号refpoint[21:0]、リフレッシュ要求信号ref[21:0]、書き込みデータwdat[21:0]、読み出しデータrdat[21:0]のビットは、データブロックMBD15-0および符号ブロックMBE21-16にそれぞれ対応する。入力データDIN[15:0]および出力データDOUT[15:0]のビットは、データブロックMBD15-0のブロック番号にそれぞれ対応する。
【０１０４】
図１３は、図１２に示したデータ制御回路１２Ａの詳細を示している。
【０１０５】
データ制御回路１２Ａは、メモリコア２４Ａからの読み出しデータを訂正するデータ訂正部１２ｄおよびメモリコア２４Ａへの書き込みデータからエラー訂正符号を生成するデータ符号化部１２ｅを有している。データ訂正部１２ｄは、データ付加回路４２およびエラー訂正回路１２ｆを有している。エラー訂正回路１２ｆは、シンドローム生成回路４４、４６、エラー判定回路４８、５０およびエラー復号回路５２を有している。データ符号化部１２ｅは、符号化回路５４Ａを有している。
【０１０６】
データ付加回路４２は、読み出し動作を実行できないリフレッシュブロックとして動作するブロック（MBD0-15、MBE0-5のいずれか）からの読み出しデータを"論理１"および"論理０"と仮定して、読み出しデータ列code0[21:0]、code1[21:0]をそれぞれ生成する。データ付加回路４２は、リフレッシュポイント信号refpoint[21:0]によりリフレッシュブロックを判定する。すなわち、データ付加回路４２は、リフレッシュブロックから読み出されるべきデータを"論理１"または"論理０"の予想データとして、他のブロックからの読み出しデータに付加し、読み出しデータ列code0[21:0]、code1[21:0]を生成する。
【０１０７】
シンドローム生成回路４４は、読み出しデータcode0[21:0]からシンドロームsyn0[5:0]を生成する。また、シンドローム生成回路４４は、生成したシンドロームsyn0[5:0]からエラーの種別を判定し、比較結果信号res0として出力する。シンドローム生成回路４６は、読み出しデータcode1[21:0]からシンドロームsyn1[5:0]を生成する。また、シンドローム生成回路４６は、生成したシンドロームsyn1[5:0]からエラーの種別を判定し、比較結果信号res1として出力する。比較結果信号res0、res1の仕様は、第１の実施形態とほぼ同じである。但し、本実施形態では、「ECCエラー」はない。このため、エラー判定の優先度は、高い順からエラー無し＞１ビットエラー＞２ビット以上のエラーになる。
【０１０８】
エラー判定回路４８は、シンドロームsyn0[5:0]からエラーの種別およびエラーブロックを判定し、読み出しデータcode0[21:0]のエラーを訂正する。訂正された２２ビットの読み出しデータは、訂正コードccode0[21:0]として出力される。訂正された２２ビットの読み出しデータのうちメモリブロックMBD15-0に対応する下位の１６ビットは、出力データdout0[15:0]として出力される。また、エラー判定回路４８は、２ビット以上のエラーを検出したときに、エラーフラグ信号errflg_2b0を出力する。
【０１０９】
エラー判定回路５０は、エラー判定回路４８と同じ回路である。エラー判定回路５０は、シンドロームsyn1[5:0]からエラーの種別およびエラーブロックを判定し、読み出しデータcode1[21:0]のエラーを訂正し、訂正コードccode1[21:0]、出力データdout1[15:0]、エラーフラグ信号errflg_2b1を出力する。
【０１１０】
エラー復号回路５２は、比較結果信号res0、res1が示すエラー内容に応じて、エラー判定回路４８、５０のどちらが真かを判定し、判定したエラー判定回路４８（または５０）から出力される出力データdout0[15:0]（またはdout1[15:0]）、エラーフラグ信号errflg_2b0（またはerrflg_2b1）および訂正コードccode0[21:0]（またはccode1[21:0]）を、出力データDOUT[15:0]、ECCエラー信号ECCERRおよび訂正コードccode[21:0]として出力する。出力データDOUT[15:0]およびECCエラー信号ECCERRは、データ端子DQ15-0およびエラー端子ECCERRを介して擬似SRAMの外部に出力される。訂正コードccode[21:0]は、この実施形態では使用されないが、エラーの発生したメモリセルのデータを書き換える場合に使用される書き換えデータである。
【０１１１】
データ符号化部１２ｅの符号化回路５４Ａは、入力データDIN[15:0]（書き込みデータ）からエラー訂正符号wdat[21:16]を生成し、書き込みデータwdat[15:0]とともにメモリコア２４Ａに出力する。
【０１１２】
図１４〜図１７は、図１３に示したデータ制御回路１２Ａの一部の回路ブロックのRTL記述および論理合成結果を示している。記述中の"syndrome"は、図１３に示した"syn"に対応する。
【０１１３】
図１４は、図１３に示したエラー判定回路４８、５０のRTL記述を示している。図１５は、図１４のRTL記述から論理合成した結果を示している。図１６は、図１３に示したシンドローム生成回路４４、４６のシンドローム生成部のRTL記述を示している。図１７は、図１３に示したデータ符号化部１２ｅの符号化回路５４ＡのRTL記述を示している。
【０１１４】
図１８は、図１２に示したデータ制御回路１２Ａのエラー訂正動作を示している。
【０１１５】
図中のブロックD0-D15およびブロックP0-P5は、図１２に示したデータブロックMBD0-15および符号ブロックMBE16-21にそれぞれ対応する。ブロックD0-D15、P0-P5のビットアドレスE1-E22は、一般的なハミング符号と同様に、シンドロームのビットがエラーアドレスを示すように割り当てられている。
【０１１６】
この例では、データブロックMBD10（ブロックD10）がリフレッシュブロックとして動作している。このため、読み出しデータrdatのうちブロックD10に対応するビットは、網掛けの太枠で囲ったように不定である。図１３に示したデータ制御回路１２Ａのデータ付加回路４２は、ブロックD10に対応するビットに"論理０"を付加した読み出しデータcode0と、ブロックD10に対応するビットに"論理１"を付加した読み出しデータcode1とを生成する。
【０１１７】
シンドローム生成回路４４は、読み出しデータcode0からシンドロームsyn0[5:0]を生成する。シンドローム生成回路４４は、シンドロームsyn0[5:0]の全ビットS5-0が"論理０"のため、エラー無しを示す比較結果信号res0（"1000"）を出力する。シンドローム生成回路４６は、読み出しデータcode1からシンドロームsyn1[5:0]を生成する。シンドローム生成回路４６は、シンドロームsyn1[5:0]の最上位ビットS5が"論理１"のため、１ビットエラーを示す比較結果信号res1（"0010"）を出力する。
【０１１８】
エラー判定回路４８は、シンドローム生成回路４４からのシンドロームsyn0[5:0]がエラー無しを示すため、読み出しデータcode0[21:0]のうちデータブロックMBD15-0に対応するビットを出力データdout0[15:0]として出力する。エラー判定回路５０は、シンドローム生成回路４４からのシンドロームsyn1[5:0]が１ビットエラーを示すため、シンドロームsyn1[5:0]の下位５ビット（"01111"＝１０進の"１５"）をエラーアドレス（"E15"＝MBD10）とする。エラー判定回路５０は、読み出しデータcode1[21:0]のうちデータブロックMBD10から読み出されたデータの論理を反転し、データブロックMBD15-0に対応するビットを出力データdout1[15:0]として出力する。
【０１１９】
エラー復号回路５２は、シンドローム生成回路４４、４６からの比較結果信号res0（エラー無し）、res1（１ビットエラー）より、エラー判定回路４８の出力が正しいと判定する。エラー復号回路５２は、エラー判定回路４８から出力される出力データdout0[15:0]およびエラーフラグ信号errflg_2b0（エラー無しを示す）を出力データDOUT[15:0]およびECCエラー信号ECCERR（エラー無しを示す）として出力する。
【０１２０】
図１９は、図１２に示したデータ制御回路１２Ａの別のエラー訂正動作を示している。図１８と同じ記述および動作については詳細な説明を省略する。
【０１２１】
この例では、図１８と同様に、データブロックMBD10（ブロックD10）がリフレッシュブロックとして動作している。また、図中に太枠で示すように、データブロックMBD1（ブロックD1）に１ビットエラーが発生する。
【０１２２】
データ制御回路１２Ａのデータ付加回路４２は、ブロックD10に対応するビットに"論理０"を付加した読み出しデータcode0と、ブロックD10に対応するビットに"論理１"を付加した読み出しデータcode1とを生成する。
【０１２３】
シンドローム生成回路４４、４６は、読み出しデータcode0、code1からシンドロームsyn0[5:0]、syn1[5:0]をそれぞれ生成する。シンドローム生成回路４４は、シンドロームsyn0[5:0]の最上位ビットS5が"論理１"のため、１ビットエラーを示す比較結果信号res0（"0010"）を出力する。シンドローム生成回路４６は、シンドロームsyn1[5:0]の最上位ビットS5が"論理０"かつビットS4-0の少なくともいずれかが"論理１"のため、２ビット以上のエラーを示す比較結果信号res1（"0001"）を出力する。
【０１２４】
エラー判定回路４８は、シンドローム生成回路４４からのシンドロームsyn0[5:0]が１ビットエラーを示すため、シンドロームsyn0[5:0]の下位５ビット（"00101"＝１０進の"５"）をエラーアドレス（"E5"＝MBD1）とする。エラー判定回路４８は、データブロックMBD1から読み出された"論理１"を反転し、読み出しデータcode0[21:0]のうちデータブロックMBD15-0に対応するビットを出力データdout0[15:0]として出力する。エラー判定回路５０は、シンドローム生成回路４４からのシンドロームsyn1[5:0]が２ビット以上のエラーを示すため、エラー訂正を行わず、読み出しデータcode1[21:0]のうちデータブロックMBD15-0に対応するビットをそのまま出力データdout1[15:0]として出力する。また、エラー判定回路５０は、エラーフラグ信号errflg_2b1を高レベルに活性化する。
【０１２５】
エラー復号回路５２は、シンドローム生成回路４４、４６からの比較結果信号res0（１ビットエラー）、res1（２ビット以上のエラー）より、エラー判定回路４８の出力が正しいと判定する。エラー復号回路５２は、エラー判定回路４８から出力される出力データdout0[15:0]およびエラーフラグ信号errflg_2b0（エラー無しを示す）を出力データDOUT[15:0]およびECCエラー信号ECCERR（エラー無しを示す）として出力する。
【０１２６】
この実施形態においても、上述した第１の実施形態と同様の効果を得ることができる。さらに、この実施形態では、符号データとして拡大ハミング符号を使用することで、符号データのビット数を減らすことができる。この結果、符号ブロックMBEの数を第１の実施形態に比べ２つ減らすことができ、擬似SRAMのチップサイズを削減できる。
【０１２７】
また、エラー訂正回路１２ｆは、訂正不可能な「２ビット以上のエラー」を検出したときに、ECCエラー信号ECCERRを出力する。ECCエラー信号ECCERRにより、擬似SRAMをアクセスする外部のシステムは、読み出し動作のリトライおよびデータの廃棄等、エラーを回避する動作を実行できる。この結果、システムの信頼性を向上できる。
【０１２８】
図２０は、本発明の半導体メモリの第３の実施形態を示している。第１および第２の実施形態で説明した回路・信号と同一の回路・信号については、同一の符号を付し、これ等については、詳細な説明を省略する。
【０１２９】
この実施形態の半導体メモリは、シリコン基板上にCMOSプロセスを使用してクロック非同期式の擬似SRAMとして形成されている。また、この実施形態では、拡大ハミング符号がエラー訂正符号として使用される。この拡大ハミング符号の最小ハミング距離は、"４"であり、１ビットのエラー訂正と、２ビットのエラー検出とを同時にできる。
【０１３０】
擬似SRAMは、第２の実施形態のメモリコア２４Ａおよび発振器４０Ａの代わりに、メモリコア２４Ｂおよび発振器４０Ｂを有している。その他の構成は、第２の実施形態とほぼ同一である。
【０１３１】
メモリコア２４Ｂは、ワード線単位で不良を救済するためのロウ冗長回路およびビット線単位で不良を救済するためのコラム冗長回路が形成されていないことを除き、第２の実施形態のメモリコア２４Ａと同じである。
【０１３２】
発振器４０Ｂは、第２の実施形態より周期の短いクロック信号OSCを自己発振する。このため、リフレッシュ制御回路は２０Ａが出力する各リフレッシュポイント信号refpoint[21:0]の活性化期間およびリフレッシュ要求信号ref[21:0]の発生間隔は、第２の実施形態より短くなる。具体的には、各リフレッシュポイント信号refpoint[21:0]の活性化間隔T1（各メモリセルのリフレッシュ間隔に対応）は、ワーストのメモリセルのデータリテンション時間より短く設定されている。このため、ワーストのメモリセルを含む全てのメモリセルは、リフレッシュ動作の実行により常にデータを保持できる。データ制御回路１２Ａのエラー訂正機能は、製造工程で発生したメモリコアの不良を救済するために使用される。すなわち、符号ブロックMBE0-5は、ロウ冗長回路およびコラム冗長回路の代わりに機能する。
【０１３３】
この実施形態においても、上述した第１および第２の実施形態と同様の効果を得ることができる。さらに、この実施形態では、符号ブロックMBE0-5を、ロウ冗長回路およびコラム冗長回路の代わりに形成することで、製造工程で不良になったメモリセルから読み出される誤ったデータを、エラー訂正回路により訂正できる。冗長回路の形成が不要になるため、チップサイズを削減できる。
【０１３４】
図２１は、本発明の半導体メモリの第４の実施形態を示している。第１および第２の実施形態で説明した回路・信号と同一の回路・信号については、同一の符号を付し、これ等については、詳細な説明を省略する。
【０１３５】
この実施形態の半導体メモリは、シリコン基板上にCMOSプロセスを使用してクロック非同期式の擬似SRAMとして形成されている。また、この実施形態では、拡大ハミング符号がエラー訂正符号として使用される。この拡大ハミング符号の最小ハミング距離は、"４"であり、１ビットのエラー訂正と、２ビットのエラー検出とを同時にできる。
【０１３６】
擬似SRAMは、第２の実施形態のデータ制御回路１２Ａ、アクセス制御回路１８Ａおよび発振器４０Ａの代わりに、データ制御回路１２Ｃ、アクセス制御回路１８Ｃおよび第３の実施形態と同じ発振器４０Ｂを有している。
【０１３７】
データ制御回路１２Ｃは、読み出し動作中に、訂正可能なエラー（１ビットエラー）を検出したときに、訂正したデータをメモリコア２４Ａに書き戻す機能を有している。アクセス制御回路１８Ｃは、データ制御回路１２Ｃが訂正したデータをメモリコア２４Ａに書き戻すときに、書き込み要求信号wr[21:0]を出力する。
【０１３８】
図２２は、図２１に示したデータ制御回路１２Ｃの詳細を示している。
【０１３９】
データ制御回路１２Ｃは、第２の実施形態のデータ符号化部１２ｅの代わりにデータ符号化部１２ｇを有している。データ訂正部１２ｄの構成は、第２の実施形態と同じである。データ符号化部１２ｇは、符号化回路５４Ａおよびセレクタ５６Ｂを有している。セレクタ５６Ｂは、書き込み動作中に、入力データDIN[15:0]（書き込みデータ）を符号化回路５４Ａで符号化したデータを書き込みデータwdat[21:0]として出力する。また、セレクタ５６Ｂは、読み出し動作中に１ビットエラーが発生したときに、データ訂正部１２ｄのエラー復号回路５２から出力される訂正コードccode[21:0]を書き込みデータwdat[21:0]として出力する。すなわち、セレクタ５６Ｂは、読み出し動作中に、エラー訂正回路１２ｆが訂正したデータをデータブロックMBDおよび符号ブロックMBEに書き戻す書き戻し制御回路として機能する。
【０１４０】
この実施形態においても、上述した第１および第２の実施形態と同様の効果を得ることができる。さらに、この実施形態では、エラー訂正回路１２ｆが訂正したデータをセレクタ５６ＢによってデータブロックMBDおよび符号ブロックMBEに書き戻すことができる。このため、電源ノイズ、ソフトエラー等により破壊されたメモリセル内のデータが読み出されたとき、このメモリセルに正しいデータを書き込むことができ、擬似SRAMの信頼性を向上できる。
【０１４１】
図２３は、本発明の半導体メモリの第５の実施形態を示している。第１および第２の実施形態で説明した回路・信号と同一の回路・信号については、同一の符号を付し、これ等については、詳細な説明を省略する。
【０１４２】
この実施形態の半導体メモリは、シリコン基板上にCMOSプロセスを使用してクロック非同期式の擬似SRAMとして形成されている。また、この実施形態では、拡大ハミング符号がエラー訂正符号として使用される。この拡大ハミング符号の最小ハミング距離は、"４"であり、１ビットのエラー訂正と、２ビットのエラー検出とを同時にできる。
【０１４３】
擬似SRAMは、第２の実施形態のデータ制御回路１２Ａ、アクセス制御回路１８Ａ、リフレッシュ制御回路２０Ａ、発振器４０Ａおよびメモリコア２４Ａの代わりに、データ制御回路１２Ｄ、アクセス制御回路１８Ｄ、リフレッシュ制御回路２０Ｄ、発振器４０Ｄおよびメモリコア２４Ｄを有している。
【０１４４】
メモリコア２４Ｄは、６４個のデータブロックMBD[63:0]と、８個の符号ブロックMBE[7:0]を有している。この実施形態では、データブロックMBD[63:0]の数は、データ端子DQ[15:0]のビット数の４倍に設計されている。このため、１回の書き込み動作でデータ端子[15:0]に供給される書き込みデータだけでは、符号データを生成できない。したがって、データ制御回路１２Ｄは、後述するように、書き込み動作の最初に、データブロックMBD[63:0]および符号ブロックMBE[7:0]からデータを読み出す必要がある。しかし、符号データを生成するための情報データのビット数を増やすことで、符号ブロックMBEの数を相対的に減らすことができる。特に、拡大ハミング符号の場合、情報ビットが２のｎ乗のとき、符号データはｎ＋２ビットだけでよい。この結果、符号ブロックMBEの数を相対的に大幅に減らすことができ、擬似SRAMのチップサイズが増加することを防止できる。
【０１４５】
データ制御回路１２Ｄは、読み出し動作中に、読み出しデータrdat[71:0]に訂正可能なエラー（１ビットエラー）がある場合、エラーを訂正する。そして、データ制御回路１２Ｄは、アドレス端子ADに供給されるロウアドレスの下位ビットに応じてデータブロックMBD0-63のうちの１６個に対応する読み出しデータを選択し、選択したデータを出力データDOUT[15:0]として出力する。データ制御回路１２Ｄは、読み出し動作中に、読み出しデータrdat[71:0]に訂正不可能なエラー（２ビット以上のエラー）がある場合、ECCエラー信号ECCERRをエラー端子に出力する。
【０１４６】
データ制御回路１２Ｄは、書き込み動作中に、データブロックMBD0-63および符号ブロックMBE0-7からデータを読み出し、エラーがある場合に情報データを復号する。次に、データ制御回路１２Ｄは、復号した情報データのうち書き込みデータDIN[15:0]に対応するビットを、この書き込みデータDIN[15:0]に入れ替えて書き換えデータ列を生成する。そして、データ制御回路１２Ｄは、書き換えデータ列から新たな符号データを求め、書き換えデータ列および新たな符号データをデータブロックMBD0-63および符号ブロックMBE0-7にそれぞれ書き込む。このように、本実施形態では、擬似SRAMは、書き込み動作の最初にメモリコア２４Ａからデータを読み出す読み出し動作が実行される。
【０１４７】
アクセス制御回路１８Ｄは、データ制御回路１２Ｄの動作に合わせて、読み出し要求信号rd[71:0]または書き込み要求信号wr[71:0]を出力する。具体的には、書き込み動作中に、読み出し要求信号rd[71:0]および書き込み要求信号wr[71:0]が順次出力される。
【０１４８】
リフレッシュ制御回路２０Ｄは、リフレッシュポイント信号refpoint[71:0]およびリフレッシュ要求信号ref[71:0]を順次出力する。リフレッシュ制御回路２０Ｄの動作は、出力する信号のビット数が増えたことを除き、第２の実施形態のリフレッシュ制御回路２０Ａと同じである。発振器４０Ｄが出力するクロック信号OSCの周波数は、リフレッシュポイント信号refpoint[71:0]のビット数に対応して、第２の実施形態に比べて高く設定されている。
【０１４９】
図２４は、図２３に示した擬似SRAMの書き込み動作を示している。
【０１５０】
書き込み動作では、まず、図示しないワード線が活性化され、符号ブロックMBEおよびデータブロックMBDのそれぞれにおいて、メモリセルから相補のビット線BL、/BLのいずれかにデータが読み出される（図２４（ａ））。この後、センスアンプが活性化され、ビット線BL、/BLの電圧差が増幅される（図２４（ｂ））。次に、コラムスイッチ信号CSWが活性化され、増幅されたデータは、読み出しデータrdat[63:0]として、データ制御回路１２Ｄに転送される（図２４（ｃ））。データ制御回路１２Ｄは、読み出しデータrdat[63:0]のエラーを訂正する。次に、データ制御回路１２Ｄは、データブロックMBDから読み出さ
れたデータのうち８ビットを、データ端子DQ7-0に供給された書き込みデータDIN[7:0]と置き換える（図２４（ｄ））。
【０１５１】
次に、データ制御回路１２Ｄは、置き換えた書き込みデータを用いて新たな符号データを生成する（図２４（ｅ））。そして、置き換えた書き込みデータおよび新たな符号データは、書き込みデータwdat[63:0]として符号ブロックMBEおよびデータブロックMBDに順次書き込まれる（図２４（ｆ、ｇ））。この後、ワード線が非活性化され、ビット線BL、/BLがプリチャージされて、書き込み動作が完了する（図２４（ｈ、ｉ））。
【０１５２】
この例では、データの書き込み時のコラムスイッチ信号CSWのタイミング、ワード線の非活性化タイミングおよびビット線BL、/BLのプリチャージ開始タイミングは、符号ブロックMBEおよびデータブロックMBDで相違している。しかし、これ等のタイミングは、符号ブロックMBEおよびデータブロックMBDで同じにしてもよい。
【０１５３】
この実施形態においても、上述した第１および第２の実施形態と同様の効果を得ることができる。さらに、この実施形態では、情報データを記憶するデータブロックの数を増やすことで、情報データのビット数に対する符号データのビット数を相対的に減らすことができる。この結果、符号ブロックの数を、データブロックの数に対して相対的に減らすことができ、擬似SRAMのチップサイズを削減できる。
【０１５４】
なお、上述した実施形態では、本発明を擬似SRAMチップに適用した例について述べた。本発明はかかる実施形態に限定されるものではない。例えば、本発明をシステムＬＳＩに搭載される擬似SRAMコアに適用してもよい。
【０１５５】
以上の実施形態において説明した発明を整理して、付記として開示する。
（付記１）情報データを記憶するメモリセルを有する複数のデータブロックと、
前記データブロックに記憶されたデータを復号するための符号データを記憶するメモリセルを有する複数の符号ブロックと、
前記データブロックおよび前記符号ブロックにリフレッシュ動作を順次実行させるためにリフレッシュ要求信号を出力するリフレッシュ制御回路と、
前記データブロックおよび前記符号ブロックのうちリフレッシュ動作によりデータを読み出せないブロックであるリフレッシュブロックから読み出されるべき複数種の予想データを、他のブロックから読み出されるデータにそれぞれ付加して複数の読み出しデータ列を生成するデータ付加回路と、
前記読み出しデータ列についてそれぞれエラーを検出し、これ等のエラー検出結果から最も確からしい一つを真とし、真としたエラー検出結果に対応する読み出しデータ列のエラーを訂正するエラー訂正回路とを備えていることを特徴とする半導体メモリ。
（付記２）付記１の半導体メモリにおいて、
前記リフレッシュ制御回路は、前記データブロックおよび前記符号ブロックのいずれか１つにリフレッシュ動作を実行させるために、前記データブロックおよび前記符号ブロックにリフレッシュ要求信号を順次出力することを特徴とする半導体メモリ。
（付記３）付記１の半導体メモリにおいて、
読み出しコマンドに応答してリフレッシュブロックを除く前記データブロックおよび前記符号ブロックに読み出し要求信号を出力するアクセス制御回路を備えていることを特徴とする半導体メモリ。
（付記４）付記１の半導体メモリにおいて、
書き込みコマンドに応答して前記データブロックおよび前記符号ブロックに書き込み要求信号を出力するアクセス制御回路を備え、
前記データブロックおよび前記符号ブロックは、前記リフレッシュ要求信号と前記書き込み要求信号が競合するときに、リフレッシュ動作を実行した後書き込み動作を順次遅れて実行するブロック制御回路をそれぞれ備えていることを特徴とする半導体メモリ。
（付記５）付記４の半導体メモリにおいて、
前記書き込みコマンドの最小供給間隔である外部書き込みサイクル時間は、前記各ブロックの書き込み動作時間である内部書き込みサイクル時間より長く設定されていることを特徴とする半導体メモリ。
（付記６）付記５の半導体メモリにおいて、
あるリフレッシュブロックの最後のリフレッシュ要求信号から次のリフレッシュブロックに切り替わるまでの切り替え期間に、ｎ回の前記外部書き込みサイクル時間が挿入可能であり、かつ１回のリフレッシュ動作とｎ回の書き込み動作を実行可能であることを特徴とする半導体メモリ。
（付記７）付記６の半導体メモリにおいて、
前記切り替え期間は、外部書き込みサイクル時間Tcycと内部書き込みサイクル時間との差をδとするときに、少なくとも（Tcyc／δ）×Tcycに設定されることを特徴とする半導体メモリ。
（付記８）付記１の半導体メモリにおいて、
前記符号ブロックは、不良を救済する冗長回路の代わりに形成されることを特徴とする半導体メモリ。
（付記９）付記８の半導体メモリにおいて、
前記符号ブロックは、ワード線単位で不良を救済するロウ冗長回路の代わりに形成されることを特徴とする半導体メモリ。
（付記１０）付記８の半導体メモリにおいて、
前記符号ブロックは、ビット線単位で不良を救済するコラム冗長回路の代わりに形成されることを特徴とする半導体メモリ。
（付記１１）付記１の半導体メモリにおいて、
前記データ付加回路は、リフレッシュブロックからの読み出しデータの論理を論理１および論理０と仮定して２つの前記読み出しデータ列を生成することを特徴とする半導体メモリ。
（付記１２）付記１１の半導体メモリにおいて、
前記エラー訂正回路は、前記読み出しデータ列のうちエラーの少ない読み出しデータ列を真として選択することを特徴とする半導体メモリ。
（付記１３）付記１２の半導体メモリにおいて、
前記エラー訂正回路は、「エラー無し」、「データブロックのいずれかの１ビットエラー」、「符号ブロックのいずれかの１ビットエラーである符号エラー」および「２ビット以上のエラー」のいずれかを検出し、エラー判定の優先度を、エラー無し＞符号エラー＞１ビットエラー＞２ビット以上のエラーとし、優先度の高い項目を真とすることを特徴とする半導体メモリ。
（付記１４）付記１３の半導体メモリにおいて、
前記エラー訂正回路が「２ビット以上のエラー」を検出したときに、エラー信号を出力するエラー端子を備えていることを特徴とする半導体メモリ。
（付記１５）付記１２の半導体メモリにおいて、
前記エラー訂正回路は、「エラー無し」、「データブロックまたは符号ブロックのいずれかの１ビットエラー」、および「２ビット以上のエラー」のいずれかを検出し、エラー判定の優先度を、エラー無し＞１ビットエラー＞２ビット以上のエラーとし、優先度の高い項目を真とすることを特徴とする半導体メモリ。
（付記１６）付記１の半導体メモリにおいて、
前記エラー訂正回路が訂正不可能なエラーを検出したときに、エラー信号を出力するエラー端子を備えていることを特徴とする半導体メモリ。
（付記１７）付記１の半導体メモリにおいて、
前記エラー訂正回路が訂正したデータを前記データブロックおよび前記符号ブロックに書き戻す書き戻し制御回路を備えていることを特徴とする半導体メモリ。
（付記１８）付記１の半導体メモリにおいて、
前記情報データを入出力する複数のデータ端子を備え、
前記データブロックは、前記データ端子にそれぞれ対応して形成されていることを特徴とする半導体メモリ。
（付記１９）付記１の半導体メモリにおいて、
前記情報データを入出力する複数のデータ端子を備え、
前記データ端子に一度に供給される書き込みデータは、前記データブロックの一部に書き込まれ、
前記エラー訂正回路は、書き込み動作中に、前記データブロックおよび前記符号ブロックからのデータにより前記情報データを復号し、復号した情報データの一部を前記書き込みデータに入れ替えて書き換えデータ列を生成し、前記書き換えデータ列から新たな符号データを求め、前記書き換えデータ列および新たな符号データを前記データブロックおよび前記符号ブロックにそれぞれ書き込むことを特徴とする半導体メモリ。
（付記２０）付記１の半導体メモリにおいて、
前記各メモリセルのリフレッシュ間隔は、ワーストのメモリセルのデータリテンション時間より長く設定されていることを特徴とする半導体メモリ。
（付記２１）付記１の半導体メモリにおいて、
前記エラー訂正回路は、
論理０の予想データを付加した情報データ列から第１符号データを生成する第１符号化回路と、
論理１の予想データを付加した情報データ列から第２符号データを生成する第２符号化回路と、
前記第１符号データを前記符号ブロックから読み出される符号データと比較し、エラーを判定する第１エラー判定回路と、
前記第２符号データを前記符号ブロックから読み出される符号データと比較し、エラーを判定する第２エラー判定回路と、
前記第１および第２エラー判定回路の判定結果のうち、最も確からしい判定結果を真とし、真とした判定結果に基づいてエラーを訂正するエラー復号回路とを備えていることを特徴とする半導体メモリ。
（付記２２）付記１の半導体メモリにおいて、
前記エラー訂正回路は、
前記データブロックから読み出される情報データ列から符号データを生成する符号化回路と、
生成した符号データを、論理０の予想データを付加した符号データ列と比較し、エラーを判定する第１エラー判定回路と、
生成した符号データを、論理１の予想データを付加した符号データ列と比較し、エラーを判定する第２エラー判定回路と、
前記第１および第２エラー判定回路の判定結果のうち、最も確からしい判定結果を真とし、真とした判定結果に基づいてエラーを訂正するエラー復号回路とを備えていることを特徴とする半導体メモリ。
（付記２３）付記１の半導体メモリにおいて、
前記エラー訂正回路は、
論理０の予想データを付加した読み出しデータ列から第１シンドロームを生成する第１シンドローム生成回路と、
論理１の予想データを付加した読み出しデータ列から第２シンドロームを生成する第２シンドローム生成回路と、
前記第１シンドロームからエラーの有無およびエラーアドレスを検出する第１エラー判定回路と、
前記第２シンドロームからエラーの有無およびエラーアドレスを検出する第２エラー判定回路と、
前記第１および第２エラー判定回路の判定結果のうち、最も確からしい判定結果を真とし、真とした判定結果に基づいてエラーを訂正するエラー復号回路とを備えていることを特徴とする半導体メモリ。
（付記２４）付記１の半導体メモリにおいて、
前記符号データの最小ハミング距離は、４以上であることを特徴とする半導体メモリ。（付記２５）付記２４の半導体メモリにおいて、
前記符号データは、水平垂直パリティ符号であることを特徴とする半導体メモリ。
（付記２６）付記２４の半導体メモリにおいて、
前記符号データは、拡大ハミング符号であることを特徴とする半導体メモリ。
（付記２７）情報データを記憶するメモリセルを有する複数のデータブロックと、前記データブロックに記憶されたデータを復号するための符号データを記憶するメモリセルを有する複数の符号ブロックと、前記データブロックおよび前記符号ブロックにリフレッシュ動作を順次実行させるためにリフレッシュ要求信号を出力するリフレッシュ制御回路とを備えた半導体メモリの動作方法であって、
前記データブロックおよび前記符号ブロックのうちリフレッシュ動作によりデータを読み出せないブロックであるリフレッシュブロックから読み出されるべき複数種の予想データを、他のブロックから読み出されるデータにそれぞれ付加して複数の読み出しデータ列を生成し、
前記読み出しデータ列についてそれぞれエラーを検出し、これ等のエラー検出結果から最も確からしい一つを真とし、
真としたエラー検出結果に対応する読み出しデータ列のエラーを訂正することを特徴とする半導体メモリの動作方法。
（付記２８）付記２７の半導体メモリの動作方法において、
前記データブロックおよび前記符号ブロックのいずれか１つにリフレッシュ動作を実行させるために、前記データブロックおよび前記符号ブロックにリフレッシュ要求信号を順次出力することを特徴とする半導体メモリの動作方法。
（付記２９）付記２７の半導体メモリの動作方法において、
読み出しコマンドに応答してリフレッシュブロックを除く前記データブロックおよび前記符号ブロックに読み出し要求信号を出力することを特徴とする半導体メモリの動作方法。
（付記３０）付記２７の半導体メモリの動作方法において、
書き込みコマンドに応答して前記データブロックおよび前記符号ブロックに書き込み要求信号を出力し、
前記データブロックおよび前記符号ブロックは、前記リフレッシュ要求信号と前記書き込み要求信号が競合するときに、リフレッシュ動作を実行した後書き込み動作を順次遅れて実行することを特徴とする半導体メモリの動作方法。
（付記３１）付記３０の半導体メモリの動作方法において、
前記書き込みコマンドの最小供給間隔である外部書き込みサイクル時間は、前記各ブロックの書き込み動作時間である内部書き込みサイクル時間より長く設定されていることを特徴とする半導体メモリの動作方法。
（付記３２）付記３１の半導体メモリの動作方法において、
あるリフレッシュブロックの最後のリフレッシュ要求信号から次のリフレッシュブロックに切り替わるまでの切り替え期間に、ｎ回の前記外部書き込みサイクル時間が挿入可能であり、かつ１回のリフレッシュ動作とｎ回の書き込み動作を実行可能であることを特徴とする半導体メモリの動作方法。
（付記３３）付記３２の半導体メモリの動作方法において、
前記切り替え期間は、外部書き込みサイクル時間Tcycと内部書き込みサイクル時間との差をδとするときに、少なくとも（Tcyc／δ）×Tcycに設定されることを特徴とする半導体メモリの動作方法。
（付記３４）付記２７の半導体メモリの動作方法において、
リフレッシュブロックからの読み出しデータの論理を論理１および論理０と仮定して２つの前記読み出しデータ列を生成することを特徴とする半導体メモリの動作方法。
（付記３５）付記３４の半導体メモリの動作方法において、
前記読み出しデータ列のうちエラーの少ない読み出しデータ列を真として選択することを特徴とする半導体メモリの動作方法。
（付記３６）付記３５の半導体メモリの動作方法において、
「エラー無し」、「データブロックのいずれかの１ビットエラー」、「符号ブロックのいずれかの１ビットエラーである符号エラー」および「２ビット以上のエラー」のいずれかを検出し、
エラー判定の優先度を、エラー無し＞符号エラー＞１ビットエラー＞２ビット以上のエラーとし、
優先度の高い項目を真とすることを特徴とする半導体メモリの動作方法。
（付記３７）付記３６の半導体メモリの動作方法において、
「２ビット以上のエラー」を検出したときに、エラー信号をエラー端子に出力することを特徴とする半導体メモリの動作方法。
（付記３８）付記３５の半導体メモリの動作方法において、
「エラー無し」、「データブロックおよび符号ブロックのいずれかの１ビットエラー」、および「２ビット以上のエラー」のいずれかを検出し、
エラー判定の優先度を、エラー無し＞１ビットエラー＞２ビット以上のエラーとし、
優先度の高い項目を真とすることを特徴とする半導体メモリの動作方法。
（付記３９）付記２７の半導体メモリの動作方法において、
訂正不可能なエラーを検出したときに、エラー信号をエラー端子に出力することを特徴とする半導体メモリの動作方法。
（付記４０）付記２７の半導体メモリの動作方法において、
訂正したデータを前記データブロックおよび前記符号ブロックに書き戻すことを特徴とする半導体メモリの動作方法。
（付記４１）付記２７の半導体メモリの動作方法において、
書き込み動作中に、
前記データブロックおよび前記符号ブロックからのデータにより前記情報データを復号し、
復号した情報データの一部を書き込みデータに入れ替えて書き換えデータ列を生成し、
前記書き換えデータ列から新たな符号データを求め、
前記書き換えデータ列および新たな符号データを前記データブロックおよび前記符号ブロックにそれぞれ書き込むことで、前記情報データを入出力するデータ端子に一度に供給される書き込みデータを前記データブロックの一部に書き込むことを特徴とする半導体メモリの動作方法。
（付記４２）付記２７の半導体メモリの動作方法において、
前記各メモリセルのリフレッシュ間隔は、ワーストのメモリセルのデータリテンション時間より長く設定されていることを特徴とする半導体メモリの動作方法。
（付記４３）付記２７の半導体メモリの動作方法において、
論理０の予想データを付加した情報データ列から第１符号データを生成し、
論理１の予想データを付加した情報データ列から第２符号データを生成し、
前記第１符号データを前記符号ブロックから読み出される符号データと比較し、エラーを判定し、
前記第２符号データを前記符号ブロックから読み出される符号データと比較し、エラーを判定し、
判定結果のうち、最も確からしい判定結果を真とし、真とした判定結果に基づいてエラーを訂正することを特徴とする半導体メモリの動作方法。
（付記４４）付記２７の半導体メモリの動作方法において、
前記データブロックから読み出される情報データ列から符号データを生成し、
生成した符号データを、論理０の予想データを付加した符号データ列と比較し、エラーを判定し、
生成した符号データを、論理１の予想データを付加した符号データ列と比較し、エラーを判定し、
判定結果のうち、最も確からしい判定結果を真とし、真とした判定結果に基づいてエラーを訂正することを特徴とする半導体メモリの動作方法。
（付記４５）付記２７の半導体メモリの動作方法において、
論理０の予想データを付加した読み出しデータ列から第１シンドロームを生成し、
論理１の予想データを付加した読み出しデータ列から第２シンドロームを生成し、
前記第１シンドロームからエラーの有無およびエラーアドレスを検出し、
前記第２シンドロームからエラーの有無およびエラーアドレスを検出し、
前記第１および第２エラー判定回路の判定結果のうち、最も確からしい判定結果を真とし、真とした判定結果に基づいてエラーを訂正することを特徴とする半導体メモリの動作方法。
（付記４６）付記２７の半導体メモリの動作方法において、
前記符号データの最小ハミング距離は、４以上であることを特徴とする半導体メモリの動作方法。
（付記４７）付記４６の半導体メモリの動作方法において、
前記符号データは、水平垂直パリティ符号であることを特徴とする半導体メモリの動作方法。
（付記４８）付記４６の半導体メモリの動作方法において、
前記符号データは、拡大ハミング符号であることを特徴とする半導体メモリの動作方法。
【０１５６】
以上、本発明について詳細に説明してきたが、上記の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【産業上の利用可能性】
【０１５７】
本発明の半導体メモリでは、読み出しサイクル時間が長くすることなくリフレッシュ動作を外部のシステムに対して隠すことができ、同時に読み出しデータ列のエラーを訂正できる。エラー訂正機能を、データリテンション時間が短いメモリセルの読み出し不良の救済に利用することで、リフレッシュ要求間隔を延ばすことができ、スタンバイ中の消費電力を削減できる。したがって、本発明を、例えば、擬似SRAMに適用した場合、ＡＣ特性およびＤＣ特性の両方をSRAMと同等以下にできる。換言すれば、SRAMと完全に互換性を有する擬似SRAMをユーザに提供できる。ユーザは、システム上に搭載されるSRAMを本発明が適用された擬似SRAMに置き換えるだけで、コストを削減できる。
【０１５８】
本発明の半導体メモリでは、リフレッシュ要求に応答するリフレッシュ動作を１つのブロックでのみ実行することで、リフレッシュ動作により読み出せないデータを、容易に復元できる。
【０１５９】
本発明の半導体メモリでは、リフレッシュ要求と読み出し要求が競合することを防止でき、読み出しアクセス時間が増加することを防止できる。また、アクセス制御回路による読み出し動作の制御を容易にできる。
【０１６０】
本発明の半導体メモリでは、リフレッシュ要求信号と書き込み要求信号が競合するときに、リフレッシュ動作を実行した後に書き込み動作を遅れて実行することで、書き込みデータをリフレッシュブロックに対して確実に書き込むことができる。
【図面の簡単な説明】
【０１６１】
【図１】本発明の第１の実施形態を示すブロック図である。
【図２】図１に示したデータ制御回路の詳細を示すブロック図である。
【図３】図１に示したリフレッシュ制御回路の動作を示すタイミング図である。
【図４】図１に示したリフレッシュ制御回路の動作の詳細を示すタイミング図である。
【図５】第１の実施形態の読み出し動作の概要を示すタイミング図である。
【図６】第１の実施形態の書き込み動作の概要を示すタイミング図である。
【図７】第１の実施形態のパリティ符号の生成規則を示す説明図である。
【図８】図２に示したエラー判定回路の動作の概要を示すフローチャートである。
【図９】図２に示したエラー訂正回路の動作の概要を示す説明図である。
【図１０】第１の実施形態の読み出し動作の一例を示すタイミング図である。
【図１１】第１の実施形態の読み出し動作の別の例を示すタイミング図である。
【図１２】本発明の第２の実施形態を示すブロック図である。
【図１３】図１２に示したデータ制御回路の詳細を示すブロック図である。
【図１４】図１３に示したエラー訂正回路のRTL記述を示す説明図である。
【図１５】図１４のRTL記述から論理合成した結果を示す回路図である。
【図１６】図１３に示したシンドローム生成回路のRTL記述を示す説明図である。
【図１７】図１３に示した符号化回路のRTL記述を示す説明図である。
【図１８】図１２に示したデータ制御回路のエラー訂正動作を示す説明図である。
【図１９】図１２に示したデータ制御回路の別のエラー訂正動作を示す説明図である。
【図２０】本発明の半導体メモリの第３の実施形態を示すブロック図である。
【図２１】本発明の半導体メモリの第４の実施形態を示すブロック図である。
【図２２】図２１に示したデータ制御回路の詳細を示すブロック図である。
【図２３】本発明の半導体メモリの第５の実施形態を示すブロック図である。
【図２４】図２３に示した擬似SRAMの書き込み動作を示すタイミング図である。
【符号の説明】
【０１６２】
１０‥アドレスバッファ、１２‥データ制御回路、１２ａ‥データ訂正部；１２ｂ‥データ符号化部；１２ｃ‥エラー訂正回路；１４‥データ入出力バッファ、１６‥コマンドバッファ、１８‥アクセス制御回路、２０‥リフレッシュ制御回路、２２‥クロックバッファ；２４‥メモリコア；２６‥データ付加回路；２８、３０‥符号化回路；３２、３４‥エラー判定回路；３６‥エラー復号回路；３８‥符号化回路
【図１】
0004664208.tif 000002
【図２】
0004664208.tif 000003
【図３】
0004664208.tif 000004
【図４】
0004664208.tif 000005
【図５】
0004664208.tif 000006
【図６】
0004664208.tif 000007
【図７】
0004664208.tif 000008
【図８】
0004664208.tif 000009
【図９】
0004664208.tif 000010
【図１０】
0004664208.tif 000011
【図１１】
0004664208.tif 000012
【図１２】
0004664208.tif 000013
【図１３】
0004664208.tif 000014
【図１４】
0004664208.tif 000015
【図１５】
0004664208.tif 000016
【図１６】
0004664208.tif 000017
【図１７】
0004664208.tif 000018
【図１８】
0004664208.tif 000019
【図１９】
0004664208.tif 000020
【図２０】
0004664208.tif 000021
【図２１】
0004664208.tif 000022
【図２２】
0004664208.tif 000023
【図２３】
0004664208.tif 000024
【図２４】
0004664208.tif 000025