JP2008165879A - 半導体記憶装置 - Google Patents
半導体記憶装置 Download PDFInfo
- Publication number
- JP2008165879A JP2008165879A JP2006352983A JP2006352983A JP2008165879A JP 2008165879 A JP2008165879 A JP 2008165879A JP 2006352983 A JP2006352983 A JP 2006352983A JP 2006352983 A JP2006352983 A JP 2006352983A JP 2008165879 A JP2008165879 A JP 2008165879A
- Authority
- JP
- Japan
- Prior art keywords
- data
- syndrome
- parity
- error
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Dram (AREA)
Abstract
【課題】ECC動作時におけるサイクル数及びレジスタ数の増加を抑制し高速動作を可能とした半導体記憶装置を提供する。
【解決手段】パリティ/シンドロームジェネレータ31により読み出しデータに対して、符号生成及び誤り検出を行いパリティビット及びシンドロームを生成し、パリティ/シンドロームレジスタ39に保持する。シンドロームデコーダ32は、シンドロームをデコードし読み出しデータ中の誤りデータを特定するためのエラー信号を出力する。誤り検出ジェネレータ33は、パリティビットに基づいて誤り検出信号を生成する。誤り検出信号に基づいて、アドレス/コマンドジェネレータ22により誤りデータが記憶されたメモリセルのアドレスとライトコマンドが生成され、前記アドレスはフェイルアドレスレジスタ40に保持される。そして、エラー信号に基づいて、データ訂正回路36により読み出しデータ中の誤りデータが訂正される。
【選択図】 図6
【解決手段】パリティ/シンドロームジェネレータ31により読み出しデータに対して、符号生成及び誤り検出を行いパリティビット及びシンドロームを生成し、パリティ/シンドロームレジスタ39に保持する。シンドロームデコーダ32は、シンドロームをデコードし読み出しデータ中の誤りデータを特定するためのエラー信号を出力する。誤り検出ジェネレータ33は、パリティビットに基づいて誤り検出信号を生成する。誤り検出信号に基づいて、アドレス/コマンドジェネレータ22により誤りデータが記憶されたメモリセルのアドレスとライトコマンドが生成され、前記アドレスはフェイルアドレスレジスタ40に保持される。そして、エラー信号に基づいて、データ訂正回路36により読み出しデータ中の誤りデータが訂正される。
【選択図】 図6
Description
この発明は、ECC(error checking and correction)機能を用いたデータ保持モードを持つ半導体記憶装置に関するものであり、例えばダイナミック型ランダムアクセスメモリ(DRAM)に関するものである。
ECC機能を内蔵したメモリマクロでは、ECC機能はデータ保持モードとの併用を想定しており、データ保持モードに入る直前に符号生成動作、データ保持モードから抜ける直前に誤り訂正動作を行う。その詳細は、非特許文献1に記載されている。
この従来の方式を用いると、誤り訂正を行う場合、リードコマンドによって出力されたデータに対して、次のサイクルでそのデータを取り込み、そのデータに対して“誤り検出”→“訂正データ生成”と、“誤り検出”→”誤りデータのあるアドレス及びライトコマンド生成”を並行して1サイクルで行わなければならず、それぞれの動作が高速な動作周波数に対応できなくなる。例えば、情報長128ビット、検査符号(パリティビット)長8ビット、すなわち符号長136ビットの場合、検査符号生成、誤り検出を行う回路や訂正データ生成回路は共に、論理段数にして6〜8段となる。したがって、従来の方式を用いたメモリマクロでは、1サイクルで最大16段の論理段数を経ることになる。このため、トランジスタがワースト条件の場合や電源電圧が低電圧の場合、さらには信号の配線遅延なども鑑みると高速動作は困難になってくる。
Takeshi Nagai, et al., "A 65nm Low-Power Embedded DRAM with Extended Data-Retention Sleep Mode", ISSCC Digest of Technical Papers, pp.164-165, 645, Feb., 2006.
Takeshi Nagai, et al., "A 65nm Low-Power Embedded DRAM with Extended Data-Retention Sleep Mode", ISSCC Digest of Technical Papers, pp.164-165, 645, Feb., 2006.
この発明は、ECC動作時におけるサイクル数及びレジスタ数の増加を抑制し高速動作を可能とした半導体記憶装置を提供することを目的とする。
この発明の第1実施形態の半導体記憶装置は、データを記憶するメモリセルと、前記メモリセルから読み出した読み出しデータに対してパリティビットを生成すると共に、誤り検出を行い、前記読み出しデータ中に誤りデータを検出したとき、前記誤りデータに基づいてシンドロームを生成するパリティ/シンドロームジェネレータと、前記パリティ/シンドロームジェネレータにより生成された前記パリティビット及び前記シンドロームを保持するパリティ/シンドロームレジスタと、前記パリティ/シンドロームレジスタに保持された前記シンドロームをデコードし、前記読み出しデータ中の前記誤りデータを特定するためのエラー信号を出力するシンドロームデコーダと、前記パリティ/シンドロームジェネレータから出力された前記パリティビットに基づいて、誤り検出信号を生成する誤り検出ジェネレータと、前記誤り検出ジェネレータにより生成された前記誤り検出信号に基づいて、前記誤りデータが記憶されたメモリセルのアドレスとライトコマンドを生成するアドレス/コマンドジェネレータと、前記アドレス/コマンドジェネレータにより生成された前記アドレスを保持するフェイルアドレスレジスタと、前記シンドロームデコーダから出力された前記エラー信号に基づいて、前記読み出しデータ中の前記誤りデータを訂正するデータ訂正回路とを具備することを特徴とする。
この発明の第2実施形態の半導体記憶装置は、前記第1実施形態の構成に加えて、前記メモリセルに記憶されたデータの保持動作を行うデータ保持モードに入るとき、前記パリティ/シンドロームジェネレータは、前記メモリセルから読み出した前記読み出しデータに対して前記パリティビットを生成し、前記パリティ/シンドロームレジスタは前記パリティビットを記憶する第1動作を行い、前記データ保持モードから通常動作モードに復帰する前に、前記パリティ/シンドロームジェネレータは、前記パリティビットが付加された前記読み出しデータに対して誤り検出を行い、検出した誤りデータに応じたシンドロームを生成し、前記データ訂正回路は、前記シンドロームを用いて前記読み出しデータ中の前記誤りデータを訂正する第2動作を行い、前記第2動作の期間中は、ページ動作で読み出し及び書き込みを行うと共に、前記読み出しデータに対する誤り検出において前記誤りデータが検出されたとき、前記シンドロームを前記パリティ/シンドロームレジスタに保持し、前記誤りデータに対応するアドレスを前記フェイルアドレスレジスタに保持し、全てのページ内のリード動作が終了した後に、前記データ訂正回路により前記誤りデータを訂正するための書き込み動作を行うことを特徴とする。
この発明の第3実施形態の半導体記憶装置は、前記第1実施形態の構成に加えて、前記メモリセルに記憶されたデータの保持動作を行うデータ保持モードに入るとき、前記パリティ/シンドロームジェネレータは、前記メモリセルから読み出した前記読み出しデータに対して前記パリティビットを生成し、前記パリティ/シンドロームレジスタは前記パリティビットを記憶する第1動作を行い、前記第1動作の期間中は、ページ動作で読み出し及び書き込みを行うと共に、前記誤りデータに対応するアドレスを前記フェイルアドレスレジスタに保持し、後のクロックサイクルで前記データ訂正回路により前記パリティ/シンドロームレジスタに保持された前記パリティビットに基づいて、前記フェイルアドレスレジスタに保持されたアドレスに対応するメモリセルに書き込み動作を行うことを特徴とする。
この発明によれば、ECC動作時におけるサイクル数及びレジスタ数の増加を抑制し高速動作を可能とした半導体記憶装置を提供することが可能である。
この発明の実施形態を説明する前に、本発明の関連技術について説明する。
図1は、ECC機能を内蔵したメモリマクロ(DRAM)の概略図である。
このECC機能はデータ保持モードとの併用を想定しており、データ保持モードに入る(ENTRY)直前に符号生成動作を行い、データ保持モードから抜ける(EXIT)直前に誤り訂正動作を行う。その詳細は、非特許文献1に記載されている。
このメモリマクロは、データを保持するセルアレイ1と、セルアレイ1からデータを読み出して符号生成および誤り訂正を行い、それによって生成されたデータをセルアレイ1に書き込むECC回路2と、外部とのデータの入出力を行うI/O回路3と、それらをコントロールする制御回路4からなる。前記セルアレイ1は、複数のメモリセルが例えばアレイ状に配列され、各メモリセルにデータが記録保持される。
通常のメモリ動作としては、外部からリードコマンドとリードアドレスを入力することで、所望のアドレスからデータを読み出すことができ、またライトコマンドとアドレスとライトデータを入力することで所望のアドレスにデータを書き込むことができる。ECC動作時には、外部からECCコマンドを入力することで、ECC回路2はセルアレイ1からデータを読み出し、そのデータに対して符号生成もしくは誤り訂正を行い、そのデータをセルアレイ1に書き込むことができる。ECC動作時にアクセスするセルアレイのアドレスは、外部から入力する構成の場合もあるし、メモリマクロ内部で自動的に生成する構成の場合も考えられる。以降は、メモリマクロ内で自動的にアドレスを生成する場合を例として説明する。
図2は、前述したECC動作を行うために必要な回路構成を示したものである。まず、これらの回路は、セルアレイから読み出したデータを保持するデータラッチ(read data latch)11と、ECC動作を行うためにその読み出しデータを保持するデータラッチ(ECC latch)12と、セルアレイに書き込むデータを保持するデータラッチ(write data latch)13と、セルアレイに書き込むデータを指定するデータマスクラッチ(write musk latch)14を含む。これらは、データバスのビット幅に応じて、並列に複数個で構成する。
さらに、ECCコマンドを保持するラッチであるコマンドラッチ(CG command latch)15、コマンドラッチ(EC command latch)16を含み、これらはそれぞれ、符号生成を行うコマンド、および誤り訂正を行うコマンドを保持する。また、リードコマンドを保持するコマンドラッチ(read command latch)17と、ライトコマンドを保持するコマンドラッチ(write command latch)18と、カラムアドレスを保持するアドレスラッチ(column address latch)19と、ロウアドレスを保持するアドレスラッチ(row address latch)20を含む。これらのアドレスラッチは、アドレスのビット数分だけの数で構成される。
さらに、符号生成および誤り訂正を行うECC回路(ECC circuit)21と、ECCコマンドに応じて、リードコマンド、ライトコマンド、アドレスを生成するコマンド/アドレスジェネレータ(command/address generator)22と、前記コマンド/アドレスジェネレータ22の動作開始を制御するECCコマンドコントローラ(ECC command controller)23と、ECC時と通常のライト時でデータバスを切り替えるセレクタ(ECC/normal data selector)24と、ECC時と通常のリードおよびライト時でそれぞれのコマンドおよびアドレスのバスを切り替えるセレクタ(command/address selector)25を含む。また、前記の回路をクロックに同期して動作させるためのクロック信号を生成するクロックジェネレータ(command/address CLOCK generator)26およびクロックジェネレータ(READ/WRITE/ECC CLOCK generator)27を含む。
以下に、図2に示した回路における動作の概要を説明する。クロックジェネレータ26は、外部クロック入力である信号CLKINを受けてクロックイネーブル信号CKEが“1”の時、リードライトコマンドをラッチするためのクロックCLKFCとCLKFRを生成する。クロックCLKFCは、コマンド/アドレスセレクタ25から出力されるリードライトコマンドおよびカラムアドレスを保持するラッチ17〜19に入力される。ラッチ17〜19は、クロックCLKFCに同期してコマンドおよびアドレスをラッチする。また、符号生成のコマンドであるCGコマンド(CG command)と、誤り訂正のコマンドであるECコマンド(EC command)も、クロックCLKFCに同期してラッチされる。
クロックCLKFRは、ロウアドレスを保持するラッチ20に入力される。ラッチ20は、クロックCLKFRに同期してロウアドレスをラッチする。また、ここでは図示していないが、クロックCLKFRは、ロウ系のコマンド、例えばバンクアクティブコマンドやバンクプリチャージコマンドを保持するラッチにも入力される。通常のライトリード操作の時はもちろん、ECCコマンド実行時にもワード線をアクティブにするコマンドやプリチャージを行うコマンドが実行されるが、ここでは詳細は省略する。
クロックジェネレータ27は、コマンド/アドレスセレクタ25から出力されたリードコマンドに応じて、内部でセルアレイからのリードデータを保持するためのラッチ11に入力されるクロックCLKRDと、ライトコマンドに応じて、セルアレイに書き込むデータと、データを書き込むセルを選択するデータマスク信号を保持するラッチ13、14にそれぞれ入力されるクロックCLKWDと、前記リードデータとCGコマンド及びECコマンドに応じて、ECC動作を行うためにセルアレイから読み出したデータを保持するラッチ12に入力されるクロックCLKECCとを生成する。
まず、クロックに同期して、CGコマンド(CG command)=“1”もしくはECコマンド(EC command)=“1”を入力することによって、信号CGCMD=“1”もしくは信号ECCMD=“1”が保持され、以降の動作はECC動作として設定される。通常のリードおよびライト動作時は、ECC/ノーマルデータセレクタ24およびコマンド/アドレスセレクタ25において、データおよびコマンド、アドレスに関してノーマルバスが有効になるが、これ以降は、前記のいずれかの設定がされている状態に関して説明する。
信号CGCMDもしくは信号ECCMDが“1”に設定された状態でクロック信号に同期してECCコマンドイネーブル(ECC command enable)=“1”を入力することで、信号ENBにクロック信号1サイクル分が出力されて、コマンド/アドレスジェネレータ22が動作を開始する。まず、コマンド/アドレスジェネレータ22は、クロックに同期してリードコマンドECREADとリードアドレスERA(row)、ECA(column)を生成する。コマンド/アドレスセレクタ25は、信号CGCMD、ECCMDの状態に応じてノーマルバスとECCバスの選択を行うが、ここではECCが選択されているので、上記信号は信号READ、RAx、CAxとして出力される。信号READ、RAx、CAxは、クロックCLKFCおよびCLKFRに同期してラッチ(read command latch)17、ラッチ(column address latch)19、ラッチ(row address latch)20に保持され、信号RC、CA、RAとして出力される。また、クロックジェネレータ27は、信号READを受けて、リードレイテンシに応じてクロックCLKRDを生成し、その1サイクル後にクロックCLKECCを生成し、さらにその1サイクル後にクロックCLKWDを生成する。
前記コマンド、アドレスに応じてセルアレイから読み出されたデータは、クロックCLKRDに同期してラッチ(read data latch)11に保持され、信号DOUTとして出力される。信号DOUTのデータは、クロックCLKECCに同期してECCラッチ12に保持され、信号RDATAとして出力される。ECC回路21は、信号RDATAを受けて、信号CGCMD=“1”ならば符号生成を、信号ECCMD=“1”ならば誤り訂正を行い、その結果を信号EDINに出力する。また、書き込みデータに応じて、書き込み対象のセルを選択するデータマスク信号EMDINも出力する。ECCノーマルデータセレクタ24は、信号CGCMD、ECCMDの状態に応じてノーマルバスとECCバスの選択を行うが、ここではECCが選択されているので、信号EDINおよびEDMINが信号DINおよびDMINとして出力される。
次に、コマンド/アドレスジェネレータ22は、ライトコマンドECWRITEを生成する。このライトコマンドECWRITEはリードコマンドと同様に信号WRITEとして出力され、信号WRITEを受けたクロックジェネレータ27はクロックCLKECCの1サイクル後にクロックCLKWDを生成する。
信号DIN、DMINは、クロックCLKWDに同期してラッチ(write data latch)13およびラッチ(write musk latch)14に保持される。保持された信号DIN、DMINは、信号WD、DMとして出力され、これら信号DIN、DMINを元にセルアレイにデータが書き込まれる。
ところで、誤り訂正は、データに誤りがあったときのみ行うようにすることもできる。その場合は、ECC回路21から出力される誤り検出信号DETECTをコマンド/アドレスジェネレータ22が受けて、ライトコマンドを発行するように構成することもできる。この場合、誤り検出信号DETECTが生成されなければライト動作は省略される。
非特許文献1にもあるように、通常、メモリセルにアクセスするアドレッシングとして使用されるものには、RFS(Row First Scan)とCFS(Column First Scan)がある。RFSでは、カラムアドレスをインクリメントするたびにロウアドレスを活性化してカラムアクセスするまでの時間tRCDや、ライトコマンドからロウプリチャージコマンドまでの時間tWR、ロウプリチャージコマンドから次のロウアクティブコマンドまでの時間tRPが必要になり、遷移時間がとても長くなる。これに対して、CFSではそれらの時間はページ動作ごとにのみ必要になるので、遷移時間は短縮される。ただし、CFSではリフレッシュ時間の制約があり、時間tREFの間に全ロウがアクセスできない場合は別途リフレッシュコマンドを入れる必要がある。
また、救済効率の議論からして、ページ動作中、数回の誤り訂正を行えるようにしておけば、十分な救済効率が得られるということから、1ページ動作につき救済する回数をページ長以下に設定することで更なる遷移時間の短縮を実現している。
図3は、イグジット(EXIT)動作時のCFSモードにおいて、誤りがあったアドレスに関してのみ誤り訂正を行う場合の動作波形例である。この例では、リードレイテンシ3、ページ長128の場合を想定しており、クロックCLKp、ロウアドレスREc、カラムアドレスCEp、出力データDIN/DMIN、入力データDOUTの動作のみ図示している。ロウアドレスREcが活性化された後、カラムアドレスCEpが0から127まで連続してリードコマンドが入力されている。ここで、リードレイテンシは3なので、カラムアドレス0のリードコマンドに対するデータQ0は3サイクル後に出力される。データQ0に対するECC回路21の出力信号DIN/DMINは、その1サイクル後に出力される。もし、このカラムアドレスに誤りがあれば、誤り訂正を実行して次のサイクルにライトコマンドを生成し、正しいデータをメモリセルに書き込む。誤りがなければ、次のカラムアドレスのリード動作へと移る。図3は、カラムアドレス2と4に誤りがあった場合の例である。
ところで、図2に示したECC回路を含む回路をさらに詳細に示したものが図5である。ここでは、情報長128ビット、検査符号(パリティビット)長8ビット、あわせて符号長136ビットの場合を想定している。リードコマンドによって読み出された信号DOUTが次のサイクルでECCラッチ12に取り込まれ、このデータに対して、パリティ/シンドロームジェネレータ31において符号生成及び誤り検出が実行される。符号生成動作時は、ここで生成された8ビットのパリティビットWPARIをメモリセルに書き込む。誤り検出時では、信号DOUTに誤りがある場合に出力される復号(シンドローム)であるパリティビットWPARIは全て0にならない。この場合、パリティビットWPARIの情報を用いて、シンドロームデコーダ32により136ビットのデータのうち、どのビットに誤りがあるのかが特定される。その情報を元に、ECCラッチ12に保持されたデータ中で、誤りのあるデータのみを反転させてメモリセルに書き込むことで、誤り訂正を完了させる。
また、パリティビットWPARIが0でない場合は、誤り検出ジェネレータ33にて、誤りがあったことを示す誤り検出信号DETECTを生成する。誤り検出信号DETECTを受け取ったアドレス/コマンドジェネレータ22は、誤り訂正のためにライトコマンドとライトアドレスを生成する。
ここで、第1遅延回路34及び第2遅延回路35は、誤り訂正のための信号と、ECCラッチ12に取り込んだデータに関して、データ訂正回路36までの論理段数をそろえるために挿入されている。
また、第2遅延回路35の入力部に設置されたセレクタ37は、符号生成時と誤り検出時で、メモリセルに書き込むデータを決定するための信号WDATAに出力されるパリティ部にあたるデータを選択するのに用いられている。符号生成時は生成されたパリティビットWPARIを信号WDATAに出力し、誤り訂正時はメモリセルから読み出されたデータのうちのパリティビットPARIを信号WDATAに出力する。セレクタ38は、メモリセルから読み出されたデータDATAを信号WDATAに出力する際に、セレクタ37に対して論理段数をそろえるために挿入されている。セレクタ38の出力は、常にデータDATAである。
図4は、CFSモードでの符号生成時の動作波形例である。図3の場合と同様に、リードレイテンシ3、ページ長128の場合を想定している。ロウアドレスREcが活性化された後、カラムアドレス0でリードコマンドが発効される。リードレイテンシ3により、3サイクル後にデータQ0が読み出される。これに対するECC回路の出力信号DIN/DMINがその1サイクル後に出力され、メモリセルアレイに書き込まれる。図4に示すように、リードコマンド(R)を4回、ライトコマンド(W)を4回繰り返し、必要なアドレスも生成することで、レジスタを追加することなく、シームレスな動作を実現している。誤り訂正時にも同様の動作で行うことができるが、遷移時間短縮のために図3に示したような動作を行っている。
この従来の方式を用いると、誤り訂正を行う場合、リードコマンドによって出力されたデータに対して、次のサイクルでそのデータを取り込み、そのデータに対して“誤り検出”→“訂正データ生成”と、誤り検出”→“誤りデータ”のあるアドレス及びライトコマンド生成”を並行して1サイクルで行わなければならず、それぞれの動作が高速な動作周波数に対応できなくなる。例えば、情報長128ビット、検査符号(パリティビット)長8ビット、すなわち符号長136ビットの場合、検査符号生成及び誤り検出を行う回路やデータ訂正回路は共に、論理段数にして6〜8段となる。したがって、1サイクルで最大16段の論理段数を経ることになる。トランジスタがワースト条件の場合や電源電圧が低電圧の場合、さらには信号の配線遅延なども鑑みると高速動作は困難になってくる。
また、図5に示した構成で図3の動作を行った場合、リードコマンド、ライトコマンド、及びアドレスはアドレス/コマンドジェネレータ22で自動的に生成され、符号生成時にメモリセルに書き込まれるデータはパリティビットWPARIの8ビットである。つまり、パリティ/シンドロームジェネレータ31で生成されたパリティビットWPARIは、セレクタ37、第2遅延回路35、データ訂正回路36を介してセルアレイに書き込まれる。ここで、符号生成時は信号ERRORが0に固定され、データマスクは外部でパリティ部のみ外される。以上からわかるように、符号生成時は、誤り訂正動作を行わないためその分の動作時間は必要ないはずであるが、安定な回路動作を実現するために挿入された遅延回路にて動作速度は制限される。
前述した問題点を解決するために、この発明の実施形態では以下の方法を提案する。
(1)CFSモードで行うイグジット(EXIT)動作において、誤りがあったカラムアドレスとその時のシンドロームを保持するレジスタを具備し、誤り訂正とデータ書き込み動作を別のサイクルで行うことにより、高速化を実現する。ただし、それぞれのレジスタの数はページ内で誤り訂正可能な回数と同じにすることにより、面積増加を抑える。
(2)CFSモードで行うエントリー(ENTRY)動作において、前記回路構成を用いて動作方式を工夫することで、必要なサイクル数は従来と変更なく、更なる高速化を実現できる。
以下に、図面を参照してこの発明の実施形態の半導体記憶装置について説明する。半導体記憶装置としては、メモリ装置単体であってもよいし、ロジック回路とメモリ回路とが混載されたロジック混載メモリであってもよく、またメモリ回路を含むその他の装置にも本発明を適用することができる。説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
[第1の実施形態]
図6は、この発明の第1実施形態の半導体記憶装置の回路図であり、前記問題点を解決するための回路構成を、図5に組み込んだ例を示している。
図6は、この発明の第1実施形態の半導体記憶装置の回路図であり、前記問題点を解決するための回路構成を、図5に組み込んだ例を示している。
第1実施形態の半導体記憶装置は、パリティ/シンドロームジェネレータ(parity/syndrome generator)31、パリティ/シンドロームレジスタ(parity/syndrome register)39、シンドロームデコーダ(syndrome decoder)32、誤り検出ジェネレータ(DETECT generator)33、アドレス/コマンドジェネレータ(command/address generator)22、フェイルアドレスレジスタ(fail address register)40、データ訂正回路(DATA correction circuit)36を備える。パリティ/シンドロームジェネレータ31は、メモリセルから読み出した読み出しデータに対して、符号生成を行いパリティビットを生成すると共に、誤り検出を行い読み出しデータ中に誤りデータを検出したとき、シンドロームを生成する。パリティ/シンドロームレジスタ39は、パリティ/シンドロームジェネレータ31により生成されたパリティビット及びシンドロームを保持する。シンドロームデコーダ32は、パリティ/シンドロームレジスタ39に保持されたシンドロームをデコードし、読み出しデータ中の誤りデータを特定するためのエラー信号を出力する。誤り検出ジェネレータ33は、パリティ/シンドロームジェネレータ31から出力されたパリティビットに基づいて、誤り検出信号を生成する。アドレス/コマンドジェネレータ22は、誤り検出ジェネレータにより生成された誤り検出信号に基づいて、誤りデータが記憶されたメモリセルのアドレスとライトコマンドを生成する。フェイルアドレスレジスタ40は、アドレス/コマンドジェネレータ22により生成されたアドレスを保持する。データ訂正回路36は、シンドロームデコーダ32から出力されたエラー信号に基づいて、読み出しデータ中の誤りデータを訂正する。
図5に示した回路構成との違いは、まず、パリティ/シンドロームジェネレータ31とシンドロームデコーダ32の間にパリティ/シンドロームレジスタ39が挿入されている。パリティ/シンドロームレジスタ39は、パリティビットWPARIと同じビット幅である8ビットの幅を持った、Npari段のシフトレジスタである。Npariの値は、1ページ動作中にNpari回だけ誤り訂正を行うことができることに対応する。パリティ/シンドロームレジスタ39は、誤り検出動作中に、誤りが検出された場合、すなわちシンドロームが0でない場合のみ、シンドロームの値を保持する。また、アドレス/コマンドジェネレータ22には、フェイルアドレスレジスタ40が接続されている。フェイルアドレスレジスタ40は、カラムアドレスのビット幅(ここでは、7ビットを想定している)と同じビット幅を持ったNpari段のシフトレジスタであり、シンドロームの値が0でない場合のみ、その時のカラムアドレスの値を保持する。
図7に、図6に示した第1実施形態の半導体記憶装置におけるCFSモードによる誤り訂正時の動作波形例を示す。この例では、リードレイテンシ3、ページ長128、1ページ内で行える誤り訂正の回数を4回とする。誤り訂正の回数は、アドレス/コマンドジェネレータ22の設定によっていかようにも設定でき、アドレス/コマンドジェネレータ22に設定された誤り訂正可能な回数に応じて、パリティ/シンドロームレジスタ39とフェイルアドレスレジスタ40の段数Npariを変更することで対応できる。この例ではNpari=4とする。
まず、ページ動作中は、ロウアドレスREcが固定され、カラムアドレスCEpの0から127までをCFS(Column First Scan)モードでリードする。この際、パリティ/シンドロームジェネレータ31により誤り検出動作を実行し、誤りが検出された場合は、そのアドレスFADDをフェイルアドレスレジスタ40に保持し、シンドロームWPARIをパリティ/シンドロームレジスタ39に保持する。あるアドレスのデータに誤りがあるという情報は、従来例と同様に、誤り検出ジェネレータ33から出力される誤り検出信号DETECTによって特定される。ここでは、リードレイテンシ3を想定しているので、リードコマンドから3サイクル後にリードデータは確定し、その1サイクル後にシンドロームWPARI及びアドレスFADDは確定している。
誤りが検出されるたびに、アドレスFADD及びシンドロームWPARIは、次々にフェイルアドレスレジスタ40及びパリティ/シンドロームレジスタ39に取り込まれる。レジスタ40及びレジスタ39のそれぞれのビットはシフトレジスタを構成しているので、以前に取り込まれたデータはその都度、それぞれレジスタ40及びレジスタ39の出力側にシフトされる。ページ内で誤りが4回検出された時点で、最初に検出された誤りに関わるアドレスFADDとシンドロームWPARIがレジスタFADDx4とレジスタWPARIx4に出力された状態になる。図7に示した例は、カラムアドレス(2),(4),(5),(7)のデータに誤りがあった場合の例であり、それぞれのカラムアドレスF2,F4,F5,F7及びシンドロームP2,P4,P5,P7がフェイルアドレスレジスタ40及びパリティ/シンドロームレジスタ39にそれぞれ取り込まれる様子を示している。
カラムアドレス127へのリードコマンドのアクセスが終わり、誤り検出動作が終わった時点で、誤り訂正動作に入る。誤り訂正をすべきカラムアドレスはフェイルアドレスレジスタ40に保持されているので、フェイルアドレスレジスタ40に保持されたカラムアドレスを用いてカラムにアクセスを行い、誤ったデータを訂正して正しいデータを書き込む。誤ったデータの訂正は、パリティ/シンドロームレジスタ39に保持されたシンドロームデータを用いて行う。ここで、シンドロームデコーダ32によりシンドロームをデコードすることで得られる情報は、136ビットの情報のうち、どのビットが誤りであるかという情報だけであり、1または0のどちらの情報が正しいかという情報は得られない。
図6に示した回路構成では、パリティ/シンドロームレジスタ39及びフェイルアドレスレジスタ40を構成するレジスタの数を減らすために、セルアレイから読み出した情報を、シンドロームのデコードで得られた情報を用いて反転させる方法で誤り訂正を行っている。このため、リードコマンドによる読み出しが再度必要になる。これらのことを鑑みて、以下に誤り訂正動作の説明を行う。
今、フェイルアドレスレジスタ40の出力側にはカラムアドレス2が出力されているので、この値を用いてリードコマンドを発効する。この際に、フェイルアドレスレジスタ40では、1回のシフト動作が行われ、フェイルアドレスレジスタ40の出力側にはカラムアドレス4が出力された状態になる。ここで、リードレイテンシ3なので、その3サイクル後にカラムアドレス2のデータQ2が読み出される。その1サイクル後にそのデータはECCラッチ12に取り込まれ、信号RDATAにR2として出力される。この時点で、パリティ/シンドロームレジスタ39の出力側には、カラムアドレス2で読み出したデータQ2のシンドロームが出力されており、さらにそのシンドロームをシンドロームデコーダ32でデコードした結果が信号ERROR<0:135>に出力されている。信号ERROR<0:135>のうち、信号RDATA<0:135>の中で誤りのあるビットのみ、値が1となっている。
また、信号ERROR<0:135>は書き込み時のデータマスク信号としても用いられ、誤り訂正を行いたいビットのみ、実際に書き込み動作を行う。最終的に、次のサイクルで信号ERRORと信号WDATAを用いて、データ訂正回路36により誤り訂正されたデータがメモリセルに書き込まれる。このとき、ライトコマンドとカラムアドレスはアドレス/コマンドジェネレータ22にて生成される。また、パリティ/シンドロームレジスタ39では、1回のシフト動作が行われ、パリティ/シンドロームレジスタ39の出力側にはカラムアドレス4で読み出したデータのシンドロームが出力された状態になる。
これらの一連の動作を4回繰り返すことで4回の誤り訂正を行い、このページの誤り訂正動作を終了する。この一連のページ動作を繰り返すことで、セルアレイの全ビットへのアクセスを行う。なお、セレクタ41、44は、通常動作かECC動作かによって出力を選択する回路である。さらに、コマンドラッチ42はセレクタ41から出力されるコマンドを保持し、コマンドラッチ43はセレクタ41から出力されるアドレスを保持する。データマスクラッチ45はセレクタ44から出力されるデータマスクを保持し、ライトデータラッチ46はセレクタ44から出力されるライトデータを保持する。
この第1実施形態では、最後の誤り訂正動作時にリード動作が必要であったが、誤り検出時に読み出した信号RDATAを保持するレジスタを具備すれば、誤り訂正時のリード動作は省略できる。しかし、Npari=4の場合、さらに136×4=544ビットのレジスタが必要になり、これらレジスタを実装すると面積が増大する。また、誤り検出動作時に、どのビットをどのデータに書き変えなければならないかという情報も検出し、それを保持するレジスタを持つという方法も考えられる。しかし、この場合、回路構成が複雑になるか、もしくは高速化を実現するという意味ではあまり意味をなさないことが考えられるので、ここでは詳細は省略する。
この実施形態では、以上の方式で誤り訂正を行うことにより、誤り訂正動作の高速化が図れる。ただし、従来方式に比べて本実施形態によって生じる面積増加やサイクル数の増加についてまとめると、以下のようになる。
(1)面積増加
従来に比べて、((7+8)×4=60ビットのレジスタ+制御回路)分の実装面積が増加する。すなわち、本実施形態は、従来に比べて((15× Npari)ビットのレジスタ+制御回路)分の実装面積の増加だけで済む。
従来に比べて、((7+8)×4=60ビットのレジスタ+制御回路)分の実装面積が増加する。すなわち、本実施形態は、従来に比べて((15× Npari)ビットのレジスタ+制御回路)分の実装面積の増加だけで済む。
(2)サイクル数増加
従来では、128(リードサイクル)+4(リードレイテンシによる追加分)+4(ライトサイクル)である。一方、本実施形態では、128(リードサイクル)+4(リードレイテンシによる追加分)+4(ライトサイクル)+4(誤り訂正時のリードサイクル)である。したがって、Npari回のリードサイクル分の増加だけで済む。ただし、今回の方式を用いることで、第1遅延回路34による遅延は必要なくなるので、この分は面積が削減できる。
従来では、128(リードサイクル)+4(リードレイテンシによる追加分)+4(ライトサイクル)である。一方、本実施形態では、128(リードサイクル)+4(リードレイテンシによる追加分)+4(ライトサイクル)+4(誤り訂正時のリードサイクル)である。したがって、Npari回のリードサイクル分の増加だけで済む。ただし、今回の方式を用いることで、第1遅延回路34による遅延は必要なくなるので、この分は面積が削減できる。
[第2の実施形態]
次に、この発明の第2実施形態の半導体記憶装置について説明する。前記第1実施形態における構成と同様の部分には同じ符号を付してその説明は省略する。
次に、この発明の第2実施形態の半導体記憶装置について説明する。前記第1実施形態における構成と同様の部分には同じ符号を付してその説明は省略する。
図8に、図6に示した回路構成において、CFSモードで符号生成動作を行った場合の動作波形例を示す。ここで、リードレイテンシ3、ページ長128、パリティ/シンドロームレジスタ39とフェイルアドレスレジスタ40が共にNpari(=4)段のシフトレジスタを持つものとする。
図4に示した動作波形例の場合と同様に、カラムアドレス0で発効されたリードコマンドによるデータQ0が3サイクル後に出力され、このデータQ0に対して符号生成を行ったデータ(パリティ)がパリティビットWPARIにP0として出力される。この値は、パリティ/シンドロームレジスタ39に保持される。また、このときのカラムアドレス0は、フェイルアドレスレジスタ40に保持される。同様にしてカラムアドレス7までリードコマンドを発効すると、その時点でパリティ/シンドロームレジスタ39とフェイルアドレスレジスタ40には、カラムアドレス0〜3までのパリティとカラムアドレスが保持されている。
その直後に、カラムアドレス0〜3に関して、パリティ/シンドロームレジスタ39とフェイルアドレスレジスタ40の情報を用いて、パリティの書き込み動作を行う。レジスタFADDx4には、カラムアドレス0が出力されているので、そのアドレスを用いてライトコマンドを発行する。その時、レジスタWPARIx4にはカラムアドレス0で読み出したデータのシンドロームが出力されている状態なので、その8ビットのデータはセレクタ37及び第2遅延回路35、エラー訂正回路36を介して、メモリセルに書き込まれる。この時点で、フェイルアドレスレジスタ40及びパリティ/シンドロームレジスタ39では1回のシフト動作が行われるが、カラムアドレス4で発効されたリードコマンドの3サイクル後なので、それらの入力側からはそれぞれカラムアドレス4及びそのデータのパリティ値が入力される。
同様にして、カラムアドレス1〜3のライトコマンドが実行された時点では、フェイルアドレスレジスタ40とパリティ/シンドロームレジスタ39には、それぞれカラムアドレス4〜7及びカラムアドレス4〜7で読み出されたデータのパリティの値が保持されている。これらのデータを用いて、引き続きカラムアドレス0〜7のライトコマンドを実行し、パリティ/シンドロームレジスタ39に保持された4つのパリティをメモリセルに書き込む。符号生成の場合は、生成されたパリティビットをそのまま書き込むだけなので、誤り訂正の場合のように、再度リードコマンドを発効する必要はない。
すなわち、以上の動作方式により、CFSモードにおいて符号生成を行う場合には、リードコマンド8回、ライトコマンド8回を繰り返し行い、ページ長128全てのカラムアドレスをアクセスするまで繰り返す。
この方式を用いることにより、符号生成にかかる時間と(遅延回路の遅延時間+書き込み時間)を別のサイクルで行うことができるので、更なる動作周波数の高速化が期待できる。
以上の方式で符号生成動作を行った場合、回路構成は図6に示した回路と同じであるため、面積増加分は第1実施形態と同様であり、サイクル数に関しては従来例と比較して増減はない。
この発明の実施形態では、データ保持モードにおいてECCを機能させ、エントリー時に符号発生、イグジット時に誤り訂正を行うことにより、データ保持期間中のリフレッシュ間隔を通常動作時より伸ばし、データ保持期間中の消費電力を小さくするDRAMにおいて、カラムアドレス優先のページアクセスを用いて誤りがあったセルに対してのみ誤り訂正を行う場合に、エラー訂正時に生成するシンドロームと誤りがあったアドレスを保持する2種類のレジスタを設けて、誤り検出と誤り訂正を行うサイクルを別サイクルとし、かつページ内の誤り訂正回数をページ長以下に抑えられることを利用した動作方式を用いることで、サイクル数及びレジスタ数の増加を抑えつつ高速動作を可能にすることができる。
本発明の実施形態によれば、リフレッシュ動作を用いるメモリ、例えばDRAMにおいて、以下のような効果が達成できる。
低消費電力を実現するデータ保持モードとこれと共に用いられるECC機能を持っており、データ保持モードに入る際に、メモリセルからデータを読み出し、符号生成を行い、その符号をメモリセルに書き込む動作を全メモリセルに対して行い、データ保持モードから抜ける際には、メモリから符号を読み出し、誤りを訂正し、メモリセルに書き戻す動作を全メモリセルに対して行うことにより、リテンション特性を改善できる。
さらに、データ保持モードでのリテンション時間を長くすることにより、低消費電力を実現する場合に、誤り訂正時に行う、誤り検出、誤り訂正、訂正データ書き込みの動作や、誤り検出、ライトコマンド・アドレス生成の動作、及び符号生成時に行う、符号生成、符号データ書き込みの動作を、それぞれの場合で複数のサイクルに分けて行い、かつ回路構成や動作方式を工夫することにより、面積増加及びサイクル数増加を最小限に抑え、動作周波数の高速化を実現することができる。
また、前述した各実施形態はそれぞれ、単独で実施できるばかりでなく、適宜組み合わせて実施することも可能である。さらに、前述した各実施形態には種々の段階の発明が含まれており、各実施形態において開示した複数の構成要件の適宜な組み合わせにより、種々の段階の発明を抽出することも可能である。
1…セルアレイ、2…ECC回路、3…I/O回路、4…制御回路、11…データラッチ(read data latch)、12…データラッチ(ECC latch)、13…データラッチ(write data latch)、14…データマスクラッチ(write musk latch)、15…コマンドラッチ(CG command latch)、16…コマンドラッチ(EC command latch)、17…コマンドラッチ(read command latch)、18…コマンドラッチ(write command latch)、19…アドレスラッチ(column address latch)、20…アドレスラッチ(row address latch)、21…ECC回路(ECC circuit)、22…アドレス/コマンドジェネレータ(command/address generator)、23…ECCコマンドコントローラ(ECC command controller)、24…セレクタ(ECC/normal data selector)、25…セレクタ(command/address selector)、26…クロックジェネレータ(command/address CLOCK generator)、27…クロックジェネレータ(READ/WRITE/ECC CLOCK generator)、31…パリティ/シンドロームジェネレータ(parity/syndrome generator)、32…シンドロームデコーダ(syndrome decoder)、33…誤り検出ジェネレータ(DETECT generator)、34…第1遅延回路(delay circuit_1)、35…第2遅延回路(delay circuit_2)、36…データ訂正回路(DATA correction circuit)、37…セレクタ、38…セレクタ、39…パリティ/シンドロームレジスタ(parity/syndrome register)、40…フェイルアドレスレジスタ(fail address register)。
Claims (5)
- データを記憶するメモリセルと、
前記メモリセルから読み出した読み出しデータに対してパリティビットを生成すると共に、誤り検出を行い、前記読み出しデータ中に誤りデータを検出したとき、前記誤りデータに基づいてシンドロームを生成するパリティ/シンドロームジェネレータと、
前記パリティ/シンドロームジェネレータにより生成された前記パリティビット及び前記シンドロームを保持するパリティ/シンドロームレジスタと、
前記パリティ/シンドロームレジスタに保持された前記シンドロームをデコードし、前記読み出しデータ中の前記誤りデータを特定するためのエラー信号を出力するシンドロームデコーダと、
前記パリティ/シンドロームジェネレータから出力された前記パリティビットに基づいて、誤り検出信号を生成する誤り検出ジェネレータと、
前記誤り検出ジェネレータにより生成された前記誤り検出信号に基づいて、前記誤りデータが記憶されたメモリセルのアドレスとライトコマンドを生成するアドレス/コマンドジェネレータと、
前記アドレス/コマンドジェネレータにより生成された前記アドレスを保持するフェイルアドレスレジスタと、
前記シンドロームデコーダから出力された前記エラー信号に基づいて、前記読み出しデータ中の前記誤りデータを訂正するデータ訂正回路と、
を具備することを特徴とする半導体記憶装置。 - 前記メモリセルに記憶されたデータの保持動作を行うデータ保持モードに入るとき、前記パリティ/シンドロームジェネレータは、前記メモリセルから読み出した前記読み出しデータに対して前記パリティビットを生成し、前記パリティ/シンドロームレジスタは前記パリティビットを記憶する第1動作を行い、
前記データ保持モードから通常動作モードに復帰する前に、前記パリティ/シンドロームジェネレータは、前記パリティビットが付加された前記読み出しデータに対して誤り検出を行い、検出した誤りデータに応じたシンドロームを生成し、前記データ訂正回路は、前記シンドロームを用いて前記読み出しデータ中の前記誤りデータを訂正する第2動作を行い、
前記第2動作の期間中は、ページ動作で読み出し及び書き込みを行うと共に、前記読み出しデータに対する誤り検出において前記誤りデータが検出されたとき、前記シンドロームを前記パリティ/シンドロームレジスタに保持し、前記誤りデータに対応するアドレスを前記フェイルアドレスレジスタに保持し、全てのページ内のリード動作が終了した後に、前記データ訂正回路により前記誤りデータを訂正するための書き込み動作を行うことを特徴とする請求項1に記載の半導体記憶装置。 - 前記メモリセルに記憶されたデータの保持動作を行うデータ保持モードに入るとき、前記パリティ/シンドロームジェネレータは、前記メモリセルから読み出した前記読み出しデータに対して前記パリティビットを生成し、前記パリティ/シンドロームレジスタは前記パリティビットを記憶する第1動作を行い、
前記第1動作の期間中は、ページ動作で読み出し及び書き込みを行うと共に、前記誤りデータに対応するアドレスを前記フェイルアドレスレジスタに保持し、後のクロックサイクルで前記データ訂正回路により前記パリティ/シンドロームレジスタに保持された前記パリティビットに基づいて、前記フェイルアドレスレジスタに保持されたアドレスに対応するメモリセルに書き込み動作を行うことを特徴とする請求項1に記載の半導体記憶装置。 - 前記パリティ/シンドロームレジスタ及び前記フェイルアドレスレジスタがそれぞれ保持するレジスタの記憶容量の最大値は、ページ長分の記憶容量よりも常に小さいことを特徴とする請求項1乃至3のいずれかに記載の半導体記憶装置。
- 前記パリティ/シンドロームレジスタ及び前記フェイルアドレスレジスタは、それぞれシフトレジスタで構成されていることを特徴とする請求項1乃至4のいずれかに記載の半導体記憶装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006352983A JP2008165879A (ja) | 2006-12-27 | 2006-12-27 | 半導体記憶装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006352983A JP2008165879A (ja) | 2006-12-27 | 2006-12-27 | 半導体記憶装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008165879A true JP2008165879A (ja) | 2008-07-17 |
Family
ID=39695144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006352983A Pending JP2008165879A (ja) | 2006-12-27 | 2006-12-27 | 半導体記憶装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008165879A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013025835A (ja) * | 2011-07-19 | 2013-02-04 | Toshiba Corp | 不揮発性半導体記憶装置 |
CN107195329A (zh) * | 2017-05-17 | 2017-09-22 | 西安紫光国芯半导体有限公司 | 在读操作时纠正dram中存储阵列的错误的方法以及dram |
JP7096938B1 (ja) * | 2021-08-27 | 2022-07-06 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
-
2006
- 2006-12-27 JP JP2006352983A patent/JP2008165879A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013025835A (ja) * | 2011-07-19 | 2013-02-04 | Toshiba Corp | 不揮発性半導体記憶装置 |
CN107195329A (zh) * | 2017-05-17 | 2017-09-22 | 西安紫光国芯半导体有限公司 | 在读操作时纠正dram中存储阵列的错误的方法以及dram |
CN107195329B (zh) * | 2017-05-17 | 2024-04-02 | 西安紫光国芯半导体有限公司 | 在读操作时纠正dram中存储阵列的错误的方法以及dram |
JP7096938B1 (ja) * | 2021-08-27 | 2022-07-06 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
KR20230031781A (ko) * | 2021-08-27 | 2023-03-07 | 윈본드 일렉트로닉스 코포레이션 | 반도체 기억장치 및 독출 방법 |
KR102683960B1 (ko) | 2021-08-27 | 2024-07-11 | 윈본드 일렉트로닉스 코포레이션 | 반도체 기억장치 및 독출 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI534801B (zh) | 用於選擇性列刷新之裝置及方法 | |
US10956260B2 (en) | Semiconductor memory devices, and methods of operating semiconductor memory devices | |
JP4951041B2 (ja) | 半導体記憶装置 | |
JP4745169B2 (ja) | 半導体記憶装置 | |
JP4768374B2 (ja) | 半導体記憶装置 | |
US8189424B2 (en) | Semiconductor memory device having plurality of types of memories integrated on one chip | |
US8208340B2 (en) | Latency counter, semiconductor memory device including the same, and data processing system | |
JP4322694B2 (ja) | 半導体記憶装置および半導体記憶装置のリフレッシュ方法 | |
JP5599977B2 (ja) | 半導体記憶装置 | |
KR101326898B1 (ko) | 메모리 디바이스, 집적 회로 및 메모리 디바이스에서 사용하기 위한 방법 | |
JP4044538B2 (ja) | 半導体装置 | |
US6967882B1 (en) | Semiconductor memory including static memory | |
US8520460B2 (en) | Semiconductor memory device and access method | |
US6339560B1 (en) | Semiconductor memory based on address transitions | |
JP2008165879A (ja) | 半導体記憶装置 | |
US8576656B2 (en) | Latency counter, semiconductor memory device including the same, and data processing system | |
JP4889343B2 (ja) | 半導体記憶装置 | |
US20110058444A1 (en) | Latency counter, semiconductor memory device including the same, and data processing system | |
JP2007141372A (ja) | 半導体記憶装置 | |
JPH0440697A (ja) | 半導体記憶装置 | |
JP3938298B2 (ja) | パリティセルアレイを有するメモリ回路 | |
JP2008159168A (ja) | 半導体記憶装置 | |
US20080056038A1 (en) | Semiconductor memory device | |
JP2004206850A (ja) | 半導体記憶装置 | |
WO2024146130A1 (zh) | 信号生成电路、存储装置以及操作方法 |