JPWO2005017914A1 - 半導体メモリおよび半導体メモリの動作方法 - Google Patents

半導体メモリおよび半導体メモリの動作方法 Download PDF

Info

Publication number
JPWO2005017914A1
JPWO2005017914A1 JP2005507761A JP2005507761A JPWO2005017914A1 JP WO2005017914 A1 JPWO2005017914 A1 JP WO2005017914A1 JP 2005507761 A JP2005507761 A JP 2005507761A JP 2005507761 A JP2005507761 A JP 2005507761A JP WO2005017914 A1 JPWO2005017914 A1 JP WO2005017914A1
Authority
JP
Japan
Prior art keywords
data
error
block
semiconductor memory
code
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.)
Granted
Application number
JP2005507761A
Other languages
English (en)
Other versions
JP4664208B2 (ja
Inventor
江渡 聡
聡 江渡
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2005017914A1 publication Critical patent/JPWO2005017914A1/ja
Application granted granted Critical
Publication of JP4664208B2 publication Critical patent/JP4664208B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40603Arbitration, priority and concurrent access to memory cells for read/write or refresh operations
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40615Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40618Refresh operations over multiple banks or interleaving
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/10Aspects relating to interfaces of memory device to external buses
    • G11C2207/104Embedded memory devices, e.g. memories with a processing device on the same die or ASIC memory designs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/401Indexing scheme relating to cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C2211/406Refreshing of dynamic cells
    • G11C2211/4061Calibration or ate or cycle tuning
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/401Indexing scheme relating to cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C2211/406Refreshing of dynamic cells
    • G11C2211/4062Parity or ECC in refresh operations
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/401Indexing scheme relating to cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C2211/406Refreshing of dynamic cells
    • G11C2211/4067Refresh in standby or low power modes

Abstract

データ付加回路は、リフレッシュブロックから読み出されるべき複数種の予想データを、他のブロックから読み出されるデータにそれぞれ付加して複数の読み出しデータ列を生成する。エラー訂正回路は、読み出しデータ列についてそれぞれエラーを検出し、最も確からしいエラー検出結果の一つを真とする。エラー訂正回路は、真としたエラー検出結果に基づいてリフレッシュブロックから読み出されるべきデータを復号する。さらに、エラー訂正回路は、真としたエラー検出結果に対応する読み出しデータ列のエラーを訂正する。この結果、読み出しサイクル時間を延ばすことなくリフレッシュ動作を隠すことができ、同時にエラーを訂正できる。データリテンション特性の悪いメモリセルから読み出されるデータのエラーを訂正することで、リフレッシュ要求間隔を延ばすことができ、スタンバイ中の消費電力を削減できる。

Description

本発明は、リフレッシュ動作が必要なダイナミックメモリセルを有する半導体メモリおよびその動作方法に関する。
近年、擬似SRAM(Pseudo−SRAM)と呼ばれる半導体メモリが注目されている。擬似SRAMは、DRAMのメモリセルを有し、メモリセルのリフレッシュ動作を内部で自動的に実行することでSRAMとして動作する。ダイナミックメモリセルは、面積が小さいため、ビットコストが低く、かつ大容量の擬似SRAMを開発できる。
一方、擬似SRAMは、メモリセルのキャパシタに蓄えられる電荷によってデータを記憶するために、データは、電荷のリークなどによりやがて失われる。これを避けるために、擬似SRAMは、所定期間毎にリフレッシュ動作が必要である。リフレッシュ動作は、メモリセルに保持されているデータをビット線に読み出し、ビット線上のデータをセンスアンプで増幅し、メモリセルに再書き込みする動作である。
リフレッシュ動作を実行するためのリフレッシュ要求は、外部アクセス要求と無関係に発生する。このため、リフレッシュ動作は、アクセス動作と競合する場合がある。擬似SRAMは、SRAMインタフェースを有するため、この競合が発生したときにも、外部のシステムに対してリフレッシュ動作を隠す必要がある。近時、リフレッシュ動作を隠すために、書き込みデータと共にエラー訂正符号を記憶する半導体メモリが提案されている(例えば、特開2003−51186号公報)。この半導体メモリでは、エラー訂正符号を用いることで、リフレッシュ動作中のメモリブロックからデータを読み出すことなく、読み出しデータを再生できる。また、読み出し要求とリフレッシュ要求が競合しないため、読み出しサイクル時間にリフレッシュ動作時間を含める必要はない。この結果、読み出しサイクル時間をSRAMと同等にできる。
一方、擬似SRAMは、リフレッシュ動作が必要なため、メモリセルがラッチで構成されるSRAMに比べ、スタンバイ期間中の消費電力が大きい。スタンバイ期間中に消費される電力として、DC成分とAC成分がある。DC成分は、リーク成分であり、トランジスタのオフ電流および内部回路(特に、電源回路)の動作のために意図的に流している電流等である。これ等、DC成分は、半導体プロセスおよび回路構成に依存するため、擬似SRAMとSRAMとの差異は、議論できない。
擬似SRAMのスタンバイ期間の消費電流のうちAC成分は、主にリフレッシュ動作による電流である。このため、リフレッシュ動作電流の削減は、AC成分を削減するために有効である。近時、リフレッシュ動作電流を削減するために、書き込みデータと共にエラー訂正符号を記憶する半導体メモリが提案されている。この半導体メモリは、エラー訂正符号によりメモリセルのデータ保持特性を実質的に向上し、リフレッシュ間隔を延ばすことで、リフレッシュ動作電流を削減している。(例えば、特開平5−41084号公報、特開2002−56671号公報、特開2003−59290号公報)。
しかしながら、上述した従来の擬似SRAMで用いられるエラー訂正手法では、読み出しサイクル時間の削減またはスタンバイ電流の削減の一方しかできない。具体的には、読み出しサイクル時間(AC特性)は、SRAMと同等にできても、スタンバイ電流(DC特性)はSRAMと同等にできない。あるいは、スタンバイ電流はSRAMと同等にできても、読み出しサイクル時間は、SRAMと同等にできない。すなわち、SRAMと完全に互換性を有する擬似SRAMは、実現されていない。この結果、例えば、システムに搭載されているSRAMをコスト削減のために擬似SRAMに単純に置き換えるだけでは、システムを動作させることをは困難であった。
以下、本発明に関連する先行技術文献を列記する。
(1)特開2003−51186号公報
(2)特開平5−41084号公報
(3)特開2002−56671号公報
(4)特開2003−59290号公報
本発明の目的は、アクセスサイクル時間を延ばすことなくリフレッシュ動作を隠すことができ、同時にスタンバイ期間の消費電力を削減できる擬似SRAMを提供することにある。
本発明の別の目的は、SRAMと完全な互換性を有する擬似SRAMを提供することにある。
本発明の半導体メモリの一形態では、複数のデータブロックは、情報データを記憶するメモリセルを有する。複数の符号ブロックは、データブロックに記憶されたデータを復号するための符号データを記憶するメモリセルを有する。リフレッシュ制御回路は、データブロックおよび符号ブロックにリフレッシュ動作を順次実行させるためにリフレッシュ要求信号を出力する。データ付加回路は、リフレッシュブロックから読み出されるべき複数種の予想データを、他のブロックから読み出されるデータにそれぞれ付加して複数の読み出しデータ列を生成する。ここで、リフレッシュブロックは、データブロックおよび符号ブロックのうちリフレッシュ動作によりデータを読み出せないブロックである。
エラー訂正回路は、読み出しデータ列についてそれぞれエラーを検出し、これ等のエラー検出結果から最も確からしい一つを真とする。また、エラー訂正回路は、真としたエラー検出結果に対応する読み出しデータ列のエラーを訂正する。符号データは、例えば、水平垂直パリティ符号または拡大ハミング符号であり、符号データの最小ハミング距離は、4以上である。
このように、データの一部を予想した複数の読み出しデータ列のエラー検出結果を互いに比較して真のエラーを検出し、真のエラーに基づいてブロックのいずれかで実際に発生したエラーを訂正することで、リフレッシュ動作を外部のシステムに対して隠すこと、およびエラー訂正を同時に達成できる。リフレッシュ動作を読み出し要求と競合することなく隠すことができるため、読み出しサイクル時間が長くなることを防止できる(AC特性の改善)。
エラー訂正機能により、例えば、データを保持できる最小時間であるデータリテンション時間が短いメモリセルによって発生するエラーを訂正できる。このため、リフレッシュ要求間隔を延ばすことができ、スタンバイ中の消費電力を削減できる(DC特性の改善)。具体的には、各メモリセルのリフレッシュ間隔を、ワーストのメモリセルのデータリテンション時間より長く設定しても、誤ったデータが読み出されることはない。したがって、本発明を、例えば、擬似SRAMに適用した場合、AC特性およびDC特性の両方をSRAMと同等以下にできる。換言すれば、SRAMと完全に互換性を有する擬似SRAMをユーザに提供できる。ユーザは、システム上に搭載されるSRAMを本発明が適用された擬似SRAMに置き換えるだけで、コストを削減できる。
本発明の半導体メモリの別の一形態では、リフレッシュ制御回路は、データブロックおよび符号ブロックのいずれか1つにリフレッシュ動作を実行させるために、データブロックおよび符号ブロックにリフレッシュ要求信号を順次出力する。リフレッシュ要求に応答するリフレッシュ動作を1つのブロックでのみ実行することで、リフレッシュ動作により読み出せないデータを、容易に復元できる。
本発明の半導体メモリの別の一形態では、アクセス制御回路は、読み出しコマンドに応答してリフレッシュブロックを除くデータブロックおよび符号ブロックに読み出し要求信号を出力する。すなわち、リフレッシュブロックは、読み出し動作を実行しない。このため、リフレッシュ要求と読み出し要求が競合することを防止でき、読み出しアクセス時間が増加することを防止できる。また、アクセス制御回路による読み出し動作の制御を容易にできる。
本発明の半導体メモリの別の一形態では、アクセス制御回路は、書き込みコマンドに応答してデータブロックおよび符号ブロックに書き込み要求信号を出力する。データブロックおよび符号ブロック内の各ブロック制御回路は、リフレッシュ要求信号と書き込み要求信号が競合するときに、リフレッシュ動作を実行した後に書き込み動作を遅れて実行する。このため、書き込みデータをリフレッシュブロックに対して確実に書き込むことができる。
本発明の半導体メモリの別の一形態では、書き込みコマンドの最小供給間隔である外部書き込みサイクル時間は、各ブロックの実際の書き込み動作時間である内部書き込みサイクル時間より長く設定されている。このため、ブロック制御回路は、連続して供給される書き込み要求信号の間にリフレッシュ要求が発生した場合にも、書き込み動作の遅れを徐々に取り戻すことができる。すなわち、書き込みデータをリフレッシュブロックに確実に書き込むことができる。
本発明の半導体メモリの別の一形態では、あるリフレッシュブロックの最後のリフレッシュ要求信号から次のリフレッシュブロックに切り替わるまでの切り替え期間に、n回の外部書き込みサイクル時間が挿入可能であり、かつ1回のリフレッシュ動作とn回の書き込み動作を実行可能である。例えば、切り替え期間は、外部書き込みサイクル時間Tcycと内部書き込みサイクル時間との差をδとするときに、少なくとも(Tcyc/δ)×Tcycに設定される。このため、あるブロックにおいてリフレッシュ要求により遅れた書き込み動作は、そのブロックがリフレッシュブロックの期間に完了する。リフレッシュブロックから通常のブロックに切り替わった後、リフレッシュブロック中に供給された書き込み要求に対応する未完了の書き込み動作はない。このため、リフレッシュブロック以外のブロックにおいて、リフレッシュ動作と書き込み動作の競合に伴って読み出し動作が遅れることを防止でき、読み出しアクセス時間が長くなることを防止できる。
本発明の半導体メモリの別の一形態では、符号ブロックは、不良を救済するロウ冗長回路およびコラム冗長回路の少なくともいずれかの代わりに形成される。不良のメモリセルから読み出される誤ったデータは、エラー訂正回路により訂正できる。冗長回路の形成が不要になるため、チップサイズを削減できる。
本発明の半導体メモリの別の一形態では、エラー訂正回路は、読み出しデータ列のうちエラーの少ない読み出しデータ列を真として選択する。例えば、エラー訂正回路は、「エラー無し」、「データブロックのいずれかの1ビットエラー」、「符号ブロックのいずれかの1ビットエラーである符号エラー」および「2ビット以上のエラー」のいずれかを検出し、エラー判定の優先度を、エラー無し>1ビットエラー>符号エラー>2ビット以上のエラーとする。そして、エラー訂正回路は、優先度の高い項目を真とする。このため、エラー訂正回路のエラー判定論理を簡易に構成できる。
本発明の半導体メモリの別の一形態では、エラー訂正回路は、訂正不可能なエラーを検出したときに、エラー信号をエラー端子に出力する。例えば、エラー訂正回路は、「2ビット以上のエラー」を検出したときに、エラー信号を出力する。エラー信号により、半導体メモリをアクセスする外部のシステムは、読み出し動作のリトライ要求およびデータの廃棄等、エラーを回避する動作を実行できる。この結果、システムの信頼性を向上できる。
本発明の半導体メモリの別の一形態では、書き戻し制御回路は、エラー訂正回路が訂正したデータをデータブロックおよび符号ブロックに書き戻す。メモリセル内のデータが電源ノイズ、ソフトエラー等により破壊されたときに、正しいデータを書き込むことで、半導体メモリの信頼性を向上できる。
本発明の半導体メモリの別の一形態では、データブロックは、情報データを入出力する複数のデータ端子にそれぞれ対応して形成されている。このため、半導体メモリに一度に入出力されるデータ単位でエラーを訂正できる。この結果、符号データの生成および読み出しデータのエラー訂正の論理を簡易にでき、読み出しサイクル時間および書き込みサイクル時間が増加することを防止できる。
本発明の半導体メモリの別の一形態では、情報データを入出力する複数のデータ端子に一度に供給される書き込みデータは、データブロックの一部に書き込まれる。エラー訂正回路は、書き込み動作中に、データブロックおよび符号ブロックからの読み出しデータを用いて情報データを復号し、復号した情報データの一部を書き込みデータに入れ替えて書き換えデータ列を生成する。エラー訂正回路は、書き換えデータ列から新たな符号データを求め、書き換えデータ列および新たな符号データをデータブロックおよび符号ブロックにそれぞれ書き込む。情報データのビット数を増やすことで、情報データのビット数に対する符号データのビット数を相対的に減らすことができる。この結果、符号ブロックの数を、データブロックの数に対して相対的に減らすことができ、チップサイズを削減できる。
図1は、本発明の第1の実施形態を示すブロック図である。
図2は、図1に示したデータ制御回路の詳細を示すブロック図である。
図3は、図1に示したリフレッシュ制御回路の動作を示すタイミング図である。
図4は、図1に示したリフレッシュ制御回路の動作の詳細を示すタイミング図である。
図5は、第1の実施形態の読み出し動作の概要を示すタイミング図である。
図6は、第1の実施形態の書き込み動作の概要を示すタイミング図である。
図7は、第1の実施形態のパリティ符号の生成規則を示す説明図である。
図8は、図2に示したエラー判定回路の動作の概要を示すフローチャートである。
図9は、図2に示したエラー訂正回路の動作の概要を示す説明図である。
図10は、第1の実施形態の読み出し動作の一例を示すタイミング図である。
図11は、第1の実施形態の読み出し動作の別の例を示すタイミング図である。
図12は、本発明の第2の実施形態を示すブロック図である。
図13は、図12に示したデータ制御回路の詳細を示すブロック図である。
図14は、図13に示したエラー訂正回路のRTL記述を示す説明図である。
図15は、図14のRTL記述から論理合成した結果を示す回路図である。
図16は、図13に示したシンドローム生成回路のRTL記述を示す説明図である。
図17は、図13に示した符号化回路のRTL記述を示す説明図である。
図18は、図12に示したデータ制御回路のエラー訂正動作を示す説明図である。
図19は、図12に示したデータ制御回路の別のエラー訂正動作を示す説明図である。
図20は、本発明の半導体メモリの第3の実施形態を示すブロック図である。
図21は、本発明の半導体メモリの第4の実施形態を示すブロック図である。
図22は、図21に示したデータ制御回路の詳細を示すブロック図である。
図23は、本発明の半導体メモリの第5の実施形態を示すブロック図である。
図24は、図23に示した擬似SRAMの書き込み動作を示すタイミング図である。
以下、本発明の実施形態を図面を用いて説明する。図中の二重丸は、外部端子を示している。図中、太線で示した信号線は、複数本で構成されている。太線が接続されているブロックの一部は、複数の回路で構成されている。外部端子を介して供給される信号には、端子名と同じ符号を使用する。信号が伝達される信号線には、信号名と同じ符号を使用する。信号名の末尾の″z″は、正論理を示している。
図1は、本発明の半導体メモリの第1の実施形態を示している。この半導体メモリは、シリコン基板上にCMOSプロセスを使用してクロック同期式のシンクロナス擬似SRAMとして形成されている。
擬似SRAMは、アドレスバッファ10、データ制御回路12、データ入出力バッファ14、コマンドバッファ16、アクセス制御回路18、リフレッシュ制御回路20、クロックバッファ22およびメモリコア24を有している。
メモリコア24は、データブロックMBD0−15、符号ブロックMBE0−7およびブロック制御回路BCNTを有している。データブロックMBD0−15は、データ端子DQ15−0にそれぞれ対応して形成されており、データ端子DQ15−0を介して供給される情報データ(以下、単にデータとも称する)をそれぞれ保持する。符号ブロックMBE0−7は、データブロックMBD0−15に保持されるデータにより生成される8ビットの誤り訂正符号の各ビットをそれぞれ保持する。誤り訂正符号は、データブロックに記憶された情報データを復号するための符号データとして使用される。なお、特に図示していないが、メモリコア24は、ワード線単位で不良を救済するためのロウ冗長回路およびビット線単位で不良を救済するためのコラム冗長回路を有している。
ブロック制御回路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は、ダイナミックメモリセルと、これ等ダイナミックメモリセルに接続されたワード線、ビット線とを有している。メモリセルは、データの論理値を電荷として保持するキャパシタと、キャパシタをビット線に接続する転送トランジスタとを有している。転送トランジスタのゲートは、ワード線に接続されている。なお、この実施形態では、後述する図7に示すように、水平垂直パリティが、エラー訂正符号として採用されている。
アドレスバッファ10は、アドレス端子ADを介してアドレス信号ADを受信する。この擬似SRAMは、ロウアドレス信号およびコラムアドレス信号を一度に受信するアドレスノンマルチプレクス方式を採用している。ロウアドレス信号は、ブロックMBD0−15、MBE0−7内のワード線の選択に使用される。コラムアドレスは、ブロックMBD0−15、MBE0−7内のビット線の選択に使用される。
クロックバッファ22は、クロック端子CLKを介してクロック信号CLKを受信し、受信した信号を内部クロック信号ICLKとして出力する。クロック信号CLKは、例えば、擬似SRAMが搭載されるシステム基板のシステムクロックである。内部クロック信号ICLKは、擬似SRAM内のクロック同期が必要な回路に供給される。
リフレッシュ制御回路20は、特に図示していないが、タイマ、カウンタ、シフトレジスタおよびリフレッシュ要求生成回路を有している。タイマは、内部クロック信号ICLKに同期して動作し、周期信号(パルス信号)を生成する。タイマの周期は、リフレッシュ要求の発生間隔に一致する。カウンタは、タイマからの周期信号に同期してカウント動作し、リフレッシュアドレス信号REFADを生成する。リフレッシュアドレス信号REFADは、リフレッシュ動作中にワード線を選択するために出力される。カウンタのビット数は、カウンタが一周したときに、ブロックMBD0−15、MBE0−7内の全てのワード線が選択される数に設定されている。
シフトレジスタは、縦続接続された24個のラッチを有しており、最終段のラッチの出力は初段のラッチの入力に帰還されている。パワーオンリセット中に、ラッチの一つは高レベルにセットされ、残りのラッチは低レベルにリセットされる。シフトレジスタは、カウンタのオーバフロー毎にシフト動作し、リフレッシュ動作を実行するブロック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]を出力する。
コマンドバッファ16は、コマンド端子CMDを介してコマンド信号CMDを受信し、受信したコマンド信号CMDをアクセス制御回路18に出力する。コマンド信号CMDは、例えば、チップイネーブル信号/CE、アウトプットイネーブル信号/OEおよびライトイネーブル信号/WE等の擬似SRAMの動作を制御する信号である。コマンド端子CMDを介して供給されるコマンドとして書き込み動作を実行するための書き込みコマンドおよび読み出し動作を実行するための読み出しコマンドがある。
アクセス制御回路18は、コマンド信号CMDを解読し、解読結果に応じて読み出し動作を実行する読み出し要求信号rdd[15:0]、rde[7:0]、または書き込み要求信号wrd[15:0]、wde[7:0]を出力する。但し、アクセス制御回路18は、リフレッシュポイント信号refpointd[15:0]、refpointe[7:0]のいずれかの活性化に応答して、対応する読み出し要求信号(rdd[15:0]、rde[7:0]のいずれか)の出力をマスクする。すなわち、読み出し動作は、リフレッシュブロックで禁止され、他のブロックで実行される。リフレッシュブロックの読み出し動作を常に禁止することで、アクセス制御回路18の読み出し制御を簡易にできる。
データ入出力バッファ14は、書き込み動作中に、データ端子DQ15−0を介して受信したデータ信号を入力データDIN[15:0]として出力し、読み出し動作中に、データ制御回路12から供給される出力データDOUT[15:0]をデータ端子DQ15−0に出力する。
データ制御回路12は、書き込み動作中に、入力データDIN[15:0]を書き込みデータwdat[15:0]としてメモリコア24に出力し、同時に入力データDIN[15:0]から生成されるエラー訂正符号(書き込み符号データ)wecc[7:0]をメモリコア24に出力する。また、データ制御回路12は、読み出し動作中に、メモリコア24から読み出しデータrdat[15:0]およびエラー訂正符号(読み出し符号データ)recc[7:0]を受け、リフレッシュブロックから読み出されるべき1ビットのデータを復号する。データ制御回路12は、同時に、データ保持特性が悪くデータが失われたメモリセルからの読み出しデータ(1ビット)を復号する。エラー訂正された読み出しデータは、出力データ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のブロック番号にそれぞれ対応する。
図2は、図1に示したデータ制御回路12の詳細を示している。
データ制御回路12は、メモリコア24からの読み出しデータrdat[15:0]、recc[7:0]をエラー訂正するデータ訂正部12aおよびメモリコア24への入力データDIN[15:0]からエラー訂正符号を生成するデータ符号化部12bを有している。データ訂正部12aは、データ付加回路26およびエラー訂正回路12cを有している。エラー訂正回路12cは、符号化回路28、30、エラー判定回路32、34およびエラー復号回路36を有している。データ符号化部12bは、符号化回路38を有している。
データ付加回路26は、読み出し動作を実行できないリフレッシュブロックとして動作しているデータブロック(MBD0−15のいずれか)からの読み出しデータを″論理1″および″論理0″と仮定して、読み出しデータrdat0[15:0]、rdat1[15:0]をそれぞれ生成する。あるいは、データ付加回路26は、読み出し動作を実行できないリフレッシュブロックとして動作している符号ブロック(MBE0−7のいずれか)からのエラー訂正符号を″論理1″および″論理0″と仮定して、読み出しデータrecc0[7:0]、recc1[7:0]を生成する。すなわち、データ付加回路26は、リフレッシュブロックから読み出されるべきデータを″論理1″または″論理0″の予想データとして、他のブロックからの読み出しデータに付加し、読み出しデータ列rdat0[15:0]、recc0[7:0]および読み出しデータ列rdat1[15:0]、recc1[7:0]を生成する。
符号化回路28は、読み出しデータrdat0[15:0](情報データ列)からエラー訂正符号rrecc0[7:0](第1符号データ)を生成する。符号化回路30は、読み出しデータrdat1[15:0](情報データ列)からエラー訂正符号rrecc1[7:0](第2符号データ)を生成する。
エラー判定回路32は、エラー訂正符号rrecc0[7:0]をエラー訂正符号recc0[7:0](符号データ)と比較することでエラーの有無およびエラーの種類を判定し、判定結果を比較結果信号res0として出力する。エラー判定回路34は、エラー訂正符号rrecc1[7:0]をエラー訂正符号recc1[7:0](符号データ)と比較することでエラーの有無およびエラーの種類を判定し、判定結果を比較結果信号res1として出力する。比較結果信号res0、res1は、一致(エラー無し)、ECCエラー(符号ブロックMBDの1ビットエラー;符号エラー)、1ビットエラー(データブロックMBEの1ビットエラー)、2ビット以上のエラーのいずれかをそれぞれ示す。エラー項目の詳細は、後述する図8、図9で説明する。
エラー復号回路36は、比較結果信号res0、res1が示すエラー内容に応じて、比較結果信号res0、res1のどちらが真かを判定し、判定した比較結果信号res0またはres1に応じて読み出しデータのエラーを訂正し、出力データ[15:0]として出力する。出力データ[15:0]は、データ端子DQ15−0を介して擬似SRAMの外部に出力される。比較結果信号res0が真と判定された場合、リフレッシュブロックから読み出されるべきデータは、″論理0″である。比較結果信号res1が真と判定された場合、リフレッシュブロックから読み出されるべきデータは、″論理1″である。
データ符号化部12bの符号化回路38は、入力データ[15:0](書き込みデータ)からエラー訂正符号wecc[7:0]を生成し、書き込みデータwdat[15:0]とともにメモリコア24に出力する。
図3は、図1に示したリフレッシュ制御回路20の動作を示している。
リフレッシュ制御回路20は、リフレッシュポイント信号refpointd[15:0]、refpointe[7:0]を順次高レベルに活性化する。各リフレッシュポイント信号refpointd[15:0]、refpointe[7:0]の活性化間隔(例えば、リフレッシュポイント信号refpointd[0]の活性化間隔T1は、ワーストのメモリセルのデータリテンション時間より長く設定されている。データリテンション時間は、メモリセルがデータを失うことなく保持できる時間である。
活性化間隔T1は、各メモリセルのリフレッシュ間隔にも対応している。このため、この実施形態では、ワーストのメモリセルは、リフレッシュ動作を実行するときに既にデータを消失する。しかし、失われたデータは、データ制御回路12のエラー訂正機能により復号できる。このため、メモリセルのリフレッシュ間隔を長くでき、リフレッシュ要求間隔およびリフレッシュ動作間隔を長くできる。この結果、特に、スタンバイ期間の消費電力を削減できる。
図4は、図1に示したリフレッシュ制御回路20の動作の詳細を示している。図4の波形は、図3に一点鎖線で示した領域に対応する。
例えば、リフレッシュ制御回路20は、リフレッシュポイント信号refpointe[7]の活性化期間T2に、対応するデータブロックMBD7のリフレッシュ要求信号refe[7]を所定回数高レベルに活性化する。このように、リフレッシュ要求に応答するリフレッシュ動作は、活性化されたリフレッシュポイント信号refpointe(またはrefpointd)に対応するブロックMBE(またはMBD)でのみ実行される。換言すれば、同時にアクセスされる24個のブロックMBD15−0、MBE7−0のうち、常に一つのブロックのみが、リフレッシュ動作を実行するリフレッシュブロックとして動作する。
リフレッシュ要求信号refe[7]の活性化回数は、ブロックMBEのメモリセルを全てリフレッシュするために必要な回数である。例えば、リフレッシュ要求毎に1本のワード線が選択される場合、活性化回数は、各ブロックのワード線の本数に等しい。リフレッシュポイント信号refpointd[15:0]、refpointe[7:0]は、リフレッシュブロックの最後のリフレッシュ要求信号refd(またはrefe)の出力から次のリフレッシュブロックの最初のリフレッシュ要求信号refd(またはrefe)の出力までに切り替えられる。最後のリフレッシュ要求信号の出力からリフレッシュポイント信号の切り替えまでの期間T3は、リフレッシュ要求と書き込み要求とが競合したときの処理に必要である。期間T3については、後述する図6で説明する。
図5は、第1の実施形態の読み出し動作の概要を示している。図5の波形は、図4に一点鎖線で示した領域に対応する。
この例では、擬似SRAMは、コマンド端子CMDから読み出しコマンドを連続して受信し、読み出し動作を連続して実行する。図1に示したアクセス制御回路18は、リフレッシュポイント信号refpointd[15:0]、refpointe[7:0]のいずれかの活性化を受けている間、対応する読み出し要求信号rdd[15:0]、rde[7:0]の出力をマスクする。このため、リフレッシュブロックでは、読み出し動作は実行されず、リフレッシュ動作のみが実行される。読み出し動作を実行しないリフレッシュブロックから読み出されるべきデータは、他のブロックからの読み出しデータにより復号される。このため、読み出し動作は、リフレッシュ動作により遅れない。すなわち、読み出しアクセス時間を長くすることなくリフレッシュ動作を外部に対して完全に隠すことができる。
図6は、第1の実施形態の書き込み動作の概要を示している。
この例では、擬似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)との競合が発生する。図1に示したアクセス制御回路18は、リフレッシュ要求と書き込み要求とが競合したとき、リフレッシュ動作を優先して実行する(図6(a))。アクセス制御回路18は、リフレッシュ動作の完了後、待たせていた書き込み要求に対応する書き込み動作を順次実行する(図6(b))。
書き込みコマンドの最小供給間隔(wrdの出力間隔;外部書き込みサイクル時間)は、メモリコア24の書き込み動作時間(wrzの最小出力間隔;内部書き込みサイクル時間)より長く設計されている。このため、リフレッシュ動作の割り込みに伴う書き込み動作の遅れは、書き込み動作を所定回数連続して実行することで、取り戻せる。この例では、あるリフレッシュブロックの最後のリフレッシュ要求信号refd(またはrefe)から次のリフレッシュブロックに切り替わるまでの切り替え時間T4の間に、8回の外部書き込みサイクル時間が挿入可能であり、かつ1回のリフレッシュ動作と8回の書き込み動作を実行できる。切り替え時間T4は、リフレッシュ動作の割り込みに伴う書き込み動作の遅れを取り戻すまでの回復時間である。このため、書き込みコマンドが連続して供給される場合にも、リフレッシュブロックの書き込み動作は、そのリフレッシュブロックが切り替わる前に必ず完了できる。
この結果、リフレッシュブロックから通常のデータブロックまたは符号ブロックに切り替わった直後に、読み出しコマンドが供給される場合にも、読み出しデータの出力が遅れることを防止できる。すなわち、読み出しアクセス時間および読み出しサイクル時間が、書き込み動作の影響を受けて長くなることを防止できる。なお、切り替え時間T4は、外部書き込みサイクル時間Tcyceと内部書き込みサイクル時間Tcyciとの差をδとするとき、(Tcyce/δ)×Tcyce以上であればよい。
また、切り替え時間T4は、次式(1)の関係を満たすように設計してもよい。差δは、切り替え時間T4を内部書き込みサイクル時間Tcyciに対して十分に大きく設定できる場合、無視できる程度になる。このため、外部書き込みサイクル時間Tcyceを内部書き込みサイクル時間Tcyciとほぼ等しくできる。すなわち、リフレッシュ動作を書き込み動作に優先して実行するためのアクセスペナルティは、ほとんどない。
(T4/Tcyci)−(T4/(Tcyci+δ))≧Tcyci ‥‥‥(1)
図7は、第1の実施形態のパリティ符号の生成規則を示している。
この実施形態では、最小ハミング距離が″4″の水平垂直パリティが、エラー訂正符号として採用されている。パリティは、偶数パリティ、奇数パリティのいずれでもよい。この符号は、1ビットのエラーを訂正し、同時に2ビットのエラーを検出できる。
データブロックMBD0−15内の同じアドレスに対応するデータを4行4列で示すとき、データブロック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)。
上述した水平垂直パリティ符号は、符号化する情報データが16ビット(本実施形態)、32ビット、64ビット、128ビット、256ビットのとき、それぞれ8ビット、10ビット、12ビット、14ビット、16ビット必要になる。すなわち、情報ビットが2のn乗のとき、符号データは2nビット必要になる。これに対して、一般的な水平垂直パリティ符号は、符号化する情報データが16ビット、32ビット、64ビット、128ビット、256ビットのとき、それぞれ8ビット、12ビット、16ビット、24ビット、32ビット必要になる。このため、上述した水平垂直パリティ符号は、特に、情報データが32ビット以上のときに符号ブロックの数を一般の水平垂直パリティ符号より減らすことができる。
図8は、図2に示したエラー判定回路32、34の動作の概要を示している。ここでは、符号ブロックMBE0−7から読み出されたエラー訂正符号recc[0:7]をlp[0:3]、cp[0:3]と表し、データブロックMBD0−7から読み出されるデータに応じて図2に示した符号化回路28(または30)により生成されるエラー訂正符号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において、次式(2)〜(5)が全て成立するか否かが判定される。全ての式が成立する場合、1ビットエラーと判定され、処理はステップS50に移行する。少なくともいずれかの式が不成立の場合、2ビット以上のエラーと判定され、処理はステップS40に移行する。ステップS40において、2ビット以上のエラーを示す比較結果信号res0(またはres1)=″0001″が出力され、処理は終了する。
cp[0]+cp[1]+CP[0]+CP[1]=1 ‥‥‥(2)
cp[2]+cp[3]+CP[2]+CP[3]=1 ‥‥‥(3)
lp[0]+lp[1]+LP[0]+LP[1]=1 ‥‥‥(4)
lp[2]+lp[3]+LP[2]+LP[3]=1 ‥‥‥(5)
ステップS50において、cp[0:3]とCP[0:3]、lp[0:3]とLP[0:3]とがそれぞれ比較される。これ等8ビットの比較のうち、1ビットのみ不一致の場合、ECCコードエラーと判定され、処理はステップS60に移行する。それ以外の場合、1ビットエラーと決定され、処理はステップS70に移行する。ステップS60において、ECCコードエラーを示す比較結果信号res0(またはres1)=″0100″が出力され、処理は終了する。ステップS70において、1ビットエラーを示す比較結果信号res0(またはres1)=″00100″が出力され、処理は終了する。
図9は、図2に示したエラー復号回路36の動作の概要を示している。
エラー復号回路36は、エラー判定回路32、34から比較結果信号res0、res1を受信する。比較結果信号res0、res1は、図8に示したように、エラーの内容により、2進数の″1000(エラー無し)″、″0100(ECCエラー;符号ブロックの1ビットエラー)″、″0010(1ビットエラー;データブロックの1ビットエラー)″、″0001(2ビット以上のエラー)″のいずれかを示す。
図9(a)、(b)、(c)は、データブロックMBD0−15のいずれかがリフレッシュブロックとして動作し、このリフレッシュブロックから読み出されるべきデータが″論理0″の場合を示している。図9(a)において、読み出し動作でエラーがない場合、リフレッシュブロックからの読み出しデータを″論理0″とした比較結果信号res0は、エラー無しを示し、リフレッシュブロックからの読み出しデータを″論理1″とした比較結果信号res1は、1ビットエラー(リフレッシュブロックのみエラー)を示す。
図9(b)において、読み出し動作でリフレッシュブロックを除くデータブロックMBD0−15のいずれかに1ビットエラーがある場合、比較結果信号res0は、1ビットエラーを示し、比較結果信号res1は、2ビット以上のエラー(リフレッシュブロックの1ビットおよびデータブロックの1ビットエラー)を示す。図9(c)において、読み出し動作で符号ブロックMBE0−7のいずれかに1ビットエラーがある場合、比較結果信号res0は、ECCエラーを示し、比較結果信号res1は、2ビット以上のエラー(リフレッシュブロックの1ビットおよびECCエラー)を示す。
図9(d)、(e)、(f)は、データブロックMBD0−15のいずれかがリフレッシュブロックとして動作し、このリフレッシュブロックから読み出されるべきデータが″論理1″の場合を示している。図9(d)、(e)、(f)では、リフレッシュブロックから読み出されるべきデータの論理値は、図9(a)、(b)、(c)と逆になる。このため、比較結果信号res0、res1は、図9(a)、(b)、(c)の逆になる。
図9(g)、(h)、(i)は、符号ブロックMBE0−7のいずれかがリフレッシュブロックとして動作し、このリフレッシュブロックから読み出されるべきデータが″論理0″の場合を示している。図9(g)において、読み出し動作でエラーがない場合、リフレッシュブロックからの読み出しデータを″論理0″とした比較結果信号res0は、エラー無しを示し、リフレッシュブロックからの読み出しデータを″論理1″とした比較結果信号res1は、ECCエラー(リフレッシュブロックのみエラー)を示す。
図9(h)において、読み出し動作でデータブロックMBD0−15のいずれかに1ビットエラーがある場合、比較結果信号res0は、1ビットエラーを示し、比較結果信号res1は、2ビット以上のエラー(リフレッシュブロックの1ビットおよびデータブロックの1ビットエラー)を示す。図9(i)において、読み出し動作でリフレッシュブロックを除く符号ブロックMBE0−7のいずれかに1ビットエラーがある場合、比較結果信号res0は、ECCエラーを示し、比較結果信号res1は、2ビット以上のエラー(リフレッシュブロックの1ビットおよびECCエラー)を示す。
図9(j)、(k)、(l)は、符号ブロックMBE0−7のいずれかがリフレッシュブロックとして動作し、このリフレッシュブロックから読み出されるべきデータが″論理1″の場合を示している。図9(j)、(k)、(l)では、リフレッシュブロックから読み出されるべきデータの論理値は、図9(g)、(h)、(i)と逆になる。このため、比較結果信号res0、res1は、図9(g)、(h)、(i)の逆になる。
エラー復号回路36は、比較結果信号res0、res1のいずれかを真のエラーとし、この結果に基づいてエラーを訂正する。この際、エラー復号回路36は、エラー判定の優先度を高い順から、エラー無し>ECCエラー>1ビットエラー>2ビット以上のエラーとする。すなわち、エラーの少ない比較結果信号res0、res1のいずれかが真とされる。このため、図9(a)、(d)、(g)、(j)では、エラー無しと判定される。図9(b)、(e)、(h)、(k)では、1ビットエラーと判定される。図9(c)、(f)、(i)、(l)では、ECCエラーと判定される。
エラー復号回路36は、優先度の高い比較結果信号res0、res1に対応する論理値をリフレッシュブロックから読み出されるべきデータの論理値とし、出力データDOUT[15:0]として出力する。具体的には、res0の優先度がres1より高い場合、リフレッシュブロックに対応する出力データDOUTのビットは、″論理0″に設定される。res1の優先度がres0より高い場合、リフレッシュブロックに対応する出力データDOUTのビットは、″論理1″に設定される。
さらに、エラー復号回路36は、データブロックMBD0−15のいずれかに1ビットエラーが存在すると判定した場合、このエラーを訂正する。エラーのあるデータブロックMBD0−15(1ビットエラーを発生しているエラーアドレス)は、次式(6)、(7)にエラー訂正符号recc[0:7]を代入して求められる。例えば、(L1,L0)=″01″、(C1,C0)=″11″の場合、図7に示したように、エラーブロックは、データブロックMBD7である。このとき、エラー復号回路36は、データブロックMBD7から読み出されたデータの論理値を反転してデータ出力バッファ14に出力する。なお、この実施形態では、エラーを訂正したデータは、ブロックに書き込まれない。これは、1ビットエラーおよびECCエラーは、そのメモリセルのデータリテンション時間の不足あるいは物理的な不良と考えられるためである。この種のエラーに対してメモリセルに正しいデータを書き込んでも、エラーは再び発生するため、処理時間の無駄になる。
(L1,L0)=(lp[3]+LP[3],lp[1]+LP[1])‥‥‥(6)
(C1,C0)=(cp[3]+CP[3],cp[1]+CP[1])‥‥‥(7)
図10は、第1の実施形態の読み出し動作の一例(シミュレーション結果)を示している。
この例では、データブロックMBD10がリフレッシュブロックとして動作する(図10(a))。擬似SRAMは、読み出しコマンドRDZとともに、16進数の″0″から″F″のロウアドレスMBADを読み出しアドレスとして順次受け、読み出し動作を連続して実行する(図10(b))。
読み出しアドレス″0″、″1″、″2″、...、″D″、″E″、″F″が示すデータブロックMBD0−15のメモリセルには、予め16進数のデータ″0000″、″1111″、″2222″、...、″DDDD″、″EEEE″、″FFFF″がそれぞれ書き込まれている。読み出しアドレス″0″、″1″、″2″、...、″D″、″E″、″F″が示す符号ブロックMBE0−7のメモリセルには、予め16進数のデータ″00″が書き込まれている。しかし、この例では、符号ブロックMBE6に1ビットエラー(ECCエラー)が発生するため、読み出しデータrecc[7:0]は、16進数の″40″になる(図10(c))。なお、実際の異なるアドレスの読み出し動作において、符号ブロックMBE6に連続して1ビットエラーが発生することはまれである。
図1に示したリフレッシュ制御回路20は、読み出しアドレス″2″の読み出し動作中に、リフレッシュ要求信号refd[10]を出力する(図10(d))。メモリコア24は、リフレッシュ要求信号refd[10]に応答して、データブロックMBD10のリフレッシュ動作を実行する。
リフレッシュブロックとして動作するデータブロックMBD10からデータは読み出されないため、読み出しデータrdat[15:0]の第10ビットは、例えば″論理0″として読み出される。このため、第10ビットの期待値が″論理1″のとき(例えば、″4444″、″5555″など)、リフレッシュブロックの読み出しエラーが発生する。このとき、エラー復号回路36は、2ビット以上のエラーを示す比較結果信号res0(″0001″)と、ECCエラーを示す比較結果信号res1(″0100″)を受け、比較結果信号res1の優先度が高いと判定し、ECCエラーの発生を検出する(図10(e、f))。
また、エラー復号回路36は、比較結果信号res1の優先度が高いため、リフレッシュブロックから読み出されるべきデータの論理値を″論理1″と判定し、アシュームフラグASMFLGを″論理1″にセットする(図10(g、h))。アシュームフラグASMFLGは、エラー復号回路36内で使用される内部信号である。アシュームフラグASMFLGのセットにより、出力データ[15:0]の第10ビットは、″論理1″に設定される。すなわち、読み出し動作を実行しないリフレッシュブロックからのデータが再生される。
一方、読み出しデータrdat[15:0]の第10ビットの期待値が″論理0″のとき(例えば、″0000″、″1111″、″2222″、″3333″など)、リフレッシュブロックの読み出しエラーは発生しない。このとき、エラー復号回路36は、ECCエラーを示す比較結果信号res0(″0100″)と、2ビット以上のエラーを示す比較結果信号res1(″0001″)を受け、比較結果信号res0の優先度が高いと判定し、ECCエラーの発生を検出する(図10(i、j、k))。
また、エラー復号回路36は、比較結果信号res0の優先度が高いため、リフレッシュブロックから読み出されるべきデータの論理値を″論理0″と判定し、アシュームフラグASMFLGを″論理0″にセットする(図10(l、m、n))。アシュームフラグASMFLGにセットにより、出力データ[15:0]の第10ビットは、″論理0″に設定される。すなわち、読み出し動作を実行しないリフレッシュブロックからのデータが再生される。
図11は、第1の実施形態の読み出し動作の別の例(シミュレーション結果)を示している。図10と同じ動作については、詳細な説明を省略する。
この例では、図10と同様に、擬似SRAMは、読み出しコマンドRDZとともに、16進数の″0″から″F″のロウアドレスMBADを読み出しアドレスとして順次受け、読み出し動作を連続して実行する(図11(a))。リフレッシュブロックは、連続する読み出し動作の途中で、データブロックMBD10からデータブロックMBD11に切り替わる(図11(b))。データブロックMBD0−15、符号ブロックMBE0−7に予め書き込まれているデータは、図10と同じである。この例では、データブロックMBD12に1ビットエラーが発生し、読み出しデータrdat[15:0]の第12ビットは、読み出し動作毎に″0″および″1″に変化する。なお、実際の異なるアドレスの読み出し動作において、符号ブロックMBD12に連続して1ビットエラーが発生することはまれである。
リフレッシュブロックとして動作するデータブロックMBD10からデータは読み出されないため、読み出しデータrdat[15:0]の第10ビットは、例えば″論理0″として読み出される。同様に、リフレッシュブロックとして動作するデータブロックMBD11からデータは読み出されないため、読み出しデータrdat[15:0]の第11ビットは、例えば″論理1″として読み出される。
上述した図10と同様に、データ制御回路12のエラー判定回路32、34は、読み出しデータrdat[15:0]およびエラー訂正符号recc[7:0]から比較結果信号res0、res1を生成する。比較結果信号res0、res1は、2ビット以上のエラー(″0001″)またはデータブロックの1ビットエラー(″0010″)を示す。エラー復号回路36は、比較結果信号res0、res1に基づいて、リフレッシュ動作の実行により読み出せないデータを再生する。また、エラー復号回路36は、上述の式(6)、(7)に示したように、エラー訂正符号recc[7:0]から1ビットエラーが発生したブロックアドレスを求め、そのブロックアドレスから読み出されたデータを反転する。すなわち、データブロックMBD12で発生した1ビットエラーが訂正される。
以上、本実施形態では、リフレッシュブロックから読み出されるべき予想データ(論理1、論理0)を、他のブロックから読み出されるデータにそれぞれ付加して2つの読み出しデータ列rdat0、rdat1を生成するデータ付加回路26と、読み出しデータ列rdat0、rdat1についてそれぞれエラーを検出し、これ等のエラー検出結果から最も確からしい一つを真とするエラー訂正回路12cとを擬似SRAMに構成した。このため、擬似SRAMをアクセスするシステムに対してリフレッシュ動作を隠すことができ、同時にリフレッシュブロック以外で発生した1ビットエラーを訂正できる。これは、最小ハミング距離が″4″の水平垂直パリティ符号を使用することで可能になる。
リフレッシュ動作を読み出し要求と競合することなく隠すことができるため、読み出しサイクル時間が長くなることを防止できる。また、リフレッシュ要求間隔を延ばすことができ、スタンバイ中の消費電力を削減できる。したがって、AC特性およびDC特性の両方をSRAMと同等以下にできる擬似SRAMを構成できる。換言すれば、SRAMと完全に互換性を有する擬似SRAMをユーザに提供できる。ユーザは、システム上に搭載されるSRAMを本発明の擬似SRAMに置き換えるだけで、コストを削減できる。
リフレッシュ制御回路20が出力するリフレッシュポイント信号refpointd[15:0]、refpointd[7:0]により、データブロックMBD0−15および符号ブロックMBE0−7のいずれか1つのみをリフレッシュブロックに設定した。リフレッシュ動作により読み出せないデータを常に1ビットにできるため、リフレッシュ動作により読み出せないデータを、簡易なデータ付加回路26およびエラー訂正回路12cによって復号できる。
アクセス制御回路18は、リフレッシュブロックに対して読み出し要求信号rdd、rdeを出力しないため、リフレッシュブロックは、リフレッシュ動作の実行中、非実行中にかかわらず読み出し動作を実行しない。このため、ブロック制御回路BCNTの読み出し制御を容易にできる。
ブロック制御回路BCNTは、リフレッシュ要求信号refd(またはrefe)と書き込み要求信号wrd(またはwre)が競合するときに、リフレッシュ動作を実行した後に、書き込み動作を遅れて実行する。このため、書き込みデータwdat(またはwecc)をリフレッシュブロックに対して確実に書き込むことができる。
書き込みコマンドの最小供給間隔である外部書き込みサイクル時間Tcyceを、内部書き込みサイクル時間Tcyciより長く設定した。具体的には、8回の外部書き込みサイクル時間Tcyceの間に、1回のリフレッシュ動作と8回の書き込み動作を実行可能にした。このため、リフレッシュ動作の優先により発生した書き込み動作の遅れを徐々に取り戻すことができる。すなわち、書き込みデータをリフレッシュブロックに確実に書き込むことができる。
また、リフレッシュブロックの最後のリフレッシュ要求信号から次のリフレッシュブロックに切り替わるまでの切り替え期間に、8回の外部書き込みサイクル時間Tcyceを挿入可能とした。このため、あるブロックにおいてリフレッシュ要求により遅れた書き込み動作は、そのブロックがリフレッシュブロックの間に完了する。したがって、読み出し動作が、リフレッシュブロック中の書き込み動作の遅れの影響を受けて遅れることを防止でき、リフレッシュ動作と書き込み動作の競合に伴い読み出しアクセス時間が増加することを防止できる。
エラー訂正回路12cは、4種類のエラー項目を検出し(エラー無し、データブロックのいずれかの1ビットエラー、符号ブロックのいずれかの1ビットエラーである符号エラーおよび2ビット以上のエラー)、優先度の高いエラー項目を真とする。このため、簡易な論理でエラー訂正回路12cを構成できる。
データブロックMBD0−15を、データ端子DQ0−15にそれぞれ対応して形成することで、擬似SRAMに一度に入出力されるデータ単位でエラーを訂正できる。このため、符号データの生成および読み出しデータのエラー訂正の論理を簡易にでき、読み出しサイクル時間および書き込みサイクル時間が増加することを防止できる。
図12は、本発明の半導体メモリの第2の実施形態を示している。第1の実施形態で説明した回路・信号と同一の回路・信号については、同一の符号を付し、これ等については、詳細な説明を省略する。
この実施形態の半導体メモリは、シリコン基板上にCMOSプロセスを使用してクロック非同期式の擬似SRAMとして形成されている。すなわち、擬似SRAMは、クロック信号を受けるクロック端子を持っていない。また、この実施形態では、後述する図13、図14に示すように、拡大ハミング符号がエラー訂正符号として使用される。この拡大ハミング符号の最小ハミング距離は、″4″であり、1ビットのエラー訂正と、2ビットのエラー検出とを同時にできる。
擬似SRAMは、第1の実施形態のデータ制御回路12、アクセス制御回路18、リフレッシュ制御回路20およびメモリコア24の代わりに、データ制御回路12A、アクセス制御回路18A、リフレッシュ制御回路20Aおよびメモリコア24Aを有している。また、擬似SRAMは、クロック信号OSCを生成する発振器40Aを新たに有している。
メモリコア24Aは、データ端子DQ15−0にそれぞれ対応する16個のデータブロックMBD0−15、6ビットの誤り訂正符号の各ビットをそれぞれ保持する6個の符号ブロックMBE0−5およびブロック制御回路BCNTを有している。データブロックMBD0−15および符号ブロックMBE0−5の構造、メモリ容量は、第1の実施形態と同じである。すなわち、各ブロックMBD0−15、MBE0−5は、ダイナミックメモリセルと、これ等ダイナミックメモリセルに接続されたワード線、ビット線とを有している。
拡大ハミング符号は、符号化する情報データが16ビット(本実施形態)、32ビット、64ビット、128ビット、256ビットのとき、それぞれ6ビット、7ビット、8ビット、9ビット、10ビット必要になる。すなわち、情報ビットが2のn乗のとき、符号データはn+2ビット必要になる。このため、拡大ハミング符号は、上述した水平垂直パリティ符号より符号化率が高く、符号ブロックMBEの数を減らすことができる。また、符号ブロックMBEに配線される信号線を減らすことができる。この結果、擬似SRAMのチップサイズを削減できる。
発振器40Aは、パワーオン後、所定の周期のクロック信号OSCを自己発振する。この実施形態では、クロック信号OSCの周波数は、第1の実施形態のクロック信号CLKの周波数と同じに設定されている。
リフレッシュ制御回路20Aは、リフレッシュポイント信号refpointd[15:0]、refpointe[7:0]およびリフレッシュ要求信号refd[15:0]、refe[7:0]の代わりに、リフレッシュポイント信号refpoint[21:0]およびリフレッシュ要求信号ref[21:0]を出力することを除き、第1の実施形態のリフレッシュ制御回路20と同じである。すなわち、リフレッシュ制御回路20Aは、クロック信号OSCに同期して動作するタイマ、カウンタ、シフトレジスタおよびリフレッシュ要求生成回路を有している。シフトレジスタは、縦続接続された22個のラッチを有しており、最終段のラッチの出力は初段のラッチの入力に帰還されている。シフトレジスタは、カウンタのオーバフロー毎にシフト動作し、リフレッシュ動作を実行するブロックMBD0−15、MBE0−5を示すためのリフレッシュポイント信号refpoint[21:0]をラッチからそれぞれ出力する。リフレッシュポイント信号refpoint[21:0]により選択されたブロックMBD0−15、MBE0−5の一つは、リフレッシュ動作を実行するリフレッシュブロックとして動作する。リフレッシュ要求生成回路は、リフレッシュポイント信号refpoint[21:0]の活性化期間に、周期信号に同期して対応するリフレッシュ要求信号ref[21:0]を出力する。
リフレッシュ制御回路20Aの動作は、信号名が異なることを除き、図3および図4と同じである。すなわち、各リフレッシュポイント信号refpoint[21:0]の活性化間隔T1(各メモリセルのリフレッシュ間隔に対応)は、ワーストのメモリセルのデータリテンション時間より長く設定されている。ワーストのメモリセルは、リフレッシュ動作を実行するときに既にデータを消失する。しかし、失われたデータは、データ制御回路12Aのエラー訂正機能により復号できる。この結果、第1の実施形態と同様にスタンバイ期間の消費電力を削減できる。
アクセス制御回路18Aは、コマンド信号CMDを解読し、解読結果に応じて読み出し動作を実行する読み出し要求信号rd[21:0]または書き込み要求信号wr[21:0]を出力する。但し、アクセス制御回路18Aは、リフレッシュポイント信号refpoint[21:0]のいずれかの活性化を受けたとき、対応する読み出し要求信号rd[21:0]のいずれかの出力をマスクする。また、アクセス制御回路18Aは、リフレッシュ要求信号ref[21:0]のいずれかを受けたとき、対応する書き込み要求信号wr[21:0]のいずれかを、リフレッシュ動作が挿入される期間だけ順次遅らせて出力する。
データ制御回路12Aは、書き込み動作中に、入力データDIN[15:0]を書き込みデータwdat[21:0]としてメモリコア24に出力する。書き込みデータwdat[21:0]の上位6ビット[21:16]は、入力データDIN[15:0]から生成されるエラー訂正符号(書き込み符号データ)である。また、データ制御回路12は、読み出し動作中に、メモリコア24から読み出しデータrdat[21:0]を受け、リフレッシュ動作により読み出させないデータおよびデータ保持特性が悪くデータが失われたメモリセルからの読み出しデータをエラー訂正し、出力データDOUT[15:0]として出力する。読み出しデータrdat[21:0]の上位6ビット[21:16]は、符号ブロックMBE21−16から読み出されるエラー訂正符号(読み出し符号データ)である。また、データ制御回路12Aは、読み出し動作中に訂正が不可能な2ビット以上のエラーを検出したときに、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のブロック番号にそれぞれ対応する。
図13は、図12に示したデータ制御回路12Aの詳細を示している。
データ制御回路12Aは、メモリコア24Aからの読み出しデータを訂正するデータ訂正部12dおよびメモリコア24Aへの書き込みデータからエラー訂正符号を生成するデータ符号化部12eを有している。データ訂正部12dは、データ付加回路42およびエラー訂正回路12fを有している。エラー訂正回路12fは、シンドローム生成回路44、46、エラー判定回路48、50およびエラー復号回路52を有している。データ符号化部12eは、符号化回路54Aを有している。
データ付加回路42は、読み出し動作を実行できないリフレッシュブロックとして動作するブロック(MBD0−15、MBE0−5のいずれか)からの読み出しデータを″論理1″および″論理0″と仮定して、読み出しデータ列code0[21:0]、code1[21:0]をそれぞれ生成する。データ付加回路42は、リフレッシュポイント信号refpoint[21:0]によりリフレッシュブロックを判定する。すなわち、データ付加回路42は、リフレッシュブロックから読み出されるべきデータを″論理1″または″論理0″の予想データとして、他のブロックからの読み出しデータに付加し、読み出しデータ列code0[21:0]、code1[21:0]を生成する。
シンドローム生成回路44は、読み出しデータcode0[21:0]からシンドロームsyn0[5:0]を生成する。また、シンドローム生成回路44は、生成したシンドロームsyn0[5:0]からエラーの種別を判定し、比較結果信号res0として出力する。シンドローム生成回路46は、読み出しデータcode1[21:0]からシンドロームsyn1[5:0]を生成する。また、シンドローム生成回路46は、生成したシンドロームsyn1[5:0]からエラーの種別を判定し、比較結果信号res1として出力する。比較結果信号res0、res1の仕様は、第1の実施形態とほぼ同じである。但し、本実施形態では、「ECCエラー」はない。このため、エラー判定の優先度は、高い順からエラー無し>1ビットエラー>2ビット以上のエラーになる。
エラー判定回路48は、シンドロームsyn0[5:0]からエラーの種別およびエラーブロックを判定し、読み出しデータcode0[21:0]のエラーを訂正する。訂正された22ビットの読み出しデータは、訂正コードccode0[21:0]として出力される。訂正された22ビットの読み出しデータのうちメモリブロックMBD15−0に対応する下位の16ビットは、出力データdout0[15:0]として出力される。また、エラー判定回路48は、2ビット以上のエラーを検出したときに、エラーフラグ信号errflg_2b0を出力する。
エラー判定回路50は、エラー判定回路48と同じ回路である。エラー判定回路50は、シンドロームsyn1[5:0]からエラーの種別およびエラーブロックを判定し、読み出しデータcode1[21:0]のエラーを訂正し、訂正コードccode1[21:0]、出力データdout1[15:0]、エラーフラグ信号errflg_2b1を出力する。
エラー復号回路52は、比較結果信号res0、res1が示すエラー内容に応じて、エラー判定回路48、50のどちらが真かを判定し、判定したエラー判定回路48(または50)から出力される出力データ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]は、この実施形態では使用されないが、エラーの発生したメモリセルのデータを書き換える場合に使用される書き換えデータである。
データ符号化部12eの符号化回路54Aは、入力データDIN[15:0](書き込みデータ)からエラー訂正符号wdat[21:16]を生成し、書き込みデータwdat[15:0]とともにメモリコア24に出力する。
図14〜図17は、図13に示したデータ制御回路12Aの一部の回路ブロックのRTL記述および論理合成結果を示している。記述中の″syndrome″は、図13に示した″syn″に対応する。
図14は、図13に示したエラー判定回路48、50のRTL記述を示している。図15は、図14のRTL記述から論理合成した結果を示している。図16は、図13に示したシンドローム生成回路44、46のシンドローム生成部のRTL記述を示している。図17は、図13に示したデータ符号化部12eの符号化回路54のRTL記述を示している。
図18は、図12に示したデータ制御回路12Aのエラー訂正動作を示している。
図中のブロックD0−D15およびブロックP0−P5は、図12に示したデータブロックMBD0−15および符号ブロックMBE16−21にそれぞれ対応する。ブロックD0−D15、P0−P5のビットアドレスE1−E22は、一般的なハミング符号と同様に、シンドロームのビットがエラーアドレスを示すように割り当てられている。
この例では、データブロックMBD10(ブロックD10)がリフレッシュブロックとして動作している。このため、読み出しデータrdatのうちブロックD10に対応するビットは、網掛けの太枠で囲ったように不定である。図13に示したデータ制御回路12Aのデータ付加回路42は、ブロックD10に対応するビットに″論理0″を付加した読み出しデータcode0と、ブロックD10に対応するビットに″論理1″を付加した読み出しデータcode1とを生成する。
シンドローム生成回路44は、読み出しデータcode0からシンドロームsyn0[5:0]を生成する。シンドローム生成回路44は、シンドロームsyn0[5:0]の全ビットS5−0が″論理0″のため、エラー無しを示す比較結果信号res0(″1000″)を出力する。シンドローム生成回路46は、読み出しデータcode1からシンドロームsyn1[5:0]を生成する。シンドローム生成回路46は、シンドロームsyn1[5:0]の最上位ビットS5が″論理1″のため、1ビットエラーを示す比較結果信号res1(″0010″)を出力する。
エラー判定回路48は、シンドローム生成回路44からのシンドロームsyn0[5:0]がエラー無しを示すため、読み出しデータcode0[21:0]のうちデータブロックMBD15−0に対応するビットを出力データdout0[15:0]として出力する。エラー判定回路50は、シンドローム生成回路44からのシンドロームsyn1[5:0]が1ビットエラーを示すため、シンドロームsyn1[5:0]の下位5ビット(″01111″=10進の″15″)をエラーアドレス(″E15″=MBD10)とする。エラー判定回路50は、読み出しデータcode1[21:0]のうちデータブロックMBD10から読み出されたデータの論理を反転し、データブロックMBD15−0に対応するビットを出力データdout1[15:0]として出力する。
エラー復号回路52は、シンドローム生成回路44、46からの比較結果信号res0(エラー無し)、res1(1ビットエラー)より、エラー判定回路48の出力が正しいと判定する。エラー復号回路52は、エラー判定回路48から出力される出力データdout0[15:0]およびエラーフラグ信号errflg_2b0(エラー無しを示す)を出力データDOUT[15:0]およびECCエラー信号ECCERR(エラー無しを示す)として出力する。
図19は、図12に示したデータ制御回路12Aの別のエラー訂正動作を示している。図18と同じ記述および動作については詳細な説明を省略する。
この例では、図18と同様に、データブロックMBD10(ブロックD10)がリフレッシュブロックとして動作している。また、図中に太枠で示すように、データブロックMBD1(ブロックD1)に1ビットエラーが発生する。
データ制御回路12Aのデータ付加回路42は、ブロックD10に対応するビットに″論理0″を付加した読み出しデータcode0と、ブロックD10に対応するビットに″論理1″を付加した読み出しデータcode1とを生成する。
シンドローム生成回路44、46は、読み出しデータcode0、code1からシンドロームsyn0[5:0]、syn1[5:0]をそれぞれ生成する。シンドローム生成回路44は、シンドロームsyn0[5:0]の最上位ビットS5が″論理1″のため、1ビットエラーを示す比較結果信号res0(″0010″)を出力する。シンドローム生成回路46は、シンドロームsyn1[5:0]の最上位ビットS5が″論理0″かつビットS4−0の少なくともいずれかが″論理1″ため、2ビット以上のエラーを示す比較結果信号res1(″0001″)を出力する。
エラー判定回路48は、シンドローム生成回路44からのシンドロームsyn0[5:0]が1ビットエラーを示すため、シンドロームsyn0[5:0]の下位5ビット(″00101″=10進の″5″)をエラーアドレス(″E5″=MBD1)とする。エラー判定回路48は、データブロックMBD1から読み出された″論理1″を反転し、読み出しデータcode0[21:0]のうちデータブロックMBD15−0に対応するビットを出力データdout0[15:0]として出力する。エラー判定回路50は、シンドローム生成回路44からのシンドロームsyn1[5:0]が2ビット以上のエラーを示すため、エラー訂正を行わず、読み出しデータcode1[21:0]のうちデータブロックMBD15−0に対応するビットをそのまま出力データdout1[15:0]として出力する。また、エラー判定回路50は、エラーフラグ信号errflg_2b1を高レベルに活性化する。
エラー復号回路52は、シンドローム生成回路44、46からの比較結果信号res0(1ビットエラー)、res1(2ビット以上のエラー)より、エラー判定回路48の出力が正しいと判定する。エラー復号回路52は、エラー判定回路48から出力される出力データdout0[15:0]およびエラーフラグ信号errflg_2b0(エラー無しを示す)を出力データDOUT[15:0]およびECCエラー信号ECCERR(エラー無しを示す)として出力する。
この実施形態においても、上述した第1の実施形態と同様の効果を得ることができる。さらに、この実施形態では、符号データとして拡大ハミング符号を使用することで、符号データのビット数を減らすことができる。この結果、符号ブロックMBEの数を第1の実施形態に比べ2つ減らすことができ、擬似SRAMのチップサイズを削減できる。
また、エラー訂正回路12fは、訂正不可能な「2ビット以上のエラー」を検出したときに、ECCエラー信号ECCERRを出力する。ECCエラー信号ECCERRにより、擬似SRAMをアクセスする外部のシステムは、読み出し動作のリトライおよびデータの廃棄等、エラーを回避する動作を実行できる。この結果、システムの信頼性を向上できる。
図20は、本発明の半導体メモリの第3の実施形態を示している。第1および第2の実施形態で説明した回路・信号と同一の回路・信号については、同一の符号を付し、これ等については、詳細な説明を省略する。
この実施形態の半導体メモリは、シリコン基板上にCMOSプロセスを使用してクロック非同期式の擬似SRAMとして形成されている。また、この実施形態では、拡大ハミング符号がエラー訂正符号として使用される。この拡大ハミング符号の最小ハミング距離は、″4″であり、1ビットのエラー訂正と、2ビットのエラー検出とを同時にできる。
擬似SRAMは、第2の実施形態のメモリコア24Aおよび発振器40Aの代わりに、メモリコア24Bおよび発振器40Bを有している。その他の構成は、第2の実施形態とほぼ同一である。
メモリコア24Bは、ワード線単位で不良を救済するためのロウ冗長回路およびビット線単位で不良を救済するためのコラム冗長回路が形成されていないことを除き、第2の実施形態のメモリコア24Aと同じである。
発振器40Bは、第2の実施形態より周期の短いクロック信号OSCを自己発振する。このため、リフレッシュ制御回路は20Aが出力する各リフレッシュポイント信号refpoint[21:0]の活性化期間およびリフレッシュ要求信号ref[21:0]の発生間隔は、第2の実施形態より短くなる。具体的には、各リフレッシュポイント信号refpoint[21:0]、の活性化間隔T1(各メモリセルのリフレッシュ間隔に対応)は、ワーストのメモリセルのデータリテンション時間より短く設定されている。このため、ワーストのメモリセルを含む全てのメモリセルは、リフレッシュ動作の実行により常にデータを保持できる。データ制御回路12Aのエラー訂正機能は、製造工程で発生したメモリコアの不良を救済するために使用される。すなわち、符号ブロックMBE0−5は、ロウ冗長回路およびコラム冗長回路の代わりに機能する。
この実施形態においても、上述した第1および第2の実施形態と同様の効果を得ることができる。さらに、この実施形態では、符号ブロックMBE0−5を、ロウ冗長回路およびコラム冗長回路の代わりに形成することで、製造工程で不良になったメモリセルから読み出される誤ったデータを、エラー訂正回路により訂正できる。冗長回路の形成が不要になるため、チップサイズを削減できる。
図21は、本発明の半導体メモリの第4の実施形態を示している。第1および第2の実施形態で説明した回路・信号と同一の回路・信号については、同一の符号を付し、これ等については、詳細な説明を省略する。
この実施形態の半導体メモリは、シリコン基板上にCMOSプロセスを使用してクロック非同期式の擬似SRAMとして形成されている。また、この実施形態では、拡大ハミング符号がエラー訂正符号として使用される。この拡大ハミング符号の最小ハミング距離は、″4″であり、1ビットのエラー訂正と、2ビットのエラー検出とを同時にできる。
擬似SRAMは、第2の実施形態のデータ制御回路12A、アクセス制御回路18Aおよび発振器40Aの代わりに、データ制御回路12C、アクセス制御回路18Cおよび第3の実施形態と同じ発振器40Bを有している。
データ制御回路12Cは、読み出し動作中に、訂正可能なエラー(1ビットエラー)を検出したときに、訂正したデータをメモリコア24Aに書き戻す機能を有している。アクセス制御回路18Cは、データ制御回路12Cが訂正したデータをメモリコア24Aに書き戻すときに、書き込み要求信号wr[21:0]を出力する。
図22は、図21に示したデータ制御回路12Cの詳細を示している。
データ制御回路12Cは、第2の実施形態のデータ符号化部12eの代わりにデータ符号化部12gを有している。データ訂正部12dの構成は、第2の実施形態と同じである。データ符号化部12gは、符号化回路54Aおよびセレクタ56Bを有している。セレクタ56Bは、書き込み動作中に、入力データDIN[15:0](書き込みデータ)を符号化回路54Aで符号化したデータを書き込みデータwdat[21:0]として出力する。また、セレクタ56Bは、読み出し動作中に1ビットエラーが発生したときに、データ訂正部12dのエラー復号回路52から出力される訂正コードccode[21:0]を書き込みデータwdat[21:0]として出力する。すなわち、セレクタ56Bは、読み出し動作中に、エラー訂正回路12fが訂正したデータをデータブロックMBDおよび符号ブロックMBEに書き戻す書き戻し制御回路として機能する。
この実施形態においても、上述した第1および第2の実施形態と同様の効果を得ることができる。さらに、この実施形態では、エラー訂正回路12fが訂正したデータをセレクタ56BによってデータブロックMBDおよび符号ブロックMBEに書き戻すことができる。このため、電源ノイズ、ソフトエラー等により破壊されたメモリセル内のデータが読み出されたとき、このメモリセルに正しいデータを書き込むことができ、擬似SRAMの信頼性を向上できる。
図23は、本発明の半導体メモリの第5の実施形態を示している。第1および第2の実施形態で説明した回路・信号と同一の回路・信号については、同一の符号を付し、これ等については、詳細な説明を省略する。
この実施形態の半導体メモリは、シリコン基板上にCMOSプロセスを使用してクロック非同期式の擬似SRAMとして形成されている。また、この実施形態では、拡大ハミング符号がエラー訂正符号として使用される。この拡大ハミシグ符号の最小ハミング距離は、″4″であり、1ビットのエラー訂正と、2ビットのエラー検出とを同時にできる。
擬似SRAMは、第2の実施形態のデータ制御回路12A、アクセス制御回路18A、リフレッシュ制御回路20A、発振器40Aおよびメモリコア24Aの代わりに、データ制御回路12D、アクセス制御回路18D、リフレッシュ制御回路20D、発振器40Dおよびメモリコア24Dを有している。
メモリコア24Dは、64個のデータブロックMBD[63:0]と、8個の符号ブロックMBE[7:0]を有している。この実施形態では、データブロックMBD[63:0]の数は、データ端子DQ[15:0]のビット数の4倍に設計されている。このため、1回の書き込み動作でデータ端子[15:0]に供給される書き込みデータだけでは、符号データを生成できない。したがって、データ制御回路12Dは、後述するように、書き込み動作の最初に、データブロックMBD[63:0]および符号ブロックMBE[7:0]からデータを読み出す必要がある。しかし、符号データを生成するための情報データのビット数を増やすことで、符号ブロックMBEの数を相対的に減らすことができる。特に、拡大ハミング符号の場合、情報ビットが2のn乗のとき、符号データはn+2ビットだけでよい。この結果、符号ブロックMBEの数を相対的に大幅に減らすことができ、擬似SRAMのチップサイズが増加することを防止できる。
データ制御回路12Dは、読み出し動作中に、読み出しデータrdat[71:0]に訂正可能なエラー(1ビットエラー)がある場合、エラーを訂正する。そして、データ制御回路12Dは、アドレス端子ADに供給されるロウアドレスの下位ビットに応じてデータブロックMBD0−63のうちの16個に対応する読み出しデータを選択し、選択したデータを出力データDOUT[15:0]として出力する。データ制御回路12Dは、読み出し動作中に、読み出しデータrdat[71:0]に訂正不可能なエラー(2ビット以上のエラー)がある場合、ECCエラー信号ECCERRをエラー端子に出力する。
データ制御回路12Dは、書き込み動作中に、データブロックMBD0−63および符号ブロックMBE0−7からデータを読み出し、エラーがある場合に情報データを復号する。次に、データ制御回路12Dは、復号した情報データのうち書き込みデータDIN[15:0]に対応するビットを、この書き込みデータDIN[15:0]に入れ替えて書き換えデータ列を生成する。そして、データ制御回路12Dは、書き換えデータ列から新たな符号データを求め、書き換えデータ列および新たな符号データをデータブロックMBD0−63および符号ブロックMBE0−7にそれぞれ書き込む。このように、本実施形態では、擬似SRAMは、書き込み動作の最初にメモリコア24Aからデータを読み出す読み出し動作が実行される。
アクセス制御回路18Dは、データ制御回路12Dの動作に合わせて、読み出し要求信号rd[71:0]または書き込み要求信号wr[71:0]を出力する。具体的には、書き込み動作中に、読み出し要求信号rd[71:0]および書き込み要求信号wr[71:0]が順次出力される。
リフレッシュ制御回路20Dは、リフレッシュポイント信号refpoint[71:0]およびリフレッシュ要求信号ref[71:0]を順次出力する。リフレッシュ制御回路20Dの動作は、出力する信号のビット数が増えたことを除き、第2の実施形態のリフレッシュ制御回路20Aと同じである。発振器40Dが出力するクロック信号OSCの周波数は、リフレッシュポイント信号refpoint[71:0]のビット数に対応して、第2の実施形態に比べて高く設定されている。
図24は、図23に示した擬似SRAMの書き込み動作を示している。
書き込み動作では、まず、図示しないワード線が活性化され、符号ブロックMBEおよびデータブロックMBDのそれぞれにおいて、メモリセルから相補のビット線BL、/BLのいずれかにデータが読み出される(図24(a))。この後、センスアンプが活性化され、ビット線BL、/BLの電圧差が増幅される(図24(b))。次に、コラムスイッチ信号CSWが活性化され、増幅されたデータは、読み出しデータrdat[63:0]として、データ制御回路12Dに転送される(図24(c))。データ制御回路12Dは、読み出しデータrdat[63:0]のエラーを訂正する。次に、データ制御回路12Dは、データブロックMBDから読み出されたデータのうち8ビットを、データ端子DQ7−0に供給された書き込みデータDIN[7:0]と置き換える(図24(d))。
次に、データ制御回路12Dは、置き換えた書き込みデータを用いて新たな符号データを生成する(図24(e))。そして、置き換えた書き込みデータおよび新たな符号データは、書き込みデータwdat[63:0]として符号ブロックMBEおよびデータブロックMBDに順次書き込まれる(図24(f、g))。この後、ワード線が非活性化され、ビット線BL、/BLがプリチャージされて、書き込み動作が完了する(図24(h、i))。
この例では、データの書き込み時のコラムスイッチ信号CSWのタイミング、ワード線の非活性化タイミングおよびビット線BL、/BLのプリチャージ開始タイミングは、符号ブロックMBEおよびデータブロックMBDで相違している。しかし、これ等のタイミングは、符号ブロックMBEおよびデータブロックMBDで同じにしてもよい。
この実施形態においても、上述した第1および第2の実施形態と同様の効果を得ることができる。さらに、この実施形態では、情報データを記憶するデータブロックの数を増やすことで、情報データのビット数に対する符号データのビット数を相対的に減らすことができる。この結果、符号ブロックの数を、データブロックの数に対して相対的に減らすことができ、擬似SRAMのチップサイズを削減できる。
なお、上述した実施形態では、本発明を擬似SRAMチップに適用した例について述べた。本発明はかかる実施形態に限定されるものではない。例えば、本発明をシステムLSIに搭載される擬似SRAMコアに適用してもよい。
以上、本発明について詳細に説明してきたが、上記の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
産業上の利用の可能性
本発明の半導体メモリでは、読み出しサイクル時間が長くすることなくリフレッシュ動作を外部のシステムに対して隠すことができ、同時に読み出しデータ列のエラーを訂正できる。エラー訂正機能を、データリテンション時間が短いメモリセルの読み出し不良の救済に利用することで、リフレッシュ要求間隔を延ばすことができ、スタンバイ中の消費電力を削減できる。したがって、本発明を、例えば、擬似SRAMに適用した場合、AC特性およびDC特性の両方をSRAMと同等以下にできる。換言すれば、SRAMと完全に互換性を有する擬似SRAMをユーザに提供できる。ユーザは、システム上に搭載されるSRAMを本発明が適用された擬似SRAMに置き換えるだけで、コストを削減できる。
本発明の半導体メモリでは、リフレッシュ要求に応答するリフレッシュ動作を1つのブロックでのみ実行することで、リフレッシュ動作により読み出せないデータを、容易に復元できる。
本発明の半導体メモリでは、リフレッシュ要求と読み出し要求が競合することを防止でき、読み出しアクセス時間が増加することを防止できる。また、アクセス制御回路による読み出し動作の制御を容易にできる。
本発明の半導体メモリでは、リフレッシュ要求信号と書き込み要求信号が競合するときに、リフレッシュ動作を実行した後に書き込み動作を遅れて実行することで、書き込みデータをリフレッシュブロックに対して確実に書き込むことができる。
本発明の半導体メモリでは、連続して供給される書き込み要求信号の間にリフレッシュ要求が発生した場合にも、書き込み動作の遅れを徐々に取り戻すことができる。
本発明の半導体メモリでは、リフレッシュブロック以外のブロックにおいて、リフレッシュ動作と書き込み動作の競合に伴って読み出し動作が遅れることを防止でき、読み出しアクセス時間が長くなることを防止できる。
本発明の半導体メモリでは、符号ブロックを冗長回路の代わりに形成することで、冗長回路を不要にでき、チップサイズを削減できる。
本発明の半導体メモリでは、読み出しデータ列のうちエラーの少ない読み出しデータ列を真として選択することで、エラー訂正回路のエラー判定論理を簡易に構成できる。
本発明の半導体メモリでは、エラー信号により、半導体メモリをアクセスする外部のシステムは、読み出し動作のリトライ要求およびデータの廃棄等、エラーを回避する動作を実行できる。この結果、システムの信頼性を向上できる。
本発明の半導体メモリでは、メモリセル内のデータが電源ノイズ、ソフトエラー等により破壊されたときに、書き戻し制御回路により正しいデータを書き込むことで、半導体メモリの信頼性を向上できる。
本発明の半導体メモリでは、データブロックを複数のデータ端子にそれぞれ対応して形成することで、半導体メモリに一度に入出力されるデータ単位でエラーを訂正でき、符号データの生成および読み出しデータのエラー訂正の論理を簡易にできる。この結果、読み出しサイクル時間および書き込みサイクル時間が増加することを防止できる。
本発明の半導体メモリでは、情報データのビット数を増やすことで、情報データのビット数に対する符号データのビット数を相対的に減らすことができる。この結果、符号ブロックの数を、データブロックの数に対して相対的に減らすことができ、チップサイズを削減できる。
本発明は、リフレッシュ動作が必要なダイナミックメモリセルを有する半導体メモリおよびその動作方法に関する。
近年、擬似SRAM(Pseudo-SRAM)と呼ばれる半導体メモリが注目されている。擬似SRAMは、DRAMのメモリセルを有し、メモリセルのリフレッシュ動作を内部で自動的に実行することでSRAMとして動作する。ダイナミックメモリセルは、面積が小さいため、ビットコストが低く、かつ大容量の擬似SRAMを開発できる。
一方、擬似SRAMは、メモリセルのキャパシタに蓄えられる電荷によってデータを記憶するために、データは、電荷のリークなどによりやがて失われる。これを避けるために、擬似SRAMは、所定期間毎にリフレッシュ動作が必要である。リフレッシュ動作は、メモリセルに保持されているデータをビット線に読み出し、ビット線上のデータをセンスアンプで増幅し、メモリセルに再書き込みする動作である。
リフレッシュ動作を実行するためのリフレッシュ要求は、外部アクセス要求と無関係に発生する。このため、リフレッシュ動作は、アクセス動作と競合する場合がある。擬似SRAMは、SRAMインタフェースを有するため、この競合が発生したときにも、外部のシステムに対してリフレッシュ動作を隠す必要がある。近時、リフレッシュ動作を隠すために、書き込みデータと共にエラー訂正符号を記憶する半導体メモリが提案されている(例えば、特許文献1参照)。この半導体メモリでは、エラー訂正符号を用いることで、リフレッシュ動作中のメモリブロックからデータを読み出すことなく、読み出しデータを再生できる。また、読み出し要求とリフレッシュ要求が競合しないため、読み出しサイクル時間にリフレッシュ動作時間を含める必要はない。この結果、読み出しサイクル時間をSRAMと同等にできる。
一方、擬似SRAMは、リフレッシュ動作が必要なため、メモリセルがラッチで構成されるSRAMに比べ、スタンバイ期間中の消費電力が大きい。スタンバイ期間中に消費される電力として、DC成分とAC成分がある。DC成分は、リーク成分であり、トランジスタのオフ電流および内部回路(特に、電源回路)の動作のために意図的に流している電流等である。これ等、DC成分は、半導体プロセスおよび回路構成に依存するため、擬似SRAMとSRAMとの差異は、議論できない。
擬似SRAMのスタンバイ期間の消費電流のうちAC成分は、主にリフレッシュ動作による電流である。このため、リフレッシュ動作電流の削減は、AC成分を削減するために有効である。近時、リフレッシュ動作電流を削減するために、書き込みデータと共にエラー訂正符号を記憶する半導体メモリが提案されている。この半導体メモリは、エラー訂正符号によりメモリセルのデータ保持特性を実質的に向上し、リフレッシュ間隔を延ばすことで、リフレッシュ動作電流を削減している。(例えば、特許文献2−4参照)。
特開2003−51186号公報 特開平5−41084号公報 特開2002−56671号公報 特開2003−59290号公報
しかしながら、上述した従来の擬似SRAMで用いられるエラー訂正手法では、読み出しサイクル時間の削減またはスタンバイ電流の削減の一方しかできない。具体的には、読み出しサイクル時間(AC特性)は、SRAMと同等にできても、スタンバイ電流(DC特性)はSRAMと同等にできない。あるいは、スタンバイ電流はSRAMと同等にできても、読み出しサイクル時間は、SRAMと同等にできない。すなわち、SRAMと完全に互換性を有する擬似SRAMは、実現されていない。この結果、例えば、システムに搭載されているSRAMをコスト削減のために擬似SRAMに単純に置き換えるだけでは、システムを動作させることは困難であった。
本発明の目的は、アクセスサイクル時間を延ばすことなくリフレッシュ動作を隠すことができ、同時にスタンバイ期間の消費電力を削減できる擬似SRAMを提供することにある。
本発明の別の目的は、SRAMと完全な互換性を有する擬似SRAMを提供することにある。
本発明の半導体メモリの一形態では、複数のデータブロックは、情報データを記憶するメモリセルを有する。複数の符号ブロックは、データブロックに記憶されたデータを復号するための符号データを記憶するメモリセルを有する。リフレッシュ制御回路は、データブロックおよび符号ブロックにリフレッシュ動作を順次実行させるためにリフレッシュ要求信号を出力する。データ付加回路は、リフレッシュブロックから読み出されるべき複数種の予想データを、他のブロックから読み出されるデータにそれぞれ付加して複数の読み出しデータ列を生成する。ここで、リフレッシュブロックは、データブロックおよび符号ブロックのうちリフレッシュ動作によりデータを読み出せないブロックである。
エラー訂正回路は、読み出しデータ列についてそれぞれエラーを検出し、これ等のエラー検出結果から最も確からしい一つを真とする。また、エラー訂正回路は、真としたエラー検出結果に対応する読み出しデータ列のエラーを訂正する。符号データは、例えば、水平垂直パリティ符号または拡大ハミング符号であり、符号データの最小ハミング距離は、4以上である。
このように、データの一部を予想した複数の読み出しデータ列のエラー検出結果を互いに比較して真のエラーを検出し、真のエラーに基づいてブロックのいずれかで実際に発生したエラーを訂正することで、リフレッシュ動作を外部のシステムに対して隠すこと、およびエラー訂正を同時に達成できる。リフレッシュ動作を読み出し要求と競合することなく隠すことができるため、読み出しサイクル時間が長くなることを防止できる(AC特性の改善)。
エラー訂正機能により、例えば、データを保持できる最小時間であるデータリテンション時間が短いメモリセルによって発生するエラーを訂正できる。このため、リフレッシュ要求間隔を延ばすことができ、スタンバイ中の消費電力を削減できる(DC特性の改善)。具体的には、各メモリセルのリフレッシュ間隔を、ワーストのメモリセルのデータリテンション時間より長く設定しても、誤ったデータが読み出されることはない。したがって、本発明を、例えば、擬似SRAMに適用した場合、AC特性およびDC特性の両方をSRAMと同等以下にできる。換言すれば、SRAMと完全に互換性を有する擬似SRAMをユーザに提供できる。ユーザは、システム上に搭載されるSRAMを本発明が適用された擬似SRAMに置き換えるだけで、コストを削減できる。
本発明の半導体メモリの別の一形態では、リフレッシュ制御回路は、データブロックおよび符号ブロックのいずれか1つにリフレッシュ動作を実行させるために、データブロックおよび符号ブロックにリフレッシュ要求信号を順次出力する。リフレッシュ要求に応答するリフレッシュ動作を1つのブロックでのみ実行することで、リフレッシュ動作により読み出せないデータを、容易に復元できる。
本発明の半導体メモリの別の一形態では、アクセス制御回路は、読み出しコマンドに応答してリフレッシュブロックを除くデータブロックおよび符号ブロックに読み出し要求信号を出力する。すなわち、リフレッシュブロックは、読み出し動作を実行しない。このため、リフレッシュ要求と読み出し要求が競合することを防止でき、読み出しアクセス時間が増加することを防止できる。また、アクセス制御回路による読み出し動作の制御を容易にできる。
本発明の半導体メモリの別の一形態では、アクセス制御回路は、書き込みコマンドに応答してデータブロックおよび符号ブロックに書き込み要求信号を出力する。データブロックおよび符号ブロック内の各ブロック制御回路は、リフレッシュ要求信号と書き込み要求信号が競合するときに、リフレッシュ動作を実行した後に書き込み動作を遅れて実行する。このため、書き込みデータをリフレッシュブロックに対して確実に書き込むことができる。
本発明では、アクセスサイクル時間を延ばすことなくリフレッシュ動作を隠すことができ、同時にスタンバイ期間の消費電力を削減できる。
以下、本発明の実施形態を図面を用いて説明する。図中の二重丸は、外部端子を示している。図中、太線で示した信号線は、複数本で構成されている。太線が接続されているブロックの一部は、複数の回路で構成されている。外部端子を介して供給される信号には、端子名と同じ符号を使用する。信号が伝達される信号線には、信号名と同じ符号を使用する。信号名の末尾の"z"は、正論理を示している。
図1は、本発明の半導体メモリの第1の実施形態を示している。この半導体メモリは、シリコン基板上にCMOSプロセスを使用してクロック同期式のシンクロナス擬似SRAMとして形成されている。
擬似SRAMは、アドレスバッファ10、データ制御回路12、データ入出力バッファ14、コマンドバッファ16、アクセス制御回路18、リフレッシュ制御回路20、クロックバッファ22およびメモリコア24を有している。
メモリコア24は、データブロックMBD0-15、符号ブロックMBE0-7およびブロック制御回路BCNTを有している。データブロックMBD0-15は、データ端子DQ15-0にそれぞれ対応して形成されており、データ端子DQ15-0を介して供給される情報データ(以下、単にデータとも称する)をそれぞれ保持する。符号ブロックMBE0-7は、データブロックMBD0-15に保持されるデータにより生成される8ビットの誤り訂正符号の各ビットをそれぞれ保持する。誤り訂正符号は、データブロックに記憶された情報データを復号するための符号データとして使用される。なお、特に図示していないが、メモリコア24は、ワード線単位で不良を救済するためのロウ冗長回路およびビット線単位で不良を救済するためのコラム冗長回路を有している。
ブロック制御回路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は、ダイナミックメモリセルと、これ等ダイナミックメモリセルに接続されたワード線、ビット線とを有している。メモリセルは、データの論理値を電荷として保持するキャパシタと、キャパシタをビット線に接続する転送トランジスタとを有している。転送トランジスタのゲートは、ワード線に接続されている。なお、この実施形態では、後述する図7に示すように、水平垂直パリティが、エラー訂正符号として採用されている。
アドレスバッファ10は、アドレス端子ADを介してアドレス信号ADを受信する。この擬似SRAMは、ロウアドレス信号およびコラムアドレス信号を一度に受信するアドレスノンマルチプレクス方式を採用している。ロウアドレス信号は、ブロックMBD0-15、MBE0-7内のワード線の選択に使用される。コラムアドレスは、ブロックMBD0-15、MBE0-7内のビット線の選択に使用される。
クロックバッファ22は、クロック端子CLKを介してクロック信号CLKを受信し、受信した信号を内部クロック信号ICLKとして出力する。クロック信号CLKは、例えば、擬似SRAMが搭載されるシステム基板のシステムクロックである。内部クロック信号ICLKは、擬似SRAM内のクロック同期が必要な回路に供給される。
リフレッシュ制御回路20は、特に図示していないが、タイマ、カウンタ、シフトレジスタおよびリフレッシュ要求生成回路を有している。タイマは、内部クロック信号ICLKに同期して動作し、周期信号(パルス信号)を生成する。タイマの周期は、リフレッシュ要求の発生間隔に一致する。カウンタは、タイマからの周期信号に同期してカウント動作し、リフレッシュアドレス信号REFADを生成する。リフレッシュアドレス信号REFADは、リフレッシュ動作中にワード線を選択するために出力される。カウンタのビット数は、カウンタが一周したときに、ブロックMBD0-15、MBE0-7内の全てのワード線が選択される数に設定されている。
シフトレジスタは、縦続接続された24個のラッチを有しており、最終段のラッチの出力は初段のラッチの入力に帰還されている。パワーオンリセット中に、ラッチの一つは高レベルにセットされ、残りのラッチは低レベルにリセットされる。シフトレジスタは、カウンタのオーバフロー毎にシフト動作し、リフレッシュ動作を実行するブロック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]を出力する。
コマンドバッファ16は、コマンド端子CMDを介してコマンド信号CMDを受信し、受信したコマンド信号CMDをアクセス制御回路18に出力する。コマンド信号CMDは、例えば、チップイネーブル信号/CE、アウトプットイネーブル信号/OEおよびライトイネーブル信号/WE等の擬似SRAMの動作を制御する信号である。コマンド端子CMDを介して供給されるコマンドとして書き込み動作を実行するための書き込みコマンドおよび読み出し動作を実行するための読み出しコマンドがある。
アクセス制御回路18は、コマンド信号CMDを解読し、解読結果に応じて読み出し動作を実行する読み出し要求信号rdd[15:0]、rde[7:0]、または書き込み要求信号wrd[15:0]、wde[7:0]を出力する。但し、アクセス制御回路18は、リフレッシュポイント信号refpointd[15:0]、refpointe[7:0]のいずれかの活性化に応答して、対応する読み出し要求信号(rdd[15:0]、rde[7:0]のいずれか)の出力をマスクする。すなわち、読み出し動作は、リフレッシュブロックで禁止され、他のブロックで実行される。リフレッシュブロックの読み出し動作を常に禁止することで、アクセス制御回路18の読み出し制御を簡易にできる。
データ入出力バッファ14は、書き込み動作中に、データ端子DQ15-0を介して受信したデータ信号を入力データDIN[15:0]として出力し、読み出し動作中に、データ制御回路12から供給される出力データDOUT[15:0]をデータ端子DQ15-0に出力する。
データ制御回路12は、書き込み動作中に、入力データDIN[15:0]を書き込みデータwdat[15:0]としてメモリコア24に出力し、同時に入力データDIN[15:0]から生成されるエラー訂正符号(書き込み符号データ)wecc[7:0]をメモリコア24に出力する。また、データ制御回路12は、読み出し動作中に、メモリコア24から読み出しデータrdat[15:0]およびエラー訂正符号(読み出し符号データ)recc[7:0]を受け、リフレッシュブロックから読み出されるべき1ビットのデータを復号する。データ制御回路12は、同時に、データ保持特性が悪くデータが失われたメモリセルからの読み出しデータ(1ビット)を復号する。エラー訂正された読み出しデータは、出力データ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のブロック番号にそれぞれ対応する。
図2は、図1に示したデータ制御回路12の詳細を示している。
データ制御回路12は、メモリコア24からの読み出しデータrdat[15:0]、recc[7:0]をエラー訂正するデータ訂正部12aおよびメモリコア24への入力データDIN[15:0]からエラー訂正符号を生成するデータ符号化部12bを有している。データ訂正部12aは、データ付加回路26およびエラー訂正回路12cを有している。エラー訂正回路12cは、符号化回路28、30、エラー判定回路32、34およびエラー復号回路36を有している。データ符号化部12bは、符号化回路38を有している。
データ付加回路26は、読み出し動作を実行できないリフレッシュブロックとして動作しているデータブロック(MBD0-15のいずれか)からの読み出しデータを"論理1"および"論理0"と仮定して、読み出しデータrdat0[15:0]、rdat1[15:0]をそれぞれ生成する。あるいは、データ付加回路26は、読み出し動作を実行できないリフレッシュブロックとして動作している符号ブロック(MBE0-7のいずれか)からのエラー訂正符号を"論理1"および"論理0"と仮定して、読み出しデータrecc0[7:0]、recc1[7:0]を生成する。すなわち、データ付加回路26は、リフレッシュブロックから読み出されるべきデータを"論理1"または"論理0"の予想データとして、他のブロックからの読み出しデータに付加し、読み出しデータ列rdat0[15:0]、recc0[7:0]および読み出しデータ列rdat1[15:0]、recc1[7:0]を生成する。
符号化回路28は、読み出しデータrdat0[15:0](情報データ列)からエラー訂正符号rrecc0[7:0](第1符号データ)を生成する。符号化回路30は、読み出しデータrdat1[15:0](情報データ列)からエラー訂正符号rrecc1[7:0](第2符号データ)を生成する。
エラー判定回路32は、エラー訂正符号rrecc0[7:0]をエラー訂正符号recc0[7:0](符号データ)と比較することでエラーの有無およびエラーの種類を判定し、判定結果を比較結果信号res0として出力する。エラー判定回路34は、エラー訂正符号rrecc1[7:0]をエラー訂正符号recc1[7:0](符号データ)と比較することでエラーの有無およびエラーの種類を判定し、判定結果を比較結果信号res1として出力する。比較結果信号res0、res1は、一致(エラー無し)、ECCエラー(符号ブロックMBDの1ビットエラー;符号エラー)、1ビットエラー(データブロックMBEの1ビットエラー)、2ビット以上のエラーのいずれかをそれぞれ示す。エラー項目の詳細は、後述する図8、図9で説明する。
エラー復号回路36は、比較結果信号res0、res1が示すエラー内容に応じて、比較結果信号res0、res1のどちらが真かを判定し、判定した比較結果信号res0またはres1に応じて読み出しデータのエラーを訂正し、出力データ[15:0]として出力する。出力データ[15:0]は、データ端子DQ15-0を介して擬似SRAMの外部に出力される。比較結果信号res0が真と判定された場合、リフレッシュブロックから読み出されるべきデータは、"論理0"である。比較結果信号res1が真と判定された場合、リフレッシュブロックから読み出されるべきデータは、"論理1"である。

データ符号化部12bの符号化回路38は、入力データ[15:0](書き込みデータ)からエラー訂正符号wecc[7:0]を生成し、書き込みデータwdat[15:0]とともにメモリコア24に出力する。
図3は、図1に示したリフレッシュ制御回路20の動作を示している。
リフレッシュ制御回路20は、リフレッシュポイント信号refpointd[15:0]、refpointe[7:0]を順次高レベルに活性化する。各リフレッシュポイント信号refpointd[15:0]、refpointe[7:0]の活性化間隔(例えば、リフレッシュポイント信号refpointd[0]の活性化間隔T1は、ワーストのメモリセルのデータリテンション時間より長く設定されている。データリテンション時間は、メモリセルがデータを失うことなく保持できる時間である。
活性化間隔T1は、各メモリセルのリフレッシュ間隔にも対応している。このため、この実施形態では、ワーストのメモリセルは、リフレッシュ動作を実行するときに既にデータを消失する。しかし、失われたデータは、データ制御回路12のエラー訂正機能により復号できる。このため、メモリセルのリフレッシュ間隔を長くでき、リフレッシュ要求間隔およびリフレッシュ動作間隔を長くできる。この結果、特に、スタンバイ期間の消費電力を削減できる。
図4は、図1に示したリフレッシュ制御回路20の動作の詳細を示している。図4の波形は、図3に一点鎖線で示した領域に対応する。
例えば、リフレッシュ制御回路20は、リフレッシュポイント信号refpointe[7]の活性化期間T2に、対応するデータブロックMBD7のリフレッシュ要求信号refe[7]を所定回数高レベルに活性化する。このように、リフレッシュ要求に応答するリフレッシュ動作は、活性化されたリフレッシュポイント信号refpointe(またはrefpointd)に対応するブロックMBE(またはMBD)でのみ実行される。換言すれば、同時にアクセスされる24個のブロックMBD15-0、MBE7-0のうち、常に一つのブロックのみが、リフレッシュ動作を実行するリフレッシュブロックとして動作する。
リフレッシュ要求信号refe[7]の活性化回数は、ブロックMBEのメモリセルを全てリフレッシュするために必要な回数である。例えば、リフレッシュ要求毎に1本のワード線が選択される場合、活性化回数は、各ブロックのワード線の本数に等しい。リフレッシュポイント信号refpointd[15:0]、refpointe[7:0]は、リフレッシュブロックの最後のリフレッシュ要求信号refd(またはrefe)の出力から次のリフレッシュブロックの最初のリフレッシュ要求信号refd(またはrefe)の出力までに切り替えられる。最後のリフレッシュ要求信号の出力からリフレッシュポイント信号の切り替えまでの期間T3は、リフレッシュ要求と書き込み要求とが競合したときの処理に必要である。期間T3については、後述する図6で説明する。
図5は、第1の実施形態の読み出し動作の概要を示している。図5の波形は、図4に一点鎖線で示した領域に対応する。
この例では、擬似SRAMは、コマンド端子CMDから読み出しコマンドを連続して受信し、読み出し動作を連続して実行する。図1に示したアクセス制御回路18は、リフレッシュポイント信号refpointd[15:0]、refpointe[7:0]のいずれかの活性化を受けている間、対応する読み出し要求信号rdd[15:0]、rde[7:0]の出力をマスクする。このため、リフレッシュブロックでは、読み出し動作は実行されず、リフレッシュ動作のみが実行される。読み出し動作を実行しないリフレッシュブロックから読み出されるべきデータは、他のブロックからの読み出しデータにより復号される。このため、読み出し動作は、リフレッシュ動作により遅れない。すなわち、読み出しアクセス時間を長くすることなくリフレッシュ動作を外部に対して完全に隠すことができる。
図6は、第1の実施形態の書き込み動作の概要を示している。
この例では、擬似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)との競合が発生する。図1に示したアクセス制御回路18は、リフレッシュ要求と書き込み要求とが競合したとき、リフレッシュ動作を優先して実行する(図6(a))。アクセス制御回路18は、リフレッシュ動作の完了後、待たせていた書き込み要求に対応する書き込み動作を順次実行する(図6(b))。
書き込みコマンドの最小供給間隔(wrdの出力間隔;外部書き込みサイクル時間)は、メモリコア24の書き込み動作時間(wrzの最小出力間隔;内部書き込みサイクル時間)より長く設計されている。このため、リフレッシュ動作の割り込みに伴う書き込み動作の遅れは、書き込み動作を所定回数連続して実行することで、取り戻せる。この例では、あるリフレッシュブロックの最後のリフレッシュ要求信号refd(またはrefe)から次のリフレッシュブロックに切り替わるまでの切り替え時間T4の間に、8回の外部書き込みサイクル時間が挿入可能であり、かつ1回のリフレッシュ動作と8回の書き込み動作を実行できる。切り替え時間T4は、リフレッシュ動作の割り込みに伴う書き込み動作の遅れを取り戻すまでの回復時間である。このため、書き込みコマンドが連続して供給される場合にも、リフレッシュブロックの書き込み動作は、そのリフレッシュブロックが切り替わる前に必ず完了できる。
この結果、リフレッシュブロックから通常のデータブロックまたは符号ブロックに切り替わった直後に、読み出しコマンドが供給される場合にも、読み出しデータの出力が遅れることを防止できる。すなわち、読み出しアクセス時間および読み出しサイクル時間が、書き込み動作の影響を受けて長くなることを防止できる。なお、切り替え時間T4は、外部書き込みサイクル時間Tcyceと内部書き込みサイクル時間Tcyciとの差をδとするとき、(Tcyce/δ)×Tcyce以上であればよい。
また、切り替え時間T4は、次式(1)の関係を満たすように設計してもよい。差δは、切り替え時間T4を内部書き込みサイクル時間Tcyciに対して十分に大きく設定できる場合、無視できる程度になる。このため、外部書き込みサイクル時間Tcyceを内部書き込みサイクル時間Tcyciとほぼ等しくできる。すなわち、リフレッシュ動作を書き込み動作に優先して実行するためのアクセスペナルティは、ほとんどない。
(T4/Tcyci)−(T4/(Tcyci+δ))≧Tcyci ‥‥‥(1)
図7は、第1の実施形態のパリティ符号の生成規則を示している。
この実施形態では、最小ハミング距離が"4"の水平垂直パリティが、エラー訂正符号として採用されている。パリティは、偶数パリティ、奇数パリティのいずれでもよい。この符号は、1ビットのエラーを訂正し、同時に2ビットのエラーを検出できる。
データブロックMBD0-15内の同じアドレスに対応するデータを4行4列で示すとき、データブロック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)。
上述した水平垂直パリティ符号は、符号化する情報データが16ビット(本実施形態)、32ビット、64ビット、128ビット、256ビットのとき、それぞれ8ビット、10ビット、12ビット、14ビット、16ビット必要になる。すなわち、情報ビットが2のn乗のとき、符号データは2nビット必要になる。これに対して、一般的な水平垂直パリティ符号は、符号化する情報データが16ビット、32ビット、64ビット、128ビット、256ビットのとき、それぞれ8ビット、12ビット、16ビット、24ビット、32ビット必要になる。このため、上述した水平垂直パリティ符号は、特に、情報データが32ビット以上のときに符号ブロックの数を一般の水平垂直パリティ符号より減らすことができる。
図8は、図2に示したエラー判定回路32、34の動作の概要を示している。ここでは、符号ブロックMBE0-7から読み出されたエラー訂正符号recc[0:7]をlp[0:3]、cp[0:3]と表し、データブロックMBD0-7から読み出されるデータに応じて図2に示した符号化回路28(または30)により生成されるエラー訂正符号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において、次式(2)〜(5)が全て成立するか否かが判定される。全ての式が成立する場合、1ビットエラーと判定され、処理はステップS50に移行する。少なくともいずれかの式が不成立の場合、2ビット以上のエラーと判定され、処理はステップS40に移行する。ステップS40において、2ビット以上のエラーを示す比較結果信号res0(またはres1)="0001"が出力され、処理は終了する。
cp[0]+cp[1]+CP[0]+CP[1]=1 ‥‥‥(2)
cp[2]+cp[3]+CP[2]+CP[3]=1 ‥‥‥(3)
lp[0]+lp[1]+LP[0]+LP[1]=1 ‥‥‥(4)
lp[2]+lp[3]+LP[2]+LP[3]=1 ‥‥‥(5)
ステップS50において、cp[0:3]とCP[0:3]、lp[0:3]とLP[0:3]とがそれぞれ比較される。これ等8ビットの比較のうち、1ビットのみ不一致の場合、ECCコードエラーと判定され、処理はステップS60に移行する。それ以外の場合、1ビットエラーと決定され、処理はステップS70に移行する。ステップS60において、ECCコードエラーを示す比較結果信号res0(またはres1)="0100"が出力され、処理は終了する。ステップS70において、1ビットエラーを示す比較結果信号res0(またはres1)="00100"が出力され、処理は終了する。
図9は、図2に示したエラー復号回路36の動作の概要を示している。
エラー復号回路36は、エラー判定回路32、34から比較結果信号res0、res1を受信する。比較結果信号res0、res1は、図8に示したように、エラーの内容により、2進数の"1000(エラー無し)"、"0100(ECCエラー;符号ブロックの1ビットエラー)"、"0010(1ビットエラー;データブロックの1ビットエラー)"、"0001(2ビット以上のエラー)"のいずれかを示す。
図9(a)、(b)、(c)は、データブロックMBD0-15のいずれかがリフレッシュブロックとして動作し、このリフレッシュブロックから読み出されるべきデータが"論理0"の場合を示している。図9(a)において、読み出し動作でエラーがない場合、リフレッシュブロックからの読み出しデータを"論理0"とした比較結果信号res0は、エラー無しを示し、リフレッシュブロックからの読み出しデータを"論理1"とした比較結果信号res1は、1ビットエラー(リフレッシュブロックのみエラー)を示す。
図9(b)において、読み出し動作でリフレッシュブロックを除くデータブロックMBD0-15のいずれかに1ビットエラーがある場合、比較結果信号res0は、1ビットエラーを示し、比較結果信号res1は、2ビット以上のエラー(リフレッシュブロックの1ビットおよびデータブロックの1ビットエラー)を示す。図9(c)において、読み出し動作で符号ブロックMBE0-7のいずれかに1ビットエラーがある場合、比較結果信号res0は、ECCエラーを示し、比較結果信号res1は、2ビット以上のエラー(リフレッシュブロックの1ビットおよびECCエラー)を示す。
図9(d)、(e)、(f)は、データブロックMBD0-15のいずれかがリフレッシュブロックとして動作し、このリフレッシュブロックから読み出されるべきデータが"論理1"の場合を示している。図9(d)、(e)、(f)では、リフレッシュブロックから読み出されるべきデータの論理値は、図9(a)、(b)、(c)と逆になる。このため、比較結果信号res0、res1は、図9(a)、(b)、(c)の逆になる。
図9(g)、(h)、(i)は、符号ブロックMBE0-7のいずれかがリフレッシュブロックとして動作し、このリフレッシュブロックから読み出されるべきデータが"論理0"の場合を示している。図9(g)において、読み出し動作でエラーがない場合、リフレッシュブロックからの読み出しデータを"論理0"とした比較結果信号res0は、エラー無しを示し、リフレッシュブロックからの読み出しデータを"論理1"とした比較結果信号res1は、ECCエラー(リフレッシュブロックのみエラー)を示す。
図9(h)において、読み出し動作でデータブロックMBD0-15のいずれかに1ビットエラーがある場合、比較結果信号res0は、1ビットエラーを示し、比較結果信号res1は、2ビット以上のエラー(リフレッシュブロックの1ビットおよびデータブロックの1ビットエラー)を示す。図9(i)において、読み出し動作でリフレッシュブロックを除く符号ブロックMBE0-7のいずれかに1ビットエラーがある場合、比較結果信号res0は、ECCエラーを示し、比較結果信号res1は、2ビット以上のエラー(リフレッシュブロックの1ビットおよびECCエラー)を示す。
図9(j)、(k)、(l)は、符号ブロックMBE0-7のいずれかがリフレッシュブロックとして動作し、このリフレッシュブロックから読み出されるべきデータが"論理1"の場合を示している。図9(j)、(k)、(l)では、リフレッシュブロックから読み出されるべきデータの論理値は、図9(g)、(h)、(i)と逆になる。このため、比較結果信号res0、res1は、図9(g)、(h)、(i)の逆になる。
エラー復号回路36は、比較結果信号res0、res1のいずれかを真のエラーとし、この結果に基づいてエラーを訂正する。この際、エラー復号回路36は、エラー判定の優先度を高い順から、エラー無し>ECCエラー>1ビットエラー>2ビット以上のエラーとする。すなわち、エラーの少ない比較結果信号res0、res1のいずれかが真とされる。このため、図9(a)、(d)、(g)、(j)では、エラー無しと判定される。図9(b)、(e)、(h)、(k)では、1ビットエラーと判定される。図9(c)、(f)、(i)、(l)では、ECCエラーと判定される。
エラー復号回路36は、優先度の高い比較結果信号res0、res1に対応する論理値をリフレッシュブロックから読み出されるべきデータの論理値とし、出力データDOUT[15:0]として出力する。具体的には、res0の優先度がres1より高い場合、リフレッシュブロックに対応する出力データDOUTのビットは、"論理0"に設定される。res1の優先度がres0より高い場合、リフレッシュブロックに対応する出力データDOUTのビットは、"論理1"に設定される。
さらに、エラー復号回路36は、データブロックMBD0-15のいずれかに1ビットエラーが存在すると判定した場合、このエラーを訂正する。エラーのあるデータブロックMBD0-15(1ビットエラーを発生しているエラーアドレス)は、次式(6)、(7)にエラー訂正符号recc[0:7]を代入して求められる。例えば、(L1,L0)="01"、(C1,C0)="11"の場合、図7に示したように、エラーブロックは、データブロックMBD7である。このとき、エラー復号回路36は、データブロックMBD7から読み出されたデータの論理値を反転してデータ出力バッファ14に出力する。なお、この実施形態では、エラーを訂正したデータは、ブロックに書き込まれない。これは、1ビットエラーおよびECCエラーは、そのメモリセルのデータリテンション時間の不足あるいは物理的な不良と考えられるためである。この種のエラーに対してメモリセルに正しいデータを書き込んでも、エラーは再び発生するため、処理時間の無駄になる。
(L1,L0)=(lp[3]+LP[3], lp[1]+LP[1])‥‥‥(6)
(C1,C0)=(cp[3]+CP[3], cp[1]+CP[1])‥‥‥(7)
図10は、第1の実施形態の読み出し動作の一例(シミュレーション結果)を示している。
この例では、データブロックMBD10がリフレッシュブロックとして動作する(図10(a))。擬似SRAMは、読み出しコマンドRDZとともに、16進数の"0"から"F"のロウアドレスMBADを読み出しアドレスとして順次受け、読み出し動作を連続して実行する(図10(b))。
読み出しアドレス"0"、"1"、"2"、...、"D"、"E"、"F"が示すデータブロックMBD0-15のメモリセルには、予め16進数のデータ"0000"、"1111"、"2222"、...、"DDDD"、"EEEE"、"FFFF"がそれぞれ書き込まれている。読み出しアドレス"0"、"1"、"2"、...、"D"、"E"、"F"が示す符号ブロックMBE0-7のメモリセルには、予め16進数のデータ"00"が書き込まれている。しかし、この例では、符号ブロックMBE6に1ビットエラー(ECCエラー)が発生するため、読み出しデータrecc[7:0]は、16進数の"40"になる(図10(c))。なお、実際の異なるアドレスの読み出し動作において、符号ブロックMBE6に連続して1ビットエラーが発生することはまれである。
図1に示したリフレッシュ制御回路20は、読み出しアドレス"2"の読み出し動作中に、リフレッシュ要求信号refd[10]を出力する(図10(d))。メモリコア24は、リフレッシュ要求信号refd[10]に応答して、データブロックMBD10のリフレッシュ動作を実行する。
リフレッシュブロックとして動作するデータブロックMBD10からデータは読み出されないため、読み出しデータrdat[15:0]の第10ビットは、例えば"論理0"として読み出される。このため、第10ビットの期待値が"論理1"のとき(例えば、"4444"、"5555"など)、リフレッシュブロックの読み出しエラーが発生する。このとき、エラー復号回路36は、2ビット以上のエラーを示す比較結果信号res0("0001")と、ECCエラーを示す比較結果信号res1("0100")を受け、比較結果信号res1の優先度が高いと判定し、ECCエラーの発生を検出する(図10(e、f))。
また、エラー復号回路36は、比較結果信号res1の優先度が高いため、リフレッシュブロックから読み出されるべきデータの論理値を"論理1"と判定し、アシュームフラグASMFLGを"論理1"にセットする(図10(g、h))。アシュームフラグASMFLGは、エラー復号回路36内で使用される内部信号である。アシュームフラグASMFLGのセットにより、出力データ[15:0]の第10ビットは、"論理1"に設定される。すなわち、読み出し動作を実行しないリフレッシュブロックからのデータが再生される。
一方、読み出しデータrdat[15:0]の第10ビットの期待値が"論理0"のとき(例えば、"0000"、"1111"、"2222"、"3333"など)、リフレッシュブロックの読み出しエラーは発生しない。このとき、エラー復号回路36は、ECCエラーを示す比較結果信号res0("0100")と、2ビット以上のエラーを示す比較結果信号res1("0001")を受け、比較結果信号res0の優先度が高いと判定し、ECCエラーの発生を検出する(図10(i、j、k))。
また、エラー復号回路36は、比較結果信号res0の優先度が高いため、リフレッシュブロックから読み出されるべきデータの論理値を"論理0"と判定し、アシュームフラグASMFLGを"論理0"にセットする(図10(l、m、n))。アシュームフラグASMFLGにセットにより、出力データ[15:0]の第10ビットは、"論理0"に設定される。すなわち、読み出し動作を実行しないリフレッシュブロックからのデータが再生される。
図11は、第1の実施形態の読み出し動作の別の例(シミュレーション結果)を示している。図10と同じ動作については、詳細な説明を省略する。
この例では、図10と同様に、擬似SRAMは、読み出しコマンドRDZとともに、16進数の"0"から"F"のロウアドレスMBADを読み出しアドレスとして順次受け、読み出し動作を連続して実行する(図11(a))。リフレッシュブロックは、連続する読み出し動作の途中で、データブロックMBD10からデータブロックMBD11に切り替わる(図11(b))。データブロックMBD0-15、符号ブロックMBE0-7に予め書き込まれているデータは、図10と同じである。この例では、データブロックMBD12に1ビットエラーが発生し、読み出しデータrdat[15:0]の第12ビットは、読み出し動作毎に"0"および"1"に変化する。なお、実際の異なるアドレスの読み出し動作において、符号ブロックMBD12に連続して1ビットエラーが発生することはまれである。
リフレッシュブロックとして動作するデータブロックMBD10からデータは読み出されないため、読み出しデータrdat[15:0]の第10ビットは、例えば"論理0"として読み出される。同様に、リフレッシュブロックとして動作するデータブロックMBD11からデータは読み出されないため、読み出しデータrdat[15:0]の第11ビットは、例えば"論理1"として読み出される。
上述した図10と同様に、データ制御回路12のエラー判定回路32、34は、読み出しデータrdat[15:0]およびエラー訂正符号recc[7:0]から比較結果信号res0、res1を生成する。比較結果信号res0、res1は、2ビット以上のエラー("0001")またはデータブロックの1ビットエラー("0010")を示す。エラー復号回路36は、比較結果信号res0、res1に基づいて、リフレッシュ動作の実行により読み出せないデータを再生する。また、エラー復号回路36は、上述の式(6)、(7)に示したように、エラー訂正符号recc[7:0]から1ビットエラーが発生したブロックアドレスを求め、そのブロックアドレスから読み出されたデータを反転する。すなわち、データブロックMBD12で発生した1ビットエラーが訂正される。
以上、本実施形態では、リフレッシュブロックから読み出されるべき予想データ(論理1、論理0)を、他のブロックから読み出されるデータにそれぞれ付加して2つの読み出しデータ列rdat0、rdat1を生成するデータ付加回路26と、読み出しデータ列rdat0、rdat1についてそれぞれエラーを検出し、これ等のエラー検出結果から最も確からしい一つを真とするエラー訂正回路12cとを擬似SRAMに構成した。このため、擬似SRAMをアクセスするシステムに対してリフレッシュ動作を隠すことができ、同時にリフレッシュブロック以外で発生した1ビットエラーを訂正できる。これは、最小ハミング距離が"4"の水平垂直パリティ符号を使用することで可能になる。
リフレッシュ動作を読み出し要求と競合することなく隠すことができるため、読み出しサイクル時間が長くなることを防止できる。また、リフレッシュ要求間隔を延ばすことができ、スタンバイ中の消費電力を削減できる。したがって、AC特性およびDC特性の両方をSRAMと同等以下にできる擬似SRAMを構成できる。換言すれば、SRAMと完全に互換性を有する擬似SRAMをユーザに提供できる。ユーザは、システム上に搭載されるSRAMを本発明の擬似SRAMに置き換えるだけで、コストを削減できる。
リフレッシュ制御回路20が出力するリフレッシュポイント信号refpointd[15:0]、refpointd[7:0]により、データブロックMBD0-15および符号ブロックMBE0-7のいずれか1つのみをリフレッシュブロックに設定した。リフレッシュ動作により読み出せないデータを常に1ビットにできるため、リフレッシュ動作により読み出せないデータを、簡易なデータ付加回路26およびエラー訂正回路12cによって復号できる。
アクセス制御回路18は、リフレッシュブロックに対して読み出し要求信号rdd、rdeを出力しないため、リフレッシュブロックは、リフレッシュ動作の実行中、非実行中にかかわらず読み出し動作を実行しない。このため、ブロック制御回路BCNTの読み出し制御を容易にできる。
ブロック制御回路BCNTは、リフレッシュ要求信号refd(またはrefe)と書き込み要求信号wrd(またはwre)が競合するときに、リフレッシュ動作を実行した後に、書き込み動作を遅れて実行する。このため、書き込みデータwdat(またはwecc)をリフレッシュブロックに対して確実に書き込むことができる。
書き込みコマンドの最小供給間隔である外部書き込みサイクル時間Tcyceを、内部書き込みサイクル時間Tcyciより長く設定した。具体的には、8回の外部書き込みサイクル時間Tcyceの間に、1回のリフレッシュ動作と8回の書き込み動作を実行可能にした。このため、リフレッシュ動作の優先により発生した書き込み動作の遅れを徐々に取り戻すことができる。すなわち、書き込みデータをリフレッシュブロックに確実に書き込むことができる。
また、リフレッシュブロックの最後のリフレッシュ要求信号から次のリフレッシュブロックに切り替わるまでの切り替え期間に、8回の外部書き込みサイクル時間Tcyceを挿入可能とした。このため、あるブロックにおいてリフレッシュ要求により遅れた書き込み動作は、そのブロックがリフレッシュブロックの間に完了する。したがって、読み出し動作が、リフレッシュブロック中の書き込み動作の遅れの影響を受けて遅れることを防止でき、リフレッシュ動作と書き込み動作の競合に伴い読み出しアクセス時間が増加することを防止できる。
エラー訂正回路12cは、4種類のエラー項目を検出し(エラー無し、データブロックのいずれかの1ビットエラー、符号ブロックのいずれかの1ビットエラーである符号エラーおよび2ビット以上のエラー)、優先度の高いエラー項目を真とする。このため、簡易な論理でエラー訂正回路12cを構成できる。
データブロックMBD0-15を、データ端子DQ0-15にそれぞれ対応して形成することで、擬似SRAMに一度に入出力されるデータ単位でエラーを訂正できる。このため、符号データの生成および読み出しデータのエラー訂正の論理を簡易にでき、読み出しサイクル時間および書き込みサイクル時間が増加することを防止できる。
図12は、本発明の半導体メモリの第2の実施形態を示している。第1の実施形態で説明した回路・信号と同一の回路・信号については、同一の符号を付し、これ等については、詳細な説明を省略する。
この実施形態の半導体メモリは、シリコン基板上にCMOSプロセスを使用してクロック非同期式の擬似SRAMとして形成されている。すなわち、擬似SRAMは、クロック信号を受けるクロック端子を持っていない。また、この実施形態では、後述する図13、図14に示すように、拡大ハミング符号がエラー訂正符号として使用される。この拡大ハミング符号の最小ハミング距離は、"4"であり、1ビットのエラー訂正と、2ビットのエラー検出とを同時にできる。
擬似SRAMは、第1の実施形態のデータ制御回路12、アクセス制御回路18、リフレッシュ制御回路20およびメモリコア24の代わりに、データ制御回路12A、アクセス制御回路18A、リフレッシュ制御回路20Aおよびメモリコア24Aを有している。また、擬似SRAMは、クロック信号OSCを生成する発振器40Aを新たに有している。
メモリコア24Aは、データ端子DQ15-0にそれぞれ対応する16個のデータブロックMBD0-15、6ビットの誤り訂正符号の各ビットをそれぞれ保持する6個の符号ブロックMBE0-5およびブロック制御回路BCNTを有している。データブロックMBD0-15および符号ブロックMBE0-5の構造、メモリ容量は、第1の実施形態と同じである。すなわち、各ブロックMBD0-15、MBE0-5は、ダイナミックメモリセルと、これ等ダイナミックメモリセルに接続されたワード線、ビット線とを有している。
拡大ハミング符号は、符号化する情報データが16ビット(本実施形態)、32ビット、64ビット、128ビット、256ビットのとき、それぞれ6ビット、7ビット、8ビット、9ビット、10ビット必要になる。すなわち、情報ビットが2のn乗のとき、符号データはn+2ビット必要になる。このため、拡大ハミング符号は、上述した水平垂直パリティ符号より符号化率が高く、符号ブロックMBEの数を減らすことができる。また、符号ブロックMBEに配線される信号線を減らすことができる。この結果、擬似SRAMのチップサイズを削減できる。
発振器40Aは、パワーオン後、所定の周期のクロック信号OSCを自己発振する。この実施形態では、クロック信号OSCの周波数は、第1の実施形態のクロック信号CLKの周波数と同じに設定されている。
リフレッシュ制御回路20Aは、リフレッシュポイント信号refpointd[15:0]、refpointe[7:0]およびリフレッシュ要求信号refd[15:0]、refe[7:0]の代わりに、リフレッシュポイント信号refpoint[21:0]およびリフレッシュ要求信号ref[21:0]を出力することを除き、第1の実施形態のリフレッシュ制御回路20と同じである。すなわち、リフレッシュ制御回路20Aは、クロック信号OSCに同期して動作するタイマ、カウンタ、シフトレジスタおよびリフレッシュ要求生成回路を有している。シフトレジスタは、縦続接続された22個のラッチを有しており、最終段のラッチの出力は初段のラッチの入力に帰還されている。シフトレジスタは、カウンタのオーバフロー毎にシフト動作し、リフレッシュ動作を実行するブロックMBD0-15、MBE0-5を示すためのリフレッシュポイント信号refpoint[21:0]をラッチからそれぞれ出力する。リフレッシュポイント信号refpoint[21:0]により選択されたブロックMBD0-15、MBE0-5の一つは、リフレッシュ動作を実行するリフレッシュブロックとして動作する。リフレッシュ要求生成回路は、リフレッシュポイント信号refpoint[21:0]の活性化期間に、周期信号に同期して対応するリフレッシュ要求信号ref[21:0]を出力する。
リフレッシュ制御回路20Aの動作は、信号名が異なることを除き、図3および図4と同じである。すなわち、各リフレッシュポイント信号refpoint[21:0]の活性化間隔T1(各メモリセルのリフレッシュ間隔に対応)は、ワーストのメモリセルのデータリテンション時間より長く設定されている。ワーストのメモリセルは、リフレッシュ動作を実行するときに既にデータを消失する。しかし、失われたデータは、データ制御回路12Aのエラー訂正機能により復号できる。この結果、第1の実施形態と同様にスタンバイ期間の消費電力を削減できる。
アクセス制御回路18Aは、コマンド信号CMDを解読し、解読結果に応じて読み出し動作を実行する読み出し要求信号rd[21:0]または書き込み要求信号wr[21:0]を出力する。但し、アクセス制御回路18Aは、リフレッシュポイント信号refpoint[21:0]のいずれかの活性化を受けたとき、対応する読み出し要求信号rd[21:0]のいずれかの出力をマスクする。また、アクセス制御回路18Aは、リフレッシュ要求信号ref[21:0]のいずれかを受けたとき、対応する書き込み要求信号wr[21:0]のいずれかを、リフレッシュ動作が挿入される期間だけ順次遅らせて出力する。
データ制御回路12Aは、書き込み動作中に、入力データDIN[15:0]を書き込みデータwdat[21:0]としてメモリコア24Aに出力する。書き込みデータwdat[21:0]の上位6ビット[21:16]は、入力データDIN[15:0]から生成されるエラー訂正符号(書き込み符号データ)である。また、データ制御回路12は、読み出し動作中に、メモリコア24から読み出しデータrdat[21:0]を受け、リフレッシュ動作により読み出させないデータおよびデータ保持特性が悪くデータが失われたメモリセルからの読み出しデータをエラー訂正し、出力データDOUT[15:0]として出力する。読み出しデータrdat[21:0]の上位6ビット[21:16]は、符号ブロックMBE21-16から読み出されるエラー訂正符号(読み出し符号データ)である。また、データ制御回路12Aは、読み出し動作中に訂正が不可能な2ビット以上のエラーを検出したときに、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のブロック番号にそれぞれ対応する。
図13は、図12に示したデータ制御回路12Aの詳細を示している。
データ制御回路12Aは、メモリコア24Aからの読み出しデータを訂正するデータ訂正部12dおよびメモリコア24Aへの書き込みデータからエラー訂正符号を生成するデータ符号化部12eを有している。データ訂正部12dは、データ付加回路42およびエラー訂正回路12fを有している。エラー訂正回路12fは、シンドローム生成回路44、46、エラー判定回路48、50およびエラー復号回路52を有している。データ符号化部12eは、符号化回路54Aを有している。
データ付加回路42は、読み出し動作を実行できないリフレッシュブロックとして動作するブロック(MBD0-15、MBE0-5のいずれか)からの読み出しデータを"論理1"および"論理0"と仮定して、読み出しデータ列code0[21:0]、code1[21:0]をそれぞれ生成する。データ付加回路42は、リフレッシュポイント信号refpoint[21:0]によりリフレッシュブロックを判定する。すなわち、データ付加回路42は、リフレッシュブロックから読み出されるべきデータを"論理1"または"論理0"の予想データとして、他のブロックからの読み出しデータに付加し、読み出しデータ列code0[21:0]、code1[21:0]を生成する。
シンドローム生成回路44は、読み出しデータcode0[21:0]からシンドロームsyn0[5:0]を生成する。また、シンドローム生成回路44は、生成したシンドロームsyn0[5:0]からエラーの種別を判定し、比較結果信号res0として出力する。シンドローム生成回路46は、読み出しデータcode1[21:0]からシンドロームsyn1[5:0]を生成する。また、シンドローム生成回路46は、生成したシンドロームsyn1[5:0]からエラーの種別を判定し、比較結果信号res1として出力する。比較結果信号res0、res1の仕様は、第1の実施形態とほぼ同じである。但し、本実施形態では、「ECCエラー」はない。このため、エラー判定の優先度は、高い順からエラー無し>1ビットエラー>2ビット以上のエラーになる。
エラー判定回路48は、シンドロームsyn0[5:0]からエラーの種別およびエラーブロックを判定し、読み出しデータcode0[21:0]のエラーを訂正する。訂正された22ビットの読み出しデータは、訂正コードccode0[21:0]として出力される。訂正された22ビットの読み出しデータのうちメモリブロックMBD15-0に対応する下位の16ビットは、出力データdout0[15:0]として出力される。また、エラー判定回路48は、2ビット以上のエラーを検出したときに、エラーフラグ信号errflg_2b0を出力する。
エラー判定回路50は、エラー判定回路48と同じ回路である。エラー判定回路50は、シンドロームsyn1[5:0]からエラーの種別およびエラーブロックを判定し、読み出しデータcode1[21:0]のエラーを訂正し、訂正コードccode1[21:0]、出力データdout1[15:0]、エラーフラグ信号errflg_2b1を出力する。
エラー復号回路52は、比較結果信号res0、res1が示すエラー内容に応じて、エラー判定回路48、50のどちらが真かを判定し、判定したエラー判定回路48(または50)から出力される出力データ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]は、この実施形態では使用されないが、エラーの発生したメモリセルのデータを書き換える場合に使用される書き換えデータである。
データ符号化部12eの符号化回路54Aは、入力データDIN[15:0](書き込みデータ)からエラー訂正符号wdat[21:16]を生成し、書き込みデータwdat[15:0]とともにメモリコア24Aに出力する。
図14〜図17は、図13に示したデータ制御回路12Aの一部の回路ブロックのRTL記述および論理合成結果を示している。記述中の"syndrome"は、図13に示した"syn"に対応する。
図14は、図13に示したエラー判定回路48、50のRTL記述を示している。図15は、図14のRTL記述から論理合成した結果を示している。図16は、図13に示したシンドローム生成回路44、46のシンドローム生成部のRTL記述を示している。図17は、図13に示したデータ符号化部12eの符号化回路54AのRTL記述を示している。
図18は、図12に示したデータ制御回路12Aのエラー訂正動作を示している。
図中のブロックD0-D15およびブロックP0-P5は、図12に示したデータブロックMBD0-15および符号ブロックMBE16-21にそれぞれ対応する。ブロックD0-D15、P0-P5のビットアドレスE1-E22は、一般的なハミング符号と同様に、シンドロームのビットがエラーアドレスを示すように割り当てられている。
この例では、データブロックMBD10(ブロックD10)がリフレッシュブロックとして動作している。このため、読み出しデータrdatのうちブロックD10に対応するビットは、網掛けの太枠で囲ったように不定である。図13に示したデータ制御回路12Aのデータ付加回路42は、ブロックD10に対応するビットに"論理0"を付加した読み出しデータcode0と、ブロックD10に対応するビットに"論理1"を付加した読み出しデータcode1とを生成する。
シンドローム生成回路44は、読み出しデータcode0からシンドロームsyn0[5:0]を生成する。シンドローム生成回路44は、シンドロームsyn0[5:0]の全ビットS5-0が"論理0"のため、エラー無しを示す比較結果信号res0("1000")を出力する。シンドローム生成回路46は、読み出しデータcode1からシンドロームsyn1[5:0]を生成する。シンドローム生成回路46は、シンドロームsyn1[5:0]の最上位ビットS5が"論理1"のため、1ビットエラーを示す比較結果信号res1("0010")を出力する。
エラー判定回路48は、シンドローム生成回路44からのシンドロームsyn0[5:0]がエラー無しを示すため、読み出しデータcode0[21:0]のうちデータブロックMBD15-0に対応するビットを出力データdout0[15:0]として出力する。エラー判定回路50は、シンドローム生成回路44からのシンドロームsyn1[5:0]が1ビットエラーを示すため、シンドロームsyn1[5:0]の下位5ビット("01111"=10進の"15")をエラーアドレス("E15"=MBD10)とする。エラー判定回路50は、読み出しデータcode1[21:0]のうちデータブロックMBD10から読み出されたデータの論理を反転し、データブロックMBD15-0に対応するビットを出力データdout1[15:0]として出力する。
エラー復号回路52は、シンドローム生成回路44、46からの比較結果信号res0(エラー無し)、res1(1ビットエラー)より、エラー判定回路48の出力が正しいと判定する。エラー復号回路52は、エラー判定回路48から出力される出力データdout0[15:0]およびエラーフラグ信号errflg_2b0(エラー無しを示す)を出力データDOUT[15:0]およびECCエラー信号ECCERR(エラー無しを示す)として出力する。
図19は、図12に示したデータ制御回路12Aの別のエラー訂正動作を示している。図18と同じ記述および動作については詳細な説明を省略する。
この例では、図18と同様に、データブロックMBD10(ブロックD10)がリフレッシュブロックとして動作している。また、図中に太枠で示すように、データブロックMBD1(ブロックD1)に1ビットエラーが発生する。
データ制御回路12Aのデータ付加回路42は、ブロックD10に対応するビットに"論理0"を付加した読み出しデータcode0と、ブロックD10に対応するビットに"論理1"を付加した読み出しデータcode1とを生成する。
シンドローム生成回路44、46は、読み出しデータcode0、code1からシンドロームsyn0[5:0]、syn1[5:0]をそれぞれ生成する。シンドローム生成回路44は、シンドロームsyn0[5:0]の最上位ビットS5が"論理1"のため、1ビットエラーを示す比較結果信号res0("0010")を出力する。シンドローム生成回路46は、シンドロームsyn1[5:0]の最上位ビットS5が"論理0"かつビットS4-0の少なくともいずれかが"論理1"のため、2ビット以上のエラーを示す比較結果信号res1("0001")を出力する。
エラー判定回路48は、シンドローム生成回路44からのシンドロームsyn0[5:0]が1ビットエラーを示すため、シンドロームsyn0[5:0]の下位5ビット("00101"=10進の"5")をエラーアドレス("E5"=MBD1)とする。エラー判定回路48は、データブロックMBD1から読み出された"論理1"を反転し、読み出しデータcode0[21:0]のうちデータブロックMBD15-0に対応するビットを出力データdout0[15:0]として出力する。エラー判定回路50は、シンドローム生成回路44からのシンドロームsyn1[5:0]が2ビット以上のエラーを示すため、エラー訂正を行わず、読み出しデータcode1[21:0]のうちデータブロックMBD15-0に対応するビットをそのまま出力データdout1[15:0]として出力する。また、エラー判定回路50は、エラーフラグ信号errflg_2b1を高レベルに活性化する。
エラー復号回路52は、シンドローム生成回路44、46からの比較結果信号res0(1ビットエラー)、res1(2ビット以上のエラー)より、エラー判定回路48の出力が正しいと判定する。エラー復号回路52は、エラー判定回路48から出力される出力データdout0[15:0]およびエラーフラグ信号errflg_2b0(エラー無しを示す)を出力データDOUT[15:0]およびECCエラー信号ECCERR(エラー無しを示す)として出力する。
この実施形態においても、上述した第1の実施形態と同様の効果を得ることができる。さらに、この実施形態では、符号データとして拡大ハミング符号を使用することで、符号データのビット数を減らすことができる。この結果、符号ブロックMBEの数を第1の実施形態に比べ2つ減らすことができ、擬似SRAMのチップサイズを削減できる。
また、エラー訂正回路12fは、訂正不可能な「2ビット以上のエラー」を検出したときに、ECCエラー信号ECCERRを出力する。ECCエラー信号ECCERRにより、擬似SRAMをアクセスする外部のシステムは、読み出し動作のリトライおよびデータの廃棄等、エラーを回避する動作を実行できる。この結果、システムの信頼性を向上できる。
図20は、本発明の半導体メモリの第3の実施形態を示している。第1および第2の実施形態で説明した回路・信号と同一の回路・信号については、同一の符号を付し、これ等については、詳細な説明を省略する。
この実施形態の半導体メモリは、シリコン基板上にCMOSプロセスを使用してクロック非同期式の擬似SRAMとして形成されている。また、この実施形態では、拡大ハミング符号がエラー訂正符号として使用される。この拡大ハミング符号の最小ハミング距離は、"4"であり、1ビットのエラー訂正と、2ビットのエラー検出とを同時にできる。
擬似SRAMは、第2の実施形態のメモリコア24Aおよび発振器40Aの代わりに、メモリコア24Bおよび発振器40Bを有している。その他の構成は、第2の実施形態とほぼ同一である。
メモリコア24Bは、ワード線単位で不良を救済するためのロウ冗長回路およびビット線単位で不良を救済するためのコラム冗長回路が形成されていないことを除き、第2の実施形態のメモリコア24Aと同じである。
発振器40Bは、第2の実施形態より周期の短いクロック信号OSCを自己発振する。このため、リフレッシュ制御回路は20Aが出力する各リフレッシュポイント信号refpoint[21:0]の活性化期間およびリフレッシュ要求信号ref[21:0]の発生間隔は、第2の実施形態より短くなる。具体的には、各リフレッシュポイント信号refpoint[21:0]の活性化間隔T1(各メモリセルのリフレッシュ間隔に対応)は、ワーストのメモリセルのデータリテンション時間より短く設定されている。このため、ワーストのメモリセルを含む全てのメモリセルは、リフレッシュ動作の実行により常にデータを保持できる。データ制御回路12Aのエラー訂正機能は、製造工程で発生したメモリコアの不良を救済するために使用される。すなわち、符号ブロックMBE0-5は、ロウ冗長回路およびコラム冗長回路の代わりに機能する。
この実施形態においても、上述した第1および第2の実施形態と同様の効果を得ることができる。さらに、この実施形態では、符号ブロックMBE0-5を、ロウ冗長回路およびコラム冗長回路の代わりに形成することで、製造工程で不良になったメモリセルから読み出される誤ったデータを、エラー訂正回路により訂正できる。冗長回路の形成が不要になるため、チップサイズを削減できる。
図21は、本発明の半導体メモリの第4の実施形態を示している。第1および第2の実施形態で説明した回路・信号と同一の回路・信号については、同一の符号を付し、これ等については、詳細な説明を省略する。
この実施形態の半導体メモリは、シリコン基板上にCMOSプロセスを使用してクロック非同期式の擬似SRAMとして形成されている。また、この実施形態では、拡大ハミング符号がエラー訂正符号として使用される。この拡大ハミング符号の最小ハミング距離は、"4"であり、1ビットのエラー訂正と、2ビットのエラー検出とを同時にできる。
擬似SRAMは、第2の実施形態のデータ制御回路12A、アクセス制御回路18Aおよび発振器40Aの代わりに、データ制御回路12C、アクセス制御回路18Cおよび第3の実施形態と同じ発振器40Bを有している。
データ制御回路12Cは、読み出し動作中に、訂正可能なエラー(1ビットエラー)を検出したときに、訂正したデータをメモリコア24Aに書き戻す機能を有している。アクセス制御回路18Cは、データ制御回路12Cが訂正したデータをメモリコア24Aに書き戻すときに、書き込み要求信号wr[21:0]を出力する。
図22は、図21に示したデータ制御回路12Cの詳細を示している。
データ制御回路12Cは、第2の実施形態のデータ符号化部12eの代わりにデータ符号化部12gを有している。データ訂正部12dの構成は、第2の実施形態と同じである。データ符号化部12gは、符号化回路54Aおよびセレクタ56Bを有している。セレクタ56Bは、書き込み動作中に、入力データDIN[15:0](書き込みデータ)を符号化回路54Aで符号化したデータを書き込みデータwdat[21:0]として出力する。また、セレクタ56Bは、読み出し動作中に1ビットエラーが発生したときに、データ訂正部12dのエラー復号回路52から出力される訂正コードccode[21:0]を書き込みデータwdat[21:0]として出力する。すなわち、セレクタ56Bは、読み出し動作中に、エラー訂正回路12fが訂正したデータをデータブロックMBDおよび符号ブロックMBEに書き戻す書き戻し制御回路として機能する。
この実施形態においても、上述した第1および第2の実施形態と同様の効果を得ることができる。さらに、この実施形態では、エラー訂正回路12fが訂正したデータをセレクタ56BによってデータブロックMBDおよび符号ブロックMBEに書き戻すことができる。このため、電源ノイズ、ソフトエラー等により破壊されたメモリセル内のデータが読み出されたとき、このメモリセルに正しいデータを書き込むことができ、擬似SRAMの信頼性を向上できる。
図23は、本発明の半導体メモリの第5の実施形態を示している。第1および第2の実施形態で説明した回路・信号と同一の回路・信号については、同一の符号を付し、これ等については、詳細な説明を省略する。
この実施形態の半導体メモリは、シリコン基板上にCMOSプロセスを使用してクロック非同期式の擬似SRAMとして形成されている。また、この実施形態では、拡大ハミング符号がエラー訂正符号として使用される。この拡大ハミング符号の最小ハミング距離は、"4"であり、1ビットのエラー訂正と、2ビットのエラー検出とを同時にできる。
擬似SRAMは、第2の実施形態のデータ制御回路12A、アクセス制御回路18A、リフレッシュ制御回路20A、発振器40Aおよびメモリコア24Aの代わりに、データ制御回路12D、アクセス制御回路18D、リフレッシュ制御回路20D、発振器40Dおよびメモリコア24Dを有している。
メモリコア24Dは、64個のデータブロックMBD[63:0]と、8個の符号ブロックMBE[7:0]を有している。この実施形態では、データブロックMBD[63:0]の数は、データ端子DQ[15:0]のビット数の4倍に設計されている。このため、1回の書き込み動作でデータ端子[15:0]に供給される書き込みデータだけでは、符号データを生成できない。したがって、データ制御回路12Dは、後述するように、書き込み動作の最初に、データブロックMBD[63:0]および符号ブロックMBE[7:0]からデータを読み出す必要がある。しかし、符号データを生成するための情報データのビット数を増やすことで、符号ブロックMBEの数を相対的に減らすことができる。特に、拡大ハミング符号の場合、情報ビットが2のn乗のとき、符号データはn+2ビットだけでよい。この結果、符号ブロックMBEの数を相対的に大幅に減らすことができ、擬似SRAMのチップサイズが増加することを防止できる。
データ制御回路12Dは、読み出し動作中に、読み出しデータrdat[71:0]に訂正可能なエラー(1ビットエラー)がある場合、エラーを訂正する。そして、データ制御回路12Dは、アドレス端子ADに供給されるロウアドレスの下位ビットに応じてデータブロックMBD0-63のうちの16個に対応する読み出しデータを選択し、選択したデータを出力データDOUT[15:0]として出力する。データ制御回路12Dは、読み出し動作中に、読み出しデータrdat[71:0]に訂正不可能なエラー(2ビット以上のエラー)がある場合、ECCエラー信号ECCERRをエラー端子に出力する。
データ制御回路12Dは、書き込み動作中に、データブロックMBD0-63および符号ブロックMBE0-7からデータを読み出し、エラーがある場合に情報データを復号する。次に、データ制御回路12Dは、復号した情報データのうち書き込みデータDIN[15:0]に対応するビットを、この書き込みデータDIN[15:0]に入れ替えて書き換えデータ列を生成する。そして、データ制御回路12Dは、書き換えデータ列から新たな符号データを求め、書き換えデータ列および新たな符号データをデータブロックMBD0-63および符号ブロックMBE0-7にそれぞれ書き込む。このように、本実施形態では、擬似SRAMは、書き込み動作の最初にメモリコア24Aからデータを読み出す読み出し動作が実行される。
アクセス制御回路18Dは、データ制御回路12Dの動作に合わせて、読み出し要求信号rd[71:0]または書き込み要求信号wr[71:0]を出力する。具体的には、書き込み動作中に、読み出し要求信号rd[71:0]および書き込み要求信号wr[71:0]が順次出力される。
リフレッシュ制御回路20Dは、リフレッシュポイント信号refpoint[71:0]およびリフレッシュ要求信号ref[71:0]を順次出力する。リフレッシュ制御回路20Dの動作は、出力する信号のビット数が増えたことを除き、第2の実施形態のリフレッシュ制御回路20Aと同じである。発振器40Dが出力するクロック信号OSCの周波数は、リフレッシュポイント信号refpoint[71:0]のビット数に対応して、第2の実施形態に比べて高く設定されている。
図24は、図23に示した擬似SRAMの書き込み動作を示している。
書き込み動作では、まず、図示しないワード線が活性化され、符号ブロックMBEおよびデータブロックMBDのそれぞれにおいて、メモリセルから相補のビット線BL、/BLのいずれかにデータが読み出される(図24(a))。この後、センスアンプが活性化され、ビット線BL、/BLの電圧差が増幅される(図24(b))。次に、コラムスイッチ信号CSWが活性化され、増幅されたデータは、読み出しデータrdat[63:0]として、データ制御回路12Dに転送される(図24(c))。データ制御回路12Dは、読み出しデータrdat[63:0]のエラーを訂正する。次に、データ制御回路12Dは、データブロックMBDから読み出さ
れたデータのうち8ビットを、データ端子DQ7-0に供給された書き込みデータDIN[7:0]と置き換える(図24(d))。
次に、データ制御回路12Dは、置き換えた書き込みデータを用いて新たな符号データを生成する(図24(e))。そして、置き換えた書き込みデータおよび新たな符号データは、書き込みデータwdat[63:0]として符号ブロックMBEおよびデータブロックMBDに順次書き込まれる(図24(f、g))。この後、ワード線が非活性化され、ビット線BL、/BLがプリチャージされて、書き込み動作が完了する(図24(h、i))。
この例では、データの書き込み時のコラムスイッチ信号CSWのタイミング、ワード線の非活性化タイミングおよびビット線BL、/BLのプリチャージ開始タイミングは、符号ブロックMBEおよびデータブロックMBDで相違している。しかし、これ等のタイミングは、符号ブロックMBEおよびデータブロックMBDで同じにしてもよい。
この実施形態においても、上述した第1および第2の実施形態と同様の効果を得ることができる。さらに、この実施形態では、情報データを記憶するデータブロックの数を増やすことで、情報データのビット数に対する符号データのビット数を相対的に減らすことができる。この結果、符号ブロックの数を、データブロックの数に対して相対的に減らすことができ、擬似SRAMのチップサイズを削減できる。
なお、上述した実施形態では、本発明を擬似SRAMチップに適用した例について述べた。本発明はかかる実施形態に限定されるものではない。例えば、本発明をシステムLSIに搭載される擬似SRAMコアに適用してもよい。
以上の実施形態において説明した発明を整理して、付記として開示する。
(付記1)情報データを記憶するメモリセルを有する複数のデータブロックと、
前記データブロックに記憶されたデータを復号するための符号データを記憶するメモリセルを有する複数の符号ブロックと、
前記データブロックおよび前記符号ブロックにリフレッシュ動作を順次実行させるためにリフレッシュ要求信号を出力するリフレッシュ制御回路と、
前記データブロックおよび前記符号ブロックのうちリフレッシュ動作によりデータを読み出せないブロックであるリフレッシュブロックから読み出されるべき複数種の予想データを、他のブロックから読み出されるデータにそれぞれ付加して複数の読み出しデータ列を生成するデータ付加回路と、
前記読み出しデータ列についてそれぞれエラーを検出し、これ等のエラー検出結果から最も確からしい一つを真とし、真としたエラー検出結果に対応する読み出しデータ列のエラーを訂正するエラー訂正回路とを備えていることを特徴とする半導体メモリ。
(付記2)付記1の半導体メモリにおいて、
前記リフレッシュ制御回路は、前記データブロックおよび前記符号ブロックのいずれか1つにリフレッシュ動作を実行させるために、前記データブロックおよび前記符号ブロックにリフレッシュ要求信号を順次出力することを特徴とする半導体メモリ。
(付記3)付記1の半導体メモリにおいて、
読み出しコマンドに応答してリフレッシュブロックを除く前記データブロックおよび前記符号ブロックに読み出し要求信号を出力するアクセス制御回路を備えていることを特徴とする半導体メモリ。
(付記4)付記1の半導体メモリにおいて、
書き込みコマンドに応答して前記データブロックおよび前記符号ブロックに書き込み要求信号を出力するアクセス制御回路を備え、
前記データブロックおよび前記符号ブロックは、前記リフレッシュ要求信号と前記書き込み要求信号が競合するときに、リフレッシュ動作を実行した後書き込み動作を順次遅れて実行するブロック制御回路をそれぞれ備えていることを特徴とする半導体メモリ。
(付記5)付記4の半導体メモリにおいて、
前記書き込みコマンドの最小供給間隔である外部書き込みサイクル時間は、前記各ブロックの書き込み動作時間である内部書き込みサイクル時間より長く設定されていることを特徴とする半導体メモリ。
(付記6)付記5の半導体メモリにおいて、
あるリフレッシュブロックの最後のリフレッシュ要求信号から次のリフレッシュブロックに切り替わるまでの切り替え期間に、n回の前記外部書き込みサイクル時間が挿入可能であり、かつ1回のリフレッシュ動作とn回の書き込み動作を実行可能であることを特徴とする半導体メモリ。
(付記7)付記6の半導体メモリにおいて、
前記切り替え期間は、外部書き込みサイクル時間Tcycと内部書き込みサイクル時間との差をδとするときに、少なくとも(Tcyc/δ)×Tcycに設定されることを特徴とする半導体メモリ。
(付記8)付記1の半導体メモリにおいて、
前記符号ブロックは、不良を救済する冗長回路の代わりに形成されることを特徴とする半導体メモリ。
(付記9)付記8の半導体メモリにおいて、
前記符号ブロックは、ワード線単位で不良を救済するロウ冗長回路の代わりに形成されることを特徴とする半導体メモリ。
(付記10)付記8の半導体メモリにおいて、
前記符号ブロックは、ビット線単位で不良を救済するコラム冗長回路の代わりに形成されることを特徴とする半導体メモリ。
(付記11)付記1の半導体メモリにおいて、
前記データ付加回路は、リフレッシュブロックからの読み出しデータの論理を論理1および論理0と仮定して2つの前記読み出しデータ列を生成することを特徴とする半導体メモリ。
(付記12)付記11の半導体メモリにおいて、
前記エラー訂正回路は、前記読み出しデータ列のうちエラーの少ない読み出しデータ列を真として選択することを特徴とする半導体メモリ。
(付記13)付記12の半導体メモリにおいて、
前記エラー訂正回路は、「エラー無し」、「データブロックのいずれかの1ビットエラー」、「符号ブロックのいずれかの1ビットエラーである符号エラー」および「2ビット以上のエラー」のいずれかを検出し、エラー判定の優先度を、エラー無し>符号エラー>1ビットエラー>2ビット以上のエラーとし、優先度の高い項目を真とすることを特徴とする半導体メモリ。
(付記14)付記13の半導体メモリにおいて、
前記エラー訂正回路が「2ビット以上のエラー」を検出したときに、エラー信号を出力するエラー端子を備えていることを特徴とする半導体メモリ。
(付記15)付記12の半導体メモリにおいて、
前記エラー訂正回路は、「エラー無し」、「データブロックまたは符号ブロックのいずれかの1ビットエラー」、および「2ビット以上のエラー」のいずれかを検出し、エラー判定の優先度を、エラー無し>1ビットエラー>2ビット以上のエラーとし、優先度の高い項目を真とすることを特徴とする半導体メモリ。
(付記16)付記1の半導体メモリにおいて、
前記エラー訂正回路が訂正不可能なエラーを検出したときに、エラー信号を出力するエラー端子を備えていることを特徴とする半導体メモリ。
(付記17)付記1の半導体メモリにおいて、
前記エラー訂正回路が訂正したデータを前記データブロックおよび前記符号ブロックに書き戻す書き戻し制御回路を備えていることを特徴とする半導体メモリ。
(付記18)付記1の半導体メモリにおいて、
前記情報データを入出力する複数のデータ端子を備え、
前記データブロックは、前記データ端子にそれぞれ対応して形成されていることを特徴とする半導体メモリ。
(付記19)付記1の半導体メモリにおいて、
前記情報データを入出力する複数のデータ端子を備え、
前記データ端子に一度に供給される書き込みデータは、前記データブロックの一部に書き込まれ、
前記エラー訂正回路は、書き込み動作中に、前記データブロックおよび前記符号ブロックからのデータにより前記情報データを復号し、復号した情報データの一部を前記書き込みデータに入れ替えて書き換えデータ列を生成し、前記書き換えデータ列から新たな符号データを求め、前記書き換えデータ列および新たな符号データを前記データブロックおよび前記符号ブロックにそれぞれ書き込むことを特徴とする半導体メモリ。
(付記20)付記1の半導体メモリにおいて、
前記各メモリセルのリフレッシュ間隔は、ワーストのメモリセルのデータリテンション時間より長く設定されていることを特徴とする半導体メモリ。
(付記21)付記1の半導体メモリにおいて、
前記エラー訂正回路は、
論理0の予想データを付加した情報データ列から第1符号データを生成する第1符号化回路と、
論理1の予想データを付加した情報データ列から第2符号データを生成する第2符号化回路と、
前記第1符号データを前記符号ブロックから読み出される符号データと比較し、エラーを判定する第1エラー判定回路と、
前記第2符号データを前記符号ブロックから読み出される符号データと比較し、エラーを判定する第2エラー判定回路と、
前記第1および第2エラー判定回路の判定結果のうち、最も確からしい判定結果を真とし、真とした判定結果に基づいてエラーを訂正するエラー復号回路とを備えていることを特徴とする半導体メモリ。
(付記22)付記1の半導体メモリにおいて、
前記エラー訂正回路は、
前記データブロックから読み出される情報データ列から符号データを生成する符号化回路と、
生成した符号データを、論理0の予想データを付加した符号データ列と比較し、エラーを判定する第1エラー判定回路と、
生成した符号データを、論理1の予想データを付加した符号データ列と比較し、エラーを判定する第2エラー判定回路と、
前記第1および第2エラー判定回路の判定結果のうち、最も確からしい判定結果を真とし、真とした判定結果に基づいてエラーを訂正するエラー復号回路とを備えていることを特徴とする半導体メモリ。
(付記23)付記1の半導体メモリにおいて、
前記エラー訂正回路は、
論理0の予想データを付加した読み出しデータ列から第1シンドロームを生成する第1シンドローム生成回路と、
論理1の予想データを付加した読み出しデータ列から第2シンドロームを生成する第2シンドローム生成回路と、
前記第1シンドロームからエラーの有無およびエラーアドレスを検出する第1エラー判定回路と、
前記第2シンドロームからエラーの有無およびエラーアドレスを検出する第2エラー判定回路と、
前記第1および第2エラー判定回路の判定結果のうち、最も確からしい判定結果を真とし、真とした判定結果に基づいてエラーを訂正するエラー復号回路とを備えていることを特徴とする半導体メモリ。
(付記24)付記1の半導体メモリにおいて、
前記符号データの最小ハミング距離は、4以上であることを特徴とする半導体メモリ。(付記25)付記24の半導体メモリにおいて、
前記符号データは、水平垂直パリティ符号であることを特徴とする半導体メモリ。
(付記26)付記24の半導体メモリにおいて、
前記符号データは、拡大ハミング符号であることを特徴とする半導体メモリ。
(付記27)情報データを記憶するメモリセルを有する複数のデータブロックと、前記データブロックに記憶されたデータを復号するための符号データを記憶するメモリセルを有する複数の符号ブロックと、前記データブロックおよび前記符号ブロックにリフレッシュ動作を順次実行させるためにリフレッシュ要求信号を出力するリフレッシュ制御回路とを備えた半導体メモリの動作方法であって、
前記データブロックおよび前記符号ブロックのうちリフレッシュ動作によりデータを読み出せないブロックであるリフレッシュブロックから読み出されるべき複数種の予想データを、他のブロックから読み出されるデータにそれぞれ付加して複数の読み出しデータ列を生成し、
前記読み出しデータ列についてそれぞれエラーを検出し、これ等のエラー検出結果から最も確からしい一つを真とし、
真としたエラー検出結果に対応する読み出しデータ列のエラーを訂正することを特徴とする半導体メモリの動作方法。
(付記28)付記27の半導体メモリの動作方法において、
前記データブロックおよび前記符号ブロックのいずれか1つにリフレッシュ動作を実行させるために、前記データブロックおよび前記符号ブロックにリフレッシュ要求信号を順次出力することを特徴とする半導体メモリの動作方法。
(付記29)付記27の半導体メモリの動作方法において、
読み出しコマンドに応答してリフレッシュブロックを除く前記データブロックおよび前記符号ブロックに読み出し要求信号を出力することを特徴とする半導体メモリの動作方法。
(付記30)付記27の半導体メモリの動作方法において、
書き込みコマンドに応答して前記データブロックおよび前記符号ブロックに書き込み要求信号を出力し、
前記データブロックおよび前記符号ブロックは、前記リフレッシュ要求信号と前記書き込み要求信号が競合するときに、リフレッシュ動作を実行した後書き込み動作を順次遅れて実行することを特徴とする半導体メモリの動作方法。
(付記31)付記30の半導体メモリの動作方法において、
前記書き込みコマンドの最小供給間隔である外部書き込みサイクル時間は、前記各ブロックの書き込み動作時間である内部書き込みサイクル時間より長く設定されていることを特徴とする半導体メモリの動作方法。
(付記32)付記31の半導体メモリの動作方法において、
あるリフレッシュブロックの最後のリフレッシュ要求信号から次のリフレッシュブロックに切り替わるまでの切り替え期間に、n回の前記外部書き込みサイクル時間が挿入可能であり、かつ1回のリフレッシュ動作とn回の書き込み動作を実行可能であることを特徴とする半導体メモリの動作方法。
(付記33)付記32の半導体メモリの動作方法において、
前記切り替え期間は、外部書き込みサイクル時間Tcycと内部書き込みサイクル時間との差をδとするときに、少なくとも(Tcyc/δ)×Tcycに設定されることを特徴とする半導体メモリの動作方法。
(付記34)付記27の半導体メモリの動作方法において、
リフレッシュブロックからの読み出しデータの論理を論理1および論理0と仮定して2つの前記読み出しデータ列を生成することを特徴とする半導体メモリの動作方法。
(付記35)付記34の半導体メモリの動作方法において、
前記読み出しデータ列のうちエラーの少ない読み出しデータ列を真として選択することを特徴とする半導体メモリの動作方法。
(付記36)付記35の半導体メモリの動作方法において、
「エラー無し」、「データブロックのいずれかの1ビットエラー」、「符号ブロックのいずれかの1ビットエラーである符号エラー」および「2ビット以上のエラー」のいずれかを検出し、
エラー判定の優先度を、エラー無し>符号エラー>1ビットエラー>2ビット以上のエラーとし、
優先度の高い項目を真とすることを特徴とする半導体メモリの動作方法。
(付記37)付記36の半導体メモリの動作方法において、
「2ビット以上のエラー」を検出したときに、エラー信号をエラー端子に出力することを特徴とする半導体メモリの動作方法。
(付記38)付記35の半導体メモリの動作方法において、
「エラー無し」、「データブロックおよび符号ブロックのいずれかの1ビットエラー」、および「2ビット以上のエラー」のいずれかを検出し、
エラー判定の優先度を、エラー無し>1ビットエラー>2ビット以上のエラーとし、
優先度の高い項目を真とすることを特徴とする半導体メモリの動作方法。
(付記39)付記27の半導体メモリの動作方法において、
訂正不可能なエラーを検出したときに、エラー信号をエラー端子に出力することを特徴とする半導体メモリの動作方法。
(付記40)付記27の半導体メモリの動作方法において、
訂正したデータを前記データブロックおよび前記符号ブロックに書き戻すことを特徴とする半導体メモリの動作方法。
(付記41)付記27の半導体メモリの動作方法において、
書き込み動作中に、
前記データブロックおよび前記符号ブロックからのデータにより前記情報データを復号し、
復号した情報データの一部を書き込みデータに入れ替えて書き換えデータ列を生成し、
前記書き換えデータ列から新たな符号データを求め、
前記書き換えデータ列および新たな符号データを前記データブロックおよび前記符号ブロックにそれぞれ書き込むことで、前記情報データを入出力するデータ端子に一度に供給される書き込みデータを前記データブロックの一部に書き込むことを特徴とする半導体メモリの動作方法。
(付記42)付記27の半導体メモリの動作方法において、
前記各メモリセルのリフレッシュ間隔は、ワーストのメモリセルのデータリテンション時間より長く設定されていることを特徴とする半導体メモリの動作方法。
(付記43)付記27の半導体メモリの動作方法において、
論理0の予想データを付加した情報データ列から第1符号データを生成し、
論理1の予想データを付加した情報データ列から第2符号データを生成し、
前記第1符号データを前記符号ブロックから読み出される符号データと比較し、エラーを判定し、
前記第2符号データを前記符号ブロックから読み出される符号データと比較し、エラーを判定し、
判定結果のうち、最も確からしい判定結果を真とし、真とした判定結果に基づいてエラーを訂正することを特徴とする半導体メモリの動作方法。
(付記44)付記27の半導体メモリの動作方法において、
前記データブロックから読み出される情報データ列から符号データを生成し、
生成した符号データを、論理0の予想データを付加した符号データ列と比較し、エラーを判定し、
生成した符号データを、論理1の予想データを付加した符号データ列と比較し、エラーを判定し、
判定結果のうち、最も確からしい判定結果を真とし、真とした判定結果に基づいてエラーを訂正することを特徴とする半導体メモリの動作方法。
(付記45)付記27の半導体メモリの動作方法において、
論理0の予想データを付加した読み出しデータ列から第1シンドロームを生成し、
論理1の予想データを付加した読み出しデータ列から第2シンドロームを生成し、
前記第1シンドロームからエラーの有無およびエラーアドレスを検出し、
前記第2シンドロームからエラーの有無およびエラーアドレスを検出し、
前記第1および第2エラー判定回路の判定結果のうち、最も確からしい判定結果を真とし、真とした判定結果に基づいてエラーを訂正することを特徴とする半導体メモリの動作方法。
(付記46)付記27の半導体メモリの動作方法において、
前記符号データの最小ハミング距離は、4以上であることを特徴とする半導体メモリの動作方法。
(付記47)付記46の半導体メモリの動作方法において、
前記符号データは、水平垂直パリティ符号であることを特徴とする半導体メモリの動作方法。
(付記48)付記46の半導体メモリの動作方法において、
前記符号データは、拡大ハミング符号であることを特徴とする半導体メモリの動作方法。
以上、本発明について詳細に説明してきたが、上記の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
本発明の半導体メモリでは、読み出しサイクル時間が長くすることなくリフレッシュ動作を外部のシステムに対して隠すことができ、同時に読み出しデータ列のエラーを訂正できる。エラー訂正機能を、データリテンション時間が短いメモリセルの読み出し不良の救済に利用することで、リフレッシュ要求間隔を延ばすことができ、スタンバイ中の消費電力を削減できる。したがって、本発明を、例えば、擬似SRAMに適用した場合、AC特性およびDC特性の両方をSRAMと同等以下にできる。換言すれば、SRAMと完全に互換性を有する擬似SRAMをユーザに提供できる。ユーザは、システム上に搭載されるSRAMを本発明が適用された擬似SRAMに置き換えるだけで、コストを削減できる。
本発明の半導体メモリでは、リフレッシュ要求に応答するリフレッシュ動作を1つのブロックでのみ実行することで、リフレッシュ動作により読み出せないデータを、容易に復元できる。
本発明の半導体メモリでは、リフレッシュ要求と読み出し要求が競合することを防止でき、読み出しアクセス時間が増加することを防止できる。また、アクセス制御回路による読み出し動作の制御を容易にできる。
本発明の半導体メモリでは、リフレッシュ要求信号と書き込み要求信号が競合するときに、リフレッシュ動作を実行した後に書き込み動作を遅れて実行することで、書き込みデータをリフレッシュブロックに対して確実に書き込むことができる。
本発明の第1の実施形態を示すブロック図である。 図1に示したデータ制御回路の詳細を示すブロック図である。 図1に示したリフレッシュ制御回路の動作を示すタイミング図である。 図1に示したリフレッシュ制御回路の動作の詳細を示すタイミング図である。 第1の実施形態の読み出し動作の概要を示すタイミング図である。 第1の実施形態の書き込み動作の概要を示すタイミング図である。 第1の実施形態のパリティ符号の生成規則を示す説明図である。 図2に示したエラー判定回路の動作の概要を示すフローチャートである。 図2に示したエラー訂正回路の動作の概要を示す説明図である。 第1の実施形態の読み出し動作の一例を示すタイミング図である。 第1の実施形態の読み出し動作の別の例を示すタイミング図である。 本発明の第2の実施形態を示すブロック図である。 図12に示したデータ制御回路の詳細を示すブロック図である。 図13に示したエラー訂正回路のRTL記述を示す説明図である。 図14のRTL記述から論理合成した結果を示す回路図である。 図13に示したシンドローム生成回路のRTL記述を示す説明図である。 図13に示した符号化回路のRTL記述を示す説明図である。 図12に示したデータ制御回路のエラー訂正動作を示す説明図である。 図12に示したデータ制御回路の別のエラー訂正動作を示す説明図である。 本発明の半導体メモリの第3の実施形態を示すブロック図である。 本発明の半導体メモリの第4の実施形態を示すブロック図である。 図21に示したデータ制御回路の詳細を示すブロック図である。 本発明の半導体メモリの第5の実施形態を示すブロック図である。 図23に示した擬似SRAMの書き込み動作を示すタイミング図である。
符号の説明
10‥アドレスバッファ、12‥データ制御回路、12a‥データ訂正部;12b‥データ符号化部;12c‥エラー訂正回路;14‥データ入出力バッファ、16‥コマンドバッファ、18‥アクセス制御回路、20‥リフレッシュ制御回路、22‥クロックバッファ;24‥メモリコア;26‥データ付加回路;28、30‥符号化回路;32、34‥エラー判定回路;36‥エラー復号回路;38‥符号化回路

Claims (48)

  1. 情報データを記憶するメモリセルを有する複数のデータブロックと、
    前記データブロックに記憶されたデータを復号するための符号データを記憶するメモリセルを有する複数の符号ブロックと、
    前記データブロックおよび前記符号ブロックにリフレッシュ動作を順次実行させるためにリフレッシュ要求信号を出力するリフレッシュ制御回路と、
    前記データブロックおよび前記符号ブロックのうちリフレッシュ動作によりデータを読み出せないブロックであるリフレッシュブロックから読み出されるべき複数種の予想データを、他のブロックから読み出されるデータにそれぞれ付加して複数の読み出しデータ列を生成するデータ付加回路と、
    前記読み出しデータ列についてそれぞれエラーを検出し、これ等のエラー検出結果から最も確からしい一つを真とし、真としたエラー検出結果に対応する読み出しデータ列のエラーを訂正するエラー訂正回路とを備えていることを特徴とする半導体メモリ。
  2. 請求の範囲1の半導体メモリにおいて、
    前記リフレッシュ制御回路は、前記データブロックおよび前記符号ブロックのいずれか1つにリフレッシュ動作を実行させるために、前記データブロックおよび前記符号ブロックにリフレッシュ要求信号を順次出力することを特徴とする半導体メモリ。
  3. 請求の範囲1の半導体メモリにおいて、
    読み出しコマンドに応答してリフレッシュブロックを除く前記データブロックおよび前記符号ブロックに読み出し要求信号を出力するアクセス制御回路を備えていることを特徴とする半導体メモリ。
  4. 請求の範囲1の半導体メモリにおいて、
    書き込みコマンドに応答して前記データブロックおよび前記符号ブロックに書き込み要求信号を出力するアクセス制御回路を備え、
    前記データブロックおよび前記符号ブロックは、前記リフレッシュ要求信号と前記書き込み要求信号が競合するときに、リフレッシュ動作を実行した後書き込み動作を順次遅れて実行するブロック制御回路をそれぞれ備えていることを特徴とする半導体メモリ。
  5. 請求の範囲4の半導体メモリにおいて、
    前記書き込みコマンドの最小供給間隔である外部書き込みサイクル時間は、前記各ブロックの書き込み動作時間である内部書き込みサイクル時間より長く設定されていることを特徴とする半導体メモリ。
  6. 請求の範囲5の半導体メモリにおいて、
    あるリフレッシュブロックの最後のリフレッシュ要求信号から次のリフレッシュブロックに切り替わるまでの切り替え期間に、n回の前記外部書き込みサイクル時間が挿入可能であり、かつ1回のリフレッシュ動作とn回の書き込み動作を実行可能であることを特徴とする半導体メモリ。
  7. 請求の範囲6の半導体メモリにおいて、
    前記切り替え期間は、外部書き込みサイクル時間Tcycと内部書き込みサイクル時間との差をδとするときに、少なくとも(Tcyc/δ)×Tcycに設定されることを特徴とする半導体メモリ。
  8. 請求の範囲1の半導体メモリにおいて、
    前記符号ブロックは、不良を救済する冗長回路の代わりに形成されることを特徴とする半導体メモリ。
  9. 請求の範囲8の半導体メモリにおいて、
    前記符号ブロックは、ワード線単位で不良を救済するロウ冗長回路の代わりに形成されることを特徴とする半導体メモリ。
  10. 請求の範囲8の半導体メモリにおいて、
    前記符号ブロックは、ビット線単位で不良を救済するコラム冗長回路の代わりに形成されることを特徴とする半導体メモリ。
  11. 請求の範囲1の半導体メモリにおいて、
    前記データ付加回路は、リフレッシュブロックからの読み出しデータの論理を論理1および論理0と仮定して2つの前記読み出しデータ列を生成することを特徴とする半導体メモリ。
  12. 請求の範囲11の半導体メモリにおいて、
    前記エラー訂正回路は、前記読み出しデータ列のうちエラーの少ない読み出しデータ列を真として選択することを特徴とする半導体メモリ。
  13. 請求の範囲12の半導体メモリにおいて、
    前記エラー訂正回路は、「エラー無し」、「データブロックのいずれかの1ビットエラー」、「符号ブロックのいずれかの1ビットエラーである符号エラー」および「2ビット以上のエラー」のいずれかを検出し、エラー判定の優先度を、エラー無し>符号エラー>1ビットエラー>2ビット以上のエラーとし、優先度の高い項目を真とすることを特徴とする半導体メモリ。
  14. 請求の範囲13の半導体メモリにおいて、
    前記エラー訂正回路が「2ビット以上のエラー」を検出したときに、エラー信号を出力するエラー端子を備えていることを特徴とする半導体メモリ。
  15. 請求の範囲12の半導体メモリにおいて、
    前記エラー訂正回路は、「エラー無し」、「データブロックまたは符号ブロックのいずれかの1ビットエラー」、および「2ビット以上のエラー」のいずれかを検出し、エラー判定の優先度を、エラー無し>1ビットエラー>2ビット以上のエラーとし、優先度の高い項目を真とすることを特徴とする半導体メモリ。
  16. 請求の範囲1の半導体メモリにおいて、
    前記エラー訂正回路が訂正不可能なエラーを検出したときに、エラー信号を出力するエラー端子を備えていることを特徴とする半導体メモリ。
  17. 請求の範囲1の半導体メモリにおいて、
    前記エラー訂正回路が訂正したデータを前記データブロックおよび前記符号ブロックに書き戻す書き戻し制御回路を備えていることを特徴とする半導体メモリ。
  18. 請求の範囲1の半導体メモリにおいて、
    前記情報データを入出力する複数のデータ端子を備え、
    前記データブロックは、前記データ端子にそれぞれ対応して形成されていることを特徴とする半導体メモリ。
  19. 請求の範囲1の半導体メモリにおいて、
    前記情報データを入出力する複数のデータ端子を備え、
    前記データ端子に一度に供給される書き込みデータは、前記データブロックの一部に書き込まれ、
    前記エラー訂正回路は、書き込み動作中に、前記データブロックおよび前記符号ブロックからのデータにより前記情報データを復号し、復号した情報データの一部を前記書き込みデータに入れ替えて書き換えデータ列を生成し、前記書き換えデータ列から新たな符号データを求め、前記書き換えデータ列および新たな符号データを前記データブロックおよび前記符号ブロックにそれぞれ書き込むことを特徴とする半導体メモリ。
  20. 請求の範囲1の半導体メモリにおいて、
    前記各メモリセルのリフレッシュ間隔は、ワーストのメモリセルのデータリテンション時間より長く設定されていることを特徴とする半導体メモリ。
  21. 請求の範囲1の半導体メモリにおいて、
    前記エラー訂正回路は、
    論理0の予想データを付加した情報データ列から第1符号データを生成する第1符号化回路と、
    論理1の予想データを付加した情報データ列から第2符号データを生成する第2符号化回路と、
    前記第1符号データを前記符号ブロックから読み出される符号データと比較し、エラーを判定する第1エラー判定回路と、
    前記第2符号データを前記符号ブロックから読み出される符号データと比較し、エラーを判定する第2エラー判定回路と、
    前記第1および第2エラー判定回路の判定結果のうち、最も確からしい判定結果を真とし、真とした判定結果に基づいてエラーを訂正するエラー復号回路とを備えていることを特徴とする半導体メモリ。
  22. 請求の範囲1の半導体メモリにおいて、
    前記エラー訂正回路は、
    前記データブロックから読み出される情報データ列から符号データを生成する符号化回路と、
    生成した符号データを、論理0の予想データを付加した符号データ列と比較し、エラーを判定する第1エラー判定回路と、
    生成した符号データを、論理1の予想データを付加した符号データ列と比較し、エラーを判定する第2エラー判定回路と、
    前記第1および第2エラー判定回路の判定結果のうち、最も確からしい判定結果を真とし、真とした判定結果に基づいてエラーを訂正するエラー復号回路とを備えていることを特徴とする半導体メモリ。
  23. 請求の範囲1の半導体メモリにおいて、
    前記エラー訂正回路は、
    論理0の予想データを付加した読み出しデータ列から第1シンドロームを生成する第1シンドローム生成回路と、
    論理1の予想データを付加した読み出しデータ列から第2シンドロームを生成する第2シンドローム生成回路と、
    前記第1シンドロームからエラーの有無およびエラーアドレスを検出する第1エラー判定回路と、
    前記第2シンドロームからエラーの有無およびエラーアドレスを検出する第2エラー判定回路と、
    前記第1および第2エラー判定回路の判定結果のうち、最も確からしい判定結果を真とし、真とした判定結果に基づいてエラーを訂正するエラー復号回路とを備えていることを特徴とする半導体メモリ。
  24. 請求の範囲1の半導体メモリにおいて、
    前記符号データの最小ハミング距離は、4以上であることを特徴とする半導体メモリ。
  25. 請求の範囲24の半導体メモリにおいて、
    前記符号データは、水平垂直パリティ符号であることを特徴とする半導体メモリ。
  26. 請求の範囲24の半導体メモリにおいて、
    前記符号データは、拡大ハミング符号であることを特徴とする半導体メモリ。
  27. 情報データを記憶するメモリセルを有する複数のデータブロックと、前記データブロックに記憶されたデータを復号するための符号データを記憶するメモリセルを有する複数の符号ブロックと、前記データブロックおよび前記符号ブロックにリフレッシュ動作を順次実行させるためにリフレッシュ要求信号を出力するリフレッシュ制御回路とを備えた半導体メモリの動作方法であって、
    前記データブロックおよび前記符号ブロックのうちリフレッシュ動作によりデータを読み出せないブロックであるリフレッシュブロックから読み出されるべき複数種の予想データを、他のブロックから読み出されるデータにそれぞれ付加して複数の読み出しデータ列を生成し、
    前記読み出しデータ列についてそれぞれエラーを検出し、これ等のエラー検出結果から最も確からしい一つを真とし、
    真としたエラー検出結果に対応する読み出しデータ列のエラーを訂正することを特徴とする半導体メモリの動作方法。
  28. 請求の範囲27の半導体メモリの動作方法において、
    前記データブロックおよび前記符号ブロックのいずれか1つにリフレッシュ動作を実行させるために、前記データブロックおよび前記符号ブロックにリフレッシュ要求信号を順次出力することを特徴とする半導体メモリの動作方法。
  29. 請求の範囲27の半導体メモリの動作方法において、
    読み出しコマンドに応答してリフレッシュブロックを除く前記データブロックおよび前記符号ブロックに読み出し要求信号を出力することを特徴とする半導体メモリの動作方法。
  30. 請求の範囲27の半導体メモリの動作方法において、
    書き込みコマンドに応答して前記データブロックおよび前記符号ブロックに書き込み要求信号を出力し、
    前記データブロックおよび前記符号ブロックは、前記リフレッシュ要求信号と前記書き込み要求信号が競合するときに、リフレッシュ動作を実行した後書き込み動作を順次遅れて実行することを特徴とする半導体メモリの動作方法。
  31. 請求の範囲30の半導体メモリの動作方法において、
    前記書き込みコマンドの最小供給間隔である外部書き込みサイクル時間は、前記各ブロックの書き込み動作時間である内部書き込みサイクル時間より長く設定されていることを特徴とする半導体メモリの動作方法。
  32. 請求の範囲31の半導体メモリの動作方法において、
    あるリフレッシュブロックの最後のリフレッシュ要求信号から次のリフレッシュブロックに切り替わるまでの切り替え期間に、n回の前記外部書き込みサイクル時間が挿入可能であり、かつ1回のリフレッシュ動作とn回の書き込み動作を実行可能であることを特徴とする半導体メモリの動作方法。
  33. 請求の範囲32の半導体メモリの動作方法において、
    前記切り替え期間は、外部書き込みサイクル時間Tcycと内部書き込みサイクル時間との差をδとするときに、少なくとも(Tcyc/δ)×Tcycに設定されることを特徴とする半導体メモリの動作方法。
  34. 請求の範囲27の半導体メモリの動作方法において、
    リフレッシュブロックからの読み出しデータの論理を論理1および論理0と仮定して2つの前記読み出しデータ列を生成することを特徴とする半導体メモリの動作方法。
  35. 請求の範囲34の半導体メモリの動作方法において、
    前記読み出しデータ列のうちエラーの少ない読み出しデータ列を真として選択することを特徴とする半導体メモリの動作方法。
  36. 請求の範囲35の半導体メモリの動作方法において、
    「エラー無し」、「データブロックのいずれかの1ビットエラー」、「符号ブロックのいずれかの1ビットエラーである符号エラー」および「2ビット以上のエラー」のいずれかを検出し、
    エラー判定の優先度を、エラー無し>符号エラー>1ビットエラー>2ビット以上のエラーとし、
    優先度の高い項目を真とすることを特徴とする半導体メモリの動作方法。
  37. 請求の範囲36の半導体メモリの動作方法において、
    「2ビット以上のエラー」を検出したときに、エラー信号をエラー端子に出力することを特徴とする半導体メモリの動作方法。
  38. 請求の範囲35の半導体メモリの動作方法において、
    「エラー無し」、「データブロックおよび符号ブロックのいずれかの1ビットエラー」、および「2ビット以上のエラー」のいずれかを検出し、
    エラー判定の優先度を、エラー無し>1ビットエラー>2ビット以上のエラーとし、
    優先度の高い項目を真とすることを特徴とする半導体メモリの動作方法。
  39. 請求の範囲27の半導体メモリの動作方法において、
    訂正不可能なエラーを検出したときに、エラー信号をエラー端子に出力することを特徴とする半導体メモリの動作方法。
  40. 請求の範囲27の半導体メモリの動作方法において、
    訂正したデータを前記データブロックおよび前記符号ブロックに書き戻すことを特徴とする半導体メモリの動作方法。
  41. 請求の範囲27の半導体メモリの動作方法において、
    書き込み動作中に、
    前記データブロックおよび前記符号ブロックからのデータにより前記情報データを復号し、
    復号した情報データの一部を前記書き込みデータに入れ替えて書き換えデータ列を生成し、
    前記書き換えデータ列から新たな符号データを求め、
    前記書き換えデータ列および新たな符号データを前記データブロックおよび前記符号ブロックにそれぞれ書き込むことで、前記情報データを入出力するデータ端子に一度に供給される書き込みデータを前記データブロックの一部に書き込むことを特徴とする半導体メモリの動作方法。
  42. 請求の範囲27の半導体メモリの動作方法において、
    前記各メモリセルのリフレッシュ間隔は、ワーストのメモリセルのデータリテンション時間より長く設定されていることを特徴とする半導体メモリの動作方法。
  43. 請求の範囲27の半導体メモリの動作方法において、
    論理0の予想データを付加した情報データ列から第1符号データを生成し、
    論理1の予想データを付加した情報データ列から第2符号データを生成し、
    前記第1符号データを前記符号ブロックから読み出される符号データと比較し、エラーを判定し、
    前記第2符号データを前記符号ブロックから読み出される符号データと比較し、エラーを判定し、
    前記第1および第2エラー判定回路の判定結果のうち、最も確からしい判定結果を真とし、真とした判定結果に基づいてエラーを訂正することを特徴とする半導体メモリの動作方法。
  44. 請求の範囲27の半導体メモリの動作方法において、
    前記データブロックから読み出される情報データ列から符号データを生成し、
    生成した符号データを、論理0の予想データを付加した符号データ列と比較し、エラーを判定し、
    生成した符号データを、論理1の予想データを付加した符号データ列と比較し、エラーを判定し、
    前記第1および第2エラー判定回路の判定結果のうち、最も確からしい判定結果を真とし、真とした判定結果に基づいてエラーを訂正することを特徴とする半導体メモリの動作方法。
  45. 請求の範囲27の半導体メモリの動作方法において、
    論理0の予想データを付加した読み出しデータ列から第1シンドロームを生成しと、
    論理1の予想データを付加した読み出しデータ列から第2シンドロームを生成し、
    前記第1シンドロームからエラーの有無およびエラーアドレスを検出し、
    前記第2シンドロームからエラーの有無およびエラーアドレスを検出し、
    前記第1および第2エラー判定回路の判定結果のうち、最も確からしい判定結果を真とし、真とした判定結果に基づいてエラーを訂正することを特徴とする半導体メモリの動作方法。
  46. 請求の範囲27の半導体メモリの動作方法において、
    前記符号データの最小ハミング距離は、4以上であることを特徴とする半導体メモリの動作方法。
  47. 請求の範囲46の半導体メモリの動作方法において、
    前記符号データは、水平垂直パリティ符号であることを特徴とする半導体メモリの動作方法。
  48. 請求の範囲46の半導体メモリの動作方法において、
    前記符号データは、拡大ハミング符号であることを特徴とする半導体メモリの動作方法。
JP2005507761A 2003-08-18 2003-08-18 半導体メモリおよび半導体メモリの動作方法 Expired - Fee Related JP4664208B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2003/010412 WO2005017914A1 (ja) 2003-08-18 2003-08-18 半導体メモリおよび半導体メモリの動作方法

Publications (2)

Publication Number Publication Date
JPWO2005017914A1 true JPWO2005017914A1 (ja) 2006-10-12
JP4664208B2 JP4664208B2 (ja) 2011-04-06

Family

ID=34179394

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005507761A Expired - Fee Related JP4664208B2 (ja) 2003-08-18 2003-08-18 半導体メモリおよび半導体メモリの動作方法

Country Status (5)

Country Link
US (1) US7203115B2 (ja)
EP (1) EP1657723B1 (ja)
JP (1) JP4664208B2 (ja)
CN (1) CN1771565B (ja)
WO (1) WO2005017914A1 (ja)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100776737B1 (ko) * 2006-02-10 2007-11-19 주식회사 하이닉스반도체 반도체 메모리의 액티브 싸이클 제어장치 및 방법
US8069377B2 (en) 2006-06-26 2011-11-29 Micron Technology, Inc. Integrated circuit having memory array including ECC and column redundancy and method of operating the same
FR2903219A1 (fr) * 2006-07-03 2008-01-04 St Microelectronics Sa Procede de rafraichissement d'un memoire vive dynamique et dispositif de memoire vive dynamique correspondant,en particulier incorpore dans un telephone mobile cellulaire
US7522464B2 (en) * 2006-07-26 2009-04-21 Zmos Technology, Inc. Dynamic memory refresh configurations and leakage control methods
CN101067972B (zh) * 2007-04-23 2012-04-25 北京兆易创新科技有限公司 一种存储器检错纠错编码电路及利用其读写数据的方法
CN102385936A (zh) * 2011-09-16 2012-03-21 中国科学院微电子研究所 基于汉明码对静态随机存储器多位翻转进行容错的方法
JP6072449B2 (ja) * 2012-07-09 2017-02-01 ルネサスエレクトロニクス株式会社 半導体記憶回路及びその動作方法
US9030897B2 (en) * 2012-08-31 2015-05-12 SK Hynix Inc. Memory and memory system for preventing degradation of data
US9324398B2 (en) * 2013-02-04 2016-04-26 Micron Technology, Inc. Apparatuses and methods for targeted refreshing of memory
US9047978B2 (en) 2013-08-26 2015-06-02 Micron Technology, Inc. Apparatuses and methods for selective row refreshes
KR102185894B1 (ko) * 2014-01-20 2020-12-03 에스케이하이닉스 주식회사 반도체 장치
JP2015219938A (ja) 2014-05-21 2015-12-07 マイクロン テクノロジー, インク. 半導体装置
CN106326145A (zh) * 2015-06-26 2017-01-11 深圳市中兴微电子技术有限公司 一种存储器的控制方法和装置
KR20170023249A (ko) * 2015-08-19 2017-03-03 에스케이하이닉스 주식회사 메모리 장치 및 메모리 장치의 동작 방법
US9514800B1 (en) * 2016-03-26 2016-12-06 Bo Liu DRAM and self-refresh method
JP2017182854A (ja) 2016-03-31 2017-10-05 マイクロン テクノロジー, インク. 半導体装置
KR20180079495A (ko) * 2016-12-30 2018-07-11 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그의 동작 방법
US10372531B2 (en) * 2017-01-05 2019-08-06 Texas Instruments Incorporated Error-correcting code memory
US10490251B2 (en) 2017-01-30 2019-11-26 Micron Technology, Inc. Apparatuses and methods for distributing row hammer refresh events across a memory device
US10192608B2 (en) * 2017-05-23 2019-01-29 Micron Technology, Inc. Apparatuses and methods for detection refresh starvation of a memory
JP6899489B2 (ja) * 2017-11-13 2021-07-07 シグニファイ ホールディング ビー ヴィSignify Holding B.V. Dc受電デバイスへの電力送達の制御
US10580475B2 (en) 2018-01-22 2020-03-03 Micron Technology, Inc. Apparatuses and methods for calculating row hammer refresh addresses in a semiconductor device
US11017833B2 (en) 2018-05-24 2021-05-25 Micron Technology, Inc. Apparatuses and methods for pure-time, self adopt sampling for row hammer refresh sampling
US11152050B2 (en) 2018-06-19 2021-10-19 Micron Technology, Inc. Apparatuses and methods for multiple row hammer refresh address sequences
US10685696B2 (en) 2018-10-31 2020-06-16 Micron Technology, Inc. Apparatuses and methods for access based refresh timing
WO2020117686A1 (en) 2018-12-03 2020-06-11 Micron Technology, Inc. Semiconductor device performing row hammer refresh operation
CN117198356A (zh) 2018-12-21 2023-12-08 美光科技公司 用于目标刷新操作的时序交错的设备和方法
US10770127B2 (en) 2019-02-06 2020-09-08 Micron Technology, Inc. Apparatuses and methods for managing row access counts
US11043254B2 (en) 2019-03-19 2021-06-22 Micron Technology, Inc. Semiconductor device having cam that stores address signals
US11227649B2 (en) 2019-04-04 2022-01-18 Micron Technology, Inc. Apparatuses and methods for staggered timing of targeted refresh operations
US11264096B2 (en) 2019-05-14 2022-03-01 Micron Technology, Inc. Apparatuses, systems, and methods for a content addressable memory cell with latch and comparator circuits
US11158364B2 (en) 2019-05-31 2021-10-26 Micron Technology, Inc. Apparatuses and methods for tracking victim rows
US11069393B2 (en) 2019-06-04 2021-07-20 Micron Technology, Inc. Apparatuses and methods for controlling steal rates
US11158373B2 (en) 2019-06-11 2021-10-26 Micron Technology, Inc. Apparatuses, systems, and methods for determining extremum numerical values
US10832792B1 (en) 2019-07-01 2020-11-10 Micron Technology, Inc. Apparatuses and methods for adjusting victim data
US11139015B2 (en) 2019-07-01 2021-10-05 Micron Technology, Inc. Apparatuses and methods for monitoring word line accesses
US11386946B2 (en) 2019-07-16 2022-07-12 Micron Technology, Inc. Apparatuses and methods for tracking row accesses
US11004534B2 (en) * 2019-08-06 2021-05-11 Micron Technology, Inc. Preemptive read refresh in memories with time-varying error rates
US10943636B1 (en) 2019-08-20 2021-03-09 Micron Technology, Inc. Apparatuses and methods for analog row access tracking
US10964378B2 (en) 2019-08-22 2021-03-30 Micron Technology, Inc. Apparatus and method including analog accumulator for determining row access rate and target row address used for refresh operation
US11200942B2 (en) 2019-08-23 2021-12-14 Micron Technology, Inc. Apparatuses and methods for lossy row access counting
US11302374B2 (en) 2019-08-23 2022-04-12 Micron Technology, Inc. Apparatuses and methods for dynamic refresh allocation
US11302377B2 (en) 2019-10-16 2022-04-12 Micron Technology, Inc. Apparatuses and methods for dynamic targeted refresh steals
CN112992222B (zh) * 2019-12-16 2024-01-23 华邦电子股份有限公司 应用于伪静态随机存取存储器的控制电路及其控制方法
CN111209129A (zh) * 2019-12-27 2020-05-29 曙光信息产业股份有限公司 基于amd平台的内存优化方法和装置
US11309010B2 (en) 2020-08-14 2022-04-19 Micron Technology, Inc. Apparatuses, systems, and methods for memory directed access pause
US11348631B2 (en) 2020-08-19 2022-05-31 Micron Technology, Inc. Apparatuses, systems, and methods for identifying victim rows in a memory device which cannot be simultaneously refreshed
US11380382B2 (en) 2020-08-19 2022-07-05 Micron Technology, Inc. Refresh logic circuit layout having aggressor detector circuit sampling circuit and row hammer refresh control circuit
JP2022036850A (ja) * 2020-08-24 2022-03-08 ラピスセミコンダクタ株式会社 半導体記憶素子、半導体記憶装置、およびシステムオンチップ
US11222682B1 (en) 2020-08-31 2022-01-11 Micron Technology, Inc. Apparatuses and methods for providing refresh addresses
EP4227944A1 (en) 2020-09-18 2023-08-16 Changxin Memory Technologies, Inc. Memory
CN114203228B (zh) * 2020-09-18 2023-09-15 长鑫存储技术有限公司 存储器
US11557331B2 (en) 2020-09-23 2023-01-17 Micron Technology, Inc. Apparatuses and methods for controlling refresh operations
US11823760B2 (en) * 2020-11-10 2023-11-21 Sunrise Memory Corporation System and method for data integrity in memory systems that include quasi-volatile memory circuits
US11222686B1 (en) 2020-11-12 2022-01-11 Micron Technology, Inc. Apparatuses and methods for controlling refresh timing
US11462291B2 (en) 2020-11-23 2022-10-04 Micron Technology, Inc. Apparatuses and methods for tracking word line accesses
US11264079B1 (en) 2020-12-18 2022-03-01 Micron Technology, Inc. Apparatuses and methods for row hammer based cache lockdown
US11482275B2 (en) 2021-01-20 2022-10-25 Micron Technology, Inc. Apparatuses and methods for dynamically allocated aggressor detection
US11600314B2 (en) 2021-03-15 2023-03-07 Micron Technology, Inc. Apparatuses and methods for sketch circuits for refresh binning
US11664063B2 (en) 2021-08-12 2023-05-30 Micron Technology, Inc. Apparatuses and methods for countering memory attacks
US11790974B2 (en) 2021-11-17 2023-10-17 Micron Technology, Inc. Apparatuses and methods for refresh compliance
US11688451B2 (en) 2021-11-29 2023-06-27 Micron Technology, Inc. Apparatuses, systems, and methods for main sketch and slim sketch circuit for row address tracking

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0440697A (ja) * 1990-06-06 1992-02-12 Matsushita Electric Ind Co Ltd 半導体記憶装置
JPH04132093A (ja) * 1990-09-21 1992-05-06 Toshiba Corp 半導体記憶装置
JP2002056671A (ja) * 2000-08-14 2002-02-22 Hitachi Ltd ダイナミック型ramのデータ保持方法と半導体集積回路装置
JP2003051186A (ja) * 2001-08-03 2003-02-21 Fujitsu Ltd 半導体メモリ

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4209846A (en) * 1977-12-02 1980-06-24 Sperry Corporation Memory error logger which sorts transient errors from solid errors
JPS62117198A (ja) * 1985-11-18 1987-05-28 Fujitsu Ltd 半導体記憶装置
JPH0612613B2 (ja) 1986-03-18 1994-02-16 富士通株式会社 半導体記憶装置
JPH0541084A (ja) 1991-08-06 1993-02-19 Hitachi Ltd 誤り訂正回路を有する半導体メモリ
JP3938842B2 (ja) * 2000-12-04 2007-06-27 富士通株式会社 半導体記憶装置
JP4001724B2 (ja) * 2001-03-29 2007-10-31 富士通株式会社 半導体記憶装置
JP4712214B2 (ja) 2001-04-09 2011-06-29 富士通セミコンダクター株式会社 半導体メモリの動作制御方法および半導体メモリ
JP4782302B2 (ja) 2001-04-18 2011-09-28 富士通セミコンダクター株式会社 半導体記憶装置
JP4050091B2 (ja) * 2001-06-04 2008-02-20 株式会社東芝 半導体メモリ装置
US6957378B2 (en) * 2001-06-04 2005-10-18 Kabushiki Kaisha Toshiba Semiconductor memory device
JP3860436B2 (ja) * 2001-07-09 2006-12-20 富士通株式会社 半導体記憶装置
US6683817B2 (en) * 2002-02-21 2004-01-27 Qualcomm, Incorporated Direct memory swapping between NAND flash and SRAM with error correction coding
JP3914839B2 (ja) 2002-07-11 2007-05-16 エルピーダメモリ株式会社 半導体記憶装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0440697A (ja) * 1990-06-06 1992-02-12 Matsushita Electric Ind Co Ltd 半導体記憶装置
JPH04132093A (ja) * 1990-09-21 1992-05-06 Toshiba Corp 半導体記憶装置
JP2002056671A (ja) * 2000-08-14 2002-02-22 Hitachi Ltd ダイナミック型ramのデータ保持方法と半導体集積回路装置
JP2003051186A (ja) * 2001-08-03 2003-02-21 Fujitsu Ltd 半導体メモリ

Also Published As

Publication number Publication date
JP4664208B2 (ja) 2011-04-06
US7203115B2 (en) 2007-04-10
EP1657723B1 (en) 2013-03-06
CN1771565B (zh) 2010-05-05
EP1657723A1 (en) 2006-05-17
CN1771565A (zh) 2006-05-10
EP1657723A4 (en) 2007-10-31
US20060056258A1 (en) 2006-03-16
WO2005017914A1 (ja) 2005-02-24

Similar Documents

Publication Publication Date Title
JP4664208B2 (ja) 半導体メモリおよび半導体メモリの動作方法
JP4056488B2 (ja) 半導体装置の試験方法及び製造方法
KR100305311B1 (ko) 리프레시 간격 제어 장치와 방법 및 컴퓨터
JP3898682B2 (ja) 半導体集積回路
JP3892832B2 (ja) 半導体記憶装置
JP5908375B2 (ja) 半導体記憶装置
JP2001084792A (ja) 半導体装置、同期式半導体メモリ装置及び同期式半導体メモリ装置のエラーチェック及び訂正方法
JP2008021390A (ja) 半導体記憶装置
US7949933B2 (en) Semiconductor integrated circuit device
KR20070026075A (ko) 반도체 집적 회로 장치
JP2005353238A (ja) 連想メモリ
TW202227970A (zh) 檢測錯誤位元的記憶體裝置及其方法
JP4050091B2 (ja) 半導体メモリ装置
US6967882B1 (en) Semiconductor memory including static memory
US7075851B2 (en) Semiconductor memory device inputting/outputting data and parity data in burst operation
JP4643334B2 (ja) 半導体記憶装置
US11921578B2 (en) Error correction methods and semiconductor devices and semiconductor systems using the error correction methods and the semiconductor devices
JP2008165879A (ja) 半導体記憶装置
US20080028278A1 (en) Circuit architecture protected against perturbations
JP4921216B2 (ja) メモリ制御回路、記憶システム、情報処理装置、および、メモリ制御方法
TWI652688B (zh) 動態隨機存取記憶體及其操作方法
JPH0746517B2 (ja) 半導体メモリ及びそのテスト方法
JP4159896B2 (ja) 連想メモリ
JP2023032889A (ja) 半導体装置
JP2006073108A (ja) 半導体集積回路

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090512

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090706

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100330

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100427

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110104

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110106

R150 Certificate of patent or registration of utility model

Ref document number: 4664208

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140114

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees