JP7213712B2 - 不揮発性半導体記憶装置 - Google Patents
不揮発性半導体記憶装置 Download PDFInfo
- Publication number
- JP7213712B2 JP7213712B2 JP2019024588A JP2019024588A JP7213712B2 JP 7213712 B2 JP7213712 B2 JP 7213712B2 JP 2019024588 A JP2019024588 A JP 2019024588A JP 2019024588 A JP2019024588 A JP 2019024588A JP 7213712 B2 JP7213712 B2 JP 7213712B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- controller
- page
- program
- block
- 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
Links
- 239000004065 semiconductor Substances 0.000 title claims description 57
- 230000015654 memory Effects 0.000 claims description 582
- 239000000872 buffer Substances 0.000 claims description 181
- 238000012545 processing Methods 0.000 claims description 166
- 238000000034 method Methods 0.000 claims description 114
- 238000012937 correction Methods 0.000 claims description 89
- 230000008569 process Effects 0.000 claims description 66
- 230000001629 suppression Effects 0.000 claims description 53
- 238000012546 transfer Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 9
- 238000007726 management method Methods 0.000 description 60
- 238000009826 distribution Methods 0.000 description 27
- 238000004891 communication Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 25
- 238000003860 storage Methods 0.000 description 10
- 230000000116 mitigating effect Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000010365 information processing Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 235000014676 Phragmites communis Nutrition 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001568 sexual effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1056—Simplification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
NAND型フラッシュメモリとこのメモリを制御するコントローラとの間のインタフェース仕様としては、例えば、Open NAND Flash Interface (ONFi)が広く使用されている。NAND型フラッシュメモリとコントローラとの間の通信は、一般に、以下のような形式で実行される。
(第1実施形態)
図1は、第1実施形態に係る不揮発性メモリ1を含むメモリシステムの構成例を示す。
この不揮発性メモリ1は、NAND型フラッシュメモリのような不揮発性半導体記憶装置である。この不揮発性メモリ1は、2次元構造のフラッシュメモリであってもよいし、3次元構造のフラッシュメモリであってもよい。
コマンドラッチイネーブル信号CLEは、データバス(I/O信号<7:0>)上のコマンド、アドレス、入力データの取り込み(ラッチ)を制御する。
コマンドラッチイネーブル信号CLEは、データバス(I/O信号<7:0>)上の現在のバスサイクルタイプがコマンドであることを不揮発性メモリ1に通知するために使用される。
ライトプロテクト信号WPnはプログラム動作およびイレーズ動作をディスエーブルするために使用される。レディー/ビジー信号RBnは、不揮発性メモリ1の現在の状態(レディー状態またはビジー状態)を示す。
コントローラ2は、情報処理装置内のCPUのようなホストシステム(ホスト装置)からのデータ書き込み要求(ライトコマンド)に応じて、不揮発性メモリ1へのデータの書き込みを制御し、またホストシステム(ホスト装置)からのデータ読み出し要求(リードコマンド)に応じて、不揮発性メモリ1からのデータの読み出しを制御する。
バッファ制御部203は、バッファメモリ206を管理し、ホストシステム(ホスト装置)から受領した書き込みデータ(ユーザデータ)、不揮発性メモリ1から読み出したデータを、バッファメモリ206内の適切な場所に格納する。
誤り訂正符号(ECC)処理部207は、コマンド制御部202の指示に従って、バッファメモリ206からメモリインターフェース制御部208を通じて不揮発性メモリ1へ転送されるべきユーザデータに対して誤り訂正符号を付加する誤り訂正符号化処理を行う。誤り訂正符号化処理は、ユーザデータを符号化して、ユーザデータとこのユーザデータの誤りを訂正可能な誤り訂正符号(ECC)とを含む符号化データを生成する符号化処理である。また、誤り訂正符号(ECC)処理部207は、コマンド制御部202の指示に従って、メモリインターフェース制御部208を通じて不揮発性メモリ1から転送された読み出しデータの誤りを訂正する誤り訂正復号処理を行う。誤り訂正復号処理は、データとECCとを含む符号化データを復号して、このデータに含まれる誤りを訂正する復号処理である。
図3Aは、図1の不揮発性メモリ1の内部をより詳細に描いたブロック図である。
メモリコア11は、セルアレイ101を含む。セルアレイ101は、規則正しく配置された多数の不揮発性記憶素子(メモリセル)を含む。
入出力部13は、入力バッファ112および114と、出力バッファ113および115とを含む。
このメモリコア制御部12は、ロウデコーダ102、カラムデコーダ・キャッシュ・センスアンプ103、バッファ104、メモリコア用電源制御部105、メモリコア操作部106、コマンドデコーダ107、コマンドキュー108、コマンド実行制御部109、データ処理部110、およびバッファ制御部111を含む。
メモリコア用電源制御部105は、メモリコア操作部106の指示に従って、メモリコア11が必要とする電圧・電流を外部からの供給される電源電圧Vccから作りだす。
コマンドキュー108は、コマンドデコーダ107が受信したコマンドを一時的に格納する領域である。コマンドキュー108に格納されたコマンドがコマンド実行制御部109によって取得および実行される。そしてこのコマンドの実行が完了すると、このコマンドはコマンドキュー108から削除される。
バッファ制御部111は、データ処理部110の指示に従い、バッファ104内のデータの操作および管理を行う。バッファ104として使用される個々のバッファの有効無効などの管理もバッファ制御部111の責務である。
セルアレイ101は、マトリクス状に配列された複数のメモリセルを有する。セルアレイ101は、図3Bに示されているように、複数のブロック(物理ブロック)BLK0~BLK(j-1)を含む。ブロックBLK0~BLK(j-1)は、消去動作の単位として機能する。
不揮発性メモリ1は、一つのメモリセルに1ビットのデータを格納するシングルレベルセル(SLC)-フラッシュメモリであってもよいし、一つのメモリセルに2ビットのデータを格納するマルチレベルセル(MLC)-フラッシュメモリであってもよいし、一つのメモリセルに3ビットのデータを格納するトリプルレベルセル(TLC)-フラッシュメモリであってもよいし、一つのメモリセルに4ビットのデータを格納するクワドレベルセル(QLC)-フラッシュメモリであってもよい。
MLCにおいては、同じワード線に接続された複数のメモリセルの集合が2つのページ(ロアーページ、アッパーページとして参照される)として機能する。
図3Cは、セルアレイ101内に含まれる各ブロックの構成例を示す。
一つのブロックBLKは、複数のワードラインWL0、WL1、WL2、WL3、WL4、…、を含む。各ワードラインWLには、複数のメモリセル(メモリセルトランジスタ)MT0、MT1、…、MTnが接続されている。
例えば、ワードラインWL0に接続されたメモリセルトランジスタの集合には、ページ0(ロアーページ)、ページ1(ミドルページ)、ページ3(アッパーページ)が割り当てられる。同様に、ワードラインWL1に接続されたメモリセルトランジスタの集合には、ページ3(ロアーページ)、ページ4(ミドルページ)、ページ5(アッパーページ)が割り当てられ、ワードラインWL2に接続されたメモリセルトランジスタの集合には、ページ6(ロアーページ)、ページ7(ミドルページ)、ページ8(アッパーページ)が割り当てられる。
プログラム順序規則によって示されるプログラム順序は、各ブロックにデータを書き込むために必要なページの順序を示す。各ワードラインに複数のページが割り当てられている場合においては、このプログラム順序は、各ブロックにデータを書き込むために必要なワードラインの順序を示してもよい。
図4のプログラム順テーブルは、同じブロックに属する複数のワードラインWLがプログラムされる順序であるプログラム順序番号(プログラム順序番号0番、プログラム順序番号1番、プログラム順序番号2番、…、)と、プログラム順序番号0番、プログラム順序番号1番、プログラム順序番号2番、…それぞれに対応するページを示すページアドレスとの対応関係を表している。
次(プログラム順序番号1番)のプログラム動作はワードラインWL1に対する1stプログラム動作(=ページアドレス3に対するプログラム動作)である。ページアドレス3はワードラインWL1のロアーページに対応する。
さらにその次(プログラム順序番号3番)のプログラム動作はワードラインWL2に対する1stプログラム動作(=ページアドレス6に対するプログラム動作)である。ページアドレス6はワードラインWL2のロアーページに対応する。
さらにその次(プログラム順序番号5番)のプログラム動作はワードラインWL0に対する3rdプログラム動作(=ページアドレス2に対するプログラム動作)である。ページアドレス2はワードラインWL0のアッパーページに対応する。
このバッファ管理テーブルは不揮発性メモリ1内のバッファ104を管理するためのテーブルであり、バッファ104として使用される複数のバッファそれぞれに対応する複数の列を含む。各列は、バッファ番号51、有効無効フラグ52、ブロックアドレス53、ページアドレス54、データ必要期間55を格納する。
例えば、ページアドレス0に書き込まれるべきデータが格納されているバッファに関しては、ワードラインWL0の3rdブログラム動作に対応するプログラム順序番号(=5)が、そのバッファに格納されているデータに対応するデータ必要期間である。
同様に、ページアドレス4または5に書き込まれるべきデータが格納されているバッファに関しては、ワードラインWL1の3rdブログラム動作に対応するプログラム順序番号(=8)が、そのバッファに格納されているデータに対応するデータ必要期間となる。
ブロックの書き込み状態管理テーブルは、不揮発性メモリ1内の複数のブロックの書き込み状態を管理するためのテーブルであり、複数のブロックそれぞれに対応する複数の列を含む。各列は、ブロックアドレス61、書き込み中フラグ62、次のプログラム順番号63、完了したプログラム順番号64を格納する。
あるブロックが書き込み先ブロックとして選択された場合、このブロックに対応する次のプログラム順序番号はプログラム順序番号0番となる。最初(プログラム順序番号0番)のプログラム動作(ワードラインWL0の1stプログラム動作)が完了すると、このブロックに対応する完了したブログラム順序番号はプログラム順序番号0番となり、このブロックに対応する次のプログラム順序番号はプログラム順序番号1番となる。
図4に示したプログラム順テーブルは、一つのワードラインの各メモリセルに3ビットのデータ(8状態)を格納するために、3回のプログラム動作(1stプログラム動作、2ndプログラム動作、3rdプログラム動作)が必要なことを表している。
あるワードラインWLnに対する2ndプログラム動作は隣接するワードラインWLn+1の1stプログラム動作の後に実行される。同様に、ワードラインWLn+2の2ndプログラム動作は隣接するワードラインWLn+2の1stプログラム動作の後に実行される。そして、ワードラインWLnに対する3rdプログラム動作はワードラインWLn+1の2ndプログラム動作の後に実行される。
しかし、NAND型フラッシュメモリとコントローラとの間の従来の通信では、コントローラ自身が、データが書き込まれるべき書き込み先ページを決定することが必要とされる。つまり、NAND型フラッシュメモリとコントローラとの間の従来の通信は、NAND型フラッシュメモリに適用されているプログラム順序(つまり、ブロックにデータを書き込むために必要なページの順序)をコントローラ側が把握していることを前提としている。
そこで、本実施形態は、不揮発性メモリ1を制御するために必要なコントローラ2側の処理負担を軽減可能とする技術を提供する。具体的には、本実施形態は、コントローラ2が様々な書き込み方式、ひいてはNANDフラッシュメモリの様々な世代に対応できるようにする技術を提供する。
例えば、ワードラインWL0の2回目のプログラム動作時(2ndプログラム動作)には、ワードラインWL0の各メモリセルの目標閾値電圧(4状態のいずれか)を決定するために、2ndプログラム動作で書き込むべきデータ(ミドルページに対応するデータ)のみならず、ワードラインWL0の1回目のプログラム動作(1stプログラム動作)で使用したデータ(ロアーページに対応するデータ)も必要となる。
よって、本実施形態では、メモリ・コントローラ間の通信回数の増加を抑制可能にする技術も提供される。
図7Aおよび図7Bは、コントローラ2と不揮発性メモリ1とによって実行されるデータ書き込み処理の手順を示す。
図7Aおよび図7Bを用いて、第1実施形態におけるデータ書き込み処理の手順を説明する。
このステップS701では、コントローラ2は、不揮発性メモリ1内の複数のブロック(フリーブロック)の内の一つのブロックを書き込み先ブロックとして選択する要求(Block open要求)を不揮発性メモリ1に送信してもよい。例えば、この選択される書き込み先ブロックがブロックアドレス0を有するブロックである場合には、コントローラ2は、Block open (0)を不揮発性メモリ1に送信する。ここで、Block open (0)の(0)は、ブロックアドレス0を表している。
そして、不揮発性メモリ1のメモリコア制御部12は、コントローラ2に対して、ブロック0に対する次のプログラム動作を行うために必要なデータはページ0のデータであることを通知する(ステップS704)。換言すれば、ステップS704では、メモリコア制御部12は、コントローラ2から受信されたブロックアドレスに対して、ブロックアドレスに基づいて選択されるページアドレスをコントローラ2に送信する。ここで、ページアドレスは第2のアドレス信号とも称される。
次のプログラム動作に対応する次のプログラム順序番号は次のプログラム順番号63の値(ここでは0)であり、図4の表を参照すると、次のプログラム順序番号0のプログラム動作に必要なページのページアドレスは0であることが分かる。以降も同様にして、メモリコア制御部12は、図6のブロック書き込み状態管理テーブルから次のプログラム順序番号を取得し、図4の表から、次のプログラム順序番号のプログラム動作に必要なページを示すページアドレスを取得する。
不揮発性メモリ1のメモリコア制御部12がプログラム要求(Write(0, 0))とページ0のデータとをコントローラ2から受信した場合、メモリコア制御部12は、受信したページ0のデータをバッファ104に格納し、図5のバッファ管理テーブルに管理データを登録する(ステップS706)。
書き込み先ブロック0の次のプログラム動作に必要なページ0のデータを取得したメモリコア制御部12は、ブロック書き込み状態管理テーブル(図6)のブロック0に関する次のプログラム順番号63の値を1に更新し、コントローラ2に対して、書き込み先ブロック0の次のプログラム動作に必要なデータのページアドレスが3であることを通知する(ステップS707)。
コントローラ2が「次のページ」のページアドレス3を不揮発性メモリ1から受信した場合、コントローラ2は、ページアドレス3を指定するプログラム要求(Write(0, 3))と、ページアドレス3を有するページに書き込むべきデータ(ページ3のデータとしても参照される)とを不揮発性メモリ1に転送する(ステップS709)。
図7BのステップS728では、メモリコア制御部12は、バッファ104からページ0のデータとページ1のデータの双方を読み出し、バッファ104から読み出したページ0のデータおよびページ1のデータと、コントローラ2から受信されるページ2のデータとを使用して、ブロック0のページ2に対するプログラム動作を行う。ページ0のデータとページ1のデータとページ2のデータは、ワードラインWL0の各メモリセルの最終目標閾値電圧レベルを決定するために使用される。最終目標閾値電圧レベルは3ビットに対応する8データ値に対応する8つの閾値電圧レベルのいずれか一つである。
具体的には、この時点でのブロック書き込み状態管理テーブル(図6)の内容は図9のようになっている。また、この時点でのバッファ管理テーブル(図5)の内容は図8のようになっている。
さらに、ステップS729においては、メモリコア制御部12は、ページアドレス0、1、2に対応するデータが格納されているバッファ(バッファ104内の領域)を解放する処理も実行する。
本実施形態では、複数のブロックから選択される一のブロックを示すブロックアドレスをコントローラ2から受信した場合、不揮発性メモリ2は、このブロックアドレスに基づいて選択されるページアドレスをコントローラ2に送信する。これにより、不揮発性メモリ1が、書き込み先ブロックに対する次のプログラム動作に対応するページアドレスをコントローラ2に通知するという新たな通信インタフェース仕様が提供される。したがって、不揮発性メモリ1を制御するために必要なコントローラ2側の処理負担を軽減でき、これによって、低コストで複数世代のNAND型フラッシュメモリに対応可能なメモリシステムを実現できる。
したがって、コントローラ2は、Block open要求またはプログラム要求を発行する度に、次のプログラム動作を行うために必要なページを示すページアドレスを容易に知ることができる。
(第2実施形態)
次に、第2実施形態について説明する。
第1実施形態では、コントローラ2は、不揮発性メモリ1によって指定されたページアドレスに対応するデータを不揮発性メモリ1に転送していた。
図10のステップS1001からステップS1008までの処理は図7AのステップS701からステップS708までの処理と同じであるため、図10のステップS1001からステップS1008までの処理の説明は省略する。
そして、メモリコア制御部12は、ブロック0の次のプログラム動作に必要なデータ(ページアドレス3のデータ)がないため、ブロック0のページアドレス3に対するプログラム動作を行わない。
そして、メモリコア制御部12は、やっと受け取ったページ3のデータをブロック0のページ3に書き込むプログラム動作を行う(ステップS1018)。そして、メモリコア制御部12は、ブロック書き込み状態管理テーブル(図6)のブロック0に関する次のプログラム順番号63の値を2に更新し、ブロック0に関する完了したプログラム順番号64の値を1に更新する。
すると、メモリコア制御部12は、次のプログラム順序番号は2であって、プログラム順序番号2に対応するページ1のプログラムに必要なデータはページアドレス0に対応するデータとページアドレス1に対応するデータの双方であること、そしてこれらページアドレス0に対応するデータとページアドレス1に対応するデータの双方が既にバッファ104内に存在することを知る。
以下、図12、図13、図14の内容を説明する。
図12は、コントローラ2から不揮発性メモリ1に対してブロックへの書き込み処理を開始することが通知された時(S701,S1001)に不揮発性メモリ1によって実行される処理の手順を示す。
次に、不揮発性メモリ1のメモリコア制御部12は、コントローラ2に対して、次のプログラム順序番号0番に対応するページアドレス0を返す(ステップS1202)。次のプログラム順序番号0に対応するページアドレスは、図4のテーブルから取得することができる。
図13は、コントローラ2から不揮発性メモリ1に対してプログラム要求とライトデータが転送された時に不揮発性メモリ1によって実行される処理の手順を示す。
コントローラ2からプログラム要求を受領した不揮発性メモリ1のメモリコア制御部12は、この受領したプログラム要求によって指定されたブロックが書き込み中のブロック(オープンされているブロック)であるかどうかを、ブロック書き込み状態管理テーブル(図6)を参照することによって判定する(ステップS1301)。
コントローラ2から受領したデータのページアドレスが次のプログラム順番号63の値に対応したページアドレスではなかった場合(ステップS1303,No)、メモリコア制御部12は、次のプログラム動作に必要なページのデータ以外のデータをバッファ104に格納しても次のプログラム動作に必要なページのデータをバッファ104に格納可能な空き領域(余裕)がバッファ104に存在するかどうかをチェックする(ステップS1309)。
図14は、図13のステップS1308で開始したプログラム動作が完了した時にメモリコア制御部12によって実行される処理の手順を示す。
データ必要期間55にこの完了したプログラム順序番号が設定された一つ以上のバッファがあった場合(ステップS1402,Yes)、メモリコア制御部12は、これらバッファ(バッファ104内の領域)を解放し、さらに、コントローラ2に対して、これらバッファに対応するページアドレスのデータが不要であることを示す返答を返す(ステップS1403)。これは図7のステップS729に対応する処理である。
一方、次のプログラム動作に必要な全てのデータがバッファ104内に存在する場合(ステップS1404,Yes)、メモリコア制御部12は、バッファ104内のこれらデータを使って、次のプログラム動作を自動的に開始する(ステップS1405)。これで一連の処理は完了となる。
以上のように、第2実施形態では、メモリコア制御部12は、コントローラ2に通知したページアドレスとは異なる別のページアドレスを指定するプログラム要求とこの別のページアドレスに対応するデータとをコントローラ2から受信した場合、この別のページアドレスを有するページに対するプログラム動作を実行せずに、受信したデータをバッファ104に格納する。これにより、たとえコントローラ2が、不揮発性メモリ1によって指定されたページとは異なるページのデータを不揮発性メモリ1に送信しても、このデータを破棄すること無く、この不揮発性メモリ1内のバッファ104に保持することができる。
(第3実施形態)
次に、第3実施形態として、コントローラ2からの指示により、不揮発性メモリ1があるブロックから別のブロックにデータをコピーする構成を説明する。
ここで言うコピーとは、次のような処理のことを指す。
例えば図15のようにブロックaとブロックbがあり、ブロックaに格納されているデータのうち、4つの記憶位置a10,a13,a20,a21にそれぞれ格納されている4つのデータが有効データであり、そしてブロックbに格納されているデータのうち、4つの記憶位置b00,b01,b02,b10にそれぞれ格納されている4つのデータが有効データであったとする。
この図15におけるブロックaの有効データとブロックbの有効データを別のブロックであるブロックcにコピーすることを、ここではコピー処理と呼ぶこととする。このコピー処理は不揮発性メモリ1内部で実行される。つまり、メモリコア制御部12は、セルアレイ101のコピー元位置に格納されているデータ(有効データ)をセルアレイ101からバッファ104に読み出し、そして、このデータ(有効データ)を、バッファ104からセルアレイ101のコピー先位置(書き込み先ページ)に書き込むプログラム動作を実行する。
ここで、有効データとは、メモリシステムをアクセスするためにホストによって使用される論理アドレスのいずれかに関連付けられているデータを意味する。ある論理アドレスに関連付けられているデータはホストによって後にアクセスされる可能性があるデータでる。無効データとは、どの論理アドレスにも関連付けられていないデータを意味する。
コントローラ2は、通常の書き込み処理と同様に、まず、メモリ1に対して、ブロックへの書き込み開始の通知を行う(ステップS1601)。ここではブロックcに対する書き込み開始通知を行う。ステップS1601では、コントローラ2は、不揮発性メモリ1内の複数のブロック(フリーブロック)の内の一つのブロックを書き込み先ブロック(ここでは、コピー先ブロックとしても参照される)として選択する要求(Block open要求)を不揮発性メモリ1に送信してもよい。この選択される書き込み先ブロックがブロックアドレスcを有するブロックcである場合には、コントローラ2は、Block open (c)を不揮発性メモリ1に送信する。ここで、Block open (c)の(c)は、ブロックアドレスcを表している。
すると、コントローラ2は、書き込み先ブロック番号(ここではc)、書き込み先ページアドレス(ここでは0)、およびコピー元データの位置情報を指定するコピー要求(Copy (c, 0, a10, a13, a20, a21))を不揮発性メモリ1に送信する(ステップS1604)。
ステップS1604では、具体的には、コピーコマンド、書き込み先ブロックアドレス、書き込み先ページアドレス、コピー元データの位置情報がコントローラ2から不揮発性メモリ1に転送される。
ステップS1607では、メモリコア制御部12は、ブロックcの次のプログラム順序番号1に対応するページアドレス3をコントローラ2に通知する(Notify next page (c, 3))。
コピー要求(Copy (c, 3, b00, b01, b02, b10))を受信した不揮発性メモリ1のメモリコア制御部12は、指定されたコピー元位置に格納されているデータをバッファ104に読み出し(S1610)、バッファ管理テーブル(図5)を更新する(S1611)。
その後メモリコア制御部12は、バッファ104に読み出したデータを使用してブロックcのページ3に対するプログラム動作を開始する(ステップS1613)。合わせて,ブロックcに関する、ブロック書き込み状態管理テーブル(図6)の内容も更新する。
(第4実施形態)
次に、第4実施形態について説明する。
誤り抑制符号(EMC)処理部117は、EMCエンコーダ117aとEMCデコーダ117bとを含む。EMCエンコーダ117aは、元データのデータパターン(ビットパターンとも云う)を誤りが生じ難いデータパターン、つまり誤りを抑制するデータパターン、に変換する誤り抑制符号化処理を行う。EMCデコーダ117bは、誤り抑制符号化処理によって符号化されたデータを復号して元データに戻す誤り抑制復号処理を行う。
可変長方式の符号化としては、Reverse Huffman符号化、Reverse Tunstall符号化、Reverse Tunstall Huffman符号化などのエントロピー符号化を例示することができる。Reverse Huffman符号化は、Huffman符号化の逆の処理となる符号化である。Reverse Tunstall Huffman符号化は、Tunstall Huffman符号化の逆の処理となる符号化である。Reverse Tunstall符号化は、Tunstall符号化の逆の処理となる符号化である。Huffman符号化およびTunstall符号化は、データ圧縮などに用いられる符号化である。Tunstall Huffman符号化は、Tunstall符号化した結果をさらにHuffman符号化する符号化である。
したがって、特に第3実施形態のように不揮発性メモリ1内でデータのコピーを行う場合などにおいては、セルアレイ101から読み出されたデータに対してECCデコーダ116bを使用して不揮発性メモリ1内部で誤り訂正復号処理を行って、読み出されたデータに含まれる誤りの数を減らし、誤り訂正された後のデータを書き込み先ブロック(コピー先ブロック)に書きこむことが有効である。
図18のデータコピー処理は、図16で説明したデータコピー処理に比し、図16のS1604、S1605、S1608、S1609、S1610、S1613の処理の代わりに、S1604’、S1605’、S1608’、S1609’、S1610’、S1613’の処理が実行される点のみが異なっている。図18のS1601~S1603、S1606~S1607、S1611~S1612の処理は、図16のS1601~S1603、S1606~S1607、S1611~S1612で説明した処理と同じであるので、その説明を省略する。
S1604’: コントローラ2は、書き込み先ブロック番号(ここではc)、書き込み先ページアドレス(ここでは0)、およびコピー元データの位置情報を指定するコピー要求(Copy (c, 0, a10, a13, a20, a21))を不揮発性メモリ1に送信するとともに、不揮発性メモリ1に対して、ECCデコーダ116bおよびEMCデコーダ117bの双方を有効にすべきことを指示する。
図19は、ECC処理部116およびEMC処理部117を利用したデータ書き込み処理のシーケンスを示す。
図19のデータ書き込み処理は、図7Aで説明したデータ書き込み処理と比し、図7AのS705、S708、S709、S712の処理の代わりに、S705’、S708’、S709’、S712’の処理が実行される点のみが異なっている。図19のS701~S704、S706~S707、S710~S711の処理は、図7AのS701~S704、S706~S707、S710~S711で説明した処理と同じであるので、その説明を省略する。
S705’: 「次のページ」のページアドレス0を不揮発性メモリ1から受信したコントローラ2は、ページアドレス0を指定するプログラム要求(Write(0, 0))と、ページアドレス0を有するページに書き込むべきデータ(ページ0のデータ)とを不揮発性メモリ1に送信するとともに、不揮発性メモリ1に対して、ECCエンコーダ116aおよびEMCエンコーダ117aの双方を有効にすべきことを指示する。
(第5実施形態)
次に、第5実施形態について説明する。
図20は、コントローラ2と不揮発性メモリ1とによって実行される誤りビット数チェック処理の手順を示す。
ステップS2001では、例えば、コントローラ2は、全てのページにデータが書き込まれているブロックの内の一つのブロックのブロックアドレス(例えばブロックアドレス1)を指定するブロックチェック要求(Block check (1))を不揮発性メモリ1に送信してもよい。Block check (1)は、コントローラ2に対して、特定のブロックに格納されているデータの誤りビット数をチェックすべきことを指示するための処理要求である。Block check (1)の(1)は、ブロックアドレス1を表している。
ブロック内のどのページを読み出して誤りビット数をチェックするか、どのように読み出すか、誤り訂正処理の方式などは、不揮発性メモリ1が決めても良いし、予めコントローラ2から不揮発性メモリ1に設定しても構わない。例えば、各ブロック内の誤りが蓄積されやすいページ、または各ブロック内の誤りが蓄積されやすいワードラインが予め分かっている場合には、このページからデータを読み出してもよいし、またはこのワードラインに対応する幾つかのページそれぞれからデータを読み出してもよい。
(第6実施形態)
次に、第6実施形態について説明する。
以下では、TLCを例示して読み出し電圧レベル調整処理を説明するが、本実施形態の読み出し電圧レベル調整処理はSLCに適用されてもよいし、MLCに適用されてもよいし、QLCに適用されてもよい。
TLCにおいては、3ビットのデータが書き込まれた各メモリセルは、8つの状態(一つの状態、および7つのプログラム状態)のいずれかに設定される。これら8つの状態は、“Er”状態、“A”状態、“B”状態、“C”状態、“D”状態、“E”状態、“F”状態、“G”状態として参照される。これら“Er”、“A”、“B”、“C”、“D”、“E”、“F”、“G”状態は、互いに異なる閾値電圧レベルを有している。閾値電圧レベルは、“Er”、“A”、“B”、“C”、“D”、“E”、“F”、“G”状態の順で高くなる。
すなわち、データ読み出し処理においては、“Er”、“A”、“B”、“C”、“D”、“E”、“F”、“G”状態を互いに分離するための7つの閾値電圧Vth0、Vth1、Vth2、Vth3、Vth4、Vth5、Vth6のいずれかが読み出し電圧レベルとして使用される。読み出し電圧レベルは、リード対象のメモリセルの集合が接続されているワードライン(読み出し対象ワードライン)に印加される電圧である。
図22においては、プログラム直後の閾値電圧分布は一点鎖線で示されており、現在の閾値電圧分布は実線で示されている。プログラムから時間が経過した時の各メモリセルの閾値電圧分布は、プログラム直後の閾値電圧分布よりも低い電圧にシフトされる。したがって、プログラム直後の閾値電圧Vth0、Vth1、Vth2、Vth3、Vth4、Vth5、Vth6は読み出し電圧レベルとして最適ではなくなっている。
図23は、図22のシフトされた閾値分圧分布に対応する最適読み出し電圧レベルの例を示している。
この場合、プログラム/イレーズサイクル数(またはプログラムされてからの経過時間)に対応する幾つかの閾値電圧セット(TLCの場合、各閾値電圧セットは6個の閾値電圧候補を含む)から、最適な閾値電圧セットを選択してもよい。
ステップS3401において、コントローラ2は、最適読出し電圧レベルを設定するための処理要求を不揮発性メモリ1に送信する(Set optimal read level (1))。Set optimal read level (1)の(1)は、最適読出し電圧レベルが設定されるべきブロックのブロックアドレスを表す。
このようにすることで、コントローラ2は不揮発性メモリ1がどのように構成されているかを知ることなく、不揮発性メモリ1のデータ保持能力が最大になるように読み出し電圧レベルを調整することができる。
(第7実施形態)
第7実施形態では、不揮発性メモリ1は複数のメモリコア11を備えており、不揮発性メモリ1は、これら複数のメモリコア11を独立して動作させることができる。
図25に示されているように、第7実施形態の不揮発性メモリ1は、互いに独立した動作可能なメモリコア11a、11b、11cを含む。これらメモリコア11a、11b、11cの各々は、図3Aで説明したメモリコア11と同じ構造を有しており、複数のブロックを含むセルアレイを含む。
メモリコア制御部12aは、メモリコア11a内のセルアレイへのデータの書き込みおよびメモリコア11a内のセルアレイからのデータの読み出しを制御するように構成されたメモリコア制御回路として動作する。
メモリコア制御部12bとメモリコア11bとのペアも、図3Aで説明したメモリコア11とメモリコア制御部12とのペアと同じ動作を実行することができる。つまり、メモリコア制御部12bは、第1実施形態~第6実施形態で説明したメモリコア制御部12と同様の構成および能力を有している。メモリコア制御部12bとメモリコア11bとのペアも、1つのチップ(ダイ)によって実現されてもよい。
メモリコア制御部12cとメモリコア11cとのペアも、図3Aで説明したメモリコア11とメモリコア制御部12とのペアと同じ動作を実行することができる。つまり、メモリコア制御部12cは、第1実施形態~第6実施形態で説明したメモリコア制御部12と同様の構成および能力を有している。メモリコア制御部12bとメモリコア11bとのペアも、1つのチップ(ダイ)によって実現されてもよい。
Claims (27)
- コントローラに接続可能な不揮発性半導体記憶装置であって、
各々が複数のページを含み且つ各々がデータの消去単位である複数のブロックを含むセルアレイと、
前記複数のブロックのうち前記コントローラによって選択される書き込み先ブロックに含まれる複数のページに対するプログラム動作を、所定のプログラム順序で実行するように構成された制御回路とを具備し、
前記書き込み先ブロックは、前記書き込み先ブロックに属する複数のワードラインの各々に接続された複数のメモリセルを含み、
前記複数のワードラインの各々に接続された前記複数のメモリセルには、前記書き込み先ブロックに含まれる前記複数のページのうちの一つ以上のページが割り当てられており、
前記制御回路は、
前記書き込み先ブロックに対する次のプログラム動作が実行されるべきページを示すページアドレスを、前記書き込み先ブロックに対する前記次のプログラム動作に対応するページアドレスとして、前記コントローラに通知し、
前記通知したページアドレスが指定された、前記コントローラから受信されるプログラム要求に基づき、前記通知したページアドレスを有する前記ページに対するプログラム動作を実行するように構成されている、不揮発性半導体記憶装置。 - 前記制御回路は、前記複数のブロックのうちの一つのブロックを前記書き込み先ブロックとして選択するための第1の処理要求を前記コントローラから受信した場合、前記書き込み先ブロックに含まれる前記複数のページのうち、最初のプログラム順序番号に対応するページを示すページアドレスを、前記書き込み先ブロックに対する前記次のプログラム動作に対応する前記ページアドレスとして、前記コントローラに通知するように構成されている請求項1記載の不揮発性半導体記憶装置。
- コントローラに接続可能な不揮発性半導体記憶装置であって、
複数のブロックを含むセルアレイと、
前記複数のブロックのうち前記コントローラによって選択される書き込み先ブロックに含まれる複数のページに対するプログラム動作を、所定のプログラム順序で実行するように構成された制御回路とを具備し、
前記制御回路は、
前記書き込み先ブロックに対する次のプログラム動作に対応するページアドレスを前記コントローラに通知し、
前記複数のブロックのうちの一つのブロックを前記書き込み先ブロックとして選択するための第1の処理要求を前記コントローラから受信した場合、前記書き込み先ブロックに含まれる前記複数のページのうち、最初のプログラム順序番号に対応するページを示すページアドレスを、前記書き込み先ブロックに対する前記次のプログラム動作に対応する前記ページアドレスとして、前記コントローラに通知し、
前記最初のプログラム順序番号に対応する前記ページの前記ページアドレスを指定するプログラム要求と前記最初のプログラム順序番号に対応する前記ページに書き込むべきデータとを前記コントローラから受信した場合、前記書き込み先ブロックに含まれる前記複数のページのうち、次のプログラム順序番号に対応するページを示すページアドレスを、前記書き込み先ブロックに対する前記次のプログラム動作に対応する前記ページアドレスとして、前記コントローラに通知するように構成されている、不揮発性半導体記憶装置。 - コントローラに接続可能な不揮発性半導体記憶装置であって、
複数のブロックを含むセルアレイと、
前記コントローラから転送されるデータを保持するバッファと、
前記複数のブロックのうち前記コントローラによって選択される書き込み先ブロックに含まれる複数のページに対するプログラム動作を、所定のプログラム順序で実行するように構成された制御回路とを具備し、
前記制御回路は、前記書き込み先ブロックに対する次のプログラム動作に対応するページアドレスを前記コントローラに通知するように構成されており、
前記書き込み先ブロックに属する複数のワードラインの各々は複数ページを含み、
前記制御回路は、前記書き込み先ブロック内の各ワードラインに対して、複数回のプログラム動作を実行するように構成されており、
前記プログラム順序は、隣接するワードラインそれぞれに対するプログラム動作が互いに交互に実行されるように決められており、
前記コントローラから受信されるプログラム要求によって指定されるページアドレスに対するプログラム動作が前記書き込み先ブロック内の第1のワードラインに対する2回目以降のプログラム動作である場合、前記制御回路は、前記第1のワードラインに対する以前のプログラム動作で使用したデータを前記バッファから読み出し、前記読み出したデータと、前記コントローラから転送される、前記指定されるページアドレスに書き込むべきデータとを使用して、前記第1のワードラインに対するプログラム動作を実行するように構成されている、不揮発性半導体記憶装置。 - コントローラに接続可能な不揮発性半導体記憶装置であって、
複数のブロックを含むセルアレイと、
前記複数のブロックのうち前記コントローラによって選択される書き込み先ブロックに含まれる複数のページに対するプログラム動作を、所定のプログラム順序で実行するように構成された制御回路とを具備し、
前記制御回路は、
前記書き込み先ブロックに対する次のプログラム動作に対応するページアドレスを前記コントローラに通知し、
前記通知したページアドレスを指定するプログラム要求と前記指定されたページアドレスを有するページに対応するデータとを前記コントローラから受信した後、前記ページに対応する前記データが前記書き込み先ブロックのどのページに対するプログラム動作においても必要でなくなった場合に、前記ページに対応するデータが不要であることを前記コントローラに通知するように構成されている、不揮発性半導体記憶装置。 - コントローラに接続可能な不揮発性半導体記憶装置であって、
複数のブロックを含むセルアレイと、
前記コントローラから転送されるデータを保持するバッファと、
前記複数のブロックのうち前記コントローラによって選択される書き込み先ブロックに含まれる複数のページに対するプログラム動作を、所定のプログラム順序で実行するように構成された制御回路とを具備し、
前記制御回路は、
前記書き込み先ブロックに対する次のプログラム動作に対応するページアドレスを前記コントローラに通知し、
前記通知したページアドレスとは異なる別のページアドレスを指定するプログラム要求と前記別のページアドレスに対応するデータとを前記コントローラから受信した場合、前記別のページアドレスを有するページに対するプログラム動作を実行せずに、前記受信したデータを前記バッファに格納するように構成されている、不揮発性半導体記憶装置。 - 前記制御回路は、
前記通知したページアドレスを指定するプログラム要求と前記通知したページアドレスを有する前記ページに対応するデータとを前記コントローラから受信した場合、前記通知したページアドレスを有する前記ページに対するプログラム動作を実行し、
前記通知したページアドレスを有する前記ページに対するプログラム動作を実行した後、次のプログラム動作が実行されるべき前記書き込み先ブロック内の次のページに対応するデータが前記バッファに存在する場合、前記次のページに対するプログラム動作を実行するように構成されている請求項6記載の不揮発性半導体記憶装置。 - 前記制御回路は、前記書き込み先ブロックのどのページに対するプログラム動作においても必要なくなったデータが格納されている前記バッファ内の領域を解放するように構成されている請求項7記載の不揮発性半導体記憶装置。
- コントローラに接続可能な不揮発性半導体記憶装置であって、
複数のブロックを含むセルアレイと、
前記複数のブロックのうち前記コントローラによって選択される書き込み先ブロックに含まれる複数のページに対するプログラム動作を、所定のプログラム順序で実行するように構成された制御回路とを具備し、
前記制御回路は、
前記書き込み先ブロックに対する次のプログラム動作に対応するページアドレスを前記コントローラに通知し、
前記通知したページアドレスをコピー先位置として指定し且つコピー元位置を指定するコピー要求を前記コントローラから受信した場合、前記コピー元位置に格納されているデータを前記セルアレイから前記不揮発性半導体記憶装置内に存在するバッファに読み出し、前記バッファから前記コピー先位置に前記データを書き込むプログラム動作を実行するように構成されている、不揮発性半導体記憶装置。 - 誤り訂正符号デコーダをさらに具備し、
前記制御回路は、前記誤り訂正符号デコーダを有効にすべきことが前記コントローラによって指示された場合、前記コントローラからの処理要求に応じて前記セルアレイから読み出される、データと誤り訂正符号とを含む符号化データに対する誤り訂正復号処理を、前記誤り訂正符号デコーダを使用して行うように構成されている請求項3記載の不揮発性半導体記憶装置。 - 誤り訂正符号デコーダをさらに具備し、
前記制御回路は、前記誤り訂正符号デコーダを有効にすべきことが前記コントローラによって指示された場合、前記コントローラからの前記コピー要求に応じて前記セルアレイの前記コピー元位置から読み出される、データと誤り訂正符号とを含む符号化データに対する誤り訂正復号処理を、前記誤り訂正符号デコーダを使用して行うように構成されている請求項9記載の不揮発性半導体記憶装置。 - 誤り訂正符号エンコーダをさらに具備し、
前記制御回路は、前記誤り訂正符号エンコーダを有効にすべきことが前記コントローラによって指示された場合、前記書き込み先ブロックに書き込むべきデータに誤り訂正符号を付加する誤り訂正符号化処理を、前記誤り訂正符号エンコーダを使用して行うように構成されている請求項3記載の不揮発性半導体記憶装置。 - 誤り訂正符号エンコーダをさらに具備し、
前記制御回路は、前記誤り訂正符号エンコーダを有効にすべきことが前記コントローラによって指示された場合、前記誤り訂正復号処理によって誤りが訂正されたデータに誤り訂正符号を付加する誤り訂正符号化処理を前記誤り訂正符号エンコーダを使用して行ってから、前記誤りが訂正されたデータと前記誤り訂正符号とを含む符号化データを前記コピー先位置に書き込むプログラム動作を実行するように構成されている請求項11記載の不揮発性半導体記憶装置。 - 元データのデータパターンを誤りが生じるのを抑制するデータパターンに変換する誤り抑制符号化処理によって符号化されたデータを復号して元データに戻す誤り抑制符号デコーダをさらに具備し、
前記制御回路は、前記誤り抑制符号デコーダを有効にすべきことが前記コントローラによって指示された場合、前記コントローラからの処理要求に応じて前記セルアレイから読み出される、誤り抑制符号化処理によって符号化されたデータを元のデータに戻す誤り抑制復号処理を、前記誤り抑制符号デコーダを使用して行うように構成されている請求項3記載の不揮発性半導体記憶装置。 - 元データのデータパターンを誤りが生じるのを抑制するデータパターンに変換する誤り抑制符号化処理を行う誤り抑制符号エンコーダをさらに具備し、
前記制御回路は、前記誤り抑制符号エンコーダを有効にすべきことが前記コントローラによって指示された場合、前記誤り抑制符号エンコーダを使用して、前記書き込み先ブロックに書き込むべきデータを前記誤り抑制符号化処理によって符号化するように構成されている請求項3記載の不揮発性半導体記憶装置。 - 誤り訂正符号デコーダと、
元データのデータパターンを誤りが生じるのを抑制するデータパターンに変換する誤り抑制符号化処理によって符号化されたデータを復号して元データに戻す誤り抑制符号デコーダとをさらに具備し、
前記制御回路は、前記誤り訂正符号デコーダおよび前記誤り抑制符号デコーダを有効にすべきことが前記コントローラによって指示された場合、前記コントローラからの処理要求に応じて前記セルアレイから読み出される、データと誤り訂正符号とを含む符号化データに対する誤り訂正復号処理を前記誤り訂正符号デコーダを使用して行い、そして誤りが訂正されたデータを元データに戻す誤り抑制復号処理を前記誤り抑制符号デコーダを使用して行うように構成されている請求項3記載の不揮発性半導体記憶装置。 - 誤り訂正符号エンコーダと、
元データのデータパターンを誤りが生じるのを抑制するデータパターンに変換する誤り抑制符号化処理を行う誤り抑制符号エンコーダとをさらに具備し、
前記制御回路は、前記誤り訂正符号エンコーダおよび前記誤り抑制符号エンコーダを有効にすべきことが前記コントローラによって指示された場合、前記誤り抑制符号エンコーダを使用して、前記書き込み先ブロックに書き込むべきデータを前記誤り抑制符号化処理によって符号化し、そして前記誤り抑制符号化処理によって符号化されたデータに誤り訂正符号を付加する誤り訂正符号化処理を前記誤り訂正符号エンコーダを使用して行うように構成されている請求項3記載の不揮発性半導体記憶装置。 - 誤り訂正符号デコーダをさらに具備し、
前記制御回路は、前記複数のブロック内の第1のブロックに格納されているデータの誤りビット数のチェックを指示する処理要求を前記コントローラから受信した場合、誤り訂正符号デコーダを使用して、前記第1のブロックに格納されているデータに含まれる誤りビット数を調べ、前記誤りビット数に関するチェック結果を前記コントローラに返すように構成されている請求項3記載の不揮発性半導体記憶装置。 - 前記チェック結果は、調べた誤りビット数が閾値以上か否かを示す請求項18記載の不揮発性半導体記憶装置。
- 前記チェック結果は、前記第1のブロックに格納されているデータの誤り訂正の成功または失敗を示す請求項18記載の不揮発性半導体記憶装置。
- 前記制御回路は、少なくとも、前記第1のブロックに格納されている第1のデータに含まれる誤りビット数と前記第1のブロックに格納されている第2のデータに含まれる誤りビット数とを調べ、最も多い誤りビット数を前記チェック結果として前記コントローラに返すように構成されている請求項18記載の不揮発性半導体記憶装置。
- 誤り訂正符号デコーダをさらに具備し、
前記制御回路は、セルアレイからのデータ読み出しに使用する読み出し電圧レベルの調整を指示する処理要求を前記コントローラから受信した場合、読み出し対象ワードラインに印加する読み出し電圧レベルを変更しながら、前記読み出し対象ワードラインに接続された複数のメモリセルからデータを読み出す動作と、読み出されたデータの誤りビット数を前記誤り訂正符号デコーダを用いて調べる動作とを繰り返すことによって、誤りビット数が最小となる新たな読み出し電圧レベルを決定するように構成されている請求項3記載の不揮発性半導体記憶装置。 - 前記読み出し電圧レベルの調整を指示する前記処理要求が前記複数のブロックのうちの第1のブロックのブロックアドレスを指定する場合、前記制御回路は、前記第1のブロックに属するワードラインの中の読み出し対象ワードラインに印加する読み出し電圧レベルを変更しながら、前記読み出し対象ワードラインに接続された複数のメモリセルからデータを読み出す動作と、読み出されたデータの誤りビット数を前記誤り訂正符号デコーダを用いて調べる動作とを繰り返すことによって、誤りビット数が最小となる新たな読み出し電圧レベルを前記第1のブロックからデータを読み出すための読み出し電圧レベルとして決定するように構成されている請求項22記載の不揮発性半導体記憶装置。
- 前記不揮発性半導体記憶装置は、互いに独立して動作する複数のメモリコアと、前記複数のメモリコアをそれぞれ制御する複数のメモリコア制御回路とを含み、
前記複数のメモリコアの各々が前記セルアレイとして動作し、
前記複数のメモリコア制御回路の各々が前記制御回路として動作するように構成されている請求項3記載の不揮発性半導体記憶装置。 - 第1半導体素子に接続可能な不揮発性半導体記憶装置であって、
複数のメモリセルを含むブロックを複数含み、
前記複数のブロックから選択される一のブロックを示し前記第1半導体素子から受信した第1アドレス信号に対して、前記第1アドレス信号に基づいて選択される第2アドレス信号を前記第1半導体素子に送信し、
前記第1アドレス信号及び前記第2アドレス信号及び第1データが指定された、前記第1半導体素子より受信されるコマンドに対して、前記第1アドレス信号及び前記第2アドレス信号に基づいた第1アドレスに対応する前記メモリセルに前記第1データをプログラムするように構成される、不揮発性半導体記憶装置。 - 前記第1半導体素子は、ホスト装置に接続可能であって、前記第1半導体素子は、前記ホスト装置から第2アドレスと第2データとが指定された書き込み要求を受信した場合に、前記第2アドレスに基づいて前記第1アドレス信号及び前記第2アドレス信号を生成し、前記第2データに基づいて前記第1データを生成する請求項25記載の不揮発性半導体記憶装置。
- 前記第1半導体素子は、前記第2アドレスを前記第1アドレス信号及び前記第2アドレス信号に対応する物理アドレスに関連付ける請求項26記載の不揮発性半導体記憶装置。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019024588A JP7213712B2 (ja) | 2019-02-14 | 2019-02-14 | 不揮発性半導体記憶装置 |
CN201910788300.3A CN111564172B (zh) | 2019-02-14 | 2019-08-26 | 非易失性半导体存储装置 |
US16/561,399 US11169875B2 (en) | 2019-02-14 | 2019-09-05 | Nonvolatile semiconductor memory device |
US17/449,994 US11693734B2 (en) | 2019-02-14 | 2021-10-05 | Nonvolatile semiconductor memory device |
JP2023002210A JP7375231B2 (ja) | 2019-02-14 | 2023-01-11 | 不揮発性半導体記憶装置 |
US18/316,531 US11947422B2 (en) | 2019-02-14 | 2023-05-12 | Nonvolatile semiconductor memory device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019024588A JP7213712B2 (ja) | 2019-02-14 | 2019-02-14 | 不揮発性半導体記憶装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023002210A Division JP7375231B2 (ja) | 2019-02-14 | 2023-01-11 | 不揮発性半導体記憶装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020135904A JP2020135904A (ja) | 2020-08-31 |
JP7213712B2 true JP7213712B2 (ja) | 2023-01-27 |
Family
ID=72042054
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019024588A Active JP7213712B2 (ja) | 2019-02-14 | 2019-02-14 | 不揮発性半導体記憶装置 |
JP2023002210A Active JP7375231B2 (ja) | 2019-02-14 | 2023-01-11 | 不揮発性半導体記憶装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023002210A Active JP7375231B2 (ja) | 2019-02-14 | 2023-01-11 | 不揮発性半導体記憶装置 |
Country Status (3)
Country | Link |
---|---|
US (3) | US11169875B2 (ja) |
JP (2) | JP7213712B2 (ja) |
CN (1) | CN111564172B (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020035504A (ja) | 2018-08-30 | 2020-03-05 | キオクシア株式会社 | メモリシステム |
US10838863B2 (en) * | 2019-02-01 | 2020-11-17 | EMC IP Holding Company LLC | Storage system with write cache release protection |
CN114402318A (zh) * | 2019-09-19 | 2022-04-26 | 索尼集团公司 | 信息处理方法和记录介质 |
TWI776231B (zh) * | 2020-09-09 | 2022-09-01 | 旺宏電子股份有限公司 | 記憶體裝置的操作方法 |
JP2022102785A (ja) * | 2020-12-25 | 2022-07-07 | キオクシア株式会社 | メモリシステム |
US20220283727A1 (en) * | 2021-03-03 | 2022-09-08 | Gylicon Ltd | Solid state storage device with look-up tables providing improved reference voltages |
JP2023137598A (ja) | 2022-03-18 | 2023-09-29 | キオクシア株式会社 | 半導体装置 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3561002B2 (ja) * | 1994-05-18 | 2004-09-02 | 富士通株式会社 | ディスク装置 |
JP3928724B2 (ja) * | 2003-02-20 | 2007-06-13 | ソニー株式会社 | 記録媒体の記録制御方法および記録媒体の記録制御装置 |
WO2005022393A1 (ja) * | 2003-08-29 | 2005-03-10 | Matsushita Electric Industrial Co., Ltd. | 不揮発性記憶装置及びその書込み方法 |
JP2006048783A (ja) * | 2004-08-02 | 2006-02-16 | Renesas Technology Corp | 不揮発性メモリおよびメモリカード |
KR100763353B1 (ko) * | 2006-04-26 | 2007-10-04 | 삼성전자주식회사 | 인접하는 메모리셀과의 커플링 노이즈를 저감시키는불휘발성 반도체 메모리 장치 |
EP1850347A1 (en) | 2006-04-28 | 2007-10-31 | Deutsche Thomson-Brandt Gmbh | Method and device for writing to a flash memory |
JP5028577B2 (ja) | 2007-02-19 | 2012-09-19 | 株式会社メガチップス | メモリ制御方法およびメモリシステム |
US8185685B2 (en) * | 2007-12-14 | 2012-05-22 | Hitachi Global Storage Technologies Netherlands B.V. | NAND flash module replacement for DRAM module |
US7848144B2 (en) * | 2008-06-16 | 2010-12-07 | Sandisk Corporation | Reverse order page writing in flash memories |
TWI421869B (zh) * | 2009-10-14 | 2014-01-01 | Phison Electronics Corp | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 |
JP2011095853A (ja) * | 2009-10-27 | 2011-05-12 | Panasonic Corp | 不揮発性記憶装置、ホスト装置および不揮発性記憶システム |
US9406346B2 (en) * | 2011-06-30 | 2016-08-02 | Sandisk Technologies Llc | Smart bridge for memory core |
JP5677336B2 (ja) * | 2011-08-01 | 2015-02-25 | 株式会社東芝 | メモリ・デバイス |
JP2013077278A (ja) * | 2011-09-16 | 2013-04-25 | Toshiba Corp | メモリ・デバイス |
JP5547154B2 (ja) * | 2011-09-21 | 2014-07-09 | 株式会社東芝 | メモリ・デバイス |
US8984369B2 (en) | 2012-11-21 | 2015-03-17 | Micron Technology, Inc. | Shaping codes for memory |
US20140181455A1 (en) * | 2012-12-20 | 2014-06-26 | Apple Inc. | Category based space allocation for multiple storage devices |
US9652376B2 (en) * | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
JP2015018451A (ja) | 2013-07-11 | 2015-01-29 | 株式会社東芝 | メモリコントローラ、記憶装置およびメモリ制御方法 |
JP6527054B2 (ja) * | 2015-08-28 | 2019-06-05 | 東芝メモリ株式会社 | メモリシステム |
JP6523193B2 (ja) | 2016-03-08 | 2019-05-29 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
JP6444917B2 (ja) | 2016-03-08 | 2018-12-26 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
US9761325B1 (en) * | 2016-03-14 | 2017-09-12 | Toshiba Memory Corporation | Memory system |
JP2018005959A (ja) * | 2016-06-30 | 2018-01-11 | 東芝メモリ株式会社 | メモリシステムおよび書き込み方法 |
US10593398B2 (en) * | 2016-09-13 | 2020-03-17 | Toshiba Memory Corporation | Semiconductor storage device including a controller configured to execute a first write and a second write |
JP2018160065A (ja) | 2017-03-22 | 2018-10-11 | 東芝メモリ株式会社 | メモリシステム |
TWI643066B (zh) * | 2018-01-15 | 2018-12-01 | 慧榮科技股份有限公司 | 用來於一記憶裝置中重新使用關於垃圾收集的一目的地區塊之方法、記憶裝置及其控制器以及電子裝置 |
-
2019
- 2019-02-14 JP JP2019024588A patent/JP7213712B2/ja active Active
- 2019-08-26 CN CN201910788300.3A patent/CN111564172B/zh active Active
- 2019-09-05 US US16/561,399 patent/US11169875B2/en active Active
-
2021
- 2021-10-05 US US17/449,994 patent/US11693734B2/en active Active
-
2023
- 2023-01-11 JP JP2023002210A patent/JP7375231B2/ja active Active
- 2023-05-12 US US18/316,531 patent/US11947422B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN111564172A (zh) | 2020-08-21 |
JP2023029560A (ja) | 2023-03-03 |
US20200264805A1 (en) | 2020-08-20 |
JP2020135904A (ja) | 2020-08-31 |
US11169875B2 (en) | 2021-11-09 |
US11947422B2 (en) | 2024-04-02 |
JP7375231B2 (ja) | 2023-11-07 |
US20220035702A1 (en) | 2022-02-03 |
CN111564172B (zh) | 2023-09-22 |
US20230281078A1 (en) | 2023-09-07 |
US11693734B2 (en) | 2023-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7213712B2 (ja) | 不揮発性半導体記憶装置 | |
US11036628B2 (en) | Storage system having a host directly manage physical data locations of storage device | |
US10475518B2 (en) | Memory system, memory system control method, and program | |
CN111831469A (zh) | 错误恢复方法、非暂时性计算机存储媒体及存储器子系统 | |
TWI542990B (zh) | 用於控制非揮發性記憶體程式化之裝置與方法 | |
US20180173619A1 (en) | System and Method for Distributed Logical to Physical Address Mapping | |
CN114341824B (zh) | 用于粗映射存储器子系统的取消映射 | |
US11164652B2 (en) | Two-layer code with low parity cost for memory sub-systems | |
US20150052329A1 (en) | Memory control device, host computer, information processing system and method of controlling memory control device | |
KR20150030628A (ko) | 전송 유닛 관리 | |
US20160224419A1 (en) | Device and method | |
US20180024879A1 (en) | Decoder using low-density parity-check code and memory controller including the same | |
KR20210026431A (ko) | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 | |
US10133764B2 (en) | Reduction of write amplification in object store | |
CN116775368A (zh) | 用于以不同码率在分区之间回拷的多层码率架构 | |
KR20170012006A (ko) | 메모리 컨트롤러와 이를 포함하는 메모리 시스템 | |
CN115202923A (zh) | 非易失性存储器中的奇偶校验保护 | |
KR20220077041A (ko) | 메모리 시스템 내 저장된 데이터를 유지하는 장치 및 방법 | |
CN113849121A (zh) | 用于访问条带形式的数据的存储器系统及其操作方法 | |
CN112748870A (zh) | 存储器系统、存储器控制器及操作存储器控制器的方法 | |
KR20220118004A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN110119247A (zh) | 非易失性存储器 | |
TWI805450B (zh) | 借助侵害位元資訊來進行記憶體裝置的存取控制的方法、記憶體裝置以及記憶體裝置的控制器 | |
US20230161666A1 (en) | Ecc parity biasing for key-value data storage devices | |
KR20230020744A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210914 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220715 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220726 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220915 |
|
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: 20221220 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230117 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7213712 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |