JP2011198133A - メモリシステムおよびコントローラ - Google Patents
メモリシステムおよびコントローラ Download PDFInfo
- Publication number
- JP2011198133A JP2011198133A JP2010065122A JP2010065122A JP2011198133A JP 2011198133 A JP2011198133 A JP 2011198133A JP 2010065122 A JP2010065122 A JP 2010065122A JP 2010065122 A JP2010065122 A JP 2010065122A JP 2011198133 A JP2011198133 A JP 2011198133A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- write
- read
- cache
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0804—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】リード処理性能を可及的に向上させること。
【解決手段】NANDメモリ1と、RAM3と、RAM3を使用してホスト装置200とNANDメモリ1との間のデータ転送を実行するコントローラ2と、を備え、コントローラ2は、ホスト装置200から送信されてくるライトコマンド毎のデータをRAM3が備えるライトキャッシュ32にキャッシュし、所定のタイミングで、ライトキャッシュ32にキャッシュされているライトコマンド毎のデータを夫々先頭部分を残してNANDメモリ1へ転送する。
【選択図】図2
【解決手段】NANDメモリ1と、RAM3と、RAM3を使用してホスト装置200とNANDメモリ1との間のデータ転送を実行するコントローラ2と、を備え、コントローラ2は、ホスト装置200から送信されてくるライトコマンド毎のデータをRAM3が備えるライトキャッシュ32にキャッシュし、所定のタイミングで、ライトキャッシュ32にキャッシュされているライトコマンド毎のデータを夫々先頭部分を残してNANDメモリ1へ転送する。
【選択図】図2
Description
本発明は、メモリシステムおよびコントローラに関する。
不揮発性メモリであるNAND型フラッシュメモリ(以下、単にNANDメモリ)は、ハードディスクに比べ、高速、軽量などの利点を有している。また、NANDメモリは、NOR型フラッシュメモリを含む他のフラッシュメモリに比べて大容量化・高集積化を行いやすい。これらの特徴を有するNANDメモリを搭載したSSD(Solid State Drive)は、磁気ディスク装置に替わる大容量の外部記憶装置として注目されている。
磁気ディスク装置をNANDメモリを搭載したSSDに置き換える際の問題点の一つとして、NANDメモリが読み書き(特に書き込み)アクセスに耐えられる回数(アクセス制限回数)が少ないことが挙げられる。この問題に対応できる1つの解として、NANDメモリへ書き込む前にDRAMなどの高速リード/ライトが可能なメモリ(RAM)を経由させることが挙げられる。具体的には、SSDは、ホスト装置から送信されてきた小容量データをRAMに貯めておき、大容量データをして扱えるようになった際に、RAMに貯めてあったデータをブロック単位などの大きな単位でNANDメモリへ書き込む(例えば特許文献1参照)。
一般的に、ホスト装置からのリードコマンドに対するレスポンスの速度や、リード処理完了までにかかる時間は、SSDのリード処理に関する性能指標として重視される。上記したホスト装置からのデータを一時的に記憶するRAMを有するSSDにおいても、ホスト装置からのリードコマンドに対するレスポンスの速度およびリードにかかる速度を向上させる技術の開発が要望されている。
本発明は、リード処理性能を可及的に向上させたメモリシステムおよびコントローラを提供することを目的とする。
本願発明の一態様によれば、不揮発性の第1メモリと、第2メモリと、前記第2メモリを使用してホスト装置と前記第1メモリとの間のデータ転送を実行するコントローラと、を備え、前記コントローラは、前記ホスト装置から送信されてくるライトコマンド毎のデータを前記第2メモリにキャッシュし、所定のタイミングで、前記第2メモリにキャッシュされているライトコマンド毎のデータを夫々先頭部分を残して前記第1メモリへ転送する第1転送を実行する、ことを特徴とするメモリシステムが提供される。
また、本願発明の一態様によれば、不揮発性の第1メモリと、第2メモリと、を備えるメモリシステムに搭載され、前記第2メモリを使用してホスト装置と前記第1メモリとの間のデータ転送を実行するコントローラであって、前記コントローラは、前記ホスト装置から送信されてくるライトコマンド毎のデータを前記第2メモリにキャッシュし、所定のタイミングで、前記第2メモリにキャッシュされているライトコマンド毎のデータを夫々先頭部分を残して前記第1メモリへ転送する第1転送を実行する、ことを特徴とするコントローラが提供される。
本発明によれば、リード処理性能を可及的に向上させることができるという効果を奏する。
以下に添付図面を参照して、本発明の実施の形態にかかるメモリシステムを詳細に説明する。なお、これらの実施の形態により本発明が限定されるものではない。
(第1の実施の形態)
図1は、メモリシステムのハードウェア構成を説明する図である。本第1の実施の形態においては、メモリシステムの一例として、ハードディスクドライブ(HDD)と同じ接続インタフェース規格(ATA規格)を持つ、不揮発性半導体メモリであるNAND型フラッシュメモリ(以下、NANDメモリ)を備えるSSDを取り上げて説明する。なお、第1の実施の形態の適用範囲はSSDのみに限定されない。
図1は、メモリシステムのハードウェア構成を説明する図である。本第1の実施の形態においては、メモリシステムの一例として、ハードディスクドライブ(HDD)と同じ接続インタフェース規格(ATA規格)を持つ、不揮発性半導体メモリであるNAND型フラッシュメモリ(以下、NANDメモリ)を備えるSSDを取り上げて説明する。なお、第1の実施の形態の適用範囲はSSDのみに限定されない。
図1において、SSD100とホスト装置200との間はATA規格の通信インタフェースで接続されている。SSD100は、ホスト装置200から、ユーザデータを書き込むためのライトコマンド、ユーザデータを読み出すためのリードコマンドを受信する。リード/ライトコマンドは、ユーザデータの書き込みアドレスとしての先頭のLBA(Logical Block Addressing)アドレスと該ユーザデータのサイズとを含んでいる。1つのリード/ライトコマンドにより読み出し/書き込み要求されるユーザデータは例えば1つのファイルであり、セクタのサイズ(例えば、512Byte)の自然数倍のサイズを有する。
SSD100は、不揮発性半導体メモリチップであるNANDメモリチップを備える、ホスト装置200からリード/ライトされるユーザデータ(以下、データ)が格納される第1メモリとしてのNANDメモリ1と、ホスト装置200とNANDメモリ1との間のデータ転送を制御するコントローラ2と、ホスト装置200からのデータ(ライトデータ)が一時蓄積される第2メモリとしてのRAM(Random Access Memory)3と、を備えている。
コントローラ2は、NANDメモリ1とRAM3を制御してホスト装置200とNANDメモリ1との間のデータ転送を行う。このデータ転送を行うための構成として、コントローラ2は以下の構成要素をさらに有する。すなわち、コントローラ2は、ROM(Read Only Memory)4と、MPU5と、インタフェース(I/F)制御回路6と、RAM制御回路7と、NAND制御回路8と、を備えている。
I/F制御回路6は、ATAインタフェースを介してホスト装置200との間でユーザデータを送受信する。RAM制御回路7は、RAM3との間でユーザデータを送受信する。NAND制御回路8は、NANDメモリ1との間でユーザデータを送受信する。
ROM4には、NANDメモリ1に記憶されている管理プログラム(ファームウェア)をブートするブート用プログラムが格納されている。MPU5は前記ファームウェアをブートしてRAM3上に展開し、RAM3上に展開したファームウェアに基づいてコントローラ2全体を制御する。
RAM3は、ホスト装置200とNANDメモリ1間でのデータ転送用のキャッシュおよび作業領域用メモリなどとして機能する。RAM3には、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)、ReRAM(Resistance Random Access Memory)などを採用することができる。RAM3の作業領域には、前記したファームウェアが展開され、また、キャッシュを管理するための各種情報(後述する)が格納される。
本発明の第1の実施の形態では、RAM3に実現されるキャッシュを活用してリード処理性能を向上させる。図2〜図4を参照して、本発明の第1の実施の形態の特徴を概要的に説明する。図2は、ホスト装置200からデータが書き込まれる際の動作を説明する図であり、図3は、ホスト装置200からデータが読み出される際の動作を説明する図である。
図2に示すように、RAM3は、ホスト装置200から書き込み要求されたデータがキャッシュされるライトキャッシュ32と、NANDメモリ1から読み出されたデータがキャッシュされるリードキャッシュ31と、を備えている。ライトキャッシュ32は、1つのライトコマンド(ライトコマンドA)によるライトデータであるデータAをキャッシュしている。データAは、NANDメモリ1の書き込み/読み出しアクセスの際の単位サイズとなるページ単位のデータA1〜A3により構成されている。同様に、ライトキャッシュ32は、夫々ページ単位のデータから構成されるライトコマンドB〜Hにかかるライトコマンド単位のデータB〜Hを夫々キャッシュしている。そして、新たなデータIを書き込むライトコマンドIをホスト装置200から受信した場合において、ライトキャッシュ32にキャッシュされているデータの量が所定のしきい値を超えているとき、SSD100は、キャッシュされているライトコマンド毎のライトデータを先頭の数ページ分(ここでは2ページ分)のデータを残してNANDメモリ1へ退避させる(第1転送)。例えば、データAは、データA1およびデータA2を残し、データA3のみがNANDメモリ1へ退避されている。
ホスト装置200は、ユーザデータの読み出しを実行する際、ライトコマンド単位のデータを部分的に読み出し要求するケースよりも、ライトコマンド発行時と同一のLBAアドレスおよびデータサイズをリードコマンドで指定することによって、ライトコマンド単位のデータを1つのリードコマンドで読み出し要求するケースが多い。図3に示すように、データAを読み出すリードコマンドAをホスト装置200から受信したとき、SSD100は、ライトキャッシュ32にキャッシュされていたデータAの先頭2ページ分のデータA1、A2をホスト装置200へ転送開始するとともに、残るデータA3をNANDメモリ1から読み出して、読み出したA3をリードキャッシュ31にキャッシュさせる。そして、SSD100は、データA1、A2をホスト装置200へ転送した後、リードキャッシュ31にキャッシュしたデータA3を転送する。
図4は、ホスト装置200へのデータAの転送にかかる時間を、ライトデータが先頭部分と残りの部分との区別なくNANDメモリ1へ退避される場合(以下、比較例という)と比較して説明する図である。なお、NANDメモリ1の読み出しレイテンシをt_R、NANDメモリ1からRAM3への1ページ分の転送時間をt_NR、ホスト装置200とRAM3との間の1ページ分の転送時間をt_HRとしている。
比較例では、図4(a)に示すように、リードコマンドAを受信したとき、NANDメモリ1に格納されているデータA1〜A3が順次読み出されてライトキャッシュ32に格納され、個々のデータA1〜A3は、ライトキャッシュ32に格納完了次第、順次ホスト装置200へ転送開始される。したがって、ホスト装置200は、リードコマンドAを発行してから、t_R+t_NRが経過した後にレスポンスが得られ、t_R+3×t_NR+t_HRが経過した後にデータAのリード処理が完了する。これに対して、本第1の実施の形態の例では、図4(b)に示すように、リードコマンドAを発行するとSSD100はライトキャッシュ32からのデータA1の転送を開始するので、ホスト装置200は、リードコマンドAの発行後、直ちにレスポンスが得られる。そして、リードコマンドAを発行してからt_R+t_NR+t_HRが経過した後にデータAのリード処理が完了する。つまり、第1の実施の形態によると、比較例にかかる技術に比して、レスポンスの速度が向上し、リード処理が完了するまでの時間が短縮される。
このように、第1の実施の形態は、リード処理性能を向上させるために、ライトコマンド毎のデータの先頭部分をライトキャッシュに極力残すようにしたことが主たる特徴となっている。図5は、上述の特徴を実現するためのSSD100の機能構成を説明する図である。図示するように、MPU5は、ライトコマンドに対応して、ライトデータのライトキャッシュ32への格納、ライトキャッシュ32からNANDメモリ1へのデータの退避(転送)を実行するライト処理と、リードコマンドに対応して、該リードコマンドにかかるデータをライトキャッシュ32または/およびNANDメモリ1からホスト装置200へ転送するリード処理と、の制御を実行するリード/ライト処理部51を備えている。
RAM3は、キャッシュ31、32を備えているほか、ライトキャッシュ32を管理するための情報として、タグ情報テーブル33、キャッシュライン毎のライン情報34、LRU(Least Recently Used)管理テーブル35、コマンド管理テーブル36が格納される。なお、これらの情報は、RAM3以外の記憶部に格納されるようにしてもよい。例えば、コントローラ2の中または外にメモリを設け、該メモリに格納するようにしてもよい。
図6は、LBAアドレスとタグ情報テーブル33およびライン情報34との関係を説明する図である。図示するように、ライトキャッシュ32では、各キャッシュラインに格納されているデータを特定するために、LBAアドレスのうちのキャッシュラインのサイズ(ライン単位サイズ)分のオフセットを除いたライン単位アドレスが使用される。すなわち、ライトキャッシュ32は、LBAアドレスに基づいてキャッシュラインの管理がなされる。具体的には、タグ情報テーブル33は、ライン単位アドレスのLSBの数ビット(上位桁アドレス)をインデックス(Index)とし、インデックス毎に複数(nウェイ)のタグ(Tag)を有する。各タグには、ライン単位アドレス331と、該ライン単位アドレスに対応するライン情報へのポインタ332が記憶されている。リード/ライト処理部51は、対象のデータのライン単位アドレスと、該ライン単位アドレスの下位桁アドレスをインデックスとする各タグに記憶されているライン単位アドレス331とを比較することによって対象のデータのキャッシュヒット/キャッシュミスを判定することができる。なお、ライン単位サイズは任意であるが、ここではページサイズに等しいとして説明する。また、タグ情報テーブル33は、インデックス毎に複数のタグを有するセットアソシアティブ方式が採用されているものとして説明するが、夫々1つのタグしか有さないダイレクトマップ方式が採用されるようにしてもよい。
各キャッシュラインに格納されているデータ(ライン単位データ)に対応するライン情報34は、対応するライン単位データに含まれるセクタ毎のデータの夫々が有効であるか無効であるかを示すセクタビットマップ341と、該ライン単位データのライトキャッシュ32内における格納先アドレスであるライトキャッシュ内アドレス342と、を含んでいる。リード/ライト処理部51は、キャッシュヒットした場合、ライトキャッシュ内アドレス342を参照することによってライトキャッシュ32内における対象のライン単位データの格納位置を認識することができる。
タグ情報テーブル33では、管理されるインデックス毎の最大タグ数(ウェイ数)が決められている。リード/ライト処理部51は、格納先のインデックスのウェイが空いていないとき(キャッシュラインが空いていないとき)、同インデックスのキャッシュラインのうちの1つに格納されているデータをNANDメモリ1へ追い出して、キャッシュラインの空きを作る(第2転送)。LRU管理テーブル35は、最後にアクセスされた時間が最も古いタグほど追い出し優先順位が高くなるようにインデックス毎に各タグの追い出し優先順位を管理するテーブルであって、リード/ライト処理部51は、LRU管理テーブル35に基づいて、最も古いキャッシュラインを追い出し対象として選択する。
図7は、コマンド管理テーブル36を説明する図である。図示するように、コマンド管理テーブル36は、ホスト装置200からライトされたデータの先頭LBAとデータサイズ(セクタ数)とをライトコマンド毎に管理するテーブルである。リード/ライト処理部51は、コマンド管理テーブル36を参照することによって、リードコマンド単位のデータ毎に先頭部分を認識(識別)することができる。また、リード/ライト処理部51は、キャッシュライン毎のキャッシュデータが属するリードコマンドを認識することができる。
次に、上述のように構成されるSSD100における動作を、図8および図9を参照して説明する。
図8は、ライト処理におけるSSD100の動作を説明するフローチャートである。図示するように、ライトコマンドを受信してライト処理がスタートすると、リード/ライト処理部51は、受信したライトコマンドをコマンド管理テーブル36に追加する(ステップS1)。そして、リード/ライト処理部51は、ライトキャッシュ32は所定のしきい値以上の量のデータをキャッシュしているか否かを判定する(ステップS2)。
ライトキャッシュ32が所定のしきい値以上の量のデータをキャッシュしていた場合(ステップS2、Yes)、リード/ライト処理部51は、コマンド管理テーブル36を参照して、ライトコマンド毎のキャッシュデータを先頭の所定ページ数分を残して残りをNANDメモリ1へ退避させ、退避させたライン単位データに対応するタグ情報テーブル33上のタグおよびライン情報34を消去する(ステップS3)。ライトキャッシュ32が所定のしきい値以上の量のデータをキャッシュしていなかった場合(ステップS2、No)、ステップS3の動作はスキップされる。
続いて、リード/ライト処理部51は、ライトコマンドのLBAアドレスおよびデータサイズから、ライトキャッシュ32の格納先を検索するために、ライン単位データ毎の先頭LBAアドレスを算出し(ステップS4)、算出した先頭LBAアドレスのうちの1つを選択する(ステップS5)。なお、ライン単位データ毎の先頭LBAアドレスは、ライトコマンドが含む先頭LBAアドレスから該先頭LBAアドレスにライトコマンドが含むデータサイズ分を加算したアドレス値に至るまでライン単位サイズ刻みでアドレス値を分割することによって算出することができる。ステップS5の後、リード/ライト処理部51は、選択した先頭LBAアドレスに対応するキャッシュラインが空いているか否かを判定する(ステップS6)。リード/ライト処理部51は、選択した先頭LBAアドレスを用いてタグ情報テーブル33を検索し、キャッシュミスした場合、該キャッシュラインが空いており、キャッシュヒットした場合、該キャッシュラインが空いていないと判定する。
キャッシュラインが空いていなかった場合(ステップS6、No)、リード/ライト処理部51は、LRU管理テーブル35を参照して追い出し対象のキャッシュラインを決定し、該キャッシュラインに格納されていたデータおよび該データと同一のライトコマンドに属するデータをNANDメモリ1へ退避させるとともに、退避させたデータに対応するタグおよびライン情報34を削除し、退避させたデータが属するライトコマンドをコマンド管理テーブル36から削除する(ステップS7)。リード/ライト処理部51は、コマンド管理テーブル36を参照することによって、追い出し対象のキャッシュラインに格納されていたデータと同一のライトコマンドに属するデータを求めることができる。
ステップS7の後、リード/ライト処理部51は、データの追い出しにより空いたキャッシュラインにライトデータのうちの選択した先頭LBAアドレスからライン単位サイズ分のデータを書き込み、書き込んだデータに対応するタグおよびライン情報34を追加する(ステップS8)。そして、リード/ライト処理部51は、算出した先頭LBAアドレスを全て選択済みであるか否かを判定し(ステップS9)、選択済みで無い場合(ステップS9、No)、ステップS5に移行して未選択の先頭LBAアドレスを1つ選択する。
ステップS6において、選択した先頭LBAアドレスに対応するキャッシュラインが空いていた場合(ステップS6、Yes)、リード/ライト処理部51は、該ラインにライトデータのうちの選択した先頭LBAアドレスからライン単位サイズ分のデータを書き込み、書き込んだデータに対応するタグおよびライン情報34を追加する(ステップS10)。そして、ステップS9へ移行する。
ステップS9において、算出した先頭LBAアドレスを全て選択済みであった場合(ステップS9、Yes)、リード/ライト処理部51は、書き込んだライン単位データに対応するタグの優先順位が同一インデックス内のタグのうちで最下位になるようにLRU管理テーブル35を更新し(ステップS11)、ライト処理がリターンとなる。
図9は、リード処理におけるSSD100の動作を説明するフローチャートである。なお、ここでは、ライトコマンド単位のデータがリードコマンドによって読み出し要求された場合について説明する。
図9に示すように、リードコマンドを受信してリード処理がスタートすると、リード/ライト処理部51は、リードコマンドから、ライン単位データ毎の先頭LBAアドレスを算出する(ステップS21)。そして、リード/ライト処理部51は、算出した先頭LBAアドレス毎にタグ情報テーブル33を検索して、算出した先頭LBAアドレスのライン単位データのうち、ライトキャッシュ32にキャッシュされていないデータがあるか否かを判定する(ステップS22)。ライトキャッシュ32にキャッシュされていないデータがなかった場合(ステップS22、No)、リード/ライト処理部51は、ライトキャッシュ32から、算出した先頭LBAアドレスのライン単位データを逐次読み出して、読み出したライン単位データを逐次ホスト装置200へ転送する(ステップS23)。そして、リード/ライト処理部51は、読み出したライン単位データに対応するタグの優先順位が同一インデックス内のタグのうちで最下位になるようにLRU管理テーブル35を更新し(ステップS24)、リード処理がリターンとなる。
ステップS22において、ライトキャッシュ32にキャッシュされていないデータがあった場合(ステップS22、Yes)、リード/ライト処理部51は、ライトキャッシュ32にキャッシュされていないライン単位データをNANDメモリ1からリードキャッシュ31へ転送開始する(ステップS25)。そして、リード/ライト処理部51は、算出した先頭LBAアドレス毎にタグ情報テーブル33を検索して、算出した先頭LBAアドレスのライン単位データのうち、ライトキャッシュ32にキャッシュされているデータ(すなわちリードコマンドにより読み出し要求されたデータの先頭部分)があるか否かを判定する(ステップS26)。ライトキャッシュ32にキャッシュされているデータがあった場合(ステップS26、Yes)、リード/ライト処理部51は、ライトキャッシュ32にキャッシュされているデータを逐次読み出してホスト装置200へ転送する(ステップS27)。そして、リード/ライト処理部51は、読み出したライン単位データに対応するタグの優先順位が同一インデックス内のタグのうちで最下位になるようにLRU管理テーブル35を更新する(ステップS28)。そして、キャッシュされていたデータの転送完了後、リード/ライト処理部51は、リードキャッシュ31に転送されたデータを逐次読み出してホスト装置200へ転送し(ステップS29)、リード処理がリターンとなる。ステップS26において、ライトキャッシュ32にキャッシュされているデータが無かった場合(ステップS26、No)、ステップS27およびステップS28はスキップされる。
なお、LRU管理テーブル35を省略し、タグ情報テーブル33およびコマンド管理テーブル36を参照して、最もサイズが大きいコマンド単位のデータを求め、該求めたコマンド単位のデータを追い出すようにしてもよい。例えば、3ページ分のサイズを有するライトコマンド単位のデータAをNANDメモリ1から読み出す場合、レスポンスが得られるまでの経過時間は、t_R+t_NR、リード処理が完了するまでの経過時間は、t_R+3t_NR+t_HRとなる。また、5ページ分のサイズを有するライトコマンド単位のデータBをNANDメモリ1から読み出す場合、レスポンスが得られるまでの経過時間はデータAの場合と同等で、リード処理が完了するまでの経過時間は、t_R+5t_NR+t_HRとなる。つまり、データのサイズが大きいほど、リード処理完了にかかる時間に対するレスポンスの遅さの影響が相対的に小さくなる。したがって、コマンド単位のデータのサイズが大きいデータを優先してNANDメモリ1へ退避させることによって、単にLRUルールに基づいてデータを退避させる場合に比べてさらにリード処理性能を向上させることができるようになる。
また、LRU管理テーブル35の代わりに、書き込み効率の高いデータを格納するキャッシュラインほど優先順位が高くなるようにインデックス毎に各タグの追い出し優先順位を管理するテーブルを備え、リード/ライト処理部51は、該テーブルに基づいて、書き込み効率が最も高いデータを格納するキャッシュラインを追い出し対象として選択するようにしてもよい。
また、コマンド単位でデータを追い出すものとして説明したが、ライン単位でデータを追い出すようにしてもよい。なお、コマンド単位でデータを追い出す場合、ライン単位でデータを追い出す場合に比してライトキャッシュ32にキャッシュされているデータ量を減らすことができ、ひいてはステップS3の退避処理およびステップS7の追い出し処理の頻度を低減することができる。
また、ライトキャッシュ32に残す先頭部分のサイズの設定は任意であるが、先頭部分のサイズの設定値が大きすぎるとライトキャッシュ32にキャッシュされるデータ量が多くなり、ステップS3における退避処理およびステップS7における追い出し処理の頻度が上昇し、ライト処理性能が低下する。したがって、残す先頭部分のサイズをむやみに大きくすることはせず、NANDメモリ1から読み出された最初のデータがホスト装置200へ転送されるまでにかかる時間t_R+t_NRをほぼ隠蔽できる程度のサイズとするとよい。
また、SSD100は、ライトキャッシュ32にキャッシュされているデータ量が所定のしきい値を超えたときステップS3の退避処理を実行するとして説明したが、該退避処理のタイミングはどのようなタイミングで行われるようにしても構わない。例えば定期的に行われるようにしても構わない。
また、RAM3としてFeRAMのような不揮発性メモリを採用する場合、各タグにライン単位データの有効/無効を示すフラグを付し、ライン単位データの退避および追い出しを実行した際に該フラグを無効とすることによって該ライン単位データが消去されたこととして扱うようにしてもよい。
以上説明したように、本発明の第1の実施の形態によれば、ホスト装置200から送信されてくるライトコマンド毎のデータをRAM3が備えるライトキャッシュ32にキャッシュし、所定のタイミングで、ライトキャッシュ32にキャッシュされているライトコマンド毎のデータを夫々先頭部分を残してNANDメモリ1へ転送するようにしたので、ホスト装置200からのリードコマンドを受信したときにライトキャッシュ32にキャッシュされている先頭部分を直ちにホスト装置200へ転送することができるので、リードコマンドに対するレスポンスが速くなるとともにリード処理が完了するまでにかかる時間が短縮される。すなわち、リード処理性能を可及的に向上させることができる。
(第2の実施の形態)
第2の実施の形態では、リード処理時においてライトキャッシュのヒット率を向上させるために、ライトキャッシュからNANDメモリへキャッシュデータを退避させたとき、ライトキャッシュに退避済みのデータのコピーを残しておくようにしたことが特徴となっている。
第2の実施の形態では、リード処理時においてライトキャッシュのヒット率を向上させるために、ライトキャッシュからNANDメモリへキャッシュデータを退避させたとき、ライトキャッシュに退避済みのデータのコピーを残しておくようにしたことが特徴となっている。
第2の実施の形態のSSD300のハードウェア構成は、第1の実施の形態と同等であるので、説明を省略する。図10は、第2の実施の形態のSSD300の機能構成を説明する図である。なお、ここでは、第1の実施の形態と同等の構成要素については同一の符号を付し、詳細な説明は省略する。
図10に示すように、MPU5は、SSD300のリード処理およびライト処理の制御を実行するリード/ライト処理部52を備えている。また、RAM3には、キャッシュ31、32を備えているほか、タグ情報テーブル33、ライン情報37、LRU管理テーブル35、コマンド管理テーブル36が格納される。
図11は、ライン情報37を説明する図である。図示するように、ライン情報37は、セクタビットマップ341と、ライトキャッシュ内アドレス342と、NAND格納フラグ371と、を備えている。NAND格納フラグ371は、対応するライン単位データがNANDメモリ1にコピー済みであるか否かを判定するために用いられる。
図12は、ライト処理におけるSSD300の動作を説明するフローチャートである。図示するように、ライトコマンドを受信してライト処理がスタートすると、リード/ライト処理部52は、受信したライトコマンドをコマンド管理テーブル36に追加する(ステップS31)。そして、リード/ライト処理部52は、ライトキャッシュ32は所定のしきい値以上の量のデータをキャッシュしているか否かを判定する(ステップS32)。
ライトキャッシュ32が所定のしきい値以上の量のデータをキャッシュしていた場合(ステップS32、Yes)、リード/ライト処理部52は、コマンド管理テーブル36を参照して、ライトコマンド毎のキャッシュデータを先頭の所定ページ数分を残して残りをNANDメモリ1へコピーし(言い換えると、ライトコマンド毎のキャッシュデータを先頭の所定ページ数分を残して残りをNANDメモリ1へ転送するとともに、転送済みのデータのコピーを元のキャッシュラインに残し)、コピーしたキャッシュデータに対応するNAND格納フラグ371を立てる(ステップS33)。ライトキャッシュ32が所定のしきい値以上の量のデータをキャッシュしていなかった場合(ステップS32、No)、ステップS33の動作はスキップされる。
続いて、リード/ライト処理部52は、ライトコマンドのLBAアドレスおよびデータサイズから、ライトキャッシュ32の格納先を検索するために、ライン単位データ毎の先頭LBAアドレスを算出し(ステップS34)、算出した先頭LBAアドレスのうちの1つを選択する(ステップS35)。そして、リード/ライト処理部52は、タグ情報テーブル33に基づいて、選択した先頭LBAアドレスに対応するキャッシュラインが空いているか否かを判定する(ステップS36)。
キャッシュラインが空いていなかった場合(ステップS36、No)、リード/ライト処理部52は、LRU管理テーブル35を参照して追い出し対象のキャッシュラインを決定する(ステップS37)。そして、リード/ライト処理部52は、追い出し対象のキャッシュラインに格納されているデータおよび該データと同一のライトコマンドに属するデータのうち、NAND格納フラグ371が立っているデータを削除し、削除したデータに対応するタグおよびライン情報37を削除し、削除したデータが属するライトコマンドをコマンド管理テーブル36から削除する(ステップS38)。さらに、リード/ライト処理部52は、追い出し対象のキャッシュラインに格納されているデータおよび該データと同一のライトコマンドに属するデータのうち、NAND格納フラグ371が立っているデータをNANDメモリ1に退避させ、退避させたデータに対応するタグおよびライン情報37を削除し、退避させたデータが属するライトコマンドをコマンド管理テーブル36から削除する(ステップS39)。
そして、リード/ライト処理部52は、データの追い出しにより空いたキャッシュラインにライトデータのうちの選択した先頭LBAアドレスからライン単位サイズ分のデータを書き込み、書き込んだデータに対応するタグ及びライン情報37を追加する(ステップS40)。そして、リード/ライト処理部52は、算出した先頭LBAアドレスを全て選択済みであるか否かを判定し(ステップS41)、選択済みで無い場合(ステップS41、No)、ステップS35に移行して未選択の先頭LBAアドレスを1つ選択する。
ステップS36において、選択した先頭LBAアドレスに対応するキャッシュラインが空いていた場合(ステップS36、Yes)、リード/ライト処理部52は、該ラインにライトデータのうちの選択した先頭LBAアドレスからライン単位サイズ分のデータを書き込み、書き込んだデータに対応するタグおよびライン情報37を追加する(ステップS42)。そして、ステップS41へ移行する。
ステップS41において、算出した先頭LBAアドレスを全て選択済みであった場合(ステップS41、Yes)、リード/ライト処理部52は、書き込んだライン単位データに対応するタグの優先順位が同一インデックス内のタグのうちで最下位になるようにLRU管理テーブル35を更新し(ステップS43)、ライト処理がリターンとなる。
このように、第2の実施の形態によれば、NANDメモリ1に転送済みのライトコマンド毎のデータのコピーを該データがキャッシュされていたキャッシュラインに残し、該キャッシュラインが新たなライトコマンド毎のデータのキャッシュ先となったとき、該キャッシュラインにキャッシュされていたライトコマンド毎のデータを削除する、ように構成したので、第1の実施の形態に比してキャッシュされているデータの量が増え、結果としてリード処理時におけるライトキャッシュ32のヒット率を向上させることができる。
(第3の実施の形態)
前述のように、ライトコマンド単位のデータのサイズが大きい場合、サイズが小さいデータよりも優先してNANDメモリ1へ退避させると、サイズに応じた優先順位を設けない場合に比べてリード処理性能が向上する。そこで、第3の実施の形態では、ライトキャッシュに残す先頭部分のサイズをライトコマンド単位のデータのサイズに応じて変化させるようにした。
前述のように、ライトコマンド単位のデータのサイズが大きい場合、サイズが小さいデータよりも優先してNANDメモリ1へ退避させると、サイズに応じた優先順位を設けない場合に比べてリード処理性能が向上する。そこで、第3の実施の形態では、ライトキャッシュに残す先頭部分のサイズをライトコマンド単位のデータのサイズに応じて変化させるようにした。
図13は、第3の実施の形態のSSD400の機能構成を説明する図である。図示するようにMPU5は、SSD400のリード処理およびライト処理の制御を実行するリード/ライト処理部53を備えている。また、RAM3には、キャッシュ31、32を備えているほか、タグ情報テーブル33、ライン情報34、LRU管理テーブル35、コマンド管理テーブル36が格納される。
図14は、ライト処理におけるSSD400の動作を説明するフローチャートである。図示するように、ライトコマンドを受信してライト処理がスタートすると、リード/ライト処理部53は、受信したライトコマンドをコマンド管理テーブル36に追加する(ステップS51)。そして、リード/ライト処理部53は、ライトキャッシュ32は所定のしきい値以上の量のデータをキャッシュしているか否かを判定する(ステップS52)。
ライトキャッシュ32が所定のしきい値以上の量のデータをキャッシュしていた場合(ステップS52、Yes)、リード/ライト処理部53は、ライトキャッシュ32に残す先頭部分のサイズを決定する先頭サイズ決定処理を実行する(ステップS53)。
図15は、先頭サイズ決定処理の一例を説明するフローチャートである。図示するように、リード/ライト処理部53は、コマンド管理テーブル36を参照し、ライトコマンド毎のデータを1つ選択する(ステップS71)。そして、リード/ライト処理部53は、選択したデータのデータサイズは4ページ分のサイズ以上であるか否かを判定する(ステップS72)。選択したデータのサイズが4ページに満たなかった場合(ステップS72、No)、リード/ライト処理部53は、該データの先頭サイズを3ページ分のサイズとする(ステップS73)。また、選択したデータのサイズが4ページ分以上のサイズであった場合(ステップS72、Yes)、該データの先頭サイズを2ページ分のサイズとする(ステップS74)。そして、リード/ライト処理部53は、データを全て選択したか否かを判定し(ステップS75)、未選択のデータがあった場合(ステップS75、No)、ステップS71へ移行して未選択のデータを1つ選択する。データを全て選択済みであった場合(ステップS75、Yes)、先頭サイズ決定処理がリターンとなる。
なお、ここではデータのサイズが4ページ分のサイズであるか否かに基づいて先頭部分のサイズを決定しているが、先頭部分のサイズの決定のための場合分けに使用するしきい値は4以外であっても構わない。また、2つ以上のしきい値を用いて3つ以上に場合分けし、場合分けされた夫々の場合について異なるサイズを決定するようにしても構わない。また、先頭部分のサイズを2ページ分または3ページ分のサイズに決定するようにしたが、先頭部分のサイズはこれらのサイズに限定しない。
このように、小さいサイズのライトデータほどライトキャッシュ32に残す先頭部分のサイズを大きくする。
図14へ戻り、リード/ライト処理部53は、先頭サイズ決定処理の後、ライトコマンド毎のキャッシュデータを先頭の所定ページ数分を残して残りをNANDメモリ3へ退避させ、退避させたライン単位データに対応するタグ情報テーブル33上のタグおよびライン情報34を消去する(ステップS54)。そして、SSD400は、ステップS55〜ステップS62において、第1の実施の形態におけるステップS4〜ステップS11と同等の動作を実行し、ライト処理がリターンとなる。
なお、以上の説明においては、ライトキャッシュ32が所定のしきい値以上の量のデータをキャッシュしていると判定された場合に先頭サイズ決定処理が実行されるとしたが、先頭サイズ決定処理の実行タイミングは該判定の後のタイミングだけに限定しない。
このように、小さいサイズのライトデータほどライトキャッシュ32に残す先頭部分のサイズを大きくするように構成したので、ライトコマンド単位のデータのサイズが大きい場合、サイズが小さいデータよりも優先してNANDメモリ1へ退避させることができるので、リード処理性能を向上させることができる。
1 NANDメモリ、2 コントローラ、3 RAM、4 ROM、5 MPU、6 I/F制御回路、7 RAM制御回路、8 NAND制御回路、31 リードキャッシュ、32 ライトキャッシュ、33 タグ情報テーブル、34 ライン情報、35 LRU管理テーブル、36 コマンド管理テーブル、37 ライン情報、51〜53 リード/ライト処理部、100、300、400 SSD、200 ホスト装置、331 ライン単位アドレス、332 ライン情報へのポインタ、341 セクタビットマップ、342 ライトキャッシュ内アドレス、371 NAND格納フラグ。
Claims (7)
- 不揮発性の第1メモリと、
第2メモリと、
前記第2メモリを使用してホスト装置と前記第1メモリとの間のデータ転送を実行するコントローラと、
を備え、
前記コントローラは、前記ホスト装置から送信されてくるライトコマンド毎のデータを前記第2メモリにキャッシュし、所定のタイミングで、前記第2メモリにキャッシュされているライトコマンド毎のデータを夫々先頭部分を残して前記第1メモリへ転送する第1転送を実行する、
ことを特徴とするメモリシステム。 - 前記所定のタイミングは、前記第2メモリにキャッシュされているデータ量が所定のしきい値を超えたタイミングである、ことを特徴とする請求項1に記載のメモリシステム。
- 前記コントローラは、前記ライトコマンドに含まれる書き込みアドレスに基づいてキャッシュラインの管理を実行する、
ことを特徴とする請求項1に記載のメモリシステム。 - 前記コントローラは、前記第1転送を実行する際、ライトコマンド毎のデータのサイズが小さいデータほど前記第2メモリに残す先頭部分のサイズが大きくなるように前記第2メモリにキャッシュされているライトコマンド毎のデータ毎に前記第2メモリに残す先頭部分のサイズを決定する、
ことを特徴とする請求項1に記載のメモリシステム。 - 不揮発性の第1メモリと、第2メモリと、を備えるメモリシステムに搭載され、前記第2メモリを使用してホスト装置と前記第1メモリとの間のデータ転送を実行するコントローラであって、
前記コントローラは、前記ホスト装置から送信されてくるライトコマンド毎のデータを前記第2メモリにキャッシュし、所定のタイミングで、前記第2メモリにキャッシュされているライトコマンド毎のデータを夫々先頭部分を残して前記第1メモリへ転送する第1転送を実行する、
ことを特徴とするコントローラ。 - 前記ライトコマンドに含まれる書き込みアドレスに基づいてキャッシュラインの管理を実行する、ことを特徴とする請求項5に記載のコントローラ。
- 前記第1転送を実行する際、ライトコマンド毎のデータのサイズが小さいデータほど前記第2メモリに残す先頭部分のサイズが大きくなるように前記第2メモリにキャッシュされているライトコマンド毎のデータ毎に前記第2メモリに残す先頭部分のサイズを決定する、
ことを特徴とする請求項5に記載のコントローラ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010065122A JP2011198133A (ja) | 2010-03-19 | 2010-03-19 | メモリシステムおよびコントローラ |
US12/835,377 US20110231598A1 (en) | 2010-03-19 | 2010-07-13 | Memory system and controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010065122A JP2011198133A (ja) | 2010-03-19 | 2010-03-19 | メモリシステムおよびコントローラ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011198133A true JP2011198133A (ja) | 2011-10-06 |
Family
ID=44648130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010065122A Abandoned JP2011198133A (ja) | 2010-03-19 | 2010-03-19 | メモリシステムおよびコントローラ |
Country Status (2)
Country | Link |
---|---|
US (1) | US20110231598A1 (ja) |
JP (1) | JP2011198133A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015106324A (ja) * | 2013-12-02 | 2015-06-08 | ソニー株式会社 | 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法 |
JP2017045457A (ja) * | 2015-08-27 | 2017-03-02 | 三星電子株式会社Samsung Electronics Co.,Ltd. | トランザクション基盤のハイブリッドメモリモジュール、及びそれを動作させる方法 |
Families Citing this family (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8615640B2 (en) * | 2011-03-17 | 2013-12-24 | Lsi Corporation | System and method to efficiently schedule and/or commit write data to flash based SSDs attached to an array controller |
US9858086B2 (en) * | 2011-10-26 | 2018-01-02 | Hewlett-Packard Development Company, L.P. | Load boot data |
TWI454922B (zh) * | 2011-12-19 | 2014-10-01 | Phison Electronics Corp | 記憶體儲存裝置及其記憶體控制器與資料寫入方法 |
US9921954B1 (en) * | 2012-08-27 | 2018-03-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for split flash memory management between host and storage controller |
US20140108705A1 (en) * | 2012-10-12 | 2014-04-17 | Sandisk Technologies Inc. | Use of High Endurance Non-Volatile Memory for Read Acceleration |
US9785545B2 (en) * | 2013-07-15 | 2017-10-10 | Cnex Labs, Inc. | Method and apparatus for providing dual memory access to non-volatile memory |
JP6088951B2 (ja) * | 2013-09-20 | 2017-03-01 | 株式会社東芝 | キャッシュメモリシステムおよびプロセッサシステム |
US9043538B1 (en) * | 2013-12-30 | 2015-05-26 | Nationz Technologies Inc. | Memory system and method for controlling nonvolatile memory |
CN105446653B (zh) | 2014-08-27 | 2018-12-14 | 阿里巴巴集团控股有限公司 | 一种数据合并方法和设备 |
KR102473209B1 (ko) | 2015-12-14 | 2022-12-02 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
US10459657B2 (en) | 2016-09-16 | 2019-10-29 | Hewlett Packard Enterprise Development Lp | Storage system with read cache-on-write buffer |
US10359954B2 (en) | 2017-05-31 | 2019-07-23 | Alibaba Group Holding Limited | Method and system for implementing byte-alterable write cache |
US10884926B2 (en) | 2017-06-16 | 2021-01-05 | Alibaba Group Holding Limited | Method and system for distributed storage using client-side global persistent cache |
US10303241B2 (en) | 2017-06-19 | 2019-05-28 | Alibaba Group Holding Limited | System and method for fine-grained power control management in a high capacity computer cluster |
US10564856B2 (en) | 2017-07-06 | 2020-02-18 | Alibaba Group Holding Limited | Method and system for mitigating write amplification in a phase change memory-based storage device |
US10678443B2 (en) | 2017-07-06 | 2020-06-09 | Alibaba Group Holding Limited | Method and system for high-density converged storage via memory bus |
US10423508B2 (en) | 2017-08-11 | 2019-09-24 | Alibaba Group Holding Limited | Method and system for a high-priority read based on an in-place suspend/resume write |
US10303601B2 (en) | 2017-08-11 | 2019-05-28 | Alibaba Group Holding Limited | Method and system for rearranging a write operation in a shingled magnetic recording device |
US10496829B2 (en) | 2017-09-15 | 2019-12-03 | Alibaba Group Holding Limited | Method and system for data destruction in a phase change memory-based storage device |
US10642522B2 (en) | 2017-09-15 | 2020-05-05 | Alibaba Group Holding Limited | Method and system for in-line deduplication in a storage drive based on a non-collision hash |
US10503409B2 (en) | 2017-09-27 | 2019-12-10 | Alibaba Group Holding Limited | Low-latency lightweight distributed storage system |
US10789011B2 (en) * | 2017-09-27 | 2020-09-29 | Alibaba Group Holding Limited | Performance enhancement of a storage device using an integrated controller-buffer |
US10860334B2 (en) | 2017-10-25 | 2020-12-08 | Alibaba Group Holding Limited | System and method for centralized boot storage in an access switch shared by multiple servers |
US10445190B2 (en) | 2017-11-08 | 2019-10-15 | Alibaba Group Holding Limited | Method and system for enhancing backup efficiency by bypassing encoding and decoding |
US10877898B2 (en) | 2017-11-16 | 2020-12-29 | Alibaba Group Holding Limited | Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements |
US10891239B2 (en) | 2018-02-07 | 2021-01-12 | Alibaba Group Holding Limited | Method and system for operating NAND flash physical space to extend memory capacity |
US10496548B2 (en) | 2018-02-07 | 2019-12-03 | Alibaba Group Holding Limited | Method and system for user-space storage I/O stack with user-space flash translation layer |
US10831404B2 (en) | 2018-02-08 | 2020-11-10 | Alibaba Group Holding Limited | Method and system for facilitating high-capacity shared memory using DIMM from retired servers |
US10402112B1 (en) | 2018-02-14 | 2019-09-03 | Alibaba Group Holding Limited | Method and system for chunk-wide data organization and placement with real-time calculation |
US11379155B2 (en) | 2018-05-24 | 2022-07-05 | Alibaba Group Holding Limited | System and method for flash storage management using multiple open page stripes |
US10921992B2 (en) | 2018-06-25 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency |
US11816043B2 (en) | 2018-06-25 | 2023-11-14 | Alibaba Group Holding Limited | System and method for managing resources of a storage device and quantifying the cost of I/O requests |
US10871921B2 (en) | 2018-07-30 | 2020-12-22 | Alibaba Group Holding Limited | Method and system for facilitating atomicity assurance on metadata and data bundled storage |
US10996886B2 (en) | 2018-08-02 | 2021-05-04 | Alibaba Group Holding Limited | Method and system for facilitating atomicity and latency assurance on variable sized I/O |
US10747673B2 (en) | 2018-08-02 | 2020-08-18 | Alibaba Group Holding Limited | System and method for facilitating cluster-level cache and memory space |
US11327929B2 (en) | 2018-09-17 | 2022-05-10 | Alibaba Group Holding Limited | Method and system for reduced data movement compression using in-storage computing and a customized file system |
US10852948B2 (en) | 2018-10-19 | 2020-12-01 | Alibaba Group Holding | System and method for data organization in shingled magnetic recording drive |
US10795586B2 (en) | 2018-11-19 | 2020-10-06 | Alibaba Group Holding Limited | System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash |
US10769018B2 (en) | 2018-12-04 | 2020-09-08 | Alibaba Group Holding Limited | System and method for handling uncorrectable data errors in high-capacity storage |
KR20200082323A (ko) * | 2018-12-28 | 2020-07-08 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치의 컨트롤러 및 그 동작 방법 |
US10884654B2 (en) | 2018-12-31 | 2021-01-05 | Alibaba Group Holding Limited | System and method for quality of service assurance of multi-stream scenarios in a hard disk drive |
US10977122B2 (en) | 2018-12-31 | 2021-04-13 | Alibaba Group Holding Limited | System and method for facilitating differentiated error correction in high-density flash devices |
US11061735B2 (en) | 2019-01-02 | 2021-07-13 | Alibaba Group Holding Limited | System and method for offloading computation to storage nodes in distributed system |
US11132291B2 (en) | 2019-01-04 | 2021-09-28 | Alibaba Group Holding Limited | System and method of FPGA-executed flash translation layer in multiple solid state drives |
US11200337B2 (en) | 2019-02-11 | 2021-12-14 | Alibaba Group Holding Limited | System and method for user data isolation |
US10922234B2 (en) | 2019-04-11 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive |
US10908960B2 (en) | 2019-04-16 | 2021-02-02 | Alibaba Group Holding Limited | Resource allocation based on comprehensive I/O monitoring in a distributed storage system |
US11169873B2 (en) | 2019-05-21 | 2021-11-09 | Alibaba Group Holding Limited | Method and system for extending lifespan and enhancing throughput in a high-density solid state drive |
US10860223B1 (en) | 2019-07-18 | 2020-12-08 | Alibaba Group Holding Limited | Method and system for enhancing a distributed storage system by decoupling computation and network tasks |
US11126561B2 (en) | 2019-10-01 | 2021-09-21 | Alibaba Group Holding Limited | Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive |
US11042307B1 (en) | 2020-01-13 | 2021-06-22 | Alibaba Group Holding Limited | System and method for facilitating improved utilization of NAND flash based on page-wise operation |
US11449455B2 (en) | 2020-01-15 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility |
US10872622B1 (en) | 2020-02-19 | 2020-12-22 | Alibaba Group Holding Limited | Method and system for deploying mixed storage products on a uniform storage infrastructure |
US10923156B1 (en) | 2020-02-19 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive |
US11150986B2 (en) | 2020-02-26 | 2021-10-19 | Alibaba Group Holding Limited | Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction |
US11144250B2 (en) | 2020-03-13 | 2021-10-12 | Alibaba Group Holding Limited | Method and system for facilitating a persistent memory-centric system |
US11200114B2 (en) | 2020-03-17 | 2021-12-14 | Alibaba Group Holding Limited | System and method for facilitating elastic error correction code in memory |
US11385833B2 (en) | 2020-04-20 | 2022-07-12 | Alibaba Group Holding Limited | Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources |
US11281575B2 (en) | 2020-05-11 | 2022-03-22 | Alibaba Group Holding Limited | Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks |
US11494115B2 (en) | 2020-05-13 | 2022-11-08 | Alibaba Group Holding Limited | System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC) |
US11461262B2 (en) | 2020-05-13 | 2022-10-04 | Alibaba Group Holding Limited | Method and system for facilitating a converged computation and storage node in a distributed storage system |
US11218165B2 (en) | 2020-05-15 | 2022-01-04 | Alibaba Group Holding Limited | Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM |
US11556277B2 (en) | 2020-05-19 | 2023-01-17 | Alibaba Group Holding Limited | System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification |
US11507499B2 (en) | 2020-05-19 | 2022-11-22 | Alibaba Group Holding Limited | System and method for facilitating mitigation of read/write amplification in data compression |
US11263132B2 (en) | 2020-06-11 | 2022-03-01 | Alibaba Group Holding Limited | Method and system for facilitating log-structure data organization |
US11422931B2 (en) | 2020-06-17 | 2022-08-23 | Alibaba Group Holding Limited | Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization |
US11354200B2 (en) | 2020-06-17 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating data recovery and version rollback in a storage device |
US11354233B2 (en) | 2020-07-27 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating fast crash recovery in a storage device |
US11372774B2 (en) | 2020-08-24 | 2022-06-28 | Alibaba Group Holding Limited | Method and system for a solid state drive with on-chip memory integration |
US11487465B2 (en) | 2020-12-11 | 2022-11-01 | Alibaba Group Holding Limited | Method and system for a local storage engine collaborating with a solid state drive controller |
US11734115B2 (en) | 2020-12-28 | 2023-08-22 | Alibaba Group Holding Limited | Method and system for facilitating write latency reduction in a queue depth of one scenario |
US11416365B2 (en) | 2020-12-30 | 2022-08-16 | Alibaba Group Holding Limited | Method and system for open NAND block detection and correction in an open-channel SSD |
US11726699B2 (en) | 2021-03-30 | 2023-08-15 | Alibaba Singapore Holding Private Limited | Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification |
US11461173B1 (en) | 2021-04-21 | 2022-10-04 | Alibaba Singapore Holding Private Limited | Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement |
US11476874B1 (en) | 2021-05-14 | 2022-10-18 | Alibaba Singapore Holding Private Limited | Method and system for facilitating a storage server with hybrid memory for journaling and data storage |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004070850A (ja) * | 2002-08-09 | 2004-03-04 | Sony Corp | データ処理装置およびキャッシュ制御方法 |
JP2005157958A (ja) * | 2003-11-28 | 2005-06-16 | Kyocera Mita Corp | 半導体集積回路装置及びこれを用いた電子機器 |
JP2008033788A (ja) * | 2006-07-31 | 2008-02-14 | Matsushita Electric Ind Co Ltd | 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0452990A3 (en) * | 1985-05-29 | 1992-04-15 | Kabushiki Kaisha Toshiba | Cache system adopting an lru system |
US5603001A (en) * | 1994-05-09 | 1997-02-11 | Kabushiki Kaisha Toshiba | Semiconductor disk system having a plurality of flash memories |
US5809560A (en) * | 1995-10-13 | 1998-09-15 | Compaq Computer Corporation | Adaptive read-ahead disk cache |
US6272598B1 (en) * | 1999-03-22 | 2001-08-07 | Hewlett-Packard Company | Web cache performance by applying different replacement policies to the web cache |
WO2002087235A1 (en) * | 2001-04-19 | 2002-10-31 | Vividon, Inc. | System for applying metric to multimedia files over network |
US20030023922A1 (en) * | 2001-07-25 | 2003-01-30 | Davis James A. | Fault tolerant magnetoresistive solid-state storage device |
US7103718B2 (en) * | 2002-09-03 | 2006-09-05 | Hewlett-Packard Development Company, L.P. | Non-volatile memory module for use in a computer system |
US7177983B2 (en) * | 2003-08-12 | 2007-02-13 | Intel Corporation | Managing dirty evicts from a cache |
JP4675985B2 (ja) * | 2008-03-01 | 2011-04-27 | 株式会社東芝 | メモリシステム |
-
2010
- 2010-03-19 JP JP2010065122A patent/JP2011198133A/ja not_active Abandoned
- 2010-07-13 US US12/835,377 patent/US20110231598A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004070850A (ja) * | 2002-08-09 | 2004-03-04 | Sony Corp | データ処理装置およびキャッシュ制御方法 |
JP2005157958A (ja) * | 2003-11-28 | 2005-06-16 | Kyocera Mita Corp | 半導体集積回路装置及びこれを用いた電子機器 |
JP2008033788A (ja) * | 2006-07-31 | 2008-02-14 | Matsushita Electric Ind Co Ltd | 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015106324A (ja) * | 2013-12-02 | 2015-06-08 | ソニー株式会社 | 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法 |
JP2017045457A (ja) * | 2015-08-27 | 2017-03-02 | 三星電子株式会社Samsung Electronics Co.,Ltd. | トランザクション基盤のハイブリッドメモリモジュール、及びそれを動作させる方法 |
Also Published As
Publication number | Publication date |
---|---|
US20110231598A1 (en) | 2011-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2011198133A (ja) | メモリシステムおよびコントローラ | |
US11216185B2 (en) | Memory system and method of controlling memory system | |
JP6995723B2 (ja) | メモリシステム、ストレージシステム、および制御方法 | |
US8443144B2 (en) | Storage device reducing a memory management load and computing system using the storage device | |
US11055230B2 (en) | Logical to physical mapping | |
EP3121703B1 (en) | Data caching method, cache and computer system | |
US8612692B2 (en) | Variable write back timing to nonvolatile semiconductor memory | |
US10496334B2 (en) | Solid state drive using two-level indirection architecture | |
US10740251B2 (en) | Hybrid drive translation layer | |
US20130198439A1 (en) | Non-volatile storage | |
US11194737B2 (en) | Storage device, controller and method for operating the controller for pattern determination | |
CN105339910B (zh) | 在混合驱动器中的虚拟nand容量扩展 | |
US8825946B2 (en) | Memory system and data writing method | |
JP2013137770A (ja) | Lbaビットマップの使用 | |
US8112589B2 (en) | System for caching data from a main memory with a plurality of cache states | |
JP2012141946A (ja) | 半導体記憶装置 | |
US10635581B2 (en) | Hybrid drive garbage collection | |
US10452556B2 (en) | Memory device and information processing device | |
CN113243007A (zh) | 存储级存储器访问 | |
US10606517B2 (en) | Management device and information processing device | |
CN108647157B (zh) | 一种基于相变存储器的映射管理方法及固态硬盘 | |
CN110727610A (zh) | 高速缓存存储器、存储系统和高速缓存存储器的逐出方法 | |
US20140281157A1 (en) | Memory system, memory controller and method | |
US20230367498A1 (en) | Stream oriented writing for improving sequential write and read performance | |
CN109960667A (zh) | 大容量固态存储设备的地址转换方法与装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120215 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120327 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20120528 |