JP2022052089A - メモリシステム及びメモリシステムの制御方法 - Google Patents
メモリシステム及びメモリシステムの制御方法 Download PDFInfo
- Publication number
- JP2022052089A JP2022052089A JP2020158268A JP2020158268A JP2022052089A JP 2022052089 A JP2022052089 A JP 2022052089A JP 2020158268 A JP2020158268 A JP 2020158268A JP 2020158268 A JP2020158268 A JP 2020158268A JP 2022052089 A JP2022052089 A JP 2022052089A
- Authority
- JP
- Japan
- Prior art keywords
- storage area
- log
- data
- page
- memory
- 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/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
- 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/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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
- 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
- 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
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)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- Memory System (AREA)
Abstract
【課題】メモリシステムの信頼性を向上する。
【解決手段】実施形態に係るメモリシステムは、不揮発性メモリとメモリコントローラとを含む。不揮発性メモリは第1及び第2記憶領域を含む。メモリコントローラは第3及び第4記憶領域を含む。メモリコントローラは、外部からパワーオフ命令を受信すると、不揮発性メモリに対して、第3記憶領域に記憶されたマスターテーブルを第1記憶領域に書き込むことを命令し、第4記憶領域に記憶された変更履歴を第2記憶領域に書き込むことを命令する。メモリコントローラは、第1システムデータと、第1スタンバイシグネチャとを含む第1スタンバイログを生成する。メモリコントローラは、不揮発性メモリに対して、第1システムデータを第2記憶領域に書き込むことを命令し、第2記憶領域に第1システムデータが書き込まれた後に、第1スタンバイシグネチャを第2記憶領域に書き込むことを命令する。
【選択図】図11
【解決手段】実施形態に係るメモリシステムは、不揮発性メモリとメモリコントローラとを含む。不揮発性メモリは第1及び第2記憶領域を含む。メモリコントローラは第3及び第4記憶領域を含む。メモリコントローラは、外部からパワーオフ命令を受信すると、不揮発性メモリに対して、第3記憶領域に記憶されたマスターテーブルを第1記憶領域に書き込むことを命令し、第4記憶領域に記憶された変更履歴を第2記憶領域に書き込むことを命令する。メモリコントローラは、第1システムデータと、第1スタンバイシグネチャとを含む第1スタンバイログを生成する。メモリコントローラは、不揮発性メモリに対して、第1システムデータを第2記憶領域に書き込むことを命令し、第2記憶領域に第1システムデータが書き込まれた後に、第1スタンバイシグネチャを第2記憶領域に書き込むことを命令する。
【選択図】図11
Description
本発明の実施形態は、メモリシステム及びメモリシステムの制御方法に関する。
データを不揮発に記憶することが可能なNAND型フラッシュメモリが知られている。
メモリシステムの信頼性を向上する。
実施形態に係るメモリシステムは、不揮発性メモリとメモリコントローラとを含む。不揮発性メモリは、第1記憶領域と、第2記憶領域とを含む。メモリコントローラは、不揮発性メモリを制御する。メモリコントローラは、第3記憶領域と、第4記憶領域とを含む。第3記憶領域は、マスターテーブルを記憶する。第4記憶領域は、マスターテーブルの変更履歴を記憶する。メモリコントローラは、外部からパワーオフ命令を受信すると、不揮発性メモリに対して、第3記憶領域に記憶されたマスターテーブルを、第1記憶領域に書き込むことを命令する。メモリコントローラは、不揮発性メモリに対して、第4記憶領域に記憶された変更履歴を、第2記憶領域に書き込むことを命令する。メモリコントローラは、パワーオフに関する第1システムデータと、変更履歴の記録が終了したことを示す第1スタンバイシグネチャとを含む第1スタンバイログを生成する。メモリコントローラは、不揮発性メモリに対して、第1スタンバイログのうち第1システムデータを、第2記憶領域に書き込むことを命令する。メモリコントローラは、第2記憶領域に第1システムデータが書き込まれた後に、不揮発性メモリに対して、第1スタンバイログのうち第1スタンバイシグネチャを、第2記憶領域に書き込むことを命令する。
以下に、実施形態について図面を参照して説明する。各実施形態は、発明の技術的思想を具体化するための装置や方法を例示している。図面は模式的又は概念的なものである。各図面の寸法及び比率等は必ずしも現実のものと同一とは限らない。本発明の技術思想は、構成要素の形状、構造、配置等によって特定されるものではない。以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付す。参照符号を構成する文字の後の数字は、同じ文字を含んだ参照符号によって参照される。また、参照符号を構成する文字の後の数字は、同様の構成を有する要素同士を区別するために使用される。同じ文字を含んだ参照符号で示される要素を相互に区別する必要がない場合、これらの要素はそれぞれ文字のみを含んだ参照符号により参照される。
[1]第1実施形態
以下に、第1実施形態について説明する。
以下に、第1実施形態について説明する。
[1-1]第1実施形態の構成
[1-1-1]メモリシステム1の構成
図1は、第1実施形態に係る情報処理システムの構成例を示すブロック図である。図1に示すように、第1実施形態に係る情報処理システムは、ホスト機器2と、メモリシステム1とを含む。ホスト機器2は、例えばパーソナルコンピュータ、携帯情報端末、またはサーバ等である。メモリシステム1は、ホスト機器2から受信した命令に基づいて、データの読み出し、データの書き込み等を行う。
[1-1-1]メモリシステム1の構成
図1は、第1実施形態に係る情報処理システムの構成例を示すブロック図である。図1に示すように、第1実施形態に係る情報処理システムは、ホスト機器2と、メモリシステム1とを含む。ホスト機器2は、例えばパーソナルコンピュータ、携帯情報端末、またはサーバ等である。メモリシステム1は、ホスト機器2から受信した命令に基づいて、データの読み出し、データの書き込み等を行う。
本実施形態に係るメモリシステム1は、記憶装置10を含む。記憶装置10は、メモリコントローラ3と不揮発性メモリ4とを含む。メモリコントローラ3は、不揮発性メモリ4を制御する。不揮発性メモリ4は、データを不揮発に記憶する。
[1-1-2]メモリコントローラ3の構成
図2は、第1実施形態に係るメモリコントローラの構成例を示すブロック図である。メモリコントローラ3は、ホストインターフェイス(ホストIF)31、RAM(Random Access memory)32、CPU(Central Processing Unit)33、ROM(Read Only Memory)34、ECC回路(ECC)35、及びNANDインターフェイス(NANDIF)36を含む。
図2は、第1実施形態に係るメモリコントローラの構成例を示すブロック図である。メモリコントローラ3は、ホストインターフェイス(ホストIF)31、RAM(Random Access memory)32、CPU(Central Processing Unit)33、ROM(Read Only Memory)34、ECC回路(ECC)35、及びNANDインターフェイス(NANDIF)36を含む。
ホストIF31は、メモリシステム1の外部の情報処理装置であるホスト機器2と接続されるハードウェアインターフェイスである。ホストIF31は、ホスト機器2との通信を行う。ホストIF31は、例えばSATA(Serial Advanced Technology Attachment)、SAS(Serial Attached SCSI)、PCIe(PCI Express)(登録商標)等の通信インターフェイス規格をサポートし得る。
RAM32は、揮発性メモリである。RAM32は、例えばDRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)である。RAM32は、CPU33の作業領域として使用される。RAM32は、例えば、ファームウェアや管理テーブルを記憶する。
CPU33は、プロセッサである。CPU33は、メモリコントローラ3全体の動作を制御する。
ROM34は、不揮発性メモリである。ROM34は、例えば、EEPROMTM(Electrically Erasable Programmable Read-Only Memory)である。ROM34は、例えば、ファームウェア等のプログラムを記憶する。
ECC回路35は、ECC(Error Checking and Correcting)処理を実行する回路である。ECC回路35は、書き込み動作において、受信した書き込みデータに基づいてパリティを生成し、生成したパリティを書き込みデータに付与する。ECC回路35は、読み出し動作において、受信した読み出しデータに基づいてシンドロームを生成し、生成したシンドロームに基づいて読み出しデータのエラーを検出し、また、読み出しデータのエラーを訂正する。ECC回路35は、ページPA内でデータのエラー訂正処理を実行するインナーページECC動作と、複数のページPA間でデータのエラー訂正処理を実行するインターページECC動作とを実行することが出来る。インナーページECC動作では、ECC回路35がページPA毎にパリティを生成し、データとパリティとの組がページ毎に記憶される。インターページECC動作では、ECC回路35が、複数のページPAを用いてパリティを生成し、パリティが複数のページPAの次のページPAに記憶される。
NANDIF36は、不揮発性メモリ4と接続されるハードウェアインターフェイスである。NANDIF36は、NANDインターフェイス規格をサポートしている。NANDIF36は、8つのチャネルCH0~CH7を含む。複数のチャネルのそれぞれは、並列に動作することが出来る。
[1-1-3]不揮発性メモリ4の構成
図3は、第1実施形態に係る不揮発性メモリの構成例を示すブロック図である。不揮発性メモリ4は、例えば、NAND型のフラッシュメモリである。不揮発性メモリ4は、メモリコントローラ3のNANDIF36と接続される。不揮発性メモリ4は、複数のNANDチップNC1~NC16を含む。
図3は、第1実施形態に係る不揮発性メモリの構成例を示すブロック図である。不揮発性メモリ4は、例えば、NAND型のフラッシュメモリである。不揮発性メモリ4は、メモリコントローラ3のNANDIF36と接続される。不揮発性メモリ4は、複数のNANDチップNC1~NC16を含む。
複数のNANDチップNCのうち2つが、1つのチャネルに接続される。具体的には、チャネルCH0にはNANDチップNC1及びNC2が接続される。チャネルCH1には、NANDチップNC3及びNC4が接続される。チャネルCH2には、NANDチップNC5及びNC6が接続される。チャネルCH3には、NANDチップNC7及びNC8が接続される。チャネルCH4には、NANDチップNC9及びNC10が接続される。チャネルCH5には、NANDチップNC11及びNC12が接続される。チャネルCH6には、NANDチップNC13及びNC14が接続される。チャネルCH7には、NANDチップNC15及びNC16が接続される。
1つのチャネルに接続された2つのNANDチップNCは、バンクBK0に属するチップとバンクBK1に属するチップとに区別される。具体的には、NANDチップNC1、NC3、NC5、NC7、NC9、NC11、NC13及びNC15は、バンクBK0に属する。NANDチップNC2、NC4、NC6、NC8、NC10、NC12、NC14及びNC16はバンクBK1に属する。
1つのチャネルに接続された2つのNANDチップNCは、一部の信号配線を共有している。そして、1つのチャネルに接続された2つのNANDチップNCは、例えばバンクインターリーブ動作によって並列に動作することが出来る。
[1-1-4]NANDチップNCの構成
図4は、第1実施形態に係るNANDチップNCの構成例を示すブロック図である。NANDチップNCは、プレーンPL0と、プレーンPL1とを含む。プレーンPL0とプレーンPL1とは、並列に動作することが出来る。プレーンPL0及びプレーンPL1それぞれは、複数のブロックBLKを含む。ブロックBLKは、NANDチップNCにおけるデータ消去の最小単位である。ブロックBLKは、複数のページ、例えば、ページPA0~ページPA63を含む。ページPAは、NANDチップNCにおけるデータ書き込み又はデータ読み出しの単位である。ページPAは、複数のメモリセルを含む。不揮発性メモリ4は、例えばメモリセルの閾値電圧に応じてデータを記憶する。
図4は、第1実施形態に係るNANDチップNCの構成例を示すブロック図である。NANDチップNCは、プレーンPL0と、プレーンPL1とを含む。プレーンPL0とプレーンPL1とは、並列に動作することが出来る。プレーンPL0及びプレーンPL1それぞれは、複数のブロックBLKを含む。ブロックBLKは、NANDチップNCにおけるデータ消去の最小単位である。ブロックBLKは、複数のページ、例えば、ページPA0~ページPA63を含む。ページPAは、NANDチップNCにおけるデータ書き込み又はデータ読み出しの単位である。ページPAは、複数のメモリセルを含む。不揮発性メモリ4は、例えばメモリセルの閾値電圧に応じてデータを記憶する。
[1-1-5]論理ブロックLBLKの構成
図5は、第1実施形態に係るメモリシステムにおける論理ブロックLBLKの構成例を示す概念図である。図5では、互いに交差するX軸、Y軸及びZ軸に沿って形成された立体によって、1つの論理ブロックLBLKが模式的に表現されている。図5において、X軸はプレーンPL0のバンクBK0及びBK1とプレーンPL1のバンクBK0及びBK1に対応している。Y軸は、チャネルCH0~チャネルCH7に対応している。Z軸は、ページPA0~ページPA63に対応している。
図5は、第1実施形態に係るメモリシステムにおける論理ブロックLBLKの構成例を示す概念図である。図5では、互いに交差するX軸、Y軸及びZ軸に沿って形成された立体によって、1つの論理ブロックLBLKが模式的に表現されている。図5において、X軸はプレーンPL0のバンクBK0及びBK1とプレーンPL1のバンクBK0及びBK1に対応している。Y軸は、チャネルCH0~チャネルCH7に対応している。Z軸は、ページPA0~ページPA63に対応している。
1つの論理ブロックLBLKは、2つのバンクBK0及びBK1を含む。1つのバンクBKは、2つのプレーンPL0及びPL1を含む。1つのプレーンPLは、複数のブロックBLKを含む。1つのブロックBLKは複数のページPA0~PA63を含む。複数のページPA0~PA63の集合を、それぞれ論理ページLPA0~LPA63と呼ぶ。1つの論理ページLPAは、例えば32個のページPAを含んでいる。論理ページLPAに含まれる32個のページPAは、一度に書き込み又は読み出しされ得る。チャネル数、バンク数、プレーン数等は適宜変更され得る。論理ブロックLBLKが含むブロック数、論理ページLPAが含むページ数は適宜変更され得る。
[1-1-6]RAM32の記憶領域の構成
図6は、第1実施形態に係るRAM32の記憶領域の一例を示すブロック図である。RAM32は、キャッシュ領域301、マスターテーブル領域302、及びRAMログ領域303を含む。
図6は、第1実施形態に係るRAM32の記憶領域の一例を示すブロック図である。RAM32は、キャッシュ領域301、マスターテーブル領域302、及びRAMログ領域303を含む。
キャッシュ領域301は、外部から受信したデータ又は不揮発性メモリ4から読み出されたデータを一時的に記憶する領域である。マスターテーブル領域302は、マスターテーブルを記憶する領域である。マスターテーブルは、不揮発性メモリ4の記憶領域の管理に使用される情報を含むテーブルである。マスターテーブルは、論物変換テーブル、未使用ブロックを管理するテーブル等の、各種管理テーブルを含む。RAMログ領域303は、差分ログを記憶する領域である。差分ログは、マスターテーブルの変更履歴を含む。
[1-1-7]不揮発性メモリ4の記憶領域の構成
図7は、第1実施形態に係る不揮発性メモリ4の記憶領域の一例を示すブロック図である。不揮発性メモリ4は、ユーザーデータ領域401、NAND管理テーブル領域402、及びNANDログ領域403を含む。
図7は、第1実施形態に係る不揮発性メモリ4の記憶領域の一例を示すブロック図である。不揮発性メモリ4は、ユーザーデータ領域401、NAND管理テーブル領域402、及びNANDログ領域403を含む。
ユーザーデータ領域401は、ユーザーデータを記憶する領域である。ユーザーデータは、例えば、メモリシステム1がホスト機器2から受信したデータである。NAND管理テーブル領域402とNANDログ領域403とは、システムデータ等を記憶する領域である。システムデータは、マスターテーブルの写し、又はマスターテーブルに関連するデータである。NAND管理テーブル領域402は、マスターテーブルの写しを記憶する。NANDログ領域403は、差分ログを記憶する。
図8は、第1実施形態に係る不揮発性メモリ4の備えるNANDログ領域403に記憶されるシステムデータの一例を示すブロック図である。NANDログ領域403は、例えば、複数のログセットLSを記憶する。
ログセットLSは、NANDログ領域403に書き込まれるデータセットである。ログセットLSは、メモリシステム1がホスト機器2からの命令に基づく動作を実行した際に生成される。ログセットLSは、例えば、アクティブログALと、動作ログOLと、スタンバイログSLとを含む。アクティブログALは、ログセットLSの先頭に配置される。スタンバイログSLは、ログセットLSの末尾に配置される。動作ログOLは、ログセットLS内で、アクティブログALとスタンバイログSLとの間に配置される。
アクティブログALは、アクティブシグネチャA_SIGと、アクティブログALの書き込みに関する様々なシステムデータとを含む。アクティブログALのシステムデータは、差分ログを含んでいても良い。アクティブシグネチャA_SIGは、メモリシステム1が差分ログの記録を開始したことを示す識別子である。アクティブシグネチャA_SIGは、例えば、アクティブログALが記憶された複数のページPA内で、先頭のページPAに記憶される。
動作ログOLは、差分ログを含む。ログセットLSに含まれた動作ログOLの数は、メモリシステム1が差分ログの記録を開始してから実行した動作の数及び種類に応じて変わり得る。差分ログの記録が開始されてから差分ログの生成を伴う動作が実行されなかった場合には、ログセットLSは、動作ログOLを含まない。
スタンバイログSLは、スタンバイシグネチャS_SIGと、スタンバイログの書き込みに関する様々なシステムデータとを含む。スタンバイログSLのシステムデータは、差分ログを含んでいても良い。スタンバイシグネチャS_SIGは、メモリシステム1が差分ログの記録を終了したことを示す識別子である。スタンバイシグネチャS_SIGは、例えば、スタンバイログSLが記憶された複数のページPA内で、末尾のページPAに配置される。
[1-2]第1実施形態の動作
第1実施形態に係るメモリシステム1の動作について説明する。尚、メモリコントローラ3の低消費電力な状態とは、メモリコントローラ3内の一部の回路への電力の供給が制限された状態である。
第1実施形態に係るメモリシステム1の動作について説明する。尚、メモリコントローラ3の低消費電力な状態とは、メモリコントローラ3内の一部の回路への電力の供給が制限された状態である。
[1-2-1]パワーオンシーケンス
図9は、第1実施形態に係るメモリコントローラ3のパワーオンシーケンスの一例を示すフローチャートである。パワーオンシーケンスは、メモリシステム1の起動に関する一連の動作である。
図9は、第1実施形態に係るメモリコントローラ3のパワーオンシーケンスの一例を示すフローチャートである。パワーオンシーケンスは、メモリシステム1の起動に関する一連の動作である。
メモリコントローラ3は、外部からパワーオン命令を受信すると(開始)、不揮発性メモリ4のNAND管理テーブル領域402に記憶されたデータを読み出して、読み出したデータをマスターテーブル領域302に記憶させる(S10)。これにより、NAND管理テーブル領域402に記憶されたマスターテーブルの写しが、マスターテーブル領域302に記憶される。
次に、メモリコントローラ3は、不揮発性メモリ4のNANDログ領域403に記憶されているデータを読み出して、読み出したデータをRAMログ領域303に記憶させる(S11)。これにより、複数のログセットLSが、RAMログ領域303に記憶される。
次に、メモリコントローラ3は、RAMログ領域303に記憶された複数のログセットLSから、NANDログ領域403に最後に書き込まれたログセットLS、すなわちNANDログ領域403に記憶されたタイミングが最も遅いログセットLSを探索する(S12)。
次に、メモリコントローラ3は、NANDログ領域403に最後に書き込まれたログセットLSに、スタンバイシグネチャS_SIGが含まれているか否かを確認する(S13)。
最後に書き込まれたログセットLSにスタンバイシグネチャS_SIGが含まれている場合(S13、YES)、メモリコントローラ3はパワーオンシーケンスを終了する(終了)。
最後に書き込まれたログセットLSにスタンバイシグネチャS_SIGが含まれていない場合(S13、NO)、メモリコントローラ3は、NANDログ領域403に記憶されたデータのリフレッシュ動作を実行する(S14)。リフレッシュ動作は、指定されたブロックBLKに記憶されたデータを読み出して、ブロックBLKから読み出したデータを他の未書き込みのブロックBLKに書き込む動作である。未書き込みのブロックBLKは、消去状態のブロックBLKと言い換えられても良い。
リフレッシュ動作が完了すると、メモリコントローラ3はパワーオンシーケンスを終了する(終了)。
[1-2-2]ログ記録動作
図10は、第1実施形態に係るメモリシステム1のログ記録動作の一例を示すフローチャートである。ログ記録動作は、メモリシステム1の動作に応じて差分ログを生成し、生成した差分ログをNANDログ領域403に記憶させる動作である。
図10は、第1実施形態に係るメモリシステム1のログ記録動作の一例を示すフローチャートである。ログ記録動作は、メモリシステム1の動作に応じて差分ログを生成し、生成した差分ログをNANDログ領域403に記憶させる動作である。
命令を外部から受信すると(開始)、メモリコントローラ3は、不揮発性メモリ4へのアクセスを伴う命令を受信したか否かを確認する(S20)。
不揮発性メモリ4へのアクセスを伴う命令を受信していない場合(S20、NO)、メモリコントローラ3は、図10の一連の処理を終了する(終了)。
不揮発性メモリ4へのアクセスを伴う命令を受信した場合(S20、YES)、メモリコントローラ3は、アクティブログALを生成して、生成したアクティブログALをNANDログ領域403に記憶させる(S21)。
次に、メモリコントローラ3は、受信した命令に基づいた動作を実行する(S22)。
次に、メモリコントローラ3は、実行した動作に基づいて動作ログOLを生成し、生成した動作ログOLをRAMログ領域303に記憶させる(S23)。
次に、メモリコントローラ3は、RAMログ領域303に記憶されている動作ログOLをNANDログ領域403に記憶させる(S24)。尚、S22とS23とS24とは並列に実行されても良い。
S24の後、メモリコントローラ3は、次の命令を受信するまで待機する(S25)。
次に、メモリコントローラ3は、受信した命令の種類を確認する(S26)。
受信した命令が不揮発性メモリ4へのアクセスを伴う命令である場合(S26、アクセス)、メモリコントローラ3は、S22の処理に進む。
受信した命令がスタンバイ命令である場合(S26、スタンバイ)、メモリコントローラ3は、スタンバイログSLを生成して、生成したスタンバイログSLをNANDログ領域403に記憶させる(S27)。メモリコントローラ3は、その後、図10の一連の処理を終了する(終了)。
[1-2-3]パワーオフシーケンス
図11は、第1実施形態に係るメモリシステム1のパワーオフシーケンスの一例を示すフローチャートである。パワーオフシーケンスは、メモリシステム1のパワーオフ(シャットダウン)に関する一連の動作である。
図11は、第1実施形態に係るメモリシステム1のパワーオフシーケンスの一例を示すフローチャートである。パワーオフシーケンスは、メモリシステム1のパワーオフ(シャットダウン)に関する一連の動作である。
外部からパワーオフ命令を受信すると(開始)、メモリコントローラ3は、アクティブログALを生成して、生成したアクティブログALをNANDログ領域403に記憶させる(S30)。
次に、メモリコントローラ3は、パワーオフに関連付けられた動作を実行する(S31)。パワーオフに関連付けられた動作は、例えばマスターテーブル領域302に記憶されたマスターテーブルをNAND管理テーブル領域402に記憶させる動作である。
次に、メモリコントローラ3は、パワーオフに関連付けられた動作の動作ログOLを生成する(S32)。
次に、メモリコントローラ3は、生成した動作ログOLをRAMログ領域303に記憶させる(S33)。
次に、メモリコントローラ3は、生成した動作ログOLをNANDログ領域403に記憶させる(S34)。尚、メモリコントローラ3は、S31の処理と、S32~S34の処理とを、並列に実行しても良い。
次に、メモリコントローラ3は、スタンバイログSLを生成し、生成したスタンバイログSLのうちスタンバイシグネチャS_SIGを除くデータをNANDログ領域403に記憶させる(S35)。
次に、メモリコントローラ3は、ダミーデータDUMを生成し、生成したダミーデータDUMと生成したスタンバイログSLのうちスタンバイシグネチャS_SIGとをNANDログ領域403に記憶させる(S36)。ダミーデータDUMは、無効なデータである。ダミーデータDUMは、スタンバイシグネチャS_SIGと同じページPGに記憶される。
次に、メモリコントローラ3は、パワーオフシーケンスの完了をホスト機器2に通知する(S37)。その後、メモリコントローラ3は、図11の一連の処理を終了する(終了)。
[1-2-4]スタンバイログSLの書き込み動作
ログ記録動作におけるスタンバイログSLの書き込み動作と、パワーオフシーケンスにおけるスタンバイログSLの書き込み動作とのそれぞれの具体例について説明する。
ログ記録動作におけるスタンバイログSLの書き込み動作と、パワーオフシーケンスにおけるスタンバイログSLの書き込み動作とのそれぞれの具体例について説明する。
(ログ記録動作におけるスタンバイログSLの書き込み動作)
図12は、第1実施形態に係るメモリシステム1のログ記録動作におけるスタンバイログSLの書き込み動作により記憶されるデータの一例を示すブロック図である。時間軸に沿って並んだT101~T103のそれぞれは、ある時刻を示している。各時刻の右に並ぶ複数のブロックは、その時刻におけるNANDログ領域403の複数のページを示している。図示されたNANDログ領域403の複数のページを、左から順にページPG1~PG12と呼ぶ。また、図示された“DAT”は、システムデータを示している。図示された“A_SIG”は、アクティブシグネチャA_SIGを示している。図示された“S_SIG”は、スタンバイシグネチャS_SIGを示している。図示された“PRT”は、インターページECCで使用されるパリティを示している。ページPAにデータの書き込みが実行されている場合、矢印記号がブロックに付与される。
図12は、第1実施形態に係るメモリシステム1のログ記録動作におけるスタンバイログSLの書き込み動作により記憶されるデータの一例を示すブロック図である。時間軸に沿って並んだT101~T103のそれぞれは、ある時刻を示している。各時刻の右に並ぶ複数のブロックは、その時刻におけるNANDログ領域403の複数のページを示している。図示されたNANDログ領域403の複数のページを、左から順にページPG1~PG12と呼ぶ。また、図示された“DAT”は、システムデータを示している。図示された“A_SIG”は、アクティブシグネチャA_SIGを示している。図示された“S_SIG”は、スタンバイシグネチャS_SIGを示している。図示された“PRT”は、インターページECCで使用されるパリティを示している。ページPAにデータの書き込みが実行されている場合、矢印記号がブロックに付与される。
時刻T101において、ページPG1は、アクティブログALのシステムデータDATと、アクティブシグネチャA_SIGとを記憶している。時刻T101において、ページPG2は、アクティブログALのシステムデータDATを記憶している。時刻T101において、ページPG3は、ページPG1及びPG2に記憶されたデータに基づいて生成されたパリティPRTを記憶している。時刻T101において、ページPG4は、動作ログOLのシステムデータDATを記憶している。ページPG5は、動作ログOLのシステムデータDATを記憶している。時刻T101において、ページPG6は、動作ログOLの書き込み動作時に生成されたパリティPRTを記憶している。時刻T101において、ページPG7~PG12のそれぞれは、未書き込み状態である。
時刻T102は、ログ記録動作におけるスタンバイログSLの書き込み動作(S24)が開始されるタイミングである。例えば、時刻T102において、メモリコントローラ3が、ページPG7~PG9に対して、書き込み動作を実行する。時刻T101における、ページPG7に対する書き込みデータは、スタンバイログSLのシステムデータDATを含む。時刻T101における、ページPG8に対する書き込みデータは、スタンバイログSLのシステムデータDATと、スタンバイシグネチャS_SIGとを含む。時刻T101における、ページPG9に対する書き込みデータは、ページPG7及びPG8に記憶されたデータに基づいて生成されたパリティPRTを含む。
時刻T103は、ページPG7~PG9に対する書き込み動作が完了したタイミングである。時刻T103において、時刻T102から開始された書き込み動作(S24)が完了する。
(パワーオフシーケンスにおけるスタンバイログSLの書き込み動作)
図13は、第1実施形態に係るメモリシステム1のパワーオフシーケンスにおけるスタンバイログSLの書き込み動作により記憶されるデータの一例を示すブロック図である。時間軸に沿って並んだT111~T115のそれぞれは、ある時刻を示している。各時刻の右に並ぶ複数のブロックは、その時刻におけるNANDログ領域403の複数のページを示している。図示されたNANDログ領域403の複数のページを、左から順にページPG1~PG12と呼ぶ。また、図示された“DAT”は、システムデータを示している。図示された“DUM”は、ダミーデータを示している。図示された“A_SIG”は、アクティブシグネチャA_SIGを示している。図示された“S_SIG”は、スタンバイシグネチャS_SIGを示している。図示された“PRT”は、インターページECCで使用されるパリティを示している。ページPAにデータの書き込みが実行されている場合、矢印記号がブロックに付与される。
図13は、第1実施形態に係るメモリシステム1のパワーオフシーケンスにおけるスタンバイログSLの書き込み動作により記憶されるデータの一例を示すブロック図である。時間軸に沿って並んだT111~T115のそれぞれは、ある時刻を示している。各時刻の右に並ぶ複数のブロックは、その時刻におけるNANDログ領域403の複数のページを示している。図示されたNANDログ領域403の複数のページを、左から順にページPG1~PG12と呼ぶ。また、図示された“DAT”は、システムデータを示している。図示された“DUM”は、ダミーデータを示している。図示された“A_SIG”は、アクティブシグネチャA_SIGを示している。図示された“S_SIG”は、スタンバイシグネチャS_SIGを示している。図示された“PRT”は、インターページECCで使用されるパリティを示している。ページPAにデータの書き込みが実行されている場合、矢印記号がブロックに付与される。
時刻T111において、ページPG1は、アクティブログALのシステムデータDATと、アクティブシグネチャA_SIGとを記憶している。時刻T111において、ページPG2は、アクティブログALのシステムデータDATを記憶している。時刻T111において、ページPG3は、ページPG1及びPG2に記憶されたデータに基づいて生成されたパリティPRTを記憶している。時刻T111において、ページPG4は、動作ログOLのシステムデータDATを記憶している。時刻T111において、ページPG5は、動作ログOLのシステムデータDATを記憶している。ページPG6は、ページPG4及びPG5に記憶されたデータに基づいて生成されたパリティPRTを記憶している。時刻T111において、ページPG7~PG12のそれぞれは、未書き込み状態である。
時刻T112は、パワーオフシーケンスにおけるスタンバイログSLのシステムデータDATの書き込み動作(S33)が開始されるタイミングである。例えば、時刻T112において、メモリコントローラ3が、ページPG7~PG9に対して、スタンバイログSLのシステムデータDATの書き込み動作を実行する。時刻T112における、ページPG7及びPG8に対する書き込みデータは、スタンバイログSLのシステムデータDATを含む。時刻T112における、ページPG9に対する書き込みデータは、ページPG7及びPG8に対する書き込みデータに基づいて生成されたパリティPRTを含む。
時刻T113は、パワーオフシーケンスにおけるスタンバイログSLのシステムデータDATの書き込み動作(S33)が完了したタイミングである。時刻T113において、時刻T112から開始された書き込み動作が完了する。
時刻T114は、パワーオフシーケンスにおけるスタンバイシグネチャS_SIGの書き込み動作(S34)が開始されるタイミングである。例えば、時刻T114において、メモリコントローラ3が、ページPG10及びPG11に対して、書き込み動作を実行する。時刻T114における、ページPG10に対する書き込みデータは、スタンバイシグネチャS_SIGと、ダミーデータDUMとを含み、スタンバイログSLのシステムデータDATを含まない。時刻T114における、ページPG10に対する書き込みデータは、ページPG9に対する書き込みデータに基づいて生成されたパリティPRTを含む。
時刻T115は、ページPG10及びPG11に対する書き込み動作が完了したタイミングである。時刻T115において、時刻T114から開始された書き込み動作(S34)が完了する。
時刻T115の後に、メモリシステム1がシャットダウンする。
続けて、第1実施形態に係るメモリシステム1のパワーオフシーケンスの途中で異常な電源断が発生した場合の動作について説明する。
図14は、第1実施形態に係るメモリシステム1のパワーオフシーケンスにおけるスタンバイログSLの書き込み動作により記憶されるデータの一例を示すブロック図である。時間軸に沿って並んだT121~T125のそれぞれは、ある時刻を示している。各時刻の右に並ぶ複数のブロックは、その時刻におけるNANDログ領域403の複数のページを示している。図示されたNANDログ領域403の複数のページを、左から順にページPG1~PG12と呼ぶ。また、図示された“DAT”は、システムデータを示している。図示された“DUM”は、ダミーデータを示している。図示された“A_SIG”は、アクティブシグネチャA_SIGを示している。図示された“S_SIG”は、スタンバイシグネチャS_SIGを示している。図示された“PRT”は、インターページECCで使用されるパリティを示している。ページPAにデータの書き込みが実行されている場合、矢印記号がブロックに付与される。図示されたブロック内の斜線は、ブロックに対応するページに書き込まれたデータの信頼性が低下していることを示している。
時刻T121において、ページPG1は、アクティブログALのシステムデータDATと、アクティブシグネチャA_SIGとを記憶している。時刻T121において、ページPG2は、アクティブログALのシステムデータDATを記憶している。時刻T121において、ページPG3は、ページPG1及びPG2に記憶されたデータに基づいて生成されたパリティPRTを記憶している。時刻T121において、ページPG4は、動作ログOLのシステムデータDATを記憶している。時刻T121において、ページPG5は、動作ログOLのシステムデータDATを記憶している。ページPG6は、ページPG4及びPG5に記憶されたデータに基づいて生成されたパリティPRTを記憶している。時刻T121において、ページPG7~PG12のそれぞれは、未書き込み状態である。
時刻T122は、パワーオフシーケンスにおけるスタンバイログSLのシステムデータDATの書き込み動作(S33)が開始されるタイミングである。例えば、時刻T122において、メモリコントローラ3が、ページPG7~PG9に対して、書き込み動作を実行する。時刻T122における、ページPG7及びPG8に対する書き込みデータは、スタンバイログSLのシステムデータDATを含む。時刻T122における、ページPG9に対する書き込みデータは、ページPG7及びPG8に対する書き込みデータに基づいて生成されたパリティPRTを含む。
時刻T123は、ページPG7~PG9に対する書き込み動作が完了したタイミングである。時刻T123において、時刻T122から開始された書き込み動作(S33)が完了する。
時刻T124は、パワーオフシーケンスにおけるスタンバイシグネチャS_SIGの書き込み動作(S34)が開始されるタイミングである。例えば、時刻T124において、メモリコントローラ3が、ページPG10及びPG11に対して、書き込み動作を実行する。時刻T124における、ページPG10に対する書き込みデータは、スタンバイシグネチャS_SIGと、ダミーデータDUMとを含む。時刻T124における、ページPG11に対する書き込みデータは、ページPG10に対する書き込みデータに基づいて生成されたパリティPRTを含む。
時刻T125は、時刻T124に開始した書き込み動作が、例えば異常な電源断により中断されたタイミングである。ページPG10及びPG11は、書き込み動作が中断されたタイミングに応じて、未書き込み状態や、書き込まれたデータの信頼性が低下した状態になり得る。言い換えると、メモリシステム1のパワーオフシーケンス中に異常な電源断が発生すると、最後に書き込まれたログセットLSのスタンバイシグネチャS_SIGが、読み出せない、若しくは信頼性が低下した状態になり得る。また、異常な電源断により信頼性が低下したページPAは、時間の経過と共にエラービットが増加し易い傾向を有する。このようなページPAが存在すると、時間の経過と共にインターページECCの訂正能力が低下し、システムデータのエラー訂正が困難になるおそれがある。
[1-3]第1実施形態の効果
第1実施形態に係るメモリシステム1は、パワーオフシーケンス時に、スタンバイログSLのシステムデータと、スタンバイシグネチャS_SIGとを異なるタイミングで書き込む。また、メモリシステム1は、スタンバイシグネチャS_SIGを書き込むページPAの空き部分に、無効なデータ(ダミーデータDUM)を書き込む。
第1実施形態に係るメモリシステム1は、パワーオフシーケンス時に、スタンバイログSLのシステムデータと、スタンバイシグネチャS_SIGとを異なるタイミングで書き込む。また、メモリシステム1は、スタンバイシグネチャS_SIGを書き込むページPAの空き部分に、無効なデータ(ダミーデータDUM)を書き込む。
これにより、パワーオフシーケンス中に異常な電源断が発生して、最後に書き込まれたログセットLSのスタンバイシグネチャS_SIGの読み出しが困難になったとしても、スタンバイログSLのシステムデータの信頼性が保たれる。従って、第1実施形態に係るメモリシステム1は、パワーオフシーケンス中の異常な電源断によるシステムデータ消失のリスクを抑制することが出来る。
また、第1実施形態に係るメモリシステム1は、最後に書き込まれたログセットLSのスタンバイシグネチャS_SIGが読み出せなくなった場合に、NANDログ領域403に記憶されたログセットLSのリフレッシュ動作を実行する。メモリシステム1は、リフレッシュ動作を実行することによって、信頼性が低くなっていると予想されるログセットLSを、信頼性の高い状態でNANDログ領域403に再度記憶させることが出来る。その結果、第1実施形態に係るメモリシステム1は、NANDログ領域403に記憶されたログセットLSの信頼性を維持することが出来る。
また、第1実施形態に係るメモリシステム1では、スタンバイシグネチャS_SIGの書き込み動作において、書き込みが実行されるページ数が、例えば、スタンバイシグネチャS_SIG及びダミーデータDUMを含むページと、インターページECCのパリティを含むページとの2ページに抑制される。つまり、スタンバイシグネチャS_SIGが書き込まれたページのエラービット数が時間の経過と共に増加した場合にも、信頼性が低下したページ数が2ページに抑制される。
このように、第1実施形態に係るメモリシステム1は、スタンバイシグネチャS_SIGの書き込み動作において、信頼性が低下し得るページ数を抑制することが出来る。その結果、メモリコントローラ3は、インターページECC処理の対象である複数ページに含まれたエラービット数を抑制することが出来、インターページECC処理のエラー訂正能力の低下を抑制することが出来る。従って、第1実施形態に係るメモリシステム1は、システムデータ消失のリスクを抑制することが出来る。
[2]第2実施形態
第2実施形態に係るメモリシステム1は、第1実施形態に係るメモリシステム1と同様のハードウェア構成を有する。第2実施形態は、アクティブログALの書き込み動作に関する。
第2実施形態に係るメモリシステム1は、第1実施形態に係るメモリシステム1と同様のハードウェア構成を有する。第2実施形態は、アクティブログALの書き込み動作に関する。
[2-1]アクティブログALの書き込み動作
図15は、第2実施形態に係るメモリシステム1におけるアクティブログALの書き込み動作の一例を示すフローチャートである。
図15は、第2実施形態に係るメモリシステム1におけるアクティブログALの書き込み動作の一例を示すフローチャートである。
図10に示されたS20においてメモリコントローラ3が不揮発性メモリ4へのアクセスを伴う命令を受信すると(開始)、パワーオンシーケンスの後にアクティブログALが書き込まれた回数が0回であるか否かを確認する(S40)。尚、アクティブログALが書き込まれた回数は、ログセットLSが書き込まれた回数と言い換えられても良い。
パワーオンシーケンスの後にアクティブログALが書き込まれた回数が0回である場合(S40、YES)、メモリコントローラ3が、図9に示されたパワーオンシーケンスでS14を実行したか否かを確認する(S41)。
パワーオンシーケンスでS14を実行していない場合(S41、NO)、メモリコントローラ3は、ダミーデータDUMを生成し、生成したダミーデータDUMをNANDログ領域403に記憶させる(S42)。
次に、メモリコントローラ3は、アクティブログALを生成して、生成したアクティブログALをNANDログ領域403に記憶させる(S43)。メモリコントローラ3は、その後、図15の一連の処理を終了して、図10に示されたS22に移行する。
パワーオンシーケンスの後にアクティブログALが書き込まれた回数が0回でない場合(S40、NO)、メモリコントローラ3は、アクティブログALを生成して、生成したアクティブログALをNANDログ領域403に記憶させる(S43)。メモリコントローラ3は、その後、図15の一連の処理を終了して、図10に示されたS22に移行する。
パワーオンシーケンスでS14を実行した場合(S41、YES)、メモリコントローラ3は、アクティブログALを生成して、生成したアクティブログALをNANDログ領域403に記憶させる(S43)。メモリコントローラ3は、その後、図15の一連の処理を終了して、図10に示されたS22に移行する。
(2回目以降のアクティブログALの書き込み動作)
図16は、第2実施形態に係るメモリシステム1における2回目以降のアクティブログALの書き込み動作により記憶されるデータの一例を示すブロック図である。2回目以降のアクティブログALの書き込み動作は、2回目以降のアクティブログALの書き込み動作は、パワーオンシーケンスの後の2回目以降のアクティブログALの書き込み動作である。時間軸に沿って並んだT201~T203のそれぞれは、ある時刻を示している。各時刻の右に並ぶ複数のブロックは、その時刻におけるNANDログ領域403の複数のページを示している。図示されたNANDログ領域403の複数のページを、左から順にページPG1~PG12と呼ぶ。また、図示された“DAT”は、システムデータを示している。図示された“A_SIG”は、アクティブシグネチャA_SIGを示している。図示された“S_SIG”は、スタンバイシグネチャS_SIGを示している。図示された“PRT”は、インターページECCで使用されるパリティを示している。ページPAにデータの書き込みが実行されている場合、矢印記号がブロックに付与される。
図16は、第2実施形態に係るメモリシステム1における2回目以降のアクティブログALの書き込み動作により記憶されるデータの一例を示すブロック図である。2回目以降のアクティブログALの書き込み動作は、2回目以降のアクティブログALの書き込み動作は、パワーオンシーケンスの後の2回目以降のアクティブログALの書き込み動作である。時間軸に沿って並んだT201~T203のそれぞれは、ある時刻を示している。各時刻の右に並ぶ複数のブロックは、その時刻におけるNANDログ領域403の複数のページを示している。図示されたNANDログ領域403の複数のページを、左から順にページPG1~PG12と呼ぶ。また、図示された“DAT”は、システムデータを示している。図示された“A_SIG”は、アクティブシグネチャA_SIGを示している。図示された“S_SIG”は、スタンバイシグネチャS_SIGを示している。図示された“PRT”は、インターページECCで使用されるパリティを示している。ページPAにデータの書き込みが実行されている場合、矢印記号がブロックに付与される。
時刻T201において、ページPG1は、スタンバイログSLのシステムデータDATと、スタンバイシグネチャS_SIGとを記憶している。時刻T201において、ページPG2は、スタンバイログSLのシステムデータDATを記憶している。時刻T201において、ページPG3は、ページPG1及びPG2に記憶されたデータに基づいて生成されたパリティPRTを記憶している。時刻T201において、ページPG4~PG12のそれぞれは、未書き込み状態である。
時刻T202は、ログ記録動作の開始後に、2回目以降のアクティブログALの書き込み動作(S43)が開始されるタイミングである。例えば、時刻T202において、メモリコントローラ3が、ページPG4~PG6に対して、書き込み動作を実行する。時刻T202における、ページPG4に対する書き込みデータは、アクティブログALのシステムデータDATと、アクティブシグネチャA_SIGとを含む。時刻T202における、ページPG5に対する書き込みデータは、アクティブログALのシステムデータDATを含む。時刻T202における、ページPG6に対する書き込みデータは、ページPG4及びPG5に対する書き込みデータに基づいて生成されたパリティPRTを含む。
時刻T203は、ページPG4~PG6に対する書き込み動作が完了したタイミングである。時刻T203において、時刻T202から開始された書き込み動作(S43)が完了する。
(初回のスタンバイログALの書き込み動作)
図17は、第2実施形態に係るメモリシステム1における初回のアクティブログALの書き込み動作により記憶されるデータの一例を示すブロック図である。初回のアクティブログALの書き込み動作は、パワーオンシーケンスの後の1回目のアクティブログALの書き込み動作である。時間軸に沿って並んだT211~T215のそれぞれは、ある時刻を示している。各時刻の右に並ぶ複数のブロックは、その時刻におけるNANDログ領域403の複数のページを示している。図示されたNANDログ領域403の複数のページを、左から順にページPG1~PG12と呼ぶ。また、図示された“DAT”は、システムデータを示している。図示された“DUM”は、ダミーデータを示している。図示された“A_SIG”は、アクティブシグネチャA_SIGを示している。図示された“S_SIG”は、スタンバイシグネチャS_SIGを示している。図示された“PRT”は、インターページECCで使用されるパリティを示している。ページPAにデータの書き込みが実行されている場合、矢印記号がブロックに付与される。
図17は、第2実施形態に係るメモリシステム1における初回のアクティブログALの書き込み動作により記憶されるデータの一例を示すブロック図である。初回のアクティブログALの書き込み動作は、パワーオンシーケンスの後の1回目のアクティブログALの書き込み動作である。時間軸に沿って並んだT211~T215のそれぞれは、ある時刻を示している。各時刻の右に並ぶ複数のブロックは、その時刻におけるNANDログ領域403の複数のページを示している。図示されたNANDログ領域403の複数のページを、左から順にページPG1~PG12と呼ぶ。また、図示された“DAT”は、システムデータを示している。図示された“DUM”は、ダミーデータを示している。図示された“A_SIG”は、アクティブシグネチャA_SIGを示している。図示された“S_SIG”は、スタンバイシグネチャS_SIGを示している。図示された“PRT”は、インターページECCで使用されるパリティを示している。ページPAにデータの書き込みが実行されている場合、矢印記号がブロックに付与される。
時刻T211において、ページPG1は、スタンバイログSLのシステムデータDATを記憶している。時刻T211において、ページPG2は、スタンバイログSLのシステムデータDATを記憶している。時刻T211において、ページPG3は、ページPG1及びPG2に記憶されたデータに基づいて生成されたパリティPRTを記憶している。時刻T211において、ページPG4は、ダミーデータDUMとスタンバイシグネチャS_SIGとを記憶している。時刻T211において、ページPG5は、ページPG4に記憶されたデータに基づいて生成されたパリティPRTを記憶している。時刻T211において、ページPG6~PG12のそれぞれは、未書き込み状態である。
時刻T212は、初回のアクティブログALの書き込み動作の前の、ダミーデータDUMの書き込み動作(S42)が開始されるタイミングである。例えば、時刻T212において、メモリコントローラ3は、ページPG6及びPG7に対して書き込み動作を実行する。時刻T212における、ページPG6に対する書き込みデータは、ダミーデータDUMを含み、アクティブシグネチャA_SIGを含まない。時刻T212における、ページPG7に対する書き込みデータは、ページPG6に対する書き込みデータに基づいて生成されたパリティPRTを含む。
時刻T213は、ページPG6及びPG7に対する書き込み動作が完了したタイミングである。時刻T213において、時刻T212から開始された書き込み動作(S42)が完了する。
時刻T214は、初回のアクティブログALの書き込み動作(S43)が開始されるタイミングである。例えば、時刻T214において、メモリコントローラ3は、ページPG8~PG10に対して、書き込み動作を実行する。時刻T214における、ページPG8に対する書き込みデータは、アクティブシグネチャA_SIGと、アクティブログALのシステムデータDATとを含む。時刻T214における、ページPG9に対する書き込みデータは、アクティブログALのシステムデータDATを含む。時刻T214における、ページPG10に対する書き込みデータは、ページPG8及びPG9に対する書き込みデータに基づいて生成されたパリティPRTを含む。
時刻T215は、ページPG8~PG10に対する書き込み動作が完了したタイミングである。時刻T215において、時刻T214から開始された書き込み動作(S43)が完了する。
続けて、第3実施形態に係るメモリシステム1におけるアクティブログALの書き込み動作の途中で異常な電源断が発生した場合の動作について説明する。
図18は、第2実施形態に係るメモリシステム1における初回のアクティブログALの書き込み動作により記憶されるデータの一例を示すブロック図である。時間軸に沿って並んだT221~T227のそれぞれは、ある時刻を示している。各時刻の右に並ぶ複数のブロックは、その時刻におけるNANDログ領域403の複数のページを示している。図示されたNANDログ領域403の複数のページを、左から順にページPG1~PG12と呼ぶ。また、図示された“DAT”は、システムデータを示している。図示された“DUM”は、ダミーデータを示している。図示された“A_SIG”は、アクティブシグネチャA_SIGを示している。図示された“S_SIG”は、スタンバイシグネチャS_SIGを示している。図示された“PRT”は、インターページECCで使用されるパリティを示している。ページPAにデータの書き込みが実行されている場合、矢印記号がブロックに付与される。図示されたブロック内のドットパターンは、ブロックに対応するページに実行された書き込み動作が中断され、書き込み動作の中断後に未書き込み状態であると判断されたページを示している。
時刻T221は、パワーオンシーケンスを完了した後且つ初回のログ記録動作が開始される前のタイミングである。時刻T221において、ページPG1は、スタンバイログSLのシステムデータDATを記憶している。時刻T221において、ページPG2は、スタンバイログSLのシステムデータDATを記憶している。時刻T221において、ページPG3は、ページPG1及びPG2に記憶されたデータに基づいて生成されたパリティPRTを記憶している。時刻T221において、ページPG4は、ダミーデータDUMとスタンバイシグネチャS_SIGとを記憶している。時刻T221において、ページPG5は、ページPG4に記憶されたデータに基づいて生成されたパリティPRTを記憶している。時刻T221において、ページPG6~PG12のそれぞれは、未書き込み状態である。
時刻T222は、初回のアクティブログALの書き込み動作の前の、ダミーデータDUMの書き込み動作(S42)が開始されるタイミングである。例えば、時刻T222において、メモリコントローラ3が、ページPG6及びPG7に対して、書き込み動作を実行する。時刻T222における、ページPG6に対する書き込みデータは、ダミーデータDUMを含む。時刻T222における、ページPG7に対する書き込みデータは、ページPG6に対する書き込みデータに基づいて生成されたパリティPRTを含む。
時刻T223は、T222に開始した書き込み動作が異常に終了したタイミングである。時刻T223の時点で、ページPG6及びPG7のメモリセルの閾値電圧が、書き込みデータと書き込み動作の終了のタイミングとに応じて上昇した状態を有している。しかしながら、このときメモリコントローラ3は、ページPG6及びPG7に対して書き込み動作を実行したことを認識できず、ページPG6及びPG7を未書き込み状態であると認識している。
時刻T224は、時刻T223の後に、初回のアクティブログALの書き込み動作が開始されるタイミングである。初回のアクティブログALの書き込み動作において、メモリコントローラ3は、アクティブログALをNANDログ領域403に書き込む前に、ダミーデータDUMをNANDログ領域403に書き込む。このとき、メモリコントローラ3は、ページPG6及びPG7を未書き込み状態であると認識しているため、時刻T222に書き込み動作を実行したページPG6及びPG7に対して、ダミーデータDUMの書き込み動作(S42)を開始する。時刻T224における、ページPG6及びPG7に対する書き込みデータは、例えば時刻T222と時刻T224とで同じであっても良いし、異なっていても良い。例えば、時刻T224におけるページPG6に対する書き込みデータは、時刻T222におけるページPG6に対する書き込みデータと同じダミーデータDUMを含む。時刻T224における、ページPG7に対する書き込みデータは、時刻T224におけるページPG6に対する書き込みデータに基づいて生成されたパリティPRTを含む。
時刻T225は、ページPG6及びPG7に対する書き込み動作が完了したタイミングである。時刻T225において、時刻T224から開始された書き込み動作(S42)が完了する。時刻T225の時点で、ページPG6及びPG7には、複数回の書き込み動作が実行されている。つまり、メモリコントローラ3は、選択したページPGの一部のメモリセルの閾値電圧が上昇した状態で、書き込み動作を実行している。このため、時刻T225の時点で、ページPG6及びPG7に書き込まれたデータは、正確に書き込めていない可能性がある。また、このようなページPAが存在すると、インターページECCの訂正能力が低下し、システムデータのエラー訂正が困難になるおそれがある。
時刻T226は、初回のアクティブログALの書き込み動作(S43)が開始されるタイミングである。例えば、時刻T226において、メモリコントローラ3が、ページPG8~PG10に対して、アクティブログALの書き込み動作を実行する。時刻T226における、ページPG8に対する書き込みデータは、アクティブシグネチャA_SIGと、アクティブログALのシステムデータDATとを含む。時刻T226における、ページPG9に対する書き込みデータは、アクティブログALのシステムデータDATを含む。時刻T226における、ページPG10に対する書き込みデータは、ページPG8及びPG9に対する書き込みデータに基づいて生成されたパリティPRTを含む。
時刻T227は、ページPG8~PG10に対する書き込み動作が完了したタイミングである。時刻T227において、時刻T226から開始された書き込み動作(S43)が完了する。
[2-2]第2実施形態の効果
第2実施形態に係るメモリシステム1は、パワーオンシーケンスにおけるNANDログ領域403の読み出し結果に基づいて、NANDログ領域403に対する書き込み動作を開始するページを選択する。しかしながら、NANDログ領域403において、初回の書き込み動作が実行されるページは、異常な電源断により書き込み動作が実行されたが、未書き込みと認識されるページである可能性がある。このようなページに対して書き込み動作が実行されると、データが正確に書き込まれないおそれがあり、ページのデータが消失する、若しくはページのデータの信頼性が低下するおそれがある。
第2実施形態に係るメモリシステム1は、パワーオンシーケンスにおけるNANDログ領域403の読み出し結果に基づいて、NANDログ領域403に対する書き込み動作を開始するページを選択する。しかしながら、NANDログ領域403において、初回の書き込み動作が実行されるページは、異常な電源断により書き込み動作が実行されたが、未書き込みと認識されるページである可能性がある。このようなページに対して書き込み動作が実行されると、データが正確に書き込まれないおそれがあり、ページのデータが消失する、若しくはページのデータの信頼性が低下するおそれがある。
そこで、第2実施形態に係るメモリシステム1は、パワーオンシーケンス後の初回のアクティブログALを書き込む前に、ダミーデータDUMの書き込み動作を実行する。これにより、ダミーデータDUMが、異常な電源断により書き込み動作が実行されたが、未書き込みと認識され得るページに対して書き込まれる。そして、メモリシステム1は、ダミーデータDUMがNANDログ領域403に記憶された後に、アクティブログALの書き込み動作を実行する。
その結果、第2実施形態に係るメモリシステムは、アクティブログALの書き込み動作を、書き込み動作が実行されていない未書き込みのページに対して実行することが出来る。つまり、メモリシステム1は、アクティブログALを信頼性の低下のおそれがあるページに書き込むことを避けることが出来る。その結果、第2実施形態に係るメモリシステム1は、書き込まれたアクティブログALの信頼性の低下を抑制することが出来、システムデータ消失のリスクを抑制することが出来る。
尚、メモリコントローラ3が、初回のアクティブログALの書き込み動作において、ダミーデータDUMを書き込むことなくアクティブログALの書き込み動作を実行する場合、信頼性が低下し得るページ数が、3ページ以上になり得る。これに対して、第2実施形態に係るメモリシステム1は、ダミーデータDUMの書き込み動作において、書き込み動作を実行するページ数を、例えばダミーデータDUMを含むページと、インターページECCのパリティを含むページとの2ページに抑制する。つまり、初回のアクティブログALの書き込み動作において、信頼性が低下し得るページ数が、2ページに抑制される。
このように、第2実施形態に係るメモリシステム1は、初回のアクティブログALの書き込み動作において、信頼性が低下し得るページ数を抑制することが出来る。その結果、メモリコントローラ3は、インターページECC処理の対象である複数ページに含まれたエラービット数を抑制することが出来、インターページECC処理のエラー訂正能力の低下を抑制することが出来る。従って、第2実施形態に係るメモリシステム1は、システムデータ消失のリスクを抑制することが出来る。
[3]第3実施形態
第3実施形態に係るメモリシステム1は、第1実施形態に係るメモリシステム1と同様のハードウェア構成を有する。第3実施形態は、信頼性が低下し得るページの読み出し動作に関する。
第3実施形態に係るメモリシステム1は、第1実施形態に係るメモリシステム1と同様のハードウェア構成を有する。第3実施形態は、信頼性が低下し得るページの読み出し動作に関する。
[3-1]NANDログ領域403に記憶されたデータのエラー訂正方法
図19は、第3実施形態に係るメモリシステム1のNANDログ領域403に対する読み出し動作におけるエラー訂正方法の一例を示すフローチャートである。メモリシステム1は、NANDログ領域403に対する読み出し動作において、読み出されたデータの種類に応じて、エラー訂正能力を変更する。尚、“エラー訂正能力”は、例えばインナーページECC処理においてエラー訂正可能なビット数に対応している。エラー訂正能力の高低は、エラー訂正可能なビット数の大小にそれぞれ対応している。
図19は、第3実施形態に係るメモリシステム1のNANDログ領域403に対する読み出し動作におけるエラー訂正方法の一例を示すフローチャートである。メモリシステム1は、NANDログ領域403に対する読み出し動作において、読み出されたデータの種類に応じて、エラー訂正能力を変更する。尚、“エラー訂正能力”は、例えばインナーページECC処理においてエラー訂正可能なビット数に対応している。エラー訂正能力の高低は、エラー訂正可能なビット数の大小にそれぞれ対応している。
不揮発性メモリ4のNANDログ領域403からデータを読み出すと(開始)、メモリコントローラ3は、読み出したページがダミーデータDUMを含むか否かを確認する(S50)。
読み出したページがダミーデータDUMを含む場合(S50、YES)、メモリコントローラ3がECC回路25を制御して、ECC回路25が、第1のエラー訂正能力でインナーページECC処理を実行する(S51)。
S51が完了すると、メモリコントローラ3は、インナーページECC処理によるエラー訂正に成功したか否かを確認する(S53)。すなわち、メモリコントローラ3が、第1のエラー訂正能力を用いて、読み出したページのエラー訂正に成功したか否かを確認する。
読み出したページがダミーデータDUMを含まない場合(S50、NO)、メモリコントローラ3がECC回路25を制御して、ECC回路25が、第1のエラー訂正能力よりも高い第2のエラー訂正能力でインナーページECC処理を実行する(S52)。すなわち、ECC回路25は、ダミーデータDUMが書き込まれたページから読み出されたデータに対して、システムデータDATが書き込まれたページから読み出されたデータよりも低いエラー訂正能力で、エラー訂正処理を実行する。
S52が完了すると、メモリコントローラ3は、インナーページECC処理によるエラー訂正に成功したか否かを確認する(S53)。すなわち、メモリコントローラ3が、第2のエラー訂正能力を用いて、読み出したページのエラー訂正に成功したか否かを確認する。
インナーページECC処理によるエラー訂正に成功した場合(S53、YES)、メモリコントローラ3は、図19の一連の処理を終了する(終了)。
インナーページECC処理によるエラー訂正に成功していない場合、(S53、NO)、メモリコントローラ3は、読み出したページのリフレッシュ動作を実行する(S54)。S54のリフレッシュ動作が実行されるタイミングは、その他のタイミングであっても良い。メモリコントローラ3は、その後、図19の一連の処理を終了する(終了)。
尚、メモリコントローラ3は、予約されたリフレッシュ動作を、任意のタイミングで実行することが出来る。例えば、メモリコントローラ3は、リフレッシュ動作を、NANDログ領域403の読み出し動作を実行した後に実行しても良いし、NANDログ領域403の読み出し動作を実行している途中に実行しても良い。
また、S53の条件は、その他の条件であっても良い。例えば、メモリコントローラ3は、インナーページECC処理において検出されたエラービット数に基づいて、リフレッシュ動作を予約するか否かを決定しても良い。この場合、メモリコントローラ3は、S53において、インナーページECC処理により検出されたエラービット数が、所定の閾値を超えているか否かを判定する。所定の閾値としては、システムデータDATの読み出しデータに設定された閾値よりも、ダミーデータDUMの読み出しデータに設定された閾値の方が低く設定されることが好ましい。また、S53の条件として、リトライリードの有無が使用されても良い。この場合、メモリコントローラ3は、リトライリードが要求された場合に、リトライリードが要求されたブロックBLKのリフレッシュ動作を予約する。
図20は、第3実施形態に係るメモリシステム1におけるスタンバイログSL及びアクティブログALを含む記憶領域の一例を示すブロック図である。T301は、ある時刻を示している。時刻T301の右に並ぶ複数のブロックは、その時刻におけるNANDログ領域403の複数のページを示している。図示されたNANDログ領域403の複数のページを、左から順にページPG1~PG12と呼ぶ。また、図示された“DAT”は、システムデータを示している。図示された“DUM”は、ダミーデータを示している。図示された“A_SIG”は、アクティブシグネチャA_SIGを示している。図示された“S_SIG”は、スタンバイシグネチャS_SIGを示している。図示された“PRT”は、インターページECCで使用されるパリティを示している。図示されたブロック内の斜線は、ブロックに対応するページに書き込まれたデータの信頼性が低下していることを示している。図示されたブロック内のドットパターンは、ブロックに対応するページに実行された書き込み動作が中断され、書き込み動作の中断後に未書き込み状態であると判断されたページを示している。
時刻T301において、ページPG1は、スタンバイログSLのシステムデータDATを含む。時刻T301において、ページPG2は、スタンバイログSLのシステムデータDATを含む。時刻T301において、ページPG3は、ページPG1及びPG2に記憶されたデータに基づいて生成されたパリティPRTを含む。時刻T301において、ページPG4は、ダミーデータDUMとスタンバイシグネチャS_SIGとを含む。時刻T301において、ページPG5は、ページPG4に記憶されたデータに基づいて生成されたパリティPRTを含む。尚、時刻T301において、ページPG4及びPG5は、アクティブシグネチャS_SIGの書き込み動作が中断したことにより信頼性が低下した状態である。時刻T301において、ページPG6は、ダミーデータDUMを含む。時刻T301において、ページPG7は、ページPG6に記憶されたデータに基づいて生成されたパリティPRTを含む。尚、ページPG6及びPG7に書き込まれたデータは、書き込み動作の中断後に未書き込み状態であると判断されたページに対して書き込まれている。時刻T301において、ページPG8は、アクティブログALのシステムデータDATとアクティブシグネチャA_SIGとを含む。時刻T301において、ページPG9は、アクティブログALのシステムデータDATを含む。ページPG10は、ページPG8及びPG9に記憶されたデータに基づいて生成されたパリティPRTを含む。時刻T301において、ページPG11及びPG12のそれぞれは、未書き込み状態である。
図21は、第3実施形態に係るメモリシステム1におけるリフレッシュ動作後のスタンバイログSL及びアクティブログALを含む記憶領域の別の一例を示すブロック図である。T302は、時刻T301の後の時刻を示している。時刻T302の右に並ぶ複数のブロックは、その時刻におけるNANDログ領域403の複数のページを示している。図示されたNANDログ領域403の複数のページを、左から順にページPG1a~PG12aと呼ぶ。また、図示された“DAT”は、システムデータを示している。図示された“A_SIG”は、アクティブシグネチャA_SIGを示している。図示された“PRT”は、インターページECCで使用されるパリティを示している。
時刻T302において、ページPG1aは、時刻T301にページPG1に記憶されていたデータ、すなわちスタンバイログSLのシステムデータDATを含む。時刻T302において、ページPG2aは、時刻T301にページPG2に記憶されていたデータ、すなわちスタンバイログSLのシステムデータDATを含む。時刻T302において、ページPG3aは、時刻T301にページPG8に記憶されていたデータ、すなわちアクティブログALのシステムデータDATとアクティブシグネチャA_SIGとを含む。時刻T302において、ページPG4aは、時刻T301にページPG9に記憶されていたデータ、すなわちアクティブログALのシステムデータDATを含む。時刻T302において、ページPG5aは、ページPG1a、PG2a、PG3a及びPG4aに記憶されたデータに基づいて生成されたパリティPRTを含む。時刻T302において、ページPG6a~及びPG12aのそれぞれは、未書き込み状態である。
このように、メモリコントローラ3は、リフレッシュ動作において、ダミーデータDUMの書き込みを省略しても良い。また、メモリコントローラ3は、リフレッシュ動作において、時刻T301にページPG4に記憶されたスタンバイシグネチャS_SIGの書き込みも省略している。メモリコントローラ3は、時刻T301にページPG4に書き込まれていたスタンバイシグネチャS_SIGを、時刻T302におけるページPG2a、すなわちスタンバイログSLの末尾のページに書き込んでも良い。
[3-2]第3実施形態の効果
ダミーデータDUMが記憶されたページの信頼性は、第1及び第2実施形態で説明されたように、書き込み動作の中断が発生した場合に低下し得る。ダミーデータDUMが記憶されたページの信頼性が低下している場合、ページを含むブロックBLKに書き込まれたデータの信頼性も低下している可能性がある。
ダミーデータDUMが記憶されたページの信頼性は、第1及び第2実施形態で説明されたように、書き込み動作の中断が発生した場合に低下し得る。ダミーデータDUMが記憶されたページの信頼性が低下している場合、ページを含むブロックBLKに書き込まれたデータの信頼性も低下している可能性がある。
そこで、第3実施形態に係るメモリシステム1は、ダミーデータDUMを記憶しているページから読み出されたデータに対して、システムデータDATよりも低いエラー訂正能力でエラー訂正処理を実行する。これにより、第3実施形態に係るメモリシステム1は、ダミーデータDUMを含むブロックBLKの信頼性の低下を早期に検知することが出来る。そして、メモリシステム1は、信頼性が低下したブロックBLKのシステムデータDATのリフレッシュ動作を、早期に実行することが出来る。従って、第3実施形態に係るメモリシステム1は、システムデータ消失のリスクを抑制することが出来る。
実施形態は例示であり、発明の範囲はそれらに限定されない。
1…メモリシステム
2…ホスト機器
3…メモリコントローラ
4…不揮発性メモリ
10…記憶装置
31…ホストインターフェイス(ホストIF)
32…RAM
33…CPU
34…ROM
35…ECC回路
36…NANDインターフェイス(NANDIF)
301…キャッシュ領域
302…マスターテーブル領域
303…RAMログ領域
401…ユーザーデータ領域
402…NAND管理テーブル領域
403…NANDログ領域
LS…ログセット
AL…アクティブログ
OL…動作ログ
SL…スタンバイログ
A_SIG…アクティブシグネチャ
S_SIG…スタンバイシグネチャ
NC,NC1~NC16…NANDチップ
BK0,BK1…バンク
BLK…ブロック
LBLK…論理ブロック
CH0~CH7…チャネル
DAT…システムデータ
DUM…ダミーデータ
LPA…論理ページ
PA0~PA63,PG1~PG12,PG1a~PG12a…ページ
PL0,PL1…プレーン
PRT…パリティ
T101~T103,T111~T115,T121~T125,T201~T203,T211~T215,T221~T227,T301,T302…時刻
2…ホスト機器
3…メモリコントローラ
4…不揮発性メモリ
10…記憶装置
31…ホストインターフェイス(ホストIF)
32…RAM
33…CPU
34…ROM
35…ECC回路
36…NANDインターフェイス(NANDIF)
301…キャッシュ領域
302…マスターテーブル領域
303…RAMログ領域
401…ユーザーデータ領域
402…NAND管理テーブル領域
403…NANDログ領域
LS…ログセット
AL…アクティブログ
OL…動作ログ
SL…スタンバイログ
A_SIG…アクティブシグネチャ
S_SIG…スタンバイシグネチャ
NC,NC1~NC16…NANDチップ
BK0,BK1…バンク
BLK…ブロック
LBLK…論理ブロック
CH0~CH7…チャネル
DAT…システムデータ
DUM…ダミーデータ
LPA…論理ページ
PA0~PA63,PG1~PG12,PG1a~PG12a…ページ
PL0,PL1…プレーン
PRT…パリティ
T101~T103,T111~T115,T121~T125,T201~T203,T211~T215,T221~T227,T301,T302…時刻
Claims (10)
- 第1記憶領域と第2記憶領域とを含む不揮発性メモリと、
前記不揮発性メモリを制御するメモリコントローラとを備え、
前記メモリコントローラは、
マスターテーブルを記憶する第3記憶領域と、前記マスターテーブルの変更履歴を記憶する第4記憶領域とを備え、
外部からパワーオフ命令を受信すると、前記不揮発性メモリに対して、前記第3記憶領域に記憶された前記マスターテーブルを、前記第1記憶領域に書き込むことを命令し、
前記不揮発性メモリに対して、前記第4記憶領域に記憶された前記変更履歴を、前記第2記憶領域に書き込むことを命令し、
パワーオフに関する第1システムデータと、前記変更履歴の記録が終了したことを示す第1スタンバイシグネチャとを含む第1スタンバイログを生成し、
前記不揮発性メモリに対して、前記第1スタンバイログのうち前記第1システムデータを、前記第2記憶領域に書き込むことを命令し、
前記第2記憶領域に前記第1システムデータが書き込まれた後に、前記不揮発性メモリに対して、前記第1スタンバイログのうち前記第1スタンバイシグネチャを、前記第2記憶領域に書き込むことを命令する、
メモリシステム。 - 前記第1スタンバイシグネチャが書き込まれたページは、無効なデータを含み、前記第1システムデータを含まない、
請求項1に記載のメモリシステム。 - 前記メモリコントローラは、
前記不揮発性メモリへのアクセスを伴う命令を外部から受信すると、前記不揮発性メモリに対して、前記変更履歴の記録を開始したことを示すアクティブシグネチャを、前記第2記憶領域に書き込むことを命令し、
前記不揮発性メモリに対して、前記第4記憶領域に記憶された前記変更履歴を、前記第2記憶領域に書き込むことを命令し、
前記変更履歴の記録の終了に関する第2システムデータと、前記変更履歴の記録が終了したことを示す第2スタンバイシグネチャを含む第2スタンバイログを生成し、
前記不揮発性メモリに対して、前記第2システムデータと前記第2スタンバイシグネチャとを、前記第2記憶領域に書き込むことを命令する、
請求項1又は請求項2に記載のメモリシステム。 - 前記メモリコントローラは、読み出しデータのエラー訂正処理において、前記第1スタンバイシグネチャが記憶されたページから読み出された第1読み出しデータに対するエラー訂正能力を、前記第1システムデータが記憶されたページから読み出された第2読み出しデータに対するエラー訂正能力よりも低く設定する、
請求項1乃至請求項3のいずれか一項に記載のメモリシステム。 - マスターテーブルの写しを記憶する第1記憶領域と、前記マスターテーブルの変更履歴の写しを記憶する第2記憶領域とを含む不揮発性メモリと、
前記不揮発性メモリを制御するメモリコントローラとを備え、
前記メモリコントローラは、
前記マスターテーブルを記憶する第3記憶領域と、前記マスターテーブルの変更履歴を記憶する第4記憶領域とを備え、
外部からパワーオン命令を受信すると、前記第1記憶領域に記憶された前記マスターテーブルの写しを、前記第3記憶領域に記憶させ、前記第2記憶領域に記憶された前記マスターテーブルの変更履歴の写しを、前記第4記憶領域に記憶させ、
前記パワーオン命令を受信した後に、初めて、前記不揮発性メモリへのアクセスを伴う命令を外部から受信すると、前記不揮発性メモリに対して、無効なデータを前記第2記憶領域に書き込むことを命令し、
前記第2記憶領域に前記無効なデータが書き込まれた後に、前記不揮発性メモリに対して、前記変更履歴の記録が開始されたことを示す第1アクティブシグネチャを、前記第2記憶領域に書き込むことを命令する、
メモリシステム。 - 前記無効なデータが書き込まれたページは、前記第1アクティブシグネチャを含まない、
請求項5に記載のメモリシステム。 - 前記メモリコントローラは、
前記第2記憶領域に前記第1アクティブシグネチャが書き込まれた後に、前記不揮発性メモリに対して、前記変更履歴の記録が終了したことを示す第1スタンバイシグネチャを、前記第2記憶領域に書き込むことを命令し、
前記第2記憶領域に前記第1スタンバイシグネチャが書き込まれた後に、前記不揮発性メモリへのアクセスを伴う命令を外部から受信すると、前記不揮発性メモリに対して、無効なデータを記憶させることなく、前記変更履歴の記録を開始したことを示す第2アクティブシグネチャを、前記第2記憶領域に書き込むことを命令する、
請求項5又は請求項6に記載のメモリシステム。 - 前記メモリコントローラは、読み出しデータのエラー訂正処理において、前記無効なデータが記憶されたページから読み出された第1読み出しデータに対するエラー訂正能力を、前記第1アクティブシグネチャが記憶されたページから読み出された第2読み出しデータに対するエラー訂正能力よりも低く設定する、
請求項5乃至請求項7のいずれか一項に記載のメモリシステム。 - 外部からパワーオフ命令を受信したことに応じて、マスターテーブルを、不揮発性メモリの第1記憶領域に記憶させることと、
前記マスターテーブルの変更履歴を、前記不揮発性メモリの第2記憶領域に記憶させることと、
パワーオフに関する第1システムデータと、前記変更履歴の記録が終了したことを示す第1スタンバイシグネチャとを含む第1スタンバイログを生成することと、
前記第1スタンバイログのうち前記第1システムデータを、前記第2記憶領域に記憶させることと、
前記第2記憶領域に前記第1システムデータが記憶された後に、前記第1スタンバイログのうち前記第1スタンバイシグネチャを、前記第2記憶領域に記憶させることと、
を備える、メモリシステムの制御方法。 - 外部からパワーオン命令を受信すると、不揮発性メモリの第1記憶領域に記憶されたマスターテーブルの写しと、前記不揮発性メモリの第2記憶領域に記憶された前記マスターテーブルの変更履歴の写しとを、メモリコントローラの第3記憶領域及び第4記憶領域にそれぞれ記憶させることと、
前記パワーオン命令を受信した後に、初めて、前記不揮発性メモリへのアクセスを伴う命令を外部から受信すると、無効なデータを前記第2記憶領域に記憶させることと、
前記第2記憶領域に前記無効なデータが記憶された後に、前記変更履歴の記録が開始されたことを示す第1アクティブシグネチャを、前記第2記憶領域に記憶させることと、
を備える、メモリシステムの制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020158268A JP2022052089A (ja) | 2020-09-23 | 2020-09-23 | メモリシステム及びメモリシステムの制御方法 |
US17/201,341 US11403041B2 (en) | 2020-09-23 | 2021-03-15 | Memory system and control method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020158268A JP2022052089A (ja) | 2020-09-23 | 2020-09-23 | メモリシステム及びメモリシステムの制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022052089A true JP2022052089A (ja) | 2022-04-04 |
Family
ID=80741495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020158268A Pending JP2022052089A (ja) | 2020-09-23 | 2020-09-23 | メモリシステム及びメモリシステムの制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11403041B2 (ja) |
JP (1) | JP2022052089A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7043578B1 (ja) * | 2020-12-18 | 2022-03-29 | 華邦電子股▲ふん▼有限公司 | 半導体記憶装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5317690B2 (ja) | 2008-12-27 | 2013-10-16 | 株式会社東芝 | メモリシステム |
JP2012128643A (ja) * | 2010-12-15 | 2012-07-05 | Toshiba Corp | メモリシステム |
JP5330428B2 (ja) | 2011-02-21 | 2013-10-30 | 株式会社東芝 | データ記憶装置及び誤り検出訂正方法 |
JP6233134B2 (ja) | 2014-03-28 | 2017-11-22 | 大日本印刷株式会社 | 電子情報記憶媒体、情報処理方法、及び情報処理プログラム |
US9620227B1 (en) | 2016-01-08 | 2017-04-11 | Western Digital Technologies, Inc. | Characterizing and operating a non-volatile memory device |
US10725856B2 (en) | 2017-01-09 | 2020-07-28 | Micron Technology, Inc. | Error correction to reduce a failure in time rate |
JP2019185350A (ja) | 2018-04-09 | 2019-10-24 | 東芝メモリ株式会社 | メモリシステム及びメモリシステムの制御方法 |
-
2020
- 2020-09-23 JP JP2020158268A patent/JP2022052089A/ja active Pending
-
2021
- 2021-03-15 US US17/201,341 patent/US11403041B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11403041B2 (en) | 2022-08-02 |
US20220091786A1 (en) | 2022-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9189325B2 (en) | Memory system and operation method thereof | |
JP4524309B2 (ja) | フラッシュメモリ用のメモリコントローラ | |
US8176236B2 (en) | Memory controller, memory system with memory controller, and method of controlling flash memory | |
US10254817B2 (en) | Memory system | |
JP5492679B2 (ja) | 記憶装置およびメモリコントローラ | |
US8839072B2 (en) | Access control apparatus, storage apparatus, and method | |
US20100257307A1 (en) | Data management method and flash memory storage system and controller using the same | |
US8200892B2 (en) | Memory controller, memory system with memory controller, and method of controlling flash memory | |
JP2006120082A (ja) | メモリカード、半導体装置、及びメモリカードの制御方法 | |
US11042310B2 (en) | Reading of start-up information from different memory regions of a memory system | |
US20150143187A1 (en) | Implementing enhanced performance with read before write to phase change memory | |
JP2022052089A (ja) | メモリシステム及びメモリシステムの制御方法 | |
US10713105B2 (en) | Operating method of memory controller, storage device including the same, and operating method of storage device | |
JP2008251154A (ja) | 不揮発性半導体記憶装置 | |
EP3783490B1 (en) | Operating method of memory controller and storage device | |
US8583968B2 (en) | Data storage apparatus and method for writing data | |
JP7030636B2 (ja) | メモリシステムおよびその制御方法 | |
US11935609B2 (en) | Linked XOR flash data protection scheme | |
JP2022040856A (ja) | メモリ制御装置及びメモリ制御方法 | |
JP2003308242A (ja) | 半導体記憶装置及びその制御方法 | |
KR20240064318A (ko) | 스토리지 장치 및 이의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20230106 |