[go: up one dir, main page]

JP7178465B1 - 半導体記憶装置 - Google Patents

半導体記憶装置 Download PDF

Info

Publication number
JP7178465B1
JP7178465B1 JP2021140691A JP2021140691A JP7178465B1 JP 7178465 B1 JP7178465 B1 JP 7178465B1 JP 2021140691 A JP2021140691 A JP 2021140691A JP 2021140691 A JP2021140691 A JP 2021140691A JP 7178465 B1 JP7178465 B1 JP 7178465B1
Authority
JP
Japan
Prior art keywords
data
ecc
chip
sector
page
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.)
Active
Application number
JP2021140691A
Other languages
English (en)
Other versions
JP2023034442A (ja
Inventor
二四三 金子
真言 妹尾
央倫 葛西
Original Assignee
ウィンボンド エレクトロニクス コーポレーション
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ウィンボンド エレクトロニクス コーポレーション filed Critical ウィンボンド エレクトロニクス コーポレーション
Priority to JP2021140691A priority Critical patent/JP7178465B1/ja
Priority to TW111126341A priority patent/TWI812346B/zh
Priority to US17/876,529 priority patent/US11775205B2/en
Priority to CN202210914989.1A priority patent/CN115732015B/zh
Priority to KR1020220099161A priority patent/KR102690130B1/ko
Application granted granted Critical
Publication of JP7178465B1 publication Critical patent/JP7178465B1/ja
Publication of JP2023034442A publication Critical patent/JP2023034442A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Detection And Correction Of Errors (AREA)
  • Semiconductor Memories (AREA)

Abstract

【課題】 誤り検出および訂正の処理の高速化を図りつつ小型化が可能な半導体記憶装置を提供する。【解決手段】 本発明のフラッシュメモリ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

Description

本発明は、NAND型フラッシュメモリ等の半導体記憶装置に関し、特に誤り検出訂正に関する。
NAND型のフラッシュメモリでは、データのプログラムや消去が繰り返されることで、トンネル絶縁膜の劣化等により電荷保持特性が悪化したり、トンネル絶縁膜にトラップされた電荷によりしきい値変動が生じ、ビットエラーを引き起こすことがある。このようなビットエラー対策として、フラシュメモリにはエラー検出訂正回路(以下、ECC回路という)が用いられている(例えば、特許文献1、2)。
特許6744950号公報 特許6744951号公報
図1は、従来のオフチップECCのフラッシュメモリの構成を示す図である。フラッシュメモリ10は、NAND型のメモリセルアレイやその周辺回路を含むNANDチップ20を含んで構成され、NANDチップ20は、ECC機能40を搭載したコントローラチップ30に接続される。NANDチップ20とコントローラチップ30とは、それぞれ別個のパッケージに収容され、各パッケージが例えばプリント基板上に実装される。
NANDチップ20とコントローラチップ30は、例えば、クロック信号に同期してデータを転送することができるSPI(Serial Peripheral Interface)を搭載し、両チップには、それぞれ#CS、CLK、DI、DO、#WP、#HOLDの入出力端子が設けられる。コントローラチップ30は、SPIの入出力端子を介してNANDチップ20にコマンド、アドレス、データを送信する。
ECC機能40は、データを符号化してパリティデータを生成するエンコーダと、パリティデータに基づきデータを復号化するデコーダとを含む。ECC機能40は、例えば、BCHコードにより複数ビット(例えば、2ビット、4ビット、8ビットなど)のエラー検出・訂正を行い、この場合、BCHデコーダは、データのシンドロームを評価するシンドローム計算部と、エラー位置多項式(ELP)を計算するユークリッド互除計算部と、エラー位置多項式の根を計算し、エラー位置を探索するエラー位置探索部と、探索されたエラー位置に基づきエラーを訂正するエラー訂正部とを含む。
NANDチップ20のページバッファ/センス回路は、2つのラッチを含み、1つのラッチは、2つのキャッシュから構成され、1つのキャッシュが複数のセクタ(例えば、2セクタ、4セクタなど)のデータを格納する。NANDチップ20とコントローラチップ30との間のデータ転送は、キャッシュ単位で行われる。また、ECC機能40は、セクタ単位でパリティデータを生成し、あるいはエラー検出・訂正を行う。ECC機能40により符号された1つのセクタは、メインデータとパリティデータとを含む。
コントローラチップ30は、NANDチップ20にプログラム動作をさせるとき、ECC機能40によりプログラムすべきデータからパリティデータを生成し、生成したパリティデータとメインデータとをSPIのDO端子を介してNANDチップ20に転送する。NANDチップ20は、受け取ったメインデータとパリティデータとをラッチに保持し、ラッチに保持したデータをメモリセルアレイの選択ページにプログラムする。
一方、NANDチップ20においてメモリセルアレイから読み出されたデータは、SPIのDO端子を介してコントローラチップ30に転送される。ECC機能40は、パリティデータに基づきエラーを検出し、その検出結果に応じてメインデータやパリティデータを訂正する。
図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処理も同様にパイプライン処理が行われ、各セクタのエラー訂正したデータがセクタの受信中に出力される。
NANDチップ20からコントローラチップ30に読出しデータを転送する場合、シンドローム計算はセクタのパリティデータの転送後に行う必要がある。このため、SPIのDO端子のビット幅が狭いと、データ転送に時間がかかってしまい、その間、コントローラチップ30のアイドル状態が長くなり、パインライン処理によるパフォーマンスを十分に発揮させることができないという課題がある。また、メモリセルアレイの高集積化に伴い1ページのサイズが大きくなると、ページバッファ/センス回路やECC機能の占有面積が大きくなり、これによりチップが大きくなってしまう。このため、ページバッファ/センス回路やECC機能の省スペース化が望まれる。
本発明は、このような従来の課題を解決し、誤り検出および訂正の処理の高速化を図りつつ小型化が可能な半導体記憶装置を提供することを目的とする。
本発明に係る半導体記憶装置は、NAND型のメモリセルアレイと、メモリセルアレイの読出し動作を制御する制御手段と、前記メモリセルアレイから読出したデータをECCチップに出力する出力手段とを備えたNANDチップと、第1および第2の保持部と、当該第1および第2の保持部に保持されたデータの誤り検出および訂正を行うECC手段とを備えたECCチップとを含み、1ページがn個のセクタから構成されるとき、前記出力手段がセクタ単位でデータを前記ECCチップに出力し、前記第1の保持部が偶数番目のセクタのデータを保持し、前記第2の保持部が奇数番目のセクタのデータを保持し、前記ECC手段が第1の保持部または第2の保持部から読み出されたデータの誤り検出および訂正を行う。
ある態様では、前記第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つのパッケージ内に収容される。
本発明に係る読出し方法は、NAND型のメモリセルアレイと、メモリセルアレイの読出し動作を制御する制御手段と、前記メモリセルアレイから読出したデータをECCチップに出力する出力手段とを備えたNANDチップと、第1および第2の保持部と、当該第1および第2の保持部に保持されたデータの誤り検出および訂正を行うECC手段とを備えたECCチップとを含む半導体記憶装置におけるものであって、前記出力手段がセクタ単位でデータを前記ECCチップに出力し、前記第1の保持部が偶数番目のセクタのデータを保持し、前記第2の保持部が奇数番目のセクタのデータを保持し、前記ECC手段が前記第1の保持部または前記第2の保持部から読み出されたデータの誤り検出および訂正を行い、訂正したデータを外部に出力する。
ある態様では、前記出力手段は、クロック信号に同期して第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の制約を有する。
本発明によれば、ECCチップの第1および第2の保持部に偶数番目と奇数番目のセクタのデータを交互に保持させることで第1および第2の保持部のデータサイズを削減することができ、これによりECCチップのチップ面積を縮小させ、かつ低コスト化を図ることができる。その結果、ECCチップを収容する半導体記憶装置の小型化、省スペース化を図ることができる。また、NANDチップとは別個にECCチップを設けることで誤り検出および訂正の処理の高速化を図ることができる。
従来のフラッシュメモリの概略構成を示す図である。 従来のフラッシュメモリのECC機能の動作を示すタイミングチャートである。 本発明の実施例に係るフラッシュメモリの概略構成を示す図である。 図4(A)は、本実施例のフラッシュメモリの要部の構成を示す図、図4(B)は、比較例としてのフラッシュメモリの要部の構成を示す図である。 本発明の実施例に係るNANDチップとECCチップとの内部構成を示すブロック図である。 本発明の実施例に係るフラッシュメモリのECC動作を示すタイミングチャートである。 比較例のフラッシュメモリの連続読出し動作のタイミングチャートを示す図である。 本発明の実施例に係るフラッシュメモリの連続読出し動作のタイミングチャートを示す図である。 比較例のフラッシュメモリにおいて連続読出し動作中に中断が生じたときのタイミングチャートを示す図である。 本実施例のフラッシュメモリにおいて連続読出し動作中に中断が生じたときのタイミングチャートを示す図である。 本発明の変形例に係るフラッシュメモリの要部の構成を示す図である。
次に、本発明の実施の形態について説明する。本発明に係る半導体記憶装置は、オフチップECC機能を有するNAND型フラッシュメモリに関する。本実施の形態に係るフラッシュメモリは、NAND型のメモリセルアレイを搭載するNANDチップと、ECC機能を搭載するECCチップとを含み、両チップは、ECCに関するデータを専用ポートを介して高速で転送することが可能である。ある態様では、フラッシュメモリは、積層された複数のNANDチップと1つのECCチップとを含み、複数のNANDチップおよびECCチップが1つのパッケージ内に収容される。
次に、本発明の第1の実施例について図面を参照して詳細に説明する。図3は、本発明の実施例に係るフラッシュメモリの概略構成を示す図である。本実施例に係るフラッシュメモリ100は、NANDチップ200と、NANDチップ200に電気的に接続されたECCチップ300とを含んで構成される。
NANDチップ200は、ここには詳細を示さないが、典型的に、NAND型のメモリセルアレイおよび周辺回路を含む。周辺回路は、行デコーダ、列デコーダ、ページバッファ/センス回路、インターフェース回路、コントローラ、内部電圧生成回路などを含み、コントローラは、入力されたコマンドに応じて読出し、プログラム、消去等の動作を制御する。メモリセルアレイは、複数のブロックを含み、各ブロックには複数のNANDストリングが形成される。NANDストリングは、基板表面に2次元的に形成されてもよいし、基板表面上に3次元的に形成されてもよい。また、メモリセルは、1ビット(2値データ)を記憶するSLCタイプでもよいし、多ビットを記憶するタイプであってもよい。
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に同期してデータを出力する。
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倍だけ早くなる。
なお、ここには図示しないがNANDチップ200は、SPI用の入出力端子210の他にもONFiのインターフェースを備えることができる。ONFiのインターフェースは、CLE(コマンドラッチイネーブル)、ALE(アドレスラッチイネーブル)、#WE(ライトイネーブル)等の外部制御端子とI/Oなどの入出力端子を備える。
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の対応する端子にそれぞれ電気的に結合される。
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に接続されていることに等しい。
図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つのセクタのデータを保持する。
例えば、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ページのデータを転送する。
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からのデータの受け取りと並行して、セクタ単位で誤り検出および訂正を行う。
一方、本実施例では、NANDチップ200は、ページバッファ/センス回路が比較例と同様に構成されたラッチL1、L2を含むが、ECCチップ300は、比較例のRAM0、RAM1のデータサイズを半分にしたRAM_E、RAM_Oとを含む。つまり、RAM_E、RAM_Oは、1/4ページ分のデータ、すなわち2つのセクタのデータを格納することができる。
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に格納する。
ECCチップ300がセクタS0の先頭アドレスのデータをコントローラチップ400に出力することに応答してNANDチップがメモリセルアレイから次のページの読出しを行い、読み出したデータをラッチL1に保持する。セクタS0の先頭アドレスのデータをコントローラチップ400に出力する時点で、ラッチL1のキャッシュC1のデータはラッチL2に転送されているため、ラッチL1に次のページのデータの上書きが可能である。
本実施例では、ECCチップ300のRAM_E、RAM_Oのデータサイズ(記憶容量)を削減することで、ECCチップ300のチップ面積を縮小し、低コスト化を図ることができる。これによりフラッシュメモリの小型化、省スペース化を図ることができる。また、NANDチップ200からECCチップ300へのデータ転送を専用ポートを介して行うことで読出しデータの出力の高速化を図ることができる。
図5は、NANDチップ200およびECCチップ300の内部構成を示すブロック図である。但し、NANDチップ200にはECC動作に関連する構成が示され、全ての構成は示されていないことに留意すべきである。
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とを含む。
ラッチ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つのセクタのデータを保持する。
発振器OSCは、データ転送時間およびECC動作の各部の処理時間に最適となる周波数のクロック信号CKを生成する。NANDチップ200とECCチップ300との間のDATA端子によるデータ転送は、クロック信号CKに同期して行われ、ECCチップ300のECCコア360は、クロック信号CKに同期してECC処理を実行する。クロック信号CKの周波数は、SPIによるクロック信号CLKの周波数と無関係であり、クロック信号CLKの周波数よりも高く設定することができる。
ECC_IF240は、発振器OSCで生成されたクロック信号CKを受け取り、このクロック信号CKをCK端子を介してECCチップ300のCK端子に供給する。ECC_IF240は、読出し動作時にラッチL2に保持された読出しデータをクロック信号CKに同期したタイミングでDATA端子からECCチップ300のDATA端子に出力し、また、プログラム動作時にECCチップ300で生成されたパリティデータをクロック信号CKに同期したタイミングでDATA端子から受け取る。
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信号を出力する。
CTL_IF250は、入出力端子210を介してのデータの入出力を制御する。CTL_IF250は、コントローラチップ400から出力されたコマンド、アドレス、データを受け取り、コマンドおよびアドレスをコントローラ270に提供し、データをラッチL2またはL1に保持する。
コントローラ270は、入力されたコマンドをデコードし、デコード結果に基づき読出し、プログラム、消去等の動作を制御する。また、コントローラ270は、デコード結果に基づき読出しまたはプログラムを識別するコントロールフラグをECC制御部260に提供したり、NANDチップ200がビジー状態かスタンバイ状態かを示すステータス信号をCTL_IF250に提供する。さらにコントローラ270は、CTL_IF250から入力された列アドレスをカウントするアドレスカウンタを含み、アドレスカウンタのアドレスをアドレス制御部280に提供する。
ECC制御部260は、ECC処理を制御するためのロジックおよびECC処理のためのアドレスの保持およびカウントを行うアドレスカウンタを含む。ECC制御部260は、ECCチップ300のECC制御部370と同様に構成され、つまり、ECCチップ300がどのようなECC動作を行っているのか認識できるようにするためECC制御部370と同期するECC制御部260を含んでいる。なお、コントロールフラグは、ECCコア360によるエンコーダまたはデコーダの切替えのために使用される。
アドレス制御部280は、コントローラ270から出力される列アドレスとECC制御部260から出力されるECC用の列アドレスを受け取り、NANDチップ200の動作に応じて選択された列アドレスをページバッファ/センス回路230に提供する。ラッチL2から読み出すデータの位置またはラッチL2に書込むデータの位置は列アドレスによって制御される。
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と含む。
ここで留意すべきは、ECCチップ300には、NANDチップ200がどのような動作を行っているのか認識できるように、NANDチップ200のコントローラ270と同様の入力されたコマンドおよびアドレスを受け取り、コマンドを解読するデコーダやアドレスの保持・カウントを行うアドレスカウンタを含んだコントローラ380が搭載されている。また、SPI用の入出力端子330は、SPI用の入出力端子310の対応する端子に電気的に結合されているため、コントローラ400からのコマンド、アドレス、データは、ECCチップ300およびNANDチップ200の双方に供給される。
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は同期回路によって構成される。
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を選択する。
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に出力される。
また、プログラム動作が行われるとき、コントローラチップ400からのコマンド、アドレス、データは、NANDチップ200に加えてECCチップ300にも入力される。コントローラ380は、コマンドのデコード結果に基づきプログラム動作であることを認識し、SPI用の入出力端子330から入力されたデータをRAM_EおよびRAM_Oに格納する。ECC制御部370は、コントローラ380からのコントロールフラグによりプログラム動作を認識し、ECCコア360のエンコーダを動作させる。
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に保持されたデータをメモリセルアレイにプログラムする。
次に、本実施例のフラッシュメモリ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を介してデータを転送する時間よりも短くすることができる。
同様に、時刻t2でセクタS1のメインデータとパリティデータPtの転送が終了し、セクタS1のデータがRAM_Oに格納され、時刻t3でセクタS2のメインデータとパリティデータPtの転送が終了し、セクタS2のデータがRAM_Eに格納され、時刻t4でセクタS3のメインデータとパリティデータPtの転送が終了し、セクタS3のデータがRAM_Oに格納される。
RAM_EへのセクタS0のデータの格納と並行して、ECCコア360は、セクタS0のシンドロームの計算を開始するが、ある態様では、セクタS0のシンドローム計算が時刻t1で終了するように、DATA端子のビット幅やクロック信号CKの周波数が設定される。ECCコア360は、シンドローム計算後、セクタS1のデータの受信中に、セクタS0のエラー位置多項式計算、エラー位置探索を行う。
時刻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のメインデータをホスト装置へ転送する。
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へのデータの上書きが可能になる。
次に、本実施例のフラッシュメモリのページの連続読出し動作について説明する。図7は、図4(B)に示す比較例のフラッシュメモリ(RAM0、RAM1がそれぞれ1/2ページ分のデータを記憶するサイズ(2KB)を備えている)の連続読出し動作のタイミングチャートであり、図8は、本実施例のフラッシュメモリ(RAM_E、RAM_Oがそれぞれ1/4ページ分のデータを記憶するサイズ(1KB)を備えている)の連続読出し動作のタイミングチャートである。
図7、図8において、上側半分にNANDチップ200の動作を示し、下側半分がECCチップ300のタイミングを示す。比較例のフラッシュメモリでは、メモリセルアレイのアレイ読出しは、図7に示すように、ECCチップ300のDO端子からページの先頭アドレスのデータが出力されたことに応答して行われる。例えば、端子DOからページP0のセクタS0の先頭アドレスのデータが出力されると、NANDチップ200は、ページP1のアレイ読出しを開始する。
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のデータ転送を開始する。
ECCチップ300は、セクタ単位で誤り検出および訂正を行い、DO端子から訂正したデータを出力する。ECCチップ300がページの先頭アドレスのデータを出力すると、NANDチップ200は、次のページのアレイ読出しを開始し、読み出したデータをラッチL1に保持する。次のページのアレイ読出しを開始するとき、ラッチL1のキャッシュC1のデータがラッチL2に転送されているため、ラッチL1に次のページのデータが上書きされても問題はない。
NANDチップ200のコントローラ270のアドレスカウンタとECCチップ300のコントローラ380のアドレスカウンタは同期しており、NANDチップ200のコントローラ270は、当該アドレスカウンタによってカウントされた列アドレスにより、ECCチップ300のDO端子から出力されるページの先頭アドレスあるいはキャッシュの最終アドレスを知ることができる。アドレスカウンタは、クロック信号CKのトグル回数をカウントすることで列アドレスをインクリメントする。
一方、本実施例のフラッシュメモリでは、図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の上書きが可能である。
次に、本実施例のフラッシュメモリの連続読出しを行うときの制約について説明する。ここで、NANDチップ200が1セクタ分のデータを出力する時間をtDOUT1、ECCチップ300が1セクタ分のデータを出力する時間をtDOUT2、NANDチップ200が1セクタ分のデータを出力してから当該セクタの誤り検出および訂正が終了するまでのレイテンシをtLTCYとする。
比較例では、式(1)が制約となる。
tDOUT1+tLTCY<tDOUT2×4 ・・・(1)
これに対し、本実施例では、式(2)が制約となる。
tDOUT1+tLTCY<tDOUT2×3 ・・・(2)
NANDチップ200とECCチップ300との間は、ECC専用の入出力端子で接続されている。1セクタが512バイト、専用のDATA端子のビット幅を16ビット、クロック信号CKの周波数を80MHzとすると、tDOUT1=4us、tLTCY=4usとなる。このとき tDOUT2>(4+4)/3=2.7usとなる。
図9は、比較例のフラッシュメモリのページの連続読出し中に中断が生じた場合のタイミングチャート、図10は、本実施例のフラッシュメモリのページの連続読出し中に中断が生じた場合のタイミングチャートである。例えば、ECCチップ300のクロック信号CLKの停止などにより連続読出し中にDO端子からのデータ出力が中断することがある(DO端子に中断箇所を示す)。このような中断が発生した場合、本実施例のフラッシュメモリでは、ECCチップ300のRAM_E、RAM_OがNANDチップ200から転送されたデータを保持しており、また、ECCチップ300がページの先頭アドレスのデータを出力するまでは、次のページのアレイ読出しが行われないためラッチL1、L2にはその前のページのデータが保持されている。従って、中断によりデータが消失されることはなく、また、NANDチップ200とECCチップ300は、読出しを行っているページのアドレスを共有しているので、中断後に連続読出しを正しく再開することができる。
図11は、本発明の変形例に係るフラッシュメモリの要部の構成を示す図である。先の実施例では、図4(A)に示すようにNANDチップ200がキャッシュC0、C1を含むラッチL1とキャッシュC1を含むラッチL2とを備えていたが、本変形例では、図11に示すようにNANDチップ200AがキャッシュC0、C1を含むラッチL1とキャッシュC0、C1を含むラッチL2とを備える。ラッチL1、L2は、それぞれ1ページ分のデータを保持することができる。
読出し動作時、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は、先の実施例と同様の動作を行う。
以上説明したように、本実施例によれば、ECCチップ300のRAM_Eに偶数番目のセクタのデータ、RAM_Oに奇数番目のセクタのデータを交互に保持させることで、RAM_E、RAM_Oのデータサイズ(記憶容量)を削減することができ、これにより、でECCチップ300の面積を縮小し、かつ低コスト化を図ることができる。さらにNANDチップ200とECCチップ300との間をECC専用のDATA端子を介して読出しデータを転送することでECC処理に要する時間を短縮させることができる。
なお、上記実施例では、1つのページが8つのセクタ(1つのキャッシュが4つのセクタ)から構成される例を示したが、これは一例であり、例えば1つのページが4KB(1つのキャッシュが2KB)であるとき、1つのセクタが512バイトであれば、1つのページが8つのセクタから構成されるが、1ページが2KBであれば、1つのページが4つのセクタから構成されるようにしてもよい。この場合にも、ECCチップ300は、セクタ単位あるいは複数のセクタ単位でECC処理を行うようにしてもよい(プログラム動作時、セクタ毎にパリティデータが生成され、読出し動作時、パリティデータに基づきセクタの誤り検出および訂正が行われる)。
本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
100:フラッシュメモリ
200、200A:NANDチップ
210:SPI用の入出力端子
220:ECC専用の入出力端子
300:ECCチップ
310:SPI用の入出力端子
320:ECC専用の入出力端子
400:コントローラチップ
410:SPI用の入出力端子

Claims (13)

  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つに記載の読出し方法。
JP2021140691A 2021-08-31 2021-08-31 半導体記憶装置 Active JP7178465B1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2021140691A JP7178465B1 (ja) 2021-08-31 2021-08-31 半導体記憶装置
TW111126341A TWI812346B (zh) 2021-08-31 2022-07-13 半導體儲存裝置及讀出方法
US17/876,529 US11775205B2 (en) 2021-08-31 2022-07-28 Semiconductor storage device and reading method
CN202210914989.1A CN115732015B (zh) 2021-08-31 2022-08-01 半导体存储装置及读出方法
KR1020220099161A KR102690130B1 (ko) 2021-08-31 2022-08-09 반도체 기억장치 및 독출 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021140691A JP7178465B1 (ja) 2021-08-31 2021-08-31 半導体記憶装置

Publications (2)

Publication Number Publication Date
JP7178465B1 true JP7178465B1 (ja) 2022-11-25
JP2023034442A JP2023034442A (ja) 2023-03-13

Family

ID=84191660

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021140691A Active JP7178465B1 (ja) 2021-08-31 2021-08-31 半導体記憶装置

Country Status (5)

Country Link
US (1) US11775205B2 (ja)
JP (1) JP7178465B1 (ja)
KR (1) KR102690130B1 (ja)
CN (1) CN115732015B (ja)
TW (1) TWI812346B (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0796938B2 (ja) * 1990-03-13 1995-10-18 日立プラント建設株式会社 ガス吸収装置を備えたクリーンルーム及びガス吸収装置
JP2020191145A (ja) * 2019-05-21 2020-11-26 ウィンボンド エレクトロニクス コーポレーション 半導体装置および連続読出し方法
JP7096938B1 (ja) 2021-08-27 2022-07-06 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6192499B1 (en) * 1998-05-29 2001-02-20 Adaptec, Inc. Device and method for extending error correction beyond one sector time
KR100287018B1 (ko) * 1998-08-07 2001-04-16 윤종용 에러 정정 회로를 구비한 반도체 메모리 장치
JP2002074862A (ja) * 2000-08-25 2002-03-15 Toshiba Corp データ処理方法及び装置及び記録媒体及び再生方法及び装置
JP2005166117A (ja) * 2003-11-28 2005-06-23 Toshiba Corp 誤り訂正回路
US7529992B1 (en) * 2006-03-27 2009-05-05 Tabula, Inc. Configurable integrated circuit with error correcting circuitry
JP4739296B2 (ja) * 2007-08-27 2011-08-03 ソリッド ステート ストレージ ソリューションズ エルエルシー 外部記憶装置およびそのメモリアクセス制御方法
JP2010009141A (ja) * 2008-06-24 2010-01-14 Toshiba Corp データ転送方法
KR101483190B1 (ko) * 2008-09-05 2015-01-19 삼성전자주식회사 메모리 시스템 및 그것의 데이터 처리 방법
JP2011197819A (ja) * 2010-03-17 2011-10-06 Toshiba Corp 半導体装置
CN103578535B (zh) 2012-07-23 2016-06-15 华邦电子股份有限公司 用于读取nand快闪存储器的方法和设备
US9417945B2 (en) 2014-03-05 2016-08-16 International Business Machines Corporation Error checking and correction for NAND flash devices
US9442798B2 (en) * 2014-07-31 2016-09-13 Winbond Electronics Corporation NAND flash memory having an enhanced buffer read capability and method of operation thereof
WO2016128859A1 (en) * 2015-02-11 2016-08-18 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and manufacturing method thereof
US10067825B2 (en) * 2015-09-14 2018-09-04 Samsung Electronics Co., Ltd. Memory device and method of controlling ECC operation in the same
KR102521756B1 (ko) * 2016-06-22 2023-04-14 삼성전자주식회사 반도체 메모리 장치의 지연 회로, 반도체 메모리 장치 및 이의 동작 방법
US10268541B2 (en) * 2016-08-15 2019-04-23 Samsung Electronics Co., Ltd. DRAM assist error correction mechanism for DDR SDRAM interface
JP6164712B1 (ja) * 2016-08-18 2017-07-19 ウィンボンド エレクトロニクス コーポレーション フラッシュメモリ
JP6178909B1 (ja) * 2016-09-15 2017-08-09 ウィンボンド エレクトロニクス コーポレーション 不揮発性半導体記憶装置
JP6274589B1 (ja) * 2016-09-28 2018-02-07 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置および連続読出し方法
CN108346452B (zh) * 2017-01-25 2023-05-02 三星电子株式会社 存储器装置和控制存储器装置中的ecc操作的方法
US10579471B2 (en) * 2017-03-02 2020-03-03 Toshiba Memory Corporation Storage device and error correction method for storage device
US10572388B2 (en) * 2017-08-30 2020-02-25 Micron Technology, Inc. Managed NVM adaptive cache management
EP3688599A4 (en) 2017-09-30 2021-07-28 Micron Technology, INC. PRE-EMPTIVE READ SCANS DURING INACTIVITY
US10621091B2 (en) * 2018-05-04 2020-04-14 Micron Technology, Inc. Apparatuses and methods to perform continuous read operations
JP6612392B1 (ja) * 2018-06-08 2019-11-27 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
KR102495539B1 (ko) * 2018-07-16 2023-02-06 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
JP6744951B1 (ja) * 2019-05-24 2020-08-19 ウィンボンド エレクトロニクス コーポレーション 半導体装置および連続読出し方法
KR20210089804A (ko) * 2020-01-08 2021-07-19 삼성전자주식회사 메모리 모듈 및 이를 포함하는 메모리 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0796938B2 (ja) * 1990-03-13 1995-10-18 日立プラント建設株式会社 ガス吸収装置を備えたクリーンルーム及びガス吸収装置
JP2020191145A (ja) * 2019-05-21 2020-11-26 ウィンボンド エレクトロニクス コーポレーション 半導体装置および連続読出し方法
JP7096938B1 (ja) 2021-08-27 2022-07-06 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置

Also Published As

Publication number Publication date
US11775205B2 (en) 2023-10-03
TWI812346B (zh) 2023-08-11
CN115732015A (zh) 2023-03-03
JP2023034442A (ja) 2023-03-13
KR20230032900A (ko) 2023-03-07
TW202311954A (zh) 2023-03-16
KR102690130B1 (ko) 2024-07-31
US20230064419A1 (en) 2023-03-02
CN115732015B (zh) 2025-09-09

Similar Documents

Publication Publication Date Title
US8239725B2 (en) Data storage with an outer block code and a stream-based inner code
US7823044B2 (en) Method for streamlining error connection code computation while reading or programming a NAND flash memory
US20090319863A1 (en) Error-correcting system of semiconductor memory, error-correcting method, and memory system with error-correcting system
KR20100124087A (ko) 메모리 컨트롤러, 그것을 포함하는 메모리 시스템 그리고 그것의 동작 방법
US8990667B2 (en) Error check and correction circuit, method, and memory device
KR20090041231A (ko) 인터리빙 기법을 이용한 메모리 시스템, 및 그 방법
US11468963B2 (en) Memory device and read method thereof
JP2009529172A (ja) エクストラデータを含むページを記憶するメモリーマトリックスを有する電子回路
KR20140018095A (ko) 에러 검출 정정 회로 및 메모리 장치
KR101489827B1 (ko) 낸드 플래시 메모리와 컨트롤러 간의 효율적인 프로토콜을사용하는 반도체 메모리 장치
KR100688549B1 (ko) 비휘발성 메모리를 지원하는 온더플라이 bcc 코덱시스템 및 방법
JP7096938B1 (ja) 半導体記憶装置
JP7178465B1 (ja) 半導体記憶装置
KR101157516B1 (ko) 데이터 처리 효율을 향상시킨 bch 코덱
JP7253594B2 (ja) 半導体記憶装置
KR101367351B1 (ko) 분산형 ecc 프로세싱 시스템 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210831

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221025

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221114

R150 Certificate of patent or registration of utility model

Ref document number: 7178465

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250