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

記憶装置及び記憶方法 Download PDF

Info

Publication number
JP4932427B2
JP4932427B2 JP2006286108A JP2006286108A JP4932427B2 JP 4932427 B2 JP4932427 B2 JP 4932427B2 JP 2006286108 A JP2006286108 A JP 2006286108A JP 2006286108 A JP2006286108 A JP 2006286108A JP 4932427 B2 JP4932427 B2 JP 4932427B2
Authority
JP
Japan
Prior art keywords
flash memory
drive
logical address
semiconductor memory
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006286108A
Other languages
English (en)
Other versions
JP2008102819A (ja
Inventor
潤 北原
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 JP2006286108A priority Critical patent/JP4932427B2/ja
Priority to US11/622,168 priority patent/US7757038B2/en
Priority to EP07251753A priority patent/EP1914757A3/en
Publication of JP2008102819A publication Critical patent/JP2008102819A/ja
Priority to US12/791,915 priority patent/US20100241797A1/en
Application granted granted Critical
Publication of JP4932427B2 publication Critical patent/JP4932427B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • G11C29/765Masking faults in memories by using spares or by reconfiguring using address translation or modifications in solid state disks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Memory System (AREA)

Description

本発明は、記憶装置及び記憶方法に関し、特にフラッシュメモリを用いた記憶システムの高信頼化のためのフラッシュメモリの制御方法、実装方法に関する。
不揮発性半導体メモリとして、消去単位や書き込み単位(機能容量単位)があらかじめ定められているフラッシュメモリが存在する。フラッシュメモリは、酸化シリコンなどの酸化物の絶縁体でポリシリコンなどの導体を包んだ、フローティングゲート構造を持ち、フローティングゲートに存在する電荷の有無で、情報を記録するものである。フローティングゲート構造以外に、電荷を特定の場所に確保する構造を用いたものでもよい。
電荷を注入したり電荷を引き抜いたりするときに、フローティングゲート構造の場合、酸化絶縁体を絶縁破壊しながら電荷を移動させたり、酸化膜のトンネル効果を用いて電荷を移動させる。このため、絶縁体が劣化してゆく。このため、フラッシュメモリには、寿命が存在し、消去単位の容量毎に消去回数や書き換え回数に限度が存在する。
消去単位容量毎に寿命のある不揮発性半導体メモリの寿命を延ばす方法としては、各消去単位毎の消去回数チップ全体にわたって均等にする方法や、代替領域を設けて寿命の尽きた消去単位部分を肩代わりし、一部分の消去単位が利用できなくなっても、メモリ装置としては問題なく動作させ続ける方法が存在する。
しかし、これらの方法も寿命を延長することは出来ても、無くすことは出来ない。必ず寿命が存在し、利用し続ければ必ず寿命を迎える。
従来技術で、フラッシュメモリの寿命を延ばす技術は存在するが、寿命を無くすことは不可能である。このため、フラッシュメモリを用いた記憶システムでは、フラッシュメモリの一部に寿命が尽きた部分が生じても、記憶システムとしてはそれを補う機構が必要になる。このとき、フラッシュメモリの一部分が消去不可能や書き込み不可能になる障害が発生しているが、この部分に新たなデータを書き込むことが出来ないだけであり、既に記憶しているデータを読み出すことは、問題なくできる。よって、消去不能や書き込み不能になった部分のみ、ほかの手段で肩代わりし、残りは使い続けるのが効率的である。
このため、フレッシュメモリの一部に障害が起きた場合、障害が起きた箇所を他の部分に肩代わりさせるが、どの部分に障害が起きて、他のどの部分に肩代わりさせたかを管理する必要が生じる。よって、フラッシュメモリの各消去単位がどの論理アドレスを担当しているか、ある論理アドレスが指示されたとき対応するデータがどこのフラッシュメモリに存在するのか、消去単位毎に論理アドレス物理アドレスの管理を行う必要が生ずる。
この論理アドレスと物理アドレスの管理を、上位のシステムで行うと管理テーブルが膨大になり、必要なメモリ等の実装コストが大きくなる課題が存在する。また、コストを下げようとすると、論理アドレスと物理アドレスの変換に時間がかかり性能が出なくなる課題が存在する。
運用保守で外部記憶装置の寿命を迎えた消去単位を含むメモリ素子を交換し、容量を維持させる方法も存在するが、メモリ素子の一部が使用不可能になっただけでメモリ素子を交換するのは効率が悪い課題がある。
本発明では、コントローラと、複数の第一のフラッシュメモリドライブからなる第一のRAIDグループと、複数の第二のフラッシュメモリドライブからなる第二のRAIDグループと、第三のフラッシュメモリドライブと、を有し、ホストコンピュータに接続される記憶装置において、前記第一、第二及び第三のフラッシュメモリドライブのそれぞれは、消去単位である複数のブロックを有し、前記コントローラは、前記第一のRAIDグループに含まれる複数の第一のフラッシュメモリドライブに、書き込み寿命が尽きて書き込み不可と判断されるブロックが存在する場合、前記書き込み不可のブロックを前記第三のフラッシュメモリドライブのブロックに代替させ、前記第一のRAIDグループに、前記第三のフラッシュメモリドライブを追加し、前記ホストコンピュータからアクセス要求を受信した場合、前記ホストコンピュータから受信した論理アドレスに含まれる第一の論理アドレスに基づいて、ホストコンピュータからアクセス対象のデータが格納されるRAIDグループを特定し、前記特定されたRAIDグループが第一のRAIDグループである場合、前記受信した論理アドレスに含まれるフラッシュメモリドライブ内のデータ格納位置を示す第二の論理アドレスを前記第一のRAIDグループに含まれる各フラッシュメモリドライブへ送信し、前記各フラッシュメモリドライブは、受信した前記第二の論理アドレスに対応するデータが格納されているかを判断し、前記データが格納されているフラッシュメモリドライブは、前記データが格納されていることを示す応答を前記コントローラに送信し、前記コントローラは、前記応答を送信したフラッシュメモリドライブに対してアクセスする構成をとったものである。
また、前記フラッシュメモリドライブが、半導体メモリ素子全体容量よりも小さい機能容量単位を備え、かつ、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子の複数個と、該半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するメモリコントローラとで構成されるメモリモジュールであり、一のメモリモジュールの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のメモリモジュールの半導体メモリ素子の機能容量単位に代替させる構成をとったものである。
さらに、前記フラッシュメモリドライブが、半導体メモリ素子全体容量よりも小さい機能容量単位を備え、かつ、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子の複数個、及び該半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するメモリコントローラで構成されるメモリモジュールの複数個と、該メモリモジュールの半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するドライブコントローラとで構成されるドライブであり、一のドライブのメモリモジュールの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のフラッシュメモリドライブのメモリモジュールの半導体メモリ素子の機能容量単位に代替させる構成をとったものである。
また、前記フラッシュメモリドライブの半導体メモリ素子に対して論理アドレスを与え、該フラッシュメモリドライブの半導体メモリ素子が該論理アドレスに対応するデータを格納しているか否かを、該フラッシュメモリドライブのメモリコントコーラ又はドライブコントローラが判断し、該判断の結果を元に、データを読み出すフラッシュメモリドライブの半導体メモリ素子が選択される構成をとったものである。
また、前記フラッシュメモリドライブの複数の半導体メモリ素子から一個ずつ書き込み単位を選択し、複数の書き込み単位で冗長構成をとっており、フラッシュメモリドライブのメモリコントコーラ又はドライブコントローラが書き込み要求を受け付けられるか否かの情報を回答し、該回答を元に、書き込みに対応可能なフラッシュメモリドライブの半導体メモリ素子が選択される構成をとったものである。
加えて、複数のフラッシュメモリドライブの半導体メモリ素子から一個ずつ書き込み単位を選択し、複数の書き込み単位で冗長構成をとっており、前記メモリコントローラ又はドライブコントローラは、冗長構成をとる際に、データの順序およびパリティ等データの種類やデータ並びの付随情報も同時に書き込み、読み出した際に、該付随情報を元に正しいデータを復元する構成をとったものである。
更に、前記フラッシュメモリドライブの前記メモリコントローラ又は前記ドライブコントローラは、半導体メモリ素子の機能容量単位毎に、論理アドレスとの対応関係の情報を保持し、半導体メモリ素子が追加された際に、追加された半導体メモリ素子の追加された分の論理アドレスとの対応関係の情報を作成する構成にしたものである。
本発明により、フラッシュメモリを用いた記憶装置において、フラッシュメモリチップ内に寿命が尽きるなど一部分に障害が生じても、障害が生じた分のフラッシュメモリを、フラッシュドライブや、フラッシュドライブ内のフラッシュモジュールで追加することで、記憶装置全体の容量を維持することが可能になる。
本発明を実施するための最良の形態を説明する。
本発明の記憶装置及び記憶方法の実施例について、図面を用いて説明する。
本発明の第一の実施例を、図1から図6および図8,9,11を用いて説明する。図1は、本実施例の記憶装置101の構成を示している。記憶装置101は、複数のフラッシュドライブ104と、記憶装置101内部にある複数のフラッシュドライブ104を制御する、RAIDコントローラ103で構成されている。また、記憶装置101は、RAIDコントローラ103を介して、ホストシステム102へ接続されている。
フラッシュドライブ104は、複数個のフラッシュメモリ素子107とフラッシュメモリコントローラ108を搭載したプリント基板であるフラッシュモジュール105を複数枚内蔵し、フラッシュドライブコントローラ106が、フラッシュモジュール105と上位制御部であるRAIDコントローラ104とのやり取りを仲介する。
信頼性を重視する記憶装置101では、フラッシュドライブ104を複数個備え、たとえば4個ずつでRAIDグループ201を構成する。RAIDコントローラ103は、RAIDグループ単位201に、論理アドレスを割り当てる。フラッシュドライブ104の中には、複数のフラッシュモジュール105が存在し、各フラッシュモジュールには、多数のフラッシュメモリ素子107が存在する。図2において、フラッシュメモリ素子202内部には、ブロックと呼ばれる消去単位203、ページと呼ばれる書き込み単位204が存在する。書き込み単位204はHDDでいうセクタに相当するが、複数セクタで書き込み単位204を構成してもよい。
フラッシュドライブ4台でRAID5を構成する場合を例にとると、RAIDコントローラ103は、フラッシュドライブ104を4個ずつでRAIDグループ201を構成し、複数のRAIDグループを管理する。RAIDグループの容量に合わせて、各RAIDグループに論理アドレスを割り当てる。この論理アドレスは、上位のホストシステム102与えられる論理アドレスと対応する。
また、RAIDグループ201内では、各フラッシュドライブ104から論理アドレスに対応するフラッシュメモリチップ202のある消去単位203のある書き込み単位204を選択し、4個の書き込み単位でパリティグループ205を構成する。RAIDコントローラは、パリティグループ205単位でデータの読み書きを行う。
図3において、あるパリティグループ内のひとつの書き込み単位301bが更新される場合を例にとると、更新された書き込み単位のデータと、RAIDのパリティデータを格納している書き込み単位301eのデータが新しく更新される。これはフラッシュメモリには書き換え回数の制限があるため、必要な箇所のみ書き換えを行い、書き換え回数を削減するのに有効であるためである。
フラッシュメモリを用いた記憶媒体の場合、消去に時間がかかるため、更新された新たなデータは、消去済みの他の消去単位の書き込み単位302へ書き込まれ、RAIDのパリティデータは、消去済みの他の消去単位の書き込み単位303へ書き込まれ、新たなパリティグループ304を構成することになる。
図4のように、外部記憶装置全体を見ると、各データは論理アドレスで管理されており、RAIDコントローラやフラッシュドライブコントローラで論理アドレスが具体的なドライブのアドレス、フラッシュメモリチップのアドレス、チップ内の消去単位アドレス、書き込み単位アドレスへと変換されてゆく。
図5において、フラッシュメモリには消去/書き換え回数に制限があるため、フラッシュメモリに多数の有効なデータが存在すると、書き込み可能な消去済みの消去単位が少なくなり、最終的にはなくなってしまう。このような状態になると、読み出しには対応可能であるが、書き込みには応じることが難しくなる。
そこで、図6のようにRAIDグループを構成しているフラッシュドライブ104b、c、d、eにもう一台のフラッシュドライブ601を追加し、書き込み対応できなくなったフラッシュドライブの代替を行わせる。代替といっても書き込みのみであり、更新されていないデータ読み出しには元から存在するフラッシュドライブを利用する。たとえば、パリティグループ602では、フラッシュドライブ104eへの書き込みに対応できなくなり、フラッシュドライブ104eへのデータをフラッシュドライブ601に書き込む。パリティグループ603では、フラッシュドライブ104dへの書き込みに対応できなくなり、フラッシュドライブ104dへのデータをフラッシュドライブ601に書き込む。といった動作を行う。
このような動作が可能になると、運用開始当初はフラッシュドライブ4台で運用し、フラッシュドライブに書き込み対応不能なフラッシュドライブが出てくる前に、新たなフラッシュドライブをRAIDグループに追加するだけで、書き込み対応不能なフラッシュドライブへの書き込みを代替し、外部記憶装置の容量を維持し、外部記憶装置全体の寿命を延ばせる効果がある。
図9のように、フラッシュドライブ104とRAIDコントローラ103は、論理アドレス902、データ所有信号907、書き込み可能信号901、書き込み要求904、無効化要求905、データ入力906、読み出しデータのパリティグループ内データ識別行うRAID位置908、書き込み時のパリティグループ内データ識別行うRAID位置903、状態情報910でインターフェースされる。状態情報910には、消去単位の最大消去回数、有効データの割合等のフラッシュメモリの使用状況の情報を含む。これらの信号および情報はそれぞれ独立した信号として接続される場合もあれば、ある通信インターフェースを介してやり取りされるコマンドとレスポンスの形態を取っても良い。
また、RAIDコントローラ103には、図8のようにRAIDグループ内に接続可能なドライブの中から任意の4個を選択し、データの並び替えを行うスイッチ機構802を設ける。
図4のように、従来は、RAIDコントローラがデータを書き込む場合、ホストシステム102から送られてきた論理アドレス401を、RAIDコントローラ103において、論理アドレス401をドライブアドレス403とドライブ内論理アドレス404へ変換する。ホストシステム102から送られてきたデータ402を、書き込み単位407 3個とパリティデータ408の計4個のデータに加工する。これら4つのデータを原則おのおの異なるフラッシュドライブに格納する。
従来は、論理アドレス401を用いて、ドライブアドレス403とドライブ内論理アドレス404を計算して求めることが出来た。しかし、本発明では、フラッシュメモリの消去限界回数に達した消去単位を持つようになったフラッシュドライブは、他のフラッシュドライブに書き込みを代替する場合があるので、論理アドレスに対応する書き込み単位が、どのフラッシュドライブに存在するのかを管理しなければならなくなる。上位のRAIDコントローラで管理することも考えられるが、書き込み単位毎にどのフラッシュドライブに存在するか管理する必要が生じて大規模な変換テーブルが必要になる。
そこで、RAIDコントローラは、ホストシステムからの論理アドレスの上位を判断し、どのRAIDグループに属するデータかを調べる。残りの論理アドレスがRAIDグループ内の論理アドレスとなり、これを、RAIDグループ内の全てのフラッシュドライブに送信する。
各フラッシュドライブは、受け取った論理アドレスに対応するデータを自分が所有しているかを判断し、所有しているか否かを所有信号907で回答するとともに、所有している場合、対応するデータを読み出しデータ909として出力し、またそのデータがパリティグループの3個のデータと1個のパリティのどのデータかをRAID位置908で出力する。
RAIDコントローラは、RAIDグループ内の複数のフラッシュドライブから所有信号を出力している4個のフラッシュドライブを選択し、おのおののRAID位置を確認後、データを並べ直しデータを復元する。
所有信号が3個のフラッシュドライブからしか得られなかった場合、RAIDの機能を用いて4個目を復元し、データを復元する。
所有信号が2個以下のフラッシュドライブからしか得られなかった場合、データの復元が不可能であり、エラーとして対処する。
所有信号が5個以上のフラッシュドライブから得られた場合、同じ論理アドレスの古いデータと新しいデータが含まれているので、時間や世代情報なども管理している場合にはそれらのデータを用いて、最新のデータを取り出し、データを復元する。時間や世代情報がない場合は、エラーとして対処する。
RAIDコントローラは、データを書き込む場合、RAIDグループ内の複数のフラッシュドライブより、書き込み対応可能なフラッシュドライブ4台を選択し、論理アドレス902とRAID位置情報903とデータ906を転送し、書き込み要求信号904を用いて書き込む。また、選択しなかったフラッシュドライブには、論理アドレス902と無効化信号905を転送する。フラッシュドライブは、論理アドレス902と無効化信号905を受け取った場合で、論理アドレス902に対応するデータを所有していた場合には、そのデータを無効化する。論理アドレス902に対応するデータを所有していない場合は、論理アドレス902や無効化信号905は無視する。
図11において、フラッシュドライブコントローラ106には、与えられた論理アドレスから実際のフラッシュメモリチップ内の書き込み単位のアドレス(物理アドレス)へ変換するテーブル1101と、物理アドレスから論理アドレスへ変換する変換テーブル1102を持つ。
論理アドレスを物理アドレスへ変換するテーブルには、論理アドレスに対応するRAID位置情報1103と物理アドレス1104が格納される。この変換テーブルは、フラッシュドライブが備える書き込み単位容量分のエントリーを備える。
データ書き込み時の動作を説明する。フラッシュドライブコントローラ106は、物理アドレス論理アドレス変換テーブルの書き込み単位情報格納部1105に空きがあれば、書き込み可能信号901を出力する。RAIDコントローラ103が、このフラッシュドライブを選択すると、論理アドレス902、RAID位置情報903、書き込み信号904、書き込みデータ906を入力してくる。フラッシュドライブコントローラ106は、入力された論理アドレスをエントリーとして、論理アドレス物理アドレス変換テーブル1101をアクセスし、入力されたRAID位置1103を登録するとともに、物理アドレス論理アドレス変換テーブル1102から空きの書き込み単位を探し、その物理アドレス1104を登録する。また、物理アドレス論理アドレス変換テーブル1102のデータの有効/無効/空きを示す書き込み単位情報格納部1105を有効にし、論理アドレスを論理アドレス格納部1106へ書き込み、物理アドレスに対応するフラッシュメモリ1108の書き込み単位1109へデータを書き込む。
データ読み出し時の動作を説明する。RAIDコントローラ103は、読み出し時論理アドレス902を入力してくる。フラッシュドライブコントローラ106は、入力された論理アドレスをエントリーにして、論理アドレス物理アドレス変換テーブル1101をアクセスし、有効な物理アドレス1104が登録されているかを確認する。登録されていれば、物理アドレス論理アドレス変換テーブル1102をアクセスし、データの有効/無効/空きを示す書き込み単位情報格納部1105を確認し、有効であれば、データ所有信号907と、RAID位置情報908、物理アドレスに対応するフラッシュメモリ1108の書き込み単位1109のデータ910を出力する。
データ書き込み時に、書き込み信号904の代わりに無効化信号905が入力されると、入力された論理アドレスから物理アドレスを求め、対応する物理アドレス論理アドレス変換テーブル1102の有効/無効/空きを示す書き込み単位情報格納部1105を無効にする。
物理アドレス論理アドレス変換テーブル1102では、複数の書き込み単位をまとめた、消去単位毎に、消去回数の情報1107を管理し、物理アドレス論理アドレス変換テーブル1102内の最大値を調べ、状況情報910として出力する。
図にはフラッシュメモリ1108が記載されているが、フラッシュドライブコントローラ106内に存在するわけではなく、物理アドレス論理アドレス変換テーブルとの対応や、データの流れを模式的に示すため記述したものである。また、物理アドレス論理アドレス変換テーブル自体も、フラッシュドライブコントローラに存在しても良いし、フラッシュメモリの一部の領域を用いて実現しても良い。論理アドレス物理アドレス変換テーブルもフラッシュドライブコントローラに存在しても良いし、フラッシュメモリの一部の領域を用いて実現しても良い。
RAIDコントローラは、パリティグループを構成するデータの一部を、更新や上書きする場合は、一旦そのパリティグループのデータを読み出し、部分的に更新や上書きを行い、パリティデータを生成してから、フラッシュドライブに書き戻す。
パリティグループを構成するデータ全てを上書きする場合、RAIDグループに存在するフラッシュドライブの中から、書き込み要求にこたえられるフラッシュドライブから4台を選択し、その4台に書き込み要求を与えるとともに、RAIDグループ内のその他のフラッシュドライブには、無効化要求を与える。
フラッシュドライブは、同じ論理アドレスへの書き込み要求がきた場合、論理アドレス物理アドレス変換テーブル1101の物理アドレスには、空き状態の書き込み単位の物理アドレスを登録し、物理アドレス論理アドレス変換テーブル1102の以前の物理アドレスの書き込み単位情報格納部1105を無効にする。
フラッシュドライブは、定期的または空きの書き込み単位が定められた値を下回ると、物理アドレス論理アドレス変換テーブルを調査し、消去単位の中の無効状態にある書き込み単位の割合が多い消去単位を探し出す。ある定められた割合よりも無効状態が多いと、この消去単位の有効状態のデータを空き状態の書き込み単位へ順番に転送し、元の消去単位内の書き込み単位の状態を全て無効にし、その消去単位を消去する。このとき、転送された書き込み単位の論理アドレスを確認し、論理アドレス物理アドレス変換テーブルを更新する。
RAIDコントローラが、RAIDグループ内から4個のフラッシュフラッシュドライブを選ぶ方法は任意であるが、優先順位をつけてもよい。最小単位1個のデータを書き込む場合、対応するパリティグループの、対応するデータ部分とパリティの2箇所更新し、2箇所を対応するフラッシュドライブへ書き込む。そのため、パリティグループを構成するフラッシュメモリの消去単位のデバイスの書き換え回数には、ばらつきが出てくる。
ストレージシステムの運用を続けてゆくと、フラッシュドライブ内のフラッシュメモリの消去単位毎に、消去不能、書き込み不能といった障害を起こす。ある程度は、フラッシュモジュールやフラッシュドライブ内で、代替領域を用意して、障害に対応するが、さらに運用を続けてゆくと、フラッシュドライブが書き込み要求を受付けられない状況が出てくる。この様子は、最大消去回数の情報から予測可能であり、最大消去回数が予め定められた値を超えると、RAIDグループに新たなフラッシュドライブを追加する方法を取っても良い。
フラッシュドライブを追加する単位は、1台単位で追加可能であるが、RAIDグループを構成しているフラッシュドライブ2台で書き込み要求に対応できなくなると、パリティグループを構成している4個の書き込み単位のうち、2個が1台のフラッシュドライブに書き込まれることになり、パリティグループのデータを一度に読み出すことが困難になり、正常なRAIDシステムとしての性能が出なくなる。よって、RAIDグループ内のフラッシュドライブの最大消去回数を監視し、予め定められた値と比較しながら、追加するフラッシュドライブの台数を決定する方法を取っても良い。
また、ある消去単位に注目すると、消去単位の内の書き込み単位が更新され、その消去単位に存在する有効データの割合が小さくなってゆく。書き込み単位にライトが起きる度に、有効データの割合も監視し、予め定められた値より小さくなったら、その消去単位内の有効データを、書き込み要求にこたえられるフラッシュドライブへ移動する。このとき、同じパリティグループを構成するデータが、同じフラッシュドライブに割り当てられないようにする。このように、完全にフラッシュドライブが寿命を迎えるまでに、保持している有効データを他のフラッシュドライブに移動し、有効データを全て移動し終えたフラッシュドライブは、RAIDグループより外すことができる。
同様にフラッシュドライブ内のフラッシュモジュールにおいても同様なことが行える。つまり、フラッシュメモリ素子内に、消去不可能な消去単位が増え、書き込み対応不能になる前に、フラッシュモジュールを追加し、書き込み対応不能なフラッシュメモリの代替を行わせる。
本発明の第二の実施例を図7,10,12を用いて説明する。第一の実施例では、フラッシュメモリの追加単位が、フラッシュドライブであったが、本実施例では、フラッシュドライブ内の、フラッシュメモリモジュール単位で追加するものである。
フラッシュモジュールは、プリント基板に、フラッシュメモリ素子を複数と、フラッシュメモリモジュール内の論理アドレスとフラッシュメモリの物理アドレスを変換するコントローラとを搭載した構造を持つ。
フラッシュドライブには、複数のフラッシュモジュールを制御する、フラッシュドライブコントローラが存在する。
第一の実施例では、RAIDコントローラが、同時に4台のフラッシュドライブをアクセスし、パリティグループのデータを取り出すため、パリティグループ内の位置情報が必要になり、RAID位置情報が存在していたが、フラッシュドライブ内のフラッシュモジュールでは、書き込み単位のデータを所有しているか否かを確認するだけでよいので、論理アドレス物理アドレス変換テーブルは簡単になる。
図7において、フラッシュドライブ104内に複数のフラッシュモジュール105が存在し、フラッシュモジュール105内に、複数のフラッシュメモリ202が存在する。フラッシュメモリ202を使い続けると、消去単位203および書き込み単位204で消去が出来なくなるとか、書き込みが出来なくなるといった、障害が発生する。フラッシュメモリ202内に有効データが多数存在し、代替領域等が消去できなくなると、そのフラッシュメモリには、データが書き込めなくなる。このとき、新たなフラッシュモジュール105eを追加し、例え、書き込み要求に対応できなくなった、フラッシュモジュール105b、105dの対応する書き込み単位のデータを新たなフラッシュモジュール105eへ書き込むことで、フラッシュドライブ104の機能を維持することが可能になる。
図10のように、フラッシュモジュールのフラッシュコントローラ108とフラッシュドライブコントローラ106は、論理アドレス1002、データ所有信号1006、書き込み可能信号1001、書き込み要求1004、無効化要求1003、データ入力1005、データ出力1007状態情報1008でインターフェースされる。状態情報1010には、消去単位の最大消去回数、有効データの割合等のフラッシュメモリの使用状況の情報を含む。これらの信号および情報はそれぞれ独立した信号として接続される場合もあれば、ある通信インターフェースを介してやり取りされるコマンドとレスポンスの形態を取っても良い。
図12において、フラッシュメモリコントローラ108には、与えられた論理アドレスから実際のフラッシュメモリチップ内の書き込み単位のアドレス(物理アドレス)へ変換するテーブル1201と、物理アドレスをから論理アドレスへ変換する変換テーブル1202を持つ。
論理アドレスを物理アドレスへ変換するテーブル1201には、論理アドレスに対応する物理アドレス1203が格納される。この変換テーブルは、フラッシュモジュールが備える書き込み単位容量分のエントリーを備える。
データ書き込み時の動作を説明する。フラッシュメモリコントローラ108は、物理アドレス論理アドレス変換テーブルの書き込み単位情報格納部1204に空きがあれば、書き込み可能信号1001を出力する。フラッシュドライブコントローラ106が、このフラッシュモジュールを選択すると、論理アドレス1002、書き込み信号1004、書き込みデータ1005を入力してくる。フラッシュメモリコントローラ108は、入力された論理アドレスをエントリーとして、論理アドレス物理アドレス変換テーブル1201をアクセスし、物理アドレス論理アドレス変換テーブル1202から空きの書き込み単位を探し、その物理アドレス1203を登録する。また、物理アドレス論理アドレス変換テーブル1202のデータの有効/無効/空きを示す書き込み単位情報格納部1204を有効にし、論理アドレスを論理アドレス格納部1205へ書き込み、物理アドレスに対応するフラッシュメモリ1207の書き込み単位1208へデータを書き込む。
データ読み出し時の動作を説明する。フラッシュドライブコントローラ103は、読み出し時論理アドレス1002を入力してくる。フラッシュメモリコントローラ108は、入力された論理アドレスをエントリーにして、論理アドレス物理アドレス変換テーブル1201をアクセスし、有効な物理アドレス1203が登録されているかを確認する。登録されていれば、物理アドレス論理アドレス変換テーブル1202をアクセスし、データの有効/無効/空きを示す書き込み単位情報格納部1204を確認し、有効であれば、データ所有信号1006と、物理アドレスに対応するフラッシュメモリ1207の書き込み単位1208のデータ1007を出力する。
データ書き込み時に、書き込み信号1004の代わりに無効化信号1003が入力されると、入力された論理アドレスから物理アドレスを求め、対応する物理アドレス論理アドレス変換テーブル1202の有効/無効/空きを示す書き込み単位情報格納部1204を無効にする。
物理アドレス論理アドレス変換テーブル1202では、複数の書き込み単位をまとめた、消去単位毎に、消去回数の情報1206を管理し、物理アドレス論理アドレス変換テーブル1202内の最大値を調べ、状況情報1008として出力する。
図にはフラッシュメモリ1207が記載されているが、フラッシュメモリコントローラ108内に存在するわけではなく、物理アドレス論理アドレス変換テーブルとの対応や、データの流れを模式的に示すため記述したものである。また、物理アドレス論理アドレス変換テーブル自体も、フラッシュメモリコントローラに存在しても良いし、フラッシュメモリの一部の領域を用いて実現しても良い。論理アドレス物理アドレス変換テーブルもフラッシュメモリコントローラに存在しても良いし、フラッシュメモリの一部の領域を用いて実現しても良い。
フラッシュドライブコントローラは、フラッシュドライブに存在するフラッシュモジュールの中から、書き込み要求にこたえられるフラッシュモジュールから1台を選択し、その1台に書き込み要求を与えるとともに、フラッシュドライブ内のその他のフラッシュモジュールには、無効化要求を与える。
フラッシュモジュールは、同じ論理アドレスへの書き込み要求がきた場合、論理アドレス物理アドレス変換テーブル1201の物理アドレスには、空き状態の書き込み単位の物理アドレスを登録し、物理アドレス論理アドレス変換テーブル1202の以前の物理アドレスの書き込み単位情報格納部1204を無効にする。
フラッシュモジュールは、定期的または空きの書き込み単位が定められた値を下回ると、物理アドレス論理アドレス変換テーブルを調査し、消去単位の中の無効状態にある書き込み単位の割合が多い消去単位を探し出す。ある定められた割合よりも無効状態が多いと、この消去単位の有効状態のデータを空き状態の書き込み単位へ順番に転送し、元の消去単位内の書き込み単位の状態を全て無効にし、その消去単位を消去する。このとき、転送された書き込み単位の論理アドレスを確認し、論理アドレス物理アドレス変換テーブルを更新する。
フラッシュドライブコントローラが、フラッシュドライブ内から1個のフラッシュモジュールを選ぶ方法は任意であるが、優先順位をつけてもよい。
以上実施例で説明したように、本発明により、フラッシュメモリの特徴である、消去単位毎の障害に対して、フラッシュメモリを追加することにより、運用当初の容量を維持可能なストレージシステムを構築できる。フラッシュメモリのモジュールやドライブといった、機能モジュールの追加により最小のコストでストレージシステムの保守管理が可能になる。
本発明の他の実施形態1は、半導体メモリ素子全体容量よりも小さい機能容量単位を備え、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子を複数個有するメモリ素子ユニットを2以上搭載した記憶装置において、一のメモリ素子ユニットの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のメモリ素子ユニットの半導体メモリ素子の機能容量単位に代替させ、装置全体の所定の容量を維持する記憶装置である。
本発明の他の実施形態2は、前記メモリ素子ユニットが、半導体メモリ素子全体容量よりも小さい機能容量単位を備え、かつ、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子の複数個と、該半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するメモリコントローラとで構成されるメモリモジュールであり、一のメモリモジュールの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のメモリモジュールの半導体メモリ素子の機能容量単位に代替させる実施形態1の記憶装置である。
本発明の他の実施形態3は、前記メモリ素子ユニットが、半導体メモリ素子全体容量よりも小さい機能容量単位を備え、かつ、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子の複数個、及び該半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するメモリコントローラで構成されるメモリモジュールの複数個と、該メモリモジュールの半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するドライブコントローラとで構成されるドライブであり、一のドライブのメモリモジュールの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のドライブのメモリモジュールの半導体メモリ素子の機能容量単位に代替させる実施形態1の記憶装置である。
本発明の他の実施形態4は、前記メモリ素子ユニットの半導体メモリ素子に対して論理アドレスを与え、該メモリ素子ユニットの半導体メモリ素子が該論理アドレスに対応するデータを格納しているか否かを、該メモリ素子ユニットのメモリコントコーラ又はドライブコントローラが判断し、該判断の結果を元に、データを読み出すメモリ素子ユニットの半導体メモリ素子が選択される実施形態2又は3の記憶装置である。
本発明の他の実施形態5は、複数のメモリ素子ユニットの半導体メモリ素子から一個ずつ書き込み単位を選択し、複数の書き込み単位で冗長構成をとっており、メモリ素子ユニットのメモリコントコーラ又はドライブコントローラが書き込み要求を受け付けられるか否かの情報を回答し、該回答を元に、書き込みに対応可能なメモリ素子ユニットの半導体メモリ素子が選択される実施形態2又は3の記憶装置である。
本発明の他の実施形態6は、複数のメモリ素子ユニットの半導体メモリ素子から一個ずつ書き込み単位を選択し、複数の書き込み単位で冗長構成をとっており、前記メモリコントローラ又はドライブコントローラは、冗長構成をとる際に、データの順序およびパリティ等データの種類やデータ並びの付随情報も同時に書き込み、読み出した際に、該付随情報を元に正しいデータを復元する実施形態2又は3の記憶装置である。
本発明の他の実施形態7は、前記メモリコントローラ又はドライブコントローラは、半導体メモリ素子の機能容量単位毎に、論理アドレスとの対応関係の情報を保持し、半導体メモリ素子が追加された際に、追加された半導体メモリ素子の追加された分の論理アドレスとの対応関係の情報を作成する実施形態2又は3の記憶装置である。
本発明の他の実施形態8は、半導体メモリ素子全体容量よりも小さい機能容量単位を備え、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子を複数個有するメモリ素子ユニットを2以上搭載した記憶装置を使用した記憶方法であって、一のメモリ素子ユニットの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のメモリ素子ユニットの半導体メモリ素子の機能容量単位に代替させて記憶することを有し、前記記憶装置全体の所定の容量を維持する記憶方法である。
本発明の他の実施形態9は、前記メモリ素子ユニットが、半導体メモリ素子全体容量よりも小さい機能容量単位を備え、かつ、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子の複数個と、該半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するメモリコントローラとで構成されるメモリモジュールであり、一のメモリモジュールの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のメモリモジュールの半導体メモリ素子の機能容量単位に代替させて記憶することを有する実施形態8の記憶方法である。
本発明の他の実施形態10は、前記メモリ素子ユニットが、半導体メモリ素子全体容量よりも小さい機能容量単位を備え、かつ、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子の複数個、及び該半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するメモリコントローラで構成されるメモリモジュールの複数個と、該メモリモジュールの半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するドライブコントローラとで構成されるドライブであり、一のドライブのメモリモジュールの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のドライブのメモリモジュールの半導体メモリ素子の機能容量単位に代替させる実施形態8の記憶方法である。
本発明の他の実施形態11は、前記メモリ素子ユニットの半導体メモリ素子に対して論理アドレスを与えることと、該メモリ素子ユニットの半導体メモリ素子が該論理アドレスに対応するデータを格納しているか否かを判断することと、該判断の結果を元に、データを読み出すメモリ素子ユニットの半導体メモリ素子を選択することとを有する実施形態8の記憶方法である。
本発明の他の実施形態12は、複数の半導体メモリ素子から一個ずつ書き込み単位を選択し、複数の書き込み単位で冗長構成をとっており、メモリ素子ユニットが書き込み要求を受け付けられるか否かの情報を回答することと、該回答を元に、書き込みに対応可能なメモリ素子ユニットの半導体メモリ素子を選択することを有する実施形態8の記憶方法である。
本発明の他の実施形態13は、複数のメモリ素子ユニットの半導体メモリ素子から一個ずつ書き込み単位を選択し、複数の書き込み単位で冗長構成をとっており、冗長構成をとる際に、データの順序およびパリティ等データの種類やデータ並びの付随情報も同時に書き込むことと、読み出した際に、該付随情報を元に正しいデータを復元することとを有する実施形態8の記憶方法である。
本発明の他の実施形態14は、前記半導体メモリ素子の機能容量単位毎に、論理アドレスとの対応関係の情報を保持することと、半導体メモリ素子が追加された際に、追加された半導体メモリ素子の追加された分の論理アドレスとの対応関係の情報を作成することとを有する実施形態8の記憶方法である。
実施例の記憶装置のシステム構成の説明図。 RAID構成の説明図。 パリティグループデータ更新の説明図。 フラッシュメモリの物理アドレス管理の説明図。 フラッシュメモリの障害の説明図。 フラッシュドライブ間のセクタ代替の説明図。 フラッシュモジュール間のセクタ代替の説明図。 フラッシュドライブデータインタフェースの説明図。 フラッシュドライブインタフェースの説明図。 フラッシュモジュールインタフェースの説明図。 所有データ論理アドレス検索(1)の説明図。 所有データ論理アドレス検索(2)の説明図。
符号の説明
101 記憶装置
102 ホストシステム
103 RAIDコントローラ
104 フラッシュドライブ
105 フラッシュモジュール
106 フラッシュドライブコントローラ
107 フラッシュメモリ
108 フラッシュメモリコントローラ
109 ブロック

Claims (14)

  1. コントローラと、複数の第一のフラッシュメモリドライブからなる第一のRAIDグループと、複数の第二のフラッシュメモリドライブからなる第二のRAIDグループと、第三のフラッシュメモリドライブと、を有し、ホストコンピュータに接続される記憶装置において、
    前記第一、第二及び第三のフラッシュメモリドライブのそれぞれは、消去単位である複数のブロックを有し、
    前記コントローラは、
    前記第一のRAIDグループに含まれる複数の第一のフラッシュメモリドライブに、書き込み寿命が尽きて書き込み不可と判断されるブロックが存在する場合、前記書き込み不可のブロックを前記第三のフラッシュメモリドライブのブロックに代替させ、
    前記第一のRAIDグループに、前記第三のフラッシュメモリドライブを追加し、
    前記ホストコンピュータからアクセス要求を受信した場合、
    前記ホストコンピュータから受信した論理アドレスに含まれる第一の論理アドレスに基づいて、ホストコンピュータからアクセス対象のデータが格納されるRAIDグループを特定し、
    前記特定されたRAIDグループが第一のRAIDグループである場合、
    前記受信した論理アドレスに含まれるフラッシュメモリドライブ内のデータ格納位置を示す第二の論理アドレスを前記第一のRAIDグループに含まれる各フラッシュメモリドライブへ送信し、
    前記各フラッシュメモリドライブは、受信した前記第二の論理アドレスに対応するデータが格納されているかを判断し、前記データが格納されているフラッシュメモリドライブは、前記データが格納されていることを示す応答を前記コントローラに送信し、
    前記コントローラは、
    前記応答を送信したフラッシュメモリドライブに対してアクセスする
    ことを特徴とする記憶装置。
  2. 前記フラッシュメモリドライブが、半導体メモリ素子全体容量よりも小さい機能容量単位を備え、かつ、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子の複数個と、該半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するメモリコントローラとで構成されるメモリモジュールであり、一のメモリモジュールの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のメモリモジュールの半導体メモリ素子の機能容量単位に代替させる請求項1記載の記憶装置。
  3. 前記フラッシュメモリドライブが、半導体メモリ素子全体容量よりも小さい機能容量単位を備え、かつ、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子の複数個、及び該半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するメモリコントローラで構成されるメモリモジュールの複数個と、該メモリモジュールの半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するドライブコントローラとで構成されるドライブであり、一のドライブのメモリモジュールの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のフラッシュメモリドライブのメモリモジュールの半導体メモリ素子の機能容量単位に代替させる請求項1記載の記憶装置。
  4. 前記フラッシュメモリドライブの半導体メモリ素子に対して論理アドレスを与え、該フラッシュメモリドライブの半導体メモリ素子が該論理アドレスに対応するデータを格納しているか否かを、該フラッシュメモリドライブのメモリコントコーラ又はドライブコントローラが判断し、該判断の結果を元に、データを読み出すフラッシュメモリドライブの半導体メモリ素子が選択される請求項2又は3に記載の記憶装置。
  5. 複数のフラッシュメモリドライブの半導体メモリ素子から一個ずつ書き込み単位を選択し、複数の書き込み単位で冗長構成をとっており、フラッシュメモリドライブのメモリコントコーラ又はドライブコントローラが書き込み要求を受け付けられるか否かの情報を回答し、該回答を元に、書き込みに対応可能なフラッシュメモリドライブの半導体メモリ素子が選択される請求項2又は3に記載の記憶装置。
  6. 複数のフラッシュメモリドライブの半導体メモリ素子から一個ずつ書き込み単位を選択し、複数の書き込み単位で冗長構成をとっており、前記メモリコントローラ又はドライブコントローラは、冗長構成をとる際に、データの順序およびパリティ等データの種類やデータ並びの付随情報も同時に書き込み、読み出した際に、該付随情報を元に正しいデータを復元する請求項2又は3に記載の記憶装置。
  7. 前記フラッシュメモリドライブの前記メモリコントローラ又は前記ドライブコントローラは、半導体メモリ素子の機能容量単位毎に、論理アドレスとの対応関係の情報を保持し、半導体メモリ素子が追加された際に、追加された半導体メモリ素子の追加された分の論理アドレスとの対応関係の情報を作成する請求項2又は3に記載の記憶装置。
  8. コントローラと、複数の第一のフラッシュメモリドライブからなる第一のRAIDグループと、複数の第二のフラッシュメモリドライブからなる第二のRAIDグループと、第三のフラッシュメモリドライブと、を有し、ホストコンピュータに接続される記憶装置を使用した記憶方法において、
    前記第一、第二及び第三のフラッシュメモリドライブのそれぞれは、消去単位である複数のブロックを有し、
    前記コントローラは、
    前記第一のRAIDグループに含まれる複数の第一のフラッシュメモリドライブに、書き込み寿命が尽きて書き込み不可と判断されるブロックが存在する場合、前記書き込み不可のブロックを前記第三のフラッシュメモリドライブのブロックに代替させ、
    前記第一のRAIDグループに、前記第三のフラッシュメモリドライブを追加し、
    前記ホストコンピュータからアクセス要求を受信した場合、
    前記ホストコンピュータから受信した論理アドレスに含まれる第一の論理アドレスに基づいて、ホストコンピュータからアクセス対象のデータが格納されるRAIDグループを特定し、
    前記特定されたRAIDグループが第一のRAIDグループである場合、
    前記受信した論理アドレスに含まれるフラッシュメモリドライブ内のデータ格納位置を示す第二の論理アドレスを前記第一のRAIDグループに含まれる各フラッシュメモリドライブへ送信し、
    前記各フラッシュメモリドライブは、受信した前記第二の論理アドレスに対応するデータが格納されているかを判断し、前記データが格納されているフラッシュメモリドライブは、前記データが格納されていることを示す応答を前記コントローラに送信し、
    前記コントローラは、
    前記応答を送信したフラッシュメモリドライブに対してアクセスする
    ことを特徴とする記憶方法。
  9. 前記フラッシュメモリドライブが、半導体メモリ素子全体容量よりも小さい機能容量単位を備え、かつ、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子の複数個と、該半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するメモリコントローラとで構成されるメモリモジュールであり、一のメモリモジュールの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のメモリモジュールの半導体メモリ素子の機能容量単位に代替させて記憶することを有する請求項8記載の記憶方法。
  10. 前記フラッシュメモリドライブが、半導体メモリ素子全体容量よりも小さい機能容量単位を備え、かつ、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子の複数個、及び該半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するメモリコントローラで構成されるメモリモジュールの複数個と、該メモリモジュールの半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するドライブコントローラとで構成されるドライブであり、一のドライブのメモリモジュールの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のフラッシュメモリドライブのメモリモジュールの半導体メモリ素子の機能容量単位に代替させる請求項8記載の記憶方法。
  11. 前記フラッシュメモリドライブの半導体メモリ素子に対して論理アドレスを与えることと、該フラッシュメモリドライブの半導体メモリ素子が該論理アドレスに対応するデータを格納しているか否かを判断することと、該判断の結果を元に、データを読み出すフラッシュメモリドライブの半導体メモリ素子を選択することとを有する請求項8記載の記憶方法。
  12. 前記フラッシュメモリドライブの複数の半導体メモリ素子から一個ずつ書き込み単位を選択し、複数の書き込み単位で冗長構成をとっており、フラッシュメモリドライブが書き込み要求を受け付けられるか否かの情報を回答することと、該回答を元に、書き込みに対応可能なフラッシュメモリドライブの半導体メモリ素子を選択することを有する請求項8記載の記憶方法。
  13. 前記フラッシュメモリドライブの複数の半導体メモリ素子から一個ずつ書き込み単位を選択し、複数の書き込み単位で冗長構成をとっており、冗長構成をとる際に、データの順序およびパリティ等データの種類やデータ並びの付随情報も同時に書き込むことと、読み出した際に、該付随情報を元に正しいデータを復元することとを有する請求項8記載の記憶方法。
  14. 前記フラッシュメモリドライブの前記半導体メモリ素子の機能容量単位毎に、論理アドレスとの対応関係の情報を保持することと、半導体メモリ素子が追加された際に、追加された半導体メモリ素子の追加された分の論理アドレスとの対応関係の情報を作成することを有する請求項8記載の記憶方法。
JP2006286108A 2006-10-20 2006-10-20 記憶装置及び記憶方法 Expired - Fee Related JP4932427B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2006286108A JP4932427B2 (ja) 2006-10-20 2006-10-20 記憶装置及び記憶方法
US11/622,168 US7757038B2 (en) 2006-10-20 2007-01-11 Storage device and storing method
EP07251753A EP1914757A3 (en) 2006-10-20 2007-04-25 Storage device and storing method
US12/791,915 US20100241797A1 (en) 2006-10-20 2010-06-02 Storage device and storing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006286108A JP4932427B2 (ja) 2006-10-20 2006-10-20 記憶装置及び記憶方法

Publications (2)

Publication Number Publication Date
JP2008102819A JP2008102819A (ja) 2008-05-01
JP4932427B2 true JP4932427B2 (ja) 2012-05-16

Family

ID=39092736

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006286108A Expired - Fee Related JP4932427B2 (ja) 2006-10-20 2006-10-20 記憶装置及び記憶方法

Country Status (3)

Country Link
US (2) US7757038B2 (ja)
EP (1) EP1914757A3 (ja)
JP (1) JP4932427B2 (ja)

Families Citing this family (187)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4818812B2 (ja) * 2006-05-31 2011-11-16 株式会社日立製作所 フラッシュメモリストレージシステム
FR2847695B1 (fr) * 2002-11-25 2005-03-11 Oberthur Card Syst Sa Entite electronique securisee integrant la gestion de la duree de vie d'un objet
JP4932427B2 (ja) * 2006-10-20 2012-05-16 株式会社日立製作所 記憶装置及び記憶方法
CN101178933B (zh) * 2007-12-05 2010-07-28 苏州壹世通科技有限公司 一种闪存阵列装置
JP4691123B2 (ja) * 2008-03-01 2011-06-01 株式会社東芝 メモリシステム
JP2009211233A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
JP2010020648A (ja) * 2008-07-12 2010-01-28 Hitachi Ulsi Systems Co Ltd 記憶装置
JP2010079445A (ja) * 2008-09-24 2010-04-08 Toshiba Corp Ssd装置
US8799743B2 (en) * 2008-10-28 2014-08-05 Micron Technology, Inc. Error correction in multiple semiconductor memory units
JP4439578B1 (ja) * 2008-12-24 2010-03-24 株式会社東芝 不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のデータ管理方法
US8447918B2 (en) 2009-04-08 2013-05-21 Google Inc. Garbage collection for failure prediction and repartitioning
US20100262773A1 (en) 2009-04-08 2010-10-14 Google Inc. Data striping in a flash memory data storage device
US9323658B2 (en) * 2009-06-02 2016-04-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Multi-mapped flash RAID
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
US8291131B2 (en) 2009-07-06 2012-10-16 Micron Technology, Inc. Data transfer management
CN102449607B (zh) * 2009-07-22 2015-05-27 株式会社日立制作所 具有多个闪存封装的存储系统
US7856528B1 (en) 2009-08-11 2010-12-21 Texas Memory Systems, Inc. Method and apparatus for protecting data using variable size page stripes in a FLASH-based storage system
US7941696B2 (en) * 2009-08-11 2011-05-10 Texas Memory Systems, Inc. Flash-based memory system with static or variable length page stripes including data protection information and auxiliary protection stripes
US8930622B2 (en) 2009-08-11 2015-01-06 International Business Machines Corporation Multi-level data protection for flash memory system
US8189379B2 (en) 2009-08-12 2012-05-29 Texas Memory Systems, Inc. Reduction of read disturb errors in NAND FLASH memory
US7818525B1 (en) 2009-08-12 2010-10-19 Texas Memory Systems, Inc. Efficient reduction of read disturb errors in NAND FLASH memory
WO2011021126A1 (en) * 2009-08-21 2011-02-24 International Business Machines Corporation Data storage system and method for 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
US8572311B1 (en) * 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
JP2011170589A (ja) * 2010-02-18 2011-09-01 Nec Corp ストレージ制御装置、ストレージ装置およびストレージ制御方法
JP4940322B2 (ja) * 2010-03-16 2012-05-30 株式会社東芝 半導体メモリ映像蓄積再生装置及びデータ書込み/読出し方法
US10157002B2 (en) * 2010-08-26 2018-12-18 International Business Machines Corporation Migrating an encoded data slice based on an end-of-life memory level of a memory device
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
JP4966404B2 (ja) 2010-10-21 2012-07-04 株式会社東芝 メモリ制御装置、記憶装置、及びメモリ制御方法
JP5426711B2 (ja) 2011-06-08 2014-02-26 パナソニック株式会社 メモリコントローラ及び不揮発性記憶装置
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
JP5659178B2 (ja) * 2012-03-16 2015-01-28 株式会社東芝 不揮発性記憶装置及び不揮発性メモリの制御方法
US9513845B2 (en) * 2012-03-30 2016-12-06 Violin Memory Inc. Memory module virtualization
EP2823398A1 (en) * 2012-04-27 2015-01-14 Hitachi, Ltd. Storage system and storage control apparatus
US8972826B2 (en) * 2012-10-24 2015-03-03 Western Digital Technologies, Inc. Adaptive error correction codes for data storage systems
US9021339B2 (en) 2012-11-29 2015-04-28 Western Digital Technologies, Inc. Data reliability schemes for data storage systems
US9059736B2 (en) 2012-12-03 2015-06-16 Western Digital Technologies, Inc. Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme
US9214963B1 (en) 2012-12-21 2015-12-15 Western Digital Technologies, Inc. Method and system for monitoring data channel to enable use of dynamically adjustable LDPC coding parameters in a data storage system
WO2014196000A1 (ja) * 2013-06-03 2014-12-11 株式会社日立製作所 ストレージ装置およびストレージ装置制御方法
JP5768118B2 (ja) * 2013-12-11 2015-08-26 株式会社日立製作所 複数のフラッシュパッケージを有するストレージシステム
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US9213485B1 (en) * 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US9612952B2 (en) * 2014-06-04 2017-04-04 Pure Storage, Inc. Automatically reconfiguring a storage memory topology
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
CN106471461B (zh) * 2014-06-04 2020-10-30 净睿存储股份有限公司 自动重新配置存储装置存储器拓扑
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US10067882B2 (en) 2015-01-13 2018-09-04 Hitachi, Ltd. Storage system and storage control method
JP6476959B2 (ja) * 2015-02-13 2019-03-06 富士通株式会社 ストレージ制御装置、ストレージシステム、および制御プログラム
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11231858B2 (en) 2016-05-19 2022-01-25 Pure Storage, Inc. Dynamically configuring a storage system to facilitate independent scaling of resources
JP6138318B2 (ja) * 2016-05-26 2017-05-31 株式会社日立製作所 複数のフラッシュパッケージを有するストレージシステム
US10691567B2 (en) 2016-06-03 2020-06-23 Pure Storage, Inc. Dynamically forming a failure domain in a storage system that includes a plurality of blades
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US11706895B2 (en) 2016-07-19 2023-07-18 Pure Storage, Inc. Independent scaling of compute resources and storage resources in a storage system
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US10102071B2 (en) * 2016-09-26 2018-10-16 Toshiba Memory Corporation Storage device that restores data lost during a subsequent data write
US10248560B2 (en) 2016-09-26 2019-04-02 Toshiba Memory Corporation Storage device that restores data lost during a subsequent data write
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US12001688B2 (en) 2019-04-29 2024-06-04 Pure Storage, Inc. Utilizing data views to optimize secure data access in a storage system
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11023147B2 (en) * 2019-10-10 2021-06-01 EMC IP Holding Company LLC Mapping storage extents into resiliency groups
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US12001684B2 (en) 2019-12-12 2024-06-04 Pure Storage, Inc. Optimizing dynamic power loss protection adjustment in a storage system
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
CN112559395B (zh) * 2020-12-18 2022-11-04 国电南瑞科技股份有限公司 基于双Soc存储系统异常处理机制的继电保护装置及方法
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0644144A (ja) * 1992-07-23 1994-02-18 Mitsubishi Electric Corp 半導体ディスク装置
US5812814A (en) 1993-02-26 1998-09-22 Kabushiki Kaisha Toshiba Alternative flash EEPROM semiconductor memory system
JP2530102B2 (ja) * 1993-07-14 1996-09-04 株式会社東芝 半導体ディスク装置およびその制御方法
KR950034271A (ko) * 1994-01-26 1995-12-28 오오가 노리오 비휘발성 반도체 플래쉬 메모리
JP3525472B2 (ja) * 1994-01-26 2004-05-10 ソニー株式会社 半導体不揮発性記憶装置
JPH07253929A (ja) * 1994-03-14 1995-10-03 Hitachi Ltd 半導体記憶装置
DE19540915A1 (de) 1994-11-10 1996-05-15 Raymond Engineering Redundante Anordnung von Festkörper-Speicherbausteinen
JP3544859B2 (ja) 1998-05-11 2004-07-21 富士通株式会社 不揮発性半導体メモリを使用した2次記憶装置
WO2001022232A1 (fr) * 1999-09-17 2001-03-29 Hitachi, Ltd. Memoire dans laquelle le nombre de corrections d'erreurs est enregistre
JP2004021811A (ja) * 2002-06-19 2004-01-22 Hitachi Ltd 不揮発メモリを使用したディスク制御装置
US7370248B2 (en) * 2003-11-07 2008-05-06 Hewlett-Packard Development Company, L.P. In-service raid mirror reconfiguring
JP4400913B2 (ja) * 2003-11-26 2010-01-20 株式会社日立製作所 ディスクアレイ装置
JP4932427B2 (ja) * 2006-10-20 2012-05-16 株式会社日立製作所 記憶装置及び記憶方法

Also Published As

Publication number Publication date
US7757038B2 (en) 2010-07-13
EP1914757A3 (en) 2010-09-01
US20100241797A1 (en) 2010-09-23
US20080098158A1 (en) 2008-04-24
JP2008102819A (ja) 2008-05-01
EP1914757A2 (en) 2008-04-23

Similar Documents

Publication Publication Date Title
JP4932427B2 (ja) 記憶装置及び記憶方法
JP4897524B2 (ja) ストレージシステム及びストレージシステムのライト性能低下防止方法
JP4688584B2 (ja) ストレージ装置
CN108628771B (zh) 信息处理装置、存储设备以及信息处理系统
JP5495074B2 (ja) 論理ユニット動作
JP5612514B2 (ja) 不揮発性メモリコントローラ及び不揮発性記憶装置
JP5008845B2 (ja) ストレージシステムとストレージ装置及びその制御方法
JP4871260B2 (ja) メモリモジュール、メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリの読み書き方法
US7409492B2 (en) Storage system using flash memory modules logically grouped for wear-leveling and RAID
KR102533207B1 (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
JP5649742B2 (ja) トランザクションログの復元
JP6017065B2 (ja) ストレージシステム及びキャッシュコントロール方法
US8417869B2 (en) Hybrid storage apparatus and hybrid storage medium controller and addressing method thereof
KR101066937B1 (ko) 메모리 시스템 및 그 데이터 소거 방법
WO2009130848A1 (ja) ストレージシステム及びストレージシステムの制御方法
WO2010137178A1 (en) Storage subsystem
JP5300496B2 (ja) 半導体記憶装置、ホスト機器及び半導体記憶システム
CN111736755A (zh) 数据存储装置、其操作方法以及包括其的存储系统
US9798470B2 (en) Memory system for storing and processing translation information
KR100703727B1 (ko) 비휘발성 메모리, 이를 위한 사상 제어 장치 및 방법
JP5601053B2 (ja) 制御装置、制御モジュールおよび制御方法
JP2012037971A (ja) メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111209

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120215

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150224

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees