JP5579431B2 - Solid-state drive device and leveling management information save / restore method - Google Patents
Solid-state drive device and leveling management information save / restore method Download PDFInfo
- Publication number
- JP5579431B2 JP5579431B2 JP2009297123A JP2009297123A JP5579431B2 JP 5579431 B2 JP5579431 B2 JP 5579431B2 JP 2009297123 A JP2009297123 A JP 2009297123A JP 2009297123 A JP2009297123 A JP 2009297123A JP 5579431 B2 JP5579431 B2 JP 5579431B2
- Authority
- JP
- Japan
- Prior art keywords
- management information
- data
- leveling management
- storage unit
- saved
- 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.)
- Active
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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本発明は、不揮発性半導体メモリを用いて構成された記憶装置であるソリッド・ステート・ドライブ装置(以下、SSD装置と略称)、および、そのSSD装置の記憶領域におけるデータ書き換え回数を平準化するために用いられる平準化管理情報の退避・回復方法に関する。 The present invention provides a solid state drive device (hereinafter abbreviated as an SSD device) that is a storage device configured using a nonvolatile semiconductor memory, and a method for leveling the number of data rewrites in the storage area of the SSD device. The present invention relates to a method for saving / restoring leveling management information used in the system.
近年、不揮発性半導体メモリであるフラッシュメモリを用いて、ハードディスク装置に代わるSSD装置を構成することが盛んに行われるようになった。SSD装置は、ハードディスク装置で必須の可動部品が不要であるため、一般には、高速かつ高信頼であるとされている。 2. Description of the Related Art In recent years, an SSD device that replaces a hard disk device has been actively used by using a flash memory that is a nonvolatile semiconductor memory. An SSD device is generally considered to be fast and highly reliable because it does not require any movable parts essential for a hard disk device.
しかしながら、フラッシュメモリには、データの書き込みと消去に伴う疲労現象がみられ、そのメモリセルへのデータの書き換え回数は、通常、10万回とされている。コンピュータ応用の場合、その使い方にもよるが、SSD装置におけるフラッシュメモリの特定の記憶領域のデータが10万回書き換えられるまでに、必ずしも長い時間を要しない。これでは、可動部品がないがゆえに高信頼である、というSSD装置のメリットが損なわれてしまう。 However, the flash memory has a fatigue phenomenon associated with data writing and erasing, and the number of times data is rewritten to the memory cell is normally 100,000 times. In the case of a computer application, although it depends on how it is used, it does not necessarily take a long time to rewrite data in a specific storage area of the flash memory in the SSD device 100,000 times. This impairs the merit of the SSD device that is highly reliable because there are no moving parts.
そこで、フラッシュメモリを用いたSSD装置では、その期待される高信頼性を確保するために、特定の記憶領域へのデータの書き込み(消去)が集中するのを回避し、各記憶領域におけるデータ書き換え回数を平準化する、いわゆる、ウェアレベリング技術が導入されている(例えば、特許文献1、特許文献2参照)。
Therefore, in an SSD device using a flash memory, in order to ensure the expected high reliability, data writing (erasing) in a specific storage area is avoided from being concentrated, and data rewriting in each storage area is avoided. A so-called wear leveling technique for leveling the number of times has been introduced (see, for example,
特許文献1、特許文献2などに示されているように、ウェアレベリングの方法は様々であるが、一般的なウェアレベリングでは、記憶領域ごとに書き換え回数(消去回数)を管理するテーブルや、コンピュータから指定される論理アドレスをフラッシュメモリの物理アドレスに変換するためのアドレス変換テーブルがしばしば利用される。本明細書では、アドレス変換テーブルなどウェアレベリングに用いられる情報を総称して、平準化管理情報と呼ぶ。
As shown in
平準化管理情報は、しばしば、SSD装置を構成するフラッシュメモリの所定の記憶領域に記憶される(例えば、特許文献2参照)。しかしながら、データアクセスの高速性が要求されるような応用では、論理・物理アドレス変換も高速で行う必要があり、その目的のために、アドレス変換テーブルが高速のDRAM(Dynamic Random Access Memory)などに記憶されることがある。その場合、DRAMが揮発性メモリであることから、SSD装置は、電源投入の都度、アドレス変換テーブルを含む平準化管理情報をDRAMにロードすることが必要となる。また、平準化管理情報が、例えば、過去の履歴に伴って、時々刻々に変化するような場合には、SSD装置は、電源切断のたびに、DRAMに記憶されている平準化管理情報を不揮発性のフラッシュメモリに退避することが必要となる。 The leveling management information is often stored in a predetermined storage area of a flash memory constituting the SSD device (see, for example, Patent Document 2). However, in applications where high-speed data access is required, logical / physical address translation must be performed at high speed. For this purpose, the address translation table is used in a high-speed DRAM (Dynamic Random Access Memory). May be remembered. In this case, since the DRAM is a volatile memory, the SSD device needs to load the leveling management information including the address conversion table into the DRAM every time the power is turned on. Further, when the leveling management information changes from time to time, for example, with the past history, the SSD device stores the leveling management information stored in the DRAM in a nonvolatile manner every time the power is turned off. It is necessary to save it in a flash memory.
以上のように、平準化管理情報が揮発性メモリに記憶され、時々刻々書き換えられるような応用のSSD装置においては、電源が切断または投入されるたびに、平準化管理情報を退避または回復する処理が実行される。 As described above, in an SSD device in which leveling management information is stored in a volatile memory and rewritten from time to time, the leveling management information is saved or restored each time the power is turned off or on. Is executed.
一般に、SSD装置は、数10GB〜数100GBとういう大容量の記憶装置であるから、その平準化管理情報も数10MBに及ぶ場合がある。また、電源の切断では、突然の停電も考慮しなければならない。すなわち、SSD装置における平準化管理情報の退避・回復処理では、数10MBに及ぶ大容量の平準化管理情報を短時間(例えば、0.3秒〜0.5秒)のうちに不揮発性メモリに退避させることが解決すべき大きな課題となる。 In general, an SSD device is a large-capacity storage device of several tens GB to several hundred GB, and its leveling management information may extend to several tens of MB. Also, sudden power outage must be taken into account when turning off the power. That is, in the leveling management information saving / restoring process in the SSD device, a large amount of leveling management information of several tens of megabytes is stored in the nonvolatile memory within a short time (for example, 0.3 to 0.5 seconds). Evacuation is a major issue to be solved.
そこで、本発明の目的は、大容量の平準化管理情報を短時間のうちに不揮発性メモリに退避させることが可能なSSD装置およびその平準化管理情報の退避・回復方法を提供することにある。 SUMMARY OF THE INVENTION An object of the present invention is to provide an SSD device capable of saving a large capacity leveling management information in a nonvolatile memory in a short time and a method for saving and restoring the leveling management information. .
本発明に係るソリッド・ステート・ドライブ(SSD)装置は、(1)複数の不揮発性メモリチップと、前記複数の不揮発性メモリチップを所定の数ごとの複数のレーンに分割したとき、前記レーンごとにそのレーンに属する不揮発性メモリチップに接続され、前記不揮発性メモリチップに対する書き込みまたは読み出しデータを一時記憶するバッファ記憶制御部と、を含んで構成された不揮発データ記憶部と、(2)前記不揮発性メモリチップにおける書き込みデータ消去の単位領域であるブロックのデータ消去回数を平準化するための平準化管理情報を記憶する平準化管理情報記憶部と、(3)電源供給のオンおよびオフを検知する電源供給オン・オフ検知部と、(4)前記電源供給オン・オフ検知部により電源供給のオフが検知されたとき、前記平準化管理情報記憶部に記憶されている平準化管理情報を前記不揮発データ記憶部に退避し、前記電源供給オン・オフ検知部により電源供給のオンが検知されたとき、前記不揮発データ記憶部に退避されている平準化管理情報を前記平準化管理情報記憶部に回復させる平準化管理情報退避・回復処理部と、を備え、さらに、(5)前記平準化管理情報退避・回復処理部が前記平準化管理情報記憶部から読み出した退避データを順次前記複数のバッファ記憶制御部のそれぞれに転送したときには、前記複数のバッファ記憶制御部は、前記それぞれに転送された退避データを受け取り、前記受け取った退避データを互いに独立に並行して前記不揮発性メモリチップに転送して書き込むように構成されている。(6)そして、以上のように構成された本発明に係るソリッド・ステート・ドライブ(SSD)装置は、前記平準化管理情報退避・回復処理部が、前記平準化管理情報を前記不揮発データ記憶部に退避する場合には、前記平準化管理情報記憶部から前記平準化管理情報を順次所定のデータ長の退避データとして読み出し、前記読み出した退避データの先頭データが前記平準化管理情報記憶部に記憶されていたときのアドレス情報を取得し、前記退避データに前記取得したアドレス情報を付加した情報を、前記不揮発データデータ記憶部に書き込むことを特徴とする。 The solid state drive (SSD) device according to the present invention includes: (1) a plurality of non-volatile memory chips, and when the plurality of non-volatile memory chips are divided into a predetermined number of lanes; A non-volatile data storage unit connected to a non-volatile memory chip belonging to the lane and temporarily storing write or read data for the non-volatile memory chip ; and (2) the non-volatile a leveling management information storage unit for storing a leveling management information to level the data erase count block which is a unit area of the write data erasing in sexual memory chip, to detect the (3) the power supply on and off and a power supply on-off detection unit, off of the power supply is detected by (4) the power supply on-off detection unit The leveling management information stored in the leveling management information storage unit is saved in the nonvolatile data storage unit, and when the power supply on / off detection unit detects that the power supply is on, the nonvolatile management information storage unit stores the leveling management information. A leveling management information save / restore processing unit that restores the leveling management information saved in the data storage unit to the leveling management information storage unit ; and (5) saving and restoring the leveling management information When the processing unit sequentially transfers the saved data read from the leveling management information storage unit to each of the plurality of buffer storage control units, the plurality of buffer storage control units receive the saved data transferred to each of the plurality of buffer storage control units. The received saved data is transferred and written to the nonvolatile memory chip in parallel and independently of each other . (6) In the solid state drive (SSD) device according to the present invention configured as described above, the leveling management information saving / recovering unit stores the leveling management information in the nonvolatile data storage unit. In the case of saving to, the leveling management information is sequentially read out from the leveling management information storage unit as saved data having a predetermined data length, and the first data of the read out saved data is stored in the leveling management information storage unit The address information at the time of being stored is acquired, and information obtained by adding the acquired address information to the saved data is written in the nonvolatile data data storage unit .
一般に、不揮発性メモリへのデータの書き込みは、データ読み出しに比べ長時間を要するが、本発明では、平準化管理情報記憶部から読み出されて退避される平準化管理情報を、複数のレーンそれぞれに設けられたバッファ記憶制御部を介することによって、それぞれのレーンごとにそのレーンに属する不揮発性メモリチップに、互いに独立に並行して書き込むことが可能となる。従って、平準化管理情報の退避に要する時間が短縮される。 In general, writing data to a nonvolatile memory takes a long time compared to data reading.In the present invention, the leveling management information read and saved from the leveling management information storage unit is stored in each of a plurality of lanes. By using the buffer storage control unit provided in the, each lane can be written to the nonvolatile memory chips belonging to the lane in parallel independently of each other. Therefore, the time required for saving the leveling management information is shortened.
本発明によれば、大容量の平準化管理情報を短時間のうちに不揮発性メモリに退避させることが可能なソリッド・ステート・ドライブ装置およびその平準化管理情報の退避・回復方法を提供することが可能になる。 According to the present invention, a solid-state drive device capable of saving large-capacity leveling management information in a nonvolatile memory in a short time and a method for saving and restoring the leveling management information are provided. Is possible.
以下、本発明の実施形態について、図面を参照して詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
図1は、本発明の実施形態に係るSSD装置の構成の例を示した図である。図1に示すように、SSD装置1は、自身にとって外部装置となるホスト装置2に、ホストバス3を介して接続されて用いられる。
FIG. 1 is a diagram showing an example of the configuration of an SSD device according to an embodiment of the present invention. As shown in FIG. 1, an
ここで、ホスト装置2は、いわゆるコンピュータ、または、コンピュータを利用した様々な形態の情報処理装置、制御装置、端末装置などである。また、ホストバス3は、IDE(Integrated Drive Electronics),SCSI(Small Computer System Interface),SATA(Serial Advanced Technology Attachment),SAS(Serial Attached SCSI),USB(Universal Serial Bus)などである。
Here, the
SSD装置1は、不揮発データ記憶部20および不揮発データ記憶制御部10によって構成される。不揮発データ記憶部20は、不揮発性メモリであるフラッシュメモリからなるNVM(Non-Volatile Memory:不揮発性メモリ)チップ23を複数個含んで構成され、ホスト装置2から供給されるデータを不揮発に記憶する。また、不揮発データ記憶制御部10は、基本的には、ホスト装置2から供給されるデータをNVMチップ23へ書き込む制御、および、ホスト装置2からの求めに応じてNVMチップ23に書き込まれているデータを読み出す制御を行う。
The
不揮発データ記憶制御部10は、データ書き込み・読み出し制御部11、平準化管理部12、平準化管理情報記憶部13、平準化管理情報退避・回復処理部14、電源オン・オフ検知部15を含んで構成される。
The nonvolatile data
データ書き込み・読み出し制御部11は、ホストバス3を介してホスト装置2から送信されるSSD装置1に対するデータ書き込み要求、データ読み出し要求などのコマンドを受信する。そして、そのコマンドがデータ書き込み要求である場合には、コマンドに続いてホスト装置2から送信される論理アドレスと書き込みデータを受信し、論理アドレスをNVMチップ23の物理アドレスに変換して、前記の受信した書き込みデータをその変換した物理アドレスで指定されるNVMチップ23へ書き込む。また、コマンドがデータ読み出し要求である場合には、コマンドに続いてホスト装置2から送信される論理アドレスをNVMチップ23の物理アドレスに変換して、その変換した物理アドレスで指定されるNVMチップ23からデータを読み出し、読み出したデータをホスト装置2へ送信する。
The data write / read
平準化管理情報記憶部13は、データ書き込み・読み出し制御部11が論理アドレスを物理アドレスに変換するときに用いられる論理・物理変換テーブルや、NVMチップ23の物理アドレスとその物理アドレスで指定される記憶領域のデータの書き換え(消去)回数などの情報を記憶する。本実施形態では、この平準化管理情報記憶部13は、揮発性半導体メモリであるDRAMによって構成されるとする。
The leveling management
平準化管理部12は、データ書き込み・読み出し制御部11が実行するコマンドを監視して、平準化管理情報記憶部13におけるNVMチップ23の各記憶領域のデータの消去回数などを更新するとともに、その消去回数を平準化するために、適宜、論理・物理変換テーブルを変更する。なお、本実施形態では、論理・物理変換テーブルを含んで構成される平準化管理情報は、所定の時間ごとにまたは所定の条件が満たされるごとに変更されるものであれば、どのようなものであってもよい。従って、平準化管理情報を変更する条件や論理・物理変換の方法などについては、とくに限定をするものではない。
The
電源オン・オフ検知部15は、SSD装置1へ供給される電源供給の切断(オフ)および投入(オン)を検知する。なお、SSD装置1は、図示しない電源回路を有し、その電源回路に設けられているコンデンサにより、電源オン・オフ検知部15により電源供給のオフが検知された後も、所定の時間(例えば、0.3〜0.5秒)は、SSD装置1が正常に動作するための電圧および電流が供給されるものとする。
The power on / off
平準化管理情報退避・回復処理部14は、電源オン・オフ検知部15によってSSD装置1への電源供給のオフが検知されたとき、平準化管理情報記憶部13に記憶されている平準化管理情報を不揮発データ記憶部20のNVMチップ23の記憶領域のあらかじめ定められた領域に退避する。また、平準化管理情報退避・回復処理部14は、SSD装置1への電源供給のオンが検知されたとき、NVMチップ23に退避されている平準化管理情報を平準化管理情報記憶部13に回復させる。
The leveling management information save /
ここで、各レーン21のバッファ記憶制御部22とそのレーン21に属するNVMチップ23とは、チップ接続バス24によって接続されている。また、各レーン21のバッファ記憶制御部22と不揮発データ記憶制御部10とは、レーン接続バス30によって接続されている。
Here, the buffer
平準化管理情報退避・回復処理部14は、その内部に不良ブロック情報テーブル141および故障チップ情報テーブル142を有しているが、その詳細については後記する。また、平準化管理情報の退避・回復の詳細な処理手順については、この明細書の中で順次説明する。
The leveling management information save /
不揮発データ記憶部20は、複数のNVMチップ23を含んで構成されるが、その複数のNVMチップ23は、レーン21によってグループ化される。本実施形態では、8個のレーン21が設けられ、それぞれのレーン21には、それぞれ独立に動作するバッファ記憶制御部22および3個のNVMチップ23が含まれている。
The nonvolatile
バッファ記憶制御部22は、高速のRAMなどで構成されたバッファメモリ(BM:図4など参照)を有して構成され、NVMチップ23への書き込み・読み出しデータをバッファメモリに一時記憶するとともに、NVMチップ23に対するデータの書き込みおよび読み出しタイミングの調整を行う。
The buffer
図2は、NVMチップ23の構成の例を示した図である。ここでは、NVMチップ23は、いわゆるフラッシュメモリである。フラッシュメモリの場合、図2(a),(b)に示すように、1個のNVMチップ23の記憶領域は、複数のブロック231に分割され、それぞれのブロック231は、複数のページ232(例えば、64ページ)に分割されて構成されている。また、図2(c)に示すように、それぞれのページ232には、4kBのデータを記憶する記憶領域が設けられている。
FIG. 2 is a diagram illustrating an example of the configuration of the
そこで、1個のNVMチップ23の記憶容量が、例えば、4GBである場合には、1ブロック=64ページ、1ページ=4kBであるとすると、1個のNVMチップ23には、およそ16000個のブロックが設けられていることになる。本実施形態では、このうち、例えば、14個のブロックを、平準化管理情報を退避するための退避データ記憶領域として用い、残りのブロックを外部データ(ホスト装置2から供給されるデータ)を記憶する外部データ記憶領域として用いる。
Therefore, if the storage capacity of one
これらNVMチップ23におけるブロック231およびページ232の構成は、フラッシュメモリ自体の構造およびその読み出し・書き込み方法に由来し、そのデータの読み出し・書き込みついては、次のような制約が設けられている。
(1)データ読み出し・書き込みは、ページ232の単位で行う。(2)データの消去はブロック231の単位で行う。(3)ページ232が消去された状態でなければ、そのページ232への書き込みはできない。(4)ブロック231の消去回数には、上限がある。
The configuration of the
(1) Data reading / writing is performed in units of
本実施形態では、NVMチップ23に対する退避データの書き込みまたは読み出しは、図2(c)に示すフォーマットを有するページ232を単位として行われる。そのフォーマットによれば、ページ232は、ヘッダ233とそれぞれが512Bの退避データを含んでなる8個のセグメント234とによって構成される。このとき、各セグメント234の退避データには、CRC(Cyclic Redundancy Check)符号やリード・ソロモン符号などの検査符号235が付加される。また、本実施形態では、ヘッダ233は、退避される1ページ分(4kB)の平準化管理情報の先頭データが平準化管理情報記憶部13に記憶されていたときのアドレス(以下、本明細書では、このアドレスを退避データ先頭アドレスと呼ぶ)を含んで構成される。
In this embodiment, the writing or reading of the saved data with respect to the
なお、ここまでの説明では、ページ232は、4kBのデータを記憶する記憶領域を有するとしているが、実際には(物理的には)4kB+αの記憶領域を有している。このとき、+αは200〜256B程度であるが、この+αの記憶領域部分を利用して、ヘッダ233や検査符号235が記憶される。
In the description so far, the
図3は、平準化管理情報記憶部13とNVMチップ23の記憶領域の構成の例を示した図である。図3に示すように、平準化管理情報記憶部13には、平準化管理情報のほかに追加退避情報やそれらを併せたデータに対するチェックサムが記憶され、平準化管理情報がNVMチップ23に退避されるときには、これらのデータがすべて退避される。ここで、追加退避情報とは、平準化管理情報退避・回復処理部14に含まれる各種レジスタ、不良ブロック情報テーブル141、故障チップ情報テーブル142などに記憶されているデータをいう。
FIG. 3 is a diagram illustrating an example of the configuration of the storage areas of the leveling management
従って、電源オン・オフ検知部15により電源供給のオフが検知されたときには、平準化管理情報退避・回復処理部14は、まず、不良ブロック情報テーブル141などの追加退避情報を平準化管理情報記憶部13に格納した上で、平準化管理情報記憶部13に記憶されているすべてのデータを退避データとしてNVMチップ23へ退避する。
Therefore, when the power supply on / off
本実施形態では、平準化管理情報記憶部13に記憶されるデータの総容量を全48MBであるとし、その48MBのデータを24個のNVMチップ23に分散して退避する。このとき、24個のNVMチップ23全体として、全84MBの退避データ記憶領域が用意され、そのうち、48MBが基本退避領域であり、36MBが予備退避領域である。すなわち、NVMチップ23それぞれについて見れば、512ページ(8ブロック)が基本退避領域として用いられ、384ページ(6ブロック)が予備退避領域として用いられる。なお、本実施形態では、これら896ページの退避データ記憶領域は、各NVMチップ23において物理ページのアドレス(#0)〜(#895)の領域に、固定的に割当てられるものとする。
In the present embodiment, the total capacity of data stored in the leveling management
予備退避領域には、24個のNVMチップ23のいずれかが故障チップであった場合に、その故障チップに退避されることになっていた退避データが各NVMチップ23の予備退避領域に分散されて退避される。また、NVMチップ23に不良ブロックが存在した場合や、NVMチップ23へのデータ書き込み時にページ書き込みエラーが生じた場合には、その分、余分な退避領域が必要となるので、その場合にも、平準化管理情報は、予備退避領域に広がって記憶される。
In the spare save area, if any of the 24
続いて、図4〜図7を参照して、NVMチップ23に故障チップ、不良ブロックおよびページ書き込みエラーのいずれも存在しないまたは生じない場合について、平準化管理情報記憶部13に記憶されている平準化管理情報をNVMチップ23に退避または回復する手順について説明する。なお、本明細書では、単に、平準化管理情報という場合には、平準化管理情報記憶部13に記憶されている全部のデータ、すなわち、図3に示した平準化管理情報だけでなく、追加退避情報およびチェックサムを含むものとする。また、以下では、退避または回復されているときの平準化管理情報を、しばしば、退避データまたは回復データと呼ぶ。
Subsequently, with reference to FIGS. 4 to 7, the leveling stored in the leveling management
図4は、退避先のNVMチップ23に故障チップ、不良ブロックおよびページ書き込みエラーのいずれも存在しない場合の平準化管理情報の退避処理において行われる退避データの基本転送手順の例を示した図である。なお、図4において、矢線は退避データの転送方向を示し、矢線の傍の括弧付の数字は、その転送が行われる順序を表す。
FIG. 4 is a diagram showing an example of the basic transfer procedure of the save data performed in the leveling management information save process when the
図4において、平準化管理情報記憶部13は、DRAMなどで構成されたWM(ウェアレベリングメモリ)130を含んで構成され、また、バッファ記憶制御部22は、1ページ分(4kB)の記憶容量のBM(バッファメモリ)220を含んで構成される。なお、WM130は、実質的には平準化管理情報記憶部13そのものと考えてよいが、本明細書では、平準化管理情報記憶部13を構成するDRAMなどの揮発性メモリからなる部分を、とくに、WM130と呼んだものである。
In FIG. 4, the leveling management
WM130からNVMチップ23への退避データの転送は、平準化管理情報退避・回復処理部14の制御のもとに、1ページ分のデータ(4kB)を単位として行われる。すなわち、平準化管理情報退避・回復処理部14は、まず、WM130から最初の1ページ分の退避データを読み出し、読み出した退避データをBM(#0)と記載されたBM220(以下、BM(#0)と略記する)へ転送する(転送順序(1)参照)。このとき、BM(#0)へ転送された1ページ分の退避データは、当該BM(#0)に一時記憶される。
Transfer of saved data from the
なお、平準化管理情報退避・回復処理部14は、当該1ページ分の退避データを転送するに際して、当該退避データの先頭データがWM130に記憶されていたときのアドレス、つまり、退避データ先頭アドレスを併せてBM(#0)へ転送する。
The leveling management information save / restore processing
次に、平準化管理情報退避・回復処理部14は、BM(#0)を有するバッファ記憶制御部22に対し、BM(#0)に一時記憶されている1ページ分の退避データを、NVM(#0)と記載されたNVMチップ23(以下、NVM(#0)と略記する)へ転送することを指示する。そして、その転送指示を受けたBM(#0)を有するバッファ記憶制御部22は、BM(#0)に一時記憶されている1ページ分の退避データに、ヘッダ233(退避データ先頭アドレス)および退避データ512Bごとの検査符号235を付加し、NVM(#0)へ転送する(転送順序(2)参照)。NVM(#0)に転送された退避データは、NVM(#0)のページ(#0)の領域に書き込まれる。
Next, the leveling management information save / restore processing
平準化管理情報退避・回復処理部14は、以上の処理においてBM(#0)を有するバッファ記憶制御部22に対し、退避データのNVM(#0)への退避データの転送を指示すると、その転送の終了を待つことなく、次の処理へ移行する。すなわち、平準化管理情報退避・回復処理部14は、WM130から次の1ページ分の退避データを読み出し、その読み出した退避データを、BM(#1)へ転送する(転送順序(3)参照)。転送された退避データは、そのBM(#1)に一時記憶される。また、その転送に際しては、退避データ先頭アドレスが併せて転送される。
When the leveling management information save / restore processing
次に、平準化管理情報退避・回復処理部14は、BM(#1)を有するバッファ記憶制御部22に対し、BM(#1)に一時記憶されている1ページ分の退避データを、NVM(#1)へ転送することを指示する。そして、その転送指示を受けたBM(#1)を含むバッファ記憶制御部22は、BM(#1)に一時記憶されている1ページ分の退避データにヘッダ233(退避データ先頭アドレス)および退避データ512Bごとの検査符号235を付加し、NVM(#1)へ転送する(転送順序(4)参照)。
Next, the leveling management information save / restore processing
以下、同様に、平準化管理情報退避・回復処理部14およびバッファ記憶制御部22は、転送順序(5),(6),・・・,(47),(48)で示される退避データの転送を実行する。そして、以上の転送順序(1)〜(48)で示される退避データの転送により、NVM(#0)〜NVM(#23)のそれぞれのページ(#1)に所定の退避データが退避されたことになる。
Hereinafter, similarly, the leveling management information saving / restoring
さらに、同様に、転送順序(1)〜(48)で示される退避データの転送が繰り返し実行されることによって、所定の退避データがNVM(#0)〜NVM(#23)のそれぞれのページ(#2),ページ(#3),・・・,ページ(#511)へ、順次、退避される。 Further, similarly, by repeatedly executing the save data transfer shown in the transfer order (1) to (48), the predetermined save data is transferred to each page (NVM (# 0) to NVM (# 23)). # 2), page (# 3),..., Page (# 511) are sequentially saved.
図5は、図4に示した基本転送手順に従って平準化管理情報をNVMチップ23へ退避するとき、平準化管理情報記憶部13のWM130に記憶されている平準化管理情報が各NVMチップ23へ退避される様子を例示した図である。
FIG. 5 shows that the leveling management information stored in the
図5では、WM130は、1ページ(4kB)分のデータで区分され、その区分された区画内には、転送先となるNVMチップ23のチップ番号およびページアドレスが記載されている。また、各区画の左側には、その区画の先頭アドレスが記載されている。この先頭アドレスは、退避データ先頭アドレスとして、各NVMチップ23に書き込まれるページ232のデータのヘッダ233に含まれる。
In FIG. 5, the
また、図5では、矢線により、退避元のWM130の区画と退避先のNVMチップ23のページが接続されて示されている。そして、この矢線の傍に付された括弧付の数字は、図4における括弧付の数字と同じものであり、データの転送順序を意味している。ただし、図が煩雑になることを避けるため、この転送順序を表す数は、一部の矢線にのみ付されている。
In FIG. 5, the section of the save
図6は、退避先のNVMチップ23に故障チップ、不良ブロックおよびページ書き込みエラーのいずれも存在しない場合の平準化管理情報の回復処理において行われる回復データの基本転送手順の例を示した図である。なお、ここで、回復データとは、NVMチップ23に退避されている平準化管理情報をいう。また、図6において、矢線は回復データの転送方向を示し、矢線の傍の括弧付の数字は、その転送が行われる順序を表す。
FIG. 6 is a diagram showing an example of a recovery data basic transfer procedure performed in the recovery processing of the leveling management information in the case where none of the failed chip, the defective block, and the page write error exists in the save
平準化管理情報の回復処理では、平準化管理情報退避・回復処理部14は、まず、各レーン21のバッファ記憶制御部22に対して、NVMチップ23からの回復データの読み出を指示する。各レーン21のバッファ記憶制御部22は、その指示を受けて、NVM(#0)〜NVM(#7)から1ページ分の回復データを読み出し、その読み出した回復データをそれぞれBM(#0)〜BM(#7)へ転送する(転送順序(1)参照)。そして、その転送されたそれぞれの回復データは、BM(#0)〜BM(#7)に一時記憶される。
In the leveling management information recovery process, the leveling management information save / restore processing
ここで、8つのバッファ記憶制御部22が平準化管理情報退避・回復処理部14から回復データの読み出し指示を受ける時間は、バッファ記憶制御部22がNVM(#0)〜NVM(#7)から回復データ読み出して、BM(#0)〜BM(#7)へ転送する時間に比べ、極めて小さいため、各レーン21におけるNVMチップ23からBM220への回復データの転送は、ほとんど同時に行われる。
Here, the time during which the eight buffer
次に、平準化管理情報退避・回復処理部14は、BM(#0)〜(#7)に一時記憶された回復データを、順次、WM130へ転送し(転送順序(2)〜(9)参照)、WM130の元のアドレスへ格納する。
Next, the leveling management information save / restore processing
なお、このBM(#0)〜(#7)からWM130への回復データの転送に際しては、NVM(#0)〜(#7)から読み出された回復データのヘッダ233(回復データのフォーマットは、図2の退避データのフォーマットと同じ)に含まれる退避データ先頭アドレスが併せて転送される。従って、平準化管理情報退避・回復処理部14は、BM(#0)〜(#7)から転送される回復データをWM130の元のアドレスに容易に格納することができる。
When the recovery data is transferred from the BM (# 0) to (# 7) to the
以下、同様に、平準化管理情報退避・回復処理部14は、各レーン21のバッファ記憶制御部22に対して、NVMチップ23から次の回復データの読み出しを指示し、その指示を受けて、各レーン21のバッファ記憶制御部22は、NVM(#8)〜NVM(#15)から1ページ分の回復データを読み出し、その読み出した回復データをそれぞれBM(#0)〜BM(#7)へ転送し(転送順序(10)参照)、それぞれBM(#0)〜BM(#7)に一時記憶する。
Similarly, the leveling management information save / restore processing
次に、平準化管理情報退避・回復処理部14は、BM(#0)〜(#7)に一時記憶された回復データを、順次、WM130へ転送し(転送順序(11)〜(18)参照)、WM130の元のアドレスへ格納する。
Next, the leveling management information save / restore processing
さらに、同様に、平準化管理情報退避・回復処理部14およびバッファ記憶制御部22は、NVM(#16)〜NVM(#23)から次の1ページ分の回復データを読み出し、読み出したデータを、BM(#0)〜BM(#7)経由でWM130へ転送する(転送順序(19)〜(27)参照)。
Further, similarly, the leveling management information save / restore processing
以上の転送順序(0)〜(27)で示される回復データの転送により、NVM(#0)〜NVM(#23)のそれぞれのページ(#0)に退避されていたデータがWM130に回復されたことになる。さらに、転送順序(0)〜(27)で示される回復データの転送を511回繰り返すことによって、NVM(#0)〜NVM(#23)のそれぞれのページ(#1)〜ページ(#511)に退避されていたデータがWM130に回復される。
Through the transfer of the recovery data shown in the transfer order (0) to (27), the data saved in the respective pages (# 0) of NVM (# 0) to NVM (# 23) is recovered to the
図7は、図4および図6を用いて説明した平準化管理情報の退避処理および回復処理で行われるデータの転送手順をタイムチャートで示した図であり、(a)は、退避処理時のタイムチャート、(b)は、回復処理時のタイムチャートである。なお、図7において、横方向は時間軸を示し、縦方向の各段には、各NVMチップ23(NVM(#0)〜(#23))に係るデータ転送動作が網掛けされた横方向のバーで示されている。 FIG. 7 is a time chart showing the data transfer procedure performed in the leveling management information saving process and the recovery process described with reference to FIGS. 4 and 6, and FIG. A time chart (b) is a time chart during the recovery process. In FIG. 7, the horizontal direction indicates the time axis, and the horizontal direction in which the data transfer operation related to each NVM chip 23 (NVM (# 0) to (# 23)) is shaded is shown in each vertical stage. Shown in the bar.
退避処理の場合、その単位処理は、[1]平準化管理情報退避・回復処理部14が1ページ分の退避データをWM130からBM220へ転送する動作(レーン接続バス30を利用)、[2]バッファ記憶制御部22が1ページ分の退避データをBM220へ転送する動作(各レーン21のチップ接続バス24を利用)、[3]NVMチップ23が1ページ分の退避データをプログラムする動作(ここでいうプログラムとは、フラッシュメモリの記憶セルへのデータの電気的・物理的な書き込み動作をいう)、によって構成される。すなわち、1ページ分の退避データをWM130から読み出して、NVMチップ23に書き込むまでの単位退避処理は、[1]+[2]+[3]の動作によって構成される。
In the case of the save process, the unit process includes [1] an operation in which the leveling management information save / restore processing
また、回復処理の場合、その単位処理は、[4]バッファ記憶制御部22が1ページ分の回復データをNVMチップ23から読み出し、BM220へ転送する動作(各レーン21のチップ接続バス24を利用)、[5]平準化管理情報退避・回復処理部14が1ページ分の回復データをBM220からWM130へ転送する動作(レーン接続バス30を利用)、によって構成される。すなわち、1ページ分の回復データをNVMチップ23から読み出して、WM130に戻すまでの単位回復処理は、[4]+[5]の動作によって構成される。
In the case of recovery processing, the unit processing is [4] operation in which the buffer
なお、図7(a),(b)において、網掛けされた横方向バーの上側に記載された括弧付の数字は、退避または回復データの転送順序を表し、図4(退避処理)および図6(回復処理)における括弧付の数字の転送順序に対応付けられている。 In FIGS. 7A and 7B, the numbers in parentheses described above the shaded horizontal bars represent the transfer order of save or recovery data, and FIG. 4 (save process) and FIG. This is associated with the transfer order of the numbers in parentheses in No. 6 (recovery process).
ところで、退避処理の動作[2]におけるBM220からNVMチップ23への退避データの転送は、レーン21のそれぞれに独立に設けられたチップ接続バス24を介して行われるので、図7(a)(図4も参照)に示すように、各レーン21における退避データの転送(図中の転送順序(2),(4),・・・,(8))は、それぞれ同時に、並行して行われることが可能である。また、動作[3]のプログラムは、24個のNVMチップ23でそれぞれ同時に、並行して行われることが可能である。
By the way, since the transfer of the save data from the
従って、実質的には、動作[2]は、その動作時間を本来の1/8まで短縮することができ、また、動作[3]は、その動作時間を本来の1/24まで短縮することができることになる。ちなみに、図4および図7(a)に括弧付の数字で示した転送順序で退避処理が行われ、動作[1],[2],[3]の動作時間を、それぞれT1,T2,T3としたとき、T2≦T1×8、かつ、T2+T3≦T1×24という条件が満たされる場合には、単位退避処理([1]+[2]+[3])の動作時間は、見かけ上、T1の時間で済むことになる。これは、単位退避処理の動作時間が最良値で1/24まで短縮されることを意味している。 Accordingly, the operation [2] can substantially reduce the operation time to 1/8 of the original, and the operation [3] can reduce the operation time to the original 1/24. Will be able to. Incidentally, the saving process is performed in the transfer order indicated by the numbers in parentheses in FIGS. 4 and 7A, and the operation times of the operations [1], [2], and [3] are respectively expressed as T1, T2, T3. When the conditions of T2 ≦ T1 × 8 and T2 + T3 ≦ T1 × 24 are satisfied, the operation time of the unit saving process ([1] + [2] + [3]) is apparently The time of T1 will suffice. This means that the operation time of the unit saving process is shortened to 1/24 as the best value.
同様に、回復処理の動作[4]におけるNVMチップ23からBM220への回復データの転送も、レーン21のそれぞれに独立に設けられたチップ接続バス24を介して行われるので、図7(a)(図6も参照)に示すように、各レーン21における回復データの転送(図中の転送順序(1),(10),・・・)は、それぞれ同時に、並行して行われることが可能である。
Similarly, the transfer of the recovery data from the
従って、実質的には、動作[4]は、その動作時間を本来の1/8まで短縮することができる。ちなみに、図6および図7(a)に括弧付の数字で示した転送順序で回復処理が行われ、動作[4],[5]の動作時間を、それぞれT4,T5としたときには、単位回復処理([4]+[5])の動作時間は、見かけ上、T4/8+T5の時間で済むことになる。 Therefore, the operation [4] can substantially reduce the operation time to the original 1/8. Incidentally, when recovery processing is performed in the transfer order indicated by the numbers in parentheses in FIGS. 6 and 7A, and the operation times of operations [4] and [5] are T4 and T5, respectively, unit recovery is performed. The operation time of the process ([4] + [5]) is apparently T4 / 8 + T5.
以上の通り、本実施形態では、平準化管理情報の退避・回復処理の所要時間が大きく短縮される(最良値で1/24または1/8に短縮)ことになる。 As described above, in the present embodiment, the time required for the leveling management information saving / restoring process is greatly reduced (the best value is reduced to 1/24 or 1/8).
続いて、図8〜図12を参照して、NVMチップ23に故障チップ、不良ブロックまたはページ書き込みエラーが存在または生じる場合について、平準化管理情報記憶部13に記憶されている平準化管理情報をNVMチップ23に退避または回復する手順について説明する。図8は、不良ブロック情報記憶部としての不良ブロック情報テーブル141および故障チップ情報記憶部としての故障チップ情報テーブル142の構成の例を示した図である。
Subsequently, with reference to FIG. 8 to FIG. 12, the leveling management information stored in the leveling management
図8(a)の不良ブロック情報テーブル141は、24個のNVMチップ23のそれぞれについて、平準化管理情報の退避領域として用いられるブロック231の「良」または「不良」の状態情報を記憶するテーブルである。不良ブロック情報テーブル141は、平準化管理情報退避・回復処理部14が平準化管理情報をNVMチップ23に退避する際に、各NVMチップ23の退避領域として用いられるブロック231を消去したとき、その都度、その消去結果に基づき作成される。すなわち、平準化管理情報退避・回復処理部14は、ブロック231を消去しても、そのブロック231に含まれるページ232のデータの少なくとも一部が消去されなかった場合には、そのブロックを「不良」と判定する。そして、不良ブロック情報テーブル141における当該のNVMチップ23中の不良と判定されたブロックの状態情報に“1”をセットする。
The defective block information table 141 in FIG. 8A stores “good” or “bad” state information of the
なお、不良ブロック情報テーブル141において、“1”は、当該ブロックが「不良」であることを、また、“0”は、当該ブロックが「良」であることを表す。図8(a)の例では、24個のNVMチップ23のそれぞれに、退避領域のブロック231が14ブロック設けられ、NVM(#1)のブロック(#2)、および、NVM(#2)のブロック(#1)を「不良」であるとしている。
In the bad block information table 141, “1” indicates that the block is “defective”, and “0” indicates that the block is “good”. In the example of FIG. 8A, each of the 24
故障チップ情報テーブル142は、24個のNVMチップ23のそれぞれについて、そのNVMチップ23の「非故障」または「故障」の状態情報を記憶するテーブルである。平準化管理情報退避・回復処理部14は、平準化管理情報の退避処理において、ページ書き込みエラーが多発したNVMチップ23を故障チップと判定し、故障チップ情報テーブル142における当該NVMチップ23の状態情報に“1”をセットする。
The failure chip information table 142 is a table for storing status information of “non-failure” or “failure” of each
なお、故障チップ情報テーブル142において、“1”は、当該NVMチップ23が故障チップであることを、“0”は、当該ブロックが非故障チップであることを表す。図8(b)の例では、NVMチップ23の数を24とし、NVM(#2)が故障チップであるとしている。
In the failed chip information table 142, “1” indicates that the
図9および図10は、平準化管理情報の退避処理中にページ書き込みエラーが生じる場合の退避データの転送手順の例を示した図であり、図9は、その前半部分の転送手順、図10は、後半部分の転送手順を示している。なお、図9および図10において、矢線は、退避データの転送方向を示し、矢線の傍の括弧付の数字は、その転送が行われるそれぞれの図の中での順序を表す。 FIG. 9 and FIG. 10 are diagrams showing an example of the transfer procedure of the save data when a page write error occurs during the saving process of the leveling management information. FIG. 9 shows the transfer procedure of the first half, FIG. Shows the transfer procedure in the latter half. 9 and 10, the arrow line indicates the transfer direction of the saved data, and the numbers in parentheses beside the arrow line indicate the order in each figure in which the transfer is performed.
図9の例では、転送順序(16)に×印が付されているが、この×印は、NVM(#7)が、BM(#7)から転送された1ページ分の退避データを所定のページにプログラムした(書き込んだ)とき、ページ書き込みエラーが発生したことを表している。 In the example of FIG. 9, the transfer order (16) is marked with an x, but this x indicates that the NVM (# 7) stores the saved data for one page transferred from the BM (# 7). When a page is programmed (written), a page write error has occurred.
ページ書き込みエラーの有無は、NVMチップ23の当該ページへのプログラム(書き込み)が終了したときに判定され、その判定結果であるページ書き込みエラーの有無情報は、NVMチップ23からバッファ記憶制御部22を介して平準化管理情報退避・回復処理部14へ通知される。
The presence / absence of a page write error is determined when the program (write) to the page of the
ところで、図7(a)に示した退避処理のタイムチャートから分かるように、転送順序(16)に係る退避データのプログラムが終了するのは、NVM(#7)へ次の退避データの転送が開始される少し前である(図10の転送順序(62)の頃)。従って、平準化管理情報退避・回復処理部14は、転送順序(62)の転送が行われている頃に、前回NVM(#7)へ転送した退避データの書き込みエラーの有無を知ることになる。
By the way, as can be seen from the time chart of the save process shown in FIG. 7A, the save data program related to the transfer order (16) is completed when the next save data is transferred to the NVM (# 7). It is a little before the start (around the transfer order (62) in FIG. 10). Therefore, the leveling management information save / restore processing
そこで、平準化管理情報退避・回復処理部14は、転送順序(63)の転送を開始するとき、NVM(#7)から通知されたページ書き込みエラーの有無情報に基づき、前回転送した退避データがNVM(#7)へ正常に書き込まれたか否かを判定する。そして、ページ書き込みエラーがあった場合、つまり、退避データがNVM(#7)へ正常に書き込まれていないと判定された場合には、平準化管理情報退避・回復処理部14は、前回転送した退避データを、再度、BM(#7)を介して、NVM(#7)へ転送する(転送順序(63),(64))。すなわち、転送順序(63)および(64)の転送では、転送順序(15)および(16)での転送がリトライされる。
Therefore, when the leveling management information save / restore processing
なお、このリトライに際しては、NVM(#7)における退避先のページアドレスは、1つインクリメントされる。すなわち、本実施形態では、ページ書き込みエラーが生じたページ232への退避データの再書き込み(リトライ)はしないものとする。従って、ページ書き込みエラーが生じたBM(#7)では、リトライ1回ごとに、BM(#7)における退避に必要なページ数は1つずつ増加していく。
In this retry, the save destination page address in NVM (# 7) is incremented by one. In other words, in the present embodiment, it is assumed that the saved data is not rewritten (retryed) to the
また、同じNVMチップ23で所定回数以上のページ書き込みエラーが生じた場合には、そのNVMチップ23を故障チップと判定し、故障チップ情報テーブル142中の不良と判定されたNVMチップ23の状態情報に“1”をセットする。
Further, when a page write error occurs more than a predetermined number of times in the
次に、平準化管理情報退避・回復処理部14は、転送順序(63)および(64)における転送により、転送順序(15)および(16)で失敗した転送のリトライをすると、続く転送順序(65)および(66)では、転送順序(63)および(64)のときに転送することになっていた退避データの転送を行う(図10参照)。その後の転送順序(67)以降の転送は、ページ書き込みエラーが生じない場合の通常の退避処理の転送手順に戻る。
Next, when the leveling management information save / restore processing
図11は、故障チップがある場合の退避データの転送手順のうち、後半部分の転送手順の例を示した図である。故障チップがある場合の退避データの転送手順の前半部分は、故障チップがない場合の退避データの転送手順(例えば、図4に示した手順)とは、故障チップへの退避データの転送が行われないことを除けば、同じである。 FIG. 11 is a diagram illustrating an example of a transfer procedure in the latter half of the save data transfer procedure when there is a defective chip. The first half of the save data transfer procedure when there is a faulty chip is the save data transfer procedure when there is no fault chip (for example, the procedure shown in FIG. 4). It is the same except that it is not broken.
例えば、図11に示すようにNVM(#2)が故障チップであった場合には、図4における転送手順でいえば、NVM(#2)への退避データの転送に係る転送順序(5)および(6)の退避データの転送は省略される。 For example, when the NVM (# 2) is a failed chip as shown in FIG. 11, the transfer sequence (5) related to the transfer of the saved data to the NVM (# 2) in the transfer procedure in FIG. And the transfer of saved data in (6) is omitted.
すなわち、平準化管理情報退避・回復処理部14は、前半部分の退避処理では、故障チップがあった場合でも、故障チップへの退避データの転送を省略することだけを除き、図4に示した転送手順と同じ転送手順に従って、WM130に記憶されている平準化管理情報を一通り終りまでNVMチップ23へ退避する。その結果、故障チップへ退避することになっていた退避データを除き、退避データはすべて故障チップ以外のNVMチップ23へ退避されることになる。
In other words, the leveling management information save / restore processing
そこで、平準化管理情報退避・回復処理部14は、後半部分の退避処理として、故障チップへ退避することになっていたため退避されなかった退避データを、図11に示す転送手順に従って、故障チップ以外のNVMチップ23へ分散して退避する。
Therefore, the leveling management information save / restore processing
図11に示した退避データの転送手順は、次の2点を除き、故障チップが存在しない場合の図4の転送手順と同じである。
(1)WM130からは、故障チップへ退避することになっていた平準化管理情報のみを抽出して転送する(ただし、図4には表されていない)。
(2)故障チップへの退避は行わない。
従って、図11だけを図4と比較すると、故障チップであるNVM(#2)への転送が行われないことを除き、全く同じである。そこで、次に、図12を用いて、前記(1),(2)の相違を補足説明する。
The save data transfer procedure shown in FIG. 11 is the same as the transfer procedure shown in FIG. 4 when no defective chip exists except for the following two points.
(1) From the
(2) Do not save to the failed chip.
Therefore, when only FIG. 11 is compared with FIG. 4, it is exactly the same except that the transfer to the NVM (# 2) which is the failed chip is not performed. Then, the difference between the above (1) and (2) will be supplementarily explained with reference to FIG.
図12は、故障チップがある場合の退避データの転送手順において、前半部分の退避処理で退避されなかった平準化管理情報が後半部分の退避処理で各NVMチップ23に退避される様子を示した図である。図12では、WM130は、1ページ(4kB)分のデータで区分されて示されているが、そのうち、前半部分の退避処理で退避されなかったデータ部分が太線枠で示されている。この太線枠で示されたデータ部分は、故障チップであるNVM(#2)へ退避されることになっていた平準化管理情報に相当する。
FIG. 12 shows how the leveling management information that was not saved in the first half of the saving process is saved to each
NVM(#2)へ退避されることになっていた太線枠部分の平準化管理情報は、NVM(#2)以外のNVMチップ23の予備退避領域(図3参照)に退避される。すなわち、WM130に記憶されていたデータのうち、NVM(#2)のページ(#0)に退避されることになっていたデータは、NVM(#0)のページ(#0)に退避され、NVM(#2)のページ(#1)に退避されることになっていたデータは、NVM(#1)のページ(#0)に退避され、NVM(#2)のページ(#2)に退避されることになっていたデータは、NVM(#3)のページ(#0)に退避され、以下、同様に、WM130からは、NVM(#2)へ退避されることになっていたデータが順に1ページ分ずつ読み出され、NVM(#2)以外のNVMチップ23へ順次退避される。
The leveling management information of the thick line frame portion that was to be saved to the NVM (# 2) is saved to the spare saving area (see FIG. 3) of the
なお、図12では、矢線の始点および終点により、退避元データおよび退避先データを表し、さらに、矢線の始点側に記載されている括弧付番号は、WM130におけるNVM(#2)へ退避されることになっていたデータのページアドレスであることを表し、矢線の終点側に記載されている括弧付番号は、退避先のNVMチップ23のチップ番号であることを表している。
In FIG. 12, the save source data and save destination data are represented by the start point and end point of the arrow line, and the parenthesized numbers described on the start point side of the arrow line are saved to the NVM (# 2) in the
また、図12では、退避先のNVMチップ23の退避領域の先頭のページアドレスは、(#512)となっているが、図9および図10で説明したページ書き込みエラーによる退避のリトライが行われたときには、その先頭のページアドレスは、リトライ回数に応じて、512より後のページとなる。
In FIG. 12, the top page address of the save area of the save
図13は、不良ブロックが存在するNVMチップ23におけるページアドレスの付し方を説明する図である。図2を用いて説明したように、NVMチップ23は複数のブロック231によって構成され、それぞれのブロック231は、複数のページ232によって構成される。ページ232は、NVMチップ23におけるデータ書き込みおよび読み出しの単位であるから、各ページにはアドレスが付される。
FIG. 13 is a diagram for explaining how to assign a page address in the
NVMチップ23におけるページアドレスは、そのNVMチップ23に不良ブロックがない場合には、図13(a)に示すように、そのNVMチップ23に含まれるすべてのブロック231を通して、その中に含まれるページ232に対して通し番号が付され、その通し番号をページアドレスとする。一方、不良ブロックがある場合には、図13(b)に示すように、不良ブロックを除外したすべてのブロック231を通して、その中に含まれるページ232に対して通し番号が付され、その通し番号をページアドレスとする。
When there is no defective block in the
図13(b)の例では、×印が付されたブロック(#1)を不良ブロックとして、ブロック(#1)を除くブロック231に含まれるページ232に対して通し番号が付され、その通し番号がページアドレスとされている。従って、不良のブロック(#1)に含まれるページ232に対しては、ページアドレスは付されない。
In the example of FIG. 13B, a block (# 1) marked with a cross is a bad block, and a serial number is assigned to the
不良ブロックが存在するNVMチップ23に対して、このようなページアドレスの付し方をした場合には、その分だけ、NVMチップ23における実質的な予備退避領域は、減少するが、図9〜図12で説明した退避処理中にページ書き込みエラーが生じる場合の退避データの転送手順や、故障チップがある場合の退避データの転送手順は、不良ブロックの有無の考慮せずにそのまま適用することができる。
When such a page address is assigned to the
なお、不良ブロックが存在する場合のNVMチップ23におけるページアドレスの管理は、平準化管理情報退避・回復処理部14が不良ブロック情報テーブル141に基づき行う。
The page address management in the
図14は、平準化管理情報退避・回復処理部14およびバッファ記憶制御部22が行う平準化管理情報の退避処理の処理フローの例を示した図である。
FIG. 14 is a diagram illustrating an example of a processing flow of the leveling management information saving process performed by the leveling management information saving / restoring
図14に示すように、平準化管理情報退避・回復処理部14は、まず、退避データ先頭アドレスを表すWMAを初期化(ゼロクリア)する(ステップS11)。ここで、WMAは、退避対象の1ページ分のデータがWM130に格納されているときの先頭データのアドレスである。次に、平準化管理情報退避・回復処理部14は、CAを、NVMチップ23を識別するチップ番号としたとき、すべてのCA(CA=0,…,23)に対し、PA(CA)=0とする(ステップS12)。ここで、PA(CA)は、CAで指定されるNVMチップ23におけるページアドレスを表す。
As shown in FIG. 14, the leveling management information save / restore processing
次に、平準化管理情報退避・回復処理部14は、CA=0,CAE=“Null”とする(ステップS13)。すなわち、退避データの転送先となるNVMチップ23のチップ番号CAを初期化し、さらに、ページ書き込みエラーが生じたため、退避処理の処理遅れが生じたNVMチップ23のチップ番号であるCAEを初期化する。なお、“Null”は、処理遅れのNVMチップ23がないことを表している。
Next, the leveling management information save / restore processing
次に、平準化管理情報退避・回復処理部14は、BM(CA)が退避データの転送を受付可能であるか否かを判定する(ステップS14)。ここで、BM(CA)は、CAで指定されるNVMチップ23が接続されているBM220であることを意味する。ここで、BM(CA)が、前回の退避データをNVMチップ23に転送中であれば、新たな退避データの転送を受け付けることができないので、その転送が終わるまで待つ(ステップS14でNo)。
Next, the leveling management information save / restore processing
一方、BM(CA)が転送受付可能な場合には(ステップS14でYes)、平準化管理情報退避・回復処理部14は、さらに、当該CAで指定されるNVMチップ23への前回退避時にページ書き込みエラーがあったか否かを判定する(ステップS15)。この判定で、前回退避時にページ書き込みエラーがなかった場合には(ステップS15でNo)、WM130から先頭データのアドレスがWMAで指定される1ページ分の退避データWM(WMA)を読み出し、その読み出した1ページ分の退避データWM(WMA)をBM(CA)へ転送する(ステップS16)。
On the other hand, if the BM (CA) can accept the transfer (Yes in step S14), the leveling management information save / restore processing
その1ページ分の退避データの転送を受けたBM(CA)を有するバッファ記憶制御部22は、その退避データをBM(CA)からNVM(CA,PA(CA))へ転送する(ステップS17)。なお、NVM(CA,PA(CA))は、チップ番号CAで指定されるNVMチップ23のページアドレスPA(CA)の記憶領域であることを表す。退避テータの転送を受けたNVMチップ23であるNVM(CA)は、その退避データをNVM(CA,PA(CA))の領域に書き込む(プログラムする)。
The buffer
次に、平準化管理情報退避・回復処理部14は、WM130のアドレスWMAを4098(4kB分)インクリメントするとともに(ステップS18)、NVMチップ23のチップ番号CAを1つインクリメントする(ステップS19)。続いて、平準化管理情報退避・回復処理部14は、そのチップ番号CAが8,16,24のいずれかであるか否かを判定し(ステップS20)、チップ番号CAが、8,16,24のいずれでもなかった場合には(ステップS20でNo)、さらに、チップ番号CAが24であるか否かを判定する(ステップS21)。
Next, the leveling management information save / restore processing
ステップS21の判定で、NVMチップ23のチップ番号CAが24でなかった場合には(ステップS21でNo)、平準化管理情報退避・回復処理部14は、処理の実行をステップS14へ戻す。また、チップ番号CAが24であった場合には(ステップS21でYes)、すべてのCA(CA=0,…,23)に対して、PA(CA)を1つインクリメントし(ステップS22)、さらに、WMAがその上限値WMAmaxを越えたか否かを判定する(ステップS23)。なお、本実施形態の場合、図5から分かるように、WMAmaxは、512×24×4,096−1=50,331,647である。
If it is determined in step S21 that the chip number CA of the
ステップS23の判定で、WMAが上限値WMAmaxを越えていない場合には(ステップS23でNo)、平準化管理情報退避・回復処理部14は、処理の実行をステップS13に戻す。また、WMAが上限値WMAmaxを越えた場合には(ステップS23でYes)、退避すべきデータがなくなったことを意味するので、図14の退避処理を終了する。以上の処理により、ページ書き込みエラーが生じなかった場合についての退避処理が行われたことになる。
If it is determined in step S23 that the WMA does not exceed the upper limit value WMAmax (No in step S23), the leveling management information save / restore processing
一方、ステップS15の判定で、前回退避時にページ書き込みエラーがあった場合には(ステップS15でYes)、平準化管理情報退避・回復処理部14は、以下の手順に従って、前回の退避データと同じデータを、再度、当該CAで指定されるNVMチップ23への退避を行う。
On the other hand, if it is determined in step S15 that there is a page write error at the time of previous save (Yes in step S15), the leveling management information save / restore processing
すなわち、平準化管理情報退避・回復処理部14は、WMAを前回の退避データの先頭アドレスに戻すために、WMA=WMA−24×4096を計算し(ステップS31)、WM130からWMAで指定される1ページ分の退避データWM(WMA)を読み出し、その読み出した1ページ分の退避データWM(WMA)をBM(CA)へ転送する(ステップS32)。そして、その1ページ分の退避データの転送を受けたBM(CA)を有するバッファ記憶制御部22は、その退避データをBM(CA)からNVM(CA,PA(CA))へ転送する(ステップS33)。その後、退避テータの転送を受けたNVMチップ23であるNVM(CA)は、その退避データをNVM(CA,PA(CA))の領域に書き込む(プログラムする)。
That is, the leveling management information save / restore processing
次に、平準化管理情報退避・回復処理部14は、本来のWMAに戻すために、WMA=WMA+24×4096を計算し(ステップS34)、当該CAで指定されるNVMチップ23におけるページアドレスPA(CA)を1つインクリメントし(ステップS35)、そのときのCAE=CA,WMAE=WMAとして(ステップS36)、そのときのCAおよびWMAをCAEおよびWMAEに記憶しておく。
Next, the leveling management information save / restore processing
以上、ステップS31〜ステップS36の処理は、図10における転送順序(63)および(64)の転送処理に相当する。従って、ステップS31〜ステップS36の処理により、前回の退避処理でページ書き込みエラーが生じた場合について、前回退避することになっていたWM130のデータの退避がリトライされたことになる。そこで、平準化管理情報退避・回復処理部14は、ステップS36の次には、処理の実行をステップS18へ移行させる。
The processes in steps S31 to S36 correspond to the transfer processes in the transfer order (63) and (64) in FIG. Therefore, in the case where a page writing error has occurred in the previous saving process by the processing in steps S31 to S36, the saving of the data of the
また、ステップS20の判定で、チップ番号CAが、8,16,24のいずれかであった場合には(ステップS20でYes)、平準化管理情報退避・回復処理部14は、さらに、CAEが“Null”であるか否かを判定し(ステップS41)、CAEが“Null”であった場合には(ステップS41でYes)、チップ番号CAが0〜7,8〜15または16〜23のいずれのときにも、ページ書き込みエラーのリトライ処理がされていないことを意味するので、何もせずに、処理の実行を元のステップS20の次のステップS21へ戻す。
If it is determined in step S20 that the chip number CA is 8, 16, or 24 (Yes in step S20), the leveling management information saving /
一方、ステップS41の判定で、CAEが“Null”でなかった場合には(ステップS41でNo)、チップ番号CAが0〜7,8〜15または16〜23のいずれかのときに、ページ書き込みエラーのリトライ処理がされたことを意味するので、平準化管理情報退避・回復処理部14は、ページ書き込みエラーのリトライのために行われなかった退避データの退避処理を行う。その場合、退避の対象となるNVMチップ23のチップ番号は、CAEに記憶され、WM130の退避データ先頭アドレスは、WMAEに記憶されている。
On the other hand, if the CAE is not “Null” in the determination in step S41 (No in step S41), the page writing is performed when the chip number CA is any one of 0 to 7, 8 to 15, or 16 to 23. Since this means that an error retry process has been performed, the leveling management information save / restore processing
そこで、平準化管理情報退避・回復処理部14は、WM130からWMAEで指定される1ページ分の退避データWM(WMA)を読み出し、その読み出した1ページ分の退避データWM(WMAE)をBM(CAE)へ転送する(ステップS42)。そして、その1ページ分の退避データの転送を受けたBM(CAE)を有するバッファ記憶制御部22は、その退避データをBM(CAE)からNVM(CAE,PA(CAE))へ転送する(ステップS43)。その後、退避テータの転送を受けたNVMチップ23であるNVM(CAE)は、その退避データをNVM(CAE,PA(CAE))の領域に書き込む(プログラムする)。
Therefore, the leveling management information save / restore processing
これらステップS42、ステップS43の処理は、図10における転送順序(65),(66)の転送処理に相当する。平準化管理情報退避・回復処理部14は、続いて、CAEを“Null”に戻し(ステップS44)、その処理の実行をステップS21へ移行させる。
The processes in steps S42 and S43 correspond to the transfer processes in the transfer order (65) and (66) in FIG. Subsequently, the leveling management information saving /
以上で平準化管理情報の退避処理の処理フローの説明を終える。なお、以上に示した処理フローでは、図9および図10で説明したページ書き込みエラー時のリトライ処理については考慮されているが、図11および図12で説明したチップ故障がある場合については考慮されていない。チップ故障があることを考慮するためには、この処理フローを一部修正する必要があるが、ここでは、その説明を省略する。 This is the end of the description of the processing flow of the leveling management information saving process. In the processing flow shown above, the retry processing at the time of page write error described in FIGS. 9 and 10 is considered, but the case where there is a chip failure described in FIGS. 11 and 12 is considered. Not. In order to consider that there is a chip failure, it is necessary to partially correct this processing flow, but the description thereof is omitted here.
続いて、故障チップ、不良ブロックまたはページ書き込みエラーがあり得ることを考慮してNVMチップ23に退避した平準化管理情報を、NVMチップ23からWM130へ回復する処理における回復データの転送手順について説明する。その回復データの転送手順は、以下に説明する点を除き、図6に示した回復データの転送手順と同じである。
Next, a recovery data transfer procedure in the process of recovering the leveling management information saved in the
図6に示した回復データの転送手順の場合には、故障チップ、不良ブロックまたはページ書き込みエラーのいずれもあり得ないとしているので、退避された平準化管理情報は、NVMチップ23のページ(#0)からページ(#511)までの基本退避領域(図3参照)に記憶される。一方、故障チップ、不良ブロックまたはページ書き込みエラーがある場合には、平準化管理情報は、基本退避領域だけでなく、ページ(#512)以降の予備退避領域に広がって記憶される。 In the case of the recovery data transfer procedure shown in FIG. 6, it is assumed that there is no failure chip, bad block, or page write error, so the saved leveling management information is stored in the page (# of the NVM chip 23). 0) to the page (# 511) are stored in the basic save area (see FIG. 3). On the other hand, when there is a defective chip, a defective block, or a page write error, the leveling management information is stored not only in the basic save area but also in the spare save area after the page (# 512).
平準化管理情報退避・回復処理部14は、平準化管理情報の回復処理を、電源オン・オフ検知部15によって電源供給の開始が検知されたときに開始するため、その回復処理の開始時点では、予備退避領域のうち、どのページアドレスまで平準化管理情報が退避されているかを知ることができない。そこで、本実施形態では、その退避データの最終ページアドレスなどからなる管理情報をNVMチップ23とは別体の不揮発性メモリに記憶しておくことをせずに、平準化管理情報の回復処理においては、基本退避領域の最初のページ(#0)から予備退避領域の最後のページ(#895)までのすべてのデータを読み出すようにした。
The leveling management information save /
すなわち、平準化管理情報退避・回復処理部14がNVMチップ23の退避データ記憶領域からすべてのデータを読み出すとは、図6の転送手順に従って、NVMチップ23から回復データをWM130に転送することに他ならない。ただし、NVMチップ23からの読み出しの最終ページアドレスは、(#511)ではなく、(#895)である。
That is, when the leveling management information save / restore processing
この場合、不良ブロックのデータや、消去されたままで、書き込みが行われなかったページ232のデータなど、無意味なデータが多数読み出されることになる。しかしながら、有意な平準化管理情報の退避データには、セグメント234ごとの退避データに、CRC符号やリード・ソロモン符号などの検査符号235が付されている(図2(c)参照)ので、無意味なデータは、その検査符号235を用いた誤り検査によって検出することができので、廃棄することができる。
In this case, a lot of meaningless data such as defective block data and data of the
また、退避処理の途中から故障チップになったようなNVMチップ23には、その途中のページアドレスまでには、誤りのない平準化管理情報の退避データが書き込まれている可能性がある。このようなNVMチップ23については、その後、そのNVMチップ23に退避される予定であった(一部は退避されているが)退避データは、再度、図11に示した手順によって、故障チップでない他のNVMチップ23に分散して退避されている。従って、このような場合には、同じデータが重複してWM130に回復されることになるが、重複回復は問題がない。同様に、退避処理において、ページ書き込みエラーが生じていた場合にも、場合によっては、重複回復がされるが、これも問題がない。
Further, there is a possibility that the leveling management information save data without error is written to the page address in the middle of the
また、故障チップやページ書き込みエラーが生じたページ232では、誤って書き込まれたデータが、たまたま、正しく読み出され、その誤ったデータがWM130へ回復されることがないとはいえない。しかしながら、図9〜図11で説明した退避処理の転送手順によれば、故障チップの退避データや書き込みエラーが生じたページ232の退避データについては、その後で、後方のページ232に必ず再退避される。従って、本実施形態の回復処理では、その再退避されたデータが後で読み出され、WM130に回復されることになる。再退避されたデータは、誤りなく退避されたデータであるので、その結果、WM130には誤りのないデータが回復されることなる。
In addition, in the
さらに、本実施形態では、WM130へ退避された平準化管理情報がすべて回復されると、平準化管理情報退避・回復処理部14は、チェックサム(図3参照)が正しいか否かを判定する。チェックサムが正しければ、平準化管理情報の回復処理は正常に行われたことになる。チェックサムが正しくない場合は、平準化管理情報の回復が失敗したことを意味するので、別途、平準化管理情報回復失敗時の処理を実行する。
Furthermore, in this embodiment, when all the leveling management information saved in the
なお、前記したように、本実施形態では、WM130に回復データが書き込まれるときのアドレスとしては、ページ232のヘッダ233に含まれる退避データ先頭アドレスが用いられる。従って、この退避データ先頭アドレスが誤って退避されたり回復されたりすると、WM130に回復された平準化管理情報は、信頼できないものとなる。そこで、退避データ先頭アドレスは、例えば、二重化したり、複数ビット訂正可能な誤り符号を付したりして、高信頼化しておくとよい。
As described above, in the present embodiment, the saved data start address included in the
以上、本実施形態によれば、平準化管理情報記憶部13のWM130は、レーン接続バス30を介して複数のレーン21それぞれに含まれるバッファ記憶制御部22のBM220に接続され、また、それぞれのレーン21には、BM220とNVMチップ23とを接続するチップ接続バス24が設けられている。従って、平準化管理情報の退避処理においては、それぞれのレーンにおけるBM220からNVMチップ23への退避データの転送を独立に並行して行うことができるので、退避時間の短縮を図ることができる。
As described above, according to the present embodiment, the
また、NVMチップ23へ退避する1ページ分の平準化管理情報を含む退避データの中に、その1ページ分の平準化管理情報がWM130に記憶されていたときの先頭アドレスが含まれているので、その結果として、回復処理における回復データの転送手順が簡単化されている。
In addition, since the saved data including the leveling management information for one page saved to the
1 SSD装置
2 ホスト装置
3 ホストバス
10 不揮発データ記憶制御部
11 データ書き込み・読み出し制御部
12 平準化管理部
13 平準化管理情報記憶部
14 平準化管理情報退避・回復処理部
15 電源オン・オフ検知部
20 不揮発データ記憶部
21 レーン
22 バッファ記憶制御部
23 NVMチップ(不揮発性メモリチップ)
24 チップ接続バス
30 レーン接続バス
130 WM(ウェアレベリングメモリ)
141 不良ブロック情報テーブル(不良ブロック情報記憶部)
142 故障チップ情報テーブル(故障チップ情報記憶部)
220 BM(バッファメモリ)
231 ブロック
232 ページ
233 ヘッダ
234 セグメント
235 検査符号
DESCRIPTION OF
24
141 Defective block information table (defective block information storage unit)
142 Failure chip information table (failure chip information storage unit)
220 BM (buffer memory)
231
Claims (6)
前記不揮発性メモリチップにおける書き込みデータ消去の単位領域であるブロックのデータ消去回数を平準化するための平準化管理情報を記憶する平準化管理情報記憶部と、
電源供給のオンおよびオフを検知する電源供給オン・オフ検知部と、
前記電源供給オン・オフ検知部により電源供給のオフが検知されたとき、前記平準化管理情報記憶部に記憶されている平準化管理情報を前記不揮発データ記憶部に退避し、前記電源供給オン・オフ検知部により電源供給のオンが検知されたとき、前記不揮発データ記憶部に退避されている平準化管理情報を前記平準化管理情報記憶部に回復させる平準化管理情報退避・回復処理部と、
を備え、
前記平準化管理情報退避・回復処理部が前記平準化管理情報記憶部から読み出した退避データを前記複数のバッファ記憶制御部へ順次転送し、前記退避データの転送を受けた前記複数のバッファ記憶制御部のそれぞれが、互いに独立に並行して前記退避データを前記不揮発性メモリチップに転送して書き込むように構成されたソリッド・ステート・ドライブ装置であって、
前記平準化管理情報退避・回復処理部は、
前記平準化管理情報を前記不揮発データ記憶部に退避する場合には、
前記平準化管理情報記憶部から前記平準化管理情報を順次所定のデータ長の退避データとして読み出し、
前記読み出した退避データの先頭データが前記平準化管理情報記憶部に記憶されていたときのアドレス情報を取得し、
前記退避データに前記取得したアドレス情報を付加した情報を、前記不揮発データデータ記憶部に書き込むこと
を特徴とするソリッド・ステート・ドライブ装置。 When the plurality of nonvolatile memory chips and the plurality of nonvolatile memory chips are divided into a plurality of lanes of a predetermined number, each lane is connected to the nonvolatile memory chip belonging to the lane, and the nonvolatile memory chip A buffer storage control unit for temporarily storing write or read data with respect to the non-volatile data storage unit,
A leveling management information storage unit for storing leveling management information for leveling the number of times data is erased in a block which is a unit area for erasing written data in the nonvolatile memory chip;
A power supply on / off detector that detects on / off of the power supply; and
When the power supply on / off detection unit detects that the power supply is off, the leveling management information stored in the leveling management information storage unit is saved in the nonvolatile data storage unit, and the power supply on / off A leveling management information saving / restoring processing unit that restores the leveling management information saved in the nonvolatile data storage unit to the leveling management information storage unit when turning off of the power supply is detected by the off detection unit;
With
The plurality of buffer storage controls that sequentially transfer the saved data read from the leveling management information storage unit by the leveling management information save / restore processing unit to the plurality of buffer storage control units , and receive the transfer of the saved data each section is a solid-state drive device configured to write by transferring the saved data in parallel independently of each other in the non-volatile memory chips,
The leveling management information save / restore processing unit
When saving the leveling management information in the nonvolatile data storage unit,
The leveling management information is sequentially read out as saved data having a predetermined data length from the leveling management information storage unit,
Obtaining address information when the read-out saved data start data is stored in the leveling management information storage unit,
A solid state drive device , wherein information obtained by adding the acquired address information to the saved data is written in the nonvolatile data data storage unit .
前記不揮発性メモリチップにおける書き込みデータ消去の単位領域であるブロックのデータ消去回数を平準化するための平準化管理情報を記憶する平準化管理情報記憶部と、
電源供給のオンおよびオフを検知する電源供給オン・オフ検知部と、
前記電源供給オン・オフ検知部により電源供給のオフが検知されたとき、前記平準化管理情報記憶部に記憶されている平準化管理情報を前記不揮発データ記憶部に退避し、前記電源供給オン・オフ検知部により電源供給のオンが検知されたとき、前記不揮発データ記憶部に退避されている平準化管理情報を前記平準化管理情報記憶部に回復させる平準化管理情報退避・回復処理部と、
を備え、
前記平準化管理情報退避・回復処理部が前記平準化管理情報記憶部から読み出した退避データを前記複数のバッファ記憶制御部へ順次転送し、前記退避データの転送を受けた前記複数のバッファ記憶制御部のそれぞれが、互いに独立に並行して前記退避データを前記不揮発性メモリチップに転送して書き込むように構成されたソリッド・ステート・ドライブ装置であって、
前記平準化管理情報退避・回復処理部は、
前記退避データを前記不揮発データ記憶部の所定のページに書き込んだ結果として、書き込みエラーが生じたときには、前記退避データと同じデータを、前記不揮発データ記憶部の前記所定のページの次のページに書き込むこと
を特徴とするソリッド・ステート・ドライブ装置。 When the plurality of nonvolatile memory chips and the plurality of nonvolatile memory chips are divided into a plurality of lanes of a predetermined number, each lane is connected to the nonvolatile memory chip belonging to the lane, and the nonvolatile memory chip A buffer storage control unit for temporarily storing write or read data with respect to the non-volatile data storage unit,
A leveling management information storage unit for storing leveling management information for leveling the number of times data is erased in a block which is a unit area for erasing written data in the nonvolatile memory chip;
A power supply on / off detector that detects on / off of the power supply; and
When the power supply on / off detection unit detects that the power supply is off, the leveling management information stored in the leveling management information storage unit is saved in the nonvolatile data storage unit, and the power supply on / off A leveling management information saving / restoring processing unit that restores the leveling management information saved in the nonvolatile data storage unit to the leveling management information storage unit when turning off of the power supply is detected by the off detection unit;
With
The plurality of buffer storage controls that sequentially transfer the saved data read from the leveling management information storage unit by the leveling management information save / restore processing unit to the plurality of buffer storage control units , and receive the transfer of the saved data each section is a solid-state drive device configured to write by transferring the saved data in parallel independently of each other in the non-volatile memory chips,
The leveling management information save / restore processing unit
When a write error occurs as a result of writing the saved data to a predetermined page of the nonvolatile data storage unit, the same data as the saved data is written to the next page of the predetermined page of the nonvolatile data storage unit Solid state drive device characterized by that .
前記不揮発性メモリチップにおける書き込みデータ消去の単位領域であるブロックのデータ消去回数を平準化するための平準化管理情報を記憶する平準化管理情報記憶部と、
電源供給のオンおよびオフを検知する電源供給オン・オフ検知部と、
前記電源供給オン・オフ検知部により電源供給のオフが検知されたとき、前記平準化管理情報記憶部に記憶されている平準化管理情報を前記不揮発データ記憶部に退避し、前記電源供給オン・オフ検知部により電源供給のオンが検知されたとき、前記不揮発データ記憶部に退避されている平準化管理情報を前記平準化管理情報記憶部に回復させる平準化管理情報退避・回復処理部と、
を備え、
前記平準化管理情報退避・回復処理部が前記平準化管理情報記憶部から読み出した退避データを前記複数のバッファ記憶制御部へ順次転送し、前記退避データの転送を受けた前記複数のバッファ記憶制御部のそれぞれが、互いに独立に並行して前記退避データを前記不揮発性メモリチップに転送して書き込むように構成されたソリッド・ステート・ドライブ装置であって、
前記平準化管理情報退避・回復処理部は、
前記不揮発データ記憶部を構成する前記不揮発性メモリチップの故障チップについての情報を記憶した故障チップ情報記憶部を備えており、
前記平準化管理情報を前記不揮発データ記憶部へ退避する場合には、前記故障チップ情報記憶部を参照して、前記不揮発データ記憶部の退避先の領域が前記故障チップに該当するか否かを判定し、前記故障チップに該当するときには、前記平準化管理情報の前記故障チップへの退避を省略し、
前記平準化管理情報の前記故障チップ以外の前記不揮発性メモリチップへの退避完了後に、前記平準化管理情報のうち前記故障チップへ退避することになっていた情報を、前記故障チップ以外の前記不揮発性メモリチップへ分散して退避すること
を特徴とするソリッド・ステート・ドライブ装置。 When the plurality of nonvolatile memory chips and the plurality of nonvolatile memory chips are divided into a plurality of lanes of a predetermined number, each lane is connected to the nonvolatile memory chip belonging to the lane, and the nonvolatile memory chip A buffer storage control unit for temporarily storing write or read data with respect to the non-volatile data storage unit,
A leveling management information storage unit for storing leveling management information for leveling the number of times data is erased in a block which is a unit area for erasing written data in the nonvolatile memory chip;
A power supply on / off detector that detects on / off of the power supply; and
When the power supply on / off detection unit detects that the power supply is off, the leveling management information stored in the leveling management information storage unit is saved in the nonvolatile data storage unit, and the power supply on / off A leveling management information saving / restoring processing unit that restores the leveling management information saved in the nonvolatile data storage unit to the leveling management information storage unit when turning off of the power supply is detected by the off detection unit;
With
The plurality of buffer storage controls that sequentially transfer the saved data read from the leveling management information storage unit by the leveling management information save / restore processing unit to the plurality of buffer storage control units , and receive the transfer of the saved data each section is a solid-state drive device configured to write by transferring the saved data in parallel independently of each other in the non-volatile memory chips,
The leveling management information save / restore processing unit
A failure chip information storage unit that stores information about a failure chip of the nonvolatile memory chip constituting the nonvolatile data storage unit;
When saving the leveling management information to the non-volatile data storage unit, referring to the failed chip information storage unit, it is determined whether the save destination area of the non-volatile data storage unit corresponds to the failed chip. Determining, when corresponding to the faulty chip, omit saving the leveling management information to the faulty chip,
After the leveling management information has been saved to the non-volatile memory chip other than the failed chip, the information that is to be saved to the failed chip in the leveling management information is changed to the non-volatile chip other than the failed chip. Solid-state drive device, characterized in that it is distributed and saved to a volatile memory chip .
前記不揮発性メモリチップにおける書き込みデータ消去の単位領域であるブロックのデータ消去回数を平準化するための平準化管理情報を記憶する平準化管理情報記憶部と、
電源供給のオンおよびオフを検知する電源供給オン・オフ検知部と、
前記電源供給オン・オフ検知部により電源供給のオフが検知されたとき、前記平準化管理情報記憶部に記憶されている平準化管理情報を前記不揮発データ記憶部に退避し、前記電源供給オン・オフ検知部により電源供給のオンが検知されたとき、前記不揮発データ記憶部に退避されている平準化管理情報を前記平準化管理情報記憶部に回復させる平準化管理情報退避・回復処理部と、
を備え、
前記平準化管理情報退避・回復処理部が前記平準化管理情報記憶部から読み出した退避データを前記複数のバッファ記憶制御部へ順次転送し、前記退避データの転送を受けた前記複数のバッファ記憶制御部のそれぞれが、互いに独立に並行して前記退避データを前記不揮発性メモリチップに転送して書き込むように構成されたソリッド・ステート・ドライブ装置における平準化管理情報の退避・回復方法であって、
前記平準化管理情報退避・回復処理部は、
前記平準化管理情報を前記不揮発データ記憶部に退避する場合には、
前記平準化管理情報記憶部から前記平準化管理情報を順次所定のデータ長の退避データとして読み出し、
前記読み出した退避データの先頭データが前記平準化管理情報記憶部に記憶されていたときのアドレス情報を取得し、
前記退避データに前記取得したアドレス情報を付加した情報を、前記不揮発データデータ記憶部に書き込むこと
を特徴とする平準化管理情報の退避・回復方法。 When the plurality of nonvolatile memory chips and the plurality of nonvolatile memory chips are divided into a plurality of lanes of a predetermined number, each lane is connected to the nonvolatile memory chip belonging to the lane, and the nonvolatile memory chip A buffer storage control unit for temporarily storing write or read data with respect to the non-volatile data storage unit,
A leveling management information storage unit for storing leveling management information for leveling the number of times data is erased in a block which is a unit area for erasing written data in the nonvolatile memory chip;
A power supply on / off detector that detects on / off of the power supply; and
When the power supply on / off detection unit detects that the power supply is off, the leveling management information stored in the leveling management information storage unit is saved in the nonvolatile data storage unit, and the power supply on / off A leveling management information saving / restoring processing unit that restores the leveling management information saved in the nonvolatile data storage unit to the leveling management information storage unit when turning off of the power supply is detected by the off detection unit;
With
The plurality of buffer storage controls that sequentially transfer the saved data read from the leveling management information storage unit by the leveling management information save / restore processing unit to the plurality of buffer storage control units , and receive the transfer of the saved data each section is a configured save and restore process of leveling the management information in the solid state drive apparatus to write by transferring the saved data in parallel independently of each other in the non-volatile memory chips,
The leveling management information save / restore processing unit
When saving the leveling management information in the nonvolatile data storage unit,
The leveling management information is sequentially read out as saved data having a predetermined data length from the leveling management information storage unit,
Obtaining address information when the read-out saved data start data is stored in the leveling management information storage unit,
A leveling management information saving / restoring method , wherein information obtained by adding the acquired address information to the saving data is written to the nonvolatile data data storage unit .
前記不揮発性メモリチップにおける書き込みデータ消去の単位領域であるブロックのデータ消去回数を平準化するための平準化管理情報を記憶する平準化管理情報記憶部と、
電源供給のオンおよびオフを検知する電源供給オン・オフ検知部と、
前記電源供給オン・オフ検知部により電源供給のオフが検知されたとき、前記平準化管理情報記憶部に記憶されている平準化管理情報を前記不揮発データ記憶部に退避し、前記電源供給オン・オフ検知部により電源供給のオンが検知されたとき、前記不揮発データ記憶部に退避されている平準化管理情報を前記平準化管理情報記憶部に回復させる平準化管理情報退避・回復処理部と、
を備え、
前記平準化管理情報退避・回復処理部が前記平準化管理情報記憶部から読み出した退避データを前記複数のバッファ記憶制御部へ順次転送し、前記退避データの転送を受けた前記複数のバッファ記憶制御部のそれぞれが、互いに独立に並行して前記退避データを前記不揮発性メモリチップに転送して書き込むように構成されたソリッド・ステート・ドライブ装置における平準化管理情報の退避・回復方法であって、
前記平準化管理情報退避・回復処理部は、
前記退避データを前記不揮発データ記憶部の所定のページに書き込んだ結果として、書き込みエラーが生じたときには、前記退避データと同じデータを、前記不揮発データ記憶部の前記所定のページの次のページに書き込むこと
を特徴とする平準化管理情報の退避・回復方法。 When the plurality of nonvolatile memory chips and the plurality of nonvolatile memory chips are divided into a plurality of lanes of a predetermined number, each lane is connected to the nonvolatile memory chip belonging to the lane, and the nonvolatile memory chip A buffer storage control unit for temporarily storing write or read data with respect to the non-volatile data storage unit,
A leveling management information storage unit for storing leveling management information for leveling the number of times data is erased in a block which is a unit area for erasing written data in the nonvolatile memory chip;
A power supply on / off detector that detects on / off of the power supply; and
When the power supply on / off detection unit detects that the power supply is off, the leveling management information stored in the leveling management information storage unit is saved in the nonvolatile data storage unit, and the power supply on / off A leveling management information saving / restoring processing unit that restores the leveling management information saved in the nonvolatile data storage unit to the leveling management information storage unit when turning off of the power supply is detected by the off detection unit;
With
The plurality of buffer storage controls that sequentially transfer the saved data read from the leveling management information storage unit by the leveling management information save / restore processing unit to the plurality of buffer storage control units , and receive the transfer of the saved data each section is a configured save and restore process of leveling the management information in the solid state drive apparatus to write by transferring the saved data in parallel independently of each other in the non-volatile memory chips,
The leveling management information save / restore processing unit
When a write error occurs as a result of writing the saved data to a predetermined page of the nonvolatile data storage unit, the same data as the saved data is written to the next page of the predetermined page of the nonvolatile data storage unit A method for saving and restoring leveling management information.
前記不揮発性メモリチップにおける書き込みデータ消去の単位領域であるブロックのデータ消去回数を平準化するための平準化管理情報を記憶する平準化管理情報記憶部と、
電源供給のオンおよびオフを検知する電源供給オン・オフ検知部と、
前記電源供給オン・オフ検知部により電源供給のオフが検知されたとき、前記平準化管理情報記憶部に記憶されている平準化管理情報を前記不揮発データ記憶部に退避し、前記電源供給オン・オフ検知部により電源供給のオンが検知されたとき、前記不揮発データ記憶部に退避されている平準化管理情報を前記平準化管理情報記憶部に回復させる平準化管理情報退避・回復処理部と、
を備え、
前記平準化管理情報退避・回復処理部が前記平準化管理情報記憶部から読み出した退避データを前記複数のバッファ記憶制御部へ順次転送し、前記退避データの転送を受けた前記複数のバッファ記憶制御部のそれぞれが、互いに独立に並行して前記退避データを前記不揮発性メモリチップに転送して書き込むように構成されたソリッド・ステート・ドライブ装置における平準化管理情報の退避・回復方法であって、
前記平準化管理情報退避・回復処理部は、
前記不揮発データ記憶部を構成する前記不揮発性メモリチップの故障チップについての情報を記憶した故障チップ情報記憶部を備え、
前記平準化管理情報を前記不揮発データ記憶部へ退避する場合には、前記故障チップ情報記憶部を参照して、前記不揮発データ記憶部の退避先の領域が前記故障チップに該当するか否かを判定し、前記故障チップに該当するときには、前記平準化管理情報の前記故障チップへの退避を省略し、
前記平準化管理情報の前記故障チップ以外の前記不揮発性メモリチップへの退避完了後に、前記平準化管理情報のうち前記故障チップへ退避することになっていた情報を、前記故障チップ以外の前記不揮発性メモリチップへ分散して退避すること
を特徴とする平準化管理情報の退避・回復方法。 When the plurality of nonvolatile memory chips and the plurality of nonvolatile memory chips are divided into a plurality of lanes of a predetermined number, each lane is connected to the nonvolatile memory chip belonging to the lane, and the nonvolatile memory chip A buffer storage control unit for temporarily storing write or read data with respect to the non-volatile data storage unit,
A leveling management information storage unit for storing leveling management information for leveling the number of times data is erased in a block which is a unit area for erasing written data in the nonvolatile memory chip;
A power supply on / off detector that detects on / off of the power supply; and
When the power supply on / off detection unit detects that the power supply is off, the leveling management information stored in the leveling management information storage unit is saved in the nonvolatile data storage unit, and the power supply on / off A leveling management information saving / restoring processing unit that restores the leveling management information saved in the nonvolatile data storage unit to the leveling management information storage unit when turning off of the power supply is detected by the off detection unit;
With
The plurality of buffer storage controls that sequentially transfer the saved data read from the leveling management information storage unit by the leveling management information save / restore processing unit to the plurality of buffer storage control units , and receive the transfer of the saved data each section is a configured save and restore process of leveling the management information in the solid state drive apparatus to write by transferring the saved data in parallel independently of each other in the non-volatile memory chips,
The leveling management information save / restore processing unit
A failure chip information storage unit that stores information about a failure chip of the nonvolatile memory chip constituting the nonvolatile data storage unit;
When saving the leveling management information to the non-volatile data storage unit, referring to the failed chip information storage unit, it is determined whether the save destination area of the non-volatile data storage unit corresponds to the failed chip. Determining, when corresponding to the faulty chip, omit saving the leveling management information to the faulty chip,
After the leveling management information has been saved to the non-volatile memory chip other than the failed chip, the information that is to be saved to the failed chip in the leveling management information is changed to the non-volatile chip other than the failed chip. A method for saving and restoring leveling management information, characterized in that the leveling management information is saved in a distributed manner in memory chips .
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009297123A JP5579431B2 (en) | 2009-12-28 | 2009-12-28 | Solid-state drive device and leveling management information save / restore method |
| PCT/JP2010/073670 WO2011081168A1 (en) | 2009-12-28 | 2010-12-28 | Solid state drive device and equalization management information save/restore method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009297123A JP5579431B2 (en) | 2009-12-28 | 2009-12-28 | Solid-state drive device and leveling management information save / restore method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2011138273A JP2011138273A (en) | 2011-07-14 |
| JP5579431B2 true JP5579431B2 (en) | 2014-08-27 |
Family
ID=44226572
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2009297123A Active JP5579431B2 (en) | 2009-12-28 | 2009-12-28 | Solid-state drive device and leveling management information save / restore method |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP5579431B2 (en) |
| WO (1) | WO2011081168A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12217781B2 (en) | 2022-06-23 | 2025-02-04 | Kioxia Corporation | Memory device and memory system |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9417803B2 (en) * | 2011-09-20 | 2016-08-16 | Apple Inc. | Adaptive mapping of logical addresses to memory devices in solid state drives |
| JP5803614B2 (en) * | 2011-11-29 | 2015-11-04 | ソニー株式会社 | Nonvolatile cache memory, processing method of nonvolatile cache memory, and computer system |
| JP2013134508A (en) * | 2011-12-23 | 2013-07-08 | Toshiba Corp | Programmable control device, method and program |
| KR101377408B1 (en) | 2012-02-21 | 2014-03-21 | 주식회사 안랩 | Apparatus and method for managing error areas |
| US9524800B2 (en) | 2012-09-26 | 2016-12-20 | International Business Machines Corporation | Performance evaluation of solid state memory device |
| JP7446963B2 (en) | 2020-09-23 | 2024-03-11 | キオクシア株式会社 | Memory system and memory system control method |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002109895A (en) * | 1996-02-29 | 2002-04-12 | Hitachi Ltd | Semiconductor storage device |
| JP4472010B2 (en) * | 2006-08-09 | 2010-06-02 | 株式会社日立超エル・エス・アイ・システムズ | Storage device |
-
2009
- 2009-12-28 JP JP2009297123A patent/JP5579431B2/en active Active
-
2010
- 2010-12-28 WO PCT/JP2010/073670 patent/WO2011081168A1/en not_active Ceased
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12217781B2 (en) | 2022-06-23 | 2025-02-04 | Kioxia Corporation | Memory device and memory system |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2011138273A (en) | 2011-07-14 |
| WO2011081168A1 (en) | 2011-07-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7984325B2 (en) | Storage control device, data recovery device, and storage system | |
| JP5466953B2 (en) | Backup method and disk array system | |
| US8484522B2 (en) | Apparatus, system, and method for bad block remapping | |
| JP5579431B2 (en) | Solid-state drive device and leveling management information save / restore method | |
| US20110029716A1 (en) | System and method of recovering data in a flash storage system | |
| US20090327803A1 (en) | Storage control device and storage control method | |
| CN112148522B (en) | Error correction scheme in flash memory | |
| KR20100082710A (en) | Data memory device and controller with interface error detection and handling logic | |
| MX2012010944A (en) | Non-regular parity distribution detection via metadata tag. | |
| KR20130069364A (en) | Non-volatile semiconductor memory device and method of controlling the same | |
| US10229742B2 (en) | Flash memory device | |
| JP5331018B2 (en) | Solid state drive device and mirror configuration reconfiguration method | |
| CN109739777B (en) | Reliable flash memory storage method and system based on local and distributed collaborative design | |
| JP4256307B2 (en) | Memory card | |
| JP2010079856A (en) | Storage device and memory control method | |
| JP4956230B2 (en) | Memory controller | |
| US10922025B2 (en) | Nonvolatile memory bad row management | |
| JP2018136735A (en) | Memory controller and memory control method | |
| US20240338124A1 (en) | Storage device using host memory buffer and method of operating the same | |
| CN115565598B (en) | Data storage and repair method and system for temporary failure of RAID array disk | |
| JP5360287B2 (en) | Data control method and system | |
| TWI634418B (en) | Method and controller for recovering data in event of program failure and storage system using the same | |
| CN107632902A (en) | Method, controller and storage system for replying data in case of programming failure | |
| JP2002373119A (en) | Semiconductor storage system | |
| JP2001005615A (en) | Disk array device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20121015 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131224 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140220 |
|
| 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: 20140701 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140709 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5579431 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |