JP2010511224A - 記憶装置コントローラキャッシュオフロード回路の性能および信頼性を最適化するためのシステム - Google Patents

記憶装置コントローラキャッシュオフロード回路の性能および信頼性を最適化するためのシステム Download PDF

Info

Publication number
JP2010511224A
JP2010511224A JP2009538383A JP2009538383A JP2010511224A JP 2010511224 A JP2010511224 A JP 2010511224A JP 2009538383 A JP2009538383 A JP 2009538383A JP 2009538383 A JP2009538383 A JP 2009538383A JP 2010511224 A JP2010511224 A JP 2010511224A
Authority
JP
Japan
Prior art keywords
cache
circuit
memory
bandwidth
volatile
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
JP2009538383A
Other languages
English (en)
Other versions
JP2010511224A5 (ja
JP4996693B2 (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.)
LSI Corp
Original Assignee
LSI Logic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LSI Logic Corp filed Critical LSI Logic Corp
Publication of JP2010511224A publication Critical patent/JP2010511224A/ja
Publication of JP2010511224A5 publication Critical patent/JP2010511224A5/ja
Application granted granted Critical
Publication of JP4996693B2 publication Critical patent/JP4996693B2/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1009Cache, i.e. caches used in RAID system with parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1059Parity-single bit-RAID5, i.e. RAID 5 implementations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

キャッシュメモリをオフロードするための方法(140)が開示される。本方法には、一般に、(A)キャッシュメモリのオフロードに対する信号のアサーションに応じて、複数のキャッシュラインの全てをキャッシュメモリから読み出すステップ(144)と、(B)RAID構成に従ってキャッシュラインを分割することによって、複数のブロックを生成するステップ(146)と、(C)RAID構成において、複数の不揮発性メモリの間にブロックを書き込むステップであって、不揮発性メモリのそれぞれが、キャッシュメモリの読み出し帯域幅より小さい書き込み帯域幅を有するステップ(148)と、が含まれる。
【選択図】図3

Description

本発明は、一般に、記憶装置コントローラに関し、特に、記憶装置コントローラキャッシュオフロード回路の性能および信頼性を最適化するための方法および/または装置に関する。
AC電力の電力停止と同時に、従来の記憶装置コントローラは、制限のある保存電池バックアップユニットからの電力を用いて、キャッシュメモリからローカルの永久記憶装置にキャッシュの内容をできるだけ素早くかつ確実にオフロードせざるを得ない。永久記憶装置は、(i)起動のために遠隔装置を頼りにすることを避けるために、通常、ローカルであり、かつ(ii)大きな電池を避けるために、非常に低い電力量を利用する。
非常に低い電力は、限られたアクセス帯域幅を有する永久記憶装置に帰着する。大きな電池は、非常に高価であり、経時的に信頼性が減少する。
本発明は、キャッシュメモリをオフロードするための方法に関する。この方法には、一般に、(A)キャッシュメモリのオフロード信号のアサーションに応じて、キャッシュメモリから複数のキャッシュラインの全てを読み出すステップと、(B)RAID構成に従ってキャッシュラインを分割することによって、複数のブロックを生成するステップと、(C)RAID構成において、複数の不揮発性メモリの間にブロックを書き込むステップであって、不揮発性メモリのそれぞれが、キャッシュメモリの読み出し帯域幅より小さい書き込み帯域幅を有するステップと、が含まれる。
本発明の目的、特徴および利点には、記憶装置コントローラキャッシュオフロード回路の性能および信頼性を最適化するための方法および/または装置を提供することが含まれるが、この回路は、(i)多数の不揮発性メモリをRAID構成に配置し、(ii)不揮発性メモリの2つ以上にほぼ同時に書き込み、(iii)より多くのメモリ回路を加えることによって、不揮発性メモリの容量拡張を可能にし、(iv)従来のアプローチと比較して、より低い電池バックアップユニットサイズを可能にし、かつ/または(v)従来の電池セルに対する代替として、スーパーキャパシタ技術の利用を可能にすることができる。
本発明のこれらおよび他の目的、特徴および利点は、以下の詳細な説明ならびに添付の特許請求の範囲および図面から明らかになろう。
本発明の好ましい実施形態によるシステムのブロック図である。 不揮発性メモリ回路の例示的なインプリメンテーションの図である。 キャッシュメモリをオフロードするための例示的な方法の流れ図である。 例示的なRAID0構成の図である。 例示的なRAID1構成の図である。 例示的なRAID5構成の図である。
本発明は、一般に、多数の不揮発性ドライブを並列に用いて、迅速なキャッシュオフロードアーキテクチャを達成する。不揮発性ドライブは、RAID0構成、RAID1構成またはRAID5構成などのRAID構成に配置してもよい。特定の用途の基準を満たすために、他のRAID構成を実現してもよい。いくつかのRAID構成の並列書き込み特性により、一般に、従来の技術と比較して、キャッシュオフロードインタフェースにおけるより高い性能およびより高い信頼性が可能になる。
図1を参照すると、本発明の好ましい実施形態に従って、システム100のブロック図が示されている。システム(または装置)100は、キャッシュベースの処理システムとして実現してもよい。システム100には、一般に、回路(またはモジュール)102、回路(またはモジュール)104、回路(またはモジュール)106、回路(またはモジュール)108、回路(またはモジュール)110および回路(またはモジュール)112が含まれる。信号(例えばPWR)は、回路110によって受信してもよい。信号(例えばOFFLOAD)は、回路110によって生成し、回路104に供給してもよい。インタフェース114によって、回路102および回路104が互いに通信できるようにしてもよい。回路104は、インタフェース116を介して回路106と通信してもよい。インタフェース118によって、回路104が、回路108と通信できるようにしてもよい。回路104は、インタフェース120を介して回路112と通信してもよい。
回路102は、プロセッサ回路として実現してもよい。回路102は、ソフトウエアプログラムを実行することによって様々な機能を実行するように、動作可能であってもよい。回路102は、回路104を介して、ソフトウエアプログラム用の命令および/またはデータを、回路106、108および112から読み出し、かつそこに書き込んでもよい。
回路104は、メモリコントローラ回路として実現してもよい。回路104は、回路106、回路108および回路112を制御するように動作可能であってもよい。回路104は、ソフトウエアプログラムのデータおよび命令を、プロセッサインタフェース114を介して回路102と交換してもよい。データおよび命令は、回路104と、(i)キャッシュインタフェース116を介して回路106との間で、(ii)フラッシュインタフェース118を介して回路108との間で、および(iii)メモリインタフェース120を介して回路112との間で、交換してもよい。回路104は、信号OFFLOADのアサートされた状態(例えば論理ロー)に応じて、回路106に記憶された情報(例えばデータおよび命令)の全てを、インタフェース118を介して回路108にオフロードするように、さらに動作可能であってもよい(矢印128を参照)。
回路106は、揮発性メモリとして実現してもよい。特に、回路106は、揮発性キャッシュメモリとして実現してもよい。回路106は、一般に、回路102におけるソフトウェアの実行によって使用され生成されるデータおよび命令をバッファするように動作可能である。回路106に記憶された情報は、キャッシュライン124a−124nとして配置してもよい。キャッシュライン124a−124nのそれぞれは、キャッシュヒットおよびキャッシュミスに基づいて、回路112と交換してもよい。キャッシュラインは、第1の読み出し帯域幅で回路106から読み出し、第1の書き込み帯域幅で書き込んでもよい。
回路108は、不揮発性メモリ126a−126dのアレイとして実現してもよい。メモリ(またはコンポーネント)126a−126dは、RAID(独立ディスク冗長アレイ)構成に配置してもよい。いくつかの実施形態において、回路108の各メモリ「ディスク」126a−126dは、フラッシュメモリとして実現してもよい。特定の用途の基準を満たすために、他の不揮発性メモリ技術を実行してもよい。情報は、第2の書き込み帯域幅で、メモリ126a−126dのそれぞれに書き込み、第2の読み出し帯域幅で読み出してもよい。
回路110は、バックアップ電力ユニットとして実現してもよい。回路110は、信号PWRで受信された電力を、回路102、104、106、108および112によって用いるのに適した1つまたは複数の電力ネットワークへと蓄積、変換、規制またはフィルタリングするように動作可能であってもよい。回路110はまた、回路106から回路108に情報をオフロードするのに十分な時間にわたって少なくとも回路104、106および108を動作させるのに適した制限された時間、電力を供給するように動作可能であってもよい。さらに、回路110は、信号PWRを介して流入する電力の状態を監視し、信号PWRにおける電力の激しい低下および/または完全な停止に応じて、信号OFFLINEをアサートしてもよい。いくつかの実施形態において、回路110は、1つまたは複数の電池として実現してもよい。少なくとも一実施形態において、回路110は、1つまたは複数のスーパーキャパシタまたはウルトラキャパシタとして実現してもよい。
回路112は、メインメモリ回路として実現してもよい。特に、回路112は、揮発性ランダムアクセスメモリとして実現してもよい。回路112は、回路102におけるソフトウェア実行のためのデータおよび命令を記憶するように動作可能であってもよい。回路112は、回路104によって決定されるように、回路106にキャッシュラインを提供し、回路106からキャッシュラインを受信してもよい。
図2を参照すると、回路108の例示的なインプリメンテーションの図が示されている。メモリコンポーネント126a−126dに加えて、回路108には、多数のソケット130a−130dを含んでもよい。ソケット(またはポート)130a−130dのそれぞれは、一般に、単一のメモリ126a−126dに結合するように配置される。結合には、物理的接続、電力接続および通信接続を含んでもよい。システム100の少なくとも1つの構成において、ソケット130a−130dには、単一のメモリコンポーネント(例えば126a)を実装してもよい。システム100の他の構成において、2以上のメモリ126a−126dを、ソケット130a−130dにインストールしてもよい。
図3を参照すると、回路106をオフロードするための例示的な方法140の流れ図が示されている。方法140は、一般に、回路106から回路108にデータを移動させる迅速なオフロード方法を実行する。方法140には、一般に、ステップ(またはブロック)142、ステップ(またはブロック)144、オプションのステップ(またはブロック)146およびステップ(またはブロック)148が含まれる。
方法140は、信号OFFLOADのアサーションによってトリガしてもよい。回路102からのコマンドなどの他のトリガもまた、方法140を開始してもよい。ステップ142において、回路110は、信号PWRにおいて電力停止を検出すると、信号OFFLOADをアサートしてもよい。信号OFFLOADのアサーションは、回路104によって感知してもよい。それに応じて、回路104は、ステップ144において、回路106からキャッシュライン124a−124nを読み出し(オフロードし)てもよい。回路106から回路104への情報の転送速度は、回路106の読み出し帯域幅によって管理してもよい。
回路108に実現されている特定のRAID構成に依存して、回路104は、ステップ146で、キャッシュライン124a−124nにおける情報をストライピングしても/しなくてもよい。次に、情報のブロック/情報のストライプおよびエラー訂正情報(もしあれば)は、ステップ148で、回路104によってメモリ126a−126dに書き込んでもよい。回路104から回路108へのブロック/ストライプの転送速度は、メモリ126a−126dの書き込み帯域幅によって決定してもよい。
情報は、多数の並列経路に沿って、回路104からメモリ126a−126dにほぼ同時に書き込んでもよいので、メモリ126a−126dへの結合書き込み帯域幅は、回路106からの読み出し帯域幅より大きくても(速くても)よい。より高い結合書き込み帯域幅により、一般に、従来の技術と比較して、転送を実行する際に消費される時間が低減される。システム100のアーキテクチャによって、低コストで、取り外し可能不揮発性メモリコンポーネント126a−126dを利用することが可能になる。例示的なメモリコンポーネント126a−126dには、限定するわけではないが、セキュアデジタル(SD)フラッシュカードおよびUSBフラッシュドライブが含まれる。
回路106用の顧客指定キャッシュサイズは、近年大きくなった。したがって、低コスト不揮発性メモリの選択は、一般に、遅い書き込み時間およびより小さな容量ゆえに使用不可能である。本発明は、一般に、いくつかの不揮発性メモリを用いるが、不揮発性メモリの容量および速度が、普通の単一不揮発性メモリ要素より大きくかつ速い仮想不揮発性メモリ(回路108)を生成するRAID技術を用いて増加され得るように用いる。
多数のメモリ126a−126dを用いることによって、回路104および回路108は、顧客によって注文されたキャッシュ量に比例してスケーリングしてもよい。例えば、回路104は、回路106における8ギガバイト(GB)、16GBおよび32GBのキャッシュサイズオプションをサポートしてもよい。回路104は、回路108における、それぞれが8GBのサイズを備えたいくつかの(例えば4つの)メモリコンポーネント126a−126dを制御するように構成してもよい。かかるものとして、8GBキャッシュシステム100は、単一の8GBメモリ(例えば126a)を用いて構築してもよい。16GBキャッシュシステム100は、2つの8GBメモリ(例えば126aおよび126b)を用いて構築してもよい。32GBキャッシュシステムは、4つの8GBメモリ(例えば126a−126d)を用いて構築することになろう。
メモリ126a−126dのそれぞれが20メガバイト/秒(MB/秒)の例示的な書き込み速度を有する場合を検討する。8GBキャッシュシステム100は、約8GB/(20MB/秒)=400秒を用いて、8GB揮発性回路106を8GB不揮発性回路108にオフロードしてもよい。16GBキャッシュシステム100に関して、回路108への書き込み帯域幅は、一般に、2つのメモリ(例えば126aおよび126b)を構成するRAID技術を用いるため、2倍になる。16GB回路106から情報を移動させるための合計オフロード時間は、16GB/(2×20MB/秒)=400秒になろう。32GBキャッシュシステム100は、4つのメモリ素子126a−126dを用いて、4×20MB/秒=80MB/秒の有効帯域幅を提供してもよい。より大きな書き込み帯域幅によって、32GB/(4×20MB/秒)=400秒のキャッシュオフロード時間が可能になる。3つの全ての例において、キャッシュオフロード時間は、約400秒に維持可能である。よい大きな数のメモリコンポーネント126a−126dを利用して、オフロード時間を低減し、より大きなキャッシュサイズを可能にし、かつ/または他のRAID構成を実現してもよい。
図4を参照すると、例示的なRAID0構成の図が示されている。RAID0構成は、メモリコンポーネント126a−126dから作製されたストライプアレイを実現してもよい。回路104は、回路106から読み出されたキャッシュライン124a−124nをブロック(例えばA−H)にグループ化してもよい。個別ブロックA−Hのそれぞれは、単一のメモリ126a−126dに書き込んでもよく、いくつかのブロックは、並列経路150a−150dに沿ってほぼ同時に書き込んでもよい。例えば、回路104は、ブロックAをメモリ126aに、ブロックBをメモリ126bに、ブロックCをメモリ126cに、およびブロックDをメモリ126dに、並列にかまたはスタガードスタート順に書き込んでもよい。スタガードスタート順において、回路104は、ブロックAを書き込み始める一方で、なおかつ、キャッシュライン124a−124nからブロックBを組み立ててもよい。一旦ブロックBが用意できると、回路104は、ブロックBを書き込み始め、ブロックAの書き込みを継続し、ブロックCを組み立て始めてもよい。RAID0構成は、一般に、メモリ126a−126dの少なくとも2つを用いて実現される。
図5を参照すると、例示的なRAID1構成の図が示されている。RAID1構成は、一般に、メモリ126a−126hの倍数(例えば8)を用いて、ミラーペアの二重化を実現する。回路104は、回路106から読み出されたキャッシュライン124a−124nをブロックA−Hにグループ化してもよい。個別ブロックA−Hのそれぞれは、126a−126hの2つに書き込んでもよく、いくつかのブロックは、経路150a−150hに沿ってほぼ同時に書き込んでもよい。例えば、ブロックAは、メモリ126aおよび126bの両方に書き込んでもよく、ブロックBは、メモリ126cおよび126dの両方に書き込んでもよい等である。RAID1構成は、一般に、記憶された情報のフォールトトレランスに備える。各メモリペアに関して、ペアに書き込まれたブロックは、たとえメモリコンポーネントの1つが故障したとしても、回復可能である。RAID1構成は、メモリ126a−126hの少なくとも4つを用いて実現してもよい。
図6を参照すると、例示的なRAID5構成のブロック図が示されている。RAID5構成は、分散パリティを備えたデータストライピングを実現してもよい。前述のように、回路104は、信号OFFLOADのアサーションに応じて、回路106からキャッシュライン124a−124nを読み出してもよい。読み出された情報は、ブロックA−Hに組み立ててもよい。次に、ブロックA−Hのそれぞれは、ストライピングしてもよい。例えば、ブロックAはストライプA0、A1およびA2に、ブロックBはストライプB0、B1およびB3に、ブロックCはストライプC0、C2およびC3に、ブロックDはストライプD1、D2およびD3になってもよい等である。所与のブロックのストライプは、単一のメモリ126a−126dに順番に書き込んでもよい。
パリティストライプは、同じランクの全てのストライプに対して回路104によって計算し、次に、単一のメモリ126a−126dに書き込んでもよい。例えば、ゼロランクパリティ(例えば0PARITY)は、ストライプA0、ストライプB0およびストライプC0から生成し、メモリ126dに書き込んでもよい。第1ランクパリティ(例えば1PARITY)は、ストライプA1、ストライプB1およびストライプD1に対して計算し、メモリ126cに書き込んでもよい。パリティ計算は、各新しいランクが書き込まれたときに継続してもよい。RAID5構成によって、一般に、単一のメモリコンポーネント126a−126dの故障の場合に、記憶された情報を回復する能力が提供される。分散パリティの利用によって、メモリ126a−126dの効率的な利用が可能になる。RAID5構成は、メモリ126a−126dの3つ以上を用いて実現してもよい。特定の用途の基準を満たすために、回路108において他のRAID構成を実現してもよい。
当業者には明らかであろうように、図1および3の図によって実行される機能は、本明細書の教示に従ってプログラムされた従来の汎用デジタルコンピュータを用いて実現してもよい。当業者にはまた明らかであろうように、適切なソフトウェアコーディングは、本開示の教示に基づいて、熟練したプログラマによって容易に準備することができる。
本発明はまた、ASIC、FPGAを準備することによってか、または本明細書で説明するように、従来のコンポーネント回路の適切なネットワークを相互接続することによって実施してもよいが、これらの修正は、当業者には容易に明らかになろう。
したがって、本発明にはまた、コンピュータ製品を含んでもよいが、このコンピュータ製品は、本発明に従ってプロセスを実行するようにコンピュータをプログラムするために使用できる命令を含む記憶媒体であってもよい。記憶媒体には、限定するわけではないが、フロッピー(登録商標)ディスク、光ディスク、CD−ROM、光磁気ディスク、ROM、RAM、EPROM、EEPROM、フラッシュメモリ、磁気もしくは光カードを含む任意のタイプのディスク、または電子命令を記憶するのに適した任意のタイプの媒体を含むことができる。本明細書で用いるように、用語「同時に」は、ある共通の期間を共有するイベントを説明するように意味されているが、しかしこの用語は、同じ時点で始まるか、同じ時点で終了するか、または同じ継続期間を有するイベントに限定されるようには意味されていない。
本発明の好ましい実施形態に関連して本発明を特に図示し説明したが、本発明の範囲から逸脱せずに、形態および詳細において様々な変更をなし得ることが、当業者によって理解されよう。

Claims (20)

  1. キャッシュメモリをオフロードするための方法であって、
    (A)コントローラを介して、前記キャッシュメモリとメインメモリとの間で複数のキャッシュラインを直接交換するステップと、
    (B)前記キャッシュメモリのオフロード信号のアサーションに応じて、前記キャッシュラインの全てを前記キャッシュメモリから前記コントローラに読み出すステップと、
    (C)RAID構成に従って前記キャッシュラインを分割することによって、前記コントローラに複数のブロックを生成するステップと、
    (D)前記RAID構成において、前記コントローラから複数の不揮発性メモリに前記ブロックを直接書き込むステップであって、前記不揮発性メモリのそれぞれが、前記キャッシュメモリの読み出し帯域幅より小さい書き込み帯域幅を有するステップと、
    を含む方法。
  2. 前記ブロックの少なくとも2つが、前記不揮発性メモリにほぼ同時に書き込まれる、請求項1に記載の方法。
  3. 前記ブロックをストライピングすることによって複数のストライプを生成するステップであって、前記ストライプのそれぞれが、前記ブロックの対応する1つにおけるサブセットを含むステップをさらに含む、請求項1に記載の方法。
  4. ステップ(D)が、前記不揮発性メモリの間に前記ストライプを書き込むサブステップを含む、請求項3に記載の方法。
  5. 前記ストライプの少なくとも2つが、前記不揮発性メモリにほぼ同時に書き込まれる、請求項4に記載の方法。
  6. 前記信号の前記アサーションが電力停止を示す、請求項1に記載の方法。
  7. (i)前記不揮発性メモリのそれぞれが、第1の記憶容量を有し、(ii)前記キャッシュメモリが、第2の記憶容量を有し、(iii)前記第1の記憶容量の合計が、少なくとも、前記第2の記憶容量と同じくらい大きい、請求項1に記載の方法。
  8. 前記書き込み帯域幅の合計が、少なくとも、前記読み出し帯域幅と同じくらい大きい、請求項1に記載の方法。
  9. 前記キャッシュラインが、前記読み出し帯域幅に近い第1の帯域幅で、前記キャッシュメモリから読み出される、請求項1に記載の方法。
  10. 前記ブロックが、前記書き込み帯域幅に近い第2の帯域幅で、前記不揮発性メモリに書き込まれる、請求項9に記載の方法。
  11. 読み出し帯域幅を有し、かつ複数のキャッシュラインを記憶するように構成されたキャッシュメモリと、
    前記読み出し帯域幅より小さい書き込み帯域幅をそれぞれが有する複数の不揮発性メモリと、
    (i)前記キャッシュメモリのオフロード信号のアサーションに応じて、前記キャッシュラインの全てを前記キャッシュメモリから読み出すように、(ii)RAID構成に従って前記キャッシュラインを分割することによって、複数のブロックを生成するように、かつ(iii)前記RAID構成において、前記ブロックを前記不揮発性メモリに直接書き込むように構成されたコントローラと、
    前記コントローラを介して、前記キャッシュラインを前記キャッシュメモリと直接交換するように構成されたメインメモリと、
    を含むシステム。
  12. 前記ブロックの少なくとも2つが、前記不揮発性メモリにほぼ同時に書き込まれる、請求項11に記載のシステム。
  13. 前記コントローラを介して、前記キャッシュメモリおよび前記メインメモリの両方とデータを交換するように構成されたプロセッサをさらに含む、請求項11に記載のシステム。
  14. 前記信号をアサートするように構成された電力回路をさらに含む、請求項11に記載のシステム。
  15. 前記信号の前記アサーションが、前記電源回路に流れ込む電力の停止を示す、請求項14に記載のシステム。
  16. 前記電力回路が、ソース電力の停止後に電力を供給するスーパーキャパシタおよびウルトラキャパシタの少なくとも1つを含む、請求項14に記載のシステム。
  17. 少なくとも4つのスロットであって、前記スロットのそれぞれが、前記不揮発性メモリの1つに接続するように構成された少なくとも4つのスロットをさらに含む、請求項11に記載のシステム。
  18. 前記スロットの少なくとも1つが、前記システムの少なくとも1つの構成において空である、請求項17に記載のシステム。
  19. 前記RAID構成が、(i)RAID0構成、(ii)RAID1構成および(iii)RAID5構成のうちの1つを含む、請求項17に記載のシステム。
  20. 読み出し帯域幅を有し、かつ複数のキャッシュラインを記憶するように構成された揮発性記憶装置用手段と、
    前記読み出し帯域幅より小さい書き込み帯域幅をそれぞれが有する、不揮発性記憶装置用の複数の手段と、
    (i)前記揮発性記憶装置用手段のオフロード信号のアサーションに応じて、前記揮発性記憶装置用手段から前記キャッシュラインの全てを読み出すことと、(ii)RAID構成に従って前記キャッシュラインを分割することによって、複数のブロックを生成することと、(iii)前記RAID構成において、前記ブロックを前記不揮発性記憶装置用手段に直接書き込むことと、を含む制御のための手段と、
    前記制御のための手段を介して、前記キャッシュラインを前記揮発性記憶装置用手段と直接交換するように構成されたメインメモリ用手段と、
    を含むシステム。
JP2009538383A 2006-11-27 2007-10-09 記憶装置コントローラキャッシュオフロード回路の性能および信頼性を最適化するためのシステム Expired - Fee Related JP4996693B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/604,631 US7904647B2 (en) 2006-11-27 2006-11-27 System for optimizing the performance and reliability of a storage controller cache offload circuit
US11/604,631 2006-11-27
PCT/US2007/021692 WO2008066605A2 (en) 2006-11-27 2007-10-09 System for optimizing the performance and reliability of a storage controller cache offload circuit

Publications (3)

Publication Number Publication Date
JP2010511224A true JP2010511224A (ja) 2010-04-08
JP2010511224A5 JP2010511224A5 (ja) 2012-05-24
JP4996693B2 JP4996693B2 (ja) 2012-08-08

Family

ID=39465141

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009538383A Expired - Fee Related JP4996693B2 (ja) 2006-11-27 2007-10-09 記憶装置コントローラキャッシュオフロード回路の性能および信頼性を最適化するためのシステム

Country Status (6)

Country Link
US (1) US7904647B2 (ja)
EP (1) EP2097822A4 (ja)
JP (1) JP4996693B2 (ja)
KR (1) KR101214206B1 (ja)
CN (1) CN101542449B (ja)
WO (1) WO2008066605A2 (ja)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008070812A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for data storage using progressive raid
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US8578127B2 (en) 2009-09-09 2013-11-05 Fusion-Io, Inc. Apparatus, system, and method for allocating storage
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US8443134B2 (en) 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
US8706968B2 (en) 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US20100205349A1 (en) * 2009-02-11 2010-08-12 Stec, Inc. Segmented-memory flash backed dram module
US8566639B2 (en) * 2009-02-11 2013-10-22 Stec, Inc. Flash backed DRAM module with state of health and/or status information accessible through a configuration data bus
CN102696010B (zh) 2009-09-08 2016-03-23 才智知识产权控股公司(2) 用于将数据高速缓存在固态存储设备上的装置、系统和方法
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
KR101777376B1 (ko) 2010-11-08 2017-09-11 삼성전자주식회사 데이터 저장 장치 및 그것의 구동 방법
US20120239860A1 (en) 2010-12-17 2012-09-20 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US8484408B2 (en) 2010-12-29 2013-07-09 International Business Machines Corporation Storage system cache with flash memory in a raid configuration that commits writes as full stripes
WO2012106362A2 (en) 2011-01-31 2012-08-09 Fusion-Io, Inc. Apparatus, system, and method for managing eviction of data
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
US8966191B2 (en) 2011-03-18 2015-02-24 Fusion-Io, Inc. Logical interface for contextual storage
US20120278528A1 (en) * 2011-04-28 2012-11-01 International Business Machines Corporation Iimplementing storage adapter with enhanced flash backed dram management
TW201310337A (zh) * 2011-08-31 2013-03-01 Ily Entpr Inc Dba Ez Dupe 應用於一對多複製裝置之資料複製方法
US8996805B2 (en) 2011-10-26 2015-03-31 Hewlett-Packard Development Company, L.P. Shared cache module and method thereof
CN103092722A (zh) * 2011-11-08 2013-05-08 艾利科技股份有限公司 应用于一对多复制装置的数据复制方法
US20140281222A1 (en) * 2011-11-17 2014-09-18 Ching-Chung Lee Antiharmonic data copying method
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US10102117B2 (en) 2012-01-12 2018-10-16 Sandisk Technologies Llc Systems and methods for cache and storage device coordination
US9251052B2 (en) 2012-01-12 2016-02-02 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US10019353B2 (en) 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US10346095B2 (en) 2012-08-31 2019-07-09 Sandisk Technologies, Llc Systems, methods, and interfaces for adaptive cache persistence
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US9489151B2 (en) 2013-05-23 2016-11-08 Netapp, Inc. Systems and methods including an application server in an enclosure with a communication link to an external controller
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
US20160188414A1 (en) * 2014-12-24 2016-06-30 Intel Corporation Fault tolerant automatic dual in-line memory module refresh
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management

Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07295763A (ja) * 1994-04-22 1995-11-10 Internatl Business Mach Corp <Ibm> ディスク・アレイ装置およびデータの格納方法
JPH08185355A (ja) * 1994-09-30 1996-07-16 Advanced Risc Mach Ltd データメモリおよびその動作方法
JPH10269138A (ja) * 1997-03-25 1998-10-09 Hitachi Ltd キャッシュメモリ制御及びそれを用いたデータ処理装置
JPH10275112A (ja) * 1997-03-31 1998-10-13 Nec Corp キャッシュメモリシステム
JP2000187616A (ja) * 1998-12-22 2000-07-04 Nec Corp キャッシュラインをクリーンな状態に保つメモリシステム
JP2001147865A (ja) * 1999-11-22 2001-05-29 Hitachi Ltd ディスク制御装置
US20020087751A1 (en) * 1999-03-04 2002-07-04 Advanced Micro Devices, Inc. Switch based scalable preformance storage architecture
US20040049643A1 (en) * 2002-09-06 2004-03-11 Guillermo Alavarez Storage system including a fast storage device for storing redundant data
EP1400899A2 (en) * 2002-09-20 2004-03-24 Quantum Corporation Accelerated RAID capable of returning to a previous state
JP2004127031A (ja) * 2002-10-03 2004-04-22 Yaskawa Electric Corp メモリ切り替え回路
US20040078508A1 (en) * 2002-10-02 2004-04-22 Rivard William G. System and method for high performance data storage and retrieval
JP2004363385A (ja) * 2003-06-05 2004-12-24 Sony Computer Entertainment Inc 電子機器、情報処理装置、電磁波放射抑制部材
US20050010727A1 (en) * 2003-07-11 2005-01-13 Cuomo Gennaro A. Methods, systems and computer program products for controlling caching of distributed data
JP2005071351A (ja) * 2003-08-21 2005-03-17 Hewlett-Packard Development Co Lp プロセッサおよびプロセッサの動作方法
JP2005078264A (ja) * 2003-08-29 2005-03-24 Matsushita Electric Ind Co Ltd コンピュータシステム、コンパイラ装置およびオペレーティングシステム
JP2005352746A (ja) * 2004-06-10 2005-12-22 Canon Inc アレイ型記憶装置
US20060015683A1 (en) * 2004-06-21 2006-01-19 Dot Hill Systems Corporation Raid controller using capacitor energy source to flush volatile cache data to non-volatile memory during main power outage
US20060107005A1 (en) * 2004-11-18 2006-05-18 Herve Gilbert Philippe Andre Apparatus, system, and method for time sensitive copy
JP2006172403A (ja) * 2004-12-20 2006-06-29 Fujitsu Ltd 電源制御装置、バックアップ電源を備えた装置、電源制御プログラム及び電源制御方法
US20060265624A1 (en) * 2000-12-22 2006-11-23 Simple Tech, Inc. Protection against data corruption due to power failure in solid-state memory device
US20070260827A1 (en) * 2006-05-03 2007-11-08 Zimmer Vincent J Method to support heterogeneous memories

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5596708A (en) * 1994-04-04 1997-01-21 At&T Global Information Solutions Company Method and apparatus for the protection of write data in a disk array
GB2407405B (en) 2003-10-23 2008-05-21 Andrew Lester Small-scale RAID arrays and adapters for mobile computing devices

Patent Citations (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5650969A (en) * 1994-04-22 1997-07-22 International Business Machines Corporation Disk array system and method for storing data
JPH07295763A (ja) * 1994-04-22 1995-11-10 Internatl Business Mach Corp <Ibm> ディスク・アレイ装置およびデータの格納方法
JPH08185355A (ja) * 1994-09-30 1996-07-16 Advanced Risc Mach Ltd データメモリおよびその動作方法
JPH10269138A (ja) * 1997-03-25 1998-10-09 Hitachi Ltd キャッシュメモリ制御及びそれを用いたデータ処理装置
JPH10275112A (ja) * 1997-03-31 1998-10-13 Nec Corp キャッシュメモリシステム
US6594732B1 (en) * 1998-12-22 2003-07-15 Nec Electronics Corporation Computer system with memory system in which cache memory is kept clean
JP2000187616A (ja) * 1998-12-22 2000-07-04 Nec Corp キャッシュラインをクリーンな状態に保つメモリシステム
US20020087751A1 (en) * 1999-03-04 2002-07-04 Advanced Micro Devices, Inc. Switch based scalable preformance storage architecture
JP2001147865A (ja) * 1999-11-22 2001-05-29 Hitachi Ltd ディスク制御装置
US20060265624A1 (en) * 2000-12-22 2006-11-23 Simple Tech, Inc. Protection against data corruption due to power failure in solid-state memory device
US20040049643A1 (en) * 2002-09-06 2004-03-11 Guillermo Alavarez Storage system including a fast storage device for storing redundant data
EP1400899A2 (en) * 2002-09-20 2004-03-24 Quantum Corporation Accelerated RAID capable of returning to a previous state
JP2004118837A (ja) * 2002-09-20 2004-04-15 Quantum Corp 耐故障性の記憶サブシステムにデータを格納するための方法、記憶サブシステムおよびそのシステムのためのデータ編成管理プログラム
US20040078508A1 (en) * 2002-10-02 2004-04-22 Rivard William G. System and method for high performance data storage and retrieval
JP2004127031A (ja) * 2002-10-03 2004-04-22 Yaskawa Electric Corp メモリ切り替え回路
JP2004363385A (ja) * 2003-06-05 2004-12-24 Sony Computer Entertainment Inc 電子機器、情報処理装置、電磁波放射抑制部材
US20050010727A1 (en) * 2003-07-11 2005-01-13 Cuomo Gennaro A. Methods, systems and computer program products for controlling caching of distributed data
JP2005071351A (ja) * 2003-08-21 2005-03-17 Hewlett-Packard Development Co Lp プロセッサおよびプロセッサの動作方法
JP2005078264A (ja) * 2003-08-29 2005-03-24 Matsushita Electric Ind Co Ltd コンピュータシステム、コンパイラ装置およびオペレーティングシステム
JP2005352746A (ja) * 2004-06-10 2005-12-22 Canon Inc アレイ型記憶装置
US20060015683A1 (en) * 2004-06-21 2006-01-19 Dot Hill Systems Corporation Raid controller using capacitor energy source to flush volatile cache data to non-volatile memory during main power outage
US20060107005A1 (en) * 2004-11-18 2006-05-18 Herve Gilbert Philippe Andre Apparatus, system, and method for time sensitive copy
JP2006172403A (ja) * 2004-12-20 2006-06-29 Fujitsu Ltd 電源制御装置、バックアップ電源を備えた装置、電源制御プログラム及び電源制御方法
US20070260827A1 (en) * 2006-05-03 2007-11-08 Zimmer Vincent J Method to support heterogeneous memories

Also Published As

Publication number Publication date
US20080126700A1 (en) 2008-05-29
EP2097822A2 (en) 2009-09-09
US7904647B2 (en) 2011-03-08
EP2097822A4 (en) 2010-06-02
CN101542449B (zh) 2012-06-13
WO2008066605A2 (en) 2008-06-05
CN101542449A (zh) 2009-09-23
WO2008066605A3 (en) 2008-09-18
JP4996693B2 (ja) 2012-08-08
KR101214206B1 (ko) 2012-12-20
KR20090086266A (ko) 2009-08-11
WO2008066605B1 (en) 2008-10-30

Similar Documents

Publication Publication Date Title
JP4996693B2 (ja) 記憶装置コントローラキャッシュオフロード回路の性能および信頼性を最適化するためのシステム
TWI450087B (zh) 複數個磁碟陣列系統之資料儲存方法及資料儲存系統
KR101861924B1 (ko) 보호된 데이터로부터 분리된 패리티 데이터 저장
US8719520B1 (en) System and method for data migration between high-performance computing architectures and data storage devices with increased data reliability and integrity
US8725946B2 (en) Mass storage system and method of using hard disk, solid-state media, PCIe edge connector, and raid controller
JP4894922B2 (ja) Raidグループ変換装置、raidグループ変換方法およびraidグループ変換プログラム
US8370720B2 (en) Mass storage device and method for offline background scrubbing of solid-state memory devices
CN106557143B (zh) 用于数据存储设备的装置和方法
CN106557145A (zh) 断电保护系统及其方法
CN103049220B (zh) 存储控制方法、存储控制装置和固态存储系统
US9971515B2 (en) Incremental background media scan
TW200921675A (en) Scaleable and maintainable solid state drive
CN107077438A (zh) 通过通信介质的部分进行通信
JP6515752B2 (ja) ストレージ制御装置、制御方法、および制御プログラム
CN103150128A (zh) 基于ssd和磁盘的可靠混合存储系统实现方法
CN109992202A (zh) 数据存储设备、其操作方法以及包括其的数据处理系统
CN102164165B (zh) 一种网络存储系统的管理方法及装置
CN103019894B (zh) 一种独立冗余磁盘阵列的重建方法
WO2021242314A1 (en) Data integrity protection of zns needs
CN115167784A (zh) 一种数据写入方法、装置、设备及存储介质
US11984718B2 (en) Storage device including protection circuit for secondary power source and method of controlling secondary power source
CN104461961A (zh) 一种多核多线程的闪存装置及闪存控制方法
CN117111841A (zh) 一种基于国产双控磁盘阵列的数据分区的nfs共享加速方法
JP2012194867A (ja) ストレージ装置および制御装置
US11853163B2 (en) Selective rebuild of interrupted devices in data storage device arrays

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120327

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20120327

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20120406

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

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

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

Free format text: PAYMENT UNTIL: 20150518

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees