JP4910064B2 - 記憶制御装置、記憶装置、及びデータ移動制御方法 - Google Patents

記憶制御装置、記憶装置、及びデータ移動制御方法 Download PDF

Info

Publication number
JP4910064B2
JP4910064B2 JP2010194040A JP2010194040A JP4910064B2 JP 4910064 B2 JP4910064 B2 JP 4910064B2 JP 2010194040 A JP2010194040 A JP 2010194040A JP 2010194040 A JP2010194040 A JP 2010194040A JP 4910064 B2 JP4910064 B2 JP 4910064B2
Authority
JP
Japan
Prior art keywords
block
wear leveling
compaction
identification information
unit
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.)
Active
Application number
JP2010194040A
Other languages
English (en)
Other versions
JP2012053553A (ja
Inventor
容子 増尾
博暢 宮本
渉 岡本
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 JP2010194040A priority Critical patent/JP4910064B2/ja
Priority to US13/154,203 priority patent/US8583859B2/en
Publication of JP2012053553A publication Critical patent/JP2012053553A/ja
Application granted granted Critical
Publication of JP4910064B2 publication Critical patent/JP4910064B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

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)

Description

本発明の実施形態は、記憶制御装置、記憶装置、及びデータ移動制御方法に関する。
従来から、端末装置の記憶装置として、様々な記憶装置が提案されている。このような記憶装置の種類として、例えばフラッシュメモリが存在する。このフラッシュメモリの一種類であるNAND型フラッシュメモリが近年利用される傾向にある。
NAND型フラッシュメモリは、書き込みを行う前に消去処理が必要な不揮発性半導体メモリであり、その寿命は消去回数および消去時間間隔に依存している。このNAND型フラッシュメモリの延命手段として、各ブロックが均等に利用されるようするのが好ましい。
このため、近年、データ消去の最小単位である各ブロックの消去時期および消去回数を計測し、使用中状態かつ消去時期が古いブロックのデータを、空き状態かつ使用中ブロックより消去回数の一定数以上多いブロックに移動することで、ブロックの疲弊度を平準化するウェアレベリング処理が提案されている。
一方、書き込みが論理セクタ単位であり、消去が複数の論理セクタで構成されるブロック単位となる、NAND型フラッシュメモリでは、書き換えが行われていくと、ブロックは、無効なデータが格納された論理セクタと、有効なデータが格納された論理セクタと、で構成されることになり、いわゆる穴あき状態となる。そこで、記憶領域を有効活用するため、疎密度になったブロック内の有効な最新データを集めて、別ブロックに書き直す、コンパクションと呼ばれる処理が行われている。
特開2002−32256号公報
しかしながら、従来技術においては、ウェアレベリング処理や、コンパクション処理は、同じデータの移動処理であるにもかかわらず、それぞれ独立して行われていたため、増長な構成となり、開発などの負担が大きかった。
本発明は、上記に鑑みてなされたものであって、開発の負担などを軽減した記憶制御装置、記憶装置、及びデータ移動制御方法を提供することを目的とする。
実施形態の記憶制御装置は、状態記憶手段と、判定手段と、ウェアレベリングブロック保持手段と、ブロック移動制御手段と、コンパクションブロック保持手段と、抑止手段と、を備える。状態記憶手段は、データ消去の単位となるブロックを複数個含んでいる記憶手段内で、データが格納されたブロック毎に、前回消去された時期を示す消去時期情報及び当該ブロックの消去された回数を示す消去回数情報のいずれか1つ以上を含むブロック状態情報を記憶する。判定手段は、ブロック状態情報に基づいて、ウェアレベリングが必要なブロックがあるか否かを判定する。ウェアレベリングブロック保持手段は、判定部でウェアレベリングが必要と判定されたブロックを識別するブロック識別情報を保持する。ブロック移動制御手段は、複数のブロックに格納されたデータを移動させて、複数のブロック以外のブロックにまとめるコンパクションを行うと共に、ウェアレベリングブロック保持手段がブロック識別情報を保持している場合に当該ブロック識別情報で識別されるブロックに格納されたデータを移動させる。ブロック移動制御手段は、さらに、ウェアレベリングブロック保持手段により保持されたブロック識別情報で識別されるブロックに格納されたデータを移動させるほか、さらに、コンパクションとして、コンパクションブロック保持手段により保持されるブロック識別情報で識別されるブロックに格納されたデータを移動させて、前記複数のブロック以外のブロックにまとめる。
図1は、実施形態にかかる情報処理装置の構成を示すブロック図である。 図2は、記憶装置内の各構成を示したブロック図である。 図3は、アクティブブロック管理部のテーブル構造の一例を示した図である。 図4は、フリーブロック管理部内のテーブル群の内部構成の例を示した図である。 図5は、コンパクション用ブロックID保持部のテーブル構造の例を示した図である。 図6は、ウェアレベリング用ブロックID保持部のテーブル構造の例を示した図である。 図7は、本実施形態にかかるNANDコントローラにおける、ウェアレベリングのための予約登録までの処理の手順を示すフローチャートである。 図8は、本実施形態にかかるフリーブロック管理部における、フリーブロックの供給手順を示すフローチャートである。 図9は、本実施形態にかかる対象ブロック移動制御部における、データの移動制御の手順を示すフローチャートである。 図10は、変形例にかかるフリーブロック管理部内のテーブル群の内部構成の例を示した図である。
(実施形態)
後述する実施形態は、NAND型フラッシュメモリを、記憶装置として備えた情報処理装置を例について説明する。後述する実施形態における各機能ブロックは、ハードウェアおよびソフトウェアのいずれか、またはこれらの組み合わせで実現できるものとする。
図1は、実施形態にかかる情報処理装置100の構成を示すブロック図である。図1に示すように、情報処理装置100は、記憶装置101と、CPU102と、メインメモリ103と、メモリコントローラ104と、で構成されている。そして、記憶装置101と、CPU102と、メインメモリ103と、メモリコントローラ104と、の間は、アドレスを受け渡しするためのアドレスバス105と、データを受け渡しするためのデータバス106と、により接続されている。
CPU102は、情報処理装置100全体の制御を行う。具体的には、記憶装置101から読み出したプログラムを、メモリコントローラ104を介してメインメモリ103上に展開し、展開されたプログラムに従って、情報処理装置100全体の制御を行う。
メモリコントローラ104は、メインメモリ103を制御するコントローラとする。
メインメモリ103は、DRAM等が用いられ、CPU102の作業領域やプログラムの展開領域として用いられる。
記憶装置101は、NAND型フラッシュメモリ110と、NANDコントローラ111と、で構成されている。当該記憶装置101の例としては、NAND型フラッシュメモリ110と、NAND型フラッシュメモリ110に対するデータアクセスを実行するSoC(System−on−Chip)と、を備えたSSD(Solid State Drive)がある。そして、本実施形態では、SSDのSoCの例として以下に示すNANDコントローラ111を備えている。
NANDコントローラ111は、不揮発性半導体メモリの一種であるNAND型フラッシュメモリ110を制御する。
NAND型フラッシュメモリ110は、NANDコントローラ111を介して、CPU102からの書き込み要求または読み込み要求に従って、データの読み書きが行われる。
NAND型フラッシュメモリ110は、論理セクタを複数含んだブロックを複数個含んだ構成とする。論理セクタは、データの読み書きの単位とする。ブロックは、データの消去の単位とする。
図2は、記憶装置101内の各構成を示したブロック図である。図2に示すように、NANDコントローラ111は、NANDインタフェース201と、制御部202と、ウェアレベリング判定部203と、ウェアレベリング対象ブロック決定部204と、移動先ブロック予約登録部205と、移動元ブロック予約登録部206と、ブロック管理部207と、コンパクション部208と、で構成される。
そして、本実施形態にかかるNANDコントローラ111は、CPU102からの要求に従ったデータの読み書き以外に、NAND型フラッシュメモリ110に対するコンパクション及びウェアレベリングなどの制御を行う。
コンパクションとは、1ブロックが、有効な論理セクタと無効な論理セクタとによる穴あき状態となった場合、密度が疎になったブロック内で有効な論理セクタに格納されたデータを集めて、別ブロックに書き直す処理をいう。これにより、連続した利用可能なメモリ領域を増加させ、記憶領域を有効活用することが可能となる。
ウェアレベリングは、使用中状態かつ消去時期が古いブロックのデータを、空き状態かつ消去回数の一定数以上多いブロックに移動させる。これは、使用中状態かつ消去時期が古いブロックに含まれるデータは劣化が生じる可能性があるため、ブロックの移動を行うことで、データの劣化を抑止させるとともに、更新の頻度が少ないデータを、消去回数が一定以上多いブロックに移動させることで、ブロックの疲弊度を平準化している。このように、書き込みが均等に分散されることで、当該NAND型フラッシュメモリ110の寿命を向上させることができる。
ところで、従来のNANDコントローラでは、ウェアレベリングとコンパクションとを行う構成がそれぞれ独立して構成されていた。つまり、従来のNANDコントローラでは、本実施形態のNANDコントローラ111と比べて、ウェアレベリングを行うための構成を含んでいた。そして、ウェアレベリングを行う構成(以下、従来のウェアレベリング部)と、コンパクション(以下、従来のコンパクション部)を行う構成とが、同一ブロックを処理対象とした場合、不要であるにもかかわらず、2重にデータ移動が発生するという問題が生じていた。
具体的には、従来のコンパクション部では、制御部等からの要求に従って、移動元ブロックを選定した後、ブロック管理部より移動先となるフリーブロックの供給を受けて、有効データの移動処理を行っていた。一方、ウェアレベリングを実行する場合は、従来のウェアレベリング部が、ウェアレベリングの実行に際する必要条件を満たしていると判定した場合、必要条件を満たしたブロックを移動元ブロックと選定するとともに、移動先のブロックを選定して、有効データの移動処理を行っていた。これらが独立して行われていたため、上述の問題が生じていた。
これに対し、本実施形態にかかるNANDコントローラ111は、後述する構成を備えることで、コンパクションを行うコンパクション部208内で、ウェアレベリングのための移動制御を行うことを可能とした。これにより、本実施形態にかかるNANDコントローラ111は、ウェアレベリングとコンパクションとのリソース共有化を実現している。
NANDインタフェース201は、NAND型フラッシュメモリ110にアクセスするためのインタフェースとする。
制御部202は、NANDインタフェース201を介して、NAND型フラッシュメモリ110のブロックに対して、CPU102からの要求に応じてデータの読み込み、書き込みまたは消去を行う。
ブロック管理部207は、ブロック状態計測部213と、ブロック管理テーブル制御部214と、アクティブブロック管理部211と、フリーブロック管理部212と、を備え、NAND型フラッシュメモリ110に含まれている各ブロックの状態を管理する。
ブロック状態計測部213は、各ブロックが消去される度に、当該ブロックが前回消去された時期に相当するデータや、消去回数などの、計測制御を行う。本実施形態では、ブロックのデータが前回消去された時期に相当するデータとして、消去シーケンス番号を用いる。
消去シーケンス番号とは、消去が行われたブロックに対して、小さい番号から順に、シーケンシャルに割り当てられる番号とする。当該消去シーケンス番号は、ブロックの消去が行われるたびに更新される。つまり、割り当てられた番号が小さいブロックほど、昔消去が行われたことを示している。消去回数は、同一ブロックで消去が行われた回数とする。
つまり、NAND型フラッシュメモリ110は、書き込みを行う前に消去処理が必要な不揮発性半導体メモリであり、その寿命は消去回数および消去時間間隔に依存する。そこで、本実施形態にかかるNANDコントローラ111では、NAND型フラッシュメモリ110の延命手段として、ブロック状態計測部213が、データ消去の最小単位であるブロック単位で、消去シーケンス番号および消去回数を計測し、計測結果に基づいて、ウェアレベリング等の制御を行うこととした。
ブロック管理テーブル制御部214は、ブロックが使用中であるか否かと、ブロック状態計測部213の計測結果と、を対応付けて保持するテーブルの制御を行う。ブロック管理テーブル制御部214は、アクティブブロック管理部211と、フリーブロック管理部212と、を制御対象とする。
アクティブブロック管理部211は、有効なデータが格納されているブロック(以下、アクティブブロックと称す)を管理するテーブルとする。図3は、アクティブブロック管理部211のテーブル構造の一例を示した図である。図3に示すように、アクティブブロック管理部211では、ブロックIDと、消去回数と、消去シーケンス番号と、が対応づけている。ブロックIDは、個々のブロックを識別するために割り当てられたIDとする。そして、当該ブロックIDで識別されるブロック毎に、消去回数及び消去シーケンス番号が対応づけて記憶されている。これにより、各ブロックの状態を管理することができる。
また、アクティブブロック管理部211では、NAND型フラッシュメモリ110内のアクティブブロックすべてを管理している。これにより、アクティブブロック管理部211を参照することで、全てのアクティブブロックの状態を把握できる。なお、本実施形態では、ブロックの状態を計測するためのパラメータとして、消去回数と、消去シーケンス番号と、を用いる例について説明するが、これら2つのパラメータに制限するものではなく、例えば消去時期を示すタイムスタンプ等など、他のパラメータを用いてもよい。
フリーブロック管理部212は、有効なデータが格納されていないブロック(以下、フリーブロックと称す)を管理するテーブル群とする。つまり、フリーブロック管理部212は、コンパクション部208等がウェアレベリングやコンパクションの移動先として、使用すべきフリーブロックを保持する。
図4は、フリーブロック管理部212内のテーブル群の内部構成の例を示した図である。図4に示すように、フリーブロック管理部212内は、返却FIFOリスト401と、割り当てリスト402と、で構成されている。
返却FIFOリスト401は、フリーブロックとなったブロックを識別するIDと、当該ブロックの消去回数と、消去シーケンス番号と、をフリーブロックごとに保持する。また、返却FIFOリスト401では、受け取ったフリーブロックに関する情報を、消去シーケンスの小さい、すなわち消去時刻の古い順に配置する。例えば、コンパクション等によって有効なデータが移動された後のブロックは、消去処理が行われた後、フリーブロックとして、当該ブロックを識別するブロックID等が、返却FIFOリストに挿入される。このため、返却FIFOリスト401は、返却時には消去シーケンス番号に応じた位置に、当該フリーブロックに関する情報を、挿入する機構を有している。
そして、当該返却FIFOリストに格納されたフリーブロックの情報は、割り当てリストのフリーブロックが、コンパクション部208などの処理部に供給される毎に、割り当てリスト402に対して供給される。
割り当てリスト402は、コンパクション部208等の処理部からのフリーブロックの供給要求に従って、当該処理部に供給するフリーブロックを管理するブロックリストとする。本実施形態にかかる割り当てリスト402では、消去回数の多い順に、フリーブロックに関する情報を配置する。このため、返却FIFOリスト401から、フリーブロックの情報を補充する際、消去回数に応じた位置に挿入する機構を有している。割り当てリスト402でも、フリーブロックに関する情報として、ブロックごとに、ブロックID、消去回数、及び消去シーケンス番号を対応づけて保持している。
また、フリーブロック管理部212は、割り当てリスト402の先頭、つまり、もっとも消去回数が多いフリーブロックに対して、予約フラグを設定する。当該予約フラグは、予約の有無(例えば“有”または“無”)を保持するフラグとする。当該予約フラグで予約が“有”に設定されている場合には、フリーブロック管理部212は、コンパクション部208以外の処理部に対して、予約フラグが設定されたフリーブロックを供給せず、予約フラグが設定されていない次以降のフリーブロックを供給する。なお、当該予約フラグの有無は、ウェアレベリングを行うか否かに従って設定される。つまり、ウェアレベリングを行う場合には、もっとも消去回数が多いフリーブロックを確保されることになる。そして、ウェアレベリングを行わない場合には、フリーブロック管理部212が、もっとも消去回数が多いフリーブロックから順に処理部に供給する。
なお、本実施形態では、消去回数が多いフリーブロックから順に供給する例について説明するが、目的に応じて消去回数が少ない又は消去シーケンス番号が小さいフリーブロックを供給したりしてもよい。
ウェアレベリング判定部203は、アクティブブロック管理部211に記憶されたアクティブブロックの状態に基づいて、ウェアレベリングが必要なブロックがあるか否かを判定する。このウェアレベリングが必要か否かの判定基準として、消去シーケンス番号や、消去回数等に基づいた判定基準が定められているものとする。当該判定基準は、すでに提案された判定基準などを用いてもよいが、例えば、アクティブブロック管理部211で管理された消去シーケンス番号が、現在の消去シーケンス番号より予め定められた閾値以上離れたブロックを、同一ブロックに同一データが長期滞留しているブロックとして、ウェアレベリングの対象とすることが考えられる。
ウェアレベリング対象ブロック決定部204は、ID重複抑止部231を備え、ウェアレベリング判定部203でウェアレベリングが必要と判定された場合に、ウェアレベリングの対象となるブロックを決定する。ウェアレベリングの対象となるブロックの決定手法としては周知の手法を問わず、あらゆる手法を用いて良い。本実施形態にかかるウェアレベリング対象ブロック決定部204は、アクティブブロック管理部211及びフリーブロック管理部212を参照し、各ブロックリストを走査して、消去回数の差が一定数以上離れているアクティブブロックと、フリーブロックと、の組み合わせを検索し、ウェアレベリング対象ブロックを決定する。
ID重複抑止部231は、コンパクション用ブロックID保持部222から、すでにコンパクションの対象となっているアクティブブロックのブロックIDを参照する。そして、ID重複抑止部231は、ウェアレベリング対象ブロック決定部204で決定されたアクティブブロックが、すでにコンパクションの対象として保持されている場合、同一ブロックに対してウェアレベリング及びコンパクションの2重移動処理が行われないよう、ウェアレベリング対象ブロック決定部204による決定を抑止する。なお、本実施の形態では、ウェアレベリング対象ブロック決定部204内部のID重複抑止部231で、重複抑止を行う例を示したが、コンパクション部208内部で行ってもよい。
これは、アクティブブロックに対してコンパクションが行われる以上、当該ブロックのデータを他のブロックに移動するため、ウェアレベリングと同様、ブロックの移動に伴うデータの書き換え制御が行われることになる。つまり、コンパクションが行われる以上、古いデータが更新されるため、同一ブロックに対するウェアレベリングを行う必要がない。このため、本実施形態にかかるID重複抑止部231が、コンパクションの対象であるアクティブブロックについては、ウェアレベリングの実行を抑止することとした。
なお、本実施形態では、コンパクションの対象であるアクティブブロックに対する、ウェアレベリングの実行の抑止を行う例とするが、ウェアレベリングの対象であるアクティブブロックに対する、コンパクションの実行を抑止してもよい。この場合でも、同一ブロックに対してウェアレベリング及びコンパクションの2重移動処理が排除されるため、同様の効果を得ることができる。
移動元ブロック予約登録部206は、ID重複抑止部231による抑止もなく、ウェアレベリング対象ブロック決定部204でウェアレベリングの対象としてアクティブブロックが決定された場合に、当該アクティブブロックを移動元のブロックとして、コンパクション部208に対して予約登録する。これにより、コンパクション部208内のウェアレベリング用ブロックID保持部221に当該移動元のブロックのブロックIDが登録される。
移動先ブロック予約登録部205は、ID重複抑止部231による抑止もなく、ウェアレベリング対象ブロック決定部204でウェアレベリングの対象としてアクティブブロックが決定された場合に、ウェアレベリング用に移動先ブロックを確保するよう、ブロック管理部207に対して予約登録を要求する。そして、ブロック管理部207が、当該予約登録を受け付けた場合に、フリーブロック管理部212が、割り当てリスト402の予約フラグを設定し、最も消去回数が多いフリーブロックを、ウェアレベリングによるデータの移動先として確保する。これにより、コンパクション部208以外の処理部(例えば、制御部202)が、当該フリーブロックを書き込み対象として使用することを抑止する。
本実施形態では、最も消去回数が多いフリーブロックを、ウェアレベリングによるデータの移動先として用いる例とするが、最も消去回数が多いフリーブロックを移動先とすることに制限するものではない。本実施形態ではウェアレベリング用のデータの移動先として1つのフリーブロックのみ予約するが、複数のフリーブロックを予約しても良い。このような例では、移動先ブロック予約登録部205が、消去回数が高いブロックから順に所定の数を、コンパクション部208によるデータの移動先として予約することが考えられる。
コンパクション部208は、対象ブロック移動制御部223と、コンパクション用ブロックID保持部222と、ウェアレベリング用ブロックID保持部221と、を備え、NANDインタフェース201を介して、NAND型フラッシュメモリ110に対して、コンパクションを行う。
コンパクション用ブロックID保持部222は、対象ブロック移動制御部223によるコンパクションの移動元となるブロックを識別するブロックIDを保持する。図5は、コンパクション用ブロックID保持部222のテーブル構造の例を示した図である。図5に示すように、コンパクション用ブロックID保持部222は、コンパクションの対象となるブロックIDを複数格納する。
ウェアレベリング用ブロックID保持部221は、移動元ブロック予約登録部206により予約登録がなされたブロックのブロックIDを、データの移動元として保持する。図6は、ウェアレベリング用ブロックID保持部221のテーブル構造の例を示した図である。図6に示すように、ウェアレベリング用ブロックID保持部221は、ウェアレベリングの対象となるブロックIDを1つだけ格納する。
ところで、ウェアレベリングは、アクティブブロック内のデータが長期滞留した段階で行われる。このため、ウェアレベル判定部203が判定を行う場合に、ウェアレベリングの対象となるアクティブブロックは一定期間内に1つあるか否かである。このため、本実施形態では、ウェアレベリング用のブロックを1個だけ予約登録可能な例について説明するが、当然に複数以上予約登録が可能としても良い。この場合、図6に示すレコードの数と、フリーブロック管理部212の予約フラグを設定可能なブロックの数とが、複数となる。
対象ブロック移動制御部223は、NAND型フラッシュメモリ110のブロックに格納されたデータを移動させて、複数のブロック以外のブロックにまとめるコンパクションを行うと共に、ウェアレベリング用ブロックID保持部221がブロックIDを保持している場合に、当該ブロックIDで識別されるブロックに格納されたデータを移動させる制御(ウェアレベリング)を行う。本実施形態にかかる対象ブロック移動制御部223は、フリーブロック管理部212から供給されるブロックIDで識別されるフリーブロックを移動先として用いる。
ところで、本実施形態では、ウェアレベリングのために、ウェアレベリング対象ブロック決定部204でウェアレベリング対象のブロックが決定された場合、当該ウェアレベリングの移動元のブロックと、移動先のブロックと、が予約登録されている。そして、その後、ウェアレベリング用ブロックID保持部221にブロックIDが予約登録されている場合、対象ブロック移動制御部223が、当該ブロックIDで識別されるブロックに格納されたデータを、フリーブロック管理部212から供給されるブロックIDで識別されるブロックに移動させる制御(ウェアレベリング)を、コンパクションより優先して行う。
つまり、本実施形態では、コンパクション部208の対象ブロック移動制御部223はコンパクションのための移動制御を行うが、移動先のブロックと移動元のブロックとがウェアレベリング用に予約登録された場合に限り、コンパクションよりウェアレベリングを優先的に行うよう切り替えることで、別々に予約登録された移動元のブロック及び移動先のブロックによる移動制御が可能となる。
そして、対象ブロック移動制御部223によるウェアレベリングの処理が終了し、ウェアレベリング用ブロックID保持部221でブロックIDが格納されなくなった場合に、対象ブロック移動制御部223は、コンパクションを行うよう制御を切り替える。そして、対象ブロック移動制御部223は、コンパクション用ブロックID保持部222が保持するブロックIDで識別されるブロックに格納されたデータを、フリーブロック管理部212から供給されるブロックIDで識別されるブロックに、有効データを移動する制御を引き続き行う。
また、対象ブロック移動制御部223が移動制御を行った場合、その旨をブロック管理部207に通知する。そして、ブロック管理部207は、当該通知に従って、アクティブブロック管理部211が管理するアクティブブロックと、フリーブロック管理部212が管理するフリーブロックと、を変更する制御を行う。
以上の構成を備えることで、NANDコントローラ111は、ウェアレベリングに基づいてブロック間のデータを移動させる機能を、コンパクション機能と共用して実現することが可能となる。
次に、本実施形態にかかるNANDコントローラ111のウェアレベリングのための予約登録までの処理について説明する。図7は、本実施形態にかかるNANDコントローラ111における上述した処理の手順を示すフローチャートである。
まず、制御部202からの要求を受け、ウェアレベリング判定部203が、アクティブブロック管理部211を参照し、ウェアレベリングが必要なブロックがあるか否かを判定する(ステップS701)。必要ないと判定した場合(ステップS701:No)、特に処理を行わずに終了する。
一方、ウェアレベリングが必要なブロックがあると判定した場合(ステップS701:Yes)、ウェアレベリング対象ブロック決定部204が、ウェアレベリングの対象となるアクティブブロックを決定する(ステップS702)。
そして、ID重複抑止部231は、コンパクション用ブロックID保持部222を参照し、ステップS702で決定されたアクティブブロックのブロックIDが、すでにコンパクションの対象として、コンパクション用ブロックID保持部222に登録済みか否かを判定する(ステップS703)。登録済みと判定した場合(ステップS703:Yes)、特に処理を行わずに終了する。
一方、ID重複抑止部231が登録済みではないと判定した場合(ステップS703:No)、移動先ブロック予約登録部205が、消去回数が最も多いフリーブロックの予約登録を行うために、フリーブロック管理部212の割り当てリスト402の予約フラグを“有”とする要求を、フリーブロック管理部212に行う(ステップS704)。
さらに、移動元ブロック予約登録部206は、ステップS702で決定された移動元のフリーブロックの予約登録を、コンパクション部208のウェアレベリング用ブロック保持部221に対して行う(ステップS705)。
上述した処理で、ウェアレベリングを行うための設定が完了したことになる。その後、当該設定に従って、コンパクション部208が、有効データの移動処理を行うことで、ウェアレベリングが行われることになる。
次に、本実施形態にかかるNANDコントローラ111のフリーブロック管理部212のフリーブロックの供給手順について説明する。図8は、本実施形態にかかるフリーブロック管理部212における上述した処理の手順を示すフローチャートである。
まず、フリーブロック管理部212は、フリーブロックの供給の要求を受け付ける(ステップS801)。
次に、フリーブロック管理部212は、受け付けた供給が、コンパクション部208からのものであるか否かを判定する(ステップS802)。コンパクション部208からのものではない、つまり制御部202などの他の処理部からのフリーブロックを受け付けた場合(ステップS802:No)、フリーブロック管理部212は、割り当てリスト402に予約フラグが“有”に設定されているか否かを判定する(ステップS804)。そして、予約フラグが“有”に設定されている場合(ステップS804:Yes)、割り当てリスト402の先頭はウェアレベリング用に確保されているものとして、割り当てリスト402の2番目のフリーブロックを示すブロックIDを、制御部202などの他の処理部に対して提供する(ステップS805)。
一方、予約フラグが“無”に設定されている場合(ステップS804:No)、特にウェアレベリングにフリーブロックの確保がなされていないものとして、割り当てリスト402の先頭のフリーブロックを示すブロックIDを、制御部202などの他の処理部に対して提供する(ステップS803)。
また、ステップS802で、フリーブロック管理部212が、コンパクション部208からの要求と判定した場合(ステップS802:Yes)、割り当てリスト402の1番目のフリーブロックを示すブロックIDを、コンパクション部208に対して提供する(ステップS803)。
上述した処理手順により、割り当てリスト402の先頭に予約フラグが設定されている場合には、コンパクション部208に対して当該予約フラグが設定されたフリーブロックが供給されることになる。そして、コンパクション部208では、ウェアレベリングをコンパクションより優先的に行うことで、予約フラグが設定されたフリーブロックを、ウェアレベリングの移動先として用いた移動制御が可能となる。
次に、本実施形態にかかるコンパクション部208の対象ブロック移動制御部223における、データの移動制御の手順について説明する。図9は、本実施形態にかかる対象ブロック移動制御部223における上述した処理の手順を示すフローチャートである。
まず、対象ブロック移動制御部223は、コンパクション実行過程で、移動先ブロックがフルになったか否か、即ち新規のフリーブロックが必要か否かを判定する(ステップS901)。新規のフリーブロックが必要ないと判定された場合(ステップS901:No)、対象ブロック移動制御部223は、コンパクション用ブロックID保持部222から、移動元のブロックを示すブロックIDを読み出す(ステップS902)。
一方、対象ブロック移動制御部223は、フリーブロックが必要と判定した場合(ステップS901:Yes)、フリーブロック管理部212から、移動先となるフリーブロックを示すブロックIDの供給を受け付ける(ステップS903)。
その後、対象ブロック移動制御部223は、ウェアレベリング用ブロックID保持部221を参照し、ウェアレベリングの対象となるブロックIDが保持されているか否かを判定する(ステップS904)。そして、ウェアレベリング用の対象となるブロックIDが保持されていないと判定された場合(ステップS904:No)、対象ブロック移動制御部223は、コンパクション用ブロックID保持部222から、移動元のブロックを示すブロックIDを読み出す(ステップS902)。
一方、ウェアレベリング用の対象となるブロックIDが保持されていると判定された場合(ステップS904:Yes)、対象ブロック移動制御部223は、ウェアレベリング用ブロックID保持部221から、移動元のブロックを示すブロックIDを読み出す(ステップS905)。
その後、対象ブロック移動制御部223は、ステップS905又はステップS902で移動元として読み出されたブロックIDで示されたブロックから、移動先として供給等されたブロックIDで示されたブロックまでのブロック間のデータ移動を行う(ステップS906)。
上述した処理手順により、フリーブロックが必要となった際に、ウェアレベリングの対象が保持されている場合には、ウェアレベリングを優先的に行うこととした。
本実施形態にかかる記憶装置101では、ウェアレベリングとコンパクションに共通する、有効データの移動制御に関するリソースの共有化をすることで、開発コード量削減、デバッグ効率向上、品質向上といった効果が得られ、当該装置を実現するためのコストの削減が期待できる。
さらに、本実施形態にかかる記憶装置101では、ウェアレベリングとコンパクションとで同一のブロックを対象とすることが抑止されることで、制御全体の効率化および性能向上を図ることができる。
従来は、ウェアレベリングとコンパクションとを行う構成がそれぞれ独立して存在していた。このため、これらの構成が同一ブロックを処理対象とした場合に排他制御が困難であった。これに対し、本実施形態では、コンパクション部208内にて処理対象を一元管理し、同一ブロックIDの2重登録を抑止するため、制御全体の効率化および性能向上に有効に作用する。
(変形例)
上述した実施形態では、割り当てリスト402から供給されるブロックIDは、消去回数が多いものから順に供給されていた。しかしながら、このような供給に制限するものではなく、ソート条件が異なる割り当てリストを複数備え、必要に応じて供給するブロックIDを切り替えても良い。本変形例では、フリーブロック管理部が複数の割り当てリストを備える例について説明する。なお、他の構成は上記の実施形態と同様の構成を備えているものとして説明を省略する。
図10は、変形例にかかるフリーブロック管理部1001内のテーブル群の内部構成の例を示した図である。図10に示すように、フリーブロック管理部1001内は、返却FIFOリスト401と、複数の割り当てリスト402、1011と、で構成されている。
割り当てリスト1011では、消去回数の少ない順に配置した例について説明するが、当該条件に制限するものではなく、他の条件に従って、フリーブロックを保持しても良い。
そして、フリーブロック管理部1001は、コンパクション部208や制御部202によるブロック供給用途に応じて、フリーブロックを供給するための割り当てリスト402、1011を使い分ける。例えば、フリーブロック管理部1001は、さらに、対象ブロック移動制御部223がコンパクションを行う場合に、フリーブロック管理部1001は、消去された回数が高い順以外の条件、つまり割り当てリスト1011に格納されたブロックIDを、対象ブロック移動制御部223に供給しても良い。さらには、フリーブロック管理部1001は、制御部202からフリーブロックの供給要求を受け付けた場合には、制御部202に対しては、常に割り当てリスト1011からフリーブロックを供給してもよい。
さらには、割り当てリストについて、ウェアレベリング予約されたブロックを、別リストとして管理する機構を追加しても良い。これにより、複数のウェアレベリング要求を受け付け可能となる。その際、割り当てリストについて、予約フラグを有さないより簡易な構成としても良い。
なお、本実施形態のNANDコントローラ111は、NAND型フラッシュメモリ110を制御するメモリ制御プログラムを、NANDコントローラ111内部のROM等に予め組み込まれて提供してもよい。
このようなNANDコントローラ111のメモリ制御プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
本実施形態のNANDコントローラ111のメモリ制御プログラムは、上述した各部(制御部、ウェアレベリング判定部、ウェアレベリング対象ブロック決定部、移動先ブロック予約登録部、移動元ブロック予約登録部、ブロック管理部、コンパクション部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記ROMからメモリ制御プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、制御部、ウェアレベリング判定部、ウェアレベリング対象ブロック決定部、移動先ブロック予約登録部、移動元ブロック予約登録部、ブロック管理部、コンパクション部が主記憶装置上に生成されるようになっている。
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
100 情報処理装置
101 記憶装置
102 CPU
103 メインメモリ
104 メモリコントローラ
105 アドレスバス
106 データバス
110 NAND型フラッシュメモリ
111 NANDコントローラ
201 NANDインタフェース
202 制御部
203 ウェアレベリング判定部
204 ウェアレベリング対象ブロック決定部
205 移動先ブロック予約登録部
206 移動元ブロック予約登録部
207 ブロック管理部
208 コンパクション部
211 アクティブブロック管理部
212、1001 フリーブロック管理部
213 ブロック状態計測部
214 ブロック管理テーブル制御部
221 ウェアレベリング用ブロック保持部
222 コンパクション用ブロックID保持部
223 対象ブロック移動制御部
231 ID重複抑止部

Claims (7)

  1. データ消去の単位となるブロックを複数個含んでいる記憶手段内で、データが格納されたブロック毎に、前回消去された時期を示す消去時期情報及び当該ブロックの消去された回数を示す消去回数情報のいずれか1つ以上を含むブロック状態情報を記憶する状態記憶手段と、
    前記状態記憶手段に記憶された前記ブロック状態情報に基づいて、ウェアレベリングが必要なブロックがあるか否かを判定する判定手段と、
    前記判定部で前記ウェアレベリングが必要と判定された前記ブロックを識別するブロック識別情報を保持するウェアレベリングブロック保持手段と、
    前記記憶手段の複数のブロックに格納されたデータを移動させて、前記複数のブロック以外のブロックにまとめるコンパクションを行うと共に、前記ウェアレベリングブロック保持手段が前記ブロック識別情報を保持している場合に当該ブロック識別情報で識別されるブロックに格納されたデータを移動させるブロック移動制御手段と、
    前記ブロック移動制御手段によるコンパクションの移動元となるブロックを識別するブロック識別情報を保持するコンパクションブロック保持手段と、
    前記ウェアレベリングブロック保持手段及び前記コンパクションブロック保持手段のいずれか一方が保持している前記ブロック識別情報を、他方で保持することを抑止する抑止手段と、を備え、
    前記ブロック移動制御手段は、前記ウェアレベリングブロック保持手段により保持された前記ブロック識別情報で識別されるブロックに格納されたデータを移動させるほか、さらに、前記コンパクションとして、前記コンパクションブロック保持手段により保持される前記ブロック識別情報で識別されるブロックに格納されたデータを移動させて、前記複数のブロック以外のブロックにまとめる、
    憶制御装置。
  2. 前記記憶手段内で、データが書き込まれていない前記ブロックのうち、ウェアレベリング又はコンパクションで移動先となるブロックを識別するブロック識別情報を保持する移動先保持手段を、さらに備え、
    前記ブロック移動制御手段は、さらに、前記移動先保持部が保持する前記ブロック識別情報で識別されるブロックを移動先として、データを移動させること、
    を特徴とする請求項に記載の記憶制御装置。
  3. 前記移動先保持手段は、前記ブロック識別情報に、当該ブロックの消去された回数を示す消去回数情報を対応付けて保持し、消去された回数が高いブロックを識別する前記ブロック識別情報から順に、前記ブロック移動制御手段に供給し、
    前記ブロック移動制御手段は、前記ウェアレベリングブロック保持手段が前記ブロック識別情報を保持している場合、当該ブロック識別情報で識別されるブロックに格納されたデータを、前記移動先保持手段から供給される前記ブロック識別情報で識別されるブロックに移動させる制御を、コンパクションより優先して行うこと、
    を特徴とする請求項に記載の記憶制御装置。
  4. 前記判定部で前記ウェアレベリングが必要と判定された場合に、前記移動先保持手段で保持される前記消去回数情報で消去回数が高いブロックから順に、前記ブロック移動制御手段によるデータの移動先として予約登録を行う登録手段を、さらに備え、
    前記ブロック移動制御手段は、さらに、前記登録手段で予約登録されたブロックを、前記ウェアレベリングブロック保持手段で保持される前記ブロック識別情報で識別されるブロックに格納されたデータの移動先として用いること、
    を特徴とする請求項に記載の記憶制御装置。
  5. データ消去の単位となるブロックを複数個含んでいる記憶手段と、
    前記記憶手段内で、データが格納されたブロック毎に、前回消去された時期を示す消去時期情報及び当該ブロックの消去された回数を示す消去回数情報のいずれか1つ以上を含むブロック状態情報を記憶する状態記憶手段と、
    前記状態記憶手段に記憶された前記ブロック状態情報に基づいて、前記ウェアレベリングが必要なブロックがあるか否かを判定する判定手段と、
    前記判定部で前記ウェアレベリングが必要と判定された前記ブロックを識別するブロック識別情報を保持するウェアレベリングブロック保持手段と、
    前記記憶手段の複数のブロックに格納されたデータを移動させて、前記複数のブロック以外のブロックにまとめるコンパクションを行うと共に、前記ウェアレベリングブロック保持手段が前記ブロック識別情報を保持している場合に当該ブロック識別情報で識別されるブロックに格納されたデータを移動させるブロック移動制御手段と、
    前記ブロック移動制御手段によるコンパクションの移動元となるブロックを識別するブロック識別情報を保持するコンパクションブロック保持手段と、
    前記ウェアレベリングブロック保持手段及び前記コンパクションブロック保持手段のいずれか一方が保持している前記ブロック識別情報を、他方で保持することを抑止する抑止手段と、を備え、
    前記ブロック移動制御手段は、前記ウェアレベリングブロック保持手段により保持された前記ブロック識別情報で識別されるブロックに格納されたデータを移動させるほか、さらに、前記コンパクションとして、前記コンパクションブロック保持手段により保持される前記ブロック識別情報で識別されるブロックに格納されたデータを移動させて、前記複数のブロック以外のブロックにまとめる、
    憶装置。
  6. 記憶装置で実行されるデータ移動制御方法であって、
    前記記憶装置は、データ消去の単位となるブロックを複数個含んでいる記憶手段内で、データが格納されたブロック毎に、前回消去された時期を示す消去時期情報及び当該ブロックの消去された回数を示す消去回数情報のいずれか1つ以上を含むブロック状態情報を記憶する状態記憶手段を備え、
    前記記憶装置の判定手段が、前記状態記憶手段に記憶された前記ブロック状態情報に基づいて、前記ウェアレベリングが必要なブロックがあるか否かを判定する判定ステップと、
    前記記憶装置のウェアレベリングブロック保持手段が、前記判定部で前記ウェアレベリングが必要と判定された前記ブロックを識別するブロック識別情報を保持するウェアレベリングブロック保持ステップと、
    前記記憶装置のブロック移動制御手段が、前記記憶手段の複数のブロックに格納されたデータを移動させて、前記複数のブロック以外のブロックにまとめるコンパクションを行うと共に、前記ウェアレベリングブロック保持手段が前記ブロック識別情報を保持している場合に当該ブロック識別情報で識別されるブロックに格納されたデータを移動させるブロック移動制御ステップと、
    前記記憶装置のコンパクションブロック保持手段が、前記ブロック移動制御ステップによるコンパクションの移動元となるブロックを識別するブロック識別情報を保持するコンパクションブロック保持ステップと、
    前記記憶装置の抑止手段が、前記ウェアレベリングブロック保持手段及び前記コンパクションブロック保持手段のいずれか一方が保持している前記ブロック識別情報を、他方で保持することを抑止する抑止ステップと、を有し、
    前記ブロック移動制御ステップは、前記ウェアレベリングブロック保持手段により保持された前記ブロック識別情報で識別されるブロックに格納されたデータを移動させるほか、さらに、前記コンパクションとして、前記コンパクションブロック保持手段により保持される前記ブロック識別情報で識別されるブロックに格納されたデータを移動させて、前記複数のブロック以外のブロックにまとめる、
    データ移動制御方法。
  7. 前記記憶装置の移動先保持手段は、前記記憶手段内で、データが書き込まれていない前記ブロックのうち、ウェアレベリング又はコンパクションで移動先となるブロックを識別するブロック識別情報を保持する移動先保持ステップを、さらに有し、
    前記ブロック移動制御ステップは、さらに、前記移動先保持部が保持する前記ブロック識別情報で識別されるブロックを移動先として、データを移動させること、
    を特徴とする請求項に記載のデータ移動制御方法。
JP2010194040A 2010-08-31 2010-08-31 記憶制御装置、記憶装置、及びデータ移動制御方法 Active JP4910064B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010194040A JP4910064B2 (ja) 2010-08-31 2010-08-31 記憶制御装置、記憶装置、及びデータ移動制御方法
US13/154,203 US8583859B2 (en) 2010-08-31 2011-06-06 Storage controller for wear-leveling and compaction and method of controlling thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010194040A JP4910064B2 (ja) 2010-08-31 2010-08-31 記憶制御装置、記憶装置、及びデータ移動制御方法

Publications (2)

Publication Number Publication Date
JP2012053553A JP2012053553A (ja) 2012-03-15
JP4910064B2 true JP4910064B2 (ja) 2012-04-04

Family

ID=45698665

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010194040A Active JP4910064B2 (ja) 2010-08-31 2010-08-31 記憶制御装置、記憶装置、及びデータ移動制御方法

Country Status (2)

Country Link
US (1) US8583859B2 (ja)
JP (1) JP4910064B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9384124B2 (en) * 2012-07-20 2016-07-05 Kabushiki Kaisha Toshiba Data storage device, memory control method, and electronic device with data storage device
JP6017032B2 (ja) * 2013-06-13 2016-10-26 株式会社日立製作所 ストレージシステム及びストレージ制御方法
CN103927128B (zh) * 2013-07-11 2017-03-01 威盛电子股份有限公司 数据储存装置以及快闪存储器控制方法
WO2015083225A1 (ja) * 2013-12-02 2015-06-11 富士通株式会社 情報処理装置、ストレージ、及びアクセス制御方法
KR102393323B1 (ko) 2015-08-24 2022-05-03 삼성전자주식회사 재사용 주기를 이용하여 사용자 데이터를 쓰기 위한 워드라인을 결정하는 저장 장치의 동작 방법
KR102456104B1 (ko) 2015-08-24 2022-10-19 삼성전자주식회사 데이터 신뢰성에 따라 동작 조건을 변경하는 저장 장치의 동작 방법
KR102333746B1 (ko) * 2015-09-02 2021-12-01 삼성전자주식회사 재사용 주기에 따라 마모도를 관리하는 저장 장치의 동작 방법
US10636459B2 (en) * 2018-05-30 2020-04-28 Micron Technology, Inc. Wear leveling
US20210019051A1 (en) * 2019-07-15 2021-01-21 Micron Technology, Inc. Hardware based accelerator for memory sub-system operations

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5341339A (en) 1992-10-30 1994-08-23 Intel Corporation Method for wear leveling in a flash EEPROM memory
JPH113287A (ja) * 1997-06-12 1999-01-06 Hitachi Ltd 記憶装置およびそれに用いられる記憶領域管理方法
JP2002032256A (ja) 2000-07-19 2002-01-31 Matsushita Electric Ind Co Ltd 端末装置
JP3812933B2 (ja) 2001-04-19 2006-08-23 シャープ株式会社 ファイルシステムおよびその制御方法
JP4485231B2 (ja) * 2004-03-24 2010-06-16 京セラ株式会社 電子機器
US7315917B2 (en) 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
US20060161724A1 (en) 2005-01-20 2006-07-20 Bennett Alan D Scheduling of housekeeping operations in flash memory systems
WO2010076829A1 (en) * 2008-12-30 2010-07-08 Massimo Iaculo Wear leveling for erasable memories
US9405670B2 (en) * 2011-06-09 2016-08-02 Tsinghua University Wear leveling method and apparatus

Also Published As

Publication number Publication date
US20120054418A1 (en) 2012-03-01
US8583859B2 (en) 2013-11-12
JP2012053553A (ja) 2012-03-15

Similar Documents

Publication Publication Date Title
JP4910064B2 (ja) 記憶制御装置、記憶装置、及びデータ移動制御方法
KR100849221B1 (ko) 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치
KR101067457B1 (ko) 메모리 시스템
KR101038167B1 (ko) 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법
JP5687648B2 (ja) 半導体記憶装置およびプログラム
KR100974954B1 (ko) 플래시 메모리를 이용한 저장장치에서의 읽기 웨어 레벨링방법
JP5066241B2 (ja) メモリシステム
JP6266019B2 (ja) データストレージシステム向けの優先度に基づくガベージコレクション
US9251055B2 (en) Memory system and control method of memory system
US9218277B2 (en) Wear leveling
US10310766B2 (en) Memory system and data relocating method
EP3588259A1 (en) Garbage collection method for storage media, storage medium, and program product
Agarwal et al. A closed-form expression for write amplification in nand flash
JP2012203443A (ja) メモリシステムおよびメモリシステムの制御方法
KR20120012375A (ko) 메모리 관리 장치, 정보 처리 장치 및 메모리 관리 방법
JP2015001908A (ja) 情報処理装置、制御回路、制御プログラム、および制御方法
JP2009237668A (ja) フラッシュメモリを用いた記憶装置
JP2011070346A (ja) メモリシステム
US20130246716A1 (en) Memory system and data writing method
US9361201B2 (en) Memory system and memory controller
JP2012033001A (ja) 情報処理装置および情報処理方法
JP2011022933A (ja) メモリ管理装置を含む情報処理装置及びメモリ管理方法
JP6102515B2 (ja) 情報処理装置、制御回路、制御プログラム、および制御方法
JP2015001909A (ja) 情報処理装置、制御回路、制御プログラム、および制御方法
KR100941382B1 (ko) 플래시 메모리와 연동되는 페이지 버퍼 관리 장치 및 방법,그리고 플래시 메모리의 페이지 교체 장치 및 방법

Legal Events

Date Code Title Description
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: 20111220

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120116

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4910064

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350