(57)【要約】【課題】回路面積のサイズを維持しつつ、高速なＸＯＲ演算を可能とするセンスアンプを提供すること。【解決手段】データを保持可能なメモリセルが直列接続されたストリングを含むメモリセルアレイ（１０）と、前記メモリセルが流す電流量を検知する第１ノード（ＳＥＮ）を備え、この第１ノードで検知した結果を格納する第１ラッチ（ＳＤＬ）及び第２ラッチ（ＸＤＬ）を含むセンスアンプ（１２）と、前記メモリセルから読み出され、前記第１、第２ラッチに格納された前記データを用いて第１演算（ＯＲ）、第２演算（ＮＡＮＤ）させた後、この第１演算で得られた第１結果と、前記第２演算で得られた第２結果と、で第３演算（ＡＮＤ）させ、読み出した前記データに対し誤読み出しの有無を判定する転送制御部を含む制御部（シーケンサ１５）と、前記制御部により前記第３演算を格納する検知部（１２−３）とを具備する。【選択図】図５
2013225364.tif 000002
【特許請求の範囲】
【請求項１】
２値以上のデータを保持可能なメモリセルが直列接続されたＮＡＮＤストリングを複数含むメモリセルアレイと、
前記メモリセルが流す電流量を検知する第１ノードを備え、この第１ノードで検知した結果を格納する第１ラッチ及び第２ラッチを含むセンスアンプと、
前記メモリセルから読み出され、前記第１ラッチ及び第２ラッチに格納された前記データを用いて第１演算及び第２演算させた後、この第１演算で得られた第１結果と、前記第２演算で得られた第２結果と、で第３演算させ、読み出した前記データに対し誤読み出しの有無を判定する転送制御部を含む制御部と、
前記制御部により前記第３演算を格納する検知部と
を具備することを特徴とする半導体記憶装置。
【請求項２】
前記センスアンプはｎ個のセンスユニットを含み、
前記制御部は、前記検知部での前記第３演算を、前記ｎ個の前記センスユニットに対し順次行っていく
ことを特徴とする請求項１記載の半導体記憶装置。
【請求項３】
前記メモリセルアレイは、システム情報を含む第１領域を備え、
前記データは、前記センスアンプを介して外部と入出力される第１データ、及び前記第１領域に格納され前記メモリセルから読み出される値を期待する期待値データ、を含み、
前記センスアンプによる、前記第１演算、及び前記第２演算は、前記第１データと前記期待値データとを用いる
ことを特徴とする請求項２記載の半導体記憶装置。
【請求項４】
読み出し時において前記データの誤読み出しの有無を判定し、前記データにつき誤読み出しがあると、前記第２ラッチに第２データを格納させるＥＣＣ制御部を更に備え、
前記制御部は、前記第１ラッチに格納される前記データと、前記第２データとで、前記第３演算を行う
ことを特徴とする請求項３記載の半導体記憶装置。
【請求項５】
前記検知部は、前記３演算で得られた結果を前記第１ラッチに転送可能とする
ことを特徴とする請求項１乃至４のうちいずれか１項記載の半導体記憶装置。
【請求項６】
メモリセルアレイ内に行及び列に沿って形成されるメモリセルが保持するデータを読み出し、このデータを第１ラッチに格納することと、
前記メモリセルアレイ内の第１領域から、前記メモリセルから読み出される値を期待する期待値データを第２ラッチに格納することと、
前記期待値データの反転とされる第１データを第１ノードを介して検知部に転送した後、前記データの反転とされる第２データを前記第２ノードを介して前記検知部へと転送し、この検知部の値を第３データとすることと、
前記第３データに応じた値を、前記第１ノードを介して第３ラッチへと転送することと、
前記データを第１ノードを介して前記検知部へと転送した後、前記期待値データを第１ノードへ転送し、この第１ノードの値に電位レベルに応じた値を前記検知部へと転送することで、前記検知部の値を第４データとすることと、
前記第４データに応じた値を、前記第１ノードを介して第３ラッチへと転送することと、
前記第３ラッチに格納されたデータを、前記第１ノードを介して前記第１ラッチに転送することと
を具備する半導体記憶装置の演算方法。
【請求項７】
前記検知部、前記第１ラッチ、及び前記第ラッチは、前記メモリセルから前記データを読み出す各々のセンスアンプが有し、
前記第１ラッチ及び前記第２ラッチから前記第３ラッチへの転送は、前記各々のセンスアンプに対し順次行っていく
ことを特徴とする請求項６記載の半導体記憶装置の演算方法。
【請求項８】
読み出し時において前記データの誤読み出しの有無を判定し、前記データにつき誤読み出しがあると、前記第２ラッチに第５データを格納させることとを更に備え、
前記第１ラッチに格納される前記データと、前記第５データとで、訂正処理を行う
ことを特徴とする請求項６又は７記載の半導体記憶装置の演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、ＸＯＲ演算可能なセンスアンプに関する。
【背景技術】
【０００２】
メモリセルから例えば多値データを読み出すセンスアンプがある。このセンスアンプ内には多値データを保持可能とする様、複数のラッチを備える。
【０００３】
センスアンプはこれら複数のラッチを用いて、読み出したデータにつき、誤読み出しの有無を確認する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００６−５００７２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
回路面積のサイズを維持しつつ、高速なＸＯＲ演算を可能とするセンスアンプを提供する。
【課題を解決するための手段】
【０００６】
実施形態に係る半導体記憶装置によれば、２値以上のデータを保持可能なメモリセルが直列接続されたＮＡＮＤストリングを複数含むメモリセルアレイと、前記メモリセルが流す電流量を検知する第１ノードを備え、この第１ノードで検知した結果を格納する第１ラッチ及び第２ラッチを含むセンスアンプと、前記メモリセルから読み出され、前記第１ラッチ及び第２ラッチに格納された前記データを用いて第１演算及び第２演算させた後、この第１演算で得られた第１結果と、前記第２演算で得られた第２結果と、で第３演算させ、読み出した前記データに対し誤読み出しの有無を判定する転送制御部を含む制御部と、前記制御部により前記第３演算を格納する検知部とを具備する。
【図面の簡単な説明】
【０００７】
【図１】第１実施形態に係る半導体記憶装置の全体構成例。
【図２】第１実施形態に係るメモリセルアレイの回路図、並びにシーケンサ、ページバッファ、及びセンスアンプのブロック図。
【図３】第１実施形態に係るセンスアンプの回路図。
【図４】第１実施形態に係るシーケンサのブロック図。
【図５】第１実施形態に係る読み出し動作を示すフローチャート。
【図６】第１実施形態に係る演算動作を示す概念図であって、（ａ）はセンスユニットの読み出し動作を示した概念図であって、（ｂ）はセンスユニット内の各ノードの電位レベルを示した概念図であって、（ｃ）は制御ユニットから出力される信号のタイムチャートである。
【図７】第１実施形態に係る演算動作を示す概念図であって、（ａ）はセンスユニットの読み出し動作を示した概念図であって、（ｂ）はセンスユニット内の各ノードの電位レベルを示した概念図であって、（ｃ）は制御ユニットから出力される信号のタイムチャートである。
【図８】第１実施形態に係る演算動作を示す概念図であって、（ａ）はセンスユニットの読み出し動作を示した概念図であって、（ｂ）はセンスユニット内の各ノードの電位レベルを示した概念図であって、（ｃ）は制御ユニットから出力される信号のタイムチャートである。
【図９】第１実施形態に係る演算動作を示す概念図であって、（ａ）はセンスユニットの読み出し動作を示した概念図であって、（ｂ）はセンスユニット内の各ノードの電位レベルを示した概念図であって、（ｃ）は制御ユニットから出力される信号のタイムチャートである。
【図１０】第１実施形態に係る演算動作を示す概念図であって、（ａ）はセンスユニットの読み出し動作を示した概念図であって、（ｂ）はセンスユニット内の各ノードの電位レベルを示した概念図であって、（ｃ）は制御ユニットから出力される信号のタイムチャートである。
【図１１】第１実施形態に係る演算動作を示す概念図であって、（ａ）はセンスユニットの読み出し動作を示した概念図であって、（ｂ）はセンスユニット内の各ノードの電位レベルを示した概念図であって、（ｃ）は制御ユニットから出力される信号のタイムチャートである。
【図１２】第１実施形態に係る演算動作を示す概念図であって、（ａ）はセンスユニットの読み出し動作を示した概念図であって、（ｂ）はセンスユニット内の各ノードの電位レベルを示した概念図であって、（ｃ）は制御ユニットから出力される信号のタイムチャートである。
【図１３】第１実施形態に係る演算動作を示す概念図であって、（ａ）はセンスユニットの読み出し動作を示した概念図であって、（ｂ）はセンスユニット内の各ノードの電位レベルを示した概念図であって、（ｃ）及び（ｄ）は制御ユニットから出力される信号のタイムチャートである。
【図１４】第１実施形態に係る演算動作を示す概念図であって、（ａ）はＳＤＬ、ＸＤＬの値を０、１とした際のセンスユニット内の各ノードの電位レベルを示した概念図であり、（ｂ）はＳＤＬ、ＸＤＬの値を１、０とした際のセンスユニット内の各ノードの電位レベルを示した概念図であり、（ｃ）はＳＤＬ、ＸＤＬの値を１、１とした際のセンスユニット内の各ノードの電位レベルを示した概念図である。
【発明を実施するための形態】
【０００８】
以下、本実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。ただし、図面は模式的なものであり、厚みと平面寸法との関係、各層の厚みの比率等は現実のものとは異なることに留意すべきである。従って、具体的な厚みや寸法は以下の説明を参酌して判断すべきものである。又、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることは勿論である。
【０００９】
[第１の実施形態]  
第１の本実施形態に係る半導体記憶装置は、２値データ（“０”又は“１”）を読み出すセンスアンプにおいて、このセンスアンプが有するＳＤＬ、ＸＤＬの他、ベリファイ時に使用する検知部（後述するＤＴＣＴ）を用いて読み出しデータに対するＸＯＲ演算を実行するものである。これにより、この読み出したデータにつき誤読み出しがないか否かを確認することができる。なお、本実施形態において、読み出しデータとＸＯＲ演算を行う例えば相手方のデータは、後述するメモリセルアレイが保持、又は図示せぬホストから転送されるデータのいずれかとし、このデータは既知の値とする（以下、このデータを“期待値データ”と呼ぶ）。以下、図１を用いて第１の実施形態に係る半導体記憶装置の全体構成例について説明する。  
１．＜全体構成例＞  
第１の実施形態に係る半導体記憶装置の全体構成例について説明する。この半導体記憶装置は、具体的な一構成例としてＮＡＮＤ型フラッシュメモリと、ＥＣＣ回路と、これらを制御するコントローラと、を備える。すなわち、以下説明ではＮＡＮＤ型フラッシュメモリとＥＣＣとコントローラとを備えた構成を、半導体記憶装置とする。
【００１０】
図示するように、本実施形態に係る半導体記憶装置半導体記憶装置１は、大まかにはＮＡＮＤ型フラッシュメモリ２、コントローラ部３、及び入出力部４を備えている。これらＮＡＮＤ型フラッシュメモリ２、コントローラ部３、及び入出力部４は、同一の半導体基板上に形成され、１つのチップに集積されている。以下、各ブロックの詳細について説明する。
【００１１】
＜ＮＡＮＤ型フラッシュメモリ２＞  
ＮＡＮＤ型フラッシュメモリ２は、半導体記憶装置１の主記憶部として機能する。図１に示すようにＮＡＮＤ型フラッシュメモリ２は、メモリセルアレイ（図中、NAND Array）１０、ロウデコーダ（図中、Row Dec）１１、センスアンプ（図中、Sense Amp）１２、ページバッファ（図中、NAND Page Buffer）１３、電圧発生回路（図中、Voltage Supply）１４、シーケンサ（図中、NAND Sequencer）１５、及びオシレータ（図中、OSC）１６、１７を備えている。
【００１２】
１．１＜メモリセルアレイ１０＞  
メモリセルアレイ１０は外部からのデータを保持し、保持するこのデータを外部に出力する機能を有する。また、本実施形態に係るメモリセルアレイ１０は、上記したように期待値データを保持する。
【００１３】
なお、メモリセルアレイ１０の詳細な構成については後ほど述べる。
【００１４】
１．２＜ロウデコーダ１１＞  
ロウデコーダ１１は、データのプログラム、読み出し、及び消去動作の際に、ワード線及びセレクトゲート線を選択する。このロウデコーダ１１は、ワード線及びセレクトゲート線に対して、必要な電圧（電圧ＶＰＧＭ、電圧ＶＰＡＳＳ、電圧Ｖｃｇr、電圧Ｖｒｅａｄ、電圧Ｖｅｒａなど）を印加する。
【００１５】
１．３＜センスアンプ１２＞  
センスアンプ１２は、ビット線ＢＬに流れる電流を検知・増幅して得たデータにつき、上記期待値データを用いてＸＯＲ演算した後、これをページバッファ１３に転送する。またページバッファ１３から転送された書き込みデータをビット線ＢＬを介してメモリセルＭＣに書き込む。すなわち、本実施形態におけるセンスアンプ１２は、読み出したデータにつきＸＯＲ演算を行い、この読み出しデータに対し誤読み出しをしているか否かを判断する。なお、センスアンプ１２による読み出し、書き込みは全ビット線ＢＬに対して一括して行われる。このセンスアンプ１２の詳細な構成については後に述べる。
【００１６】
１．４＜ページバッファ１３＞  
ページバッファ１３はページサイズのデータを保持可能とされ、データのプログラム動作時には、入出力部４から与えられるデータを一時的に保持し、センスアンプ１２にデータを転送する。他方、読み出し動作時には、センスアンプ１２で読み出され、転送されたデータを一時的に保持し、ＥＣＣ回路で訂正処理を行った後、訂正後のデータを入出力部４へ転送する。
【００１７】
１．５＜電圧発生回路１４＞  
電圧発生回路１４は、外部から与えられる電圧を昇圧または降圧することにより、データのプログラム、読み出し、及び消去に必要な電圧（電圧ＶＰＧＭ、電圧ＶＰＡＳＳ、電圧Ｖｃｇr、電圧Ｖｒｅａｄ、電圧Ｖｅｒａなど）を発生する。次いで、この発生した電圧を、例えばロウデコーダ１１に供給する。これによって電圧発生回路１４で発生された電圧が、ロウデコーダ１１を介してワード線ＷＬに印加される。
【００１８】
１．６＜シーケンサ１５＞  
シーケンサ１５は、ＮＡＮＤ型フラッシュメモリ２全体の動作を司る。すなわち、コントローラ部３からプログラム命令（Program）、ロード命令（Load）、または消去命令（図示せず）を受けると、これに応答して、データのプログラム、読み出し、及び消去を実行するためのシーケンスを実行する。シーケンサ１５は、このシーケンスに従ってセンスアンプ１２、電圧発生回路１４やページバッファ１３の動作を制御する。シーケンサ１５の詳細な構成については、後に述べる。
【００１９】
１．７＜オシレータ１６＞  
オシレータ１６は内部クロックＩＣＬＫを生成する。すなわち、クロック生成器として機能する。オシレータ１６は、生成した内部クロックＩＣＬＫをシーケンサ１５に供給する。シーケンサ１５は、この内部クロックＩＣＬＫに同期して動作する。
【００２０】
１．８＜オシレータ１７＞  
オシレータ１７は内部クロックＡＣＬＫを生成する。すなわち、クロック生成器として機能する。オシレータ１７は、生成した内部クロックＡＣＬＫをコントローラ部３や入出力部４へ供給する。内部クロックＡＣＬＫは、コントローラ部３や入出力部４の動作の基準となるクロックである。
【００２１】
１．１．１＜メモリセルアレイ１０の詳細＞  
次に、図２を用いて上記ＮＡＮＤ型フラッシュメモリ２内のメモリセルアレイ１０の詳細な構成について説明する。図２は、メモリセルアレイ１０の回路図及びロウデコーダ１１、センスアンプ１２、及びページバッファ１３のブロック図である。
【００２２】
図２に示すようにメモリセルアレイ１０は、（ｍ＋１）個（ｍは２以上の自然数）のブロックＢＬＫ０〜ＢＬＫｍを備えている。以降、ブロックＢＬＫ０〜ＢＬＫｍをそれぞれ区別しない場合には単にブロックＢＬＫと呼ぶことにする。ブロックＢＬＫの各々は、（ｎ＋１）個（ｎ＋１は２以上の自然数）の複数のメモリセルユニット１７を備えている。
【００２３】
メモリセルユニット１７の各々は、例えば３２個のメモリセルＭＣ０〜ＭＣ３１と、選択トランジスタＳＴ１、ＳＴ２とを含んでいる。以下、メモリセルＭＣ０〜ＭＣ３１を区別しない場合には、単にメモリセルＭＣと呼ぶ。メモリセルＭＣは、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層（例えば浮遊ゲート）と、電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲートとを有する積層ゲート構造を備えている。なお、メモリセルＭＣの個数は３２個に限られず、８個や１６個、６４個、１２８個、２５６個等であってもよく、その数は限定されるものではない。またメモリセルＭＣは、電荷蓄積層として窒化膜等の絶縁膜を使用し、この窒化膜に電子をトラップさせる方式を用いたＭＯＮＯＳ（Metal Oxide Nitride Oxide Silicon）構造であっても良い。
【００２４】
メモリセルＭＣは、隣接するもの同士でソース、ドレインを共有している。選択トランジスタＳＴ１、ＳＴ２間に、その電流経路が直列接続されるようにして配置されている。直列接続されたメモリセルＭＣの一端側のドレインは選択トランジスタＳＴ１のソースに接続され、他端側のソースは選択トランジスタＳＴ２のドレインに接続されている。
【００２５】
同一行にあるメモリセルＭＣの制御ゲートは、ワード線ＷＬ０〜ＷＬ３１のいずれかに共通接続される。また同一行にある選択トランジスタＳＴ１、ＳＴ２のゲートは、それぞれセレクトゲート線ＳＧＤ、ＳＧＳに共通接続されている。なお説明の簡単化のため、以下ではワード線ＷＬ０〜ＷＬ３１を、単にワード線ＷＬと呼ぶことがある。
【００２６】
また選択トランジスタＳＴ１のドレインはビット線ＢＬ０〜ＢＬｎのいずれかに接続される。このビット線ＢＬ０〜ＢＬｎは、複数のブロックＢＬＫ間で、複数のメモリセルユニット１７を共通接続する。ビット線ＢＬ０〜ＢＬｎについても、区別しない場合には単にビット線ＢＬと呼ぶ。
【００２７】
選択トランジスタＳＴ２のソースはソース線ＳＬに接続される。ソース線ＳＬは、メモリセルアレイ１０内において共通に使用される。
【００２８】
上記構成において、同一のワード線ＷＬに接続された複数のメモリセルＭＣには一括してデータが書き込まれ、または読み出され、この単位をページと呼ぶ。更にブロックＢＬＫ単位でデータの消去が行われる。すなわち、同一のブロックに含まれるメモリセルのデータは、一括して消去される。
【００２９】
各々のメモリセルＭＣは、例えば、電荷蓄積層に注入された電子の多寡によるトランジスタの閾値電圧の変化に応じて、１ビットのデータ（“０”データ又は“１”データのいずれか）を保持することが可能である。なお、閾値電圧の制御を細分化し、各々のメモリセルＭＣに２ビット以上のデータを保持する構成としても良い。例えば、電荷蓄積層に電荷が蓄積されると、メモリセルＭＣは“０”データを保持し、この電荷が抜け、消去状態とされると、メモリセルＭＣは“１”データを保持するものとする。
【００３０】
また各ブロックＢＬＫにおいて、一部のメモリセルユニット１７は、エラー訂正用の情報（パリティ等）を保持するために用いられ、残りのメモリセルユニット１７がユーザデータ保持用として用いられる。
【００３１】
更に、いずれかのブロックＢＬＫ（本実施形態では、例えばブロックＢＬＫｍ）は、ＮＡＮＤ型フラッシュメモリ２のシステム情報を保持するために使用される。システム情報の一例は、不良ブロック情報や不良カラム情報、及び上述した期待値データである。不良ブロック情報とは、何らかの不良によって使用不可とされたブロックＢＬＫの情報であり、例えばそのブロックアドレスである。以下では、このブロックＢＬＫｍを、ＲＯＭヒューズブロックと呼ぶことがある。
【００３２】
また、不良カラム情報とは、使用不可とされたカラムの情報であり、例えばカラムアドレスである。そして、その不良カラムの場合、後述する信号ＧＯＯＤの値は“Ｌ”レベルとされる。
【００３３】
また期待値データとは、読み出しデータにつき、誤読み出しがないか否かを検査するためのデータであり、例えば複数の“０”または“１”データを有する。読み出しデータとＸＯＲ演算をするための既知データである。そして、この期待値データは、例えばメモリセルＭＣから読み出される値を期待した値である。
【００３４】
なお、この期待値データは、読み出し時に例えば１ページ分纏めてセンスアンプ１２に読み出され、後述するＸＤＬに格納される。
【００３５】
１．１．２＜センスアンプ１２の構成の詳細＞  
次に、図３を用いてセンスアンプ１２の構成について説明する。図３に示すようにセンスアンプ１２は、例えば１６個のセンスユニット１２−１_１〜センスユニット１２−１_１６（図中、ＳＡ）、ラッチユニット１２−２_１〜ラッチユニット１２−２_１６（図中、ＸＤＬ）、及び検知部１２−３（図中、ＤＴＣＴ）を備える。すなわち、センスアンプ１２は、１６個のセンスユニット１２−１_１〜センスユニット１２−１_１６に対し、１つの検知部１２−３を備える。なお、センスユニット１２−１_１〜センスユニット１２−１_１６を区別しない場合には、単にセンスユニット１２−１と呼び、またラッチユニット１２−２_１〜ラッチユニット１２−２_１６を区別しない場合には、単にラッチユニット１２−２と呼ぶ。センスユニット１２−１の構成について説明する。
【００３６】
１．１．２．１＜センスユニット１２−１＞  
センスユニット１２−１は、ｎチャネル型ＭＯＳトランジスタ２０〜２３、及び２５〜３４、及び４０〜４２、並びにキャパシタ素子２４、並びにｐチャネル型ＭＯＳトランジスタ３５〜３９を備える。なお、以下ではＭＯＳトランジスタの閾値電位ＶｔｈにそのＭＯＳトランジスタの参照符号を付すことでＭＯＳトランジスタの閾値電位を表す。例えば、ＭＯＳトランジスタ２１の閾値電位はＶｔｈ２１とする。
【００３７】
ＭＯＳトランジスタ２０の電流経路の一端はビット線ＢＬに接続され、ゲートにはシーケンサ１５によって制御される信号ＢＬＳが供給される。信号ＢＬＳは、読み出し動作、書き込み動作の際、“Ｈ”レベルとされ、ビット線ＢＬとセンスユニット１２−１とを接続可能とする信号である。
【００３８】
なお、ＭＯＳトランジスタ２０のゲートに供給される信号ＢＬＳと同様に、センスユニット１２−１を構成し、以下説明する各ＭＯＳトランジスタのゲートに供給される信号についてもシーケンサ１５によって制御される。
【００３９】
ＭＯＳトランジスタ２１の電流経路の一端はＭＯＳトランジスタ２０の電流経路の他端に接続され、他端はＳＣＯＭに接続され、ゲートには信号ＢＬＣが供給される。信号ＢＬＣとはビット線ＢＬを所定の電位にクランプするための信号である。仮にＭＯＳトランジスタ２１に信号ＢＬＣ＝（Ｖｂｌｃ＋Ｖｔｈ２１）が与えられると、ビット線ＢＬの電位は、電圧Ｖｂｌｃとなる。
【００４０】
ＭＯＳトランジスタ２２の電流経路の一端はＳＣＯＭに接続され、他端には電圧ＶＨＳＡ（＝電圧ＶＤＤ）が供給され、ゲートには信号ＢＬＸ（例えば、電圧（Ｖｂｌｃ＋ＣＥＬＳＲＣ＋Ｖｔｈ２２＋ＢＬＣ２ＢＬＸ）が供給される。従って、本実施形態における“１”データ読み出しの際、ＳＣＯＭの電位は、電圧（Ｖｂｌｃ＋ＢＬＣ２ＢＬＸ）とされる。
【００４１】
なお、電圧ＢＬＣ２ＢＬＸとは、ＳＣＯＭに電圧ＶＨＳＡを確実に転送するためのカードバンド電圧であり、ＭＯＳトランジスタ２３の電流駆動力をＭＯＳトランジスタ２２のよりも上げるための電圧である。例えば信号ＢＬＸ＜信号ＢＬＣとされると、ビット線ＢＬに供給する電圧が信号ＢＬＸに律速してしまう。これを防ぐため信号ＢＬＸの電圧は電圧ＢＬＣよりも高い電圧とされる。
【００４２】
ＭＯＳトランジスタ２３の電流経路の一端は、ノードＳＣＯＭに接続され、他端はＳＥＮ（検知部）に接続され、ゲートには信号ＸＸＬ（Ｖｂｌｃ＋Ｖｔｈ２３＋ＢＬＣ２ＢＬＸ＋ＢＬＸ２ＸＸＬ）が供給される。なお、ＭＯＳトランジスタ２３のゲートには、ＭＯＳトランジスタ２２よりも電圧ＢＬＸ２ＸＸＬだけ大きな電圧が供給される。ここで、電圧ＢＬＸ２ＸＸＬとは、ＳＥＮに蓄積された電荷をＳＣＯＭに転送するためのガードバンド電圧である。
【００４３】
ここで、信号ＢＬＣ、信号ＢＬＸ、及び信号ＸＸＬの間には、信号ＢＬＣ＜信号ＢＬＸ＜信号ＸＸＬなる電圧関係が成り立つ。つまり、ＭＯＳトランジスタ２２よりもＭＯＳトランジスタ２３の電流駆動力の方が大きい。これは、“１”データをセンスする際、ＭＯＳトランジスタ２２が流す電流よりもＭＯＳトランジスタ２３が流す電流を大きくすることで、ノードＳＥＮの電位を優先的にビット線ＢＬに流すためである。
【００４４】
引き続き、構成について説明する。キャパシタ素子２４の一方の電極には、ノードＮ１でクロックＣＬＫ（＝電圧（Ｖｂｌｃ＋ＢＬＣ２ＢＬＸ））が供給され、他方の電極はノードＳＥＮに接続される。このクロックＣＬＫは、ノードＳＥＮの電位をブーストするための機能を有する。ＭＯＳトランジスタ２５の電流経路の一端はノードＮ１に接続され、ゲートには信号ＳＥＮが供給される。つまり、このノードＳＥＮの電位に応じてＭＯＳトランジスタ２５がオン・オフする。ＭＯＳトランジスタ２６の電流経路の一端は、ＭＯＳトランジスタ２５の他端と接続され、電流経路の他端はノードＮ２に接続され、ゲートには信号ＳＴＢが供給される。ＭＯＳトランジスタ２７の電流経路の一端はノードＳＥＮに接続され、電流経路の他端はノードＮ２に接続され、ゲートには信号ＢＬＱ（＝電圧（ＶＤＤ＋Ｖｔｈ２７＋Ｖα）が供給される。ここで、電圧Ｖαとは、後述するＭＯＳトランジスタ３１から転送される電圧ＶＤＤを確実にノードＳＥＮに転送するために追加された電圧（ガードバンド電圧）である。以下説明する、信号ＬＰＣにおける電圧Ｖαついても同様で、ガードバンドとして機能する電圧である。
【００４５】
ＭＯＳトランジスタ２８の電流経路の一端はノードＳＥＮに接続され、ゲートには信号ＬＳＬが供給される。またＭＯＳトランジスタ２９の電流経路の一端は、ＭＯＳトランジスタ２８の電流経路の他端に接続され、電流経路の他端は、接地（電圧ＶＬＳＡ）され、ゲートはノードＮ２に接続される。これらＭＯＳトランジスタ２８及び２９は、後述するＸＯＲ演算のためのトランジスタである。
【００４６】
ＭＯＳトランジスタ３０の電流経路の一端はノードＮ２に接続され、他端はノードＬＡＴ_Ｓに接続され、ゲートには信号ＳＴＬが供給される。
【００４７】
また、ＭＯＳトランジスタ３１の電流経路の一端には電圧ＶＤＤが供給され、他端はノードＮ２に接続され、ゲートには信号ＬＰＣ（＝電圧（ＶＤＤ＋Ｖｔｈ３１＋Ｖα））が供給される。すなわち、信号ＬＰＣが“Ｈ”レベルとされると、ノードＮ２、及びＭＯＳトランジスタ２７を介して、このＭＯＳトランジスタ３１により電圧ＶＤＤがＳＥＮに転送される。なお、このノードＮ２が接続される配線をＬＢＵＳと呼ぶ。
【００４８】
また、後述するＸＯＲ演算動作では、データ転送の度にこの信号ＬＰＣを“Ｈ”レベルとすることで配線ＬＢＵＳを“Ｈ”レベルとする。
【００４９】
ＭＯＳトランジスタ３２の電流経路の一端はノードＬＡＴ_Ｓに接続され、電流経路の他端は接地され、ゲートはノードＩＮＶ_Ｓが接続される。ＭＯＳトランジスタ３３の電流経路の一端はノードＩＮＶ_Ｓに接続され、電流経路の他端は接地され、ゲートはノードＬＡＴ_Ｓに接続される。ＭＯＳトランジスタ３４の電流経路の一端はノードＩＮＶ_Ｓに接続され、電流経路の他端はノードＮ２に接続され、ゲートには信号ＳＴＩが供給される。ＭＯＳトランジスタ３５の電流経路の一端には電圧ＶＤＤが供給され、ゲートには信号ＳＬＬが供給される。ＭＯＳトランジスタ３６の電流経路の一端はＭＯＳトランジスタ３５の電流経路の他端と接続され、電流経路の他端はノードＬＡＴ_Ｓに接続され、ゲートはノードＩＮＶ_Ｓに接続される。ＭＯＳトランジスタ３７の電流経路の一端には電圧ＶＤＤが供給され、ゲートには信号ＳＬＩが供給される。ＭＯＳトランジスタ３８の電流経路の一端は、ＭＯＳトランジスタ３７の電流経路の他端と接続され、電流経路の他端はノードＩＮＶ_Ｓに接続され、ゲートはノードＬＡＴ_Ｓに接続される。つまり、ＭＯＳトランジスタ３２、３３、３６、及び３８でラッチ回路ＳＤＬを構成し、このラッチ回路ＳＤＬはノードＬＡＴ_Ｓのデータを保持する。
【００５０】
また、ＭＯＳトランジスタ３９の電流経路の一端には電圧ＶＤＤが供給され、電流経路の他端はノードＮ４に接続され、ゲートにはノードＩＮＶ＿Ｓが供給される。ＭＯＳトランジスタ４１の電流経路の一端はノードＮ４でＭＯＳトランジスタ３９の電流経路の他端と共通接続され、電流経路の他端は接地される。またＭＯＳトランジスタ４０の電流経路の一端はノードＮ４に接続され、電流経路の他端はノードＮ２に接続される。これらＭＯＳトランジスタ３９〜４１は、データの書き込み時に、ビット線ＢＬを所定の電圧にプリチャージする機能を有する。
【００５１】
また、ＭＯＳトランジスタ４２の電流経路の一端はノードＮ２に接続され、電流経路の他端はＤＢＵＳ（必要に応じて接地電位）に接続され、ゲートには信号ＤＳＷが供給される。このＭＯＳトランジスタ４２は各々のセンスユニット１２−１に設けられ、信号ＤＳＷが“Ｈ”レベルとされると、対応するセンスユニット１２−１とラッチユニット１２−２とが電気的に接続される。
【００５２】
１．１．２．２＜ラッチユニット１２−２（ＸＤＬ）＞  
ラッチユニット１２−２は、センスユニット１２−１から読み出された読み出しデータ、及びセンスアンプ１２に転送する書き込みデータを保持する。すなわち、このラッチユニット１２−２は、センスユニット１２−１が読み出したデータを一旦保持し、またメモリセルＭＣに書き込むデータを一旦保持する機能を有する。その他、ＸＯＲ演算をする際には、センスユニット１２−１が読み出した期待値データを保持する。以下、ラッチユニット１２−２の構成について説明する。
【００５３】
ラッチユニット１２−２は、ｎチャネル型ＭＯＳトランジスタ４５〜４８、及び５４、並びにｐチャネル型ＭＯＳトランジスタ４９〜５３を備える。  
ＭＯＳトランジスタ４５の電流経路の一端はノードＮ３に接続され、他端はＩＮＶ_Ｘに接続され、ゲートにはシーケンサ１５によって制御される信号ＸＴＩが供給される。なお、ＭＯＳトランジスタ４５のゲートに供給される信号ＸＴＩと同様に、ラッチユニット１２−２を構成し、以下説明する各ＭＯＳトランジスタのゲートに供給される各信号においてもシーケンサ１５によって制御される。
【００５４】
以下、説明を続ける。ＭＯＳトランジスタ４６の電流経路の一端はＩＮＶ_Ｘに接続され、他端は接地され、ゲートにはＬＡＴ_Ｘに接続される。ＭＯＳトランジスタ４９の電流経路の一端はＩＮＶ_Ｘに接続され、ゲートはＬＡＴ_Ｘに接続される。また、ＭＯＳトランジスタ４７の電流経路の一端はＬＡＴ_Ｘに接続され、ゲートはＩＮＶ_Ｘに接続される。更にＭＯＳトランジスタ４８の電流経路の一端は、ＭＯＳトランジスタ４７の他端に接続され、他端は接地され、ゲートには信号ＸＬＮが供給される。ＭＯＳトランジスタ５２の電流経路の一端はＬＡＴ_Ｘに接続に接続され、ゲートはＩＮＶ_Ｘに接続される。ＭＯＳトランジスタ５０の電流経路の一端には電圧ＶＤＤが供給され、他端はＭＯＳトランジスタ４９の電流経路の他端に接続され、ゲートには信号ＸＬＩが供給される。ＭＯＳトランジスタ５１の電流経路の一端には電圧ＶＤＤが供給され、他端はＭＯＳトランジスタ５２の電流経路の他端に接続され、ゲートには信号ＸＬＬが供給される。すなわち、ＭＯＳトランジスタ４６、４７、４９、及び５２でＸＤＬを構成する。このラッチ回路ＸＤＬはノードＬＡＴ_Ｘのデータを保持する。
【００５５】
更に、ＭＯＳトランジスタ５３の電流経路の一端はＬＡＴ_Ｘに接続され、ゲートにはスイッチＳＷ１が供給され、他端は、ページバッファ１３に接続される。また、ＭＯＳトランジスタ５４の電流経路の一端もＬＡＴ_Ｘに接続され、ゲートにはスイッチＳＷ２が供給され、他端はページバッファ１３に接続される。なお、スイッチＳＷ１はＳＷ２の反転信号であり、例えばスイッチＳＷ１が“Ｈ”レベルの場合、スイッチＳＷ２は“Ｌ”レベルとされる。つまり、ＭＯＳトランジスタ５３、５４は、ページバッファ１３とデータの入出力を行うスイッチとしての機能を有する。
【００５６】
１．１．２．３＜検知部１２−３＞  
次に、検知部１２−３について説明する。検知部１２−３は、センスユニット１２−１が読み出したデータにつき、誤読み出しがないか否かをチェックする。具体的には、検知部１２−３は、センスユニット１２−１_１が読み出したデータにつき、期待値データとのＸＯＲ演算を行なった結果、誤読み出しの有無を判定する。次いで、この結果を、センスユニット１２−１_１に転送・格納する。その後、センスユニット１２−１_２が読み出したデータにつき誤読み出しの有無を判定する。次いで、この結果を、センスユニット１２−１_２に転送・格納する。以降、この動作をセンスユニット１２−１_１６まで繰り返す。以下、検知部の構成について説明する。
【００５７】
検知部１２−３は、ｎチャネル型ＭＯＳトランジスタ５５〜６２、ｐチャネル型ＭＯＳトランジスタ６３〜６７を備える。
【００５８】
ＭＯＳトランジスタ５５の電流経路の一端は、ノードＮ３に接続され、他端は接地され、ゲートにはシーケンサ１５によって制御される信号ＤＤＣが供給される。なお、ＭＯＳトランジスタ５５のゲートに供給される信号ＤＤＣと同様に、検知部１２−３を構成する各ＭＯＳトランジスタのゲートに供給される信号においてもシーケンサ１５によって制御される。
【００５９】
ＭＯＳトランジスタ５６の電流経路の一端はノードＮ３に接続され、ゲートには信号ＧＯＯＤが供給される。上述したように、この信号ＧＯＯＤとは、不良カラムか否かを示す信号である。
【００６０】
ＭＯＳトランジスタ５７の電流経路の一端はＭＯＳトランジスタ５６の電流経路の他端と接続され、ゲートには信号ＤＴＣＴ_ＥＮＢが供給される。ＭＯＳトランジスタ５８の電流経路の一端は、ＭＯＳトランジスタ５６の電流経路の他端及びＭＯＳトランジスタ５７の電流経路の一端に接続され、ゲートには信号ＩＣＥＬが供給される。また、ＭＯＳトランジスタ５９の電流経路の一端はＭＯＳトランジスタ５８の電流経路の他端と接続され、ゲートはＭＯＳトランジスタ６０のゲートに接続され、他端は接地される。
【００６１】
ＭＯＳトランジスタ６０の電流経路の一端はＰＡＳＳに接続され、他端は接地され、ゲートはＦＡＩＬに接続される。ＭＯＳトランジスタ６４の電流経路の一端はＰＡＳＳに接続され、ゲートにはＦＡＩＬに接続される。また、ＭＯＳトランジスタ６５の電流経路の一端には電圧ＶＤＤが供給され、他端はＭＯＳトランジスタ６４の電流経路の他端に接続され、ゲートには信号ＤＴＣＴ_ＥＮＢが供給される。ＭＯＳトランジスタ６１の電流経路の一端はＦＡＩＬに接続され、他端は接地され、ゲートにはＰＡＳＳが接続される。ＭＯＳトランジスタ６６の電流経路の一端はＦＡＩＬに接続され、ゲートにはＰＡＳＳに接続される。更にＭＯＳトランジスタ６７の電流経路の一端には電圧ＶＤＤが供給され、他端はＭＯＳトランジスタ６６の電流経路の他端に接続され、ゲートはＭＯＳトランジスタ６２のゲートとノードＮ５で共通接続される。なお、このノードＮ５にはシーケンサ１５からリセット信号（ＤＴＣＴ_ＲＳＴ）が供給される。つまり、ＦＡＩＬの電位をリセットする際、ノードＮ５の電位は“Ｈ”レベルとされる。
【００６２】
また、このＭＯＳトランジスタ６２の電流経路の一端は上記ＦＡＩＬに接続され、他端は接地される。なお、ＸＯＲ演算の結果、ＰＡＳＳの電圧レベルが“Ｌ”とされると、検知結果はＦＡＩＬ（＝誤読み出し）と判定する。
【００６３】
更にＭＯＳトランジスタ４３の電流経路の一端はノードＮ３に接続され、他端には電圧ＶＤＤが供給され、ゲートには信号ＤＰＣｎが供給される。このＭＯＳトランジスタ４３は、ＳＥＮとラッチユニット１２−２とのデータ転送の度にオン状態とされ、配線ＤＢＵＳを充電する機能を有する。
【００６４】
またなお、本実施形態では、第１ラッチ１２−２がセンスアンプ１２内に配置されていたが、ページバッファ１３内であっても良い。
【００６５】
１．９＜シーケンサ１５＞  
次に図４を用いてシーケンサ１５の構成について説明する。シーケンサ１５は、制御ユニット１５０−１及び信号制御回路１５０−２を備える。これら制御ユニット１５０−１及び信号制御回路１５０−２によってセンスアンプ１２の動作が制御される。
【００６６】
１．９．１＜制御ユニット１５０−１＞  
制御ユニット１５０−１は、Ｈ２ＳＥＮ１５−１、Ｌ２ＳＥＮ１５−２、ＳＥＮ２ＳＬ１５−３、ＳＬ２ＸＬ１５−４、ＤＴＣＴ２ＳＬ１５−５、ＤＴＣＴ２ＳＢ１５−６、ＤＴＣＴ２ＳＥＮ１５−７、ＤＴＣＴＢ２ＸＬ１５−８、ＳＥＮ２ＴＡＧ１５−９、及びＳＥＮ２ＴＡＧＳ１５−１０を備える。
【００６７】
Ｈ２ＳＥＮ１５−１は、ＳＥＮを“Ｈ”レベル、すなわちＳＥＮを充電する機能を有する。具体的には信号制御回路１５０−２に対し、信号ＬＰＣ及び信号ＢＬＱを“Ｈ”レベルとするよう制御する。
【００６８】
Ｌ２ＳＥＮ１５−１は、ＳＥＮを“Ｌ”レベル、すなわちＳＥＮを接地電位とする機能を有する。具体的には信号制御回路１５０−２に対し、信号ＢＬＱ、信号ＤＳＷ、及び信号ＤＤＣを“Ｈ”レベルとするよう制御する。
【００６９】
ＳＥＮ２ＳＬ１５−３は、ＳＥＮの電圧レベルをＳＤＬに転送する機能を有する。すなわち、信号制御回路１５０−２に対し、信号ＬＰＣ、信号ＢＬＱ、及び信号ＩＮＶ_Ｓをそれぞれ“Ｈ”レベルとするよう制御する。
【００７０】
ＳＬ２ＸＬ１５−４は、ＳＤＬの値をラッチユニット１２−２に転送する機能を有する。すなわち、信号制御回路１５０−２に対し、信号ＳＴＬ（又は信号ＳＴＩ）、信号ＬＰＣ、信号ＤＳＷ、及び信号ＸＴＩを“Ｈ”レベルとし、信号ＤＰＣｎを“Ｌ”レベルとするよう制御する。
【００７１】
ＤＴＣＴ２ＳＬ１５−５は、検知部１２−３の格納データをＳＤＬに転送する機能を有する。すなわち、信号制御回路１５０−２に対し、信号ＤＴＣＴ_ＥＮＢ、信号ＧＯＯＤ、信号ＤＳＷ、信号ＬＰＣ、信号ＳＴＬ、及び信号ＳＬＬを“Ｈ”レベルとし、信号ＤＰＣｎを“Ｌ”レベルとするよう制御する。
【００７２】
ＤＴＣＴ２ＳＢ１５−６は、検知部１２−３の格納データ（反転データ）を、ＳＤＬに転送する機能を有する。すなわち、信号制御回路１５０−２に対し、信号ＳＬＩ、信号ＳＴＩ、信号ＬＰＣ、信号ＤＳＷ、信号ＧＯＯＤ、及び信号ＤＴＣＴ_ＥＮＢを“Ｈ”レベルとし、信号ＤＰＣｎを“Ｌ”レベルとするよう制御する。
【００７３】
ＤＴＣＴ２ＳＥＮ１５−７は、検知部１２−３の格納データをＳＥＮに転送する機能を有する。すなわち、信号ＤＴＣＴ_ＥＮＢ、信号ＧＯＯＤ、信号ＤＳＷ、信号ＬＰＣ、及び信号ＢＬＱをそれぞれ“Ｈ”レベルとし、信号ＤＰＣｎを“Ｌ”レベルとするよう制御する。
【００７４】
ＤＴＣＴＢ２ＸＬ１５−８は、検知部１２−３の格納データをラッチユニット１２−２に転送する機能を有する。すなわち、信号ＤＴＣＴ_ＥＮＢ、信号ＧＯＯＤ、信号ＸＴＩ、及び信号ＸＬＩをそれぞれ“Ｈ”レベルとし、信号ＤＰＣｎを“Ｌ”レベルとするよう制御する。
【００７５】
ＳＥＮ２ＴＡＧ１５−９は、ＳＥＮの電圧レベルを検知部１２−３に転送する機能を有する。具体的には、後述するＯＲ演算の結果を転送する機能を有する。すなわち、信号ＳＴＢ、信号ＬＰＣ、信号ＤＳＷ、信号ＤＴＣＴ_ＥＮＢ、及び信号ＤＴＣＴ_ＲＳＴをそれぞれ“Ｈ”レベルとし、信号ＤＰＣｎを“Ｌ”レベルとするよう制御する。
【００７６】
ＳＥＮ２ＴＡＧＳ１５−１０は、ＳＥＮの電圧レベルを検知部１２−３に転送する機能を有する。具体的には、後述するＮＡＮＤ演算の結果を転送する機能を有する。すなわち、信号ＳＴＢ、信号ＬＰＣ、信号ＤＳＷ、及び信号ＤＴＣＴ_ＥＮＢをそれぞれ“Ｈ”レベルとし、信号ＤＰＣｎを“Ｌ”レベルとするよう制御する。なお、本実施形態では、読み出しデータにつきＯＲ演算とＮＡＮＤ演算とのＡＮＤ演算を行うため、ＳＥＮ２ＴＡＧＳ１５−１０は、信号ＤＴＣＴ_ＲＳＴの電圧レベルの制御は行わない。
【００７７】
１．９．２＜信号制御回路１５０−２＞  
信号制御回路１５０−２は、上記制御ユニット１５０−１からの制御に応じて信号ＢＬＱ、信号ＬＳＬ、信号ＤＳＷ、信号ＬＰＣ、信号ＤＰＣｎ、信号ＤＴＣＴ_ＥＮＢ、及び信号ＤＴＣＴ_ＲＳＴの“Ｈ”レベルまたは“Ｌ”レベルのいずれかをセンスアンプ１２に出力する。
【００７８】
＜コントローラ部３＞  
次に、図１に戻り、コントローラ部３について説明する。コントローラ部３は、ＮＡＮＤ型フラッシュメモリ２及び入出力部４の動作を制御する。すなわち、半導体記憶装置１全体としての動作を統括する機能を有する。図示するようにコントローラ部３は、内部レジスタ８０（図中、Internal register）及び半導体記憶装置用ステートマシン８３を備える。
【００７９】
２．１＜内部レジスタ８０＞  
内部レジスタ８０は、レジスタ８１（図中、Register）、コマンドユーザインターフェース（command user interface、図中CUI）８２を備える。
【００８０】
２．１．１＜レジスタ８１＞  
レジスタ８１は、半導体記憶装置１の動作状態を設定・保持するためのレジスタである。すなわちレジスタ８１は、アクセスコントローラ９９から与えられるコマンドに応じて、ファンクションの動作状態を設定する。より具体的には、レジスタ８１レジスタライトコマンドまたはレジスタリードコマンドに応じて、ファンクションの動作状態を設定する。
【００８１】
つまり、レジスタ８１には、例えばデータロード時にはロード（load）コマンドが設定され、データプログラム時にはプログラム（program）コマンドが設定される。なお、レジスタライトコマンドまたはレジスタリードコマンドとは、アクセスコントローラ９９からレジスタ８１に対するライトコマンドまたはリードコマンド（Write/Read）をいう。
【００８２】
またなお、ロードとは、ＮＡＮＤ型フラッシュメモリ２からデータを読み出して出力部４へ出力する動作であり、プログラムは、出力部４からのデータがページバッファ１３に転送されて、ＮＡＮＤ型フラッシュメモリ２のメモリセルアレイ１０に書き込まれるまでの動作であり、消去は、ＮＡＮＤ型フラッシュメモリ２内のデータを削除する動作である。
【００８３】
更に、レジスタ８１は、ＮＡＮＤシーケンサ１５から与えられるレディ信号及びエラー信号（図中、ＲＤＹ／Ｅｒｒｏｒ）により、ＮＡＮＤ型フラッシュメモリ２の動作状態を把握出来る。
【００８４】
２．１．２＜コマンドユーザインターフェース８２＞  
コマンドユーザインターフェース８２は、所定のコマンドがレジスタ８１に設定されることで、半導体記憶装置１に対してファンクション実行コマンドが与えられたことを認識する。その後、内部コマンド信号（Command）を発行し、ステートマシン８４へ出力する。
【００８５】
２．２＜半導体記憶装置用ステートマシン８３＞  
半導体記憶装置用ステートマシン８３は、ステートマシン（図中、state machine）６４、アドレス／コマンド発生回路（図中、NAND Add/Command Gen）６５、及びアドレス／タ
イミング発生回路（図中、Buffer Add/Timing）６６を備えている。
【００８６】
２．１．２＜ステートマシン８４＞  
ステートマシン８４は、コマンドユーザインターフェース８２から与えられる内部コマンド信号に基づいて、半導体記憶装置１内部におけるシーケンス動作を制御する。ステートマシン８４がサポートするファンクションは、ロード、プログラム、及び消去等、多数あり、これらのファンクションを実行するよう、ＮＡＮＤ型フラッシュメモリ２及び入出力部４の動作を制御する。ステートマシン８４は、オシレータ１７の生成する内部クロックＡＣＬＫに同期しつつ、これらの制御を行う。
【００８７】
２．１．３＜アドレス／コマンド発生回路８５＞  
アドレス／コマンド発生回路８５は、ステートマシン８４の制御に基づいてＮＡＮＤ型フラッシュメモリ２の動作を制御する。より具体的には、アドレスやコマンド（Program/Load/Erase、図中Ｃｏｍｍａｎｄ）等を生成し、ＮＡＮＤ型フラッシュメモリ２へ出力する。アドレス／コマンド発生回路８５は、オシレータ１７の生成する内部クロックＡＣＬＫに同期しつつ、これらのアドレスやコマンドを出力する。
【００８８】
２．１．４＜アドレス／タイミング発生回路８６＞  
アドレス／タイミング発生回路８６は、ステートマシン８４の制御に基づいて入出力部４の動作を制御する。より具体的には、入出力部４において必要なアドレスやコマンドを発行して、アクセスコントローラ９９及びＥＣＣ制御部７２へ出力する。
【００８９】
＜入出力部４＞  
次に、入出力部４について説明する。入出力部４は、ＥＣＣ部７０、インターフェース部９０（後述するＰＡＤ）、及びアクセスコントローラ９９を備えている。
【００９０】
本実施形態に係る半導体記憶装置１では、ＮＡＮＤ型フラッシュメモリ２が主記憶部として機能する。従って、シーケンサ１５はアドレス／コマンド発生回路８５からロードコマンドを受け、ＮＡＮＤ型フラッシュメモリ２からデータを外部に読み出す際には、まずＮＡＮＤ型フラッシュメモリ２のメモリセルアレイ１０から読み出されたデータが、ページバッファ１２を介して入出力部４のインターフェース部９０に転送され、その結果、図示せぬホスト機器に出力される。
【００９１】
他方、シーケンサ１５は、アドレス／コマンド発生回路８５からプログラムコマンドを受け、データをＮＡＮＤ型フラッシュメモリ２にデータを記憶させる際には、まずホスト機器から与えられたデータが、インターフェース部９０を介してページバッファ１２へ転送されて、メモリセルアレイ１０に書き込まれる。
【００９２】
また、メモリセルアレイ１０から読み出されたデータが、インターフェース部９０に転送されるまでの動作を、データの“リード（read）”と呼ぶ。
【００９３】
更に、ＮＡＮＤ型フラッシュメモリ２に記憶させるべきデータが、入出力部４に転送されるまでの動作を、データの“ライト（write）”と呼ぶ。また、ページバッファ１３内のデータがメモリセルアレイ１０に書き込まれるまでの動作を、データの“プログラム（program）”と呼ぶ。
【００９４】
以下、ＥＣＣ部７０、インターフェース部９０、及びアクセスコントローラ９９の各々の構成について説明する。  
３．１＜ＥＣＣ部７０＞  
ＥＣＣ部７０は、データについてのエラー検出及びエラー訂正、並びにパリティの生成（以下、これらをまとめてＥＣＣ処理と呼ぶことがある）を行う。すなわち、データのロード時には、ＮＡＮＤ型フラッシュメモリ２から読み出されたデータについてエラーの検出及び訂正を行う。他方、データのプログラム時には、プログラムすべきデータについてパリティの生成を行い、生成したパリティをメモリセルユニット１７に格納する。ＥＣＣ部７０は、ＥＣＣ解析部７１、ＥＣＣ制御部７２、及びＥＣＣデコーダ７３を備えている。
【００９５】
３．１．１＜ＥＣＣ解析部７１＞  
ＥＣＣ解析部７１は、ページバッファ１３に保持されるデータを用いてＥＣＣ処理を行う。ＥＣＣ解析部７１は、例えばハミングコードを用いた１ビット訂正方式を用いる。ＥＣＣ解析部７１は、データロード時にはメモリセルユニット１７が保持するパリティを用いてシンドロームを生成し、これによりエラー検出を行う。エラーが発見された際には、これを訂正する。他方、データプログラム時にはパリティを生成し、これをメモリセルユニット１７に格納する。
【００９６】
３．１．３＜ＥＣＣ制御部７２＞  
ＥＣＣ制御部７２は、ＥＣＣ解析部７１を制御する。
【００９７】
３．１．２＜ＥＣＣデコーダ７３＞  
ＥＣＣデコーダ７３は、データのロード時には、ＥＣＣ解析部７１においてエラーが有ると判断された場合、その位置を特定すると共に、対応するデータをページバッファ１３から読み出し、データを訂正する。またデータのプログラム時には、ＥＣＣ解析部７１で生成されたパリティをページバッファ１３に転送させる。
【００９８】
＜アクセスコントローラ９９＞  
アクセスコントローラ９９は、インターフェース９２から制御信号及びアドレスを受け取る。ホスト機器の要求を満たす動作を実行するよう、アクセスコントローラ９９はコントローラ部３、及び入出力部４を制御する。より具体的には、ホスト機器の要求に応じてアクセスコントローラ９９は、ＮＡＮＤ型フラッシュメモリ２、バーストバッファ９１、デコーダ７３、及びコントローラ部３を制御する。
【００９９】
例えば、ホスト機器の要求に応じてアクセスコントローラ９９は、レジスタ８１をアクティブ状態として、このレジスタ８１にコマンド（Write/Read）をセットする。また、ページバッファ１３に対して、メモリセルアレイ１０からデータを読み出すよう命令する。更にデコーダ７３に対して、外部から入力されたアドレスを転送する。
【０１００】
４．１＜インターフェース部９０＞  
インターフェース部９０は、バーストバッファ９１、及びインターフェース（I/F）９２を備えている。
【０１０１】
ユーザインターフェース９２は、メモリシステム１外部のホスト機器（ユーザ）と接続可能とされ、ホスト機器との間でデータ、制御信号、及びアドレスＡｄｄ等、種々の信号の入出力を司る。制御信号の一例は、半導体記憶装置１全体をイネーブルにするチップイネーブル信号／ＣＥ、アドレスをラッチさせるためのアドレスバリッド信号／ＡＶＤ、バーストリード（burst read）用のクロックＣＬＫ、書き込み動作をイネーブルにするライトイネーブル信号／ＷＥ、データの外部への出力をイネーブルにするアウトプットイネーブル信号／ＯＥ、などである。
【０１０２】
ユーザインターフェース９２は、データ入出力バスによりバーストバッファ９１と接続されている。データ入出力バスは、例えば２バイトである。そしてユーザインターフェース９２は、ホスト機器からのデータのリード要求、ロード要求、及びプログラム要求等に係る制御信号をアクセスコントローラ９９へ転送する。そしてデータリード時には、バーストバッファ９１内のデータをホスト機器へ出力する。またデータライト時には、ホスト機器から与えられるデータをバーストバッファ９１へ転送する。
【０１０３】
バーストバッファ９１は、バッファ／レジスタデータバスにより、ページバッファ１３及び制御部４とデータ転送可能とされている。バッファ／レジスタデータバスのバス幅は、例えばユーザデータバス７と同じである。そして、ホスト機器からユーザインターフェース９２を介して与えられるデータ、またはページバッファ１３から与えられるデータを、一時的に保持する。
【０１０４】
２．＜読み出し動作＞  
次に、図１、図２、図３、及び図５を用いてセンスアンプ１２による読み出し動作について説明する。図５はセンスアンプ１２の読み出し動作を示すフローチャートである。またここでは、例えばワード線ＷＬ１５を選択ワード線ＷＬとし、それ以外を非選択ワード線ＷＬとする。
【０１０５】
２．１＜プリチャージ＞  
まず、図３におけるＭＯＳトランジスタ２０、２１及び２２をオン状態とし（Ｓ０、図５）、電圧ＶＤＤをビット線ＢＬへ供給する。これにより、ビット線ＢＬの電位が電圧ＶＤＤに充電される。
【０１０６】
２．２＜ディスチャージ＞  
次に、図１、及び図２に示すように電圧発生回路１４によって、電圧Ｖｃｇｒが選択ワード線ＷＬ１５へと供給され、それ以外の非選択ワード線ＷＬ０〜ＷＬ１４、及びＷＬ１６〜３１には電圧Ｖｒｅａｄが供給される（Ｓ１、図５）。
【０１０７】
ここで、選択ワード線ＷＬ０に接続されたメモリセルＭＣがオン状態となれば、メモリセルユニット１７は導通し（Ｓ２、ＹＥＳ、図５）、ビット線ＢＬからソース線ＳＬへ電流Ｉｃｅｌｌ_１が流れる（Ｓ３、図５）。
【０１０８】
他方、メモリセルＭＣがオフ状態であれば、メモリセルユニット１７は非導通とされ（Ｓ２、ＮＯ、図５）る。すなわち、ビット線ＢＬからソース線ＳＬへと電流Ｉｃｅｌｌ_０（＜Ｉｃｅｌｌ_１）が流れるが（Ｓ６、図５）、このＩｃｅｌｌ_０は微少であるためビット線ＢＬは電圧ＶＤＤを維持する。なお。Ｉｃｅｌｌ_０、Ｉｃｅｌｌ_１を区別しない場合には単にＩｃｅｌｌと呼ぶ。
【０１０９】
２．３＜センス＞  
その後、ビット線ＢＬに流れる電流Ｉｃｅｌｌによって、図３に示すＳＥＮの値が変化する。つまり、メモリセルユニット１７が導通し、ビット線ＢＬにＩｃｅｌｌ_１が流れるとＳＥＮの電位が下がるため、ＭＯＳトランジスタ２５はオフ状態とされる（Ｓ４、図５）。従って、信号ＳＴＢ、信号ＳＴＬをオン状態としても、ＭＯＳトランジスタ２５はオフ状態であることからＳＤＬは“１”データが格納される（Ｓ５、図５）。
【０１１０】
これに対し、メモリセルユニット１７が非導通とされ、ビット線ＢＬにＩｃｅｌｌ_０が流れる場合（Ｓ６、図５）には、ＳＥＮの電位は初期値を維持するため、ＭＯＳトランジスタ２５はオン状態とされる（Ｓ７、図５）。この結果、信号ＳＴＢ、信号ＳＴＬをオン状態とすると、ＬＡＴ_Ｓは接地電位とされるためＳＤＬには“０”データが格納される（Ｓ８）。
【０１１１】
以上プリチャージ、ディスチャージ、及びセンス動作を、期待値データの読み出しの際も行う。すなわち、ＳＥＮに読み出した期待値データを、配線ＬＢＵＳ、配線ＤＢＵＳを介してラッチユニット１２−２に格納する。
【０１１２】
３．＜ＸＯＲ演算・検知動作＞  
次に、図６（ａ）〜（ｃ）乃至図１３（ａ）〜（ｃ）を用いてセンスアンプ１２による読み出しデータの演算動作について説明する。
【０１１３】
図６（ａ）〜図１３（ａ）は、ＸＯＲ演算を行うセンスユニット１２−１の概念図であり、ここでは、ラッチユニット１２−２が保持するデータをＡ、ＳＤＬが保持するデータをＢとする。
【０１１４】
図６（ｂ）〜図１３（ｂ）は、センスユニット１２−１の各ノードの電位を表したグラフであり、一例としてＳＤＬ、及びＸＤＬの保持データをＡ及びＢを、それぞれ“０（Ｌレベル）”とした場合の各ノードの状態変化である。
【０１１５】
更に図６（ｃ）〜図１３（ｃ）は、制御ユニット１５０−１によってセンスユニット１２−１を構成する各ＭＯＳトランジスタに供給される信号の電位変化を示した概念図である。
【０１１６】
また上述したように、ＸＯＲ演算動作では、ＳＤＬ及びラッチ回路１２−１_１が保持するデータを用いて演算した結果を検知部１２−３に格納させ、読み出しデータにつき誤読み出しがあるか否かを判定する。
【０１１７】
なお、検知部１２−３は、センスユニット１２−１_１が読み出したデータについての判定が終わると、他のセンスユニット１２−１_２〜１２−１_１６についても同様に１つずつ検知する。以下、演算・検知動作につき、各ステップに分けて説明する。
【０１１８】
ステップ１：図６（ａ）に示すようにＳＥＮを充電する。具体的には、図６（ｃ）に示すように時刻ｔ１で信号ＬＰＣを“Ｈ”レベル、次いで時刻ｔ２で信号ＢＬＱを“Ｈ”レベルとして電圧ＶＤＤをＳＥＮに転送する。従って、図６（ｂ）に示すようにＳＥＮの電位が“Ｈ”レベル（“１”）とされる。また、信号ＤＴＣＴ_ＲＳＴ＝“Ｈ”レベルとして、Ｆａｉｌを“Ｌ”レベルとする（ＰＡＳＳ＝“Ｈ”レベル（“１”））。
【０１１９】
ステップ２：次に図７（ａ）に示すようにラッチユニット１２−１の格納データ（反転データ、／Ａ）をＳＥＮに転送する。具体的には、時刻ｔ１で信号ＤＰＣｎ、及び信号ＬＰＣを、時刻ｔ２でＤＳＷをそれぞれ“Ｈ”レベルとし、配線ＬＢＵＳ及び配線ＤＢＵＳを“Ｈ”レベルとする。  
次いで、時刻ｔ３で信号ＸＴＩ、及び信号ＢＬＱのそれぞれを“Ｈ”レベルとすることで、ＩＮＶ_Ｘの値をＳＥＮに転送する。従って、図７（ｂ）に示すように、例えば／Ａ＝“１”であれば、ＳＥＮの電位は“Ｈ”レベル（“１”）とされる。
【０１２０】
ステップ３：次いで、図８（ａ）に示すようにＳＤＬの格納データ（反転データ、／Ｂ）をＳＥＮに転送する。具体的には、図８（ｃ）に示すように時刻ｔ１において信号ＬＰＣを“Ｈ”レベルとすることで、配線ＬＢＵＳを充電し、次いで時刻ｔ２及び時刻ｔ３において信号ＳＴＩ、及び信号ＢＬＱをそれぞれ“Ｈ”レベルとする。従って、図８（ｂ）に示すように、ＳＥＮには／Ｂの値が転送され、例えば／Ｂ＝“１”であれば、ＳＥＮの電位は“Ｈ”レベル（“１”）を維持する。
【０１２１】
ステップ４：次に、図９（ａ）に示すようにＳＥＮの値（反転データ）を検知部１２−３に転送する。具体的には、図９（ｃ）に示すように時刻ｔ１において信号ＤＰＣｎを“Ｌ”レベル、信号ＬＰＣを“Ｈ”レベルとし、次いで時刻ｔ２でＤＳＷを“Ｈ”レベルとすることで配線ＬＢＵＳ及び配線ＤＢＵＳを充電する。また、時刻ｔ２において、ＤＴＣＴ_ＲＳＴを“Ｈ”レベルとし、ＭＯＳトランジスタ６２をオン状態とすることで、ＦＡＩＬをリセットする。その後、時刻ｔ３において信号ＳＴＢを“Ｈ”レベル、時刻ＤＴＣＴ_ＥＮＢを“Ｈ”レベルとすることで、ＳＥＮの保持レベルに応じた値を検知部１２−３に転送する。なお、信号ＧＯＯＤは常時“Ｈ”レベルとされる。従って、図９（ｂ）に示すように、例えばＳＥＮのノードが“Ｈ”レベル（“１”）であれば、ＰＡＳＳは“Ｈ”＝＞“Ｌ”レベル（“０”）とされる（この時、クロッＣＬＫ＝“Ｌ”）。
【０１２２】
上記ステップ１〜ステップ４までの動作で、ＯＲ演算が行われる。つまり、ステップ１で、ＳＥＮの値が“Ｈ”レベルとされた後、ステップ２でこのＳＥＮの値は／Ａに応じた値とされ、次いでステップ３でこのＳＥＮに／Ｂの値が転送される。つまり、ステップ３までの動作でＳＥＮの値は／Ａと／ＢとのＡＮＤ演算で得られた値とされる。そして、ステップ４においてこのＳＥＮの保持レベルに応じた値を検知部１２−３のＰＡＳＳに転送することで、検知部１２−３には、ＳＥＮの値の反転データが格納される。すなわち、下記（１）式で表される。  
【数１】
2013225364.tif 000003
【０１２３】
ドモルガンの公式に従うと上記（１）式はＯＲ演算をしたことと同値である。更にステップ５以降の説明を続ける。
【０１２４】
ステップ５：ＳＥＮを充電する。充電方法は上記ステップ１と同様であるため説明を省略する。
【０１２５】
ステップ６：次いで、図１０（ａ）に示すようにラッチユニット１２−１の格納データ（Ｂ）をＳＥＮに転送する。具体的には、図１０（ｃ）に示すように時刻ｔ１において信号ＬＰＣを“Ｈ”レベルとすることで、配線ＬＢＵＳを充電した後、時刻ｔ２において信号ＳＴＩ、及び信号ＢＬＱのそれぞれを“Ｈ”レベルとする。これによりＬＡＴ_Ｓの値をＳＥＮに転送する。従って図１０（ｂ）に示すように例えばＢ＝“０”であれば、ＳＥＮの電位は“Ｌ”レベル（“０”）とされる。
【０１２６】
ステップ７：次いで、図１１（ａ）に示すようにラッチユニット１２−１の格納データ（Ａ）をＳＥＮに転送する。具体的には、図１１（ｃ）に示すように時刻ｔ１で信号ＤＰＣｎを“Ｌ”レベルとし、また信号ＬＰＣを“Ｈ”レベルとし、次いで時刻ｔ２において信号ＤＳＷを“Ｈ”レベルとすることで配線ＬＢＵＳ及び配線ＤＢＵＳをそれぞれ充電する。
【０１２７】
その後、時刻ｔ４において、信号ＸＴＩ、及び信号ＬＳＬのそれぞれを“Ｈ”レベルとする。従って、図１１（ｂ）に示すように、例えばＡ＝“０”であれば、／Ａは“Ｈ”レベルであるため、ＳＥＮの電位は接地レベル、すなわち“Ｌ”レベル（“０”）とされる。
【０１２８】
ステップ８：次いで、図１２（ａ）に示すようにＳＥＮの値を検知部１２−３に転送する。具体的には、図１２（ａ）に示すように、時刻ｔ１において信号ＤＰＣｎを“Ｌ”レベル、信号ＬＰＣを“Ｈ”レベル、次いで時刻ｔ２において信号ＤＳＷを“Ｈ”レベルとすることで、配線ＬＢＵＳ及び配線ＤＢＵＳを充電する。次いで、時刻ｔ４において信号ＳＴＢ及び信号ＤＴＣＴ_ＥＮＢをそれぞれ“Ｈ”レベルとし、ＳＥＮに応じた値を検知部１２−３に転送する。従って、図１２（ｂ）に示すように、例えばＳＥＮ＝“Ｌ”レベルとすると、ＭＯＳトランジスタ２５はオフ状態を維持するため、ＰＡＳＳの値は、直前の値を維持する。すなわち、ＰＡＳＳは“Ｌ”レベル（“０”）とされる。これはＡ、Ｂの値がそれぞれ“０”である場合、ＸＯＲ演算した結果である。
【０１２９】
以上ステップ５〜ステップ８までの動作で、ＮＡＮＤ演算が行われる。つまり、ステップ５〜ステップ７までの動作でＳＥＮの値はＡとＢとのＡＮＤ演算で得られた値とされる。次いで、ステップ８において、このＳＥＮの保持レベルに応じた値を検知部１２−３のＰＡＳＳに転送することで、検知部１２−３には、ＳＥＮの反転データが格納される。これは、ＡとＢとのＮＡＮＤ演算を行ったことと同値である。すなわち、ステップ５〜ステップ８までの動作は下記（２）式で表される。  
【数２】
2013225364.tif 000004
【０１３０】
そして、上記したように、ステップ１〜ステップ４の動作によって、既に（１）式で得られた値が検知部１２−３に格納されており、その後、（２）式で得られた値をこの検知部１２−３に転送することで、上記（１）式及び（２）式のＡＮＤ演算が行われる。すなわち、下記（３）式で表される。
【数３】
2013225364.tif 000005
【０１３１】
上記（３）式は、ＸＯＲ演算を表す式、すなわち下記（４）式と同値である。  
【数４】
2013225364.tif 000006
【０１３２】
その後、（３）式で得られた値を、ＳＤＣに転送する（ステップＳ９、Ｓ１０）。この様子を図１３（ａ）〜１２図（ｃ）を用いて説明する。つまり、図１３（ａ）、及び（ｃ）に示すように、時刻ｔ１で信号ＬＰＣ及び信号ＳＴＬをそれぞれ“Ｈ”レベルとすることでＬＡＴ_Ｓを充電した後（ＬＡＴ_Ｓ＝“Ｈ”レベル（“１”）、図１３（ｂ）参照）、信号ＤＰＣｎ、信号ＬＰＣ、及び信号ＤＳＷによって配線ＬＢＵＳ及び配線ＤＢＵＳを充電し、信号ＤＴＣＴ_ＥＮＢ、及び信号ＳＴＬをそれぞれ“Ｈ”レベルとすることで、ＳＤＣに検知部１２−３の保持データを格納させる。
【０１３３】
また、本実施形態では、例えばＡの値を“０”、期待値データを“０”とした場合について説明したが、“０”及び“１”、“１”及び“０”、並びに“１”及び“１”の組み合わせであっても良い。例えば、Ａ、Ｂの値が“０”、“１”又は“１”、“０”のいずれかパターンである場合、ＰＡＳＳの電位レベルは“Ｈ”レベル（“１”）とされ、Ａ、Ｂの値が“１”、“１”である場合には、ＰＡＳＳの電位レベルは“Ｌ”レベル（“０”）とされる。つまり、期待値データとしてラッチユニット１２−２に“０”又は“１”のいずれかを格納させ、読み出しデータとＸＯＲ演算を行った結果、ＰＡＳＳの電位レベルが“Ｈ”レベルであった場合には、誤読み出しであると判断出来、これに対し、ＰＡＳＳの電位レベルが“Ｌ”レベルであった場合には、正しく読み出されたと判断出来る。
【０１３４】
この様子を図１４（ａ）〜図１４（ｃ）に示す。図１４（ａ）〜図１４（ｃ）は、ＳＤＬ、ＸＤＬに格納されるＡ、Ｂの値を変えた際の、各ノードの電位レベルを示した概念図である。
【０１３５】
＜第１の実施形態に係る効果＞  
第１の実施形態に係る半導体記憶装置では、下記（１）及び（２）の効果を得ることが出来る。  
（１）回路面積のサイズを維持しつつ、演算時間を縮小することが出来る。  
上記（１）の効果を説明するために、比較例を挙げて説明する。比較例に、例えば２ビット（４値）の多値データを読み出し可能とするセンスアンプ（構成その１）を挙げる。この場合、センスアンプは２ビットのデータを保持する必要があるため、ラッチを例えば４つ（ＳＤＬ、ＸＤＬ、ＵＤＬ、ＬＤＬ）搭載していた。このため、４値データを読み出すセンスアンプであると、このセンスアンプ内でＸＯＲ演算を行うことが出来た（ＸＯＲ演算には最低でも３つのラッチ回路が必要）。
【０１３６】
ここで、このＸＯＲ演算を１ビット（２値）読み出しに対応したセンスアンプ（構成その２）で実施しようとすると、ラッチの数が少ないため（ＳＤＬとＸＤＬの二つ）、このままではＸＯＲ演算をすることが出来なかった。
【０１３７】
このため、例えばＳＤＬとＸＤＬとがそれぞれ保持する格納データを外部に接続されたテスト機に転送し、このテスト機でＸＯＲ演算を行っていた。具体的には、上記（４）式において、Ａを読み出したデータ、ＢにこのＡとＸＯＲ演算するための期待値（１又は０）いずれかを交互に用いて、この読み出しデータに誤りがないかどうかを判断していた。この様に、期待値１と期待値０との両方を用いて計算する必要があるため、これらの計算を命令するコマンド分だけ時間を要していた（構成その２では、演算用のコマンド２回）。
【０１３８】
これに対し、本実施形態に係る半導体記憶装置であると、上述したように、４値データを読み出すセンスアンプのようにＵＤＬやＬＤＬなどのラッチを追加せずともＸＯＲ演算を実現しつつ、上記一例で挙げた構成その２に該当するセンスアンプよりもＸＯＲ演算に要する時間を短縮することが出来る。
【０１３９】
すなわち、本実施形態であると、ベリファイ用に使用する検知部１２−３を、この読み出し時に動作可能とする構成を備える。具体的には、図４で説明したように、シーケンサ１４が制御ユニット１５０−１及び信号制御回路１５０−２を備える。
【０１４０】
そして読み出し時に制御ユニット１５０−１が検知部１２−３をデータ保持用として動作させる。つまり、検知部１２−４を読み出し時にＸＯＲ演算するラッチ用として機能させる。これにより、本実施形態に係るセンスアンプ１２であっても、ラッチを増やすことなくＸＯＲ演算を実現することが出来る。
【０１４１】
また、本実施形態に係るセンスアンプ１２であると、構成その２のように期待値０又は１のそれぞれについて演算する必要がないため、このＸＯＲ演算を命令するコマンドが１回で済み、全体としてこのＸＯＲ演算に要する時間を削減することが出来る。
【０１４２】
なお、本実施形態では、あるブロックＢＬＫからシステム情報として保持された期待値データを用いてＸＯＲ演算を行ったが、この方法に限られない。
【０１４３】
別の方法として、上述したが図示せぬホスト（host）から期待値データを受け取り、これをページバッファ１３を介してラッチユニット１２−２に格納させる方法がある。これ以降のＸＯＲ演算に係る動作は上記説明と同一であるため説明を省略する。
【０１４４】
［第２の実施形態］  
次に第２の実施形態に係る半導体記憶装置について説明する。上記第１の実施形態では、ＳＤＬ、ＸＤＬ、及び検知部１２−３を用いて読み出したデータにつき誤読み出しがあるか否かを判定するものであった。これに対し、第２の実施形態に係る半導体記憶装置は、ＳＤＬとＸＤＬを用いて、誤読み出したデータに対してＥＣＣ訂正を行うものである。
【０１４５】
１．ＥＣＣ制御部７１  
本実施形態に係るＥＣＣ制御部７１は、あるビット列内に誤読み出しがあると、該当するセンスアンプ１２内のＸＤＬにフラグ“１”を書き込む。具体的には、センスユニット１２−１_１〜センスユニット１２−１_１６の内、たとえばセンスユニット１２−１_５が読み出したデータに誤りがあったとする。この場合、ＥＣＣ制御部７１は、フラグ“１”を生成し、これをセンスユニット１２−１_５内のＸＤＬにページバッファ１３を介して書き込む。
【０１４６】
２．訂正動作
次に、上記ＸＯＲ演算を用いて訂正動作について説明する。以下、訂正動作はシーケンサ１５によって制御される。なお、上記したように、読み出しデータに対して、ＸＤＬの値が“１”である場合、ＸＯＲ演算の結果得られる値が反転する。以下説明する訂正動作では、この特性を用いる。
【０１４７】
２．１＜ＳＤＬ＝１＞  
例えば、誤読み出した結果、ＳＤＬに格納されたデータが“１”であった場合を考える。この場合、訂正動作によって“０”に訂正する。
【０１４８】
具体的には、上述したように、ＥＣＣ制御部７１から転送されたＸＤＬの“１”データとこのＳＤＬの格納データ（“１”）について、上記ステップ１〜ステップ８までの動作を行う。
【０１４９】
すると、上記（３）式より、読み出したデータは反転し、検知部１２−３に格納される値は“０”とされる。次いでこのデータをＳＤＣに転送する。以上訂正動作により、“１”と誤読み出しされたデータが“０”データに訂正される。
【０１５０】
２．２＜ＳＤＬ＝０＞  
例えば、誤読み出した結果、ＳＤＬに格納されたデータが“０”であった場合を考える。この場合、訂正動作によって“１”に訂正する。
【０１５１】
具体的には、上述したように、ＥＣＣ制御部７１から転送されたＸＤＬの“１”データとこのＳＤＬの格納データ（“０”）について、上記ステップ１〜ステップ８までの動作を行う。
【０１５２】
すると、上記（３）式より、読み出したデータは反転し、検知部１２−３に格納される値は“１”とされる。次いでこのデータをＳＤＣに転送する。以上訂正動作により、“０”と誤読み出しされたデータが“１”データに訂正される。
【０１５３】
なお、（３）式から分かるように、訂正動作においてＸＤＬには“０”データが格納されることはない。なぜなら、“０”データを用いてＸＯＲ演算を行っても反転せず、訂正処理をすることができないからである。
【０１５４】
なお、上記訂正動作では、１６本のビット線ＢＬに接続されたセンスユニット１２−１_１〜センスユニット１２−１_１６を挙げて説明したが、実際の訂正処理は１ページ単位で行われる。
【０１５５】
＜第２の実施形態に係る効果＞  
本実施形態に係る半導体記憶装置であると、上記（１）及び（２）の効果に加え、（３）の効果を得ることができる。  
（３）１ページ分のデータにつき一括で訂正処理をすることができる。  
すなわち、本実施形態に係る構成であると、センスアンプ１２内でＸＯＲ演算をする構成を備える。このため、このＸＯＲ演算を用いてＥＣＣ訂正処理を実行することができる。
【０１５６】
ＥＣＣ訂正した後のデータは、各々のセンスアンプ１２内のＳＤＬに格納されているため、ページバッファ１３に読み出す際には、一括して１ページ分、訂正処理後のビット列を読み出すことができる。
【０１５７】
なお、上記第１、第２の半導体記憶装置のセンスアンプ１２は、全ビット線ＢＬに対して同時に読み出すための構成を具備するものであるが（電流センス型）、隣接するビット線ＢＬを対として、いずれか１本のビット線ＢＬに対し読み出し動作を行う構成のセンスアンプ１２（電圧センス型）であっても実現可能である。具体的には、電圧センス型のセンスアンプ１２において、ＸＤＬとＳＤＬとが交互にデータ転送できる構成をとればよい。
【０１５８】
なお、本願発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。
【符号の説明】
【０１５９】
１…半導体記憶装置、２…ＮＡＮＤ型フラッシュメモリ、３…コントローラ部、４…入出部、１０…メモリセルアレイ、１１…ロウデコーダ、１２…センスアンプ、１２−１…センスユニット、１２−２…ラッチユニット、１２−３…検知部、１３…ページバッファ、１４…電圧発生回路、１５…シーケンサ、１６、１７…オシレータ、２０〜２３、及び２５〜３４、４０、４１、及び４３…ｎチャネル型ＭＯＳトランジスタ、２４…キャパシタ素子、３５〜３９…ｐチャネル型ＭＯＳトランジスタ、１５０−１…制御ユニット、１５０−２…信号制御回路、
【図１】
2013225364.tif 000007
【図２】
2013225364.tif 000008
【図３】
2013225364.tif 000009
【図４】
2013225364.tif 000010
【図５】
2013225364.tif 000011
【図６】
2013225364.tif 000012
【図７】
2013225364.tif 000013
【図８】
2013225364.tif 000014
【図９】
2013225364.tif 000015
【図１０】
2013225364.tif 000016
【図１１】
2013225364.tif 000017
【図１２】
2013225364.tif 000018
【図１３】
2013225364.tif 000019
【図１４】
2013225364.tif 000020