JP2017107318A - メモリシステム、情報処理装置および処理方法 - Google Patents

メモリシステム、情報処理装置および処理方法 Download PDF

Info

Publication number
JP2017107318A
JP2017107318A JP2015239265A JP2015239265A JP2017107318A JP 2017107318 A JP2017107318 A JP 2017107318A JP 2015239265 A JP2015239265 A JP 2015239265A JP 2015239265 A JP2015239265 A JP 2015239265A JP 2017107318 A JP2017107318 A JP 2017107318A
Authority
JP
Japan
Prior art keywords
write
memory
data
update
extended
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.)
Abandoned
Application number
JP2015239265A
Other languages
English (en)
Inventor
博行 根本
Hiroyuki Nemoto
博行 根本
俊逸 小原
Shunitsu Kohara
俊逸 小原
和也 橘内
Kazuya Kitsunai
和也 橘内
荒井 智
Satoshi Arai
智 荒井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2015239265A priority Critical patent/JP2017107318A/ja
Priority to US15/243,654 priority patent/US9940071B2/en
Publication of JP2017107318A publication Critical patent/JP2017107318A/ja
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

【課題】ライト要求のキャンセルの性能を適応的に制御可能なメモリシステムを提供することである。
【解決手段】実施形態によれば、メモリシステムは、第1メモリと、制御部と、を具備する。制御部は、機能拡張された拡張ライトが要求され、且つ、当該拡張ライトがキャンセルされた場合、前記書き込みデータに対応する論理アドレスと第1メモリの物理アドレスとを対応づける対応情報を、拡張ライトが行われなかった場合の状態とする。制御部は、拡張ライト毎に、対応情報の更新処理を第1更新処理または第2更新処理の何れかから選択する。第1更新処理は、拡張ライトのキャンセルがもはや発生しないことが確定するまで対応情報の更新を保留し、キャンセル時、その更新を取り止める処理である。第2更新処理は、第1メモリへの書き込みに関するログ情報を用いて、拡張ライトが行われなかった場合の状態に対応情報を更新する処理である。
【選択図】図1

Description

本発明の実施形態は、メモリシステム、情報処理装置および処理方法に関する。
近年、不揮発性メモリを備えるメモリシステムが広く普及している。このようなメモリシステムの1つとして、NAND型フラッシュメモリを備えるSSD(Solid State Drive)が知られている。SSDは、様々な情報処理装置のメインストレージとして使用されている。
また、データの整合性を保つために、SSD等のメモリシステムに実装し得る機能の1つとして、Atomic Write機能が知られている。Atomic Write機能は、Atomic Writeとして書き込みが要求された場合、データを受け取った後でも、書き込みを確定する要求を受ける前であれば、Atomic Writeで書き込もうとしたデータをキャンセルすること、より具体的には、データの書き込み要求を無かったものとすることを可能とする。Atomic Write機能は、書き込みがキャンセルされた場合、メモリシステムの(論理的な)状態を、その書き込みが実施されていない状態に戻すこと(ロールバック)を保証する。Atomic Write機能におけるロールバックを、ここでは、Atomic Writeキャンセルと称する。Atomic Write機能では、Atomic Writeとして書き込みが要求された場合、その要求に関わるデータを、すべてコミットするか、すべてキャンセルする。
米国特許出願公開第2014/023159号明細書
メモリシステムに対して要求されるAtomic Writeの性能は、例えばアプリケーションプログラム毎などにより異なり得る。従って、メモリシステムは、ライト要求のキャンセルの性能を適応的に制御可能であることが望ましい。
本発明が解決しようとする課題は、ライト要求のキャンセルの性能を適応的に制御可能なメモリシステム、情報処理装置および処理方法を提供することである。
実施形態によれば、メモリシステムは、不揮発性の第1メモリと、制御部と、を具備する。前記制御部は、前記第1メモリへの書き込みデータを受信中または受信後に当該書き込みデータの前記第1メモリへの書き込みを伴うデータの書き込み要求を無かったものとすべくキャンセルされ得る機能拡張された拡張ライトが要求され、且つ、当該拡張ライトがキャンセルされた場合、前記書き込みデータに対応する論理アドレスと前記第1メモリの物理アドレスとを対応づける対応情報を、当該拡張ライトの書き込みデータのすべてが前記第1メモリへ書き込まれなかった場合の状態とする。前記制御部は、要求された拡張ライト毎に、その拡張ライトのキャンセルに対応すべく適用する前記対応情報の更新処理を、第1更新処理または第2更新処理の何れかから選択する。前記第1更新処理は、前記拡張ライトのキャンセルがもはや発生しないことが確定するまでの間、当該拡張ライトの書き込みデータの前記第1メモリへの書き込みに伴う前記対応情報の更新を保留し、当該拡張ライトがキャンセルされた場合、保留した前記対応情報の更新を取り止める処理、または、前記書き込みデータの前記第1メモリへの書き込みを保留し、当該拡張ライトがキャンセルされた場合、保留した前記書き込みデータの前記第1メモリへの書き込みを取り止める処理である。前記第2更新処理は、前記拡張ライトの書き込みデータの前記第1メモリへの書き込みに伴って更新された前記対応情報を、前記第1メモリへの書き込みに関するログ情報を用いて、当該拡張ライトの書き込みデータが前記第1メモリへ書き込まれなかった場合の状態に更新する処理である。
実施形態に係るメモリシステムの構成の一例を示す図。 実施形態のメモリシステムにおけるNANDメモリでのデータ処理単位と位置管理単位を模式的に示す図。 実施形態のメモリシステムにおいて用いられるアドレス変換テーブルの一例を示す図。 実施形態のメモリシステムにおいて用いられる有効クラスタ数管理テーブルの一例を示す図。 実施形態におけるログ情報の一例を示す図。 通常WriteコマンドとAtomic Writeコマンドとの違いを示す概念図。 Atomic Writeの基本的な動作例を示す図。 実施形態のメモリシステムが実装するAtomic Write機能が備えるLUT更新保留方式の概要を説明するための図。 実施形態のメモリシステムが実装するAtomic Write機能が備えるLUT巻戻方式の概要を説明するための図。 実施形態のメモリシステムが実装するAtomic Write機能が備えるLUT巻戻方式の実現方式として考えられる2つの方式(逆方向方式、順方向方式)の概要を説明するための図。 実施形態のメモリシステムの記憶領域(NANDメモリ・更新保存用RAM領域)が複数に分割される一例を示す図。 実施形態のメモリシステムにおいて用いられるAW属性管理テーブルの一例を示す図。 実施形態のメモリシステムにおいて用いられるAW実行管理テーブルの一例を示す図。 実施形態のメモリシステムにおけるLUT更新保留方式またはLUT巻戻方式の適応的な選択の動作例を説明するための図。 実施形態のメモリシステムにおいて実行されるNameSpaceに対するAW属性設定処理の手順の一例を示す図。 実施形態のメモリシステムのAtomic Write開始時における動作手順の一例を示す図。 実施形態のメモリシステムにおいて実行されるLUT更新保留方式またはLUT巻戻方式の判定処理の手順の一例を示す図。 実施形態のメモリシステムにおいて実行されるLUT更新保留方式からLUT巻戻方式への変更処理の手順の一例を示す図。 実施形態のメモリシステムのAtomic Write中における動作手順の一例を示す図。 実施形態のメモリシステムのAtomic Write完了時における動作手順の一例を示す図。 実施形態のメモリシステムのAtomic Writeキャンセル(ロールバック)時における動作手順の一例を示す図。
以下、実施の形態について図面を参照して説明する。
図1は、実施形態に係るメモリシステムの構成の一例を示す図である。このメモリシステム10は、例えば、SSDである。以下では、不揮発性メモリとしてNAND型フラッシュメモリ(以下、NANDメモリという)を用いる場合を例に挙げる。また、本実施形態のメモリシステム10は、Atomic Write機能を実装する。
メモリシステム10は、ホストインタフェース部11、第1メモリであるNANDメモリ12、NANDコントローラ13、第2メモリであるRAM(Random Access Memory)14および制御部15を備える。
ホストインタフェース部11は、コンピュータまたはCPU(Central Processing Unit)コアなどの図示しないホスト装置との間のインタフェースである。このインタフェースとしては、SAS(Serial Attached SCSI)、SATA(Serial ATA[Advanced Technology Attachment])、Atomic Write機能をサポートするNVMe(NVM Express)が動作するPCIe(PCI express)等が使用し得る。
NANDメモリ12は、データを不揮発に記憶することができる記憶媒体であり、ユーザデータもしくはプログラム、またはメモリシステム10内でのデータなどの格納位置(記録位置)を管理する管理情報などの保存用の記憶部として使用される。具体的には、ホスト装置側によって指定されたデータまたはプログラムなどを格納するユーザデータ格納領域121と、NANDメモリ12でのデータ記録位置を管理する管理情報などを格納する管理情報格納領域122と、を有する。
図2は、実施形態におけるNANDメモリでのデータ処理単位と位置管理単位を模式的に示す図である。NANDメモリ12においては、物理ページが複数個集まって1論理ページとなり、また、論理ページが複数個集まって1論理ブロックとなる。データの書き込み単位は、1論理ページ単位、より具体的には、1論理ページを構成しているバンク単位である。
また、1物理ページより小さい単位であるクラスタ単位に対して物理アドレスが割り当てられる。従って、後述する論理アドレスと物理アドレスの対応関係を保持するアドレス変換テーブルは、クラスタ単位で管理される。クラスタサイズは、たとえばホスト装置からの最小アクセス単位であるセクタサイズの自然数倍のサイズであり、たとえばクラスタサイズの自然数倍が物理ページサイズとなるように定められる。図2の場合では、1物理ページは10クラスタで構成されるものとし、1論理ページは、別々のNANDメモリのn物理ページ(nは自然数)で構成されるものとする。
図1に戻り、管理情報格納領域122には、NANDメモリ12内でのデータの記憶位置を管理する管理情報を記憶するアドレス変換テーブル1221と、アドレス変換テーブル1221の格納位置を示すアドレス変換テーブル記憶位置情報1222と、各論理ブロックにおける有効クラスタ数を示す有効クラスタ数管理テーブル1223と、メモリシステム10の電源断、ホストインタフェースの切断、またはアボート要求などの書き込みを中断すべき要因(以下、書き込み中断要因という)発生時にユーザデータが書かれた最後の物理アドレスである中断時書き込み位置情報1224と、を含む情報が格納される。
図3は、管理情報としてのアドレス変換テーブルの一例を示す図である。NANDメモリ12では、クラスタ単位でデータの記録位置を管理している。アドレス変換テーブル1221は、クラスタ単位のデータに対する論理アドレスと、そのデータの物理的なデータ記録位置、つまり物理アドレスと、を対応付ける管理情報である。論理アドレスは、ホストからみたメモリシステムのデータの論理アドレス空間上における位置を特定するために使われるアドレスである。また、物理アドレスは、NANDメモリ12内でのデータの記録位置に対してクラスタ単位で物理的に割り当てられるアドレスである。
図4は、管理情報としての有効クラスタ数管理テーブルの一例を示す図である。NANDメモリ12では、論理ブロック単位で有効データが格納されたクラスタ(有効クラスタ)の数を管理している。有効クラスタ数管理テーブル1223は、NANDメモリ12内の各論理ブロックに付された識別子(論理ブロック番号)と、その論理ブロックに存在する有効クラスタ数と、を対応付けている。
NANDコントローラ13は、NANDメモリ12とのインタフェース処理を行う。ここでは、詳細を省略するが、NANDコントローラ13は、誤り訂正処理やNANDメモリ12とRAM14との間のアクセス制御などの処理を行う。
図1に戻り、RAM14は、ホスト装置とNANDメモリ12との間でのデータ転送用バッファ、またはNANDメモリ12内で移動されるデータの一時記憶用バッファとして機能するデータバッファ領域141と、NANDメモリ12内でのデータの記録位置を管理する管理情報を記憶する管理情報記憶領域142と、を有する。データバッファ領域141は、ホスト装置からの読み出し要求時にNANDメモリ12から読み出したデータを一時的に記憶する読み出しバッファ1411と、ホスト装置からの書き込み要求時にNANDメモリ12へ書き込むデータを一時的に記憶する書き込みバッフア1412と、を有する。
管理情報記憶領域142は、上記したようにNANDメモリ12内でのデータの記憶位置を管理する管理情報として、アドレス変換テーブル1421と、有効クラスタ数管理テーブル1422と、を有する。アドレス変換テーブル1421は、メモリシステム10起動時に、NANDメモリ12のアドレス変換テーブル1221の一部または全部がRAM14の管理情報記憶領域142に読み出されたものである。また、有効クラスタ数管理テーブル1422も、メモリシステム10起動時にNANDメモリ12の有効クラスタ数管理テーブル1223がRAM14の管理情報記憶領域142に読み出されたものである。
また、RAM14には、後述するAW(Atomic Write)属性管理テーブル1431およびAW(Atomic Write)実行管理テーブル1432が格納される。
この実施形態においては、NANDメモリ12へのデータの書き込みまたはNANDメモリ12内でのデータの消去などによって、データ記録位置(論理アドレスと物理アドレスとの対応関係)に変更が生じた場合には、RAM14上の管理情報はその都度更新されるが、NANDメモリ12に格納されている管理情報に対する変更差分はログとして蓄積している。これによって、書き込み中断要因発生に対しても管理情報を復元可能としている。また、RAM14に格納されている管理情報は、たとえばメモリシステム10の電源がオフされる際などの所定のタイミングでNANDメモリ12へと格納される。
なお、RAM14として、DRAM(Dynamic RAM)、SRAM(Static RAM)、FeRAM(Ferroelectric RAM)、MRAM(Magnetoresistive RAM)、PRAM(Phase change RAM)などを用いることができる。
制御部15は、ホスト装置とNANDメモリ12との間でのデータ転送制御処理、またはNANDメモリ12内でのデータ管理処理などを行う。制御部15は、ログ情報生成部151と、データ処理部152と、管理情報処理部153と、AW(Atomic Write)処理部154と、を有する。
ログ情報生成部151は、データをNANDメモリ12に書き込む場合の論理アドレスと物理アドレスとの対応関係をクラスタ単位で示す書き込みログを論理ページごとにまとめたログ情報を生成する。このログ情報は、アドレス変換テーブル1421の変更の内容を示すものでもある。本実施形態では、Atomic Writeがキャンセルされた場合でも、管理情報を当該Atomic Writeが無かったとした場合の状態に更新することができる情報を書き込みログに付加している。
図5は、実施形態におけるログ情報の一例を示す図である。書き込みログ210は、クラスタ毎に生成される。従って、1物理ページ内に対しては、1物理ページに含まれるクラスタ数分の書き込みログ210が生成される。そして、1論理ページに含まれる書き込みログ210をまとめたものがログ情報200となる。ログ情報200は、1物理ページ内の1つのクラスタに書き込まれる。書き込みログ210は、論理アドレス211と、旧物理アドレス212と、現物理アドレス213と、コマンドタグ214と、Atomic Writeフラグ215と、パディングデータ216と、を有する。
論理アドレス211は、論理アドレス空間上においてクラスタ単位に割り当てられるアドレスである。旧物理アドレス212と現物理アドレス213とは、(Atomic Writeに限らず)データ書き込みが行われる場合において、論理アドレス211に対するデータ書き込み前後の物理アドレスを示している。すなわち、旧物理アドレス212は、データ書き込み前に論理アドレス211に対応づけられていた物理アドレスであり、現物理アドレス213は、データ書き込み後に論理アドレスに対応づけられていた物理アドレスである。これらの論理アドレス211と、旧物理アドレス212と、現物理アドレス213とは、一般的なNANDメモリ12を使用したメモリシステム10での書き込みログに記録されているものである。論理アドレス211、旧物理アドレス212および現物理アドレス213のサイズは、たとえば32ビットとすることができる。
コマンドタグ214は、コマンド(ライトコマンドか否か、および、Atomic Writeか否かを問わない)が発行される度に付される番号(識別子)である。同時に発行されているコマンドの間で番号は重ならないものとする。コマンドタグ214は、たとえば8ビットのサイズとすることができる。
Atomic Writeフラグ215は、そのコマンド(ライトコマンド)がAtomic Writeか否かを示すものであり、Atomic Writeとして書き込みが要求されたデータの最初のクラスタに付される開始フラグと、当該データの最後のクラスタに付される終了フラグとを含む。Atomic Writeとして書き込みが要求されたデータであっても、最初と最後のクラスタ以外のクラスタには、いずれのフラグも付されない。Atomic Writeのライトコマンドは、1クラスタ以下のサイズのデータに対して発行されることもあるので、Atomic Writeフラグ215は、2ビットとして、1クラスタで開始フラグと終了フラグとを立てることを可能にしている。
ライトコマンドが発行された場合、ログ情報生成部151は、書き込みログ210に、論理アドレス211と、旧物理アドレス212と、現物理アドレス213と、を書き込むほかに、コマンドタグ214には、そのライトコマンドに対して付される番号を格納する。また、そのライトコマンドがAtomic Writeであって、論理アドレス211に書き込まれるデータが当該ライトコマンドで指定されたデータの先頭のクラスタである場合には、Atomic Writeフラグ215に開始フラグを立て、最後のクラスタである場合には、Atomic Writeフラグ215に終了フラグを立てる。そのライトコマンドがAtomic Writeでない場合と、Atomic Writeであるが、論理アドレス211に書き込まれるデータが当該ライトコマンドで指定されたデータの先頭および最後以外のクラスタである場合、Atomic Writeフラグ215には、開始フラグまたは終了フラグのいずれも立てない。
パディングデータ216は、書き込みログ210を所定の大きさにするために付加されるデータである。パディングデータのサイズは、たとえば書き込みログ210のサイズを128ビットとすると、22ビットとすることができる。
ここで、図6および図7を参照して、Atomic Writeの概要について説明する。
図6は、通常のライトコマンド(通常Writeコマンド)と、Atomic Writeのライトコマンド(Atomic Writeコマンド)と、の違いを示す概念図である。
図6に示すように、通常WriteコマンドおよびAtomic Writeコマンドのいずれの場合においても、データの書き込みが完了した場合、つまり、旧書き込みデータが新書き込みデータへと完全に置き換えられた場合には、その後、リードコマンドの受領時、完全な新書き込みデータが読み出される。
一方、データの書き込み中、より具体的には、旧書き込みデータを新書き込みデータへ置き換えている途中で、この書き込みがキャンセルされた場合、通常Writeコマンドの場合とAtomic Writeコマンドの場合とでは、その後、リードコマンドの受領時に読み出されるデータに違いが生じる。図6(A)に示すように、通常Writeコマンドの場合、途中まで書き込まれた新書き込みデータと、置き換えられるまでに至らなかった旧書き込みデータとが読み出される。これにより、通常Writeコマンドの場合、書き込み途中でキャンセルが発生すると、データの整合性が失われる場合がある。
これに対して、Atomic Writeコマンドの場合、図6(B)に示すように、キャンセルに伴って、旧書き込みデータから新書き込みデータへの置き換えは無かったものとするためのロールバック(Atomic Writeキャンセル)が実行され、その結果、完全な旧書き込みデータが読み出される。つまり、Atomic Writeコマンドの場合、書き込み途中でキャンセルが発生しても、データの整合性は保たれる。
図7は、Atomic Writeの基本的な動作例を示す図である。
ここでは、まず、図7(A)に示すように、ホスト装置が、リードコマンド、Atomic Writeコマンド、通常Writeコマンドの順に発行したものと想定する。リードコマンドには「128」、Atomic Writeコマンドには「129」、通常Writeコマンドには「130」の識別子が付されている。また、「129」番の最初のAtomic WriteコマンドにはAtomic Write開始フラグが付されている。換言すれば、このAtomic Write開始フラグが付されていることで、「129」番のライトコマンドは、Atomic Writeであることが判別できる。
続いて、図7(B)に示すように、「129」番のAtomic Writeコマンドの完了(Atomic Write Finish)がホスト装置から通知された場合を想定する。この通知により、当該「129」番のAtomic Writeコマンドについてはキャンセルがもはや発生しないことが確定する。この場合、図6(B)に示した、旧書き込みデータから(「129」番のAtomic Writeコマンドで転送された)新書き込みデータへの置き換えが確定する。
次に、図7(C)に示すように、「129」番のAtomic Writeコマンドのキャンセル(Atomic Write Cancel)がホスト装置から通知された場合を想定する。この場合、「129」番のAtomic Writeコマンドで転送された新書き込みデータは破棄され、図6(B)に示した、旧書き込みデータへのロールバックが実行される。
また、Atomic Write中に書き込み中断要因が生じた場合も、同様の動作で、中断されたAtomic Writeについてロールバックが実行される。
このように、Atomic Writeコマンドによる書き込み対象のデータは、完全に書き込まれたか、または、書き込まれなかったかのいずれかとなる。このAtomic Writeは、たとえばNVM EXPRESS仕様で定義されている。
再び、図1を参照する。
データ処理部152は、ホスト装置からの読み出し要求または書き込み要求に対応するNANDメモリ12からのデータ読み出しまたはNANDメモリ12へのデータ書き込みなどの処理を行う。データ書き込みの際には、書き込みデータとその書き込みデータに対応するログ情報とを、書き込み先の論理ページを構成する物理ページに書き込む。なお、ログ情報は、1論理ページ内の所定の位置のクラスタ(たとえば最後のクラスタ)に書き込まれる。
管理情報処理部153は、NANDメモリ12へのデータの書き込みなどによって変化する管理情報が最新の情報となるように管理する。たとえば、NANDメモリ12へのデータの書き込みによって、データの論理アドレスに対応する物理アドレスが変更となる場合に、アドレス変換テーブル1421を新たなデータ記録位置(物理アドレス)で更新する。また、NANDメモリ12へのデータの書き込みなどによる論理ブロック中の有効クラスタ数の変化を有効クラスタ数管理テーブル1422に記録する。なお、アドレス変換テーブル1421の更新について、管理情報処理部153は、AW処理部154と協働する。
さらに、管理情報処理部153は、書き込み中断要因が発生したときに、アドレス変換テーブル1221、アドレス変換テーブル記憶位置情報1222、有効クラスタ数管理テーブル1223、および中断時書き込み位置情報1224をNANDメモリ12に保存する。なお、アドレス変換テーブル1221については、差分量がある閾値を超えたら書き出す動作を適宜行っているが、さらに貯まっているものがあれば書き出す処理を継続して行う。
AW処理部154は、Atomic Writeがキャンセルされた場合またはAtomic Write中に書き込み中断要因が発生した場合に、NANDメモリ12の状態を、当該Atomic Writeに関する書き込みがなされていない状態に戻すための処理を行う。より具体的には、管理情報処理部153と協働して、アドレス変換テーブル1421を当該Atomic Write前の状態に復元するための処理を行う。AW処理部154は、管理部1541、更新保留制御部1542および巻戻制御部1543を有する。これらの詳細については後述する。
前述したように、本実施形態のメモリシステム10は、Atomic Write機能を実装している。また、このAtomic Write機能は、2つのAtomic Write処理方式を備える。ここでは、一方のAtomic Write処理方式を「LUT(Look Up Table)更新保留方式」、他方のAtomic Write処理方式を「LUT巻戻方式」と称することとする。LUTは、アドレス変換テーブルを表している。そして、本実施形態のメモリシステム10は、これら2種類のAtomic Write処理方式の中のいずれかを適応的に選択するようにしたものであり、以下、この点について詳述する。
まず、図8および図9を参照して、本実施形態のメモリシステム10が実装するAtomic Write機能が備える2つのAtomic Write処理方式(「LUT更新保留方式」、「LUT巻戻方式」)について説明する。
図8は、LUT更新保留方式の概要を説明するための図である。
LUT更新保留方式では、Atomic Writeで指定される論理アドレスに対応づけられるデータ書き込み前の旧物理アドレスをデータ書き込み後の新物理アドレスへ書き換えるためのアドレス変換テーブルの更新が、当該Atomic Writeが確定するまで保留される。この時、論理アドレスと新物理アドレスとを少なくとも含むアドレス変換テーブルの更新データが生成され、例えばRAM14等に蓄積される。このAtomic Writeが確定した場合、例えばRAM14等に蓄積される更新データに基づくアドレス変換テーブルの更新が実行される。一方、Atomic Writeがキャンセルされた場合、例えばRAM14等に蓄積される更新データが破棄される。これにより、アドレス変換テーブルは、このAtomic Write前の状態に保たれる。より具体的には、このAtomic Writeで指定された論理アドレスには、データ書き込み前の旧物理アドレスが対応づけられている状態となっている。AW処理部154の更新保留制御部1542は、このLUT更新保留方式を司る処理部であり、Atomic Writeに関するアドレス変換テーブルの更新を管理情報処理部153に保留させ、また、Atomic Write確定時におけるアドレス変換テーブルの更新を管理情報処理部153に実行させる。
LUT更新保留方式は、Atomic Writeがキャンセルされた場合、アドレス変換テーブルの更新データを破棄するだけでよいので、ロールバックが高速であり、Atomic Writeキャンセルの性能は高い。反面、未確定のAtomic Writeに関するアドレス変換テーブルの更新データを蓄積する必要があるので、RAM14等のリソース面でのコストは高い。
図9は、LUT巻戻方式の概要を説明するための図である。
LUT巻戻方式では、Atomic Writeで指定される論理アドレスに対応づけられるデータ書き込み前の旧物理アドレスをデータ書き込み後の新物理アドレスへ書き換えるためのアドレス変換テーブルの更新は、保留されることなく速やかに行われる。そして、Atomic Writeがキャンセルされた場合に、ログ情報に基づき、アドレス変換テーブルが、このAtomic Write前の状態に巻き戻される。より具体的には、Atomic Writeで指定される論理アドレスにデータ書き込み前の旧物理アドレスが対応づけられる状態にアドレス変換テーブルを更新する。AW処理部154の巻戻制御部1543は、このLUT巻戻方式を司る処理部である。ログ情報は、ホスト装置からのデータがNANDメモリ12へ書き込まれるとき付随して一緒に書き込まれる。
LUT巻戻方式は、Atomic Writeがキャンセルされた場合、ログ情報に基づいてアドレス変換テーブルを巻き戻す必要があるので、ロールバックが低速であり、Atomic Writeキャンセルの性能は低い。反面、未確定のAtomic Writeに関するアドレス変換テーブルの更新データを蓄積すること等が不要なので、RAM14等のリソース面でのコストは低い。また、LUT巻戻方式では、Atomic Writeが確定した場合は、追加的な動作は特にない。
なお、LUT巻戻方式については、さらに、2つの方式が考えられる。ここでは、一方の方式を「逆方向方式」、他方の方式を「順方向方式」と称することとする。図10を参照して、これら2つの方式について説明する。
図10の(A)で示した逆方向方式は、Atomic Writeキャンセル時のアドレス変換テーブルを基礎とし、ログ情報を最新のものから当該キャンセルされたAtomic Write開始時のものまで時間的に逆方向に参照して、当該キャンセルされたAtomic Writeで指定される論理アドレスについて、データ書き込み後の新物理アドレスをデータ書き込み前の旧物理アドレスへ書き換えていく。
一方、図10の(B)で示した順方向方式は、キャンセルされたAtomic Write開始以前に不揮発化されたアドレス変換テーブルを基礎とする。前述したように、管理情報処理部153は、アドレス変換テーブルについて、(RAM14上のアドレス変換テーブル1421とNANDメモリ12上のアドレス変換テーブル1221との)差分量がある閾値を超えたらNANDメモリ12へ書き出す動作を適宜行っている。不揮発化されたアドレス変換テーブルとは、このような書き出しが反映されたアドレス変換テーブルであり、アドレス変換テーブルのスナップショット(SS)とも称される。このように不揮発化されたアドレス変換テーブルを読み出し、ログ情報を上記書き出し動作時(スナップショット取得時)のものから最新のものまで時間的に順方向に参照して、キャンセルされたAtomic Write以外のAtomic Writeまたは通常Writeで指定される論理アドレスについて、データ書き込み前の旧物理アドレスからデータ書き込み後の新物理アドレスへ書き換えていく。
LUT巻戻方式としては、逆方向方式または順方向方式のいずれも採用し得るが、順方向方式では、データ書き込み前の旧物理アドレスを必要としないので、データ書き込み時に旧物理アドレスを取得する機会がなく、ログ情報として旧物理アドレスを記録することが困難な場合に有用である。
前述したように、LUT更新保留方式には、Atomic Writeキャンセルの性能は高いがリソース面でのコストが高いというメリット・デメリットがあり、LUT巻戻方式には、Atomic Writeキャンセルの性能は低いがリソース面でのコストは低いというメリット・デメリットがある。また、メモリシステムに対して要求されるAtomic Writeキャンセルの性能は、例えばアプリケーションプログラム毎などにより異なり得る。そこで、本実施形態のメモリシステム10では、LUT更新保留方式またはLUT巻戻方式のいずれかを適応的に選択する。AW処理部154の管理部1541は、このLUT更新保留方式またはLUT巻戻方式の適応的な選択を司る処理部である。
なお、ここでは、2つのAtomic Write処理方式の中の1つとして、(ホスト装置からのデータのNANDメモリ12への書き込みに伴う)アドレス変換テーブルの更新を保留するLUT更新保留方式を例示するが、これに代えて、ホスト装置からのデータのNANDメモリ12への書き込みそのものを保留する方式を採用することも可能である。
本実施形態のメモリシステム10は、ホスト装置からの指示に基づき、ユーザデータ用のNANDメモリ12の記憶領域を論理的に複数に分割、つまり、論理アドレス空間を複数に分割する。換言すれば、ホスト装置は、メモリシステム10の記憶領域を複数に分割して利用する仕組みを有している。分割後の各領域は、NameSpace(NS)などとして区別され、それぞれに固有の識別子(NSID)が付される。ホスト装置は、このNSIDを使って、目的のNameSpaceに対するデータアクセスを実行する。管理部1541は、第1に、Atomic Writeキャンセルの性能に関する設定を、NameSpace毎にホスト装置から受け付け、この設定に基づき、要求されたAtomic Writeについて、LUT更新保留方式またはLUT巻戻方式を適応的に選択する。
ここでは、図11の(A)に示すように、ホスト装置により、論理アドレス空間が6つに分割されているものと想定する。各NameSpaceには、「0」から「5」のNSIDが付されている。また、ここでは、ホスト装置により、(1)NSID「3」のNameSpace(NS[3])とNSID「4」のNameSpace(NS[4])とには、Atomic Writeキャンセルの性能に関する設定として、優先度「高」が設定され、(2)NSID「0」のNameSpace(NS[0])、NSID「1」のNameSpace(NS[1])およびNSID「2」のNameSpace(NS[2])には、Atomic Writeキャンセルの性能に関する設定として、優先度「中」が設定され、(3)NSID「5」のNameSpace(NS[5])には、Atomic Writeキャンセルの性能に関する設定として、優先度「低」が設定されているものと想定する。優先度「高」が設定されるNameSpaceは、例えば、Atomic Writeキャンセルの性能を高い水準で要求するアプリケーションプログラムにより使用される記憶領域である。優先度「低」が設定されるNameSpaceは、例えば、Atomic Writeキャンセルの性能を高い水準では要求しないアプリケーションプログラムにより使用される記憶領域である。優先度「中」が設定されるNameSpaceは、例えば、Atomic Writeキャンセルの性能を可能な限りにおいて高い水準で要求するアプリケーションプログラムにより使用される記憶領域である。また、ホスト装置上に複数の仮想マシンが構築され、仮想マシン毎にNameSpaceが使い分けられる環境下において、仮想マシン毎に、Atomic Writeキャンセルの性能に関する設定が行われるといったことも考えられる。さらに、Atomic Writeキャンセルの性能についての初期設定値を優先度「中」とし、ホスト装置によるAtomic Writeキャンセルの性能に関する設定が行われていないNameSpaceについては、優先度「中」が設定されているものとして扱うようにしてもよい。
管理部1541は、優先度「高」が設定されたNameSpaceに対するAtomic Writeについては、LUT更新保留方式を選択する。前述したように、LUT更新保留方式は、要求されたAtomic Writeが確定するまで当該Atomic Writeに関するアドレス変換テーブルの更新を保留する。そのために、LUT更新保留方式では、論理アドレスと新物理アドレスとを少なくとも含むアドレス変換テーブルの更新データが生成され、RAM14上に確保される更新保留用領域に蓄積される。管理部1541は、あるNameSpaceについて、Atomic Writeキャンセルの性能に関する設定として優先度「高」の設定をホスト装置から受け付ける場合、そのNameSpaceに対するAtomic Writeに関するアドレス変換テーブルの更新データの蓄積許容量の指定を併せて受け付ける。更新保留用領域内で当該蓄積許容量分の割り当てが行えない場合、管理部1541は、ホスト装置に対してエラーを返答する。ここでは、図11に示すように、優先度「高」が設定されたNS[3]、NS[4]それぞれについて、ホスト装置から指定されたサイズ分、更新保留用領域の割り当てが行われていることを想定する。
また、管理部1541は、優先度「低」が設定されたNameSpaceに対するAtomic Writeについては、LUT巻戻方式を選択する。そして、管理部1541は、優先度「中」が設定されたNameSpaceに対するAtomic Writeについては、更新保留用領域の使用状況、より具体的には、優先度「中」が設定されたNameSpaceに対するAtomic Writeによる更新保留用領域の使用状況に基づき、LUT更新保留方式またはLUT巻戻方式のいずれかを適応的に選択する。図11に示すように、更新保留用領域の空き領域(余り)、つまり、優先度「高」が設定されたNameSpaceに割り当てられる領域以外の領域が、優先度「中」が設定されたNameSpace(NS[0]、NS[1]、NS[2])により共有される。
つまり、管理部1541は、第2に、Atomic Writeの実行状況に基づき、要求されたAtomic Writeについて、LUT更新保留方式またはLUT巻戻方式を適応的に選択する。
なお、前述した、NameSpace毎のAtomic Writeキャンセルの性能に関する設定に基づき、LUT更新保留方式またはLUT巻戻方式を適応的に選択する仕組みは、本実施形態においては必要であるが、メモリシステム10の仕様によっては省略可能である。例えば、管理部1541は、すべてのNameSpaceで優先度「中」が設定されているかのごとく、Atomic Writeの実行状況に基づき、LUT更新保留方式またはLUT巻戻方式を適応的に選択するようにしてもよい。
管理部1541は、AW属性管理テーブル1431と、AW実行管理テーブル1432とを管理する。前述したように、これらのテーブルは、RAM14上に格納される。
図12は、AW属性管理テーブル1431の一例を示す図である。管理部1541は、あるNameSpaceについてのAtomic Writeキャンセルの性能に関する設定をホスト装置が行った際、そのNameSpace用のレコードをAW属性管理テーブル1431に追加する。図12に示すように、AW属性管理テーブル1431に記録される各レコードは、「NSID」フィールド、「優先度」フィールド、「AW最大量」フィールド、「AW総量」フィールドおよび「ロールバック量」フィールドを含む。
「NSID」フィールドには、NameSpaceの識別子が格納される。「優先度」フィールドには、ホスト装置により設定される優先度「高」、優先度「中」または優先度「低」のいずれかを示す値が格納される。「AW最大量」フィールドには、優先度「高」の設定時においてホスト装置により指定される(アドレス変換テーブルの更新を保留するための)アドレス変換テーブルの更新データの蓄積許容量が格納される。「AW総量」フィールドには、優先度「中」が設定されたNameSpaceについて、当該NameSpaceに対するAtomic Writeにより生成されたアドレス変換テーブルの更新データの量を累積した総容量が格納される。「ロールバック量」フィールドには、優先度「中」が設定されたNameSpaceについて、当該NameSpaceに対するAtomic Write中のキャンセルされたAtomic Writeに関するアドレス変換テーブルの更新データの量を累積した総容量が格納される。「AW総量」フィールドおよび「ロールバック量」フィールドの値は、そのNameSpaceに対するAtomic Writeの実行に伴い、管理部1541により適宜に更新される(より具体的には、コマンド単位で加算される)。「AW総量」フィールドおよび「ロールバック量」フィールドの値については、その値が無制限に大きくならないように、一定時間毎に古いものを捨てていく移動平均を採用してもよいし、一定時間毎にリセット(0にする)したり、定数で除算したり、定数で減算したり等の処理を行ってもよい。
また、図13は、AW実行管理テーブル1432の一例を示す図である。管理部1541は、Atomic Write対象のデータ書き込みをホスト装置が要求した際、そのデータ書き込み用のレコードをAW実行管理テーブル1432に追加する。図13に示すように、AW実行管理テーブル1432に記録される各レコードは、「NSID」フィールド、「TagID」フィールド、「AW方式」フィールドおよび「AW量」フィールドを含む。なお、AW実行管理テーブル1432に記録される各レコードは、そのデータ書き込みが完了または無かったものとなった時点で削除される。
「NSID」フィールドには、データ書き込み先として指定されるNameSpaceの識別子が格納される。「TagID」フィールドには、そのデータ書き込み用のコマンドに付される番号(識別子)が格納される。「AW方式」フィールドには、そのデータ書き込みに適用されるLUT更新保留方式またはLUT巻戻方式のいずれかを示す値が格納される。「AW量」フィールドには、LUT更新保留方式が適用されるデータ書き込みについて、そのデータ書き込みのためのAtomic Writeにより生成されたアドレス変換テーブルの更新データの容量が格納される。各フィールドの値は、そのAtomic Writeの実行に伴い、管理部1541により適宜に更新される。
次に、以上のような構成のAW属性管理テーブル1431とAW実行管理テーブル1432とを用いて、管理部1541が、ホスト装置から要求されたAtomic WriteについてLUT更新保留方式またはLUT巻戻方式を適応的に選択する動作について説明する。
Atomic Writeが要求された際、管理部1541は、まず、AW属性管理テーブル1431を参照し、このAtomic Writeの書き込み先として指定されるNameSpaceの設定が、優先度「高」、優先度「中」または優先度「低」のいずれであるのかを調べる。前述したように、管理部1541は、優先度「高」が設定されたNameSpaceに対するAtomic Writeについては、LUT更新保留方式を選択し、また、優先度「低」が設定されたNameSpaceに対するAtomic Writeについては、LUT巻戻方式を選択する。
優先度「中」が設定されたNameSpaceに対するAtomic Writeであった場合、管理部1541は、続いて、例えば書き込みデータのサイズから導き出される、このAtomic Writeで要求されるアドレス変換テーブルの更新データの容量以上の空き容量がRAM14上の更新保留用領域内に存在するか否かを確認する。存在する場合、管理部1541は、更新保留用領域内に当該Atomic Write用の領域を確保して、当該Atomic Writeについて、LUT更新保留方式を選択する。存在しない場合、管理部1541は、優先度「中」が設定された他のNameSpaceに対する他のAtomic Writeであって、LUT更新保留方式が適用されている他のAtomic WriteをLUT巻戻方式に変更する。管理部1541は、更新保留用領域内の当該他のAtomic Write用に確保された領域を解放することにより、要求される容量以上の空き容量を更新保留用領域内に作成して、LUT更新保留方式を適用することを試みる。図14を参照して、この場合の管理部1541の動作を詳しく説明する。
いま、優先度「中」が設定されたNameSpaceであるNS[1]に対するAtomic Write(TagID[93])がホスト装置から新たに要求され、このAtomic Write用の領域を更新保留用領域内に確保できない状況にあるものと想定する(図14[1])。また、この時、同じく優先度「中」が設定された他のNameSpaceであるNS[0]では、1つのAtomic Write(TagID[5])が実行され、同様のNS[2]では、2つのAtomic Write(TagID[28]、TagID[10])が実行されているものと想定する。
このような状況下において、管理部1541は、まず、LUT更新保留方式が適用されてAtomic Writeが実行されている(優先度「中」が設定された)NameSpaceについて、ロールバック率をそれぞれ算出する(図14[2])。ロールバック率は、Atomic Writeキャンセルが発生する可能性の高さを示し、AW属性管理テーブル1431に記録されるロールバック量を、同じくAW属性管理テーブル1431に記録されるAW総量で除することで得られる。ここでは、NS[0]、NS[1]、NS[2]について、0.01(60/6000)、0.02(60/3000)、0.1(10/100)の値がそれぞれ算出される。なお、データ量には依存せず、コマンド数だけでロールバック率の統計を取るようにすることも可能である。つまり、キャンセルされたAtomic Writeのコマンド数を受領したAtomic Writeの総コマンド数で除することでロールバック率を算出するようにしてもよい。
次に、管理部1541は、新たに要求されたAtomic Writeの対象となるNameSpaceよりもロールバック率が低い他のNameSpaceが存在するかを調べる。存在する場合、そのNameSpaceに対するAtomic Writeは、新たに要求されたAtomic Writeよりもキャンセルされる可能性が低いので、(Atomic Writeキャンセルの性能が低い)LUT巻戻方式に変更する(図14[3])。ここでは、NS[1]のロールバック率が0.02であり、NS[0]のロールバック率が0.01であることから、NS[0]に対するAtomic Write(TagID[5])をLUT巻戻方式に変更する。NS[2]のロールバック率は0.1であり、NS[1]のロールバック率よりも高いので、NS[2]に対するAtomic Write(TagID[28]、TagID[10])は対象から外れる。
なお、ここでは、LUT更新保留方式からLUT巻戻方式へ変更する方法について詳しくは言及しないが、例えば、更新保留用領域内に蓄積された当該Atomic Writeに関するアドレス変換テーブルの更新データに基づき、アドレス変換テーブルの更新を即時的に実行することで実現できる。アドレス変換テーブルの更新後、このAtomic Write用に更新保留用領域内に確保された領域を解放することができる。
他のAtomic Write(TagID[5])をLUT更新保留方式からLUT巻戻方式へ変更することにより、新たに要求されたAtomic Write(TagID[93])用の領域が更新保留用領域内に確保できた場合、管理部1541は、当該新たに要求されたAtomic Write(TagID[93])について、LUT更新保留方式を選択する(図14[4])。
ここでは、NS[1]よりもロールバック率が低い他のNameSpaceがNS[0]のみであり、当該NS[0]に対して実行中のAtomic Writeが1つ(TagID[5])のみであるので、管理部1541は、LUT更新保留方式からLUT巻戻方式への変更を、1つのAtomic Write(TagID[5])について行った。言うまでも無く、新たに要求されたAtomic Writeで指定されるNameSpaceよりもロールバック率が低い(Atomic Writeが実行されている)他のNameSpaceが複数存在する場合もあり得るし、当該他のNameSpaceに対して実行されているAtomic Writeが複数存在する場合もあり得る。管理部1541は、新たに要求されたAtomic Write用の領域が更新保留用領域内に確保できるまで、ロールバック率が低いNameSpaceから順に、また、AW量が小さい順に、LUT更新保留方式からLUT巻戻方式への変更を実行していくことが好ましい。AW量が小さい順とするのは、LUT更新保留方式からLUT巻戻方式への変更に係る負荷が小さい順とすることを意図するものである。
一方、他のAtomic Write(TagID[5])をLUT更新保留方式からLUT巻戻方式へ変更することによっても、新たに要求されたAtomic Write(TagID[93])用の領域が更新保留用領域内に確保できなかった場合、管理部1541は、当該新たに要求されたAtomic Write(TagID[93])について、LUT巻戻方式を選択する。
このように、本実施形態のメモリシステム10においては、ホスト装置による設定およびAtomic Writeの実行状況に基づき、Atomic Writeキャンセルの性能が適応的に制御される。
図15は、実施形態のメモリシステムにおいて実行されるNameSpaceに対するAW属性設定処理の手順の一例を示す図である。
AW処理部154の管理部1541は、あるNameSpaceに対するAW属性設定の要求をホスト装置から受信すると(A1)、Atomic Writeキャンセルの性能として優先度「高」を要求するものである場合(A2のYES)、ホスト装置から指定される容量(そのNameSpaceに対するAtomic Writeに関するアドレス変換テーブルの更新データを蓄積しておくための領域の容量:AW最大量)以上の空き領域がRAM14上の更新保留用領域内に存在するか否かを確認する(A3)。ここでの空き領域とは、優先度「高」の他のNameSpaceにより既に確保されている領域以外の領域である。空き領域が存在する場合(A3のYES)、管理部1541は、そのNameSpace用の領域をRAM14上の更新保留用領域内に確保し(A4)、優先度「高」およびAW最大値を当該NameSpaceの設定値としてAW属性管理テーブル1431に記録し(A5)、ホスト装置へ設定の完了を応答する(A6)。空き領域が存在しない場合には(A3のNO)、管理部1541は、ホスト装置へ設定の失敗を応答する(A7)。
また、優先度「中」を要求するものである場合(A2のNO,A8のYES)、管理部1541は、優先度「中」を当該NameSpaceの設定値としてAW属性管理テーブル1431に記録し(A9)、ホスト装置へ設定の完了を応答する(A10)。さらに、優先度「低」を要求するものである場合には(A8のNO)、管理部1541は、優先度「低」を当該NameSpaceの設定値としてAW属性管理テーブル1431に記録し(A11)、ホスト装置へ設定の完了を応答する(A12)。
図16は、実施形態のメモリシステムのAtomic Write開始時における動作手順の一例を示す図である。
AW処理部154の管理部1541は、あるNameSpaceに対するAtomic Writeの要求をホスト装置から受信すると(B1)、その要求に付されるNSIDをキーに当該NameSpace用のレコードをAW属性管理テーブル1431から検索する(B2)。管理部1541は、Atomic Writeキャンセルの性能として優先度「高」が設定されている場合(B3のYES)、このAtomic Write用のレコードをAW実行管理テーブル1432へ追加し、その要求の識別子であるTagIDと、LUT更新保留方式を示す値を当該追加したレコードへ記録する(B4)。そして、管理部1541は、このAtomic Writeがキャンセルされた場合のアドレス変換テーブルの復元方式としてLUT更新保留方式を選択して、当該要求されたAtomic Writeの処理を実施する(B5)。
優先度「中」が設定されている場合(B3のNO,B6のYES)、管理部1541は、そのAtomic Writeに対してLUT更新保留方式またはLUT巻戻方式のいずれを適用するのかを図17に示す手順で判定する(B7)。LUT更新保留方式と判定した場合(B7のYES)、管理部1541は、このAtomic Write用のレコードをAW実行管理テーブル1432へ追加し、その要求の識別子であるTagIDと、LUT更新保留方式を示す値を当該追加したレコードへ記録する(B8)。そして、管理部1541は、このAtomic Writeがキャンセルされた場合のアドレス変換テーブルの復元方式としてLUT更新保留方式を選択して、当該要求されたAtomic Writeの処理を実施する(B9)。
LUT巻戻方式と判定した場合(B7のNO)、管理部1541は、このAtomic Write用のレコードをAW実行管理テーブル1432へ追加し、その要求の識別子であるTagIDと、LUT巻戻方式を示す値を当該追加したレコードへ記録する(B10)。そして、管理部1541は、このAtomic Writeがキャンセルされた場合のアドレス変換テーブルの復元方式としてLUT巻戻方式を選択して、当該要求されたAtomic Writeの処理を実施する(B11)。
優先度「低」が設定されている場合(B6のNO)、管理部1541は、このAtomic Write用のレコードをAW実行管理テーブル1432へ追加し、その要求の識別子であるTagIDと、LUT更新保留方式を示す値を当該追加したレコードへ記録する(B12)。そして、管理部1541は、このAtomic Writeがキャンセルされた場合のアドレス変換テーブルの復元方式としてLUT巻戻方式を選択して、当該要求されたAtomic Writeの処理を実施する(B13)。
図17は、実施形態のメモリシステムにおいて実行される、優先度「中」が設定されているNameSpaceに対するAtomic WriteについてのLUT更新保留方式またはLUT巻戻方式の判定処理の手順の一例を示す図である。
Atomic Writeキャンセルの性能として優先度「中」が設定されているNameSpaceに対するAtomic Writeについて、AW処理部154の管理部1541は、まず、そのAtomic Writeに関するアドレス変換テーブルの更新データを蓄積しておくために必要な容量(AW要求量)以上の空き領域がRAM14上の更新保留用領域内に存在するか否かを確認する(C1)。ここでの空き領域とは、優先度「高」のNameSpaceにより確保されている領域および優先度「中」のNameSpaceに対する他のAtomic Writeにより使用されている領域以外の領域である。空き領域が存在する場合(C1のYES)、管理部1541は、そのAtomic Write 用の領域をRAM14上の更新保留用領域内に確保し(C2)、そのAtomic WriteにLUT更新保留方式を適用すると判定する(C3)。
空き領域が存在しない場合(C1のNO)、管理部1541は、AW属性管理テーブル1431から優先度「中」のNameSpaceを抽出し(C4)、NameSpace毎にロールバック率を計算する(C5)。管理部1541は、ロールバック率が低いものから順にNSIDを取り出す(C6)。管理部1541は、NSIDが見つかり、かつ、ロールバック率が今回のAtomic Write対象のNameSpaceよりも低いか否かを調べ(C7)、この条件を満たす場合(C7のYES)、そのNSIDをキーにAW実行管理テーブル1432を検索し、AW量が小さいものから順にTagIDを取り出す(C8)。
管理部1541は、TagIDが見つかり、かつ、そのAtomic WriteにLUT更新保留方式が適用されているか否かを調べ(C9)、この条件を満たす場合(C9のYES)、そのTagIDのAtomic Writeを図18に示す手順でLUT更新保留方式からLUT巻戻方式に変更する(C10)。管理部1541は、この変更により、今回のAtomic Writeで必要な容量以上の空き領域がRAM14上の更新保留用領域内に存在することとなった場合(C11のYES)、そのAtomic Write 用の領域をRAM14上の更新保留用領域内に確保し(C2)、そのAtomic WriteにLUT更新保留方式を適用すると判定する(C3)。この変更によっても、今回のAtomic Writeで必要な容量以上の空き領域がRAM14上の更新保留用領域内に存在することとはならなかった場合(C11のNO)、または、見つかったTagIDのAtomic WriteにLUT巻戻方式が適用されていた場合(C9のNO)、管理部1541は、その時に対象としているNSID内に他のTagIDが存在するか否かを調べる(C12)。
存在する場合(C12のNO)、管理部1541は、次にAW量が小さいAtomic Writeについて、C8からの処理を繰り返す。存在しない場合(C12のYES)、管理部1541は、次にロールバック率が低いNameSpaceについて、C6からの処理を繰り返す。
また、見つかったNSIDのロールバック率が今回のAtomic Write対象のNameSpaceよりも高い場合(C7のNO)、管理部1541は、そのAtomic WriteにLUT巻戻方式を適用すると判定する(C13)。
図18は、実施形態のメモリシステムにおいて実行されるLUT更新保留方式からLUT巻戻方式への変更処理の手順の一例を示す図である。
AW処理部154の管理部1541は、RAM14上の更新保留用領域に蓄積される、LUT更新保留方式からLUT巻戻方式へ変更するAtomic Writeに関するアドレス変換テーブルの更新データに基づき、NANDメモリ12のアドレス変換テーブル1221を更新し、当該Atomic Write用に確保されるRAM14上の更新保留用領域内領域を解放する(D1)。次に、管理部1541は、該当NSID、TagIDのレコードを、LUT巻戻方式を示す値へ書き換えるべくAW実行管理テーブル1432を更新する(D2)。
図19は、実施形態のメモリシステムのAtomic Write中における動作手順の一例を示す図である。
AW処理部154の管理部1541は、ホスト装置から転送されるコマンドに付されるNSIDをキーに対象のNameSpace用のレコードをAW属性管理テーブル1431から検索する(E1)。また、管理部1541は、そのNSIDと当該コマンドに付されるTagIDとをキーに(NSIDとTagIDとの組合せは、Atomic Writeの識別子となる)対象のAtomic Write用のレコードをAW実行管理テーブル1432から検索する(E2)。
管理部1541は、そのAtomic Writeに対してLUT更新保留方式が適用されている場合(E3のYES)、今回のAtomic Writeで生成されるアドレス変換テーブルの更新データ量を、検索したAW実行管理テーブル1432のレコードに記録されるAW量に加算する(E4)。そして、管理部1541は、そのAtomic Writeに関する処理の実行をAW処理部154の更新保留制御部1542に指示する(E5)。一方、LUT巻戻方式が適用されている場合(E3のNO)、管理部1541は、このAtomic Writeに関する処理の実行をAW処理部154の巻戻制御部1543に指示する(E6)。
図20は、実施形態のメモリシステムのAtomic Write完了時における動作手順の一例を示す図である。
AW処理部154の管理部1541は、ホスト装置から転送されるコマンドに付されるNSIDをキーに対象のNameSpace用のレコードをAW属性管理テーブル1431から検索する(F1)。また、管理部1541は、そのNSIDと当該コマンドに付されるTagIDとをキーに対象のAtomic Write用のレコードをAW実行管理テーブル1432から検索する(F2)。
管理部1541は、そのNameSpaceに対して優先度「中」が設定されている場合(F3のYES)、検索したAW実行管理テーブル1432のレコードに記録されるAW量を、検索したAW属性管理テーブル1431のレコードに記録されるAW総量に加算する(F4)。優先度「中」が設定されていない、すなわち、優先度「高」または優先度「低」が設定されている場合(F3のNO)、AW総量の加算は不要であるので、管理部1541は、F4の処理を省略する。
また、管理部1541は、そのAtomic Writeに対してLUT更新保留方式が適用されている場合(F5のYES)、そのAtomic Writeに関するアドレス変換テーブルの更新の保留を解除する(F6)。より具体的には、そのAtomic Writeに関するアドレス変換テーブルの更新データに基づき、アドレス変換テーブルを更新し、当該Atomic Write用に確保されるRAM14上の更新保留用領域内の領域を解放する。LUT更新保留方式が適用されていない、すなわち、LUT巻戻方式が適用されている場合(F5のNO)、アドレス変換テーブルの更新データがRAM14上の更新保留用領域に格納されることはないので、管理部1541は、F6の処理を省略する。そして、管理部1541は、そのAtomic Write用のレコードをAW実行管理テーブル1432から消去する(F7)。
図21は、実施形態のメモリシステムのAtomic Writeキャンセル(ロールバック)時における動作手順の一例を示す図である。
AW処理部154の管理部1541は、ホスト装置から転送されるコマンドに付されるNSIDをキーに対象のNameSpace用のレコードをAW属性管理テーブル1431から検索する(G1)。また、管理部1541は、そのNSIDと当該コマンドに付されるTagIDとをキーに対象のAtomic Write用のレコードをAW実行管理テーブル1432から検索する(G2)。
管理部1541は、そのNameSpaseに対して優先度「中」が設定されている場合(G3のYES)、検索したAW実行管理テーブル1432のレコードに記録されるAW量を、検索したAW属性管理テーブル1431のレコードに記録されるAW総量とロールバック量とに加算する(G4)。優先度「中」が設定されていない、すなわち、優先度「高」または優先度「低」が設定されている場合(G3のNO)、AW総量およびロールバック量の加算は不要であるので、管理部1541は、G4の処理を省略する。
管理部1541は、そのAtomic Writeに対してLUT更新保留方式が適用されている場合(G5のYES)、AW処理部154の更新保留制御部1542に対し、そのAtomic Writeのキャンセル処理を指示する(G6)。一方、LUT巻戻方式が適用されている場合(G5のNO)、管理部1541は、AW処理部154の巻戻制御部1543に対し、そのAtomic Writeのキャンセル処理を指示する(G7)。そして、管理部1541は、そのAtomic Write用のレコードをAW実行管理テーブル1432から消去する(G8)。
以上のように、実施形態のメモリシステムによれば、ホスト装置からAtomic Writeキャンセルの性能に対する要求が明示される場合(優先度「高」または優先度「低」)、その要求に応じてLUT更新保留方式またはLUT巻戻方式が選択され、明示されない場合(優先度「中」)、RAM上に確保される更新保留用領域の使用状況や各NameSpaceのロールバック率によりLUT更新保留方式またはLUT巻戻方式が選択されるといった、Atomic Writeキャンセルの性能を適応的に制御することを実現する。
本実施形態に記載された様々な機能の各々は、処理回路によって実現されてもよい。処理回路の例には、中央処理装置(CPU)のような、プログラムされたプロセッサが含まれる。このプロセッサは、メモリに格納されたプログラムを実行することによって、記載された機能それぞれを実行する。このプロセッサは、電気回路を含むマイクロプロセッサであってもよい。処理回路の例は、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、マイクロコントローラ、コントローラ、他の電気回路部品も含む。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10…メモリシステム、11…ホストインタフェース部、12…NANDメモリ、13…NANDコントローラ、14…RAM、15…制御部、151…ログ情報生成部、152…データ処理部、153…管理情報処理部、154…AW処理部、1541…管理部、1542…更新保留制御部、1543…巻戻制御部。

Claims (16)

  1. 不揮発性の第1メモリと、
    前記第1メモリへの書き込みデータを受信中または受信後に当該書き込みデータの前記第1メモリへの書き込みを伴うデータの書き込み要求を無かったものとすべくキャンセルされ得る機能拡張された拡張ライトが要求され、且つ、当該拡張ライトがキャンセルされた場合、前記書き込みデータに対応する論理アドレスと前記第1メモリの物理アドレスとを対応づける対応情報を、当該拡張ライトの書き込みデータのすべてが前記第1メモリへ書き込まれなかった場合の状態とする制御部と、を具備し、
    前記制御部は、要求された拡張ライト毎に、その拡張ライトのキャンセルに対応すべく適用する前記対応情報の更新処理を、第1更新処理または第2更新処理の何れかから選択し、
    前記第1更新処理は、前記拡張ライトのキャンセルがもはや発生しないことが確定するまでの間、当該拡張ライトの書き込みデータの前記第1メモリへの書き込みに伴う前記対応情報の更新を保留し、当該拡張ライトがキャンセルされた場合、保留した前記対応情報の更新を取り止める処理、または、前記書き込みデータの前記第1メモリへの書き込みを保留し、当該拡張ライトがキャンセルされた場合、保留した前記書き込みデータの前記第1メモリへの書き込みを取り止める処理であり、
    前記第2更新処理は、前記拡張ライトの書き込みデータの前記第1メモリへの書き込みに伴って更新された前記対応情報を、前記第1メモリへの書き込みに関するログ情報を用いて、当該拡張ライトの書き込みデータが前記第1メモリへ書き込まれなかった場合の状態に更新する処理である、
    メモリシステム。
  2. 前記第1メモリよりもデータ転送速度が速い第2メモリを具備し、
    前記制御部は、前記第1更新処理として、
    前記拡張ライトの書き込みデータの書き込み先として指定される論理アドレスと、当該書き込みデータの前記第1メモリへの書き込みにより前記論理アドレスに対応づけられる前記第1メモリの物理アドレスと、を含む前記対応情報の更新データを前記第2メモリに格納し、
    前記拡張ライトのキャンセルがもはや発生しないことが確定した場合、前記第2メモリに格納される前記更新データを用いて前記対応情報を更新し、
    前記拡張ライトがキャンセルされた場合、前記第2メモリに格納される前記更新データを破棄する、
    請求項1に記載のメモリシステム。
  3. 前記ログ情報は、書き込みデータの書き込み先として指定された論理アドレスと、当該書き込みデータの前記第1メモリへの書き込み前に前記論理アドレスに対応づけられていた前記第1メモリの旧物理アドレスと、当該書き込みデータの前記第1メモリへの書き込みにより前記論理アドレスに新たに対応づけられた前記第1メモリの新物理アドレスと、を含み、
    前記制御部は、前記第2更新処理として、前記ログ情報を最後尾の最新の書き込みからキャンセルされた拡張ライトの最初の書き込みまで時間的に逆方向に参照して、前記対応情報内の当該キャンセルされた拡張ライトの書き込みデータの書き込み先として指定された前記論理アドレスに対応づけられている新物理アドレスを旧物理アドレスに更新する、
    請求項1に記載のメモリシステム。
  4. 前記ログ情報は、書き込みデータの書き込み先として指定された論理アドレスと、当該書き込みデータの前記第1メモリへの書き込みにより前記論理アドレスに新たに対応づけられた前記第1メモリの新物理アドレスと、を含み、
    前記制御部は、前記第2更新処理として、キャンセルされた拡張ライトの最初の書き込み以前にバックアップされた前記対応情報を読み出し、前記ログ情報を前記読み出した対応情報のバックアップ時以降の書き込みから最後尾の最新の書き込みまで時間的に順方向に参照して、前記読み出した対応情報内の当該キャンセルされた拡張ライト以外の書き込みデータの書き込み先として指定された論理アドレスに対応づけられている旧物理アドレスを新物理アドレスに更新する、
    請求項1に記載のメモリシステム。
  5. 前記第1メモリよりもデータ転送速度が速い第2メモリを具備し、
    前記制御部は、要求された拡張ライトに必要な、保留される更新の内容を示す前記対応情報の更新データのサイズが、前記更新データを格納するために前記第2メモリ上に確保される格納領域内の空き領域のサイズを超えない場合、前記対応情報の処理として前記第1更新処理を選択する、
    請求項1に記載のメモリシステム。
  6. 前記制御部は、
    前記更新データのサイズと、前記対応情報の更新処理を示す識別子と、を拡張ライト毎に記録するための第1管理情報を有し、
    要求された拡張ライトに必要な前記更新データのサイズが前記格納領域内の空き領域のサイズを超える場合、前記第1管理情報を参照して、前記対応情報の更新処理として前記第1更新処理が適用される1以上の他の拡張ライトを選出し、
    前記選出した他の拡張ライトに適用される前記対応情報の更新処理を前記第1更新処理から前記第2更新処理へ変更し、当該他の拡張ライトに関する前記更新データを前記対応情報に反映させて前記格納領域上から消去し、前記要求された拡張ライトに必要な前記更新データのサイズ以上の空き領域を前記格納領域内に確保して、前記要求された拡張ライトに適用される前記対応情報の更新処理として前記第1更新処理を選択する、
    請求項5に記載のメモリシステム。
  7. 前記制御部は、前記更新データのサイズが小さい順に前記他の拡張ライトを選出していく請求項6に記載のメモリシステム。
  8. 前記第1メモリは、ホスト装置により、ユーザデータの記憶領域が複数の領域に分割され、
    前記第1管理情報は、書き込みデータの書き込み先として指定される前記分割された複数の領域の中のいずれか1つの領域を示す識別子を拡張ライト毎にさらに記録し、
    前記制御部は、
    前記更新データの合計サイズと、キャンセルされた拡張ライトに関する前記更新データの合計サイズと、を前記分割された複数の領域毎に記録するための第2管理情報をさらに有し、
    要求された拡張ライトに必要な前記更新データのサイズが前記格納領域内の空き領域のサイズを超える場合、前記第2管理情報を参照して、キャンセルされた拡張ライトに関する前記更新データの合計サイズを前記更新データの合計サイズで除して得られるロールバック率が前記要求された拡張ライトで指定される領域よりも低い領域を前記分割された複数の領域の中から検出し、
    前記第1管理情報を参照して、書き込みデータの書き込み先として前記検出された領域が指定され、前記対応情報の更新処理として前記第1更新処理が適用され、かつ、当該要求された拡張ライトに必要な前記更新データのサイズよりも前記更新データのサイズが小さい1以上の他の拡張ライトを選出する、
    請求項6に記載のメモリシステム。
  9. 前記第1メモリは、ホスト装置により、ユーザデータの記憶領域が複数の領域に分割され、
    前記制御部は、
    前記ホスト装置からの要求に基づき、前記分割された複数の領域それぞれの前記対応情報の更新処理を、前記第1更新処理が適用される第1設定、前記第2更新処理が適用される第2設定、または、前記第1更新処理もしくは前記第2更新処理の一方が適応的に選択される第3設定のいずれかに設定し、
    要求された拡張ライトが書き込みデータの書き込み先として指定する領域が前記第1設定の設定が行われた領域である場合、前記対応情報の更新処理として前記第1更新処理を選択し、
    要求された拡張ライトが書き込みデータの書き込み先として指定する領域が前記第2設定の設定が行われた領域である場合、前記対応情報の更新処理として前記第2更新処理を選択し、
    要求された拡張ライトが書き込みデータの書き込み先として指定する領域が前記第3設定の設定が行われた領域である場合であって、当該拡張ライトに必要な、保留される更新の内容を示す前記対応情報の更新データのサイズが、前記更新データを格納するために前記第1メモリよりもデータ転送速度が速い第2メモリ上に確保される格納領域内の空き領域のサイズを超えない場合、前記対応情報の更新処理として前記第1更新処理を選択する、
    請求項1に記載のメモリシステム。
  10. 前記制御部は、
    前記第1設定、前記第2設定または前記第3設定の中のいずれが指定されているのかを示す識別子と、前記更新データの合計サイズと、キャンセルされた拡張ライトに関する前記更新データの合計サイズと、を前記分割された複数の領域毎に記録するための第2管理情報と、
    書き込みデータの書き込み先として指定される前記分割された複数の領域の中のいずれか1つの領域を示す識別子と、前記更新データのサイズと、前記対応情報の更新処理を示す識別子と、を拡張ライト毎に記録するための第1管理情報と、
    を有し、
    要求された拡張ライトが書き込みデータの書き込み先として指定する領域が前記第3設定の設定が行われた領域である場合であって、当該拡張ライトに必要な前記更新データのサイズが前記格納領域内の空き領域のサイズを超える場合、前記第2管理情報を参照して、前記第3設定の設定が行われ、かつ、キャンセルされた拡張ライトに関する前記更新データの合計サイズを前記更新データの合計サイズで除して得られるロールバック率が前記要求された拡張ライトで指定される領域よりも低い領域を前記分割された複数の領域の中から検出し、
    前記第1管理情報を参照して、書き込みデータの書き込み先として前記検出された領域が指定され、前記対応情報の更新処理として前記第1更新処理が適用される1以上の他の拡張ライトを選出し、
    前記選出した他の拡張ライトに適用される前記対応情報の更新処理を前記第1更新処理から前記第2更新処理へ変更して当該他の拡張ライトに関する前記更新データを前記対応情報に反映させて前記格納領域上から消去し、前記要求された拡張ライトに必要な前記更新データのサイズ以上の空き領域を前記格納領域内に確保して、前記要求された拡張ライトに適用される前記対応情報の更新処理として前記第1更新処理を選択する、
    請求項9に記載のメモリシステム。
  11. 前記制御部は、前記他の拡張ライトに関する前記更新データを前記対応情報に反映させて前記格納領域上から消去した後の前記格納領域内の空き領域のサイズが前記要求された拡張ライトに必要な前記更新データのサイズ以上とならなかった場合、前記対応情報の更新処理として前記第2更新処理を選択する請求項6、8または10に記載のメモリシステム。
  12. 前記制御部は、ロールバック率が低い順に前記要求された拡張ライトで指定される領域よりも低い領域を検出していき、かつ、前記更新データのサイズが小さい順に前記他の拡張ライトを選出していく請求項8または10に記載のメモリシステム。
  13. 不揮発性の第1メモリと、
    前記第1メモリよりもデータ転送速度が速い第2メモリと、
    前記第1メモリへの書き込みデータを受信中または受信後に当該書き込みデータの前記第1メモリへの書き込みを伴うデータの書き込み要求を無かったものとすべくキャンセルされ得る機能拡張された拡張ライトが要求され、且つ、当該拡張ライトがキャンセルされた場合、前記書き込みデータに対応する論理アドレスと前記第1メモリの物理アドレスとを対応づける対応情報を、当該拡張ライトの書き込みデータのすべてが前記第1メモリへ書き込まれなかった場合の状態とする制御部と、を具備し、
    前記制御部は、
    前記拡張ライトの書き込みデータの書き込み先として指定される論理アドレスと、当該書き込みデータの前記第1メモリへの書き込みにより前記論理アドレスに対応づけられる前記第1メモリの物理アドレスと、を含む前記対応情報の更新データを前記第2メモリに格納し、
    前記拡張ライトのキャンセルがもはや発生しないことが確定した場合、前記第2メモリに格納される前記更新データを用いて前記対応情報を更新し、
    前記拡張ライトがキャンセルされた場合、前記第2メモリに格納される前記更新データを破棄する、メモリシステム。
  14. 不揮発性の第1メモリと、
    前記第1メモリへの書き込みデータを受信中または受信後に当該書き込みデータの前記第1メモリへの書き込みを伴うデータの書き込み要求を無かったものとすべくキャンセルされ得る機能拡張された拡張ライトが要求され、且つ、当該拡張ライトがキャンセルされた場合、前記書き込みデータに対応する論理アドレスと前記第1メモリの物理アドレスとを対応づける対応情報を、当該拡張ライトの書き込みデータのすべてが前記第1メモリへ書き込まれなかった場合の状態に更新する制御部と、を具備し、
    前記制御部は、キャンセルされた拡張ライトの最初の書き込み以前にバックアップされた前記対応情報を読み出し、書き込みデータの書き込み先として指定された論理アドレスと、当該書き込みデータの前記第1メモリへの書き込みにより前記論理アドレスに新たに対応づけられた前記第1メモリの新物理アドレスと、を含む、前記第1メモリへの書き込みに関するログ情報を、前記読み出した対応情報のバックアップ時以降の書き込みから最後尾の最新の書き込みまで時間的に順方向に参照して、前記読み出した対応情報内の当該キャンセルされた拡張ライト以外の書き込みデータの書き込み先として指定された論理アドレスに対応づけられている旧物理アドレスを新物理アドレスに更新する、メモリシステム。
  15. 内蔵または外部接続されるメモリシステムが備えるユーザデータの記憶領域を複数の領域に分割する第1設定手段と、
    前記複数の領域毎に、前記記憶領域への書き込みデータを送信中または送信後に当該書き込みデータの前記記憶領域への書き込みを伴うデータの書き込み要求を無かったものとすべくキャンセルし得る機能拡張された拡張ライトのキャンセルに関する情報であって、当該キャンセルの性能を指定する情報を設定する第2設定手段と、
    を具備する情報処理装置。
  16. 不揮発性の第1メモリを備えるメモリシステムの処理方法であって、
    前記第1メモリへの書き込みデータを受信中または受信後に当該書き込みデータの前記第1メモリへの書き込みを伴うデータの書き込み要求を無かったものとすべくキャンセルされ得る機能拡張された拡張ライトが要求され、且つ、当該拡張ライトがキャンセルされた場合、前記書き込みデータに対応する論理アドレスと前記第1メモリの物理アドレスとを対応づける対応情報を、当該拡張ライトの書き込みデータのすべてが前記第1メモリへ書き込まれなかった場合の状態とするための処理を行うことを具備し、
    前記処理を行うことは、要求された拡張ライト毎に、その拡張ライトのキャンセルに対応すべく適用する前記対応情報の更新処理を、第1更新処理または第2更新処理の何れかから選択することを含み、
    前記第1更新処理は、前記拡張ライトのキャンセルがもはや発生しないことが確定するまでの間、当該拡張ライトの書き込みデータの前記第1メモリへの書き込みに伴う前記対応情報の更新を保留し、当該拡張ライトがキャンセルされた場合、保留した前記対応情報の更新を取り止める処理、または、前記書き込みデータの前記第1メモリへの書き込みを保留し、当該拡張ライトがキャンセルされた場合、保留した前記書き込みデータの前記第1メモリへの書き込みを取り止める処理であり、
    前記第2更新処理は、前記拡張ライトの書き込みデータの前記第1メモリへの書き込みに伴って更新された前記対応情報を、前記第1メモリへの書き込みに関するログ情報を用いて、当該拡張ライトの書き込みデータが前記第1メモリへ書き込まれる前の状態に復元する処理である、
    処理方法。
JP2015239265A 2015-12-08 2015-12-08 メモリシステム、情報処理装置および処理方法 Abandoned JP2017107318A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015239265A JP2017107318A (ja) 2015-12-08 2015-12-08 メモリシステム、情報処理装置および処理方法
US15/243,654 US9940071B2 (en) 2015-12-08 2016-08-22 Memory system that carries out an atomic write operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015239265A JP2017107318A (ja) 2015-12-08 2015-12-08 メモリシステム、情報処理装置および処理方法

Publications (1)

Publication Number Publication Date
JP2017107318A true JP2017107318A (ja) 2017-06-15

Family

ID=58800279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015239265A Abandoned JP2017107318A (ja) 2015-12-08 2015-12-08 メモリシステム、情報処理装置および処理方法

Country Status (2)

Country Link
US (1) US9940071B2 (ja)
JP (1) JP2017107318A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210050581A (ko) * 2018-10-25 2021-05-07 마이크론 테크놀로지, 인크. 메모리 서브 시스템에 대한 기입 원자성 관리
JP7438432B1 (ja) 2023-06-01 2024-02-26 大日本印刷株式会社 電子情報記憶媒体、icチップ、icカード、レコード書き込み方法、及びプログラム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10712976B2 (en) * 2017-10-02 2020-07-14 Western Digital Technologies, Inc. Storage protection unit
CN107784121B (zh) * 2017-11-18 2020-04-24 中国人民解放军国防科技大学 一种基于非易失内存的日志文件***的小写优化方法
CN110633048B (zh) * 2018-06-22 2022-11-08 慧荣科技股份有限公司 闪存存储装置的命名空间操作方法
US11733924B1 (en) * 2021-08-03 2023-08-22 Kioxia Corporation Method for discarding garbage collection data during power loss
US12014073B2 (en) * 2022-05-17 2024-06-18 Micron Technology, Inc. Techniques for sequential access operations

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7558724B2 (en) * 2005-04-19 2009-07-07 Hewlett-Packard Development Company, L.P. Operation region describing a virtual device
US20080263106A1 (en) 2007-04-12 2008-10-23 Steven Asherman Database queuing and distributed computing
TWI434536B (zh) 2009-07-13 2014-04-11 Univ Nat Chiao Tung 通訊系統接收器及其解碼方法
US9569254B2 (en) 2009-07-28 2017-02-14 International Business Machines Corporation Automatic checkpointing and partial rollback in software transaction memory
WO2012016089A2 (en) 2010-07-28 2012-02-02 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US8799248B2 (en) 2011-04-26 2014-08-05 Brian J. Bulkowski Real-time transaction scheduling in a distributed database
US10592416B2 (en) * 2011-09-30 2020-03-17 Oracle International Corporation Write-back storage cache based on fast persistent memory
US9218279B2 (en) * 2013-03-15 2015-12-22 Western Digital Technologies, Inc. Atomic write command support in a solid state drive
US9514168B2 (en) 2013-03-15 2016-12-06 Sunil Sayyaparaju Method and system of implementing a database index in shared memory
US10223208B2 (en) 2013-08-13 2019-03-05 Sandisk Technologies Llc Annotated atomic write
US20150074336A1 (en) 2013-09-10 2015-03-12 Kabushiki Kaisha Toshiba Memory system, controller and method of controlling memory system
US9734191B2 (en) 2014-03-31 2017-08-15 Dell Products, L.P. Asynchronous image repository functionality
US10380026B2 (en) * 2014-09-04 2019-08-13 Sandisk Technologies Llc Generalized storage virtualization interface

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210050581A (ko) * 2018-10-25 2021-05-07 마이크론 테크놀로지, 인크. 메모리 서브 시스템에 대한 기입 원자성 관리
KR102336335B1 (ko) 2018-10-25 2021-12-09 마이크론 테크놀로지, 인크. 메모리 서브 시스템에 대한 기입 원자성 관리
JP7438432B1 (ja) 2023-06-01 2024-02-26 大日本印刷株式会社 電子情報記憶媒体、icチップ、icカード、レコード書き込み方法、及びプログラム

Also Published As

Publication number Publication date
US20170160988A1 (en) 2017-06-08
US9940071B2 (en) 2018-04-10

Similar Documents

Publication Publication Date Title
JP2017107318A (ja) メモリシステム、情報処理装置および処理方法
US9454317B2 (en) Tiered storage system, storage controller and method of substituting data transfer between tiers
US9785564B2 (en) Hybrid memory with associative cache
US9665442B2 (en) Smart flushing of data to backup storage
KR101717644B1 (ko) 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법
JP4437489B2 (ja) 揮発性キャッシュメモリと不揮発性メモリとを備えたストレージシステム
US9026764B2 (en) Memory system performing wear leveling based on deletion request
US10248322B2 (en) Memory system
US8898541B2 (en) Storage controller, storage device, information processing system, and storage controlling method
US9367247B2 (en) Memory access requests in hybrid memory system
JP2008015769A (ja) ストレージシステム及び書き込み分散方法
JP2008276646A (ja) ストレージ装置及びストレージ装置におけるデータの管理方法
KR20100132244A (ko) 메모리 시스템 및 메모리 시스템 관리 방법
JP6097845B2 (ja) 不揮発性キャッシュメモリにデータをバックアップするストレージシステム
JP6398102B2 (ja) メモリシステム
US8862819B2 (en) Log structure array
JP6298932B2 (ja) ストレージ装置
US20150074336A1 (en) Memory system, controller and method of controlling memory system
US20150339058A1 (en) Storage system and control method
US20110238915A1 (en) Storage system
JP2010152747A (ja) ストレージシステム、ストレージのキャッシュ制御方法、及びキャッシュ制御プログラム
JP2015135603A (ja) ストレージ装置及びデータを書き込む記憶領域を選択する方法
KR102220468B1 (ko) 트랜잭션 지원을 가진 선점형 캐시 후기록
US20160259571A1 (en) Storage subsystem
JP2006099802A (ja) 記憶制御装置およびキャッシュメモリの制御方法

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20170531

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180201

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20180830

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181114

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20181119