(57)【特許請求の範囲】
【請求項１】
データをダイナミックに保持するメモリセルと、
第１のレジスタを有し、前記メモリセルから読み出された符号に対して誤り訂正を行うＥＣＣ回路と、
第２のレジスタを有し、前記メモリセルの動作及び前記ＥＣＣ回路の動作を制御する制御回路とを具備し、
前記制御回路は、前記メモリセルがデータの保持のみを行う動作モードに入るときに、複数のデータを読み出して誤り検出訂正用の検査ビットを生成して記憶させ、前記検査ビットを用いた前記ＥＣＣ回路の誤り訂正動作によるエラー発生の許容範囲内の周期によりリフレッシュ動作を行わせ、且つ前記データの保持のみを行う動作モードから通常動作モードに復帰する前に、前記検査ビットを用いて前記データの誤りビットを訂正させるように制御し、
エグジット期間中はページ動作で連続リード動作を行うとともに、読み出された符号に対して前記ＥＣＣ回路による誤り訂正動作を行い、
訂正が起きた場合に、訂正データ、誤り訂正情報を前記第１のレジスタに格納し、訂正が起きた符号が格納されたカラムアドレスを前記第２のレジスタに格納し、
ページの連続リードの最後のコマンド入力後、直ちに前記第１のレジスタに格納された訂正データを前記メモリセルに書き戻す
ことを特徴とする半導体記憶装置。
【請求項２】
ページ内で書き戻す訂正データの最大個数は、ページ長よりも常に小さいことを特徴とする請求項２に記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＥＣＣ機能を用いたデータ保持モードを有する半導体記憶装置、例えばダイナミック型ランダムアクセスメモリ（ＤＲＡＭ）に関するものである。
【背景技術】
【０００２】
従来、この種の半導体記憶装置としては、例えば特許文献１の「ダイナミック型ＲＡＭのデータ保持方法と半導体集積回路装置」が知られている。この特許文献１には、ＤＲＡＭがデータ保持動作のみを行う動作モードに入るときに、複数のデータに対して誤り検出訂正用のパリティビット（検査ビット）を生成して記憶させ、かかるパリティビットを用いた誤り訂正動作によるエラー発生の許容範囲内でリフレッシュ周期を長くしてリフレッシュ動作を行い、上記データ保持動作から通常動作に戻る前に上記データとパリティビットを用いて誤りビットを訂正する方法が提案されている。
【０００３】
この特許文献１の図２３には、エントリー（ENTRY）動作終了からデータ保持モード開始、並びにデータ保持モードからエグジット（EXIT）動作開始までを示すタイミング図が示されている。
【０００４】
この方式においては、実際の通常動作時からデータ保持モードに遷移するエントリーの期間に、全てのメモリセルに対する読み出しと発生したパリティビットの書き込みを行う。また、データ保持モードから通常動作に遷移するエグジットの期間においては、全てのメモリセルから符号すなわち情報ビットとパリティビットを読み出し、誤り検出・訂正、訂正データの書き戻し動作を行う。
【０００５】
しかしながら、これらの各動作は全メモリセルを対象にして行うため、エグジット動作開始から通常動作を行うことができるようになるまでの遷移時間が非常に長くなってしまうという問題がある。
【特許文献１】特開２００２−５６６７１
【発明の開示】
【発明が解決しようとする課題】
【０００６】
この発明は上記のような事情に鑑みてなされたもので、エントリー／エグジット遷移時間を短縮し、データ保持モードから素早く通常動作モードに復帰することが可能となる半導体記憶装置を提供する。
【課題を解決するための手段】
【０００８】
この発明の一態様によると、データをダイナミックに保持するメモリセルと、第１のレジスタを有し、前記メモリセルから読み出された符号に対して誤り訂正を行うＥＣＣ回路と、第１のレジスタを有し、前記メモリセルの動作及び前記ＥＣＣ回路の動作を制御する制御回路とを具備し、前記制御回路は、前記メモリセルがデータの保持のみを行う動作モードに入るときに、複数のデータを読み出して誤り検出訂正用の検査ビットを生成して記憶させ、前記検査ビットを用いた前記ＥＣＣ回路の誤り訂正動作によるエラー発生の許容範囲内の周期によりリフレッシュ動作を行わせ、且つ前記データの保持のみを行う動作モードから通常動作モードに復帰する前に、前記検査ビットを用いて前記データの誤りビットを訂正させるように制御し、エグジット期間中はページ動作で連続リード動作を行うとともに、読み出された符号に対して前記ＥＣＣ回路による誤り訂正動作を行い、訂正が起きた場合に、訂正データ、誤り訂正情報を前記第１のレジスタに格納し、訂正が起きた符号が格納されたカラムアドレスを前記第２のレジスタに格納し、ページの連続リードの最後のコマンド入力後、直ちに前記第１のレジスタに格納された訂正データを前記メモリセルに書き戻す半導体記憶装置が提供される。
【発明の効果】
【００１０】
この発明によれば、エントリー／エグジット遷移時間を短縮し、データ保持モードから素早く通常動作モードに復帰することが可能となる半導体記憶装置が得られる。
【発明を実施するための最良の形態】
【００１１】
以下、この発明の実施形態について図面を参照して説明する。  
この発明は、データ保持モードから通常動作モードに移行するエグジットの期間においては、
（１）  パイプライン構成を最適化することにより、データリード、符号生成、誤り検出・訂正、符号書き込み、復号書き戻しをシームレスに行い、余分なレジスタ（register）を減らし、且つエントリー／エグジット遷移時間を短くする。
【００１２】
（２）  ＥＣＣ機能によって誤りがないことが判明した場合には、書き戻し動作を省略する。
【００１３】
（３）  ページ動作でデータを読み出し、訂正データを書き戻す場合に、訂正データを書き戻すページサイクルの回数の上限を設け、書き戻しの回数はページ長よりも常に短く設定する、あるいは
（４）  ページ動作でデータを読み出して誤りを検出するが、その誤り検出回数の上限を設け、これをページ長より小さくし、誤り検出回数がこの上限値に等しくなったら、これ以降は当該ページサイクルにおけるデータの読み出しもこれに対応する誤り訂正動作や訂正データ書き戻し動作を省略する、
等の手法のうち少なくとも１つを用いることにより、エントリー／エグジット遷移時間を短縮し、データ保持モードから素早く通常動作モードに復帰できるようにしている。しかも、動作の一部を省略するため、消費電力の削減にも効果がある。
【００１４】
次に、上述した（１）〜（４）を実現するために、前提となる半導体記憶装置の具体的な動作と構成について図１乃至図５により順次説明する。
【００１５】
図１は、この発明の前提となる半導体記憶装置の概略動作を模式的に表しており、データ保持モードを示す模式図である。
【００１６】
この半導体記憶装置は、通常動作時において、リフレッシュ間隔ｔＲＥＦ＝４ｍｓで動作している。データ保持モードに入るために、エントリーの期間として全セルにアクセスして符号ビット（コードビット）を生成し、それをメモリセルに書き込む。ここでは組織化符号の使用を前提としているので、符号ビットの中には情報ビットがそのまま含まれており、符号ビットから情報ビットを除いた部分をパリティビットと呼ぶことにする。この時、エントリーでメモリセルに書き込むのは、このパリティビットのみで構わない。そして、全セルにアクセスして符号ビットを書き込んだ後は、データ保持モードに入る。
【００１７】
この図１に示す動作では、消費電力の削減を図るために、エントリーが終了したらスリープモード（Sleep mode）に入る。ここで言うスリープモードを実現するには、いわゆるＭＴ−ＣＭＯＳ技術やＶＴ−ＣＭＯＳ技術等が知られている。ＭＴ−ＣＭＯＳ技術は、ほとんど全てのメモリ周辺回路を構成するトランジスタのＧＮＤ側に接続されたＭＯＳＦＥＴのソースとＧＮＤ線の間に設けたスイッチトランジスタをオフすることによりリーク電流を削減するものである。ＶＴ−ＣＭＯＳ技術は、ＭＯＳＦＥＴのバックゲートバイアスを調整し、閾値電圧を変化させることにより、リーク電流を削減するものである。すなわち、ここでのスリープモードとは、リークカット動作させている状態を意味している。
【００１８】
さて、データ保持モードに入ると、ＥＣＣ機能によりリフレッシュ間隔ｔＲＥＦを長くすることができる。通常動作時にｔＲＥＦ＝４ｍｓであったものが、データ保持モードにおいてはｔＲＥＦ＝１６ｍｓにできるものとすると、データ保持モードに入ってからｔＲＥＦ＝１６ｍｓ以内に少なくとも１回の全セルリフレッシュ動作が必要になる。リフレッシュ動作をするためには、その動作に必要なリークカットされている回路の電源や閾値電圧を復帰させなければならない。全セルリフレッシュの前には、スリープから復帰するためのウェイクアップ（wake up）動作が必要であり、全セルリフレッシュ終了後に再びスリープモードに入るゴートゥースリープ（go to sleep）動作が必要になる。
【００１９】
このスリープ→ウェイクアップ→リフレッシュ→ゴートゥースリープの繰り返し後に、通常動作モードに移行するためには、まずスリープからウェイクアップ後のエグジット期間中に全セルにアクセスして復号動作、すなわち符号ビットを読み出して誤り検出・訂正を行い、訂正データをメモリセルに書き戻す必要がある。そして、全セルのデータ復号が終了したら通常動作モードに移行する。
【００２０】
図２は、エントリー並びにエグジット期間中におけるリフレッシュ動作の注意事項について説明するための模式図である。ここでは、エグジット期間中に行われる誤り訂正（error correction）がリフレッシュ間隔ｔＲＥＦより大きい（４ｍｓ以上）時の動作を示している。
【００２１】
通常、メモリセルにアクセスするアドレシングでよく使用されるものとして、ＲＦＳ（Row First Scan）とＣＦＳ（Column First Scan）がある。ＲＦＳは、ロウアドレス（row address）を先にインクリメント（increment）させて全てのロウをアクセスした後、カラムアドレス（column address）をインクリメントさせる方法である。一方、ＣＦＳは、カラムアドレスが先、ロウが後の方法である。
【００２２】
ＣＦＳでは、エントリーまたはエグジット期間中に通常のｔＲＥＦ＝４ｍｓ以内に全ロウにアクセスできない場合には、メモリセルのリテンション（retention）不良を引き起こすので注意が必要である。この不良は、エントリー／エグジット期間の途中で起こるので、ＥＣＣ機能では救済できない。従って、エントリー／エグジット期間であってもｔＲＥＦ＝４ｍｓの制約を満たすように、途中でリフレッシュ（refresh）動作を行う必要がある。
【００２３】
この時、エグジット／エントリーでの全セルアクセスをＲＦＳで行う場合には、ロウアドレスのインクリメントが先に行われるので、リフレッシュの制約はほとんどの場合に満たされる。これに対し、ＣＦＳでページ動作を行う場合には、１ロウサイクル（row cycle）の間に複数カラムにアクセスするので、全てのロウへのアクセスが行われるまでに時間がかかる。このため、クロック（clock）が遅くメモリ容量の大きい半導体記憶装置の場合には、サイクルタイム（cycle time）がリフレッシュの制約を満たせなくなるので、途中にリフレッシュ動作が必要になる。
【００２４】
一方、エントリー／エグジット遷移時間の観点から言うと、ＣＦＳでページ動作を行えば、ページ長が長いほど遷移時間は短くなる。これに対し、ＲＦＳの場合にはリフレッシュの制約の心配は少ないが、ロウが活性化してカラムアクセス開始するまでのｔＲＣＤや、ライトコマンド（write command）からロウプリチャージコマンド（row precharge command）までの時間ｔＷＲ、ロウプリチャージコマンドから次のロウアクティブコマンド（row active command）までの時間ｔＲＰ等の時間が１ロウアクセス（row access）の間に必要であり、遷移時間は大幅に長くなる。
【００２５】
図３乃至図５はそれぞれ、上記各時間を概略的に見積もったグラフである。想定した半導体記憶装置の構成は、これらのグラフに記載した通りである。図３はＣＦＳ、図４はＲＦＳ、図５はバンクインターリーブ（bank interleave）を使用した場合をそれぞれ示している。図３では周波数ｆｒｅｑ［ＭＨｚ］とｔＥＮＴＲＹ（全符号発生）／ｔＥＸＩＴ（全セル訂正）［ｍｓ］との関係を示している。矢印で示すようにＥＮＴＲＹ／ＥＸＩＴに４ｍｓ以上かかる場合には、途中でリフレッシュが必要になる。図４では周波数ｆｒｅｑ［ＭＨｚ］と時間ｔｉｍｅ［ｍｓ］との関係を示している。ｔｉｍｅ［ｍｓ］＝ｔＥＮＴＲＹ（全符号発生）／ｔＥＸＩＴ（全セル訂正）［ｍｓ］であり、ＥＮＴＲＹ／ＥＸＩＴに４ｍｓ以上かかってもリフレッシュは不要である。図５ではバンクインターリーブを使用した場合の周波数ｆｒｅｑ［ＭＨｚ］とｔＥＮＴＲＹ（全符号発生）／ｔＥＸＩＴ（全セル訂正）［ｍｓ］との関係を示している。矢印で示すようにＥＮＴＲＹ／ＥＸＩＴに４ｍｓ以上かかる場合には、やはり途中でリフレッシュが必要になる。
【００２６】
この発明の実施形態では、上述したようなことを考慮し、ＣＦＳでページ動作を行う場合に、パイプライン構成を最適化することで、エントリー／エグジット遷移の動作をシームレスにするとともに、余分なレジスタを削減し、更にエグジット時のデータ読み出し、誤り検出・訂正、復号データ書き戻し動作を必要最小限に抑えることで、エグジット遷移時間を短くしている。
【００２７】
図６は、この発明の実施形態に係る半導体記憶装置の構成例について説明するためのもので、ＤＲＡＭマクロの全体図を概略的に示す平面図である。このＤＲＡＭマクロは、８つのバンク（４Ｍビットサブマクロ）１１−１〜１１−８を備えている。各バンク１１−１，１１−２間、１１−３，１１−４間、１１−５，１１−６間、１１−７，１１−８間にはそれぞれ、デコーダブロック１２−１〜１２−４が配置されている。また、各バンク１１−１，１１−３間、１１−２，１１−４間、１１−３，１１−５間、１１−４，１１−６間、１１−５，１１−７間、１１−６，１１−８間及びバンク１１−７，１１−８に隣接して、セカンダリーセンスアンプ（secondary sense amplifier）１３−１〜１３−８がそれぞれ配置されている。
【００２８】
各々のバンク１１−１〜１１−８中には、バンク１１−２で代表的に示すように１Ｍビットのメモリセルアレイ（1M array）１４−１〜１４−４が配置されている。これらのメモリセルアレイ１４−１〜１４−４をそれぞれ挟んでセンスアンプ１５−１〜１５−５が配置されている。
【００２９】
上記セカンダリーセンスアンプ１３−７，１３−８に隣接してＥＣＣ回路１６−１，１６−２が設けられている。このＥＣＣ回路１６−１，１６−２中にはそれぞれ、リードライトバッファ（RWBUF）やＥＣＣブロック（BLKECC）等が設けられている。また、上記デコーダブロック１２−４に隣接して、上記ＥＣＣ回路１６−１，１６−２間の領域に制御回路１７が配置されている。この制御回路１７中には、ブロックコントローラ（BLKCTRL）やＥＣＣコントローラ（ECCCTRL）等が設けられている。
【００３０】
上記ＥＣＣ回路１６−１，１６−２中にはそれぞれ、ＤＲＡＭマクロ外部からデータＤＩが入力される。このデータＤＩは、入力データ線ＤＩＮ，ＤＩＰを介して各セカンダリーセンスアンプ１３−７，１３−５，１３−３，１３−１及び１３−８，１３−６，１３−４，１３−２に供給される。上記入力データ線ＤＩＮはノーマルデータを転送し、上記入力データ線ＤＩＰはパリティデータを転送する。各セカンダリーセンスアンプ１３−１〜１３−８に入力されたデータＤＩは、対応するバンク１１−１〜１１−８中のＤＱ線及びセンスアンプ１５−１〜１５−５を介してメモリセルアレイ１４−１〜１４−４中の選択されたメモリセルにそれぞれ供給される。
【００３１】
一方、メモリセルから読み出されたデータは、このメモリセルが含まれるメモリセルアレイ１４−１〜１４−４に対応するセンスアンプ１５−１〜１５−５で増幅され、ＤＱ線に転送される。このＤＱ線上のデータは、セカンダリーセンスアンプ１３−１〜１３−８で更に増幅され、出力データ線ＤＯＮ，ＤＯＰを介してＥＣＣ回路１６−１，１６−２に供給されるとともに、出力データＤＯとして外部に出力される。上記出力データ線ＤＯＮはノーマルデータを転送し、上記出力データ線ＤＯＰはパリティデータを転送する。
【００３２】
図７は、上記図６に示した回路における破線１８で囲んだ領域（ＥＣＣ回路１６−１と制御回路１７）の具体的な構成例を示すブロック図である。上記ＥＣＣ回路１６−１中には、リードライトバッファ（RWBUF）２１とＥＣＣブロック（BLKECC）２２が設けられている。上記リードライトバッファ２１中には、読み出し用のクロック信号ＣＬＫＲＤで制御されるリードバッファ（フリップフロップ）２３と書き込み用のクロック信号ＣＬＫＷＤで制御されるライトバッファ（フリップフロップ）２４とが含まれている。上記ＥＣＣブロック２２中には、ＥＣ（error correction）部２５、コードジェネレータ（code generator）／シンドロームジェネレータ（syndrome generator）２６、シンドロームデコーダ（syndrome decoder）２７、ＥＣＣ用のクロック信号ＣＬＫＥＣで制御されるバッファ（フリップフロップ）２８及びマルチプレクサ２９，３０等が含まれている。
【００３３】
入力データＤＩは、上記マルチプレクサ３０の一方の入力端に供給される。このマルチプレクサ３０の他方の入力端には、上記マルチプレクサ２９の出力信号が供給されている。上記マルチプレクサ３０の出力信号は、バッファ２４に供給される。このバッファ２４は、ＤＲＡＭマクロに入力されたライトコマンドに同期して活性化される書き込み用のクロック信号ＣＬＫＷＤに応答して動作し、通常動作時にはＤＲＡＭマクロ外部から入力された上記入力データＤＩを入力データ線ＤＩＮ，ＤＩＰに供給する。上記マルチプレクサ３０は、通常動作時、すなわちＥＣＣを機能させていないときには上記入力データＤＩを選択し、ＥＣＣ動作時には上記マルチプレクサ２９の出力信号がメモリセルに書き込まれるように選択する。
【００３４】
出力データ線ＤＯＮ，ＤＯＰに読み出されたデータは、ＤＲＡＭマクロに入力されたリードコマンドによって定まるタイミングで活性化される読み出し用のクロック信号ＣＬＫＲＤに応答してリードバッファ２３に入力される。このバッファ２３の出力信号はバッファ２８に供給されるとともに、リードコマンドが入力された時点からリードレーテンシ分のクロック数経過後に出力データＤＯとして外部に出力される。このバッファ２８は、クロック信号ＣＬＫＲＤよりも１クロック遅れたＥＣＣ用のクロック信号ＣＬＫＥＣに応答して上記バッファ２３の出力信号を取り込む。バッファ２８の出力信号は、ＥＣ部２５及びコードジェネレータ／シンドロームジェネレータ（ＣＧ／ＳＧ）２６に供給される。上記ＥＣ部２５及びコードジェネレータ／シンドロームジェネレータ２６の出力信号はそれぞれ、上記マルチプレクサ２９に供給される。上記マルチプレクサ２９は、符号生成の際にはコードジェネレータ／シンドロームジェネレータ２６から出力されるチェックビットデータを選択して出力し、誤り訂正の際にはコードジェネレータ／シンドロームジェネレータ２６から出力されるシンドロームをシンドロームデコーダ（ＳＤ）２７でデコードして、その結果得られた誤り位置情報を元にＥＣ部２５で訂正されたデータを選択して出力する。
【００３５】
また、上記制御回路１７中には、ブロックコントローラ（BLKCTRL）３１とＥＣＣコントローラ（ECCCTRL）３２が設けられている。上記ブロックコントローラ３１中には、マルチプレクサ３３とアドレス及びコマンドバッファ（addr,cmd buf）３４が含まれている。ＥＣＣコントローラ３２には、カウンタ（counter）３５とタイマ（timer）３６が含まれている。
【００３６】
ＥＣＣコマンド（ecc command）は、カウンタ３５に供給され、このカウンタ３５の出力がタイマ３６に供給される。上記タイマ３６による計時結果はカウンタ３５に供給される。上記ＥＣＣコントローラ３２の出力信号とアドレス及びコマンド（addr,cmd）はマルチプレクサ３３に供給される。このマルチプレクサ３３は、通常動作時にはＤＲＡＭマクロ外部からのアドレス及びコマンドを選択してマクロ内部を制御するのに用い、ＥＣＣ動作時にはＥＣＣコントローラ３２から出力されたアドレス及びコマンドを選択して使用する。このマルチプレクサ３３の出力信号は、アドレス及びコマンドバッファ３４に供給される。そして、アドレス及びコマンドバッファ３４から内部アドレス及びコマンドがメモリセルに供給される。また、このブロックコントローラ３１から出力される読み出し用のクロック信号ＣＬＫＲＤ、書き込み用のクロック信号ＣＬＫＷＤ及びＥＣＣ用のクロック信号ＣＬＫＥＣはそれぞれ上記バッファ２４，２３，２８に供給される。
【００３７】
図８は、上記図７に示したＥＣＣブロック２２において、符号化動作を司る部分を抽出してより詳細に示すブロック図である。図８において、図７と同一構成部には同じ符号を付している。また、後ろにＮを付けた参照符号（２８Ｎ，３０Ｎ）はノーマル用、Ｐを付けた参照符号（２８Ｐ，３０Ｐ）はパリティ用である。この図８においては、パリティを発生する場合の経路を実線の矢印で示している。図８においてパリティ用の読み出しデータＤＯＰはＤＲＡＭマクロ外部に出力する必要はなく、パリティ用の書き込みデータはＤＲＡＭマクロ外部から入力されることはない。
【００３８】
図９は、上記図７に示したＥＣＣブロック２２において、復号、すなわちシンドローム生成、シンドロームデコード及び誤り訂正を行う部分を抽出して示すブロック図である。図９において、図７と同一構成部には同じ符号を付している。また、図８と同様に、後ろにＮを付けた参照符号（２８Ｎ，３０Ｎ）はノーマル用、Ｐを付けた参照符号（２８Ｐ，３０Ｐ）はパリティ用である。この図９においては、誤り訂正を行う場合の経路を実線の矢印で示している。
【００３９】
なお、符号には、１誤り訂正可能な縮小ハミングコード（Hamming Code）を使用する場合を想定しているが他の符号でも構わない。情報長は１２８ビット、符号長は１３６ビット、検査記号長、すなわちこの発明の実施形態で言うパリティビットは８ビットである。
【００４０】
図１０は、ＲＦＳでのタイミング図を示している。オートエグジット／エントリーの場合は、外部コマンドでロウサイクルの開始コマンドを入力し、アドレスは内部カウンタで生成する。
【００４１】
セルフエグジット／エントリーの場合は、ロウサイクル開始するエントリー／エグジットコマンドは内部タイマにより、自動的に生成され、アドレスも内部のカウンタで生成されたものを使用する。
【００４２】
エントリーコマンドが入力されると、ロウが活性化されワード線の電位が立ち上がる。ロウアクティブコマンドからｔＲＣＤ後にリードコマンドが発生され、データを１２８ビット（エグジット時はパリティと合わせて１３６ビット）読み出す。リードコマンドからリードレーテンシＣＹＣＬＥ後にデータがＥＣＣ回路に入力され、符号生成（エグジット時は誤り訂正）を行う。次のサイクルで内部ライトコマンドが生成され、パリティビット（エグジット時には、訂正済みデータ）をメモリセルに書き込む。内部ライトコマンドからｔＷＲ後に内部ＰＲＣコマンドが生成され、このロウがプリチャージ状態にされる。その時点からｔＲＰよりも以降に、次のアドレスをインクリメントされたロウを活性化するロウアクティブコマンドが入力される。
【００４３】
図１１は、ＣＦＳでページ（page）長＝３２ビットで動作させた場合を想定したタイミング図である。ここで、ロウ系のコマンドは図１０と同様であるが、カラム動作は、ａｃｔからｔＲＣＤ後の各サイクルでカラムアドレスｃ０からｃ３１までの３２サイクル連続でリードコマンドが入力されている。ここでリードレーテンシ（Read Latency）ＲＬ＝３であるので、最初のカラムアドレスｃ０に対するコマンドＲに対してＲＬ＝３後にリードデータＱ０が出力される。リードデータＱ０に対して、ＥＣＣ回路の出力Ｄ０は１サイクル後に生成される。さて、リードが３２カラム連続した後に、３サイクルＮＯＰ（No Operation）コマンドＮが入力された後にカラムアドレスｃ０〜ｃ３１に対するライトコマンドが３２カラム連続して入力される。
【００４４】
ライトデータはリードして、得られた各Ｑｉに対してＥＣＣ回路で生成されたパリティビットあるいは訂正済みの復号データＤｉである。これにはページ長３２個×符号長１３６ビットのレジスタがあれば十分であり、実際にはもっと少なくて済む。しかし、多数のレジスタが必要であり、且つリードとライトの間にＮＯＰコマンドＮを挿入しなければならない。
【００４５】
［第１の実施形態］
図１２は、この発明の第１の実施形態に係る半導体記憶装置の動作について説明するためのタイミング図である。図１２において、ｅｃｃｃｍｄは図７のＥＣＣコントローラ３２に対する入力信号（ecc command）であり、システムクロックＣＬＫに同期してＤＲＡＭマクロ内部のロウアクティブコマンド信号ａｃｔを活性化させるとともに、ＥＣＣコントローラ３２内のカウンタ３５からロウアドレスＲＡ０がマクロ内部に伝達され、ロウアドレスＲＡ０により定まるワード線が活性化される。ＥＣＣコントローラ３２内のタイマ３６で計時されるｔＲＣＤ以降、メモリセルのデータを読み出すためにリードコマンドが発行され、メモリセルにデータを書き込むためのライトコマンドが発行され、ページ動作が行われる。このリードコマンド並びにライトコマンドはＥＣＣコントローラ３２内で発生されたもので、カラムアドレスＣ０からＣ３１はＥＣＣコントローラ３２内のカウンタから供給されるものである。ページ動作終了後は、最後のカラムコマンドからタイマ３６で定めたｔＲＷ後にロウプリチャージ信号が発行されてワード線が非選択状態になる。
【００４６】
例えば、通常動作時のリードレーテンシが１や２の場合でも、強制的にＲＬ＝３で動作させ、４回リードの後に４回ライトを行えばシームレスなアクセスが可能である。よって、ＮＯＰを入れたりするパイプライン（pipeline）の乱れは存在しない。また、生成された符号や訂正された復号データは、その次のサイクルでラッチされメモリセルに書き込まれることになるのでレジスタは不要になる。
【００４７】
このように、本第１の実施形態によれば、パイプライン構成を最適化して、データリード、符号生成、誤り検出・訂正、符号書き込み、復号書き戻しをシームレスに行うことができる。これによって、余分なレジスタ（register）を減らし、且つエントリー／エグジット遷移時間を短くできる。
【００４８】
上述したダイナミック型ＲＡＭのデータ保持方法を一般化して表現すると次のようになる。エントリー／エグジット期間中はページ動作でリードライトを行うとともに、リードレーテンシ＝ｎ、すなわちリードコマンドからデータ出力確定までｎサイクル、ライト動作に１サイクル、ＥＣＣ動作にｍサイクル必要なとき、ページ長ｋは、（ｎ＋ｍ）の倍数であって、ページ動作は（ｎ＋ｍ）回連続リードと（ｎ＋ｍ）回連続ライトをｋ／（ｎ＋ｍ）回繰り返す。
【００４９】
この図１２に示した例は、ｎ＝３，ｍ＝１，ｋ＝３２の場合であり、ページ長ｋ＝３２は、ｎ＋ｍ＝３＋１＝４の倍数になっている。
【００５０】
［第２の実施形態］
図１３乃至図１５はそれぞれ、この発明の第２の実施形態に係る半導体記憶装置について説明するためのタイミング図である。本第２の実施形態では、ページ長＝８の場合を例にとって示している。図１３は１回のページアクセスに対して、カラムアドレスＡ２で指定されるメモリセルから読み出されたデータＱ２に誤りが１個含まれていたため、シンドロームＳ２が非０になって訂正が起こり、受信語Ｑ２が正しい復号語Ｃ２に訂正された場合を示している。
【００５１】
この動作を実現するためには、ＥＣＣ回路１６−１，１６−２と制御回路１７中にレジスタが必要であり、
シンドロームレジスタ（syndrome register）：ｓｄ ｒｅｇ、
復号語レジスタ：ｃｄ ｒｅｇ、
フェイルアドレスレジスタ（fail address register）：ｆａ ｒｅｇがそれぞれページ長＝８セット、更に
カラムアドレスレジスタ（column address register）：ｃａ ｒｅｇがＲＬ＝３セット必要である。
【００５２】
シンドロームレジスタｓｄ ｒｅｇは、発生されたシンドロームを保持しておくためのものであり、図７のシンドロームデコーダ２７中に設けられる。復号語レジスタｃｄ ｒｅｇは、復号語を保持しておくためのものであり、図７のＥＣ部２５中に設けられる。カラムアドレスレジスタｃａ ｒｅｇは、図７のＥＣＣコントローラ３２内に設けられ、カウンタ３５からの出力であるカラムアドレスを保持しておくために用いられる。フェイルアドレスレジスタｆａ ｒｅｇは、誤りを検出した際に、その誤りデータの読み出されたメモリセルのアドレスをカラムアドレスレジスタｃａ ｒｅｇから取り込むものであり、やはりＥＣＣコントローラ３２内に設けられる。
【００５３】
もし、受信語Ｑ２に誤りがあると、シンドロームＳ２が非０になる。
【００５４】
すると、シンドロームＳ２はシンドロームレジスタｓｄ ｒｅｇ０に取り込まれる。取り込まれていないシンドロームレジスタの値はオール（all）０である。
【００５５】
同時に、訂正されたデータＣ２が復号語レジスタｃｄ ｒｅｇ０に取り込まれる。また、誤りを生じたデータが格納されていたカラムアドレスＡ２がフェイルアドレスレジスタｆａ ｒｅｇ０に取り込まれる。
【００５６】
ページ長＝８サイクルのリードが終了すると、直ちに訂正データの書き戻しが開始される。シンドロームレジスタｓｄ ｒｅｇ０の内容が非０である場合は、フェイルアドレスレジスタｆａ ｒｅｇ０に蓄えられたフェイルしたカラムアドレスＡ２が書き戻すアドレスとしてライトコマンドとともに指定され、書き戻すデータは復号語レジスタｃｄ ｒｅｇ０に蓄えられたＣ２であり、これを書き戻す。
【００５７】
次に、シンドロームレジスタｓｄ ｒｅｇ１の内容をみて、これが０であるのでページにおける書き戻しは終了し、ｔＷＲ後にロウプリチャージ（row precharge）に入ることができる。
【００５８】
ここで、復号語レジスタは符号長に対応する１３６ビット持っている構成が一番簡単であるが数が多い。そこで、復号語のうち、誤り訂正の起こったデータ１ビットのみ保持しておいて、書き込むときにシンドロームをデコードして、その訂正の起きた１ビットのみ書き戻すこともできる。
【００５９】
本第２の実施形態によれば、ＥＣＣ機能によって誤りがないことが判明した場合に書き戻し動作を省略できるので、エントリー／エグジット遷移時間を短縮し、データ保持モードから素早く通常動作モードに復帰できる。
【００６０】
図１４は、基本的には図１３と同様であるが、ページ内に２回誤り訂正が生じた場合を示している。
【００６１】
図１５は、基本的には図１３と同様であるが、ページ内の全てのカラムで誤り訂正が生じた場合を示している。
【００６２】
［第３の実施形態］
図１６は、この発明の第３の実施形態に係る半導体記憶装置について説明するためのタイミング図である。本第３の実施形態は、誤り訂正が起きたらその次のサイクルで直ちに書き戻しを行うものである。上段は、ページ内に３回の訂正・書き戻しが起きた場合を示している。
【００６３】
このためには、書き戻しを行う場合に、その間カラムアドレスカウンタ（column address counter）を止めておき、書き戻しが終了したら直ちに、カラムアドレスカウンタを再開する必要がある。また、書き戻しのアドレスは誤りを含んだリードデータのアドレスと同一のものである必要があるので、新たに発生させるかレジスタに蓄えておく必要があるが、その数は大して多くはない。
【００６４】
本第３の実施形態によれば、ページ動作でデータを読み出し、訂正データを書き戻す場合に、訂正データを書き戻すページサイクルの回数の上限を設け、書き戻しの回数はページ長よりも常に短く設定することにより、エントリー／エグジット遷移時間を短縮でき、データ保持モードから素早く通常動作モードに復帰できる。
【００６５】
［第４の実施形態］
図１７は、この発明の第４の実施形態に係る半導体記憶装置について説明するためのタイミング図である。
【００６６】
この例では、誤り訂正がページ内にわずかに１回生じた場合に直ちに書き戻しを行い、更にこのページ内でのデータ読み出しを中止し、ｔＷＲ後にロウプリチャージ動作に入るようにしている。
【００６７】
この図１７では、ページ内で１回訂正したときに終了するようにしたが、訂正２回、あるいはページ長よりも短い回数の訂正が生じた時点でリードも含めたページアクセスを打ち切るようにしても良い。
【００６８】
すなわち、本第４の実施形態では、ページ動作でデータを読み出して誤りを検出する際に、その誤り検出回数の上限を設け、これをページ長より小さくし、誤り検出回数がこの上限値に等しくなったら、これ以降は当該ページサイクルにおけるデータの読み出しもこれに対応する誤り訂正動作や訂正データ書き戻し動作を省略する。これによって、エントリー／エグジット遷移時間を短縮でき、データ保持モードから素早く通常動作モードに復帰できる。
【００６９】
図１８乃至図２０はそれぞれ、ページ長＝１２８，３２，１６の場合の救済効率を示している。ページ内で誤り訂正回数を小さくしても４〜５回訂正してしまえば十分であることがわかる。
【００７０】
ここでは説明を簡単にするために、リテンション不良は全くランダムに発生すると仮定する。
【００７１】
１ビット不良確率をｐとすると、１Ｍビット当たりの平均不良数λは、λ＝２２０×ｐである。
【００７２】
ポアソン（Poisson）でもガウス（Gauss）でも構わないが、二項分布のままで計算する。
【００７３】
メモリ容量をＮ＝３２Ｍビット
ｎ＝情報長＝Ｉ／Ｏ数＝１回のカラムアクセスでリード／ライトするデータのビット幅＝１２８ビット
ｍ＝符号長＝１３６ビット
ｋ＝ページ長（例えば、１６，３２，１２８）とする。
【００７４】
このとき、ＥＣＣ無しの歩留まり（Yield）は、
Ｙｉｅｌｄ＝（（１−ｐ）ｎ）（Ｎ／ｎ）＝（１−ｐ）Ｎ
ＥＣＣ有り（１誤り訂正／１２８ビット）の歩留まり（Yield）は、
Ｙｉｅｌｄ＝（（１−ｐ）ｍ＋ｍ×ｐ×（１−ｐ）（ｍ−１））（Ｎ／ｎ）
ＥＣＣ有り（ページ中ｅ回まで訂正）の歩留まり（Yield）は、
Ｙｉｅｌｄ＝［ｓｕｍ（ｊ＝０…ｅ，ｃｏｍｂ（ｎ，ｊ）×｛（（１−ｐ）ｍ）（ｋ−ｊ）×（ｍ×ｐ×（１−ｐ）（ｍ−１））ｊ｝）］（Ｎ／ｎ／ｋ）
である。
【００７５】
上記第２乃至第４の実施形態の場合には、１回のページサイクルの長さが、そのページ内で、誤り訂正の生じた回数に依存する。
【００７６】
セルフ（Self）でＥＣＣ動作する場合、すなわち、エントリー／エグジット期間中にロウ／カラムアドレスカウンタからの出力を取り込み、ロウアクティブ／プリチャージコマンドや、リード／ライトコマンドを自動的に発生し、そのタイミングを内部タイマで制御する場合には、ページ内の誤り訂正の生じた回数をカウントして、その各種信号のタイミングを制御することにより、全体のエグジット遷移時間を低減できる。
【００７７】
しかし、オート（Auto）で、すなわち全てのタイミングを内部タイマで制御するのではなく、例えばロウアクティブコマンドのみ外部からの入力を求めるような場合には、ページ内で誤り訂正の生じた回数に応じて、ロウサイクルタイム（row cycle time）がページ内の誤り訂正の生じた回数に依存してしまうので、外部からいつコマンドを入力して良いのかわからない。
【００７８】
これを解決するには、ページサイクルの終了を示す信号をメモリの外部に出力して、メモリコントローラがこれを受けて次のロウアクティブコマンドを発行するようにしても良い。また、仕様として、エントリー／エグジット時のページサイクルのロウサイクルタイムはフルページのリード／ライトをした場合のロウサイクルタイムの例えば０．８倍として規定してしまう方法もある。実際そのようにして、ページ内に存在するかもしれない全ての誤り訂正が起きる場合の最悪のケースはページ内の全てのカラムにおいて誤り訂正が生じた場合であるが、そのようなことが起きる確率は非常に小さい。よって、ページサイクル内のライト（もしくは、リード及びライト）を省略しても、図１８乃至図２０に示すように歩留まり（Yield）への影響を無視できるくらいまで小さくすることができる。
【００７９】
そうすれば、全体のエグジット遷移時間はメモリ容量とページ長から計算できる。但し、途中でリフレッシュが必要な場合は別途考慮する必要ある。
【００８０】
この発明の各実施態様によると、リフレッシュを要するメモリ、例えばＤＲＡＭにおいて、データ保持モードにエントリーする時にメモリからデータを読み出し、誤り訂正符号を発生し、且つメモリに書き込む動作を全メモリセルに対して行い、エグジット時にはメモリから符号を読み出し、誤りを訂正し、且つメモリに書き戻す動作を全メモリセルに対して行うことにより、リテンション特性を改善してリフレッシュ間隔を長くすることにより低消費電力化を図ることができる。この際、エグジット時には符号読み出し、誤り検出、誤り訂正、訂正データの書き戻しの各動作を、リフレッシュを必要とする全メモリに対して行うのではなく、必要最小限の動作のみを択一的に行うことにより、エグジット遷移時間を短縮し、素早く通常動作モードに復帰できる。また、パイプラインを最適化することにより、シームレスなページアクセスを可能にするとともに、余分なレジスタの使用を避けることができ、高速化並びにパターン占有面積及びチップコスト削減にも効果がある。
【００８１】
上述したように、この発明の１つの側面によれば、データ保持モードにおいてＥＣＣを機能させ、エントリー時に符号発生し、エグジット時に誤り訂正を行うことにより、データ保持期間中のリフレッシュ間隔を通常動作時より伸ばし、データ保持期間中の消費電力を小さくするＤＲＡＭにおいて、エグジット時のデータ読み出し、誤り検出、誤り訂正、訂正データの書き戻しの各動作を全てのメモリセルに対して行うのではなく、誤りがない場合にはこれら各動作の一部を省略することにより、エグジット遷移時間の短縮並びに更なる低消費電力化を可能にすることができる。また、パイプライン構成を最適化することにより、遷移時間を短くさせ、更にＥＣＣ回路の出力を保持するレジスタ数を減らし、パターン占有面積を小さくし、チップコストの削減を図ることができる。
【００８２】
従って、エントリー／エグジット遷移時間を短縮し、データ保持モードから素早く通常動作モードに復帰することが可能となる半導体記憶装置が得られる。
【００８３】
以上第１乃至第４の実施の形態を用いてこの発明の説明を行ったが、この発明は上記各実施の形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上記各実施の形態には種々の段階の発明が含まれており、開示される複数の構成要件の適宜な組み合わせにより種々の発明が抽出され得る。例えば各実施の形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題の少なくとも１つが解決でき、発明の効果の欄で述べられている効果の少なくとも１つが得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【図面の簡単な説明】
【００８４】
【図１】この発明の前提となる半導体記憶装置について説明するためのもので、概略動作を模式的に表しており、データ保持モードを示す模式図。
【図２】エントリー並びにエグジット期間中におけるリフレッシュ動作の注意事項について説明するための示す模式図。
【図３】ＣＦＳの場合のエントリー／エグジット遷移時間を概略的に見積もった図。
【図４】ＲＦＳの場合のエントリー／エグジット遷移時間を概略的に見積もった図。
【図５】バンクインターリーブを使用した場合のエントリー／エグジット遷移時間を概略的に見積もった図。
【図６】この発明の実施形態に係る半導体記憶装置の構成例について説明するためのもので、ＤＲＡＭマクロの全体図を概略的に示す平面図。
【図７】図６に示した回路における破線で囲んだ領域の具体的な構成例を示すブロック図。
【図８】図７に示したＥＣＣブロックにおいて、符号化動作を司る部分を抽出してより詳細に示すブロック図。
【図９】図７に示したＥＣＣブロックにおいて、復号を行う部分を抽出して示すブロック図。
【図１０】ＲＦＳの場合のタイミング図。
【図１１】ＣＦＳの場合にページ長が３２ビットで動作したときのタイミング図。
【図１２】この発明の第１の実施形態に係る半導体記憶装置の動作について説明するためのタイミング図。
【図１３】この発明の第２の実施形態に係る半導体記憶装置について説明するためのもので、１回のページアクセスに対して、カラムアドレスで指定されるメモリセルから読み出されたデータに誤りが１個含まれていた場合のタイミング図。
【図１４】この発明の第２の実施形態に係る半導体記憶装置について説明するためのもので、ページ内に２回誤り訂正が生じた場合のタイミング図。
【図１５】この発明の第２の実施形態に係る半導体記憶装置について説明するためのもので、ページ内の全てのカラムで誤り訂正が生じた場合のタイミング図。
【図１６】この発明の第３の実施形態に係る半導体記憶装置について説明するためのタイミング図。
【図１７】この発明の第４の実施形態に係る半導体記憶装置について説明するためのタイミング図。
【図１８】ページ長が１２８ビットの場合の救済効率を示す特性図。
【図１９】ページ長が３２ビットの場合の救済効率を示す特性図。
【図２０】ページ長が１６ビットの場合の救済効率を示す特性図。
【符号の説明】
【００８５】
１１−１〜１１−８…バンク（サブマクロ）、１２−１〜１２−４…デコーダブロック、１３−１〜１３−８…セカンダリーセンスアンプ、１４−１〜１４−４…メモリセルアレイ、１５−１〜１５−５…センスアンプ、１６−１，１６−２…ＥＣＣ回路、１７…制御回路、１８…破線、２１…リードライトバッファ、２２…ＥＣＣブロック、２３…リードバッファ、２４…ライトバッファ、２５…ＥＣ部、２６…コードジェネレータ／シンドロームジェネレータ、２７…シンドロームデコーダ、２８…バッファ、２９，３０…バッファ、３１…ブロックコントローラ、３２…ＥＣＣコントローラ、３３…マルチプレクサ、３４…コマンドバッファ、３５…カウンタ、３６…タイマ。
【図１】
0004768374.tif 000002
【図２】
0004768374.tif 000003
【図３】
0004768374.tif 000004
【図４】
0004768374.tif 000005
【図５】
0004768374.tif 000006
【図６】
0004768374.tif 000007
【図７】
0004768374.tif 000008
【図８】
0004768374.tif 000009
【図９】
0004768374.tif 000010
【図１０】
0004768374.tif 000011
【図１１】
0004768374.tif 000012
【図１２】
0004768374.tif 000013
【図１３】
0004768374.tif 000014
【図１４】
0004768374.tif 000015
【図１５】
0004768374.tif 000016
【図１６】
0004768374.tif 000017
【図１７】
0004768374.tif 000018
【図１８】
0004768374.tif 000019
【図１９】
0004768374.tif 000020
【図２０】
0004768374.tif 000021