JP6018696B2 - 半導体ストレージ - Google Patents
半導体ストレージ Download PDFInfo
- Publication number
- JP6018696B2 JP6018696B2 JP2015502613A JP2015502613A JP6018696B2 JP 6018696 B2 JP6018696 B2 JP 6018696B2 JP 2015502613 A JP2015502613 A JP 2015502613A JP 2015502613 A JP2015502613 A JP 2015502613A JP 6018696 B2 JP6018696 B2 JP 6018696B2
- Authority
- JP
- Japan
- Prior art keywords
- semiconductor storage
- ssd
- page
- block
- address conversion
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本発明は、半導体ストレージに関する。より具体的には、特に抵抗値の差を利用して情報を記憶し、電気的に書き換え可能なメモリセルを含む半導体ストレージに関する。
半導体ストレージ(以下、SSD(Solid State Drive))は、ハードディスク代替の記憶装置や、デジタルカメラ、携帯型音楽プレーヤ、などとして幅広く用いられるようになっている。メモリ装置の容量は年々増加しているが、一方、デジタルカメラの高画素化、携帯型音楽プレーヤの高音質化や動画対応、放送通信融合によるストレージで取り扱うデータ量の増加などにより、記憶装置のさらなる大容量化が求められている。
SSDは、不揮発性メモリと、SSDコントローラを持ち、さらに、DRAMを持つこともある。一般に、不揮発性メモリの書き換え回数には一定回数の制限があるために、SSDは、書き込みを不揮発性メモリ全体に分散させる動作(ウェアレベリング)を行う。ウェアレベリングを行うために、ホストがSSDに指定するアドレス(以下、論理アドレスとする)をSSDコントローラがアドレス変換し、フラッシュメモリに論理アドレスとは異なるアドレス(以下、物理アドレスとする)でアクセスする。論理アドレスから物理アドレスへの変換をアドレス変換テーブルを用いて行う方法が、非特許文献1に述べられている。
また、不揮発性メモリについて、積層ゲート構造を有するNAND型フラッシュメモリが現在、主に用いられている。NAND型フラッシュメモリは、前記積層ゲート構造に電荷を蓄積し、蓄積された電荷量を‘0’と‘1’に対応させることで情報を記憶するメモリである。
その他の不揮発性メモリとして、相変化材料を記憶部として用いる相変化メモリが、特許文献1に記載されている。相変化材料には電気抵抗が高い相と電気抵抗が低い相の2つの準安定な状態があり、この抵抗の違いを‘0’と‘1’に対応させることで情報を記憶する。さらに、金属酸化物を用いた記憶部を持つReRAMが、非特許文献2に記されている。ReRAMは、電圧の印可による電気抵抗の変化を用いて情報を記憶するメモリである。
さらに、磁性材料を用いた記憶部を持つスピン注入型MRAMが非特許文献3に記されている。MRAMは、電流を流すことで磁化の方向を反転し、記憶部の抵抗が変化することを用いて情報を記憶するメモリである。
特許文献2には、相変化メモリ等を含んだメモリ使用効率の向上が実現可能な半導体装置が記載されている。
上記のメモリはいずれも、書き換え回数が有限である。また、相変化メモリ、ReRAMおよびスピン注入型MRAMは、NAND型フラッシュメモリに比べて消去の単位が小さい、もしくは小さくできるメモリである。
"Write amplification analysis in flash−based solid state drives"、 Proceedings of The Israeli Experimental Systems Conference (SYSTOR) (2009)、 pp.1−9
"Novel colossal magnetoresistive thin film nonvolatile resistance random access memory"、 International Electron Devices Meeting、 2002
"On−axis scheme and novel MTJ structure for sub−30nm Gb density STT−MRAM"、 International Electron Devices Meeting、 2010
特許文献1において、アドレス変換テーブルは、不揮発性メモリ、もしくはDRAMに置かれる。ここで、アドレス変換テーブルを不揮発性メモリに置いた場合にはアドレス変換テーブルのために不揮発性メモリへのアクセス回数が増加し、SSD性能を低下させる課題がある。これに対し、アドレス変換テーブルをDRAMに置いた場合には、アドレス変換テーブルのデータサイズの分SSD内のDRAM容量が増加し、SSDのコストが高くなる課題がある。また、揮発性のDRAMに置かれたアドレス変換情報を突然の停電による消失から守るため、バッテリーバックアップやスーパーキャパシタによるデータ保護システムが必要になり、SSDのコストが高くなる課題がある。
本発明の第一の目的は、アドレス変換処理に伴う性能劣化を低減することである。また、本発明の第二の目的は、アドレス変換に伴う半導体ストレージのコストの増大を低減することである。本発明の第三の目的は、高信頼の半導体ストレージを提供することにある。
本願発明による課題を解決する手段のうち、代表的なものを例示すれば、半導体ストレージであって、記憶領域が複数のブロックに分割され、ブロックのそれぞれがさらに複数のページに分割される不揮発性メモリを備え、消去回数の管理が、ページ毎に行われ、論理アドレスから物理アドレスへのアドレス変換が、ブロック毎に行われることを特徴とする。
本発明によれば、高性能、低価格、高信頼な半導体ストレージを提供することができる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
本実施の形態による半導体ストレージは、不揮発性メモリを備え、前記不揮発性メモリの消去回数がページ単位で管理され、アドレス変換情報がブロック単位で管理される。不揮発性メモリの領域は複数のブロックに分割され、前記ブロックは複数のページに分割される。SSDコントローラが不揮発性メモリを消去、もしくは書き換え(BIT ALTERABLE WRITE)、書き込み(PROGRAM)を行う単位の中で最も大きい単位をページとする。消去とは、データが‘0’と‘1’の2値で記録される場合に、ページ内の全データを例えば‘1’にすることであり、書き換えとは、‘0’を‘1’にする、もしくは‘1’を‘0’にすることであり、書き込みとは、‘1’を‘0’にすることとする。なお、データを‘3’、‘2’、‘1’、‘0’の4値などで記録する多値記録することができる場合があることは言うまでもない。NANDフラッシュメモリを用いるSSDでは消去の単位は例えば、512KBであり、書き換えは行うことが出来ず、書き込みの単位は例えば、4KBである。この場合、ページサイズは512KBとなる。ここでいうページサイズはNANDフラッシュメモリのスペックシートなどに記載されるページサイズとは異なる概念である。
以下、不揮発性メモリへの消去、もしくは書き換え、書き込みをライト(WRITE)とする。消去回数は、例えば、ページ少なくとも一部がライトされた累積の回数を用いることが出来る。ページの一定領域以上がライトされた場合の累積回数を用いることが出来ることは言うまでもない。
図1は、本発明の一実施形態に係るSSDの全体構成を示すブロック図である。SSD101は、サーバー、パーソナルコンピュータ、ストレージ制御装置を始めとする各種電子機器(以下、ホスト)にホストインターフェース105を介して接続して使用される。ホストインターフェース105は、ホストとの間で、公知の各種インターフェース仕様に従ったインターフェースであるが、独自のインターフェース仕様を用いることも可能である。ストレージ制御装置は、ボリューム仮想化やデータバックアップなどのストレージ機能を制御する装置である。 ストレージ制御装置とサーバーはサーバー−ストレージ制御装置間インターフェースを介して接続される。
不揮発性メモリには書き換え回数の制限があるため、SSDには、書き込みを行うときに一部の領域に書き込みが偏らないように書き込みを不揮発性メモリ全体へ分散し、書き換え回数を平準化する制御、いわゆる「ウェアレベリング」が必要となる。
SSD101の構成は、不揮発性メモリ102と、SSDコントローラ103と、DRAM104と、ホストインターフェース105を実装基板に備えたものである。前記不揮発性メモリ102及びDRAM104はSSDコントローラ103のアクセス制御を受ける。
SSDコントローラ103は、ハードディスク互換の制御機能をホストに提供することが出来る。ハードディスク互換とする場合は、幅広いホストに対応させることが出来る利点がある。一方、ハードディスク互換を持たない場合は、ホストからSSD101の特性に合わせた制御を行うことが出来るため、SSD101の性能をより高くすることが出来る。ホストインターフェース105として有線だけではなく、無線を用いることが可能であることは言うまでもない。この場合、SSDの配置の自由度が高まり、SSDの設置に要する時間が短くなる効果がある。SSDコントローラ103は高機能なSSD制御動作を行うため、図示を省略するCPUを内蔵することが出来る。SSDコントローラにCPUを内蔵せず、SSDコントローラのハードウェアによりSSDの制御を行うことや、ホストがSSDのCPUが行う処理を肩代わりすることが出来ることは言うまでもない。その場合は、SSDコントローラの回路規模が小さくなり、コストを低減できる利点がある。SSDコントローラ103が持つ図示を省略する不揮発性メモリコントローラは不揮発性メモリの動作不良ビットを訂正し、SSDに要求される信頼性を確保するために、ECC回路を備えることが出来る。ECC回路は例えば不揮発性メモリに格納されたECC(Error−correcting codes)を用いて、不揮発性メモリに格納されたデータのエラー検出とエラー訂正を行う回路である。不揮発性メモリの信頼性がSSDに要求される信頼性を上回る場合はECC制御部が不要であることは言うまでもない。その場合、SSDコントローラ103の回路規模が小さくなり、コストが低減できる利点がある。DRAMとSSDコントローラは図示を省略するDRAMコントローラを用いて接続されている。DRAMコントローラはSSDコントローラ内に内蔵することが出来る。DRAMコントローラがECC回路を内蔵し、DRAMデータにECCを付加することが可能であることは言うまでもない。この場合、SSDが高信頼化する効果がある。
従来技術をまず説明する。従来技術において、アドレス変換テーブルは論理ページと物理ページの対応を管理し、消去回数テーブルはブロック番号ごとの消去回数を管理する。また、図示を省略する有効、非有効テーブルを持つことが出来る。有効、非有効テーブルはページごとの有効、もしくは非有効を管理する。従来技術におけるページは例えば、書き込み単位であり、必ずしも消去単位以上にする必要はない。従来技術におけるブロックは例えば、消去単位である。有効ページとは今後、ホストからそのページがアクセスされる可能性が有るということであり、非有効ページとは今後、ホストから、そのページがアクセスされる可能性が無いということである。例えば、ホストが論理アドレス0にライトした場合、SSDコントローラは不揮発メモリの論理アドレス0(物理アドレス0)にそのデータをライトしたとする。次に、再度、ホストが同一の論理アドレス0にライトしたのに対し、SSDコントローラは物理アドレス1にそのデータをライトしたとする。この時点において、物理アドレス1は将来的にホストから論理アドレス0でアクセスされる可能性が有る有効ページであるのに対して、物理アドレス0は将来的にホストからアクセスされる可能性が無い非有効ページである。このように、有効、非有効テーブルを持つことにより、非有効ページを効率的に消去することが出来る。なお、この非有効ページを含むブロックについて、有効ページをリードし、別のブロックに書き込んだ後に、ブロックを消去し、消去済みのブロックを生成する動作は、「ガーベージコレクション」と呼ばれる。ガーベージコレクションでは、有効ページを他のブロックにコピーしたのちに、ブロックを消去することで、消去済みのブロックを生成する。SSDの予備領域が少なくなると非有効ページの割合が増加し、ページコピーが増えるため、SSDの性能、特にライトデータ転送性能とホストからの書き込み可能データサイズが低下する。
従来技術は、アドレス変換をページ単位で行い、消去をブロック単位で行っている。従来技術の課題は、DRAM容量が多く必要となり、SSDのコストが増大することと、テーブルアクセス回数が多いため、SSDの性能が低下することである。図3に従来技術の課題を検討する際に本願発明者が比較対象として用いたテーブルのデータサイズの例を示す。例えば、容量8TBのSSDにおいて、テーブルのデータサイズの合計は19GBになる。テーブルのデータサイズが大きくなると、その格納に要するDRAMコスト、不揮発性メモリのコストが高くなり、また、テーブルアクセスに要する時間が長くなるため、SSDのコストが増大し、また、性能が低下する。前述したとおり、アドレス変換をページ単位で行い、消去をページより大きいブロック単位で行うため、アドレス変換テーブルのデータサイズ、すなわち、テーブル(1)のデータサイズ8GB+テーブル(2)のデータサイズ11GBの合計が消去回数テーブルのデータサイズ、すなわち、テーブル(3)のデータサイズ21MBよりも大きくなる。さらに、ページを更新するごとにアドレス変換テーブルを書き換え、ブロックを更新するごとに消去回数テーブルを書き換え、ページ数はブロック数よりも多いため、アドレス変換テーブルのライト回数は消去テーブルのライト回数よりも多くなる。
特に、連続的にホストがSSDにライトすると、消去済みブロックが少なくなり、ガーベージコレクションが開始するため、データ転送性能はライト開始時の20〜50%程度に低下する。
次に、本発明について図1を用いて説明する。不揮発性メモリ102は、データブロックと、アドレス変換テーブルバックアップと、消去回数テーブルバックアップを備える。不揮発性メモリ102のページのデータサイズは、例えば4320バイトであり、4096バイトの主領域と例えば224バイトの予備領域(冗長部)に分かれている。主領域にはデータを書き込み、予備領域にはECCを書き込むことが出来る。ECCは例えば192バイトのデータサイズを持ち、不揮発メモリに書き込まれたデータのエラー検出とエラー訂正をその情報を用いて行う。また、アドレス変換テーブルバックアップと、消去回数テーブルバックアップは揮発性のメモリであるDRAM104に格納されたアドレス変換テーブルと消去回数テーブルを電源遮断時もしくは一定時間毎、SSDがアイドル時に不揮発性メモリにコピーし、保存する。短い時間間隔でコピーすることで突然の停電やSSDの不良によるアドレス変換テーブルと消去回数テーブルの消失の危険性を低減できる。一方、時間間隔を長くすることで不揮発性メモリへのアクセス回数を低減し、SSDの性能を向上させることが出来る。アドレス変換テーブルの情報に比べて、消去回数テーブルの情報はSSDの動作にとっての重要度が低い。そのため、アドレス変換テーブルのバックアップ頻度に比べて、消去回数テーブルのバックアップ頻度を低くすることで、SSDの高性能と高信頼を両立することが出来る。
DRAM104には、アドレス変換テーブル108と消去回数テーブル109を設ける。アドレス変換テーブルは論理ブロック番号と物理ブロック番号の対応を管理するために用いるテーブルである。例えば、論理ブロック番号順に物理ブロック番号を並べることが出来る。この場合、論理ブロック番号Aに対応する物理ブロック番号を取得する方法を述べる。アドレス変換テーブルの先頭からA個目の物理アドレスが求める物理アドレスになる。一方、物理ブロック番号bに対応する論理ブロック番号を取得する方法を述べる。まず、アドレス変換テーブルの物理アドレスを先頭から順に物理ブロック番号bを検索する。目的の物理ブロック番号bが見つかったときに、それが先頭からいくつ目の番号だったかを調べることで、求める論理ブロック番号を調べることができる。アドレス変換テーブルとして、論理ブロック番号順に物理ブロック番号を並べたテーブルのみを持ち、物理ブロック番号順に論理ブロック番号を並べたテーブルを持たないことでアドレス変換テーブルのデータサイズを小さくすることが出来る。この場合、DRAMの容量が低減し、低コストのSSDを提供することが出来る。また、物理ブロック番号から論理ブロック番号への対応を複数個、同時に調べることで物理アドレス1個当たりのアドレス変換に要する時間を短縮することができる。さらに、アドレス変換テーブルとして、前述した論理ブロック番号順に物理ブロック番号を並べた論理ブロック−物理ブロックテーブルに加えて、物理ブロック番号順に論理ブロック番号を並べた物理ブロック−論理ブロックテーブルを持つことにより、物理ブロック番号から論理ブロック番号への変換を高速化することが出来る。そのため、高速なSSDを提供することが出来る。但し、この場合は、論理ブロック−物理ブロックテーブルと物理ブロック−論理ブロックテーブルを合わせたアドレス変換テーブルのデータサイズが大きくなるため、DRAMもしくは不揮発性メモリの容量が増大する。
消去回数テーブル109は、ページ毎の消去回数を管理するために用いられるる。消去回数の管理方法としては、例えば、ページが消去される毎にそのページの消去回数を1ずつ増加させることが出来る。消去毎に消去回数を増加させることに消去回数の管理を厳密に行うことができ、高信頼のSSDを提供することが出来る。
一方、消去毎に一定の確率aでのみ消去回数を管理するための値を1ずつ増加させ、それ以外の場合、すなわち、確率1-aの場合には消去回数を管理するための値を変更しないことも出来る。具体的には、ページが消去される毎に乱数を発生させ、その値が一定以下のときに消去回数を1ずつ増加させ、一定より大きい場合には、消去回数を変更しないこととすればよい。消去回数をe、消去回数を管理する値をfとすると下記の式により、消去回数eを見積もることが可能である。
消去回数e≒消去回数を管理する値f/確率a
これにより消去回数を管理するための値の最大値を低減し、消去回数の管理に必要なデータサイズを低減することが出来る。このため、消去回数を格納する、例えば、DRAMの容量を低減し、SSDコストを低減することが出来る。確率aは、例えば不揮発性メモリの最大消去可能回数と消去回数を管理する目標データサイズから定めることが出来る。具体的には消去可能回数100万回の不揮発性メモリを2Bのデータサイズで管理したい場合、2Bで表せる最大の数は0xFFFF=65535であるため、65535/100万回≒0.066を確率aとして用いるのがよい。この場合、最大100万回の消去回数を1ページ当たり2Bで管理することが可能になる。
消去回数e≒消去回数を管理する値f/確率a
これにより消去回数を管理するための値の最大値を低減し、消去回数の管理に必要なデータサイズを低減することが出来る。このため、消去回数を格納する、例えば、DRAMの容量を低減し、SSDコストを低減することが出来る。確率aは、例えば不揮発性メモリの最大消去可能回数と消去回数を管理する目標データサイズから定めることが出来る。具体的には消去可能回数100万回の不揮発性メモリを2Bのデータサイズで管理したい場合、2Bで表せる最大の数は0xFFFF=65535であるため、65535/100万回≒0.066を確率aとして用いるのがよい。この場合、最大100万回の消去回数を1ページ当たり2Bで管理することが可能になる。
さらに、消去動作を行ったときに不揮発性メモリから得られる消去時間、消去結果の情報を基に消去回数を1、もしくは、1より大きな値、増加させる、もしくは増加させない、もしくは、マイナスすることも可能である。この場合は、不揮発性メモリの詳細な状態をSSDの管理に用いることが出来るため、高信頼のSSDを提供できる利点がある。一方、動作が複雑になるため、SSDの開発に要する期間が長くなる欠点がある。SSDの出荷前の検査において、一定の消去回数を設定し、消去するごとに1ずつ減らすことで消去回数を管理することも出来ることは言うまでもない。この場合は、消去状態が‘1’の不揮発性メモリ、消去回数の管理単位が16ビットの例では、初期値を設定するときに例えば消去を行うだけで、消去回数を0b1111111111111111=65536に設定することが出来るため、初期の消去回数の設定を短時間で行うことが可能であり、生産コストを低減できるメリットがある。
図2に本発明のテーブルのデータサイズの例を示す。容量8TBのSSDにおいて、テーブルのデータサイズの合計は5.4GBになる。従来技術の19GBに比べてテーブルのデータサイズが小さく、その格納に要するDRAMコスト、不揮発性メモリのコストが低くなり、また、テーブルアクセスに要する時間が短くなるため、SSDのコストを低減することが可能であり、また、SSDの性能を高くすることが出来る。前述したとおり、アドレス変換をブロック単位で行い、消去をブロックより小さいページ単位で行うため、アドレス変換テーブルのデータサイズ、すなわち、テーブル(1)のデータサイズ32MB+テーブル(2)のデータサイズ43MBの合計が消去回数テーブルのデータサイズ、すなわち、テーブル(3)のデータサイズ53GBよりも小さくなる。すなわち、アドレス変換に用いる情報のデータサイズが、消去回数の管理に用いる情報のデータサイズよりも小さい。さらに、ページを更新するごとに消去回数テーブルを書き換え、ブロックを更新するごとにアドレス変換テーブルを書き換え、ページ数はブロック数よりも多いため、消去テーブルのライト回数はアドレス変換テーブルのライト回数よりも多くなる。
例えばDRAMの1チップ当たりの容量を4Gbとすると、従来方式のサイズ19GBのテーブルデータを格納するために38個のDRAMチップが必要になる。一方、本発明では11個で済む。チップ数が低減することで、DRAMのチップコストだけではなく、DRAMコントローラやSSD回路基板を簡素化することが出来るため、大幅にSSDのコストを低減することができる。
SSD101の動作を図4を用いて説明する。まず、ライト動作を述べる。ライト動作を行うために、図1に示すテーブルに加えて、図6に示すブロック情報を管理するテーブルを用いてSSDの情報を管理することが出来る。ホストがホストインターフェース105を経由して論理アドレスAに対するデータの書き換え要求をSSD101に送る(S1)。SSDコントローラは論理アドレスAから論理ブロック番号、ページ番号、セクタ番号dを決定する(S2)。SSD容量8TB、ページサイズ4KB、ブロックサイズ1MBの場合について具体的な例を図7に示す。ホストはLBA(Logical Block Addressing)にて論理アドレスを指定する。LBAアドレスの上位23ビット、すなわち、[33:11]が論理ブロック番号Bになる。LBAアドレスの[10:3]が剰余番号となる。[2:0]がセクタとなる。次に、SSDコントローラは論理−物理変換テーブルのB番目を参照する。その値が物理ブロック番号bである(S3)。ページ番号cは下記の式(1)で求められる。
ページ番号 = 物理ブロック番号 x 256 + 剰余番号 …(1)
次に、書き換えるデータに対応したECCを生成し(S4)、求めたページ番号cのセクタdを書き換える(S5)。具体的な動作を述べる。消去動作が必要な不揮発性メモリの場合は、ページ全体を書き換える場合は、ページを消去し、その後にホストから送られたデータを書き込む。ページ内の一部のセクタを書き換える場合は、書き換え対象外のセクタのデータを読み取り、ページ全体を消去し、書き換え対象外のセクタのデータとホストから送られたデータを合わせて1ページ分のデータとし、そのデータを書き込む(いわゆる、リードモデファイライト動作)。消去動作が不要で書き換え動作が可能な(いわゆる、ダイレクトオーバーライト可能な)不揮発性メモリの場合は、ホストから指定されたセクタのデータのみを書き換える。但し、ECC処理単位がセクタではなく、例えばページの場合はホストから指定されたセクタのデータに加えて、ECCデータの書き換えも行う。ページの消去回数が図6に示すブロック中の最大ページ消去回数を上回ったときには、ブロック情報の「現在のブロック中の最大ページ消去回数」を更新する。
ページ番号 = 物理ブロック番号 x 256 + 剰余番号 …(1)
次に、書き換えるデータに対応したECCを生成し(S4)、求めたページ番号cのセクタdを書き換える(S5)。具体的な動作を述べる。消去動作が必要な不揮発性メモリの場合は、ページ全体を書き換える場合は、ページを消去し、その後にホストから送られたデータを書き込む。ページ内の一部のセクタを書き換える場合は、書き換え対象外のセクタのデータを読み取り、ページ全体を消去し、書き換え対象外のセクタのデータとホストから送られたデータを合わせて1ページ分のデータとし、そのデータを書き込む(いわゆる、リードモデファイライト動作)。消去動作が不要で書き換え動作が可能な(いわゆる、ダイレクトオーバーライト可能な)不揮発性メモリの場合は、ホストから指定されたセクタのデータのみを書き換える。但し、ECC処理単位がセクタではなく、例えばページの場合はホストから指定されたセクタのデータに加えて、ECCデータの書き換えも行う。ページの消去回数が図6に示すブロック中の最大ページ消去回数を上回ったときには、ブロック情報の「現在のブロック中の最大ページ消去回数」を更新する。
さらに、ウェアレベリングの実施判定を行う(S6)。例えば、WAF(Write Amplifier Factor)が1.01以下である場合に、ウェアレベリングを行う。WAFとは、SSDが不揮発性メモリに書き込んだデータサイズをホストが書き込んだデータサイズで割ったものである。
ウェアレベリングを行わない場合は、以上でライト動作は終了である。一方、ウェアレベリングを行う場合は、まず、消去回数の多い物理ブロックaを検索する(S7)。但し、単に消去回数の多い物理ブロックをウェアレベリングの対象とすると、同じ物理ブロックが連続してウェアレベリングの対象になることがあるため、例えば、物理ブロックが最後にウェアレベリングされてからの消去回数の増加分が最大のページを持つ物理ブロックaを検索する。例えば、図6の例で物理ブロック番号1〜6について考えると、「現在のブロック中の最大ページ消去回数」−「ブロックが前回ウェアレベリングされた時点のブロック中の最大ページ消去回数」が最大である物理ブロック3が選択される。
次に、消去回数の少ないブロックbを検索する(S8)。但し、単に消去回数の少ない物理ブロックをウェアレベリングの対象とすると、同じ物理ブロックが連続してウェアレベリングの対象になることがあるため、例えば、物理ブロックが最後にウェアレベリングされてから一定時間経過後のブロックから検索するようにすることが出来る。時間の目安として不揮発性メモリに書き込まれたページ数を用いることが出来る。具体的な検索手順を図6を用いて述べる。まず、ある物理ブロックについて、ウェアレベリングが実行されてから、不揮発性メモリ全体に90回書き込まれないと、次のウェアレベリング対象にならないと決める。90回という数値が説明のための例であることはいうまでもなく、実際には1億回程度のずっと大きい数値が用いられる。そのほかの数値も同様に例である。ウェアレベリング実行時点で不揮発性メモリにライトされた総ページ数が200だとする。SSDコントローラは「ブロックが前回ウェアレベリングされた時点の不揮発性メモリにライトした総ページ数」が200回−110回、すなわち90回以上であるブロックを検索し、「現在のブロック中の最大ページ消去回数」が最小のブロックを選択する。図6の例ではブロック番号5が選択される。
その後、物理ブロックaと物理ブロックbのデータを入れ替える(S9)。具体的には、例えば、物理ブロックaとbのデータをSSDコントローラのバッファに一旦、読み出し、不揮発性メモリがダイレクトオーバーライト可能である場合にはそのデータをそれぞれ物理ブロックbと物理ブロックaに対して、書き換える。不揮発性メモリがダイレクトオーバーライト可能でない場合には物理ブロックaとbを消去したのちに、データをそれぞれ物理ブロックbと物理ブロックaに書き込む。
もしくは、SSDがライトバックキャッシュを持つ場合、キャッシュに物理ブロックaとbのデータを書き込むことが出来る。このときに必要な論理ブロック番号は、物理−論理アドレス変換テーブルを検索することで得ることが出来る。キャッシュ内のデータは、ある時間の経過後に、キャッシュデータの更新であるキャッシュリフィルに伴い、不揮発性メモリに書き戻されることになる。ライトバックキャッシュは、SSD内のDRAM、もしくは、不揮発性メモリ、SSDコントローラ内のSRAM、もしくはDRAM、ホストのDRAM、不揮発性メモリなどに置くことが出来る。ライトバックキャッシュ、もしくはその管理情報を揮発性メモリに設けた場合は、バッテリーバックアップやスーパーキャパシタなどにより、電源喪失時にそのデータの喪失を回避する構成を持つことが望ましい。
最後に、SSD管理情報を更新して(S10)、ウェアレベリングを行う場合のライト動作を終了する。
次に、リード動作を図5を用いて述べる。ホストが、ホストインターフェース105を経由して論理アドレスAに対するデータの読み出し要求をSSD101に送る(S11)。SSDコントローラは、ライト動作の場合と同様に論理アドレスAから論理ブロック番号、ページ番号、セクタ番号dを決定する(S12)。さらに、論理ブロック番号から物理ブロック番号を取得する(S13)。
次に、この方法により求められたページ番号cのセクタd、および、ECCを読み出す(S14)。SSDコントローラは、ECCによるエラー検出、訂正を行った後に(S15)、データをホストに送る(S16)。読み出したデータをキャッシュにコピーすることで、SSDを高性能化することが可能であることは言うまでもない。
本発明が従来技術に比べて特に有効な場合とは、不揮発性メモリの消去単位が小さく、ホストがSSDにアクセスするデータサイズが大きい場合である。
具体的な例を図8を用いて説明する。図8は本発明の方式を用いてSSDを構成したときのライトデータ転送性能の見積もりである。
パターンAは、ホストからのリクエスト当たりの平均データサイズが12KBの場合であり、パターンBは、ホストからのリクエスト当たりの平均データサイズが52KBの場合である。グラフの横軸はページサイズであり、縦軸はライトデータ転送速度である。ここで、消去単位がLBA方式で指定可能な最小のデータサイズである0.5KBであるときの性能を100%とした。ライトデータ転送速度50%以上とするためには、パターンAにおいてページサイズを8KB以下にする必要があり、パターンBにおいてページサイズを64KB以下にする必要がある。図8から明らかなように、ページサイズが小さい場合に、本発明のライトデータ転送性能が高くなり、また、ホストがSSDにアクセスするデータサイズが大きいパターンBはページサイズが同じ場合でもパターンAに比べてライトデータ転送性能が高くなる。ホストから送られるさまざまなパターンについて分析した結果、本発明はページサイズ、すなわち、不揮発性メモリの書き込み、書き換え、消去のいずれかの最小単位のうちのもっとも大きなサイズが特に64KB以下の場合に、高性能、かつ、低コストのSSDを提供出来ることがわかった。これに対し、書き換え、もしくは消去の単位が64KB以下にできる不揮発性メモリとして、相変化メモリやReRAMが開発、製造されており、本発明は特に不揮発性メモリとして、相変化メモリやReRAMを用いるのに有効である。不揮発性メモリとして相変化メモリを用いることで、特に大容量のSSDを提供することが可能であり、不揮発性メモリとして書き換え速度の速いReRAMを用いることで、特に高速なSSDを提供することが可能である。
なお、動画編集用途のパターンを本願発明者が調べたところ、ホストからの平均ライトサイズが1MBであり、かつ、リクエスト毎のデータ領域が隣接していることがあった。この場合、複数のライトリクエストをSSDコントローラが結合して、1つの1MBより大きなライトリクエストとして処理することが可能である。NANDフラッシュメモリの消去単位は例えば512KBであるが、このような場合、ページサイズを512KB、ブロックサイズを4MBとすることにより、SSD管理情報を低減した低コスト、高性能な、例えば動画編集用途用のSSDを提供することが出来る。
本願発明者がSSDのアドレス変換単位と消去単位がSSDの性能に与える関係を様々なアドレス変換単位、消去単位、ホストがSSDへアクセスするパターンについて詳細に検討した結果、消去単位が小さい場合に(より正確に記すと、ホストがSSDにアクセスするデータサイズよりも消去単位が同程度か小さい場合に)、アドレス変換単位を消去単位より大きくしても、SSDのライトデータ転送性能と書き込み可能データサイズにおいて、顕著な性能劣化が生じず、従来技術よりライトデータ転送性能と書き込み可能データサイズが上回る場合があることを見出した。
補足すると、NANDフラッシュメモリの消去単位はホストがSSDにアクセスする通常の場合におけるデータサイズよりも大きいため、不揮発性メモリとしてNANDフラッシュメモリを用いるSSDの場合は、ホストがSSDにアクセスするデータサイズが一般的な場合に比べて大きい場合、もしくは、リードに比べてライトの頻度が一般的な場合に比べて小さい場合に特に有効である。すなわち、SSDの用途が前述した動画編集である場合などにおいて本発明が特に有効である。一方、不揮発性メモリとして消去単位の小さい相変化メモリやReRAM、STT−MRAMを用いる場合は、一般的な用途向けに本発明を用いて高性能なSSDを提供することが出来る。なお、現時点においては、SSDの不揮発性メモリとして、現時点ではNANDフラッシュメモリを用いることが一般的であり、相変化メモリやReRAM、STT−MRAMを用いることはやや特別な場合となる。本実施の形態は上記の知見を基に考え出されたものである。
ブロックサイズとSSDの寿命について、図9に例を示して述べる。図9には、ページサイズ4KB、SSD容量8TB、プロヴィジョナル領域25%、不揮発性メモリの最大消去可能回数を10万回という条件において、SSDが寿命を迎えるまでホストがSSDにライトした総データサイズとブロックサイズの関係を図示している。
ホストが送ったライトデータを理想的に平準化し、すべての不揮発性メモリのページに完全に平均的に書き込めた場合を「理想ウェアレベリング」とすると、この場合、130PBのデータをホストがSSDに書き込んだ時点でSSDが寿命を迎え、それ以上、SSDのデータを書き換えることが出来なくなる。ブロックサイズを大きくするほどアドレス変換テーブルのデータサイズが小さくなり、また、アドレス変換に要する時間が短くなり、低コスト、高性能、高寿命なSSDを提供することが出来る。さらに、ホストが主にリード要求を行い、SSDへのライト回数が少ないため、長いSSDの寿命が要求されない場合については、本発明を用いることでブロックサイズが例えば、64KB以上である場合でも低コスト、かつ、高性能なSSDを提供することが出来る。
さらに一般的に述べると、本発明におけるブロックサイズは、不揮発性メモリの最大消去回数、SSDの動作保証年数、想定される1日あたりのSSDへのライトデータサイズ、リクエスト当たりのデータサイズなどのSSDに書き込むパターンの特徴に応じて、定めるのがよい。例えば、ブロックサイズ1MBの場合、ホストがSSDに書き込めるライトデータサイズの上限は12PBであり、SSDが5年間使用されるとすると、1日あたりにSSDに書き込み可能なライトデータサイズの平均は6.7TBになる。もし、1日当たりの平均ライトデータサイズが6.7TB未満であれば、ブロックサイズ1MBのSSDであっても信頼性を保ち動作させることが可能である。
以上、本実施の形態1の半導体ストレージを用いることにより、例えば、次の効果を得ることが出来る。なお、以下の説明では、アドレス変換テーブルやアドレス変換テーブルバックアップなどの、直接ホストから参照されることがないECC以外の情報を「SSD管理情報」とする。
第一に、SSD管理情報のデータサイズを低減することが可能である。そのため、同じSSD容量を維持して、DRAMや不揮発性メモリの容量を低減することが可能となり、低コストのSSDを提供することが出来る。
第二に、SSD管理情報のデータサイズ低減に伴い、SSD管理情報へアクセスする回数が減少するため、高性能のSSDを提供することが出来る。
第三に、SSDの性能を維持しつつ、予備領域を減らすことが可能である。従来方式では、前述したとおり、予備領域が低下するとWAFが増大するため不揮発性メモリへのライトデータサイズが増加する。一方、本発明ではガーベージコレクションを行わないため、予備領域を減らしてもライトデータ転送速度は変化しない。そのため、SSD性能を保ちながら予備領域を減らすことが可能であり、同じSSD容量を維持して、不揮発性メモリの容量を低減することが出来るため、低コストのSSDを提供することが出来る。
第四に、従来方式に必要なガーベージコレクションが本発明では不要なため、SSDの性能を向上させることが出来る。なお、従来方式は、いわゆる、ダイナミックウェアレベリング、スタティックウェアレベリング、ガーベージコレクションを組み合わせることでウェアレベリングを実現しているが、本発明で行うウェアレベリングは、従来方式のスタティックウェアレベリングに近い動作である。
本発明は、特に相変化メモリやReRAMの消去単位の小ささを活かし、相変化メモリやReRAMの性能を最大限に引き出すSSDを提供するためのものである。しかし、NANDフラッシュメモリの構成、性能やホストがSSDに送るデータパターンによっては、NANDフラッシュメモリを不揮発性メモリとして用いて、本発明のSSDを提供することが出来ることは言うまでもない。特に動画や写真、音楽の編集、再生、ストリーミング配信用途ではホストがSSDにライトするときのリクエスト当たりの平均データサイズが大きくなるため、本発明が有効である。また、特に、ライトアクセスに比べてリードアクセスが多い、例えば、オンライン商取引データベースの格納用途などでは、本発明が有効である。
本実施の形態2では、ブロック毎にオフセットページ数を持ち、ブロックの消去回数のばらつきを平準化するSSDのブロック構成、動作の別の例を説明する。
図10は本発明の一実施形態に係るブロックとページ、ブロック内オフセットの関係を示す図である。
オフセットページ数は、物理ブロック毎に管理される。時間t0からt1までは、物理ブロック0と1のオフセットページ数は0である。例えば、物理ページ8には、論理ページ8が対応する。次に、時間t1において、物理ブロック1のオフセットが3になり、物理ブロック1にブロック内オフセット201が生じた場合、時間t1以降は、例えば、物理ページ8が論理ページ11に対応することになる。このようにオフセットページ数を変えることにより、特定の物理ページの消去回数のみが増加することを抑え、ブロック内でもウェアレベリングを行うことが可能になる。
図11はSSD内のDRAM104の構成を示すブロック図である。DRAMはアドレス変換、オフセットテーブル202と消去回数テーブル109を持つ。アドレス変換、オフセットテーブル202は例えば、論理ブロック−物理ブロック変換テーブル、物理ブロック−論理ブロック変換テーブルに加えて、論理ブロック毎のオフセットページ数を管理する。なお、物理ブロック−論理ブロック変換テーブルを不要に出来ることは言うまでもない。
図12は、ページサイズ4KB、ブロックサイズ1MB、実施の形態1の条件において、本願発明者が得たあるパターン、あるブロックに関するページ毎の消去回数を示した図である。ページ番号9の消去回数が28376回と多いのに対して、ページ番号48の消去回数が1007回と小さく、差が28倍と大きい。さらに分析を進めることにより、消去回数の多いページが特定の剰余番号に集中していることがわかった。このブロック内における消去回数差を平準化することでSSDの寿命を長くすることが出来ると本願発明者は考え、実施の形態2を発明した。ここで、オフセット前のページ番号を論理ページ番号、オフセット後のページ番号を物理ページ番号とする。
次に、ブロック毎にオフセットページ数を持つ場合のライト動作を、図13を用いて述べる。
S1〜S5までは実施の形態1と同一であるため、説明を省略する。オフセット判定(S21)では、ブロック内の最大ページ消去回数と最小ページ消去回数を比較し、その差が一定以上になったときにオフセットページ数の変更を実施する。ブロック内のを一定のデータサイズ以上の領域を書き換えるときのみにオフセットを行うことも出来る。
次に、オフセットページ数の変更を行う(S22)。具体的には例えば、図14、時間t1におけるオフセットページ数0〜7の変更候補について、それぞれオフセットページ数を変更したときの消去回数と現在の物理ページの消去回数を足し合わせ、その最大値が最も小さくなるようなオフセットページ数を用いることで変更後のオフセットページ数を求めることが出来る。
さらに、ホストから指示された書き換え対象以外のページのデータを読み出し、ホストから送られたデータと合わせて1ブロック分のデータを生成し、それを不揮発性メモリに書き込む(S23)。残りの動作は実施の形態1と同一に出来る。
図14では時間t1までに図に示す書き込みが行われたとする。時間t1からt2において、同じ書き込みが行われた場合、オフセットページ数を4にすることにより最大消去回数を561回にすることが出来る。一方、オフセットを行わない場合の例を図15に示す。この場合、時間t2における最大消去回数が1084回と、オフセットを行う場合に比べて多くなることがわかる。すなわち、本実施の形態2の構成を用いることにより、最大消去回数を低減することが出来る。そのため、高信頼のSSDを提供することが出来る。
本実施の形態3による半導体ストレージは、消去回数が不揮発性メモリに用意される予備領域に記録されていることを特徴とする。図16は本実施の形態3におけるSSDの構成を示している。DRAM上に消去回数テーブルが無く、不揮発性メモリの予備領域にECCと消去回数が格納されていることが示されている。
不揮発性メモリは、主にデータを記録する主領域に加えて、主にデータの管理情報を記録する予備領域を持つ。例えば、主領域のページ当たりのデータサイズは4096Bであり、予備領域は224Bである。予備領域には主領域のデータのエラー訂正、検出に用いるECCを格納することがある。本実施の形態ではECCに加えて、消去回数を格納することを特徴とする。ECCのデータサイズは1ページ当たり、例えば196Bであり、消去回数は例えば2Bである。
消去回数が予備領域に記録されているため、消去回数を更新するためのみに、メモリにアクセスする必要がなくなる。消去回数が変更されるのは、不揮発性メモリを書き換えるとき、すなわち、データを書き込むときのみにすることが出来るため、データを書き込むときに同時に消去回数を更新することが可能である。もちろん、例えば読み出し動作において、不揮発性メモリから得られる情報、例えば、検出されたエラー数に基づいて、消去回数を増減させることも可能であることは言うまでもない。
本実施の形態を用いることにより、DRAM104に消去回数テーブルを格納する必要がないため、低コストなSSDを提供することが出来る。また、メモリへのアクセス回数を低減できるため、高性能なSSDを提供することが出来る。
本実施の形態4による半導体ストレージは、SSDがDRAMを持たず、消去回数テーブルを不揮発性メモリに格納することを特徴とする。図17は本実施の形態4におけるSSDの構成を示している。
本構成の場合、DRAMを持たないため、SSDのコストを低減できる利点がある。また、突然の停電における揮発性メモリであるDRAMの情報喪失を防げるため、DRAMへバッテリーバックアップなどを行う必要がなくなり、SSDのコストをさらに低減できる利点がある。
本実施の形態5による半導体ストレージは、LBAから論理ブロック番号、剰余番号、セクタを求める手順S3に関して、その計算方法を変更したものである。計算方法を図18に示す。
実施の形態1ではLBAアドレスの上位ビットを用いて論理ブロック番号を求めていたが、本実施の形態5では例えば、上位ビットを用いて剰余番号を求める。このようにすることでブロック内の消去回数のばらつきを平準化する。必ずしも上位ビット[33:26]を剰余番号にし、[25:3]を論理ブロック番号にする必要はなく、例えば、[30:23]を剰余番号にし、ビット[33:31]とビット[22:3]を連結して論理ブロック番号にすることも出来る。この場合、SSDの特定のブロックを管理領域に割り当てるのが容易になり、SSDの設計期間を短縮することが出来る。
本実施の形態を用いることにより、SSDの高寿命化を追加のメモリ無しで行うことが出来るため、高信頼、低コストのSSDを提供することが出来る。
本実施の形態6では、アドレス変換テーブルと消去回数テーブルをDRAM以外の領域に置いた例を説明する。
図19の半導体ストレージは、アドレス変換テーブルと消去回数テーブルをSRAM161上に置くことを特徴とする。構成図を図19に示す。SRAMはDRAMよりも低レイテンシでアクセス可能なため、より高速に動作するSSDを実現することができる。
SRAMは、SSDコントローラと同じチップにすることができる。この場合は、SSD製造コストを削減できる。なお、SSDコントローラを複数のチップにより構成し、協調動作させることが可能であることは言うまでもない。一方、SRAMは、SSDコントローラと別チップにすることもできる。この場合は大容量のSRAMを用いることができるため、より細かい単位で不揮発性メモリ102を制御することが可能になり、長寿命のSSDを実現できる。
また、アドレス変換テーブルと消去回数テーブルを、SRAMの代わりにMRAM上に置くこともできる(図示略)。
MRAMはDRAMと異なり不揮発性であるため、不意の停電などによるデータ消失を防ぐための予備電源を不要、もしくは電源容量を小容量にすることができるため、安価にSSDを製造できる利点がある。
また、図20のように、アドレス変換テーブルと消去回数テーブルをストレージ制御装置211上に置くこともできる。この場合、従来、複数のSSD毎にそれぞれ存在したアドレス変換テーブルと消去回数テーブルを1か所に集約できるため、テーブルデータ保護のためのバッテリーなどのコストを低減できる効果がある。図20に示すような複数のSSDとストレージ制御システムからなるシステムをストレージシステムとする。アドレス変換テーブルと消去回数テーブルは、ストレージ制御装置211内の例えば、DRAMに置くことができる。なお、SLC NANDフラッシュメモリやMLC NANDフラッシュメモリ、MRAM、SRAMに格納することも可能であることは言うまでもない。なお、SSDはDRAMを持つことが出来ることは言うまでもない。その場合、DRAMにデータキャッシュを設けることで高速なSSDを実現することができる。
ストレージ制御装置211は、前述したように、RAIDなどを用いたデータ冗長化による高信頼化、バックアップ機能、スナップショット機能、重複排除機能などの制御を行う。
また、図21のように、アドレス変換テーブルと消去回数テーブルをサーバー221上に置くこともできる。この場合、SSDが持つSSD管理情報のデータサイズを少なくできるため、SSD管理情報を格納するためのSSD内のDRAMのデータサイズを小さくする、もしくは、DRAMを無くすことができる、もしくは同じSSD容量でSSD内の不揮発性メモリのデータサイズを小さくすること出来る。そのため、SSDのコストを低減できる利点がある。
この場合、ホストインターフェース105は独自のプロトコルを用いることでホストがSSDを制御する自由度を高めることが望ましい。これにより、例えばホストが不揮発性メモリ内の不要データをより適切なタイミング、例えば、ホストがアイドル時であるときに消去できるため、高性能なSSDを提供することが出来る。
SSDとサーバー間にストレージ制御装置やキャッシュ制御装置を設けることが可能であることは言うまでもない。この場合、スナップショットなどのストレージ機能の提供や、複数サーバー間でのキャッシュ共有などの機能の提供が可能になる。一方、SSDとサーバー間にストレージ制御装置やキャッシュ制御装置を設けない場合、安価なコンピュータシステムを提供することができる。
101…SSD
102…不揮発性メモリ
103…SSDコントローラ
104…DRAM
105…ホストインターフェース
108、111…アドレス変換テーブル
109、112…消去回数テーブル
161…SRAM 202…アドレス変換、オフセットテーブル
211…ストレージ制御装置
212…サーバー−ストレージ制御装置間インターフェース
221…サーバー。
102…不揮発性メモリ
103…SSDコントローラ
104…DRAM
105…ホストインターフェース
108、111…アドレス変換テーブル
109、112…消去回数テーブル
161…SRAM 202…アドレス変換、オフセットテーブル
211…ストレージ制御装置
212…サーバー−ストレージ制御装置間インターフェース
221…サーバー。
Claims (12)
- 記憶領域が複数のブロックに分割され、前記ブロックのそれぞれがさらに複数のページに分割される不揮発性メモリを備え、
消去回数の管理が、前記ページ毎に行われ、
論理アドレスから物理アドレスへのアドレス変換が、前記ブロック毎に行われ、
前記論理アドレスを指定する際には、前記アドレス変換の対象となる論理ブロック番号と、前記ページを指定する剰余番号を含む論理アドレス情報を用い、
前記ブロック内で消去回数の平準化を行うために、前記剰余番号で指定されたページに対してオフセットを付与するオフセットページ数を用いることを特徴とする半導体ストレージ。 - 請求項1記載の半導体ストレージにおいて、
アドレス変換に用いる情報のデータサイズが消去回数の管理に用いる情報のデータサイズよりも小さいことを特徴とする半導体ストレージ。 - 請求項1記載の半導体ストレージにおいて、
アドレス変換テーブルへのライト回数よりも消去回数テーブルへのライト回数が多いことを特徴とする半導体ストレージ。 - 請求項1記載の半導体ストレージにおいて、
前記アドレス変換を行うために、前記論理ブロック番号と前記ブロックを特定する物理ブロック番号の対応を記憶したアドレス変換テーブルを備え、前記アドレス変換テーブルは、前記物理ブロック番号に対応して、前記オフセットページ数を記憶することを特徴とする半導体ストレージ。 - 請求項4記載の半導体ストレージにおいて、
前記ブロック内の最大ページ消去回数と最小ページ消去回数を比較し、その差が一定以上になったときに前記オフセットページ数の変更を実施することを特徴とする半導体ストレージ。 - 請求項1記載の半導体ストレージにおいて、
前記ページのそれぞれは、主領域と予備領域とを有し、
前記ページの前記主領域へデータを書き込む際に、そのページの前記予備領域にそのページの前記消去回数が書き込まれることを特徴とする半導体ストレージ。 - 請求項1記載の半導体ストレージにおいて、更に、
前記不揮発性メモリの予備領域に前記消去回数が記録されていることを特徴とする半導体ストレージ。 - 請求項1記載の半導体ストレージにおいて、
前記ページが消去された場合に、前記消去回数を記憶するために用いる値を、1より小さい一定の確率で1増加させることを特徴とする半導体ストレージ。 - 請求項1記載の半導体ストレージにおいて、
ストレージ制御装置またはサーバが、前記アドレス変換を行うことを特徴とする半導体ストレージ。 - 請求項1記載の半導体ストレージにおいて、
前記不揮発性メモリが、相変化メモリまたはReRAMであることを特徴とする半導体ストレージ。 - 請求項1記載の半導体ストレージにおいて、
前記ブロック単位が64KB以上であることを特徴とする半導体ストレージ。 - 請求項1の半導体ストレージを備えるストレージシステム。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2013/055030 WO2014132346A1 (ja) | 2013-02-27 | 2013-02-27 | 半導体ストレージ |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP6018696B2 true JP6018696B2 (ja) | 2016-11-02 |
| JPWO2014132346A1 JPWO2014132346A1 (ja) | 2017-02-02 |
Family
ID=51427650
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2015502613A Expired - Fee Related JP6018696B2 (ja) | 2013-02-27 | 2013-02-27 | 半導体ストレージ |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20160011782A1 (ja) |
| JP (1) | JP6018696B2 (ja) |
| WO (1) | WO2014132346A1 (ja) |
Families Citing this family (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP6380804B2 (ja) * | 2014-04-16 | 2018-08-29 | パナソニックIpマネジメント株式会社 | 乱数処理装置および乱数処理方法 |
| US10037168B2 (en) * | 2014-07-09 | 2018-07-31 | Hitachi, Ltd. | Memory module and information processing system |
| US10108344B1 (en) | 2015-05-06 | 2018-10-23 | American Megatrends, Inc. | Systems, devices and methods using a solid state device as a caching medium with an SSD filtering or SSD pre-fetch algorithm |
| US10089227B1 (en) * | 2015-05-06 | 2018-10-02 | American Megatrends, Inc. | Systems, devices and methods using a solid state device as a caching medium with a write cache flushing algorithm |
| US10019362B1 (en) | 2015-05-06 | 2018-07-10 | American Megatrends, Inc. | Systems, devices and methods using solid state devices as a caching medium with adaptive striping and mirroring regions |
| US10114566B1 (en) | 2015-05-07 | 2018-10-30 | American Megatrends, Inc. | Systems, devices and methods using a solid state device as a caching medium with a read-modify-write offload algorithm to assist snapshots |
| US10176103B1 (en) | 2015-05-07 | 2019-01-08 | American Megatrends, Inc. | Systems, devices and methods using a solid state device as a caching medium with a cache replacement algorithm |
| US10055354B1 (en) | 2015-05-07 | 2018-08-21 | American Megatrends, Inc. | Systems, devices and methods using a solid state device as a caching medium with a hashing algorithm to maintain sibling proximity |
| US10108472B2 (en) * | 2015-05-13 | 2018-10-23 | SK Hynix Inc. | Adaptive read disturb reclaim policy |
| CN105630701B (zh) * | 2015-05-29 | 2018-09-14 | 上海磁宇信息科技有限公司 | 数据存储装置及使用不可用页表或不可用块表的读写方法 |
| US10635596B2 (en) | 2015-10-02 | 2020-04-28 | Sony Interactive Entertainment Inc. | Information processing device, access controller, information processing method, and computer program for accessing memory having access units of different sizes |
| JP6524039B2 (ja) * | 2016-09-23 | 2019-06-05 | 東芝メモリ株式会社 | メモリシステム及び制御方法 |
| CN106484472B (zh) * | 2016-09-29 | 2021-06-15 | 华为技术有限公司 | 一种内存回收方法及终端 |
| US20180095788A1 (en) * | 2016-10-04 | 2018-04-05 | Pure Storage, Inc. | Scheduling operations for a storage device |
| JP6677627B2 (ja) | 2016-12-20 | 2020-04-08 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置およびメモリアクセス方法 |
| US11269546B2 (en) | 2017-07-18 | 2022-03-08 | Sony Semiconductor Solutions Corporation | Memory controller, memory system, information processing system, and memory control method |
| CN107506311B (zh) * | 2017-08-30 | 2020-10-20 | 苏州浪潮智能科技有限公司 | 一种固态硬盘的ftl表的刷写方法及装置 |
| CN111104047B (zh) * | 2018-10-25 | 2023-08-25 | 伊姆西Ip控股有限责任公司 | 管理冗余磁盘阵列的方法、设备和计算机可读存储介质 |
| US11188231B2 (en) * | 2019-03-01 | 2021-11-30 | International Business Machines Corporation | Data placement on storage devices |
| JP2021149549A (ja) | 2020-03-19 | 2021-09-27 | キオクシア株式会社 | ストレージ装置およびアドレス変換テーブルのキャッシュ制御方法 |
| US11322831B1 (en) | 2021-06-30 | 2022-05-03 | King Abdulaziz University | Radio cross-section reduction of conformal antennas mounted on vehicles |
| CN121175750A (zh) | 2023-05-08 | 2025-12-19 | 索尼互动娱乐股份有限公司 | 信息处理设备和存储器管理方法 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH09282111A (ja) * | 1996-04-15 | 1997-10-31 | Internatl Business Mach Corp <Ibm> | 半導体メモリ装置及びその制御方法 |
| JP2004086300A (ja) * | 2002-08-23 | 2004-03-18 | Megawin Technology Co Ltd | フラッシュメモリ論理アドレス検出方法 |
| JP2007164318A (ja) * | 2005-12-12 | 2007-06-28 | Renesas Technology Corp | 記憶装置 |
| JP2011138364A (ja) * | 2009-12-28 | 2011-07-14 | Toshiba Corp | メモリシステム |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6000006A (en) * | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
| US20030058681A1 (en) * | 2001-09-27 | 2003-03-27 | Intel Corporation | Mechanism for efficient wearout counters in destructive readout memory |
| US7096313B1 (en) * | 2002-10-28 | 2006-08-22 | Sandisk Corporation | Tracking the least frequently erased blocks in non-volatile memory systems |
| US20060044934A1 (en) * | 2004-09-02 | 2006-03-02 | Micron Technology, Inc. | Cluster based non-volatile memory translation layer |
| KR101437123B1 (ko) * | 2008-04-01 | 2014-09-02 | 삼성전자 주식회사 | 메모리 시스템 및 그것의 마모도 관리 방법 |
| US8959280B2 (en) * | 2008-06-18 | 2015-02-17 | Super Talent Technology, Corp. | Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear |
| CN101673245B (zh) * | 2008-09-09 | 2016-02-03 | 株式会社东芝 | 包括存储器管理装置的信息处理装置和存储器管理方法 |
| KR20130031046A (ko) * | 2011-09-20 | 2013-03-28 | 삼성전자주식회사 | 플래시 메모리 장치 및 플래시 메모리 장치의 데이터 관리 방법 |
| KR101730497B1 (ko) * | 2011-11-04 | 2017-04-27 | 삼성전자 주식회사 | 에러 정정 성능 신장 방법 및 이를 이용한 저장 장치 |
| WO2013102163A1 (en) * | 2011-12-30 | 2013-07-04 | Rambus Inc. | Wear leveling in a memory system |
-
2013
- 2013-02-27 WO PCT/JP2013/055030 patent/WO2014132346A1/ja not_active Ceased
- 2013-02-27 JP JP2015502613A patent/JP6018696B2/ja not_active Expired - Fee Related
- 2013-02-27 US US14/771,153 patent/US20160011782A1/en not_active Abandoned
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH09282111A (ja) * | 1996-04-15 | 1997-10-31 | Internatl Business Mach Corp <Ibm> | 半導体メモリ装置及びその制御方法 |
| JP2004086300A (ja) * | 2002-08-23 | 2004-03-18 | Megawin Technology Co Ltd | フラッシュメモリ論理アドレス検出方法 |
| JP2007164318A (ja) * | 2005-12-12 | 2007-06-28 | Renesas Technology Corp | 記憶装置 |
| JP2011138364A (ja) * | 2009-12-28 | 2011-07-14 | Toshiba Corp | メモリシステム |
Also Published As
| Publication number | Publication date |
|---|---|
| US20160011782A1 (en) | 2016-01-14 |
| WO2014132346A1 (ja) | 2014-09-04 |
| JPWO2014132346A1 (ja) | 2017-02-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6018696B2 (ja) | 半導体ストレージ | |
| US12399629B2 (en) | Storage system having a host that manages physical data locations of a storage device | |
| US10430084B2 (en) | Multi-tiered memory with different metadata levels | |
| JP5792841B2 (ja) | メモリ内のデータを管理するための方法および装置 | |
| US8484432B2 (en) | Memory system | |
| US20090089484A1 (en) | Data protection method for power failure and controller using the same | |
| CN107003942A (zh) | 对用于增强存储设备的性能和持久性的解除映射命令的处理 | |
| CN112099985B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
| US11556249B2 (en) | Delaying random data relocation for reducing write amplification in storage devices | |
| US11334480B2 (en) | Data storage device and non-volatile memory control method | |
| JP2018101411A (ja) | データストレージデバイスおよびその操作方法 | |
| US20200310669A1 (en) | Optimized handling of multiple copies in storage management | |
| US11663136B2 (en) | Storage capacity recovery source selection | |
| TWI718710B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
| US11126545B2 (en) | Memory system and operating method thereof | |
| US11199982B2 (en) | Data storage device and control method for non-volatile memory | |
| JP5494086B2 (ja) | 不揮発性記憶装置および不揮発性メモリコントローラ | |
| JP2012058770A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| US10282096B1 (en) | Identification of data with predetermined data pattern | |
| JP2012068765A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| JP4558054B2 (ja) | メモリシステム | |
| TWI723581B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 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: 20160920 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160930 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6018696 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |