JP2009199199A - ストレージシステム及びそのデータライト方法 - Google Patents
ストレージシステム及びそのデータライト方法 Download PDFInfo
- Publication number
- JP2009199199A JP2009199199A JP2008038176A JP2008038176A JP2009199199A JP 2009199199 A JP2009199199 A JP 2009199199A JP 2008038176 A JP2008038176 A JP 2008038176A JP 2008038176 A JP2008038176 A JP 2008038176A JP 2009199199 A JP2009199199 A JP 2009199199A
- Authority
- JP
- Japan
- Prior art keywords
- memory device
- data
- nonvolatile memory
- size
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【解決課題】ライトデータを高性能側デバイスでキャッシュしてから、そのデータを高性能側デバイスから低性能側デバイスへコピーすると、低性能側デバイス内のフラッシュメモリの書き換え寿命が浪費される。
【解決手段】低性能側の不揮発性メモリデバイス内部のメモリ管理単位のサイズを保持し、ライトデータのサイズとメモリ管理単位のサイズとを比較する。ライトデータのほうが小さいときは、ライトデータを高性能側の不揮発性メモリデバイスへキャッシュし、そうでなければ低性能側デバイスへ書き込む。そして、高性能側デバイスにキャッシュされた複数のライトデータのアドレス値を参照して、キャッシュされたアドレス値がメモリ管理単位のサイズだけ連続しているアドレス区間を選択し、そのアドレス区間内に含まれるデータを、高性能側デバイスから低性能側デバイスへコピーする。
【選択図】図8
【解決手段】低性能側の不揮発性メモリデバイス内部のメモリ管理単位のサイズを保持し、ライトデータのサイズとメモリ管理単位のサイズとを比較する。ライトデータのほうが小さいときは、ライトデータを高性能側の不揮発性メモリデバイスへキャッシュし、そうでなければ低性能側デバイスへ書き込む。そして、高性能側デバイスにキャッシュされた複数のライトデータのアドレス値を参照して、キャッシュされたアドレス値がメモリ管理単位のサイズだけ連続しているアドレス区間を選択し、そのアドレス区間内に含まれるデータを、高性能側デバイスから低性能側デバイスへコピーする。
【選択図】図8
Description
本発明は、電気的に書き換え可能な不揮発性メモリを使用した半導体記憶装置を搭載したストレージシステム及びそのデータライト方法に関し、特に半導体記憶装置のライト性能特性に応じてデータ格納をするストレージシステム及びそのデータライト方法に関する。
特許文献1には、性能差のある不揮発性デバイス2種からなる記憶装置においてライト性能を向上させる方法が開示されている。その方法では、低性能側の不揮発性デバイスがライト可能になるまで期間は、高性能側の不揮発性デバイスで所定量のライトデータをキャッシュし、後からそのデータを低性能側デバイスへコピーし,それ以降のライト先も低性能側デバイスへスイッチする。例えば、高性能側デバイスはフラッシュメモリであり、低性能側デバイスは磁気ディスクである。また、上記の「ライト可能になるまで期間」は磁気ヘッドのシーク時間に相当する。このような記憶装置はハイブリッドハードディスクと呼ばれている。
米国登録特許7136973号明細書
いま、高性能側・低性能側デバイスともフラッシュメモリを用いた半導体記憶装置であるようなストレージシステムに、特許文献1のライト方法を適用した場合を考える。この方法では、高性能側デバイスから低性能側デバイスへデータコピーを行う制御において、そのデータサイズの最適性が考慮されていない。それゆえ、当該ストレージシステムに発生しうる問題として、低性能側デバイス内のフラッシュメモリの書き換え寿命(1メモリブロック当たり約10万回)が浪費される恐れがある。これは、一般に低性能のフラッシュメモリ記憶装置は、内部の制御ファームウェアで既定されたメモリ管理単位(例えば64KB)で内部フラッシュメモリの書き換えるように設計されていることに起因する。例えば、上記のデバイス間コピーサイズが4KBである場合には、変更されない周辺データ60KBを加えた64KBのデータが内部フラッシュメモリの空き領域にプログラムされる。つまり、低性能側デバイス内部で無駄なデータプログラムが発生する。これが、低性能側デバイスの書き換え寿命の浪費となる。一方、高性能側デバイスは、一般に外部からのデータライトに対して必要最低限のデータを内部フラッシュメモリにプログラムするような制御を実施する。そのため、高性能側デバイス内部でこのような無駄なデータプログラムはほとんど発生しない。
本発明は、以上の点を考慮してなされたもので、小さなサイズのライトデータを高性能側デバイスで複数回キャッシュしてから低性能側デバイスにライトし、平均のライト処理時間を削減し、ライト性能を向上させたストレージシステム及びそのデータライト方法を提案しようとするものである。
本発明は、所定の性能である第1の不揮発性メモリデバイスと、前記所定の性能より高性能である第2の不揮発性メモリデバイスとを含んで構成されるストレージシステムであって、前記第1の不揮発性メモリデバイス内のメモリを管理するメモリ管理単位のサイズを保持する保持部と、上位装置からのライト要求に応答して、そのライト要求されたライトデータのサイズと前記メモリ管理単位のサイズを比較し、前記ライトデータのサイズが前記メモリ管理単位のサイズより小さいときは、前記ライトデータを前記第2の不揮発性メモリデバイスへ一時的に書き込み、前記ライトデータのサイズが前記メモリ管理単位のサイズ以上のときは、前記ライトデータを前記第1の不揮発性メモリデバイスへ書き込む制御部とを備えるストレージシステム及びそのデータライト方法である。
さらに具体的には、性能差のある2種の不揮発性メモリデバイスから構成されるストレージシステムにおいて、以下を特徴とするデータライト方法を提供する。まず、低性能側の不揮発性メモリデバイス内部のメモリ管理単位のサイズを保持する。次に、前記ストレージシステムに対するライト要求に応答して以下を行う。(1)ライトデータのサイズと前記メモリ管理単位のサイズとを比較する。(2)当該ライトデータのほうが小さいときは、当該ライトデータを高性能側の不揮発性メモリデバイスへキャッシュし、そうでなければ前記低性能側デバイスへ書き込む。(3)次の(A)(B)のいずれか又は両方を行う。(A)前記高性能側デバイスにキャッシュされた複数の前記ライトデータのアドレス値を参照して、当該アドレス値が前記メモリ管理単位のサイズだけ連続しているアドレス区間を選択し、当該アドレス区間内に含まれる前記ライトデータを、前記高性能側デバイスから前記低性能側デバイスへコピーする。(B)前記高性能側デバイスにキャッシュされた複数の前記ライトデータのアドレス値を参照して、前記メモリ管理単位のサイズ以下で、前記アドレス値を最も多く含むアドレス区間を選択し、当該アドレス区間内に含むことができる前記ライトデータを前記高性能側デバイスから読み出し、ライトデータを前記低性能側デバイスから読み出し、当該アドレス区間の連続データを作成し、当該連続データを前記低性能側デバイスへライトする。
本発明によれば、性能差のある2種の不揮発性メモリデバイスから構成されるストレージシステムにおいて、小さなサイズのライトデータを高性能側デバイスで複数回キャッシュしてから低性能側デバイスにライトするため、平均のライト処理時間が削減され、ストレージシステムのライト性能が向上するという効果を奏する。
さらに、そのキャッシュデータを低性能側デバイスへライトする際には、低性能側デバイス内のフラッシュメモリの書き換え寿命が浪費されるようなデータサイズのライトが回避されるため、ストレージシステム内のフラッシュメモリの書き換え寿命が改善されるという効果を奏する。
以下、本発明の各実施形態について説明する。
まず、本発明を適用するストレージシステムにおいて、ユーザデータ記憶媒体として搭載される2種類の半導体記憶装置について、それぞれの内部ハードウェア構成とライト性能特性について図1〜図4を用いて説明する。以下、半導体記憶装置を“Solid State Disk”と呼び、SSDと略す。
まず、本発明を適用するストレージシステムにおいて、ユーザデータ記憶媒体として搭載される2種類の半導体記憶装置について、それぞれの内部ハードウェア構成とライト性能特性について図1〜図4を用いて説明する。以下、半導体記憶装置を“Solid State Disk”と呼び、SSDと略す。
1つ目のSSDは一般消費者向けに製品化されているコンシューマ向けSSD(以下、C−SSDと略す。)である。2つ目のSSDは企業向けに製品化されているエンタプライズ向けSSD(以下、E−SSDと略す。)である。C−SSDは原価や利益率をできるだけ安くして携帯型電子機器など向けの記憶装置市場に大量に流通させ、薄利多売で利益を得ることを意図した製品である。製造コストを安く抑えることを優先して安価なプロセッサを使用したり、メモリリソースを少なくしたりするため、性能はE−SSDより低い。
一方、E−SSDは性能をできるだけ高くしてハイエンドの顧客要求を満足させることを意図した製品である。性能を高めることを優先して高価な部品を使用したり、高機能な制御ファームウェアを実装したりするため、C−SSDより製造コストが高い。業務用サーバ向け記憶装置などを主な応用先としており市場流通量があまり多くないため、利益率も高く設定されている。その結果、一般的なE−SSD価格は同容量のC−SSD価格の約5倍である。これは、コンシューマ向けハードディスクドライブとエンタプライズ向けハードディスクドライブに見られる価格差の存在と同様である。
図1はC−SSD100のハードウェア構成を示す。C−SSD100は、メモリコントローラ110、およびフラッシュメモリ120を備える。フラッシュメモリ120はデータを不揮発に記憶する。メモリコントローラ110は、フラッシュメモリ120のデータの「リード」、「プログラム」、および「消去」を実行する。メモリコントローラ110は、プロセッサ112、SATA(シリアルATA)インタフェース111、データ転送部115、RAM113、およびROM114を備える。データ転送部115はバスロジックやフラッシュメモリ120の制御ロジックを含み、その他の構成要素111〜114やフラッシュメモリ120と接続する。プロセッサ112はROM114に格納された制御ファームウェアに従ってデータ転送部115を制御する。RAM113は転送データ用バッファメモリや制御ファームウェア用ワークメモリとして機能する。また、フラッシュメモリ120は複数のフラッシュメモリチップ121で構成される。C−SSD100全体を動作させる電源はSATAインタフェース111から外部供給される。
図2はE−SSD200のハードウェア構成を示す。E−SSD200は、メモリコントローラ210、フラッシュメモリ220、およびバックアップ電源230を備える。フラッシュメモリ220はデータを不揮発に記憶する。メモリコントローラ210は、フラッシュメモリ220のデータの「リード」、「プログラム」、および「消去」を実行する。メモリコントローラ210は、プロセッサ212、SAS(シリアル・アタッチド・SCSI)インタフェース211、データ転送部215、RAM213、およびROM214を備える。データ転送部215はバスロジックやフラッシュメモリ220の制御ロジックを含み、その他の構成要素211〜214やフラッシュメモリ220と接続する。プロセッサ212はROM214に格納された制御ファームウェアに従ってデータ転送部215を制御する。RAM213は転送データ用バッファメモリや制御ファームウェア用ワークメモリとして機能する。また、フラッシュメモリ220は複数のフラッシュメモリチップ221で構成される。
なお、SASインタフェース211は2つのポートを備え、2つの独立したアクセスを非同期に受け入れることができる。一方のポートのアクセス経路に障害が置きても、もう一方を使ってアクセスを継続することが可能である。
E−SSD200全体を動作させる電源は、基本的にSASインタフェース211から外部供給されるが、外部供給が絶たれた場合にはバックアップ電源230から供給される。外部供給が絶たれたときにRAM213内にフラッシュメモリ220に書き込むべきデータが残っていた場合は、バックアップ電源230からの電力を利用してそのデータをフラッシュメモリ220に書き込む。そして、切断された外部供給が再開するまでは外部アクセスは受け入れない。
図3(a)を用いて、C−SSD100のデータライト処理方式および性能特性を説明する。
各フラッシュメモリチップ121は複数(例えば4096個)のメモリブロック301で構成される。メモリブロックはフラッシュメモリの消去単位であり、そのサイズは例えば256KBである。1つのメモリブロック301を消去する所要時間は2msである。さらに、各メモリブロック301は複数(例えば64個)のメモリページ302で構成される。メモリページはフラッシュメモリ120のプログラム単位であり、そのサイズは4KBである。1つのメモリページ302をプログラムする所要時間は500μs、リードする所要時間は50μsである。C−SSD100内では連続する複数(例えば16個)のメモリページ302をまとめた管理単位303を作る。C−SSD100外部からアクセスするときの論理アドレス空間を、そのサイズを単位として分割し、各分割要素をフラッシュメモリ120全体の物理アドレス(チップ番号、ブロック番号、管理単位番号)へ対応付けする。この対応付けしたテーブルをアドレス変換テーブルと呼ぶ。このアドレス変換テーブルは、C−SSD100外部からのライトアクセスによって更新される。なぜなら、フラッシュメモリ120は構造的に上書きできない記憶素子であるからである。つまり、プログラムすべきデータは元のデータとは違う未書き込みの領域に書き、元のデータがあったメモリブロック301は後で消去する必要があるため、各論理アドレスのデータの物理的所在は移動せざるを得ないからである。このアドレス変換テーブルはRAM113上に設置される。複数(16個)のメモリページをまとめたものを管理単位とするのは、対応付けの要素数を減らし、メモリリソース量を節約するためである。
いま、C−SSD100外部から1KBのデータライトがあったとすると、まず、プロセッサ112は、そのデータの論理アドレスを含むアドレス区間に対応する管理単位304を選択し、その領域内でライト対象外の63KBデータ307をRAM113上にリードする(305)。そして1KBのライトデータ306をRAM113上に設定し、それら64KBのデータを未書き込みの管理単位308にプログラムする(309)。リード305の所要時間は16個のメモリページ302を読むため、16回×50μs=0.8msである。プログラム309の所要時間は16個のメモリページを書くため、16回×500μs=8msである。つまり、C−SSD100外部から1KBをデータライトする時にはデバイスレベルで8.8msの時間を要する。なお、実効的な平均処理時間は、ライトデータの転送時間や、時々行うメモリブロック消去時間等がこれに加算されたものである。
図3(b)は、以上のライト方式に基づいて、C−SSD100におけるライトデータサイズと平均処理時間(ms)、性能(IOPS:1秒当たりの平均アクセス回数)との関係を表したものである。処理時間は左縦軸を用いた棒グラフ、性能は右縦軸を用いた実線グラフで示す。なお、平均処理時間はデバイスレベル処理時間とその他の処理時間(データ転送等の時間)に分けて示す。
管理単位のサイズ64KBより小さいデータ(XKB)をライトした場合、C−SSD100内部では(64−X)KBのデータリードと64KBの管理単位データプログラムが発生するため、デバイスレベルで8〜8.8msの時間を要する。また、128KB、256KBをライトした場合、C−SSD100内部ではプログラムすべき管理単位の個数に応じてそれぞれ16ms、32msの時間を要する。このように、C−SSD100に対する小単位のデータライトは、そのアドレス周辺データの移動を伴うため、内部のフラッシュメモリ120の有限な書き換え寿命は必要以上に浪費されることになる。
また、性能(IOPS)は平均処理時間の逆数として求めたものである。ライトデータのサイズが管理単位の64KBよりも大きい場合は、サイズが小さくなるにつれて性能は着実に増加するが、管理単位の64KBより小さくなると110 IOPS程度を漸近線として収束してしまう。
次に、図4(a)を用いて、E−SSD200のデータライト処理方式および性能特性を説明する。
各フラッシュメモリチップ221は、C−SSD100のフラッシュメモリチップ121と同じものであり、複数(例えば4096個)のメモリブロック301で構成される。各メモリブロック301は複数(例えば64個)のメモリページ302で構成される。E−SSD200内では1個のメモリページ302を管理単位とする。E−SSD200外部からアクセスするときの論理アドレス空間を、メモリページ302を単位として分割し、各分割要素をフラッシュメモリ220全体の物理アドレス(チップ番号、ブロック番号、ページ番号)へ対応付けする。この対応付けをアドレス変換テーブルと呼ぶ。このアドレス変換テーブルは、E−SSD200外部からのライトアクセスによって更新される。また、このアドレス変換テーブルはRAM213上に設置される。
いま、E−SSD200外部から1KBのデータライトが多数回あったとする。それらのデータはRAM213上に一旦バッファリングされる。そのうち、同一のページ論理アドレスに含まれる4個の1KBデータ310〜313がバッファ上にあれば、それらを結合して4KBのページデータ314を作る。そして、そのデータを未書き込みの物理ページ315にプログラムする(316)。プログラム316の所要時間は1個のメモリページを書くため、1回×500μs=0.5msである。これは1KBライト4回分に相当するため、1回当たりの平均では約0.13msである。つまり、E−SSD200外部から1KBをデータライトする時にはデバイスレベルで0.13msの時間を要する。
上記ライト方式において、RAM213が枯渇するまでライトデータをバッファリングしても、4KBのページデータ314が作れない場合は、フラッシュメモリ220から不足データをリードし、ページデータ314を補完する。これはライト性能低下の要因となる。つまり、RAM213上にライトデータを多くバッファリングできる製品ほどライト性能が高くなる。そのため、高性能を追求したE−SSD200は大容量のRAM213を搭載する。
なお、実効的な平均処理時間は、ライトデータの転送時間や、時々行うメモリブロック消去時間等がこれに加算されたものである。
図4(b)は、以上のライト方式に基づいて、E−SSD200におけるライトデータサイズと平均処理時間(ms)、性能(IOPS)との関係を表したものである。処理時間は左縦軸を用いた棒グラフ、性能は右縦軸を用いた実線グラフで示す。なお、平均処理時間はデバイスレベル処理時間とその他の処理時間(データ転送等の時間)に分けて示す。
E−SSD200内部ではライトすべきデータ以外のデータをできるだけフラッシュメモリ220にプログラムしないように制御されるため、内部のフラッシュメモリ220の有限な書き換え寿命は最も無駄なく消費されることになる。
また、性能(IOPS)は平均処理時間の逆数として求めたものである。性能は、ライトデータのサイズが小さくなるにつれて着実に増加し、ディスクドライブの最小ライト単位(1セクタ)である0.5KBでは、10K IOPS程度に達する。これはC−SSD100の最大性能の約100倍に相当する。
さて、以上に示したC−SSD100とE−SSD200の特徴を踏まえて、本発明の実施形態を詳細に説明する。
図5は、本発明を適用したストレージシステム500の内部構成を示した図である。ストレージシステム500は、ホストパッケージ(以下、ホストPKと略す。)511、521、MPU(マイクロプロセッサユニット)PK513、523、キャッシュPK514、524、バックエンドPK515、525を備え、それぞれはスイッチPK512、522に接続されている。ストレージシステム500の各PKは冗長化(2重化)構成を取っている。
ホストPK511、521は、ホストI/Fとして、Fiber ChannelやiSCSI等のI/Fコントローラを含むパッケージである。ストレージシステム500は、ホストPK511、521と複数のホスト501、502との間を、SAN(Storage Area Network)503を介して接続する。
MPU PK513、523は、ストレージシステム500を制御するMPU、制御ファームウェアやストレージシステムの構成情報を格納するためのメモリ、および、MPUやキャッシュ等をスイッチPK512、522と接続するためのブリッジを含むパッケージである。
キャッシュPK514、524は、ストレージシステム500に格納するユーザデータの一次記憶領域であるキャッシュメモリと、キャッシュとスイッチPKとを接続するキャッシュコントローラを含むパッケージである。
バックエンドPK515、525は、ストレージシステム500内の複数のSSDユニット(540〜543、550〜553等)を制御するI/Fコントローラを含むパッケージである。バックエンドPK515、525のI/Fコントローラは、バックエンドスイッチ516、526を介して、複数のSSDユニット540〜543、550〜553等と接続している。バックエンドスイッチ516、526はSAS対応のホストバスアダプタとエキスパンダで構成されており、SASインタフェースとSATAインタフェースの両方をサポートする機能を持つ。
SSDユニット(540〜543、550〜553等)は、C−SSD100、E−SSD200、または両者をペアで内蔵する記憶装置ユニットである。各SSDユニット540〜543、550〜553等は、ポートが冗長化(2重化)されたSATAまたはSASインタフェースを持つ。そのため、各パッケージやバックエンドスイッチの1つに障害が発生した場合にも、冗長化されたポートのいずれかを経由してSSDユニットのユーザデータへアクセス可能となっている。なお、SSDユニット540〜543、550〜553等に共通する内部構成については後述する。
ストレージシステム500は、SSDユニットの故障によるユーザデータ損失を防ぐため、複数のSSDユニットにてRAIDグループを構成し、データの冗長性を図る。例えば、SSDユニット540〜543の4ユニットで、データ:パリティ比が3:1のRAID5型のグループ544を構成したり、SSDユニット550〜553の2×2ユニットでRAID0+1型のグループ554を構成したりすることができる。
ストレージシステム500は保守クライアント504と接続しており、ユーザは保守クライアント504を通じて、上記RAIDグループの作成などのストレージ制御をおこなう。
以下、図6、図7を用いてSSDユニット540〜543、550〜553等に共通する内部構成について説明する。図6は本発明の第1の実施形態におけるSSDユニットの内部構成、図7は本発明の第2の実施形態におけるSSDユニットの内部構成である。
第1の実施形態では、多数(例えば全体の95%)のSSDユニットを図6(a)のような、SATAマルチプレクサ600を接続したC−SSD100による構成(以下、構成Aと呼ぶ)とし、それ以外の少数(例えば全体の5%)のSSDユニットを図6(b)のようなE−SSD200による構成(以下、構成Bと呼ぶ)とする。いずれの構成のSSDユニットも必ず冗長型のRAIDグループに参加させ、各SSDユニットの格納データを保護する。なお、SATAマルチプレクサ600とは、1ポートのSATAインタフェースを擬似的に2ポートのSATAインタフェースに見せるアダプタ装置である。
第1の実施形態では、MPU PK513(または523)は、構成AのSSDユニットにライトすべきデータのうち、64KB未満のものは基本的に構成BのSSDユニットに代行ライトし、必要に応じてそのデータを複数個まとめて構成BのSSDユニットから構成AのSSDユニットへ移動するというライト処理を行う。
図8〜図10を用いて、第1の実施形態におけるストレージシステム500のライトアクセス処理手順を説明する。
MPU PK513(または523)は、キャッシュPK514(または524)上にダーティなライトデータがあることを検出すると、それをSSDユニットへライトする処理を開始する(800)。まず、ライトデータのサイズが64KB未満であるかを判定する(801)。結果が偽(64KB以上)ならば、ライトデータを構成AのSSDユニットの一部へライトし(811)、ステップ813へ遷移する。一方、ステップ801の結果が真(64KB未満)ならば、構成BのSSDユニットに空き領域があるかを判定する(802)。結果が真(空きあり)ならば、ライトデータを構成BのSSDユニットの一部へライトし(812)、ステップ813へ遷移する。一方、ステップ802の結果が偽(空きなし)ならば、ステップ803へ遷移する。
MPU PK513(または523)は、ステップ803のために、構成AのSSDユニットのアドレス空間内で構成BのSSDユニットがライト代行している部分を管理するマップ(C−SSDダーティマップ)を持つ。これは例えば、キャッシュPK514(または524)の一部に設置する。図9(図10)のように、C−SSDダーティマップは、構成AのSSDユニットのアドレス空間900(1000)において、構成BのSSDユニットがライト代行している部分901(1001)と、代行していない部分902(1002)をそれぞれ“1”と“0”で表記したビットマップである。このマップは、ストレージシステム500のシャットダウン時に、構成BのSSDユニットの一部にも不揮発に保存しておく。ストレージシステム500の起動時には、これを読み出してキャッシュPK514(または524)の一部へ設置する。
ステップ803では、MPU PK513(または523)は、このC−SSDダーティマップを参照し、図9の区間910のように、連続64KBがダーティとなっている(構成BのSSDユニットが記録代行している)アドレス区間を選択する。もし、そういう区間が存在しないならば、図10の区間1010のように、64KB以下の長さのアドレス区間のうち、ダーティとなっている部分の密度が最も高いものを選択する。
次に、MPU PK513(または523)は、図10の区間1010のようなものを選択した場合、ライトデータのサイズがその区間の長さよりも大きいかを判定する(804)。結果が真(大きい)ならば、ライトデータを構成AのSSDユニットの一部へライトし(811)、ステップ813へ遷移する。一方、ステップ804の結果が偽(大きくない)ならば、その選択区間においてダーティなアドレス部分のデータを構成BのSSDユニットからバッファ920(1020)にリードする(805、930、1030)。そのバッファ920、1020は例えば、キャッシュPK514(または524)の一部を利用する。そして、図10の区間1010のようなものを選択した場合、その選択区間においてクリーン(非ダーティ)なアドレス部分のデータを構成AのSSDユニットからバッファ1020にリードする(806、1040)。
次に、MPU PK513(または523)は、その選択区間が今回のライトデータのアドレスを含むかを判定する(807)。結果が真(含む)ならば、そのライトデータをバッファ920(1020)に設定し(810)、バッファ920(1020)上の当該選択区間データを構成AのSSDユニットの一部へライトし(811、940、1050)、ステップ813へ遷移する。一方、ステップ807の結果が偽(含まない)ならば、バッファ920(1020)上の当該選択区間データを構成AのSSDユニットの一部へライトし(808、940、1050)、さらに、構成BのSSDユニットで当該選択区間を代行していた部分(つまり上書きしてもよい部分)へ今回のライトデータをライトし(809)、ステップ813へ遷移する。
ステップ813では、MPU PK513(または523)は、C−SSDダーティマップにおいて、以上の手順を通して構成AのSSDユニットへライトしたアドレス部分をクリーン(“0”)に設定し、また、以上の手順を通して構成BのSSDユニットへライトしたアドレス部分をダーティ(“1”)に設定するように更新を行う。以上により、ライト処理を終了する(814)。
第2の実施形態では、全てのSSDユニット540〜543、550〜553等を図7のような、C−SSD100と、それよりも小容量(例えば容量比で5%)のE−SSD200と、それらと接続したSSDアダプタ700による構成とする。
SSDアダプタ700は、C−SSD100およびE−SSD200それぞれのユーザデータの「読み出し」、「書き込み」を実行する。SSDアダプタ700は、プロセッサ704、SATAインタフェース701、702、データ転送部7703、RAM705、ROM706、SATAインタフェース707、およびSASインタフェース708を備える。
データ転送部703はバスロジックやSASやSATAの制御ロジックを含み、その他の構成要素701,702,704〜708と接続する。プロセッサ704はROM706に格納された制御ファームウェアに従ってデータ転送部703を制御する。RAM705は転送データ用バッファメモリや制御ファームウェア用ワークメモリとして機能する。データ転送部703は、2ポートのSATAインタフェース701、702からの非同期なアクセスを受け入れることができる。C−SSD100はSATAインタフェース707に1ポート接続され、E−SSD200はSASインタフェース708に2ポート接続される。後者は1ポート接続でもよいが、耐障害性向上のためには冗長化が望ましい。
なお、バックエンドスイッチ516、526はSASインタフェースとSATAインタフェースの両方をサポートするため、SSDアダプタ700に含まれるSATAインタフェース701、702は、2ポートのSASインタフェースであってもよい。
第2の実施形態では、SSDアダプタ700は、C−SSD100にライトすべきデータのうち、64KB未満のものは基本的にE−SSD200に代行ライトし、必要に応じてそのデータを複数個まとめてE−SSD200からC−SSD100へ移動するというライト処理を行う。
第2の実施形態におけるストレージシステム500のライトアクセス処理手順は、第1の実施形態で示した図8〜図10の手順と基本的に同じである。ただし、いくつかの点で異なるため、それを以下に示しておく。
まず、処理の実行主体がMPU PK513,523ではなく、各SSDユニット内のSSDアダプタ700である。そして、ステップ805,806,810におけるバッファ、およびC−SSDダーティマップの所在はキャッシュPK514,524の一部ではなく、各SSDアダプタ700のRAM704内部である。
第2の実施形態が第1の実施形態よりも優れている点は、本発明の適用範囲がSSDユニットという小規模装置内に内包されるため、共通のSSDユニットを既存の多様なストレージシステムへ換装するだけでよく、既存ストレージシステムそれぞれのライト制御ファームウェアに変更を行う必要がなく、導入障壁が低いことである。
以上、2つの実施形態を示しながら述べたライトアクセス処理手順によれば、ストレージシステム500のライト性能は向上し、フラッシュメモリ120,220の書き換え寿命は改善する効果をもたらす。以下、2つのアクセスパタンを示し、C−SSD100のみで構成した従来のストレージシステムと、本発明のストレージシステム500とを比較しながら効果の大きさを説明する。
1つ目の例として、キャッシュPK514(または524)から1KBのライトバックデータが断続的にあふれ出し、それらが最終的に64KBの連続なアドレス区間を埋め尽くした場合を考える。従来は、C−SSDに1KBのライトを少なくとも64回与えるため、64回×8.8ms=563.2msのデバイス処理時間が必要だった。本発明では、E−SSDに1KBのライトを少なくとも64回、その後でC−SSDに64KBのライトを1回与えるため、64回×0.13ms+1回×8ms=16.32msのデバイス処理時間で済む。両者とも、実効的な処理時間はこれにデータ転送等の時間も加算する必要があるが、それでも時間短縮効果の大きさは歴然である。また、フラッシュメモリ書き換え全体量は、従来は64回×64KB(C−SSD)=4096KBも発生していたが、本発明では64回×1KB(E−SSD)+1回×64KB(C−SSD)=128KBしか発生しない。
2つ目の例として、キャッシュPK514(または524)から1KBのライトバックデータが断続的にあふれ出し、それらが最終的に63KBの連続なアドレス区間を1KB間隔で32個埋めた場合を考える。従来は、C−SSDに1KBのライトを少なくとも32回与えるため、32回×8.8ms=281.6msのデバイス処理時間が必要だった。本発明では、E−SSDに1KBのライトを少なくとも32回、その後でC−SSDから1KBのリードを31回、C−SSDに63KBのライトを1回与えるため、32回×0.13ms+31回×0.05ms+1回×8ms=13.71msのデバイス処理時間で済む。両者とも、実効的な処理時間はこれにデータ転送等の時間も加算する必要があるが、それでも時間短縮効果の大きさは歴然である。また、フラッシュメモリ書き換え全体量は、従来は32回×64KB(C−SSD)=2048KBも発生していたが、本発明では32回×1KB(E−SSD)+1回×64KB(C−SSD)=96KBしか発生しない。
このように、本発明によれば、従来に比べて数10倍の性能向上および寿命改善がもたらされる。
第1の実施形態の効果の大きさは、図6(a)構成のSSDユニットの総記憶容量と図6(b)構成のSSDユニットの総記憶容量の比率に依存する。また、第2の実施形態の効果の大きさは、C−SSD100の記憶容量とE−SSD200の記憶容量の比率に依存する。いずれにおいても、E−SSDの比率を大きくするほど、小単位のライトデータをE−SSDで多く収納できるため、ストレージシステム全体としてのライト性能および書き換え寿命は向上する。しかし、ストレージシステムのコストパフォーマンス(費用対性能、費用対寿命)を考えるならば、E−SSDの比率が大きければ大きいほどよいというものではない。
例えば、小単位のデータライトがストレージシステム500全体のユーザデータ容量の高々10%に集中する使用環境ならば、E−SSDの比率が全体の10%程度となる構成をとるだけで十分な効果を享受できる。しかし、その比率を10%以上にしても、E−SSD追加によるコストアップに見合うほどさらなる効果の増大はない。はじめに述べたように、E−SSD価格は同容量のC−SSD価格の約5倍であるから、10%分のE−SSD追加は50%のコストアップになり、ストレージシステムのドライブ原価は1.5倍となる。それでも上述の例のように数10倍の性能向上および寿命改善がもたらされる。すなわち、本発明の適用価値は、低価格なC−SSDを主に構成した低価格帯ストレージシステムにおいて、使用環境に応じて適度な比率のE−SSDを追加することで、コストパフォーマンスを最適化することにある。
なお、ストレージシステム500の使用環境が稼働時間の経過ともに変化し、全体のユーザデータ容量に対して小単位のデータライトが集中する領域が拡大した場合、ライトバックするアドレス区間のダーティ密度は確率的に減少し、本発明による性能向上および寿命改善の効果は低下する。ここでさらにE−SSDを追加すれば性能向上および寿命改善の効果を維持することができる。そこで、例えば、MPU PK513、523がユーザデータアドレス空間内での小単位のデータライト回数分布を分析し、E−SSD追加により性能向上および寿命改善の効果を維持できると判断したならば、保守クライアント504を通じて、ユーザにE−SSD追加を促すメッセージを示すようにしてもよい。
なお、以上の説明においては、ライトデータをC−SSDまたはE−SSDのどちらに書き込むかの判定基準や、ライトバックサイズの基準を64KBとしたが、この値はC−SSDのメモリ管理方式により変わりうるメモリ管理単位である。よって、本発明はこの値を特定の数値に限定するものではない。C−SSDのメモリ管理単位はそのC−SSDの製造メーカに問い合わせるなどして取得する。もし、メモリ管理単位を取得できない場合には、C−SSDのライト性能テストを行い、図3(b)のようなライトデータサイズと性能(または処理時間)の関係を示す特性グラフを描く。そして、性能曲線の傾きが大きく変化する点(またはライトデータサイズの減少に対して処理時間が下げ止まる点)を求めることで、C−SSDのメモリ管理単位を推定する。この推定値をライト先判定基準やライトバックサイズ基準値に適用してもよい。
なお、以上の説明においては、フラッシュメモリを記憶媒体とするストレージシステムへの実施形態を示したが、有限な書き換え寿命を持つその他の不揮発性メモリを記憶媒体とするストレージシステムについても、上述の発明を実施することが可能であり、本発明の効果を享受することは明白である。
本発明は、ストレージシステム及びそのデータライト方法に広く適用することができる。
100…コンシューマ向けSSD、200…エンタプライズ向けSSD、500…ストレージシステム、540〜543、550〜553…SSDユニット、700…SSDアダプタ
Claims (18)
- 所定の性能である第1の不揮発性メモリデバイスと、前記所定の性能より高性能である第2の不揮発性メモリデバイスとを含んで構成されるストレージシステムであって、
前記第1の不揮発性メモリデバイス内のメモリを管理するメモリ管理単位のサイズを保持する保持部と、
上位装置からのライト要求に応答して、そのライト要求されたライトデータのサイズと前記メモリ管理単位のサイズを比較し、前記ライトデータのサイズが前記メモリ管理単位のサイズより小さいときは、前記ライトデータを前記第2の不揮発性メモリデバイスへ一時的に書き込み、前記ライトデータのサイズが前記メモリ管理単位のサイズ以上のときは、前記ライトデータを前記第1の不揮発性メモリデバイスへ書き込む制御部と、
を備えることを特徴とするストレージシステム。 - 前記制御部は、前記第2の不揮発性メモリデバイスに一時的に書き込まれた複数の前記ライトデータのアドレス値を参照し、その参照したアドレス値が前記メモリ管理単位のサイズだけ連続しているアドレス区間を選択し、その選択されたアドレス区間に含まれるライトデータを前記第2の不揮発性メモリデバイスから前記第1のメモリデバイスへコピーすることを特徴とする請求項1記載のストレージシステム。
- 前記制御部は、前記第2の不揮発性メモリデバイスに一時的に書き込まれた複数の前記ライトデータのアドレス値を参照し、前記メモリ管理単位サイズ以下で、前記アドレス値を最も多く含むアドレス区間を選択し、その選択されたアドレス区間に含まれるライトデータを前記第2の不揮発性メモリデバイスから読み出し、前記アドレス区間内に含むことができるライトデータを前記第1の不揮発性メモリデバイスから読み出し、これら読み出したライトデータから連続データを作成し、その作成した連続データを前記第1の不揮発性メモリデバイスへ書き込むことを特徴とする請求項1記載のストレージシステム。
- 前記第1の不揮発性メモリデバイスから読み出されるライトデータは、前記第2の不揮発性メモリデバイスから読み出されるライトデータと連続させたときに、前記アドレス区間に格納されるデータ量以下となるデータが読み出されることを特徴とする請求項3記載のストレージシステム。
- 前記第2の不揮発性メモリデバイスのメモリ管理単位のサイズは、前記第1の不揮発性メモリデバイスのメモリ管理単位のサイズより小さいことを特徴とする請求項1記載のストレージシステム。
- 前記第1の不揮発性メモリデバイスの性能と前記第2の不揮発性メモリデバイスの性能との差は、少なくともライト性能の差を含むことを特徴とする請求項1記載のストレージシステム。
- 前記第1の不揮発性デバイスはコンシューマ向けの半導体記憶装置であり、前記第2の不揮発性メモリデバイスは企業向けの半導体記憶装置であることを特徴とする請求項1記載のストレージシステム。
- 所定の性能である第1の不揮発性メモリデバイスと、前記所定の性能より高性能である第2の不揮発性メモリデバイスとを含んで構成されるストレージシステムのデータライト方法であって、
前記第1の不揮発性メモリデバイス内のメモリを管理するメモリ管理単位のサイズを保持するステップと、
上位装置からのライト要求に応答して、そのライト要求されたライトデータのサイズと前記メモリ管理単位のサイズを比較するステップと、
前記ライトデータのサイズが前記メモリ管理単位のサイズより小さいときは、前記ライトデータを前記第2の不揮発性メモリデバイスへ一時的に書き込み、前記ライトデータのサイズが前記メモリ管理単位のサイズ以上のときは、前記ライトデータを前記第1の不揮発性メモリデバイスへ書き込むステップと、
を含むことを特徴とするストレージシステムのデータライト方法。 - 前記第2の不揮発性メモリデバイスに一時的に書き込まれた複数の前記ライトデータのアドレス値を参照するステップと、
その参照したアドレス値が前記メモリ管理単位のサイズだけ連続しているアドレス区間を選択するステップと、
その選択されたアドレス区間に含まれるライトデータを前記第2の不揮発性メモリデバイスから前記第1のメモリデバイスへコピーするステップと、
を含むことを特徴とする請求項8記載のストレージシステムのデータライト方法。 - 前記第2の不揮発性メモリデバイスに一時的に書き込まれた複数の前記ライトデータのアドレス値を参照するステップと、
前記メモリ管理単位サイズ以下で、前記アドレス値を最も多く含むアドレス区間を選択し、その選択されたアドレス区間に含まれるライトデータを前記第2の不揮発性メモリデバイスから読み出すステップと、
前記アドレス区間内に含むことができるライトデータを前記第1の不揮発性メモリデバイスから読み出すステップと、
これら読み出したライトデータから連続データを作成し、その作成した連続データを前記第1の不揮発性メモリデバイスへ書き込むステップと、
を含むことを特徴とする請求項8記載のストレージシステムのデータライト方法。 - 前記第1の不揮発性メモリデバイスから読み出されるライトデータは、前記第2の不揮発性メモリデバイスから読み出されるライトデータと連続させたときに、前記アドレス区間に格納されるデータ量以下となるデータが読み出されることを特徴とする請求項10記載のストレージシステムのデータライト方法。
- 前記第2の不揮発性メモリデバイスのメモリ管理単位のサイズは、前記第1の不揮発性メモリデバイスのメモリ管理単位のサイズより小さいことを特徴とする請求項8記載のストレージシステムのデータライト方法。
- 前記第1の不揮発性メモリデバイスの性能と前記第2の不揮発性メモリデバイスの性能との差は、少なくともライト性能の差を含むことを特徴とする請求項8記載のストレージシステムのデータライト方法。
- 前記第1の不揮発性デバイスはコンシューマ向けの半導体記憶装置であり、前記第2の不揮発性メモリデバイスは企業向けの半導体記憶装置であることを特徴とする請求項8記載のストレージシステムのデータライト方法。
- ストレージシステムに用いられるアダプタ装置であって、
所定の性能である第1の不揮発性メモリデバイスが有するインタフェースと接続する第1のインタフェースと、
前記所定の性能より高性能である第2の不揮発性メモリデバイスが有するインタフェースと接続する第2のインタフェースと、
前記第1の不揮発性メモリデバイス内のメモリを管理するメモリ管理単位のサイズを保持する保持部と、
上位装置からのライト要求に応答して、そのライト要求されたライトデータのサイズと前記メモリ管理単位のサイズを比較し、前記ライトデータのサイズが前記メモリ管理単位のサイズより小さいときは、前記ライトデータを前記第2の不揮発性メモリデバイスへ一時的に書き込み、前記ライトデータのサイズが前記メモリ管理単位のサイズ以上のときは、前記ライトデータを前記第1の不揮発性メモリデバイスへ書き込む制御部と、
を備えることを特徴とするアダプタ装置。 - 前記第1のインタフェースと前記第2のインタフェースは、異なる仕様のインタフェースであり、前記第1のインタフェースが前記ストレージシステムとのインタフェースであり、
前記第2のインタフェースを前記ストレージシステムとのインタフェースと互換性を持たせるための第3のインタフェースを備えること、
を特徴とする請求項15記載のアダプタ装置。 - 前記第1のインタフェースはシリアルATAインタフェースであり、前記第2のインタフェースはSASインタフェースであることを特徴とする請求項16記載のアダプタ装置。
- 前記第2の不揮発性メモリデバイスのメモリ管理単位のサイズは、前記第1の不揮発性メモリデバイスのメモリ管理単位のサイズより小さいことを特徴とする請求項15記載のアダプタ装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008038176A JP2009199199A (ja) | 2008-02-20 | 2008-02-20 | ストレージシステム及びそのデータライト方法 |
| US12/105,076 US20090210611A1 (en) | 2008-02-20 | 2008-04-17 | Storage system and data write method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008038176A JP2009199199A (ja) | 2008-02-20 | 2008-02-20 | ストレージシステム及びそのデータライト方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2009199199A true JP2009199199A (ja) | 2009-09-03 |
Family
ID=40956172
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2008038176A Pending JP2009199199A (ja) | 2008-02-20 | 2008-02-20 | ストレージシステム及びそのデータライト方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20090210611A1 (ja) |
| JP (1) | JP2009199199A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8656252B2 (en) | 2011-06-08 | 2014-02-18 | Panasonic Corporation | Memory controller and non-volatile storage device |
| JP2020149151A (ja) * | 2019-03-11 | 2020-09-17 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
Families Citing this family (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8949565B2 (en) * | 2009-12-27 | 2015-02-03 | Intel Corporation | Virtual and hidden service partition and dynamic enhanced third party data store |
| US8819208B2 (en) | 2010-03-05 | 2014-08-26 | Solidfire, Inc. | Data deletion in a distributed data storage system |
| US9213594B2 (en) * | 2011-01-19 | 2015-12-15 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for managing out-of-service conditions |
| US20120226934A1 (en) * | 2011-03-01 | 2012-09-06 | Rao G R Mohan | Mission critical nand flash |
| US9417803B2 (en) | 2011-09-20 | 2016-08-16 | Apple Inc. | Adaptive mapping of logical addresses to memory devices in solid state drives |
| US9054992B2 (en) | 2011-12-27 | 2015-06-09 | Solidfire, Inc. | Quality of service policy sets |
| US9838269B2 (en) | 2011-12-27 | 2017-12-05 | Netapp, Inc. | Proportional quality of service based on client usage and system metrics |
| US9047493B1 (en) | 2012-06-30 | 2015-06-02 | Emc Corporation | System and method for protecting content |
| US8924670B1 (en) * | 2012-06-30 | 2014-12-30 | Emc Corporation | System and method for protecting content |
| US20150244795A1 (en) | 2014-02-21 | 2015-08-27 | Solidfire, Inc. | Data syncing in a distributed system |
| US9798728B2 (en) | 2014-07-24 | 2017-10-24 | Netapp, Inc. | System performing data deduplication using a dense tree data structure |
| US10133511B2 (en) | 2014-09-12 | 2018-11-20 | Netapp, Inc | Optimized segment cleaning technique |
| US9671960B2 (en) | 2014-09-12 | 2017-06-06 | Netapp, Inc. | Rate matching technique for balancing segment cleaning and I/O workload |
| US9711192B2 (en) * | 2014-11-03 | 2017-07-18 | Samsung Electronics Co., Ltd. | Memory device having different data-size access modes for different power modes |
| US9836229B2 (en) | 2014-11-18 | 2017-12-05 | Netapp, Inc. | N-way merge technique for updating volume metadata in a storage I/O stack |
| US9720601B2 (en) * | 2015-02-11 | 2017-08-01 | Netapp, Inc. | Load balancing technique for a storage array |
| US9762460B2 (en) | 2015-03-24 | 2017-09-12 | Netapp, Inc. | Providing continuous context for operational information of a storage system |
| US9710317B2 (en) | 2015-03-30 | 2017-07-18 | Netapp, Inc. | Methods to identify, handle and recover from suspect SSDS in a clustered flash array |
| US9740566B2 (en) | 2015-07-31 | 2017-08-22 | Netapp, Inc. | Snapshot creation workflow |
| CN106649136B (zh) * | 2015-11-03 | 2022-09-23 | 西安中兴新软件有限责任公司 | 一种数据存储方法和存储装置 |
| US10255955B2 (en) | 2016-02-09 | 2019-04-09 | Samsung Electronics Co., Ltd. | Multi-port memory device and a method of using the same |
| US10929022B2 (en) | 2016-04-25 | 2021-02-23 | Netapp. Inc. | Space savings reporting for storage system supporting snapshot and clones |
| US10642763B2 (en) | 2016-09-20 | 2020-05-05 | Netapp, Inc. | Quality of service policy sets |
| US11003381B2 (en) * | 2017-03-07 | 2021-05-11 | Samsung Electronics Co., Ltd. | Non-volatile memory storage device capable of self-reporting performance capabilities |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5542066A (en) * | 1993-12-23 | 1996-07-30 | International Business Machines Corporation | Destaging modified data blocks from cache memory |
| US6965956B1 (en) * | 2003-02-28 | 2005-11-15 | 3Ware, Inc. | Disk array controller and system with automated detection and control of both ATA and SCSI disk drives |
| US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
| US7136973B2 (en) * | 2004-02-04 | 2006-11-14 | Sandisk Corporation | Dual media storage device |
| US7562202B2 (en) * | 2004-07-30 | 2009-07-14 | United Parcel Service Of America, Inc. | Systems, methods, computer readable medium and apparatus for memory management using NVRAM |
| US20070234014A1 (en) * | 2006-03-28 | 2007-10-04 | Ryotaro Kobayashi | Processor apparatus for executing instructions with local slack prediction of instructions and processing method therefor |
| US20080033980A1 (en) * | 2006-08-03 | 2008-02-07 | Jaroslav Andrew Delapedraja | System and method for automatically adjusting file system settings |
-
2008
- 2008-02-20 JP JP2008038176A patent/JP2009199199A/ja active Pending
- 2008-04-17 US US12/105,076 patent/US20090210611A1/en not_active Abandoned
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8656252B2 (en) | 2011-06-08 | 2014-02-18 | Panasonic Corporation | Memory controller and non-volatile storage device |
| JP2020149151A (ja) * | 2019-03-11 | 2020-09-17 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
| KR20200109238A (ko) * | 2019-03-11 | 2020-09-22 | 윈본드 일렉트로닉스 코포레이션 | 반도체 기억장치 |
| US10937492B2 (en) | 2019-03-11 | 2021-03-02 | Winbond Electronics Corp. | Semiconductor storage apparatus |
| KR102351933B1 (ko) | 2019-03-11 | 2022-01-14 | 윈본드 일렉트로닉스 코포레이션 | 반도체 기억장치 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20090210611A1 (en) | 2009-08-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2009199199A (ja) | ストレージシステム及びそのデータライト方法 | |
| JP4942446B2 (ja) | ストレージ装置及びその制御方法 | |
| US8205034B2 (en) | Flash memory drive having data interface | |
| JP6017065B2 (ja) | ストレージシステム及びキャッシュコントロール方法 | |
| JP5242264B2 (ja) | データ制御装置、ストレージシステムおよびプログラム | |
| JP4372134B2 (ja) | データ比較機能を有するストレージシステム | |
| US8578115B2 (en) | Temporary mirroring, logical segregation, and redundant programming or addressing for solid state drive operation | |
| US8375166B2 (en) | Methods and structure for limiting storage device write caching | |
| US20100325352A1 (en) | Hierarchically structured mass storage device and method | |
| CN105339910B (zh) | 在混合驱动器中的虚拟nand容量扩展 | |
| JP2008015769A (ja) | ストレージシステム及び書き込み分散方法 | |
| US11061814B1 (en) | Managing data storage caching and tiering | |
| JP2008204041A (ja) | ストレージ装置及びデータ配置制御方法 | |
| KR20130070178A (ko) | 하이브리드 저장 장치 및 그것의 동작 방법 | |
| CN107515827A (zh) | Pcie ssd自定义日志的存储方法、装置及ssd | |
| US20160259571A1 (en) | Storage subsystem | |
| JP2019086974A (ja) | ストレージシステム及びその制御方法 | |
| JP2010152778A (ja) | 半導体記憶装置 | |
| US7073029B2 (en) | Storage system using fast storage and log-structured storage | |
| JP6554990B2 (ja) | ストレージ制御装置およびストレージ制御プログラム | |
| JP5594647B2 (ja) | ストレージ装置及びその制御方法 | |
| US20110264848A1 (en) | Data recording device | |
| WO2016194979A1 (ja) | ストレージシステム、ストレージ制御装置、ストレージ制御方法及びプログラム | |
| JP2012164136A (ja) | ストレージ装置、ストレージ装置の制御プログラム、及びストレージ装置の制御方法 | |
| JP5953245B2 (ja) | 情報処理システム |