JP5969130B2 - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP5969130B2 JP5969130B2 JP2015527108A JP2015527108A JP5969130B2 JP 5969130 B2 JP5969130 B2 JP 5969130B2 JP 2015527108 A JP2015527108 A JP 2015527108A JP 2015527108 A JP2015527108 A JP 2015527108A JP 5969130 B2 JP5969130 B2 JP 5969130B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- host
- information
- memory subsystem
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Description
<A.サーバの構成>
まず、サーバ(SVR)0101の構成について、図1と図2を用いて説明する。図1に、情報処理装置であるサーバ0101全体の構成を示す。サーバ0101は、複数のホスト (Host(1)〜Host(N))0102と、全てのホスト0102を接続するインターコネクト(Interconnect) 0103と、それぞれのホスト0102に接続された複数のメモリサブシステム(MSS(1)〜MSS(N))0104とから構成される。
<B.不揮発性メモリの構造と読み書き消去処理>
次に、図3を用いて、不揮発性メモリ0108内の構成及びデータの読み出しと書き込みと消去の処理を説明する。それぞれの不揮発性メモリ0108は、N_br個のブロック(BLK)0301から構成され、各ブロック0301はN_pg個のページ(PG)0302から構成される。ここで、N_brとN_pgは自然数である。例えば、不揮発性メモリ0108である容量8GB/chipのNANDフラッシュメモリにおける1ブロック0301のデータサイズが1MBで、1ページ0302のデータサイズが8kBの時、N_br=8k=(8GB/1MB)であり、N_pg=128=(1MB/8kB)である。
<C.グラフとグラフ解析シーケンス>
図4は、サーバ0101で取り扱うグラフの一例を示す図である。ここで例として挙げるグラフは、グラフの頂点0401に各頂点を一意に特定する頂点番号が割り当てられており、2つの頂点を繋ぐ一本のグラフの辺は、その2つの頂点の間に関係性があることを表す。グラフの各頂点0401が解析対象のグラフデータとなる。一般にグラフ解析の対象となるグラフの頂点0401は膨大な数となるため、複数の頂点0401は割り当てられた頂点番号に応じてグループに分けられ、グループごとに頂点0401すなわちグラフデータを解析する。
<D.ホストとメモリサブシステム間の通信>
図6、7を用いて、ホスト0102とメモリサブシステム0104の間の通信を説明する。図6に示すように、ホスト0102はメモリサブシステム0104内に格納されるデータを論理アドレス(LA)で管理する。グラフ解析において、ホスト0102は不揮発性メモリ0108の書き込み単位であるページ0302ごと、グループ番号がランダムな順でメモリサブシステム0104にデータを書き込む。その際、各グループデータの書き込み先論理アドレスは、グループごとホスト0102によって定められた管理単位(LAunit_host)で管理する。ホスト0102は、各グループのデータをメモリサブシステム0104へ送付する順に、各LAunit_hostの論理アドレスの先頭から順に埋めてゆき、グループごとにページ0302の単位の書き込み順(order)を付けて管理する。
(a) 読み出し
ホスト0102がメモリサブシステム0104内のデータの読み出し命令を発行する際(Read)、ホスト0102はメモリサブシステム0104へ読み出すデータのスーパーステップ(S.S.)の番号と、グループ(Gr.)の番号と、データ種類識別子(IDX)を送付する。もしくは、ホスト0102はメモリサブシステム0104へ論理アドレス(Adr)及び読み出しデータサイズ(size)を送付する。データ種類識別子は、メモリサブシステム0104が異なるグラフデータを区別したり、グラフデータとグラフ解析の結果を区別したり、頂点番号を区別したりする際に用いられる付加情報である。メモリサブシステム0104は、ホスト0102から送付された上記情報を基に、データを読み出し、ホスト0102へ読み出したデータを返す。
(b) 書き込み
ホスト0102がメモリサブシステム0104へデータ書き込み命令を発行する際(Write)、ホスト0102はメモリサブシステム0104へ書き込みデータのスーパーステップ(S.S.)の番号と、グループ(Gr.)の番号と、データ種類識別子(IDX)と、グループ内の書き込み順(order)と、書き込みデータ(data)と、必要に応じて、論理アドレス(Adr)と書き込みデータサイズ(size)を送付する。メモリサブシステム0104はホスト0102から送付された上記情報を基に、データを不揮発性メモリ0108へ書き込む。なお、グループ内の書き込み順はタグ番号に含めなくてもよい。
(c)消去
ホスト0102がメモリサブシステム0104内のデータの消去命令を発行する際(Erase)、ホスト0102はメモリサブシステム0104へ消去するデータのスーパーステップ(S.S.)の番号とグループ(Gr.)の番号とデータ種類識別子(IDX)を送付する。もしくは、ホスト0102はメモリサブシステム0104へ論理アドレス(Adr)及び消去するデータサイズ(size)を送付する。メモリサブシステム0104は、ホスト0102から送付された上記情報を基に、データを消去する。
<E.メモリサブシステムでのデータ管理方法>
図8〜12を用いて、メモリサブシステム0104内でのデータの管理方法を説明する。図8に示すように、メモリサブシステム制御回路0107は各スーパーステップ及びグループの番号ごとに、データを複数の不揮発性メモリ0108のブロック0301から構成される管理単位(PAunit_ctrl)に割り当ててレジスタ0206に格納する。図8の例では、チャネル(Ch.1〜i)及び2つのウェイ0211に属する2i個の不揮発性メモリ0108の各ブロックをまとめて一つのPAunit_ctrlとし、同じPAunit_ctrlには同一スーパーステップ且つ同一グループのデータのみが格納され。異なるスーパーステップもしくは異なるグループのデータは異なるPAunit_ctrlに格納されて、図5のシーケンスにしたがって並列に処理される。図8では1つのPAunit_ctrlを2つのウェイ0211としたが、3つ以上としてもよい。異なるチャネル0210には異なる不揮発性メモリ0108が異なるデータ転送バス0212で接続されているため、複数の不揮発性メモリ0108を同時に動作させることができ、異なるウェイ0211ではデータ転送バス0212を共用するものの、異なる不揮発性メモリ0108を同時に動作させることができるので、高速なデータ転送を実現できる。また、一つのPAunit_ctrlを消去しても異なるスーパーステップもしくは異なるグループのブロック0301へは影響しないため、ガーベージコレクションを必要としないので、高速なデータ転送を実現できる。そして、高速なデータ転送により高速なグラフ解析を実現できる。
また、データの論理アドレスが与えられれば、メモリサブシステム制御回路0107は、テーブル(LA_GR)0910を用いて、データが属するスーパーステップ及びグループの番号とデータ種類識別子を判定できる。テーブル(LA_GR)0910におけるエントリ(LAunit_host)は、ホストによる論理アドレスの管理単位であるLAunit_hostの番号であり、該当する論理アドレスのデータが、各スーパーステップ及びグループの番号で何番目のデータに対応するかはOrder_LA_hostの値となる。
<F.グラフ解析におけるメモリサブシステム制御回路の処理>
(1)メモリサブシステムの制御に必要なデータの入力
グラフ解析を実行するホスト0102は、グラフ解析の前に、メモリサブシステム0104の制御に必要なデータを、メモリサブシステム0104のレジスタ0206に書き込む。メモリサブシステム0104の制御に必要なデータは、ホスト0102による論理アドレスの管理単位であるLAunit_host、スーパーステップやグループの数、グラフデータのデータサイズ、(異なるグラフを区別するために必要な)グラフデータの識別子、グラフの頂点数や辺の数などであり、グラフの最短経路探索の場合は、最短経路を求めたい2頂点、すなわち、始点と終点を特定する情報なども含まれる。
(2)データ書き込み処理
データの書き込みにおけるメモリサブシステム制御回路0107の処理を、図13、14に基づいて説明する。
次に、ガーベッジコレクション排除制御ブロック0207は、バッファからグループ内の書き込み順の番号を読み、ホスト0102が定めた論理アドレスの管理単位であるLAunit_hostをレジスタ0206から読む。この結果、もし次に書き込むデータの論理アドレスLAが、ホスト0102の定めた論理アドレスLAの管理単位であるLAunit_hostの先頭となる場合(Step2(LAunit_host full)1302がYes)、Step3 1303へ進む。一方、もし、次に書き込むデータの論理アドレスが、LAunit_hostの先頭とならない場合(Step2(LAunit_host full)1302がNo)、Step8 1308へ進む。例えば、ページのデータサイズが8kBであり、LAunit_hostが1MBであるとすると、1MB/8kB=128となるので、order=[128×n+1](nは自然数)の場合はStep2 1302のLAunit_host fullがYesとなり、それ以外はNoとなる。
次に、ガーベッジコレクション排除制御ブロック0207は、DRAM制御回路0209へ読み出し命令を送り、メモリ0109に格納されたテーブル(PBA_ST)1400を読み出す(Step4(Read PBA_ST)1304)。図14に示すように、テーブル(PBA_ST)1400は、各ウェイ、ブロック(Way, PBA)1401に対して物理ブロックの状態(Status of PBA)1402と、消去回数(Cycle_erase)1403を記録する。物理ブロックの状態(Status of PBA)1402は、「0:使用不可(不良ブロック)」、「1:データ消去済」、「2:ホストに読まれたデータなし(読み出し前)」、「3:ホストに読まれたデータあり(読み出し中)」、「4:未読データ無し(読み出し完)」、「5:データ書き込み先として確保済み」などが記録される。
Step5 1305の後、ガーベッジコレクション排除制御ブロック0207は、DRAM制御回路0209にデータの書き込み命令を発行し、メモリ0109に格納されたテーブル(PBA_ST)1400の物理ブロックの状態(Status of PBA)1402を更新し、新たに割り当てられた物理ブロックを「5:データ書き込み先として確保済み」とする。また、ガーベッジコレクション排除制御ブロック0207は、同様にDRAM制御回路0209にデータの書き込み命令を発行し、図9(a)に示されたテーブル(GR_PA)0900を更新し、Step5 1305で新たに確保されたPAunit_ctrlを記録する。また、もし書き込みデータの論理アドレスがアドレスバッファ0204に格納されていた場合は、図9(b)に示されたテーブル(LA_GR)0910も更新する(Step6(Update table)1306)。
Step8 1308の後、ガーベッジコレクション排除制御ブロック0207は、タグバッファ0205からスーパーステップの番号と、グループの番号と、データ種類識別子を読み出し、バッファからグループ内の書き込み順の番号を読み出す。また、ガーベッジコレクション排除制御ブロック0207は、Step8 1308で読み出したテーブル(GR_PA)0900を参照し、データ書き込み先の不揮発性メモリのウェイとブロックなど及びページを決定する(Step9(Det. Chip_Page)1309)。
最後に、ガーベッジコレクション排除制御ブロック0207は、DRAM制御回路0209にデータ書き込み命令を発行し、ホスト0102からのデータ書き込み命令をコマンドバッファ0202からメモリ0109に転送し、スーパーステップの番号とグループの番号とデータ種類識別子をタグバッファ0205からメモリ0109に転送し、グループ内の書き込み順(order)をバッファ05からメモリ0109に転送する。これらと一緒に、ガーベッジコレクション排除制御ブロック0207は、データ書き込み先の不揮発性メモリ0108のウェイとブロックなどとページなどもメモリ0109に転送する。また、必要に応じて、ガーベッジコレクション排除制御ブロック0207は、書き込みデータをデータバッファ0203からメモリ0109に転送し、書き込みデータの論理アドレスと書き込みデータのサイズをアドレスバッファからメモリ0109に転送する(Step10(To DRAM)1310)。
(3)データ読み出し処理
データの読み出しにおけるメモリサブシステム制御回路0207の処理を、図15に基づいて説明する。
Step3 1503では、ガーベッジコレクション排除制御ブロック0207が、アドレスバッファ0204から読み出しデータの論理アドレスと読み出しデータのサイズを読み出す。その後、ガーベッジコレクション排除制御ブロック0207は、DRAM制御回路0209にデータ読み出し命令を発行して図9(b)に示されたテーブル(LA_GR)0910をメモリ0109から読み出し(Step3(Read LA_GR for Read Data)1503)、テーブル(LA_GR)0910に基づいて読み出しデータのスーパーステップの番号とグループの番号とデータ種類識別子を特定し、タグバッファ0205へ格納する。
(4)データ消去処理
データの消去におけるメモリサブシステム制御回路0107の処理を図16に基づいて説明する。
Step3 1603では、ガーベッジコレクション排除制御ブロック0207は、アドレスバッファ0204から消去するデータの論理アドレスと、データサイズを読み出す。その後、ガーベッジコレクション排除制御ブロック0207は、DRAM制御回路0209にデータ読み出し命令を発行し、図9(b)に示されたテーブル(LA_GR)0910をメモリ0109から読み出し(Step3(Read LA_GR for Erase Data)1603)、消去するデータのスーパーステップの番号とグループの番号とデータ種類識別子を特定してタグバッファ0205へ格納する。
(5)不揮発性メモリにおけるデータ処理
不揮発性メモリ0108におけるメモリサブシステム制御回路0107のデータ処理を図17〜19に基づいて説明する。
Step1 1701の結果を受け、ガーベッジコレクション排除制御ブロック0207は、DRAM制御回路0209に読み出し命令を発行し、メモリ0109から処理が行われていない不揮発性メモリ0108宛の書き込み命令と読み出し命令と消去命令を読み出す。ガーベッジコレクション排除制御ブロック0207は、1つの不揮発性メモリ0108あたり、優先度の最も高い命令を1つ選び出し(Step2(Det. priority)1702)、その命令を各不揮発性メモリ制御回路0208に送る(Step3(CMD to NVMC)1703)。不揮発性メモリ0108へのデータ書き込み命令の場合、ガーベッジコレクション排除制御ブロック0207は、DRAM制御回路0209に読み出し命令を発行し、メモリ0109から書き込むデータを読み出し、書き込み命令と一緒に不揮発性メモリ制御回路0208に送る。
各チャネル0210の不揮発性メモリ制御回路0208は、各不揮発性メモリ0108における処理が終わったことを確認次第、処理終了をガーベッジコレクション排除制御ブロック0207へ通知する(Step4(Receive from NVMC)1704)。データ読み出しの場合、読み出されたデータも、不揮発性メモリ制御回路0208から、ガーベッジコレクション排除制御ブロック0207へ送られる。ガーベッジコレクション排除制御ブロック0207は、読み出されたデータをメモリアクセス制御回路0201へ送る。または、必要に応じて、ガーベッジコレクション排除制御ブロック0207 は、DRAM制御回路0209に書き込み命令を発行し、メモリ0109へ読み出されたデータを転送する。その後、メモリアクセス制御回路0201は読み出されたデータをホスト0102へ送る。
(i)データ読み出しにおけるテーブルの更新
ガーベッジコレクション排除制御ブロック0207は、DRAM制御回路0209に読み出し命令を発行し、メモリ0109に格納された図14に示すテーブル(PBA_ST)1400を読み出す。そして、データの読み出し先の不揮発性メモリ0108のウェイ、ブロック(Way, PBA)1401に対応するブロックの状態(Status of PBA)1403を「2:読み出し前」から「3:読み出し中」または「3:読み出し中」から「4:読み出し完」などに更新する。その後、ガーベッジコレクション排除制御ブロック0207は、DRAM制御回路0209に書き込み命令を発行し、更新されたテーブル(PBA_ST)1400をメモリ0109に書き戻す。
(ii)データ書き込みにおけるテーブルの更新
ガーベッジコレクション排除制御ブロック0207は、DRAM制御回路0209に読み出し命令を発行し、メモリ0109に格納された図18に示すテーブル(GR_PTR)1800と、書き込まれるデータのスーパーステップの番号と、グループの番号と、データ種類識別子と、グループ内の書き込み順を読み出す。以上の情報を用いて、ガーベッジコレクション排除制御ブロック0207は、テーブル(GR_PTR)1800の書き込みページポインタ(Ptr)1804のうち、書き込みデータのスーパーステップ(S.S.)1801の番号とグループ(Gr.)1802の番号とデータ種類識別子(IDX)1803に対応するページポインタ1804のP_R か P_Gを更新する。P_R(1,1)1805のRはデータ種類識別子1803のResultを表し、(1,1)はスーパーステップ1801の番号が1であってグループの番号が1であることを表す。P_G(1,1)1806のGはデータ種類識別子1803がGraphであることを表す。ここで、図19にテーブル(GR_PTR)1800の書き込みページポインタ1804と不揮発性メモリ0108の物理ブロック0301及びページ0302との関係を示す。図19に示すように、スーパーステップが k、グループが1の解析結果データにおける書き込みページポインタP_R(k,1)1901が、不揮発性メモリ(1,Way_S)0108のブロック(BLK PBA_S)の最後のページ(PG N_pg)1902となるとき、このスーパーステップk、グループ1の解析結果データは既にP_R(k,1)ページ分書き込み済みであることを示す。1ページ分のデータを書き込むごとに、ガーベッジコレクション排除制御ブロック0207は、このP_R(k,1)を1ずつ増やす。
(iii)データ消去におけるテーブルの更新
ガーベッジコレクション排除制御ブロック0207は、DRAM制御回路0209に読み出し命令を発行し、テーブル(GR_PA)0900とテーブル(LA_GR)0910とテーブル(PBA_ST)1400を読み出し、消去されるデータのスーパーステップの番号とグループの番号とデータ種類識別子を読み出す。ガーベッジコレクション排除制御ブロック0207は、あるスーパーステップ及びグループの番号のデータが全て消去された場合、テーブル(GR_PA)0900及びテーブル(LA_GR)0910を更新する。また、テーブル(PBA_ST)1400の対応するブロックの状態(Status of PBA)1403を「1:消去済み」に更新する。ガーベッジコレクション排除制御ブロック0207は、DRAM制御回路0209に書き込み命令を発行し、更新されたテーブル(GR_PA)0900、テーブル(LA_GR)0910、テーブル(PBA_ST)1400をメモリ0109に書き戻す。
<G.効果のまとめ>
以上説明した構成及び処理により得られる主な効果は以下の通りである。
0102 ホスト
0103 インターコネクト
0104 メモリサブシステム(MSS)
0105 情報処理回路(CPU)
0106、0109 メモリ(DRAM)
0107 メモリサブシステム制御回路(MSC)
0108 不揮発性メモリ(NVM)
0201 メモリアクセス制御回路(DMAC)
0202 コマンドバッファ(C-BF)
0203 データバッファ(D-BF)
0204 アドレスバッファ(A-BF)
0205 タグバッファ(T-BF)
0206 レジスタ(RG)
0207 ガーベッジコレクション排除制御ブロック(GCLS_CB)
0208 不揮発性メモリ制御回路(NVMC)
0209 DRAM制御回路(DRAMC)
0210 チャネル(Ch 1〜i)
0211 ウェイ(Way 1〜j)
0301 ブロック(BLK)
0302 ページ(PG)
0900 テーブル(GR_PA)
0910 テーブル(LA_GR)
1400 テーブル(PBA_ST)
1800 テーブル(GR_PTR)
Claims (8)
- ホストとメモリサブシステムとを備えた情報処理装置であって、
前記ホストは、前記メモリサブシステムへデータに対応するタグ情報とともに書き込み命令または消去命令を発行し、前記データを処理する情報処理回路を備え、
前記タグ情報は、
前記ホストのデータ処理単位であるグループを識別する情報、前記ホストのデータ処理ステップであるスーパーステップを識別する情報、前記ホストが処理するデータの種類を識別するデータ種類識別子を含み、
前記メモリサブシステムは、
第2のメモリを管理する管理情報を記憶した第1のメモリと、
データ消去単位のサイズがデータ書き込み単位のサイズより大きく、前記データを記憶する前記第2のメモリと、
前記データ消去単位のn倍(nは自然数)を管理単位とする前記管理情報に基づいて、同一の前記タグ情報のデータを同一の前記管理単位へ書き込み、異なる前記タグ情報のデータを異なる前記管理単位へ書き込むメモリサブシステム制御回路と、を備えたこと
を特徴とする情報処理装置。 - 前記管理情報は、前記データの前記第2のメモリにおけるアドレスと、前記データに対応する前記タグ情報との関係付けを含み、テーブルに記憶したことを特徴とする請求項1に記載の情報処理装置。
- 前記管理情報は、前記タグ情報と、前記タグ情報に対応するデータが書き込まれる前記管理単位との関係付けを含み、テーブルに記憶したことを特徴とする請求項1または2に記載の情報処理装置。
- 前記メモリサブシステムは、
前記第2のメモリよりも高速にアクセス可能な前記第1のメモリと、
不揮発性メモリである前記第2のメモリと、を備えたこと
を特徴とする請求項1〜3のいずれか1項に記載の情報処理装置。 - 前記メモリサブシステムは、
前記第2のメモリのブロックを管理する管理情報を記憶した前記第1のメモリと、
データ消去単位である前記ブロックを複数含み、書き込み単位であるページを前記ブロックの中に複数含む前記第2のメモリと、
前記管理情報を参照して前記ブロックを特定し、計算により前記ページを特定する前記メモリサブシステム制御回路と、を備えたこと
を特徴とする請求項1〜4のいずれか1項に記載の情報処理装置。 - ホストとメモリサブシステムとを備えた情報処理装置であって、
前記ホストは、前記メモリサブシステムへ書き込み命令または消去命令を発行し、前記メモリサブシステムの中のメモリのデータ消去単位のn倍(nは自然数)を管理単位とし、タグ情報と前記管理単位とを管理情報により関係付け、データを処理する情報処理回路を備え、
前記タグ情報は、
前記ホストのデータ処理単位であるグループを識別する情報、前記ホストのデータ処理ステップであるスーパーステップを識別する情報、前記ホストが処理するデータの種類を識別するデータ種類識別子を含み、
前記メモリサブシステムは、
前記データ消去単位のサイズがデータ書き込み単位のサイズより大きく、前記データを記憶する前記メモリと、
前記ホストの前記書き込み命令により、同一の前記タグ情報のデータを同一の前記管理単位へ書き込み、異なる前記タグ情報のデータを異なる前記管理単位へ書き込むメモリサブシステム制御回路と、を備えたこと
を特徴とする情報処理装置。 - 前記メモリサブシステムは、
前記メモリよりも高速にアクセス可能な第1のメモリと、
不揮発性メモリである前記メモリと、を備えたこと
を特徴とする請求項6に記載の情報処理装置。 - 前記ホストは、前記管理情報を参照して前記メモリのブロックを特定し、計算により前記メモリのページを特定する情報処理回路を備え、
前記メモリサブシステムは、データ消去単位である前記ブロックを複数含み、書き込み単位である前記ページを前記ブロックの中に複数含む前記メモリを備えたこと
を特徴とする請求項6または7に記載の情報処理装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2013/069481 WO2015008358A1 (ja) | 2013-07-18 | 2013-07-18 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5969130B2 true JP5969130B2 (ja) | 2016-08-17 |
JPWO2015008358A1 JPWO2015008358A1 (ja) | 2017-03-02 |
Family
ID=52345853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015527108A Expired - Fee Related JP5969130B2 (ja) | 2013-07-18 | 2013-07-18 | 情報処理装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20160170873A1 (ja) |
JP (1) | JP5969130B2 (ja) |
WO (1) | WO2015008358A1 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10025530B2 (en) * | 2014-09-29 | 2018-07-17 | Western Digital Technologies, Inc. | Optimized garbage collection for solid-state storage devices |
WO2016147351A1 (ja) * | 2015-03-18 | 2016-09-22 | 株式会社日立製作所 | 計算機システム、方法、及びホスト計算機 |
US11461010B2 (en) * | 2015-07-13 | 2022-10-04 | Samsung Electronics Co., Ltd. | Data property-based data placement in a nonvolatile memory device |
US10509770B2 (en) | 2015-07-13 | 2019-12-17 | Samsung Electronics Co., Ltd. | Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device |
JP6765321B2 (ja) * | 2017-02-28 | 2020-10-07 | キオクシア株式会社 | メモリシステムおよび制御方法 |
JP6765322B2 (ja) * | 2017-02-28 | 2020-10-07 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US10915441B2 (en) | 2017-08-23 | 2021-02-09 | Hitachi, Ltd. | Storage system having non-volatile memory device |
US11899930B2 (en) | 2019-07-25 | 2024-02-13 | Sony Interactive Entertainment Inc. | Storage management apparatus, storage management method, and program |
CN111506778B (zh) * | 2020-04-14 | 2023-04-28 | 中山大学 | 一种基于K-Truss图的存储系统缓存预取方法、系统及介质 |
JP2020198128A (ja) * | 2020-08-31 | 2020-12-10 | キオクシア株式会社 | メモリシステム |
JP7132291B2 (ja) * | 2020-08-31 | 2022-09-06 | キオクシア株式会社 | メモリシステムおよび制御方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008004117A (ja) * | 2001-01-19 | 2008-01-10 | Sandisk Corp | 不揮発性メモリにおける部分的ブロックデータのプログラミング動作および読出し動作 |
US20080155178A1 (en) * | 2006-12-26 | 2008-06-26 | Sinclair Alan W | Use of a Direct Data File System With a Continuous Logical Address Space Interface |
JP2010515162A (ja) * | 2006-12-26 | 2010-05-06 | サンディスク コーポレイション | 連続論理アドレス空間インターフェイスを備えるダイレクトデータファイルシステムの使用 |
JP2011186562A (ja) * | 2010-03-04 | 2011-09-22 | Toshiba Corp | メモリ管理装置及び方法 |
US20120191900A1 (en) * | 2009-07-17 | 2012-07-26 | Atsushi Kunimatsu | Memory management device |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005267501A (ja) * | 2004-03-22 | 2005-09-29 | Hitachi Ltd | ストレージ管理方法及びシステム |
JP4728031B2 (ja) * | 2005-04-15 | 2011-07-20 | 株式会社日立製作所 | リモートコピーペアの移行を行うシステム |
US20100174845A1 (en) * | 2009-01-05 | 2010-07-08 | Sergey Anatolievich Gorobets | Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques |
US8688899B2 (en) * | 2010-09-28 | 2014-04-01 | Fusion-Io, Inc. | Apparatus, system, and method for an interface between a memory controller and a non-volatile memory controller using a command protocol |
JP5295286B2 (ja) * | 2011-02-23 | 2013-09-18 | 株式会社日立製作所 | 記憶装置およびそれを搭載した計算機 |
JPWO2014010007A1 (ja) * | 2012-07-09 | 2016-06-20 | 株式会社日立製作所 | 情報処理システムおよびグラフ処理方法 |
-
2013
- 2013-07-18 US US14/905,702 patent/US20160170873A1/en not_active Abandoned
- 2013-07-18 JP JP2015527108A patent/JP5969130B2/ja not_active Expired - Fee Related
- 2013-07-18 WO PCT/JP2013/069481 patent/WO2015008358A1/ja active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008004117A (ja) * | 2001-01-19 | 2008-01-10 | Sandisk Corp | 不揮発性メモリにおける部分的ブロックデータのプログラミング動作および読出し動作 |
US20080155178A1 (en) * | 2006-12-26 | 2008-06-26 | Sinclair Alan W | Use of a Direct Data File System With a Continuous Logical Address Space Interface |
JP2010515162A (ja) * | 2006-12-26 | 2010-05-06 | サンディスク コーポレイション | 連続論理アドレス空間インターフェイスを備えるダイレクトデータファイルシステムの使用 |
US20120191900A1 (en) * | 2009-07-17 | 2012-07-26 | Atsushi Kunimatsu | Memory management device |
JP2011186562A (ja) * | 2010-03-04 | 2011-09-22 | Toshiba Corp | メモリ管理装置及び方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2015008358A1 (ja) | 2015-01-22 |
JPWO2015008358A1 (ja) | 2017-03-02 |
US20160170873A1 (en) | 2016-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5969130B2 (ja) | 情報処理装置 | |
US10126964B2 (en) | Hardware based map acceleration using forward and reverse cache tables | |
US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
US10496334B2 (en) | Solid state drive using two-level indirection architecture | |
JP2019020788A (ja) | メモリシステムおよび制御方法 | |
JP5813589B2 (ja) | メモリシステムおよびその制御方法 | |
US20180321883A1 (en) | Data storage device and method for operating data storage device | |
KR20070104874A (ko) | 기억장치 | |
KR20200027045A (ko) | 메모리 어드레싱 | |
JP6139711B2 (ja) | 情報処理装置 | |
JPWO2009096180A1 (ja) | メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム | |
KR20160105624A (ko) | 데이터 처리 시스템 및 그것의 동작 방법 | |
US10303368B2 (en) | Storage device that determines data attributes based on continuity of address ranges | |
CN103389942A (zh) | 控制装置、存储装置及存储控制方法 | |
WO2017000821A1 (zh) | 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法 | |
JP4737223B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP6100927B2 (ja) | 情報処理装置 | |
US9798470B2 (en) | Memory system for storing and processing translation information | |
US20200319999A1 (en) | Storage device, control method of storage device, and storage medium | |
JP2013196155A (ja) | メモリシステム | |
JP2008299455A (ja) | データ記憶装置及びデータ管理方法 | |
JP2005092678A (ja) | 半導体メモリカード及び不揮発性メモリのデータ消去処理方法 | |
CN110968520A (zh) | 基于统一缓存架构的多流存储设备 | |
KR20030095820A (ko) | 메모리 억세스 제어장치 및 방법 | |
US11144450B2 (en) | Maintaining sequentiality for media management of a memory sub-system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160524 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160608 |
|
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: 20160628 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160706 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5969130 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |