JP2018160156A - メモリシステム - Google Patents
メモリシステム Download PDFInfo
- Publication number
- JP2018160156A JP2018160156A JP2017057713A JP2017057713A JP2018160156A JP 2018160156 A JP2018160156 A JP 2018160156A JP 2017057713 A JP2017057713 A JP 2017057713A JP 2017057713 A JP2017057713 A JP 2017057713A JP 2018160156 A JP2018160156 A JP 2018160156A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- nand
- management information
- stored
- 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/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
- 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/061—Improving I/O performance
-
- 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
- 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/0626—Reducing size or complexity of storage systems
-
- 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/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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/1016—Performance 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/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/7205—Cleaning, compaction, garbage collection, erase control
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
【課題】本発明が解決しようとする課題は、性能を向上させたメモリシステムを提供することである。
【解決手段】実施形態のメモリシステムは、ホスト装置に接続可能であって、揮発性メモリと、消去単位であるブロックを複数備える不揮発性メモリと、前記揮発性メモリと前記不揮発性メモリを制御するコントローラと、を備える。前記コントローラは、前記ホスト装置から受信した削除要求で指定された論理アドレスおよび削除範囲を示す第1のデータを前記不揮発性メモリに保存し、前記ホスト装置から受信した書き込み要求で指定された第2のデータを前記不揮発性メモリに保存する。
【選択図】図1
【解決手段】実施形態のメモリシステムは、ホスト装置に接続可能であって、揮発性メモリと、消去単位であるブロックを複数備える不揮発性メモリと、前記揮発性メモリと前記不揮発性メモリを制御するコントローラと、を備える。前記コントローラは、前記ホスト装置から受信した削除要求で指定された論理アドレスおよび削除範囲を示す第1のデータを前記不揮発性メモリに保存し、前記ホスト装置から受信した書き込み要求で指定された第2のデータを前記不揮発性メモリに保存する。
【選択図】図1
Description
本発明の実施形態は、メモリシステムに関する。
NAND型フラッシュメモリのような不揮発性メモリと、メモリコントローラと、を備えるメモリシステムが提供されている。
本発明が解決しようとする課題は、性能を向上させたメモリシステムを提供することである。
上記課題を達成するために、実施形態のメモリシステムは、ホスト装置に接続可能であって、揮発性メモリと、消去単位であるブロックを複数備える不揮発性メモリと、前記揮発性メモリと前記不揮発性メモリを制御するコントローラと、を備える。前記コントローラは、前記ホスト装置から受信した削除要求で指定された論理アドレスおよび削除範囲を示す第1のデータを前記不揮発性メモリに保存し、前記ホスト装置から受信した書き込み要求で指定された第2のデータを前記不揮発性メモリに保存する。
以下、発明を実施するための実施形態について図面を参照して説明する。
(実施形態)
図1は、本実施形態に係るメモリシステムの構成例を示すブロック図である。メモリシステム1は、ホスト装置2と通信線で接続され、ホスト装置2の外部記憶装置として機能する。ホスト装置2は、例えば、パーソナルコンピュータなどの情報処理装置、携帯電話、撮像装置であってもよいし、タブレットコンピュータやスマートフォンなどの携帯端末であってもよいし、ゲーム機器であってもよいし、カーナビゲーションシステムなどの車載端末であってもよい。
図1は、本実施形態に係るメモリシステムの構成例を示すブロック図である。メモリシステム1は、ホスト装置2と通信線で接続され、ホスト装置2の外部記憶装置として機能する。ホスト装置2は、例えば、パーソナルコンピュータなどの情報処理装置、携帯電話、撮像装置であってもよいし、タブレットコンピュータやスマートフォンなどの携帯端末であってもよいし、ゲーム機器であってもよいし、カーナビゲーションシステムなどの車載端末であってもよい。
図1に示すように、メモリシステム1は、NANDメモリ10、RAM(Random Access Memory)20、NANDメモリ10およびRAM20を制御するメモリコントローラ30、および外部電源3から電源が供給される電源回路40を備えている。
NANDメモリ10は、バスを介してメモリコントローラ30に接続されている。またNANDメモリ10は、それぞれが同一の回路構成のフラッシュメモリである複数のメモリチップであるメモリチップ#1 11−1、・・・、メモリチップ#N 11−Nを備える。なお、Nは任意の自然数である。
以下の説明において、複数のメモリチップ11−1、・・・、11−Nのうち1つを特定する必要がある場合は符号11−1、・・・、11−Nを使用するが、任意のメモリチップを指す場合や、あるメモリチップを他のメモリチップと区別しない場合は、符号11を使用する。
メモリチップ11の各々は、例えば互いに独立して動作可能であり、その一例としてはNAND型フラッシュメモリチップである。NAND型フラッシュメモリチップでは、一般に、ページと呼ばれるデータ単位で、書き込みおよび読み出しが行われ、ブロックと呼ばれるデータ単位で消去が行われる。
本実施形態では、不揮発性メモリつまり不揮発性の記憶手段としてNANDメモリ10を用いて説明するが、不揮発性の記憶手段として3次元構造フラッシュメモリ、ReRAM(Resistance Random Access Memory)やFeRAM(Ferroelectric Random Access Memory)等のNAND型フラッシュメモリ以外の不揮発性半導体メモリを用いてもよい。また、磁気ディスク等の、半導体メモリ以外の記憶手段を用いてもよい。
RAM20は、揮発性メモリであり、例えば、DRAM(Dynamic Random Access Memory)であるが、これに限られずSRAM(Static Random Access Memory)であってもよく、DRAMやSRAM以外の汎用メモリで構成されてもよい。また、RAM20は、メモリコントローラ30の外にメモリコントローラ30とは独立して搭載されてもよいし、メモリコントローラ30内部に搭載されてもよい。
メモリシステム1は、NANDメモリ10とRAM20とメモリコントローラ30とが1つのパッケージとして構成されるメモリカードであってもよいし、SSD(Solid State Drive)であってもよい。
メモリコントローラ30は、ホスト装置2からの書き込み要求に従ってNANDメモリ10への書き込みを制御する。本実施形態において、要求とは、例えば、命令、コマンドである。また、ホスト装置2からの読み出し要求に従ってNANDメモリ10からの読み出しを制御する。メモリコントローラは、メモリコントロール回路、コントローラ、コントロール回路とも称される。
メモリコントローラ30は、メモリコントローラ30がNANDメモリ10に対するアクセスを行うための管理情報をRAM20へ記憶する。管理情報の詳細は後述する。また、メモリコントローラ30は、RAM20を、ホスト装置2とNANDメモリ10との間のデータ転送のためのバッファとして使用する。また、RAM20は、後述するファームウェアプログラムがロードされるバッファとして使用されてもよい。
電源回路40は、外部電源3から供給された電源を用いて複数の内部電源を生成する。これらの内部電源は、例えばNANDメモリ10等のメモリシステム1内の各部に供給される。外部電源3は、ホスト装置2の内部に搭載されてもよく、ホスト装置2と独立して設けられてもよい。
また、電源回路40は、外部電源3の立ち上がりまたは立ち下りを検知して、パワーオンリセット信号またはパワーオフリセット信号を生成する。これらパワーオンリセット信号およびパワーオフリセット信号は、メモリコントローラ30へ送られる。
メモリコントローラ30は、ホストインターフェース(ホストI/F)31、制御部32、RAMコントローラ(RAMC)33、符号化部/復号部(Encoder/Decoder)34およびメモリインターフェース(メモリI/F)35を備える。
ホストI/F31、制御部32、RAM23、符号化部/復号部34およびメモリI/F35は、内部バス36で接続されている。
ホストI/F31は、ホスト装置2との間のインターフェース規格に従った処理を実施し、ホスト装置2から受信した要求、ユーザデータなどを内部バス36に出力する。また、ホストI/F31は、NANDメモリ10から読み出されたユーザデータ、制御部32からの応答などをホスト装置2へ送信する。なお、本実施の形態では、ホスト装置2からの書き込み要求によりNANDメモリ10へ書き込まれるデータをユーザデータと呼ぶ。
ホストI/F31が従うインターフェース規格は、SATA(Serial Advanced Technology Attachment)インターフェース、PCI Express(Peripheral Component Interconnect Express, PCIe)、USB(Universal Serial Bus)、SAS(Serial Attached SCSI)、Thunderbolt(登録商標)、イーサネット(登録商標)、ファイバーチャネル等の任意のインターフェース規格であってよい。
制御部32は、メモリシステム1の各構成要素を統括的に制御する。制御部32は、ハードウェアにより実現されてもよいし、CPU(Central Processing Unit)等のプロセッサがファームウェアプログラムを実行することにより実現されてもよい。
制御部32の処理が、プロセッサがファームウェアプログラムを実行することにより実現される場合、例えば、プロセッサが、メモリシステム1が外部電源3から電源供給を受けたときに、図示しないROMに格納されているファームウェアプログラム(制御プログラム)をRAM20または制御部32内の図示しないメモリへ読み出して所定の処理を実行することにより、制御部32の処理が実現される。ここで、プロセッサは、コアまたはプロセッサコアとも称される。
制御部32は、ホスト装置2からホストI/F31経由で要求を受けた場合に、その要求に従って、NANDメモリ10に対する命令をメモリI/F35へ指示する。
ホスト装置2から送信される要求には、データの読み出しを要求する読み出し要求、データの書き込みを要求する書き込み要求、データの削除を要求する削除要求などが含まれる。
例えば、制御部32は、ホスト装置2から受信した書き込み要求で指定された論理アドレス(以下、LBA(Logical Block Address)と称する。)と書き込み要求で指定されたユーザデータが格納されるNANDメモリ10上の格納領域を示す物理アドレスをとの対応関係を決定する。そして、制御部32は、物理アドレスに対するユーザデータの書き込みをメモリI/F35へ指示する。
ここで、LBAは、ホスト装置のアドレス管理方法によって管理されるアドレスであり、ホスト装置2は、LBAの最小単位であるセクタ単位でメモリシステム1へアクセスする。
また、制御部32は、ホスト装置2から読み出し要求を受信した場合、読み出し要求により指定された論理アドレスを物理アドレスに変換し、該物理アドレスからの読み出しをメモリI/F35へ指示する。
削除要求は、ホスト装置2からメモリシステム1に対してデータの削除を要求する命令であり、例えば、ホスト装置2上のOSによってデータの削除が行われた場合にメモリシステム1に対して送信される。削除要求は、例えば、トリムコマンドと呼ばれる。
トリムコマンドの例として、Information technology ATA/ATAPI Command Set-3 (ACS-3)に記載されている06h DataSet Managementコマンドや、NVM Express Revision 1.1に記載されている09h Dataset ManagementコマンドのDeallocateがあげられる。これは、ホスト装置2のOS上でデータが削除された場合、ホスト装置2が、削除されたデータの存在する論理アドレス領域(以下、LBA領域と称する。)を、LBAおよびセクタ数の組みよりなるLBA Range Entryとしてメモリシステム1のような外部記憶装置に通知することにより、この外部記憶装置でもそのLBA領域を空き領域として扱うことができる方式である。
制御部32は、ホスト装置2から削除要求を受信した場合、例えば、削除要求により指定されたLBAと当該LBAに対応する物理アドレスとの対応関係を削除または無効化すること等の処理を行う。
なお、メモリシステム1は、前記コマンドだけでなく、たとえば、Information technology ATA/ATAPI Command Set-3 (ACS-3)で記述されているSCT Command Transportや、NVM Express Revision 1.1に記載されている08h Write Zeroesコマンドや、その他ベンダー独自のコマンドなどその他コマンドを受信した場合にも、トリムコマンドを受信したときの処理と同じ処理を実行してもよい。
RAMC33は、RAM20を制御し、メモリコントローラ30とRAM20との間の通信インターフェースの機能を有し、RAM30とメモリコントローラ30との間のデータ転送を実行する。
制御部32は、メモリコントローラ30がホスト装置2から受信したユーザデータを、NANDメモリ10へ記憶するまでの間に、RAMC23経由でRAM20に一時格納する。また、制御部32は、RAMC23経由で、RAM20へ、NANDメモリ10から読み出したユーザデータをホスト装置2へ送信するまでの間一時的に保存する。
符号化部/復号部34は、符号化回路341と復号回路342とを備える。符号化部/復号部はECC(Error Correcting Code)回路とも称される。
符号化回路341は、RAM20に保持されたデータを符号化して、データと冗長部(パリティ)とを有する符号語を生成する。符号化回路341は、第1のデータ長のユーザデータを符号化(誤り訂正符号化)して第2のデータ長の符号語を生成する。符号化回路341が行う符号化では、例えば、BCH(Bose-Chaudhuri-Hocquenghem)符号、RS(Reed-Solomon)符号、LDPC(Low Density Parity Check)符号等を用いることができる。なお、符号化回路341が用いる誤り訂正符号はこれらに限定されない。
復号回路342は、NANDメモリ10から読み出されたデータである符号語をメモリI/F35経由で取得し、取得した符号語を復号する。復号回路342は、復号時に誤り訂正に失敗した場合は、制御部32に誤り訂正失敗を通知する。
メモリI/F35は、NANDメモリ10を制御する。メモリI/F35は、制御部32等の制御に従って符号化回路341から出力された符号語をNANDメモリ10に書き込む。また、メモリI/F35は、制御部32等の制御に従ってNANDメモリ10からデータを読み出し、RAM20経由で復号回路342に転送する。更にメモリI/F35は、制御部32等の制御に従って、NANDメモリ10に保存されているデータを消去する。
つぎに、NANDメモリ10の構成について説明する。NANDメモリ10は、データ消去の単位であるブロックを複数配列して構成される。図2は、NANDメモリに含まれる1個のブロックの構成の一例を示す回路図である。なお、この図2において、紙面上の左右方向をX方向とし、紙面上のX方向に垂直な方向をY方向としている。
NANDメモリ10の各ブロックは、X方向に沿って順に配列された(m+1)個(mは0以上の整数)のNANDストリングNSを備えている。各NANDストリングNSは、Y方向に隣接するメモリセルトランジスタMT間で拡散領域(ソース領域またはドレイン領域)を共有してY方向に直列に接続された(n+1)個(nは0以上の整数)のメモリセルトランジスタMT0〜MTnと、この(n+1)個のメモリセルトランジスタMT0〜MTnの列の両端に配置される選択トランジスタST1,ST2と、を有する。
各メモリセルトランジスタMT0〜MTnは、半導体基板上に形成された積層ゲート構造を有するMOSFET(Metal Oxide Semiconductor Field Effect Transistor)から構成される。ここで、積層ゲート構造には、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層(浮遊ゲート電極)と、この電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極と、が含まれる。
なお、本実施形態に係るメモリシステムのNANDメモリ10は、メモリセルトランジスタMT0〜MTnが、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じて2ビット以上のデータを記憶することができる多値メモリであってもよいし、各メモリセルトランジスタMT0〜MTnが、1ビットのデータを記憶する2値型のメモリであってもよい。
NANDストリングNSを構成するメモリセルトランジスタMT0〜MTnの制御ゲート電極には、それぞれワード線WL0〜WLnが接続されており、また各NANDストリングNS中のメモリセルトランジスタMTi(i=0〜n)間は、同一のワード線WLi(i=0〜n)によって共通接続されている。つまり、ブロック内において同一行にあるメモリセルトランジスタMTiの制御ゲート電極は、同一のワード線WLiに接続される。この同一のワード線WLiに接続される(m+1)個のメモリセルトランジスタMTiは1ページとして取り扱われ、NANDメモリ10では、このページ単位でデータの書込みと読出しが行われる。この同一のワード線WLiに接続される(m+1)個のメモリセルトランジスタMTiの群は1つのページを形成する単位となる。4値を記憶することができる多値メモリの場合には、同一のワード線WLiに接続されるメモリセルトランジスタMTiの群は、2つのページを形成する。最初に書込みが行われるページを下位ページとし、2回目に書込みが行われるページを上位ページとすると、NANDメモリ10では、このページ単位でデータの書込みと読出しが行われる。
1つのブロック内の(m+1)個の選択トランジスタST1のドレインにはそれぞれビット線BL0〜BLmが接続され、ゲートには選択ゲート線SGDが共通接続されている。また、選択トランジスタST1のソースはメモリセルトランジスタMT0のドレインと接続されている。同様に、1つのブロック内の(m+1)個の選択トランジスタST2のソースにはソース線SLが共通接続され、ゲートには選択ゲート線SGSが共通接続されている。また、選択トランジスタST2のドレインはメモリセルトランジスタMTnのソースと接続されている。
なお、図示されていないが、1つのブロック内のビット線BLj(j=0〜m)は、他のブロックのビット線BLjとの間で、選択トランジスタST1のドレインを共通に接続している。つまり、複数のブロック内において同一列にあるNANDストリングNS間は、同一のビット線BLjによって接続される。
メモリI/F35と各メモリチップ11との間は、NANDインターフェースに従ったバスによって接続される。このバス上で送受信される信号は、例えばチップイネーブル信号/CE、アドレスラッチイネーブル信号ALE、コマンドラッチイネーブル信号CLE、ライトイネーブル信号/WE、リードイネーブル信号/RE、および入出力信号I/O等である。信号/CEはメモリチップ11をイネーブルにするための信号である。信号ALEは、入力信号がアドレスであることをメモリチップ11に通知する信号である。信号CLEは、入力信号がコマンドであることをメモリチップ11に通知する信号である。信号/WEは、入力信号をメモリチップ11に取り込ませるための信号である。信号/REは、出力信号をメモリI/F35に取り込ませるための信号である。入出力信号I/Oは、正味のコマンド、アドレス、およびデータ等の信号である。
つぎに、RAM20とNANDメモリ10に保存されるデータについて説明する。図3はRAM20の領域構成を模式的に示す図であり、図4は、NANDメモリ10の領域構成を模式的に示す図である。
図3に示されるように、RAM20は、ホスト装置2から読み出し要求のあったデータが一次保存されるリードキャッシュ領域210と、ホスト装置2からの書き込み要求で指定されたユーザデータおよびホスト装置からの削除要求で指定されたアドレスが一次保存されるデータ保存領域220と、RAM20およびNANDメモリ10に保存されるデータの保存位置を管理するための管理情報が保存される管理情報保存領域230と、を有している。
管理情報保存領域230は、制御部32が管理情報を復元する際に使用する作業領域をさらに有してもよい。管理情報保存領域230に記憶される管理情報は、RAM20およびNANDメモリ10に記憶されるデータの保存位置を管理するためのマスタ情報と、マスタ情報に更新があった場合にマスタ情報に対する更新部分を示す更新情報と、を有するように構成されてもよい。
図4に示されるように、NANDメモリ10は、ホスト装置2からの書き込み要求によるユーザデータおよびホスト装置2からの削除要求で指定されたアドレスが格納されるデータ領域110と、RAM20の管理情報保存領域230に保存される管理情報の少なくとも一部を含む情報が保存される管理情報領域120と、を有する。
制御部32は、管理情報領域120へ、NANDメモリ10に記憶されるデータの保存位置を管理するためのマスタ情報であってある時点におけるマスタ情報のコピーであるスナップショットと、スナップショットからの差分情報であるログと、スナップショットの保存位置を示すポインタと、を含む情報を保存してもよい。
また、制御部32は、データ領域110と、管理情報領域120と、を管理する際、NANDメモリ10の各ブロックの領域をさらにデータの書き込みまたは読み出し単位であるページサイズ単位の領域に分割して管理してもよい。
RAM20は、前述したようにリードキャッシュ領域210、データ保存領域220、管理情報保存領域230と、を備える。
リードキャッシュ領域210は、メモリコントローラ30がNANDメモリ10から読み出したデータを一時保存してホスト装置2へ出力するために使用する領域である。
データ保存領域220は、メモリコントローラ30がホスト装置2からの書き込み要求で指定されたデータや削除要求のデータを一時保存して、NANDメモリ10に出力するために使用する領域である。
削除要求のデータとは、ホスト装置2から受信した削除要求で指定される削除対象範囲である開始LBAおよび削除範囲のサイズを特定できるデータまたは情報であればよく、ホスト装置2から受信した削除要求に含まれるデータそのものを使用してもよいし、データの形式を変更して使用してもよく、データの形式は任意である。
リードキャッシュ領域210やデータ保存領域220に保存されるデータは、セクタ単位で管理される。
制御部32は、データ保存領域220のリソースが不足した場合には、データ保存領域220に保存されているユーザデータや削除要求のデータの少なくとも一部をNANDメモリ10のデータ領域110に保存する。
また、制御部32は、データ保存領域220に保存されているユーザデータや削除要求のデータが一定サイズ溜まったら、または、定期的または任意のタイミングでデータ保存領域220に保存されているユーザデータや削除要求のデータの少なくとも一部をNANDメモリ12のデータ領域110に保存する。
制御部32は、ユーザデータや削除要求のデータをNANDメモリ10のデータ領域110に保存する際に、保存対象であるユーザデータや削除要求のデータのデータ毎にログ情報を対応づけてNANDメモリ12のデータ領域110に保存する。
NANDメモリ10への保存対象であるデータがユーザデータである場合、ログ情報は、例えば、識別情報、ユーザデータのLBAを示す情報である論理アドレスログ、時系列情報を含む。
NANDメモリ10への保存対象であるデータが削除要求のデータである場合、ログ情報は、例えば、識別情報、時系列情報を含む。
識別情報は、NANDメモリ10への保存対象のデータがユーザデータであるか削除要求のデータであるかを識別できる情報である。
また、時系列情報は、NANDメモリ10への保存対象のデータに対応する要求のホスト装置からの受信順序または受信時期を特定できる情報であればよい。時系列情報は、例えば、ホスト装置2から書き込み要求や削除要求を受信した時刻を示す情報であってもよいし、ホスト装置2から書き込み要求や削除要求を受信する毎にカウントアップする数値を示す情報であってもよい。ここで、受信した時刻を示す情報は、例えば年月日時分秒のような絶対時間であってもよいし、ある時点を基準とした相対時間であってもよい。
ここで、制御部32は、NANDメモリ10へ保存対象となるデータ毎にログ情報を保存してもよいし、所定サイズを有する複数のデータの各々のデータに対するログ情報を集めて、集めたログ情報をまとめて保存してもよい。
ここで所定サイズとは、例えば、ページサイズ、ブロックサイズ、ページよりもサイズが小さいクラスタサイズである。所定サイズがクラスタサイズの場合、各ページは、ページよりもサイズが小さいクラスタの複数倍のサイズを有し、各ページに対して、複数のクラスタサイズのデータで構成されるページサイズのデータが格納される。
なお、制御部32は、ログ情報を、ログ情報に対応する保存対象のデータの保存位置とアドレスが連続する位置に保存してもよいし、対応する保存対象のデータの保存位置とアドレスが連続する位置とは別の位置に保存してもよい。また、制御部20は、ログ情報を、ログ情報に対応する保存対象のデータが保存されるページと同じページへ保存してもよいし、異なるページへ保存してもよい。また、制御部20は、ログ情報を、ログ情報に対応する保存対象のデータが保存されるブロックと同じブロックへ保存してもよいし、異なるブロックへ保存してもよい。
図5は、RAM20の管理情報保存領域230に保存される管理情報を模式的に示す図である。制御部32は、RAM20の管理情報保存領域230に保存される管理情報を使用して、RAM20やNANDメモリ10に保存されるデータを管理する。
管理情報保存領域230に保存される管理情報は、例えば、制御部32が、キャッシュの役割をするRAM20のデータ管理を行うためのRAM管理情報231と、制御部32がNANDメモリ10での論理的なデータ管理を行うための論理NAND管理情報232と、制御部32がNANDメモリ10での物理的なデータ管理やNANDメモリ10の延命処理などを行うためのNAND内論理アドレス−物理アドレス変換情報(以下、NAND内論物変換情報という)233である。図5に示されるRAM管理情報231と、論理NAND管理情報232と、NAND内論物変換情報233は、管理情報保存領域230に保存される管理情報の一例であって、管理情報の構成はこれに限定されない。
制御部32は、ホスト装置2から受信した書き込み要求で指定されたユーザデータを、RAM20のデータ保存領域220の所定の物理アドレスに保存する。RAM20内の物理アドレスは、RAM内物理アドレスとも称される。
また、制御部32は、ホスト装置2から受信した削除要求のデータを、RAM20のデータ保存領域220の所定のRAM内物理アドレスに保存する。
また、制御部32は、ホスト装置2から受信した読み出し要求によりNANDメモリ10から読み出したデータをリードキャッシュ領域210の所定のRAM内物理アドレスに保存する。
RAM管理情報231は、例えば、ユーザデータのLBAとRAM内物理アドレスとの対応関係と、RAM20のページ中のセクタサイズ単位のデータの有無を示すセクタフラグと、を含む。また、RAM管理情報231は、削除要求のデータとRAM内物理アドレスとの対応関係と、RAM20のページ中のセクタサイズ単位のデータの有無を示すセクタフラグと、を含む。
また、RAM管理情報231は、データ保存領域220に保存されるユーザデータおよび削除要求のデータに対して、制御部32が、識別情報、時系列情報を特定できるような情報を含む。
論理NAND管理情報232とNAND内論物変換情報233は、制御部32が、NANDメモリ10に保存されているデータを管理するのに使用される。制御部32は、論理NAND管理情報232とNAND内論物変換情報233を使用してNANDメモリ10のデータを管理する。
NANDメモリ10では、データがNANDメモリ10の所定の物理アドレスに格納される。NANDメモリ10の物理アドレスは、NAND内物理アドレスとも称される。NANDメモリ10では、データの書き込み/読み出し処理と消去処理とでは処理単位が異なるため、制御部32は、NANDメモリ10内のあるNAND内物理アドレスに書き込まれたデータの更新を行う場合に、そのデータが含まれるブロックのうち更新が必要な部分を反映させたデータを、更新前のデータが保存されている元のブロックとは異なるブロックに書き込み、元のブロックを無効化する。
このように、NANDメモリ10では、データの更新処理においては、更新前のデータが保存されるブロックと更新後のデータが保存されるブロックとが異なる。そこで、制御部32は、論理NAND管理情報232に、NAND内物理アドレスの他に論理NANDブロックアドレス(以下、NAND内論理アドレスという)を設けて、NANDメモリ10のデータを管理する。
論理NAND管理情報232では、例えば、RAM20上のページサイズ単位のユーザデータのLBAと、RAM20上のユーザデータが格納されるNANDメモリ10の論理的なページ位置を示すNAND内論理アドレスとの間の関係と、NANDメモリ12における消去単位のブロックとサイズが一致する論理的なブロック(以下、論理ブロックという)のアドレス範囲を示す関係と、が示される。なお、NANDメモリ12における消去単位のブロックとサイズが一致する論理的なブロックを複数まとめたものを論理ブロックとしてもよい。
また、NAND内論物変換情報233は、NANDメモリ10におけるNAND内論理アドレスとNAND内物理アドレスとの対応関係を含む。
図6は、論理NAND管理情報テーブル512の一例を示す図である。図6に示されるように、論理NAND管理情報232は、論理ページ管理情報512aと論理ブロック管理情報512bとを含む。論理ページ管理情報512aは、1ページサイズの論理的な領域1つに対して1エントリとし、各エントリには、1ページサイズのデータのLBAと、NAND内論理アドレス(論理NANDブロックアドレス)と、当該ページが有効か無効かを示す無効フラグと、当該ページが削除要求による指定があるか否かを示す削除要求フラグなどを含む。無効フラグがオンであるページとは、同一LBAの最新データが他の場所に書きこまれ、参照されることがなくなったページのことをいう。論理ページ管理情報512aにおいては、削除要求フラグと無効フラグを同一フラグによって管理しても良い。
また、論理ブロック管理情報512bは、NANDメモリ10の1ブロックサイズの物理的な領域に対して設定されるNAND内物理アドレス(物理ブロックアドレス)を含む。また、NANDメモリ10のNAND内物理アドレスとNAND内論理アドレスとがNAND内論物変換情報233において対応付けられている。
制御部32は、論理NAND管理情報232とNAND内論物変換情報233を使用することにより、ホスト装置2で使用されるLBAと、NANDメモリ10で使用されるNAND内論理アドレスと、NANDメモリ10で使用されるNAND内物理アドレスとの間を対応付けることができ、ホスト装置2とメモリシステム1との間でデータのやり取りを行なうことが可能となる。
なお、RAM管理情報231は、メモリシステム1の電源オフなどによって消失するので、揮発性テーブルとも称される。
論理NAND管理情報232とNAND内論物変換情報233は、NANDメモリ10に格納されているデータを管理する情報であり、この情報がなければNANDメモリ10に格納されているデータにアクセスできなかったり、NANDメモリ10のデータ領域110に保存したデータの管理が出来なかったりするので、不意のメモリシステム1の電源断などに備えて、制御部32は、定期的または任意のタイミングで、論理NAND管理情報232とNAND内論物変換情報233をNANDメモリ10へ保存する。制御部32が、定期的または任意のタイミングで、NANDメモリ10へ保存することは、不揮発化するとも称される。論理NAND管理情報232とNAND内論物変換情報233は、定期的または任意のタイミングで、NANDメモリ10へ保存されるため、不揮発性テーブルとも称される。
なお、RAM管理情報231、論理NAND管理情報232、NAND内論物変換情報233は、RAM20の管理情報保存領域230に保存される管理情報の構成の一例であり、本実施形態に係るメモリシステムの管理情報の構成は、制御部32が、LBAとNANDメモリ10でのデータ保存位置を示す物理アドレスとの対応関係、各データが有効か無効か、削除要求の対象となっているか否か、を特定可能な管理情報であればよく、管理情報の構成は任意である。
図7は、本実施形態に係るメモリシステムのホスト装置2から受信した書き込み要求および削除要求に対する不揮発化処理の一例を示すフローチャートである。このフローチャートは、ホスト装置2から書き込み要求または削除要求を受け、要求のあったデータおよびこれに対応する情報をNANDメモリ100へ保存する処理を示している。
書き込み要求では、ユーザデータやユーザデータのLBAが指定されている。メモリシステム1は、書き込み要求の受信が可能か否かを判断し、書き込み要求の受信が可能である場合に、ホスト装置2から書き込み要求を受信してもよい。
また、削除要求では、削除対象のデータのLBAや削除対象範囲が指定されている。メモリシステム1は、削除要求の受信が可能か否かを判断し、削除要求の受信が可能である場合に、ホスト装置2から削除要求を受信してもよい。
図7のフローチャートではこれらの過程を省略し、メモリシステム1のメモリコントローラ30がホスト装置2からホストI/F31経由で書き込み要求および削除要求の受信が可能であることを前提として説明を行う。
メモリコントローラ30の制御部32は、ホスト装置2から書き込み要求を受けたか判定する(ステップ701)。
書き込み要求を受ける(ステップ701:Yes)と、メモリコントローラ30の制御部32は、書き込み要求で指定されたLBAに対応するNAND内物理アドレスおよびRAM内物理アドレスを決定し、指定されたLBAおよび決定された物理アドレスの情報をRAM管理情報231、論理NAND管理情報232、NAND内論物変換情報233へ反映させる(ステップ702)。
そして、メモリコントローラ30の制御部32は、書き込み要求で指定された書き込み対象のユーザデータの符号化を符号化回路341へ指示し、符号化回路341は書き込み対象のユーザデータを符号化する。
メモリコントローラ30の制御部32は、符号化回路341から符号化されたユーザデータを受け取り、符号化されたデータをRAM20のデータ保存領域220へ書き込む(ステップ703)。
つぎに、メモリコントローラ30の制御部32は、ホスト装置2から削除要求を受けたか判定する(ステップ704)。書き込み要求を受けていないと判定した場合も(ステップ701:No)、メモリコントローラ30の制御部32は、ホスト装置2から削除要求を受けたか判定する(ステップ704)。
削除要求を受けると(ステップ704:Yes)、メモリコントローラ30の制御部32は、削除要求のデータの保存先となるNAND内物理アドレスおよびRAM内物理アドレスを決定し、決定された物理アドレスをRAM管理情報231、論理NAND管理情報232、NAND内論物変換情報233へ反映させる(ステップ705)。
メモリコントローラ30の制御部32は、削除要求のデータをRAM20のデータ保存領域220へ書き込む(ステップ706)。
上記に示したようにメモリコントローラ30の制御部32は、ホスト装置2から書き込み要求または削除要求を受け取ると、書き込み要求で指定されたユーザデータと削除要求のデータとをデータ保存領域220へ書き込む。また、上述したようにメモリコントローラ30の制御部32は、データ保存領域220へ書き込む際、書き込み要求または削除要求を受け取った順を管理、追跡できるように、要求を受け取った時刻に対応する時系列情報をRAM管理情報231およびデータ保存領域220の少なくとも一方へ保存する。
つぎに、メモリコントローラ30の制御部32は、データ保存領域220に保存されているデータを不揮発化する所定の第1のタイミングか否かを判定する(ステップ707)。ここで、所定の第1のタイミングは、データ保存領域220に保存されているデータのサイズが一定サイズを超えた場合、メモリシステム1の電源断が行われる場合、定期的なタイミング、等の任意のタイミングであってよい。ここで一定サイズとは、クラスタ単位、ページ単位等任意の単位であってよい。
また、所定の第1のタイミングは、例えば、メモリシステム1が電源断を指定するコマンドや省電力モードへの移行を指定するコマンドをホスト装置2から受信した場合であってもよい。
削除要求を受けていないと判定した場合も(ステップ704:No)、メモリコントローラ30の制御部32は、所定の第1のタイミングか否かを判定する(ステップ707)。
所定の第1のタイミングである場合(ステップ707:Yes)、メモリコントローラ30の制御部32は、データ保存領域220に保存されているユーザデータおよび削除要求のデータをNANDメモリ10へ保存し、不揮発化する(ステップ708)。メモリシステム1の不意の電源断等によりRAM20のデータ保存領域220に格納されているユーザデータや削除要求のデータが消滅するのを防ぐために、データ保存領域220に格納されているユーザデータや削除要求のデータをNANDメモリ10のデータ領域110に反映、不揮発化させる必要があるからである。
なお、制御部22によるデータ保存領域220に格納されているユーザデータのNANDメモリ10のデータ領域110への保存は、ユーザデータに対応するログ情報のNANDメモリ10のデータ領域110への保存も含む。また、制御部22によるデータ保存領域220に格納されている削除要求のデータのNANDメモリ10のデータ領域110への保存は、削除要求のデータに対応するログ情報のNANDメモリ10のデータ領域110への保存も含む。
不揮発化対象のユーザデータのNANDメモリ10のデータ領域110への保存は、制御部32が、不揮発化対象のユーザデータのNAND内物理アドレスに対するデータの書き込みをメモリI/F35へ指示し、メモリI/F35経由でNANDメモリ10へ保存することにより実現される。
不揮発化対象の削除要求のデータのNANDメモリ10のデータ領域110への保存は、制御部32が、不揮発化対象の削除要求のデータのNAND内物理アドレスに対するデータの書き込みをメモリI/F35へ指示し、メモリI/F35経由でNANDメモリ10へ保存することにより実現される。
不揮発化の対象となるデータは、RAM20のデータ保存領域220に保存されているユーザデータおよび削除要求のデータであってセクタフラグにより有効データと判定されたデータであり、有効データと判定されたデータの一部であってもよいし、全部であってもよい。
つぎにメモリコントローラ30の制御部32は、所定の第2のタイミングか否かを判定する(ステップ709)。また、所定の第1のタイミングではないと判定した場合も(ステップ707:No)、メモリコントローラ30の制御部32は、所定の第2のタイミングか否かを判定する(ステップ709)。
所定の第2のタイミングである場合(ステップ709:Yes)、メモリコントローラ30の制御部32は、管理情報保存領域230に保存されている論理NAND管理情報232、NAND内論物変換情報233を不揮発化する(ステップ710)。
メモリコントローラ30の制御部32は、RAM20の管理情報保存領域230に保存されている論理NAND管理情報232、NAND内論物変換情報233の全てまたは一部のデータの書き込みをメモリI/F35へ指示し、メモリI/F35経由でNANDメモリ10へ保存する。
また、メモリコントローラ30の制御部32は、RAM20の管理情報保存領域230に保存されている論理NAND管理情報232、NAND内論物変換情報233のうち、不揮発化されていない管理情報のみの書き込みをメモリI/F35へ指示し、メモリI/F35経由でNANDメモリ10へ保存してもよい。
所定の第2のタイミングは、例えば、データ保存領域220に保存されているユーザデータおよび削除要求のデータであってNANDメモリ10へ保存されるデータのサイズが一定単位に達する毎、つまり、NANDメモリ10のデータ領域110に保存されるデータのサイズが一定サイズに達する毎であってもよい。ここで一定サイズとは、クラスタサイズ、ページサイズ、ブロックサイズ等任意のサイズでよい。
また、所定の第2のタイミングは、例えば、NANDメモリ10のデータ領域110へ保存されるデータがデータ領域110のある所定の領域へ保存し終わる毎であってもよい。所定の領域とは、ページ単位で区切られた領域、ブロック単位で区切られた領域等任意の領域であってよい。
また、所定の第2のタイミングは、例えば、管理情報保存領域230に保存されている論理NAND管理情報232、NAND内論物変換情報233のうち、不揮発化されていない管理情報が一定サイズに達する毎であってもよい。
また、所定の第2のタイミングは、例えば、メモリシステム1が電源断を指定するコマンドや省電力モードへの移行を指定するコマンドをホスト装置2から受信した場合であってもよい。
また、所定の第2のタイミングは、所定の第1のタイミングと重なるタイミングであってもよい。
所定の第2のタイミングでない場合(ステップ709:No)、図7に示すフローチャートは終了する。
図7のフローチャートでは、ステップ701乃至ステップ703に示すユーザデータの書き込み要求受信に伴う処理、ステップ704乃至ステップ706に示す削除要求受信に伴う処理、ステップ707およびステップ708に示すユーザデータ、削除データの不揮発化処理、ステップ709およびステップ710に示す管理情報の不揮発化処理の順に実行されるようになっているが、制御部32はこれらの処理を順不同で実行してもよい。また、これらの処理の実行タイミングや、実行周期は、同じであってもよいし、異なってもよい。
図8は、比較例に係るメモリシステムのホスト装置2から受信した書き込み要求および削除要求に対するデータの不揮発化処理の一例を示すフローチャートである。このフローチャートは、図7と同様にホスト装置2から書き込み要求または削除要求を受け、要求のあったデータおよびこれに対応する情報をNANDメモリ10へ保存する処理を示している。
比較例に係るメモリシステムのシステム構成例は図1に示すブロック図と同様である。また比較例に係るメモリシステムのRAM20の領域構成やNANDメモリ10の領域構成は図3および図4に示す模式図と同様である。
また、比較例に係るメモリシステムのRAM20の管理情報保存領域230で管理される管理情報も本実施形態に係るメモリシステムのRAM30の管理情報保存領域230で管理される管理情報と同様である。
図8のフローチャートでも、図7に示すフローチャートと同様に、比較例に係るメモリシステムのメモリコントローラがホスト装置2からホストI/F31経由で書き込み要求または削除要求の受信が可能であることを前提として説明を行う。
比較例に係るメモリシステムのメモリコントローラは、ホスト装置2から書き込み要求を受けたか判定し(ステップ801)、書き込み要求を受ける(ステップ801:Yes)と、比較例のメモリシステムのメモリコントローラ30の制御部32は、書き込み要求で指定された論理アドレスに対応するNAND内物理アドレスおよびRAM内物理アドレスを決定し、決定された物理アドレスを管理情報保存領域230の管理情報へ反映させる(ステップ802)。
ステップ801の処理内容はステップ701の処理内容と同じである。またステップ802の処理内容はステップ702の処理内容と同じである。
そして、比較例に係るメモリシステムのメモリコントローラ30の制御部32は、書き込み要求で指定された書き込み対象のユーザデータを符号化し、符号化されたデータをRAM20のデータ保存領域220へ書き込む(ステップ803)。ステップ803の処理内容はステップ703の処理内容と同じである。
つぎに、比較例に係るメモリシステムのメモリコントローラ30の制御部32は、ホスト装置2から削除要求を受けたか判定し(ステップ804)、削除要求を受ける(ステップ804:Yes)と、削除要求のデータの保存先となるNAND内物理アドレスおよびRAM内物理アドレスを決定し、決定された物理アドレスを管理情報保存領域230の管理情報であるRAM管理情報231、論理NAND管理情報232、NAND内論物変換情報233へ反映させる(ステップ805)。
ステップ804の処理内容はステップ704の処理内容と同じである。また、ステップ805の処理内容はステップ705の処理内容と同じである。
つぎに、比較例に係るメモリシステムのメモリコントローラ30の制御部32は、RAM20のデータ保存領域220に保存されているデータを不揮発化する所定の第1のタイミングか否かを判定し(ステップ806)、所定の第1のタイミングである場合(ステップ806:Yes)、データ保存領域2200に保存されているユーザデータをNANDメモリ10へ保存、不揮発化する(ステップ807)。
ステップ806の処理内容はステップ707の処理内容と同じである。また、本実施形態に係るメモリシステムの場合と同様に、データ保存領域220に格納されているユーザデータのNANDメモリ10のデータ領域110への保存は、ユーザデータに対応するログ情報のNANDメモリ10のデータ領域110への保存も含む。
つぎに、比較例に係るメモリシステム1のメモリコントローラ30の制御部32は、所定の第2のタイミングか否かを判定し(ステップ808)、所定の第2のタイミングである場合(ステップ808:Yes)、管理情報保存領域230に保存されている論理NAND管理情報232、NAND内論物変換情報233を不揮発化する(ステップ809)。
ステップ808の処理内容はステップ709の処理内容と同じである。また、ステップ809の処理内容はステップ710の処理内容と同じである。
図8に示すように、比較例に係るメモリシステムは、ホスト装置2から受信した書き込み要求で指定されたユーザデータを不揮発化するものの、ホスト装置2から受信した削除要求のデータを不揮発化しない。比較例に係るメモリシステムでは、ホスト装置2から受信した削除要求の反映は、管理情報保存領域230の論理NAND管理情報232、NAND内論物変換情報233の情報を、NANDメモリ10の管理情報保存領域120へ保存することにより実現される。
このため、管理情報保存領域230の論理NAND管理情報232、NAND内論物変換情報233の情報がNANDメモリ10の管理情報領域120へ保存されれば、比較例に係るメモリシステムも、本実施形態に係るメモリシステムと同様に、メモリシステムの再起動後も、ホスト装置2から受信した削除要求はメモリシステムに反映され、削除要求で指定されたLBAに対応するデータは無効データとして扱われる。
しかし、比較例に係るメモリシステムでは、例えば不正電源断等により、管理情報保存領域230の論理NAND管理情報232、NAND内論物変換情報233を不揮発化する前に電源が遮断された場合、不正電源断後のメモリシステム1の起動時に、NANDメモリ10の管理情報領域120に保存されている論理NAND管理情報232、NAND内論物変換情報233がRAM20の管理情報保存領域230に展開される際、RAM20の管理情報保存領域230に展開された論理NAND管理情報232、NAND内論物変換情報233にはホスト装置2からの削除要求は反映されていない。
そのため、比較例に係るメモリシステムでは、不正電源断等により、管理情報保存領域230の論理NAND管理情報232、NAND内論物変換情報233を不揮発化できなかった場合には、不正電源断後のメモリシステム起動時に復元できるのは、論理NAND管理情報232、NAND内論物変換情報233のうち不揮発化できた情報、つまり、NANDメモリ10の管理情報領域120に保存されている論理NAND管理情報232、NAND内論物変換情報233に反映されている情報に限られる。
すなわち、比較例に係るメモリシステムでは、不正電源断等により、論理NAND管理情報232、NAND内論物変換情報233を不揮発化できなかった場合には、不正電源断が起こる前にホスト装置2から受信した削除要求の内容を、不正電源断後のメモリシステム起動時に復元できない場合が生じる。
これに対し、本実施形態のメモリシステムでは、ホスト装置2から削除要求を受信した場合、所定のタイミングで削除要求のデータをNANDメモリ10のデータ領域110へ保存することにより削除要求のデータを不揮発化する。
そのため、例えば不正電源断等により、RAM20の管理情報保存領域230の論理NAND管理情報232、NAND内論物変換情報233がNANDメモリ10の管理情報領域120へ保存される前に電源が遮断された場合であっても、削除要求のデータがNANDメモリ10のデータ領域110に保存されていれば、その後のメモリシステム1の起動時に、NANDメモリ10のデータ領域110に保存されている削除要求のデータおよび削除要求のデータに対応するログ情報を読み出すことにより、不正電源断前にどのLBAに対して削除要求を受信したかを特定できる。よって、NANDメモリ10の管理情報領域120に保存されている論理NAND管理情報232、NAND内論物変換情報233に削除要求の内容が反映されていない場合であっても、NANDメモリ10の管理情報領域120に保存されている論理NAND管理情報232、NAND内論物変換情報233をRAM20の管理情報保存領域230へ展開する際に、メモリシステム1の起動前にホスト装置2から受信した削除要求の内容を論理NAND管理情報232、NAND内論物変換情報233の情報に反映することができる。
すなわち、本実施形態に係るメモリシステムでは、不正電源断等により、論理NAND管理情報232、NAND内論物変換情報233を不揮発化できなかった場合であっても、不正電源断等の前にホスト装置2から受信した削除要求の内容を、その後のメモリシステムの起動時に復元することができる。
(適用例)
図9および図10は、メモリシステム1とホスト装置2が組み込まれたシステム4の例を示す。システム4は、電子機器の一例である。
図9および図10は、メモリシステム1とホスト装置2が組み込まれたシステム4の例を示す。システム4は、電子機器の一例である。
図9に示すように、メモリシステム1は、例えばサーバ等のシステム4内に記憶装置として適用される。システム4は、メモリシステム1とメモリシステム1が装着されたホスト装置2とを含む。ホスト装置2は、例えば上方に開口した複数のコネクタ5を有する。コネクタ5は、例えば、スロットである。
図9に示すシステム4では、外部電源3はホスト装置2に内蔵されており、外部電源3からコネクタ5経由でメモリシステム1の電源回路へ電源が供給される。
図9に示す例では、メモリシステム1は、基板50を含み、基板50に、NANDメモリ10とメモリコントローラ30が搭載される。複数のメモリシステム1は、ホスト装置2のコネクタ5に其々装着され、略鉛直方向に起立した姿勢で互いに並べて支持される。このような構成によれば、複数のメモリシステム1をコンパクトに纏めて実装可能であり、ホスト装置2の小型化を図ることができる。ホスト装置2からコネクタ5経由でメモリシステム1に対して前述の書き込み要求、削除要求が出力される。
また、メモリシステム1は、例えばノートブック型ポータブルコンピュータやタブレット端末、その他デタッチャブルノートPC(personal computer)のような電子機器のストレージデバイスとして使用されるものでもよい。図10に示すように、メモリシステム1は、例えば、ホスト装置2に対応するポータブルコンピュータに実装される。ここでは、メモリシステム1を含むポータブルコンピュータ全体がシステム4となる。
ポータブルコンピュータは、本体1001と、表示ユニット1002と、を備える。表示ユニット1002は、ディスプレイハウジング1003と、このディスプレイハウジング1003に収容された表示装置1004と、を備えており、ポータブルコンピュータからメモリシステム1に対して前述の書き込み要求、削除要求が出力される。
本体1001は、筐体1005と、キーボード1006と、ポインティングデバイスであるタッチパッド1007と、を備える。筐体1005は、メイン回路基板、ODD(Optical Disk Device)ユニット、カードスロット1008など、を含む。
カードスロット1008は、筐体1005の側面に設けられる。ユーザは、筐体1005の外部から追加デバイス1009をカードスロット1008に挿入することが可能である。
メモリシステム1は、HDD(Hard disk drive)の置き換えとして、ポータブルコンピュータ内部に実装された状態で使用してもよいし、追加デバイス1009として使用してもよい。
なお、本発明は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの実施形態は、その他のさまざまな形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これらの実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1・・・メモリシステム
2・・・ホスト装置
3・・・外部電源
4・・・システム
5・・・コネクタ
10・・・NANDメモリ
11・・・メモリチップ
20・・・RAM
30・・・メモリコントローラ
31・・・ホストI/F
32・・・制御部
33・・・RAMC
34・・・符号化部/復号部
35・・・メモリI/F
36・・・内部バス
40・・・電源回路
50・・・基板
2・・・ホスト装置
3・・・外部電源
4・・・システム
5・・・コネクタ
10・・・NANDメモリ
11・・・メモリチップ
20・・・RAM
30・・・メモリコントローラ
31・・・ホストI/F
32・・・制御部
33・・・RAMC
34・・・符号化部/復号部
35・・・メモリI/F
36・・・内部バス
40・・・電源回路
50・・・基板
Claims (8)
- ホスト装置に接続可能であって、
揮発性メモリと
消去単位であるブロックを複数備える不揮発性メモリと、
前記揮発性メモリと前記不揮発性メモリを制御し、
前記ホスト装置から受信した削除要求で指定された論理アドレスおよび削除範囲を示す第1のデータを前記不揮発性メモリに保存し、
前記ホスト装置から受信した書き込み要求で指定された第2のデータを前記不揮発性メモリに保存するメモリコントローラと、
を備えるメモリシステム。 - 前記メモリコントローラは、所定の第1のタイミングで前記第1のデータおよび前記第2のデータのうち少なくとも一つを前記不揮発性メモリに保存し、前記揮発性メモリに保存されており前記ホスト装置で管理される論理アドレスと前記不揮発性メモリの物理アドレスとを関連付ける管理情報を所定の第2のタイミングで前記不揮発性メモリに保存する請求項1に記載のメモリシステム。
- 前記不揮発性メモリは、データ領域と管理情報領域を備え、
前記メモリコントローラは、前記第1のデータおよび前記第2のデータのうち少なくとも一つを前記データ領域に保存し、前記管理情報を前記管理情報領域に保存する請求項2に記載のメモリシステム。 - 前記メモリコントローラは、前記削除要求に対して、前記管理情報の前記削除要求で指定された論理アドレスから物理アドレスへの関連付けを削除する請求項2または請求項3に記載のメモリシステム。
- 前記メモリコントローラは、前記第1のデータを前記データ領域に保存する場合、前記削除要求の受信時期に対応する第1情報を含む第1のログを前記データ領域へ保存する請求項3または請求項4に記載のメモリシステム。
- 前記メモリコントローラは、前記第2のデータを前記データ領域に保存する場合、前記第2のデータに対応する論理アドレスおよび前記書き込み要求の受信時期に対応する第2情報を含む第2のログを前記データ領域へ保存する請求項5に記載のメモリシステム。
- 前記メモリコントローラは、前記メモリシステムの起動時に、前記管理情報領域に保存された前記管理情報と、前記データ領域に保存された前記第1のログおよび前記第2のログと、を使用して、管理情報を生成し、前記生成された管理情報を前記不揮発性メモリへ保存する請求項6に記載のメモリシステム。
- 前記第1のデータは、前記削除要求で指定された論理アドレスと前記削除範囲のサイズを示す情報を含む請求項1乃至請求項7の何れか1項に記載のメモリシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017057713A JP2018160156A (ja) | 2017-03-23 | 2017-03-23 | メモリシステム |
US15/693,411 US10949090B2 (en) | 2017-03-23 | 2017-08-31 | Memory system that stores data designated by a deletion request in nonvolatile memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017057713A JP2018160156A (ja) | 2017-03-23 | 2017-03-23 | メモリシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018160156A true JP2018160156A (ja) | 2018-10-11 |
Family
ID=63583374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017057713A Pending JP2018160156A (ja) | 2017-03-23 | 2017-03-23 | メモリシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US10949090B2 (ja) |
JP (1) | JP2018160156A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7547231B2 (ja) | 2021-01-27 | 2024-09-09 | キオクシア株式会社 | メモリシステムおよび制御方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6845021B2 (ja) * | 2017-01-12 | 2021-03-17 | 株式会社東芝 | 電子装置、icカードおよび情報処理システム |
KR102596407B1 (ko) * | 2018-03-13 | 2023-11-01 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
JP7115322B2 (ja) * | 2019-01-08 | 2022-08-09 | 富士通株式会社 | ストレージ装置、ストレージ制御装置及びストレージ制御プログラム |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996027157A1 (fr) * | 1995-02-28 | 1996-09-06 | Ntt Data Communications Systems Corporation | Systeme associatif decentralise et traitements de journaux et de reprise dans celui-ci |
US7334098B1 (en) * | 2000-06-06 | 2008-02-19 | Quantum Corporation | Producing a mass storage backup using a log of write commands and time information |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US8244958B2 (en) * | 2005-05-09 | 2012-08-14 | Sandisk Il Ltd. | Method and system for facilitating fast wake-up of a flash memory system |
JP4800046B2 (ja) * | 2006-01-31 | 2011-10-26 | 株式会社日立製作所 | ストレージシステム |
US8151060B2 (en) * | 2006-11-28 | 2012-04-03 | Hitachi, Ltd. | Semiconductor memory system having a snapshot function |
US9189642B2 (en) * | 2007-03-14 | 2015-11-17 | Oracle America, Inc. | Safe processing of on-demand delete requests |
JP2009075759A (ja) * | 2007-09-19 | 2009-04-09 | Hitachi Ltd | ストレージ装置及びストレージ装置におけるデータの管理方法 |
JP2010152514A (ja) | 2008-12-24 | 2010-07-08 | Toshiba Corp | メモリシステム |
US8004884B2 (en) * | 2009-07-31 | 2011-08-23 | International Business Machines Corporation | Iterative write pausing techniques to improve read latency of memory systems |
JP2011128998A (ja) | 2009-12-18 | 2011-06-30 | Toshiba Corp | 半導体記憶装置 |
JP2012123499A (ja) * | 2010-12-07 | 2012-06-28 | Toshiba Corp | メモリシステム |
JP5722685B2 (ja) * | 2011-04-12 | 2015-05-27 | 株式会社日立製作所 | 半導体装置、不揮発性メモリ装置の制御方法 |
US9037786B2 (en) * | 2011-09-23 | 2015-05-19 | Avalanche Technology, Inc. | Storage system employing MRAM and array of solid state disks with integrated switch |
US8949512B2 (en) | 2012-02-17 | 2015-02-03 | Apple Inc. | Trim token journaling |
JP2013200688A (ja) | 2012-03-23 | 2013-10-03 | Toshiba Corp | メモリシステムおよびその制御方法 |
JP5813589B2 (ja) * | 2012-07-13 | 2015-11-17 | 株式会社東芝 | メモリシステムおよびその制御方法 |
KR20140056657A (ko) * | 2012-10-30 | 2014-05-12 | 삼성전자주식회사 | 메인 메모리를 구비한 컴퓨터 시스템 및 그것의 제어 방법 |
-
2017
- 2017-03-23 JP JP2017057713A patent/JP2018160156A/ja active Pending
- 2017-08-31 US US15/693,411 patent/US10949090B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7547231B2 (ja) | 2021-01-27 | 2024-09-09 | キオクシア株式会社 | メモリシステムおよび制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US10949090B2 (en) | 2021-03-16 |
US20180275875A1 (en) | 2018-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10657041B2 (en) | Data management method and storage device performing the same | |
US9880939B2 (en) | Memory system and information processing system | |
JP5585919B2 (ja) | 電源遮断管理 | |
EP2324428B1 (en) | Memory system and method of controlling memory system | |
CN109284202B (zh) | 控制器及其操作方法 | |
US20120072798A1 (en) | Semiconductor device | |
CN110457230B (zh) | 存储器系统及其操作方法 | |
US10120606B2 (en) | Data storage devices including storage controller circuits to select data streams based on application tags and computing systems including the same | |
US20170075811A1 (en) | Memory system | |
US11782840B2 (en) | Memory system, operation method thereof, and database system including the memory system | |
KR20100094241A (ko) | 예비 블록을 포함하지 않는 불휘발성 메모리 장치 | |
US10949090B2 (en) | Memory system that stores data designated by a deletion request in nonvolatile memory | |
US20200034081A1 (en) | Apparatus and method for processing data in memory system | |
US10990536B2 (en) | Memory controller, operating method of the memory controller, and storage device including the memory controller | |
KR20210001508A (ko) | 메모리 시스템의 MLC(Multi Level Cell)영역에 데이터를 안전하게 저장하기 위한 장치 및 그 방법 | |
US10061377B2 (en) | Memory device and information processing device | |
JP2014021752A (ja) | 半導体記憶装置 | |
CN113590503B (zh) | 一种非挥发性记忆体存储器的垃圾回收方法与垃圾回收系统 | |
US10133764B2 (en) | Reduction of write amplification in object store | |
KR20210030599A (ko) | 데이터를 분산 리드할 수 있는 메모리 시스템 및 메모리 시스템의 동작방법 | |
KR20180114649A (ko) | 복수의 프로세서를 포함하는 컨트롤러 및 컨트롤러의 동작방법 그리고 멀티 프로세서 시스템 | |
CN113590502B (zh) | 一种非挥发性记忆体存储设备的垃圾回收方法与垃圾回收系统 | |
KR20190069803A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
US11675522B2 (en) | Memory system and operating method thereof | |
US20200310873A1 (en) | Controller and memory system including the same |
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 |