JP5907739B2 - 不揮発性記憶装置 - Google Patents

不揮発性記憶装置 Download PDF

Info

Publication number
JP5907739B2
JP5907739B2 JP2012013937A JP2012013937A JP5907739B2 JP 5907739 B2 JP5907739 B2 JP 5907739B2 JP 2012013937 A JP2012013937 A JP 2012013937A JP 2012013937 A JP2012013937 A JP 2012013937A JP 5907739 B2 JP5907739 B2 JP 5907739B2
Authority
JP
Japan
Prior art keywords
memory
address
lpt
cache
nvm
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.)
Expired - Fee Related
Application number
JP2012013937A
Other languages
English (en)
Other versions
JP2013152676A (ja
Inventor
健三 黒土
健三 黒土
三浦 誓士
誓士 三浦
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2012013937A priority Critical patent/JP5907739B2/ja
Priority to US13/745,292 priority patent/US9378131B2/en
Publication of JP2013152676A publication Critical patent/JP2013152676A/ja
Application granted granted Critical
Publication of JP5907739B2 publication Critical patent/JP5907739B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical 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)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、メモリ管理装置を含む不揮発性記憶装置に関する。より詳細には、書き込み可能な不揮発性メモリ、例えばフラッシュメモリもしくは相変化メモリを有する記憶装置に関し、書き込み又は読み出しを管理するメモリ管理装置を含む不揮発性記憶装置に適用して有効な技術に関する。
不揮発性メモリの一つであるフラッシュメモリを有する不揮発性記憶装置は、フラッシュメモリにアクセスするために与えられる論理アドレスを物理アドレスに変換することで、データの書き込みや読み出しを行う。そして、このアドレス変換のためのアドレス管理情報を有している。
本技術分野の背景技術として、特開2004−199605号公報(特許文献1)がある。この特許文献1には、不揮発性メモリのアドレス管理情報を不揮発性メモリ内に記憶し、そのアドレス管理情報のうちの必要部分のみを揮発性メモリに読み出して使用することや、データ更新時に発生するAT(アドレス管理テーブル)の更新の際に次ATを現在のATとは別の書き込み領域に書き込むことが記載されている。
また、特開2002−73409号公報(特許文献2)がある。この特許文献2には、RAMにアドレス変換テーブルの一部を保持することや、論理アドレスに対応するアドレス変換情報がRAM内に存在しない場合、RAM内のアドレス変換テーブルの一部を不揮発性メモリにコピーし、不揮発性メモリ内の論理アドレスに対応するアドレス変換テーブルの一部をRAMにコピーすることが記載されている。
また、特開2004−127185号公報(特許文献3)がある。この特許文献3には、メモリーカードは、消去及び書き込み可能な不揮発性メモリ例えばフラッシュメモリと、DRAM又はSRAM等からなるバッファメモリと、メモリ制御及び外部インタフェース制御を行うカードコントローラとを、実装基板に備えてなることや、フラッシュメモリは、そのメモリアレイの一部に消去テーブル及びアドレス変換テーブルを有することが記載されている。さらに、フラッシュメモリの記憶領域(メモリアレイ)は、消去テーブル、アドレス変換テーブル及びユーザーエリア、消去テーブルとアドレス変換テーブルを更新するときに必要となる空きブロック領域に大別されることが記載されている。
さらに、米国特許第5,900,016号明細書(特許文献4)がある。この特許文献4には、マイクロプロセッサ、キャッシュメモリ、メインメモリを含むコンピュータシステムに関して、ダーティビットを用いたキャッシュ制御ロジックが記載されている。
また、非特許文献1がある。この非特許文献1には、相変化メモリを積層する半導体記憶装置が記載されている。また、前記の半導体記憶装置が大容量かつ高速にアクセス可能であることが記載されている。
特開2004−199605号公報 特開2002−73409号公報 特開2004−127185号公報 米国特許第5,900,016号明細書
2011 Symposium on VLSI Technology Digest of Technical Papers 第96頁〜第97頁
しかしながら、上述した特許文献1〜4及び非特許文献1を含む従来技術において、DRAMにアドレス変換テーブルを有する場合には、不揮発性記憶装置の大容量化に比例して、アドレス変換テーブル及び消去テーブルのサイズが大きくなる。そのため、大容量のDRAMが必要になり、DRAMチップ数の増加やコストの増加を招くという課題があった。
また、フラッシュメモリや相変化メモリを含む不揮発性メモリにアドレス変換テーブル及び消去テーブルを有し、ホスト機器からのアクセス毎にアドレス変換テーブルにアクセスする場合には、DRAMに比べて低速な不揮発性メモリからアドレス変換テーブル及び消去テーブルの情報を読み出し、書き込む必要がある。そのため、DRAMにアドレス変換テーブル及び消去テーブルを有する場合に比べて、不揮発性記憶装置のアクセス速度が低下するという課題があった。
そこで、本発明は上述した従来技術の課題を解決するために成されたものであり、その代表的な目的は、製造コストを低減し、アクセス性能及び信頼性が高く、省スペースな不揮発性記憶装置を提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。
(1)代表的な不揮発性記憶装置は、不揮発性の第1のメモリと、前記第1のメモリより高速にアクセス可能な第2のメモリと、前記第1のメモリおよび前記第2のメモリへのアクセスに対する制御を行う制御部とを有する。そして、前記制御部は、前記第1のメモリに、前記第1のメモリにアクセスするために与えられた論理アドレスを物理アドレスに変換するアドレス変換テーブルを複数に分割して記憶し、さらに、前記第2のメモリに、前記複数に分割された部分アドレス変換テーブルを複数記憶する、ことを特徴する。
(2)代表的な別の不揮発性記憶装置は、不揮発性の第1のメモリと、前記第1のメモリより高速にアクセス可能な第2のメモリと、前記第1のメモリおよび前記第2のメモリへのアクセスに対する制御を行う制御部とを有する。そして、前記制御部は、前記第1のメモリに、前記第1のメモリのデータの論理アドレスを物理アドレスに変換を行う第1のテーブルを記憶し、さらに、前記第2のメモリに、前記第1のテーブルのキャッシュと、前記第1のテーブルが前記第1のメモリのどこに記憶されているかを示す第2のテーブルとを記憶し、さらに、前記第2のテーブルに、前記第1のテーブルの前記第1のメモリ内でのアドレスを複数記憶する、ことを特徴する。
(3)代表的な更に別の不揮発性記憶装置は、不揮発性の第1のメモリと、前記第1のメモリより高速にアクセス可能な第2のメモリと、前記第1のメモリおよび前記第2のメモリへのアクセスに対する制御を行う制御部とを有する。そして、前記制御部は、前記第1のメモリに、前記第1のメモリに記憶されたデータが消去可能か否かを示す消去テーブルを複数に分割して記憶し、さらに、前記第2のメモリに、前記複数に分割された部分消去テーブルを複数記憶する、ことを特徴とする。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下の通りである。
すなわち、代表的な効果は、製造コストを低減し、アクセス性能及び信頼性が高く、省スペースな不揮発性記憶装置を製造することができる。
本発明の実施の形態1である不揮発性記憶装置の構成の一例を示す図である。 図1に示す不揮発性記憶装置において、アドレス変換テーブルの一例を示す図である。 図1に示す不揮発性記憶装置において、容量1TBの管理情報の一例を示す図である。 図1に示す不揮発性記憶装置に対する従来技術において、容量1TBの課題を説明するための構成の一例を示す図である。 図1に示す不揮発性記憶装置において、容量1TBの課題を解決する方法を説明するための構成の一例を示す図である。 図1に示す不揮発性記憶装置の制御方法において、読み出し動作を説明するフローチャートの一例を示す図である。 図1に示す不揮発性記憶装置の制御方法において、アドレス変換テーブルキャッシュの更新動作を説明するフローチャートの一例を示す図である。 図1に示す不揮発性記憶装置の制御方法において、書き換え動作を説明するフローチャートの一例を示す図である。 図1に示す不揮発性記憶装置の制御方法において、消去テーブルキャッシュの更新動作を説明するフローチャートの一例を示す図である。 図1に示す不揮発性記憶装置の制御方法において、データ領域のウェアレベリング動作を説明するフローチャートの一例を示す図である。 図1に示す不揮発性記憶装置の制御方法において、アドレス変換テーブル(データ管理情報を格納する領域)のウェアレベリング動作を説明するフローチャートの一例を示す図である。 図1に示す不揮発性記憶装置の制御方法において、稼働時間と最大ブロック消去回数の関係の一例を示す図である。 図1に示す不揮発性記憶装置の制御方法において、RAMの構成の変形例を示す図である。 図1に示す不揮発性記憶装置の制御方法において、エリアテーブルを説明するための図である。 (a)〜(c)は図1に示す不揮発性記憶装置の制御方法において、論理アドレスと物理アドレスを説明するための図である。 本発明の実施の形態2である不揮発性記憶装置の構成の一例を示す図である。 図16に示す不揮発性記憶装置において、不揮発性記憶装置の構成の変形例を示す図である。 本発明の実施の形態4である不揮発性記憶装置において、エリアテーブルを説明するための図である。
以下の実施の形態においては、便宜上その必要があるときは、複数の実施の形態またはセクションに分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
さらに、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
[実施の形態の概要]
まず、実施の形態の概要について説明する。本実施の形態の概要では、一例として、括弧内に各実施の形態の対応する構成要素および符号を付して説明する。
(1)実施の形態の代表的な不揮発性記憶装置(SSD202)は、不揮発性の第1のメモリ(NVM205)と、前記第1のメモリより高速にアクセス可能な第2のメモリ(RAM206)と、前記第1のメモリおよび前記第2のメモリへのアクセスに対する制御を行う制御部(制御部204)とを有する。そして、前記制御部は、前記第1のメモリに、前記第1のメモリにアクセスするために与えられた論理アドレスを物理アドレスに変換するアドレス変換テーブル(アドレス変換テーブルLPT)を複数に分割して記憶し、さらに、前記第2のメモリに、前記複数に分割された部分アドレス変換テーブル(アドレス変換子テーブルLPT−SR)を複数記憶する、ことを特徴する。
(2)実施の形態の代表的な別の不揮発性記憶装置(SSD202)は、不揮発性の第1のメモリ(NVM205)と、前記第1のメモリより高速にアクセス可能な第2のメモリ(RAM206)と、前記第1のメモリおよび前記第2のメモリへのアクセスに対する制御を行う制御部(制御部204)とを有する。そして、前記制御部は、前記第1のメモリに、前記第1のメモリのデータの論理アドレスを物理アドレスに変換を行う第1のテーブル(アドレス変換テーブルLPT)を記憶し、さらに、前記第2のメモリに、前記第1のテーブルのキャッシュ(アドレス変換テーブルキャッシュLPT−C)と、前記第1のテーブルが前記第1のメモリのどこに記憶されているかを示す第2のテーブル(エリアテーブル207)とを記憶し、さらに、前記第2のテーブルに、前記第1のテーブルの前記第1のメモリ内でのアドレスを複数記憶する、ことを特徴する。
(3)実施の形態の代表的な更に別の不揮発性記憶装置(SSD202)は、不揮発性の第1のメモリ(NVM205)と、前記第1のメモリより高速にアクセス可能な第2のメモリ(RAM206)と、前記第1のメモリおよび前記第2のメモリへのアクセスに対する制御を行う制御部(制御部204)とを有する。そして、前記制御部は、前記第1のメモリに、前記第1のメモリに記憶されたデータが消去可能か否かを示す消去テーブル(消去テーブルET)を複数に分割して記憶し、さらに、前記第2のメモリに、前記複数に分割された部分消去テーブル(消去子テーブルET−SR)を複数記憶する、ことを特徴とする。
以下、上述した実施の形態の概要に基づいた各実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
[実施の形態1]
実施の形態1の不揮発性記憶装置について、図1〜図15を用いて説明する。
本実施の形態では、不揮発性記憶装置(SSD:Solid State Drive)の例を説明する。以下においては、この不揮発性記憶装置をSSDと記載する場合がある。また、この不揮発性記憶装置を構成する不揮発性メモリ(NVM:Non−Volatile Memory)を、NVMと記載する場合がある。更に他の構成要素についても、略称で記載する場合がある。
<不揮発性記憶装置(SSD)の構成>
図1を用いて、本実施の形態の不揮発性記憶装置(SSD)の構成について説明する。併せて、SSDとホスト機器との接続についても述べる。図1は、このSSDの構成の一例を示す図である。
SSD202は、ホストインターフェース(I/F)203と、このホストI/F203にインターフェース230で接続された制御部204と、この制御部204に接続されたNVM205と、この制御部204に接続されたRAM206から構成される。
このSSD202は、ホスト機器201とインターフェース230を用いて接続される。インターフェース230としては、SATA(Serial Advanced Technology Attachment)や、PCI express、FC−AL(Fibre Channel Arbitrated Loop)、SAS(Serial Attached SCSI)を用いることができる。また、ホスト機器201がタブレット型コンピュータやスマートフォンの場合は、プリント基板上に実装されたパラレル接続の内部バスを用いることもできる。インターフェース信号として、電気信号のほかに、光信号を用いることができることは言うまでもない。
ホストI/F203は、PHY(物理層)を含むことができる。特に、インターフェース230がシリアル接続の場合、ホストI/F203はシリアル−パラレル変換回路やシリアル転送のクロック生成、インターフェース230の通信制御を行うのが望ましい。
ホストI/F203と制御部204は、内部バス231で接続することができる。この内部バス231は、レイテンシの少ないパラレル接続が望ましい。
制御部204は、データ書き込みバッファを備え、データの書き込み時にはデータにECC(Error Check and Correct memory)を付加し、データの読み出し時にはECCの検査、訂正を行うのが良い。また、NVM205上のアドレス変換テーブルLPT、消去テーブルETにもECCの付加、検査、訂正を行うのが良い。さらに、RAM(例えばDRAM)206上のアドレス変換テーブルキャッシュLPT−C、消去テーブルキャッシュET−CにもECCの付加、検査、訂正を行うことで、高信頼なSSD202を提供することもできる。このような高信頼のSSD202は、特にサーバーの記録装置として用いることができる。制御部204は、SSDコントローラのことを指す。
制御部204は、ホスト機器201から送られるアクセス要求に対して、制御部204内のSRAMや、RAM206、NVM205に記憶されたデータを用いて、制御を行い、ホスト機器201に制御の結果に応じた応答を返すコントローラである。
RAM206には、エリアテーブル207と、アドレス変換テーブルキャッシュLPT−C(Logical Physical translation Table−Cache)、消去テーブルキャッシュET−C(Erase Table−Cache)が記憶される。そのほかに、ブロック管理情報を設けることが可能であることは言うまでもない。
さらに、アドレス変換テーブルキャッシュLPT−Cは、複数のアドレス変換子テーブルLPT−SR(Logical Physical Table−Sub on RAM)(LPT−SR#1、LPT−SR#2)を持つ。アドレス変換子テーブルLPT−SR毎に、バリッドフラグ214(214a、214b)、ダーティーフラグ215(215a、215b)、Tag216(216a、216b)を持つ。
また、消去テーブルキャッシュET−Cは、複数の消去子テーブルET−SR(Erase Table−Sub on RAM)(ET−SR#1、ET−SR#2)を持つ。消去子テーブルET−SR毎に、バリッドフラグ218(218a、218b)と、ダーティーフラグ219(219a、219b)、Tag220(220a、220b)を持つ。
さらに、キャッシュの管理に、バリッドフラグ、ダーティーフラグ、Tagを用いることができる。具体的な制御は、下記の通り行う。例えば、アドレス変換テーブルキャッシュLPT−Cにアドレス変換子テーブルLPT−SRがまだコピーされていない状態では、すべてのバリッドフラグは「偽」である。アドレス変換テーブルキャッシュLPT−Cにアドレス変換子テーブルLPT−SRの一つがコピーされると、そのアドレス変換子テーブルLPT−SR部分のバリッドフラグを「真」にする。また、ダーティーフラグを「偽」にする。また、論理アドレスの少なくとも一部(例えば、アドレス32ビット中の上位24ビット、エントリアドレス)をTagとして保存する。
アドレス判定は、まず、論理アドレスの少なくとも一部(例えば、アドレス32ビット中の下位8ビット)を用いて、検索するべきアドレス変換テーブルキャッシュLPT−Cの検索範囲(エントリ)を限定し、次に、Tagを比較することでアドレス変換子テーブルLPT−SRを検索し(同一エントリ中のライン検索)、キャッシュのヒット判定を行う。
以上の説明では、キャッシュのデータ更新方式としてライトバック方式、データ格納構造としてセットアソシエイティブ(Set associative)方式を例にしたが、そのほかのキャッシュ制御方式を用いることができることは言うまでもない。
アドレス変換テーブルキャッシュLPT−Cと同様の制御を、消去テーブルキャッシュET−Cについても行うことができる。なお、消去テーブルのデータサイズはアドレス変換テーブルのデータサイズに比べて小さいため、アドレス変換テーブルについてのみ、キャッシュ制御を行うことができる。その場合、消去テーブルの制御が単純になるため、SSDコントローラの構成が単純になり、開発期間、開発コストを低減することができる。
アドレス書き換えにより、NVM205内のアドレス変換子テーブルLPT−Sの情報とRAM206内のアドレス変換子テーブルLPT−SRの情報が異なるようになった場合、そのアドレス変換子テーブルLPT−SRに関するダーティーフラグを「真」にする。さらに、アドレス変換テーブルキャッシュLPT−C内のアドレス変換子テーブルLPT−SRを消去する場合は、そのアドレス変換子テーブルLPT−SRに関するダーティーフラグが「偽」であれば、単に消去を行い、「真」であれば、NVM205に書き戻す。なお、書き戻す先の物理アドレスは、必ずしもコピー元の物理アドレスと一致する必要はない。
次に、NVM205は、エリアテーブルバックアップ208と、アドレス変換テーブルLPT(Logical Physical translation Table)、消去テーブルET(Erase Table)、データ領域(#0〜#3)を持つ。アドレス変換テーブルLPTは、複数のアドレス変換子テーブルLPT−S(Logical Physical Table−Sub)(LPT−S#0〜LPT−S#3)からなる。また、消去テーブルETは、複数の消去子テーブルET−S(Erase Table−Sub)(ET−S#0〜ET−S#3)からなる。
なお、揮発性のメモリ、もしくは信頼性がNVM205よりも劣るメモリをRAM206として用いる場合には、エリアテーブルの内容をエリアテーブルバックアップ208にバックアップする。SSD202の電源が遮断されるときにバックアップを行う。また、一定量のライトアクセスがエリアテーブルに行われたときにバックアップを行うこともできる。特に、SSD202へのホスト機器201からのライト命令が一定時間ないときにバックアップを行うことができる。バックアップ頻度を高くするとエリアテーブルの情報喪失が生じにくくなるため、SSD202の信頼性は向上するが、書き込みに伴うNVM205へのデータライトサイズとライト時間の増大は、SSD202の性能を低下させる。
<アドレス変換テーブルの構成>
図2を用いて、前述したアドレス変換テーブルLPTの構造を説明する。図2は、このアドレス変換テーブルLPTの一例を示す図である。
アドレス変換テーブルLPTは、ホスト機器201から要求されるときに指定される論理アドレスをNVM205の物理アドレスに変換するテーブルである。アドレス変換テーブルLPTは、複数のアドレス変換子テーブルLPT−Sに分割されて管理される。
アドレス変換子テーブルLPT−SのNVM205内の物理アドレスはエリアテーブルにより管理されている。すなわち、エリアテーブルは、論理アドレス(LPN)をアドレス変換子テーブルLPT−Sの物理アドレス(PPN)に変換するテーブルである。
アドレス変換子テーブルLPT−Sの中では、論理アドレスは連続していることがテーブル管理を簡素化するために望ましい。管理方法が簡素であれば、回路及びソフトウェアの設計ミス(バグ)を低減し、高信頼で動作するSSD202を短期間で提供することできる効果がある。
ここでは、NVM205の最小書き込み単位である物理ページサイズを4KBとし、アドレス変換子テーブルLPT−Sのサイズを4KBとして説明する。アドレス変換子テーブルLPT−Sのデータサイズを物理ページサイズにNVM205のプレーン数を掛け算したものにすることや、下記の(1)式にすることができる。
NVMの物理ページサイズ×NVMのプレーン数×NVMのch数 … (1)
上記の(1)式のデータサイズにすることで、簡易な制御方法でNVM205の全ch(チャンネル)を同時に動作させることが可能になるため、高性能なSSD202を短期間で製造することができる。
NVM205の物理アドレス(PPN)1個のデータサイズを4Bとした。SSD202におけるデータ管理サイズは4KBとした。実際のデータ管理サイズは、ホスト機器201のOS(オペレーティングシステム)や、使われ方(要求される信頼性と性能やホスト機器201から要求されるデータパターン)に応じて定めるのが良い。OSのデータ管理単位は、4KBであることがある。例えば、Windows VISTA(登録商標)の場合、NTFS(NT File System)におけるデフォルトのクラスタサイズ(ファイルを保持するために割り当てることのできるディスク領域の最小単位)は、ボリュームサイズが7MB〜16TBの場合、4KBである。
例えば、ホスト機器201からデータサイズ4KBのデータ書き換え要求があった場合には、データ管理サイズが4KBであれば、ホスト機器201から送られたデータをそのままNVM205に書き込めば良いため、NVM205へのデータ書き込みサイズは4KBになる。一方、データ管理サイズが32KBであれば、まず、NVM205からデータサイズ28KBのデータを読み出し、ホスト機器201から送られたデータ4KBと足し合わせて、32KBのデータにし、NVM205に書き込むことになる。データ管理サイズが4KBと比較すると、データ書き込みサイズが8倍になる。
以上の通り、データ管理サイズを大きくすると、SSD202の管理情報が少なくて済むが、SSD202の転送性能や寿命が低下することがある。SSD202の管理情報としては、アドレス変換テーブルLPTと消去テーブルET、ブロック毎の管理情報、SSDコントローラの制御に必要な情報(例えば、次に書き込むNVM205のページ番号や全ブロックにおける消去回数の最低回数など)がある。
アドレス変換子テーブルLPT−Sのサイズが4KBであり、物理アドレス(PPN)のサイズが4Bであるため、一つのアドレス変換子テーブルLPT−Sは1024個の論理アドレスから物理アドレスへの変換を行うことができる。例えば、番号0のアドレス変換子テーブルLPT−Sは、論理アドレスLPNと物理アドレスPPNの対応を1024個分、持つことができる。また、番号1、2のアドレス変換子テーブルLPT−Sも、同様である。
番号0のアドレス変換子テーブルLPT−Sは、論理アドレスLPN0から1023までに対応する1024個分の物理アドレス(PPN)の情報を持つ。また、番号1のアドレス変換子テーブルLPT−Sは論理アドレスLPN1024から2047まで、番号2のアドレス変換子テーブルLPT−Sは論理アドレスLPN2048から3071まで、に対応する1024個分の物理アドレス(PPN)の情報を持つ。
なお、ホスト機器201は、512B単位のLBA(Logical Block Addressing)により、データのアドレスとサイズを指定することができる。論理アドレスLPNは、LBAに512Bを掛け、さらにデータ管理サイズで割ることで求めることができる。
図2に示される通り、連続するアドレス変換子テーブル番号に含まれる論理アドレス(LPN)は連続させても良い。アドレス変換子テーブルには、複数の論理アドレスと物理テーブルの対応が含まれるのが望ましい。また、アドレス変換子テーブル単位でウェアレベリングを行うことができる。アドレス変換子テーブルのデータサイズとSSD202におけるデータ管理サイズは同一にすることができる。このようにすることで、データとSSD202の管理情報を同様に扱うことができるため、信頼性の高いSSD202を短期間に提供することができる。
図2に示された論理アドレスLPN0は、論理アドレス空間0〜3KBのサイズ4KBのアドレス空間に対応し、論理アドレスLPN1は4〜7KBのサイズ4KBのアドレス空間に対応し、以降同様に、各論理アドレスLPNはそれぞれサイズ4KBのアドレス空間に対応する。
<不揮発性記憶装置の管理情報>
図3を用いて、前述したSSD202の管理情報について説明する。図3は、容量1TBの管理情報の一例を示す図である。すなわち、SSD202の容量(ホスト機器201からアクセス可能な容量)を1TBとする。NVM205に必要な容量は、SSD202の容量に管理情報や予備領域を足した容量となる。
データ管理サイズをWindows OS(登録商標)などに向く4KBとすると、アドレス変換テーブルLPTのサイズは1GBになる。なお、論理アドレス(LPN)から物理アドレス(PPN)の対応1個に要するデータサイズを4Bとしている。4B、すなわち32ビットで表すことのできる4KB単位のアドレス空間は下記の(2)式で表される通り、16TBになる。
4KB×232=16TB … (2)
アドレス変換子テーブルLPT−Sのデータサイズは4KBとする。このデータサイズは、NVM205に効率的に書き込めるデータサイズにするのが良い。例えば、NVM205のページサイズや上記ページサイズにNVM205のプレーン数を掛けたものや、さらにNVM205のチャンネル数を掛けたものにするのが良い。この場合、アドレス変換子テーブルLPT−Sの総数は262144個になる。同様に、消去テーブルETのサイズは256MB、消去子テーブルET−Sのサイズは4KB、消去子テーブルET−Sの総数は65536個とすることができる。データ管理サイズごとの消去情報は1B(バイト)で表すことができる。バリッド、非バリッドの情報だけを格納することにし、1ビットで表すこともできる。この場合、消去テーブルETのサイズを小さくできるので、NVM205の容量を小さくすることができるメリットがある。
エリアテーブルのデータサイズは1280KBにすることができる。エリアテーブルはアドレス変換子テーブルLPT−Sと消去子テーブルET−Sの物理アドレスが格納されている。アドレス変換子テーブルLPT−S内の物理アドレスは連続しているため、先頭の物理アドレスのみを格納すれば良い。
エリアテーブルについて、さらに説明する。エリアテーブルにはアドレス変換子テーブルLPT−Sの物理アドレスと消去子テーブルET−Sの物理アドレスが格納されている。エリアテーブルを用いると、任意の論理アドレスに対応するアドレス変換子テーブルLPT−Sの物理アドレスを調べることができる。また、任意の物理アドレスに対応する消去子テーブルET−Sの物理アドレスを調べることもできる。
アドレス変換テーブルキャッシュLPT−Cと消去テーブルキャッシュET−Cのデータサイズは、それぞれ64MBと16MBにすることができる。このときに、アドレス変換子テーブルLPT−SRと消去子テーブルET−SRの数は、それぞれ16384個と4096個になる。ターゲットとなるOSやアプリケーションに応じて、キャッシュサイズを変えることが可能なことは言うまでもない。
論理アドレス(LPN)から物理アドレス(PPN)に変換する方法について、さらに具体例を用いて説明する。
ホスト機器201から、例えば、開始アドレス「2982648」、データサイズ「8」のデータリードリクエストがSSD202に対して送られたとする。ホスト機器201の使用するアドレス指定方法は、512B単位でアドレス指定を行うLBAであるとする。
制御部204、すなわちSSDコントローラは前述した方法により、LPN表記のスタートアドレスとデータサイズを得ることができる。すなわち、下記の(3)式と(4)式により、LPNに変換したスタートアドレスとデータサイズを求めることができる。
スタートアドレス(LPN)=2982648×512B/4KB
=372831 … (3)
データサイズ(LPN)=8×512B/4KB=1 … (4)
次に、参照するアドレス変換子テーブルの番号を決定する。具体的には、1個のアドレス変換子テーブルが管理する論理アドレスから物理アドレスへの対応の数は、アドレス変換子テーブルのサイズ4KBを物理アドレス1個の大きさ、すなわち4Bで割ったものであるから、1024個になる。そのため、下記の(5)式により、参照するべきアドレス変換子テーブルの番号は「364」であることが分かる。なお、小数点以下は切り捨てている。
アドレス変換子テーブルの番号=372831/1024=364 … (5)
次に、アドレス変換子テーブルのエントリを計算する。「364」は2進数で表すと「101101100」であり、この下位6ビットは「101100」である。これを10進数で表すと「44」になる。すなわち、アドレス変換子テーブル#364はエントリ44に所属することがわかる。なお、Tagは上位26ビットを用いて計算することができる。アドレス変換子テーブル#364のTagは「5」であることがわかる。
そこで、RAM206内のアドレス変換テーブルキャッシュLPT−Cのエントリ44の検索を行う。各エントリには前述した通り、256個のアドレス変換子テーブルLPT−SRが存在する。LPT−SR毎にTagが存在する。最大256個のLPT−SRのTagを調べ、一致するものがあるかを調べる。一致するものがあれば、さらにバリッドフラグを調べ、有効なキャッシュであれば、キャッシュがヒットしたという判定を行う。
まず、キャッシュヒットした場合について述べる。この場合、検索されたアドレス変換子テーブルを用いて、読み出すべきデータ、すなわち、論理アドレス(LPN)「372831」の物理アドレスを調べる。具体的には、論理アドレス(LPN)「372831」を、前述したアドレス変換子テーブルLPT−SR中の論理アドレスから物理アドレスへの対応の数「1024」で割り算し、剰余を求める。この場合、剰余は「95」となる。すなわち、検索されたアドレス変換子テーブルLPT−SRのRAM206における先頭アドレスから、さらに「95」に物理アドレス1個の大きさ、すなわち、4Bを掛けたアドレスである380B分だけオフセットしたアドレスから4Bを読み出せば、論理アドレス(LPN)「372831」の物理アドレスが得られる。
この物理アドレスには、データが収められているチップの番号、ブロック番号、ページ番号、プレーン番号を含んでおり、この物理アドレスが指すNVM205のアドレスにアクセスすることで、ホスト機器201から要求されたデータを読み出すことができる。
次に、キャッシュミスした場合について述べる。キャッシュミスした場合には、後述(図7)するアドレス変換テーブルキャッシュLPT−Cの更新処理を行い、アドレス変換テーブルLPTから一部のアドレス変換子テーブルLPT−SをRAM206にコピーする。具体的には、エリアテーブル207を読み出し、アドレス変換子テーブルLPT−Sの物理アドレスを調べる。次に、アドレス変換子テーブルLPT−SをRAM206にコピーする。
エリアテーブル207のアクセス手順について、下記で述べる。前述した(5)式で計算した通り、今回の例では必要なアドレス変換子テーブルの番号は「364」である。エリアテーブルを用いると、論理アドレス(LPN)からアドレス変換子テーブルの物理アドレスを調べることが可能である。具体的には、エリアテーブルの先頭アドレスから、さらに「364」に物理アドレス1個の大きさ、すなわち、4Bを掛けたアドレスである1456B分だけオフセットしたアドレスから4Bを読み出せば、アドレス変換子テーブルLPT−S#364の物理アドレスが得られる。この物理アドレスを開始アドレスとし、データサイズ4KBをNVM205から読み出せば、アドレス変換子テーブルLPT−S#364が得られる。
このアドレス変換子テーブルLPT−S#364をRAM206上の該当するエントリ、すなわち前述したエントリ44のインバリッドのキャッシュに上書きし、アドレス変換子テーブルLPT−SR#364とする。Tag216を前述した方法で計算し、アドレス変換テーブルキャッシュLPT−Cに保持する。また、バリッドフラグ214をバリッドにする。さらに、ダーティーフラグ215をクリアし、クリーンなキャッシュ(NVM205上のアドレス変換子テーブルLPT−SとRAM206上のアドレス変換子テーブルLPT−SRが同一内容)であることを示す。
LRU方式でキャッシュ制御を行う場合は、後述する図13に示すLRUフラグをゼロクリアし、最も最近にアクセスされたキャッシュであることを示す。さらに、エントリ44に所属するそのほかのキャッシュのLRUフラグをインクリメントする。
<アドレス変換テーブルをRAM(特にDRAM)においた場合の課題>
図4を用いて、前述したアドレス変換テーブルLPTをRAM206、特にDRAMに置いた場合(本実施の形態に対する従来技術)の課題について、さらに詳細に説明する。図4は、容量1TBの課題を説明するための構成の一例を示す図である。
容量1TBのSSDのアドレス変換テーブルLPTのデータサイズは1GBになる。また、消去テーブルETのデータサイズは256MBになる。DRAMのチップ当たりの容量を1Gbとすると、DRAMのチップ数は10個となる。NVMの容量は、データ領域及び、電源遮断時のアドレス変換テーブルのバックアップ領域と消去テーブルのバックアップ領域、予備領域(ここでは3%とした)が必要であるため、例えば、1チップ当たり133GBの容量となり、NVMのチップ数は8個となる。
DRAMは、セル面積(1ビット当たりに必要とされる面積)がNVMよりも大きいため、ビット当たりのコストがNVMよりも高い。また、1990年〜2010年までのビット当たりのコストの変化や、ITRS(International Technology Roadmap for Semiconductors、国際半導体技術ロードマップ)の将来予測を見ると、将来的にもDRAM/NAND型フラッシュメモリのコスト比は拡大し続ける。そのため、管理情報をDRAMに置いた場合、NVMのチップ数に対するDRAMのチップ数の割合は増加を続ける。すなわち、DRAMのコスト増につながる。
また、DRAMは揮発性のメモリであるため、電源遮断時には管理情報をNVMに書き込む必要があるが、DRAM上のデータサイズが大きいと不意の電源遮断時のデータ消失の可能性が高いため、信頼性が低下する。
さらに、アドレス変換テーブルLPTをNVMに置き、アドレス変換テーブルキャッシュLPT−Cを用いない場合の課題について説明する。
このときは、NVM上のデータにアクセスするため、NVM上のアドレス変換テーブルLPTにアクセスする必要がある。そのため、1回のSSDのデータアクセスに対して、少なくとも2回以上のNVMへのアクセスが発生する。
また、アドレス変換テーブルLPTを複数のアドレス変換子テーブルLPT−Sに分割し、その1つだけをRAM206にバッファリングする方法の課題について説明する。
メモリーカードのようなシーケンシャルアクセスが主な情報記憶装置の場合、アドレス変換子テーブルLPT−Sを1つだけRAM206に保持するだけでシーケンシャルアクセス性能が高いメモリーカードを提供することができる。しかし、我々がパソコンやワークステーション、エンタープライズ向けサーバーなどのホスト機器からのアクセス要求を分析した結果、ホスト機器からのアクセスが広範な論理アドレスに対して生じるため、アドレス変換子テーブルLPT−Sを1つだけRAM206にバッファリングする方法では、効率的にSSDを制御することはできないことがわかった。
例えば、ファイルの移動であれば、FAT(ファイルアロケーションテーブル)やDCT(ディレクトリ管理テーブル)、NTFS(NT File System)におけるMFT(マスタファイルテーブル)やフォルダインデックスなどの管理情報とデータ部分の2箇所以上へのアクセスが生じる。アドレス変換子テーブルLPT−Sの1つだけをバッファリングする方法では、論理アドレスの離れたアドレスにアクセスするたびにアドレス変換子テーブルLPT−Sが破棄されるため、アクセス効率が低下することがわかった。
<アドレス変換テーブルキャッシュを用いる場合の長所>
図5を用いて、前述した図4に対して、アドレス変換テーブルキャッシュLPT−Cを用いる場合(本実施の形態)の長所について、詳細に説明する。図5は、容量1TBの課題を解決する方法を説明するための構成の一例を示す図である。
DRAMのチップ当たりの容量は1Gbである。NVMのチップ当たりの容量は133GBであり、個数は8個である。アドレス変換テーブルLPTと消去テーブルETはNVM上に置かれる。アドレス変換テーブルキャッシュLPT−C(データサイズ64MB)と消去テーブルキャッシュET−C(データサイズ16MB)、エリアテーブル(データサイズ1280KB)がDRAM上に置かれる。それらのデータサイズの合計は1Gb、すなわち128MB以下であるため、DRAMのチップ数は1個にすることができる。そのため、DRAM上にアドレス変換テーブルLPTを置く場合に比べて、コストを低減することができる。
また、上述した通り、アドレス変換テーブルキャッシュLPT−Cにヒットした場合、ホスト機器からのアクセス要求に対して、NVMへのアクセス回数が1回のみの場合がある。そのため、アドレス変換テーブルキャッシュLPT−Cを用いない場合やアドレス変換子テーブルの1つだけをRAM206にバッファリングする方法に比べて、効率的にSSDのデータにアクセスすることが可能であり、高性能かつ高信頼なSSDを提供することができる。
なお、アドレス変換テーブルキャッシュLPT−Cと同様に、消去テーブルキャッシュET−Cを用いることにより、性能向上が得られることは言うまでもない。
より詳細に、消去テーブルキャッシュET−Cを用いた場合の性能について説明する。例として、NVMのチャンネル数が4chの場合について考える。NVMのチップの物理ページサイズを4KB、プレーン数を2とする。テストパターンとしてランダムライト性能試験を考える。ホスト機器201から4KB単位のランダムライト命令が8個送信されるとする。合計のデータサイズは32KBになる。
まず、消去テーブルキャッシュを用いず、NVM上に消去テーブルETを設ける場合、ライト先のチャンネルはSSDコントローラが定めることができるため、1ch当たり8KBずつのデータをライトすることができる。NVMがマルチプレーンアクセス機能を持つ場合、1ch当たりNVMの2プレーン分のレジスタに8KBのデータを転送した後に、1度だけNVMアレイへの書き込み時間を待つことで、1ch当たり8KBのデータを書き込むことができる。
次に、消去テーブルETの更新を行う。ランダムなアドレスに対するライト命令のため、消去テーブルETの更新するべきアドレスは分散しており、多くの場合、8箇所の消去テーブルETの更新が必要になる。消去テーブルETが1つのNVMチップにのみ存在する場合、そのチップに対して、8回のライトアクセスを行う必要がある。マルチプレーン書き込みを利用しても、NVMアレイへの1プレーン当たりの書き込み回数は4回となるため、少なくともNVMアレイへの書き込み時間の4倍の時間だけ、消去テーブルETの更新に時間が掛かる。消去テーブルETを複数のチップに分散して記録する場合においても、少なくとも1回のNVMアレイへの書き込み時間を待つことが必要になる。
それに対して、消去テーブルキャッシュET−Cを用いる場合は、ランダムなデータ書き込みに対する消去テーブルの更新において、ランダムライトする領域の消去テーブルキャッシュET−Cを設けた場合、4KB単位のランダムライト命令が8個送信された場合でも、NVMアレイへの書き込みを行う必要がないことがある。特に、ランダムライト試験を行う論理アドレス空間が狭く、消去テーブルキャッシュET−C内に該当論理アドレス空間の消去情報がすべて入る場合に、NVMアレイへの書き込み回数を低減することができる。
アドレス変換テーブルLPTへのアクセスについても、消去テーブルETへのアクセスと同様にアドレス変換テーブルキャッシュLPT−Cを用いることで、NVM上のアドレス変換テーブルLPTの更新回数を低減することができるため、SSD202のアクセス性能を高くすることができる。
さらに、アドレス変換テーブルLPTや消去テーブルETの更新の頻度を低減することができるため、NVM205への書き込み回数と消去回数を減らすことができる。このため、SSD202の信頼性を高め、特に寿命を伸ばすことができる。
また、NVM205へのアクセス回数の低減により、SSD202の動作電力を低減することができる。これにより、SSD202の冷却のための空冷ファンが不要になり、ファンの故障によるSSD202の動作不良をなくすことができる。この結果、高信頼なSSD202を提供することができる。さらに、部品点数の低減により省スペース化することができる。これにより、小型のPC、特にノートPCやOSとしてWindows Phone(登録商標)やiOS(登録商標)、Android(登録商標)を用いたタブレット型コンピュータやスマートフォン向けのSSDや高密度サーバー向けのSSDを提供することができる。
バッファリングと比較すると、本実施の形態で述べるキャッシュ制御は下記の特徴を備える。アドレス変換テーブルLPTを対象としてキャッシュ制御を行う場合は、アドレス変換子テーブルLPT−Sを複数、RAM206上にコピーする。バッファリングの場合、RAM206上にコピーされるアドレス変換子テーブルLPT−Sの数は1個である。消去テーブルETを対象としてキャッシュ制御を行う場合は、消去子テーブルET−Sを複数、RAM206上にコピーする。バッファリングの場合、RAM206上にコピーされる消去子テーブルET−Sの数は1個である。
また、バッファリングと比較すると、本実施の形態で述べるキャッシュ制御は下記の特徴を備えることができる。キャッシュの管理情報であるバリッドフラグ214、218、もしくはダーティーフラグ215、219、もしくはLRUフラグ301、302を有する。
さらに、制御方法が異なる。バッファリングの場合、RAM206上にコピーしたバッファ中にアクセス対象の論理アドレス(LPN)が含まれない場合は、バッファをすべて破棄し、NVM205上のアドレス変換テーブルLPTからアドレス変換子テーブルLPT−Sの1個をRAM206上にコピーする。しかし、キャッシュ制御の場合、RAM206上のアドレス変換テーブルキャッシュLPT−Cをすべて破棄する必要はない。アクセス頻度などを参考にし、キャッシュの一部のみを破棄することができる。
上記では、アドレス変換テーブルLPTの場所として、DRAM(RAM206)を例にして説明したが、NVM205より高速にアクセスができるメモリであればよく、例えば、FeRAM(強誘電体メモリ)、相変化メモリ、SLC NAND(シングルレベルセルのNAND型フラッシュメモリ)、NOR型フラッシュメモリを用いることができる。
<読み出し要求に対する動作>
図6を用いて、前述したSSD202において、ホスト機器201からの読み出し要求に対する動作について説明する。図6は、読み出し動作を説明するフローチャートの例である。このホスト機器201からの読み出し要求に対する動作は、SSD202内の制御部204であるSSDコントローラの制御により実行される。
アドレス変換テーブルLPTは、ホスト機器201から要求されるときに指定される論理アドレス(以下、論理アドレス)をNVM205の物理アドレスに変換するテーブルである。アドレス変換テーブルLPTは、複数のアドレス変換子テーブルLPT−Sに分割されて管理される。
まず、ホスト機器201から、論理アドレスでSSD202が有するNVM205に存在するデータ領域への読み出しアクセスの要求が行われると、当該論理アドレスに対するアドレス変換子テーブルLPT−SがRAM(DRAM)206に置かれたアドレス変換テーブルキャッシュLPT−Cに存在するか否か、すなわち、アドレス変換テーブルキャッシュLPT−Cがヒットしたかを判定する(S601)。
ヒット判定は、アドレス変換テーブルキャッシュLPT−Cに設けられたTag、バリッドフラグなどのキャッシュ管理情報を用いて行う。詳細な判定方法については後述する。アドレス変換テーブルキャッシュLPT−Cは、キャッシュのヒット率が高くなるように、複数のアドレス変換子テーブルLPT−Sがコピーされる。ホスト機器201の例はパソコンやワークステーションである。または、タブレット型コンピュータやスマートフォンの制御装置である。
アドレス変換テーブルキャッシュLPT−Cがミスした場合(S601−N)には、後述(図7)するアドレス変換テーブルキャッシュLPT−Cの更新を行う(S602)。
アドレス変換テーブルキャッシュLPT−Cがヒットした場合(S601−Y)には、次に、アドレス変換テーブルキャッシュLPT−Cから、データの論理アドレスに対応するNVM205の物理アドレスを読み出す(S603)。さらに、NVM205から、その物理アドレスのデータを読み出し(S604)、そのデータをホスト機器201に送信する(S605)。
以上の方法を用いて、SSD202(具体的にはSSD202内の制御部204であるSSDコントローラ)は、ホスト機器201からの読み出し要求に対するデータ送信を行うことができる。
<アドレス変換テーブルキャッシュの更新要求に対する動作>
図7を用いて、前述(図6−S602)したアドレス変換テーブルキャッシュLPT−Cの更新要求(S602)があった場合の処理について説明する。図7は、アドレス変換テーブルキャッシュLPT−Cの更新動作を説明するフローチャートの一例を示す図である。
まず、論理アドレスから、読み出すべきアドレス変換子テーブルLPT−Sのテーブル番号を決める。次に、RAM(DRAM)206上のエリアテーブルから該当するテーブル番号のアドレス変換子テーブルLPT−Sの物理アドレスを読み出す(S701)。エリアテーブルの詳細については後述(図14)する。さらに、NVM205から該当物理アドレスにあるアドレス変換子テーブルLPT−Sを読み出し、RAM206上にコピーする(S702)。すなわち、アドレス変換子テーブルLPT−Sの1つをアドレス変換テーブルキャッシュLPT−Cにコピーする。
次に、アドレス変換テーブルキャッシュLPT−Cの空き容量を調べる(S703)。すなわち、アドレス変換テーブルキャッシュLPT−Cの空きが少ないかを判定する。空き容量が閾値以上あれば(S703−N)、アドレス変換テーブルキャッシュLPT−Cの更新を終了する。
アドレス変換テーブルキャッシュLPT−Cには常に、空き容量があるように制御することができる。もし、ダーティーなキャッシュで、アドレス変換テーブルキャッシュLPT−Cがすべて埋まると、アドレス変換子テーブルLPT−SをRAM206にコピーする前にダーティーなキャッシュをNVM205に書き戻す必要があり、SSD202のアクセス性能が低下するためである。常に、アドレス変換テーブルキャッシュLPT−Cに空き容量が存在することで、簡易な制御で高いアクセス性能を持つSSD202を提供することができる。
もしくは、常にクリーンなキャッシュを一定量、アドレス変換テーブルキャッシュLPT−Cに有するように制御することもできる。この場合、アドレス変換テーブルキャッシュLPT−Cに空き容量がなくても、クリーンなキャッシュを破棄し、その領域にアドレス変換子テーブルLPT−Sをコピーすることができる。クリーンなキャッシュを破棄するときにはNVM205へのアクセスは生じないため、短時間でキャッシュを破棄することが可能である。そのため、高いキャッシュヒット率を持ち、かつ、高いアクセス性能を持つSSD202を提供することができる。
空き容量が閾値未満の場合(S703−Y)、アドレス変換テーブルキャッシュLPT−Cをすべて破棄することができる。このときに、書き込み命令によりテーブル内のアドレスが更新されたキャッシュ(ダーディーキャッシュ)はキャッシュを破棄するときにNVM205に書き戻す(S704)。このときに、ダーティーキャッシュの総計データサイズが閾値以上になると、ダーディーキャッシュをすべてNVM205に書き戻す制御方法も可能である。この制御方法では、NVM205に書き戻すときの書き込み単位をNVM205にとって最適なデータアクセスサイズ(NVM205へのアクセス効率の良いデータサイズ)にすることが可能である。なお、NVM205へのアクセスは、ページサイズ×チャネル数×1チップ当たりのプレーン数のデータサイズでアクセスすると、簡易なコントローラの設計で効率的にチップにアクセスすることができる。
もしくは、上記の空き容量が閾値未満の場合(S703−Y)に、キャッシュをすべて破棄するのではなく、一部のデータのみを破棄することができる。例えば、ライン入れ替え方式としてLRU(Least Recently Used)を用いる方法について、図13を用いて説明する。図13は、LRUを用いる方法のRAM206の構成の変形例を示す図である。LRUは、キャッシュメモリや仮想メモリの制御方法において用いられるアルゴリズムである。未使用の時間が最も長いキャッシュを破棄する方法である。
具体的には、アドレス変換テーブルキャッシュLPT−C内のアドレス変換子テーブルLPT−SR毎にLRUフラグ301a及び301bを設ける。アドレス変換子テーブルLPT−SRは、複数のエントリに分割されて管理される。例えば、アドレス変換子テーブルLPT−SRの数が16384個のときに、64個のエントリに分割する。1つのエントリには、16384/64=256個のアドレス変換子テーブルLPT−SRが属する。
キャッシュのヒット判定を行うときには、論理アドレス(LPN)の下位6ビットの情報を用いて、検索するエントリを決定することができる。例えば、下位6ビットが「000000」であれば、エントリ0を検索し、「000001」であれば、エントリ1を検索する。エントリ内の検索にはTag216を使用する。Tag216には論理アドレスの残り上位ビットを用いる。論理アドレス1個が4B(バイト)、すなわち32ビットで表すならば、下位6ビットを除いた上位26ビットがTag216になる。
検索するアドレスから計算されるTagとアドレス変換子テーブルLPT−SR毎に保持されているTagが一致していれば、キャッシュがヒットしたと判定する。すなわち、アドレス変換テーブルキャッシュLPT−Cを用いて、論理アドレス(LPN)から物理アドレス(PPN)へのアドレス変換を行う。アドレス変換子テーブルLPT−SRが使用されたときに、そのLPT−SRのLRUフラグを0にし、さらに、そのLPT−SRが属するエントリのすべてのLPT−SRのLRUフラグをインクリメントする(LRUフラグの値を1だけ増加させる)。
次に、キャッシュを破棄するかの判定時にLRUフラグの値を調べる。LRUフラグの値が大きければ、最後に使用されてから長時間使用されていないことがわかるため、そのキャッシュを破棄する。以上の方法により、精度よく使用頻度の少ないキャッシュを優先的に破棄し、効率的なキャッシュ制御を行うことができる。
消去子テーブルET−SRについても同様に、LRUフラグ302a及び302bを用いて制御する。LRUを簡略化し、より高速にキャッシュ制御可能な擬似LRU命令キャッシュ入れ替えポリシー(quasi−LRU instruction cache eviction policy)を用いることもできる。
さらに、書き込む際に新しいブロックが必要かを判定する(S705)。必要でない場合(S705−N)にはアドレス変換テーブルキャッシュLPT−Cの更新動作を終了し、必要な場合(S705−Y)は、後述(図11)するアドレス変換テーブルLPTのウェアレベリングを行う(S706)。
以上の方法を用いて、前述(図6)した読み出し要求に対する動作においての、アドレス変換テーブルキャッシュLPT−Cの更新を行うことができる。
<書き換え要求に対する動作>
次に、図8を用いて、ホスト機器201が書き換え要求を行ったときの制御方法について説明する。図8は、書き換え動作を説明するフローチャートの一例を示す図である。このホスト機器201からの書き換え要求に対する動作は、SSD202内の制御部204であるSSDコントローラの制御により実行される。
まず、NVM205への書き込みに当たり、新ブロックが必要かを判定する(S801)。本実施の形態では、NVM205の書き込み順に関して、ブロック内で連続したページ順に書き込む制約があるとする。この場合、ブロック内の最後のページに書き込んだ次の書き込みを行う場合は、新ブロックが必要であると判定できる。新ブロックが必要な場合(S801−Y)は、データ領域のウェアレベリングを行い、新ブロックを決定する(S802)。詳細な手順は後述(図10)する。
次に、NVM205にデータを書き込む(S803)。さらに、ブロック管理情報を更新する。ブロック管理情報の詳細については前述(図3)した通りである。制御部(SSDコントローラ)204内のSRAM、もしくは、RAM(DRAM)206上にライトバッファを設けて、NVM205へのアクセス効率の良いデータサイズ単位でNVM205に書き込むこともできる。物理アドレスは、新ブロックであればブロック内の先頭ページ、新ブロックでなければ前回書き込んだページの次のページに書き込む。なお、ブロック番号とページ番号をSSDコントローラ内のSRAM上で保持することで、RAM(DRAM)206やNVM205へのアクセスなしに物理アドレスを定めることが可能であり、高速に動作させることができる。
次に、RAM(DRAM)206上のアドレス変換テーブルキャッシュLPT−Cにヒットしたかを判定する(S804)。ヒットの判定は、キャッシュに含まれるTagの情報を用いて行うことができる。ヒットしない場合(S804−N)は、アドレス変換テーブルキャッシュLPT−Cの更新を行う(S805)。この詳細は前述(図7)した通りである。
次に、アドレス変換テーブルキャッシュLPT−Cを更新する(S806)。論理アドレスに対応したアドレス変換テーブルキャッシュLPT−Cを選択し、該当論理アドレスに対応するアドレスに格納されている物理アドレスを更新する。
次に、消去テーブルキャッシュET−Cのヒット判定を行う(S807)。すなわち、消去テーブルキャッシュET−Cにヒットしたかを判定する。消去テーブルETは、NVM205のページ毎に、消去可能か、消去不可かの情報を格納する。SSDコントローラの動作検証と高信頼化のために、消去可否に加えてページが消去済みや良/不良ページ、信頼度などの情報を格納することもできる。既にSSD202に書き込まれている論理アドレスに対して再度、書き込みがあった場合に、古い情報は不要となり、該当する物理アドレス(古い物理アドレス)は消去可能になる。
消去可能になった物理ページは、後述(図10)するデータ領域のガーベージコレクションにより、一括して消去される。なお、新しく書き込まれた物理アドレスを新しい物理アドレスとする。消去テーブルETも、アドレス変換テーブルLPTと同様にキャッシュ制御される。キャッシュは、RAM(DRAM)206上に設けられる。
古い物理アドレスに対応する消去テーブルキャッシュET−Cがミスした場合(S807−N)は、後述(図9)する消去テーブルキャッシュET−Cの更新を行う(S808)。キャッシュ更新時には、消去予定の物理アドレス(消去先物理アドレス)を用いる。消去テーブルETは、少なくともNVM205のページが消去可能か、消去不可かの情報を有していれば良く、例えば、物理アドレスから論理アドレスへの変換テーブルで消去情報を格納することもできる。
例えば、ある物理アドレスに対応する論理アドレスが無効なアドレス(ホスト機器201からアクセスされないアドレス)であれば、その物理アドレスが消去可能であることがわかる。すなわち、消去テーブルETの代わりに物理アドレスから論理アドレスへの変換テーブルを用いることができる。この場合、後述(図10)するスタティックウェアレベリングを高速に行うことが可能になり、アクセス性能の高いSSD202を提供できる長所がある。
さらに、消去テーブルキャッシュET−Cの更新を行う(S809)。具体的には、古い物理アドレスに対応する消去テーブルETを消去可能とマークする。また、ページ毎の消去済み情報を保持する場合には、新しい物理アドレスに対応する消去テーブルETを書き込み済みかつ消去不可とマークする。
最後に、ホスト機器201に書き換え完了の応答を送信する。
以上の方法を用いて、SSD202(具体的にはSSD202内の制御部204であるSSDコントローラ)は、ホスト機器201が書き換え要求を行ったときの制御を行うことができる。
<消去テーブルキャッシュの更新要求に対する動作>
図9を用いて、前述(図8−S808)した消去テーブルキャッシュET−Cの更新要求に対する制御方法を説明する。図9は、消去テーブルキャッシュET−Cの更新動作を説明するフローチャートの一例を示す図である。
まず、RAM(DRAM)206上のエリアテーブルから消去先物理アドレスが含まれる消去子テーブルET−Sの物理アドレスを読み出す(S901)。次に、消去テーブルETの一部(消去子テーブルET−S)をNVM205の該当アドレスからRAM(DRAM)206上の消去テーブルキャッシュET−Cにコピーする(S902)。
次に、消去テーブルキャッシュET−Cの空き容量を調べる(S903)。すなわち、消去テーブルキャッシュET−Cの空きが少ないかを判定する。空き容量が閾値以上あれば(S903−N)、消去テーブルキャッシュET−Cの更新を終了する。
空き容量が閾値未満の場合(S903−Y)、使用頻度の低い消去テーブルキャッシュET−Cを破棄する。使用頻度の大小を判断する方法としては、LRUフラグを用いた前述(図13)した方法がある。書き込みにより消去子テーブルET−SR内の消去情報が更新されたダーティーキャッシュは、キャッシュを破棄するときにNVM205に書き戻す(S904)。このときに、ダーティーキャッシュの総計データサイズが閾値以上になるとダーディーキャッシュをすべてNVM205に書き戻す制御方法を取ることができるのは言うまでもない。
さらに、書き込む際に新しいブロックが必要かを判定する(S905)。必要でない場合(S905−N)には消去テーブルキャッシュET−Cの更新を終了し、必要な場合(S905−Y)は、エリアテーブルの情報を用いて、後述(図11)するアドレス変換テーブルLPTのウェアレベリングを行い、新ブロックを決定する(S906)。
以上の方法を用いて、前述(図8)した書き換え要求に対する動作においての、消去テーブルキャッシュET−Cの更新要求に対する制御を行うことができる。
<データ領域のウェアレベリング要求に対する動作>
図10を用いて、前述(図8−S802)したデータ領域のウェアレベリングについて説明する。図10は、データ領域のウェアレベリング動作を説明するフローチャートの一例を示す図である。
まず、ダイナミックウェアレベリングを行う。ダイナミックウェアレベリングとは、新たにデータを書き込むブロックを決定するときに消去回数の少ないブロックを選択することで、消去回数を平準化する制御方法であり、ウェアレベリングの1つである。
具体的には、RAM(DRAM)206、もしくは制御部(SSDコントローラ)204内のSRAM上のブロック管理情報を参照し、消去回数の少ない消去済みブロックを検索し、該当ブロックを次に書き込むブロックとする(S1001)。このときに、全ブロックにおける最小消去回数を保持し、その回数と等しいブロックを使用するか、もしくは、最小消去回数+閾値以下のブロックを使用する方法を用いることで、すべての消去済みブロックの情報を検索する必要がなくなるため、高速にウェアレベリングを行うことができる。
次に、消去済みブロックのブロック総数が閾値以下か(消去済みブロック数が少ないか)を判定する(S1002)。閾値より大きければ(S1002−N)、データ領域のウェアレベリングを終了する。
閾値以下の場合(S1002−Y)、まず、ガーベージコレクションを行う。ガーベージコレクションとは、インバリッドページが含まれるブロックに対して、バリッドページのみ他のブロックにコピーした後に該当ブロックを消去することで消去済みブロックを生み出す制御方法であり、ダイナミックウェアレベリングと組み合わせることでNVM205内の書き換え回数を平準化することができる。
具体的には、ブロック管理情報を参照し、データ用の書き込みが完了したブロックの中でバリッドページ数が少ないブロックを検索する。最も少ないブロックを全ブロックから検索しても良いし、また、全ブロック中の一定の割合のブロックについて消去回数を検索し、消去回数が下位のブロックを消去対象のブロックとしても良い。必ずしも、最小となる消去回数のブロックを検索する必要はない。一部のブロックの消去回数を一定の精度で検索するに留めることで、高速に消去対象のブロックを列挙することができる。
さらに、消去対象のブロック中に含まれるバリッドページの内容を現在、書き込み中のブロック内の新規ページにコピーし、書き込んだ後に消去する(S1003)。このときに、複数の消去対象のブロックを同時に検索し、消去することで効率的にガーベージコレクションを行うことができる。
バリッドページとは、ホスト機器201から参照されるページである。バリッドページでないページ、すなわちインバリッドページは、ホスト機器201から参照されないページ、すなわち、対応する論理アドレスが存在しないページのことである。ホスト機器201から書き込みが行われたとき、書き込まれたページはバリッドページになり、消去テーブルETや消去テーブルキャッシュET−Cに該当する物理アドレスがバリッドページであることを記録する。次に、同じ論理アドレスにホスト機器201から書き込みが行われたとき、前記の物理アドレスは以降、参照されることはなくなる。そこで、消去テーブルETや消去テーブルキャッシュET−Cに該当する物理アドレスがインバリッドページであることを記録する。インバリッドページは不要な情報が書かれたページであり、消去可能であることを意味する。
なお、ブロックは、書き込み中、書き込み完了、消去済みブロック(予備ブロック)、不良ブロックに分類される。さらに、書き込み中ブロックと書き込み完了ブロックは、データ領域用とアドレス変換テーブル用、消去テーブル用にそれぞれ区別される。さらに、消去済みブロックを、アドレス変換テーブル用と消去テーブル用、データ用とに分けて管理しても良い。管理情報用とデータ用ではアクセスパターンが異なるため、それぞれを分けて管理することでアクセスパターンに応じた制御が可能になり、SSD202を高信頼化できる効果がある。上記のブロックの分類は、ブロック管理情報により管理される。
ブロック管理情報にはさらに、消去回数とバリッドページの数を記録することができる。ブロックごとの消去回数を記録することで、ダイナミックウェアレベリングを効率的に行うことができる。また、ブロックに含まれるバリッドページのページ数を記録することで、ガーベージコレクションの対象ブロックを高速に検索することができる。
次に、アドレス変換テーブルキャッシュLPT−C、アドレス変換テーブルLPT、消去テーブルキャッシュET−C、消去テーブルET、ブロック管理情報を更新する(S1004)。テーブルキャッシュのヒット判定やミスした場合の処理については、ホスト機器201からのデータ書き換え要求において、上記で述べたのと同様の方法を用いることができる。
さらに、消去回数の多いブロックと消去回数の少ないブロックを入れ替えるスタティックウェアレベリングを行う。スタティックウェアレベリングの目的は、消去回数の少ないブロックと消去回数の多いブロックの消去回数差を減らし、全ブロックが均等に書き込まれるように制御することであり、ウェアレベリングの1つである。具体的な手順を以下で述べる。
まず、ブロック管理情報を参照し、消去回数の少ないブロックと消去回数の多いブロックの消去回数差が閾値以上か(消去回数差の大きなブロックがあるか)を調べる(S1005)。このとき、すべてのブロックの消去回数を調べても良いし、一部のブロックを抜き出して消去回数を調べても良い。消去回数を調べるブロックを限定することにより、短時間でスタティックウェアレベリングを実行するかを判定することができる。
次に、消去回数差が閾値以上でない場合(S1005−N)はデータ領域のウェアレベリングを終了し、消去回数差が閾値以上の場合(S1005−Y)には、消去回数の少ないブロックのバリッドページに書かれたデータを書き込み中のブロックに書き込み、コピー元のブロック、すなわち消去回数の少ないブロックを消去する(S1006)。これは、消去回数の少ないブロックと消去回数の多いブロックのデータの入れ替えである。複数のブロックを同時並行的に消去候補にリストアップし、消去することもできる。この場合、簡易な制御方法で効率的にウェアレベリングが行える。
なお、ダイナミックウェアレベリングの後に、毎回、ガーベージコレクションの判定やスタティックウェアレベリングの判定を行う必要は必ずしもなく、一定回数ごとに1回、判定することもできる。
以上の方法を用いて、前述(図8)した書き換え要求に対する動作においての、データ領域のウェアレベリングを行うことができる。
<アドレス変換テーブルのウェアレベリング要求に対する動作>
図11を用いて、前述(図7−S706)したアドレス変換テーブルLPTのウェアレベリング要求の処理手順を述べる。図11は、アドレス変換テーブルLPT(データ管理情報を格納する領域)のウェアレベリング動作を説明するフローチャートの一例を示す図である。
まず、ブロック管理情報を参照し、消去済みブロックの群から消去回数の少ないブロックを検索し、書き込みブロックとする(ダイナミックウェアレベリング、S1101)。
次に、ガーベージコレクションを実行するかを判定する(S1102)。具体的には、消去済みブロックの数が閾値以下か(消去済みブロック数が少ないか)を調べる。閾値より大きければ(S1102−N)、アドレス変換テーブルLPTのウェアレベリングを終了する。
消去済みブロック数が閾値以下の場合(S1102−Y)、まず、ガーベージコレクションを行う。具体的には、ブロック管理情報を参照し、アドレス変換テーブル用の書き込みが完了したブロックの中でバリッドページ数が少ないブロックを検索する。このときに、アドレス変換テーブルLPTに割り当てられたブロックだけを検索しても良いし、アドレス変換テーブルLPTと消去テーブルETに割り当てられたブロックから検索しても良い。さらに、アドレス変換テーブルLPTと消去テーブルETとデータ領域に割り当てられたブロックから検索しても良い。
バリッドページ数の少ないブロック中に含まれるバリッドページの内容を現在、書き込み中のブロック内の新規ページにコピーし、書き込んだ後に消去する(S1103)。このときに、複数の消去対象のブロックを同時に検索し、消去することで効率的にガーベージコレクションを行うことができる。
次に、エリアテーブルとブロック管理情報を更新する(S1104)。さらに、消去回数の多いブロックと消去回数の少ないブロックを入れ替えるスタティックウェアレベリングを行う。具体的には、ブロック管理情報を参照し、消去回数の少ないブロックと消去回数の多いブロックの消去回数差が閾値以上か(消去回数差の大きなブロックがあるか)を調べる(S1105)。
次に、消去回数差が閾値以上でない場合(S1105−N)はアドレス変換テーブルLPTのウェアレベリングを終了し、消去回数差が閾値以上の場合(S1105−Y)には、消去回数の少ないブロックのバリッドページに書かれたアドレス変換テーブル情報をテーブル書き込み中のブロックに書き込み、コピー元のブロック、すなわち消去回数の少ないブロックを消去する(S1106)。これは、消去回数の少ないブロックと消去回数の多いブロックのデータの入れ替えである。
以上の方法を用いて、前述(図7)したアドレス変換テーブルキャッシュLPT−Cの更新要求に対する動作においての、アドレス変換テーブルLPTのウェアレベリングを行うことができる。
<SSDの稼働時間とNVMの最大ブロック消去回数の関係>
図12を用いて、SSD202の稼働時間とNVM205の最大ブロック消去回数の関係について説明する。図12は、稼働時間(横軸)と最大ブロック消去回数(縦軸)の関係の一例を示す図である。
図12において、制御1〜3で示した3種類のウェアレベリング、すなわち、ダイナミックウェアレベリング、ガーベージコレクション、スタティックウェアレベリングにより、SSD202中のNVM205の特定ブロックへの書き込みを抑え、全ブロックに均等に書き込みを生じさせることにより、SSD202への書き込み量の増大に伴うNVM205の最大ブロック消去回数の増加を抑える。さらに、制御4で示したエリアテーブルを用いたアドレス変換テーブルLPTと消去テーブルETのウェアレベリングにより、最大ブロック消去回数の増加を抑えることができる。なお、最大消去回数が規定値に達したブロックは消去不可能となり、不良ブロックになる。不良ブロックの増加により、ホスト機器201から見たSSD容量が規定値以下になったところがSSD202の寿命となる。
アドレス変換テーブルキャッシュLPT−Cの格納場所として、RAM(DRAM)206を用いることができるが、そのほか、NVM205より高速にアクセスができるメモリであれば良く、例えば、FeRAM(強誘電体メモリ)、相変化メモリを用いることができる。さらに、そのほか、NVM205として、MLC NANDフラッシュメモリを用いる場合はSLC NAND(シングルレベルセルのNAND型フラッシュメモリ)を用いることができる。また、NVM205として、NANDフラッシュメモリを用いる場合は、NORフラッシュメモリを用いることができる。
<エリアテーブルの詳細>
図14と図15を用いて、エリアテーブルに関してさらに詳細に説明する。図14は、エリアテーブルを説明するための図である。図15(a)〜(c)は、論理アドレスと物理アドレスを説明するための図である。
ホスト機器201から指定されたデータの物理アドレスを調べる方法を述べる。ホスト機器201から指定される論理アドレスLBAは上述した通り、512バイト単位でアドレッシングを行う。容量1TBのSSD202を考えると、下記の(6)式からアドレス幅が31ビットになることがわかる。
1TB/512B=231 … (6)
ホスト機器201から要求されたデータサイズとして、512バイトを例にして説明する。まず、LBA[30:13](すなわちLBAの上位18ビット、図15)がアドレス変換子テーブル番号になることを利用して、まずアドレス変換子テーブル番号を求める。図15に示すように、さらにアドレス変換テーブルキャッシュ(LPT−C)におけるTagとエントリを求める。TagはLBA[30:19](すなわち、LBAの上位12ビット)であり、エントリはLBA[18:13]である。得られたエントリのTagを比較することで、アドレス変換テーブルキャッシュLPT−Cのキャッシュヒット判定を行う。
キャッシュミスした場合は、次に、エリアテーブル内に記録されるアドレス変換子テーブルの物理アドレスは4バイト単位であり、RAM206の先頭アドレスからアドレス変換子テーブル番号順に記録されていることを利用して、アドレス変換子テーブル番号を4倍にしたアドレスをRAM206から読み出す開始アドレスとし、データサイズ4バイトを読み出すことで、エリアテーブルからアドレス変換子テーブルの物理アドレスを得る。得られた物理アドレスをNVM205から読み出す開始アドレスとし、データサイズ4KBをRAM206にコピーする。
RAM206のコピー先のアドレスから、さらにLBA[12:3]を4倍したアドレスを開始アドレスとし、4バイトを読み出すことでデータ領域の物理アドレスが得られる。データ管理サイズが4KBであるため、この物理アドレスが示すデータのサイズは4KBである。
次に、この物理アドレスが示すデータ領域の先頭アドレスからLBA[2:0](すなわちLBAの下位3ビット)を512倍したものをオフセットしたアドレスを開始アドレスとし、データサイズ512バイトをNVM205から読み出す。最後に、ホスト機器201に読み出した512バイトのデータを送る。
以上の過程を経ることにより、ホスト機器201から指定されたデータをSSD202から読み出すことができる。
図14に記載されている通り、アドレス変換子テーブル1個はLBAの8Kセクタ領域のアドレス変換情報を持つ。また、図15に記載されている通り、論理アドレス(LPN)はLBAの上位28ビットである。
次に、物理アドレスPPNの消去情報を調べる方法を述べる。データ管理サイズは上述した通り、4KB単位とする。容量1TBのSSD202を考えると、下記の(7)式からアドレス幅が28ビットになることがわかる。
1TB/4KB=228 … (7)
まず、PPN[27:12](すなわちLBAの上位16ビット、図15)が消去子テーブル番号になる。消去子テーブルの物理アドレスが格納されている領域の先頭アドレス(この例では1024KB)から消去子テーブル番号を4倍にしたアドレスをオフセットしたアドレスを開始アドレスとし、データサイズ4バイトをRAM206から読み出すことにより、消去子テーブルの物理アドレスを得ることができる。得られた物理アドレスをNVM205から読み出す開始アドレスとし、データサイズ4KBをRAM206にコピーする。
RAM206のコピー先のアドレスから、さらにLBA[11:0]をアドレスをオフセットしたアドレスを開始アドレスとし、1バイトを読み出すことでPPNの消去情報が得られる。
消去情報を調べた結果、もし、消去不可であれば、最新のデータであり、今後、ホスト機器201から読み出される可能性がある。そのため、ガーベージコレクションにおいて、消去ができないデータである。もし、消去可能であれば、最新のデータでなく、すなわち、最新のデータがNVM205のそのほかの物理ページに存在し、今後、ホスト機器201から読み出されることのないデータである。そのため、ガーベージコレクションにおいて、消去しても良いデータであることがわかる。
図14に記載されている通り、消去子テーブル1個はPPN4K個の消去情報を持つ。
また、図15に記載されている通り、消去子テーブル番号の上位10ビット、すなわち、PPN[27:18]はTagとなり、PPN[17:12]はエントリとなる。また、LBA[30:0]、すなわち、LBAの上位28ビットは論理アドレス(LPN)になる。ここで、説明のために用いたビット幅はあくまでも説明を容易にするための例であり、実際にはキャッシュサイズやSSD202の容量に応じて変更されることは言うまでもない。
<実施の形態1の効果>
以上に説明した本実施の形態1によれば、NVM205と、RAM206と、制御部204などを有することで、代表的には、製造コストを低減し、アクセス性能及び信頼性が高く、省スペースなSSD202を製造することができる。詳細には、以下のような効果を得ることができる。
(1)制御部204は、NVM205に、NVM205にアクセスするために与えられた論理アドレスを物理アドレスに変換するアドレス変換テーブルLPTを複数に分割して記憶し、さらに、RAM206に、複数に分割されたアドレス変換子テーブルLPT−SRを複数記憶することができる。
(2)制御部204は、RAM206に記憶されたアドレス変換子テーブルLPT−SRをキャッシュ制御することができる。このキャッシュ制御の方法として、論理アドレスを基にして検索するエントリを限定することができる。また、アクセス頻度を基にして破棄するキャッシュを決定することができる。さらに、キャッシュ制御において更新されたアドレス変換子テーブルLPT−SRをNVM205に書き戻すときのデータサイズは、アドレス変換子テーブルLPT−SRよりも大きくすることができる。
(3)制御部204は、NVM205に、NVM205のデータの論理アドレスを物理アドレスに変換を行うアドレス変換テーブルLPTを記憶し、さらに、RAM206に、アドレス変換テーブルLPTのアドレス変換テーブルキャッシュLPT−Cと、アドレス変換テーブルLPTがNVM205のどこに記憶されているかを示すエリアテーブル207とを記憶し、さらに、エリアテーブル207に、アドレス変換テーブルLPTのNVM205内でのアドレスを複数記憶することができる。
(4)制御部204は、エリアテーブル207を用いてアドレス変換テーブルLPTのウェアレベリングを行うことができる。
(5)制御部204は、NVM205に、NVM205に記憶されたデータが消去可能か否かを示す消去テーブルETを複数に分割して記憶し、さらに、RAM206に、複数に分割された消去子テーブルET−SRを複数記憶することができる。
(6)制御部204は、RAM206に記憶された消去子テーブルET−SRを同時にNVM205に記憶することができる。
[実施の形態2]
実施の形態2の不揮発性記憶装置について、図16〜図17を用いて説明する。図16は、この不揮発性記憶装置(SSD)202の構成の一例を示す図である。図17は、SSD202の構成の変形例を示す図である。
本実施の形態では、揮発性メモリの搭載コストを低減し、高いアクセス性能を持つだけでなく、上述した実施の形態1よりアクセス性能が高いSSD202の例を説明する。
不揮発性メモリ(NVM)として、相変化メモリを用いる。特に、大容量である3次元積層相変化メモリ3D−PCM(3Dimension Phase Change Memory)を用いるのが望ましい。
図16を用いて、本実施の形態2におけるSSD202の構成について説明する。図16に示すSSD202のうち、既に上述した実施の形態1で説明した図1に示された同一の符号を付された構成と、同一の機能を有する部分については、説明を省略する。
本実施の形態のSSD202は、ホストI/F203と、内部バス231と、制御部(SSDコントローラ)204と、3次元積層相変化メモリ(3D−PCM)401と、RAM206から構成される。このSSD202は、ホストI/F203がホスト機器201とインターフェース230で接続される。後述する通り、RAM206と3D−PCM401を1チップ化する構成も可能である。
相変化メモリは、記憶素子自体に流れる電流によるジュール熱に応じて、記憶素子の結晶状態が変化することにより記憶情報が書き込まれる。記憶素子の材料としては、カルコゲナイドが用いられる。カルコゲナイドとは、硫黄、セレン、テルルのうちの少なくとも1元素を含む材料のことである。
相変化メモリの動作原理を簡単に説明する。相変化部をアモルファス化させる場合、相変化部をカルコゲナイド材料の融点以上に熱してから急冷するようなリセットパルスを印加する。融点は、例えば600℃である。急冷する時間は、例えば2nsecである。相変化部を結晶化させる場合、局所的に相変化部の温度を結晶化温度から融点で維持する。このときの温度は、例えば400℃である。結晶化に要する時間はカルコゲナイド材料の組成によって異なるが、例えば50nsecである。以後、相変化メモリの相変化部を結晶化させることをセット動作、アモルファス化させることをリセット動作と呼ぶ。
相変化メモリの特徴は、相変化部の抵抗値が結晶状態に応じて2桁から3桁も変化し、この抵抗値を信号として用いるため、読み出し信号が大きく、センス動作が容易になるため、読み出しが高速であることである。
さらに、3D−PCM401は、平面方向だけでなく、高さ方向にもメモリ素子が積層されているため、大容量であり、SSD202の用途に適する。
3D−PCM401をNVMとして用いることで、アクセス速度が高く、大容量のSSD202を提供できる。
さらに、アクセス速度が高速であるという3D−PCM401の特徴を活かすため、アドレス変換テーブル及び消去テーブルのキャッシュ制御を行うだけでなく、さらに、NVM(本実施の形態では3D−PCM)に対するキャッシュのデータサイズの比を大きくすることで、キャッシュのヒット率を向上させることが望ましい。例えば、上述した実施の形態1では、SSD容量1TBに対して、アドレス変換テーブルキャッシュのデータサイズは64MBであったが、これを256MBにすることが可能である。同様に、消去テーブルキャッシュのサイズも大きくすることができる。
また、NVMとして相変化メモリを用いる本実施の形態の場合は、図17に示すような構成とすることも可能である。すなわち、図17に示すSSD202は、NVMの相変化メモリ(3D−PCM(1))401と異なる構成を持ち、より高速にアクセス可能な構成とした相変化メモリ(3D−PCM(2))402をアドレス変換テーブルキャッシュLPT−Cの格納場所として用いることができる。この場合、3D−PCM401と3D−PCM402を同じチップにすることもできる。この場合、SSDを構成するチップ数が少なくなるため、コストを低減することができる利点がある。なお、必要とする性能に応じて、3D−PCM401と3D−PCM402を有するチップを複数個、SSDに実装することが可能であることはいうまでもない。ここで、「チップ」とは回路素子が形成された1枚の半導体基板を小片に切り出したあとの小片1個のことを指す。
図17に示すように、相変化メモリは、高速にアクセス可能な領域と、この領域より低速にしかアクセスできないが、より大容量の領域との2つの領域を持つ。より高速にアクセス可能な領域(3D−PCM402)に本実施の形態のRAMに相当する情報(アドレス変換テーブルキャッシュLPT−C、消去テーブルキャッシュET−C、エリアテーブル)を書き込み、より大容量の領域(3D−PCM401)に本実施の形態のNVMに相当する情報(エリアテーブルバックアップ、アドレス変換テーブルLPT、消去テーブルET、データ)を書き込む。この場合、NVM及びRAMに要するメモリのチップを低減することができるため、コスト競争力の高いSSD202を提供することが可能になる。
以上に説明した本実施の形態2によれば、相変化メモリを用いることで、上述した実施の形態1の効果に加えて、よりアクセス性能が高く、大容量で、コスト競争力の高いSSD202を製造することができる。
[実施の形態3]
実施の形態3の不揮発性記憶装置について、上述した実施の形態1で示した図1を参照して説明する。
本実施の形態では、揮発性メモリの搭載コストを低減し、高いアクセス性能を持つだけでなく、RAM206の容量をさらに低減し、信頼性の高いSSD202の例を説明する。
本実施の形態のSSD202は、図1を参照して説明すると、バリッドフラグ、ダーティーフラグがRAM206上のアドレス変換テーブルキャッシュLPT−Cに存在しないことを特徴とする。
簡易な制御方式で動作するため、制御部(SSDコントローラ)204の開発にあたって設計ミス(バグ)が混入するおそれが少なく、信頼性の高いSSD202を短期間で開発することができる。
キャッシュ制御のアルゴリズムとしては、フルアソシエイティブ方式を用いることができる。エントリは1個であり、ヒット判定はすべてのアドレス変換子テーブルLPT−SRを対象にして行う。もちろん、Tagが等しいキャッシュが見つかり、ヒット判定となった場合には残りのアドレス変換子テーブルLPT−SRを検索する必要はない。
SSD202の電源投入時に、あらかじめ、アドレス変換テーブルキャッシュLPT−Cにアドレス変換テーブルの一部をコピーする。アドレス変換テーブルの先頭部分をコピーすることができる。もしくは、電源遮断時のアドレス変換テーブルキャッシュLPT−Cの状態に復元しても良い。常にアドレス変換テーブルキャッシュLPT−C内の情報をバリッド(有効)に維持することで、バリッドフラグを必要としない制御方法を実現できる。
ホスト機器201からの書き込み命令により更新されたアドレス変換子テーブルLPT−SRは、次のアドレス変換テーブルキャッシュLPT−Cへのアクセスが生じる前にNVM205のアドレス変換テーブルLPTに書き戻す。この動作により、常にアドレス変換テーブルLPTとアドレス変換テーブルキャッシュLPT−Cの情報が一致するように制御する。アドレス変換テーブルキャッシュLPT−Cの入れ替えの際には、入れ替え開始(NVM205からアドレス変換子テーブルLPT−SのRAM206へのデータコピーが開始するとき)から入れ替え終了(前記の動作が完了するとき)までの間、アドレス変換テーブルキャッシュLPT−Cへのアクセスを一時停止する。
上記の制御方法により、アドレス変換テーブルキャッシュLPT−Cのバリッドフラグ及びダーティーフラグが不要なSSD202を実現することが可能になる。
以上に説明した本実施の形態3によれば、RAM206上のアドレス変換テーブルキャッシュLPT−Cに、バリッドフラグ、ダーティーフラグが存在しないことで、上述した実施の形態1の効果に加えて、RAM206の容量をさらに低減し、信頼性の高いSSD202を製造することができる。
[実施の形態4]
実施の形態4の不揮発性記憶装置について、図18を用いて説明する。図18は、この不揮発性記憶装置(SSD)202のエリアテーブルを説明するための図である。
本実施の形態では、エリアテーブルにより、アドレス変換テーブルLPTと消去テーブルETがウェアレベリングされていることを特徴とする。エリアテーブルにより、アドレス変換テーブルLPTと消去テーブルETのNVM205への書き込みが平準化されるため、高信頼なSSD202を実現できる。
エリアテーブルと、アドレス変換テーブルLPT、消去テーブルET、データ領域との関係を図18に示す。エリアテーブルには、アドレス変換子テーブル(LPT−C)、消去子テーブル(ET−C)の物理アドレスが格納されている。LBAアドレスの一部アドレス(例えば、上位ビット)からアドレス変換子テーブル番号を決定することができる。また、物理アドレス(PPN)の一部アドレス(例えば、上位ビット)から、消去子テーブル番号を決定することができる。アドレス変換子テーブルに含まれる情報から、ホスト機器201から要求されたデータが、NVM205上のデータ領域のどこに書き込まれているかを決定することができる。また、消去子テーブルに含まれる情報から、PPNに対応するデータ領域に書き込まれているデータが消去可能かを決定することができる。
なお、必ずしも、アドレス変換テーブルLPTと消去テーブルETを同時にウェアレベリングする必要はなく、エリアテーブルを用いて消去テーブルETのみをウェアレベリングすることが可能であることは言うまでもない。
さらに、キャッシュ上の消去子テーブルET−SRに関して、複数個のET−SRを同時にNVM205に書き戻すことができる。このようにすることで、NVM205への書き込み単位を大きくすることができるため、ページサイズの大きなNVM205を効率的に制御することができる。また、複数のNVMチップを巧みに並列制御する必要がなくなるため、簡素かつ堅牢な制御アルゴリズムで高性能なSSD202を実現することが可能になる。
以上に説明した本実施の形態4によれば、エリアテーブルにより、アドレス変換テーブルLPTと消去テーブルETがウェアレベリングされていることで、上述した実施の形態1の効果に加えて、高信頼で、高性能なSSD202を製造することができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
本発明のSSDは、書き込み可能なNVM、例えばフラッシュメモリもしくは相変化メモリを有する記憶装置に関し、書き込み又は読み出しを管理するSSDコントローラを含むSSDに利用可能である。
201 ホスト機器
202 SSD(不揮発性記憶装置)
203 ホストI/F
204 制御部
205 NVM(不揮発性メモリ)
206 RAM
207 エリアテーブル
208 エリアテーブルバックアップ
214 LPT−SRのバリッドフラグ
215 LPT−SRのダーティーフラグ
216 LPT−SRのTag
218 ET−SRのバリッドフラグ
219 ET−SRのダーティーフラグ
220 ET−SRのTag
230 インターフェース
231 内部バス
301 LPT−SRのLRUフラグ
302 ET−SRのLRUフラグ
401 3D−PCM(3次元積層相変化メモリ)
402 3D−PCM(3次元積層相変化メモリ)
ET 消去テーブル
ET−C 消去テーブルキャッシュ
ET−S NVM上に設けられた消去子テーブル
ET−SR RAM上に設けられた消去子テーブル
LPT アドレス変換テーブル
LPT−C アドレス変換テーブルキャッシュ
LPT−S NVM上に設けられたアドレス変換子テーブル
LPT−SR RAM上に設けられたアドレス変換子テーブル

Claims (10)

  1. 不揮発性の第1のメモリと、
    前記第1のメモリより高速にアクセス可能な第2のメモリと、
    前記第1のメモリおよび前記第2のメモリへのアクセスに対する制御を行う制御部とを有し、
    前記制御部は、
    前記第1のメモリに、前記第1のメモリにアクセスするために与えられた論理アドレスを物理アドレスに変換するアドレス変換テーブルを複数に分割して記憶し、
    前記第2のメモリに、前記複数に分割された部分アドレス変換テーブルを複数記憶し、
    さらに、前記制御部は、前記第2のメモリに記憶された前記複数の部分アドレス変換テーブルをキャッシュ制御し、
    前記キャッシュ制御の方法として、論理アドレスを基にして検索するエントリを限定し、かつ、アクセス頻度を基にして破棄するキャッシュを決定し、
    前記キャッシュ制御において更新された部分アドレス変換テーブルを前記第1のメモリに書き戻すときのデータサイズは、前記部分アドレス変換テーブルよりも大きく、かつ前記第1のメモリに適する書き込みサイズであることを特徴とする不揮発性記憶装置。
  2. 請求項1に記載の不揮発性記憶装置において、
    前記第1のメモリは、相変化メモリであることを特徴とする不揮発性記憶装置。
  3. 請求項1に記載の不揮発性記憶装置において、
    1つの半導体チップが前記第1のメモリと前記第2のメモリを有することを特徴とする不揮発性記憶装置。
  4. 請求項1に記載の不揮発性記憶装置において、
    前記第2のメモリは、相変化メモリであることを特徴とする不揮発性記憶装置。
  5. 請求項1に記載の不揮発性記憶装置において、
    前記制御部は、
    前記第1のメモリに、前記アドレス変換テーブルを記憶し、
    前記第2のメモリに、前記部分アドレス変換テーブルのキャッシュと、前記部分アドレス変換テーブルが前記第1のメモリのどこに記憶されているかを示す第2のテーブルとを記憶し、
    前記第2のテーブルに、前記部分アドレス変換テーブルの前記第1のメモリ内でのアドレスを複数記憶する、ことを特徴する不揮発性記憶装置。
  6. 請求項5に記載の不揮発性記憶装置において、
    前記第2のメモリは、DRAMであることを特徴とする不揮発性記憶装置。
  7. 請求項5に記載の不揮発性記憶装置において、
    前記制御部は、前記第2のテーブルを用いて前記アドレス変換テーブルのスタティックウェアレベリングを行うことを特徴とする不揮発性記憶装置。
  8. 請求項1に記載の不揮発性記憶装置において、
    前記制御部は、
    前記第1のメモリに、前記第1のメモリに記憶されたデータが消去可能か否かを示す消去テーブルを複数に分割して記憶し、
    前記第2のメモリに、前記複数に分割された部分消去テーブルを複数記憶する、ことを特徴とする不揮発性記憶装置。
  9. 請求項8に記載の不揮発性記憶装置において、
    前記制御部は、前記第2のメモリに記憶された前記複数の部分消去テーブルを同時に前記第1のメモリに記憶することを特徴とする不揮発性記憶装置。
  10. 請求項8に記載の不揮発性記憶装置において、
    前記第2のメモリに記憶される前記複数の部分消去テーブルには、前記第1のメモリの分割された領域がホスト機器からアクセスされる可能性があるか否かを検索可能な情報を含むことを特徴する不揮発性記憶装置。
JP2012013937A 2012-01-26 2012-01-26 不揮発性記憶装置 Expired - Fee Related JP5907739B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012013937A JP5907739B2 (ja) 2012-01-26 2012-01-26 不揮発性記憶装置
US13/745,292 US9378131B2 (en) 2012-01-26 2013-01-18 Non-volatile storage addressing using multiple tables

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012013937A JP5907739B2 (ja) 2012-01-26 2012-01-26 不揮発性記憶装置

Publications (2)

Publication Number Publication Date
JP2013152676A JP2013152676A (ja) 2013-08-08
JP5907739B2 true JP5907739B2 (ja) 2016-04-26

Family

ID=48871323

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012013937A Expired - Fee Related JP5907739B2 (ja) 2012-01-26 2012-01-26 不揮発性記憶装置

Country Status (2)

Country Link
US (1) US9378131B2 (ja)
JP (1) JP5907739B2 (ja)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9158678B2 (en) * 2013-03-13 2015-10-13 Kabushiki Kaisha Toshiba Memory address management system and method
JP6102632B2 (ja) * 2013-08-14 2017-03-29 ソニー株式会社 記憶制御装置、ホストコンピュータ、情報処理システムおよび記憶制御装置の制御方法
US9092365B2 (en) * 2013-08-22 2015-07-28 International Business Machines Corporation Splitting direct memory access windows
US9104600B2 (en) 2013-08-22 2015-08-11 International Business Machines Corporation Merging direct memory access windows
US9195590B2 (en) * 2013-08-29 2015-11-24 Micron Technology, Inc. Sub-sector wear leveling in memories
US9921918B1 (en) * 2013-08-30 2018-03-20 Ca, Inc. Cloud-based data backup and management
US20150067237A1 (en) * 2013-09-05 2015-03-05 Kabushiki Kaisha Toshiba Memory controller, semiconductor memory system, and memory control method
US9329994B2 (en) 2014-02-20 2016-05-03 Kabushiki Kaisha Toshiba Memory system
KR20150139112A (ko) * 2014-06-02 2015-12-11 삼성전자주식회사 가비지 컬렉션 유닛을 포함하는 메모리 시스템 및 동작 방법
JP6166476B2 (ja) 2014-07-09 2017-07-19 株式会社日立製作所 メモリモジュールおよび情報処理システム
US20160048328A1 (en) * 2014-08-12 2016-02-18 Kabushiki Kaisha Toshiba Memory system
JP6273562B2 (ja) 2014-09-12 2018-02-07 パナソニックIpマネジメント株式会社 メモリデバイスおよびメモリデバイスの制御方法
KR20160068108A (ko) * 2014-12-04 2016-06-15 에스케이하이닉스 주식회사 반도체 메모리 장치를 포함하는 메모리 시스템 및 그것의 관리 방법
US10338817B2 (en) * 2014-12-30 2019-07-02 Sandisk Technologies Llc Systems and methods for storage recovery
KR102239356B1 (ko) 2015-02-17 2021-04-13 삼성전자주식회사 클록 제어 유닛 또는 전원 제어 유닛을 포함하는 저장 장치와 메모리 시스템, 그리고 그것의 동작 방법
KR102506135B1 (ko) * 2015-03-16 2023-03-07 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
KR102339779B1 (ko) * 2015-04-06 2021-12-15 삼성전자주식회사 데이터 저장 장치, 이를 포함하는 데이터 처리 시스템, 및 상기 시스템의 작동 방법
KR102445662B1 (ko) 2015-07-01 2022-09-22 삼성전자주식회사 스토리지 장치
US20170024326A1 (en) * 2015-07-22 2017-01-26 CNEX-Labs, Inc. Method and Apparatus for Caching Flash Translation Layer (FTL) Table
US9904607B2 (en) 2015-11-13 2018-02-27 International Business Machines Corporation Logical to physical table restoration from stored journal entries
JP2017097404A (ja) * 2015-11-18 2017-06-01 株式会社デンソー マイクロコンピュータ
US20170199687A1 (en) * 2016-01-12 2017-07-13 Kabushiki Kaisha Toshiba Memory system and control method
US9959044B2 (en) * 2016-05-03 2018-05-01 Macronix International Co., Ltd. Memory device including risky mapping table and controlling method thereof
JP2018041204A (ja) * 2016-09-06 2018-03-15 東芝メモリ株式会社 メモリ装置及び情報処理システム
JP2019008730A (ja) * 2017-06-28 2019-01-17 東芝メモリ株式会社 メモリシステム
CN109254794A (zh) * 2017-06-29 2019-01-22 Nvxl技术股份有限公司 数据软件系统辅助
JP2019057074A (ja) * 2017-09-20 2019-04-11 東芝メモリ株式会社 メモリシステム
KR20190040614A (ko) * 2017-10-11 2019-04-19 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법
CN107844431B (zh) * 2017-11-03 2022-01-25 合肥兆芯电子有限公司 映射表更新方法、存储器控制电路单元与存储器存储装置
CN109977031B (zh) * 2017-12-27 2021-06-01 成都华为技术有限公司 固态硬盘垃圾回收的方法和固态硬盘
JP7069811B2 (ja) 2018-02-22 2022-05-18 富士通株式会社 情報処理装置及び情報処理方法
US10592427B2 (en) * 2018-08-02 2020-03-17 Micron Technology, Inc. Logical to physical table fragments
JP6675466B2 (ja) * 2018-11-13 2020-04-01 キオクシア株式会社 メモリシステム
US11061598B2 (en) * 2019-03-25 2021-07-13 Western Digital Technologies, Inc. Optimized handling of multiple copies in storage management
US11086806B2 (en) * 2019-06-03 2021-08-10 Smart IOPS, Inc. Memory access system to access abstracted memory
US10817435B1 (en) * 2019-06-10 2020-10-27 Micron Technology, Inc. Queue-based wear leveling of memory components
JP2021043837A (ja) 2019-09-13 2021-03-18 キオクシア株式会社 メモリシステム
JP7048650B2 (ja) * 2020-02-04 2022-04-05 キオクシア株式会社 メモリ装置及び方法
JP7238178B2 (ja) * 2020-02-04 2023-03-13 キオクシア株式会社 メモリ装置及びメモリ装置を制御する方法
US11275680B2 (en) 2020-02-10 2022-03-15 Micron Technology, Inc. Profile and queue-based wear leveling of memory devices
JP7408449B2 (ja) 2020-03-23 2024-01-05 キオクシア株式会社 記憶装置及び記憶方法
CN114860150A (zh) * 2021-02-04 2022-08-05 戴尔产品有限公司 在存储群集的存储系统之间执行损耗均衡
US20220374360A1 (en) * 2021-05-18 2022-11-24 Macronix International Co., Ltd. Memory device and method for accessing memory device
US20230251963A1 (en) * 2022-02-04 2023-08-10 National Technology & Engineering Solutions Of Sandia, Llc Architectural support for persistent applications

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5900016A (en) 1997-04-02 1999-05-04 Opti Inc. System for using a cache memory with a write-back architecture
JP4439096B2 (ja) 2000-08-28 2010-03-24 株式会社東芝 メモリカード及び同カードに適用されるアドレス変換方法
JP2001142774A (ja) * 1999-11-11 2001-05-25 Toshiba Corp メモリカード及び同カードに適用されるアドレス変換方法
US6377500B1 (en) 1999-11-11 2002-04-23 Kabushiki Kaisha Toshiba Memory system with a non-volatile memory, having address translating function
JP4058322B2 (ja) 2002-10-07 2008-03-05 株式会社ルネサステクノロジ メモリカード
JP4211385B2 (ja) 2002-12-20 2009-01-21 パナソニック株式会社 半導体メモリカードおよび管理情報更新方法
US8041878B2 (en) * 2003-03-19 2011-10-18 Samsung Electronics Co., Ltd. Flash file system
US8504798B2 (en) * 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
US8015348B2 (en) * 2004-06-30 2011-09-06 Super Talent Electronics, Inc. Memory address management systems in a large capacity multi-level cell (MLC) based flash memory device
JP4961693B2 (ja) * 2005-07-29 2012-06-27 ソニー株式会社 コンピュータシステム
JP5076411B2 (ja) * 2005-11-30 2012-11-21 ソニー株式会社 記憶装置、コンピュータシステム
JP2007199828A (ja) * 2006-01-24 2007-08-09 Matsushita Electric Ind Co Ltd 不揮発性記憶装置およびそのアドレス管理方法
JP2007280329A (ja) * 2006-04-12 2007-10-25 Matsushita Electric Ind Co Ltd 不揮発性記憶装置および不揮発性記憶装置の管理方法
JP4967680B2 (ja) * 2007-01-23 2012-07-04 ソニー株式会社 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法
US7937521B2 (en) * 2008-01-29 2011-05-03 Cadence Design Systems, Inc. Read disturbance management in a non-volatile memory system
US8285970B2 (en) * 2008-11-06 2012-10-09 Silicon Motion Inc. Method for managing a memory apparatus, and associated memory apparatus thereof
US8966181B2 (en) * 2008-12-11 2015-02-24 Seagate Technology Llc Memory hierarchy with non-volatile filter and victim caches
US8612666B2 (en) * 2009-06-30 2013-12-17 Intel Corporation Method and system for managing a NAND flash memory by paging segments of a logical to physical address map to a non-volatile memory
US8914568B2 (en) * 2009-12-23 2014-12-16 Intel Corporation Hybrid memory architectures
US8527704B2 (en) * 2010-11-11 2013-09-03 International Business Machines Corporation Method and apparatus for optimal cache sizing and configuration for large memory systems

Also Published As

Publication number Publication date
US20130198439A1 (en) 2013-08-01
US9378131B2 (en) 2016-06-28
JP2013152676A (ja) 2013-08-08

Similar Documents

Publication Publication Date Title
JP5907739B2 (ja) 不揮発性記憶装置
US11216185B2 (en) Memory system and method of controlling memory system
Kang et al. Performance trade-offs in using NVRAM write buffer for flash memory-based storage devices
Jiang et al. S-FTL: An efficient address translation for flash memory by exploiting spatial locality
CN108121503B (zh) 一种NandFlash地址映射及块管理方法
US20080155183A1 (en) Method of managing a large array of non-volatile memories
CN110678836A (zh) 用于键值存储的持久性存储器
US20130151759A1 (en) Storage device and operating method eliminating duplicate data storage
KR20180108513A (ko) 역방향 캐시 테이블을 이용한 하드웨어 기반 맵 가속
JP2013242908A (ja) ソリッドステートメモリ、それを含むコンピュータシステム及びその動作方法
US20190339904A1 (en) Solid state drive using two-level indirection architecture
US9798673B2 (en) Paging enablement of storage translation metadata
US10402338B2 (en) Method and apparatus for erase block granularity eviction in host based caching
TW201539186A (zh) 記憶體裝置及記憶體管理方法
US20100318726A1 (en) Memory system and memory system managing method
CN113254358A (zh) 用于地址表高速缓存管理的方法和系统
Yim A novel memory hierarchy for flash memory based storage systems
CN110968527B (zh) Ftl提供的缓存
US11663136B2 (en) Storage capacity recovery source selection
JP2010191672A (ja) データ記憶システム
CN109840219B (zh) 大容量固态存储设备的地址转换系统与方法
KR101353967B1 (ko) 환형 구조의 비휘발성 메모리 캐쉬에 데이터를 읽고 쓰기 위한 데이터 처리 방법
CN110968520A (zh) 基于统一缓存架构的多流存储设备
KR101373613B1 (ko) 환형 구조의 비휘발성 메모리 캐쉬를 포함하는 하이브리드 스토리지 장치
JP6027479B2 (ja) 半導体メモリ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140606

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150818

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151013

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160315

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160322

R150 Certificate of patent or registration of utility model

Ref document number: 5907739

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees