[go: up one dir, main page]

JP2012033002A - メモリ管理装置およびメモリ管理方法 - Google Patents

メモリ管理装置およびメモリ管理方法 Download PDF

Info

Publication number
JP2012033002A
JP2012033002A JP2010172050A JP2010172050A JP2012033002A JP 2012033002 A JP2012033002 A JP 2012033002A JP 2010172050 A JP2010172050 A JP 2010172050A JP 2010172050 A JP2010172050 A JP 2010172050A JP 2012033002 A JP2012033002 A JP 2012033002A
Authority
JP
Japan
Prior art keywords
data
write
memory
semiconductor memory
nonvolatile semiconductor
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
Application number
JP2010172050A
Other languages
English (en)
Inventor
Masanori Miyagawa
雅紀 宮川
Atsushi Kunimatsu
敦 国松
Tsutomu Owa
勤 大輪
Reina Nishino
玲奈 西野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2010172050A priority Critical patent/JP2012033002A/ja
Priority to KR1020110022855A priority patent/KR101270281B1/ko
Priority to US13/050,528 priority patent/US20120030413A1/en
Priority to CN2011100662906A priority patent/CN102346712A/zh
Publication of JP2012033002A publication Critical patent/JP2012033002A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】フラグメンテーションの発生を抑制でき、メモリの有効利用に有利なメモリ管理装置およびメモリ管理方法を提供する。
【解決手段】実施形態によれば、不揮発性半導体メモリ61〜6nと揮発性半導体メモリ5とを備えるメインメモリ65を管理するメモリ管理装置3であって、前記不揮発性半導体メモリへのデータ書き込み動作の際に、書き込み対象のデータについて、該データのデータ属性により決定される書き込み頻度についての情報22に基づき、前記不揮発性半導体メモリ上の書き込み領域の振り分けを行う振り分け部78と、前記振り分けられたデータを、追記方式により前記不揮発性半導体メモリに書き込む制御部77とを具備することを特徴とするメモリ管理装置。
【選択図】図2

Description

メモリ管理装置およびメモリ管理方法に関する。
例えば、不揮発性半導体メモリと揮発性半導体メモリとをメインメモリとして用いる場合には、データ属性に応じて、データの配置領域を不揮発性半導体メモリとするか、または揮発性半導体メモリとするか決定する方法が提案されている(例えば、特許文献1参照)。不揮発性半導体メモリの一例としては、例えば、NAND型フラッシュメモリ等が提案されている。揮発性半導体メモリの一例としては、例えば、DRAM(Dynamic Random Access Memory)等が提案されている。
ここで、NAND型フラッシュメモリ等の不揮発性半導体メモリへのデータ書き込み動作には、「上書き方式」と「追記方式」とが存在する。
「上書き方式」とは、上書き不可能なNAND型フラッシュメモリを疑似的に上書き可能に見せる方式である。この方式では、消去ブロックの任意の位置のデータが更新された場合、その消去ブロックから全てのデータを一旦退避してブロックに消去処理を施してから、再度ブロック単位で更新されたデータを書き込む必要がある。
一方、「追記方式」では、ページ単位のデータ書き込みを行う。この方式では、データが更新された場合、そのデータが存在するブロックページにマーク(無効データ)を付け、更新されたデータは別ブロック(同一ブロックでも可能)の別ページに配置される。
特開2008−242944号公報
フラグメンテーションの発生を抑制でき、メモリの有効利用に有利なメモリ管理装置およびメモリ管理方法を提供する。
一態様に係るメモリ管理装置は、不揮発性半導体メモリと揮発性半導体メモリとを備えるメインメモリを管理するメモリ管理装置であって、前記不揮発性半導体メモリへのデータ書き込み動作の際に、書き込み対象のデータについて、該データのデータ属性により決定される書き込み頻度についての情報に基づき、前記不揮発性半導体メモリ上の書き込み領域の振り分けを行う振り分け部と、前記振り分けられたデータを、追記方式により前記不揮発性半導体メモリに書き込む制御部とを具備する。
実施形態に係る情報処理装置の全体構成例を示すシステムブロック図。 図1中の処理部におけるブロック選択部を示すブロック図。 本実施形態に係るカラーリングテーブルの構成例を示す図。 実施形態に係るメモリ管理装置のデータ書き込み動作を示すフロー図。 実施形態に係るメモリ管理装置のガーベジコレクション動作を示すフロー図。 実施形態に係るデータ書き込み動作後の物理ブロック(PEB)を示す図。 実施形態に係る更新頻度が高いデータを更新後の物理ブロック(PEB)を示す図。 比較例に係る上書き方式によるデータ書き込み動作後の物理ブロック(PEB)を示す図。 比較例に係る上書き方式による更新頻度が高いデータを更新後の物理ブロック(PEB)を示す図。 本実施形態および比較例におけるダーティ(dirty)領域サイズを示す図。
以下、この発明の実施形態について図面を参照して説明する。尚、この説明においては、全図にわたり共通の部分には共通の参照符号を付す。
[実施形態]
<1.構成例>
1−1.全体構成例
まず、図1を用い、この実施形態に係る情報処理装置の全体構成例について説明する。図1は、本実施形態に係る情報処理装置1の構成の一例を示すシステムブロック図である。
図示するように、情報処理装置1は、例えばSoC(System-on-a-Chip)で構成される。情報処理装置1は、プロセッサP1〜P4、2次キャッシュメモリL2、バス2、メモリ管理装置3を備える。
プロセッサP1〜P4は、それぞれが1次キャッシュメモリL1−1〜L1−4、MMU41〜44を具備する。プロセッサP1〜P4としては、例えばCPU(Central Processing Unit)が用いられるが、MPU(Micro Processor Unit)、GPU(Graphic Processor Unit)などのような他の処理ユニットが用いられてもよい。この図1において、プロセッサP1〜P4の数は4つであるが、プロセッサの数は1以上であればよい。
プロセッサP1〜P4は、2次キャッシュメモリL2を共有し、バス2を介して、メモリ管理装置3と電気的に接続される。
メモリ管理装置3は、外部の揮発性半導体メモリ5、不揮発性半導体メモリ61〜6nと電気的に接続されている。プロセッサP1〜P4は、メモリ管理装置3を介して、揮発性半導体メモリ5、不揮発性半導体メモリ61〜6nにアクセス可能である。
プロセッサP1〜P4とメモリ管理装置3とは、バス2によってデータを送受信可能に接続されている。また、例えば、プロセッサP1〜P4とメモリ管理装置3とは、非同期に動作可能であり、プロセッサP1〜P4で処理実行中に、メモリ管理装置3が不揮発性半導体メモリ61〜6nに対してウェアレベリング、ガーベージコレクション、コンパクションを実行することができる。
なお、本実施の形態において、情報処理装置1と、揮発性半導体メモリ5及び不揮発性半導体メモリ61〜6nとは、別チップとされているが、情報処理装置1内に、揮発性半導体メモリ5及び不揮発性半導体メモリ61〜6nが含まれる構成としてもよい。
メモリ管理装置3の内部には、処理部7が備えられている。この処理部7としては、例えばMPUが用いられるが、他の処理ユニットが用いられるとしてもよい。
処理部7は、不揮発性半導体メモリ61〜6nを使用するための種々の処理を、ソフトウェア8に基づいて制御する。本実施形態において、プロセッサP1〜P4と処理部7とで、不揮発性半導体メモリ61〜6nに対する処理を分担して実行するとしてもよい。例えば、ソフトウェア8は、不揮発性半導体メモリ61〜6nに記憶されており、起動時に処理部7によって不揮発性半導体メモリ61〜6nから読み出され、実行される。
揮発性半導体メモリ5と不揮発性半導体メモリ61〜6nは、メインメモリとして使用される。本実施形態では、不揮発性半導体メモリ61〜6nに、十分なメモリ量が確保される。不揮発性半導体メモリ61〜6nのメモリ容量は、揮発性半導体メモリ5よりも大きい。そして、揮発性半導体メモリ5には、例えば、最近アクセスされたデータ、使用頻度の高いデータなどのアクセスされる可能性の高いデータが不揮発性半導体メモリ61〜6nからキャッシュされる。プロセッサP1〜P4が揮発性半導体メモリ5にアクセスする場合に、揮発性半導体メモリ5にアクセス対象のデータが存在しない場合、不揮発性半導体メモリ61〜6nと揮発性半導体メモリ5と間でデータ転送が実行される。このように、揮発性半導体メモリ5と不揮発性半導体メモリ61〜6nとを組み合わせて使用することで、揮発性半導体メモリ5のメモリ容量より大きいメモリ空間がメインメモリとして使用可能となる。
本実施の形態において揮発性半導体メモリ5は、例えば、DRAM(Dynamic Random Access Memory)であるとする。しかしながら、揮発性半導体メモリ5としては、DRAMに代えて、FPM−DRAM(Fast Page Mode)、EDO−DRAM(Extended Data Out DRAM)、SDRAM(Synchronous DRAM)などのような、コンピュータにおいてメインメモリとして利用されるメモリを用いるとしてもよい。また、DRAM程度の高速ランダムアクセスが可能であり、アクセス可能上限回数に実質的な制限がないのであれば、揮発性半導体メモリ5に代えて、MRAM(Magnetoresistive Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)などの不揮発性ランダムアクセスメモリが用いられるとしてもよい。
本実施の形態において不揮発性半導体メモリ61〜6nは、例えば、NAND型フラッシュメモリであるとする。しかしながら、不揮発性半導体メモリ61〜6nは、例えばNOR型フラッシュメモリなど、他の不揮発性半導体メモリが用いられるとしてもよい。
揮発性半導体メモリ5は、不揮発性半導体メモリ61〜6nよりも小容量(例えば128Mbyte〜4GByteなど)だが高速にアクセス可能である。
不揮発性半導体メモリ61〜6nは、揮発性半導体メモリ5よりも大容量(例えば32GByte〜512GByteなど)だがアクセス時間が長い。また、不揮発性半導体メモリ61〜6nは、データの書き込みにおいて、一旦データを消去し、書き込む必要がある。不揮発性半導体メモリ61〜6nは、最大の書き込み回数(例えば1万回や3万回など)に制限があり、その回数を超えると、エラー率が上昇し、デバイスとして正しいデータ書き込みの保証できなくなる場合がある。また、本例の場合、不揮発性半導体メモリ61〜6nに対して、「追記方式」により、データ書き込み動作を行う。
ここで、「追記方式」は、ページ単位でデータ書き込みを行う。この追記方式で、データが更新された場合、そのデータが存在するブロックページにマーク(無効データ)を付け、更新されたデータは別ブロック(同一ブロックでも可能)の別ページに配置される。換言すれば、このような無効データとなった領域を、ダーティ(Dirty)領域(無効データ領域)と称する。
ダーティ(Dirty)領域が増大すると、後述するガーベジコレクション動作がより必要なるため、フラグメンテーションが発生する。換言すると、フラグメンテーションはDirty領域の増加で有効領域が減る現象である。このようなフラグメンテーションが発生するため、ガーベジコレクションを行う。
情報処理装置1では、プロセッサP1〜P4により、OS9及びアプリケーションなどのソフトウェア10が実行される。
プロセッサP1〜P4により、情報処理装置1におけるOS9及びアプリケーションなどのソフトウェア10が実行される。
OS9及びソフトウェア10は、例えば、1次キャッシュメモリL1−1〜L1−4、2次キャッシュメモリL2、揮発性半導体メモリ5、不揮発性半導体メモリ61〜6nに記憶されており、情報処理装置1の動作時に、プロセッサP1〜P4により読み出される。
不揮発性半導体メモリ61〜6nの物理アドレス空間分のアクセス頻度情報は、OS9及びソフトウェア10によって利用され、テーブル形式で、カラーリングテーブルによりカラーリング情報として管理される。ここで、アクセス頻度情報とは、ページサイズ単位のアクセス頻度を表す。OS9は、例えば、プログラム自身が持つ特徴、プログラムのtxt領域、stack領域、heap領域、data領域に配置されたデータの区別に基づいてアクセス頻度情報を決定し、カラーリングテーブルを用いて管理する。詳細については、後述する。
1−2.ブロック選択部の構成例
次に、図2を用い、この実施形態に係るメモリ管理装置3が有するブロック選択部の構成例について説明する。
図示するように、本例の場合、ブロック選択部(処理部)77は、メモリ管理装置3中の処理部(MPU)7に配置されている。しかし、この例に限らず、ブロック選択部77は、NANDフラッシュメモリ61〜6nの図示しないメモリコントローラ上に実装されても良いし、MTD(Memory Technology Device)用のFS(File System)(例えば、NAND型フラッシュメモリ用のファイルシステム)上等に実装されても勿論良い。
ブロック選択部77は、データ振り分け部78,ライトバッファA〜E(LA〜LE),およびGC用ライトバッファA〜C(GCLA〜GCLC)を備え、後述するカラーリングテーブルを元にデータのNANDフラッシュメモリ61〜6n上の書き込み先物理ブロックを選定する。
データ振り分け部78は、NANDフラッシュメモリ61〜6nへのデータ書き込み動作の際に、書き込み対象のデータについて、該データのデータ属性により決定される書き込み頻度についての情報に基づき、NANDフラッシュメモリ61〜6n上の書き込み領域の振り分けを行い、データの更新頻度および消去頻度を示す変数に対応して配置されたライトバッファA〜E(LA〜LE)を選択する。データの更新頻度および消去頻度は、カラーリングテーブルを元に作成される。詳細については、後述する。また、データ振り分け部78は、GC用ライトバッファA〜C(GCLA〜GCLC)についても同様に選択する。詳細については、後述する。
ライトバッファA〜E(LA〜LE)は、カラーリングテーブルにより算出された更新頻度を表す変数(0〜nの範囲)に対応して、n個分だけ配置される。換言すると、各ライトバッファA〜E(LA〜LE)は、更新頻度を表す変数に対応する。本例の場合、更新頻度を表す変数に対応して、5つのライトバッファA〜E(LA〜LE)が配置される例を示す。
GC用ライトバッファA〜C(GCLA〜GCLC)についても、上記ライトバッファと同様に、カラーリングテーブルに基づいて算出された更新頻度を表す変数に対応して、複数(本例では、3つ)個分配置される。
ブロック選択部77は、上記構成において、追記方式により、任意のタイミング(MPUにタスクが割り振られていない時)で、ライトバッファA〜E(LA〜LE)およびGC用ライトバッファA〜C(GCLA〜GCLC)の内容を論理ブロック(LEB)に、データの非同期書き込みを行う。尚、ライトバッファA〜E(LA〜LE)およびGC用ライトバッファA〜C(GCLA〜GCLC)の内容を論理ブロック(LEB)へ書き込もうとする際、論理ブロック(LEB)に空き領域がない場合、各ライトバッファに対応する論理ブロックを交換する。詳細については、後述する動作フローにより詳説する。
1−3.カラーリングテーブルの構成例
次に、図3を用い、この実施形態に係るカラーリングテーブルの構成例の構成例について説明する。カラーリングテーブル22は、例えば、メインメモリとして用いられる揮発性メモリ5や不揮発性メモリ61〜6n等に配置されるものである。なお、カラーリングテーブル22は、例えば、メモリ管理装置3に設けられたRAM(図示せず)に保持されてもよい。
図示するように、本実施形態に係るカラーリングテーブル22は、プロセッサP1〜P4の物理アドレス(不揮発性半導体メモリ及び揮発性半導体メモリの論理アドレス)を基に作成されたインデックス毎にカラーリング情報が付与される。ここで、プロセッサP1〜P4は、プロセッサP1〜P4の論理アドレスを、プロセッサP1〜P4の物理アドレス(不揮発性半導体メモリ及び揮発性半導体メモリの論理アドレス)に変換し、メモリ管理装置3に送信する。
カラーリング情報が付与されるデータのデータサイズ単位は、例えば、読み出し、書き込みの最小の単位である。例えば、読み出し、書き込みの最小の単位は、NAND型フラッシュメモリ61〜6nのページサイズである。以下において、カラーリングテーブル22によりカラーリング情報が対応付けられるデータのデータサイズはページサイズであるとして説明するが、これに限定されるものではない。カラーリングテーブル22は、データ毎にカラーリング情報を対応付け、エントリ単位でカラーリング情報を格納する。カラーリングテーブル22の各エントリには、インデックスが付されている。インデックスとは、データの論理アドレスを基に生成される値である。
例えば、上記メモリ管理装置3,ブロック選択部77,データ振り分け部78等は、データを指定する論理アドレスが与えられると、論理アドレスに対応するインデックスにより管理されているエントリを参照してカラーリングテーブル22中における、データのカラーリング情報を取得する。そして、このカラーリング情報に基づいて、揮発性メモリ(DRAM)5、不揮発性メモリ(多値メモリ(MLC:Multi Level Cell),2値メモリ(SLC:Single Level Cell))61〜6nの配置を決定する。さらに、上記不揮発性メモリ(多値メモリ(MLC:Multi Level Cell),2値メモリ(SLC:Single Level Cell))61〜6n内それぞれで、本例に係るデータ振り分けを行う。詳細については、後述する。
カラーリング情報は、各データのメインメモリ64上の配置領域を決定する基準として用いられる情報であり、静的カラー情報と、動的カラー情報とを含む。静的カラー情報は、カラーリング情報が付与される当該データの特性(データ属性)に基づいて生成される情報であり、当該データの不揮発性メモリ61〜6n等におけるデータ配置(書き込み)領域を決定するヒントとなる情報である。動的カラー情報は、データの読み出しと書き込みの回数と頻度の少なくとも一方を含む情報である。
静的カラー情報は、当該データの重要度、静的書き込み頻度を示す値SW_color、静的読み出し頻度を示すSR_color、データ寿命SL_color、データの生成された時刻ST_colorを含む。
重要度とは、データの種類等に基づいて、当該データの重要性を推測して設定される値である。重要度は、例えば、ファイルシステムに保持されるファイルの特性、またはプログラムに一次的に使用される領域の特性により推測される。
静的書き込み頻度SW_colorとは、データの種類等に基づいて、当該データが書き込まれる頻度を推測して設定される値である。例えば、静的書き込み頻度SW_colorは、書き込み頻度が高いと推測されるデータほど、高い値が設定される。本例の場合、上記データ振り分け部78は、カラーリングテーブル22中の静的書き込み頻度SW_colorを更新頻度を表す変数として参照し、この変数に基づいてライトバッファA〜E(LA〜LE)にデータの振り分けを行う。これに限られず、データ振り分け部78は、静的書き込み頻度SW_colorを更新頻度を表す変数に近似して段階を減らした変数を用い、データ振り分けを行っても良い。
静的読み出し頻度SR_colorとは、データの種類等に基づいて、当該データが読み出される頻度を推測して設定される値である。例えば、静的読み出し頻度SR_colorは、読み出し頻度が高いと推測されるデータほど、高い値が設定される。
データ寿命SL_colorとは、データの種類等に基づいて、当該データが消去されずにデータとして使用される期間(データの寿命)を推測して設定される値である。
静的カラー情報は、データを生成するプログラム(プロセス)により、静的に、予め決められた値である。また、ゲストOSが、データのファイル拡張子またはファイルヘッダ等に基づいて、静的カラー情報を予測してもよい。
動的カラー情報は、データの書き込み回数DWC_color、データの読み出し回数DRC_colorを含む。
データの書き込み回数DWC_colorとは、当該データが不揮発性メモリ61〜6nに書き込まれた回数である。
データの読み出し回数DRC_colorとは、当該データが不揮発性メモリ61〜6nから読み出された回数である。メモリ管理装置3は、データの書き込み回数DWC_colorにより、データ毎に、当該データが不揮発性メモリ61〜6nに書き込まれた回数を管理する。データ読み出し回数DRC_colorにより、メモリ管理装置3は、データ毎に、当該データが不揮発性メモリ61〜6nから読み出された回数を管理する。前述のように、不揮発性メモリ61〜6nは、メインメモリとして用いられる。このため、プロセッサP1〜P4で処理されるデータは、不揮発性メモリ61〜6nに書き込まれ、不揮発性メモリ61〜6nから読み出される。
メモリ管理装置3は、データが書き込まれる度に、当該データの書き込み回数DWC_colorをインクリメントする。また、メモリ管理装置3は、データが読み出される度に、当該データの読み出し回数DRC_colorをインクリメントする。
上記のように、データの更新頻度はカラーリングテーブル22から算出される。なお、本実施形態において、「更新頻度」とは、プロセッサP1〜P4等によりデータが変更(更新)される頻度を意味する。
さらに、本実施形態では、後述するガーベジコレクション動作の際に、カラーリングテーブル22中の、データの書き込み回数DWC_colorおよびデータ読み出し回数DRC_colorを参照することにより、不揮発性メモリ61〜6nのデータ書き込み、およびデータ読み出しが記録された時刻を参照し、GC用ライトバッファA〜C(GCLA〜GCLC)のデータ振り分けを行う。そのため、GC用ライトバッファA〜C(GCLA〜GCLC)にて使用する最終アクセス時刻が、カラーリングテーブル22中の、データの書き込み回数DWC_colorおよびデータ読み出し回数DRC_colorに加えられる。上記最終アクセス時刻には、最後にデータ書き込み、およびデータ読み出しが行われた時刻が記録される。
<2.データ書き込み動作>
2−1.データ書き込み動作フロー
次に、図4に沿って、本実施形態に係る情報処理装置のデータ書き込み動作について説明する。
(ステップST11)
図示するように、まず、ステップST11の際、ブロック選択部77中のデータ振り分け部78は、上記図3に示したカラーリングテーブル22を参照する。より具体的には、本例の場合、データ振り分け部78は、カラーリングテーブル22中の静的書き込み頻度SW_colorを更新頻度を表す変数として参照する。
(ステップST12)
続いて、ステップST12の際、データ振り分け部78は、参照したカラーリングテーブル22に基づき、更新頻度を表す変数を算出する。より具体的には、データ振り分け部78は、参照した上記静的書き込み頻度SW_colorに基づき、更新頻度を表す変数(本例の場合、変数:0〜4)を算出する。しかしながら、本例の場合に限られず、データ振り分け部78は、静的書き込み頻度SW_colorを更新頻度を表す変数に近似して段階を減らした変数を算出しても良い。例えば、上記静的書き込み頻度SW_colorを更新頻度を表す変数に近似して段階を減らした変数とは、4つの第1〜第4ライトバッファが配置され、変数が0〜7となった場合に、変数0〜1を第1ライトバッファ、変数2〜3を第2ライトバッファ、変数4〜5を第3ライトバッファ、変数6〜7を第4ライトバッファにそれぞれ段階を減らした変数を言う。
(ステップST13)
続いて、ステップST13の際、データ振り分け部78は、上記ステップST12において算出した更新頻度を表す変数に基づいて、この変数に対応するライトバッファを決定する。
本例の場合、データ振り分け部78は、上記ステップST12において算出された更新頻度を表す変数(0〜4)に基づいて、変数(0〜4)に対応するライトバッファA〜E(LA〜LE)を決定する。更新頻度を表す変数(0〜4)は、本例の場合、順次変数が大きくなるほど更新頻度が低くなる、とする。そのため、変数(0〜4)に対応するライトバッファA〜E(LA〜LE)は、順次更新頻度が低くなる。即ち、本例の場合では、ライトバッファA(LA)に、最も更新頻度が高いデータが振り分けられる。
(ステップST14)
続いて、ステップST14の際、ブロック選択部77は、ライトバッファA〜E(LA〜LE)に対応する、論理ブロック(LEB)の空き領域が十分か否か、について判定する。
(ステップST15)
続いて、ステップST15の際、ブロック選択部77は、上記ステップST14の際に論理ブロック(LEB)の空き領域が十分でない(No)と判定された場合、対応する論理ブロック(LEB)を変更し、再び上記ステップST14に戻る。
(ステップST16)
続いて、ステップST16の際、ブロック選択部77は、上記ステップST14の際に論理ブロック(LEB)の空き領域が十分である(Yes)と判定された場合、「追記方式」により、論理ブロック(LEB)にライトバッファA〜E(LA〜LE)に振り分けられたデータの書き込み指示を行う(End)。
尚、続いて、論理ブロック(LEB)に追記方式にて書き込まれたデータは、図示しない論理物理変換テーブルが参照されることにより、不揮発性メモリ61〜6nの対応する物理アドレスの物理ブロックに、同様の「追記方式」により書き込まれる。
以上のように、書き込み対象のデータについて、書き込み対象のデータのデータ属性により決定される書き込み頻度についての情報に基づき、不揮発性半導体メモリ61〜6n上の書き込み領域を振り分ける。
2−2.ガーベジコレクション動作フロー
次に、図5に沿って、本実施形態に係る情報処理装置のガーベジコレクション動作について説明する。
本実施形態では、データのガーベジコレクション(GC:Garbage collection)についても、上記カラーリングテーブル22を用いてデータ振り分けを行い、追記方式にてデータ書き込みを行う。ここで、「追記方式」で書き込まれたデータが更新された場合、そのデータが存在するブロックページにマーク(無効データ)を付け、更新されたデータは別ブロック(同一ブロックでも可能)の別ページに配置される。換言すれば、このような無効データとなった領域は、ダーティ(Dirty)領域となる。そこで、論理ブロック(LEB)中のダーティ(Dirty)領域が増加した場合、ガーベジコレクションにより、無効データとなっていない有効データを、他の論理ブロック(LEB)へ追記方式で書き込むように指示し、移動させる。この結果、Dirty領域が増えている論理ブロック(LEB)を消去対象とし、Dirty領域が増えている論理ブロックを再利用可能とする処理である。ガーベジコレクション動作により、不揮発性メモリ61〜6nの有効利用な領域が増加するので、フラグメンテーションを更に改善することができる。
本例の場合、このガーベジコレクション動作は、メモリ管理装置3中の処理部(MPU)7が、アイドル状態の際に起動するものである。
(ステップST21)
図示するように、まず、ステップST21の際、ブロック選択部77中のデータ振り分け部78は、情報処理装置システム1の全体のDrity領域が、閾値以上か否かを判定する。情報処理装置システム1の全体のDrity領域が、閾値以上でないと判定された場合(No)、ガーベジコレクション動作は必要でないと判定され、この動作を終了する(End)。この際の閾値は、必要に応じて変更可能なものである。より具体的には、データ振り分け部78は、例えば、不揮発性メモリ61〜6nの全体のうちDrity領域が、50パーセント以上か否かにより判定する。
(ステップST22)
続いて、ステップST22の際、上記ステップST21において情報処理装置システム1の全体のDrity領域が閾値以上であると判定された場合(Yes)、データ振り分け部78は、メインメモリ中のDirty領域の論理ブロック(LEB)を検索する。より具体的には、データ振り分け部78は、例えば、データが存在する論理ブロックのリストを不揮発性メモリ61〜6n上に確保し、このリストのエントリに対応する論理ブロックを線形に探索する。
(ステップST23)
続いて、ステップST23の際、データ振り分け部78は、カラーリングテーブル22を参照することにより、ガーベジコレクション対象のデータの最終アクセス時刻を参照する。より具体的には、カラーリングテーブル22中の、データの書き込み回数DWC_colorおよびデータ読み出し回数DRC_colorを参照することにより、ガーベジコレクション対象のデータのデータ書き込み、およびデータ読み出しが記録された時刻を参照する。
(ステップST24)
続いて、ステップST24の際、データ振り分け部78は、上記ステップST23の際に参照した最終アクセス時刻により、更新可能性を予測する。より具体的には、本例の場合、参照した最終アクセス時刻により、3つの更新可能性(大,中,小)を予測する。
例えば、このステップST24の際における本例の場合の上記3つの更新可能性は、以下のように判定される。
<更新可能性の予測方法例>
最終更新時刻が1日以上前の場合 :更新可能性小
最終更新時刻が12時間以上前の場合:更新可能性中
それ以外の場合 :更新可能性大
(ステップST25)
続いて、ステップST25の際、データ振り分け部78は、上記ステップST23の際に更新可能性”大”と予測された場合には、GC用ライトバッファA(LA)を選択する。
(ステップST26)
続いて、ステップST26の際、データ振り分け部78は、上記ステップST23の際に更新可能性”中”と予測された場合には、GC用ライトバッファB(LB)を選択する。
(ステップST27)
続いて、ステップST27の際、データ振り分け部78は、上記ステップST23の際に更新可能性”小”と予測された場合には、GC用ライトバッファC(LC)を選択する。
(ステップST28)
続いて、ステップST28の際、ブロック選択部77は、GC用ライトバッファA〜C(GCLA〜GCLC)に対応する論理ブロック(LEB)の空き領域が十分か否かを判定する。
(ステップST29)
続いて、ステップST29の際、ブロック選択部77は、上記ステップST28においてGC用ライトバッファA〜Cに対応する論理ブロック(LEB)の空き領域が十分でないと判定された場合(No)、対応する論理ブロック(LEB)を変更する。
(ステップST30)
続いて、ステップST30の際、ブロック選択部77は、上記ステップST28においてGC用ライトバッファA〜Cに対応する論理ブロック(LEB)の空き領域が十分あると判定された場合(Yes)、同様に、追記方式により、論理ブロック(LEB)にGC用ライトバッファA〜Cに振り分けられたデータの書き込みを行って、この動作を終了する(End)。
尚、続いて、論理ブロック(LEB)に追記方式にて書き込まれたデータは、図示しないメモリコントローラにより、論理物理変換テーブルを参照することにより、不揮発性メモリ61〜6nの対応する物理アドレスの物理ブロックに、同様の追記方式により書き込まれる。
上記のように、本実施形態では、ガーベジコレクション動作の際に、カラーリングテーブル22を参照することにより、最後にアクセスされた時刻から、今後アクセスされる可能性を予測した上で、移動先の論理ブロック(LEB)を決定することができる。最後にアクセスされた時刻が最近なものほど、今後更新される可能性が高いと判断することができるからである。そのため、上記本例に係る追記方式のデータ書き動作に加えた、このガーベジコレクション動作によって、不揮発性メモリ61〜6nの有効利用な領域が増加するので、フラグメンテーションを更に改善することができる。
<3.作用効果>
本実施形態に係るメモリ管理装置およびメモリ管理方法によれば、少なくとも下記(1)乃至(2)の効果が得られる。
(1)フラグメンテーションの発生を抑制でき、メモリの有効利用に有利である。
上記のように、本例に係るメモリ管理装置3は、データ書き込み動作の際に、データ振り分け部78が、カラーリングテーブル22を参照することによるデータの属性から、データの更新頻度を予測し、変数に基づいて、この変数に対応するライトバッファを決定する(ST13)。尚、変数に対応するライトバッファを決定する際には、データの更新頻度に限らず、データの消去頻度等でも良い。
本例の場合、データ振り分け部78は、上記ステップST12において算出された更新頻度を表す変数(0〜4)に基づいて、変数(0〜4)に対応するライトバッファA〜E(LA〜LE)を決定する。更新頻度を表す変数(0〜4)は、本例の場合、順次変数が大きくなるほど更新頻度が低くなるとする。そのため、変数(0〜4)に対応するライトバッファA〜E(LA〜LE)は、順次更新頻度が低くなる。即ち、本例の場合では、ライトバッファA(LA)が、最も更新頻度が高いデータが振り分けられる。
さらに、メモリ管理装置3は、「追記方式」により、論理ブロック(LEB)にライトバッファA〜E(LA〜LE)に振り分けられたデータの書き込みを行う(ST16)。
その結果、不揮発性メモリ61〜6nには、対応する物理アドレスの物理ブロック(PEB)に、同様の追記方式により、更新頻度に応じたデータがブロックごとに集合して書き込まれる。
例えば、本例に係る追記方式によるデータ書き込み後の物理ブロック(PEB)は、図6のように示される。
図示するように、物理ブロック1(PEB1)には、更新頻度が低いデータB1〜B3が、物理アドレスPAA00〜PAA11にそれぞれ書き込まれている。
物理ブロック2(PEB2)には、更新頻度が低いデータB4が、物理アドレスPAA00に書き込まれている。
物理ブロック3(PEB3)は、空き物理ブロックである。
物理ブロック4(PEB4)には、更新頻度がより高いデータA1〜A3が、物理アドレスPAA00〜PAA11にそれぞれ書き込まれている。
物理ブロック5(PEB5)には、更新頻度がより高いデータA4が、物理アドレスPAA00に書き込まれている。
このように、本例に係る追記方式のデータ書き込み動作によれば、更新頻度に応じてデータを不揮発性メモリ61〜6nの物理ブロック(PEB)ごとに振り分けることができる。
加えて、本例に係るメモリ管理装置3は、ガーベジコレクション動作の際においても、カラーリングテーブル22を用いてデータ振り分けを行い(ST24)、追記方式にてデータ書き込みを行う(ST30)。
上記ステップST24の際のカラーリングテーブル22を用いてデータ振り分けは、参照した最終アクセス時刻により、更新可能性を予測することにより行われる。より具体的には、本例の場合、参照した最終アクセス時刻により、以下の3つの更新可能性(大,中,小)を予測し、GC用ライトバッファA〜C(GCLA〜GCLC)にそれぞれ振り分けられる。
その結果、例えば、本例に係るデータA(更新頻度が高い)を更新した後の物理ブロック(PEB)は、図7のように示される。
図示するように、まず、更新頻度が高いデータA1〜A4が固めて振り分けられた物理ブロック4(PEB4)および物理ブロック5(PEB5)では、データA1〜A4が更新されるため、データA1〜A4がデータB1〜B4よりもまず先に、別の物理ブロック(ここでは図示せず)に移動される。
続いて、更新頻度が低いデータB1〜B4が固めて振り分けられた物理ブロック1(PEB1)および物理ブロック2(PEB2)では、データB1〜B4が更新されるため、データB1〜B4がデータA1〜A4に続いて、別の物理ブロックに移動される(ここでは図示せず)。
このように、追記方式において、更新頻度に応じて振り分けられたデータが、物理ブロックごとに固まって書き込まれるため、Dirty領域の発生を抑制でき、フラグメンテーションの発生を防止できる。
[比較例]
一方、比較例として、追記方式において、本例のような上記データ属性に基づきデータ振り分けを行わない場合のデータ書き込み後の物理ブロック(PEB)は、例えば、図8のように示される。
図示するように、比較例では、更新頻度ごとにデータが振り分けられず、データが物理ブロックに書き込まれる。
そのため、例えば、物理ブロック1(PEB1)には、更新頻度が低いデータB1,B2および更新頻度が高いデータA1が、物理アドレスPAA00〜PAA11にランダムに書き込まれている。
物理ブロック2(PEB2)には、更新頻度が低いデータB3,B4および更新頻度が高いデータA2が、物理アドレスPAA00等にランダムに書き込まれている。
物理ブロック3(PEB3)には、更新頻度が高いデータA1のみが、物理アドレスPAA00に書き込まれている。
物理ブロック4(PEB4)には、更新頻度が高いデータA4のみが、物理アドレスPAA11にランダムに書き込まれている。
物理ブロック5(PEB5)は、空き物理ブロックである。
このように、比較例に係るデータ書き込み動作によれば、更新頻度にデータが振り分けられず、物理ブロック(PEB)にデータが書き込まれている。
その結果、その後、物理ブロック(PEB)にランダム書き込まれたデータは、更新頻度ごとに別のブロックに移動されるため、更新ごとにランダムなDirty領域が発生する。
例えば、比較例に係るデータA(更新頻度が高い)を更新した後の物理ブロック(PEB)は、図9のように示される。
図示するように、まず、更新頻度が高いデータA1〜A4が書き込まれた物理ブロック1〜4(PEB1〜PEB4)において更新されるため、データA1〜A4がデータB1〜B4よりもまず先に、別の物理ブロック(ここでは図示せず)に移動される。
そのため、Dirty領域が増大し、フラグメンテーションが発生する点で不利である。
例えば、図示する比較例では、更新頻度が高いデータA1〜A4が更新されると、物理ブロック1,2(PEB1,2)中には、2つのDirty領域が増大するため、フラグメンテーションが発生する。このような場合は、続くデータB1〜B4の更新の場合でも同様に発生し得る。
(2)書込み効率(WA)および情報処理装置1のシステム全体の性能を向上できる。
上記のように、本例に係るメモリ管理装置3は、ガーベジコレクション動作の際においても、カラーリングテーブル22を用いてデータ振り分けを行い(ST24)、追記方式にてデータ書き込みを行う(ST30)。
上記ステップST24の際のカラーリングテーブル22を用いてデータ振り分けは、参照した最終アクセス時刻により、更新可能性を予測することにより行われる。より具体的には、本例の場合、参照した最終アクセス時刻により、以下の3つの更新可能性(大,中,小)を予測し、GC用ライトバッファA〜C(GCLA〜GCLC)にそれぞれ振り分けられる。
<更新可能性の予測方法例>
最終更新時刻が1日以上前の場合 :更新可能性小
最終更新時刻が12時間以上前の場合:更新可能性中
それ以外の場合 :更新可能性大
GC用ライトバッファA〜C(GCLA〜GCLC)に振り分けられたデータは、上記と同様に、追記方式により不揮発性メモリ61〜6nの物理ブロック(PEB)に書き込まれる。
そのため、上記データ書き込み動作に加え、無効データが多い物理ブロック中の有効データを他の物理ブロックに移動し、無効データが多い物理ブロックを消去可能とし、不揮発性メモリ61〜6n中の有効領域を増やすことができる点で有利である。
ここで、ガーベジコレクションが多くなりすぎることは、書込み効率(WA:Write Amplification)の向上の観点からは、望ましくない。ガーベジコレクションが増大すると、不揮発性メモリ(NAND型フラッシュメモリ)61〜6nの特性や、システムの実装方式によって発生する書き込みの増分が必要となるため、書込み効率(WA)が低減するからである。加えて、ガーベジコレクションが多発すると、ガーベジコレクション処理についてMMU41〜MMU44を多く使用する必要があり、情報処理装置1のシステム全体の性能劣化につながる。
例えば、上記図9に示した比較例の場合では、上書き方式により、物理ブロック(PEB)にデータが書き込まれるため、物理ブロック1,2(PEB1、2)に2つのDirty領域が発生する。その結果、Dirty領域の発生のたびに、ガーベジコレクション動作が必要となり、書込み効率(WA)が低減し、情報処理装置1のシステム全体の性能が劣化する点で、不利である。
これに対して本例では、上記図7に示したように、GC用ライトバッファA〜C(GCLA〜GCLC)に振り分けられたデータは、追記方式により不揮発性メモリ61〜6nの物理ブロック(PEB)に書き込まれるため、Dirty領域の発生を抑制できるから、ガーベジコレクション動作が多くなることもない。その結果、書込み効率(WA)を向上でき、情報処理装置1のシステム全体の性能を向上できる点で、有利である。
より具体的に、本例および比較例における、Dirty領域サイズは、例えば、図10のように示される。図10では、時間(1/10分)とデータ量(Byte)との関係において、実線は本例(上記フラグメンテーション抑制有)の場合を示し、破線は比較例(上記フラグメンテーション抑制無)の場合を示している。ここで、図10中、time 7[1/10分]近傍において、いずれもダーティ領域のデータ量が小さくなっているのは、有効データが消去されると、一時的にDirty領域が解放される場合があるからである。
図示するように、いずれの時間(1〜15[1/10分])においても、本例の方が、比較例に比べ、Dirty領域のデータ量を大きく低減できていることは明らかである。
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
3…メモリ管理装置、7…処理部、77…ブロック選択部、78…データ振り分け部、LA〜LE…ライトバッファ、GCLA〜GCLE…GC用ライトバッファ、65…メインメモリ、61〜6n…不揮発性メモリ、5…揮発性メモリ。

Claims (7)

  1. 不揮発性半導体メモリと揮発性半導体メモリとを備えるメインメモリを管理するメモリ管理装置であって、
    前記不揮発性半導体メモリへのデータ書き込み動作の際に、書き込み対象のデータについて、該データのデータ属性により決定される書き込み頻度についての情報に基づき、前記不揮発性半導体メモリ上の書き込み領域の振り分けを行う振り分け部と、
    前記振り分けられたデータを、追記方式により前記不揮発性半導体メモリに書き込む制御部と
    を具備することを特徴とするメモリ管理装置。
  2. 前記振り分け部は、前記不揮発性半導体メモリ上のデータのガーベジコレクション動作の際に、ガーベジコレクション対象のデータについて、該データが最終アクセスされた時刻についての情報に基づき、前記不揮発性半導体メモリ上の該データの移動先の振り分けを行い、
    前記制御部は、前記振り分けられたデータを、追記方式により前記不揮発性半導体メモリに書き込む、ように更に制御すること
    を特徴とする請求項1に記載のメモリ管理装置。
  3. 前記データ書き込み動作の際に、前記データ属性により決定される書き込み頻度についての情報に基づき算出される変数に対応して配置される複数のライトバッファを更に具備し、
    前記振り分け部は、前記複数のライトバッファに、前記算出された変数に基づいてデータを振り分けること
    を特徴とする請求項1または2に記載のメモリ管理装置。
  4. 前記ガーベジコレクション動作の際に、前記更新可能性に対応して配置される複数のガーベジ用ライトバッファを更に具備し、
    前記振り分け部は、前記更新可能性に基づいて、対応する前記複数のガーベジ用ライトバッファにデータを振り分けること
    を特徴とする請求項3に記載のメモリ管理装置。
  5. 前記振り分け部は、前記データ属性の情報における静的書き込み頻度を更新頻度を表す変数として用い、または前記静的書き込み頻度を更新頻度を表す変数に近似して段階を減らした変数を用い、前記複数のライトバッファにデータ振り分けを行うこと
    を特徴とする請求項2乃至4のいずれか1項に記載のメモリ管理装置。
  6. 不揮発性半導体メモリと揮発性半導体メモリとを備えるメインメモリを管理する方法であって、
    前記不揮発性半導体メモリへのデータ書き込み動作の際に、書き込み対象のデータについて、該データのデータ属性により決定される書き込み頻度についての情報に基づき、前記不揮発性半導体メモリ上の書き込み領域の振り分けを行う第1ステップと、
    前記振り分けられたデータを、追記方式により前記不揮発性半導体メモリに書き込む第2ステップとを具備すること
    を特徴とするメモリ管理方法。
  7. 前記不揮発性半導体メモリ上のデータのガーベジコレクション動作の際に、ガーベジコレクション対象のデータについて、該データが最終アクセスされた時刻についての情報に基づき、前記不揮発性半導体メモリ上の該データの移動先の振り分けを行う第3ステップと、
    前記振り分けられたデータを、追記方式により前記不揮発性半導体メモリに書き込む第4ステップとを更に具備すること
    を特徴とする請求項6に記載のメモリ管理方法。
JP2010172050A 2010-07-30 2010-07-30 メモリ管理装置およびメモリ管理方法 Pending JP2012033002A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2010172050A JP2012033002A (ja) 2010-07-30 2010-07-30 メモリ管理装置およびメモリ管理方法
KR1020110022855A KR101270281B1 (ko) 2010-07-30 2011-03-15 메모리 관리 장치, 정보 처리 장치 및 메모리 관리 방법
US13/050,528 US20120030413A1 (en) 2010-07-30 2011-03-17 Memory management device, information processing device, and memory management method
CN2011100662906A CN102346712A (zh) 2010-07-30 2011-03-18 存储器管理装置、信息处理装置、存储器管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010172050A JP2012033002A (ja) 2010-07-30 2010-07-30 メモリ管理装置およびメモリ管理方法

Publications (1)

Publication Number Publication Date
JP2012033002A true JP2012033002A (ja) 2012-02-16

Family

ID=45527881

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010172050A Pending JP2012033002A (ja) 2010-07-30 2010-07-30 メモリ管理装置およびメモリ管理方法

Country Status (4)

Country Link
US (1) US20120030413A1 (ja)
JP (1) JP2012033002A (ja)
KR (1) KR101270281B1 (ja)
CN (1) CN102346712A (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8825946B2 (en) 2012-02-23 2014-09-02 Kabushiki Kaisha Toshiba Memory system and data writing method
JP2014232525A (ja) * 2013-04-30 2014-12-11 株式会社半導体エネルギー研究所 半導体装置
JP2015064758A (ja) * 2013-09-25 2015-04-09 キヤノン株式会社 メモリ制御装置、メモリ制御方法、情報機器及びプログラム
WO2015114829A1 (ja) * 2014-02-03 2015-08-06 株式会社日立製作所 情報処理装置
WO2015118623A1 (ja) * 2014-02-05 2015-08-13 株式会社日立製作所 情報処理装置
JP2016506579A (ja) * 2012-12-26 2016-03-03 ウェスタン デジタル テクノロジーズ インコーポレーテッド データストレージシステム向けの優先度に基づくガベージコレクション
JP2016151868A (ja) * 2015-02-17 2016-08-22 株式会社東芝 記憶装置及び記憶装置を含む情報処理システム
JP2020035128A (ja) * 2018-08-29 2020-03-05 キオクシア株式会社 メモリシステム
US12153824B2 (en) 2021-09-21 2024-11-26 Kioxia Corporation Memory system
US12511231B2 (en) 2023-07-31 2025-12-30 Kioxia Corporation Memory system and control method

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011007599A1 (ja) 2009-07-17 2011-01-20 株式会社 東芝 メモリ管理装置
JP2011128792A (ja) 2009-12-16 2011-06-30 Toshiba Corp メモリ管理装置
US8782370B2 (en) * 2011-05-15 2014-07-15 Apple Inc. Selective data storage in LSB and MSB pages
CN102799535A (zh) * 2012-06-29 2012-11-28 记忆科技(深圳)有限公司 固态硬盘的数据处理方法及固态硬盘
KR101920500B1 (ko) 2012-06-29 2018-11-21 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
JP6041610B2 (ja) * 2012-10-02 2016-12-14 キヤノン株式会社 情報処理装置及びその制御方法、並びに、そのプログラムと記憶媒体
JP2014078128A (ja) * 2012-10-10 2014-05-01 Canon Inc 情報処理装置及びその制御方法、並びに、そのプログラムと記憶媒体
US10042750B2 (en) * 2013-03-15 2018-08-07 Micron Technology, Inc. Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor
US20190087599A1 (en) * 2014-04-02 2019-03-21 International Business Machines Corporation Compressing a slice name listing in a dispersed storage network
CN107408017B (zh) * 2015-04-09 2020-07-14 株式会社日立制作所 存储系统和数据控制方法
US10346039B2 (en) 2015-04-21 2019-07-09 Toshiba Memory Corporation Memory system
US9841918B2 (en) * 2015-12-02 2017-12-12 Samsung Electronics Co., Ltd. Flash memory device including deduplication, and related methods
JP6968016B2 (ja) 2018-03-22 2021-11-17 キオクシア株式会社 ストレージデバイスおよびコンピュータシステム
TWI759580B (zh) * 2019-01-29 2022-04-01 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
US20210233585A1 (en) * 2020-01-29 2021-07-29 Micron Technology, Inc. Multichip memory package with internal channel
US11275680B2 (en) * 2020-02-10 2022-03-15 Micron Technology, Inc. Profile and queue-based wear leveling of memory devices
CN111552652B (zh) * 2020-07-13 2020-11-17 深圳鲲云信息科技有限公司 基于人工智能芯片的数据处理方法、装置和存储介质
KR20220127067A (ko) 2021-03-10 2022-09-19 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07114499A (ja) * 1993-10-19 1995-05-02 Hitachi Ltd フラッシュメモリ仮想メモリシステム
JPH11259370A (ja) * 1998-03-06 1999-09-24 Mitsubishi Electric Corp データ書込装置及びデータ書込方法
JP2004342090A (ja) * 2003-04-25 2004-12-02 Matsushita Electric Ind Co Ltd データ記録装置
JP2008047238A (ja) * 2006-08-18 2008-02-28 Fujitsu Ltd 不揮発性半導体メモリ
JP2010066914A (ja) * 2008-09-09 2010-03-25 Toshiba Corp 統合メモリ管理装置及びメモリ管理方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5416915A (en) * 1992-12-11 1995-05-16 International Business Machines Corporation Method and system for minimizing seek affinity and enhancing write sensitivity in a DASD array
US5799324A (en) * 1996-05-10 1998-08-25 International Business Machines Corporation System and method for management of persistent data in a log-structured disk array
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
KR101257848B1 (ko) * 2005-07-13 2013-04-24 삼성전자주식회사 복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작방법
US8255628B2 (en) * 2006-07-13 2012-08-28 International Business Machines Corporation Structure for multi-level memory architecture with data prioritization
KR100833188B1 (ko) * 2006-11-03 2008-05-28 삼성전자주식회사 데이터의 특성에 따라 싱글 레벨 셀 또는 멀티 레벨 셀에데이터를 저장하는 불휘발성 메모리 시스템
JP5087347B2 (ja) * 2007-09-06 2012-12-05 株式会社日立製作所 半導体記憶装置及び半導体記憶装置の制御方法
KR100938903B1 (ko) 2007-12-04 2010-01-27 재단법인서울대학교산학협력재단 불규칙한 배열 접근 패턴을 갖는 애플리케이션을 대한소프트웨어에 의해 제어되는 캐시 메모리의 동적 데이터할당 방법
JP4533968B2 (ja) * 2007-12-28 2010-09-01 株式会社東芝 半導体記憶装置及びその制御方法、コントローラ、情報処理装置
KR101038167B1 (ko) * 2008-09-09 2011-05-31 가부시끼가이샤 도시바 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법
US8402242B2 (en) * 2009-07-29 2013-03-19 International Business Machines Corporation Write-erase endurance lifetime of memory storage devices
US8463983B2 (en) * 2009-09-15 2013-06-11 International Business Machines Corporation Container marker scheme for reducing write amplification in solid state devices
US8296496B2 (en) * 2009-09-17 2012-10-23 Hewlett-Packard Development Company, L.P. Main memory with non-volatile memory and DRAM
US20110107042A1 (en) * 2009-11-03 2011-05-05 Andrew Herron Formatting data storage according to data classification
US8423520B2 (en) * 2009-11-23 2013-04-16 Dell Products L.P. Methods and apparatus for efficient compression and deduplication
US8255624B2 (en) * 2009-12-17 2012-08-28 Hitachi, Ltd. Storage apparatus and its control method
US8438361B2 (en) * 2010-03-10 2013-05-07 Seagate Technology Llc Logical block storage in a storage device
US8392670B2 (en) * 2010-04-12 2013-03-05 Hitachi, Ltd. Performance management of access to flash memory in a storage device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07114499A (ja) * 1993-10-19 1995-05-02 Hitachi Ltd フラッシュメモリ仮想メモリシステム
JPH11259370A (ja) * 1998-03-06 1999-09-24 Mitsubishi Electric Corp データ書込装置及びデータ書込方法
JP2004342090A (ja) * 2003-04-25 2004-12-02 Matsushita Electric Ind Co Ltd データ記録装置
JP2008047238A (ja) * 2006-08-18 2008-02-28 Fujitsu Ltd 不揮発性半導体メモリ
JP2010066914A (ja) * 2008-09-09 2010-03-25 Toshiba Corp 統合メモリ管理装置及びメモリ管理方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8825946B2 (en) 2012-02-23 2014-09-02 Kabushiki Kaisha Toshiba Memory system and data writing method
JP2016506579A (ja) * 2012-12-26 2016-03-03 ウェスタン デジタル テクノロジーズ インコーポレーテッド データストレージシステム向けの優先度に基づくガベージコレクション
JP2014232525A (ja) * 2013-04-30 2014-12-11 株式会社半導体エネルギー研究所 半導体装置
US10141053B2 (en) 2013-04-30 2018-11-27 Semiconductor Energy Laboratory Co., Ltd. Method for driving a semiconductor device including data migration between a volatile memory and a nonvolatile memory for power-saving
JP2018163666A (ja) * 2013-04-30 2018-10-18 株式会社半導体エネルギー研究所 半導体装置
JP2015064758A (ja) * 2013-09-25 2015-04-09 キヤノン株式会社 メモリ制御装置、メモリ制御方法、情報機器及びプログラム
JPWO2015114829A1 (ja) * 2014-02-03 2017-03-23 株式会社日立製作所 情報処理装置
WO2015114829A1 (ja) * 2014-02-03 2015-08-06 株式会社日立製作所 情報処理装置
JPWO2015118623A1 (ja) * 2014-02-05 2017-03-23 株式会社日立製作所 情報処理装置
JP6100927B2 (ja) * 2014-02-05 2017-03-22 株式会社日立製作所 情報処理装置
WO2015118623A1 (ja) * 2014-02-05 2015-08-13 株式会社日立製作所 情報処理装置
JP2016151868A (ja) * 2015-02-17 2016-08-22 株式会社東芝 記憶装置及び記憶装置を含む情報処理システム
JP2020035128A (ja) * 2018-08-29 2020-03-05 キオクシア株式会社 メモリシステム
US12153824B2 (en) 2021-09-21 2024-11-26 Kioxia Corporation Memory system
US12511231B2 (en) 2023-07-31 2025-12-30 Kioxia Corporation Memory system and control method

Also Published As

Publication number Publication date
CN102346712A (zh) 2012-02-08
US20120030413A1 (en) 2012-02-02
KR101270281B1 (ko) 2013-05-31
KR20120012375A (ko) 2012-02-09

Similar Documents

Publication Publication Date Title
JP2012033002A (ja) メモリ管理装置およびメモリ管理方法
US8880836B2 (en) Memory management device and method
US9678676B2 (en) Method for storage devices to achieve low write amplification with low over provision
US9081661B2 (en) Memory management device and method for managing access to a nonvolatile semiconductor memory
US10740013B2 (en) Non-volatile data-storage device with spare block pools using a block clearing method
US8612692B2 (en) Variable write back timing to nonvolatile semiconductor memory
JP6385556B2 (ja) 不揮発性メモリデバイスおよび不揮発性メモリデバイスのデータ記憶方法
US9003099B2 (en) Disc device provided with primary and secondary caches
JP5762930B2 (ja) 情報処理装置および半導体記憶装置
JP2021128582A (ja) メモリシステムおよび制御方法
CN102667736A (zh) 存储器管理装置及存储器管理方法
KR20100132244A (ko) 메모리 시스템 및 메모리 시스템 관리 방법
JP7500311B2 (ja) メモリシステム及び情報処理システム
KR101403922B1 (ko) 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법
KR20100115090A (ko) 버퍼를 고려한 가비지 컬렉션 기법
TWI473100B (zh) Flash memory system and its operation method
JP2018160189A (ja) メモリシステム
CN114746848B (zh) 用于存储装置的高速缓存架构
US20130138910A1 (en) Information Processing Apparatus and Write Control Method
KR20120034976A (ko) 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법
US11269534B2 (en) Data storage device and non-volatile memory control method
JP2022146531A (ja) メモリシステム
KR20150139383A (ko) 반도체 장치
JP2015191295A (ja) メモリコントローラ、メモリシステム及びメモリ制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120809

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130917

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131205

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131212

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131226

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140109

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140116

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140204