JP2018067072A - 半導体記憶装置及びその制御方法 - Google Patents
半導体記憶装置及びその制御方法 Download PDFInfo
- Publication number
- JP2018067072A JP2018067072A JP2016203982A JP2016203982A JP2018067072A JP 2018067072 A JP2018067072 A JP 2018067072A JP 2016203982 A JP2016203982 A JP 2016203982A JP 2016203982 A JP2016203982 A JP 2016203982A JP 2018067072 A JP2018067072 A JP 2018067072A
- Authority
- JP
- Japan
- Prior art keywords
- semiconductor memory
- storage area
- controller
- memory device
- nonvolatile semiconductor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- 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/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
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- 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/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/74—Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
-
- 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/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
-
- 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/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- 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/45—Caching of specific data in cache memory
-
- 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
Abstract
【課題】半導体記憶装置の信頼性を維持する
【解決手段】
実施形態の半導体記憶装置は、コントローラと、データを記憶する不揮発性半導体メモリと、データを記憶する揮発性半導体メモリと、を具備する。不揮発性半導体メモリは複数の記憶領域を含み、半導体記憶装置の起動に際してコントローラが使用する起動情報を記憶する。起動情報は、不揮発性半導体メモリの製造時に不揮発性半導体メモリの少なくとも1つの記憶領域に記憶される。コントローラは、不揮発性半導体メモリの記憶領域をアドレスに関連付けて管理し、アドレスを指定する第1のコマンドを不揮発性半導体メモリに発行することにより、起動情報を不揮発性半導体メモリから読み出す。
【選択図】図7
【解決手段】
実施形態の半導体記憶装置は、コントローラと、データを記憶する不揮発性半導体メモリと、データを記憶する揮発性半導体メモリと、を具備する。不揮発性半導体メモリは複数の記憶領域を含み、半導体記憶装置の起動に際してコントローラが使用する起動情報を記憶する。起動情報は、不揮発性半導体メモリの製造時に不揮発性半導体メモリの少なくとも1つの記憶領域に記憶される。コントローラは、不揮発性半導体メモリの記憶領域をアドレスに関連付けて管理し、アドレスを指定する第1のコマンドを不揮発性半導体メモリに発行することにより、起動情報を不揮発性半導体メモリから読み出す。
【選択図】図7
Description
本発明の実施形態は、半導体記憶装置及びその制御方法に関する。
不揮発性半導体メモリからデータを読み出すと記憶素子が劣化する。従って、不揮発性半導体メモリの同じ記憶領域から何度もデータを読み出すと、半導体記憶装置の信頼性を維持することができなくなる。
本発明が解決しようとする課題は、半導体記憶装置の信頼性を維持することである。
上記課題を達成するために、実施形態の半導体記憶装置は、コントローラと、データを記憶する不揮発性半導体メモリと、データを記憶する揮発性半導体メモリと、を具備する。不揮発性半導体メモリは複数の記憶領域を含み、半導体記憶装置の起動に際してコントローラが使用する起動情報を記憶する。起動情報は、不揮発性半導体メモリの製造時に不揮発性半導体メモリの少なくとも1つの記憶領域に記憶される。コントローラは、不揮発性半導体メモリの記憶領域をアドレスに関連付けて管理し、アドレスを指定する第1のコマンドを不揮発性半導体メモリに発行することにより、起動情報を不揮発性半導体メモリから読み出す。
以下、実施形態の半導体記憶装置を、図面を参照して説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
[第1の実施形態]
図1は、第1の実施形態の半導体記憶装置の構成を説明するブロック図である。
図1は、第1の実施形態の半導体記憶装置の構成を説明するブロック図である。
半導体記憶装置1は、ホスト2と通信可能である。半導体記憶装置1は、メモリコントローラ10と、複数の不揮発性半導体メモリ20と、バッファ30と、を含む。
メモリコントローラ10は、ホスト2と通信し、半導体記憶装置1全体の動作を制御する。メモリコントローラ10は、例えばSoC(System on a Chip)として構成される半導体集積回路である。
本実施形態の説明では、ホスト2はSATA(Serial ATA)規格のインターフェースをサポートするコンピュータであるが、その他の規格、例えばSAS(Serial Attached SCSI)規格やNVMe(NVM Express)(登録商標)規格のインターフェースをサポートするコンピュータであってもよい。
不揮発性半導体メモリ20は、データを不揮発的に(永続的に)記憶する。本実施形態の不揮発性半導体メモリ20はNAND型フラッシュメモリであるが、3次元構造フラッシュメモリ、NOR型フラッシュメモリ、MRAM(Magnetoresistive Random Access Memory)など他の種類の不揮発性半導体メモリでもよい。以下の説明においては、不揮発性半導体メモリ20をNAND型フラッシュメモリ20と表記することがある。
本実施形態の半導体記憶装置1は4チャネル(Ch)のNAND型フラッシュメモリ20を有する。メモリコントローラ10は、各チャネルに接続されたNAND型フラッシュメモリ20を並列に制御可能である。1つのチャネルに複数のNAND型フラッシュメモリ20が接続されてもよい。以下では各チャネルに接続されているNAND型フラッシュメモリ20をNAND型フラッシュメモリCh0〜Ch3と表記する。チャネルの数は4より多くても少なくてもよい。
バッファ30は、データを揮発的に(一時的に)に記憶する。バッファ30に記憶されるデータには、(1)ホスト2から受信したデータ、(2)NAND型フラッシュメモリ20から読み出したデータ、(3)メモリコントローラ10が半導体記憶装置1を制御するにあたり必要な情報、などがある。
本実施形態のバッファ30はDRAM(Dynamic Random Access Memory)であるが、SRAM(Static Random Access Memory)など他の種類の揮発性半導体メモリでもよい。バッファ30は、メモリコントローラ10に内蔵されていてもよい。
メモリコントローラ10は、CPU(Central Processing Unit)40と、ホストインターフェース(IF)制御部50と、バッファ制御部60と、メモリインターフェース(IF)制御部70と、を含む。
CPU40は、FW(Firmware)に基づき半導体記憶装置1全体の制御を行う。CPU40は、メモリコントローラ10に内蔵せず、別個の半導体集積回路としてもよい。また、以下の説明においてFWにより実行される機能の一部、又は、全部は専用のHW(Hardware)によっても実行可能であり、HWにより実行される機能の一部、又は、全部をFWによって実行することも可能である。
ホストインターフェース(IF)制御部50は、ホスト2から受信したコマンドの解釈や実行などを行う。バッファ制御部60は、バッファ30へのデータの書き込み、読み出しの制御、及び、バッファ30の空き領域の管理などを行う。
メモリIF制御部70は、複数のNAND制御部80を含む。NAND制御部80は、NAND型フラッシュメモリCh0〜Ch3のそれぞれに接続される(以下、NAND制御部Ch0〜Ch3と表記することがある)。NAND制御部80は、NAND型フラッシュメモリ20へのデータの書き込み、読み出し、消去等の動作を制御する。
NAND制御部80は、ECC制御部90を含む。ECC制御部90は、NAND型フラッシュメモリ20へ書き込まれるデータに対して、誤り訂正符号を付加する。誤り訂正符号としては、例えば、RS(Reed Solomon)符号、BCH(Bose Chaudhuri Hocquenghem)符号、LDPC(Low Density Parity Check)符号等を用いることができる。ECC制御部90は、NAND型フラッシュメモリ20から読み出されたデータに対して、誤り訂正符号に基づいた誤り訂正処理を行う。
次に、図2a及び図2bを参照して、NAND型フラッシュメモリ20の物理ページ100及び物理ブロック110の構成を説明する。
図2aに示すように、NAND型フラッシュメモリ20に対するデータの書き込み、読み出しにおける最小管理単位はクラスタ120と呼ばれる。本実施形態ではクラスタ120の大きさは4kBである。また、NAND型フラッシュメモリ20のデータの書き込み、読み出しが可能な最小の回路構成の単位は物理ページ100と呼ばれる。本実施形態では物理ページ100の大きさは16クラスタ(4kB×16クラスタ=64kB)である。
また、図2bに示すように、NAND型フラッシュメモリ20のデータの消去が可能な最小の回路構成の単位は物理ブロック110と呼ばれる。本実施形態では物理ブロック110の大きさは16物理ページ(64kB×16物理ページ=1024kB)である。なお、これら各単位のサイズは一例であり、これらの値に限定されるものではない。
NAND型フラッシュメモリ20内の記憶素子は、データの書き込み、読み出し、消去などにより、劣化する。半導体記憶装置1の寿命を延ばすためには、物理ページ100あたりのデータの書き込み回数、データの読み出し回数、物理ブロック110あたりのデータの消去回数をできるだけ少なくすることが望ましい。
次に、図3及び図4を参照して、メモリ構成を説明する。
図3に示すように、NAND型フラッシュメモリ20は、ヒューズ領域150(第1の記憶領域)を含む。ヒューズ領域150は、1つの物理ブロック110で構成されるが、この構成に限定されなくてよい。
図4に示すように、ヒューズ領域150には、NAND型フラッシュメモリ20の不良ビット情報や動作パラメータなどが、NAND型フラッシュメモリ20の製造時(工場出荷前)に記憶される。ヒューズ領域150は、工場出荷後は読み出しのみが可能である。すなわち、メモリコントローラ10は、ヒューズ領域150からデータの読み出しのみをすることができる。ヒューズ領域150に記憶されている情報は、半導体記憶装置1の起動に際してメモリコントローラ10が使用する。以下、この情報を起動情報と称する。起動情報には、誤り訂正符号が付加されてもよい。
また、メモリコントローラ10は、NAND型フラッシュメモリ20の一部の記憶領域を、第1コピー領域160(第2の記憶領域)として管理する。第1コピー領域160は、1つの物理ブロック110で構成されるが、この構成に限定されなくてよい。
第1コピー領域160は、メモリコントローラ10の制御により、データの書き込み、読み出し、消去が可能である。第1コピー領域160は、メモリコントローラ10からアドレス=Aに関連付けられてアクセスされる。第1コピー領域160には、メモリコントローラ10からの制御により、起動情報が記憶される。
以上、半導体記憶装置1の構造について説明した。以下では、半導体記憶装置1のとりうる電力モード、及び、半導体起動装置1のブートシーケンスについて説明する。
図5に示すように、半導体記憶装置1は、通常電力モード(第1の電力モード)、第1低電力モード(第2の電力モード)、第2低電力モード(第3の電力モード)、の3つの電力モードをとりうる。通常電力モードでは、メモリコントローラ10、NAND型フラッシュメモリ20、バッファ30のいずれにも電力が供給される。第1低電力モードでは、NAND型フラッシュメモリ20には電力が供給されないが、メモリコントローラ10及びバッファ30には電力が供給される。第2低電力モードでは、メモリコントローラ10、NAND型フラッシュメモリ20、バッファ30のいずれにも電力が供給されない。半導体記憶装置1の消費電力は、通常電力モード、第1低電力モード、第2低電力モードの順に小さくなる。
以下、第1低電力モードから通常電力モードへの遷移をWARMブートと称する。また、第2低電力モードから通常電力モードへの遷移をCOLDブートと称する。WARMブートは、COLDブートよりも高速である。
次に、図6を参照して、半導体記憶装置1の電力供給時の動作シーケンス(パワーオンシーケンス)を説明する。
半導体記憶装置1に電力が供給され、必要な初期化処理が完了すると、メモリコントローラ10は、NAND型フラッシュメモリ20に対し、起動情報読み出しコマンド(アドレス指定なし)を発行する。起動情報読み出しコマンド(アドレス指定なし)を受領したNAND型フラッシュメモリ20は、ヒューズ領域150から起動情報を読み出す。読み出された起動情報は、NAND型フラッシュメモリ20からメモリコントローラ10へ送信される。
次に、メモリコントローラ10は、アドレス=Aをコピー先として指定する起動情報コピーコマンドを、NAND型フラッシュメモリ20に対して発行する。アドレス=Aは、前述のとおり、第1コピー領域160に関連付けられる。起動情報コピーコマンドを受領したNAND型フラッシュメモリ20は、起動情報をヒューズ領域150から、アドレス=Aに関連付けられた記憶領域、すなわち、第1コピー領域160に記憶させる。NAND型フラッシュメモリ20は、メモリコントローラ10に対し、起動情報コピーコマンドの実行完了を報告する。
メモリコントローラ10は、アドレス=Aをバッファ30に記憶させる。
なお、起動情報コピーコマンドは、一度発行すれば、次回のパワーオンシーケンスからは省略することができる。
次に、図7を参照して、WARMブートの動作シーケンスを説明する。
半導体記憶装置1がWARMブートすると、メモリコントローラ10は、バッファ30に記憶させておいたアドレス=Aを取得する。アドレス=Aを取得したメモリコントローラ10は、アドレス=Aを指定する起動情報読み出しコマンド(アドレス指定あり)を、NAND型フラッシュメモリ20に対して発行する。起動情報読み出しコマンド(アドレス指定あり)を受領したNAND型フラッシュメモリ20は、アドレス=Aに関連付けられた記憶領域、すなわち、第1コピー領域160から起動情報を読み出す。読み出された起動情報は、NAND型フラッシュメモリ20からメモリコントローラ10へ送信される。メモリコントローラ10は、受信した起動情報をバッファ30に記憶させてもよい。
次に、図8を参照して、COLDブートの動作シーケンスを説明する。
半導体記憶装置1がCOLDブートすると、メモリコントローラ10は、起動情報読み出しコマンド(アドレス指定なし)を、NAND型フラッシュメモリ20に対して発行する。第2低電力モードの時は、バッファ30に電力が供給されないため、バッファ30に記憶されていたアドレス=Aの情報は失われる。従って、起動情報読み出しコマンド(アドレス指定あり)は使用することができない。起動情報読み出しコマンド(アドレス指定なし)を受領したNAND型フラッシュメモリ20は、ヒューズ領域150から起動情報を読み出す。読み出された起動情報は、NAND型フラッシュメモリ20からメモリコントローラ10へ送信される。メモリコントローラ10は、受信した起動情報をバッファ30に記憶させてもよい。
次に、図9を参照して、半導体記憶装置1のブート時のFWの制御手順を説明する。
第1コピー領域160に関連付けられたアドレスがバッファ30に記憶されている時、すなわちWARMブートである時(S100:Yes)、CPU40はFWに基づき、第1コピー領域160に関連付けられるアドレスを取得する(S101)。次にCPU40は、NAND制御部80に指示し、取得したアドレスを用いて起動情報読み出しコマンド(アドレス指定あり)を発行する(S102)。
第1コピー領域160に関連付けられたアドレスがバッファ30に記憶されていない時、すなわちCOLDブートである時(S100:No)、CPU40は、NAND制御部80に指示し、起動情報読み出しコマンド(アドレス指定なし)を発行する(S103)。
なお、WARMブートであるかCOLDブートであるかの判断方法は、上記の方法に限られない。例えば、ホスト2よりブートの種類が通知されてもよい。
以上説明した第1の実施形態の半導体記憶装置によれば、半導体記憶装置の起動時に起動情報を取得する記憶領域を、メモリコントローラの制御により変更することができるので、ヒューズ領域内の記憶素子の過度な劣化を防ぐことができ、半導体記憶装置の信頼性を維持することができる。
[第2の実施形態]
第1の実施形態の半導体記憶装置では、ヒューズ領域内の記憶素子の過度な劣化を防ぐことができた。第2の実施形態の半導体記憶装置では、さらに、第1コピー領域内の記憶素子の劣化に対処することができる。
第1の実施形態の半導体記憶装置では、ヒューズ領域内の記憶素子の過度な劣化を防ぐことができた。第2の実施形態の半導体記憶装置では、さらに、第1コピー領域内の記憶素子の劣化に対処することができる。
図10は、本実施形態のメモリ構成を説明する図である。
本実施形態のメモリコントローラ10は、第1コピー領域160に加え、NAND型フラッシュメモリ20の一部の記憶領域を、スペア領域170(第3の記憶領域)として管理する。スペア領域170は、1つの物理ブロック110で構成されるが、この構成に限定されなくてよい。
スペア領域170は、第1コピー領域160と同様、メモリコントローラ10の制御により、データの書き込み、読み出し、消去が可能である。スペア領域170は、メモリコントローラ10からアドレス=Bに関連付けられてアクセスされる。
メモリコントローラ10は、第1コピー領域160内の記憶素子の劣化を推定しうるパラメータ(以下、リフレッシュパラメータと称する)を管理する。リフレッシュパラメータには、例えば、(1)第1コピー領域160からの起動情報の読み出し回数、(2)第1コピー領域160から読み出した起動情報内のエラービット数、(3)第1コピー領域160へのアクセス間隔、などを採用することができる。
リフレッシュパラメータとして、(1)第1コピー領域160からの起動情報の読み出し回数、が用いられる場合について説明する。メモリコントローラ10は、第1コピー領域160から起動情報が読み出された回数を計測する。読み出し回数が、あらかじめ定めておいたリフレッシュ閾値を超えると、メモリコントローラ10はリフレッシュ処理を行う。リフレッシュ処理の詳細については後述する。
リフレッシュパラメータとして、(2)第1コピー領域160から読み出した起動情報内のエラービット数、が用いられる場合について説明する。第1コピー領域160から読み出された起動情報に対して、ECC制御部90が、誤り訂正処理を行う。誤り訂正処理時に検出されたエラービット数が、あらかじめ定めておいたリフレッシュ閾値を超えると、メモリコントローラ10は、リフレッシュ処理を行う。
リフレッシュパラメータとして、(3)第1コピー領域160へのアクセス間隔、が用いられる場合について説明する。第1コピー領域160からの起動情報の読み出し時に、メモリコントローラ10は、図示しないタイマーを作動させる。タイマーは、ゼロから、一定時間経過ごとにカウントアップする。タイマーは、第1コピー領域160から起動情報が読み出されるごとに、ゼロに初期化される。そして、タイマーの値が、あらかじめ定めておいたリフレッシュ閾値を超えると、メモリコントローラ10はリフレッシュ処理を行う。
次に、図11a及び図11bを参照して、リフレッシュ処理について説明する。本実施形態におけるリフレッシュ処理には、2通りの方法がある。
第1の方法では、図11aに示すように、第1コピー領域160から読み出された起動情報を、第1コピー領域160に再度記憶させる。この時メモリコントローラ10は、読み出された起動情報に対し、ECC制御部90によって誤り訂正処理を行い、誤りが訂正された起動情報を第1コピー領域160に記憶させてもよい。第1コピー領域160に起動情報を再度記憶させることにより、第1コピー領域160内の記憶素子に電荷が再度注入され、起動情報の読み出し時のエラー発生確率を低減することができる。
第2の方法では、図11bに示すように、第1コピー領域160から読み出された起動情報を、スペア領域170に記憶させる。この時もメモリコントローラ10は、誤りが訂正された起動情報をスペア領域170に記憶させてもよい。また、メモリコントローラ10は、スペア領域170に関連付けられるアドレス=Bをバッファ30に記憶させる。そしてこれ以降、メモリコントローラ10は、起動情報読み出しコマンド(アドレス指定あり)を発行する時は、アドレス=Bを指定してコマンドを発行する。
次に、図12a及び図12bを参照して、リフレッシュ処理時のFWの制御手順を説明する。
図12aは図11aに示したリフレッシュ処理に対応する。
リフレッシュパラメータがリフレッシュ閾値を超えると(S200a:Yes)、CPU40はFWに基づき、NAND制御部80に指示し、第1コピー領域160から読み出された起動情報を第1コピー領域160に再度記憶させる(S201a)。
図12bは図11bに示したリフレッシュ処理に対応する。
リフレッシュパラメータがリフレッシュ閾値を超えると(S200b:Yes)、CPU40はFWに基づき、NAND制御部80に指示し、第1コピー領域160から読み出された起動情報をスペア領域170に記憶させる(S201b)。CPU40は、スペア領域170に関連付けられたアドレス=Bを、バッファ30に記憶させる(S202b)。
以上、リフレッシュ処理について説明した。以下では、第1コピー領域160からの起動情報の読み出しに失敗した時のリカバリ処理について説明する。
第1コピー領域160から読み出された起動情報に対して、ECC制御部90が誤り訂正処理を行った結果、訂正不能な誤りが検出されると、メモリコントローラ10はリカバリ処理を行う。
図13a及び図13bは、リカバリ処理について説明するための図である。本実施形態におけるリカバリ処理には、2通りの方法がある。
第1の方法では、図13aに示すように、ヒューズ領域150から読み出された起動情報を、第1コピー領域160に再度記憶させる。第1コピー領域160に起動情報を再度記憶させることにより、第1コピー領域160内の記憶素子に電荷が再度注入され、起動情報の読み出し時のエラー発生確率を低減することができる。
第2の方法では、図13bに示すように、ヒューズ領域150から読み出された起動情報を、スペア領域170に記憶させる。また、メモリコントローラ10は、スペア領域170に関連付けられるアドレス=Bをバッファ30に記憶させる。そしてこれ以降、メモリコントローラ10は、起動情報読み出しコマンド(アドレス指定あり)を発行する時は、アドレス=Bを指定してコマンドを発行する。
次に、図14a及び図14bを参照して、リカバリ処理時のFWの制御手順を説明する。
図14aは図13aに示したリカバリ処理に対応する。
第1コピー領域160からの起動情報の読み出しが失敗すると(S300a:Yes)、CPU40はFWに基づき、NAND制御部80に指示し、ヒューズ領域150から読み出された起動情報を第1コピー領域160に再度記憶させる(S301a)。この時、NAND制御部80は、アドレス=Aをコピー先として指定する起動情報コピーコマンドを、NAND型フラッシュメモリ20に対して発行してもよい。
図14bは図13bに示したリカバリ処理に対応する。
第1コピー領域160からの起動情報の読み出しが失敗すると(S300b:Yes)、CPU40はFWに基づき、NAND制御部80に指示し、ヒューズ領域150から読み出された起動情報をスペア領域170に記憶させる(S301b)。この時、NAND制御部80は、アドレス=Bをコピー先として指定する起動情報コピーコマンドを、NAND型フラッシュメモリ20に対して発行してもよい。CPU40は、スペア領域170に関連付けられたアドレス=Bを、バッファ30に記憶させる(S302b)。
以上説明した第2の実施形態の半導体記憶装置によれば、第1コピー領域内の記憶素子の劣化が推定される時のリフレッシュ処理、また、第1コピー領域からの起動情報の読み出しが失敗した時のリカバリ処理をすることができるので、半導体記憶装置の信頼性をさらに維持することができる。
[第3の実施形態]
第1の実施形態の半導体記憶装置では、ヒューズ領域内の記憶素子の過度な劣化を防ぐことができた。第3の実施形態の半導体記憶装置では、ヒューズ領域からの起動情報の読み出し回数を、さらに低減することができる。
第1の実施形態の半導体記憶装置では、ヒューズ領域内の記憶素子の過度な劣化を防ぐことができた。第3の実施形態の半導体記憶装置では、ヒューズ領域からの起動情報の読み出し回数を、さらに低減することができる。
図15は、本実施形態のメモリ構成を説明する図である。
本実施形態のメモリコントローラ10は、第1コピー領域160及びスペア領域170に加え、NAND型フラッシュメモリ20の一部の記憶領域を、第2コピー領域180(第4の記憶領域)として管理する。第2コピー領域180は、1つの物理ブロック110で構成されるが、この構成に限定されなくてよい。
第2コピー領域180は、第1コピー領域160と同様、メモリコントローラ10の制御により、データの書き込み、読み出し、消去が可能である。第2コピー領域180は、メモリコントローラ10からアドレス=Cに関連付けられてアクセスされる。
メモリコントローラ10は、図16に示すように、ヒューズ領域150から起動情報を読み出し第1コピー領域160に記憶させた後、さらに、第1コピー領域160から起動情報を読み出し、第2コピー領域180に記憶させる。
次に、図17a及び図17bを参照して、本実施形態におけるリフレッシュ処理とリカバリ処理について説明する。
図17aは本実施形態におけるリフレッシュ処理を説明するための図である。リフレッシュパラメータがリフレッシュ閾値を超えると、メモリコントローラ10は、第2コピー領域180から起動情報を読み出し、第1コピー領域160に記憶させる。あるいは図示しないが、メモリコントローラ10は、第2コピー領域180から起動情報を読み出し、スペア領域170に記憶させてもよい。
図17bは本実施形態におけるリカバリ処理を説明するための図である。第1コピー領域160からの起動情報の読み出しが失敗すると、メモリコントローラ10は、第2コピー領域180から起動情報を読み出し、スペア領域170に記憶させる。あるいは図示しないが、メモリコントローラ10は、第2コピー領域180から起動情報を読み出し、第1コピー領域160に再度記憶させてもよい。
起動情報を第2コピー領域180から読み出すことにより、第2の実施形態(図13)の場合に比べ、ヒューズ領域150からの起動情報の読み出し回数を低減することができる。
以上説明した第3の実施形態の半導体記憶装置によれば、第2コピー領域から起動情報を読み出すことができるので、ヒューズ領域からの起動情報の読み出し回数をさらに低減することができ、半導体記憶装置の信頼性をさらに維持することができる。
以上説明した少なくとも1つの実施形態の半導体記憶装置によれば、半導体記憶装置の起動時に起動情報を取得する記憶領域を、メモリコントローラの制御により変更することができるので、ヒューズ領域内の記憶素子の過度な劣化を防ぐことができ、半導体記憶装置の信頼性を維持することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…半導体記憶装置、2…ホスト、10…メモリコントローラ、20…不揮発性半導体メモリ、30…バッファ、40…CPU、50…ホストインターフェース制御部、60…バッファ制御部、70…メモリインターフェース制御部、80…NAND制御部、90…ECC制御部、100…物理ページ、110…物理ブロック、120…クラスタ、150…ヒューズ領域150…第1コピー領域、170…スペア領域、180…第2コピー領域
Claims (16)
- 半導体記憶装置であって、
コントローラと、
データを記憶する不揮発性半導体メモリと、
データを記憶する揮発性半導体メモリと、
を具備し、
前記不揮発性半導体メモリは複数の記憶領域を含み、
前記不揮発性半導体メモリは、
前記半導体記憶装置の起動に際して前記コントローラが使用する起動情報を記憶し、
前記起動情報は、
前記不揮発性半導体メモリの製造時に前記不揮発性半導体メモリの少なくとも1つの記憶領域に記憶され、
前記コントローラは、
前記不揮発性半導体メモリの記憶領域をアドレスに関連付けて管理し、
前記コントローラは、
アドレスを指定する第1のコマンドを前記不揮発性半導体メモリに発行することにより、
前記起動情報を前記不揮発性半導体メモリから読み出す
半導体記憶装置。 - 前記起動情報は、
前記不揮発性半導体メモリの第1の記憶領域には前記不揮発性半導体メモリの製造時に記憶され、
前記不揮発性半導体メモリの第2の記憶領域には前記コントローラの制御により記憶され、
前記第1のコマンドが指定するアドレスは、
前記第2の記憶領域に関連付けられている
請求項1に記載の半導体記憶装置。 - 前記コントローラは、
前記起動情報を前記第1の記憶領域から読み出し前記第2の記憶領域に記憶させるように
前記不揮発性半導体メモリを制御する
請求項2に記載の半導体記憶装置。 - 前記半導体記憶装置は、
前記不揮発性メモリ及び前記揮発性半導体メモリの双方へ電力が供給されている第1の電力モードと、
前記不揮発性メモリに電力が供給されておらず、前記揮発性半導体メモリへ電力が供給されている第2の電力モードと、
前記不揮発性メモリ及び前記揮発性半導体メモリのいずれにも電力が供給されていない第3の電力モードとの、
いずれかの電力モードをとる
請求項3に記載の半導体記憶装置。 - 前記コントローラは、
前記半導体記憶装置が前記第1の電力モードである時に、
前記第2の記憶領域に関連付けられたアドレスを前記揮発性半導体メモリに記憶させる
請求項4に記載の半導体記憶装置。 - 前記コントローラは、
前記半導体記憶装置が前記第2の電力モードから前記第1の電力モードへ遷移する時に、
前記第2の記憶領域に関連付けられたアドレスを前記揮発性半導体メモリから取得し、
前記取得したアドレスを用いて前記第1のコマンドを発行することにより、
前記第2の記憶領域から前記起動情報を読み出す
請求項5に記載の半導体記憶装置。 - 前記コントローラは、
前記半導体記憶装置が前記第3の電力モードから前記第1の電力モードへ遷移する時に、
アドレスを指定しない第2のコマンドを前記不揮発性半導体メモリに発行することにより、
前記第1の記憶領域から前記起動情報を読み出す
請求項6に記載の半導体記憶装置。 - 前記コントローラは、
前記第2の記憶領域に係る第1のパラメータが第1の閾値を超えたことに応じて、
前記起動情報を前記第2の記憶領域から読み出し前記第2の記憶領域に再度記憶させるように前記不揮発性半導体メモリを制御する
請求項3に記載の半導体記憶装置。 - 前記コントローラは、
前記第2の記憶領域に係る第1のパラメータが第1の閾値を超えたことに応じて、
前記起動情報を前記第2の記憶領域から読み出し前記不揮発性半導体メモリの第3の記憶領域に記憶させるように前記不揮発性半導体メモリを制御する
請求項3に記載の半導体記憶装置。 - 前記コントローラは、
前記第2の記憶領域からの前記起動情報の読み出しが失敗したことに応じて、
前記起動情報を前記第1の記憶領域から読み出し前記第2の記憶領域に再度記憶させるように前記不揮発性半導体メモリを制御する
請求項3に記載の半導体記憶装置。 - 前記コントローラは、
前記第2の記憶領域からの前記起動情報の読み出しが失敗したことに応じて、
前記起動情報を前記第1の記憶領域から読み出し前記不揮発性半導体メモリの第3の記憶領域に記憶させるように前記不揮発性半導体メモリを制御する
請求項3に記載の半導体記憶装置。 - 前記コントローラは、
前記起動情報を前記第2の記憶領域から読み出し前記不揮発性半導体メモリの第4の記憶領域に記憶させるように前記不揮発性半導体メモリを制御する
請求項3に記載の半導体記憶装置。 - 前記コントローラは、
前記第2の記憶領域に係る第1のパラメータが第1の閾値を超えたことに応じて、
前記起動情報を前記第4の記憶領域から読み出し前記第2の記憶領域に再度記憶させるように前記不揮発性半導体メモリを制御する
請求項12に記載の半導体記憶装置。 - 前記コントローラは、
前記第2の記憶領域からの前記起動情報の読み出しが失敗したことに応じて、
前記起動情報を前記第4の記憶領域から読み出し前記不揮発性半導体メモリの第3の記憶領域に記憶させるように前記不揮発性半導体メモリを制御する
請求項12に記載の半導体記憶装置。 - 前記コントローラは、
前記第3の記憶領域に関連付けられたアドレスを前記揮発性半導体メモリに記憶させる
請求項9または請求項11または請求項14のいずれか1項に記載の半導体記憶装置。 - 半導体記憶装置の制御方法であって、
前記半導体記憶装置は、
コントローラと、
データを記憶する不揮発性半導体メモリと、
データを記憶する揮発性半導体メモリと、
を具備し、
前記不揮発性半導体メモリは複数の記憶領域を含み、
前記不揮発性半導体メモリは、
前記半導体記憶装置の起動に際して前記コントローラが使用する起動情報を記憶し、
前記起動情報は、
前記不揮発性半導体メモリの製造時に前記不揮発性半導体メモリの少なくとも1つの記憶領域に記憶され、
前記コントローラは、
前記不揮発性半導体メモリの記憶領域をアドレスに関連付けて管理し、
前記コントローラが、
アドレスを指定する第1のコマンドを前記不揮発性半導体メモリに発行することにより、
前記起動情報を前記不揮発性半導体メモリから読み出す
制御方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016203982A JP2018067072A (ja) | 2016-10-18 | 2016-10-18 | 半導体記憶装置及びその制御方法 |
US15/786,959 US10437490B2 (en) | 2016-10-18 | 2017-10-18 | Reading of start-up information from different memory regions of a memory system |
US16/506,475 US11042310B2 (en) | 2016-10-18 | 2019-07-09 | Reading of start-up information from different memory regions of a memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016203982A JP2018067072A (ja) | 2016-10-18 | 2016-10-18 | 半導体記憶装置及びその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018067072A true JP2018067072A (ja) | 2018-04-26 |
Family
ID=61904499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016203982A Pending JP2018067072A (ja) | 2016-10-18 | 2016-10-18 | 半導体記憶装置及びその制御方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US10437490B2 (ja) |
JP (1) | JP2018067072A (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6723863B2 (ja) * | 2016-08-01 | 2020-07-15 | オリンパス株式会社 | 組み込みシステム、撮影機器及びリフレッシュ方法 |
JP7395388B2 (ja) * | 2020-03-06 | 2023-12-11 | キオクシア株式会社 | メモリシステム及びその制御方法 |
JP2023136000A (ja) * | 2022-03-16 | 2023-09-29 | キオクシア株式会社 | メモリシステム |
US11914468B1 (en) * | 2022-08-15 | 2024-02-27 | Western Digital Technologies, Inc. | NVMe boot partition error correction code enhancement |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7594135B2 (en) * | 2003-12-31 | 2009-09-22 | Sandisk Corporation | Flash memory system startup operation |
US8817569B2 (en) | 2012-03-19 | 2014-08-26 | Sandisk Technologies Inc. | Immunity against temporary and short power drops in non-volatile memory |
JP2014154197A (ja) | 2013-02-13 | 2014-08-25 | Toshiba Corp | 不揮発性記憶装置 |
US9870148B2 (en) * | 2013-06-12 | 2018-01-16 | Nec Corporation | Configuration control system and configuration control method |
JP5744118B2 (ja) * | 2013-07-17 | 2015-07-01 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
CN105518799B (zh) | 2013-09-04 | 2018-11-02 | 东芝存储器株式会社 | 半导体存储装置 |
US10331586B2 (en) * | 2015-10-30 | 2019-06-25 | Samsung Electronics Co., Ltd. | Nonvolatile memory device for providing fast booting and system including the same |
-
2016
- 2016-10-18 JP JP2016203982A patent/JP2018067072A/ja active Pending
-
2017
- 2017-10-18 US US15/786,959 patent/US10437490B2/en active Active
-
2019
- 2019-07-09 US US16/506,475 patent/US11042310B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20190332285A1 (en) | 2019-10-31 |
US20180107413A1 (en) | 2018-04-19 |
US11042310B2 (en) | 2021-06-22 |
US10437490B2 (en) | 2019-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9189325B2 (en) | Memory system and operation method thereof | |
US9552290B2 (en) | Partial R-block recycling | |
US11042310B2 (en) | Reading of start-up information from different memory regions of a memory system | |
JP4675984B2 (ja) | メモリシステム | |
US9304685B2 (en) | Storage array system and non-transitory recording medium storing control program | |
CN111752487B (zh) | 一种数据恢复方法、装置及固态硬盘 | |
US8839072B2 (en) | Access control apparatus, storage apparatus, and method | |
JP2012203957A (ja) | メモリシステム | |
US9721669B2 (en) | Data protection method, memory control circuit unit and memory storage apparatus | |
JP2013222435A (ja) | 半導体記憶装置及びその制御方法 | |
US11467758B2 (en) | Data writing method using different programming modes based on the number of available physical erasing units, memory control circuit unit and memory storage device | |
JP2014052978A (ja) | 不揮発性半導体メモリの制御方法及びメモリシステム | |
JP4775969B2 (ja) | 不揮発性記憶装置 | |
JP2020155163A (ja) | メモリシステム及び不揮発性メモリ | |
JP2010079856A (ja) | 記憶装置およびメモリ制御方法 | |
CN111352756B (zh) | 检测存储器装置中存储的数据的错误的装置及其操作方法 | |
US8527733B2 (en) | Memory system | |
US20160011937A1 (en) | Semiconductor memory device, memory controller, and control method of memory controller | |
CN113127085A (zh) | 从nand媒体快速引导的固态存储装置 | |
TWI550625B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
JP2008251154A (ja) | 不揮発性半導体記憶装置 | |
JP4710918B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP2011018371A (ja) | メモリ記憶装置 | |
JP7030636B2 (ja) | メモリシステムおよびその制御方法 | |
JP2012037971A (ja) | メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20170531 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20170821 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20180907 |
|
RD07 | Notification of extinguishment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7427 Effective date: 20180907 |