IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ウィンボンド エレクトロニクス コーポレーションの特許一覧

<>
  • 特許-半導体記憶装置 図1
  • 特許-半導体記憶装置 図2
  • 特許-半導体記憶装置 図3
  • 特許-半導体記憶装置 図4
  • 特許-半導体記憶装置 図5
  • 特許-半導体記憶装置 図6
  • 特許-半導体記憶装置 図7
  • 特許-半導体記憶装置 図8
  • 特許-半導体記憶装置 図9
  • 特許-半導体記憶装置 図10
  • 特許-半導体記憶装置 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2022-11-16
(45)【発行日】2022-11-25
(54)【発明の名称】半導体記憶装置
(51)【国際特許分類】
   G06F 11/10 20060101AFI20221117BHJP
   G11C 16/04 20060101ALI20221117BHJP
   G11C 16/26 20060101ALI20221117BHJP
   G06F 12/00 20060101ALI20221117BHJP
   G06F 13/16 20060101ALI20221117BHJP
【FI】
G06F11/10 668
G11C16/04 170
G11C16/26 110
G06F12/00 597U
G06F13/16 510E
G06F12/00 564A
【請求項の数】 13
(21)【出願番号】P 2021140691
(22)【出願日】2021-08-31
【審査請求日】2021-08-31
(73)【特許権者】
【識別番号】511062254
【氏名又は名称】ウィンボンド エレクトロニクス コーポレーション
(74)【代理人】
【識別番号】100098497
【弁理士】
【氏名又は名称】片寄 恭三
(72)【発明者】
【氏名】金子 二四三
(72)【発明者】
【氏名】妹尾 真言
(72)【発明者】
【氏名】葛西 央倫
【審査官】田中 幸雄
(56)【参考文献】
【文献】特許第7096938(JP,B1)
【文献】特開2020-191145(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/10
G11C 16/04
G11C 16/26
G06F 12/00
G06F 13/16
(57)【特許請求の範囲】
【請求項1】
NAND型のメモリセルアレイと、メモリセルアレイの読出し動作を制御する制御手段と、前記メモリセルアレイから読出したデータをECCチップに出力する出力手段とを備えたNANDチップと、
第1および第2の保持部と、当該第1および第2の保持部に保持されたデータの誤り検出および訂正を行うECC手段とを備えたECCチップとを含み、
1ページがn個のセクタから構成されるとき、前記出力手段がセクタ単位でデータを前記ECCチップに出力し、前記第1の保持部が偶数番目のセクタのデータを保持し、前記第2の保持部が奇数番目のセクタのデータを保持し、前記ECC手段が第1の保持部または第2の保持部から読み出されたデータの誤り検出および訂正を行う、半導体記憶装置。
【請求項2】
前記第1および第2の保持部のそれぞれがn/4個のセクタのデータを保持可能であり、
前記出力手段は、前記ECCチップがセクタのデータを外部に出力したことに応答して当該セクタからn/2番目のセクタのデータを前記ECCチップに出力する、請求項1に記載の半導体記憶装置。
【請求項3】
前記制御手段は、前記ECCチップがページの先頭のセクタのデータを外部に出力するタイミングに応答して前記メモリセルアレイから次のページを読出す、請求項1に記載の半導体記憶装置。
【請求項4】
前記出力手段は、前記ECCチップにデータを出力するための第1の専用端子を含み、
前記ECCチップは、前記第1の専用端子から出力されたデータを受け取る第2の専用端子を含む、請求項1ないし3いずれか1つに記載の半導体記憶装置。
【請求項5】
前記第1の専用端子は、クロック信号を出力するクロック端子、データを出力するDATA端子を含み、前記第2の専用端子は、前記クロック信号を受け取るクロック端子、データを入力するDATA端子とを含み、
前記出力手段は、前記クロック信号に同期して前記DATA端子からデータを出力し、
前記ECCチップは、前記クロック信号に同期して前記DATA端子からデータを入力する、請求項4に記載の半導体記憶装置。
【請求項6】
前記制御手段は、メモリセルアレイから読み出されたデータを保持する第1のラッチと、当該第1のラッチから転送されたデータを保持する第2のラッチとを含み、前記第1のラッチは1ページ分のデータを保持し、前記第2のラッチは1/2ページ分のデータを保持し、
前記出力手段は、前記第1のラッチに保持された1/2ページ分の前半データと前記第2のラッチに保持された1/2ページ分の後半データとを前記ECCチップに出力する、請求項1ないし5いずれか1つに記載の半導体記憶装置。
【請求項7】
1つのページが8個のセクタから構成され、前記ECC手段がセクタ単位でデータの誤り検出および訂正を行う場合に、前記出力手段が1セクタ分のデータを出力する時間をtDOUT1、前記ECCチップが1セクタ分のデータを外部に出力する時間をtDOUT2、前記NANDチップが1セクタ分のデータを出力してから当該セクタの誤り検出および訂正が終わるまでのレイテンシをtLTCYとしたとき、
tDOUT1+tLTCY<tDOUT2×3の制約を有する、請求項1ないし6いずれか1つに記載の半導体記憶装置。
【請求項8】
前記NANDチップと前記ECCチップは、1つのパッケージ内に収容される、請求項1ないし7いずれか1つに記載の半導体記憶装置。
【請求項9】
NAND型のメモリセルアレイと、メモリセルアレイの読出し動作を制御する制御手段と、前記メモリセルアレイから読出したデータをECCチップに出力する出力手段とを備えたNANDチップと、第1および第2の保持部と、当該第1および第2の保持部に保持されたデータの誤り検出および訂正を行うECC手段とを備えたECCチップとを含む半導体記憶装置における読出し方法であって、
前記出力手段がセクタ単位でデータを前記ECCチップに出力し、
前記第1の保持部が偶数番目のセクタのデータを保持し、前記第2の保持部が奇数番目のセクタのデータを保持し、
前記ECC手段が前記第1の保持部または前記第2の保持部から読み出されたデータの誤り検出および訂正を行い、訂正したデータを外部に出力する、読出し方法。
【請求項10】
前記出力手段は、クロック信号に同期して第1の専用端子から前記ECCチップにデータを出力し、
前記ECCチップは、前記クロック信号に同期して前記第1の専用端子に接続された第2の専用端子からデータを受け取る、請求項9に記載の読出し方法。
【請求項11】
前記第1および第2の保持部のそれぞれがn/4個のセクタのデータを保持可能であり、
前記出力手段は、前記ECCチップがセクタのデータを外部に出力したことに応答して当該セクタからn/2番目のセクタのデータを前記ECCチップに出力する、請求項9または10に記載の読出し方法。
【請求項12】
前記制御手段は、前記ECCチップがページの先頭のセクタのデータを外部に出力するタイミングに応答して前記メモリセルアレイから次のページを読出す、請求項9に記載の読出し方法。
【請求項13】
1つのページが8個のセクタから構成され、前記ECC手段がセクタ単位でデータの誤り検出および訂正を行う場合に、前記出力手段が1セクタ分のデータを出力する時間をtDOUT1、前記ECCチップが1セクタ分のデータを外部に出力する時間をtDOUT2、前記NANDチップが1セクタ分のデータを出力してから当該セクタの誤り検出および訂正が終わるまでのレイテンシをtLTCYとしたとき、
tDOUT1+tLTCY<tDOUT2×3の制約を有する、請求項9ないし12いずれか1つに記載の読出し方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、NAND型フラッシュメモリ等の半導体記憶装置に関し、特に誤り検出訂正に関する。
【背景技術】
【0002】
NAND型のフラッシュメモリでは、データのプログラムや消去が繰り返されることで、トンネル絶縁膜の劣化等により電荷保持特性が悪化したり、トンネル絶縁膜にトラップされた電荷によりしきい値変動が生じ、ビットエラーを引き起こすことがある。このようなビットエラー対策として、フラシュメモリにはエラー検出訂正回路(以下、ECC回路という)が用いられている(例えば、特許文献1、2)。
【先行技術文献】
【特許文献】
【0003】
【文献】特許6744950号公報
【文献】特許6744951号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
図1は、従来のオフチップECCのフラッシュメモリの構成を示す図である。フラッシュメモリ10は、NAND型のメモリセルアレイやその周辺回路を含むNANDチップ20を含んで構成され、NANDチップ20は、ECC機能40を搭載したコントローラチップ30に接続される。NANDチップ20とコントローラチップ30とは、それぞれ別個のパッケージに収容され、各パッケージが例えばプリント基板上に実装される。
【0005】
NANDチップ20とコントローラチップ30は、例えば、クロック信号に同期してデータを転送することができるSPI(Serial Peripheral Interface)を搭載し、両チップには、それぞれ#CS、CLK、DI、DO、#WP、#HOLDの入出力端子が設けられる。コントローラチップ30は、SPIの入出力端子を介してNANDチップ20にコマンド、アドレス、データを送信する。
【0006】
ECC機能40は、データを符号化してパリティデータを生成するエンコーダと、パリティデータに基づきデータを復号化するデコーダとを含む。ECC機能40は、例えば、BCHコードにより複数ビット(例えば、2ビット、4ビット、8ビットなど)のエラー検出・訂正を行い、この場合、BCHデコーダは、データのシンドロームを評価するシンドローム計算部と、エラー位置多項式(ELP)を計算するユークリッド互除計算部と、エラー位置多項式の根を計算し、エラー位置を探索するエラー位置探索部と、探索されたエラー位置に基づきエラーを訂正するエラー訂正部とを含む。
【0007】
NANDチップ20のページバッファ/センス回路は、2つのラッチを含み、1つのラッチは、2つのキャッシュから構成され、1つのキャッシュが複数のセクタ(例えば、2セクタ、4セクタなど)のデータを格納する。NANDチップ20とコントローラチップ30との間のデータ転送は、キャッシュ単位で行われる。また、ECC機能40は、セクタ単位でパリティデータを生成し、あるいはエラー検出・訂正を行う。ECC機能40により符号された1つのセクタは、メインデータとパリティデータとを含む。
【0008】
コントローラチップ30は、NANDチップ20にプログラム動作をさせるとき、ECC機能40によりプログラムすべきデータからパリティデータを生成し、生成したパリティデータとメインデータとをSPIのDO端子を介してNANDチップ20に転送する。NANDチップ20は、受け取ったメインデータとパリティデータとをラッチに保持し、ラッチに保持したデータをメモリセルアレイの選択ページにプログラムする。
【0009】
一方、NANDチップ20においてメモリセルアレイから読み出されたデータは、SPIのDO端子を介してコントローラチップ30に転送される。ECC機能40は、パリティデータに基づきエラーを検出し、その検出結果に応じてメインデータやパリティデータを訂正する。
【0010】
図2は、コントローラチップ30のECC機能の各部の動作を示すタイミングチャートである。NANDチップ20は、コントローラチップ30から転送された読出しコマンドに応じて読出し動作を行い、読み出したデータをコントローラチップ30に出力する。時刻t0で、コントローラチップ30のNAND_IFがNANDチップ20からセクタS0のメインデータとパリティデータPtの受け取りを開始し、時刻t1で、セクタS1のメインデータとパリティデータPtの受け取りを開始し、時刻t2、t3でセクタS2、セクタS3のメインデータとパリティデータPtの受け取りを開始する。ECC機能40は、セクタS1のデータの受け取りを行っている間に、これと並行してセクタS0のメインデータのシンドロームの計算、エラー位置多項式の計算、エラー位置の探索をパイプライン処理し、探索されたエラー位置に基づきセクタS0のメインデータのエラーを訂正する。その後、コントローラチップ30のCPU_IFは、セクタS0のエラー訂正したデータをホスト装置に転送する。セクタS1、S2、S3のECC処理も同様にパイプライン処理が行われ、各セクタのエラー訂正したデータがセクタの受信中に出力される。
【0011】
NANDチップ20からコントローラチップ30に読出しデータを転送する場合、シンドローム計算はセクタのパリティデータの転送後に行う必要がある。このため、SPIのDO端子のビット幅が狭いと、データ転送に時間がかかってしまい、その間、コントローラチップ30のアイドル状態が長くなり、パインライン処理によるパフォーマンスを十分に発揮させることができないという課題がある。また、メモリセルアレイの高集積化に伴い1ページのサイズが大きくなると、ページバッファ/センス回路やECC機能の占有面積が大きくなり、これによりチップが大きくなってしまう。このため、ページバッファ/センス回路やECC機能の省スペース化が望まれる。
【0012】
本発明は、このような従来の課題を解決し、誤り検出および訂正の処理の高速化を図りつつ小型化が可能な半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明に係る半導体記憶装置は、NAND型のメモリセルアレイと、メモリセルアレイの読出し動作を制御する制御手段と、前記メモリセルアレイから読出したデータをECCチップに出力する出力手段とを備えたNANDチップと、第1および第2の保持部と、当該第1および第2の保持部に保持されたデータの誤り検出および訂正を行うECC手段とを備えたECCチップとを含み、1ページがn個のセクタから構成されるとき、前記出力手段がセクタ単位でデータを前記ECCチップに出力し、前記第1の保持部が偶数番目のセクタのデータを保持し、前記第2の保持部が奇数番目のセクタのデータを保持し、前記ECC手段が第1の保持部または第2の保持部から読み出されたデータの誤り検出および訂正を行う。
【0014】
ある態様では、前記第1および第2の保持部のそれぞれがn/4個のセクタのデータを保持可能であり、前記出力手段は、前記ECCチップがセクタのデータを外部に出力したことに応答して当該セクタからn/2番目のセクタのデータを前記ECCチップに出力する。ある態様では、前記制御手段は、前記ECCチップがページの先頭のセクタのデータを外部に出力するタイミングに応答して前記メモリセルアレイから次のページを読出す。ある態様では、前記出力手段は、前記ECCチップにデータを出力するための第1の専用端子を含み、前記ECCチップは、前記第1の専用端子から出力されたデータを受け取る第2の専用端子を含む。ある態様では、前記第1の専用端子は、クロック信号を出力するクロック端子、データを出力するDATA端子を含み、前記第2の専用端子は、前記クロック信号を受け取るクロック端子、データを入力するDATA端子とを含み、前記出力手段は、前記クロック信号に同期して前記DATA端子からデータを出力し、前記ECCチップは、前記クロック信号に同期して前記DATA端子からデータを入力する。ある態様では、前記制御手段は、メモリセルアレイから読み出されたデータを保持する第1のラッチと、当該第1のラッチから転送されたデータを保持する第2のラッチとを含み、前記第1のラッチは1ページ分のデータを保持し、前記第2のラッチは1/2ページ分のデータを保持し、前記出力手段は、前記第1のラッチに保持された1/2ページ分の前半データと前記第2のラッチに保持された1/2ページ分の後半データとを前記ECCチップに出力する。ある態様では、1つのページが8個のセクタから構成され、前記ECC手段がセクタ単位でデータの誤り検出および訂正を行う場合に、前記出力手段が1セクタ分のデータを出力する時間をtDOUT1、前記ECCチップが1セクタ分のデータを外部に出力する時間をtDOUT2、前記NANDチップが1セクタ分のデータを出力してから当該セクタの誤り検出および訂正が終わるまでのレイテンシをtLTCYとしたとき、
tDOUT1+tLTCY<tDOUT2×3の制約を有する。ある態様では、前記NANDチップと前記ECCチップは、1つのパッケージ内に収容される。
【0015】
本発明に係る読出し方法は、NAND型のメモリセルアレイと、メモリセルアレイの読出し動作を制御する制御手段と、前記メモリセルアレイから読出したデータをECCチップに出力する出力手段とを備えたNANDチップと、第1および第2の保持部と、当該第1および第2の保持部に保持されたデータの誤り検出および訂正を行うECC手段とを備えたECCチップとを含む半導体記憶装置におけるものであって、前記出力手段がセクタ単位でデータを前記ECCチップに出力し、前記第1の保持部が偶数番目のセクタのデータを保持し、前記第2の保持部が奇数番目のセクタのデータを保持し、前記ECC手段が前記第1の保持部または前記第2の保持部から読み出されたデータの誤り検出および訂正を行い、訂正したデータを外部に出力する。
【0016】
ある態様では、前記出力手段は、クロック信号に同期して第1の専用端子から前記ECCチップにデータを出力し、前記ECCチップは、前記クロック信号に同期して前記第1の専用端子に接続された第2の専用端子からデータを受け取る。ある態様では、前記第1および第2の保持部のそれぞれがn/4個のセクタのデータを保持可能であり、前記出力手段は、前記ECCチップがセクタのデータを外部に出力したことに応答して当該セクタからn/2番目のセクタのデータを前記ECCチップに出力する。ある態様では、前記制御手段は、前記ECCチップがページの先頭のセクタのデータを外部に出力するタイミングに応答して前記メモリセルアレイから次のページを読出す。ある態様では、1つのページが8個のセクタから構成され、前記ECC手段がセクタ単位でデータの誤り検出および訂正を行う場合に、前記出力手段が1セクタ分のデータを出力する時間をtDOUT1、前記ECCチップが1セクタ分のデータを外部に出力する時間をtDOUT2、前記NANDチップが1セクタ分のデータを出力してから当該セクタの誤り検出および訂正が終わるまでのレイテンシをtLTCYとしたとき、
tDOUT1+tLTCY<tDOUT2×3の制約を有する。
【発明の効果】
【0017】
本発明によれば、ECCチップの第1および第2の保持部に偶数番目と奇数番目のセクタのデータを交互に保持させることで第1および第2の保持部のデータサイズを削減することができ、これによりECCチップのチップ面積を縮小させ、かつ低コスト化を図ることができる。その結果、ECCチップを収容する半導体記憶装置の小型化、省スペース化を図ることができる。また、NANDチップとは別個にECCチップを設けることで誤り検出および訂正の処理の高速化を図ることができる。
【図面の簡単な説明】
【0018】
図1】従来のフラッシュメモリの概略構成を示す図である。
図2】従来のフラッシュメモリのECC機能の動作を示すタイミングチャートである。
図3】本発明の実施例に係るフラッシュメモリの概略構成を示す図である。
図4図4(A)は、本実施例のフラッシュメモリの要部の構成を示す図、図4(B)は、比較例としてのフラッシュメモリの要部の構成を示す図である。
図5】本発明の実施例に係るNANDチップとECCチップとの内部構成を示すブロック図である。
図6】本発明の実施例に係るフラッシュメモリのECC動作を示すタイミングチャートである。
図7】比較例のフラッシュメモリの連続読出し動作のタイミングチャートを示す図である。
図8】本発明の実施例に係るフラッシュメモリの連続読出し動作のタイミングチャートを示す図である。
図9】比較例のフラッシュメモリにおいて連続読出し動作中に中断が生じたときのタイミングチャートを示す図である。
図10】本実施例のフラッシュメモリにおいて連続読出し動作中に中断が生じたときのタイミングチャートを示す図である。
図11】本発明の変形例に係るフラッシュメモリの要部の構成を示す図である。
【発明を実施するための形態】
【0019】
次に、本発明の実施の形態について説明する。本発明に係る半導体記憶装置は、オフチップECC機能を有するNAND型フラッシュメモリに関する。本実施の形態に係るフラッシュメモリは、NAND型のメモリセルアレイを搭載するNANDチップと、ECC機能を搭載するECCチップとを含み、両チップは、ECCに関するデータを専用ポートを介して高速で転送することが可能である。ある態様では、フラッシュメモリは、積層された複数のNANDチップと1つのECCチップとを含み、複数のNANDチップおよびECCチップが1つのパッケージ内に収容される。
【実施例
【0020】
次に、本発明の第1の実施例について図面を参照して詳細に説明する。図3は、本発明の実施例に係るフラッシュメモリの概略構成を示す図である。本実施例に係るフラッシュメモリ100は、NANDチップ200と、NANDチップ200に電気的に接続されたECCチップ300とを含んで構成される。
【0021】
NANDチップ200は、ここには詳細を示さないが、典型的に、NAND型のメモリセルアレイおよび周辺回路を含む。周辺回路は、行デコーダ、列デコーダ、ページバッファ/センス回路、インターフェース回路、コントローラ、内部電圧生成回路などを含み、コントローラは、入力されたコマンドに応じて読出し、プログラム、消去等の動作を制御する。メモリセルアレイは、複数のブロックを含み、各ブロックには複数のNANDストリングが形成される。NANDストリングは、基板表面に2次元的に形成されてもよいし、基板表面上に3次元的に形成されてもよい。また、メモリセルは、1ビット(2値データ)を記憶するSLCタイプでもよいし、多ビットを記憶するタイプであってもよい。
【0022】
NANDチップ200は、ECCチップ300とのインターフェースとして、SPI用の入出力端子210(#CS、CLK、DI、DO、#WP、#HOLD)と、ECC専用の入出力端子220(VALID、CK、DATA)とを含む。”#”は、ローアクティブを示す。#CSは、チップをイネーブルまたはディスエーブルするためのチップセレクト信号を受け取る端子、CLKは、シリアルクロック信号を受け取る端子、DIは、シリアルデータを入力する端子、DOは、シリアルデータを出力する端子、#WPは、ステータスレジスタを書込みから保護するための信号を受け取る端子、#HOLDは、チップをホールドするための信号を受け取る端子である。NANDチップ200は、SPI用の入出力端子210を介して、シリアルクロック信号CLKに同期してコマンド、アドレス、データを受け取り、あるいはシリアルクロック信号CLKに同期してデータを出力する。
【0023】
ECC専用の入出力端子220として、VALIDは、NANDチップ200とECCチップ300間のデータ転送が有効か否かを示すVALID信号を入出力する端子、CKは、データ転送およびECC処理に使用されるクロック信号CKを出力する端子、DATAは、NANDチップ200とECCチップ300間のデータを入出力する端子である。ここで留意すべきことは、SPI用のDO端子/DI端子のビット幅m(データ転送幅)は、例えば、×1、×4または×8であるが、ECC専用のDATA端子のビット幅nは、SPI用のDO端子/DI端子のビット幅mよりも大きく構成することができ(n>m)、例えば、ビット幅nは、×32である。それ故、NANDチップ200とECCチップ300間のデータ転送時間は、クロック信号CKとクロック信号CLKの周波数が同一であれば、SPIによるデータ転送時間よりもn/m倍だけ早くなる。
【0024】
なお、ここには図示しないがNANDチップ200は、SPI用の入出力端子210の他にもONFiのインターフェースを備えることができる。ONFiのインターフェースは、CLE(コマンドラッチイネーブル)、ALE(アドレスラッチイネーブル)、#WE(ライトイネーブル)等の外部制御端子とI/Oなどの入出力端子を備える。
【0025】
ECCチップ300は、NANDチップ200とのインターフェースとして、SPI用の入出力端子310(#CS、CLK、DI、DO、#WP、#HOLD)と、ECC専用の入出力端子320(VALID、CK、DATA)とを含む。ECCチップ300のSPI用の入出力端子310は、NANDチップ200のSPI用の入出力端子210の対応する端子にそれぞれ電気的に結合され、ECC専用の入出力端子320は、NANDチップ200のECC専用の入出力端子220の対応する端子にそれぞれ電気的に結合される。
【0026】
ECCチップ300はさらに、コントローラチップ400とのインターフェースとして、SPI用の入出力端子330(#CS、CLK、DI、DO、#WP、#HOLD)を含む。入出力端子330は、コントローラチップ400のSPI用の入出力端子410の対応する端子に電気的に結合される。入出力端子310(#CS、CLK、DI、DO、#WP、#HOLD)の各々の端子は、内部配線等によって、入出力端子330(#CS、CLK、DI、DO、#WP、#HOLD)の各々の端子にそれぞれ電気的に結合されている。すなわち、入出力端子310および入出力端子330は、NANDチップ200とコントローラチップ400との接続のために物理的に離間して配置されるが、電気的には、入出力端子310と入出力端子330は、NANDチップ200およびコントローラチップ400に共通であり、こうした接続は、NANDチップ200のSPI用の入出力端子210がコントローラチップ400のSPI用の入出力端子410に接続されていることに等しい。
【0027】
図4(A)は、本実施例のフラッシュメモリの要部の構成を示す図、図4(B)は、比較例としてのフラッシュメモリの要部の構成を示す図である。比較例のNANDチップ200、200_Xは、メモリセルアレイから読み出されたデータを保持したり、あるいはメモリセルアレイにプログラムするためのデータを保持するページバッファ/センス回路を含み、ページバッファ/センス回路は、データを保持するために2段のラッチL1、L2を備えている。ラッチL1がキャッシュC0、C1を含み、ラッチL2がキャッシュC1を含み、ラッチL1のキャッシュC1とラッチL2のキャッシュC1とは、双方向のデータ転送が可能である。ラッチL1は、1ページ分のデータ(例えば、4KB)を保持し、キャッシュC0、C1は、1/2ページ分のデータ(例えば、2KB)を保持し、キャッシュC0は、セクタS0~S3の4つのセクタのデータを保持し(例えば、1つのセクタは512バイト)、キャッシュC1は、セクタS4~S7の4つのセクタのデータを保持する。
【0028】
例えば、NANDチップ200_Xにおいてページの連続読出し動作が行われるとき、メモリセルアレイから読み出されたページのデータがラッチL1のキャッシュC0、C1に保持され、ラッチL1のキャッシュC1に保持されたデータがラッチL2のキャッシュC1に転送され、その後、NANDチップ200_Xは、ラッチL1のキャッシュC0に保持されたセクタS0~S3のデータをECCチップ300に転送した後、ラッチL2のキャッシュC1に保持されたセクタS4~S7のデータをECCチップ300に転送する。NANDチップ200_XからECCチップ300_Xへのデータ転送は、キャッシュ単位(4つのセクタ単位)で行われ、NANDチップ300_Xは、1/2ページのデータ転送が終了すると、次の1/2ページのデータを転送する。
【0029】
ECCチップ300_Xは、NANDチップ200_Xから転送されたデータを保持するための2段構成のRAM1、RAM2を含む。RAM1、RAM2は、それぞれ1/2ページ分のデータを保持し(例えば、2KB)、RAM1は、ラッチL1から読み出されたセクタS0~S3のデータを格納し、RAM2は、ラッチL2から読み出されたセクタS4~S7のデータを格納する。ECCチップ300_Xは、NANDチップ200_Xからのデータの受け取りと並行して、セクタ単位で誤り検出および訂正を行う。
【0030】
一方、本実施例では、NANDチップ200は、ページバッファ/センス回路が比較例と同様に構成されたラッチL1、L2を含むが、ECCチップ300は、比較例のRAM0、RAM1のデータサイズを半分にしたRAM_E、RAM_Oとを含む。つまり、RAM_E、RAM_Oは、1/4ページ分のデータ、すなわち2つのセクタのデータを格納することができる。
【0031】
NANDチップ200は、セクタ単位でデータ転送を制御し、初めにラッチL1のキャッシュC0に保持されたセクタS0~S3の1/2ページ分のデータをECCチップ300に転送し、この転送に応答してECCチップ300は、偶数番目のセクタS0、S2をRAM_Eに格納し、奇数番目のセクタS1、S3をRAM_Oに格納する。ECCチップ300は、セクタS4~S7の次の1/2ページ分のデータ転送が開始される前に、RAM_E、RAM_Oに格納されたセクタS0~S3のデータの誤り検出および訂正を行い、その後、NANDチップ200がラッチL2のキャッシュC1に保持されたセクタS4~S7の1/2ページ分のデータをECCチップ300に転送し、ECCチップ300は、偶数番目のセクタS4、S6をRAM_Eに格納し、奇数番目のセクタS5、S7をRAM_Oに格納する。
【0032】
ECCチップ300がセクタS0の先頭アドレスのデータをコントローラチップ400に出力することに応答してNANDチップがメモリセルアレイから次のページの読出しを行い、読み出したデータをラッチL1に保持する。セクタS0の先頭アドレスのデータをコントローラチップ400に出力する時点で、ラッチL1のキャッシュC1のデータはラッチL2に転送されているため、ラッチL1に次のページのデータの上書きが可能である。
【0033】
本実施例では、ECCチップ300のRAM_E、RAM_Oのデータサイズ(記憶容量)を削減することで、ECCチップ300のチップ面積を縮小し、低コスト化を図ることができる。これによりフラッシュメモリの小型化、省スペース化を図ることができる。また、NANDチップ200からECCチップ300へのデータ転送を専用ポートを介して行うことで読出しデータの出力の高速化を図ることができる。
【0034】
図5は、NANDチップ200およびECCチップ300の内部構成を示すブロック図である。但し、NANDチップ200にはECC動作に関連する構成が示され、全ての構成は示されていないことに留意すべきである。
【0035】
NANDチップ200は、ラッチL1、L2を含むページバッファ/センス回路230と、クロック信号CKを生成する発振器OSCと、ECC専用の入出力端子220を介してECCチップ300との間のデータ転送を制御するインターフェース回路(以下、ECC_IF)240と、SPI用の入出力端子210を介してコントローラチップ300との間のデータ転送を制御するインターフェース回路(以下、CTL_IF)250と、ECC制御部260と、入出力端子210から入力されたコマンドおよびアドレスを受け取り、コマンドを解読するデコーダやアドレスの保持・カウントを行うアドレスカウンタを含み、コマンドのデコード結果に基づき各部を制御するコントローラ270と、ページバッファ/センス回路230の列アドレスを制御するアドレス制御部280とを含む。
【0036】
ラッチL1は、キャッシュC0、C1を含み、ラッチL2は、キャッシュC1のみを含み、ラッチL1とラッチL2との間でキャッシュC1のデータが双方向に転送可能である。ラッチL1は、1ページ分のデータ(例えば、4KB)を保持し、キャッシュC0、C1は、1/2ページ分のデータ(例えば、2KB)を保持する。ラッチL2のキャッシュC1は、1/2ページ分のデータ(例えば、2KB)を保持する。キャッシュC0は、セクタS0~S3の4つのセクタのデータを保持し(例えば、1つのセクタは512バイト)、キャッシュC1は、セクタS4~S7の4つのセクタのデータを保持する。
【0037】
発振器OSCは、データ転送時間およびECC動作の各部の処理時間に最適となる周波数のクロック信号CKを生成する。NANDチップ200とECCチップ300との間のDATA端子によるデータ転送は、クロック信号CKに同期して行われ、ECCチップ300のECCコア360は、クロック信号CKに同期してECC処理を実行する。クロック信号CKの周波数は、SPIによるクロック信号CLKの周波数と無関係であり、クロック信号CLKの周波数よりも高く設定することができる。
【0038】
ECC_IF240は、発振器OSCで生成されたクロック信号CKを受け取り、このクロック信号CKをCK端子を介してECCチップ300のCK端子に供給する。ECC_IF240は、読出し動作時にラッチL2に保持された読出しデータをクロック信号CKに同期したタイミングでDATA端子からECCチップ300のDATA端子に出力し、また、プログラム動作時にECCチップ300で生成されたパリティデータをクロック信号CKに同期したタイミングでDATA端子から受け取る。
【0039】
ECC制御部260は、読出し動作時、VALID信号をECC_IF240に供給する。VALID信号は、ECC専用の入出力端子220、320間のデータ転送が有効となる期間を規定し、この期間は、セクタ単位のデータ転送を可能にする。ECC_IF240は、VALID信号で規定された期間中、例えば、VALID信号がハイレベルの期間中、NANDチップ200のDATA端子からECCチップのDATA端子にデータを転送する。また、ECC_IF240は、ECCチップ300のNAND_IF340がNANDチップ200からのデータを受け取ることができるようにするため、VALID端子からECCチップ300のVALID端子にVALID信号を出力する。
【0040】
CTL_IF250は、入出力端子210を介してのデータの入出力を制御する。CTL_IF250は、コントローラチップ400から出力されたコマンド、アドレス、データを受け取り、コマンドおよびアドレスをコントローラ270に提供し、データをラッチL2またはL1に保持する。
【0041】
コントローラ270は、入力されたコマンドをデコードし、デコード結果に基づき読出し、プログラム、消去等の動作を制御する。また、コントローラ270は、デコード結果に基づき読出しまたはプログラムを識別するコントロールフラグをECC制御部260に提供したり、NANDチップ200がビジー状態かスタンバイ状態かを示すステータス信号をCTL_IF250に提供する。さらにコントローラ270は、CTL_IF250から入力された列アドレスをカウントするアドレスカウンタを含み、アドレスカウンタのアドレスをアドレス制御部280に提供する。
【0042】
ECC制御部260は、ECC処理を制御するためのロジックおよびECC処理のためのアドレスの保持およびカウントを行うアドレスカウンタを含む。ECC制御部260は、ECCチップ300のECC制御部370と同様に構成され、つまり、ECCチップ300がどのようなECC動作を行っているのか認識できるようにするためECC制御部370と同期するECC制御部260を含んでいる。なお、コントロールフラグは、ECCコア360によるエンコーダまたはデコーダの切替えのために使用される。
【0043】
アドレス制御部280は、コントローラ270から出力される列アドレスとECC制御部260から出力されるECC用の列アドレスを受け取り、NANDチップ200の動作に応じて選択された列アドレスをページバッファ/センス回路230に提供する。ラッチL2から読み出すデータの位置またはラッチL2に書込むデータの位置は列アドレスによって制御される。
【0044】
ECCチップ300は、RAM_E、RAM_Oと、ECC専用の入出力端子320を介してNANDチップ200との間のデータ転送を制御するインターフェース回路(以下、NAND_IF)340と、SPI用の入出力端子330、310を介してNANDチップ200およびコントローラチップ400との間のデータの入出力を制御するインターフェース回路(以下、CTL_IF)350と、エラー検出・訂正を行うECCコア360と、ECCコア360を制御するためのロジックおよびECC処理のためのアドレスの保持・カウントを行うアドレスカウンタを含むECC制御部370と、入出力端子310、330から入力されたコマンド、アドレス、データを受け取るコントローラ380と含む。
【0045】
ここで留意すべきは、ECCチップ300には、NANDチップ200がどのような動作を行っているのか認識できるように、NANDチップ200のコントローラ270と同様の入力されたコマンドおよびアドレスを受け取り、コマンドを解読するデコーダやアドレスの保持・カウントを行うアドレスカウンタを含んだコントローラ380が搭載されている。また、SPI用の入出力端子330は、SPI用の入出力端子310の対応する端子に電気的に結合されているため、コントローラ400からのコマンド、アドレス、データは、ECCチップ300およびNANDチップ200の双方に供給される。
【0046】
RAM_E、RAM_Oは、それぞれ1/4ページ分のデータ(2つのセクタ分のデータ)を保持する。RAM_Eは、ラッチL1のキャッシュC0から読み出されたセクタS0、S2、S4、S6のデータを保持可能であり、RAM_Oは、ラッチL2のキャッシュC1から読み出されたセクタS1、S3、S5、S7のデータを保持可能である。RAM_E、RAM_Oは、ラッチL1、L2と異なりデュアルポートメモリとして機能し、またラッチL1、L2が非同期回路で構成されるのに対しRAM_EとRAM_Oは同期回路によって構成される。
【0047】
NANDチップ200において読出し動作が行われるとき、NAND_IF340は、VALID信号がハイアクティブの期間中、ECC専用の入出力端子220および320を介して、NANDチップ200から1ページ分のデータをセクタ単位で順次受け取る。ECC制御部370は、セレクタSEL1を介してRAM_EまたはRAM_Oに格納するData_E(セクタS0、S2、S4、S6)またはData_O(S1、S3、S5、S7)を選択し、セレクタSEL3を介してRAM_EまたはRAM_OへのAddress_EまたはAddress_Oを選択する。
【0048】
ECC制御部370は、ECCコア360が読出しデータの誤り検出および訂正を行うとき、セレクタSEL3を介してRAM_EまたはRAM_Oのアドレスを選択し、セレクタSEL2を介してRAM_EやRAM_Oに書き込むデータと同じデータをECCコア360に提供する。ECCコア360は、ECC制御部370の制御下において、シンドローム計算、ユークリッド互除計算、エラー位置探索をパイプラインで処理し、探索されたエラー位置に応じてエラーを訂正するため、セレクタSEL4によって選択されたRAM_EまたはRAM_Oから読み出されたデータのエラービットを反転し、訂正されたデータは、CTL_IF350によって入出力端子330を介してコントローラチップ400に出力される。
【0049】
また、プログラム動作が行われるとき、コントローラチップ400からのコマンド、アドレス、データは、NANDチップ200に加えてECCチップ300にも入力される。コントローラ380は、コマンドのデコード結果に基づきプログラム動作であることを認識し、SPI用の入出力端子330から入力されたデータをRAM_EおよびRAM_Oに格納する。ECC制御部370は、コントローラ380からのコントロールフラグによりプログラム動作を認識し、ECCコア360のエンコーダを動作させる。
【0050】
ECCコア360は、ECC制御部370の制御下において、RAM_EまたはRAM_Oに保持された入力データを読出し、読み出したデータをセクタ単位で符号化し、各セクタのパリティデータを生成する。生成されたパリティデータは、NAND_IF340を介してDATA端子からNANDFチップ200のDATA端子に転送される。NANDチップ200は、コントローラチップ400から受け取ったデータをラッチL1に保持しており、ECC_IF240を介してECCチップ300から受け取った各セクタのパリティデータは、ECC制御部260によって指定される列アドレスに従いラッチL1に保持され、その後、コントローラ270は、ラッチL1に保持されたデータをメモリセルアレイにプログラムする。
【0051】
次に、本実施例のフラッシュメモリ100のECC動作の詳細について説明する。図6は、ECCコア360により読出しデータをデコードするときのタイミングチャートを示している。NANDチップ200が読出しコマンドに応じて読出し動作を行うとき、時刻t0で、NANDチップ200のECC_IF240がラッチL1に保持されたセクタS0のメインデータとパリティデータPtとをクロック信号CKに同期してDATA端子から送信し、ECCチップ300のNAND_IF340がDATA端子からセクタS0のメインデータとパリティデータPtの受け取りを開始し、時刻t1でセクタS0のメインデータとパリティデータPtの受け取りが終了する。受け取られたセクタS0のデータはRAM_Eに格納され、これと並行してECCコア360は、セクタS0のシンドローム計算を行う。時刻t0と時刻t1の転送時間は、ECC専用のDATA端子のデータ幅およびクロック信号CKの周波数がECC処理のために最適化されているので、SPI用の入出力端子210を介してデータを転送する時間よりも短くすることができる。
【0052】
同様に、時刻t2でセクタS1のメインデータとパリティデータPtの転送が終了し、セクタS1のデータがRAM_Oに格納され、時刻t3でセクタS2のメインデータとパリティデータPtの転送が終了し、セクタS2のデータがRAM_Eに格納され、時刻t4でセクタS3のメインデータとパリティデータPtの転送が終了し、セクタS3のデータがRAM_Oに格納される。
【0053】
RAM_EへのセクタS0のデータの格納と並行して、ECCコア360は、セクタS0のシンドロームの計算を開始するが、ある態様では、セクタS0のシンドローム計算が時刻t1で終了するように、DATA端子のビット幅やクロック信号CKの周波数が設定される。ECCコア360は、シンドローム計算後、セクタS1のデータの受信中に、セクタS0のエラー位置多項式計算、エラー位置探索を行う。
【0054】
時刻t5で、ECCコア360は、クロック信号CLKに同期したセレクタSEL4、セレクタSEL5により選択されたRAM_EからセクタS0のメインデータを読出し、ExORでセクタS0のメインデータのビットエラーを反転し、エラー訂正したセクタS0のメインデータをSPI用のクロック信号CLKに同期して入出力端子330のDO端子からコントローラチップ400に出力する。ECCコア360は、時刻t6、t7、t8で、セクタS1、S2、S3のエラー訂正を行い、エラー訂正されたセクタS1、S2、S3のメインデータを入出力端子330を介してコントローラチップ400の順次出力する。コントローラチップ400のCPU_IFは、時刻t6、t7、t8、t9で受け取ったセクタS0、S1、S2、S3のメインデータをホスト装置へ転送する。
【0055】
ECCコア360がセクタS0~S3のエラー位置多項式計算以降の処理を行っている間、NANDチップ200は、セクタS4~S7のメインデータおよびパリティデータをECC専用の入出力端子220を介してECCチップ300に転送する。セクタS4~S7のデータ転送は、セクタS0~S3が外部に出力されるタイミングに応答して行われる。つまり、RAM_E、RAM_Oの各々は、1/4ページ分(2つのセクタ分)しかデータを保持することができないので、保持していたデータが出力された後にRAM_E、RAM_Oへのデータの上書きが可能になる。
【0056】
次に、本実施例のフラッシュメモリのページの連続読出し動作について説明する。図7は、図4(B)に示す比較例のフラッシュメモリ(RAM0、RAM1がそれぞれ1/2ページ分のデータを記憶するサイズ(2KB)を備えている)の連続読出し動作のタイミングチャートであり、図8は、本実施例のフラッシュメモリ(RAM_E、RAM_Oがそれぞれ1/4ページ分のデータを記憶するサイズ(1KB)を備えている)の連続読出し動作のタイミングチャートである。
【0057】
図7図8において、上側半分にNANDチップ200の動作を示し、下側半分がECCチップ300のタイミングを示す。比較例のフラッシュメモリでは、メモリセルアレイのアレイ読出しは、図7に示すように、ECCチップ300のDO端子からページの先頭アドレスのデータが出力されたことに応答して行われる。例えば、端子DOからページP0のセクタS0の先頭アドレスのデータが出力されると、NANDチップ200は、ページP1のアレイ読出しを開始する。
【0058】
NANDチップ200は、メモリセルアレイから読み出されたページのデータをラッチL1のキャッシュC0、C1に保持し、次いで、ラッチL1のキャッシュC1のセクタS4~S7のデータをラッチL2のキャッシュC1に転送し、VALID信号がハイレベルの期間中、ラッチL1のキャッシュC0に保持されたセクタS0~S3のデータとラッチL2のキャッシュC1に保持されたセクタS4~S7のデータとを1ページ分のデータとしてキャッシュ単位でECCチップ300に転送する。NANDチップ200からECCチップ300にデータを転送するタイミングは、ECCチップ300がコントローラチップ400にキャッシュ単位の最終アドレスのデータを出力したタイミングとなる。例えば、NANDチップ200は、ECCチップ300がページP0のセクタS3の最終アドレスのデータを外部に出力したことに応答してページP1のセクタS0~S3のデータ転送を開始する。
【0059】
ECCチップ300は、セクタ単位で誤り検出および訂正を行い、DO端子から訂正したデータを出力する。ECCチップ300がページの先頭アドレスのデータを出力すると、NANDチップ200は、次のページのアレイ読出しを開始し、読み出したデータをラッチL1に保持する。次のページのアレイ読出しを開始するとき、ラッチL1のキャッシュC1のデータがラッチL2に転送されているため、ラッチL1に次のページのデータが上書きされても問題はない。
【0060】
NANDチップ200のコントローラ270のアドレスカウンタとECCチップ300のコントローラ380のアドレスカウンタは同期しており、NANDチップ200のコントローラ270は、当該アドレスカウンタによってカウントされた列アドレスにより、ECCチップ300のDO端子から出力されるページの先頭アドレスあるいはキャッシュの最終アドレスを知ることができる。アドレスカウンタは、クロック信号CKのトグル回数をカウントすることで列アドレスをインクリメントする。
【0061】
一方、本実施例のフラッシュメモリでは、図8に示すように、メモリセルアレイの読出しのタイミングは比較例と同じであり、つまり、ECCチップ300のDO端子からページの先頭アドレスのデータが出力されたことに応答して行われる。また、NANDチップ200とECCチップ300間のデータ転送は、比較例がキャッシュ単位で行うのに対し、本実施例では、セクタ単位で行われる。もし、1つのセクタのデータが転送されるならば、VALID信号は、1つのセクタのデータ転送期間中、ハイレベルに遷移される。NANDチップ200は、ECCチップ300がセクタのデータ出力が完了したことに応答して、当該セクタから1/2ページ番目のセクタのデータをECCチップ300に転送する。例えば、ECCチップ300がセクタS0のデータの出力を完了すると、NANDチップ200は、同じページのセクタS4のデータをECCチップ300に転送し、ECCチップがセクタS1のデータの出力を完了すると、同じページのセクタS5のデータをECCチップ300に転送する。セクタS0のデータ出力が完了したらRAM_Eに次のセクタS4の上書きが可能であり、セクタS1のデータ出力が完了したらRAM_Oに次のセクタS5の上書きが可能である。
【0062】
次に、本実施例のフラッシュメモリの連続読出しを行うときの制約について説明する。ここで、NANDチップ200が1セクタ分のデータを出力する時間をtDOUT1、ECCチップ300が1セクタ分のデータを出力する時間をtDOUT2、NANDチップ200が1セクタ分のデータを出力してから当該セクタの誤り検出および訂正が終了するまでのレイテンシをtLTCYとする。
【0063】
比較例では、式(1)が制約となる。
tDOUT1+tLTCY<tDOUT2×4 ・・・(1)
これに対し、本実施例では、式(2)が制約となる。
tDOUT1+tLTCY<tDOUT2×3 ・・・(2)
【0064】
NANDチップ200とECCチップ300との間は、ECC専用の入出力端子で接続されている。1セクタが512バイト、専用のDATA端子のビット幅を16ビット、クロック信号CKの周波数を80MHzとすると、tDOUT1=4us、tLTCY=4usとなる。このとき tDOUT2>(4+4)/3=2.7usとなる。
【0065】
図9は、比較例のフラッシュメモリのページの連続読出し中に中断が生じた場合のタイミングチャート、図10は、本実施例のフラッシュメモリのページの連続読出し中に中断が生じた場合のタイミングチャートである。例えば、ECCチップ300のクロック信号CLKの停止などにより連続読出し中にDO端子からのデータ出力が中断することがある(DO端子に中断箇所を示す)。このような中断が発生した場合、本実施例のフラッシュメモリでは、ECCチップ300のRAM_E、RAM_OがNANDチップ200から転送されたデータを保持しており、また、ECCチップ300がページの先頭アドレスのデータを出力するまでは、次のページのアレイ読出しが行われないためラッチL1、L2にはその前のページのデータが保持されている。従って、中断によりデータが消失されることはなく、また、NANDチップ200とECCチップ300は、読出しを行っているページのアドレスを共有しているので、中断後に連続読出しを正しく再開することができる。
【0066】
図11は、本発明の変形例に係るフラッシュメモリの要部の構成を示す図である。先の実施例では、図4(A)に示すようにNANDチップ200がキャッシュC0、C1を含むラッチL1とキャッシュC1を含むラッチL2とを備えていたが、本変形例では、図11に示すようにNANDチップ200AがキャッシュC0、C1を含むラッチL1とキャッシュC0、C1を含むラッチL2とを備える。ラッチL1、L2は、それぞれ1ページ分のデータを保持することができる。
【0067】
読出し動作時、NANDチップ200Aは、ラッチL2のキャッシュC0のセクタS0~S3のデータをECCチップ300に転送した後、ラッチL1のキャッシュC0に保持した次のページのセクタS0~S3のデータをラッチL2のキャッシュC0に転送し、ラッチL2のキャッシュC1のセクタS4~S7のデータをECCチップ300に転送した後、ラッチL1のキャッシュC1に保持した次のページのセクタS4~S7のデータをラッチL2のキャッシュC1に転送し、その後、メモリセルアレイから読み出した次のページのデータをラッチL1に保持する。ECCチップ300は、先の実施例と同様の動作を行う。
【0068】
以上説明したように、本実施例によれば、ECCチップ300のRAM_Eに偶数番目のセクタのデータ、RAM_Oに奇数番目のセクタのデータを交互に保持させることで、RAM_E、RAM_Oのデータサイズ(記憶容量)を削減することができ、これにより、でECCチップ300の面積を縮小し、かつ低コスト化を図ることができる。さらにNANDチップ200とECCチップ300との間をECC専用のDATA端子を介して読出しデータを転送することでECC処理に要する時間を短縮させることができる。
【0069】
なお、上記実施例では、1つのページが8つのセクタ(1つのキャッシュが4つのセクタ)から構成される例を示したが、これは一例であり、例えば1つのページが4KB(1つのキャッシュが2KB)であるとき、1つのセクタが512バイトであれば、1つのページが8つのセクタから構成されるが、1ページが2KBであれば、1つのページが4つのセクタから構成されるようにしてもよい。この場合にも、ECCチップ300は、セクタ単位あるいは複数のセクタ単位でECC処理を行うようにしてもよい(プログラム動作時、セクタ毎にパリティデータが生成され、読出し動作時、パリティデータに基づきセクタの誤り検出および訂正が行われる)。
【0070】
本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0071】
100:フラッシュメモリ
200、200A:NANDチップ
210:SPI用の入出力端子
220:ECC専用の入出力端子
300:ECCチップ
310:SPI用の入出力端子
320:ECC専用の入出力端子
400:コントローラチップ
410:SPI用の入出力端子
【要約】
【課題】 誤り検出および訂正の処理の高速化を図りつつ小型化が可能な半導体記憶装置を提供する。
【解決手段】 本発明のフラッシュメモリ100は、NANDチップ200とECCチップ300とを有する。NANDチップ200は、メモリセルアレイと、ラッチL1およびラッチL2を含むページバッファ/センス回路とを含む。ECCチップ300は、NANDチップ200のラッチL1、L2から出力された読出しデータを保持するRAM_E、RAM_Oを含み、RAM_Eが偶数番目のセクタのデータを保持し、RAM_Oが奇数番目のセクタのデータを保持し、RAM_EまたはRAM_Oに交互にセクタのデータを保持させることでRAM_E、RAM_Oのデータサイズを削減することができる。
【選択図】 図4
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11