JP2016143409A - メモリシステム - Google Patents

メモリシステム Download PDF

Info

Publication number
JP2016143409A
JP2016143409A JP2015122106A JP2015122106A JP2016143409A JP 2016143409 A JP2016143409 A JP 2016143409A JP 2015122106 A JP2015122106 A JP 2015122106A JP 2015122106 A JP2015122106 A JP 2015122106A JP 2016143409 A JP2016143409 A JP 2016143409A
Authority
JP
Japan
Prior art keywords
data
read
storage device
error
memory system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015122106A
Other languages
English (en)
Inventor
吉田 英樹
Hideki Yoshida
英樹 吉田
菅野 伸一
Shinichi Sugano
伸一 菅野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Publication of JP2016143409A publication Critical patent/JP2016143409A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1064Adding 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 cache or content addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

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)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract


【課題】ホストの処理を軽減することが可能なメモリシステムを提供する。
【解決手段】第1の記憶装置11は、不揮発性半導体記憶素子15を含む。制御部12は、第1の記憶装置11を制御する。第1の記憶装置11には、情報処理装置21から第2の記憶装置31へ書き込まれるデータと同一のデータが書き込まれる。制御部12は、情報処理装置21から供給される読み出し要求に応じて、第1の記憶装置11からデータを読み出すことができない読み出しエラーに基づき、読み出すべきデータが第1の記憶装置11に存在しないことを示す情報を情報処理装置21に送る。
【選択図】図1

Description

本発明の実施形態は、例えばSSD(solid state drive)をキャッシュとして用いたメモリシステムに関する。
例えばコンピュータ等の情報処理装置に接続して使用する外部記憶装置であって、不揮発性メモリとしてのNANDフラッシュメモリを用いたSSDが開発されている。
また、SSDは、hard disk drive (HDD)などのキャッシュメモリとしても使用されている。
特開2014−182674号公報 特開2011−204060号公報 特開2013−191174号公報 米国特許出願公開第2013/0042053号明細書
本実施形態は、ホストの処理を軽減することが可能なメモリシステムを提供する。
本実施形態のメモリシステムは、不揮発性半導体記憶素子を含む第1の記憶装置と、前記第1の記憶装置を制御する制御部と、を具備し、前記第1の記憶装置には、情報処理装置から第2の記憶装置へ書き込まれるデータと同一のデータが書き込まれ、前記制御部は、前記情報処理装置から供給される読み出し要求に応じて、前記第1の記憶装置からデータを読み出すことができない読み出しエラーに基づき、読み出すべきデータが前記第1の記憶装置に存在しないことを示す情報を前記情報処理装置に送る。
本実施形態が適用されるメモリシステムの一例を示す概略構成図。 図1に示すSSDのメモリ領域の一例を示す概略構成図。 SSDのメモリ領域の他の例を示す概略構成図。 本実施形態に係るエラー訂正部の変形例を示すものであり、図2Bに対応する概略構成図。 本実施形態の書き込み処理を説明するために示すシーケンスチャート。 本実施形態の読み出し処理を説明するために示すシーケンスチャート。 本実施形態に係るメモリシステムに適用されるSSDの一例を示す構成図。 本実施形態の変形例を示す概略構成図。 図7の一部の構成を示す概略構成図。
以下、図面を参照して実施形態について説明する。
図1は、本実施形態に適用されるメモリシステムを概略的に示している。SSD11及びHDD31は、コンピュータなどの情報処理装置(以下、ホストと称す)21に接続され、SSD11は、HDD31のキャッシュメモリ(以下、単にキャッシュとも言う)として利用される。具体的には、SSD11、及びHDD31は、図示せぬ例えばSATA(Serial Advanced Technology Attachment)、SAS(Serial Attached SCSI)、又はPCI(Peripheral Component Interconnect)などのインターフェースを介してホスト21に接続されている。ここで、メモリシステムとは、SSD11それ自体、及びSSD11、HDD31及びホスト21などを組み合わせて構成されたシステムを含む。
ホスト21は、後述するように、ネットワークを介して別のホストに接続されることも可能であり、SSD11及びHDD31を別のホストの遠隔ストレージとして利用することも可能である。
ホスト21は、SSD11、及びHDD31のデータの書き込み、及び読み出しを制御するデータ読み出し書き込み部22を含んでいる。データ読み出し書き込み部22は、ホスト21上で動作する例えばソフトウェアにより実現される。データ読み出し書き込み部22は、例えばSSD11をファイルやブロックデバイスのキャッシュとして利用する場合、オペレーティングシステムやデバイスドライバの一部として実現され、特定のアプリケーションのデータキャッシュとして利用する場合、アプリケーションの一部として実現される。
SSD11は、例えばキャッシュ管理部12、エラー検出部13、エラー訂正部14、フラッシュメモリ15を含んでいる。
制御部としてのキャッシュ管理部12は、SSD11のキャッシュ動作を制御するものであり、例えばSSD11上で動作するソフトウェアとして実現される。具体的には、キャッシュ管理部12は、フラッシュメモリ15に設けられた後述するキャッシュ領域のアクセス、及びキャッシュ領域の容量などを管理する。
エラー検出部13は、データの書き込み時、エラー検出符号(EDC)として、例えばcyclic redundancy code(CRC)を書き込みデータに付加する。また、エラー検出部13は、データの読み出し時、読み出されたデータに含まれるエラー検出符号に基づき、エラーの有無を検出する。
エラー訂正部14は、データの書き込み時、エラー訂正符号(ECC)を書き込みデータに付加する。また、エラー訂正部14は、データの読み出し時、読み出されたデータに含まれるエラー訂正符号に基づき、読み出しデータに含まれるエラーを訂正する。
エラー検出部13、及びエラー訂正部14は、SSD11上で動作する例えばソフトウェア、又はハードウェア、或いはそれらの組み合わせにより実現される。
フラッシュメモリ15は、例えばNANDフラッシュメモリにより構成されている。しかし、これに限定されるものではなく、後述するように、他のメモリを用いることも可能である。
図2Aは、フラッシュメモリ15の記憶領域の構成の一例を示している。フラッシュメモリ15は、例えばキャッシュデータを格納するキャッシュ領域15aと、管理領域15bとを含んでいる。管理領域15bは、ホスト21から供給される論理ブロックアドレス(LBA)と、フラッシュメモリ15内の物理ブロックアドレス(PBA)との対応関係を示すルックアップテーブル(LUT:lookup table)などの管理情報を含んでいる。管理情報は、キャッシュ領域15aのデータが書き換えられる毎に更新される。
図2Bは、フラッシュメモリ15の記憶領域の構成の他の例を示している。図2Bに示す例の場合、フラッシュメモリ15は、キャッシュ領域15a、管理領域15bに加えて、通常のデータを記憶するデータ領域15cを含んでいる。このため、図2Bに示す例の場合、SSD11は、キャッシュとして使用される以外に、通常のデータを格納するためのストレージとしても利用される。管理領域15bは、キャッシュ領域15aと、データ領域15cの両方を管理する。
フラッシュメモリ15の各領域は、消去単位として複数のブロックを有している。各ブロックは、複数のメモリセルを含んでいる。同時に選択される複数のメモリセルは、少なくとも1つのページを構成し、データはページ単位で書き込まれ、ページ単位で読み出される。
エラー訂正部14は、フラッシュメモリ15から読み出されたエラーを訂正するが、このエラー訂正部14は、1つに限定されるものではなく、フラッシュメモリ15の各領域に対応してそれぞれ設けてもよい。
図3は、図2Bの各領域に対応して、複数のエラー訂正部14a、14b、14cを設けた場合を示している。すなわち、フラッシュメモリ15のキャッシュ領域15a、管理領域15b、データ領域15cに対応して、エラー訂正部14a、14b、14cがそれぞれ設けられている。キャッシュ領域15aに対応するエラー訂正部14aは、簡易な構成で第1の強度を有している。管理領域15bに対応するエラー訂正部14bは、第1の強度より高い第2の強度を有している。データ領域15cに対応するエラー訂正部14cは、第1の強度より高く、第2の強度より低い第3の強度を有している。すなわち、エラー訂正部14bやエラー訂正部14cは、例えば多ビットで高強度の訂正が可能なBHC符号やリード・ソロモン符号が適用され、エラー訂正部14aは、少ビットで高速処理が可能な例えばハミング符号が適用される。しかし、エラー訂正の方式は、これらに限定されるものではなく、変形可能である。
また、SSD11が、図2Aに示す構成である場合、エラー訂正部14cを除く、エラー訂正部14a、及びエラー訂正部14bが用いられる。
HDD31は、図示せぬ記憶領域と、管理領域を有し、書き込みデータは、記憶領域に書き込まれ、管理領域は、記憶領域を管理する。
(作用)
上記構成において、図4、図5を参照して、SSD11、HDD31、及びホスト21の動作について説明する。ここで、フラッシュメモリ15は、図2Aに示す構成であるとする。
(データ書き込み処理)
図4に示すように、ホスト21がHDD31にデータを書込む場合、データ読み出し書き込み部22は、HDD31とSSD11に同じデータの書き込み要求を発行する(S11)。すなわち、データの書き込みは、所謂ライトスルー(write-through)方式で実行される。具体的には、ホスト21は、HDD31とSSD11に対して、同一のデータを書き込むため、同一のコマンドを発行する。ここで、同一のコマンドとは、例えば同一の論理ブロックアドレス(LBA)、及び同一のデータ長などを有するコマンドである。
書き込み要求を受けたSSD11のキャッシュ管理部12は、エラー検出部13、エラー訂正部14を経由してデータをフラッシュメモリ15のキャッシュ領域15aに書き込む。すなわち、エラー検出部13はエラー検出符号を書き込みデータに付与し(S12)、図1に示すエラー訂正部14、又は図3に示すエラー訂正部14aは、エラー訂正符号を書き込みデータに付与する(S13)。エラー検出符号、及びエラー訂正符号が付与された書き込みデータは、フラッシュメモリ15のキャッシュ領域15aに書込まれ(S14)、管理領域15bの管理情報が更新される(S15)。
一方、書き込み要求を受けたHDD31は、SSD11と同様に、書き込みデータにエラー検出符号、及びエラー訂正符号が付与される(S12’、S13’)。この書き込みデータは、HDD31の記憶領域に書込まれ(S14’)、管理領域の管理情報が更新される(S15’)。
(データ読み出し処理)
図5に示すように、ホスト21がデータを読出す場合、データ読み出し書き込み部22は、先ずSSD11へ読み出し要求を発行する(S21)。すなわち、データ読み出し書き込み部22は、SSD11に対して読み出しコマンドと、論理ブロックアドレス、データ長などを発行する。
読み出し要求を受けたSSD11のキャッシュ管理部12は、読み出し要求を受けたデータがフラッシュメモリ15のキャッシュ領域15aに存在するかどうかを判定する(S22)。すなわち、キャッシュ管理部12は、フラッシュメモリ15の管理領域15bをサーチし、読み出し要求を受けたデータがキャッシュ領域15aに存在するかどうかを判定する。この結果、キャッシュ領域15aに読み出し要求に対応するデータが存在しない場合、キャッシュ管理部12は、読み出しエラーとしてのキャッシュミスをホスト21に通知する(S23)。具体的には、キャッシュ管理部12は、ホスト21からの読み出し要求に対する応答として、例えばSATA、SAS、又はPCIなどで使用されるプロトコルのリターンコードをホスト21に転送する。このリターンコード内に、キャッシュミスを示すコードが設定される。
一方、キャッシュ領域15aにデータが存在すると判定された場合、キャッシュ領域15aからそのデータが読み出される(S24)。この読み出されたデータは、図1に示すエラー訂正部14(又は図3に示すエラー訂正部14a)において、エラー訂正符号(ECC)に基づきエラーが訂正される(S25)。このエラー訂正において、訂正が不可能なほど多くのエラーが発生した場合、キャッシュ管理部12は、読み出しエラーとしてのキャッシュミスをホストS21に通知する(S26)。
また、エラー訂正部14において、エラーが発生しているにもかかわらずエラーが発見されなかった場合、又は、エラーが訂正できたとみなされたが実際にはエラーが訂正できなかった場合、エラー検出部13において、エラー検出符号(EDC)に基づき、エラーが検出される(S27)。この結果、エラーが検出された場合、キャッシュ管理部12は、読み出しエラーとしてのキャッシュミスをホスト21に通知する(S28)。
このように、キャッシュミスは、フラッシュメモリ15内に読み出し要求に対応するデータが存在しないことを示す所謂キャッシュミスの他に、フラッシュメモリ15内に読み出し要求に対応するデータが存在するが、要求されたデータを正しく読み出すことが困難であることを示している。
また、エラーが検出されなかった場合、キャッシュ管理部12は、データがSSD11に存在することを示すキャッシュヒットをホスト21に通知し(S29)、次いで、キャッシュ領域15aから読み出されたデータがホスト21に転送される(S30)。
一方、ホスト21のデータ読み出し書き込み部22は、SSD11から供給された通知がキャッシュミスか、キャッシュヒットかを判定する(S31)。この結果、SSD11からの通知がキャッシュヒットであると判定された場合、データ読み出し書き込み部22は、SSD11から転送されてきたデータを取り込み、利用する(S32)。
また、SSD11からの通知がキャッシュミスであると判定された場合、ホスト21のデータ読み出し書き込み部22は、HDD31へ読み出し要求を発行する(S33)。この読み出し要求は、例えばSSD11に発行した読み出し要求と同じ論理アドレス、及びデータ長を有するコマンドである。HDD31は、この読み出し要求に応じてデータを読み出し、ホスト21に転送する(S34)。ホスト21は、HDD31から転送されてきたデータを取り込み、利用する(S32)。
上述したように、ホスト21がSSD11をアクセスする際、データ読み出し書き込み部22は、論理ブロックアドレス(LBA)でフラッシュメモリ15内のデータの位置を指定する。SSD11はLBAから物理ブロックアドレス(PBA)への対応関係をLUTで管理しており、データが存在するLBAはブロック内に対応付けられる。通常のSSDは、ユーザが利用できるストレージの容量(フラッシュメモリの容量から余裕ブロックを差し引いた容量)が予め固定されており、ストレージの容量がLBAの上限となる。
一方、本実施形態のSSD11は、LBAの上限は定められておらず、任意のLBAを指定することができる。例えばSSD11をブロックデバイスのキャッシュとして利用する場合、データ読み出し書き込み部22は、HDD31のLBAをそのままSSD11のLBAとして使用する。このため、SSD11において、キャッシュミスが生じた場合、HDD31をアクセスすることにより必要なデータを得ることができる。
尚、ホスト21により書き込まれるデータがフラッシュメモリ15の容量を超える場合、アクセス頻度の低いデータがキャッシュ管理部12により消去される。アクセス頻度が低いデータであるかどうかは、通常のキャッシュで用いられる方式で判定することが可能である。この判定方式としては、例えばLeast Recently Used(LRU)、Least Frequently Used(LFU)、First In First Out(FIFO)、Adaptive Replacement Cache(ARC)などを適用することが可能である。
アクセス頻度の低いデータの消去は、SSD11の通常のガベージコレクションとともに行なうことが可能である。このように、アクセス頻度の低いデータの消去をガベージコレクションと同時に行なうことにより、ガベージコレクションによるフラッシュメモリの疲弊や応答速度の低下を低減することが可能である。尚、ガベージコレクションとは、ブロック内の無効データを整理して空きブロックを作る処理である。
本実施形態において、疲弊によりエラー率が上昇したブロックも、読み書きができる間は使用することができる。この場合、キャッシュのヒット率が若干低下する。しかし、著しく疲弊して、例えばエラー検出が困難なブロックや、読み出し書き込みができなくなったブロックは、不良ブロック(不良領域)とされ、使用が禁止される。不良ブロックが発生した場合、不良ブロックの容量に相当するキャッシュ領域15aの容量が削減され、管理領域15bの容量は削減されない。具体的には、不良ブロックの数に対応して、キャッシュ領域15aとして使用可能なブロックの数が削減される。このように、キャッシュ領域15aの容量は、例えばキャッシュ管理部12により、不良ブロックの数に対応して管理されるため、SSD11の寿命を延ばすことが可能である。
尚、フラッシュメモリ15が図2Bに示す構成である場合、例えばキャッシュ領域15aをアクセスする場合と、データ領域15cをアクセスする場合とで、ホスト21から発行される書き込み要求、及び読み出し要求を変えることにより、キャッシュ管理部12は、キャッシュ領域15aと、データ領域15cを区別してアクセスすることが可能である。
また、図2Bに示すように、通常のデータ領域15cとキャッシュ領域15aとを備えるフラッシュメモリ15において、不良ブロックが発生した場合、キャッシュ領域15aの容量が不良ブロックに従って削減される。したがって、通常のデータ領域15cの容量は削減されないため、SSD11の寿命を延ばすことが可能である。
(効果)
上記実施形態によれば、SSD11は、キャッシュ管理部12と、フラッシュメモリ15内のキャッシュ領域15aを有し、データの書き込み時、ライトスルー方式により、SSD11のフラッシュメモリ15のキャッシュ領域15aと、HDD31には、同じデータが書き込まれる。データの読み出し時、ホスト21から、先ずSSD11に読み出し要求が発行され、この読み出し要求に従って、フラッシュメモリ15のキャッシュ領域15aからデータが読み出される。このデータの読み出しにおいて、データが存在しない、又は、訂正が不可能である、或いはエラー検出符号に基づきエラーが検出されたという読み出しエラーが生じた場合、キャッシュ管理部12は、ホスト21にキャッシュミスとして通知する。キャッシュミスの通知を受けたホスト21は、改めてマスターとしてのHDD31からデータを読み出すことにより、読み出し要求に対応するデータを得ている。
一般に、キャッシュの処理はSSDが接続されたホスト側で行なわれ、SSDは書き込まれたデータがキャッシュデータであるか他のデータであるかを区別しない。これに対して、本実施形態は、上記のようにSSD11にキャッシュ管理部12を有し、キャッシュ管理部12がキャッシュ領域15aへのアクセスやホスト21への応答を管理している。このため、ホスト21の処理を軽減することが可能である。
また、一般に、SSDで使われているフラッシュメモリのブロックは、書き込みを繰り返すと疲弊によってエラー率が次第に増加する。このエラーは、ECCを用いて訂正されるが、訂正が困難なほどエラー率が上がった場合、そのエラー率が高いメモリセルを含むブロックは不良ブロックとして使用できなくされる。不良ブロックによって減少した容量は予備ブロックにより補われるが、予備ブロックを使い果たした時点でSSDへ書き込むことができなくなる。このため、多くのブロックが未だ利用可能であるにも拘らず、SSDは使用できなくなる。予備ブロックを増加することによりSSDの寿命を延ばすことができるが、予備ブロックを増加するため、コストが高騰する。
これに対して、本実施形態の場合、SSD11は、キャッシュ管理部12によりキャッシュ領域15aが管理され、高いエラー率を有するブロックも使い続けられる。この場合、キャッシュのヒット率が僅かに低下するが、HDD31からデータを読み出すことによりメモリシステムの動作に大きな影響は生じない。このため、コストの高騰を抑えてSSD11の寿命を延ばすことが可能である。
また、本実施形態において、SSD11の容量は、キャッシュ管理部12により管理され、著しく高いエラー率を有するブロックは不良ブロックとして、使用が禁止され、不良ブロックの分だけキャッシュの容量が削減される。この場合も、キャッシュのヒット率は低下するが、HDD31からデータを読み出すことによりメモリシステムの動作に大きな影響は生じない。しかも、管理領域15の容量は削減されないため、消去できない重要なデータを確実に管理することができる。したがって、不良ブロックを含むSSD11を使い続けることができる。
一般のSSDにおいて、ストレージの容量やストレージに格納するデータの管理は、ホスト側で行なわれ、SSDによりこれらを変更することはできない。しかし、本実施形態のように、SSD11にキャッシュ管理部12を設けることにより、キャッシュ領域15aの容量や、SSD11に格納するデータの管理を変更することが可能となる。したがって、SSD11を柔軟に管理することが可能である。
さらに、通常のデータを格納するデータ領域15cと、キャッシュ領域15aとを備えたSSD11の場合、不良ブロックの数に応じてデータ領域15cの容量を減らさず、不良ブロックの分だけキャッシュ領域15aの容量を削減している。このため、SSD11の寿命を延ばすことが可能である。
また、フラッシュメモリ15のキャッシュ領域15a、管理領域15b、データ領域15cにそれぞれエラー訂正部14a、14b、14cを設け、管理領域15bは第2の強度のエラー訂正を行ない、キャッシュ領域15aは第2の強度より低い第1の強度でエラー訂正を行ない、データ領域15cは第1の強度より高く、第2の強度より低い第3の強度でエラー訂正を行なっている。このため、全ての領域を高い強度でエラー訂正する場合に比べて、エラー訂正に必要なビット数を削減することが可能である。したがって、フラッシュメモリのコストを削減することが可能である。
さらに、NANDフラッシュメモリの世代が進んでメモリセルがさらに微細化された場合、或いは平面型のNANDから立体型のNANDに変化された場合、記憶保持能力が変化し、エラー率が上がることが予想される。このような場合においても、本実施形態は、キャッシュ管理部12によりフラッシュメモリ15を管理しているため、SSD11の寿命を延ばすことが可能である。
また、メモリセルとしてNANDフラッシュメモリに代えて、他の不揮発メモリが使用された場合においても記憶保持能力が変化し、エラー率が上がる場合がある。このような場合においても、キャッシュ管理部12によって、上記と同様に管理することにより、SSD11の寿命を延ばすことが可能である。
(SSDの具体例)
図6は、本実施形態が適用されるSSD11の具体例を示している。図6において、図1と同一部分には同一符号を付している。
図1に示すSSD11のキャッシュ管理部12は、例えば図6に示すバックエンド4BのCPU43B、及びこのCPU43Bを動作させるプログラムに対応する。図1に示すエラー検出部13、エラー訂正部14は、例えば図6に示すECC49に対応する。図1に示すフラッシュメモリ15は、図6に示すNAND15に対応する。
図6において、コントローラ4は、フロントエンド4Fと、バックエンド4Bとを備える。
フロントエンド(ホスト通信部)4Fは、ホストインタフェース41、ホストインタフェースコントローラ42、暗号化/復号化部44、及びCPU43Fを備える。
ホストインタフェース41は、ホスト21との間で、各種の要求、LBA、及びデータなどを通信する。要求としては、例えば書き込みコマンド、読み出しコマンド、消去コマンドなどがある。
ホストインタフェースコントローラ42は、CPU43Fの制御に基づき、ホストインタフェース41の通信を制御する。
暗号化/復号化部(Advanced Encryption Standard (AES))44は、データの書き込み動作において、ホストインタフェースコントローラ42から供給される書き込みデータを暗号化し、バックエンド4Bの書き込みバッファWBに供給する。AES44は、データ読み出し動作において、バックエンド4BのリードバッファRBから送信される暗号化された読み出しデータを復号化する。なお、このAES44を介さずに、書き込みデータ及び読み出しデータを送信することも、必要に応じて可能である。
CPU43Fは、フロントエンド4Fの上記ホストインタフェース41、ホストインタフェースコントローラ42、AES44を制御し、フロントエンド4Fの全体の動作を制御する。
バックエンド4Bは、ライトバッファWB、リードバッファRB、LUT(Lookup table)45、DDRC(Double data Rate Controller)46、DRAM(Dynamic Random Access Memory)47、DMAC(Direct Memory Access Controller)48、ECC(Error checking and Correction)49、ランダマイザRZ、NANDC(NAND controller)50、及びCPU43Bを備える。
ライトバッファWBは、ホスト21から送信された書き込みデータを一時的に格納する。具体的には、ライトバッファWBは、当該書き込みデータがNAND15に適した所定のデータサイズになるまで、一時的にデータを格納する。
リードバッファRBは、NAND15から読み出された読み出しデータを一時的に格納する。具体的には、リードバッファRBにおいて、読み出しデータは、ホスト21に適した順序(ホスト21が指定した論理ブロックアドレス(LBA)の順序)になるように並び替えられる。
LUT45は、論理ブロックアドレス(LBA)を物理ブロックアドレス(PBA)に変換するためのデータである。
DDRC46は、DRAM47におけるDDR(Double Data Rate)を制御する。
DRAM47は、例えば、LUT45を格納する不揮発性のメモリである。
DMAC48は、内部バスIBを介して、書き込みデータや読み出しデータなどを転送する。
図6において、1つのDMAC48が図示されているが、コントローラ4は、2以上のDMAC48を含んでもよい。DMAC48は、必要に応じて、コントローラ4内の様々な位置に設定することが可能である。
ECC49は、ライトバッファWBから送信される書き込みデータにエラー訂正コードを付加する。ECC49は、NAND15から読み出したデータをリードバッファRBに送信する際に、データに付加されたエラー訂正コードを用いて、データを必要に応じて訂正する。
ランダマイザRZ(Scramblerとも言う)は、データの書き込み動作において、書き込みデータがNAND15の特定のページ又はワード線方向などに偏らないように、書き込みデータを分散させる。このように、書き込みデータを分散させることで、書き込み回数を平準化でき、NAND15に含まれるメモリセルMCの寿命を延ばすことが可能である。そのため、NAND15の信頼性を向上できる。また、データ読み出し動作の際に、NAND15から読み出された読み出しデータはランダマイザRZを通過する。
NANDC50は、所定の速度の要求を満たすため、複数のチャンネル(ここでは、4つのチャンネルCH0〜CH3)を用いて、並列にNAND15にアクセスする。
CPU43Bは、バックエンド4Bの上記各構成(45〜50,RZ)を制御し、バックエンド4Bの全体の動作を制御する。
尚、図6に示したコントローラ4の構成は例示であり、この構成に限定されるものではない。
また、SSD11は、デザインルールの異なるNANDや、平面型のNANDや立体型のNANDのように異なるタイプのNANDが適用可能とされている。さらに、他の不揮発性メモリ、例えばMRAM(Magnetoresistive RAM)を適用することも可能とされている。
(変形例)
図7は、本実施形態をネットワークに接続されたホストやストレージアレイに適用した場合を示している。
例えばクライアントとしての第1のホスト61、サーバとしての第2のホスト62、及びストレージアレイ63がネットワーク64に接続されている。
第2のホスト62には、例えばSSD65、HDD66が接続され、ストレージアレイ63には、例えばSSD67、HDD68が接続されている。SSD65、67の構成は、図1に示す構成と同様であり、キャッシュ制御部(CM)12を含んでいる。
第2のホスト62、及びストレージアレイ63に接続されるHDD及びSSDの数は、図7に限定されるものではなく、用途に応じて変更可能である。
第1のホスト61、第2のホスト62は、それぞれ例えば情報処理装置であり、第2のホスト62は、図1に示すホスト21と同様にデータ読み出し書き込み部(DRW)22を含んでいる。
ストレージアレイ63としては、例えばSAN(Storage Area Network)が知られているが、これに限定されるものではない。このストレージアレイ63は、例えばクラウドストレージとして提供される。
図8は、ストレージアレイ63の一例を概略的に示している。ストレージアレイ63は、例えばネットワークインターフェース63a、RAID(Redundant Arrays of Inexpensive Disks)コントローラ63b、及びストレージとのインターフェース63cを有している。SSD67、HDD68は、インターフェース63cに接続されている。インターフェース63cは、図1に示すデータ読み出し書き込み部22を含んでいる。
上記構成において、第1のホスト61からネットワーク64を介して、第2のホスト62に読み出し要求が発行された場合、第2のホスト62のデータ読み出し書き込み部22は、前述したように、先ず、SSD65をアクセスする。SSD65のキャッシュ管理部12からの応答がキャッシュミスを示す場合、第2のホスト62は、HDD66に対して、読み出し要求を発行し、所要のデータを読み出す。このようにして、第2のホスト62に読み出されたデータは、ネットワーク64を介して第1のホスト61に転送される。
また、第1のホスト61からネットワーク64を介して、例えばストレージアレイ63に読み出し要求が発行された場合、ストレージアレイ63のデータ読み出し書き込み部22は、先ず、SSD67をアクセスする。SSD67のキャッシュ管理部12からの応答がキャッシュミスを示す場合、ストレージアレイ63は、HDD68に対して、読み出し要求を発行し、所要のデータを読み出す。このようにして、ストレージアレイ63に読み出されたデータは、ネットワーク64を介して第1のホスト61に転送される。
また、第1のホスト61からネットワーク64を介して例えば第2のホスト62に書き込み要求が発行された場合、第2のホスト62のデータ読み出し書き込み部22は、前述したように、ライトスルー方式により、SSD65とHDD66に同一のデータを書き込む。
第1のホスト61からネットワーク64を介して例えばストレージアレイ63に書き込み要求が発行された場合、ストレージアレイ63のデータ読み出し書き込み部22は、ライトスルー方式により、SSD67とHDD68に同一のデータを書き込む。
その他、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
11…SSD、12…キャッシュ管理部、14…エラー訂正部、15…フラッシュメモリ、21…ホスト、31…HDD。

Claims (13)

  1. 不揮発性半導体記憶素子を含む第1の記憶装置と、
    前記第1の記憶装置を制御する制御部と、
    を具備し、
    前記第1の記憶装置には、情報処理装置から第2の記憶装置へ書き込まれるデータと同一のデータが書き込まれ、
    前記制御部は、前記情報処理装置から供給される読み出し要求に応じて、前記第1の記憶装置からデータを読み出すことができない読み出しエラーに基づき、読み出すべきデータが前記第1の記憶装置に存在しないことを示す情報を前記情報処理装置に送ることを特徴とするメモリシステム。
  2. 前記第1の記憶装置は、少なくともキャッシュ領域、及び管理領域を含むことを特徴とする請求項1記載のメモリシステム。
  3. 前記制御部は、前記第1の記憶装置が不良領域を含む場合、前記不良領域の容量に相当する前記キャッシュ領域の容量を削減することを特徴とする請求項2記載のメモリシステム。
  4. 前記キャッシュ領域から読み出されたデータのエラーを訂正する第1のエラー訂正部と、
    前記管理領域から読み出されたデータのエラーを訂正する第2のエラー訂正部と、
    をさらに具備することを特徴とする請求項2記載のメモリシステム。
  5. 前記第1のエラー訂正部は、エラー訂正のための第1の強度を有し、前記第2のエラー訂正部は、前記第1の強度より高い第2の強度を有することを特徴とする請求項4記載のメモリシステム。
  6. 前記第1の記憶装置は、データ領域を含むことを特徴とする請求項5記載のメモリシステム。
  7. 前記第1の強度より高く、前記第2の強度より低い第3の強度を有し、前記データ領域から読み出されたデータのエラーを訂正する第3のエラー訂正部をさらに具備することを特徴とする請求項6記載のメモリシステム。
  8. 前記読み出しエラーは、前記第1の記憶装置に読み出すべきデータが存在しないことを含むことを特徴とする請求項1記載のメモリシステム。
  9. 前記読み出しエラーは、前記第1のエラー訂正部により前記第1の記憶装置から読み出されたデータのエラーが訂正できないことを含むことを特徴とする請求項4記載のメモリシステム。
  10. エラー検出符号に基づき前記第1の記憶装置から読み出されたデータのエラーを検出するエラー検出部を含み、
    前記読み出しエラーは、前記エラー検出部により前記第1の記憶装置から読み出されたデータからエラーが検出されたことを含むことを特徴とする請求項7記載のメモリシステム。
  11. 前記第2の記憶装置は、前記制御部から読み出すべきデータが前記第1の記憶装置に存在しないことを示す情報が出力され、前記情報処理装置から前記読み出し要求が供給された場合、前記読み出し要求に対応するデータを前記情報処理装置に転送することを特徴とする請求項1記載のメモリシステム。
  12. 前記読み出すべきデータが前記第1の記憶装置に存在しないことを示す情報は、キャッシュミスを示す情報であることを特徴とする請求項11記載のメモリシステム。
  13. 不揮発性半導体記憶素子を含む第1の記憶装置と、
    前記第1の記憶装置を制御する制御部と、
    を具備し、
    前記第1の記憶装置には、情報処理装置から第2の記憶装置へ書き込まれるデータと同一のデータが書き込まれ、
    前記制御部は、前記情報処理装置から供給される読み出し要求に応じて、前記第1の記憶装置からデータを読み出すことが困難であることを示す情報を前記情報処理装置に送ることを特徴とするメモリシステム。
JP2015122106A 2015-02-02 2015-06-17 メモリシステム Pending JP2016143409A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201562110779P 2015-02-02 2015-02-02
US62/110,779 2015-02-02

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2018211561A Division JP2019023936A (ja) 2015-02-02 2018-11-09 記憶装置及びメモリシステム

Publications (1)

Publication Number Publication Date
JP2016143409A true JP2016143409A (ja) 2016-08-08

Family

ID=56554336

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2015122106A Pending JP2016143409A (ja) 2015-02-02 2015-06-17 メモリシステム
JP2018211561A Pending JP2019023936A (ja) 2015-02-02 2018-11-09 記憶装置及びメモリシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2018211561A Pending JP2019023936A (ja) 2015-02-02 2018-11-09 記憶装置及びメモリシステム

Country Status (2)

Country Link
US (1) US9558065B2 (ja)
JP (2) JP2016143409A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112017003657T5 (de) 2016-07-21 2019-04-04 Denso Corporation Schieberventil

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10936412B1 (en) * 2017-04-17 2021-03-02 EMC IP Holding Company LLC Method and system for accessing data stored in data cache with fault tolerance
CN118244996B (zh) * 2024-05-28 2024-08-09 山东云海国创云计算装备产业创新中心有限公司 硬盘读写方法、装置、电子设备、可读存储介质及产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01150953A (ja) * 1987-12-08 1989-06-13 Matsushita Electric Ind Co Ltd ディスクキャッシュ装置
JPH10222315A (ja) * 1997-02-12 1998-08-21 Nec Corp 二重化されたハードディスク装置のエラー復旧方法および装置
JP2012053572A (ja) * 2010-08-31 2012-03-15 Toshiba Corp 情報処理装置およびキャッシュの制御方法
JP2012203642A (ja) * 2011-03-25 2012-10-22 Mega Chips Corp メモリシステム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7954037B2 (en) * 2005-10-25 2011-05-31 Sandisk Il Ltd Method for recovering from errors in flash memory
JP2009122826A (ja) * 2007-11-13 2009-06-04 Seiko Epson Corp 半導体記憶装置、半導体記憶装置の制御方法および制御プログラム
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
KR20100104840A (ko) * 2009-03-19 2010-09-29 삼성전자주식회사 셀 패턴에 따라 추가 ecc가 가능한 반도체 메모리 장치,상기 장치를 포함하는 전자 시스템
JP5434738B2 (ja) 2010-03-26 2014-03-05 日本電気株式会社 ディスク装置
US9424128B2 (en) 2011-08-12 2016-08-23 Futurewei Technologies, Inc. Method and apparatus for flexible RAID in SSD
KR101990971B1 (ko) * 2012-01-30 2019-06-19 삼성전자 주식회사 메모리, 메모리 시스템, 및 메모리에 대한 에러 검출/정정 방법
JP5687648B2 (ja) 2012-03-15 2015-03-18 株式会社東芝 半導体記憶装置およびプログラム
JP5894044B2 (ja) * 2012-09-14 2016-03-23 レノボ・シンガポール・プライベート・リミテッド ハイブリッド・ディスク・ドライブにデータを記憶する方法および携帯式コンピュータ
JP6098262B2 (ja) 2013-03-21 2017-03-22 日本電気株式会社 記憶装置および記憶方法
JP2014211800A (ja) * 2013-04-19 2014-11-13 株式会社東芝 データ記憶装置、ストレージコントローラおよびデータ記憶制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01150953A (ja) * 1987-12-08 1989-06-13 Matsushita Electric Ind Co Ltd ディスクキャッシュ装置
JPH10222315A (ja) * 1997-02-12 1998-08-21 Nec Corp 二重化されたハードディスク装置のエラー復旧方法および装置
JP2012053572A (ja) * 2010-08-31 2012-03-15 Toshiba Corp 情報処理装置およびキャッシュの制御方法
JP2012203642A (ja) * 2011-03-25 2012-10-22 Mega Chips Corp メモリシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112017003657T5 (de) 2016-07-21 2019-04-04 Denso Corporation Schieberventil

Also Published As

Publication number Publication date
US20160224415A1 (en) 2016-08-04
US9558065B2 (en) 2017-01-31
JP2019023936A (ja) 2019-02-14

Similar Documents

Publication Publication Date Title
US11113149B2 (en) Storage device for processing corrupted metadata and method of operating the same
US20190073296A1 (en) Systems and Methods for Persistent Address Space Management
US10884914B2 (en) Regrouping data during relocation to facilitate write amplification reduction
US9690493B2 (en) Two-level system main memory
US10133625B2 (en) Storing parity data separate from protected data
US9483404B2 (en) Write admittance policy for a memory cache
US9251087B2 (en) Apparatus, system, and method for virtual memory management
US10127166B2 (en) Data storage controller with multiple pipelines
USRE46013E1 (en) Method and controller for performing a copy-back operation
JP5937697B2 (ja) ストレージシステム
US9304685B2 (en) Storage array system and non-transitory recording medium storing control program
US9104334B2 (en) Performance improvements in input/output operations between a host system and an adapter-coupled cache
US10275310B2 (en) Updating exclusive-or parity data
US20170269992A1 (en) Data reliability information in a non-volatile memory device
US20130205114A1 (en) Object-based memory storage
US20150134894A1 (en) Partial r-block recycling
KR20120052303A (ko) 플래시 메모리 시스템에 판독 상태 및 예비 블록 관리 정보를 제공하기 위한 제어기 및 방법
US20190324859A1 (en) Method and Apparatus for Restoring Data after Power Failure for An Open-Channel Solid State Drive
JP6460940B2 (ja) 記憶装置およびデータ退避方法
US11556268B2 (en) Cache based flow for a simple copy command
JP2019023936A (ja) 記憶装置及びメモリシステム
US9921913B2 (en) Flushing host cache data before rebuilding degraded redundant virtual disk
US10802958B2 (en) Storage device, its controlling method, and storage system having the storage device
JP6163588B2 (ja) ストレージシステム
US11893248B2 (en) Secure metadata protection

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20170531

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180808

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20180830

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20181016