JP2015005316A - 半導体記憶装置 - Google Patents
半導体記憶装置 Download PDFInfo
- Publication number
- JP2015005316A JP2015005316A JP2013129548A JP2013129548A JP2015005316A JP 2015005316 A JP2015005316 A JP 2015005316A JP 2013129548 A JP2013129548 A JP 2013129548A JP 2013129548 A JP2013129548 A JP 2013129548A JP 2015005316 A JP2015005316 A JP 2015005316A
- Authority
- JP
- Japan
- Prior art keywords
- data
- page buffer
- circuit
- bus
- unit
- 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
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2216/00—Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
- G11C2216/12—Reading and writing aspects of erasable programmable read-only memories
- G11C2216/14—Circuits or methods to write a page or sector of information simultaneously into a nonvolatile memory, typically a complete row or word line in flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Read Only Memory (AREA)
Abstract
【課題】通常メモリセルまたはビット線に不良が有るページバッファを不良のないページバッファに置換する救済置換回路の規模増大を防ぎ、かつ、ECC回路へのデータ転送の高速化を図った半導体記憶装置を提供する。【解決手段】データ転送部は、通常メモリセルに接続される通常ビット線のデータをラッチするページバッファ102aと、パリティメモリセルに接続されるパリティビット線のデータをラッチするページバッファ102cと、ページバッファ102aに不良が有る場合に、置換先となるか、または、ページバッファ102cに不良が有る場合に、置換先となるページバッファ102bと、を含んで構成され、ECC Bus_1は、ページバッファ102a、及びページバッファ102bと接続され、Data Bus_1は、ページバッファ102a、ページバッファ102c、及びページバッファ102bと接続される。【選択図】図10
Description
本発明は、半導体記憶装置に関する。
従来のNAND型フラッシュメモリでは、多数回の書き換えに伴うトンネル酸化膜の劣化等に起因して、データ保持中に記憶素子(メモリセルトランジスタ)の保持特性が失われ、エラービットの発生率(エラー率)が大きくなる傾向がある。特に、NAND型フラッシュメモリでは、メモリセルの大容量化、すなわち製造プロセスにおける微細化が進むとエラー率は上昇してしまう傾向にある。そのため、記憶すべきデータに誤り訂正符号(Error Correcting Code)の冗長データ(パリティデータ)を付加してデータ列としてフラッシュメモリに書込むと共に、読み出し時には誤り訂正符号の冗長データを基にしてデータの訂正を行うことで、エラービットが発生したときのデータの補償を行っている。例えば、特許文献1には、ECC処理を行うECC回路を備えた半導体記憶装置について開示されている。
また、NAND型フラッシュメモリでは、製造直後のテストにおいて、メモリセルトランジスタに、記憶保持をできないなどのビット不良、或いはメモリセルセルトランジスタに接続されるビット線に、他のビット線との短絡(ショート)、或いはビット線の断線(オープン)といった不良が発見される場合がある。こうした場合、メモリセルトランジスタのデータを、ビット線を介してラッチし、増幅してメモリセルのデータを外部へ読み出す、或いはメモリセルへデータを書きこむページバッファと、このページバッファに接続されるビット線と、ビット線に接続されるメモリセルトランジスタとを、セットで他の不良のないセットへ置換することが行なわれている。このような置換をリダンダンシー技術と呼ぶが、特許文献1に記載の半導体記憶装置では、リダンダンシー技術を用いて不良を救済することなく、ECC処理を用いて不良ビットを救済している。しかしながら、この方法では、本来経年劣化によりデータ保持特性の失われたメモリセルトランジスタを救済するECC処理の訂正処理能力が、製造工程に起因する不良ビットの救済に費やされてしまい、ECC処理の訂正処理能力が低下してしまう。
そのため、現在では、不良ビットの救済処理と、ECC処理による誤り訂正処理は、以下に説明するように別個に行われている。
図17は、NAND型フラッシュメモリの一般的なブロック構成を示す図である。図17に示すNAND型フラッシュメモリ80では、NAND型フラッシュメモリ80の外部のナンドコントローラ90(メモリコントローラ)においてECC処理を実行する。
図17に示すNAND型フラッシュメモリ80は、Memory Array(メモリアレイ)101、ページバッファ82、Column Coding Circuit(カラムコーディング回路)83、Column Repair MUX(行置換マルチプレクサ;以下カラム置換回路と呼ぶ)84、I/O PAD(I/Oパッド)106を備えている。
また、ナンドコントローラ90は、ECC Engine(ECC回路)87、及びI/O PAD(I/Oパッド)106cを備えている。
図17は、NAND型フラッシュメモリの一般的なブロック構成を示す図である。図17に示すNAND型フラッシュメモリ80では、NAND型フラッシュメモリ80の外部のナンドコントローラ90(メモリコントローラ)においてECC処理を実行する。
図17に示すNAND型フラッシュメモリ80は、Memory Array(メモリアレイ)101、ページバッファ82、Column Coding Circuit(カラムコーディング回路)83、Column Repair MUX(行置換マルチプレクサ;以下カラム置換回路と呼ぶ)84、I/O PAD(I/Oパッド)106を備えている。
また、ナンドコントローラ90は、ECC Engine(ECC回路)87、及びI/O PAD(I/Oパッド)106cを備えている。
メモリアレイ101は、複数のメモリセルトランジスタを含んで構成される。これらの複数のメモリセルトランジスタ各々は、1ビットのデータを記憶する。メモリアレイ101において、同一のワード線に接続される複数のメモリセルトランジスタがページを構成する。1つのページにおけるメモリセルトランジスタへのデータの書き込み、及びメモリセルからのデータの読み出しは、一括して実行される。
ページバッファ82は、メモリアレイ101のページと同じ個数のデータを保持できるように構成されている。図18は、ページバッファ82を構成するページバッファユニットを説明するための図である。また、図19は、従来のページバッファユニットの内部の回路構成を示す図である。
ページバッファ82は、図18に示すページバッファユニットの複数個から構成される。ページバッファユニットは、それぞれが1本のビット線に接続され、メモリセルからビット線を介して読み出されたデータ、またはメモリセルへビット線を介して書き込むデータを保持するビット回路51_0a〜51_7aを含んで構成されている。
ページバッファ82は、図18に示すページバッファユニットの複数個から構成される。ページバッファユニットは、それぞれが1本のビット線に接続され、メモリセルからビット線を介して読み出されたデータ、またはメモリセルへビット線を介して書き込むデータを保持するビット回路51_0a〜51_7aを含んで構成されている。
MUX(マルチプレクサ)52_bは、図17に示すカラムコーディング回路83からカラムアドレス信号(Sub BL Coding)が入力され、このカラムアドレス信号(図19においてDIO<i>で示す)に基づいて、ビット回路51_0a〜ビット回路51_7aのうちいずれか一つを選択する。すなわち、マルチプレクサ52_bは、8本のビット線のうちのいずれか一本のビット線を、PB Control Circuit(PB制御回路)83_1と接続する。
PB制御回路83_1は、図17に示すカラムコーディング回路83からカラムアドレス信号(Coding;図19では選択信号Selで示す)が入力され、マルチプレクサ52_bにより選択されたビット回路を、Data Bus_1(データバス)を介して、外部回路(Peripheral Circuit)に接続する。
以上の構成により、1つのページにおけるメモリセルトランジスタ各々が、ビット線を介してページバッファ82のビット回路に接続される。そして、このうち、カラムアドレスにより選択されたビット線がデータバスに接続されて、メモリセルへのデータの書き込み、またはメモリセルからのデータの読み出しが実行される。
以上の構成により、1つのページにおけるメモリセルトランジスタ各々が、ビット線を介してページバッファ82のビット回路に接続される。そして、このうち、カラムアドレスにより選択されたビット線がデータバスに接続されて、メモリセルへのデータの書き込み、またはメモリセルからのデータの読み出しが実行される。
図17に戻って、カラムコーディング回路83は、図17において不図示のアドレス制御回路から入力されるカラムアドレスに基づいて、カラムアドレス信号(図18に示すSub BL Coding、及びCoding)を生成し、このカラムアドレス信号に対応するページバッファ82のページバッファユニットを選択する。これにより、I/Oパッド106、Data Bus_2、及びData Bus_1、ビット回路、及びビット線を介してメモリセルトランジスタへデータが書きこまれる。また、メモリセルからのデータがビット線、ビット回路、Data Bus_1、及びData Bus_2を介してI/Oパッド106の外部へ読み出される。
また、ページバッファ82は、図17に示す様に、PB(Page Buffer)_Data82a(以下、ページバッファ82aとする)と、PB_CR82b(以下、ページバッファ82bとする)から構成される。ページバッファ82aは、通常メモリセルに接続されるビット線の電位を増幅し、増幅結果をラッチするページバッファである。また、ページバッファ82bは、ページバッファ82aに接続される通常メモリセルまたはビット線に不良が有る場合に、通常メモリセル、及びビット線とともに置換されるページバッファである。すなわち、ページバッファ82aを構成するページバッファユニットの1つに不良があった場合、この不良ページバッファユニットは、ページバッファ82bを構成するページバッファユニットの1つに置換される。
カラム置換回路84は、不良ページバッファユニットを、ページバッファ82bを構成するページバッファユニットに置換する回路である。例えば、カラム置換回路84は、メモリセルトランジスタからのデータ読み出し動作において、不良ページバッファの位置を示すカラムアドレスが入力されると、カラムコーディング回路83を制御して、ページバッファ82aにおける不良ページバッファユニットの代わりにページバッファ82bにおけるページバッファユニットを選択するように制御する。これにより、選択されたページバッファユニットからのデータが、Data Bus_1、Data Bus_2、I/Oパッド106を介して外部へ読み出される。これらの不良ページバッファの位置を示すカラムアドレスは、図17に示すRepair Informationに含まれる。Repair Informationは、NAND型フラッシュメモリ80の製造後のテストにおいて、半導体検査装置(メモリテスタ)により検出され、その後、製品の出荷前に例えばメモリアレイ101のシステム用記憶領域などに記憶される。
一方、カラム置換回路84は、メモリセルトランジスタへのデータ書き込み動作において、不良ページバッファの位置を示すカラムアドレスが入力されると、カラムコーディング回路83を制御して、ページバッファ82aにおける不良ページバッファユニットの代わりにページバッファ82bにおけるページバッファユニットを選択するように制御する。これにより、I/Oパッド106から入力されるデータが、Data Bus_2、及びData Bus_1を介して、不良ページバッファユニットではなく、ページバッファ82bにおけるページバッファユニットに入力される。
一方、カラム置換回路84は、メモリセルトランジスタへのデータ書き込み動作において、不良ページバッファの位置を示すカラムアドレスが入力されると、カラムコーディング回路83を制御して、ページバッファ82aにおける不良ページバッファユニットの代わりにページバッファ82bにおけるページバッファユニットを選択するように制御する。これにより、I/Oパッド106から入力されるデータが、Data Bus_2、及びData Bus_1を介して、不良ページバッファユニットではなく、ページバッファ82bにおけるページバッファユニットに入力される。
Data Bus_1、Data Bus_2は、これらのデータの受け渡しをページバッファ82、及びI/Oパッド106の間において行なう配線であり、通常8本、或いは16本の配線から構成される。
I/Oパッド106(インターフェース部)は、ナンドコントローラ90との間で上記データの受け渡しを行なう外部端子である。
I/Oパッド106(インターフェース部)は、ナンドコントローラ90との間で上記データの受け渡しを行なう外部端子である。
また、ナンドコントローラ90におけるI/Oパッド106c(インターフェース部)は、NAND型フラッシュメモリ80との間で上記データの受け渡しを行なう外部端子である。
ECC Engine(ECC回路)87は、NAND型フラッシュメモリ80のデータ読み出し動作において、I/Oパッド106cを介して、NAND型フラッシュメモリ80から入力されるデータ(置換先のデータを含むが、データにエラーを含んでいる可能性はある)が入力される。ECC回路87は、入力されたデータを、例えば自身に記憶するパリティデータに基づいてECC処理(デコード処理)して、誤り訂正後のデータ(Clear Data)を外部に出力する。一方、NAND型フラッシュメモリ80のデータ書き込み動作において、ECC回路87は、外部から入力されるデータと、このデータを書き込む先のNAND型フラッシュメモリ80の1ページのデータとからパリティデータを生成する。ECC回路87は、パリティデータを自身に記憶するとともに、書き込みデータをI/O パッド106cを介して、NAND型フラッシュメモリ80に対して出力する。
ECC Engine(ECC回路)87は、NAND型フラッシュメモリ80のデータ読み出し動作において、I/Oパッド106cを介して、NAND型フラッシュメモリ80から入力されるデータ(置換先のデータを含むが、データにエラーを含んでいる可能性はある)が入力される。ECC回路87は、入力されたデータを、例えば自身に記憶するパリティデータに基づいてECC処理(デコード処理)して、誤り訂正後のデータ(Clear Data)を外部に出力する。一方、NAND型フラッシュメモリ80のデータ書き込み動作において、ECC回路87は、外部から入力されるデータと、このデータを書き込む先のNAND型フラッシュメモリ80の1ページのデータとからパリティデータを生成する。ECC回路87は、パリティデータを自身に記憶するとともに、書き込みデータをI/O パッド106cを介して、NAND型フラッシュメモリ80に対して出力する。
上述したように、一般的なNAND型フラッシュメモリでは、外部においてECC処理を行うため、ECC処理を行う際のデータは、カラム置換回路84を経由した後のデータ、すなわち不良カラム救済後のデータである。
しかしながら、NAND型フラッシュメモリ80では、ECC処理に際して、通常のI/Oパッド106へのバス幅でしかデータを転送できないため、ECC処理に時間を要するという問題がある。このECC処理の時間を短縮するためには、ECC処理の際はバス幅を広げるようにする構成をとることが考えられる。例えば、上記例で言えば、NAND型フラッシュメモリ80のData Bus_1、及びData Bus_2のバス幅を広げることが考えられる。
しかしながら、NAND型フラッシュメモリ80では、ECC処理に際して、通常のI/Oパッド106へのバス幅でしかデータを転送できないため、ECC処理に時間を要するという問題がある。このECC処理の時間を短縮するためには、ECC処理の際はバス幅を広げるようにする構成をとることが考えられる。例えば、上記例で言えば、NAND型フラッシュメモリ80のData Bus_1、及びData Bus_2のバス幅を広げることが考えられる。
しかしながら、例えばバス幅を2倍にすると、不良ビットの救済効率を同等とするためには、つまり、一回にカラム置換回路84に入力され、置換される不良ビットがバス幅を広げる前に比べて2倍となる可能性があるので、カラム置換回路84の規模を2倍の規模とする必要がある。また、I/Oパッド106の回路規模の増加、主に配置するパッド個数の増加も生じる。このように、バス幅を広げてECC処理を高速化しようとすると、不良ビットの救済を行なうためにチップサイズが大きくなってしまうという問題がある。
また、ECC処理を行うECC回路87を、NAND型フラッシュメモリ80の内部に備える構成にすることも考えられる。例えば、図17に示すNAND型フラッシュメモリ80とナンドコントローラ90を一体化し、I/Oパッド106、及び106cを削除し、Clear Dataを出力する部分を、I/Oパッドとする構成の半導体記憶装置が考えられる。しかしながら、この場合でも、ECC処理を高速に行うためにバス幅を広げると、上述したような、不良ビットの救済を行なうためにチップサイズが大きくなってしまうという問題が生じる。さらに、ECC回路87に入力されるデータは、不良ビット救済後のデータ、すなわち、カラム置換回路84を経由したデータであるため、カラム置換回路により不良ビット救済の処理に要する時間だけ、ECC処理の時間が長くなるという問題がある。
そこで本発明が解決しようとする課題は、通常メモリセルまたはビット線に不良が有るページバッファを不良のないページバッファに置換する救済置換回路の規模増大を防ぎ、かつ、ECC回路へのデータ転送の高速化を図った半導体記憶装置を提供することにある。
本発明の半導体記憶装置は、第1のデータバスと、前記第1のデータバスと異なる本数から構成され、前記第1のデータバスとは独立して設けられる第2のデータバスと、第1の動作モードによりメモリセルとの間でデータを転送する場合、複数のビット線のうち前記第1のデータバスと同じ本数のビット線と、前記第1のデータバスとを接続してデータを転送し、一方、第2の動作モードによりメモリセルとの間でデータを転送する場合、複数のビット線のうち前記第2のデータバスと同じ本数のビット線と、前記第2のデータバスとを接続してデータを転送するデータ転送部と、を備え、前記データ転送部は、通常メモリセルに接続される通常ビット線のデータをラッチする第1のページバッファと、パリティメモリセルに接続されるパリティビット線のデータをラッチする第2のページバッファと、前記第1のページバッファに接続される通常メモリセル或いは通常ビット線に不良が有る場合に、通常メモリセル、及び通常ビット線とともに置換され、または、前記第2のページバッファに接続されるパリティメモリセル或いはパリティビット線に不良が有る場合に、パリティメモリセル、及びパリティビット線とともに置換される、第3のページバッファと、を含んで構成され、前記第1のデータバスは、前記第1のページバッファ、及び前記第3のページバッファと接続され、前記第2のデータバスは、前記第1のページバッファ、前記第2のページバッファ、及び前記第3のページバッファと接続される、ことを特徴とする。
また、本発明の半導体記憶装置において、前記第3のページバッファは、前記第1のページバッファ、及び前記第2のページバッファのいずれか一方の置換先として置換されたかを示す識別データが予め書き込まれており、前記識別データに応じて第1のページバッファまたは前記第2のページバッファとしての動作を実行する、ことを特徴とする。
また、本発明の半導体記憶装置において、前記第1のデータバスに接続されたデータ入出力部に入力される前記第1のページバッファの出力データの誤りを、前記第2のデータバスに接続されたパリティデータ入出力部に入力される前記第2のページバッファの出力データに基づいて、訂正するECC回路と、前記第2のデータバスに接続されるとともに、前記第2の動作モードにおいて、前記第1のページバッファのうちメモリセルまたはビット線に不良があるページバッファを前記第3のページバッファに置換する救済置換回路と、を備え、前記第3のページバッファの前記識別データが前記第2のページバッファの置換先として置換されたことを示す場合、前記救済置換回路は、前記第1の動作モードにおいて、置換元である前記第2のページバッファを選択する、前記第1の動作モードにおける第1選択アドレスが入力されると、入力される前記第1選択アドレスを前記第2の動作モードにおける第2選択アドレスに変換し、当該変換後の第2選択アドレスと、置換元である前記第2のページバッファについて予め設定された第2の動作モードにおける第2選択アドレスとを比較し、比較結果が一致する場合に、置換先の前記第3のページバッファと前記第2のデータバスとを接続し、置換先の前記第3のページバッファは、前記第1の動作モードのデータ読み出し動作において、前記第1のデータバスに固定データを、前記第2のデータバスにパリティデータをそれぞれ出力し、一方、前記第1の動作モードのデータ書き込み動作において、前記第1のデータバスからのデータ書き込みを許可せず、前記第2のデータバスからのパリティデータの書き込みを許可する、ことを特徴とする。
また、本発明の半導体記憶装置において、前記第1のページバッファは、メモリセルまたはビット線に不良が有るページバッファの出力を固定されたデータとするページバッファ制御回路を有し、前記ページバッファ制御回路は、メモリセルまたはビット線に不良が有る場合、前記第1のデータバスからの書き込みを許可しないことを特徴とする。
本発明の半導体記憶装置は、第1のデータバスと、第1のデータバスと異なる本数から構成され、第1のデータバスとは独立して設けられる第2のデータバスと、を備える。また、転送部は、第1の動作モード(ECCモード)によりメモリセルとの間でデータを転送する場合、複数のビット線のうち第1のデータバスと同じ本数のビット線と、第1のデータバスとを接続してデータを転送し、一方、第2の動作モードによりメモリセルとの間でデータを転送する場合、複数のビット線のうち第2のデータバスと同じ本数のビット線とを接続してデータを転送する。
これにより、ページバッファの出力に接続されるデータバスを、第1動作モード(ECCモード)用と第2の動作モード(通常モード)用とに個別に設け、それぞれを独立して用いることができる。また、例えばECC回路を内蔵した半導体記憶装置において、更に不良カラムを置換する冗長機能を有していても、不良カラムのデータと置換先のデータとを通常データに含めて、この通常データとパリティデータとを第1の動作モードを用いてECC回路にバス幅を広げて転送し、誤り訂正する構成をとればよい。そのため、不良ビットの救済を行う回路(カラム置換回路)をECC回路とページバッファの出力との間に置く必要はなくなる。これにより、第1の動作モードにおいてバス幅を広げてECC回路へデータ転送する場合に、データがカラム置換回路を通過する必要は無くなり、カラム置換回路における処理が不要となるので、ECC処理の際のデータ転送の高速化を図ることができる。また、第2のデータバスを、従来の救済効率に応じたバス幅にしておくことができる。これにより、カラム置換回路の回路規模は増大しないので、チップサイズの増加を抑制できる。
特に、本発明の半導体記憶装置では、第2のページバッファに接続されるパリティメモリセルあるいはパリティビット線に不良がある場合、第2のページバッファの置換先を、第1のページバッファに接続される通常メモリセルあるいは通常ビット線に不良がある場合の第1のページバッファの置換先である第3のページバッファとしている。そのため、半導体記憶装置における冗長回路の規模の増大を抑制でき、チップサイズの増大を防止することができる。また、第1の動作モードにおいて、カラム置換回路により第3のページバッファから第2のページバッファへの置換を行うので、第1の動作モードにおいて第3のページバッファの置換を行うパリティ専用の不良置換機構が不要となる。そのため、半導体記憶装置における不良置換機構の規模の増大を抑制でき、チップサイズの増大を防止することができる。
以下、図面を参照して、本発明の実施の形態について説明する。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
図1は、NAND型フラッシュメモリ10のブロック構成を示す図である。図1に示すNAND型フラッシュメモリ10は、Memory Array(メモリアレイ101)、PB(Page Buffer;ページバッファ)102、Column Coding Circuit(カラムコーディング回路)103、Main Column Repair MUX(カラム救済回路)104を備えている。また、NAND型フラッシュメモリ10は、Parity CR MUX(パリティカラム置換回路)105、ECC Column Coding Circuit(ECCカラムコーディング回路)108、I/O PAD(I/Oパッド)106、及びECC Circuit(ECC回路)107を備えている。なお、図17に示すNAND型フラッシュメモリ80と同一の部分には同一の符号を付し、その説明を適宜省略する。
図1において、Data Bus_1、Data Bus_2、及びData Bus_3(第2のデータバス)は、データの受け渡しをページバッファ102とI/Oパッド106との間において行なう配線であり、以下、単にData_Busと呼ぶこともある。また、ECC Bus_1、ECC Bus_2、及びECC Bus_3(第1のデータバス)は、データの受け渡しをページバッファ82とECC回路107との間において行なう配線であり、以下、単にECC_Busと呼ぶこともある。
図1において、Data Bus_1、Data Bus_2、及びData Bus_3(第2のデータバス)は、データの受け渡しをページバッファ102とI/Oパッド106との間において行なう配線であり、以下、単にData_Busと呼ぶこともある。また、ECC Bus_1、ECC Bus_2、及びECC Bus_3(第1のデータバス)は、データの受け渡しをページバッファ82とECC回路107との間において行なう配線であり、以下、単にECC_Busと呼ぶこともある。
NAND型フラッシュメモリ10は、図17に示すNAND型フラッシュメモリ80と相違して、カラムコーディング回路83に代えて、カラムコーディング回路103、及びECCカラムコーディング回路108を有する。カラムコーディング回路103とECCカラムコーディング回路108とでは、別系統のカラムアドレス(Coding)が入力される。また、カラムコーディング回路103とECCカラムコーディング回路108とは、後述するように、ページバッファ102のPB制御回路60に選択信号Sel_Aまたは選択信号Sel_Bを出力して、ページバッファ102に直結した部分(図18に示すマルチプレクサ52_b、及びPB制御回路83_1の部分)から、ページバッファの出力を、ECC Bus_1とData Bus_1とのいずれか一方のデータバスに接続する。
特に、ECCカラムコーディング回路108は、ECC回路107からカラムアドレス(以下、カラムアドレスAddress Bとする)が入力され、不図示のアドレス制御回路からカラムコーディング回路103に入力されるカラムアドレス(以下、カラムアドレスAddress Aとする)とは独立して、PB制御回路60に対して選択信号Sel_Bを出力して、ページバッファ102の出力とECC Bus_1とを接続する。これにより、ページバッファ102の出力と、ECC Bus_1またはData Bus_1との接続におけるアドレス制御を独立して実行することができる。
また、従来のNAND型フラッシュメモリでは、ページバッファの出力(データバスを以下、区別のためIOバスとする)を、第1の動作モードと第2の動作モードとにおいて共有している。これに対して、NAND型フラッシュメモリ10では、ページバッファの出力であるIOバスを、第1の動作モードと第2の動作モードとにおいて共有することなく、独立に設けている。
これにより、ページバッファの出力からECC回路107への入力までの径路において、後述するカラム置換回路104等の高速なデータ転送に悪影響を及ぼす回路は不要となり、データ転送を高速に行うことができる。また、第2のデータバスを、従来の救済効率に応じたバス幅にしておくことができる。これにより、カラム置換回路104の回路規模は増大しないので、チップサイズの増加を抑制できる。さらに、NAND型フラッシュメモリ10を、ECC回路を内蔵しないNAND型フラッシュメモリに設計変更する場合であっても、ECCカラムコーディング回路108、パリティカラム置換回路105、ECC Bus_1〜ECC Bus_3、ECC回路107を削除すればよいので、容易に設計することができる。
ページバッファ102は、図1に示すように、PB(Page Buffer)_Data102a(以下、ページバッファ102aとする)と、PB_CR102b(以下、ページバッファ102bとする)と、PB_Parity102c(以下、ページバッファ102cとする)と、PB_PCR102d(以下、ページバッファ102dとする)とから構成される。
ページバッファ102aは、通常メモリセルに接続されるビット線の電位を増幅し、増幅結果をラッチするページバッファである。また、ページバッファ102aは、通常モード(第2の動作モード)におけるデータ読み出し時に、カラムコーディング回路103から選択信号Sel_Aが入力されると、増幅結果をデータ読み出し信号Data_Out_Aとして、Data Bus_1、Data Bus_2、及びData Bus_3(第2のデータバス)を介して、I/Oパッド106から出力する。
一方、ページバッファ102aは、ECCモード(第1の動作モード)におけるデータ読み出し時に、ECCカラムコーディング回路108から選択信号Sel_Bが入力されると、増幅結果をデータ読み出し信号Data_Out_BとしてECC Bus_1、ECC Bus_2、及びECC Bus_3(第1のデータバス)を介して、ECC回路107に対して出力する。
ページバッファ102aは、通常メモリセルに接続されるビット線の電位を増幅し、増幅結果をラッチするページバッファである。また、ページバッファ102aは、通常モード(第2の動作モード)におけるデータ読み出し時に、カラムコーディング回路103から選択信号Sel_Aが入力されると、増幅結果をデータ読み出し信号Data_Out_Aとして、Data Bus_1、Data Bus_2、及びData Bus_3(第2のデータバス)を介して、I/Oパッド106から出力する。
一方、ページバッファ102aは、ECCモード(第1の動作モード)におけるデータ読み出し時に、ECCカラムコーディング回路108から選択信号Sel_Bが入力されると、増幅結果をデータ読み出し信号Data_Out_BとしてECC Bus_1、ECC Bus_2、及びECC Bus_3(第1のデータバス)を介して、ECC回路107に対して出力する。
また、ページバッファ102aは、通常モードにおけるデータ書込み時に、カラムコーディング回路103から選択信号Sel_Aが入力されると、I/Oパッド106から入力される書き込みデータがData Bus_3、Data Bus_2、及びData Bus_1を介してデータ書き込み信号Data_In_Aとして入力される。一方、ページバッファ102aは、ECCモードにおけるデータ書き込み時に、ECCカラムコーディング回路108から選択信号Sel_Bが入力されると、ECC回路107のECC処理の結果がECC Bus_3、ECC Bus_2、及びECC Bus_1を介してデータ書き込み信号Data_In_Bとして入力される。
ページバッファ102bは、ページバッファ102aに接続される通常メモリセルまたはビット線に不良が有る場合に、通常メモリセル、及びビット線とともに置換されるページバッファである。すなわち、ページバッファ102aを構成するページバッファユニットの1つに不良があった場合、このページバッファユニットは、ページバッファ102bを構成するページバッファユニットの1つに置換される。なお、ページバッファ102bの動作は、上述したページバッファ102aと同じ動作であるので、説明を省略する。
このページバッファ102aからページバッファ102bへのページバッファユニットの置換を行なうのが、カラム置換回路104である。カラム置換回路104は、ページバッファ102aにおける不良のページバッファユニットを選択するカラムアドレス(後述する選択信号Sel_A)がカラムコーディング回路103に入力される場合、カラムコーディング回路103がページバッファ102bにおけるページバッファユニットを選択するように制御を実行する。
ページバッファ102cは、パリティメモリセル(ECC処理用のメモリセルトランジスタ。ただし、構成は通常メモリセルと同じ)に接続されるビット線の電位を増幅し、増幅結果をラッチするページバッファである。なお、パリティメモリセルが記憶するパリティデータは、通常モードでは、I/Oパッド106を介して外部に出力されない。一方、ページバッファ102cは、ECCモードにおけるデータ読み出し時に、ECCカラムコーディング回路108から選択信号Sel_Bが入力されると、増幅結果をデータ読み出し信号Data_Out_Bとして、ECC Bus_1、ECC Bus_2、及びECC Bus_3を介してECC回路107に対して出力する。
また、パリティメモリセルが記憶するパリティデータは、通常モードでは、I/Oパッド106を介して外部から入力されない。
一方、ページバッファ102cは、ECCモードにおけるデータ書き込み時に、ECCカラムコーディング回路108から選択信号Sel_Bが入力されると、ECC回路107のECC処理の結果であるパリティデータがECC Bus_3、ECC Bus_2、及びECC Bus_1を介してデータ書き込み信号Data_In_Bとして入力される。
一方、ページバッファ102cは、ECCモードにおけるデータ書き込み時に、ECCカラムコーディング回路108から選択信号Sel_Bが入力されると、ECC回路107のECC処理の結果であるパリティデータがECC Bus_3、ECC Bus_2、及びECC Bus_1を介してデータ書き込み信号Data_In_Bとして入力される。
ページバッファ102dは、ページバッファ102cに接続されるパリティメモリセルまたはビット線に不良が有る場合に、パリティメモリセル、及びビット線とともに置換されるページバッファである。すなわち、ページバッファ102cを構成するページバッファユニットの1つに不良があった場合、このページバッファユニットは、ページバッファ102dを構成するページバッファユニットの1つに置換される。なお、ページバッファ102dの動作は、上述したページバッファ102cと同じ動作であるので、説明を省略する。
このページバッファ102cからページバッファ102dへのページバッファユニットの置換を行なうのが、パリティカラム置換回路105である。パリティカラム置換回路105は、ページバッファ102cにおける不良のページバッファユニットを選択するカラムアドレス(後述する選択信号Sel_B)がECCカラムコーディング回路108に入力される場合、ECCカラムコーディング回路108がページバッファ102dにおけるページバッファユニットを選択するように制御を実行する。
これらのページバッファ102を構成するページバッファ102a〜102dは、全て同一の回路構成からなり、以下にその回路構成について、図2〜図6を用いて詳細に説明する。図2は、図1に示すページバッファ102、カラムコーディング回路103、及びECCカラムコーディング回路108に対応する部分のデータ読み出し動作を説明するための図である。また、図3は、図2に示すPB 4IO ユニットの内部の構成、及びPB ユニットの内部の構成を示す図である。また、図4は、PB ユニットの内部の回路構成を示す図である。また、図5は、PB ユニットの内部の他の回路構成を示す図である。また、図6は、図4、及び図5に示すビット内部回路50_i(i=0〜7の整数)の回路構成を示す図である。
図2を参照して、図1に示すページバッファ102、カラムコーディング回路103、及びECCカラムコーディング回路108に対応する部分は、4本分のIO線からの4つのデータをラッチし、4本分のIO線に対してデータを書き込むPB 4IO ユニットを有する。
図2においては、10個のPB 4IOとして、PB0 IO 0123(PB 4IO ユニット30_0)、PB0 IO 4567(PB 4IO ユニット30_1)、PB1IO 0123(PB 4IO ユニット30_2)、PB1 IO 4567(PB 4IO ユニット30_3)、PB2 IO 0123(PB 4IO ユニット30_4)、PB2 IO 4567(PB 4IO ユニット30_5)、PB3 IO 0123(PB 4IO ユニット30_6)、PB3 IO 4567(PB 4IO ユニット30_7)、PB4 IO 0123(PB 4IO ユニット30_8)、PB4 IO 4567(PB 4IO ユニット30_9)を示している。
ここで、IO線とは、後述するPBユニットにおいて、マルチプレクサ52_bとPB制御回路60との間に設けられる入出力線である。このIO線は、本実施形態では、マルチプレクサ52_bと8個のビット回路51_0a〜51_7aとを介して、8本のビット線のいずれか一本と電気的に接続される。すなわち、IO線は、メモリセルトランジスタに書き込むデータ或いはメモリセルトランジスタから読み出されるデータが行き来する信号線である。
図3(a)を参照して、図2に示すPB 4IO ユニットは、同一の構成を有している。図3(a)では、図2に示すPB 4IO ユニット30_0を代表として、その構成を示している。PB 4IO ユニット30_0は、4個のPBユニット30_00〜30_03から構成される。
PBユニット30_00〜30_03各々は、活性レベル(以下、例としてHレベルとする)の選択信号Sel_A<0>がカラムコーディング回路103から供給されると、自身に接続される1本のIO線とData Bus(第2のデータバス;後述するデータバスData_A<7:0>)とを接続する。これにより、図3(a)に示すように、4本のIO線からデータバスData_A<3:0>へ、4ビットのデータ読み出し信号Data_Out_A<0>〜Data_Out_A<3>が読み出される。
PBユニット30_00〜30_03各々は、活性レベル(以下、例としてHレベルとする)の選択信号Sel_A<0>がカラムコーディング回路103から供給されると、自身に接続される1本のIO線とData Bus(第2のデータバス;後述するデータバスData_A<7:0>)とを接続する。これにより、図3(a)に示すように、4本のIO線からデータバスData_A<3:0>へ、4ビットのデータ読み出し信号Data_Out_A<0>〜Data_Out_A<3>が読み出される。
また、PBユニット30_00〜30_03各々は、活性レベル(以下、例としてHレベルとする)の選択信号Sel_B<0>がECCカラムコーディング回路108から供給されると、自身に接続される1本のIO線とECC Bus(第1のデータバス;後述するデータバスData_B<19:0>)とを接続する。これにより、図3(a)に示すように、4本のIO線からデータバスData_B<3:0>へ、4ビットのデータ読み出し信号Data_Out_B<0>〜Data_Out_B<3>が読み出される。
図3(b)を参照して、図3(a)に示すPBユニット各々は、図18に示すビット回路と同一構成の8個のビット回路51_0a〜51_7aと、同じく図18に示すマルチプレクサ52_bと、本願の特徴的部分であるPB Control Cirucuit(ページバッファ制御回路)60とから構成される。
まず、図4、及び図6を参照して、1つのPBユニットの詳細な回路構成について説明する。
図6では、図4に示すビット内部回路50_0〜50_7各々の回路における、書き込み動作におけるデータのセンシング部、及びラッチ部、読み出し動作における信号線を駆動するドライバ部の構成を、具体的にトランジスタ、及びインバータ回路を用いて記載している。なお、図3(b)に示すビット回路51_0a〜51_7aとマルチプレクサ52_bとを合わせた回路が、ビット内部回路50_0〜50_7に相当する。すなわち、ビット内部回路は、選択信号DIOにより選択されるので、ビット回路とマルチプレクサ52_bの一部の機能を有している。また、この図6に示すビット内部回路は、図18に示す従来のPBユニットにおけるビット内部回路と同一の回路構成である。
まず、図4、及び図6を参照して、1つのPBユニットの詳細な回路構成について説明する。
図6では、図4に示すビット内部回路50_0〜50_7各々の回路における、書き込み動作におけるデータのセンシング部、及びラッチ部、読み出し動作における信号線を駆動するドライバ部の構成を、具体的にトランジスタ、及びインバータ回路を用いて記載している。なお、図3(b)に示すビット回路51_0a〜51_7aとマルチプレクサ52_bとを合わせた回路が、ビット内部回路50_0〜50_7に相当する。すなわち、ビット内部回路は、選択信号DIOにより選択されるので、ビット回路とマルチプレクサ52_bの一部の機能を有している。また、この図6に示すビット内部回路は、図18に示す従来のPBユニットにおけるビット内部回路と同一の回路構成である。
図6に示すように、ビット内部回路50_i(iを整数として、i=0〜7の8台は同一構成の回路である)は、インバータ回路511、インバータ回路512、トランジスタ513、トランジスタ514、トランジスタ515、トランジスタ521、及びトランジスタ522から構成される。ここで、トランジスタ513、トランジスタ514、トランジスタ515、トランジスタ521、及びトランジスタ522は、Nチャネル型MOS(Metal Oxide Semiconductor)トランジスタである。
ビット内部回路50_iにおいて、ラッチ部は、インバータ回路511とインバータ回路512とから構成されている。ここで、インバータ回路511は、出力端子が接続点N2においてインバータ回路512の入力端子に接続され、入力端子が接続点N1においてインバータ回路512の出力端子に接続されている。
この接続点N1は、不図示のメモリセルトランジスタにビット線を介して接続される。接続点N1は、読み出し動作において、メモリセルトランジスタが記憶するデータがData_iとして現れ、書き込み動作においてはメモリセルに書き込むべきデータがData_iとして現れる。例えば、メモリセルトランジスタがL(ロウ)レベル(データ0とする)を記憶するとき、Data_iの電位はLレベルとなり、一方、メモリセルトランジスタがH(ハイ)レベル(データ1とする)を記憶するとき、Data_iの電位はHレベルとなる。
この接続点N1は、不図示のメモリセルトランジスタにビット線を介して接続される。接続点N1は、読み出し動作において、メモリセルトランジスタが記憶するデータがData_iとして現れ、書き込み動作においてはメモリセルに書き込むべきデータがData_iとして現れる。例えば、メモリセルトランジスタがL(ロウ)レベル(データ0とする)を記憶するとき、Data_iの電位はLレベルとなり、一方、メモリセルトランジスタがH(ハイ)レベル(データ1とする)を記憶するとき、Data_iの電位はHレベルとなる。
ビット内部回路50_iにおいて、ドライバ部は、トランジスタ515、及びトランジスタ522から構成される。
トランジスタ522は、ドレインが読み出し信号RDの配線に接続され、ゲートが選択信号DIO<i>の配線に接続され、ソースがトランジスタ515のドレインに接続されている。
トランジスタ515は、ドレインがトランジスタ522のソースに接続され、ゲートが接続点N2に接続され、ソースが接地されている。
ここで、選択信号DIO<i>(i=0〜7)は、図3(b)に示すSub BL Codingである。例えば、カラムコーディング回路103は不図示のアドレス制御回路から入力される3ビットのアドレス信号に基づいて、或いはECCカラムコーディング回路108はECC回路107から入力される3ビットのアドレス信号に基づいて、選択信号DIO<i>のうちの1つの信号をHレベルとする。これにより、図4に示すビット内部回路50_0〜50_7の1つのビット内部回路が選択される。
トランジスタ522は、ドレインが読み出し信号RDの配線に接続され、ゲートが選択信号DIO<i>の配線に接続され、ソースがトランジスタ515のドレインに接続されている。
トランジスタ515は、ドレインがトランジスタ522のソースに接続され、ゲートが接続点N2に接続され、ソースが接地されている。
ここで、選択信号DIO<i>(i=0〜7)は、図3(b)に示すSub BL Codingである。例えば、カラムコーディング回路103は不図示のアドレス制御回路から入力される3ビットのアドレス信号に基づいて、或いはECCカラムコーディング回路108はECC回路107から入力される3ビットのアドレス信号に基づいて、選択信号DIO<i>のうちの1つの信号をHレベルとする。これにより、図4に示すビット内部回路50_0〜50_7の1つのビット内部回路が選択される。
以上の構成により、メモリセルトランジスタからのデータ読み出し動作において、選択信号DIO<i>がHレベルになると、読み出し信号RDの論理レベルはData_iの論理レベルと同じ論理レベルとなる。つまり、例えば読み出し信号RDをHレベルにプリチャージしておくことにより、Data_iがHレベルのときは、トランジスタ515がオフ(非導通状態)、トランジスタ522がオン(導通状態)であり、ビット内部回路50_iは、読み出し信号RDをHレベルに維持する。一方、Data_iがLレベルのときは、トランジスタ515がオン、トランジスタ522がオンであり、ビット内部回路50_iは、読み出し信号RDをHレベルからLレベルに変化させる。
読み出し信号RDの配線は、図4に示すように、PB制御回路60に接続される。
第1の動作モード(ECCモード)では、選択信号Sel_B(ECCカラムコーディング回路108が出力するカラムアドレス)が入力されると、読み出し信号RDの配線はECC Busに接続される。これにより、ECC Busには、ビット内部回路50_iのData_iがデータ読み出し信号Data_Out_Bとして読み出される。
読み出し信号RDの配線は、図4に示すように、PB制御回路60に接続される。
第1の動作モード(ECCモード)では、選択信号Sel_B(ECCカラムコーディング回路108が出力するカラムアドレス)が入力されると、読み出し信号RDの配線はECC Busに接続される。これにより、ECC Busには、ビット内部回路50_iのData_iがデータ読み出し信号Data_Out_Bとして読み出される。
一方、第2の動作モード(通常モード)では、選択信号Sel_A(カラムコーディング回路103が出力するカラムアドレス)が入力されると、読み出し信号RDの配線は、Data Busに接続される。これにより、Data Busには、ビット内部回路50_iのData_iがデータ読み出し信号Data_Out_Aとして読み出される。
図6に戻って、ビット内部回路50_iにおいて、センシング部は、トランジスタ513、トランジスタ514、トランジスタ521から構成される。
トランジスタ513は、ドレインが接続点N1に接続され、ゲートが書き込み信号DIの配線に接続され、ソースがトランジスタ521のドレインに接続されている。
トランジスタ514は、ドレインが接続点N2に接続され、ゲートが書き込み信号nDIの配線に接続され、ソースがトランジスタ521のドレインに接続されている。
トランジスタ521は、ドレインがトランジスタ513のソース、及びトランジスタ514のソースに接続され、ゲートが選択信号DIO<i>の配線に接続され、ソースが接地されている。
トランジスタ513は、ドレインが接続点N1に接続され、ゲートが書き込み信号DIの配線に接続され、ソースがトランジスタ521のドレインに接続されている。
トランジスタ514は、ドレインが接続点N2に接続され、ゲートが書き込み信号nDIの配線に接続され、ソースがトランジスタ521のドレインに接続されている。
トランジスタ521は、ドレインがトランジスタ513のソース、及びトランジスタ514のソースに接続され、ゲートが選択信号DIO<i>の配線に接続され、ソースが接地されている。
書き込み信号DI、及び書き込み信号nDIの配線は、図4に示すように、PB制御回路60に接続される。後述するように、第1の動作モードでは選択信号Sel_BによりデータバスECC Busに接続され、ECC Busからデータ書き込み信号Data_In_Bが入力される。これにより、PB制御回路60では、このデータ書き込み信号Data_In_Bのレベルに応じて書き込み信号DI、及び書き込み信号nDIのいずれか一方をLレベルからHレベルに変化させ、他方をLレベルに維持する。
一方、第2の動作モードでは、選択信号Sel_AによりData Busに接続され、Data Busからデータ書き込み信号Data_In_Aが入力される。これにより、PB制御回路60は、このデータ書き込み信号Data_In_Aのレベルに応じて書き込み信号DI、及び書き込み信号nDIのいずれか一方をLレベルからHレベルに変化させ、他方をLレベルに維持する。
一方、第2の動作モードでは、選択信号Sel_AによりData Busに接続され、Data Busからデータ書き込み信号Data_In_Aが入力される。これにより、PB制御回路60は、このデータ書き込み信号Data_In_Aのレベルに応じて書き込み信号DI、及び書き込み信号nDIのいずれか一方をLレベルからHレベルに変化させ、他方をLレベルに維持する。
以上の構成により、メモリセルトランジスタへのデータ書き込み動作において、選択信号DIO<i>がHレベルになると、書き込み信号DI、及び書き込み信号nDIのレベルに応じて、ビット内部回路50_iのData_iのレベルが決定する。具体的には、データ書き込み信号Data_In_A,またはデータ書き込み信号Data_In_BがLレベル(データ0)のとき、PB制御回路60は、書き込み信号DIをHレベル、書き込み信号nDIをLレベルとする。これにより、ビット内部回路50_iでは、トランジスタ513がオンし、トランジスタ514がオフする。そして、接続点N1はLレベル、接続点N2はHレベルとなり、Data_iの論理は、データバスの論理と同じくLレベル(データ0)となる。
一方、データ書き込み信号Data_In_A,またはデータ書き込み信号Data_In_BがHレベル(データ1)のとき、PB制御回路60は、書き込み信号DIをLレベル、書き込み信号nDIをHレベルとする。これにより、ビット内部回路50_iでは、トランジスタ513がオフし、トランジスタ514がオンする。そして、接続点N1はHレベル、接続点N2はLレベルとなり、Data_iの論理は、データバスの論理と同じくHレベル(データ1)となる。
図4に戻って、PB制御回路60(転送部)の構成を説明する。
PB制御回路60は、データバスからページバッファへのデータ転送を実行する書き込み部と、ページバッファからデータバスへのデータ転送を実行する読み出し部とからなる。
このうち、PB制御回路60の読み出し部は、トランジスタ61a、及びトランジスタ61bから構成される。
トランジスタ61a、及びトランジスタ61bは、NMOSトランジスタである。
トランジスタ61aは、ドレインが読み出し信号RDの配線に接続され、ゲートが選択信号Sel_Aの配線に接続され、ソースがData Bus(第2のデータバス)に接続されている。トランジスタ61bは、ドレインが読み出し信号RDの配線に接続され、ゲートが選択信号Sel_Bの配線に接続され、ソースがECC Bus(第1のデータバス)に接続されている。
PB制御回路60は、データバスからページバッファへのデータ転送を実行する書き込み部と、ページバッファからデータバスへのデータ転送を実行する読み出し部とからなる。
このうち、PB制御回路60の読み出し部は、トランジスタ61a、及びトランジスタ61bから構成される。
トランジスタ61a、及びトランジスタ61bは、NMOSトランジスタである。
トランジスタ61aは、ドレインが読み出し信号RDの配線に接続され、ゲートが選択信号Sel_Aの配線に接続され、ソースがData Bus(第2のデータバス)に接続されている。トランジスタ61bは、ドレインが読み出し信号RDの配線に接続され、ゲートが選択信号Sel_Bの配線に接続され、ソースがECC Bus(第1のデータバス)に接続されている。
ここで、選択信号Sel_Aは、カラムコーディング回路103が、図1において不図示のアドレス制御回路から入力されるAddress A、例えば複数ビットのアドレスに基づいて生成するカラムアドレス信号である。また、選択信号Sel_Bは、ECCカラムコーディング回路108が、図1に示すECC回路107から入力されるAddress B、例えば上記複数ビットのうちの一部のビットのアドレスに基づいて生成するカラムアドレス信号である。
このように、PB制御回路60の読み出し部は、ECCモード(第1の動作モード)のデータ読み出し時において、Hレベルの選択信号Sel_BがECCコーディング回路108から入力されると、トランジスタ61bをオンさせて読み出し信号RDの配線とECC Busとを接続する。これにより、ビット内部回路50_0〜50_7に格納されたメモリセルトランジスタのデータ(ビット内部回路ではData_i)が、ECC Busにデータ読み出し信号Data_Out_Bとして出力される。
また、PB制御回路60の読み出し部は、通常モード(第2の動作モード)のデータ読み出し時において、Hレベルの選択信号Sel_Aがコーディング回路103から入力されると、トランジスタ61aをオンさせて読み出し信号RDの配線とData Busとを接続する。これにより、ビット内部回路50_0〜50_7に格納されたメモリセルトランジスタのデータが、Data Busにデータ読み出し信号Data_Out_Aとして出力される。
また、PB制御回路60の読み出し部は、ページバッファ102a、及びページバッファ102cにおいて、メモリセルトランジスタ、またはメモリセルトランジスタに接続されるビット線に不良がある場合、ECCモードのデータ読み出し時において、ECC回路107に入力するデータが固定データ(この場合はデータ0に固定する)となるように、次の構成を有している。
すなわち、PB制御回路60の読み出し部は、図4に示すように、不良情報格納部90a、及びデータ固定部90bを有している。
すなわち、PB制御回路60の読み出し部は、図4に示すように、不良情報格納部90a、及びデータ固定部90bを有している。
不良情報格納部90aは、インバータ回路92、インバータ回路93、トランジスタ94、トランジスタ95、及びトランジスタ96から構成される。ここで、トランジスタ94、トランジスタ95、及びトランジスタ96は、Nチャネル型MOSトランジスタである。
不良情報格納部90aにおいて、ラッチ部は、インバータ回路92とインバータ回路93とから構成されている。ここで、インバータ回路92は、出力端子が接続点N4においてインバータ回路93の入力端子に接続され、入力端子が接続点N3においてインバータ回路93の出力端子に接続されている。
この接続点N3は、アンド回路91の第1入力端子に接続される。接続点N3は、ラッチ部が記憶するデータが、欠陥を示す欠陥信号PB_Defcetとして現れる。また、接続点N4は、ラッチ部が記憶するデータが、欠陥を示す欠陥信号nPB_Defcetとして現れる。
不良情報格納部90aにおいて、ラッチ部は、インバータ回路92とインバータ回路93とから構成されている。ここで、インバータ回路92は、出力端子が接続点N4においてインバータ回路93の入力端子に接続され、入力端子が接続点N3においてインバータ回路93の出力端子に接続されている。
この接続点N3は、アンド回路91の第1入力端子に接続される。接続点N3は、ラッチ部が記憶するデータが、欠陥を示す欠陥信号PB_Defcetとして現れる。また、接続点N4は、ラッチ部が記憶するデータが、欠陥を示す欠陥信号nPB_Defcetとして現れる。
不良情報格納部90aにおいて、センシング部は、トランジスタ94、トランジスタ95、トランジスタ96から構成される。
トランジスタ94は、ドレインが接続点N3に接続され、ゲートが不良情報信号SDIの配線に接続され、ソースがトランジスタ96のドレインに接続されている。
トランジスタ95は、ドレインが接続点N4に接続され、ゲートが不良情報信号nSDIの配線に接続され、ソースがトランジスタ96のドレインに接続されている。
トランジスタ96は、ドレインがトランジスタ94のソース、及びトランジスタ95のソースに接続され、ゲートがパワーオンリセット信号POR_Modeの配線に接続され、ソースが接地されている。
トランジスタ94は、ドレインが接続点N3に接続され、ゲートが不良情報信号SDIの配線に接続され、ソースがトランジスタ96のドレインに接続されている。
トランジスタ95は、ドレインが接続点N4に接続され、ゲートが不良情報信号nSDIの配線に接続され、ソースがトランジスタ96のドレインに接続されている。
トランジスタ96は、ドレインがトランジスタ94のソース、及びトランジスタ95のソースに接続され、ゲートがパワーオンリセット信号POR_Modeの配線に接続され、ソースが接地されている。
ここで、不良情報信号SDI、及び不良情報信号nSDIは、PB制御回路60に接続されるビット線、当該ビット線に接続されるメモリセルトランジスタに不良が有るか否かを示す信号である。これらの不良情報信号は、製造後のテストにおいて、PB制御回路60に接続されるビット線等に不良が有る場合、不良情報信号SDIがデータ0(Lレベル)、不良情報信号nSDIがデータ1(Hレベル)とされ、PB制御回路60に接続されるビット線等に不良が有る場合、不良情報信号SDIがHレベル、不良情報信号nSDIがLレベルとされる。そして、これらの不良情報信号は、テスト後の製品出荷前において、PB制御回路60の位置を示す選択信号Sel_Bに関連付けられて、NAND型フラッシュメモリ10の例えばシステム用記憶領域に格納される。
また、パワーオンリセット信号POR_Modeは、NAND型フラッシュメモリ10の電源投入後の所定期間(不良情報信号をシステム用記憶領域からPB制御回路60に転送する期間)、Hレベルを維持する信号である。
また、パワーオンリセット信号POR_Modeは、NAND型フラッシュメモリ10の電源投入後の所定期間(不良情報信号をシステム用記憶領域からPB制御回路60に転送する期間)、Hレベルを維持する信号である。
以上の構成により、不良情報格納部90aは、NAND型フラッシュメモリ10の電源投入後に、PB制御回路60に接続されるビット線等に不良が有る場合、パワーオンリセット信号POR_ModeがHレベルとなることにより、トランジスタ94がオフ、トランジスタ95がオンする。これにより、ノードN3がHレベル、ノードN4がLレベルとなり、欠陥信号PB_DefcetがHレベルとなる。そして、不良情報格納部90aは、転送期間終了後、パワーオンリセット信号POR_ModeがLレベルとなることにより、以降のNAND型フラッシュメモリ10に電源が投入されている期間、欠陥信号PB_DefcetをHレベルに維持する。
また、不良情報格納部90aは、NAND型フラッシュメモリ10の電源投入後に、PB制御回路60に接続されるビット線等に不良がない場合、パワーオンリセット信号POR_ModeがHレベルとなることにより、トランジスタ94がオン、トランジスタ95がオフする。これにより、ノードN3がLレベル、ノードN4がHレベルとなり、欠陥信号PB_DefcetがLレベルとなる。そして、不良情報格納部90aは、転送期間終了後、パワーオンリセット信号POR_ModeがLレベルとなることにより、以降のNAND型フラッシュメモリ10に電源が投入されている期間、欠陥信号PB_DefcetをLレベルに維持する。
また、データ固定部90bは、アンド回路91、トランジスタ61cを有している。ここで、トランジスタ61cは、NMOSトランジスタである。
アンド回路91は、2入力1出力の論理積回路であり、第1入力端子が接続点N3に接続され、第2入力端子が選択信号Sel_Aの配線に接続され、出力端子は、トランジスタ61cのゲートに接続される。
トランジスタ61cは、ドレインが読み出し信号RDの配線に接続され、ゲートがアンド回路91の出力端子に接続され、ソースが接地されている。
アンド回路91は、2入力1出力の論理積回路であり、第1入力端子が接続点N3に接続され、第2入力端子が選択信号Sel_Aの配線に接続され、出力端子は、トランジスタ61cのゲートに接続される。
トランジスタ61cは、ドレインが読み出し信号RDの配線に接続され、ゲートがアンド回路91の出力端子に接続され、ソースが接地されている。
以上の構成により、PB制御回路60に接続されるビット線等に不良がない場合、データ固定部90bは、欠陥信号PB_DefcetがLレベルであるから、アンド回路91の出力信号は常にLレベルであり、トランジスタ61cはオフする。このため、データ固定部90bは実質何の動作も行わない。
一方、PB制御回路60に接続されるビット線等に不良が有る場合、欠陥信号PB_DefcetがHレベルとなっている。ECC使用時、すなわちECCモードではアンド回路91にHレベルの選択信号Sel_Bが入力されると、アンド回路91の出力信号がHレベルとなり、トランジスタ61cがオンするので、ECC Bus_1は接地され、データ読み出し信号Data_Out_BはLレベル(GNDレベル)に固定される。つまり、PB制御回路60に接続されるビット線等に不良がある場合、ECCモードではPB制御回路は、ECC Bus_1に固定レベル(Lレベル)のデータ読み出し信号Data_Out_Bを出力するデータ固定回路として動作する。
一方、PB制御回路60に接続されるビット線等に不良が有る場合、欠陥信号PB_DefcetがHレベルとなっている。ECC使用時、すなわちECCモードではアンド回路91にHレベルの選択信号Sel_Bが入力されると、アンド回路91の出力信号がHレベルとなり、トランジスタ61cがオンするので、ECC Bus_1は接地され、データ読み出し信号Data_Out_BはLレベル(GNDレベル)に固定される。つまり、PB制御回路60に接続されるビット線等に不良がある場合、ECCモードではPB制御回路は、ECC Bus_1に固定レベル(Lレベル)のデータ読み出し信号Data_Out_Bを出力するデータ固定回路として動作する。
なお、通常モードでのデータ読み出し時は、PB制御回路60は選択信号Sel_Aで選択されるので、アンド回路91の出力はLレベルとなり、この追加回路であるデータ固定部90bは実質動作しないことになる。もっとも、このアンド回路91を使用せず、欠陥信号PB_Defectを直接トランジスタ61cのゲートに入力すれば、PB制御回路60に接続されるビット線等に不良が有る場合、読み出し信号RDはLレベルに固定される。つまり、PB制御回路60は、通常モードで選択信号Sel_Aが入力されると、Data Bus_1に固定レベル(Lレベル)のデータ読み出し信号Data_Out_Aを出力し、ECCモードで選択信号Sel_Bが入力されると、Lレベルのデータ読み出し信号Data_Out_Bを出力するデータ固定回路として動作する。
なお、図4に示す不良情報格納部90a、及びデータ固定部90bの構成は、図5に示す構成であってもよい。図5は、PB ユニットの内部の他の回路構成を示す図である。
なお、図5において図4と同一の部分には同一の符号を付し、その説明を省略する。
図5において、不良情報格納部90aついては図4に示すものと同じ構成だが、データ固定部90bについては、データ固定部90b’としている。なお、不良情報格納部90aついて、接続点N4に現れる信号を欠陥信号nPB_Defectとしている。
データ固定部90b’は、トランジスタ61cのみから構成される。トランジスタ61cは、ソースがECC Bus(第1のデータバス)に接続されている。また、これにより、トランジスタ61bは、ドレインが読み出し信号RDの配線に接続され、ゲートが選択信号Sel_Bの配線に接続され、ソースがトランジスタ61cのドレインに接続されている。
なお、図5において図4と同一の部分には同一の符号を付し、その説明を省略する。
図5において、不良情報格納部90aついては図4に示すものと同じ構成だが、データ固定部90bについては、データ固定部90b’としている。なお、不良情報格納部90aついて、接続点N4に現れる信号を欠陥信号nPB_Defectとしている。
データ固定部90b’は、トランジスタ61cのみから構成される。トランジスタ61cは、ソースがECC Bus(第1のデータバス)に接続されている。また、これにより、トランジスタ61bは、ドレインが読み出し信号RDの配線に接続され、ゲートが選択信号Sel_Bの配線に接続され、ソースがトランジスタ61cのドレインに接続されている。
この構成により、PB制御回路60に接続されるビット線等に不良が有る場合、欠陥信号nPB_DefectがLレベルとなるので、トランジスタ61cがオフとなり、読み出し信号RDのECC Bus_1への伝送パスが断たれることになる。このため、データ読み出し信号Data_Out_Bは、Pull Up回路によりHレベルに固定される。一方、PB制御回路60に接続されるビット線等に不良がない場合、欠陥信号nPB_DefectはHレベルとなり、トランジスタ61cが常時オンとなる。これにより、読み出し信号RD、つまりメモリセルトランジスタのデータを、ECC Bus_1へデータ読み出し信号Data_Out_Bとして読み出すことができる。
データ固定部90b’は、図5に示すデータ固定部90bと比較して、読み出し信号RDの配線とECC Bus_1との間で、トランジスタ61bとトランジスタ61cとが
直列回路となるが、アンド回路を不要とできるメリットがある。
データ固定部90b’は、図5に示すデータ固定部90bと比較して、読み出し信号RDの配線とECC Bus_1との間で、トランジスタ61bとトランジスタ61cとが
直列回路となるが、アンド回路を不要とできるメリットがある。
また、図5に示すデータ固定部90b’において、例えばトランジスタ61cを、読み出し信号RDの配線とトランジスタ61a、及びトランジスタ61bのドレインとの間、すなわち読み出し信号RDの配線とPB制御回路60との間に挿入すれば、PB制御回路60は、通常モードで選択信号Sel_Aが入力されると、Data Bus_1に固定レベル(Hレベル)のデータ読み出し信号Data_Out_Aを出力し、ECCモードで選択信号Sel_Bが入力されると、Hレベルのデータ読み出し信号Data_Out_Bを出力するデータ固定回路として動作する。
以上のような回路構成により、PB制御回路60に接続されるビット線等に不良が有る場合、データData_Out_AまたはデータData_Out_BをLレベルまたはHレベルの固定値とすることができる。
以上のような回路構成により、PB制御回路60に接続されるビット線等に不良が有る場合、データData_Out_AまたはデータData_Out_BをLレベルまたはHレベルの固定値とすることができる。
図4に戻って、PB制御回路60の書き込み部は、インバータ回路62、インバータ回路63、ナンド回路64、ナンド回路65、オア回路66、インバータ回路67、アンド回路71、スイッチ68、及びスイッチ69から構成される。
インバータ回路62は、論理反転回路であり、出力端子が書き込み信号DIの配線に接続され、入力端子がナンド回路64の出力端子に接続される。インバータ回路63は、論理反転回路であり、出力端子が書き込み信号nDIの配線に接続され、入力端子がナンド回路65の出力端子に接続される。
インバータ回路62は、論理反転回路であり、出力端子が書き込み信号DIの配線に接続され、入力端子がナンド回路64の出力端子に接続される。インバータ回路63は、論理反転回路であり、出力端子が書き込み信号nDIの配線に接続され、入力端子がナンド回路65の出力端子に接続される。
ナンド回路64は、3入力1出力の否定的論理積回路であり、第1入力端子が書き込みイネーブル信号fDinEnableの配線に接続され、第2入力端子がオア回路66の出力端子に接続され、第3入力端子がインバータ回路67の出力端子に接続される。また、ナンド回路64の出力端子は、インバータ回路62の入力端子に接続される。
ナンド回路65は、3入力1出力の否定的論理積回路であり、第1入力端子が書き込みイネーブル信号fDinEnableの配線に接続され、第2入力端子がオア回路66の出力端子に接続され、第3入力端子がスイッチ68の第1入出力端子、及びスイッチ69の第1入出力端子に接続される。また、ナンド回路65の出力端子は、インバータ回路63の入力端子に接続される。
ナンド回路65は、3入力1出力の否定的論理積回路であり、第1入力端子が書き込みイネーブル信号fDinEnableの配線に接続され、第2入力端子がオア回路66の出力端子に接続され、第3入力端子がスイッチ68の第1入出力端子、及びスイッチ69の第1入出力端子に接続される。また、ナンド回路65の出力端子は、インバータ回路63の入力端子に接続される。
オア回路66は、2入力1出力の論理和回路であり、第1入力端子がアンド回路71の出力に接続され、第2入力端子が選択信号Sel_Aの配線に接続される。また、オア回路66の出力端子は、ナンド回路64の第2入力端子、及びナンド回路65の第2入力端子に接続される。アンド回路71は、選択信号Sel_Bと欠陥信号nPB_Defectとの論理積を演算する。これにより、欠陥信号nPB_DefectがHレベルの場合(不良でない場合)は、選択信号Sel_BがHレベルになることにより、ナンド回路65の第2入力端子がHレベルとなり、書き込みの条件の1つを満たすことができる。一方、欠陥信号nPB_DefectがLレベルの場合(不良ページバッファである)は選択信号Sel_Bの動作モードにおいて、ナンド回路65の第2入力端子がHレベルになることはなく、書き込みが行われなくなる。
インバータ回路67は、論理反転回路であり、入力端子がスイッチ68の第1入出力端子、及びスイッチ69の第1入出力端子に接続され、出力端子がナンド回路64の第3入力端子に接続される。
インバータ回路67は、論理反転回路であり、入力端子がスイッチ68の第1入出力端子、及びスイッチ69の第1入出力端子に接続され、出力端子がナンド回路64の第3入力端子に接続される。
スイッチ68は、双方向に信号を伝達するスイッチであり、第1入出力端子がインバータ回路67の入力端子、及びナンド回路65の第3入力端子に接続され、第2入出力端子がData Busに接続される。
スイッチ69は、双方向に信号を伝達するスイッチであり、第1入出力端子がインバータ回路67の入力端子、及びナンド回路65の第3入力端子に接続され、第2入出力端子がECC Busに接続される。なお、上記双方向スイッチがどちらも非選択の場合にインバータ回路67の入力が不定にならないように、インバータ回路67の入力がPMOSトランジスタによりPull Up(プルアップ)処理される。
スイッチ69は、双方向に信号を伝達するスイッチであり、第1入出力端子がインバータ回路67の入力端子、及びナンド回路65の第3入力端子に接続され、第2入出力端子がECC Busに接続される。なお、上記双方向スイッチがどちらも非選択の場合にインバータ回路67の入力が不定にならないように、インバータ回路67の入力がPMOSトランジスタによりPull Up(プルアップ)処理される。
以上の構成により、PB制御回路60の書き込み部は、ECCモード(第1の動作モード)のデータ書き込み時において、書き込みイネーブル信号fDinEnableがHレベルに、選択信号Sel_BがHレベルになると、スイッチ69がオンし、ECC Busから入力されるデータ書き込み信号Data_In_Bのレベルに応じて、書き込み信号DI、及び書き込み信号nDIのいずれか一方をLレベルからHレベルに変化させる。具体的には、データ書き込み信号Data_In_BがLレベル(データ0)のとき、書き込み信号DIをHレベルに変化させる。これにより、ビット内部回路50_0〜50_7のうち、いずれか1つのビット内部回路のData_iが、Lレベルになり、その後のプログラム処理により、メモリセルトランジスタにデータ0が書き込まれる。
一方、データ書き込み信号Data_In_BがHレベル(データ1)のとき、書き込み信号nDIをHレベルに変化させる。これにより、ビット内部回路50_0〜50_7のうち、いずれか1つのビット内部回路のData_iが、Hレベルになり、その後のプログラム処理により、メモリセルトランジスタにデータ1が書き込まれる。
また、PB制御回路60の書き込み部は、通常モード(第2の動作モード)のデータ書き込み時において、書き込みイネーブル信号fDinEnableがHレベルに、選択信号Sel_AがHレベルになると、スイッチ68がオンし、Data Busから入力されるデータ書き込み信号Data_In_Aのレベルに応じて、書き込み信号DI、及び書き込み信号nDIのいずれか一方をLレベルからHレベルに変化させる。具体的には、データ書き込み信号Data_In_AがLレベル(データ0)のとき、書き込み信号DIをHレベルに変化させる。これにより、ビット内部回路50_0〜50_7のうち、いずれか1つのビット内部回路のData_iが、Lレベルになり、その後のプログラム処理により、メモリセルトランジスタにデータ0が書き込まれる。
一方、データ書き込み信号Data_In_AがHレベル(データ1)のとき、書き込み信号nDIをHレベルに変化させる。これにより、ビット内部回路50_0〜50_7のうち、いずれか1つのビット内部回路のData_iが、Hレベルになり、その後のプログラム処理により、メモリセルトランジスタにデータ1が書き込まれる。
このように、PB制御回路60は、ページバッファ102のPBユニットを構成するビット内部回路50_0〜50_7のうち、選択信号DIO<i>により選択されたビット内部回路にビット線を介して接続されるメモリセルトランジスタと、データバス(第1のデータバス、および第2のデータバス)との間のデータ転送を制御する回路である。
また、上述した読み出し信号RDの配線、書き込み信号DIの配線、及び書き込み信号nDIの配線(IO線)は、PBユニットを構成するビット内部回路50_0〜50_7とPB制御回路60とを接続する配線であり、これらの配線はPBユニットのデータ転送用の入出力配線である。従って、本実施形態において、PB制御回路60は、ページバッファ102の入出力部と、第1、及び第2のデータバス(ECC Bus、Data Bus)との間で、書き込みデータ、及び読み出しデータを転送する。
図3(a)に戻って、以上のPB制御回路60の構成により、PB 4IOユニット30_0は次に説明する動作を実行する。
PB 4IO ユニット30_0は、Hレベルの選択信号Sel_A<0>がカラムコーディング回路103から入力されると、4本分のページバッファの入出力線(図4に示すデータ読み出し線RD;IO線IO_0〜IO_3とする)を、4ビット分のData Bus(ここではデータバスData_A<3:0>とする)にそれぞれ接続する。これにより、PB 4IO ユニット30_0は、データバスData_A<3:0>にデータ読み出し信号Data_Out_A<0>〜A<3>(以下、データ読み出し信号Data_Out_A<3:0>とする)を出力する。
PB 4IO ユニット30_0は、Hレベルの選択信号Sel_A<0>がカラムコーディング回路103から入力されると、4本分のページバッファの入出力線(図4に示すデータ読み出し線RD;IO線IO_0〜IO_3とする)を、4ビット分のData Bus(ここではデータバスData_A<3:0>とする)にそれぞれ接続する。これにより、PB 4IO ユニット30_0は、データバスData_A<3:0>にデータ読み出し信号Data_Out_A<0>〜A<3>(以下、データ読み出し信号Data_Out_A<3:0>とする)を出力する。
また、PB 4IO ユニット30_0は、Hレベルの選択信号Sel_B<0>がECCカラムコーディング回路108から入力されると、4本分のページバッファの入出力線IO線IO_0〜IO_3を、4ビット分のECC Bus(ここでは、データバスData_B<3:0>とする)にそれぞれ接続する。これにより、PB 4IO ユニット30_0は、データバスData_B<3:0>にデータ読み出し信号Data_Out_B<0>〜B<3>(以下、データ読み出し信号Data_Out_B<3:0>とする)を出力する。
図2に戻って、以上のPB 4IOユニット30_0の構成により、図2に示すデータ読み出し動作において、ページバッファ102、及びカラムコーディング回路103、及びECCカラムコーディング回路108(ここでは、データ読み出しモデルとする)は、次に説明する動作を実行する。
なお、図2に示すPB 4IOユニット30_1〜30_9に接続されるページバッファの入出力線(図4、図5に示すデータ読み出し線RD)を、これらのPB 4IOユニットの順番に、それぞれIO線IO_4〜IO_7、IO線IO_8〜IO_11、IO線IO_12〜IO_15、IO線IO_16〜IO_19、IO線IO_20〜IO_23、IO線IO_24〜IO_27、IO線IO_28〜IO_31、IO線IO_32〜IO_35、IO線IO_36〜IO_39とする。
また、Data Busは、8ビット幅のバスであり、これらをデータバスData_A<7:0>とする。また、ECC Busは、20ビット幅のバスであり、これらをデータバスData_B<19:0>とする。
なお、図2に示すPB 4IOユニット30_1〜30_9に接続されるページバッファの入出力線(図4、図5に示すデータ読み出し線RD)を、これらのPB 4IOユニットの順番に、それぞれIO線IO_4〜IO_7、IO線IO_8〜IO_11、IO線IO_12〜IO_15、IO線IO_16〜IO_19、IO線IO_20〜IO_23、IO線IO_24〜IO_27、IO線IO_28〜IO_31、IO線IO_32〜IO_35、IO線IO_36〜IO_39とする。
また、Data Busは、8ビット幅のバスであり、これらをデータバスData_A<7:0>とする。また、ECC Busは、20ビット幅のバスであり、これらをデータバスData_B<19:0>とする。
通常モード(第2の動作モード)では、カラムコーディング回路103は、選択信号Sel_A<0>〜Sel_A<4>の5つのカラムアドレスのうち1つのカラムアドレスをHレベル、残りの4つのカラムアドレスをLレベルに維持して、データ読み出しモデルに対して出力する。
例えば、通常モードにおいて、選択信号Sel_A<0>〜Sel_A<4>の順番に、選択信号を5回、データ読み出しモデルに与えると、次のようにIO線IO_0〜IO_39の40ビットのデータがデータバスData_A<7:0>に順次読み出される。
例えば、通常モードにおいて、選択信号Sel_A<0>〜Sel_A<4>の順番に、選択信号を5回、データ読み出しモデルに与えると、次のようにIO線IO_0〜IO_39の40ビットのデータがデータバスData_A<7:0>に順次読み出される。
選択信号Sel_A<0>がHレベルになると、PB 4IOユニット30_0、及びPB 4IOユニット30_1は、それぞれのPB制御回路60におけるトランジスタ61aがオンし、IO線IO_0〜IO_7とデータバスData_A<7:0>とを接続する。これにより、PB 4IOユニット30_0、及びPB 4IOユニット30_1は、データバスData_A<7:0>に、データ読み出し信号Data_Out_A<7:0>(IO線IO_0〜IO_7のデータ)を出力する。
次に、選択信号Sel_A<1>がHレベルになると、PB 4IOユニット30_2、及びPB 4IOユニット30_3は、それぞれのPB制御回路60におけるトランジスタ61aがオンし、IO線IO_8〜IO_15とデータバスData_A<7:0>とを接続する。これにより、PB 4IOユニット30_2、及びPB 4IOユニット30_3は、データバスData_A<7:0>に、データ読み出し信号Data_Out_A<7:0>(IO線IO_8〜IO_15のデータ)を出力する。
次に、選択信号Sel_A<2>がHレベルになると、PB 4IOユニット30_4、及びPB 4IOユニット30_5は、それぞれのPB制御回路60におけるトランジスタ61aがオンし、IO線IO_16〜IO_23とデータバスData_A<7:0>とを接続する。これにより、PB 4IOユニット30_4、及びPB 4IOユニット30_5は、データバスData_A<7:0>に、データ読み出し信号Data_Out_A<7:0>(IO線IO_16〜IO_23のデータ)を出力する。
次に、選択信号Sel_A<3>がHレベルになると、PB 4IOユニット30_6、及びPB 4IOユニット30_7は、それぞれのPB制御回路60におけるトランジスタ61aがオンし、IO線IO_24〜IO_31とデータバスData_A<7:0>とを接続する。これにより、PB 4IOユニット30_6、及びPB 4IOユニット30_7は、データバスData_A<7:0>に、データ読み出し信号Data_Out_A<7:0>(IO線IO_24〜IO_31のデータ)を出力する。
最後に、選択信号Sel_A<4>がHレベルになると、PB 4IOユニット30_8、及びPB 4IOユニット30_9は、それぞれのPB制御回路60におけるトランジスタ61aがオンし、IO線IO_32〜IO_39とデータバスData_A<7:0>とを接続する。これにより、PB 4IOユニット30_8、及びPB 4IOユニット30_9は、データバスData_A<7:0>に、データ読み出し信号Data_Out_A<7:0>(IO線IO_32〜IO_39のデータ)を出力する。
このようにして、選択信号Sel_Aを5回、データ読み出しモデルに供給すると、PB 4IOユニット30_0〜30_9は、PB制御回路60により、IO線IO_0〜IO_39を8本ずつ、データバスData_A<7:0>に接続する。これにより、合計40ビットのメモリセルトランジスタの記憶するデータを、ビット線、及びIO線IO_0〜IO_39を介してData Busに読み出すことができる。
また、ECCモード(第1の動作モード)では、ECCカラムコーディング回路108は、選択信号Sel_B<0>〜Sel_B<1>の2つのカラムアドレスのうち1つのカラムアドレスをHレベル、残りの1つのカラムアドレスをLレベルに維持して、データ読み出しモデルに対して出力する。
例えば、ECCモードにおいて、選択信号Sel_B<0>〜Sel_B<1>の順番に、選択信号を2回、データ読み出しモデルに与えると、次のようにIO線IO_0〜IO_39の40ビットのデータがデータバスData_B<19:0>に順次読み出される。
例えば、ECCモードにおいて、選択信号Sel_B<0>〜Sel_B<1>の順番に、選択信号を2回、データ読み出しモデルに与えると、次のようにIO線IO_0〜IO_39の40ビットのデータがデータバスData_B<19:0>に順次読み出される。
選択信号Sel_B<0>がHレベルになると、PB 4IOユニット30_0、30_2、30_4、30_6、及び30_8は、それぞれのPB制御回路60におけるトランジスタ61bがオンし、IO線IO_0〜IO_3、IO_8〜IO_11、IO_16〜IO_19、IO_24〜IO_27、IO_32〜IO_35とデータバスData_B<19:0>とを接続する。これにより、PB 4IOユニット30_0、30_2、30_4、30_6、及び30_8は、データバスData_B<19:0>に、データ読み出し信号Data_Out_B<19:0>(IO線IO_0〜IO_3、IO_8〜IO_11、IO_16〜IO_19、IO_24〜IO_27、IO_32〜IO_35のデータ)を出力する。
次に、選択信号Sel_B<1>がHレベルになると、PB 4IOユニット30_1、30_3、30_5、30_7、及び30_9は、それぞれのPB制御回路60におけるトランジスタ61aがオンし、IO線IO_4〜IO_7、IO_12〜IO_15、IO_20〜IO_23、IO_28〜IO_31、IO_36〜IO_39とデータバスData_B<19:0>とを接続する。これにより、PB 4IOユニット30_1、30_3、30_5、30_7、及び30_9は、データバスData_B<19:0>に、データ読み出し信号Data_Out_B<19:0>(IO線IO_4〜IO_7、IO_12〜IO_15、IO_20〜IO_23、IO_28〜IO_31、IO_36〜IO_39のデータ)を出力する。
このようにして、選択信号Sel_Bを2回、データ読み出しモデルに供給すると、PB 4IOユニット30_0〜30_9は、PB制御回路60により、IO線IO_0〜IO_39を20本ずつ、データバスData_B<19:0>に接続する。これにより、合計40ビットのメモリセルトランジスタの記憶するデータを、ビット線、及びIO線IO_0〜IO_39を介してECC Busに読み出すことができる。
例えば、通常モードでは、IO線IO_0〜IO_3、IO_8〜IO_11、IO_16〜IO_19、IO_24〜IO_27、IO_32〜IO_35のデータは、選択信号を5回与えなければ、Data Busに読み出すことができなかった。これに対して、ECCモードでは、選択信号を1回与えれば(選択信号Sel_B<0>を与えれば)、IO線IO_0〜IO_3、IO_8〜IO_11、IO_16〜IO_19、IO_24〜IO_27、IO_32〜IO_35のデータを、ECC Busに読み出すことができる。
例えば、通常モードでは、IO線IO_0〜IO_3、IO_8〜IO_11、IO_16〜IO_19、IO_24〜IO_27、IO_32〜IO_35のデータは、選択信号を5回与えなければ、Data Busに読み出すことができなかった。これに対して、ECCモードでは、選択信号を1回与えれば(選択信号Sel_B<0>を与えれば)、IO線IO_0〜IO_3、IO_8〜IO_11、IO_16〜IO_19、IO_24〜IO_27、IO_32〜IO_35のデータを、ECC Busに読み出すことができる。
また、図7は、図1に示すページバッファ102、カラムコーディング回路103、及びECCカラムコーディング回路108に対応する部分のデータ書き込み動作を説明するための図である。
データ書き込み動作においても、PB 4IOユニット30_0の動作により、ページバッファ102、及びカラムコーディング回路103、及びECCカラムコーディング回路108(ここでは、データ書き込みモデルとする)は、データ書き込み動作を実行する。
データ書き込みモデルでは、データの転送を図2に示す方向と逆方向に処理を行なうだけであるので、詳細な説明は省略する。
データ書き込み動作においても、PB 4IOユニット30_0の動作により、ページバッファ102、及びカラムコーディング回路103、及びECCカラムコーディング回路108(ここでは、データ書き込みモデルとする)は、データ書き込み動作を実行する。
データ書き込みモデルでは、データの転送を図2に示す方向と逆方向に処理を行なうだけであるので、詳細な説明は省略する。
データ書き込みモデルでは、例えば、通常モードでは、IO線IO_0〜IO_3、IO_8〜IO_11、IO_16〜IO_19、IO_24〜IO_27、IO_32〜IO_35へ与えるデータは、選択信号を5回与えなければ、Data Busから書き込むことができなかった。これに対して、ECCモードでは、選択信号を1回与えれば(選択信号Sel_B<0>を与えれば)、IO線IO_0〜IO_3、IO_8〜IO_11、IO_16〜IO_19、IO_24〜IO_27、IO_32〜IO_35へ与えるデータを、ECC Busから書き込むことができる。
このように、本実施形態のNAND型フラッシュメモリ10(半導体記憶装置)は、第1のデータバス(データバスData_B<19:0>)と、第1のデータバスと異なる本数から構成され、第1のデータバスとは独立して設けられる第2のデータバス(データバスData_A<7:0>)と、第1の動作モードによりメモリセルとの間でデータを転送する場合、複数のビット線のうち第1のデータバスと同じ本数のビット線と、第1のデータバスとを接続してデータを転送し、一方、第2の動作モードによりメモリセルとの間でデータを転送する場合、複数のビット線のうち第2のデータバスと同じ本数のビット線と、第2のデータバスと、を接続してデータを転送するデータ転送部(PB 4IOユニット30_0〜30_9各々におけるPB制御回路60)と、を備える。
また、ビット線を、n(nはpとqの公倍数であり、p、及びqはp>qである自然数)本のビット線とすると、第1のデータバスはp本であり、第2のデータバスはq本であって、データ転送部は、第1の動作モードでは、(n/p)本のアドレス信号が入力されると、p本のビット線とp本の第1のデータバスとの接続を行い、一方、第2の動作モードでは、(n/q)本のアドレス信号が入力されると、q本ビット線と第2のデータバスとの接続を行う。
また、NAND型フラッシュメモリ10は、メモリアレイ101と、メモリアレイ101からページ単位でデータを読み出し、メモリアレイ101から読み出された読み出しデータを格納するページバッファ82と、ページバッファ82から転送された読み出しデータに対して誤りを訂正し、この訂正された読み出しデータをページバッファ82に書き戻すECC回路107(ECC部)と、ページバッファに書き戻された読み出しデータを出力するI/Oパッド106(インターフェース部)と、を備え、ECC Busは、ECC回路107に接続され、Data Busは、I/Oパッド106に接続される。
また、NAND型フラッシュメモリ10において、ページバッファ82は、I/Oパッド106に入力された書き込みデータを格納し、ECC回路107は、ページバッファから転送された書き込みデータに対してパリティデータを生成し、パリティデータ及び書き込みデータをページバッファに書き戻す。
これにより、ページバッファ102から複数のデータバス(本実施形態ではECC Bus、Data Bus)を用意し、それぞれについて独立したカラムコーディング(Column Coding)、すなわちアドレス制御を可能にすることができる。
本実施形態では、ページバッファ102の入出力線(上記例で言えばIO_0〜IO_39)から、すなわちページバッファに直結した部分から独立なデータバスの構成、および独立なアドレス制御としているところが特徴である。
そのため、本実施形態における半導体記憶装置では、以下に述べる特徴的な効果を奏することができる。
本実施形態では、ページバッファ102の入出力線(上記例で言えばIO_0〜IO_39)から、すなわちページバッファに直結した部分から独立なデータバスの構成、および独立なアドレス制御としているところが特徴である。
そのため、本実施形態における半導体記憶装置では、以下に述べる特徴的な効果を奏することができる。
(1)第1の動作モード(本実施形態ではECCモード)において、バス幅を広げ、高速化できる。
本実施形態の説明では、1回のカラムアドレス入力により、第2の動作モード(通常モード)では、Data Busに8ビットのデータを転送し、ECCモードでは20ビットのデータを転送する場合に説明した。このように、Address_Bの入力(選択信号Sel_BのPB制御回路60への入力)次第では、すなわちページバッファ102へのカラムコーディング次第では、簡単にバス幅を広げることができる。例えば、1024個のPBユニットでカラムアドレスを2アドレスとすれば、ECCモードではECC Busを512bitのバス幅に広げてデータ転送できる。
また、ページバッファに直結した部分から独立なデータバスの構成、および独立なアドレス制御としている。そのため、従来のように、Data Busの一部を共有してECC回路へデータ転送する場合に比べて、高速なデータ転送が可能になる。
特に、不良のPBユニットについては、PB制御回路60が固定データをECC Busを介してECC回路107へ転送するので、ECC処理においてカラム置換回路104で救済処理した後のデータをECC Busを介してECC回路107に転送する必要はなく、バス幅の拡大されたECC Busの径路にカラム置換回路104を配置する必要が無くなる。このため、カラム置換回路104での救済処理に要する時間だけ、ECC処理の際のページバッファからECC回路へのデータ転送の時間を短縮できる。また、ECC処理に際してData Bus(第2のデータバス)のバス幅を拡大する必要はないので、カラム置換回路104の回路規模の増大を抑制できる。
本実施形態の説明では、1回のカラムアドレス入力により、第2の動作モード(通常モード)では、Data Busに8ビットのデータを転送し、ECCモードでは20ビットのデータを転送する場合に説明した。このように、Address_Bの入力(選択信号Sel_BのPB制御回路60への入力)次第では、すなわちページバッファ102へのカラムコーディング次第では、簡単にバス幅を広げることができる。例えば、1024個のPBユニットでカラムアドレスを2アドレスとすれば、ECCモードではECC Busを512bitのバス幅に広げてデータ転送できる。
また、ページバッファに直結した部分から独立なデータバスの構成、および独立なアドレス制御としている。そのため、従来のように、Data Busの一部を共有してECC回路へデータ転送する場合に比べて、高速なデータ転送が可能になる。
特に、不良のPBユニットについては、PB制御回路60が固定データをECC Busを介してECC回路107へ転送するので、ECC処理においてカラム置換回路104で救済処理した後のデータをECC Busを介してECC回路107に転送する必要はなく、バス幅の拡大されたECC Busの径路にカラム置換回路104を配置する必要が無くなる。このため、カラム置換回路104での救済処理に要する時間だけ、ECC処理の際のページバッファからECC回路へのデータ転送の時間を短縮できる。また、ECC処理に際してData Bus(第2のデータバス)のバス幅を拡大する必要はないので、カラム置換回路104の回路規模の増大を抑制できる。
(2)アドレス制御、アドレスマップの自由度の向上
本実施形態の説明では、通常モードにおいて、1つのカラムアドレスで8ビットのデータ転送する際、例えばPB 4IOユニット30_0、と30_1に選択信号Sel_A<0>を供給して、IO線IO_0〜IO_7のデータをData Busに転送した。これに対して、ECCモードでは、PB 4IOユニット30_0、と30_1に選択信号Sel_B<0>、Sel_B<1>と別々のアドレスを割り当てて、全アドレスについて一括でECC回路にデータ転送をすることができる。例えば、通常データとパリティデータとが、通常モードにおいて選択信号Sel_Aの異なるアドレスに割り付けられていた場合であっても、ECCモードにおいて選択信号Sel_Bの同じアドレスに割り付けることができ、通常データとパリティデータを一括してECC回路に入力することができる。このように、第2の動作モードにおけるアドレス制御が第1の動作モードにおけるアドレス制御に対して独立性が非常に高く、アドレスマップの自由度を高くすることができる。
本実施形態の説明では、通常モードにおいて、1つのカラムアドレスで8ビットのデータ転送する際、例えばPB 4IOユニット30_0、と30_1に選択信号Sel_A<0>を供給して、IO線IO_0〜IO_7のデータをData Busに転送した。これに対して、ECCモードでは、PB 4IOユニット30_0、と30_1に選択信号Sel_B<0>、Sel_B<1>と別々のアドレスを割り当てて、全アドレスについて一括でECC回路にデータ転送をすることができる。例えば、通常データとパリティデータとが、通常モードにおいて選択信号Sel_Aの異なるアドレスに割り付けられていた場合であっても、ECCモードにおいて選択信号Sel_Bの同じアドレスに割り付けることができ、通常データとパリティデータを一括してECC回路に入力することができる。このように、第2の動作モードにおけるアドレス制御が第1の動作モードにおけるアドレス制御に対して独立性が非常に高く、アドレスマップの自由度を高くすることができる。
また、通常モードではカラムアドレスは選択信号Sel_A<0>〜Sel_A<4>の5つに対し、ECCモードではカラムアドレスは選択信号Sel_B<0>、Sel_B<1>の2つとなった。このことは、通常モードにおける規格(User Spec)では、カラムアドレスが2のn乗でない(所謂きりのよくない)値で定められていたとしても、ECCモードではアドレス空間を2のn乗などのきりのよい単位空間へ変換可能であることを意味している。
これにより、ECC回路107のコード構成、たとえばコード長をいくつにするか、積符号化する場合のコード長構成の最適化などの過程において、自由度をもって設計することができ、より最適なパフォーマンスを引き出すことができる。
これにより、ECC回路107のコード構成、たとえばコード長をいくつにするか、積符号化する場合のコード長構成の最適化などの過程において、自由度をもって設計することができ、より最適なパフォーマンスを引き出すことができる。
(3)設計変更の容易化
またECC回路を内蔵した製品を設計する場合、仮に当該製品の派生製品であってECC回路の内蔵が不要な製品を別途設計するような場合、データバス(ECCバス)、アドレス制御に係るカラムコーディング回路がECCモードと通常モードでは独立している。これにより、ECCモードに係る回路と通常モードに係る回路の切り分けが明確であるため、不要なECCモードに係る回路の削減が容易となり、設計変更が容易になる。
またECC回路を内蔵した製品を設計する場合、仮に当該製品の派生製品であってECC回路の内蔵が不要な製品を別途設計するような場合、データバス(ECCバス)、アドレス制御に係るカラムコーディング回路がECCモードと通常モードでは独立している。これにより、ECCモードに係る回路と通常モードに係る回路の切り分けが明確であるため、不要なECCモードに係る回路の削減が容易となり、設計変更が容易になる。
続いて、図1に示すNAND型フラッシュメモリの第1の動作モード、及び第2の動作モードでの動作について、ページバッファ102の概略構成、及び動作フローチャートを参照して説明する。図8は、ページバッファ102を構成する各ページバッファを説明するための図である。また、図9は、ページバッファ102の動作を説明するためのフローチャートである。
図8(a)には、ページバッファ102を構成するMain Data(通常データ)用のページバッファ102a、Column Repair for Main Data(通常データの置換データ)用のページバッファ102b、ECC Parity(パリティデータ)用のページバッファ102c、及びParity’s Column Repair(パリティデータの置換データ)用のページバッファ102dを模式的に示している。図8(a)には、これらページバッファ102a〜102dを構成するPB ユニット(図4、図5に示すPB制御回路60、及びビット内部回路50_0〜50_7を単位とする回路)に番号を付して示している。この番号は、図3(b)に示すCoding、すなわちPB ユニットの位置を示す選択信号Sel_Aの番号である。
図8(a)には、ページバッファ102を構成するMain Data(通常データ)用のページバッファ102a、Column Repair for Main Data(通常データの置換データ)用のページバッファ102b、ECC Parity(パリティデータ)用のページバッファ102c、及びParity’s Column Repair(パリティデータの置換データ)用のページバッファ102dを模式的に示している。図8(a)には、これらページバッファ102a〜102dを構成するPB ユニット(図4、図5に示すPB制御回路60、及びビット内部回路50_0〜50_7を単位とする回路)に番号を付して示している。この番号は、図3(b)に示すCoding、すなわちPB ユニットの位置を示す選択信号Sel_Aの番号である。
すなわち、ページバッファ102aは、通常データ用のPB ユニットとして、256個のPB ユニット0〜PB ユニット255を有し、ページバッファ102bは、通常データの置換用のPB ユニットとして8個のPB ユニット256〜PB ユニット263を有する。
また、ページバッファ102cは、パリティデータ用のPB ユニットとして、36個のPB ユニット264〜PB ユニット299を有し、ページバッファ102dは、パリティデータの置換用のPB ユニットとして8個のPB ユニット300〜PB ユニット307を有する。
また、ページバッファ102cは、パリティデータ用のPB ユニットとして、36個のPB ユニット264〜PB ユニット299を有し、ページバッファ102dは、パリティデータの置換用のPB ユニットとして8個のPB ユニット300〜PB ユニット307を有する。
また、ここでは、図8(b)に示す様に、ページバッファ102aのPB ユニット1に接続される8本のビット線、或いは当該8本のビット線に接続されるメモリセルトランジスタに不良があった場合に、ページバッファ102bのPB ユニット256に置換される例を示している。また、図8(b)では、ページバッファ102cのPB ユニット265に接続される8本ビット線、或いは当該8本のビット線に接続されるメモリセルトランジスタに不良があった場合に、ページバッファ102dのPB ユニット300に置換される例を示している。
なお、図8(b)において斜線を施して示しているページバッファ102bにおけるPB ユニット257〜263は使用されないので、これらはカラム置換回路104の制御によりカラムコーディング回路103が選択することはなく、すなわち不活性状態となっている。また、同じく図8(b)において斜線を施して示しているページバッファ102dにおけるPB ユニット301〜307は使用されないので、これらはパリティカラム置換回路105の制御によりECCカラムコーディング回路108が選択することはなく、すなわち不活性状態となっている。
なお、図8(b)において斜線を施して示しているページバッファ102bにおけるPB ユニット257〜263は使用されないので、これらはカラム置換回路104の制御によりカラムコーディング回路103が選択することはなく、すなわち不活性状態となっている。また、同じく図8(b)において斜線を施して示しているページバッファ102dにおけるPB ユニット301〜307は使用されないので、これらはパリティカラム置換回路105の制御によりECCカラムコーディング回路108が選択することはなく、すなわち不活性状態となっている。
また、ページバッファ102aにおけるPB ユニット1は、通常モードでは選択されず、置換先のPB ユニット256が選択信号Sel_Aにより選択され、データ読み出し信号Data_Out_A(PB ユニット1から読み出すはずのデータ)が、Data Bus_1、Data Bus_2、及びData Bus_3(第2のデータバス)を介してI/Oパッド106から出力される。また、通常モードでは、書き込みデータがI/Oパッド106から入力されると、Data Bus_3、Data Bus_2、及びData Bus_1を介してPB ユニット256に、データ書き込み信号Data_A_In(PB ユニット1に書き込むはずのデータ)として入力される。このように、ユーザがカラムアドレスを供給して使用できるページバッファの領域はページバッファ102aのPB ユニット0〜255までである。つまり、ページバッファ102bのPB ユニット256〜263、ページバッファ102cのPB ユニット264〜299、及びページバッファ102dのPB ユニット300〜307は、ユーザがアクセスすることのできないページバッファの領域である。
また、ページバッファ102aにおけるPB ユニット1は、ECCモードで選択信号Sel_Bにより選択され、LレベルまたはHレベルのいずれか一方に固定されたデータ読み出し信号Data_Out_Bが、ECC Bus_1、及びECC Bus_2(第1のデータバス)を介してECC回路107まで転送され、ECC処理に用いられる。また、置換先のPB ユニット256も選択信号Sel_Bにより選択され、データ読み出し信号Data_Out_Bが、ECC Bus_1、ECC Bus_2、及びECC Bus_3を介してECC回路107まで転送され、ユーザから見たPB ユニット1の読み出しデータとしてECC処理に用いられる。
また、ECCモードでは、ECC処理が終了すると、PB ユニット1に書き戻すべきデータがECC Bus_3、ECC Bus_2、およびECC Bus_1(第1のデータバス)を介してPB ユニット256に、データ書き込み信号Data_B_Inとして入力される。なお、これらのECC処理後のデータのうちPB ユニット0〜255のデータは、上述の様に、データバスData_Aを介して外部へ誤りのないデータ(Clear Data)として読み出される。
また、ページバッファ102cにおけるPB ユニット265は、ECCモードで選択信号Sel_Bにより選択され、LレベルまたはHレベルのいずれか一方に固定されたデータ読み出し信号Data_Out_Bが、ECC Bus_1、及びECC Bus_2(データバスData_B)を介してパリティカラム置換回路105まで転送される。また、置換先のPB ユニット300も選択信号Sel_Bにより選択され、データ読み出し信号Data_Out_Bが、ECC Bus_1、及びECC Bus_2を介してパリティカラム置換回路105まで転送され、置換処理が行われる。こうして、PB ユニット300の出力するデータが、PB ユニット265のデータ読み出し信号としてECC Bus_3を介してECC回路107に転送され、ECC処理に用いられる。
また、ECCモードでは、ECC処理が終了すると、PB ユニット265に書き戻すべきデータがECC Bus_3を介してパリティカラム置換回路105まで転送され、置換処理した後、ECC Bus_2、およびECC Bus_1(第1のデータバス)を介してPB ユニット300に、データ書き込み信号Data_B_Inとして入力される。なお、これらのECC処理後のデータは、上述の様に、データバスData_Aを介して外部へ読み出されることはない。
図9に示すフローチャートを参照して、メモリセルトランジスタへのデータ書き込み動作、メモリセルトランジスタからのデータ読み出し動作について説明する。なお、図9(a)はデータ書込み動作(Data In)、図9(b)は、データ読み出し動作(Data Out)、図9(c)は、ECCでのエンコード(Encode)処理動作、図9(d)は、ECCでのデコード(Decode)処理動作を、それぞれ示している。
[データ書き込み動作]
ユーザがI/Oパッド106を介してNAND型フラッシュメモリ10に、所定のコマンド(ライトコマンド)を入力し、アドレス(ここでは、PB ユニット1を選択するカラムアドレス)入力をし、引き続いて、書き込みデータを入力する(ステップST1)。
次に、通常データの置換が実行される(ステップST2)。具体的には、カラム置換回路104の制御によりカラムコーディング回路103は、PB ユニット1を選択せず、代わりにPB ユニット256を選択する。PB ユニット256には外部からのデータが格納される(ステップST3)。
[データ書き込み動作]
ユーザがI/Oパッド106を介してNAND型フラッシュメモリ10に、所定のコマンド(ライトコマンド)を入力し、アドレス(ここでは、PB ユニット1を選択するカラムアドレス)入力をし、引き続いて、書き込みデータを入力する(ステップST1)。
次に、通常データの置換が実行される(ステップST2)。具体的には、カラム置換回路104の制御によりカラムコーディング回路103は、PB ユニット1を選択せず、代わりにPB ユニット256を選択する。PB ユニット256には外部からのデータが格納される(ステップST3)。
次に、ユーザが所定時間経過後に、プログラム実行コマンド(Program Executuion Command)を与える(Invoke)と(ステップST5)、通常モード(第2の動作モード)であれば、ステップST6に進みプログラム処理(ページバッファからビット線を介してメモリセルトランジスタへデータを与える)を実行する(ステップST6)。一方、ECCモード(第1の動作モード)であれば、ステップST5に進みECCのエンコード処理を実行する。(ステップST5)。具体的には次の処理を実行する。
ここで、図8(c)は、ECC処理でのコード構成を示している。ECCとしてのData部は、PB ユニット0〜PB ユニット263に格納されたデータであり、パリティ部(ECC Parity)は、PB ユニット264〜PB ユニット299に格納されたデータからなる。なお、PB ユニット1に書き込むべきデータは、PB ユニット256に書き込まれて格納され、PB ユニット1以外のPB ユニット0、PB ユニット2〜255には、それぞれに接続されるビット線を介してメモリセルトランジスタが記憶するデータが読み出されて格納されている。
PB ユニット0〜PB ユニット263に格納されたデータが、ECC Bus_1、ECC Bus_2、及びECC Bus_3(第1のデータバス)を介して、ECC回路107に入力(Data Load)される(ステップST31)。
PB ユニット0〜PB ユニット263に格納されたデータが、ECC Bus_1、ECC Bus_2、及びECC Bus_3(第1のデータバス)を介して、ECC回路107に入力(Data Load)される(ステップST31)。
なお、このとき、上述したように、ECC回路107には、PB ユニット1からは固定データ(図4に示すPB制御回路60であればLデータ、図5に示すPB制御回路60であればHデータ)が入力される。また、ECC回路107には、PB ユニット256からは、PB ユニット1に書き込むべきだったが実際はPB ユニット256に書き込まれたデータが入力される。
ECC回路107は、エンコード(Encode)処理を実行し、パリティデータを生成(Parity Generation)する(ステップST32)。
ECC回路107は、エンコード(Encode)処理を実行し、パリティデータを生成(Parity Generation)する(ステップST32)。
続いて、ECC回路107は、PB ユニット0〜299にECC処理後のデータを書き戻す(Data Store)処理を実行する(ステップST33)。
なお、このとき、ECCコーディング回路108は、パリティカラム置換回路105の制御により、PB ユニット265を非選択とし、PB ユニット300を選択する。これにより、PB ユニット265に書き戻すべきパリティデータがPB ユニット300に書き戻される。また、PB ユニット0〜263には、エンコード(Encode)時にはデータの書き戻しをしなくてもよいが、同じデータ(Data)を書き戻してもよい。PB ユニット264〜307にはパリティデータが書き込まれる。このように、図8(b)において斜線を施して示している不活性状態にあるページバッファには、図4または図5に示す回路により、書き込みがされないようになっている。
なお、このとき、ECCコーディング回路108は、パリティカラム置換回路105の制御により、PB ユニット265を非選択とし、PB ユニット300を選択する。これにより、PB ユニット265に書き戻すべきパリティデータがPB ユニット300に書き戻される。また、PB ユニット0〜263には、エンコード(Encode)時にはデータの書き戻しをしなくてもよいが、同じデータ(Data)を書き戻してもよい。PB ユニット264〜307にはパリティデータが書き込まれる。このように、図8(b)において斜線を施して示している不活性状態にあるページバッファには、図4または図5に示す回路により、書き込みがされないようになっている。
続いて、各PBユニットにおいて、図6に示すラッチ部にメモリセルに書き込むべきデータ(Data_i)がラッチされたので、メモリセルトランジスタへのデータ書込み(Program to Memory Cell)処理が開始される(ステップST6)。
各PB ユニットでは、書込みが成功するまで、ラッチ部からメモリセルへのデータ印加が繰り返される(ステップST7)。書き込みが成功すれば、繰り返し処理は終了し(ステップST7−Yes)、書き込みが成功しなければ、書込みが成功するまで、ステップST6に戻ってプログラム処理が実行される(ステップST7−No)。
各PB ユニットでは、書込みが成功するまで、ラッチ部からメモリセルへのデータ印加が繰り返される(ステップST7)。書き込みが成功すれば、繰り返し処理は終了し(ステップST7−Yes)、書き込みが成功しなければ、書込みが成功するまで、ステップST6に戻ってプログラム処理が実行される(ステップST7−No)。
[データ読み出し動作]
ユーザがI/Oパッド106を介して所定のコマンド(リードコマンド)を入力し、アドレス(ここでは、PB ユニット1を選択するカラムアドレス)を入力する(ステップST11)。
次に、各PB ユニットにおいて、図6に示すビット内部回路の接続点N1に、メモリセルトランジスタからのデータ(Data_i)がセンシングされラッチ部へ読み出される(ステップST12)。
また、ビット内部回路のラッチ部にData_iがラッチされる(ステップST13)。
その後、通常モード(第2の動作モード)であれば、ステップST15に進みセンシング処理が終了する(ステップST15)。一方、ECCモード(第1の動作モード)では、ステップST14に進み、ECCのデコード(Decode)処理を実行する。(ステップST14)。具体的には次の処理を実行する。
ユーザがI/Oパッド106を介して所定のコマンド(リードコマンド)を入力し、アドレス(ここでは、PB ユニット1を選択するカラムアドレス)を入力する(ステップST11)。
次に、各PB ユニットにおいて、図6に示すビット内部回路の接続点N1に、メモリセルトランジスタからのデータ(Data_i)がセンシングされラッチ部へ読み出される(ステップST12)。
また、ビット内部回路のラッチ部にData_iがラッチされる(ステップST13)。
その後、通常モード(第2の動作モード)であれば、ステップST15に進みセンシング処理が終了する(ステップST15)。一方、ECCモード(第1の動作モード)では、ステップST14に進み、ECCのデコード(Decode)処理を実行する。(ステップST14)。具体的には次の処理を実行する。
PB ユニット0〜PB ユニット299に格納されたデータが、ECC Bus_1、ECC Bus_2、及びECC Bus_3(第1のデータバス)を介して、ECC回路107に入力(Data Load)される(ステップST41)。
なお、このとき、上述したように、ECC回路107には、PB ユニット1からは固定データ(図4に示すPB制御回路60であればLデータ、図5に示すPB制御回路60であればHデータ)が入力される。また、ECC回路107には、PB ユニット256からは、PB ユニット1に書き込むべきだったが実際はPB ユニット256に書き込まれたデータが入力される。また、パリティカラム置換回路105には、PB ユニット300からは、PB ユニット265に書き込むべきだったが実際はPB ユニット300に書き込まれたパリティデータがECC Bus_1、及びECC Bus_2を介して入力され、置換処理した後、ECC Bus_3を介してECC回路107に入力される。
ECC回路107は、デコード(Decode)処理を実行し、パリティデータに基づいて、PB ユニット0〜PB ユニット263に格納されたデータの誤りを訂正して(Error Correction)する(ステップST42)。
なお、このとき、上述したように、ECC回路107には、PB ユニット1からは固定データ(図4に示すPB制御回路60であればLデータ、図5に示すPB制御回路60であればHデータ)が入力される。また、ECC回路107には、PB ユニット256からは、PB ユニット1に書き込むべきだったが実際はPB ユニット256に書き込まれたデータが入力される。また、パリティカラム置換回路105には、PB ユニット300からは、PB ユニット265に書き込むべきだったが実際はPB ユニット300に書き込まれたパリティデータがECC Bus_1、及びECC Bus_2を介して入力され、置換処理した後、ECC Bus_3を介してECC回路107に入力される。
ECC回路107は、デコード(Decode)処理を実行し、パリティデータに基づいて、PB ユニット0〜PB ユニット263に格納されたデータの誤りを訂正して(Error Correction)する(ステップST42)。
続いて、ECC回路107は、PB ユニット0〜299にECC処理後のデータを書き戻す(Data Store)処理を実行する(ステップST43)。
PB ユニット0〜263には、ECC処理後のデータ(誤り訂正されたデータ)がそのまま書き戻される。PB ユニット264〜307のパリティデータ部についてはユーザーが使用しないため、ECC処理後のデータ(誤り訂正されたデータ)を書き戻す必要はないが、書き戻してもよい。パリティカラム置換回路105の制御により、PB ユニット265を非選択とし、PB ユニット300を選択する。これにより、PB ユニット265に書き戻すべき誤り訂正後のパリティデータをPB ユニット300に書き戻す。このように、図8(b)において斜線を施して示している不活性状態ページバッファには図4または図5に示す回路により、書き込みがされないようになっている。
PB ユニット0〜263には、ECC処理後のデータ(誤り訂正されたデータ)がそのまま書き戻される。PB ユニット264〜307のパリティデータ部についてはユーザーが使用しないため、ECC処理後のデータ(誤り訂正されたデータ)を書き戻す必要はないが、書き戻してもよい。パリティカラム置換回路105の制御により、PB ユニット265を非選択とし、PB ユニット300を選択する。これにより、PB ユニット265に書き戻すべき誤り訂正後のパリティデータをPB ユニット300に書き戻す。このように、図8(b)において斜線を施して示している不活性状態ページバッファには図4または図5に示す回路により、書き込みがされないようになっている。
続いて、各PBユニットにおいて、図6に示すラッチ部にメモリセルに書き込むべきデータ(Data_i)がラッチされたので、センシング(Sensing)処理が終了すし、読み出し可能な状態へ移行する(ステップST15)。
PB ユニット0〜PB ユニット255には、選択信号Sel_Aが入力され、格納されたデータが、Data Bus_1、Data Bus_2、及びData Bus_3を介して、読み出される。このとき、カラムコーディング回路103は、カラム置換回路104の制御により、PB ユニット1を非選択とし、PB ユニット256を選択する。PB ユニット256は、PB ユニット1に書き込むべきだったが実際はPB ユニット256に書き込まれたデータを出力する。つまり、不良を有するカラムの置換(Defect Column Repair)が実行される(ステップST16)。
このようにして、ユーザがPB ユニット1を介してメモリセルトランジスタへ書き込んだ書き込みデータが、不良救済されて他のメモリセルトランジスタに書き込まれ、更に書き込まれたデータが誤り訂正されて、I/Oパッド106から出力される(ステップST17)。
PB ユニット0〜PB ユニット255には、選択信号Sel_Aが入力され、格納されたデータが、Data Bus_1、Data Bus_2、及びData Bus_3を介して、読み出される。このとき、カラムコーディング回路103は、カラム置換回路104の制御により、PB ユニット1を非選択とし、PB ユニット256を選択する。PB ユニット256は、PB ユニット1に書き込むべきだったが実際はPB ユニット256に書き込まれたデータを出力する。つまり、不良を有するカラムの置換(Defect Column Repair)が実行される(ステップST16)。
このようにして、ユーザがPB ユニット1を介してメモリセルトランジスタへ書き込んだ書き込みデータが、不良救済されて他のメモリセルトランジスタに書き込まれ、更に書き込まれたデータが誤り訂正されて、I/Oパッド106から出力される(ステップST17)。
以上説明したように、NAND型フラッシュメモリ10(半導体記憶装置)は、ECC Bus_1〜3(第1のデータバス)と、第1のデータバスと異なる本数から構成され、第1のデータバスとは独立して設けられるData Bus_1〜3(第2のデータバス)と、ECCモード(第1の動作モード)によりメモリセルとの間でデータを転送する場合、複数のビット線のうち第1のデータバスと同じ本数のビット線と、第1のデータバスとを接続してデータを転送し、一方、通常モード(第2の動作モード)によりメモリセルとの間でデータを転送する場合、複数のビット線のうち第2のデータバスと同じ本数のビット線と、第2のデータバスとを接続してデータを転送するページバッファ102(データ転送部)と、を備える。
また、データ転送部は、通常メモリセルに接続されるビット線の電位を増幅し、増幅結果をラッチするページバッファ102aと、ページバッファ102aに接続される通常メモリセルまたはビット線に不良が有る場合に、通常メモリセル、及びビット線とともに置換されるページバッファ102bと、パリティメモリセルに接続されるビット線の電位を増幅し、増幅結果をラッチするページバッファ102cと、を含んで構成される。また、第2のデータバスは、ページバッファ102a、及びページバッファ102bと接続され、第1のデータバスは、ページバッファ102a、ページバッファ102b、及びページバッファ102cと接続される。
また、データ転送部は、通常メモリセルに接続されるビット線の電位を増幅し、増幅結果をラッチするページバッファ102aと、ページバッファ102aに接続される通常メモリセルまたはビット線に不良が有る場合に、通常メモリセル、及びビット線とともに置換されるページバッファ102bと、パリティメモリセルに接続されるビット線の電位を増幅し、増幅結果をラッチするページバッファ102cと、を含んで構成される。また、第2のデータバスは、ページバッファ102a、及びページバッファ102bと接続され、第1のデータバスは、ページバッファ102a、ページバッファ102b、及びページバッファ102cと接続される。
また、半導体記憶装置は、第1のデータバスに接続され、ページバッファ102cに接続されるパリティメモリセルまたはビット線に不良が有る場合に、パリティメモリセル、及びビット線とともに置換されるページバッファ102dと、第2のデータバスに接続されるとともに、ページバッファ102aのうちメモリセルまたはビット線に不良が有るページバッファをページバッファ102bに置換するカラム置換回路104(第1の救済置換回路)と、第1のデータバスに接続されるとともに、ページバッファ102cのうちメモリセルまたはビット線に不良が有るページバッファをページバッファ102dに置換するパリティカラム置換回路105(第2の救済置換回路)と、第1のデータバスに接続されるとともに、ページバッファ102c、及びページバッファ102dの出力データに基づき、ページバッファ102a、及びページバッファ102bの出力データの誤りを訂正するECC回路107(ECC回路)と、を備える。
また、半導体記憶装置は、ページバッファ102aのうちメモリセルまたはビット線に不良が有るページバッファの出力を固定されたデータとするPB制御回路60(ページバッファ制御回路)を有する。
また、ページバッファ制御回路は、メモリセルまたはビット線に不良が有る場合、第1のデータバスからの書き込みを許可しない。
また、第1の動作モードでは、ページバッファ102aと、第2の動作モードでの救済置換を前提として存在するページバッファ102bとのうち、メモリセルまたはビット線に不良が有るページバッファについては救済置換を行わずに、ECC回路の入力データとして取り扱う。
また、ビット線を、n(nはpとqの公倍数であり、p、及びqはp>qである自然数)本のビット線とすると、第1のデータバスはp本であり、第2のデータバスはq本であって、データ転送部は、第1の動作モードでは、(n/p)本のアドレス信号が入力されると、p本のビット線とp本の第1のデータバスとの接続を行い、一方、第2の動作モードでは、(n/q)本のアドレス信号が入力されると、q本ビット線と第2のデータバスとの接続を行う。なお、上記構成は、論理的空間においての概念を前提としており、物理的ビット線数nがpとqの公倍数でなくてもよく、余りをダミービット線として処理するなどで対応できる。
このように、NAND型フラッシュメモリ10によれば、ECC回路107へのECC Bus(第1のデータバス)のバス幅を広くしやすいことから(上記説明では、ECC回路へのバス幅は300ビット)、また、Main Data部の置換回路(カラム置換回路104)がこのECC Busの途中には不要となるため、ECC処理でのデータ転送を高速化することができる。また、Main Data部の置換回路は従来の様に増大しないことから、チップサイズの増大を抑制でき、従来に比べて製造の際のコストを低減できる効果がある。
なお、上記実施形態では、Main Data部の置換回路と比較して、規模が小さいParity部に専用のPCR置換システム(パリティカラム置換回路105)を用いて説明したが、この構成は必須ではない。もっとも、パリティカラム置換回路105は、Parity部の不良を救済する方法として有用である。パリティカラム置換回路105を用いない場合には、カラム1ビットあたり50%(0か1か)の確率で1エラー分の訂正ができなくなってしまい、ECC処理における訂正能力を損なってしまう。これに対して、上記説明の様に、パリティカラム置換回路105を用いてParity部の不良を救済すると、ECC訂正能力を向上できる。
なお、上記実施形態では、Main Data部の置換回路と比較して、規模が小さいParity部に専用のPCR置換システム(パリティカラム置換回路105)を用いて説明したが、この構成は必須ではない。もっとも、パリティカラム置換回路105は、Parity部の不良を救済する方法として有用である。パリティカラム置換回路105を用いない場合には、カラム1ビットあたり50%(0か1か)の確率で1エラー分の訂正ができなくなってしまい、ECC処理における訂正能力を損なってしまう。これに対して、上記説明の様に、パリティカラム置換回路105を用いてParity部の不良を救済すると、ECC訂正能力を向上できる。
ところで、上述したNAND型フラッシュメモリ10の構成では、パリティ部の不良を置換するために、専用の置換ユニットであるPB_PCR102d(ページバッファ102d)を準備する必要があり、チップサイズ増大による製造コストの増加、ECCシステムとしてのシステムの複雑化が懸念される。そこで、まず、ページバッファ102dの機能をPB_CR102b(ページバッファ102b)に集約することが考えられる。また、第1の動作モード(ECCモード)において、Main Data用のカラム置換回路104を使用して、Parity部(ページバッファ102c)の不良ビットの救済置換を行う。これにより、NAND型フラッシュメモリ10におけるパリティカラム置換回路105が不要となる。
図10は、NAND型フラッシュメモリ20のブロック構成を示す図である。なお、図20において、図1に示すNAND型フラッシュメモリ10と同一の部分には同一の符号を付し、その説明を適宜省略する。NAND型フラッシュメモリ20では、図1に示すNAND型フラッシュメモリ10からページバッファ102dが削減されている。ページバッファ102cを構成するページバッファユニットの1つに不良があった場合、このページバッファユニットは、ページバッファ102bを構成するページバッファユニットの1つに置換される。
また、図1に示すページバッファ102d用の置換回路であるパリティカラム置換回路105を削除し、ユーザがページバッファ102aにアクセスする際に使用するカラム置換回路104を、ページバッファ102c用の置換回路として利用することでParity部の不良ビットを救済している。
また、図1に示すページバッファ102d用の置換回路であるパリティカラム置換回路105を削除し、ユーザがページバッファ102aにアクセスする際に使用するカラム置換回路104を、ページバッファ102c用の置換回路として利用することでParity部の不良ビットを救済している。
また、図10では、ページバッファ102aのインターフェイス(入出力部)をData_A102a_A、Data_B102a_Bと区別して図示している。ここで、Data_A102a_Aは、図4または図5に示すPBユニットのデータ書き込み信号Data_In_Aの配線(以下、Data_A_Inバスとする)、及びデータ読み出し信号Data_Out_Aの配線(以下、Data_Out_Aバスとする)であり、Data_Bus_1(第2のデータバス)とPB ユニットのPB制御回路60とを接続する。一方、Data_B102a_Bは、データ書き込み信号Data_In_Bの配線(以下、Data_In_Bバスとする)、及びデータ読み出し信号Data_Out_Bの配線(以下、Data_Out_Bバスとする)であり、ECC_Bus_1とPB ユニットのPB制御回路60とを接続する。
図10では、同様に、ページバッファ102bのインターフェイスをData_A102b_A、Data_B102b_Bと区別して図示している。Data_A102b_Aは、PBユニットのData_A_In、及びData_Out_Aバスであり、Data_Bus_1とPB ユニットのCR/PCR Selector(CR/PCRセレクタ部)75とを接続する(図12参照)。一方、Data_B102b_Bは、Data_In_Bバス、及びData_Out_Bバスであり、ECC_Bus_1とPB ユニットのCR/PCRセレクタ部75とを接続する。なお、PB ユニットの構成については後述する。
図10では、同様に、ページバッファ102cのインターフェイスをData_A102c_A、Data_B102c_Bと区別して図示している。Data_A102c_Aは、PBユニットのData_A_In、及びData_Out_Aバスであり、Data_Bus_1とPB ユニットのPB制御回路60とを接続する(図11参照)。一方、Data_B102c_Bは、Data_In_Bバス、及びData_Out_Bバスであるが、図11に示すPB ユニットでは示されておらず、ECC_Bus_1とPB ユニットのPB制御回路とを接続していない。なお、これはPB ユニットの構成によるもので、接続してもよい(詳細後述)。
また、図10では、ECC回路107のインターフェイス(入出力部)をメインデータの入出力部であるData I/F107a、Parity I/F107bと区別して図示している。Data I/F107aは、ECC_Bus1およびECC_Bus2を経由し、ページバッファ102のPBユニット群におけるData_B部(Data_B102a_B、Data_B102b_B)と、ECC処理に係るデータ(Main Data)のやり取りを行う。一方、Parity I/F107bは、Data_Bus_1、 Data_Bus_2を経由して、ページバッファ102のPBユニット群におけるData_A部(Data_A102b_A、Data_A102c_A)と、ECC処理に係るデータ(Parity Data)のやり取りを行う。
第1の動作モードにおいて、ECC Data部(ページバッファ102a、102bのPB ユニット)は従来どおりのECC Busを経由した動作となる。ただし、ECC Parity部(ページバッファ102cのPB ユニット)については、このときData Busを経由したパリティデータのやり取りを行い、結果、図1に示すカラム置換回路105が不要となる構成になる。なお、上記ECC Data部、ECC Parity部とECC回路107とのデータのやりとりを同時に行うことができる。
ここで、ページバッファ102a〜102cにおける各PB ユニットの構成について説明する。
まず、ページバッファ102aのPB ユニットについては、図4または図5に示す回路構成でよい。
次に、図11は、ページバッファ102cにおけるPB ユニットの内部の回路構成を示す図である。なお、図11において、図4、及び図5と同じ部分は同一の符号を付し、その説明を省略する。
図5に示すPB ユニットの構成と相違する部分を具体的に説明する。図11に示すPB ユニットは、図5に示すPB ユニットから、トランジスタ61b、トランジスタ61c、スイッチ69、インバータ回路67の入力をプルアップ処理するPMOSトランジスタ、アンド回路71を削除した構成である。また、図11に示すPB ユニットでは、選択信号Sel_Bが入力されない構成となることにより、図5に示すオア回路66は、図11に示すPB ユニットではアンド回路66aとなり、アンド回路66aの第1入力端子は、選択信号Sel_Aの配線に接続される。
このように、ページバッファ102cのPB ユニットについては、この図11に示すように、Data_In_Bバス、及びData_Out_Bバスに係る部分を省略した形式をとることができる。
まず、ページバッファ102aのPB ユニットについては、図4または図5に示す回路構成でよい。
次に、図11は、ページバッファ102cにおけるPB ユニットの内部の回路構成を示す図である。なお、図11において、図4、及び図5と同じ部分は同一の符号を付し、その説明を省略する。
図5に示すPB ユニットの構成と相違する部分を具体的に説明する。図11に示すPB ユニットは、図5に示すPB ユニットから、トランジスタ61b、トランジスタ61c、スイッチ69、インバータ回路67の入力をプルアップ処理するPMOSトランジスタ、アンド回路71を削除した構成である。また、図11に示すPB ユニットでは、選択信号Sel_Bが入力されない構成となることにより、図5に示すオア回路66は、図11に示すPB ユニットではアンド回路66aとなり、アンド回路66aの第1入力端子は、選択信号Sel_Aの配線に接続される。
このように、ページバッファ102cのPB ユニットについては、この図11に示すように、Data_In_Bバス、及びData_Out_Bバスに係る部分を省略した形式をとることができる。
もっとも、PB ユニットを、図4または図5に示す構成のまま、選択信号Sel_BをLowレベルに固定(Lo Fix)とすることにより、Data_In_Bバス、及びData_Out_Bバスを使用しないようにする構成してもよい。この場合、Data_B102cは、Data_In_Bバス、及びData_Out_Bバスであり、ECC_Bus_1とPB ユニットのPB制御回路60とを接続するインターフェースと言える。ただし、ECC_Bus_1とPB ユニットのPB制御回路60とは実際には接続されることはない。
次に、図12は、ページバッファ102bにおけるPB ユニットの内部の回路構成を示す図である。図12において、図5と同一の部分については同一の符号を付し、その説明な詳細は省略する。図12に示すPB ユニットは、図5に示すPB ユニットに対して、CR/PCR Info.(CR/PCR情報格納部)70と、CR/PCR Selector(CR/PCRセレクタ部)75とを追加した構成となっている。CR/PCR情報格納部70は、このPB ユニットがCR用(Mainの不良ビット救済用、つまりページバッファ102aのPB ユニット救済用)とPCR用(Parityの不良ビット救済用、つまりページバッファ102cのPB ユニット救済用)のいずれか一方に割り当てられたかを示す情報を保持する。また、CR/PCRセレクタ部75は、CR/PCR情報格納部70が保持する、PB ユニットがCR用とPCR用のいずれか一方に割り当てられたかを示す情報に基づいて、Data_In_Aバス、及びData_In_BバスとPB制御回路60との接続、或いはData_Out_Aバス、及びData_Out_BバスとPB制御回路60との接続を切り替える。
まず、図12を参照して、CR/PCR情報格納部70の回路構成について説明し、このCR/PCR情報格納部70への電源投入時におけるデータラッチ処理について説明する。なお、このデータラッチ処理は一例であり、この一例では、選択信号Sel_Aに関連付けた不良情報を、NAND型フラッシュメモリ20の例えばシステム用記憶領域に記録し、これを不良情報格納部90aに対応するラッチ、及びCR/PCR情報格納部70へ転送する動作を説明する。なお、不良情報格納部90aの回路構成については、図4、及び図5を用いて説明したので、その説明を省略する。
CR/PCR情報格納部70は、インバータ回路112、インバータ回路113、トランジスタ114、トランジスタ115、トランジスタ116、及びトランジスタ117から構成される。ここで、トランジスタ114、トランジスタ115、トランジスタ116、及びトランジスタ117は、Nチャネル型MOSトランジスタである。
CR/PCR情報格納部70において、ラッチ部は、インバータ回路112とインバータ回路113とから構成されている。ここで、インバータ回路112は、出力端子が接続点N6においてインバータ回路113の入力端子に接続され、入力端子が接続点N5においてインバータ回路113の出力端子に接続されている。
この接続点N5には、ラッチ部が記憶するデータが、CR/PCR Selector75における接続制御を行う切替信号Sel_CRとして現れる。また、接続点N6は、ラッチ部が記憶するデータが、CR/PCR Selector75における接続制御を行う切替信号Sel_PCRとして現れる。
CR/PCR情報格納部70において、ラッチ部は、インバータ回路112とインバータ回路113とから構成されている。ここで、インバータ回路112は、出力端子が接続点N6においてインバータ回路113の入力端子に接続され、入力端子が接続点N5においてインバータ回路113の出力端子に接続されている。
この接続点N5には、ラッチ部が記憶するデータが、CR/PCR Selector75における接続制御を行う切替信号Sel_CRとして現れる。また、接続点N6は、ラッチ部が記憶するデータが、CR/PCR Selector75における接続制御を行う切替信号Sel_PCRとして現れる。
CR/PCR情報格納部70において、センシング部は、トランジスタ114、トランジスタ115、トランジスタ116、及びトランジスタ117から構成される。
トランジスタ114は、ドレインが接続点N5に接続され、ゲートが、パリティアドレス信号Parity_Addr(不良該当AddressがParity領域内にある場合にHレベルとなる信号)の配線に接続され、ソースがトランジスタ115のドレインに接続されている。
トランジスタ115は、ドレインがトランジスタ114のソースに接続され、ゲートが不良情報信号SDIの配線に接続され、ソースがトランジスタ117のドレインに接続されている。
トランジスタ116は、ドレインが接続点N6に接続され、ゲートが不良情報信号nSDIの配線に接続され、ソースがトランジスタ117のドレインに接続されている。
トランジスタ117は、ドレインがトランジスタ115のソース、及びトランジスタ116のソースに接続され、ゲートがパワーオンリセット信号POR_Modeの配線に接続され、ソースが接地されている。
トランジスタ114は、ドレインが接続点N5に接続され、ゲートが、パリティアドレス信号Parity_Addr(不良該当AddressがParity領域内にある場合にHレベルとなる信号)の配線に接続され、ソースがトランジスタ115のドレインに接続されている。
トランジスタ115は、ドレインがトランジスタ114のソースに接続され、ゲートが不良情報信号SDIの配線に接続され、ソースがトランジスタ117のドレインに接続されている。
トランジスタ116は、ドレインが接続点N6に接続され、ゲートが不良情報信号nSDIの配線に接続され、ソースがトランジスタ117のドレインに接続されている。
トランジスタ117は、ドレインがトランジスタ115のソース、及びトランジスタ116のソースに接続され、ゲートがパワーオンリセット信号POR_Modeの配線に接続され、ソースが接地されている。
ここで、不良情報信号SDI、及び不良情報信号nSDIは、PB制御回路60に接続されるビット線、当該ビット線に接続されるメモリセルトランジスタに不良が有るか否かを示す信号である。これらの不良情報信号は、製造後のテストにおいて、PB制御回路60に接続されるビット線等に不良が有る場合、不良情報信号SDIがデータ0(Lレベル)、不良情報信号nSDIがデータ1(Hレベル)とされ、PB制御回路60に接続されるビット線等に不良が有る場合、不良情報信号SDIがHレベル、不良情報信号nSDIがLレベルとされる。そして、これらの不良情報信号は、テスト後の製品出荷前において、PB制御回路60の位置を示す選択信号Sel_Aに関連付けられて、NAND型フラッシュメモリ20の例えばシステム用記憶領域に格納される。
また、パワーオンリセット信号POR_Modeは、NAND型フラッシュメモリ20の電源投入後の所定期間(不良情報信号をシステム用記憶領域からPB制御回路60に転送する期間)、Hレベルを維持する信号である。
また、パワーオンリセット信号POR_Modeは、NAND型フラッシュメモリ20の電源投入後の所定期間(不良情報信号をシステム用記憶領域からPB制御回路60に転送する期間)、Hレベルを維持する信号である。
以上の構成により、不良情報格納部90a、及びCR/PCR情報格納部70は、NAND型フラッシュメモリ20の電源投入後に、PB制御回路60に接続されるビット線等に不良が有る場合、パワーオンリセット信号POR_Mode、パリティアドレス信号Parity_AddrがHレベルとなることにより、トランジスタ94がオフ、トランジスタ115、及びトランジスタ116の一方がオフ、トランジスタ95がオン、トランジスタ115、及びトランジスタ16の他方がオンする。これにより、ノードN3がHレベル、ノードN5、及びノードN6の一方がHレベル、ノードN4がLレベル、ノードN5、及びノードN6の他方がLレベルとなり、欠陥信号PB_DefcetがHレベル、切替信号Sel_CR、及び切替信号Sele_PCRの一方がHレベルとなる。そして、不良情報格納部90a、及びCR/PCR情報格納部70は、転送期間終了後、パワーオンリセット信号POR_ModeがLレベルとなることにより、以降のNAND型フラッシュメモリ20に電源が投入されている期間、欠陥信号PB_DefcetをHレベル、切替信号Sel_CR、及び切替信号Sele_PCRの一方をHレベルに維持する。
また、CR/PCR情報格納部70は、NAND型フラッシュメモリ20の電源投入後に、PB制御回路60に接続されるビット線等に不良がない場合、パワーオンリセット信号POR_ModeがHレベルとなることにより、トランジスタ94がオン、トランジスタ95がオフする。これにより、ノードN3がLレベル、ノードN4がHレベルとなり、欠陥信号PB_DefcetがLレベルとなる。そして、不良情報格納部90aは、転送期間終了後、パワーオンリセット信号POR_ModeがLレベルとなることにより、以降のNAND型フラッシュメモリ20に電源が投入されている期間、欠陥信号PB_DefcetをLレベルに維持する。
一方、CR/PCR情報格納部70については、この例では電源投入後のラッチ処理における初期値の設定をノードN5(切替信号Sel_CR)がHレベルとなるように設定するとする。パワーオンリセット信号POR_ModeがHレベルとなることにより、トランジスタ115がオン、トランジスタ116がオフする。これにより、パリティアドレス信号Parity_AddrがHレベル(PB ユニット(CR/PCRユニット)の置換元の不良ビットアドレスがParity領域であればHレベルとなる)であれば、ノードN5(切替信号Sel_CR)がLレベル、ノードN6(切替信号Sel_PCR)がHレベルとなる。一方、パリティアドレス信号Parity_AddrがLレベル(置換元の不良ビットアドレスがParity領域でなければLレベルとなる)であれば、ノードN5(切替信号Sel_CR)がHレベル、ノードN6(切替信号Sel_PCR)がLレベルとなる。そして、不良情報格納部90aは、転送期間終了後、パワーオンリセット信号POR_ModeがLレベルとなることにより、以降のNAND型フラッシュメモリ10に電源が投入されている期間、欠陥信号PB_DefcetをLレベルに維持する。
このように、CR/PCR情報格納部70は、PBユニットがCR用のPB ユニットとして設定された場合は、切替信号Sel_CRがHレベル、PCR用のPB ユニットとして設定された場合は、切替信号Sel_PCRがHレベルとなるよう動作する。
また、CR/PCRセレクタ部75は、以下の回路構成を有している。
CR/PCRセレクタ部75は、トランジスタ118、トランジスタ119、トランジスタ120、及びトランジスタ121から構成される。これらのトランジスタは、Nチャネル型MOSトランジスタである。
トランジスタ118は、ドレインがトランジスタ61cのソース、ゲートが切替信号Sel_CRの配線に接続され、ソースがData_Out_Bバス(データ読み出し信号Data_Out_Bを転送する配線)に接続される。
トランジスタ119は、ドレインまたはソースの一方がData_Out_Aバス(データ読み出し信号Data_Out_Aを転送する配線)、ゲートが切替信号Sel_PCRの配線に接続され、ドレインまたはソースの他方がトランジスタ118のドレインに接続される。
なお、Data_Out_Aバス、Data_Out_Bバスには、それぞれPull Up回路が接続されている。
CR/PCRセレクタ部75は、トランジスタ118、トランジスタ119、トランジスタ120、及びトランジスタ121から構成される。これらのトランジスタは、Nチャネル型MOSトランジスタである。
トランジスタ118は、ドレインがトランジスタ61cのソース、ゲートが切替信号Sel_CRの配線に接続され、ソースがData_Out_Bバス(データ読み出し信号Data_Out_Bを転送する配線)に接続される。
トランジスタ119は、ドレインまたはソースの一方がData_Out_Aバス(データ読み出し信号Data_Out_Aを転送する配線)、ゲートが切替信号Sel_PCRの配線に接続され、ドレインまたはソースの他方がトランジスタ118のドレインに接続される。
なお、Data_Out_Aバス、Data_Out_Bバスには、それぞれPull Up回路が接続されている。
トランジスタ120は、ドレインがトランジスタ69のソース(図5ではスイッチ69の第2入力端子)、ゲートが切替信号Sel_CRの配線に接続され、ソースがData_In_Bバス(データ書き込み信号Data_In_Bを転送する配線)に接続される。
トランジスタ121は、ドレインまたはソースの一方がData_In_Aバス(データ書き込み信号Data_In_Aを転送する配線)、ゲートが切替信号Sel_PCRの配線に接続され、ドレインまたはソースの他方がトランジスタ120のドレインに接続される。
トランジスタ121は、ドレインまたはソースの一方がData_In_Aバス(データ書き込み信号Data_In_Aを転送する配線)、ゲートが切替信号Sel_PCRの配線に接続され、ドレインまたはソースの他方がトランジスタ120のドレインに接続される。
なお、図12において、CR/PCR情報格納部70とCR/PCRセレクタ部75とは、図5に示すPB ユニットに追記した構成となっているが、図4に示すPB ユニットに追記する構成としてもよい。また、CR/PCR情報格納部70とCR/PCRセレクタ部75とは、回路配置的にPB ユニットに組み込まれる必要はなく、PB ユニットとは個別にする構成としてもよい。また、CR/PCR情報格納部70は、他の等価的な論理回路、例えばフリップフロップ等によっても構成可能である。
続いて、以上のような構成を有するPB ユニットの回路動作について説明する。なお、PBユニットがCR用のPB ユニットとして設定され、CR用のPB ユニットとして使用される場合は、NAND型フラッシュメモリ10と変わらないので動作説明を省略する。ここでは、PBユニットがPCR用のPB ユニットとして設定され、PCR用のPB ユニットとして使用される場合について説明する。
PCR用のPB ユニットとして使用する場合は、上述の通り、切替信号Sel_PCRがHレベルとなるようデータがラッチされている。
この状態で第1の動作モード(選択信号Sel_Bを用いるECC動作モード)でPB制御回路60にアクセスした場合、データ書き込み動作のときは、データ書き込み信号Data_In_Aがトランジスタ121を経由してPB制御回路60に取り込まれ、データ書き込み信号Data_In_Bは無視される。データ読み出し動作のときは、PB制御回路60からのデータが、トランジスタ119を経由してData_Out_Aバスに出力され、同時にData_Out_BバスにはPull Up回路による固定値が出力されることになる。
一方、第2の動作モード(選択信号Sel_Aを用いる通常動作モード)の場合は、NAND型フラッシュメモリ10と同様に、PB制御回路60はデータ書き込み動作のときは、Data_In_Aバスと、データ読み出し動作のときはData_Out_Aバスとデータのやりとりを行う。
この状態で第1の動作モード(選択信号Sel_Bを用いるECC動作モード)でPB制御回路60にアクセスした場合、データ書き込み動作のときは、データ書き込み信号Data_In_Aがトランジスタ121を経由してPB制御回路60に取り込まれ、データ書き込み信号Data_In_Bは無視される。データ読み出し動作のときは、PB制御回路60からのデータが、トランジスタ119を経由してData_Out_Aバスに出力され、同時にData_Out_BバスにはPull Up回路による固定値が出力されることになる。
一方、第2の動作モード(選択信号Sel_Aを用いる通常動作モード)の場合は、NAND型フラッシュメモリ10と同様に、PB制御回路60はデータ書き込み動作のときは、Data_In_Aバスと、データ読み出し動作のときはData_Out_Aバスとデータのやりとりを行う。
図13は、CR/PCR情報格納部70の保持するデータにより、Data Bus、及びECC Busのいずれのバスを用いてデータのやり取りを行うかを整理した図である。上述の通り、続いて動作を説明するNAND型フラッシュメモリ20では、図12に示すページバッファ102bのPB ユニットを、図13に示すデータバスを用いてCR/PCR情報格納部70の保持するデータにより動作させることが重要である。なお、図12に示すPB ユニットは、NMOSのスイッチ(トランジスタ119、121)を利用して、図13に示す動作を実現するPB ユニットの例であるが、NMOSのスイッチに変えて論理回路を実装して同等の機能を実現してもよい。
続いて、NAND型フラッシュメモリ20の動作について、図面を参照して説明する。
図14は、NAND型フラッシュメモリ20におけるページバッファ102を構成する各ページバッファを説明するための図である。
図14(a)は、本実施形態のNAND型フラッシュメモリ20の動作におけるECCコード構成とPB ユニットとの関係を示している。PB ユニットは、本実施形態では合計320個存在し、Add_Aのアドレス空間においては1アドレスに1個のPB ユニットが割り当てられ、図14(a)に示すように0〜319のアドレスAdd_A(PB ユニットを選択する選択信号Sel_A;第2選択アドレス)が、それぞれPB ユニット0〜PB ユニット319に割り当てられている。
図14は、NAND型フラッシュメモリ20におけるページバッファ102を構成する各ページバッファを説明するための図である。
図14(a)は、本実施形態のNAND型フラッシュメモリ20の動作におけるECCコード構成とPB ユニットとの関係を示している。PB ユニットは、本実施形態では合計320個存在し、Add_Aのアドレス空間においては1アドレスに1個のPB ユニットが割り当てられ、図14(a)に示すように0〜319のアドレスAdd_A(PB ユニットを選択する選択信号Sel_A;第2選択アドレス)が、それぞれPB ユニット0〜PB ユニット319に割り当てられている。
ここで、PB ユニット0〜PB ユニット255(ページバッファ102a)は、Main Data部でユーザーが読み書きを行うことのできる領域である。また、PB ユニット256〜287はCR/PCR用のPB ユニット255(ページバッファ102b)であり、ページバッファ102aまたはページバッファ102cにおける不良ビット線の置換先として用意されている。PB ユニット288〜PB ユニット319はECC Parityの領域(ページバッファ102c)である。ここで、ECCコードのECC Data部はPB ユニット0〜PB ユニット287のデータとし、Parity部はPB ユニット288〜PB ユニット319のデータとする。
また、図14(b)は、PB ユニット1およびPB ユニット289が不良ビットを含むPBユニットであるとし、それぞれCR/PCR用のPB ユニットのPB ユニット256、PB ユニット287のPBユニットへと置換されるように設定した例を示している。
図15は、アドレス空間Add_Aとアドレス空間Add_Bとの構成を示す図である。Add_B空間は、PBユニットを複数まとめて1つのアドレスAdd_B(PB ユニットを選択する選択信号Sel_B;第1選択アドレス)に割り当てている。例えば、Add_B_0(Add_B空間の0番地)では、Add_A空間でいうところのPB ユニット0、PB ユニット32、PB ユニット64、PB ユニット96、PB ユニット128、PB ユニット160、PB ユニット192、PB ユニット224、PB ユニット256,及び、PB ユニット288の10個のPB ユニットで1アドレスが構成されている。また、例えば、Add_B_1ではPB ユニット1、PB ユニット33、PB ユニット65、・・・といったように、同じく10個のPB ユニットで1アドレスが構成されている。これにより、ページバッファ102を構成するPB ユニット0〜PB ユニット319とECC回路(ECC Engine)とのデータの受け渡しを、Add_Aで行うとすると単純に320回のアクセスを行わなければならないが、Add_Bで行うとすると32回のアクセスで済むことになる。
なお、上述のように、Add_Aの空間を利用して、簡単のために1アドレス1ビット構成としているが、1アドレス8ビット(8IO)や16ビット(16ビット)などの多ビットの構成としてもよい。この場合、これはPB ユニットをビット数分準備することにより構成できる。また、例示したアドレス空間は変更することができ、PB ユニットを複数配置して複数アドレスの並列動作が可能な構成なども含まれる。
図16は、NAND型フラッシュメモリ20におけるカラム置換回路104の構成を示す図である。
カラム置換回路104は、図16(a)に示すアドレス比較部104_1と、図16(b)に示すデータバス置換部104_2とから構成される。
アドレス比較部104_1は、Address Conversion Circuit(アドレス比較回路)104_1a、Address Comparison Circuit(アドレス変換回路)104_1b、トランスファーゲートTGN、トランスファーゲートTGEから構成される。
アドレス比較回路104_1aは、入力されるアドレスAdd_Aと回路内部に保存されている不良ビット情報とを比較し、一致した場合、該当する置換先のCR_Hit信号を出力する。一方、アドレス比較回路104_1aは、一致しない場合、ヒットしないことを示す、例えばHレベルのNO_CR_Hit信号を出力する。
カラム置換回路104は、図16(a)に示すアドレス比較部104_1と、図16(b)に示すデータバス置換部104_2とから構成される。
アドレス比較部104_1は、Address Conversion Circuit(アドレス比較回路)104_1a、Address Comparison Circuit(アドレス変換回路)104_1b、トランスファーゲートTGN、トランスファーゲートTGEから構成される。
アドレス比較回路104_1aは、入力されるアドレスAdd_Aと回路内部に保存されている不良ビット情報とを比較し、一致した場合、該当する置換先のCR_Hit信号を出力する。一方、アドレス比較回路104_1aは、一致しない場合、ヒットしないことを示す、例えばHレベルのNO_CR_Hit信号を出力する。
トランスファーゲートTGNは、通常動作モード(第2の動作モード)時にHレベルとなるモード信号Normal_Modeが入力されると、Add_A(選択信号Sel_A)を通過させ、アドレス比較回路104_1aにアドレスAdd_Aを入力する。
一方、トランスファーゲートTGEは、ECC動作モード(第1の動作モード)時にHレベルとなるモード信号ECC_Modeが入力されると、Add_A_Parityを通過させ、アドレス比較回路104_1aにアドレスAdd_Aを入力する。
アドレス変換回路104_1bは、Add_B(選択信号Sel_B)を、ECC_ParityのAdd_A空間における値であるAdd_A_Parityに変換して、変換後のAdd_A_ParityをトランスファーゲートTGEに対して出力する。
一方、トランスファーゲートTGEは、ECC動作モード(第1の動作モード)時にHレベルとなるモード信号ECC_Modeが入力されると、Add_A_Parityを通過させ、アドレス比較回路104_1aにアドレスAdd_Aを入力する。
アドレス変換回路104_1bは、Add_B(選択信号Sel_B)を、ECC_ParityのAdd_A空間における値であるAdd_A_Parityに変換して、変換後のAdd_A_ParityをトランスファーゲートTGEに対して出力する。
データバス置換部104_2は、トランスファーゲートTGW_NH、トランスファーゲートTGW_0〜トランスファーゲートTGW_31、トランスファーゲートTGR_NH、トランスファーゲートTGR_0〜トランスファーゲートTGR_31から構成される。
トランスファーゲートTGW_NH、トランスファーゲートTGW_0〜トランスファーゲートTGW_31は、アドレス比較回路104_1aから対応するCR_Hit信号が入力されると、Data Bus_2(Write)または置換先のData_In_A_256バス〜Data_In_A_287バスのうち、1つのデータバスと、Data Bus_3(Write)とを接続する。ここで、Data Bus_2(Write)、Data Bus_3(Write)は、それぞれ図10に示すData Bus_2、Data Bus_3のデータ書き込み信号が転送される配線である。また、Data_In_A_256バス〜Data_In_A_287バスは、それぞれPB ユニット256〜PB ユニット287のData_In_Aバス(図12参照)である。
トランスファーゲートTGR_NH、トランスファーゲートTGR_0〜トランスファーゲートTGR_31は、アドレス比較回路104_1aから対応するCR_Hit信号が入力されると、Data Bus_2(Read)または置換先のData_Out_A_256バス〜Data_Out_A_287バスのうち、1つのデータバスと、Data Bus_3(Read)とを接続する。ここで、Data Bus_2(Read)、Data Bus_3(Read)は、それぞれ図10に示すData Bus_2、Data Bus_3のデータ読み出し信号が転送される配線である。また、Data_Out_A_256バス〜Data_Out_A_287バスは、それぞれPB ユニット256〜PB ユニット287のData_Out_Aバス(図12参照)である。
上述の様にNAND型フラッシュメモリ20では、Parity専用の冗長領域(図1に示すページバッファ102d)を不要とし、さらにParity部(ページバッファ102c)の不良ビットをCR/PCR置換用のPBユニット(ページバッファ102b)と置換するパリティカラム置換回路105を不要とする。以下、NAND型フラッシュメモリ20のECC動作モード(第1の動作モード)について説明する。
[エンコード動作]
なお、エンコード動作の説明では、NAND型フラッシュメモリ10の説明との重複を防ぐため、ユーザーがI/Oパッド106からデータ入力し、各PBユニットにデータが格納された状態から、エンコードを開始するところから説明する。
エンコード動作では、PB ユニットに格納されたデータをECC回路107へ転送し、Parity(パリティデータ)を生成し、PB ユニットへ書き戻す動作をする。
Add_B空間は、図15に示す様になっており、10個のPBユニットのデータが同時にECC回路107へ転送される。ここで、ECC Data部(ページバッファ102a、及びページバッファ102b)の9個のPB ユニットについては、ECC_Bus_1、 ECC_Bus_2を経由し、不良ビット救済を行わない経路にて転送される。
ECC_Parity部(ページバッファ102c)のPB ユニットは、Data_Bus_1、 Data_Bus_2、 Data_Bus_3を経由して転送され、不良ビットは、カラム置換回路104において正常ビットと置換される。
[エンコード動作]
なお、エンコード動作の説明では、NAND型フラッシュメモリ10の説明との重複を防ぐため、ユーザーがI/Oパッド106からデータ入力し、各PBユニットにデータが格納された状態から、エンコードを開始するところから説明する。
エンコード動作では、PB ユニットに格納されたデータをECC回路107へ転送し、Parity(パリティデータ)を生成し、PB ユニットへ書き戻す動作をする。
Add_B空間は、図15に示す様になっており、10個のPBユニットのデータが同時にECC回路107へ転送される。ここで、ECC Data部(ページバッファ102a、及びページバッファ102b)の9個のPB ユニットについては、ECC_Bus_1、 ECC_Bus_2を経由し、不良ビット救済を行わない経路にて転送される。
ECC_Parity部(ページバッファ102c)のPB ユニットは、Data_Bus_1、 Data_Bus_2、 Data_Bus_3を経由して転送され、不良ビットは、カラム置換回路104において正常ビットと置換される。
詳細に説明するために、図15に示すAdd_B_1のデータ転送を行う場合を考える。図15に示す、Add_A空間におけるPB ユニット1、PB ユニット33、PB ユニット65、・・・、PB ユニット225、PB ユニット257に格納されたデータは、ECC_Busを経由して転送されるが、PB ユニット1は、不良ビットを含むため固定値を出力する。不良PBユニット289はECC_Parity部(ページバッファ102c)であるので、PBユニットのData_A部(インターフェース部)からData_Bus_1、Data_Bus_2を経由し、カラム置換回路104に固定値を渡す。
また、PBユニット289の置換先として割り当てられたPBユニット287は、図12における切替信号Sel_PCRがHレベルになっているはずであり、Data_Out_AバスからData_Bus_1、Data_Bus_2を経由し、カラム置換回路104へデータを渡す。
また、PBユニット289の置換先として割り当てられたPBユニット287は、図12における切替信号Sel_PCRがHレベルになっているはずであり、Data_Out_AバスからData_Bus_1、Data_Bus_2を経由し、カラム置換回路104へデータを渡す。
ここで、カラム置換回路104にはAdd_A空間のアドレス値289が与えられており、またAdd_Aにおける289は不良であり、287と置換する設定がされていることから、PBユニット289のデータはPBユニット287に置換されてECC回路107へ転送される。なお、ここでは、まだParity(パリティデータ)生成前なので、この転送動作は省略することができる。
そしてAdd_B_31まで繰り返し動作することで、ECCへのデータ転送は完了し、Parityが生成される。前述のように、PBユニット287はECC_Parityの置換先として指定されているため、Add_B_31のときにECC_Dataとして読み出されるときには、前述の図12における切替信号Sel_PCRがHレベルで、切替信号Sel_CRがLレベルであるから、Data_Out_Bバスには固定値が出力されるため、結果的にECC回路107のECC Data部には固定値が読み出される。
Parity(パリティデータ)を生成した後、PBユニットへ書き戻しを行う場合も、同様の経路にて行われる。なお、Add_B_1のとき、ECC_Data部は書き戻しをしなくてもよいが、書き戻す場合、不良ビットを含むPB ユニット1は書き込みが許可されない。一方、PB ユニット33、PB ユニット65、・・・、PB ユニット225、PB ユニット257にはDataが書き戻される。
Ecc_Parity(パリティデータ)は、図10に示すように、ECC回路107からData_Bus_3へ出力される。
Ecc_Parity(パリティデータ)は、図10に示すように、ECC回路107からData_Bus_3へ出力される。
カラム置換回路104においては、Add_B_1の場合、図15に示すように、ECC_ParityのAdd_A空間における値は289であるので、Add_Bは1を示し、Add_A_Parityは289を示すことになる。この値がAdd_Aとなり、アドレス比較部104_1のアドレス比較回路104_1aに入力される。図14(b)に示すように、289は不良ビットであり287と置換することにしているので、アドレス比較回路104_1aにおいてアドレスと不良ビット情報との比較は一致する。この比較結果により、アドレス比較回路104_1aは、CR_Hit_31についてはHレベル、その他の出力はLレベルを出力する。
このCR_Hit_31は、図16(b)に示すトランスファーゲートTGW_31に入力され、トランスファーゲートTGW_31はData_Bus_3(Write)とData_In_A_287バスとを電気的に接続する。
従って、ECC回路107から出力されたParityデータは、Add_B空間からAdd_A空間へ変換されたアドレスをカラム置換回路104に入力することにより、置換動作が可能となる。なお、置換がない場合は、No_CR_HitがHレベル、その他がLレベルとなり、Data_Bus_3(Write)とData_Bus_2とが電気的に接続され、ECC_Bus_2からカラムコーディング回路103に入力される。カラムコーディング回路103に与えるアドレスも、カラム置換回路104で示されるようにECC_ParityのAdd_A空間における値Add_Aが与えられるため、該当するParity用PBユニットが選択されParityが格納される。
従って、ECC回路107から出力されたParityデータは、Add_B空間からAdd_A空間へ変換されたアドレスをカラム置換回路104に入力することにより、置換動作が可能となる。なお、置換がない場合は、No_CR_HitがHレベル、その他がLレベルとなり、Data_Bus_3(Write)とData_Bus_2とが電気的に接続され、ECC_Bus_2からカラムコーディング回路103に入力される。カラムコーディング回路103に与えるアドレスも、カラム置換回路104で示されるようにECC_ParityのAdd_A空間における値Add_Aが与えられるため、該当するParity用PBユニットが選択されParityが格納される。
[デコード動作]
デコード動作では、PBユニットに格納されているメモリセルアレイから読み出したデータをECCへ転送し、誤り訂正を行い、PBユニットへ書き戻す動作を行う。なお、PBユニットからのECC回路107へのデータの転送においては、エンコード時とほぼ同じなので適宜、説明を省略する。ECC_Parity部のPB ユニットのデータは、Data_Bus_1、Data_Bus_2、Data_Bus_3を経由して転送され、不良ビットはカラム置換回路104において正常ビットと置換される。エンコード時は、この動作はしなくてもよかったが、デコード時にはすべてのParity部を正しくECCへ転送するために必要である。
デコード動作では、PBユニットに格納されているメモリセルアレイから読み出したデータをECCへ転送し、誤り訂正を行い、PBユニットへ書き戻す動作を行う。なお、PBユニットからのECC回路107へのデータの転送においては、エンコード時とほぼ同じなので適宜、説明を省略する。ECC_Parity部のPB ユニットのデータは、Data_Bus_1、Data_Bus_2、Data_Bus_3を経由して転送され、不良ビットはカラム置換回路104において正常ビットと置換される。エンコード時は、この動作はしなくてもよかったが、デコード時にはすべてのParity部を正しくECCへ転送するために必要である。
詳細に説明するために、Add_B_1のデータ転送を行う場合を考える。図16(a)のアドレス変換回路104_1bに入力されるAdd_Bは1で、図5に示すように変換されたAdd_A_Parityは289となる。そして、このときはモード信号ECC_ModeはHレベルであり、この289がAdd_Aとしてアドレス比較回路104_1aに与えられる。アドレス比較回路104_1aでは、Add_Aの289は不良ビットアドレスと一致するので、CR_Hit_31をHレベル、その他はLレベルとして出力する。図6(b)に示すバス置換部104_2において、Add_AにおけるPBユニット289のデータが置換されて、本来PBユニット287に保存されるべきであったデータがECC_Bus_3に出力され、そしてECC回路107へ転送される。
そして、図15に示すAdd_B_31まで繰り返し動作することで、ECC回路107へのデータ転送は完了し、誤り訂正が行われ、PBユニットへの書き戻しが行われる。このときの動作はエンコード時のParityの書き戻しと同じなので、説明を省略する。
なお、デコード時のデータの書き戻しについては、訂正後のデータをPBユニットに書き戻す方式だけでなく、たとえば誤りの検出されたビットにHレベル、誤りのなかったビットにはLを与えるようなデータをPB ユニットに送り、PB ユニットにおいて、メモリアレイから読み出したデータとこの誤り検出データの排他的論理演算をすることで、誤りの検出されたビットだけ反転させるような方式にも適用可能である。
なお、デコード時のデータの書き戻しについては、訂正後のデータをPBユニットに書き戻す方式だけでなく、たとえば誤りの検出されたビットにHレベル、誤りのなかったビットにはLを与えるようなデータをPB ユニットに送り、PB ユニットにおいて、メモリアレイから読み出したデータとこの誤り検出データの排他的論理演算をすることで、誤りの検出されたビットだけ反転させるような方式にも適用可能である。
NAND型フラッシュメモリ20は、ECC Bus(第1のデータバス)と、第1のデータバスと異なる本数から構成され、第1のデータバスとは独立して設けられるData Bus(第2のデータバス)と、を備える。また、NAND型フラッシュメモリ20は、第1の動作モードによりメモリセルとの間でデータを転送する場合、複数のビット線のうち第1のデータバスと同じ本数のビット線と、第1のデータバスとを接続してデータを転送し、一方、第2の動作モードによりメモリセルとの間でデータを転送する場合、複数のビット線のうち第2のデータバスと同じ本数のビット線と、第2のデータバスとを接続してデータを転送するページバッファ102(データ転送部)を備える。データ転送部は、通常メモリセルに接続される通常ビット線のデータをラッチするページバッファ102a(第1のページバッファ)と、パリティメモリセルに接続されるパリティビット線のデータをラッチするページバッファ102c(第2のページバッファ)と、を含む。また、第1のページバッファに接続される通常メモリセル或いは通常ビット線に不良が有る場合に、通常メモリセル、及び通常ビット線とともに置換され、または、第2のページバッファに接続されるパリティメモリセル或いはパリティビット線に不良が有る場合に、パリティメモリセル、及びパリティビット線とともに置換される、ページバッファ(第3のページバッファ)を含む。第1のデータバスは、第1のページバッファ、及び第3のページバッファと接続され、第2のデータバスは、第1のページバッファ、第2のページバッファ、及び第3のページバッファと接続される。
また、ページバッファ102b(第3のページバッファ)は、第1のページバッファ、及び第2のページバッファのいずれか一方の置換先として置換されたかを示す識別データが予め書き込まれており、識別データに応じて第1のページバッファまたは第2のページバッファとしての動作を実行する。
また、NAND型フラッシュメモリ20は、第1のデータバスに接続されるとともに、パリティデータ入出力部に入力される第2のページバッファの出力データに基づき、データ入出力部に入力される第1のページバッファの出力データの誤りを訂正するECC回路107を備える。また、NAND型フラッシュメモリ20は、第1のデータバスに接続されるとともに、ECCモードにおいて、第2のページバッファのうちパリティメモリセルまたはパリティビット線に不良があるページバッファを第3のページバッファに置換するパリティカラム置換回路105と、を備える。
第3のページバッファは、識別データ(切替信号Sel_PCR)が第2のページバッファの置換先として置換されたことを示す場合、第1の動作モードのデータ読み出しにおいて選択されると、ECC回路107のデータ入出力部に固定データをData_Out_B_CRバス(第1のデータバス)を介して出力するとともに、ECC回路107のパリティデータ入出力部にパリティデータを、Data_Out_B_PCRバス(第1のデータバス)、及びパリティカラム置換回路105(救済置換回路)を介して出力する。一方、第1の動作モードのデータ書き込み動作において選択されると、ECC回路107のデータ入出力部からのデータ書き込み信号Data_In_CR(データ)の書き込みを許可せず、ECC回路107のパリティデータ入出力部からのパリティデータが入力される。
NAND型フラッシュメモリ20によれば、次の効果が得られる。
(1)Parity専用の置換領域PCR(NAND型フラッシュメモリ20のページバッファ102d)が不要となり、設計コスト、テストコスト、面積縮小によるコスト削減が可能となる。
(2)Parity専用の不良置換機構(NAND型フラッシュメモリ20のパリティカラム置換回路105)が不要になり、設計コスト、面積縮小によるコスト削減が可能となる。
(3)上記(1)、及び(2)に記載の効果を有しつつ、ECC_Data部とECC_Parity部を同じ時刻に読み出しもしくは書き込みすることが可能であり、処理速度の面でも優位性を持つ。
(1)Parity専用の置換領域PCR(NAND型フラッシュメモリ20のページバッファ102d)が不要となり、設計コスト、テストコスト、面積縮小によるコスト削減が可能となる。
(2)Parity専用の不良置換機構(NAND型フラッシュメモリ20のパリティカラム置換回路105)が不要になり、設計コスト、面積縮小によるコスト削減が可能となる。
(3)上記(1)、及び(2)に記載の効果を有しつつ、ECC_Data部とECC_Parity部を同じ時刻に読み出しもしくは書き込みすることが可能であり、処理速度の面でも優位性を持つ。
(4)また、Add_A空間のみ使用してECCを実行した場合、図15に示すアドレス割付の例であれば、320回の読み出しと320回の書き込みを行う必要がある。本発明では32回の読み出しと32回の書き込みで処理でき、処理時間を10分の1にできる。アドレス割付によって処理時間は変わるが、Add_Bのバス幅を広げるような割付を選べばより短縮できる効果が得られる。
(5)ECC用のアドレスAdd_Bの割付けにおいて、ECC_Parityの部分は、カラム置換回路104にAdd_Aの割付けで与えれることができる範囲で、自由にAdd_Bを設定できる。
(5)ECC用のアドレスAdd_Bの割付けにおいて、ECC_Parityの部分は、カラム置換回路104にAdd_Aの割付けで与えれることができる範囲で、自由にAdd_Bを設定できる。
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
10,20,80…NAND型フラッシュメモリ、101…メモリアレイ、102,102a,102b,102c,102d,82,82a,82b…ページバッファ、83,103,108…カラムコーディング回路、84,104…カラム置換回路、105…パリティカラム置換回路、107…ECC回路、106,106c…I/Oパッド
Claims (4)
- 第1のデータバスと、
前記第1のデータバスと異なる本数から構成され、前記第1のデータバスとは独立して設けられる第2のデータバスと、
第1の動作モードによりメモリセルとの間でデータを転送する場合、複数のビット線のうち前記第1のデータバスと同じ本数のビット線と、前記第1のデータバスとを接続してデータを転送し、
一方、第2の動作モードによりメモリセルとの間でデータを転送する場合、複数のビット線のうち前記第2のデータバスと同じ本数のビット線と、前記第2のデータバスとを接続してデータを転送するデータ転送部と、
を備え、
前記データ転送部は、
通常メモリセルに接続される通常ビット線のデータをラッチする第1のページバッファと、
パリティメモリセルに接続されるパリティビット線のデータをラッチする第2のページバッファと、
前記第1のページバッファに接続される通常メモリセル或いは通常ビット線に不良が有る場合に、通常メモリセル、及び通常ビット線とともに置換され、または、前記第2のページバッファに接続されるパリティメモリセル或いはパリティビット線に不良が有る場合に、パリティメモリセル、及びパリティビット線とともに置換される、第3のページバッファと、
を含んで構成され、
前記第1のデータバスは、前記第1のページバッファ、及び前記第3のページバッファと接続され、
前記第2のデータバスは、前記第1のページバッファ、前記第2のページバッファ、及び前記第3のページバッファと接続される、
ことを特徴とする半導体記憶装置。 - 前記第3のページバッファは、前記第1のページバッファ、及び前記第2のページバッファのいずれか一方の置換先として置換されたかを示す識別データが予め書き込まれており、前記識別データに応じて第1のページバッファまたは前記第2のページバッファとしての動作を実行する、
ことを特徴とする請求項1に記載の半導体記憶装置。 - 前記第1のデータバスに接続されたデータ入出力部に入力される前記第1のページバッファの出力データの誤りを、前記第2のデータバスに接続されたパリティデータ入出力部に入力される前記第2のページバッファの出力データに基づいて、訂正するECC回路と、
前記第2のデータバスに接続されるとともに、前記第2の動作モードにおいて、前記第1のページバッファのうちメモリセルまたはビット線に不良があるページバッファを前記第3のページバッファに置換する救済置換回路と、
を備え、
前記第3のページバッファの前記識別データが前記第2のページバッファの置換先として置換されたことを示す場合、
前記救済置換回路は、前記第1の動作モードにおいて、置換元である前記第2のページバッファを選択する、前記第1の動作モードにおける第1選択アドレスが入力されると、入力される前記第1選択アドレスを前記第2の動作モードにおける第2選択アドレスに変換し、
当該変換後の第2選択アドレスと、置換元である前記第2のページバッファについて予め設定された第2の動作モードにおける第2選択アドレスとを比較し、
比較結果が一致する場合に、置換先の前記第3のページバッファと前記第2のデータバスとを接続し、
置換先の前記第3のページバッファは、前記第1の動作モードのデータ読み出し動作において、前記第1のデータバスに固定データを、前記第2のデータバスにパリティデータをそれぞれ出力し、
一方、前記第1の動作モードのデータ書き込み動作において、前記第1のデータバスからのデータ書き込みを許可せず、前記第2のデータバスからのパリティデータの書き込みを許可する、
ことを特徴とする請求項2に記載の半導体記憶装置。 - 前記第1のページバッファは、メモリセルまたはビット線に不良が有るページバッファの出力を固定されたデータとするページバッファ制御回路を有し、
前記ページバッファ制御回路は、メモリセルまたはビット線に不良が有る場合、前記第1のデータバスからの書き込みを許可しないことを特徴とする請求項3に記載の半導体記憶装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013129548A JP2015005316A (ja) | 2013-06-20 | 2013-06-20 | 半導体記憶装置 |
KR1020140062362A KR102146071B1 (ko) | 2013-06-20 | 2014-05-23 | 반도체 메모리 장치 |
US14/310,326 US9362007B2 (en) | 2013-06-20 | 2014-06-20 | Semiconductor memory device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013129548A JP2015005316A (ja) | 2013-06-20 | 2013-06-20 | 半導体記憶装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015005316A true JP2015005316A (ja) | 2015-01-08 |
Family
ID=52301082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013129548A Pending JP2015005316A (ja) | 2013-06-20 | 2013-06-20 | 半導体記憶装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2015005316A (ja) |
KR (1) | KR102146071B1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112397124A (zh) * | 2019-08-19 | 2021-02-23 | 爱思开海力士有限公司 | 具有页缓冲器的半导体存储器装置 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015005315A (ja) * | 2013-06-20 | 2015-01-08 | 三星電子株式会社Samsung Electronics Co.,Ltd. | 半導体記憶装置 |
KR102466239B1 (ko) * | 2016-04-05 | 2022-11-14 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러를 포함하는 메모리 시스템 및 그의 동작 방법 |
KR102469809B1 (ko) * | 2016-05-18 | 2022-11-24 | 에스케이하이닉스 주식회사 | 반도체장치 |
KR102648774B1 (ko) | 2016-11-10 | 2024-03-19 | 에스케이하이닉스 주식회사 | 랜더마이즈 동작을 수행하는 반도체 메모리 장치 |
KR102384702B1 (ko) | 2017-04-10 | 2022-04-11 | 에스케이하이닉스 주식회사 | 어드레스 처리 회로 및 이를 포함하는 반도체 장치 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2658267B2 (ja) | 1988-09-27 | 1997-09-30 | 日本電気株式会社 | 半導体メモリの冗長回路 |
KR100512178B1 (ko) * | 2003-05-28 | 2005-09-02 | 삼성전자주식회사 | 플렉서블한 열 리던던시 스킴을 갖는 반도체 메모리 장치 |
KR100996009B1 (ko) * | 2009-02-02 | 2010-11-22 | 주식회사 하이닉스반도체 | 불휘발성 메모리 소자 및 그 동작 방법 |
JP2011197819A (ja) | 2010-03-17 | 2011-10-06 | Toshiba Corp | 半導体装置 |
JP2015005315A (ja) * | 2013-06-20 | 2015-01-08 | 三星電子株式会社Samsung Electronics Co.,Ltd. | 半導体記憶装置 |
-
2013
- 2013-06-20 JP JP2013129548A patent/JP2015005316A/ja active Pending
-
2014
- 2014-05-23 KR KR1020140062362A patent/KR102146071B1/ko active IP Right Grant
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112397124A (zh) * | 2019-08-19 | 2021-02-23 | 爱思开海力士有限公司 | 具有页缓冲器的半导体存储器装置 |
CN112397124B (zh) * | 2019-08-19 | 2024-01-05 | 爱思开海力士有限公司 | 具有页缓冲器的半导体存储器装置 |
Also Published As
Publication number | Publication date |
---|---|
KR102146071B1 (ko) | 2020-08-21 |
KR20150001612A (ko) | 2015-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10361722B2 (en) | Semiconductor memory device performing randomization operation | |
US9013921B2 (en) | Semiconductor memory device | |
US20140380117A1 (en) | Semiconductor memory device | |
US7170802B2 (en) | Flexible and area efficient column redundancy for non-volatile memories | |
JP4135680B2 (ja) | 半導体記憶装置および信号処理システム | |
KR102146071B1 (ko) | 반도체 메모리 장치 | |
JP4102338B2 (ja) | 半導体記憶装置 | |
US9362007B2 (en) | Semiconductor memory device | |
KR101904583B1 (ko) | 비휘발성 메모리들에서 스킵된 엔트리들로 열 선택 시프트 레지스터를 액세스하는 기술들 | |
JP4955990B2 (ja) | 不揮発性半導体記憶装置 | |
JP4820795B2 (ja) | 半導体記憶装置 | |
JP5657079B1 (ja) | 半導体記憶装置 | |
JP3799197B2 (ja) | 半導体記憶装置 | |
US9773571B2 (en) | Memory repair redundancy with array cache redundancy | |
KR102146080B1 (ko) | 반도체 메모리 장치 | |
US6967882B1 (en) | Semiconductor memory including static memory | |
JP4351649B2 (ja) | 半導体記憶装置 | |
JP2014137834A (ja) | 半導体記憶装置 | |
JP5617776B2 (ja) | メモリ回路,メモリ装置及びメモリデータの誤り訂正方法 | |
JP2014142976A (ja) | 半導体記憶装置 | |
JP2014116049A (ja) | 半導体記憶装置 | |
TWI539465B (zh) | 半導體儲存裝置及其冗餘方法 | |
JP2014116037A (ja) | 半導体記憶装置 | |
JP2006031813A (ja) | 半導体記憶装置 | |
JP2008102987A (ja) | 半導体記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20141226 |