JP2006012360A - 半導体記憶装置 - Google Patents
半導体記憶装置 Download PDFInfo
- Publication number
- JP2006012360A JP2006012360A JP2004191447A JP2004191447A JP2006012360A JP 2006012360 A JP2006012360 A JP 2006012360A JP 2004191447 A JP2004191447 A JP 2004191447A JP 2004191447 A JP2004191447 A JP 2004191447A JP 2006012360 A JP2006012360 A JP 2006012360A
- Authority
- JP
- Japan
- Prior art keywords
- data
- burst
- read
- write
- count
- 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
Abstract
【課題】PSRAM等において、データ保持特性の劣化とアクセススピードの劣化を抑制し、バースト期間中におけるECC動作回数を最小限に減らし、消費電力を減らす。
【解決手段】ノーマルデータ部1a及びパリティデータ部1bを備えたメモリセルアレイ1と、バーストレングスをカウントするバーストカウンタ4と、バーストデータ読み出し時にはリードレイテンシ中にエラー検知訂正動作を行い、バーストデータ書き込み時の前半には、リードレイテンシ中にバーストデータ読み出し時と同様にエラー検知訂正動作を行うエラー検知訂正回路3と、バーストデータ書き込み時のリードレイテンシ経過以後、予めエラー検知訂正されたデータを書き込みデータにしたがってバーストレングスのカウント毎に順次書き換え、バーストレングスのカウント終了後に書き換え後のデータに対してエラー検知訂正動作を行わせるように制御するバースト書き込み制御回路20とを具備する。
【選択図】 図1
【解決手段】ノーマルデータ部1a及びパリティデータ部1bを備えたメモリセルアレイ1と、バーストレングスをカウントするバーストカウンタ4と、バーストデータ読み出し時にはリードレイテンシ中にエラー検知訂正動作を行い、バーストデータ書き込み時の前半には、リードレイテンシ中にバーストデータ読み出し時と同様にエラー検知訂正動作を行うエラー検知訂正回路3と、バーストデータ書き込み時のリードレイテンシ経過以後、予めエラー検知訂正されたデータを書き込みデータにしたがってバーストレングスのカウント毎に順次書き換え、バーストレングスのカウント終了後に書き換え後のデータに対してエラー検知訂正動作を行わせるように制御するバースト書き込み制御回路20とを具備する。
【選択図】 図1
Description
本発明は、誤り検査訂正(error checking and correcting :ECC)回路を備えた半導体記憶装置に関する。
半導体記憶装置の小型化、大容量化、省電力化に伴い、半導体記憶装置の中でも特に微細構造を持つメモリセルはプロセス的にも、トランジスタ特性においても信頼性の確保が難しくなっている。半導体メモリの中でSRAMは、メモリセルが複数のトランジスタ(フルCMOSタイプで6個のトランジスタ)で構成されるため、小型化、大容量化が困難である。これに対し、DRAMのメモリセルは、1個のトランジスタと1個のキャパシタで構成されるため、小型化、大容量化に向いている。
このようなDRAMの特徴を考慮して、例えば、小型の携帯電子機器において、SRAMを用いて構成されていたメモリシステムの一部を、DRAMセルを用いた擬似SRAM(Pseudo-SRAM:PSRAM)に置き換え、小型化を図ることが考えられている。通常、DRAMはロウ、カラムのアドレスをマルチプレクスするのに対し、SRAMではアドレスマルチプレクスを行わない。従って、SRAM用のインターフェースをそのまま用いるとすれば、PSRAMは、アドレスマルチプレクスせずに使うことになる。また、DRAMはデータのリフレッシュ動作を必要とすることから、PSRAMにおいても内部に自動リフレッシュ回路を内蔵させることが必要である。
PSRAMはDRAMセルを用いるために、メモリシステムの小型化、大容量化に向いている。しかし、定期的にデータをリフレッシュしなければならないので、消費電力が大きくなりやすい。このため、PSRAMにおいては、例えば、動作電圧を可能な限り下げたり、あるいはリフレッシュサイクルを可能な限り長くしたりして、省電力化の要望に応えている。
しかし、省電力化が進展するに連れ、DRAMセルのデータ保持特性の維持が厳しくなりつつあり、データ保持特性の劣化の対応が求められている。省電力化に起因したデータ保持特性の劣化は、PSRAMに特有のものではなく、通常のDRAMや、さらには、不揮発性半導体装置、例えば、EEPROMにおいても同様である。
データ保持特性の劣化を解決する装置としては、ECC回路を持つ半導体記憶装置がある。しかし、ECC回路を備えた半導体記憶装置は、省電力化に起因したデータ保持特性の劣化については解決できるものの、通常の読み出し動作及び書き込み動作に加え、ECCのための一連の動作が加わるために、アクセススピードが劣化する。小型の携帯電子機器に多用される半導体記憶装置、例えば、PSRAMは、省電力化に加え、アクセスピードの高速化も求められている。
なお、ECC回路を備えた半導体記憶装置の公知例としては、例えば、特許文献1、2がある。
特開平10−177800号公報
特開2003−59290号公報
本発明は上記事情に鑑みてなされたもので、その目的は、省電力化に起因したデータ保持特性の劣化、及びアクセススピードの劣化の双方を抑制可能であり、バースト期間中におけるECC回路の動作回数を最小限に減らし、消費電力を減らすことが可能になる半導体記憶装置を提供することにある。
本発明の半導体記憶装置の第1の形態は、通常のデータ書き込み、読み出しに用いられるノーマルデータ部、及びノーマルデータ部からの読み出しデータのエラー検知訂正のための検査データを記憶するパリティデータ部を備えたメモリセルアレイと、バーストデータ読み出し時およびバーストデータ書き込み時にそれぞれバーストレングスをカウントするバーストカウンタと、前記バーストデータ読み出し時には、前記ノーマルデータ部から読み出した読み出しデータを、前記パリティデータ部から読み出した検査データに基づいてエラー検知訂正するエラー検知訂正動作をリードレイテンシ中に行い、前記バーストデータ書き込み時には、リードレイテンシ中に前記ノーマルデータ部から読み出した読み出しデータを前記パリティデータ部から読み出した検査データに基づいてエラー検知訂正するエラー検知訂正動作を行うエラー検知訂正回路と、前記バーストデータ読み出し時には、前記エラー検知訂正された読み出しデータを前記リードレイテンシ経過以降に順次出力し、前記バーストデータ書き込み時には、入力された書き込みデータを前記エラー検知訂正回路に転送するI/Oバッファと、前記バーストデータ書き込み時のリードレイテンシ経過以後、予め前記リードレイテンシ中にエラー検知訂正されたデータを前記I/Oバッファから転送された書き込みデータにしたがって前記バーストカウンタによるバーストレングスのカウント毎に順次書き換え、書き換え後の書き込みデータに対して前記バーストカウンタによるバーストレングスの最終カウント終了後に前記エラー検知訂正回路によって検査データを生成させ、書き換え後の書き込みデータおよび前記生成された検査データを前記メモリセルアレイに書き込むように制御するバースト書き込み制御回路とを具備することを特徴とする。
また、本発明の半導体記憶装置の第2の形態は、通常のデータ書き込み、読み出しに用いられるノーマルデータ部、及びノーマルデータ部からの読み出しデータのエラー検知訂正のための検査データを記憶するパリティデータ部を備えたK個(但し、Kは2以上の自然数)のメモリセルアレイと、バーストデータ読み出し時およびバーストデータ書き込み時にそれぞれバーストレングスをカウントするバーストカウンタと、前記K個のメモリセルアレイに対応して設けられ、前記バーストデータ読み出し時には、それぞれ対応する前記ノーマルデータ部から読み出した読み出しデータを、前記パリティデータ部から読み出した検査データに基づいてエラー検知訂正するエラー検知訂正動作をリードレイテンシ中に行い、前記バーストデータ書き込み時には、リードレイテンシ中にそれぞれ対応する前記ノーマルデータ部から読み出した読み出しデータを前記パリティデータ部から読み出した検査データに基づいてエラー検知訂正するエラー検知訂正動作を行うK個のエラー検知訂正回路と、前記バーストデータ読み出し時には、前記エラー検知訂正された読み出しデータを前記リードレイテンシ経過以降に順次出力し、前記バーストデータ書き込み時には、入力された書き込みデータを前記エラー検知訂正回路に転送するI/Oバッファと、前記バーストデータ書き込み時のリードレイテンシ経過以後、予め前記リードレイテンシ中にエラー検知訂正されたデータを前記I/Oバッファから転送された書き込みデータにしたがって前記バーストカウンタによるバーストレングスのカウント毎に順次書き換え、書き換え後の書き込みデータに対して前記バーストカウンタによるバーストレングスの最終カウント終了後に前記エラー検知訂正回路によって検査データを生成させ、書き換え後の書き込みデータおよび前記生成された検査データを前記メモリセルアレイに書き込むように制御するバースト書き込み制御回路とを具備することを特徴とする。
本発明の半導体記憶装置によれば、バーストモードとECC動作が可能であり、省電力化に起因したデータ保持特性とアクセススピードの劣化を抑制し、バースト期間中におけるECC回路の動作回数を最小限に減らし、消費電力を減らすことができる。
以下、本発明の実施形態を、図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
<第1実施形態>
図1は、この発明の第1実施形態に係る同期型半導体記憶装置の一構成例を示すブロック図である。
図1は、この発明の第1実施形態に係る同期型半導体記憶装置の一構成例を示すブロック図である。
図1に示す第1実施形態に係る装置は、メモリセルMCに、DRAMセルを用いた擬似SRAM(Pseudo SRAM :PSRAM)である。第1実施形態に係る装置では、メモリセルアレイ1と、I/Oバッファ2との間に、エラー検知訂正(Error Checking and Correcting:ECC)回路3を有する。メモリセルアレイ1は、ノーマルデータ部1aと、パリティデータ部1bとを含む。ECC回路3は、エラー訂正符号として、例えば、ハミング符号(Hamming-Code)を用い、単一ビットエラー訂正(Single-Error-Correction)を行う。
第1の実施形態に係る装置は、バーストカウンタ4を持つ。バーストカウンタ4は、バーストモード時に用いられ、バーストモード時、モード設定回路5に設定されたバーストレングス(Burst Length:B.L.)分の内部アドレス(カラムアドレスに相当)を生成する。つまり、第1実施形態に係る装置は、バーストモード付PSRAMである。以下、詳細に説明する。
ノーマルデータ部1aは通常のデータ書き込み/読み出しに用いられ、ノーマルデータ部1a内のメモリセルMCには、通常のデータが記憶される。パリティデータ部1bはエラー検知訂正(Error Checking and Correcting:ECC)に用いられ、パリティデータ部1b内のメモリセルMCにはECCのための検査データ、例えば、シンドロームの奇数偶数判定のためのパリティデータが記憶される。
メモリセルアレイ1内にはワード線WL、及びビット線BLが設けられる。ワード線WLは、ノーマルデータ部1aからパリティデータ部1bまで連続して設けられ、ワード線WLとビット線BLとの交点には、メモリセルMCが設けられる。
ロウデコーダ及びワード線ドライバ6は、入力されたアドレス(ロウアドレスに相当)に基づいてワード線WLを選択駆動する。アドレスは、例えば、外部から、アドレスバリット信号/ADVに従ってロウアドレスバッファ7に入力され、ロウアドレスバッファ7を介してロウデコーダに入力される。ロウデコーダは入力された内部アドレスをデコードし、デコード結果に基づいてワード線ドライバを選択する。選択されたワード線ドライバは、これに接続されたワード線を駆動する。
ビット線BLは、センスアンプ8を介してカラムゲート9に接続される。カラムゲート9は、カラムアドレスバッファ10から出力された内部アドレスに基づいてビット線BLを選択し、選択したビット線BLをデータ線DQに接続する。これにより、ビット線BLとデータ線DQとの間でデータの授受が行われる。
データ線DQは、DQバッファ11に接続される。ECC回路3は、DQバッファ11とI/Oバッファ2との間に設けられる。
ECC回路3は、シンドロームデコード/エラー訂正回路31を備えたリード/ライトバッファ32、検査ビット生成回路33、情報ビット生成回路34、及びシンドローム生成回路35を具備する。検査ビット生成回路33は、例えば、外部からI/Oピンを介して入力される書き込みデータ(WD)に基づいて、パリティデータ部1bに書き込むための検査データを生成する。情報ビット生成回路34は、ノーマルデータ部1aから読み出された読み出しデータRDから情報データを抽出する。シンドローム生成回路35は、パリティデータ部1bから読み出された検査データPRWDと情報データとを比較し、シンドローム信号を生成する。シンドロームデコード/エラー訂正回路31は、シンドローム信号をデコードし、エラー発生の有無を、例えば、ビット毎に検知し、エラー発生を検知した場合には、そのエラーが発生したビットデータを反転させ、訂正する。エラー検知訂正については、周知の方法を用いることが可能である。本例では、エラー検知訂正として、ハミング符号(Hamming-Code)を用いた、単一ビットエラー訂正(Single-Error-Correction)を想定する。その具体的なエラー検知訂正動作の一例は、特許文献2に記載されているので、本明細書ではその詳細は省略する。簡単には、エラー発生の有無は、例えば、ハミング符号検査行列中のアドレスの論理値が“0”になるか、“1”になるかで検知される。エラーが発生したアドレスでは、例えば、論理値“1”となり、エラーが無いアドレスでは論理値“0”となる。シンドロームデコード/エラー訂正回路31は、論理値“1”となったアドレスに対応するビットデータを反転し、1ビットのエラーを訂正する。
バーストモードは、リードレイテンシ(Read Latency:R.L.)、バーストレングス、リニアシーケンスもしくはインターリーブシーケンス等、バーストモードに関わる設定情報に基づいて実行される。これら設定情報は、例えば、アドレス入力を用いて、モード設定回路5に予め設定される。
バーストモード時、装置は、例えば、外部から入力されたクロック入力CLKinから、クロックバッファ12およびクロックジェネレータ13を介して生成された内部クロックCLKに基づいて動作する。この内部クロックCLKはバーストカウンタ4、ロウデコーダ3等に供給される。
ところで、バーストレングスのカウント毎にECC回路を動作させ、カウント毎に書き込みデータ及び検査ビットを書き込むことによって、バーストデータ入力が途中で中断された場合でも、改めてECC動作を行うことなく、次の動作に移行することができる。しかし、このような動作は、ECC回路の動作回数が多いので、消費電力の面で不利である。
そこで、本実施形態においては、バーストモードでの書き込み時において、バーストレングスの最終カウント後にECC回路を動作させることによって、バースト期間中におけるECC回路の動作回数を最小限に減らし、消費電力を減らすように構成している。そのための構成として、図1中に示すように、バースト書き込み制御回路20によって、バーストカウンタ4、ロウアドレスバッファ7、カラムアドレスバッファ10を制御している。
このバースト書き込み制御回路20による制御動作は、例えば後述するように、バーストカウンタ4によるバーストレングスのカウントの最後のアドレス内容を保持させる(例えば、バーストカウンタ4の動作を停止させる)とともに、書き込み系の動作を可能状態に保持させるように制御信号のタイミングを設定するように制御するものである。
次に、第1実施形態に係る装置の動作を説明する。以下の動作は、バーストデータ読み出し及び書き込みを想定する。
(読み出し動作)
第1実施形態では、読み出し動作時、読み出したデータのECCを、設定されたリードレイテンシ中に終了させる。例えば、リードレイテンシが2クロックに設定されている場合には、アドレスバリッド信号/ADVが“L”レベルに遷移してから2クロック未満内に、例えば、下記の動作(1)〜(5)を終了させ、2クロック目に、第1回バーストデータ出力を行えるようにしておく。図2〜図10に、動作の一例を視覚化し、図11にその動作波形図を示す。
第1実施形態では、読み出し動作時、読み出したデータのECCを、設定されたリードレイテンシ中に終了させる。例えば、リードレイテンシが2クロックに設定されている場合には、アドレスバリッド信号/ADVが“L”レベルに遷移してから2クロック未満内に、例えば、下記の動作(1)〜(5)を終了させ、2クロック目に、第1回バーストデータ出力を行えるようにしておく。図2〜図10に、動作の一例を視覚化し、図11にその動作波形図を示す。
なお、本動作の一例では、リードレイテンシを2クロック、バーストレングスを4ワードとし、4ワードパラレル読み出し/1ワードシリアル出力を想定する。もちろん、リードレイテンシ及びバーストレングスは、それぞれ2クロック及び4ワードに限られるものではない。
(1)ワード線WLの選択、及びノーマルデータ部1aからのデータ(読み出しデータ:RD1〜RD4)の読み出し、パリティデータ部1bからの検査データ(PRWD)の読み出し(図2)、
(2)センスアンプ8による読み出しデータ/検査データの増幅とリストア(図3)、
(3)ビット線BLの選択、及びビット線BLからDQバッファ(データ線DQ)への読み出しデータ/検査データの授受(図4)、
(4)読み出しデータから情報ビット(INF.)を生成(図5)、
(5)検査データ及び情報ビットからシンドローム信号(SYN.)を生成、及びシンドローム信号のデコード(エラー検知)及びエラー訂正(図6)。
(2)センスアンプ8による読み出しデータ/検査データの増幅とリストア(図3)、
(3)ビット線BLの選択、及びビット線BLからDQバッファ(データ線DQ)への読み出しデータ/検査データの授受(図4)、
(4)読み出しデータから情報ビット(INF.)を生成(図5)、
(5)検査データ及び情報ビットからシンドローム信号(SYN.)を生成、及びシンドローム信号のデコード(エラー検知)及びエラー訂正(図6)。
次に、図7に示すように、リードレイテンシ経過以降に、本例では、2クロック目に、I/Oバッファ2からI/Oピンに、第1回バーストデータ出力ができるように、エラー訂正された1ワード分の読み出しデータ(RD1ECC)を、リード/ライトバッファ32からI/Oバッファ2に転送しておく。
バーストカウンタ4は、リードレイテンシ経過以降に、本例では、2クロック目から、設定されたバーストレングス分のカウントに入る。そして、カウント毎に、内部アドレスを生成し、内部アドレスを、カラムアドレスバッファ10を介して、リード/ライトバッファ32のカラムデコード回路に供給する。リード/ライトバッファ32は、カラムデコード回路に設定されたシーケンスに基づいて、カウント毎に、エラー訂正された読み出しデータを、1ワードずつ出力していく。本例では、2クロック目(図7)に、エラー訂正された読み出しデータ(RD1ECC)を出力する(第1回バーストデータ出力)。続いて、3クロック目(図8)、4クロック目(図9)、5クロック目(図10)に、それぞれ第2回バーストデータ出力、第3回バーストデータ出力、第4回バーストデータ出力を行う。これにより、設定されたバーストレングス分の、エラー訂正されたデータ(RD1ECC〜RD4ECC)が出力される。
(書き込み動作)
第1実施形態では、書き込み動作の前半、即ちリードレイテンシ中に、上記読み出し動作を行い、リード/ライトバッファ32に、エラー訂正された読み出しデータを揃えておく。例えば、リードレイテンシが2クロックに設定されている場合には、アドレスバリッド信号/ADVが“L”レベルに遷移してから2クロック未満内に、上記読み出し動作を終了させ、エラー訂正された読み出しデータをリード/ライトバッファ32に揃えておく。
第1実施形態では、書き込み動作の前半、即ちリードレイテンシ中に、上記読み出し動作を行い、リード/ライトバッファ32に、エラー訂正された読み出しデータを揃えておく。例えば、リードレイテンシが2クロックに設定されている場合には、アドレスバリッド信号/ADVが“L”レベルに遷移してから2クロック未満内に、上記読み出し動作を終了させ、エラー訂正された読み出しデータをリード/ライトバッファ32に揃えておく。
書き込み動作の後半、即ちリードレイテンシ経過以降に、エラー訂正された読み出しデータを、1ワードずつ、カウント毎に書き込みデータに書き換える。このような動作をB.L.のカウント毎に行うことにより、新しい書き込みデータが生成される。そして、B.L.のカウントの最後に、上記した新しく生成された書き込みデータから検査ビットを生成してパリティデータ部1b内のセルに書き込むとともに、書き込みデータをノーマルデータ部1a内のセルに書き込む。つまり、ECC回路を、B.L.のカウント毎に動作させずに、B.L.のカウントの最後に動作させる。図12〜図17に、動作の一例を視覚化し、図18に、その動作波形図を示す。なお、本動作の一例では、リードレイテンシを2クロック、バーストレングスを4ワードとし、かつ1ワードシリアル入力/4ワードパラレル書き込みを想定する。もちろん、リードレイテンシ及びバーストレングスは、それぞれ2クロック、及び4ワードに限られるものではない。
まず、図12に示すように、例えば、図2〜図6に示した動作により、リードレイテンシ中(本例では2クロック未満内)にエラー訂正された4ワード分の読み出しデータRD1ECC〜RD4ECCを、リード/ライトバッファ32に揃えておく。
次に、図13に示すように、書き込み動作の後半、即ちリードレイテンシ経過以降(本例では2クロック以降)に、第1回バーストデータ入力に対応した1ワード分の書き込みデータWD1を、I/Oバッファ2からリード/ライトバッファ32に入力する。さらに、バーストカウンタ4が、カウント毎に内部アドレスを生成し、カラムアドレスバッファ10を介してリード/ライトバッファ32内のカラムデコード回路に供給する。これにより、読み出しデータRD1ECCを、書き込みデータWD1に書き換える。
以下同様に、3クロック以降に、第2回バーストデータ入力に対応した1ワード分の書き込みデータWD2をリード/ライトバッファ32に入力し、読み出しデータRD2ECCを書き込みデータWD2に書き換える(図14)。
4クロック以降に、第3回バーストデータ入力に対応した1ワード分の書き込みデータWD3をリード/ライトバッファ32に入力し、読み出しデータRD3ECCを書き込みデータWD3に書き換える(図15)。
5クロック以降に、第4回バーストデータ入力に対応した1ワード分の書き込みデータWD4をリード/ライトバッファ32に入力し、読み出しデータRD4ECCを書き込みデータWD4に書き換える。この後、データWD1〜WD4をノーマルデータ部1aに書き込むとともに、データWD1〜WD4から検査ビットPRWDを生成し、検査ビットPRWDをパリティデータ部1bに書き込む(図16)。
図17は、書き込み後のデータを示す。
上記したように第1実施形態に係る装置によれば、リードレイテンシ中にECC動作を終了させるので、ECC動作を付加することによるアクセススピードの劣化を抑制することができる。また、ECC動作が付加されるので、省電力化に起因したデータ保持特性の劣化も抑制される。従って、省電力化に起因したデータ保持特性の劣化、及びアクセススピードの劣化の双方を抑制することが可能となり、低消費電力で、かつ動作が高速な半導体記憶装置を実現することができる。
また、第1実施形態では、書き込み動作時、エラー訂正された読み出しデータを、書き込み動作の前半、即ちリードレイテンシ中に、リード/ライトバッファ32に揃えておく。この後、書き込み動作の後半、即ちリードレイテンシ経過以降に、エラー訂正された読み出しデータを、1ワードずつ、カウント毎に書き込みデータに書き換える。このような動作をB.L.のカウント毎に行うことにより、新しい書き込みデータが生成される。そして、B.L.のカウントの最後に、上記した新しく生成された書き込みデータから検査ビットを生成してパリティデータ部1b内のセルに書き込むとともに、書き込みデータをノーマルデータ部1a内のセルに書き込む。つまり、ECC回路を、B.L.のカウント毎に動作させずに、B.L.のカウントの最後に動作させることにより、書き込み時のECC動作回数を最小限に抑え、消費電力を減らすことができる。
(第2実施形態)
本第2実施形態は、第1実施形態をより具体的に説明する例で、バーストレングスが4ワード、I/O数が16I/O=16ビット=1ワードのバーストモード付PSRAMの例である。
本第2実施形態は、第1実施形態をより具体的に説明する例で、バーストレングスが4ワード、I/O数が16I/O=16ビット=1ワードのバーストモード付PSRAMの例である。
図19は、この発明の第2実施形態に係るECC回路付同期型半導体記憶装置の一構成例を示すブロック図である。本第2実施形態では、仕様の一例として、読み出し時、4ワードパラレル読み出し/1ワードシリアル出力、書き込み時、1ワードシリアル入力/4ワードパラレル書き込みを想定する。ノーマルデータ部1aに対して、一度に読み書きするビット数は、64ビット(=B.L.×I/O=4ワード×16ビット)である。また、パリティデータ部1bに対して、一度に読み書きするビット数は8ビットである。ECC回路3は、第1実施形態と同様、誤り訂正符号として、例えば、ハミング符号を用い、単一ビットエラー訂正を行う。
以下、その動作の一例に基づき、第2実施形態に係る装置を詳細に説明する。
(読み出し動作)
読み出し動作時、ECC回路3は、ノーマルデータ部1aから64ビットのデータを読み出し、情報ビット生成回路34にて64ビットの読み出しデータから、8ビットの情報データを生成する。さらに、ECC回路3は、64ビットの読み出しデータに加えて、パリティデータ部1bから8ビットの検査データを読み出す。シンドローム生成回路35は、8ビットの情報データと8ビットの検査データとを比較し、8ビットのシンドローム信号を生成する。64ビットの読み出しデータは、シンドロームデコード/エラー訂正回路31において、8ビットのシンドローム信号に従って、1ビットのエラー検知及びエラー訂正が為される。第2実施形態においても、64ビットの読み出しデータのECCを、第1実施形態と同様に、設定されたリードレイテンシ中に終了させる。
読み出し動作時、ECC回路3は、ノーマルデータ部1aから64ビットのデータを読み出し、情報ビット生成回路34にて64ビットの読み出しデータから、8ビットの情報データを生成する。さらに、ECC回路3は、64ビットの読み出しデータに加えて、パリティデータ部1bから8ビットの検査データを読み出す。シンドローム生成回路35は、8ビットの情報データと8ビットの検査データとを比較し、8ビットのシンドローム信号を生成する。64ビットの読み出しデータは、シンドロームデコード/エラー訂正回路31において、8ビットのシンドローム信号に従って、1ビットのエラー検知及びエラー訂正が為される。第2実施形態においても、64ビットの読み出しデータのECCを、第1実施形態と同様に、設定されたリードレイテンシ中に終了させる。
リードレイテンシ開始以降、バーストカウンタ4は、内部アドレスを生成する。内部アドレスは、カウント毎に、カラムアドレスバッファ10を介してリード/ライトバッファ32内のカラムデコード回路に供給される。リード/ライトバッファ32は、カラムデコード回路に設定されたシーケンスに基づいて、カウント毎に、16ビットの読み出しデータを出力する。本例では、リードレイテンシ経過以降、例えば、1クロック毎に、16ビットの読み出しデータを、4回出力する。
(書き込み動作)
書き込み動作の前半、即ち設定されたリードレイテンシ中、上記読み出し動作を行い、リード/ライトバッファ32に、エラー訂正された64ビットの読み出しデータを揃えておく。
書き込み動作の前半、即ち設定されたリードレイテンシ中、上記読み出し動作を行い、リード/ライトバッファ32に、エラー訂正された64ビットの読み出しデータを揃えておく。
書き込み動作の後半、即ちリードレイテンシ経過以降、バーストカウンタ4は、カウント毎に内部アドレスを生成し、カラムアドレスバッファ10を介してリード/ライトバッファ32内のカラムデコード回路に供給する。リード/ライトバッファ32は、カラムデコード回路に設定されたシーケンスに基づいて、カウント毎に、64ビットのエラー訂正された読み出しデータを、16ビットずつ、入力された書き込みデータに書き換える。
このような動作をB.L.のカウント毎に行う(本例では4回繰り返す)ことにより、新しい書き込みデータが生成される。そして、B.L.のカウントの最後に、上記した新しく生成された書き込みデータから検査ビットを生成してパリティデータ部1b内のセルに書き込むとともに、書き込みデータをノーマルデータ部1a内のセルに書き込む。つまり、ECC回路を、B.L.のカウント毎に動作させずに、B.L.のカウントの最後に動作させることにより、書き込み時のECC動作回数を最小限に抑え、消費電力を減らすことができる。
上記した第2実施形態においても、第1実施形態と同様の効果を得ることができる。
なお、第2実施形態では、バーストレングスが4ワード、I/O数が16I/O、ノーマルデータ部1aに対して、一度に読み書き可能なビット数が64ビットを想定した。つまり、一度に読み書き可能なビット数=B.L.×I/Oの例である。
バーストレングスは、例えば、ユーザの希望に応じて、あるいはユーザ自体が任意に設定できる。このため、バーストレングスが長くなり、例えば、一度に読み書きするビット数<B.L.×I/Oとなる場合もある。以下、これに対処できる装置のいくつかの例を、第3、第4実施形態として説明する。
(第3実施形態)
第3実施形態に係る装置は、バーストレングスが長い例に関する。以下では、バーストレングスが8ワード、I/O数が1ワード=16I/O=16ビットのバーストモード付PSRAMを想定する。このPSRAMでは、8ワードパラレル読み出し/1ワードシリアル出力を想定すると、ノーマルデータ部1aに対して、一度に読み書きするビット数は128ビット(=B.L.×I/O=8ワード×16ビット)となる。これは、上記第2実施形態に係る装置の2倍である。
第3実施形態に係る装置は、バーストレングスが長い例に関する。以下では、バーストレングスが8ワード、I/O数が1ワード=16I/O=16ビットのバーストモード付PSRAMを想定する。このPSRAMでは、8ワードパラレル読み出し/1ワードシリアル出力を想定すると、ノーマルデータ部1aに対して、一度に読み書きするビット数は128ビット(=B.L.×I/O=8ワード×16ビット)となる。これは、上記第2実施形態に係る装置の2倍である。
一度に読み書きするビット数が大きい場合、通常、ECC回路3によるエラーの救済率が劣化する。さらに、エラーの救済率が劣化する上、シンドローム信号のビット数も大きくなってECC動作が複雑になり、ECCに時間を要してしまう。この結果、ECC動作を、設定されたリードレイテンシ中に終了させることが難しくなる。
第3実施形態は、一度に読み書きするビット数が大きい場合でも、エラー救済率の劣化を抑制し、かつECCに要する時間を軽減できるようにしたものである。
図20は、この発明の第3実施形態に係る同期型半導体記憶装置の一構成例を示すブロック図である。
図20に示すように、第3実施形態では、例えば第2実施形態と同規模のECC回路3を複数具備する。具体的には、第3実施形態のメモリは、一度に読み書きするビット数を、ノーマルデータ部1a=64ビット、パリティデータ部1b=8ビットとしたメモリを、2セット(上側メモリTOP/下側メモリBTM)具備している。本例のECC回路3は、第1、第2実施形態と同様に、誤り訂正符号として、例えばハミング符号を用い、単一ビットエラー訂正を行う。以下、その動作を説明する。なお、上側メモリTOPの動作、及び下側メモリBTMの動作は、それぞれ同じである。
図21は、第3実施形態の装置において、バーストレングスが8ワード、I/O数が16I/O、TOP/BTMの各ノーマルデータ部1aに対して、一度に読み書き可能なビット数がそれぞれ64ビット(合計128ビット)の場合、つまり、一度に読み書き可能なビット数=B.L.×I/Oの場合のECC動作の概要を示す。
(読み出し動作)
読み出し動作時、上側メモリTOPのECC回路3は、上側メモリTOPのノーマルデータ1aから64ビットのデータを読み出し、情報ビット生成回路34にて64ビットの読み出しデータから8ビットの情報データを生成する。さらに、上側メモリTOPのECC回路3は、64ビットの読み出しデータのほかに、上側メモリTOPのパリティデータ部1bから8ビットの検査データを読み出す。シンドローム生成回路35は、8ビットの情報データと8ビットの検査データを比較し、8ビットのシンドローム信号を生成する。64ビットの読み出しデータは、シンドロームデコード/エラー訂正回路31において8ビットのシンドローム信号に従って1ビットのエラー検知及びエラー訂正が為される。
読み出し動作時、上側メモリTOPのECC回路3は、上側メモリTOPのノーマルデータ1aから64ビットのデータを読み出し、情報ビット生成回路34にて64ビットの読み出しデータから8ビットの情報データを生成する。さらに、上側メモリTOPのECC回路3は、64ビットの読み出しデータのほかに、上側メモリTOPのパリティデータ部1bから8ビットの検査データを読み出す。シンドローム生成回路35は、8ビットの情報データと8ビットの検査データを比較し、8ビットのシンドローム信号を生成する。64ビットの読み出しデータは、シンドロームデコード/エラー訂正回路31において8ビットのシンドローム信号に従って1ビットのエラー検知及びエラー訂正が為される。
この動作を、上側メモリTOP及び下側メモリBTMで、例えば、同時に行い、上側メモリTOP及び下側メモリBTMあわせて128ビットの、エラー訂正された読み出しデータを揃える。この動作を、設定されたリードレイテンシ中に終了させる。
リードレイテンシ経過以降、バーストカウンタ4は、カウント毎に内部アドレス(バーストアドレス)を生成し、カラムアドレスバッファ10を介して上側メモリTOPのリード/ライトバッファ32内のカラムデコード回路、及び下側メモリBTMのリード/ライトバッファ32内のカラムデコード回路にそれぞれ供給する。リード/ライトバッファ32は、カラムデコード回路に設定されたシーケンスに基づいて、カウント毎に、上側メモリTOP=8ビット、下側メモリBTM=8ビット、合計16ビット(=1ワード)の読み出しデータを出力する。本例では、例えば、1クロック毎に、16ビットの読み出しデータを、合計8回出力する。
(書き込み動作)
書き込み動作の前半、即ち設定されたリードレイテンシ中、上記読み出し動作を行い、上側メモリTOPのリード/ライトバッファ32に64ビット、下側メモリBTMのリード/ライトバッファ32に64ビット、合計128ビットの、エラー訂正された読み出しデータを揃えておく。
書き込み動作の前半、即ち設定されたリードレイテンシ中、上記読み出し動作を行い、上側メモリTOPのリード/ライトバッファ32に64ビット、下側メモリBTMのリード/ライトバッファ32に64ビット、合計128ビットの、エラー訂正された読み出しデータを揃えておく。
書き込み動作の後半、即ちリードレイテンシ経過以降、バーストカウンタ4は、カウント毎に内部アドレスを生成し、カラムアドレスバッファ10を介して上側メモリTOPのリード/ライトバッファ32内のカラムデコード回路、及び下側メモリBTMのリード/ライトバッファ32内のカラムデコード回路にそれぞれ供給する。リード/ライトバッファ32は、カラムデコード回路に設定されたシーケンスに基づいて、エラー訂正された128ビットの読み出しデータを、カウント毎に、上側メモリTOP=8ビット、下側メモリBTM=8ビット、合計16ビットずつ、入力された書き込みデータに書き換える。
このような動作をB.L.のカウント毎に行う(つまり、8サイクル繰り返す)ことにより、新しく生成された内部アドレスに相当する上側メモリTOPの64ビットのデータが生成される。そして、8サイクル目(B.L.の8カウント目)に、上記した新しく生成された上側メモリTOPの64ビットのデータから8ビットの検査ビットを生成して上側メモリTOPのパリティデータ部1b内のセルに書き込むとともに、64ビットの書き込みデータを上側メモリTOPのノーマルデータ部1a内のセルに書き込む。つまり、上側メモリTOPへの書き込みに際して、上側メモリTOPのECC回路を、B.L.のカウント毎に動作させずに、B.L.のカウントの最後に動作させることにより、書き込み時のECC動作回数を最小限に抑え、消費電力を減らすことができる。
このような上側メモリTOPに対する書き込みと同様の書き込みを下側メモリBTMに対しても実施することにより、上側メモリTOPおよび下側メモリBTMに64ビットずつ、合計128ビットの書き込みが行われる。
上記した第3実施形態によれば、バーストレングスが長く、設定されたリードレイテンシ中に、ECCを終了させることが難しくなる場合でも、第1、第2実施形態と同様の効果を得ることができる。また、第3実施形態によれば、TOP/BTMそれぞれでECCを行うので、一度に読み書きするビット数が大きい場合でも、エラー救済率の劣化を抑制することができる。さらに、第3実施形態の装置によれば、バーストモードにおける書き込み時のECC動作回数を最小限に抑え、消費電力を減らすことができ、モバイル機器に搭載する場合に極めて有利である。
なお、バーストレングスは、例えば、ユーザの希望に応じて、あるいはユーザ自体が任意に設定できるので、一度に読み書き可能なビット数>B.L.×I/Oとなる場合もある。例えば、バーストレングスが4ワードになると、一度に64ビット読み書きで済むので、本例では64ビット余分になる。この場合にはTOP/BTMのECC回路3のいずれか一つのみ動作させれば良い。
(第4実施形態)
第4実施形態も、第3実施形態と同様に、バーストレングスが長い例に関する。第4実施形態では、B.L.×I/O=設定されたリードレイテンシ中にECC可能なビット数、具体的には、例えば、第2実施形態の4ワード×16=64ビットのメモリを一つのセットと考え、このセットを1チップ中に複数持たせ、ECC回路の動作をフレキシブルに変化させる。これにより、例えば、バーストレングスが長く、設定されたリードレイテンシ中にECCが終了できない場合にも対応できるようにする。
第4実施形態も、第3実施形態と同様に、バーストレングスが長い例に関する。第4実施形態では、B.L.×I/O=設定されたリードレイテンシ中にECC可能なビット数、具体的には、例えば、第2実施形態の4ワード×16=64ビットのメモリを一つのセットと考え、このセットを1チップ中に複数持たせ、ECC回路の動作をフレキシブルに変化させる。これにより、例えば、バーストレングスが長く、設定されたリードレイテンシ中にECCが終了できない場合にも対応できるようにする。
図22は、この発明の第4実施形態に係る同期型半導体記憶装置の一構成例を示すブロック図である。図22に示すように、第4実施形態では、第2実施形態と同様のメモリを、2セット持つ。詳しくは、一度に読み書きするビット数を、ノーマルデータ部1a=64ビット、パリティデータ部1b=8ビットとしたメモリを、2セット(上側メモリTOP/下側メモリBTM)持つ。本例のECC回路3は、第1〜第3実施形態と同様、誤り訂正符号として、例えば、ハミング符号を用い、単一ビットエラー訂正を行う。以下、その動作例のいくつかを説明する。
(第1の例)
第1の例では、バーストレングスが8ワード、I/O数が16I/O=16ビット=1ワードのバーストモード付PSRAMを想定する。
第1の例では、バーストレングスが8ワード、I/O数が16I/O=16ビット=1ワードのバーストモード付PSRAMを想定する。
図23は、第4実施形態の第1の例に係る装置において、バーストレングスが8ワード、I/O数が16I/O=16ビット=1ワード、TOP/BTMの各ノーマルデータ部1aに対して、一度に読み書き可能なビット数がそれぞれ64ビット(合計128ビット)の場合、つまり、一度に読み書き可能なビット数=B.L.×I/Oの場合のECC動作の概要を示す。
(読み出し動作)
読み出し動作時、上側メモリTOP、下側メモリBTMそれぞれECC回路3は、例えば、第2実施形態と同様の動作を行い、それぞれ64ビットの読み出しデータのECCを、設定されたリードレイテンシ中に終了させる。これにより、上側メモリTOP及び下側メモリBTMの双方に、合計128ビットのエラー訂正された読み出しデータが揃えられる。
読み出し動作時、上側メモリTOP、下側メモリBTMそれぞれECC回路3は、例えば、第2実施形態と同様の動作を行い、それぞれ64ビットの読み出しデータのECCを、設定されたリードレイテンシ中に終了させる。これにより、上側メモリTOP及び下側メモリBTMの双方に、合計128ビットのエラー訂正された読み出しデータが揃えられる。
リードレイテンシ経過以降、バーストカウンタ4は、カウント毎に内部アドレスを生成する。本例では、8個の内部アドレスを生成し、最初の4個の内部アドレスを、カラムアドレスバッファ10を介して上側メモリTOPのリード/ライトバッファ32内のカラムデコード回路に、カウント毎に供給する。上側メモリTOPのリード/ライトバッファ32は、カラムデコード回路に設定されたシーケンスに基づいて、カウント毎に、16ビットの読み出しデータを、合計4回出力する。この間、下側メモリBTMのECC回路3は動作しない。
次に、残り4個の内部アドレスを、カラムアドレスバッファ10を介して下側メモリBTMのリード/ライトバッファ32内のカラムデコード回路に、カウント毎に供給する。下側メモリBTMのリード/ライトバッファ32は、カラムデコード回路に設定されたシーケンスに基づいて、上側メモリTOPからの出力に続き、カウント毎に、16ビットの読み出しデータを、合計4回出力する。下側メモリBTMからデータ出力がされている間、上側メモリTOPのECC回路3は、動作しない。
このようにして、上側メモリTOP及び下側メモリBTMから、合計8回のバーストデータ出力が行われる。
(書き込み動作)
書き込み動作の前半、即ち設定されたリードレイテンシ中、上記読み出し動作を行い、上側メモリTOP及び下側メモリBTMの双方に、合計128ビットのエラー訂正された読み出しデータを揃えておく。
書き込み動作の前半、即ち設定されたリードレイテンシ中、上記読み出し動作を行い、上側メモリTOP及び下側メモリBTMの双方に、合計128ビットのエラー訂正された読み出しデータを揃えておく。
書き込み動作の後半、即ち設定されたリードレイテンシ経過以降、バーストカウンタ4は、カウント毎に内部アドレスを生成する。本例では、8個の内部アドレスを生成し、最初の4個の内部アドレスを、カラムアドレスバッファ10を介して上側メモリTOPのリード/ライトバッファ32内のカラムデコード回路に、カウント毎に供給する。
上側メモリTOPのリード/ライトバッファ32は、カラムデコード回路に設定されたシーケンスに基づいて、バーストカウンタ4のカウント毎に16ビットずつ、エラー訂正された64ビットの読み出しデータを入力された書き込みデータに書き換える。このような動作をB.L.のカウント(1回目〜4回目)毎に行う(つまり、4サイクル繰り返す)ことにより、新しく生成された内部アドレスに相当する上側メモリTOPの64ビットのデータが生成される。そして、4サイクル目(B.L.の4カウント目)に、上記した新しく生成された上側メモリTOPの64ビットのデータから8ビットの検査ビットを生成して上側メモリTOPのパリティデータ部1b内のセルに書き込むとともに、64ビットの書き込みデータを上側メモリTOPのノーマルデータ部1a内のセルに書き込む。この間、下側メモリBTMのECC回路3は動作しない。
上記したように、上側メモリTOPへの書き込みに際して、上側メモリTOPのECC回路を、B.L.のカウント毎に動作させずに、B.L.のカウントの最後に動作させることにより、書き込み時のECC動作回数を最小限に抑え、消費電力を減らすことができる。
次に、残り4個の内部アドレスを、カラムアドレスバッファ10を介して下側メモリBTMのリード/ライトバッファ32内のカラムデコード回路に、カウント毎に供給する。下側メモリBTMのリード/ライトバッファ32は、カラムデコード回路に設定されたシーケンスに基づいて、バーストカウンタ4のカウント毎に16ビットずつ、エラー訂正された64ビットの読み出しデータを入力された書き込みデータに書き換える。このような動作をB.L.のカウント(5回目〜8回目)毎に行う(つまり、4サイクル繰り返す)ことにより、新しく生成された内部アドレスに相当する下側メモリBTMの64ビットのデータが生成される。そして、4サイクル目(B.L.の8カウント目)に、上記した新しく生成された下側メモリBTMの64ビットのデータから8ビットの検査ビットを生成して下側メモリBTMのパリティデータ部1b内のセルに書き込むとともに、64ビットの書き込みデータを下側メモリBTMのノーマルデータ部1a内のセルに書き込む。
上記したように、下側メモリBTMへの書き込みに際して、下側メモリBTMのECC回路を、B.L.のカウント毎に動作させずに、B.L.のカウントの最後に動作させることにより、書き込み時のECC動作回数を最小限に抑え、消費電力を減らすことができる。
このようにして、上側メモリTOP及び下側メモリBTMに、64ビットずつ、合計128ビットの書き込みが行われる。
このような第4実施形態の第1の例においても、第3実施形態と同様に、バーストレングスが長く、設定されたリードレイテンシ中に、ECCを終了させることが難しくなる場合でも、第1、第2実施形態と同様の効果を得ることができる。また、第3実施形態と同様に、ECCをTOP/BTMそれぞれで行うので、エラー救済率の劣化も抑制できる。
なお、本第4実施形態の第1の例においても、第3実施形態と同様に、一度に読み書き可能なビット数>B.L.×I/Oとなる場合もある。例えば、バーストレングスが4ワードになった場合には、第3実施形態と同様に、TOP/BTMのECC回路3のいずれか一つのみ動作させれば良い。反対に、バーストレングスが、さらに長くなると、一度に読み書きするビット数<B.L.×I/Oとなる場合もある。以下、これに対処できる装置の一例を、第4実施形態の第2の例として説明する。
(第2の例)
第2の例では、バーストレングスが第1の例よりも長い16ワード、I/O数が16I/O=16ビット=1ワードのバーストモード付PSRAMを想定する。
第2の例では、バーストレングスが第1の例よりも長い16ワード、I/O数が16I/O=16ビット=1ワードのバーストモード付PSRAMを想定する。
図24は、第4実施形態の第2の例に係る装置において、バーストレングスが16ワード、I/O数が16I/O=16ビット=1ワード、TOP/BTMの各ノーマルデータ部1aに対して、一度に読み書き可能なビット数がそれぞれ64ビット(合計128ビット)の場合、つまり、一度に読み書き可能なビット数<B.L.×I/Oの場合のECC動作の概要を示す。
(読み出し動作)
読み出し動作時、上側メモリTOP、下側メモリBTMそれぞれECC回路3は、例えば、第2実施形態と同様の動作を行い、それぞれ64ビットの読み出しデータのECCを、設定されたリードレイテンシ中に終了させる。これにより、上側メモリTOP及び下側メモリBTMの双方に、まず、合計128ビットのエラー訂正された読み出しデータを揃える。
読み出し動作時、上側メモリTOP、下側メモリBTMそれぞれECC回路3は、例えば、第2実施形態と同様の動作を行い、それぞれ64ビットの読み出しデータのECCを、設定されたリードレイテンシ中に終了させる。これにより、上側メモリTOP及び下側メモリBTMの双方に、まず、合計128ビットのエラー訂正された読み出しデータを揃える。
リードレイテンシ経過以降、バーストカウンタ4は、カウント毎に内部アドレスを生成する。本例では、16個の内部アドレスを生成する。最初の4個の内部アドレスを、第1の例と同様に、上側メモリTOPのリード/ライトバッファ32内のカラムデコード回路に、カウント毎に供給する。上側メモリTOPのリード/ライトバッファ32は、カラムデコード回路に設定されたシーケンスに基づいて、カウント毎に、16ビットの読み出しデータを、合計4回出力する。この間、下側メモリBTMのECC回路3は動作しない。
次に、続く4個の内部アドレスを、第1の例と同様に、下側メモリBTMのリード/ライトバッファ32内のカラムデコード回路に、カウント毎に供給する。下側メモリBTMのリード/ライトバッファ32は、カラムデコード回路に設定されたシーケンスに基づいて、上側メモリTOPからの出力に続き、カウント毎に、16ビットの読み出しデータを、合計4回出力する。この間、上側メモリTOPでは、残り64ビット分のデータの読み出し、及び読み出しデータのECCを行う。これにより、上側メモリTOPに64ビットのエラー訂正された読み出しデータが揃えられる。
次に、続く4個の内部アドレスを、上側メモリTOPのリード/ライトバッファ32内のカラムデコード回路に、カウント毎に供給する。上側メモリTOPのリード/ライトバッファ32は、カラムデコード回路に設定されたシーケンスに基づいて、下側メモリBTMからの出力に続き、カウント毎に、16ビットの読み出しデータを、合計4回出力する。この間、下側メモリBTMでは、残り64ビット分のデータの読み出し、及び読み出しデータのECCを行う。これにより、下側メモリBTMに64ビットのエラー訂正された読み出しデータが揃えられる。
次に、残り4個の内部アドレスを、下側メモリBTMのリード/ライトバッファ32内のカラムデコード回路に、カウント毎に供給する。下側メモリBTMのリード/ライトバッファ32は、カラムデコード回路に設定されたシーケンスに基づいて、上側メモリTOPからの出力に続き、カウント毎に、16ビットの読み出しデータを、合計4回出力する。この間、上側メモリTOPのECC回路3は動作しない。
このようにして、上側メモリTOP及び下側メモリBTMから、合計16回のバーストデータ出力が行われる。
(書き込み動作)
書き込み動作の前半、即ち設定されたリードレイテンシ中、上記読み出し動作を行い、上側メモリTOP及び下側メモリBTMの双方に、まず、合計128ビットのエラー訂正された読み出しデータを揃えておく。
書き込み動作の前半、即ち設定されたリードレイテンシ中、上記読み出し動作を行い、上側メモリTOP及び下側メモリBTMの双方に、まず、合計128ビットのエラー訂正された読み出しデータを揃えておく。
リードレイテンシ経過以降、バーストカウンタ4は、カウント毎に内部アドレスを生成する。本例では、16個の内部アドレスを生成する。最初の4個の内部アドレスを、第1の例と同様に、上側メモリTOPのリード/ライトバッファ32内のカラムデコード回路に、カウント毎に供給する。これにより、上側メモリTOPのリード/ライトバッファ32は、エラー訂正された64ビットの読み出しデータを、カウント毎に16ビットずつ入力された書き込みデータに順次書き換える。このような動作をB.L.のカウント(1回目〜4回目)毎に行う(つまり、4サイクル繰り返す)ことにより、新しく生成された内部アドレスに相当する下側メモリBTMの64ビットのデータが生成される。そして、4サイクル目(B.L.の4カウント目)に、上記した新しく生成された上側メモリTOPの64ビットのデータから8ビットの検査ビットを生成して上側メモリTOPのパリティデータ部1b内のセルに書き込むとともに、64ビットの書き込みデータを上側メモリTOPのノーマルデータ部1a内のセルに書き込む。この間、下側メモリBTMのECC回路3は動作しない。
次に、続く4個の内部アドレスを、第1の例と同様に、下側メモリBTMのリード/ライトバッファ32内のカラムデコード回路に、カウント毎に供給する。これにより、下側メモリBTMのリード/ライトバッファ32は、エラー訂正された64ビットの読み出しデータを、カウント毎に16ビットずつ、入力された書き込みデータに順次書き換える。このような動作をB.L.のカウント(5回目〜8回目)毎に行う(つまり、4サイクル繰り返す)ことにより、新しく生成された内部アドレスに相当する下側メモリBTMの64ビットのデータが生成される。そして、4サイクル目(B.L.の8カウント目)に、上記した新しく生成された下側メモリBTMの64ビットのデータから8ビットの検査ビットを生成して下側メモリBTMのパリティデータ部1b内のセルに書き込むとともに、64ビットの書き込みデータを下側メモリBTMのノーマルデータ部1a内のセルに書き込む。この間、上側メモリTOPでは、残り64ビット分のデータの読み出し、及び読み出しデータのECCを行い、上側メモリTOPに、残り64ビットのエラー訂正された読み出しデータを揃えておく。
次に、続く4個の内部アドレスを、上側メモリTOPのリード/ライトバッファ32内のカラムデコード回路に、カウント毎に供給する。これにより、上側メモリBTMのリード/ライトバッファ32では、エラー訂正された64ビットの読み出しデータを入力された書き込みデータに、カウント毎に16ビットずつ順次書き換える。このような動作をB.L.のカウント(9回目〜12回目)毎に行う(つまり、4サイクル繰り返す)ことにより、新しく生成された内部アドレスに相当する上側メモリTOPの64ビットのデータが生成される。そして、4サイクル目(B.L.の12カウント目)に、上記した新しく生成された上側メモリTOPの64ビットのデータから8ビットの検査ビットを生成して上側メモリTOPのパリティデータ部1b内のセルに書き込むとともに、64ビットの書き込みデータを下側メモリBTMのノーマルデータ部1a内のセルに書き込む。この間、下側メモリBTMでは、残り64ビット分のデータの読み出し、及び読み出しデータのECCを行い、下側メモリBTMに、残り64ビットのエラー訂正された読み出しデータを揃えておく。
次に、残り4個の内部アドレスを、下側メモリBTMのリード/ライトバッファ32内のカラムデコード回路に、カウント毎に供給する。これにより、下側メモリBTMのリード/ライトバッファ32は、エラー訂正された64ビットの読み出しデータを、カウント毎に16ビットずつ、入力された書き込みデータに順次書き換える。このような動作をB.L.のカウント(13回目〜16回目)毎に行う(つまり、4サイクル繰り返す)ことにより、新しく生成された内部アドレスに相当する下側メモリBTMの64ビットのデータが生成される。そして、4サイクル目(B.L.の16カウント目)に、上記した新しく生成された下側メモリBTMの64ビットのデータから8ビットの検査ビットを生成して下側メモリBTMのパリティデータ部1b内のセルに書き込むとともに、64ビットの書き込みデータを下側メモリBTMのノーマルデータ部1a内のセルに書き込む。
このようにして、上側メモリTOP及び下側メモリBTMに、残り64ビットずつ、合計128ビットの書き込みが行われる。
このような第4実施形態の第2の例においても、第3実施形態と同様に、バーストレングスが長く、設定されたリードレイテンシ中に、ECCを終了させることが難しくなる場合でも、第1、第2実施形態と同様の効果を得ることができる。また、第3実施形態と同様に、ECCをTOP/BTMそれぞれで行うので、エラー救済率の劣化も抑制できる。
図24では、2度目のデータ読み出しのためのECC動作を、上側メモリTOPもしくは下側メモリBTMのバーストデータ出力/入力に要するクロック数と同じ、4クロックかけて行うように記載している。もちろん、上記ECC動作を4クロックかけて終了させるようにしても良いが、上記ECC動作の時間は自由である。例えば、上記ECC動作を、1クロックで終了させることも可能である。ただし、上記ECC動作は、2度目のバーストデータ出力、及び2度目のバーストデータ入力が開始される前に、終了されなければならない。
このような第4実施形態の第2の例によれば、複数のメモリセルアレイを有する装置において、一度に読み書き可能なビット数<B.L.×I/Oとなるような場合においても、第1〜第3実施形態、及び第4実施形態の第1の例と同様の効果を得ることができる。
なお、第2〜第4実施形態では、I/O数を16としたが、I/O数は16に限られるものではない。例えば、1以上16未満が可能であるし、16以上も可能である。つまり、I/O数をNとしたとき、Nは1以上の自然数であれば良い。
また、第3、第4実施形態では、メモリセルアレイ1の数、及びECC回路3の数をそれぞれ2個としたが、2個に限られるものではない。メモリセルアレイ1、及びECC回路の数を、Kとしたとき、Kは2以上の自然数であれば良い。
さらに、バーストレングスは2以上が可能であり、バーストレングスをMとしたとき、Mは2以上の自然数であれば良い。
一例として、K=4、M=8、N=32とした装置を説明する。
この場合、一度に読み書きするビット数は、M×N=8×32=256ビットである。Kは4であるから、ECC回路3は1個当たり、(M×N)/K=256/4=64ビットを、設定されたリードレイテンシ中にECCすれば良い。
第3実施形態に従う場合には、リードレイテンシ経過以降、ECCされた64ビット×4=256ビットのデータは、4個のECC回路3からI/Oバッファ2に対して、N/K=32/4=8ビットずつ同時に(合計32ビット)、転送されれば良い。
また、第4実施形態の第1の例に従う場合には、リードレイテンシ経過以降、ECCされた64ビット×4=256ビットのデータは、4個のECC回路3からI/Oバッファ2に対して、N=32ビットずつ別々に、転送されれば良い。
また、K=4、M=8+8、N=32で、一度に読み書き可能なビット数を超えてしまった場合には、第4実施形態の第2の例に従えば良い。つまり、リードレイテンシ経過以降、ECCされた64ビット×4=256ビットのデータを、4個のECC回路3からI/Oバッファ2に対して、N=32ビットずつ別々に転送する。
この後、不足ビットL×N=8×32ビット=256ビットのECCを、転送を終えたECC回路3から順次行い、最初の256ビットの転送に続いて順次転送すれば良い。
また、不足ビットL×N=4×32ビット=128ビットのように、一度に読み書き可能なビット数>不足ビットL×Nとなった場合には、例えば、4個のECC回路のうち、2個のECC回路3で、不足ビットのECCを行えば良い。
ところで、前述した第1〜第4実施形態に従った同期型半導体記憶装置を、データ書き込みを途中で中断し、データ読み出しを優先させるような電子機器、例えば、携帯電話等に使用した場合を考える。携帯電話等のモバイル機器では、半導体記憶装置の書き込み時のバーストカウント中に例えばチップイネーブル(CE)信号によりターミネーションされることが頻繁に生じる。この場合、バーストレングスのカウント毎にECC回路を動作させる方式では、カウント毎に書き込みデータ及び検査ビットが書き込まれているので、バーストデータ入力が途中で中断されても、改めてECC動作を行うことなく、次の動作に移行することが可能であるので、バーストカウント中にターミネーション(Termination )されたとしても問題はない。
これに対して、前述したようにバーストレングスのカウントの最後に、あるいは、所定数のカウント毎にECC動作を行う第3、第4実施形態において、データ書き替え時のバーストカウント中に/CEが“H”になってターミネーションされた場合に上記の問題を回避するためには、/CEが“H”になった以後(例えば次)のサイクルでECC回路を動作させるようにすればよい。一例として、第4実施形態に係る装置の第1の例および第2の例に対する変更例として第5実施形態の第1の例(B.L.=8の場合)および第2の例(B.L.>8の場合)を以下に説明する。
(第5実施形態)
第5実施形態に係る装置は、前述した第4実施形態に係る装置と比べて、例えば下側メモリBTMへのデータ書き替え時のバーストカウント中に/CEが“H”になってターミネーションされた場合に/CEが“H”になった後の次のサイクルでECC回路を動作させるようにした点と、バースト書き込み制御回路(図1中の20)はバーストカウンタ(図1中の4)によるバーストレングスのカウント中にターミネーションされた場合にターミネーションされた直後のサイクルでECC回路3によってECC動作を行わせるように制御する点が異なり、その他は同じである。
第5実施形態に係る装置は、前述した第4実施形態に係る装置と比べて、例えば下側メモリBTMへのデータ書き替え時のバーストカウント中に/CEが“H”になってターミネーションされた場合に/CEが“H”になった後の次のサイクルでECC回路を動作させるようにした点と、バースト書き込み制御回路(図1中の20)はバーストカウンタ(図1中の4)によるバーストレングスのカウント中にターミネーションされた場合にターミネーションされた直後のサイクルでECC回路3によってECC動作を行わせるように制御する点が異なり、その他は同じである。
図25は、第5実施形態に係る装置の第1の例(B.L.=8の場合)および第2の例(B.L.>8の場合)におけるデータ書き込み時のECC動作の概要を示す。このようにECC動作のタイミングを設定すると、バーストカウント中にターミネーションされたとしても問題はない。
ところで、前述した第3実施形態に係る装置の動作クロックが高速化する高周波での動作に際して、データ書き込み時のECC動作がタイミング的に困難になる場合に、それを回避するためには、データ書き込み時のECC動作のタイミングをずらす(例えば1サイクル遅らせる)ようにすればよい。一例として、第4実施形態に係る装置の第1の例および第2の例に対する変更例として第6実施形態の第1の例(B.L.=8の場合)および第2の例(B.L.>8の場合)を以下に説明する。
(第6実施形態)
第6実施形態に係る装置は、前述した第4実施形態に係る装置と比べて、バースト書き込み制御回路(図1中の20)はバーストカウンタ(図1中の4)によるバーストレングスのカウントの最後のアドレス内容を歩進させて保持させるとともに、書き込み系の動作を可能状態に保持させるように制御信号のタイミングを制御する(つまり、データ書き込み時のECC動作のタイミングが1サイクル遅れている)点が異なり、その他は同じである。
第6実施形態に係る装置は、前述した第4実施形態に係る装置と比べて、バースト書き込み制御回路(図1中の20)はバーストカウンタ(図1中の4)によるバーストレングスのカウントの最後のアドレス内容を歩進させて保持させるとともに、書き込み系の動作を可能状態に保持させるように制御信号のタイミングを制御する(つまり、データ書き込み時のECC動作のタイミングが1サイクル遅れている)点が異なり、その他は同じである。
図26は、第6実施形態に係る装置の第1の例(B.L.=8の場合)および第2の例(B.L.>8の場合)におけるデータ書き込み時のECC動作の概要を示す。このようにECC動作のタイミングを設定すると、サイクルタイムが短くなる高周波での動作に際してECC動作のタイミングマージンを増やすことが可能になる。
但し、図26中に示すように、第2の例(B.L.>8の場合)においては、バーストサイクルの5サイクル目に下側メモリBTMで書き替えを行っている間にバーストサイクルの1サイクル〜4サイクルのデータ読み出しおよびECC動作を行うので、9サイクル目にデータ読み出しおよびECC動作を行う時間(次サイクルの準備時間)が短くなるおそれがある。この問題を回避するためには、8カウントの各カウントで16ビットづつ(計128ビット)のデータを書き込むようにすることで、次サイクルの準備時間を十分に長くすることが対応することができる。
(第7実施形態)
第7実施形態に係る装置は、前述した第6実施形態に係る装置においてデータ書き替え時のバーストカウント中にターミネーションされた場合の問題を、前述した第5実施形態に係る装置と同様の手法により回避したものである。
第7実施形態に係る装置は、前述した第6実施形態に係る装置においてデータ書き替え時のバーストカウント中にターミネーションされた場合の問題を、前述した第5実施形態に係る装置と同様の手法により回避したものである。
第7実施形態に係る装置は、前述した第6実施形態に係る装置と比べて、例えば下側メモリBTMへのデータ書き替え時のバーストカウント中に/CEが“H”になってターミネーションされた場合に/CEが“H”になった後の次のサイクルでECC回路を動作させるようにした点が異なり、その他は同じである。
図27は、第7実施形態に係る装置の第1の例(B.L.=8の場合)および第2の例(B.L.>8の場合)におけるデータ書き込み時のECC動作の概要を示す。
以上、この発明を第1〜第7実施形態により説明したが、この発明は、これら実施形態それぞれに限定されるものではなく、その実施にあたっては、発明の要旨を逸脱しない範囲で種々に変形することが可能である。
また、上記各実施形態はそれぞれ、単独で実施することが可能であるが、適宜組み合わせて実施することも、もちろん可能である。
また、上記各実施形態には、種々の段階の発明が含まれており、各実施形態において開示した複数の構成要件の適宜な組み合わせにより、種々の段階の発明を抽出することも可能である。
また、上記各実施形態では、この発明をPSRAMに適用した例に基づき説明したが、上述したようなPSRAMを内蔵した半導体集積回路装置、例えばプロセッサ、システムLSI等もまた、この発明の範疇である。また、この発明は、PSRAMに限って適用されるものではなく、PSRAM以外の半導体記憶装置にも適用できる。
1…メモリセルアレイ、1a…ノーマルデータ部、1b…パリティデータ部、MC…メモリセル、WL…ワード線、BL…ビット線、2…I/Oバッファ、3…エラー検知訂正(ECC)回路、4…バーストカウンタ、5…モード設定回路、6…ロウデコーダ及びワード線ドライバ、7…ロウアドレスバッファ、8…センスアンプ、9…カラムゲート、10…カラムアドレスバッファ、11…DQバッファ、DQ…データ線、12…クロックバッファ、13…クロックジェネレータ、20…バースト書き込み制御回路、31…シンドロームデコード/エラー訂正回路、32…リード/ライトバッファ、33…検査ビット生成回路、34…情報ビット生成回路、35…シンドローム生成回路。
Claims (5)
- 通常のデータ書き込み、読み出しに用いられるノーマルデータ部、及びノーマルデータ部からの読み出しデータのエラー検知訂正のための検査データを記憶するパリティデータ部を備えたメモリセルアレイと、
バーストデータ読み出し時およびバーストデータ書き込み時にそれぞれバーストレングスをカウントするバーストカウンタと、
前記バーストデータ読み出し時には、前記ノーマルデータ部から読み出した読み出しデータを、前記パリティデータ部から読み出した検査データに基づいてエラー検知訂正するエラー検知訂正動作をリードレイテンシ中に行い、前記バーストデータ書き込み時には、リードレイテンシ中に前記ノーマルデータ部から読み出した読み出しデータを前記パリティデータ部から読み出した検査データに基づいてエラー検知訂正するエラー検知訂正動作を行うエラー検知訂正回路と、
前記バーストデータ読み出し時には、前記エラー検知訂正された読み出しデータを前記リードレイテンシ経過以降に順次出力し、前記バーストデータ書き込み時には、入力された書き込みデータを前記エラー検知訂正回路に転送するI/Oバッファと、
前記バーストデータ書き込み時のリードレイテンシ経過以後、予め前記リードレイテンシ中にエラー検知訂正されたデータを前記I/Oバッファから転送された書き込みデータにしたがって前記バーストカウンタによるバーストレングスのカウント毎に順次書き換え、書き換え後の書き込みデータに対して前記バーストカウンタによるバーストレングスのカウント終了後に前記エラー検知訂正回路によって検査データを生成させ、書き換え後の書き込みデータおよび前記生成された検査データを前記メモリセルアレイに書き込むように制御するバースト書き込み制御回路
とを具備することを特徴とする半導体記憶装置。 - 前記バースト書き込み制御回路は、前記バーストカウンタがバーストレングスのカウントの最後のアドレス内容を保持させ、書き込み系の動作を可能状態に保持させるように制御信号のタイミングを設定し、前記カウントの最後のサイクルで前記エラー検知訂正回路によって検査データ生成動作を行わせるように制御することを特徴とする請求項1記載の半導体記憶装置。
- 前記バースト書き込み制御回路は、前記バーストカウンタがバーストレングスのカウントの最後のアドレス内容を次のサイクルで歩進させて保持させ、書き込み系の動作を可能状態に保持させるように制御信号のタイミングを設定し、前記カウントの最後のサイクルの次のサイクルで前記エラー検知訂正回路によって検査データ生成動作を行わせるように制御することを特徴とする請求項1記載の半導体記憶装置。
- 前記バースト書き込み制御回路は、前記バーストカウンタによるバーストレングスのカウント中にターミネーションされた場合には、ターミネーションされた直後のサイクルで前記エラー検知訂正回路によって検査データ生成動作を行わせるように制御することを特徴とする請求項2または3に記載の半導体記憶装置。
- 前記バースト書き込み制御回路は、前記バーストカウンタによるカウントの内容を保持させるために、前記バーストカウンタによるカウント動作を停止させるように制御することを特徴とする請求項2または3記載の半導体記憶装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004191447A JP2006012360A (ja) | 2004-06-29 | 2004-06-29 | 半導体記憶装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004191447A JP2006012360A (ja) | 2004-06-29 | 2004-06-29 | 半導体記憶装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006012360A true JP2006012360A (ja) | 2006-01-12 |
Family
ID=35779408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004191447A Pending JP2006012360A (ja) | 2004-06-29 | 2004-06-29 | 半導体記憶装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006012360A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8370708B2 (en) | 2007-02-09 | 2013-02-05 | SK Hynix Inc. | Data error measuring circuit for semiconductor memory apparatus |
-
2004
- 2004-06-29 JP JP2004191447A patent/JP2006012360A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8370708B2 (en) | 2007-02-09 | 2013-02-05 | SK Hynix Inc. | Data error measuring circuit for semiconductor memory apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI384355B (zh) | 記憶體陣列錯誤校正裝置,系統及方法 | |
EP1815338B1 (en) | Predictive error correction code generation facilitating high-speed byte-write in a semiconductor memory | |
JP2005025827A (ja) | 半導体集積回路装置およびそのエラー検知訂正方法 | |
JP5045242B2 (ja) | 半導体メモリ、半導体メモリの動作方法およびシステム | |
US8286054B2 (en) | Semiconductor memory, operating method of semiconductor memory, and system | |
US20190324854A1 (en) | Memory device having error correction function and operating method thereof | |
US20080168331A1 (en) | Memory including error correction code circuit | |
JP2014093092A (ja) | メモリモジュール、それを含むメモリシステム、それの駆動方法 | |
TWI786707B (zh) | 用於半導體記憶體的錯誤更正寫碼與資料匯流反轉的裝置與方法 | |
US20070136645A1 (en) | Error correction devices and correction methods | |
US9083382B2 (en) | Memory with on-chip error correction | |
US8032815B2 (en) | Semiconductor memory device | |
US20230142474A1 (en) | Memory device and memory system including the same | |
JP2007066423A (ja) | 半導体集積回路装置 | |
JP4044538B2 (ja) | 半導体装置 | |
US9280418B2 (en) | Memory device implementing reduced ECC overhead | |
US11461167B2 (en) | Semiconductor devices | |
JP4050091B2 (ja) | 半導体メモリ装置 | |
US7075851B2 (en) | Semiconductor memory device inputting/outputting data and parity data in burst operation | |
JP2003059290A5 (ja) | ||
TWI689935B (zh) | 具糾錯電路的記憶體 | |
US8074153B2 (en) | Error correction devices and correction methods | |
JP2007328894A (ja) | 半導体記憶装置、および半導体記憶装置の検査方法 | |
JP2006012360A (ja) | 半導体記憶装置 | |
JP2008165879A (ja) | 半導体記憶装置 |