JP2011145838A - 記憶装置管理装置および記憶装置の管理方法 - Google Patents

記憶装置管理装置および記憶装置の管理方法 Download PDF

Info

Publication number
JP2011145838A
JP2011145838A JP2010005260A JP2010005260A JP2011145838A JP 2011145838 A JP2011145838 A JP 2011145838A JP 2010005260 A JP2010005260 A JP 2010005260A JP 2010005260 A JP2010005260 A JP 2010005260A JP 2011145838 A JP2011145838 A JP 2011145838A
Authority
JP
Japan
Prior art keywords
data
storage device
random access
memory
access memory
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
JP2010005260A
Other languages
English (en)
Inventor
Hiroto Nakai
弘人 中井
Tatsunori Kanai
達徳 金井
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 JP2010005260A priority Critical patent/JP2011145838A/ja
Priority to CN201080057433.0A priority patent/CN102667739B/zh
Priority to PCT/JP2010/066465 priority patent/WO2011086732A1/en
Publication of JP2011145838A publication Critical patent/JP2011145838A/ja
Priority to US13/491,824 priority patent/US9367451B2/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module

Landscapes

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

Abstract

【課題】複数の記憶装置を適切に一元管理する記憶装置管理装置を提供する。
【解決手段】記憶装置管理装置3は、ランダムアクセスメモリ4aと、これより少ない書き換え上限回数の第1記憶装置4bと接続される。記憶装置管理装置は、ランダムアクセスメモリが書き込みデータを格納できる空き領域を有している場合、書き込みデータをランダムアクセスメモリにおいて格納し、ランダムアクセスメモリ内のデータを最後にアクセスされてからの時間順に第1記憶装置内にコピーし、ランダムアクセスメモリ内のコピーされたデータを格納していた領域を開放する。記憶装置管理装置は、読み出しデータがランダムアクセスメモリに格納されている場合、読み出しデータをランダムアクセスメモリから読み出し、読み出しデータが第1記憶装置に格納されている場合、読み出しデータをランダムアクセスメモリにコピーし、読み出しデータをランダムアクセスメモリから読み出す。
【選択図】 図1

Description

本発明は、複数の記憶装置の記憶状態を管理する記憶装置管理装置および記憶装置の管理方法に関する。
コンピュータでは、通常、複数の種類のメモリ、例えばキャッシュメモリ、メインメモリ、2次記憶装置(ハードディスクドライブなど)が設けられる。メモリは、高速にアクセス可能なものほど容量は小さく、高価である。上記の例の場合、キャッシュメモリ、メインメモリ、2次記憶装置の順で、アクセス速度は速く、記憶容量は小さい。そこで、複数の種類のメモリが階層化される。具体的には、使用頻度の高いデータはキャッシュメモリに記憶され、使用頻度が中レベルのデータは主記憶装置に記憶され、使用頻度の低いデータは2次記憶装置に記憶される。このようにメモリの特性に応じてデータの保存先が選択されることによって、メモリがコンピュータによって有効に活用される。
例えば、特許文献1(特開2008−242944号公報)には、キャッシュメモリとメインメモリに対するアクセスを一元管理する統合メモリ管理装置をコンピュータに設けることが記載されている。
また、特許文献2(特開2009−151603号公報)には、MRAMを主記憶装置として使用し、別の不揮発性メモリをバックアップとして使用する技術が記載されている。
特開2008−242944号公報 特開2009−151603号公報
本発明は、複数の記憶装置を適切に一元管理できる記憶装置管理装置、および記憶装置の管理方法を提供しようとするものである。
本発明の一態様による記憶管理装置は、ランダムアクセスメモリと、前記ランダムアクセスメモリよりも少ない書き換え上限回数を有する第1記憶装置と、情報処理装置と接続される記憶装置管理装置であって、前記ランダムアクセスメモリが、前記情報処理装置からの書き込み要求対象である書き込みデータを格納するのに足る空き領域を有している場合、前記書き込みデータを前記ランダムアクセスメモリにおいて格納し、前記ランダムアクセスメモリ内のデータを、最後にアクセスされてからの時間が長いものから順に前記第1記憶装置内にコピーし、前記ランダムアクセスメモリ内の前記コピーされたデータを格納していた領域を開放し、前記情報処理装置からの読み出し要求対象である読み出しデータが前記ランダムアクセスメモリに格納されている場合、前記読み出しデータを前記ランダムアクセスメモリから前記情報処理装置に読み出し、前記読み出しデータが前記第1記憶装置に格納されている場合、前記読み出しデータを前記ランダムアクセスメモリにコピーし、前記読み出しデータを前記ランダムアクセスメモリから前記情報処理装置に読み出す、ことを特徴とする。
本発明の一態様による記憶装置の管理方法は、ランダムアクセスメモリおよび前記ランダムアクセスメモリよりも少ない書き換え上限回数を有する第1記憶装置の管理方法であって、前記ランダムアクセスメモリが前記情報処理装置からの書き込み要求対象である書き込みデータを格納するのに足る空き領域を有している場合、前記書き込みデータを前記ランダムアクセスメモリにおいて格納し、前記ランダムアクセスメモリ内のデータを、最後にアクセスされてからの時間が長いものから順に前記第1記憶装置内にコピーし、前記ランダムアクセスメモリ内の前記コピーされたデータを格納していた領域を開放し、前記情報処理装置からの読み出し要求対象である読み出しデータが前記ランダムアクセスメモリに格納されている場合、前記読み出しデータを前記ランダムアクセスメモリから前記情報処理装置に読み出し、前記読み出しデータが前記第1記憶装置に格納されている場合、前記読み出しデータを前記ランダムアクセスメモリにコピーし、前記読み出しデータを前記ランダムアクセスメモリから前記情報処理装置に読み出す、ことを具備することを特徴とする。
本発明によれば、複数の記憶装置を適切に一元管理できる記憶装置管理装置、および記憶装置の管理方法を提供できる。
本発明の一実施形態に係るメモリシステムを示すブロック図。 実施形態のメモリコントローラによって用いられるページテーブル。 実施形態のメモリコントローラによって用いられるRAM物理ページ管理テーブル 実施形態のメモリコントローラによって用いられるSLC型NANDフラッシュ物理ページ管理テーブル。 実施形態のメモリコントローラによって用いられるMLC型NANDフラッシュ物理ページ管理テーブル。 実施形態のメモリコントローラよるメモリ領域の割り当てのフローチャート。 実施形態のメモリコントローラによるSLC型NANDフラッシュのガベージコレクションのフローチャート。 実施形態のメモリコントローラによるMLC型NANDフラッシュのガベージコレクションのフローチャート。 メモリシステム内のデータの更新要求に対する、実施形態のメモリコントローラによる処理のフローチャート。 メモリシステム内のデータの読み出し要求に対する、実施形態のメモリコントローラによる処理のフローチャート。 メモリシステム内のデータへの更新要求に対する、実施形態のメモリコントローラによる処理の一部のフローチャート。 本発明の別の実施形態に係るメモリシステムを示すブロック図。
以下に本発明の実施形態について図面を参照して説明する。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
図1は、本発明の一実施形態に係るメモリシステム、およびプロセッサを示すブロック図である。図1に示すように、メモリシステム2は、プロセッサ(情報処理装置)1と接続されている。メモリシステム2は、メモリコントローラ3および複数のメモリ4a乃至4cを含んでいる。
プロセッサ1は、メモリコントローラ(メモリ管理装置)3と、バスを介して接続されている。メモリコントローラ3は、複数のメモリと接続されている。図1では、3つのメモリ4a乃至4cが例示されている。メモリコントローラ3およびメモリ4a乃至4cは、メモリシステム2を構成する。メモリ4a乃至4cは、メモリシステム2のメインメモリを構成する。
次に、各部の構成および動作について、より詳しく説明する。プロセッサ1は、キャッシュメモリ11を有している。通常のデータキャッシュまたは命令キャッシュとして機能する。プロセッサ1は、メモリ4a乃至4cまたは2次記憶装置(図示せず)に格納されているデータ(プログラム、コマンド等を含む)を読み出して、このデータに従い、またこのデータを用いて、例えばユーザからアプリケーション(オペレーティングシステムを含む)を介して依頼される処理を実行する。
メモリコントローラ3は、メモリ4a乃至4cまたは2次記憶装置(図示せず)に格納されているデータ(プログラム、コマンド等を含む)を読み出して、このデータに従い、またこのデータを用いて、メモリ4a乃至4cによるデータの格納方法を管理する(後に詳述する)。メモリコントローラ3は、プロセッサ1から依頼されるデータの読み出し、およびデータの書き込みを実行する。メモリコントローラ3の動作の詳細については後述する。
メモリ4a乃至4cは、種類および特性の異なるメモリからそれぞれ構成される。メモリ4a、4b、4cは、この記述された順に、データの書き込みおよび読み出しを高速に実行可能であり、小さな容量を有し、大きな書き換え上限回数を有する。すなわち、メモリ4aは、メモリ4bよりも、高速にデータの書き込みおよび読み出しが可能であり、小さな容量を有し、大きな書き換え上限回数を有する。同様に、メモリ4bは、メモリ4cよりも、高速にデータの書き込みおよび読み出しが可能であり、小さな容量を有し、大きな書き換え上限回数を有する。
メモリ4aの具体例は、あらゆるRAMであり、典型的には、一般的なコンピュータにおいてメインメモリとしての使用に要求される仕様を満たすメモリである。メモリ4aのより具体的な例には、MRAM(magnetoresistive random access memory)、DRAM(dynamic random access memory)、FeRAM(dynamic random access memory)、PCRAM(phase change random access memory)、ReRAM(resistive random access memory)が含まれる。さらに、FPM−DRAM、EDO−DRAM、SDRAMなどのような一般的なコンピュータにおいてメインメモリとして利用されるメモリが含まれる。しかしながら、これらのメモリのうちでDRAM以外のものは不揮発である点、しかし同時にMRAM、FeRAMなどはDRAMと同様に高速でのデータの書き込みおよび読み出しが可能である点から、MRAMやFeRAMが好ましい。例えば、不揮発性のメモリが使用されれば、電源再投入時に2次記憶装置からメインメモリへロードする必要があるデータの量の削減が削減され、使用が可能になるのに必要な時間が短縮される。
メモリ4bの具体例は、不揮発性半導体メモリである。メモリ4bのより具体的な例には、SLC(single level cell)タイプのNAND型フラッシュメモリが含まれる。NAND型フラッシュメモリは、ページ単位でデータを読み出しまたはデータを書き込み、ブロック単位でデータを消去する。ページは、複数の直列接続されたメモリセルからなり、ブロックは複数の連続するページからなる。SLCタイプのNAND型フラッシュメモリでは、1つのセルが1ビットのデータを記憶する。SLCタイプのNAND型フラッシュメモリは、後述のMLCタイプのNAND型フラッシュメモリよりも、一般に高速でデータの読み出しおよび書き込みが可能であり、書き換え上限回数が多い。しかしながら、SLCタイプのNAND型フラッシュメモリは、MLCタイプのNAND型フラッシュメモリよりも、ビット密度が低く、大容量化には向いていない。
メモリ4cの具体例は、不揮発性半導体メモリである。メモリ4bのより具体的な例には、MLC(multi level cell)タイプのNAND型フラッシュメモリが含まれる。MLCタイプのNAND型フラッシュメモリでは、1つのセルが2ビット以上のデータを記憶する。MLCタイプのNAND型フラッシュメモリは、SLCタイプのNAND型フラッシュメモリよりも、一般にデータの読み出しおよび書き込みが遅く、書き換え上限回数が少ない。しかしながら、MLCタイプのNAND型フラッシュメモリは、SLCタイプのNAND型フラッシュメモリよりも、ビット密度が高く、大容量化に向いている。メモリ4cは、例として1つのセルと用いて2ビットのデータを記憶する。
メモリ4a乃至4cは、上記の例に限定されない。さらに、メモリの個数も上記の例に限定されない。例えば、メモリ4d(図示せず)が設けられていてもよい。メモリ4cは、メモリ4dよりも高速にデータの書き込みおよび読み出しが可能であり、小さな容量を有し、大きな書き換え上限回数を有する。同様の関係を有するさらなるメモリが設けられていてもよい。上記の例に従えば、メモリ4dの例は、1つのセルを用いて3ビットのデータを記憶するMLCタイプのNAND型フラッシュメモリである。または、メモリ4dは、ハードディスクドライブであってもよい。
次に、本実施形態に係るメモリシステムの動作について説明する。以下の説明では、例として、記憶装置4a乃至4cが、それぞれRAM、SLCタイプNAND型フラッシュメモリ、MLCタイプNAND型フラッシュメモリであるとする。これに合わせて、記憶装置4a乃至4cが、それぞれRAM、SLCタイプNAND型フラッシュメモリ(SLC型NANDフラッシュ)、MLCタイプNAND型フラッシュメモリ(MLC型NANDフラッシュ)と称される場合がある。
メモリコントローラ3は、図2乃至図5に示されている表を用いて、RAM4a、SLC型NANDフラッシュメモリ4b、MLC型NANDフラッシュメモリ4cによるデータの記憶を管理する。メモリコントローラ3は、例えば、メモリシステム2への電源投入後に、例えば2次記憶装置からメモリコントローラ3の制御プログラムをRAM4a上に読み出す。メモリコントローラ3は、以降、この制御プログラムに従って動作する。制御プログラムは、メモリコントローラ3専用に設けられたRAMに読み出されてもよい。
電源投入後、メモリコントローラ3は、制御プログラムに従って、図2乃至図5に示されている構造の表をRAM4aにおいて作成する。これらの表は、上記のメモリコントローラ3専用RAM上に作成されてもよい。
図2は、ページテーブル(論物変換テーブル)を示している。図3は、記憶装置4a(RAM)の物理ページ管理テーブルを示している。図4は、記憶装置4b(SLC型NANDフラッシュメモリ)の物理ページ管理テーブルを示している。図5は、記憶装置4c(MLC型NANDフラッシュメモリ)の物理ページ管理テーブルを示している。
図2に示されているように、ページテーブルは、論理ページアドレスごとにエントリを有している。ページテーブルは、論理ページごとのデータの状態を示している。各エントリは、SLC型NANDフラッシュ4bまたはMLC型NANDフラッシュ4cの1ページごとに独立している。典型的には、SLC型NANDフラッシュ4bおよびMLC型NANDフラッシュ4cは同じ大きさのページを有し、その大きさは例えば4kBである。したがって、1つの物理ページの大きさ(上記の例では4kB)ごとに論理ページアドレスが割り当てられる。これに合わせて、記憶装置4a(RAM)も、NANDフラッシュ4bまたは4cの1物理ページ(例えば4kB)の大きさごとに、状態を管理され、データの読み出しまたは書き込みを要求される。
各エントリは、フラグ欄、RAMアドレス欄、NANDアドレス欄を含んでいる。フラグ欄は、対応する論理ページアドレスのデータの位置の概要を示す。フラグには、E、M、NS、NM、MS、MMが含まれ、これらのいずれかがフラグ欄に記載される。Eは、対応する論理ページアドレスのデータが、RAM4a、SLC型NANDフラッシュ4b、MLC型NANDフラッシュ4cのいずれにも格納されていないことを示す。Mは、対応する論理ページアドレスのデータが、RAM4a内に格納されていることを示す。NSは、対応する論理ページアドレスのデータが、SLC型NANDフラッシュ4b内に格納されていることを示す。NMは、対応する論理ページアドレスのデータが、MLC型NANDフラッシュ4b内に格納されていることを示す。MSは、対応する論理ページアドレスのデータが、RAM4aおよびSLC型NANDフラッシュ4bの両方において格納されていることを示す。MMは、対応する論理ページアドレスのデータが、RAM4aおよびMLC型NANDフラッシュ4bの両方において格納されていることを示す。
RAMアドレス欄には、対応するフラグがMまたはMSまたはMMの場合に、対応する論理ページアドレスのデータを格納しているRAM4aの物理ページが記述される。NANDアドレス欄には、対応するフラグがNSまたはNMまたはMSまたはMMの場合に、対応する論理ページアドレスのデータを格納しているSLC型NANDフラッシュ4bまたはMLC型NANDフラッシュ4cの物理ページが記述される。
図3に示されているように、RAM(記憶装置4a)物理ページ管理テーブルは、RAM4aの物理ページごとにエントリを有している。各エントリは、有効/無効表示欄と最終アクセス時刻欄とを有している。有効/無効表示欄には、RAM4aの対応する物理ページが有効なデータを格納しているかまたはしていないかが示される。例えば、“1”は、対応する物理ページが有効なデータを格納していることを示し、“0”は、対応する物理ページが有効なデータを格納していないことを示す。
最終アクセス時刻欄には、対応する物理ページが最後にアクセスされた時刻が書き込まれている。この時刻は、例えば、メモリシステム2への電源投入後の所定のタイミングからの経過時間を用いて記述される。また、この時刻は、厳密な値ではなく、任意の所定の単位で表現された近似値であってもよい。
図4に示されているように、SLC型NANDフラッシュ(記憶装置4b)物理ページ管理テーブルは、SLC型NANDフラッシュ4bのブロックごとにエントリを有している。各エントリは、読み出し回数欄、書き換え回数欄、最終アクセス時刻欄、各ページについての有効/無効表示欄を有している。読み出し回数欄には、対応するブロックの消去後の時点から計数して、このブロック内のいずれかの物理ページが読み出された回数が示されている。書き換え回数欄には、対応するブロックがこれまでに消去されて新しいデータに書き換えられた回数が示されている。各ページについての有効/無効表示欄は、対応するブロック内の各ページ用の表示欄を含んでおり、各ページが有効なデータを格納しているかまたはしていないかが示される。例えば、“1”は、対応する物理ページが有効なデータを格納していることを示し、“0”は、対応する物理ページがデータを格納していないことを示す。最終アクセス時刻欄には、対応するブロック内が最後に消去されて新しいデータが書き込まれた時刻が書き込まれている。この時刻は、例えば、対応するブロックの消去後またはメモリシステム2への電源投入後の所定のタイミングからの経過時間である。また、この時刻は、厳密な値ではなく、任意の所定の単位で表現された近似値であってもよい。
ここで示す実施形態の例では、最終アクセス時刻欄を、最も昔に消去および書き込みが行なわれたブロックを見つけるための情報として使用している。別の実施方法としては、最終アクセス時刻欄を用いずに、ページの消去および書き込みは必ず物理ページの順に行う方法も可能である。この方法では、ブロックが、最も昔に消去されて書き込まれたブロックから最も最近に消去されて書き込まれたブロックまで順に並んでいる。そのため、最も昔に消去されて書き込まれたブロックの番号を覚えておけば、最も昔に消去されて書き込まれたブロックを探すのは容易である。
図5に示されているように、MLC型NANDフラッシュ(記憶装置4c用)物理ページ管理テーブルは、MLC型NANDフラッシュ4cのブロックごとにエントリを有している。各エントリは、読み出し回数欄、書き換え回数欄、最終アクセス時刻欄、各ページについての有効/無効表示欄を有している。各欄に記入されるデータの特性は、SLC型NANDフラッシュ物理ページ管理テーブル(図4)と同じである。
次に、メモリシステム2(メモリコントローラ3)の動作の詳細について説明する。まず、図6を参照して、メモリコントローラ3による新しいメモリ領域の割り当てについて説明する。図6は、メモリコントローラ3による新しいメモリ領域の割り当てを示すフローチャートである。図6に示されているように、例えばユーザからメモリシステム2において新しくデータを格納するためのメモリ領域を確保する要求がプロセッサ1を介して出される。メモリコントローラ3は、このメモリの割り当て要求をプロセッサ1から受け取ると、以下の処理を行なう。
なお、以下の記述において、プロセッサ1が、ユーザがアプリケーションやオペレーティングシステムを介してプロセッサ1に要求した依頼をプログラムに従って行なう動作を、簡略化のために、プロセッサ1を自律的な動作主体として用いて記述する。同様に、メモリコントローラ3を制御するプログラムに従ってメモリコントローラ3がプロセッサ1からの要求を行なう動作を、簡略化のために、メモリコントローラ3を自律的な動作主体として用いて記述する。
メモリの割り当て要求を受ける(ステップS1)と、メモリコントローラ3は、最上層、すなわち最も書き換え限界数の少ないメモリ(RAM)4aへの割り当てを試みる。これを実行するために、まず、メモリコントローラ3は、ページテーブル内のフラグを参照する。次いで、メモリコントローラ3は、フラグから、割り当て要求を満たす大きさ分連続している、未使用ページ(有効データを格納していない論理ページ)を探す(ステップS2)。
次に、メモリコントローラ3は、RAM物理ページ管理テーブル内の有効/無効表示欄を見て、割り当て対象のデータを格納するのに足る数の連続する未使用のRAM物理ページを確保できるかを判断する(ステップS3)。
必要なRAM物理ページが確保できる場合、処理はステップS4に移行する。ステップS4において、メモリコントローラ3は、ステップS3で確保されたRAM物理ページをステップS2で見つけられた未使用論理ページへの割り当てることを決定する。
次に、メモリコントローラ3は、各テーブルを更新して、ステップS4での割り当てに伴って生じた状態を反映させる(ステップS5)。すなわち、メモリコントローラ3は、1つ目として、ページテーブル内の割り当てられたデータに対応するエントリにおいて、フラグ欄にMを書き込むとともに、RAMアドレス欄に割り当てられたRAM物理ページアドレスを書き込む。また、2つ目として、メモリコントローラ3は、RAM物理ページ管理テーブル内の割り当てられたデータを格納するエントリにおいて、有効/無効表示欄に“1”を書き込み、最終アクセス時刻欄に対応する時刻を書き込む。
ステップS3での判断が偽である場合、処理はステップS6に移行する。ステップS6から開始する一連の処理によって、メモリコントローラ3は、RAM4a内の領域を確保する。まず、ステップS6において、メモリコントローラ3は、RAM物理ページ管理テーブル内の最終アクセス時刻欄を見て、最終アクセス時刻の最も古いエントリ(RAM物理ページ)を見つける。
メモリコントローラ3は、RAM4aおよび1つ下層のメモリ(SLC型NANDフラッシュ)4bを制御して、最も古いRAM物理ページのデータをSLC型NANDフラッシュ4bの消去済みページにコピーする(ステップS7)。
メモリコントローラ3は、各テーブルを更新して、ステップS6でのコピーに伴って変化した状態を反映させる(ステップS8)。すなわち、メモリコントローラ3は、1つ目として、ページテーブル内のコピー対象のデータに対応するエントリにおいて、フラグ欄にNSを書き込み、NANDアドレス欄にコピーされたデータを格納することになったSLC型NANDフラッシュの物理ページを書き込む。また、2つ目として、メモリコントローラ3は、RAM物理ページ管理テーブル内のコピー対象のデータを格納していた物理ページに対応するエントリ内の有効/無効表示欄に“0”を書き込む。3つ目として、メモリコントローラ3は、SLC型NANDフラッシュ物理ページ管理テーブル内のコピーされたデータを格納することになったページについての有効/無効表示欄に“1”を書き込み、このページを含むブロックに対応するエントリ内の最終アクセス時刻欄に対応する時刻を書き込む。こうして、メモリコントローラ3は、割り当て対象データを格納するに足る領域をRAM4a内に確保する。
処理はステップS3に戻り、メモリコントローラ3は、必要なRAM物理ページが確保できるかを判断する。確保できれば、処理はステップS4に進み、確保できなければ、確保できるまでステップS6乃至S8が繰り返される。
ステップS6乃至S8の処理は、書き込み対象データを格納するに必要な物理ページが確保できない場合に限られず、所定の条件が満たされた場合に実行されてもよい。RAM4a内のデータをSLC型NANDフラッシュ4b内へと移動する処理が開始する条件として、例えば、RAM4aの所定の容量(例えば全容量の80%)が使用済みになったことが挙げられる。
以上に示した実施形態の例では、プロセッサ1からのメモリの割り当て要求をメモリコントローラ3が受け取ると、メモリコントローラ3がメモリ割り当ての処理を行なう。別の実施方法としては、メモリコントローラ3がプロセッサ1からのメモリ書き込み要求を受け取った時に、図2のページテーブル(論物変換テーブル)を参照して、書き込み対象の論理ページのフラグが未割り当てを示す“E”であれば、そのページを対象にして図6の手順でメモリを割り当て、その後、そのページに対して後述する書き込み処理を行うようにしても良い。
メモリコントローラ3は、また、所定の条件が満たされると、SLC型NANDフラッシュ4b内のデータに対してガベージコレクションを行って、集められたデータを下層のメモリ(MLC型NANDフラッシュ)4cに移動する。このことについて、図7を参照して説明する。図7は、メモリコントローラ3によるSLC型NANDフラッシュ4bのガベージコレクションを示すフローチャートである。SLC型NANフラッシュ4b内のデータをMLC型NANDフラッシュ4c内へと移動する処理が開始する条件として、例えば、SLC型NANDフラッシュ4bの所定の容量(例えば全容量の80%)が使用済みになったことが挙げられる。または、図6のステップS7において、RAM4aからコピーされるデータを格納するSLC型NANDフラッシュ4bの消去済みページが不足している際に、図7の処理が実行される。
図7に示されているように、メモリコントローラ3は、SLC型NANDフラッシュ物理ページ管理テーブル内の最終アクセス時刻欄を見る。そして、メモリコントローラ3は、最も古いエントリ(SLC型NANDフラッシュ4b内のブロック)から古い順に1つまたは複数のブロック内の有効/無効表示欄を見て、有効データを格納しているページを見つける。次いで、メモリコントローラ3は、SLC型NANDフラッシュ4bおよびMLC型NANDフラッシュ4cを制御して、この見つけられた有効ページ内のデータを、MLC型NANDフラッシュメモリ4bの消去済みページにコピーする(ステップS11)。このコピーされるデータは、例えば、MLC型NANDフラッシュの消去済みブロックの最低位の物理アドレスを有するページから順に詰めて書き込まれる。
次に、メモリコントローラ3は、各テーブルを更新して、ステップS11でのコピーに伴って変化した状態を反映させる(ステップS12)。すなわち、メモリコントローラ3は、1つ目として、ページテーブル内のコピー対象のデータに対応するエントリにおいて、フラグ欄にNMを書き込み、NANDアドレス欄にコピーされたデータを格納することになったMLC型NANDフラッシュの物理ページを書き込む。また、2つ目として、メモリコントローラ3は、SLC型NANDフラッシュ物理ページ管理テーブル内のコピー対象のデータを格納していた物理ページに対応するエントリ内の有効/無効表示欄に“0”を書き込む。3つ目として、メモリコントローラ3は、MLC型NANDフラッシュ物理ページ管理テーブル内のコピーされたデータを格納することになったページについての有効/無効表示欄に“1”を書き込み、このページを含むブロックに対応するエントリ内の最終アクセス時刻欄に対応する時刻を書き込む。
次に、メモリコントローラ3は、MLC型NANDフラッシュ4c内へのコピーの結果として生じた、無効データのみを含むSLC型NANDフラッシュ4bのブロックのデータを消去する(ステップS13)。これにより、新しい消去済みブロックが作成される。
メモリコントローラ3は、また、所定の条件が満たされると、MLC型NANDフラッシュ4c内のデータに対してガベージコレクションを行う。このことについて、図8を参照して説明する。図8は、メモリコントローラ3によるMLC型NANDフラッシュ4c4cのガベージコレクションを示すフローチャートである。MLC型NANDフラッシュ4cのガベージコレクションが開始する条件として、例えば、MLC型NANDフラッシュの所定の容量(例えば全容量の80%)が使用済みになったことが挙げられる。
図8に示されているように、メモリコントローラ3は、MLC型NANDフラッシュ物理ページ管理テーブル内の最終アクセス時刻欄を見る。そして、メモリコントローラ3は、最も古いエントリ(MLC型NANDフラッシュ物理ブロック)内の有効/無効表示欄を見て、有効データを格納しているページを見つける(ステップS21)。次いで、メモリコントローラ3は、MLC型NANDフラッシュ4cを制御して、この見つけられた有効ページ内のデータを、MLC型NANDフラッシュ内の消去済みブロック内の最低位物理アドレスのページから順に詰めて書き込む(ステップS22)。
次に、メモリコントローラ3は、各テーブルを更新して、ステップS22でのコピーに伴って変化した状態を反映させる(ステップS23)。すなわち、メモリコントローラ3は、1つ目として、ページテーブル内のコピー対象のデータに対応するエントリにおいて、NANDアドレス欄にコピーされたデータを格納することになったMLC型NANDフラッシュ4cの物理ページを書き込む。また、2つ目として、メモリコントローラ3は、MLC型NANDフラッシュ物理ページ管理テーブル内のコピー対象のデータを格納していた物理ページに対応するエントリ内の有効/無効表示欄に“0”を書き込む。3つ目として、メモリコントローラ3は、MLC型NANDフラッシュ物理ページ管理テーブル内のコピーされたデータを格納することになったページについての有効/無効表示欄に“1”を書き込み、このページを含むブロックに対応するエントリ内の最終アクセス時刻欄に対応する時刻を書き込む。
次に、メモリコントローラ3は、コピーの結果として生じた、無効データのみを含むMLC型NANDフラッシュ4cのブロックのデータを消去する(ステップS24)。これにより、新しい消去済みブロックが作成される。
メモリ4cより下層のメモリが設けられている場合、MLC型NANDフラッシュ4cから集められた有効ページは、この下層メモリにコピーされる。この処理については、SLC型NANDフラッシュ4bから集められたデータをMLC型NANDフラッシュへコピーする処理(図7)を全く同様である。以下、全く同様にして、あるメモリ内のデータが、ガベージコレクションによって、このメモリより下層のメモリにコピーされ、各テーブルが更新される。
次に、プロセッサ1からのメモリシステム2内のデータの更新要求(書き込み要求)に対する処理について図9を参照して説明する。図9は、メモリシステム2内のデータの更新要求に対する、メモリコントローラ3による処理のフローチャートである。図9に示されているように、プロセッサ1からデータ更新要求を受け取ると、メモリコントローラ3は、更新対象のデータがRAM4a内に格納されているかを調べる。すなわち、メモリコントローラ3は、ページテーブル内の更新対象データに対応するエントリ内のフラグを確認する(ステップS31)。
ステップS31の判断の結果、フラグがMである場合、処理はステップS32に移行する。ステップS32において、メモリコントローラ3は、RAM4aを制御して更新要求に従ってデータを更新し、また、RAM物理ページ管理テーブル内の更新対象のデータに対するエントリ内の最終アクセス時刻欄に対応する時刻を更新する。
ステップS31の判断の結果、フラグがMSまたはMNである場合については、図11を参照して後述する。
ステップS31の判断の結果、フラグがNSまたはNMである場合、処理はステップS33に移行する。メモリコントローラ3は、ステップS33から開始する一連の処理によって、NANDフラッシュ4bまたは4c内のデータをRAM4a上にコピーする。すなわち、メモリコントローラ3は、ページテーブル内の更新対象のデータに対応するエントリ内のNANDアドレス欄を見て、この更新対象のデータを格納しているNANDフラッシュ4bまたは4cの物理ページを知得する(ステップS33)。
メモリコントローラ3は、RAM4aとNANDフラッシュ4bまたは4cとを制御して、更新対象のデータをRAM4aの未使用ページにコピーする(ステップS34)。次に、メモリコントローラ3は、RAM4aを制御して更新要求に従ってデータを更新し、また、RAM物理ページ管理テーブル内の更新対象のデータに対するエントリ内の最終アクセス時刻欄に対応する時刻を書き込む(ステップS35)。
メモリコントローラ3は、各テーブルを更新して、ステップS34でのコピーに伴って生じた状態を反映させる(ステップS36)。すなわち、メモリコントローラ3は、1つ目として、ページテーブル内の更新対象のデータに対応するエントリにおいて、フラグ欄の記述をNSまたはNMからMへと更新するとともに、RAMアドレス欄にコピーされたデータを格納することになったRAM物理ページを書き込む。また、2つ目として、メモリコントローラ3は、RAM物理ページ管理テーブル内のコピーされたデータを格納することになった物理ページに対応するエントリにおいて、有効/無効表示欄に“1”を書き込むとともに、最終アクセス時刻欄に対応する時刻を書き込む。また、3つ目として、メモリコントローラ3は、SLC型またはMLC型NANDフラッシュ物理ページ管理テーブル内の更新対象のデータを格納していたページについての有効/無効表示欄に“0”を書き込む。NANDフラッシュ4bまたは4c内の無効データは、ガベージコレクション(後述)によって有効データを含まないブロックの消去によって消去される。
次に、プロセッサ1からのメモリシステム2内のデータの読み出し要求に対する処理について図10を参照して説明する。図10は、メモリシステム2内のデータの読み出し要求に対する、メモリコントローラ3による処理のフローチャートである。図10に示されているように、プロセッサ1からのデータ読み出し要求を受け取ると、メモリコントローラ3は、読み出し対象のデータがRAM4a内に格納されているかを調べる。すなわち、メモリコントローラ3は、ページテーブル内の読み出し対象データに対応するエントリ内のフラグがMまたはMSまたはMNであるか否かを判断する(ステップS41)。
ステップS41の判断が真である場合、処理はステップS42に移行する。ステップS42において、メモリコントローラ3は、RAM4aを制御して、読み出し対象データをプロセッサ1へと読み出し、また、RAM物理ページ管理テーブル内の読み出し対象のデータに対するエントリ内の最終アクセス時刻欄に対応する時刻を更新する。
ステップS42の判断が偽である場合、処理はステップS43に移行する。メモリコントローラ3は、更新要求の場合(図9)と同様のステップS43以降の処理によって、NANDフラッシュ4bまたは4c内のデータをRAM4a上にコピーする。すなわち、メモリコントローラ3は、ページテーブル内の更新対象の論理ページアドレスに対応するエントリ内のNANDアドレス欄を見て、この更新対象のデータを格納しているNANDフラッシュ4bまたは4cの物理ページを知得する(ステップS43)。
メモリコントローラ3は、RAM4aとNANDフラッシュ4bまたは4cとを制御して、読み出し対象のデータをRAM4aの未使用ページにコピーする(ステップS44)。次に、メモリコントローラ3は、RAM4aを制御して、読み出し対象データをプロセッサ1へと読み出し、また、RAM物理ページ管理テーブル内の読み出し対象のデータに対するエントリ内の最終アクセス時刻欄に対応する時刻を書き込む(ステップS45)。
メモリコントローラ3は、各テーブルを更新して、ステップS44でのコピーに伴って生じた状態を反映させる(ステップS46)。すなわち、メモリコントローラ3は、1つ目として、ページテーブル内の更新対象のデータに対応するエントリにおいて、フラグ欄の記述をNSからMSへまたはNMからMMへと更新するとともに、RAMアドレス欄にコピーされたデータを格納することになったRAM物理ページを書き込む。また、2つ目として、メモリコントローラ3は、RAM物理ページ管理テーブル内のコピーされたデータを格納することになった物理ページに対応するエントリにおいて、有効/無効表示欄に“1”を書き込み、最終アクセス時刻欄に対応する時刻を書き込む。
ステップS46に続いてRAM4aとNANDフラッシュ4bまたは4cとの両方に有効に存在しているデータに対する更新要求が来た場合、図9のステップS31においてフラグがMSまたはMMであると判断された場合に相当する。このような更新要求に対する処理について図11を参照して説明する。図11は、メモリシステム2内のデータへの更新要求に対する、メモリコントローラ3による処理の一部のフローチャートである。図11に示されているように、ページテーブル内の更新対象データに対応するエントリ内のフラグがMS/MMである場合、処理はステップS51に移行する。
メモリコントローラ3は、ページテーブル内の更新対象のデータに対応するエントリ内のNANDアドレス欄を見て、この更新対象のデータを格納しているRAM物理ページを知得する(ステップS51)。
メモリコントローラ3は、メモリコントローラ3は、RAM4aを制御して更新要求に従ってデータを更新する(ステップS52)。次に、メモリコントローラ3は、各テーブルを更新して、ステップS52での更新に伴って生じた状態を反映させる(ステップS53)。すなわち、メモリコントローラ3は、1つ目として、ページテーブル内の更新対象のデータに対応するエントリにおいて、フラグ欄の記述をMSまたはMMからMへと更新する。NANDフラッシュ4bまたは4cに格納されている更新対象データは、もはや無効となったからである。また、2つ目として、メモリコントローラ3は、SLC型またはMLC型NANDフラッシュ物理ページ管理テーブル内の更新対象のデータを格納していたページについての有効/無効表示欄に“0”を書き込む。また、3つ目として、メモリコントローラ3は、RAM物理ページ管理テーブル内の更新対象のデータに対するエントリ内の最終アクセス時刻欄に対応する時刻を更新する。
図1の構成では、メモリコントローラ3がプロセッサ1と独立して設けられている。しかしながら、本実施形態はこの構成に限られない。例えば、図12に示されているように、プロセッサ1が、メモリコントローラ3の機能を実現する制御プラグラムに従って、メモリコントローラ3の機能を担ってもよい。この例の場合、RAM4aは、プロセッサ1にバス6によって直接接続される。NANDフラッシュ4bはNANDフラッシュ4bを制御するNANDコントローラを介してプロセッサ1と接続され、NANDフラッシュ4cはNANDフラッシュ4cを制御するNANDコントローラを介してプロセッサ1と接続される。
以上述べたように、本実施形態に係るメモリコントローラは、複数のメモリを階層を用いて一元管理する。書き込み要求に対して、メモリコントローラは、まず、最も書き換え上限回数の多い最上層のメモリでの書き込み対象データの格納を試み、また、アクセスされていない時間が長いものから順にある階層のメモリから1つ下層のメモリにデータを適宜移動する。そして、最上層以外のメモリ内のデータの読み出しまたは更新要求に対して、メモリコントローラは、読み出しまたは更新対象データを最上層のメモリにコピーして処理を行なう。このような格納位置の管理によって、アクセスされていない時間が短いデータは書き換え上限回数の多いメモリに留まり、アクセスされていない時間が長いデータは書き換え上限回数がより少ないメモリへと移動される。このため、本実施形態のメモリコントローラによって管理される複数のメモリの一部のみの劣化が進むことが回避される。
例えば、データの性質に応じてデータを記憶する記憶装置が選択されることが考えられるが、データの性質を正確に特定することは多くの処理を要し、必ずしも常に正確に特定されるとは限らない。また、データが構成するファイルの識別子を用いることも考えられるが、ある識別子のデータが常に同じ使い方をされるとは限らず、また、識別子を持たないファイルも存在する。これに対して、本実施形態よれば、アクセスされていない時間に従ってデータが移動されるので、このような問題を克服できる。
また、データの移動は、データのアクセスされていない時間という管理が容易な基準により自動的に決定される。このため、本実施形態のメモリコントローラを含むメモリシステムのユーザが移動の決定に必要な情報の入力を求められることや、データの属性を用いる場合と異なって移動の判断が不能に陥る状態が生じたりすることはない。
その他、本発明は、上記各実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で、種々に変形することが可能である。さらに、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、上記各実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
1…プロセッサ、2…メモリシステム、3…メモリコントローラ、4a…メモリ(RAM)、4b…メモリ(SLC型NANDフラッシュメモリ)、4c…メモリ(MLC型NANDフラッシュメモリ)、6…バス。

Claims (5)

  1. ランダムアクセスメモリと、前記ランダムアクセスメモリよりも少ない書き換え上限回数を有する第1記憶装置と、情報処理装置と接続される記憶装置管理装置であって、
    前記ランダムアクセスメモリが、前記情報処理装置からの書き込み要求対象である書き込みデータを格納するのに足る空き領域を有している場合、前記書き込みデータを前記ランダムアクセスメモリにおいて格納し、
    前記ランダムアクセスメモリ内のデータを、最後にアクセスされてからの時間が長いものから順に前記第1記憶装置内にコピーし、前記ランダムアクセスメモリ内の前記コピーされたデータを格納していた領域を開放し、
    前記情報処理装置からの読み出し要求対象である読み出しデータが前記ランダムアクセスメモリに格納されている場合、前記読み出しデータを前記ランダムアクセスメモリから前記情報処理装置に読み出し、
    前記読み出しデータが前記第1記憶装置に格納されている場合、前記読み出しデータを前記ランダムアクセスメモリにコピーし、前記読み出しデータを前記ランダムアクセスメモリから前記情報処理装置に読み出す、
    ことを特徴とする記憶装置管理装置。
  2. 前記第1記憶装置よりも少ない書き換え上限回数を有する第2記憶装置と接続され、
    前記第1記憶装置内の有効データを、最後にアクセスされてからの時間が長いものから順に前記第2記憶装置内にコピーし、前記第1記憶装置内の前記コピーされたデータを格納していた領域を開放し、
    前記読み出しデータが前記第2記憶装置に格納されている場合、前記読み出しデータを前記ランダムアクセスメモリにコピーし、前記読み出しデータを前記ランダムアクセスメモリから前記情報処理装置に読み出す、
    ことを特徴とする請求項1に記載の記憶装置管理装置。
  3. 前記第1記憶装置が、1メモリセルで1ビットを記憶するNAND型フラッシュメモリであり、
    前記第2記憶装置が、1メモリセルで2ビット以上を記憶するNAND型フラッシュメモリである、
    請求項2の記憶管理装置。
  4. ランダムアクセスメモリおよび前記ランダムアクセスメモリよりも少ない書き換え上限回数を有する第1記憶装置の管理方法であって、
    前記ランダムアクセスメモリが前記情報処理装置からの書き込み要求対象である書き込みデータを格納するのに足る空き領域を有している場合、前記書き込みデータを前記ランダムアクセスメモリにおいて格納し、
    前記ランダムアクセスメモリ内のデータを、最後にアクセスされてからの時間が長いものから順に前記第1記憶装置内にコピーし、前記ランダムアクセスメモリ内の前記コピーされたデータを格納していた領域を開放し、
    前記情報処理装置からの読み出し要求対象である読み出しデータが前記ランダムアクセスメモリに格納されている場合、前記読み出しデータを前記ランダムアクセスメモリから前記情報処理装置に読み出し、
    前記読み出しデータが前記第1記憶装置に格納されている場合、前記読み出しデータを前記ランダムアクセスメモリにコピーし、前記読み出しデータを前記ランダムアクセスメモリから前記情報処理装置に読み出す、
    ことを具備することを特徴とする記憶装置の管理方法。
  5. 前記第1記憶装置内の有効データを前記第1記憶装置よりも少ない書き換え上限回数を有する第2記憶装置内にコピーし、前記第1記憶装置内の前記コピーされたデータを格納していた領域を開放し、
    前記読み出しデータが前記第2記憶装置に格納されている場合、前記読み出しデータを前記ランダムアクセスメモリにコピーし、前記読み出しデータを前記ランダムアクセスメモリから前記情報処理装置に読み出す、
    ことをさらに具備することを特徴とする請求項4に記載の記憶装置の管理方法。
JP2010005260A 2010-01-13 2010-01-13 記憶装置管理装置および記憶装置の管理方法 Pending JP2011145838A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2010005260A JP2011145838A (ja) 2010-01-13 2010-01-13 記憶装置管理装置および記憶装置の管理方法
CN201080057433.0A CN102667739B (zh) 2010-01-13 2010-09-15 存储装置管理装置及用于管理存储装置的方法
PCT/JP2010/066465 WO2011086732A1 (en) 2010-01-13 2010-09-15 Storage device management device and method for managing storage device
US13/491,824 US9367451B2 (en) 2010-01-13 2012-06-08 Storage device management device and method for managing storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010005260A JP2011145838A (ja) 2010-01-13 2010-01-13 記憶装置管理装置および記憶装置の管理方法

Publications (1)

Publication Number Publication Date
JP2011145838A true JP2011145838A (ja) 2011-07-28

Family

ID=44304027

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010005260A Pending JP2011145838A (ja) 2010-01-13 2010-01-13 記憶装置管理装置および記憶装置の管理方法

Country Status (4)

Country Link
US (1) US9367451B2 (ja)
JP (1) JP2011145838A (ja)
CN (1) CN102667739B (ja)
WO (1) WO2011086732A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015111453A (ja) * 2015-02-10 2015-06-18 株式会社日立製作所 フラッシュメモリモジュール
JP2020144882A (ja) * 2015-03-11 2020-09-10 キオクシア株式会社 ストレージシステムおよび制御方法

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012033047A (ja) 2010-07-30 2012-02-16 Toshiba Corp 情報処理装置、メモリ管理装置、メモリ管理方法、及びプログラム
JP2012033001A (ja) 2010-07-30 2012-02-16 Toshiba Corp 情報処理装置および情報処理方法
KR102147359B1 (ko) * 2012-06-29 2020-08-24 삼성전자 주식회사 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치
CN103116549B (zh) * 2013-01-04 2016-03-16 张亚丽 基于最大可擦除次数的闪存存储方法
TWI505090B (zh) * 2013-03-12 2015-10-21 Macronix Int Co Ltd 差異邏輯至實體方法
GB2516435A (en) * 2013-04-05 2015-01-28 Continental Automotive Systems Embedded memory management scheme for real-time applications
CN104346292B (zh) * 2013-08-05 2017-10-24 慧荣科技股份有限公司 用来管理一记忆装置的方法、记忆装置与控制器
US20150261444A1 (en) * 2014-03-12 2015-09-17 Kabushiki Kaisha Toshiba Memory system and information processing device
CN105320621A (zh) * 2014-08-04 2016-02-10 株式会社东芝 存储器系统以及信息处理装置
TWI578320B (zh) * 2014-11-25 2017-04-11 旺宏電子股份有限公司 記憶體的操作方法及應用其之記憶體裝置
SG11201806099WA (en) 2016-02-19 2018-08-30 Huawei Tech Co Ltd Method and apparatus for accessing flash memory device
CN107590144A (zh) * 2016-07-07 2018-01-16 中兴通讯股份有限公司 一种文件存储方法和终端
JP2019057172A (ja) * 2017-09-21 2019-04-11 東芝メモリ株式会社 メモリシステムおよび制御方法
US10664405B2 (en) 2017-11-03 2020-05-26 Google Llc In-memory distributed cache
TWI653538B (zh) * 2017-11-13 2019-03-11 慧榮科技股份有限公司 資料儲存裝置與記憶體裝置之資料處理方法
CN108664578B (zh) * 2018-05-03 2020-10-20 中北大学 一种文件循环存储方法及系统
US10684916B2 (en) * 2018-08-27 2020-06-16 International Business Machines Corporation Data set allocation technique to preserve deleted data sets
TWI688955B (zh) * 2019-03-20 2020-03-21 點序科技股份有限公司 記憶體裝置以及記憶體的存取方法
US11199983B2 (en) 2019-08-12 2021-12-14 Western Digital Technologies, Inc. Apparatus for obsolete mapping counting in NAND-based storage devices
CN112130789B (zh) * 2020-08-06 2024-05-10 许继集团有限公司 片内RAM空间不足转片内flash存储的方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6115247A (ja) * 1984-06-29 1986-01-23 Nec Corp デ−タ処理装置
JPH01162956A (ja) * 1987-12-18 1989-06-27 Nec Ic Microcomput Syst Ltd 順序記憶回路
JP2004348342A (ja) * 2003-05-21 2004-12-09 Toshiba Corp Icカードとicカードの処理方法
JP2006252535A (ja) * 2005-02-09 2006-09-21 Hitachi Ulsi Systems Co Ltd 記憶装置
JP2007242163A (ja) * 2006-03-09 2007-09-20 Toshiba Corp 半導体集積回路装置のデータ記録方式
JP2008546053A (ja) * 2005-05-16 2008-12-18 フリースケール セミコンダクター インコーポレイテッド 磁気抵抗ランダム・アクセス・メモリ(mram)を用いた不揮発性メモリ・システム
JP2008310793A (ja) * 2007-05-14 2008-12-25 Buffalo Inc 記憶装置
WO2009084724A1 (en) * 2007-12-28 2009-07-09 Kabushiki Kaisha Toshiba Semiconductor storage device

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212602B1 (en) * 1997-12-17 2001-04-03 Sun Microsystems, Inc. Cache tag caching
US6321300B1 (en) * 1999-05-14 2001-11-20 Rise Technology Company Apparatus and method for dynamically reconfigurable timed flushing of a queue of coalescing write buffers
JP3756708B2 (ja) * 1999-09-30 2006-03-15 株式会社東芝 情報処理端末装置およびそのファイル管理方法
GB0022131D0 (en) * 2000-09-09 2000-10-25 Ibm Data sorting in information storage systems
US6715040B2 (en) * 2001-01-05 2004-03-30 Nec Electronics, Inc. Performance improvement of a write instruction of a non-inclusive hierarchical cache memory unit
CN1540523A (zh) * 2003-10-30 2004-10-27 中兴通讯股份有限公司 单任务快速缓冲读写方法
US7415577B2 (en) * 2004-03-10 2008-08-19 Intel Corporation Method and apparatus to write back data
US8161226B2 (en) * 2005-12-27 2012-04-17 Intel Corporation Methods and apparatus to share a thread to reclaim memory space in a non-volatile memory file system
JP4897524B2 (ja) * 2007-03-15 2012-03-14 株式会社日立製作所 ストレージシステム及びストレージシステムのライト性能低下防止方法
US8135900B2 (en) 2007-03-28 2012-03-13 Kabushiki Kaisha Toshiba Integrated memory management and memory management method
JP5032172B2 (ja) * 2007-03-28 2012-09-26 株式会社東芝 統合メモリ管理装置及び方法並びにデータ処理システム
US7979627B2 (en) * 2007-05-14 2011-07-12 Buffalo Inc. Storage device with binary and multivalued memory
CN100470506C (zh) * 2007-06-08 2009-03-18 马彩艳 基于sector访问的flash存储器的存储管理方法
JP4356782B2 (ja) * 2007-09-12 2009-11-04 ソニー株式会社 メモリ装置、メモリ制御方法、およびプログラム
JP5224800B2 (ja) 2007-12-21 2013-07-03 株式会社東芝 情報処理装置およびデータ復旧方法
US20100017556A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporationm U.S.A. Non-volatile memory storage system with two-stage controller architecture
TWI385516B (zh) * 2008-08-12 2013-02-11 Phison Electronics Corp 快閃記憶體儲存系統及其資料寫入方法
KR101038167B1 (ko) 2008-09-09 2011-05-31 가부시끼가이샤 도시바 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법
JP2012033047A (ja) 2010-07-30 2012-02-16 Toshiba Corp 情報処理装置、メモリ管理装置、メモリ管理方法、及びプログラム
JP2012033001A (ja) 2010-07-30 2012-02-16 Toshiba Corp 情報処理装置および情報処理方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6115247A (ja) * 1984-06-29 1986-01-23 Nec Corp デ−タ処理装置
JPH01162956A (ja) * 1987-12-18 1989-06-27 Nec Ic Microcomput Syst Ltd 順序記憶回路
JP2004348342A (ja) * 2003-05-21 2004-12-09 Toshiba Corp Icカードとicカードの処理方法
JP2006252535A (ja) * 2005-02-09 2006-09-21 Hitachi Ulsi Systems Co Ltd 記憶装置
JP2008546053A (ja) * 2005-05-16 2008-12-18 フリースケール セミコンダクター インコーポレイテッド 磁気抵抗ランダム・アクセス・メモリ(mram)を用いた不揮発性メモリ・システム
JP2007242163A (ja) * 2006-03-09 2007-09-20 Toshiba Corp 半導体集積回路装置のデータ記録方式
JP2008310793A (ja) * 2007-05-14 2008-12-25 Buffalo Inc 記憶装置
WO2009084724A1 (en) * 2007-12-28 2009-07-09 Kabushiki Kaisha Toshiba Semiconductor storage device
JP2010250845A (ja) * 2007-12-28 2010-11-04 Toshiba Corp 半導体記憶装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015111453A (ja) * 2015-02-10 2015-06-18 株式会社日立製作所 フラッシュメモリモジュール
JP2020144882A (ja) * 2015-03-11 2020-09-10 キオクシア株式会社 ストレージシステムおよび制御方法

Also Published As

Publication number Publication date
CN102667739A (zh) 2012-09-12
CN102667739B (zh) 2015-07-01
WO2011086732A1 (en) 2011-07-21
US9367451B2 (en) 2016-06-14
US20120246397A1 (en) 2012-09-27

Similar Documents

Publication Publication Date Title
JP2011145838A (ja) 記憶装置管理装置および記憶装置の管理方法
US10761780B2 (en) Memory system
JP7366795B2 (ja) メモリシステムおよび制御方法
US9652386B2 (en) Management of memory array with magnetic random access memory (MRAM)
US8386698B2 (en) Data accessing method for flash memory and storage system and controller using the same
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
US10740013B2 (en) Non-volatile data-storage device with spare block pools using a block clearing method
JP5480913B2 (ja) 記憶装置、およびメモリコントローラ
JP2018160195A (ja) メモリシステムおよび不揮発性メモリの制御方法
KR20120030137A (ko) 영구 가비지 컬렉션을 갖는 메모리 시스템
US20170228191A1 (en) Systems and methods for suppressing latency in non-volatile solid state devices
US20140328127A1 (en) Method of Managing Non-Volatile Memory and Non-Volatile Storage Device Using the Same
JP2013174975A (ja) メモリシステムとそのデータ書き込み方法
JP2011070365A (ja) メモリシステム
JP2018160189A (ja) メモリシステム
KR101190001B1 (ko) 비휘발성 메모리를 포함한 메인 메모리상에서 파일시스템의 접근을 지원하기 위한 가상 메모리 시스템
JP4829202B2 (ja) 記憶装置及びメモリ制御方法
US11556249B2 (en) Delaying random data relocation for reducing write amplification in storage devices
JP2020123039A (ja) メモリシステムおよび制御方法
JP2008197981A (ja) 半導体記憶装置
KR20150139383A (ko) 반도체 장치
JP4558054B2 (ja) メモリシステム
TWI724550B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
US11188238B2 (en) Information processing apparatus, memory control method, and computer program product
JP2005250831A (ja) 半導体メモリ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120305

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130507

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131008