JP2017068634A - 記憶装置及び方法 - Google Patents

記憶装置及び方法 Download PDF

Info

Publication number
JP2017068634A
JP2017068634A JP2015194056A JP2015194056A JP2017068634A JP 2017068634 A JP2017068634 A JP 2017068634A JP 2015194056 A JP2015194056 A JP 2015194056A JP 2015194056 A JP2015194056 A JP 2015194056A JP 2017068634 A JP2017068634 A JP 2017068634A
Authority
JP
Japan
Prior art keywords
data
storage medium
read
nonvolatile storage
block
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
JP2015194056A
Other languages
English (en)
Inventor
格 柿木
Itaru Kakigi
格 柿木
正寿 青木
Masatoshi Aoki
正寿 青木
文利 日高
Fumitoshi Hidaka
文利 日高
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2015194056A priority Critical patent/JP2017068634A/ja
Priority to US15/057,556 priority patent/US20170090768A1/en
Priority to CN201610299508.5A priority patent/CN106558325A/zh
Publication of JP2017068634A publication Critical patent/JP2017068634A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B13/00Recording simultaneously or selectively by methods covered by different main groups among G11B3/00, G11B5/00, G11B7/00 and G11B9/00; Record carriers therefor not otherwise provided for; Reproducing therefrom not otherwise provided for
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/10Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair

Abstract

【課題】本発明の実施形態は、記憶装置の信頼性を向上させる。【解決手段】実施形態の記憶装置は、第一の不揮発性記憶媒体と、複数のブロックを有し、前記第一の不揮発性記憶媒体よりも高速にデータ処理可能な第二の不揮発性記憶媒体と、前記第一の不揮発性記憶媒体を制御する第一のコントローラと、前記第二の不揮発性記憶媒体を制御する第二のコントローラを含む制御部と、を備え、前記制御部は、前記第二の不揮発性記憶媒体から読み出された第一データのエラー量を取得し、該エラー量に応じて前記第一の不揮発性記憶媒体及び前記第二の不揮発性記憶媒体のいずれかに前記読み出された第一データを書き込む。【選択図】図1

Description

本発明の実施形態は、記憶装置及び方法に関する。
近年、アクセス速度及び記憶容量が異なる複数種類(例えば2種類)の不揮発性記憶媒体を備えたストレージ装置が開発されている。このようなストレージ装置の代表として、ハイブリッドドライブが知られている。ハイブリッドドライブは一般に、第一の不揮発性記憶媒体と、当該第一の不揮発性記憶媒体と比較してアクセス速度が低く、且つ記憶容量の大きい第二の不揮発性記憶媒体とを備えている。
特開2009−129026号公報
本発明の実施形態は、記憶装置の信頼性を向上させる。
実施形態の記憶装置は、第一の不揮発性記憶媒体と、複数のブロックを有し、前記第一の不揮発性記憶媒体よりも高速にデータ処理可能な第二の不揮発性記憶媒体と、前記第一の不揮発性記憶媒体を制御する第一のコントローラと、前記第二の不揮発性記憶媒体を制御する第二のコントローラを含む制御部と、を備え、前記制御部は、前記第二の不揮発性記憶媒体から読み出された第一データのエラー量を取得し、該エラー量に応じて前記第一の不揮発性記憶媒体及び前記第二の不揮発性記憶媒体のいずれかに前記読み出された第一データを書き込む。
実施形態に係る記憶装置の構成を示すブロック図。 実施形態NANDメモリの記憶領域のフォーマットの一例を示す概念図。 実施形態に係るNANDメモリに対するリードパトロールの動作を示したフローチャート。
以下、実施の形態について、図面を参照して説明する。
本明細書では、いくつかの要素に複数の表現の例を付している。なおこれら表現の例はあくまで例示であり、上記要素が他の表現で表現されることを否定するものではない。また、複数の表現が付されていない要素についても、別の表現で表現されてもよい。
また、図面は模式的なものであり、厚みと平面寸法との関係や各層の厚みの比率などは現実のものと異なることがある。また、図面相互間において互いの寸法の関係や比率が異なる部分が含まれることもある。
図1は、本実施形態に係る記憶装置1の構成を示すブロック図である。本実施形態に係る記憶装置1は、例えばハイブリッドドライブである。ハイブリッドドライブは、アクセス速度及び記憶容量が異なる複数種類、例えば2種類の不揮発性記憶媒体(つまり、第一の不揮発性記憶媒体及び第二の不揮発性記憶媒体)を備えている。本実施形態では、記憶装置1をハイブリッドドライブ1として説明する。
本実施形態では、第一の不揮発性記憶媒体として、磁気ディスク媒体(以下、ディスクと称する)21が用いられ、第二の不揮発性記憶媒体としてNANDフラッシュメモリ(以下、NANDメモリと称する)11が用いられる。ディスク21は、後述するように、管理情報を記録するためのシステム領域(SA)101を有する。ディスク21のアクセス速度及び記憶容量は、NANDメモリ11のそれらと比較して低速で且つ大容量である。
図1に示されるハイブリッドドライブ1は、ソリッドステートドライブのような半導体ドライブユニット10と、ハードディスクドライブユニット(以下、HDDと称する)20とから構成される。半導体ドライブユニット10は、NANDメモリ11と、メインコントローラ(制御部)27とを含む。
ハイブリッドドライブ1では、NANDメモリ11は種々の目的に使用される。NANDメモリ11は、例えば、ハイブリッドドライブ1のパフォーマンス向上、ハイブリッドドライブ1が振動している時のライト動作の安定化、ハイブリッドドライブ1の起動高速化、などのために使用される。後述するように、NANDメモリ11は、管理情報を記録するためのシステム領域(SA)111を有する。
メインコントローラ27は、ホスト装置(以下、ホストと称する)からのアクセス要求(例えば、ライト要求またはリード要求)に応じて、NANDメモリ11へのアクセスを制御する。本実施形態において、NANDメモリ11は、ホストからハイブリッドドライブ1へのアクセスの高速化のために、当該ホストによって最近アクセスされたデータを格納するためのキャッシュ(キャッシュメモリ)として用いられる。ホストは、図1に示されるハイブリッドドライブ1を、自身のストレージ装置として利用する。
メインコントローラ27は、例えば、複数の要素が単一チップに集積された大規模集積回路(LSI)によって実現される。メインコントローラ27は、メモリインタフェースコントローラ(以下、メモリIFと称する)122と、マイクロプロセッサユニット(MPU)123と、読み出し専用メモリ(ROM)124と、ランダムアクセスメモリ(RAM)125と、リード/ライト(R/W)チャネル271と、ハードディスクコントローラ(HDC)272とを含む。
メモリIF(第一のインタフェースコントローラ)122はNANDメモリ11と接続されており、MPU123の制御の下でNANDメモリ11にアクセスする。
MPU123は、メインコントローラ27から転送されたコマンドに基づいてNANDメモリ11にアクセスするための処理(例えば、ライト処理またはリード処理)を、第1の制御プログラムに従って実行する。本実施形態において第一の制御プログラムは、例えばROM124に予め格納されている。
なお、ROM124に代えて、書き換え可能な不揮発性ROM、例えばフラッシュROMを用いても良い。RAM125の記憶領域の一部は、例えばMPU123のワーク領域として用いられる。
HDD20は、ディスク21と、ヘッド22と、スピンドルモータ(SPM)23と、アクチュエータ24と、ドライバ集積回路(IC)25と、ヘッドIC26と、メインコントローラ27とを含む。
ディスク21は、例えばその一方の面に、データが磁気記録される記録面を備えている。ディスク21はSPM23によって高速に回転させられる。SPM23は、ドライバIC25から供給される駆動電流(または駆動電圧)により駆動される。
図1の構成は、単一枚のディスク21を備えたHDD20を示している。しかし、ディスク21が複数枚積層配置されたHDDであっても構わない。また、図1の構成では、ディスク21は、その一方の面に記録面を備えている。しかし、ディスク21がその両面に記録面を備え、当該両記録面にそれぞれ対応してヘッドが配置されても構わない。
ディスク21(より詳細には、ディスク21の記録面)は、例えば同心円状の複数のトラックを備えている。なお、ディスク21が、スパイラル状に配置される複数のトラックを備えていても構わない。ディスク21は、記録面の一部に予めシステム領域(SA)101を備えている。
システム領域101は、HDD SA101と示す場合もある。ここで、システム領域101には、HDD20に関する管理情報(HDD管理情報)と、後述するNANDメモリ11に関する管理情報(NAND管理情報)と同一の情報とが保存(記憶)される。
ヘッド(ヘッドスライダ)22はディスク21の記録面に対応して配置される。ヘッド22は、アクチュエータ24のアームから延出したサスペンションの先端に取り付けられている。
アクチュエータ24は、当該アクチュエータ24の駆動源となるボイスコイルモータ(VCM)240を有している。VCM240は、ドライバIC25から供給される駆動電流(または駆動電圧)により駆動される。ヘッド22は、アクチュエータ24がVCM240によって駆動されることにより、ディスク21上を当該ディスク21の半径方向に、円弧を描くように移動する。
ドライバIC25は、メインコントローラ27(より詳細には、メインコントローラ27内のMPU123)の制御に従い、SPM23とVCM240とを駆動する。ドライバIC25によりVCM240が駆動されることで、ヘッド22はディスク21上の目標トラックに位置付けられる。
ヘッドIC26はヘッドアンプとも呼ばれている。ヘッドIC26は、例えばアクチュエータ24の所定の箇所に固定され、フレキシブル印刷回路基板(FPC)を介してメインコントローラ27と電気的に接続されている。但し、図1では、作図の都合で、ヘッドIC26は、アクチュエータ24から離れた箇所に配置されている。
ヘッドIC26は、ヘッド22のリード素子によりリードされた信号(つまりリード信号)を増幅する。ヘッドIC26はまた、メインコントローラ27(より詳細には、メインコントローラ27内のR/Wチャネル271)から出力されるライトデータをライト電流に変換して、当該ライト電流をヘッド22のライト素子に出力する。
R/Wチャネル271は、リード/ライトに関連する信号を処理する。即ちR/Wチャネル271は、ヘッドIC26によって増幅されたリード信号をデジタルデータに変換し、このデジタルデータからリードデータを復号する。
R/Wチャネル271はまた、HDC272から転送されるライトデータを符号化し、この符号化されたライトデータをヘッドIC26に転送する。
HDC272は、ホストインタフェース(ストレージインタフェース)30を介してホホストと接続されている。ホスト及び図1に示されるハイブリッドドライブは、パーソナルコンピュータ、ビデオカメラ、音楽プレーヤー、携帯端末、携帯電話機、或いはプリンタ装置のような電子機器に備えられている。
HDC272は、ホストから転送される信号を受信し、且つホストに信号を転送するホストインタフェースコントローラとして機能する。具体的には、HDC272は、ホストから転送されるコマンド(ライトコマンド、リードコマンド等)を受信して、当該受信されたコマンドをMPU123に渡す。
HDC272はまた、ホストと当該HDC272との間のデータ転送を制御する。HDC272は更に、R/Wチャネル271、ヘッドIC26及びヘッド22を介してディスク21へのデータのライト及びディスク21からのデータのリードを制御するディスクインタフェースコントローラとしても機能する。
MPU123は、ホストからのアクセス要求(ライト要求またはリード要求)に応じて、NANDメモリ11へのアクセスと、R/Wチャネル271、ヘッドIC26、及びヘッド22を介したディスク21へのアクセスとを制御する。この制御は、第2の制御プログラムに従って実行される。本実施形態において、第2の制御プログラムは、例えばROM124に格納されている。RAM125の記憶領域の一部は、例えばMPU123のワーク領域として用いられる。
なお、イニシャルプログラムローダ(IPL)がROM124に格納され、第2の制御プログラムがディスク21に格納されていても構わない。この場合、ハイブリッドドライブの電源が投入された際に、MPU123がIPLを実行することにより、第2の制御プログラムがディスク21からROM124またはRAM125にロードされれば良い。
図2は、図1に示されるNANDメモリ11の記憶領域のフォーマットの一例を示す概念図である。図2において、NANDメモリ11の記憶領域は、N(=K+L)個のブロック(つまり、物理ブロック)から構成される。NANDメモリ11では、このブロックを単位にデータが一括して消去される。つまりブロックは、データが消去される単位である。
NANDメモリ11の記憶領域は、図1及び図2に示されるように、例えばシステム領域(SA)111及びキャッシュ領域(CA)112に区分される。つまり、NANDメモリ11は、システム領域111とキャッシュ領域112とを備えている。
システム領域111は、一般的にキャッシュ領域112に対して十分に小さい。なお、NANDメモリ11のシステム領域111をNAND SA111と示し、NANDメモリ11のキャッシュ領域112をNAND CA112と示すこともある。
また、本実施形態においてシステム領域111はL個のブロックを備え、キャッシュ領域112はK個のブロックを備えるとする。さらに、前述のようにシステム領域111は、一般的にキャッシュ領域112に対して小さいので、K>Lであるとする。
システム領域111は、システム(例えば、メインコントローラ27)がNANDメモリ11に対するデータのリード/ライト/消去の処理を管理するために利用する情報(NAND管理情報)を格納するために用いられる。すなわち、NANDメモリ11のNAND管理情報はシステム領域111に保存される。
ここで、NAND管理情報は冗長的に(多重化されて)保存されることが好ましいので、NAND管理情報のバックアップデータがシステム領域111内に保存されていてもよい。キャッシュ領域112は、例えば、ホストからのアクセス頻度が高いデータを格納するために用いられる。尚、キャッシュ領域112は、ホストからアクセスされる可能性が高いデータを格納しても良いし、ホストによって最近アクセスされたデータを格納しても良い。
NAND管理情報は、例えば、NANDメモリ11の物理的な構成の情報、NANDメモリ11に対するコマンド(例えばイレース)を実行した回数、及び前述のようにNANDメモリ11に対するデータの書き換えの回数などを含む。
NANDメモリ11の記憶領域では、書き込みの最少単位と消去の最少単位とが異なるため、一部のデータのみの書き換えができない。例えば、NANDメモリ11では、書き込みの最小単位が1ページであり、消去の最小単位が1ブロックである。例えば、1ブロックは64ページを含むが、これに限られない。
NANDメモリ11の記憶領域の消去動作は、前述のように複数のページを含むブロック単位で行われる。また、書き換え(上書き)動作は1動作で完了せず、消去してからデータの書き込みが行われる。すなわち1ページの書き換えでも1ブロック全てを消去する必要があるため、その1ブロックのデータは他の記憶領域に一時的に保存される。
システム領域111に保存されたNAND管理情報は、ハイブリッドドライブの起動(電源の投入)時に取得される。NAND管理情報が取得出来ない場合、NANDメモリ11内の全てのデータが消失した状態として扱われる。NAND管理情報が取得できない原因の一つには、NANDメモリ11の記憶領域(特に、システム領域111)の劣化がある。
ハイブリッドドライブでは、複数の不揮発性記録媒体を搭載している。例えば、複数のNANDメモリがハイブリッドドライブに設けられることで、NANDメモリのシステム領域の劣化がある程度抑制され得る。しかし、この場合、十分な数のNANDメモリが搭載されていなければ、十分な数のシステム領域を多重化することができない。その結果、システム領域の劣化が十分に抑制されない。
このようなハイブリッドドライブでは、システム領域の劣化によってNAND管理情報を取得できなくなる可能性がある。NAND管理情報を取得できない場合には、ハイブリッドドライブの動作の信頼性が低下する。
例えば、NANDメモリ11の記憶領域の劣化対策として、NAND管理情報の必要量に応じて適当な余裕領域が、システム領域111に設けられても良い。NAND管理情報は、システム領域111内の当該余裕領域にも格納されることがある。この結果、システム領域111の特定の領域の利用の集中が回避されて、システム領域111への書き込みは平滑化され、その記憶領域の劣化が低減され得る。
システム領域111は、例えば論理物理変換テーブル、第1の空き領域リスト、第2の空き領域リスト、及びバッドブロックリストを格納するのに用いられる。以下の説明では、論理物理変換テーブルが単にテーブルと表記されることもある。また、第1の空き領域リスト、第2の空き領域リスト、及びバッドブロックリストが、それぞれ単にリストと表記されることもある。
論理物理変換テーブルは、NANDメモリ11のキャッシュ領域112内のブロック各々を管理するためのブロック管理情報を格納するのに用いられる。本実施形態において、このブロック管理情報は、キャッシュ領域112内のブロック(予め定められたサイズの領域)各々に格納されたデータ(各ブロックデータ)のアドレスに関するキャッシュディレクトリ情報として用いられる。
キャッシュディレクトリ情報は、各ブロックデータの物理的なアドレスと論理的なアドレスとの対応を管理するための情報を含む。各ブロックデータの物理的なアドレス(ここでは、物理ブロック番号)は、各ブロックデータが格納されているNANDメモリ11内のブロック(領域)の位置を示す。各ブロックデータの論理的なアドレス(ここでは、論理ブロック番号)は、各ブロックデータの論理アドレス空間内の位置を示す。一般的にNANDメモリにおいて、前述のNAND管理情報及び論理物理変換テーブルの両方が読み込めない場合、後述するように起動の準備は完了しない。
第1の空き領域リストは、キャッシュ領域112内の第1のタイプの空き領域を登録するために用いられる。つまり第1の空き領域リストは、第1のタイプの空き領域を管理するための第1の情報として用いられる。第1のタイプの空き領域とは、正常な空き領域を指す。
第2の空き領域リストは、キャッシュ領域112内の第2のタイプの空き領域を登録するのに用いられる。つまり第2の空き領域リストは、第2のタイプの空き領域を管理するための第2の情報として用いられる。第2のタイプの空き領域とは、過去にリードエラーが発生した空き領域を指す。バッドブロックリストは、使用不可能とされたブロック(物理ブロック)、つまりバッドブロック(領域)を登録するのに用いられる。つまりバッドブロックリストは、バッドブロックを管理するための第3の情報として用いられる。
前述のように、NANDメモリ11では、データが既に格納されている領域に、新たなデータ(更新データ)を上書きすることはできない。このため、システム領域111内のテーブルの格納位置(記憶位置)は、当該テーブルが更新される都度変更されることがある。この場合、更新されたテーブル(新テーブル)は、更新前のテーブル(旧テーブル)が格納されている領域とは異なる領域に書かれることがある。システム領域111内のリストの格納位置についても同様である。
システム領域111内のテーブル及びリストなどの格納位置及びサイズの情報は、例えばHDD SA101や、NAND SA111等の一部に格納されている。本実施形態では、HDD SA101や、NAND SA111等に格納されている情報は、ハイブリッドドライブ1の電源投入時に読み出され、RAM125にロードされる。
キャッシュ領域112のブロックの各々は、複数のページ(物理ページ)から構成されるものとする。この場合、論理ブロックも複数のページ(論理ページ)から構成される。
論理ページ番号は、対応する物理ブロック番号及び物理ページ番号のページ(物理ページ)が割り当てられた論理ページ(論理ブロック内の論理ページ)を示す。つまり、論理ページ番号は、対応する物理ページに格納されたデータの論理アドレス空間内の位置を示す。
本実施形態においてメインコントローラ27は、NANDメモリ11に対して(より詳細には、NANDメモリ11の各ブロックに保存されたデータに対して)、リードパトロールを実施する。以下、本実施形態におけるリードパトロール(第一の処理)について説明する。
一般にNANDメモリ11は、データの書き換え回数に上限がある。また、記憶内容の保持期間も有限であり、NANDメモリ11の劣化によって、所定の期間が経過すると記憶内容が失われ得る。尚、所定の期間は、例えば10年であるがこれに限られない。また、NANDメモリ11の記憶内容の保持期間は、前述のようにデータの書き換えを繰り返すことで短くなる。また、高温環境下でNANDメモリ11を使用した場合に記憶内容の保持期間が短くなることも知られている。
そこで、メインコントローラ27は、NANDメモリ12の各Block(n)(ただし、0≦n≦N−1)に保存されたデータを定期的に読み出す(リードパトロールを実行する)ことで、データが正しく読み出せるか否かの確認を行う。尚、本実施形態においてリードパトロールは、例えば所定の時間周期で定期的に行われる。
本実施形態において「リードパトロール」とは、前述のように、各Block(n)に保存されたデータを読み出し、読み出されたデータが正しく読み出されているか否かを確認する動作であり、換言すれば、各Block(n)に保存されたデータが壊れていないか確認する動作である。
図3は、本実施形態に係るNANDメモリ11に対するリードパトロールの動作を示したフローチャートである。以下、図3を参照して記憶装置1の動作を説明する。リードパトロールでは、メインコントローラ27は前述のように、NANDメモリ11の各ブロックに対してデータの読み出しを行うが、ここではBlock(n=0)からデータの読み出しを行うとする。
メインコントローラ27は、はじめにNANDメモリ11のBlock(0)に保存されたデータを読み出す(S101)。尚、NANDメモリ11に保存されたデータには、一般的にECC(Error Correction Code)が付されている。
ECCは、データを読み出す際に当該データに誤り(エラー)が生じた場合、この誤りを訂正するための符号(誤り訂正符号)である。尚、其々のデータ内における誤りの割合をエラーレート(Error rate)と呼ぶ。エラーレートは、例えばデータの全ビット(bit)数に対する、エラービットの割合を指す。
また、ECCの誤り訂正には上限があり、エラービット数がある程度大きくなった場合、すなわちエラーレートがある程度大きくなると、ECCでは訂正できない場合もある。すなわち、ECCには訂正可能ビット数(訂正可能レート)の上限がある。尚、前述のECCの訂正可能ビット数(訂正可能レート)の上限が大きい(高い)場合を、ECCの訂正強度が高い(強い)と表現する場合もある。
次に、S101で読み出されたデータのエラーレートを取得する(S102)。尚、ここではメインコントローラ27は、Block(0)から読み出されたデータのエラーレートを取得したが、例えば、エラービット(Error bit)の数を取得しても良い。
すなわち本実施形態においてメインコントローラ27は、読み出されたデータのエラー量を取得する。尚、当該エラー量はエラーレート及びエラービット数を含む。尚、以下の説明ではメインコントローラ27は、読み出したデータのエラーレートを取得するとする。
メインコントローラ27は、S102で取得されたエラーレートが第一の所定の値th1(閾値、第一値)より大きいか否かを確認する(S103)。
S103で、エラーレート>th1の場合(S103:Yes)、メインコントローラ27は、S102で取得されたエラーレートが第二の所定の値th2(閾値、第二値)より大きいか否かを確認する(S104)。ただし、th1<th2である。
一方で、エラーレート≦th1であった場合(S103:No)、処理はS110に進む。S110以降の動作については後述する。
S104で、エラーレート>th2の場合(S104:Yes)、メインコントローラ27は、Block(0)のデータが正しく読み出すことができたかを確認する(S107)。換言すれば、Block(0)のデータの誤りがECCによって訂正されたか(可能か)否かを確認する。
S107で、データの読み出しが正しく行われた場合(S107:Yes)、メインコントローラ27は、NANDメモリ11の空きブロックに、Block(0)から読み出したデータを書き込み(S109)、論理物理変換テーブルを更新する。尚、空きブロックとは、ブロック内に有効なデータが保存されていないブロックのことである。また、ここでの空きブロックは、前述した第1のタイプの空き領域である。その後、処理はS110に進む。
一方で、S107でデータの読み出しが正しく行われなかった場合(S107:No)、メインコントローラ27は、ディスク21に保存されたデータの内、正しく読み出せなかったデータに対応したデータがあれば、このデータをNANDメモリ11の空きブロック(第1のタイプの空き領域)に書き込み(S108)、テーブルを更新する。その後、処理はS110に進む。
また、(S107:No)の場合、Block(0)に保存されていたデータは消去され、または無効化され、Block(0)は空きブロックとなる。尚、ここでの空きブロックとは、第2のタイプの空き領域である。
次に、S104で、Error rate≦th2であった場合(S104:No)を説明する。(S104:No)の場合、メインコントローラ27は、NANDメモリ11のBlock(0)のデータがダーティデータ(dirty data)か否かを確認する(S105)。ダーティデータとは、NANDメモリ11には(より詳細には、NANDメモリ11のキャッシュ領域112には)書かれており、ディスク21には書かれていないデータを指す。
S105で、Block(0)のデータがダーティデータであった場合(S105:Yes)、メインコントローラ27は、当該データをディスク21に書き込む(S106)。その後、処理はS110に進む。
一方で、S105で、Block(0)のデータがダーティデータでない場合(S105:No)、処理はS110に進む。
(S103:No)、(S105:No)の場合、及び、S106、S108、S109の処理が終了した後、変数n=n+1となる(S110)。すなわち、これまでn=0であったがn=1となり、Block(0)からBlock(1)へと対象ブロックが変更される。
その後、メインコントローラ27は、nの値がNANDメモリ11のブロック数(=N=K+L)よりも大きいか否かを確認する(S111)。
n>Nの場合(S111:Yes)、NANDメモリ11の全てのブロックに対してデータの確認が完了しているので、メインコントローラ27はリードパトロールを終了する。
一方で、n≦Nの場合(S111:No)、処理はS101に戻り、次のブロックに保存されたデータが読み出される。すなわち、メインコントローラ27は、Block(n=1)のデータを読み出し、以降、前述と同様の処理を行う。
本実施形態において、メインコントローラ27はNANDメモリ11の各ブロックに対してのデータの読み出し及び確認(リード&ベリファイ)を行う。また、リードパトロール時に、ECCの訂正可能レートに対して十分余裕を持った第一の所定の値th1と、第一の所定の値th1より大きい第二の所定の値th2と、を閾値として、データの退避先を選択する。
具体的には、メインコントローラ27は、NANDメモリ11のあるブロックBlock(n)から読み出されたデータのエラーレートがth2よりも大きい場合は、NANDメモリ11の他の空きブロックに当該データを書き込み、Block(n)から読み出されたデータのエラーレートがth1より大きくth2以下の場合は、ディスク21に当該データを書き込む。
既述したように、NANDメモリ11はデータの書き換え回数に上限があり、データの書き換え回数の増加に伴い劣化が生じる。したがって、データの書き換え回数の増加を抑制することが望ましい。
そこで本実施形態では、読み出されたデータのエラーレートが、ECCの訂正可能レートに対して十分余裕を持った第一の所定の値th1よりも大きいが、第二の所定の値th2(>th1)以下の場合は、当該読み出されたデータは、ダーティデータであれば、ディスク21に書き込まれる。
このため、NANDメモリ11の他の空き領域にデータを書き込む場合と比較して、NANDメモリ11の書き換え回数の増加が抑制され、NANDメモリ11の劣化を抑制可能である。
また、正しく読み出されたデータのエラーレートが、ECCの訂正可能レートに対して第一の所定の値th1よりも余裕を持たない第二の所定の値th2よりも大きい場合は、当該読み出されたデータはNANDメモリ11の他の空きブロックに書き込まれる。
このため、前述のディスク21にデータを書き込む場合と比較して読み出しエラーが起こる可能性が高い場合においても、パフォーマンスの劣化を防ぐことが可能である。つまり、NANDメモリ11からのデータの読み出しでリードエラーが発生した際に、NANDメモリ11内でデータの退避を行っているため、ディスク21にアクセスする必要は無く、高速なデータの読み出しを維持可能である。
また、NANDメモリ11の劣化対策の他の例として、NANDメモリ11を複数備え、各NANDメモリ11がシステム領域111を有することで、記録するデータを多重化することも可能であるが、この場合、十分な数のNANDメモリ11が設けられる必要があり、追加コストが発生し得る。
一方で本実施形態においては、読み出したデータのエラーレートに応じて、データの書き込み先を、NANDメモリ11の他の空きブロック及びディスク21から選択することで、NANDメモリ11の劣化やデータアクセスのパフォーマンス劣化を抑制する。このため、NANDメモリ11の数を増やしたり、容量を増やしたりする必要は無く、それに伴うコスト発生の抑制や記憶装置1全体の規模の縮小に貢献できる。
尚、本実施形態で行われるリードパトロールは、例えばNANDメモリ11に電力が供給されている間、所定の周期で定期的に行われるが、当該リードパトロールがホストからのコマンドに応じて適宜行われる構成としても良い。このような場合は、NANDメモリ11の使用状況やメインコントローラ27にかかる負荷に応じて、リードパトロールが行われるタイミングを制御可能である。
さらに、ホストがNANDメモリ11への電力の供給を終了する前にその旨をメインコントローラ27に通知し、ホストからの入力に応じてリードパトロールが行われてからNANDメモリ11への電力供給が遮断される構成としても良い。
このような構成とすることで、次回NANDメモリ11を使用する場合に、既にNANDメモリ11内に保存されたデータの確認が完了した状態でNANDメモリ11を使用可能である。
また、メインコントローラ27はNANDメモリ11への電力供給が開始された際に、はじめにリードパトロールを行う構成としても良い。尚、この場合の「はじめにリードパトロールを行う」とは、メインコントローラ27が、ホストからのライト要求やリード要求等のコマンドを受け、当該コマンドに対応した処理を開始するより前にリードパトロールを行うことを意味する。したがって必ずしも、NANDメモリ11に電力供給がされた後に即時的に行われる必要は無い。
このような構成においても、NANDメモリ11を使用する場合に、既にNANDメモリ11内に保存されたデータの確認が完了した状態でNANDメモリ11を使用可能である。
尚、本実施形態では、第一の所定の値th1と第二の所定の値th2との二つの値を閾値として、リードパトロール時のデータの書き込み先を選択したが、これに限らず閾値は例えば三つ以上であっても良い。
また、本実施形態では、リードパトロール時における第一の所定の値th1と第二の所定の値th2との二つの値を閾値としたデータの書き込み先の選択を説明した。しかし図3に示した一連の処理は、例えばホストからのリード要求に応じたリード時において行われても良く、必ずしもリードパトロール時のみに行われなくてもよい。
さらに、本実施形態で説明したデータの書き込み先の選択は、常に行われる必要は無く、例えばNANDメモリ11の疲弊が定められた値を上回ってから行われても良いし、NANDメモリ11(または記憶装置1)の周辺の環境温度が定められた値を上回ってから行われても良い。
また、本実施形態では、メインコントローラ27は、NANDメモリ21及びディスク11を制御するが、これに限られず、NANDメモリ21及びディスク11が、それぞれ異なるコントローラによって制御されてもよい。その場合、本実施形態におけるメインコントローラ(制御部)27は、前述したそれぞれのコントローラを含む。
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等に含まれる。
1:記憶装置(ハイブリッドディスクドライブ)、10:半導体ドライブユニット、11:NANDフラッシュメモリ(NANDメモリ、第二の不揮発性記憶媒体)、20:ハードディスクドライブユニット(HDD)、21:磁気ディスク媒体(ディスク、第一の不揮発性記憶媒体)、27:メインコントローラ、30:ホストインタフェース(ストレージインタフェース)、111:システム領域(SA)、112:キャッシュ領域(CA)。

Claims (11)

  1. 第一の不揮発性記憶媒体と、
    複数のブロックを有し、前記第一の不揮発性記憶媒体よりも高速にデータ処理可能な第二の不揮発性記憶媒体と、
    前記第一の不揮発性記憶媒体を制御する第一のコントローラと、前記第二の不揮発性記憶媒体を制御する第二のコントローラを含む制御部と、
    を備え、
    前記制御部は、
    前記第二の不揮発性記憶媒体から読み出された第一データのエラー量を取得し、該エラー量に応じて前記第一の不揮発性記憶媒体及び前記第二の不揮発性記憶媒体のいずれかに前記読み出された第一データを書き込む記憶装置。
  2. 前記制御部は、
    前記エラー量が第一値より大きく、且つ前記第一値より大きい第二値以下の場合は前記第一の不揮発性記憶媒体に前記読み出された第一データを書き込み、前記エラー量が前記第二値よりも大きい場合は前記第二の不揮発性記憶媒体に前記読み出された第一データを書き込む請求項1に記載の記憶装置。
  3. 前記制御部は、
    前記エラー量が前記第二値よりも大きい場合は前記第二の不揮発性記憶媒体の第一ブロックから読み出された第一データを第二ブロックに書き込む請求項2に記載の記憶装置。
  4. 前記第二ブロックは空きブロックである請求項3に記載の記憶装置。
  5. 前記制御部は、
    前記第二の不揮発性記憶媒体の前記複数のブロックの各々に対して第一の処理を行い、
    前記第一の処理は、
    前記複数のブロックの各々に保存されたデータを読み出し、当該データのエラー量を取得することを含む請求項1乃至請求項4のいずれか一項に記載の記憶装置。
  6. 前記第一の処理は、所定の周期で定期的に行われる請求項5に記載の記憶装置。
  7. 前記第一の処理は、外部からの指示に応じて行われることを特徴とする請求項5に記載の記憶装置。
  8. 前記第一の処理は、前記第二の不揮発性記憶媒体への電源供給が開始された場合に、ホストからのコマンドに応じた他の処理よりも先に行われる請求項5に記載の記憶装置。
  9. 前記第一の処理は、第二の記憶媒体への電源供給が絶たれることを示すホストからの入力を前記制御部が受信した場合に行われる請求項5に記載の記憶装置。
  10. 第一の不揮発性記憶媒体と、前記第一の不揮発性記憶媒体よりも高速にデータ処理可能な第二の不揮発性記憶媒体と、を備えた記憶装置の方法であって、
    前記第二の不揮発性記憶媒体から読み出された第一データのエラー量を取得し、
    該エラー量に応じて前記第一の不揮発性記憶媒体及び前記第二の不揮発性記憶媒体のいずれかに前記読み出された第一データを書き込む
    ことを含んだ方法。
  11. 前記エラー量が第一値より大きく、且つ前記第一値より大きい第二値以下の場合は、前記第一の不揮発性記憶媒体に前記読み出された第一データを書き込み、
    前記エラー量が前記第二値よりも大きい場合は前記第二の不揮発性記憶媒体に前記読み出された第一データを書き込む
    ことをさらに含んだ請求項10に記載の方法。
JP2015194056A 2015-09-30 2015-09-30 記憶装置及び方法 Pending JP2017068634A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2015194056A JP2017068634A (ja) 2015-09-30 2015-09-30 記憶装置及び方法
US15/057,556 US20170090768A1 (en) 2015-09-30 2016-03-01 Storage device that performs error-rate-based data backup
CN201610299508.5A CN106558325A (zh) 2015-09-30 2016-05-09 存储装置及数据写进方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015194056A JP2017068634A (ja) 2015-09-30 2015-09-30 記憶装置及び方法

Publications (1)

Publication Number Publication Date
JP2017068634A true JP2017068634A (ja) 2017-04-06

Family

ID=58409246

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015194056A Pending JP2017068634A (ja) 2015-09-30 2015-09-30 記憶装置及び方法

Country Status (3)

Country Link
US (1) US20170090768A1 (ja)
JP (1) JP2017068634A (ja)
CN (1) CN106558325A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10665305B2 (en) * 2015-09-09 2020-05-26 Toshiba Memory Corporation Host device connectable to memory device performing patrol read and memory device performing patrol read
US10303536B2 (en) * 2015-10-28 2019-05-28 Via Technologies, Inc. Non-volatile memory device and control method thereof
JP6782190B2 (ja) * 2017-04-25 2020-11-11 株式会社東芝 ディスク装置、コントローラ回路、及び制御方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978954A (en) * 1997-11-25 1999-11-02 Palmchip Corporation On-the-fly error detection and correction buffer processor
US6513135B2 (en) * 2000-08-02 2003-01-28 Hitachi, Ltd. Automatic read reassignment method and a magnetic disk drive
US7610523B1 (en) * 2006-02-09 2009-10-27 Sun Microsystems, Inc. Method and template for physical-memory allocation for implementing an in-system memory test
JP4836647B2 (ja) * 2006-04-21 2011-12-14 株式会社東芝 不揮発性キャッシュメモリを用いる記憶装置とその制御方法
US8725946B2 (en) * 2009-03-23 2014-05-13 Ocz Storage Solutions, Inc. Mass storage system and method of using hard disk, solid-state media, PCIe edge connector, and raid controller
JP4829365B1 (ja) * 2010-05-31 2011-12-07 株式会社東芝 データ記憶装置及びデータ書き込み方法
EP2745203B1 (en) * 2011-08-19 2016-09-21 Kabushiki Kaisha Toshiba Information processing apparatus
JP2015135603A (ja) * 2014-01-17 2015-07-27 株式会社東芝 ストレージ装置及びデータを書き込む記憶領域を選択する方法

Also Published As

Publication number Publication date
US20170090768A1 (en) 2017-03-30
CN106558325A (zh) 2017-04-05

Similar Documents

Publication Publication Date Title
US10776153B2 (en) Information processing device and system capable of preventing loss of user data
US9727461B2 (en) Storage device, memory controller, and control method
US8578100B1 (en) Disk drive flushing write data in response to computed flush time
JP4768504B2 (ja) 不揮発性フラッシュメモリを用いる記憶装置
JP5612514B2 (ja) 不揮発性メモリコントローラ及び不揮発性記憶装置
US20090103203A1 (en) Recording apparatus and control circuit
US7757041B2 (en) Storage device using nonvolatile cache memory and control method thereof
US20090089484A1 (en) Data protection method for power failure and controller using the same
JP2009020986A (ja) ディスク・ドライブ装置及びディスク・ドライブ装置において不揮発性半導体メモリ領域上のデータを管理するテーブルを保存する方法
US20170186455A1 (en) Magnetic Disk Device and Write Method
JP2007193440A (ja) 不揮発性キャッシュメモリを用いる記憶装置とその制御方法
US9123443B2 (en) Memory device, memory management device, and memory management method
JP2007193441A (ja) 不揮発性キャッシュメモリを用いる記憶装置とその制御方法
US20150113208A1 (en) Storage apparatus, cache controller, and method for writing data to nonvolatile storage medium
US20180174615A1 (en) Storage device and a method for defect scanning of the same
US7941601B2 (en) Storage device using nonvolatile cache memory and control method thereof
JP2017068634A (ja) 記憶装置及び方法
JP2012521032A (ja) Ssdコントローラおよびssdコントローラの動作方法
US10282096B1 (en) Identification of data with predetermined data pattern
US20150205543A1 (en) Storage device and data storing method
JP4919983B2 (ja) データ記憶装置及びデータ記憶装置におけるデータ管理方法
US10102869B1 (en) Magnetic disk device and read method
US20140068178A1 (en) Write performance optimized format for a hybrid drive
US11024336B1 (en) Magnetic disk device and memory management method of magnetic disk device
US20160170891A1 (en) Disk apparatus and control method

Legal Events

Date Code Title Description
RD07 Notification of extinguishment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7427

Effective date: 20170220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170301

RD07 Notification of extinguishment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7427

Effective date: 20180831