JP2010108246A - 記憶装置及びデータ格納領域管理方法 - Google Patents

記憶装置及びデータ格納領域管理方法 Download PDF

Info

Publication number
JP2010108246A
JP2010108246A JP2008279661A JP2008279661A JP2010108246A JP 2010108246 A JP2010108246 A JP 2010108246A JP 2008279661 A JP2008279661 A JP 2008279661A JP 2008279661 A JP2008279661 A JP 2008279661A JP 2010108246 A JP2010108246 A JP 2010108246A
Authority
JP
Japan
Prior art keywords
block
data
storage
area
ssd
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.)
Granted
Application number
JP2008279661A
Other languages
English (en)
Other versions
JP5192352B2 (ja
Inventor
Akihiko Araki
亮彦 荒木
Yoshiki Kano
義樹 加納
Sadahiro Sugimoto
定広 杉本
Yusuke Nonaka
裕介 野中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008279661A priority Critical patent/JP5192352B2/ja
Priority to US12/338,138 priority patent/US8015371B2/en
Publication of JP2010108246A publication Critical patent/JP2010108246A/ja
Priority to US13/193,130 priority patent/US8108595B2/en
Priority to US13/361,430 priority patent/US8489806B2/en
Application granted granted Critical
Publication of JP5192352B2 publication Critical patent/JP5192352B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

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)
  • Memory System (AREA)
  • Read Only Memory (AREA)

Abstract

【課題】記憶装置の長寿命化を図り、ビットコストを低減させる。
【解決手段】コントローラ及び複数の記憶素子によって構成される半導体記憶媒体を備える記憶装置であって、複数の記憶素子には、第1の記憶素子と、第1の記憶素子よりもデータの消去回数の上限値が小さい第2の記憶素子とが含まれ、データの格納先として指定される第1のアドレスと、データが格納される領域の第2のアドレスとの対応を含む領域変換情報が含まれ、格納されたデータの書き換え頻度が領域ごとに記録され、第1のアドレスに対応する領域を選択し、選択された領域の書き換え頻度が所定の第1の閾値以上であるか否かを判定し、書き換え頻度が所定の閾値以上の場合には第1の記憶素子によって提供される領域を選択し、書き換え頻度が所定の閾値よりも小さい場合には第2の記憶素子によって提供される領域を選択し、第1のアドレスに選択された領域のアドレスを対応させる。
【選択図】図1

Description

本発明は、半導体記憶媒体を含む記憶装置に関し、特に、データを格納する領域を管理する技術に関する。
近年、高速アクセスが可能な記憶媒体である、フラッシュメモリなどの不揮発半導体メモリが注目されている。一般に普及しているフラッシュメモリはNAND型フラッシュメモリと呼ばれ、記憶素子の特性によってMLC(Multiple Level Cell)とSLC(Single Level Cell)に細分される。MLCは、メモリセル当たりの記憶容量が2ビット以上であり、低ビットコスト、低性能、短寿命という特徴を有する。一方SLCは、メモリセル当たりの記憶容量が1ビットであり、高ビットコスト、高性能、長寿命という特徴を有する。
フラッシュメモリは、複数のフラッシュメモリチップから構成される。また、各々のフラッシュメモリチップは、データを格納する複数のメモリブロック(以下、「ブロック」とする)を有する。フラッシュメモリは、ブロック単位でデータを消去するという特徴を有する。フラッシュメモリは、ビットを一方向(1→0)にしか変更できず、逆方向に変更する場合には一度ブロックを消去し、ブロック全体を1に変更する必要がある。しかし、フラッシュメモリのブロックの消去回数には上限があり(SLCで100000回程度、MLCで10000回程度)、消去回数が上限に達したブロック(以下、「寿命ブロック」とする)は、読み書きの際にエラーが多発するおそれがある。
そのため、フラッシュメモリをハードディスクの代替として計算機に接続する場合には、ブロックごとの書き込み頻度の偏りによって、一部のブロックのみが消去回数の上限に達し、使用できなくなってしまうおそれがある。特許文献1には、この問題を解決するために、あらかじめ書き換え頻度の高いことが予測されるデータをSLC領域に、書き換え頻度の低いことが予測されるデータをMLC領域に格納する技術が開示されている。
フラッシュメモリを用いた記憶装置であるSSD(Solid State Drive)には、構成するフラッシュメモリの種類が、SLC又はMLCのいずれか一方によって構成されるSSDと、SLC及びMLC双方を備えるSSDとがある。SLC及びMLCを備えるSSDには、特許文献1に開示された技術のように、格納されるデータの内容又は特性に応じて、あらかじめデータの格納先が定められているものがある。また、SSDは、SSD内部にあらかじめ代替用の領域として代替ブロックを備えており、代替ブロックをすべて使い切った場合に書き込み不能となり、SSDは寿命となる。
また、SSDをストレージ装置の記憶媒体として搭載する場合には、搭載されるSSDを構成するフラッシュメモリの種類によって、SLCで構成されたSSD又はMLCで構成されたSSDのいずれかに限定して用いる形態、SLCで構成されたSSD及びMLCで構成されたSSDを混在して用いる形態、SLCとMLCの両方が混在しているSSDを用いる形態の3形態が考えられる。このようなSSDをストレージ装置に搭載した場合には、代替ブロックをすべて使い切り、書き込み不能となったSSD(以下、「寿命SSD」とする)の代替として別のSSDを割り当てる。
特開2007−305210号公報
特許文献1に開示された技術によれば、データの書き換え頻度に応じて格納する領域をSLC又はMLCに振り分けることによって、特定のメモリブロックへ書き込みが偏ることを防ぐことができる。
しかし、特許文献1に開示された技術では、SLC及びMLCの割り当てられるデータはあらかじめ固定されおり、代替ブロックの種類も固定されているため、MLCに格納されたデータの書き換え頻度が高くなった場合にはMLCの寿命が早く到来することが想定される。したがって、MLCの代替ブロックが枯渇しやすくなり、SSDの寿命も短くなってしまう上に、SSDの交換頻度も上昇するため、結果的にビットコストが上昇してしまう。また、SLCに格納されたデータの書き換え頻度が低くなった場合は、書き換え頻度の低いデータであるにもかかわらず、ビットコストの高いSLCに格納され続けるため、結果的にビットコストが上昇してしまう。
従来のストレージ装置にSSDが搭載されている場合には、寿命SSDを代替する別のSSDを割り当てる際に、寿命SSDへのアクセス状況が考慮されずにSSDの種類が選択される。例えば、SLCに格納されたデータの書き換え頻度が低下した場合は、MLCにデータを格納したほうがビットコストを低減できるにも関わらず、SLCに格納され続けるため、ビットコストが高くなってしまう。また、MLCに格納されたデータの書き換え頻度が上昇した場合には、SLCにデータを格納した方が長寿命化できるにも関わらずMLCに格納され続けるため、MLCが短寿命化してしまい、結果的にSSD全体が短寿命化してしまう。
また、SLCとMLCが混在したSSDをストレージ装置に搭載した場合には、SLCとMLCのどちらか一方の代替ブロックを使いきり、寿命SSDになった時点で別のSSDに代替する必要があり、残りのブロック数に余裕のある他方のブロックを利用することができない。例えば、SSD内部のMLC領域がなくなった場合は、まだ余裕のあるSLC領域を含むSSDを丸ごと代替せねばならず、SLC領域を活用することができない。以上のように、SSD内の代替ブロックが余っている状況でSSDを代替する場合には、ビットコストを最適化することができない。
本発明の代表的な一形態によれば、複数の記憶素子によって構成される半導体記憶媒体と、前記半導体記憶媒体に接続されるコントローラと、を備える記憶装置であって、前記記憶素子には、格納されたデータを消去することが可能な回数の上限値があり、前記複数の記憶素子には、第1の記憶素子と、前記第1の記憶素子よりも前記上限値が小さい第2の記憶素子とが含まれ、前記コントローラは、インターフェース、前記インターフェースに接続されるプロセッサ、及び前記プロセッサに接続されるメモリを備え、前記メモリには、前記半導体記憶媒体を管理する記憶媒体管理情報が記憶され、前記記憶媒体管理情報は、データの格納先として指定される第1のアドレスと、前記データが格納される領域の第2のアドレスとの対応を含む領域変換情報を含み、前記格納されたデータの書き換え頻度が領域ごとに記録され、前記コントローラは、前記第1のアドレスに対応する領域を選択し、前記選択された領域の書き換え頻度を前記記憶媒体管理情報から取得し、前記取得された書き換え頻度が所定の第1の閾値以上であるか否かを判定し、前記取得された書き換え頻度が前記所定の第1の閾値以上の場合には、前記第1の記憶素子によって提供される第1の領域を選択し、前記取得された書き換え頻度が前記所定の第1の閾値よりも小さい場合には、前記第2の記憶素子によって提供される第2の領域を選択し、前記第1のアドレスに対応する前記第2のアドレスに、前記選択された第1の領域又は第2の領域の第2のアドレスを設定することによって、前記領域変換情報を更新する。
本発明の一形態によれば、複数の種類の記憶素子(フラッシュメモリ)によって構成される記憶装置において、記憶装置の長寿命化を図り、ビットコストを低減させることができる。
以下、図面を参照しながら本発明の実施の形態を説明する。
(第1の実施の形態)
以下、第1の実施の形態について、図1から図6を参照しながら説明する。
図1は、本発明の第1の実施の形態のフラッシュメモリを用いた記憶装置であるSSD100の一例を示すブロック図である。
SSD100は、SSDコントローラ101、SLCフラッシュメモリモジュール102及びMLCフラッシュメモリモジュール103を備える。
SSDコントローラ101は、SSD100全体を制御する。SSDコントローラ101は、プロセッサ105、インターフェース106及びブロック管理情報200を有する。プロセッサ105は、データの入出力を制御する。インターフェース106は、データの入出力要求を受け付ける。ブロック管理情報200は、ブロック104を管理するための情報が格納される。
SLCフラッシュメモリモジュール102及びMLCフラッシュメモリモジュール103は、SSDコントローラ101に接続される。フラッシュメモリモジュールとは、プリント基板にフラッシュメモリチップを複数搭載したメモリモジュールである。フラッシュメモリモジュールは、内部にデータを格納するための複数のブロック104を備える。
図2は、本発明の第1の実施の形態のブロック管理情報200の一例を示す図である。
ブロック管理情報200は、ブロック変換テーブル201、SLC代替ブロックリスト205、MLC代替ブロックリスト206、ブロック情報テーブル207、代替ブロックカウンタ211、不良ブロックカウンタ213、及び閾値テーブル230を含む。
ブロック変換テーブル201は、論理ブロックアドレス202と物理ブロックアドレス203との対応表である。論理ブロックアドレス202は、論理的なアドレス空間におけるブロックの位置を示す。物理ブロックアドレス203は、論理ブロックアドレス202が割り当てられた物理的なフラッシュメモリチップのブロックの位置を示す。
SLC代替ブロックリスト205は、SSDに含まれるブロックのうち、記憶領域が割り当てられておらず、かつ、割り当て可能な状態にあるSLCブロックの物理ブロックアドレス203の一覧である。
MLC代替ブロックリスト206は、SSDに含まれるブロックのうち、記憶領域が割り当てられておらず、かつ、割り当て可能な状態にあるMLCブロックの物理ブロックアドレス203の一覧である。
ブロック情報テーブル207は、割り当て済みのブロックごとに、書き換え頻度、消去回数及び寿命ブロックであるか否かなどの情報を管理するテーブルである。ブロック情報テーブル207は、物理ブロックアドレス203、SLC/MLC ID204、書き換え頻度208、消去回数カウンタ209、及び寿命フラグ210を含む。
SLC/MLC ID204は、物理ブロックアドレス203に対応するブロックが割り当てられているメモリモジュールの種類がSLCであるか又はMLCであるかを示す識別子である。
書き換え頻度208は、ブロックが寿命ブロックとなったときに、代替として割り当てられる代替ブロックの種類をSLC又はMLCのいずれにするかを判定するための指標である。例えば、一定期間における書き換え回数であってもよいし、当該ブロックが最後に代替された時刻を記憶しておき、最後の代替処理からの経過時間の長短を書き換え頻度の大小としてもよい。
消去回数カウンタ209は、ブロックごとの消去回数であって、ブロックが消去されるごとに加算される。また、消去回数カウンタ209は、ブロックが寿命であるか否か判定するための指標となる。
寿命フラグ210は、ブロックが寿命ブロックであるか否かを示す情報である。例えば、初期状態では寿命フラグは“0”に設定され、消去回数が基準値を超えた場合には“1”が設定される。寿命フラグ210に“1”が設定されているブロックが寿命ブロックとなる。
代替ブロックカウンタ211は、代替ブロックの残数である。代替ブロックカウンタ211は、SLC/MLC ID204及び代替ブロックの個数212を含む。代替ブロックカウンタ211は、SLC及びMLCのそれぞれについて代替ブロックの個数が格納される。
不良ブロックカウンタ213は、寿命又は物理的な故障によって使用できないブロックの個数を格納する。不良ブロックカウンタ213は、SLC/MLC ID204及び代替ブロックの個数212を含む。不良ブロックカウンタ213は、SLC及びMLCのそれぞれについて不良ブロックの個数が格納される。また、システムの運用開始前にフラッシュメモリに含まれている初期不良のブロックの数を取得し、初期値として設定する。
閾値テーブル230は、ブロックを代替するか否かを判定するための閾値、及び代替するブロックの種類を判定するための閾値などが格納される。
続いて、本発明の第1の実施の形態の代替ブロックを選択する手順について説明する。第1の実施の形態では、データを書き込む際にデータの消去回数に基づいて書き込み対象のブロックを代替するか否かを判定する。さらに、書き込み対象のブロックの書き込み頻度に基づいて、代替するブロックの種類を決定する。
なお、本発明の第1の実施の形態では、ブロックの消去が必要と判定された契機にブロック代替処理が実行されているが、これに限定する必要はなく、他の契機に実行するようにしてもよい。例えば、周期的にブロック代替処理を実行するようにしてもよい。
まず、フラッシュメモリに対する書き込み処理の手順について説明する。
図3は、本発明の第1の実施の形態の書き込み処理の手順の一例を示すフローチャートである。
SSDコントローラ101のプロセッサ105は、書き込み要求(ライトコマンド)を受け付けると(ステップ320)、ブロック変換テーブル201を参照し、ライトコマンドに含まれる書き込み先の論理ブロックアドレス202に対応する物理ブロックアドレス203を取得し、書き込みデータ格納先ブロックを特定する(ステップ321)。
SSDコントローラ101のプロセッサ105は、書き込みデータ格納先ブロックに対応するブロック情報テーブル207の寿命フラグ210を参照し、寿命フラグ210の値が“0”(OFF)であるか否かを判定する(ステップ322)。
SSDコントローラ101のプロセッサ105は、寿命フラグ210が“0”(OFF)でなかった場合、すなわち、寿命フラグ210が“1”(ON)の場合には(ステップ322の結果が「No」)、書き込みデータ格納先ブロックが寿命ブロックであるため、ブロック代替処理中であることがわかる。そこで、ブロック代替処理が終了し、ブロック変換テーブル201の物理ブロックアドレス203の値が変更されるまで待機し(ステップ323)、再びステップ321の処理に戻る。
SSDコントローラ101のプロセッサ105は、寿命フラグ210が“0”(OFF)であった場合には(ステップ322の結果が「Yes」)、書き込みデータ格納先ブロックが寿命ブロックでないため、当該ブロックにデータを格納することができる。さらに、書き込みデータ格納先ブロックを一旦消去する必要があるかを判定する(ステップ324)。書き込みデータ格納先ブロックを一旦消去する必要がない場合(ステップ324の結果が「No」)、すなわち、書き込みデータ格納先ブロックにデータをそのまま格納可能な場合には、データを書き込みデータ格納先ブロックに書き込み(ステップ327)、本処理を終了する。
SSDコントローラ101のプロセッサ105は、書き込みデータ格納先ブロックを一旦消去する必要がある場合には(ステップ324の結果が「No」)、書き込みデータ格納先ブロックに対して寿命ブロック代替処理を実行する(ステップ3000)。なお、寿命ブロック代替処理の詳細については、図4にて後述する。
SSDコントローラ101のプロセッサ105は、寿命ブロック代替処理が完了すると、データを書き込みデータ格納先ブロックに書き込み(ステップ327)、本処理を終了する。
図4は、本発明の第1の実施の形態の寿命ブロック代替処理の手順の一例を示すフローチャートである。
SSDコントローラ101のプロセッサ105は、あるブロックが消去された後、代替ブロックカウンタ211を参照し、代替ブロックの個数212があらかじめ設定された閾値よりも大きいか否か判定する(ステップ300)。閾値は、例えば、SLCの代替ブロックとMLCの代替ブロックの両方が一定数以上あることが判定できるように設定されていることが望ましい。また、閾値は閾値テーブル230にあらかじめ設定されている必要があるが、SSD100の状態に応じて再設定されるようにしてもよい。
SSDコントローラ101のプロセッサ105は、代替ブロックの個数212があらかじめ設定された閾値よりも小さい場合には(ステップ300の結果が「No」)、SSD100が耐用寿命に近い状態であるため、SSD100が接続されたイニシエータ又は当該イニシエータを備えた計算機に代替ブロックの残りが少なくなったことを通知する(ステップ307)。
SSDコントローラ101のプロセッサ105は、代替ブロックの個数212があらかじめ設定された閾値よりも大きい場合(ステップ300の結果が「Yes」)、又はステップ307の処理が終了すると、消去されたブロックが寿命ブロックか否かを判定する。
SSDコントローラ101のプロセッサ105は、まず、ブロック情報テーブル207の消去されたブロックに対応する消去回数カウンタ209を参照する(ステップ301)。そして、消去されたブロックの消去回数カウンタ209があらかじめ設定された閾値以上であるか否か、すなわち、消去されたブロックが寿命ブロックであるか否かを判定する(ステップ302)。
SSDコントローラ101のプロセッサ105は、消去されたブロックの消去回数カウンタ209があらかじめ設定された閾値よりも小さい場合、すなわち、消去されたブロックが寿命ブロックでない場合には(ステップ302の結果が「No」)、書き込み対象のデータの格納先ブロックを消去する(ステップ325)。さらに、ブロック情報テーブル207の消去回数カウンタ209の値を1増やし(ステップ326)、本処理を終了する。
一方、SSDコントローラ101のプロセッサ105は、消去されたブロックの消去回数カウンタ209の値が閾値以上の場合には(ステップ302の結果が「Yes」)、ブロック情報テーブル207の寿命フラグ210を“1”(ON)に設定する(ステップ303)。さらに、寿命ブロックの代替となるブロックを割り当てるブロック代替処理を実行する(ステップ304)。ブロック代替処理の詳細については、図5にて後述する。
SSDコントローラ101のプロセッサ105は、ブロックの代替処理(ステップ304)が完了すると、SLC代替ブロックリスト205又はMLC代替ブロックリスト206から、代替されたブロックの物理ブロックアドレス203を削除し、代替ブロックカウンタ211の個数212を1減らす(ステップ305)。
SSDコントローラ101のプロセッサ105は、不良ブロックカウンタ213の寿命ブロックに該当するSLC/MLC ID204に対応する個数212を1増やす(ステップ306)。
図5は、本発明の第1の実施の形態のブロック代替処理の手順の一例を示すフローチャートである。
SSDコントローラ101のプロセッサ105は、寿命ブロックのブロック情報テーブル207の書き換え頻度208を参照し(ステップ309)、書き換え頻度208があらかじめ設定された閾値以上か否かを判定する(ステップ310)。
ステップ310の処理では、書き換え頻度208を代替ブロックの種類の選択基準にしているが、例えば、代替ブロックカウンタ211から取得可能なSLCの代替ブロック数とMLCの代替ブロック数との割合、又は不良ブロックカウンタ213から取得可能なSLCの不良ブロック数とMLCの不良ブロック数との割合に基づいて、代替ブロックの種類を選択してもよい。
また、本発明の第1の実施の形態では、書き換え頻度208の値が閾値以上の場合には、寿命ブロックに書き換え頻度の高いデータが格納されていると判定できる。したがって、消去回数の上限の高いSLCを割り当てることによって長寿命化を図ることができる。一方、書き換え頻度208の値が閾値よりも小さい場合には、寿命ブロックに書き換え頻度の低いデータが格納されていると判定できる。したがって、消去回数の上限は低いが、低ビットコストであるMLCを割り当てることによってビットコストの低減を図ることができる。
SSDコントローラ101のプロセッサ105は、寿命ブロックに書き換え頻度の高いデータが格納されていた場合には(ステップ310の結果が「Yes」)、代替ブロックとしてSLCを選択する。そして、寿命ブロックに格納されたデータを選択されたSLCの代替ブロックにコピーする(ステップ311)。寿命ブロックから代替ブロックへのコピーが完了すると、寿命ブロックのブロック変換テーブル201の物理ブロックアドレス203を代替ブロックの物理ブロックアドレス203に変更する(ステップ312)。
同様に、SSDコントローラ101のプロセッサ105は、寿命ブロックに書き換え頻度の低いデータが格納されていた場合には(ステップ310の結果が「No」)、代替ブロックとしてMLCを選択する。そして、寿命ブロックに格納されたデータを選択されたMLCの代替ブロックにコピーする(ステップ313)。寿命ブロックから代替ブロックへのコピーが完了すると、寿命ブロックのブロック変換テーブル201の物理ブロックアドレス203を代替ブロックの物理ブロックアドレス203に変更する(ステップ314)。
なお、図5に示したフローチャートでは、SLCの代替ブロックとMLCの代替ブロックの両方が使用可能な場合について示しているが、いずれか一方の代替ブロックが使用可能である場合には、使用可能な代替ブロックを強制的に選択させるようにすればよい。
以上、ブロックの消去を契機とする寿命ブロックの代替処理手順を示したが、消去頻度が多い場合には、寿命ブロックの代替処理の実行回数が増大し、処理オーバヘッドが大きくなるおそれがある。このような場合には、寿命ブロックの代替処理を周期的に実行することによって処理回数を低減させ、処理オーバヘッドを小さくすることができる。寿命ブロックの代替処理を周期的に実行する場合には、図5に示した手順をすべてのブロックに対して実行すればよい。
以上の処理手順によって、データの書き換え頻度に基づいて格納先ブロックを選択することによってSSD100の長寿命化を図ることができる。
最後に、代替ブロックを選択するパターンについて説明する。
図6は、本発明の第1の実施の形態の代替ブロックを選択するパターンを説明する図である。
代替ブロックを選択するパターンとしては、例えば、図6に示しているように、同一フラッシュメモリモジュールのブロック104を代替ブロックとして選んでもよいし、別のフラッシュメモリモジュールのブロック104を代替ブロックとして選んでもよい。
代替ブロックの選択方法については、ここでは指定しないが、優先度をつけて選択するようにしてもよい。例えば、同一フラッシュメモリモジュール内の代替ブロックを優先的に選択するように指定してもよいし、他のフラッシュメモリモジュールの代替ブロックを優先的に選択するように指定してもよい。
本発明の第1の実施の形態によれば、書き換え頻度に基づいて、代替ブロックの種類を選択することによって、記憶装置全体の長寿命化及びビットコストの低減を図ることができる。具体的には、書き換え頻度の大きいブロックの代替ブロックをSLCとすることによって、記憶装置の長寿命化を図ることができる。また、書き換え頻度の小さいブロックの代替ブロックをMLCとすることによって、ビットコストを低減することができる。
(第2の実施の形態)
本発明の第1の実施の形態では、SSDコントローラを備えたSSDに本発明を適用したが、第2の実施の形態では、複数のフラッシュメモリモジュールを搭載したストレージ装置に本発明を適用する。第2の実施の形態では、SSDコントローラの代わりにストレージコントローラによってフラッシュメモリモジュールに対するデータの入出力を制御する。
以下、第2の実施の形態について、図7から図10を参照しながら説明する。なお、第2の実施の形態において、第1の実施の形態と共通する内容については適宜説明を省略する。
図7は、本発明の第2の実施の形態の計算機システムの構成の一例を示すブロック図である。
本発明の第2の実施の形態の計算機システムには、ストレージ装置400、ホスト計算機401及び管理サーバ402が含まれる。
ストレージ装置400は、ホスト計算機401によって読み書きされるデータを格納する。ストレージ装置400は、ホスト計算機401及び管理サーバ402に接続される。ホスト計算機401は、ストレージ装置400にデータの読み書きを要求する。管理サーバ402は、ストレージ装置400を管理する。
ストレージ装置400は、ストレージコントローラ403及び複数のフラッシュメモリパッケージを備える。ストレージコントローラ403は、ストレージ装置400全体を制御する。複数のフラッシュメモリパッケージには、SLCパッケージ408及びMLCパッケージ409が含まれる。SLCパッケージ408及びMLCパッケージ409には、ストレージコントローラ403が接続される。
ストレージコントローラ403は、ポート404、プロセッサ405、キャッシュメモリ406及びメインメモリ407を含む。ポート404、プロセッサ405、キャッシュメモリ406及びメインメモリ407は、内部ネットワーク430によって相互に接続される。
ポート404は、ホスト計算機401及び管理サーバ402に接続される。ポート404は、ストレージコントローラ403に1つ以上含まれ、例えば、1つのポートが管理サーバ402に接続され、残りのポートがホスト計算機401に接続されるように構成されてもよい。
プロセッサ405は、メインメモリ407に記憶された制御プログラム及び制御情報などに基づいて、ストレージ装置400に要求されたデータの入出力要求を処理する。
キャッシュメモリ406は、フラッシュメモリパッケージに格納されたデータの入出力を高速化するために、一時的にデータを格納する。
メインメモリ407は、フラッシュメモリパッケージのブロックの管理情報であるブロック管理情報250を記憶し、さらに、ストレージ装置400全体を制御するための制御プログラム及び制御情報が記憶される。
SLCパッケージ408は、例えば、複数のメモリモジュール、コネクタ、スロット及び制御部を含む。メモリモジュールは、プリント基板に複数のSLCフラッシュメモリチップが搭載されたSLCフラッシュメモリモジュール102であって、データが格納される記憶媒体である。なお、SLCフラッシュメモリモジュール102は、第1の実施の形態におけるSSDに含まれるSLCフラッシュメモリモジュール102と同じである。
コネクタは、ストレージコントローラ403に接続するためのインターフェースである。スロットは、SLCパッケージ408にメモリモジュールを接続するためのインターフェースである。制御部は、フラッシュメモリチップにアクセスするための制御を行う。
MLCパッケージ409は、メモリモジュールに搭載されるフラッシュメモリの種類がMLCであることを除き、SLCパッケージ408と同じ構成である。また、メモリモジュールは、第1の実施の形態におけるSSDに含まれるMLCフラッシュメモリモジュール103と同じである。
さらに、ストレージ装置400は、SLCパッケージ408及びMLCパッケージ409の両方、又はいずれか一方を追加するための1つ以上の追加用パッケージスロット410を備える。
SLCパッケージ408又はMLCパッケージ409がストレージ装置400に追加された場合には、メインメモリ407に記憶されているブロック管理情報250がプロセッサ405によって更新される。具体的な更新内容については、図8にて説明する。
図8は、本発明の第2の実施の形態のブロック管理情報250の一例を示す図である。
ブロック管理情報250は、ブロック変換テーブル201、SLC代替ブロックリスト205、MLC代替ブロックリスト206、ブロック情報テーブル207、代替ブロックカウンタ211、不良ブロックカウンタ213、マッピングテーブル214、及び閾値テーブル230を含む。
ブロック変換テーブル201、SLC代替ブロックリスト205、MLC代替ブロックリスト206、ブロック情報テーブル207、代替ブロックカウンタ211、不良ブロックカウンタ213、及び閾値テーブル230の構成については、第1の実施の形態と同じである。
マッピングテーブル214は、WWN(World Wide Name)215、Port#216、LUN217、及びLDEV#218を含む。
WWN215は、ホスト計算機401に接続されるインターフェースであるポート404を識別する番号である。WWN215は、ホスト計算機401によって一意に識別される識別子である。Port#216は、ストレージ装置400の内部でポート404を識別する番号である。
LUN217は、ホスト計算機401が論理ボリュームを識別するための番号である。LDEV#218は、ストレージ装置400の内部で論理ボリュームを識別するための番号である。
前述したように、SLCパッケージ408又はMLCパッケージ409がストレージ装置400に追加された場合には、ブロック管理情報250が更新される。具体的には、SLCパッケージ408がストレージ装置400に追加された場合には、追加されたSLCパッケージ408のブロック104の物理ブロックアドレス203がSLC代替ブロックリスト205に追加される。さらに、追加されたブロックの数だけ代替ブロックカウンタ211の個数212が加算される。
同様に、MLCパッケージ409がストレージ装置400に追加された場合には、追加されたMLCパッケージ409のブロック104の物理ブロックアドレス203がMLC代替ブロックリスト206に追加される。さらに、追加されたブロックの数だけ代替ブロックカウンタ211の個数212が加算される。
図9は、本発明の第2の実施の形態の寿命ブロック代替処理の手順の一例を示すフローチャートである。
図3に示した本発明の第1の実施の形態の寿命ブロック代替処理との相違点は、処理を実行する主体が、第1の実施の形態におけるSSDのプロセッサ105から、ストレージコントローラ403のプロセッサ405となっている点である。また、代替ブロックが閾値よりも少なくなった場合に表示されるメッセージが相違する。その他の処理については、第1の実施の形態と同様である。
ストレージコントローラ403のプロセッサ405は、第1の実施の形態と同様に、あるブロックが消去されると、代替ブロックカウンタ211を参照し、代替ブロックの個数212があらかじめ設定された閾値よりも大きいか否か判定する(ステップ300)。閾値の設定については、第1の実施の形態と同様である。
ストレージコントローラ403のプロセッサ405は、代替ブロックの個数212があらかじめ設定された閾値よりも小さい場合には(ステップ300の結果が「No」)、近いうちに代替ブロックを割り当てることができなくなるため、SLCパッケージ408又はMLCパッケージ409の追加を促すメッセージを表示する。このとき、メモリモジュールの種類ごとに代替ブロック数をしきい値と比較する。
ストレージコントローラ403のプロセッサ405は、まず、代替SLCブロック数が閾値よりも小さいか否かを判定する(ステップ331)。代替SLCブロック数が閾値よりも小さい場合には(ステップ331の結果が「Yes」)、SLCパッケージ408の追加を促すメッセージを表示する(ステップ332)。
ストレージコントローラ403のプロセッサ405は、次に、代替MLCブロック数が閾値よりも小さいか否かを判定する(ステップ333)。代替MLCブロック数が閾値よりも小さい場合には(ステップ333の結果が「Yes」)、MLCパッケージ409の追加を促すメッセージを表示する(ステップ334)。
なお、ステップ331及びステップ333の処理で比較される閾値は、共通の値を利用してもよいし、メモリモジュールの種類ごとに設定してもよい。また、ステップ332及びステップ334の処理で表示されるメッセージは、例えば、管理サーバ402に出力される。
代替ブロック数が閾値以上の場合、又はメッセージの表示が終了した後に実行されるステップ301以降の処理については、図3に示した第1の実施の形態の同じ処理を実行する。
さらに、本発明の第2の実施の形態では、ストレージ装置として信頼性を高めるためにRAIDを構成することができる。
図10は、本発明の第2の実施の形態のストレージ装置400のフラッシュメモリパッケージで構成されたRAIDグループの一例を示す図である。
図10には、3つのデータ(D)と1つのパリティ(P)が配置されたRAID4を構成する例が示されている。このとき、配置されるフラッシュメモリの種類は、SLCでもMLCでもよく、混在してもよい。また、他のRAID構成、例えば、RAID5を構成することも可能である。
また、図10に示す構成では、データが格納されているフラッシュメモリパッケージにはMLCパッケージ(409A〜409C)が、パリティが格納されているフラッシュメモリパッケージにはSLCパッケージ408Aが利用されている。パリティは、各フラッシュメモリパッケージに格納されているデータが更新されるたびに更新されるため、長寿命のSLCが利用されている。
さらに、複数のSLCパッケージ408又はMLCパッケージ409でRAIDを構成する場合には、代替ブロックの割り当ては、冗長性を確保するために、RAIDを構成している一つのSLCパッケージ408又は一つのMLCパッケージ409に、同一のRAID構成に含まれるデータ又はパリティを2つ以上含まないようにブロックを割り当てることが望ましい。
また、別々のフラッシュメモリパッケージ上のブロックに同一のデータを格納することによって、RAID1(ミラーリング)を構成することも可能である。この場合、別々のSLCパッケージ408同士、MLCパッケージ409同士又はSLCパッケージ408とMLCパッケージ409とでRAID1を構成することができる。
フラッシュメモリは、消去回数による寿命以外に、物理的な故障によって障害が発生し、ブロックに格納されたデータが読めなくなる場合が考えられる。障害が発生したブロックの代替処理を実行する場合には、故障したブロックからデータを読み出すことができないため、前述したブロック代替処理では正常に代替処理を実行することができない。
本発明の第2の実施の形態では、データを冗長化してRAIDグループを構成することが可能であるため、RAIDグループを構成するブロックに格納されたデータが物理的な故障などによってデータを読み出せなくなった場合でも、RAIDグループを構成する他のデータ及びパリティに基づいて故障したブロックに格納されたデータを復元するコレクションコピーを実行することが可能である。
コレクションコピーによる代替処理は、ステップ311及びステップ313の処理において、故障したブロックのデータをコレクションコピーによって復元し、代替ブロックに格納すればよい。コレクションコピーによる代替処理において代替ブロックの種類を選択する処理には、故障したブロックの故障前までの書き換え頻度などのパラメータを把握する必要があるため、代替ブロックの種類を判定するための閾値には一定期間における書き換え頻度を用いるとよい。
本発明の第2の実施の形態によれば、第1の実施の形態と同様の効果に加え、データを冗長化して格納することによって、物理的な故障などによる障害からデータを復旧させることができる。
(第3の実施の形態)
本発明の第2の実施の形態では、フラッシュメモリパッケージを備えたストレージ装置に対して本発明を適用したが、第3の実施の形態では、フラッシュメモリパッケージの代わりにSSDを搭載したストレージ装置に本発明を適用する。第3の実施の形態では、ストレージコントローラによってSSDを制御する。
以下、第3の実施の形態について、図11から図14を参照しながら説明する。なお、第3の実施の形態において、第1の実施の形態又は第2の実施の形態と共通する内容については適宜説明を省略する。
図11は、本発明の第3の実施の形態の計算機システムの構成の一例を示すブロック図である。
本発明の第3の実施の形態の計算機システムには、第2の実施の形態と同様に、ストレージ装置400、ホスト計算機401及び管理サーバ402が含まれる。第3の実施の形態は、第2の実施の形態とはストレージ装置400の構成が相違する。
ストレージ装置400は、ストレージコントローラ403及び複数のSSDを備える。ストレージコントローラ403は、ストレージ装置400全体を制御する。複数のSSDには、SLCで構成されたSSD(以下、「SSD(S)」とする)107とMLCで構成されたSSD(以下、「SSD(M)」とする)108とが含まれる。SSD(S)107及びSSD(M)108には、ストレージコントローラ403が接続される。
ストレージコントローラ403は、第2の実施の形態と同様に、ポート404、プロセッサ405、キャッシュメモリ406及びメインメモリ407を含む。ポート404、プロセッサ405、キャッシュメモリ406及びメインメモリ407は、内部ネットワーク430によって相互に接続される。メインメモリ407には、第2の実施の形態のブロック管理情報250の代わりに、SSDの管理情報であるSSD管理情報270が記憶される。
SSD(S)107は、SSDコントローラ101及びSLCフラッシュメモリモジュール102を含む。SSDコントローラ101は、図1に示したSSD100に含まれるSSDコントローラ101と同じ構成である。SSD(M)108は、SLCフラッシュメモリモジュール102の代わりにMLCフラッシュメモリモジュール103を含む。
さらに、ストレージ装置400には、SSD(S)107及びSSD(M)108を追加するための1つ以上の追加用SSDスロット411を備える。
図12は、本発明の第3の実施の形態のSSD管理情報270の一例を示す図である。
SSD管理情報270は、SSD変換テーブル220、代替SSD(S)リスト222、代替SSD(M)リスト223、SSD情報テーブル224、代替SSDカウンタ226、不良SSDカウンタ227、マッピングテーブル214及び閾値テーブル230を含む。
SSD変換テーブル220は、論理ブロックアドレス202及びSSD内論理ブロックアドレス219を含む。論理ブロックアドレス202は、論理的なアドレス空間におけるブロックの位置を示す。SSD内論理ブロックアドレス219は、論理ブロックアドレス202に割り当てられたSSDの論理的なアドレス空間におけるブロックのアドレスを示す。
ストレージ装置400は、当該ストレージ装置400に備えられるSSDの物理的なブロックのアドレスを認識することはできないが、SSD内部の論理的なブロックのアドレスを保持し、SSD変換テーブル220で論理ブロックアドレス202とSSD内論理ブロックアドレス219とを対応させる。SSD内論理ブロックアドレス219とSSDの物理的なブロックアドレスはSSDの内部(SSDコントローラ101)で対応させる。
代替SSD(S)リスト222は、ストレージ装置400に備えられるSSDのうち、記憶領域が割り当てられておらず、かつ、割り当て可能な状態にあるSSD(S)107の一覧である。SSD番号221とは、ストレージ装置400に接続されるSSDを一意に識別する番号である。
代替SSD(M)リスト223は、ストレージ装置400に備えられるSSDのうち、記憶領域が割り当てられておらず、かつ、割り当て可能な状態にあるSSD(M)108の一覧である。
SSD情報テーブル224は、ストレージ装置400に備えられるSSDごとに、書き換え頻度などの情報を管理するテーブルである。SSD情報テーブル224は、SSD番号221、SLC/MLC ID204、書き換え頻度208、代替ブロック数225、及び寿命フラグ210を含む。
SSD番号221は、ストレージ装置400に備えられるSSDを識別する番号である。SLC/MLC ID204は、対応するSSDに含まれるメモリモジュールの種類がSLCかMLCかを識別する情報である。
書き換え頻度208は、対応するSSDが寿命SSDとなった場合に、代替として割り当てられる代替ブロックの種類をSSD(S)とSSD(M)のいずれにするかを判定する指標である。
代替ブロック数225は、対応するSSDに含まれるメモリモジュールの代替ブロックの数である。寿命フラグ210は、対応するSSDが寿命SSDであるか否かを示す情報である。寿命フラグ210に“1”が設定されたSSDが寿命SSDとなる。
マッピングテーブル214は、第2の実施の形態と同じである。
代替SSDカウンタ226は、代替SSDの残数を、SSD(S)107とSSD(M)108ごとに管理するカウンタである。本発明の第2の実施の形態では、SSD単位で代替するため、ストレージ装置400は代替可能なSSDの残数を取得できればよい。
不良SSDカウンタ227は、寿命又は物理的な故障によって使用できないSSDを管理するカウンタである。
閾値テーブル230は、第1の実施の形態及び第2の実施の形態と同じ構成であるが、ストレージコントローラ403によってSSDが管理されるため、設定される閾値が相違する。
ストレージ装置400にSSDが追加された場合には、SSD管理情報270の対応する情報が更新される。具体的には、SSD(S)107がストレージ装置400に追加された場合には、追加されたSSD(S)107のSSD番号221が代替SSD(S)リスト222に追加される。さらに、追加されたSSD(S)107の数だけ代替SSDカウンタ226の該当するSLC/MLC ID204に対応する個数212を増加させる。同様に、SSD(M)108がストレージ装置400に追加された場合は、追加されたSSD(M)108のSSD番号221が代替SSD(M)リスト222に追加され、追加されたSSD(M)108の数だけ代替SSDカウンタ226の該当するSLC/MLC ID204に対応する個数212を増加させる。
図13は、本発明の第3の実施の形態における寿命SSDの代替処理の手順の一例を示すフローチャートである。
図13では、SSD内部における代替ブロック割り当て処理を契機として実行される場合を示しているが、定期的に本処理を実行するようにしてもよい。
ストレージコントローラ403のプロセッサ405は、代替SSDカウンタ226を参照し、代替SSDの個数212が、あらかじめ設定された閾値以上か否かを判定する(ステップ350)。ここでは、代替SSD(S)107と代替SSD(M)108の両方が残っていることを含む閾値とすることが望ましい。また、閾値はあらかじめ設定されている必要があるが、設定された閾値をシステムの状態に基づいて変更してもよい。
ストレージコントローラ403のプロセッサ405は、代替SSDの個数212があらかじめ設定された閾値よりも小さい場合には(ステップ350の結果が「No」)、近いうちに代替SSDを割り当てることができなくなるため、SSD(S)107又はSSD(M)108の追加を促すメッセージを表示する。
ストレージコントローラ403のプロセッサ405は、まず、SSD(S)107の代替SSDの数が閾値よりも小さいか否かを判定する(ステップ351)。SSD(S)107の代替SSDの数が閾値よりも小さい場合には(ステップ351の結果が「Yes」)、SSD(S)107の追加を促すメッセージを表示する(ステップ352)。
ストレージコントローラ403のプロセッサ405は、次に、SSD(M)108の代替SSDの数が閾値よりも小さいか否かを判定する(ステップ353)。SSD(M)108の代替SSDの数が閾値よりも小さい場合には(ステップ353の結果が「Yes」)、SSD(M)108の追加を促すメッセージを表示する(ステップ354)。
なお、ステップ351及びステップ353の処理で比較される閾値は、共通の値を利用してもよいし、SSDに搭載されたメモリモジュールの種類ごとに設定してもよい。
ストレージコントローラ403のプロセッサ405は、代替SSDが閾値以上の場合(ステップ350の結果が「Yes」)、又はメッセージの表示が終了すると、寿命SSDか否かを判定する。
ストレージコントローラ403のプロセッサ405は、SSD情報テーブル224の代替ブロック数225を参照し(ステップ355)、処理対象のSSDが寿命SSDであるか否かを判定するために、代替ブロック数225が閾値以上であるか否かを判定する(ステップ356)。第3の実施の形態では、SSDが寿命であるか否かを判定するために、SSD情報テーブル224から取得可能な代替ブロック数225を利用しているが、例えば、SSDから消去回数などの寿命に影響する情報を別に取得可能な場合には、この取得可能な情報を寿命SSDか否かの判定に利用してもよい。
ストレージコントローラ403のプロセッサ405は、代替ブロック数225が閾値よりも小さい場合には(ステップ356の結果が「No」)、SSD代替処理を終了する。
一方、ストレージコントローラ403のプロセッサ405は、代替ブロック数225が閾値以上の場合には(ステップ356の結果が「Yes」)、SSD情報テーブル224の寿命フラグ210を“1”(ON)に設定する(ステップ357)。さらに、代替SSDを割り当てる処理(SSD代替処理)を実行する(ステップ358)。SSD代替処理の詳細については、図14にて後述する。
ストレージコントローラ403のプロセッサ405は、代替SSDの割り当てが完了すると、代替SSD(S)リスト222又は代替SSD(M)リスト223から、代替されたSSDのSSD番号221を削除し、代替SSDカウンタを1減らす(ステップ359)。
ストレージコントローラ403のプロセッサ405は、さらに、寿命SSDに該当するSLC/MLC ID204に対応する不良SSDカウンタ227の個数212を1増やす(ステップ360)。
図14は、本発明の第3の実施の形態のSSD代替処理の手順の一例を示すフローチャートである。
ストレージコントローラ403のプロセッサ405は、寿命SSDのSSD情報テーブル224の書き換え頻度208を参照し(ステップ370)、書き換え頻度208が閾値以上であるか否かを判定する(ステップ371)。
ストレージコントローラ403のプロセッサ405は、寿命SSDの書き換え頻度208が閾値以上の場合には(ステップ371の結果が「Yes」)、代替SSDとしてSSD(S)107を割り当てるため、寿命SSDに格納されたデータを代替SSD(S)107にコピーする(ステップ372)。
さらに、ストレージコントローラ403のプロセッサ405は、SSD変換テーブル220の寿命SSDに対応するSSD番号221を、代替SSD(S)107のSSD番号221に変更する(ステップ373)。
一方、ストレージコントローラ403のプロセッサ405は、寿命SSDの書き換え頻度208よりも小さい場合には(ステップ371の結果が「No」)、代替SSDとしてSSD(M)108を割り当てるため、寿命SSDに格納されたデータを代替SSD(M)108にコピーする(ステップ374)。
さらに、ストレージコントローラ403のプロセッサ405は、SSD変換テーブル220の寿命SSDに対応するSSD番号221を、代替SSD(M)108のSSD番号221に変更する(ステップ375)。
以上の処理では、すべてのSSDに対して代替ブロック数225を閾値と比較するが(ステップ356)、SSD内部における代替ブロック割り当て処理を契機として実行されるため、実行されるたびにすべてのSSDに処理を実行する必要はない。例えば、代替ブロック割り当て処理が実行されたSSDについて、代替ブロック数225が閾値を下回った時点で本処理を実行するようにしてもよい。
また、第3の実施の形態では、第2の実施の形態と同様に、ストレージ装置として信頼性を高めるためにRAIDグループを構成することが可能である。例えば、異なるSSDのブロックにデータ(D)とデータに対応するパリティ(P)を配置することで、RAID4又はRAID5などを構成することも可能である。このとき、データとパリティが配置されるSSDの種類はSLC又はMLCに限定してもよいし、混在させてもよい。別々のSSDに同一のデータを格納することによって、RAID1を構成することも可能である。例えば、別々のSSD(S)107同士、SSD(M)108同士、又はSSD(S)107とSSD(M)108をペアとしてRAID1を構成してもよい。また、第3の実施の形態においてもRAIDグループを構成することによって、第2の実施の形態で説明したコレクションコピーによる代替処理を実行することが可能となる。
第3の実施の形態におけるRAIDグループ構成時の代替SSDの選択方法としては、例えば、未使用のSSDを選択してもよいし、別のRAIDグループが構成されているSSDを選択してもよい。また、RAIDグループごとに予備のSSDを備えるように構成し、予備のSSDを代替SSDとして選択してもよい。さらに、複数のRAIDグループごとに予備のSSDを備えるように構成し、当該複数のRAIDグループに含まれるRAIDグループでSSDを代替する必要があった場合に予備のSSDを代替SSDとして選択するようにしてもよい。
第3の実施の形態では、SLCを用いたSSD及びMLCを用いたSSDが混在している形態について説明しているが、SLCとMLCが混在したSSDが用いられている場合であっても、SLCで構成されたSSD又はMLCで構成されたSSDを追加することで同じ代替処理を用いることが可能である。
また、ストレージ装置がSSDとフラッシュメモリパッケージを混在して管理する形態の場合でも、ストレージ装置がフラッシュメモリパッケージの追加スロットとSSD追加スロットを備えていれば、SSDを代替する場合には第3の実施の形態を適用し、フラッシュメモリパッケージを代替する場合には第2の実施の形態を適用すればよい。
本発明の第3の実施の形態によれば、書き換え頻度などのフラッシュメモリの寿命に影響するパラメータに基づいて、代替SSDの種類を選択することができる。具体的には、書き換え頻度の大きいSSDの代替SSDの種類をSLCとすることによって、ストレージ装置の長寿命化を図ることができる。さらに、書き換え頻度の小さいSSDの代替SSDの種類をMLCとすることによって、ビットコストを低減させることができる。
(第4の実施の形態)
本発明の第1から第3の実施の形態では、ブロックの消去が発生した場合には、当該ブロックが寿命となるまで、代替せずに処理を継続していたが、第4の実施の形態では、ブロックの消去が発生するたびに代替ブロックを選択して割り当てるように制御する。消去されたブロックは、寿命ブロックとならない限り、代替ブロックとして再利用される。
また、本発明の第4の実施の形態は、第1から第3の実施の形態にさらに適用することが可能である。以下、第1の実施の形態のSSD100に対して第4の実施の形態を適用する例について図15を参照しながら説明する。
図15は、本発明の第4の実施の形態の消去ブロック代替処理の手順の一例を示すフローチャートである。
SSDコントローラ101のプロセッサ105は、書き込み要求を受け付けると、書き込みデータ格納先ブロックを消去する必要があるか否かを判定する(ステップ381)。消去する必要がない場合には(ステップ381の結果が「No」)、消去ブロック代替処理を終了し、書き込み処理を継続する。
SSDコントローラ101のプロセッサ105は、書き込みデータ格納先ブロックを消去する必要がある場合には(ステップ381の結果が「Yes」)、図4のステップ304に示したブロック代替処理を実行する。
第4の実施の形態では、前述のように、ブロックを消去するたびに代替ブロックに格納先を移動させ、消去されたブロックは代替ブロックとして再利用する。このとき、代替ブロックごとに消去回数が記録される。そこで、代替ブロックの種類を選択した後、消去回数の少ない代替ブロックを優先的に割り当てるようにしてもよい。消去回数の少ない代替ブロックを優先的に割り当てることによって、ブロックごとの消去回数が平準化され、SSD100の長寿命化を図ることができる。なお、代替ブロックの種類を判定する指標として、一定期間における消去回数を取得することができないため、前回の消去からの経過時間を利用するとよい。
SSDコントローラ101のプロセッサ105は、SLC代替ブロックリスト205又はMLC代替ブロックリスト206から代替されたブロックの物理ブロックアドレス203を削除する(ステップ382)。
SSDコントローラ101のプロセッサ105は、ブロック情報テーブル207を参照し、消去されたブロックの消去回数カウンタ209の値が閾値以上であるか否かを判定する(ステップ383)。
SSDコントローラ101のプロセッサ105は、消去されたブロックの消去回数カウンタ209の値が閾値以上である場合には(ステップ383の結果が「Yes」)、消去されたブロックが寿命ブロックであると判定することができる。さらに、代替ブロックカウンタの該当する個数212を1減らし、不良ブロックカウンタの該当する個数212を1増やす(ステップ384)。
SSDコントローラ101のプロセッサ105は、消去されたブロックの消去回数カウンタ209の値が閾値を超えていない場合には(ステップ383の結果が「No」)、消去されたブロックを代替ブロックとして再利用できるため、SLC代替ブロックリスト205又はMLC代替ブロックリスト206に消去されたブロックの物理アドレスを登録する(ステップ385)。
本発明の第1から第3の実施の形態におけるブロックの代替処理では、ブロックが寿命となった時点でブロックを代替していたが、第4の実施の形態ではブロック代替処理がブロックを消去するたびに実行する。
したがって、本発明の第4の実施の形態によれば、ブロックの代替処理をきめ細かく実行することができるため、SSD又はストレージ装置のさらなる長寿命化を図ることができる。
本発明の第1の実施の形態のフラッシュメモリを用いた記憶装置であるSSDの一例を示すブロック図である。 本発明の第1の実施の形態のブロック管理情報の一例を示す図である。 本発明の第1の実施の形態の書き込み処理の手順の一例を示すフローチャートである。 本発明の第1の実施の形態の寿命ブロック代替処理の手順の一例を示すフローチャートである。 本発明の第1の実施の形態のブロック代替処理の手順の一例を示すフローチャートである。 本発明の第1の実施の形態の代替ブロックを選択するパターンを説明する図である。 本発明の第2の実施の形態の計算機システムの構成の一例を示すブロック図である。 本発明の第2の実施の形態のブロック管理情報の一例を示す図である。 本発明の第2の実施の形態の寿命ブロック代替処理の手順の一例を示すフローチャートである。 本発明の第2の実施の形態のストレージ装置のフラッシュメモリパッケージで構成されたRAIDグループの一例を示す図である。 本発明の第3の実施の形態の計算機システムの構成の一例を示すブロック図である。 本発明の第3の実施の形態のSSD管理情報の一例を示す図である。 本発明の第3の実施の形態における寿命SSDの代替処理の手順の一例を示すフローチャートである。 本発明の第3の実施の形態のSSD代替処理の手順の一例を示すフローチャートである。 本発明の第4の実施の形態の消去ブロック代替処理の手順の一例を示すフローチャートである。
符号の説明
100 SSD
101 SSDコントローラ
102 SLCフラッシュメモリモジュール
103 MLCフラッシュメモリモジュール
104 ブロック
105 プロセッサ
106 インターフェース
107 SSD(S)
108 SSD(M)
200、250 ブロック管理情報
201 ブロック変換テーブル
202 論理ブロックアドレス
203 物理ブロックアドレス
204 SLC/MLC ID
205 SLC代替ブロックリスト
206 MLC代替ブロックリスト
207 ブロック情報テーブル
208 書き換え頻度
209 消去回数カウンタ
210 寿命フラグ
211 代替ブロックカウンタ
212 個数
213 不良ブロックカウンタ
214 マッピングテーブル
215 WWN
216 Port#
217 LUN
218 LDEV#
219 SSD内論理ブロックアドレス
220 SSD変換テーブル
221 SSD番号
222 代替SSD(S)リスト
223 代替SSD(M)リスト
224 SSD情報テーブル
225 代替ブロック数
226 代替SSDカウンタ
227 不良SSDカウンタ
230 閾値テーブル
231 種別
232 閾値
270 SSD管理情報
400 ストレージ装置
401 ホスト計算機
402 管理サーバ
403 ストレージコントローラ
404 ポート
405 プロセッサ
406 キャッシュメモリ
407 メインメモリ
408 SLCパッケージ
409 MLCパッケージ
410 追加用パッケージスロット
411 追加用SSDスロット
430 内部ネットワーク

Claims (15)

  1. 複数の記憶素子によって構成される半導体記憶媒体と、前記半導体記憶媒体に接続されるコントローラと、を備える記憶装置であって、
    前記記憶素子には、格納されたデータを消去することが可能な回数の上限値があり、
    前記複数の記憶素子には、第1の記憶素子と、前記第1の記憶素子よりも前記上限値が小さい第2の記憶素子とが含まれ、
    前記コントローラは、インターフェース、前記インターフェースに接続されるプロセッサ、及び前記プロセッサに接続されるメモリを備え、
    前記メモリには、前記半導体記憶媒体を管理する記憶媒体管理情報が記憶され、
    前記記憶媒体管理情報は、データの格納先として指定される第1のアドレスと、前記データが格納される領域の第2のアドレスとの対応を含む領域変換情報を含み、前記格納されたデータの書き換え頻度が領域ごとに記録され、
    前記コントローラは、
    前記第1のアドレスに対応する領域を選択し、
    前記選択された領域の書き換え頻度を前記記憶媒体管理情報から取得し、
    前記取得された書き換え頻度が所定の第1の閾値以上であるか否かを判定し、
    前記取得された書き換え頻度が前記所定の第1の閾値以上の場合には、前記第1の記憶素子によって提供される第1の領域を選択し、
    前記取得された書き換え頻度が前記所定の第1の閾値よりも小さい場合には、前記第2の記憶素子によって提供される第2の領域を選択し、
    前記第1のアドレスに対応する前記第2のアドレスに、前記選択された第1の領域又は第2の領域の第2のアドレスを設定することによって、前記領域変換情報を更新することを特徴とする記憶装置。
  2. 前記コントローラは、データの書き込み要求を受け付けた場合には、前記データの書き込み要求に含まれる第1のアドレスに対応する領域を選択することを特徴とする請求項1に記載の記憶装置。
  3. 前記コントローラは、前記第1のアドレスに対応する領域を周期的に選択することを特徴とする請求項1に記載の記憶装置。
  4. 前記記憶媒体管理情報は、前記半導体記憶媒体に格納されたデータの消去回数が領域ごとに記録され、
    前記コントローラは、
    前記選択された領域の消去回数を前記記憶媒体管理情報から取得し、
    前記取得された消去回数が所定の第2の閾値以上の場合には、前記選択された領域について、前記取得された書き換え頻度が前記所定の第1の閾値以上であるか否かを判定することを特徴とする請求項1に記載の記憶装置。
  5. 前記記憶媒体管理情報は、
    新たにデータの書き込みが可能であって、かつ、前記第1のアドレスに対応しない領域の一覧を含む代替領域リストを含み、
    前記半導体記憶媒体に格納されたデータの消去回数が領域ごとに記録され、
    前記コントローラは、
    前記代替領域リストから前記第1の領域又は前記第2の領域を選択し、
    前記選択された領域の消去回数を前記記憶媒体管理情報から取得し、
    前記取得された消去回数が所定の第2の閾値よりも小さい場合には、前記代替領域リストに前記選択された領域を追加することを特徴とする請求項1に記載の記憶装置。
  6. 前記書き換え頻度は、所定の時間内にデータが消去された回数であることを特徴とする請求項1に記載の記憶装置。
  7. 前記書き換え頻度は、前記記憶媒体管理情報から当該書き換え頻度が取得された時点で、対応する領域に格納されたデータが最後に消去された時刻に基づいて設定されることを特徴とする請求項1に記載の記憶装置。
  8. 前記記憶素子は、フラッシュメモリチップであって、
    前記半導体記憶媒体は、前記フラッシュメモリチップによって構成されるフラッシュメモリモジュールであって、
    前記記憶装置は、前記インターフェースを介して計算機に接続されるフラッシュメモリドライブであることを特徴とする請求項1に記載の記憶装置。
  9. 前記記憶素子は、フラッシュメモリチップであって、
    前記半導体記憶媒体は、前記フラッシュメモリチップによって構成されるフラッシュメモリモジュールであって、
    前記記憶装置は、ホスト計算機によってデータが読み書きされるストレージシステムであることを特徴とする請求項1に記載の記憶装置。
  10. 前記記憶素子は、フラッシュメモリチップであって、
    前記半導体記憶媒体は、前記フラッシュメモリチップによって構成されるフラッシュメモリモジュールを含むフラッシュメモリドライブであって、
    前記記憶装置は、ホスト計算機によってデータが読み書きされるストレージシステムであることを特徴とする請求項1に記載の記憶装置。
  11. 複数の記憶素子によって構成される半導体記憶媒体と、前記半導体記憶媒体に接続されるコントローラと、を備える記憶装置におけるデータ格納領域管理方法であって、
    前記記憶素子には、格納されたデータを消去することが可能な回数の上限値があり、
    前記複数の記憶素子には、第1の記憶素子と、前記第1の記憶素子よりも前記上限値が小さい第2の記憶素子とが含まれ、
    前記コントローラは、インターフェース、前記インターフェースに接続されるプロセッサ、及び前記プロセッサに接続されるメモリを備え、
    前記メモリには、前記半導体記憶媒体を管理する記憶媒体管理情報が記憶され、
    前記記憶媒体管理情報は、データの格納先として指定される第1のアドレスと、前記データが格納される領域の第2のアドレスとの対応を含む領域変換情報を含み、前記格納されたデータの書き換え頻度が領域ごとに記録され、
    前記方法は、
    前記コントローラが、前記第1のアドレスに対応する領域を選択し、
    前記コントローラが、前記選択された領域の書き換え頻度を前記記憶媒体管理情報から取得し、
    前記コントローラが、前記取得された書き換え頻度が所定の第1の閾値以上であるか否かを判定し、
    前記コントローラが、前記取得された書き換え頻度が前記所定の第1の閾値以上の場合には、前記第1の記憶素子によって提供される第1の領域を選択し、
    前記コントローラが、前記取得された書き換え頻度が前記所定の第1の閾値よりも小さい場合には、前記第2の記憶素子によって提供される第2の領域を選択し、
    前記コントローラが、前記第1のアドレスに対応する前記第2のアドレスに、前記選択された第1の領域又は第2の領域の第2のアドレスを設定することによって、前記領域変換情報を更新することを特徴とするデータ格納領域管理方法。
  12. 前記方法は、前記コントローラが、データの書き込み要求を受け付けた場合には、前記データの書き込み要求に含まれる第1のアドレスに対応する領域を選択することを特徴とする請求項11に記載のデータ格納領域管理方法。
  13. 前記記憶媒体管理情報は、前記半導体記憶媒体に格納されたデータの消去回数が領域ごとに記録され、
    前記方法は、
    前記コントローラが、前記選択された領域の消去回数を前記記憶媒体管理情報から取得し、
    前記コントローラが、前記取得された消去回数が所定の第2の閾値以上の場合には、前記選択された領域について、前記取得された書き換え頻度が前記所定の第1の閾値以上であるか否かを判定することを特徴とする請求項11に記載のデータ格納領域管理方法。
  14. 前記記憶媒体管理情報は、
    新たにデータの書き込みが可能であって、かつ、前記第1のアドレスに対応しない領域の一覧を含む代替領域リストを含み、
    前記半導体記憶媒体に格納されたデータの消去回数が領域ごとに記録され、
    前記方法は、
    前記コントローラが、前記代替領域リストから前記第1の領域又は前記第2の領域を選択し、
    前記コントローラが、前記選択された領域の消去回数を前記記憶媒体管理情報から取得し、
    前記コントローラが、前記取得された消去回数が所定の第2の閾値よりも小さい場合には、前記代替領域リストに前記選択された領域を追加することを特徴とする請求項11に記載のデータ格納領域管理方法。
  15. 複数のフラッシュメモリチップによって構成されるフラッシュメモリモジュールと、前記フラッシュメモリモジュールに接続されるコントローラと、を備える記憶装置であって、
    前記フラッシュメモリチップには、格納されたデータを消去することが可能な回数の上限値があり、
    前記複数のフラッシュメモリチップには、第1のフラッシュメモリチップと、前記第1のフラッシュメモリチップよりも前記上限値が小さい第2のフラッシュメモリチップとが含まれ、
    前記フラッシュメモリチップは、所定のサイズのブロックごとに管理され、
    前記コントローラは、インターフェース、前記インターフェースに接続されるプロセッサ、及び前記プロセッサに接続されるメモリを備え、
    前記メモリには、前記ブロックを管理するブロック管理情報が記憶され、
    前記ブロック管理情報は、
    データの格納先として指定される論理アドレスと、前記データが格納されるブロックの物理的なアドレスである物理アドレスとの対応を含むブロック変換情報、及び新たにデータの書き込みが可能であって、かつ、前記論理アドレスに対応しないブロックの一覧を含む代替ブロックリストが含まれ、
    前記ブロックに格納されたデータが所定の時間内に消去された回数である書き換え頻度と、前記ブロックに格納されたデータの消去回数が記録され、
    前記コントローラは、
    前記フラッシュメモリモジュールに対するデータの書き込み要求を受け付けた場合には、前記ブロック変換情報に基づいて、前記データの書き込み要求に含まれる前記論理アドレスに対応する前記物理アドレスを特定することによって、前記要求されたデータを書き込むブロックを特定し、
    前記特定されたブロックの書き換え頻度を前記記憶媒体管理情報から取得し、
    前記取得された書き換え頻度が所定の第1の閾値以上であるか否かを判定し、
    前記取得された書き換え頻度が前記所定の第1の閾値以上の場合には、前記代替ブロックリストから、前記第1のフラッシュメモリチップに含まれる第1のブロックを選択し、
    前記選択された第1のブロックに前記要求されたデータを書き込み、
    前記取得された書き換え頻度が前記所定の第1の閾値よりも小さい場合には、前記代替ブロックリストから、前記第2のフラッシュメモリチップに含まれる第2のブロックを選択し、
    前記選択された第2のブロックに前記要求されたデータを書き込み、
    前記要求されたデータの書き込みが完了した後、前記データの書き込み要求に含まれる論理アドレスに対応する物理アドレスに、前記要求されたデータが書き込まれたブロックの物理アドレスを設定することによって、前記ブロック変換情報を更新することを特徴とする記憶装置。
JP2008279661A 2008-10-30 2008-10-30 記憶装置及びデータ格納領域管理方法 Expired - Fee Related JP5192352B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2008279661A JP5192352B2 (ja) 2008-10-30 2008-10-30 記憶装置及びデータ格納領域管理方法
US12/338,138 US8015371B2 (en) 2008-10-30 2008-12-18 Storage apparatus and method of managing data storage area
US13/193,130 US8108595B2 (en) 2008-10-30 2011-07-28 Storage apparatus and method of managing data storage area
US13/361,430 US8489806B2 (en) 2008-10-30 2012-01-30 Storage apparatus and method of managing data storage area

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008279661A JP5192352B2 (ja) 2008-10-30 2008-10-30 記憶装置及びデータ格納領域管理方法

Publications (2)

Publication Number Publication Date
JP2010108246A true JP2010108246A (ja) 2010-05-13
JP5192352B2 JP5192352B2 (ja) 2013-05-08

Family

ID=42132874

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008279661A Expired - Fee Related JP5192352B2 (ja) 2008-10-30 2008-10-30 記憶装置及びデータ格納領域管理方法

Country Status (2)

Country Link
US (3) US8015371B2 (ja)
JP (1) JP5192352B2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012137885A (ja) * 2010-12-24 2012-07-19 Toshiba Corp データ記憶装置、メモリ制御装置及びメモリ制御方法
WO2012157029A1 (en) 2011-05-19 2012-11-22 Hitachi, Ltd. Storage control apparatus and management method for semiconductor-type storage device
US9021183B2 (en) 2010-12-24 2015-04-28 Kabushiki Kaisha Toshiba Data storage apparatus and apparatus and method for controlling nonvolatile memories
US9032245B2 (en) 2011-08-30 2015-05-12 Samsung Electronics Co., Ltd. RAID data management method of improving data reliability and RAID data storage device
WO2016067328A1 (ja) * 2014-10-27 2016-05-06 株式会社日立製作所 不揮発メモリデバイスを有するストレージ装置、及び、不揮発メモリデバイス
WO2016135872A1 (ja) * 2015-02-25 2016-09-01 株式会社日立製作所 ストレージ装置及び記憶デバイス
JP2019106224A (ja) * 2019-04-04 2019-06-27 株式会社日立製作所 ストレージシステム及びデータ制御方法
JP2022506259A (ja) * 2018-11-01 2022-01-17 マイクロン テクノロジー,インク. メモリ内のデータ再配置

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010015195A (ja) * 2008-06-30 2010-01-21 Toshiba Corp 記憶制御装置及び記憶制御方法
KR101627321B1 (ko) * 2009-01-13 2016-06-03 삼성전자주식회사 I/o 리퀘스트 핸들링 방법 및 이를 이용한 솔리드 스테이트 드라이브
US20100191896A1 (en) * 2009-01-23 2010-07-29 Magic Technologies, Inc. Solid state drive controller with fast NVRAM buffer and non-volatile tables
US20100198947A1 (en) * 2009-02-04 2010-08-05 Raytheon Company System and Method for Dynamically Processing Electronic Data Between Multiple Data Sources
KR20100107089A (ko) * 2009-03-25 2010-10-05 삼성전자주식회사 저장 장치 및 이를 포함하는 데이터 저장 시스템
US8639877B2 (en) * 2009-06-30 2014-01-28 International Business Machines Corporation Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks
US20100332922A1 (en) * 2009-06-30 2010-12-30 Mediatek Inc. Method for managing device and solid state disk drive utilizing the same
US7948798B1 (en) 2009-07-22 2011-05-24 Marvell International Ltd. Mixed multi-level cell and single level cell storage device
JP5437373B2 (ja) 2009-07-22 2014-03-12 株式会社日立製作所 複数のフラッシュパッケージを有するストレージシステム
US8977894B2 (en) * 2009-08-21 2015-03-10 International Business Machines Corporation Operating a data storage system
US8234520B2 (en) * 2009-09-16 2012-07-31 International Business Machines Corporation Wear leveling of solid state disks based on usage information of data and parity received from a raid controller
US20110252215A1 (en) * 2010-04-09 2011-10-13 International Business Machines Corporation Computer memory with dynamic cell density
KR101666987B1 (ko) * 2010-04-20 2016-10-17 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US11614893B2 (en) * 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
JP2012118739A (ja) * 2010-11-30 2012-06-21 Toshiba Corp 記憶装置、及び制御方法
KR101830808B1 (ko) * 2011-11-04 2018-02-22 삼성전자주식회사 메모리 시스템 및 그것의 데이터 저장 방법
JP5790532B2 (ja) * 2012-02-13 2015-10-07 セイコーエプソン株式会社 電子機器、及びメモリー制御方法
KR101959567B1 (ko) * 2012-05-14 2019-03-18 에스케이하이닉스 주식회사 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 프로그램 방법
US8976478B1 (en) 2012-10-10 2015-03-10 Seagate Technology Llc Band rewrites based on error scan counts
EP2880519A1 (en) 2012-10-12 2015-06-10 Hitachi, Ltd. Storage apparatus and data management method
US20140181437A1 (en) * 2012-12-26 2014-06-26 Unisys Corporation Equalizing wear on mirrored storage devices through file system controls
US20140181430A1 (en) * 2012-12-26 2014-06-26 Unisys Corporation Equalizing wear on storage devices through file system controls
US20140181368A1 (en) * 2012-12-26 2014-06-26 Unisys Corporation Equalizing wear on storage devices with write counters
JP6155768B2 (ja) * 2013-03-29 2017-07-05 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム及びストレージ制御方法
US9430324B2 (en) * 2013-05-24 2016-08-30 Rambus Inc. Memory repair method and apparatus based on error code tracking
KR20150049772A (ko) * 2013-10-31 2015-05-08 에스케이하이닉스 주식회사 데이터 처리 시스템 및 그것의 동작 방법
JP2015204126A (ja) * 2014-04-16 2015-11-16 株式会社東芝 半導体記憶装置
TWI490871B (zh) * 2014-07-11 2015-07-01 Phison Electronics Corp 防止讀取干擾的方法、記憶體控制電路單元與記憶體儲存裝置
CN105320464B (zh) * 2014-07-21 2018-07-31 群联电子股份有限公司 防止读取干扰的方法、存储器控制电路单元与存储装置
JP6139807B2 (ja) * 2014-12-04 2017-05-31 株式会社東芝 ストレージ装置、ストレージ装置の制御方法、及びプログラムを記憶するコンピュータ読み取り可能な不揮発性記憶媒体
US10191841B2 (en) * 2015-07-06 2019-01-29 Shannon Systems Ltd. Host device, access system, and access method
CN106339179B (zh) * 2015-07-06 2020-11-17 上海宝存信息科技有限公司 主机装置、存取系统、以及存取方法
US10416887B1 (en) 2016-05-18 2019-09-17 Marvell International Ltd. Hybrid storage device and system
US10056147B1 (en) 2016-06-02 2018-08-21 Marvell International Ltd. Two-level storage device with faster front end
TWI640867B (zh) * 2017-05-02 2018-11-11 慧榮科技股份有限公司 資料儲存裝置及其操作方法
US11609718B1 (en) 2017-06-12 2023-03-21 Pure Storage, Inc. Identifying valid data after a storage system recovery
US11592991B2 (en) 2017-09-07 2023-02-28 Pure Storage, Inc. Converting raid data between persistent storage types
US10417092B2 (en) * 2017-09-07 2019-09-17 Pure Storage, Inc. Incremental RAID stripe update parity calculation
CN116431072A (zh) 2017-06-12 2023-07-14 净睿存储股份有限公司 集成到大容量存储设备的可访问快速耐久存储
US20180357017A1 (en) 2017-06-12 2018-12-13 Pure Storage, Inc. Accessible fast durable storage integrated into a bulk storage device
US10776268B2 (en) * 2018-04-19 2020-09-15 Western Digital Technologies, Inc. Priority addresses for storage cache management
US10635585B2 (en) 2018-05-15 2020-04-28 Western Digital Technologies, Inc. On-chip copy with data folding in three-dimensional non-volatile memory array
US10671314B2 (en) * 2018-06-07 2020-06-02 Circuit Blvd., Inc. Method of copying data between open-channel solid state drives (SSDs) and an apparatus performing the same
CA3104057A1 (en) 2018-06-19 2019-12-26 Ancestry.Com Dna, Llc Filtering genetic networks to discover populations of interest
JP2020035128A (ja) * 2018-08-29 2020-03-05 キオクシア株式会社 メモリシステム
KR20200060053A (ko) * 2018-11-22 2020-05-29 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US11429615B2 (en) 2019-12-20 2022-08-30 Ancestry.Com Dna, Llc Linking individual datasets to a database

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05151097A (ja) * 1991-11-28 1993-06-18 Fujitsu Ltd 書換回数制限型メモリのデータ管理方式
JPH10320984A (ja) * 1997-05-15 1998-12-04 Sharp Corp 記憶装置
JP2004133677A (ja) * 2002-10-10 2004-04-30 Renesas Technology Corp 記憶装置
JP2008009594A (ja) * 2006-06-28 2008-01-17 Seiko Epson Corp 半導体記憶装置管理システム、半導体記憶装置、ホスト装置、プログラム、半導体記憶装置の管理方法
WO2008073421A2 (en) * 2006-12-11 2008-06-19 Marvell World Trade Ltd. Hybrid non-volatile solid state memory system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007305210A (ja) 2006-05-10 2007-11-22 Toshiba Corp 半導体記憶装置
US7849275B2 (en) * 2007-11-19 2010-12-07 Sandforce, Inc. System, method and a computer program product for writing data to different storage devices based on write frequency
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US20100017649A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporation Data storage system with wear-leveling algorithm
CN101673245B (zh) * 2008-09-09 2016-02-03 株式会社东芝 包括存储器管理装置的信息处理装置和存储器管理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05151097A (ja) * 1991-11-28 1993-06-18 Fujitsu Ltd 書換回数制限型メモリのデータ管理方式
JPH10320984A (ja) * 1997-05-15 1998-12-04 Sharp Corp 記憶装置
JP2004133677A (ja) * 2002-10-10 2004-04-30 Renesas Technology Corp 記憶装置
JP2008009594A (ja) * 2006-06-28 2008-01-17 Seiko Epson Corp 半導体記憶装置管理システム、半導体記憶装置、ホスト装置、プログラム、半導体記憶装置の管理方法
WO2008073421A2 (en) * 2006-12-11 2008-06-19 Marvell World Trade Ltd. Hybrid non-volatile solid state memory system

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8707134B2 (en) 2010-12-24 2014-04-22 Kabushiki Kaisha Toshiba Data storage apparatus and apparatus and method for controlling nonvolatile memories
US9021183B2 (en) 2010-12-24 2015-04-28 Kabushiki Kaisha Toshiba Data storage apparatus and apparatus and method for controlling nonvolatile memories
JP2012137885A (ja) * 2010-12-24 2012-07-19 Toshiba Corp データ記憶装置、メモリ制御装置及びメモリ制御方法
WO2012157029A1 (en) 2011-05-19 2012-11-22 Hitachi, Ltd. Storage control apparatus and management method for semiconductor-type storage device
US9032245B2 (en) 2011-08-30 2015-05-12 Samsung Electronics Co., Ltd. RAID data management method of improving data reliability and RAID data storage device
US10198318B2 (en) 2014-10-27 2019-02-05 Hitachi, Ltd. Storage apparatus having nonvolatile memory device, and nonvolatile memory device
WO2016067328A1 (ja) * 2014-10-27 2016-05-06 株式会社日立製作所 不揮発メモリデバイスを有するストレージ装置、及び、不揮発メモリデバイス
WO2016135872A1 (ja) * 2015-02-25 2016-09-01 株式会社日立製作所 ストレージ装置及び記憶デバイス
JPWO2016135872A1 (ja) * 2015-02-25 2017-08-03 株式会社日立製作所 ストレージ装置及び記憶デバイス
US10725865B2 (en) 2015-02-25 2020-07-28 Hitachi Ltd. Storage unit and storage device
JP2022506259A (ja) * 2018-11-01 2022-01-17 マイクロン テクノロジー,インク. メモリ内のデータ再配置
US11983403B2 (en) 2018-11-01 2024-05-14 Micron Technology, Inc. Data relocation in memory
JP2019106224A (ja) * 2019-04-04 2019-06-27 株式会社日立製作所 ストレージシステム及びデータ制御方法

Also Published As

Publication number Publication date
US8489806B2 (en) 2013-07-16
JP5192352B2 (ja) 2013-05-08
US8108595B2 (en) 2012-01-31
US20100115183A1 (en) 2010-05-06
US20120191903A1 (en) 2012-07-26
US8015371B2 (en) 2011-09-06
US20110283058A1 (en) 2011-11-17

Similar Documents

Publication Publication Date Title
JP5192352B2 (ja) 記憶装置及びデータ格納領域管理方法
US11847350B2 (en) Storage system, information processing system and method for controlling nonvolatile memory
JP5342014B2 (ja) 複数のフラッシュパッケージを有するストレージシステム
JP5437373B2 (ja) 複数のフラッシュパッケージを有するストレージシステム
EP2112598B1 (en) Storage system
JP5242264B2 (ja) データ制御装置、ストレージシステムおよびプログラム
US10459639B2 (en) Storage unit and storage system that suppress performance degradation of the storage unit
US8832371B2 (en) Storage system with multiple flash memory packages and data control method therefor
US20170262365A1 (en) Storage system and information processing system for controlling nonvolatile memory
US9092320B2 (en) Storage system which includes non-volatile semiconductor storage medium, and storage control method of storage system
JP6216897B2 (ja) ストレージシステム
US20110119442A1 (en) Non-volatile write cache for a data storage system
US9891989B2 (en) Storage apparatus, storage system, and storage apparatus control method for updating stored data stored in nonvolatile memory
TWI501252B (zh) 用於控制保留區的固態儲存系統及其控制方法
JP6507261B2 (ja) ストレージ装置、記録媒体、および記憶制御方法
WO2016181528A1 (ja) ストレージ装置
JPWO2008018258A1 (ja) 記憶装置
JP2010152778A (ja) 半導体記憶装置
JP5768118B2 (ja) 複数のフラッシュパッケージを有するストレージシステム
JPWO2018142622A1 (ja) 計算機
WO2018002999A1 (ja) 記憶デバイス及びストレージ装置
WO2018051387A1 (ja) 情報処理システムおよびデータ格納方法
JP6138318B2 (ja) 複数のフラッシュパッケージを有するストレージシステム
JP5945040B2 (ja) 複数のフラッシュパッケージを有するストレージシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120921

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121002

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121203

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: 20130108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130131

R150 Certificate of patent or registration of utility model

Ref document number: 5192352

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160208

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees