JP2008299848A - 不揮発性メモリのデータ処理装置及びその処理方法 - Google Patents

不揮発性メモリのデータ処理装置及びその処理方法 Download PDF

Info

Publication number
JP2008299848A
JP2008299848A JP2008140920A JP2008140920A JP2008299848A JP 2008299848 A JP2008299848 A JP 2008299848A JP 2008140920 A JP2008140920 A JP 2008140920A JP 2008140920 A JP2008140920 A JP 2008140920A JP 2008299848 A JP2008299848 A JP 2008299848A
Authority
JP
Japan
Prior art keywords
block
data
transaction
nonvolatile memory
data processing
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
JP2008140920A
Other languages
English (en)
Inventor
Hyo-Jun Kim
曉 俊 金
Nam-Yoon Woo
南 允 禹
Ji-Hyun In
至 ヒョン 印
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2008299848A publication Critical patent/JP2008299848A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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/7209Validity control, e.g. using flags, time stamps or sequence numbers

Landscapes

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

Abstract

【課題】トランザクションブロックを利用して複数のセクターに対して単位書き込みを支援し、トランザクションブロックを一括してデータブロックに変換してファイルシステムやデータベースの無欠性を保障することができる不揮発性メモリのデータ処理装置及びその処理方法を提供する。
【解決手段】複数のブロックを含む不揮発性メモリと、ユーザの書き込み作業要求時、前記ブロックにデータを書き込んだ後に前記データが書き込まれたブロックを一括して有効化させる作業処理部と、前記作業処理部の作業処理に対応して前記ブロックの状態を管理するブロック管理部とを有する。
【選択図】 図2

Description

本発明は不揮発性メモリのデータ処理装置及びその処理方法に関するものであって、より詳細には、複数のセクターに対して単位書き込みを支援することができる不揮発性メモリのデータ処理装置及びその処理方法に関するものである。
一般的に、家電機器、通信機器、セットトップボックスなどの内蔵型システム(Embedded System)ではデータを保存して処理するための保存媒体として不揮発性メモリが多く使用されている。
不揮発性メモリの中で主に使用されるフラッシュメモリは電気的にデータを削除したりまた記録できる不揮発性記憶素子であって、磁気式ディスクメモリを基盤とする保存媒体に比べて、電力消費が少なく、ハードディスクのような速いアクセスタイム(Access Time)を有し、サイズが小さいため携帯機器などに適合する。
このようなフラッシュメモリはハードディスクのような磁気式保存媒体とは異なる特性を有するが、ページ単位で読み取り及び書き込みが可能な反面、データ更新作業はページ単位ですることができないという特性がそれである。フラッシュメモリでデータ更新作業をするためには複数のページ集合であるブロック単位の消去作業が必要だが、消去作業の単位が書き込み作業の単位よりより大きいことが問題となる。
このようにフラッシュメモリの消去単位が書き込み単位より大きい特性、そして消去回数の制限がある特性を補完し、ハードディスクを基盤として設計されたファイルシステムを使用するための目的でFTL(Flash Translation Layer)が開発された。FTLは一種のソフトウェアレイヤーで、フラッシュメモリをハードディスクのように使用することができるようにする役割をする。FTLはこのような目的を達成するために内部的にマッピング技法を使用するようになっているが、いかなるアルゴリズムを使用するのかによってその性能と費用の特性が決定される。
FTLで使用されるマッピング技法としてはブロックマッピング技法及びページマッピング技法などのような多様な技法があり、このうちページマッピング技法を例にあげて説明すれば、ページマッピング技法はすべてのセクター又はページに対して実際、物理的に保存された位置を別途にマッピングテーブルをよって維持管理する技法である。すなわち、実際フラッシュメモリでデータ更新が起きる時、フラッシュメモリの空いた空間に新しいデータを記録し、該当セクターの位置が変更されたことをセクターマッピングテーブルを変更して処理する技法である。この時、セクターは論理的な演算単位であり、ページは物理的な演算単位である。小ブロックのフラッシュメモリの場合にはセクターとページが同一だが大ブロックのフラッシュメモリの場合にはページが複数のセクターを含むようになる。
図1は従来の技術によるページマッピング技法を示した図である。
図に示すように、FTLはセクターマッピングテーブル10と複数のブロック22を含む不揮発性メモリ20とでなり、ユーザがセクターを「1、2、0、0、3、3、3、3、5、6、4」の順序でデータを記録する場合、不揮発性メモリ20ではセクター0とセクター3に対してデータ更新が起きたことを知ることができる。この時、ページマッピング技法のFTLでは空いているページ21に新しいデータを記録すると同時にセクターマッピングテーブル10も更新するようになる。すなわち、セクターマッピングテーブル10は論理的なセクター番号と不揮発性メモリ20でのページ番号間のマッピングテーブルとなる。
一方、ファイルシステムやデータベース等を更新する場合、大部分多数個のセクターを更新する作業が成されるようになる。例えば、セクター1、2、3を更新しなければならない状況で、システムの問題が発生してセクター1、2だけ書き込み作業が完了し、書き込み作業が中断された場合、セクター3は更新が成されない不安定な状態が作られ、これはファイルシステムやデータベースの無欠性を保障できなくなる。
このためにデータベースやファイルシステムで処理する作業に対してジャーナルやログを残す方法が使用されているが、これは作業が完了しないで中断された場合に備えて、本来データをバックアップしておく方式である。しかし、このようなバックアップ方式は本来処理しようとする作業よりさらに費用が大きいことが一般的である。
例えば、特許文献1を参照すると、フラッシュメモリでのデータ消去処理と記録終了通知をオーバーラップさせ、記録、消去及び記録終了通知の一連の処理を短時間に処理するデータ記録高速化方法及びその電子機器が記載されているが、複数個のセクターを更新する作業でファイルシステムやデータベースの無欠性を保障するための方案は提案されていないという問題がある。
特開2004−242160号公報
そこで、本発明は上記従来の不揮発性メモリにおける問題点に鑑みてなされたものであって、本発明の目的は、トランザクションブロックを利用して複数のセクターに対して単位書き込みを支援し、トランザクションブロックを一括してデータブロックに変換してファイルシステムやデータベースの無欠性を保障することができる不揮発性メモリのデータ処理装置及びその処理方法を提供することにある。
上記目的を達成するためになされた本発明による不揮発性メモリのデータ処理装置は、複数のブロックを含む不揮発性メモリと、ユーザの書き込み作業要求時、前記ブロックにデータを書き込んだ後に前記データが書き込まれたブロックを一括して有効化させる作業処理部と、前記作業処理部の作業処理に対応して前記ブロックの状態を管理するブロック管理部とを有することを特徴とする。
また、上記目的を達成するためになされた本発明による不揮発性メモリのデータ処理方法は、複数のブロックを含む不揮発性メモリにユーザの書き込み作業要求が入力される段階と、前記ブロックにデータを書き込んだ後に前記データが書き込まれたブロックを一括して有効化させる段階と、前記ブロックを一括して有効化させる段階の作業処理に対応して前記ブロックの状態を管理する段階とを有することを特徴とする。
本発明に係る不揮発性メモリのデータ処理装置及びその処理方法によれば、不揮発性メモリの書き込み作業時にトランザクションブロックを利用して書き込み作業を遂行し、書き込み作業完了時に一括してデータブロックに変換されるようにしてデータベースシステムやファイルシステムでロギング作業を省略することができ、無欠性を保障することができるという効果がある。
また、一括してトランザクションブロックがデータブロックに変換されるため不揮発性メモリの電源供給の中断状況に対処でき、システムの性能と安全性を向上させることができるという効果がある。
本発明の利点及び特徴、そしてそれらを達成する方法は添付される図面と共に詳細に後述されている実施形態を参照すれば明確になるだろう。しかし本発明は以下で開示される実施形態に限定されるものではなく互いに異なる多様な形態で具現されることができ、単に本実施形態は本発明の開示が完全なようにして、本発明が属する技術分野で通常の知識を有する者に発明の範囲を完全に知らせるために提供されるものであり、本発明は請求項の範囲によってのみ定義される。明細書全体にかけて、同一参照符号は同一構成要素を指称する。
次に、本発明に係る不揮発性メモリのデータ処理装置及びその処理方法を実施するための最良の形態の具体例を図面を参照しながら説明する。
以下、本発明の実施形態による不揮発性メモリのデータ処理装置及びその処理方法を説明するためのブロック図又は処理フローチャートに対する図を参考にして本発明に対して説明する。この時、処理フローチャートの各ブロックとフローチャートの組み合せはコンピュータプログラムインストラクションによって、遂行され得る可能性があることを理解できるものである。
これらコンピュータプログラムインストラクションは、汎用コンピュータ、特殊用コンピュータまたはその他プログラム可能なデータプロセシング装置のプロセッサに搭載され得るため、コンピュータ又はその他プログラム可能なデータプロセシング装置のプロセッサを通して遂行される、そのインストラクションがフローチャートブロックで説明された機能を遂行する手段を生成するようになる。
これらコンピュータプログラムインストラクションは、特定方式で機能を具現するためにコンピュータ又はその他プログラム可能なデータプロセシング装置を指向できるコンピュータ利用可能又はコンピュータ判読可能メモリに保存することも可能であるため、そのコンピュータ利用可能又はコンピュータ判読可能メモリに保存されたインストラクションはフローチャートブロックで説明された機能を遂行するインストラクション手段を内包する製造品目として生産することも可能である。
コンピュータプログラムインストラクションは、コンピュータ又はその他プログラム可能なデータプロセシング装置上に搭載されるのも可能なため、コンピュータ又はその他プログラム可能なデータプロセシング装置上で一連の動作段階が遂行され、コンピュータで実行されるプロセスを生成し、コンピュータ又はその他プログラム可能なデータプロセシング装置を遂行するインストラクションはフローチャートブロックで説明された機能を実行するための段階を提供することも可能である。
また、各ブロックは特定された論理的機能を実行するための一つ以上の実行可能なインストラクションを含むモジュール、セグメント又はコードの一部を示し得る。また、いくつかの代替実行形態ではブロックで言及された機能が順序を外れ発生することも可能であることに注目しなければならない。例えば、相次いで図に示される二つのブロックは事実実質的に同時に遂行されることも可能でまたはそのブロックが時々該当する機能によって逆順で遂行されるのも可能である。
図2は本発明の実施形態による不揮発性メモリのデータ処理装置を示すブロック図であり、図3は本発明の実施形態による不揮発性メモリの構造を示すブロック図である。
図に示すように、本発明の実施形態による不揮発性メモリのデータ処理装置100は、不揮発性メモリ110、ユーザ要求部120、作業処理部130及びブロック管理部140を含み得る。
不揮発性メモリ110は複数のページを含む複数のブロックを含み得る。本発明の実施形態で不揮発性メモリ110に含まれたブロックはマップブロック、ガーベッジブロック、データブロック及びトランザクションブロックの用途で使用され得る。
マップブロックは不揮発性メモリ110に含まれるすべてのブロックの状態情報及びマッピングテーブルが保存され、ガーベッジブロックは有効なデータが存在せず消去作業をよって使用できるブロックを意味し、データブロックはコミット(Commit)された安定した状態のデータを有しているブロックを意味し、トランザクションブロックはトランザクションが始まれば割り当てられるブロックを意味する。また、ガーベッジブロックはマップブロック、データブロック及びトランザクションブロックとして使用され得る。
本発明の実施形態で不揮発性メモリ110は、初期フォーマット時に一つのマップブロックを除外したすべてのブロックがガーベッジブロック状態になる場合を例をあげて説明しているが、これは本発明の理解を助けるための一例に過ぎないものでマップブロックは一つ以上が存在し得る。
ユーザ要求部120は、ユーザの所定書き込み作業に対する要求が入力され得る。また、ユーザ要求部120は書き込み作業要求以外にも読み取り作業、消去作業及び現在進行している作業の中断要求が入力されることもある。この時、本発明の実施形態ではユーザ要求部120によって、ユーザの書き込み作業要求が入力された場合を例をあげて説明することにする。
作業処理部130は、ユーザ要求部120によって入力された作業要求により要求された作業に対する処理を遂行し得る。すなわち、本発明の実施形態による作業処理部130は、前述したFTLにより作業を処理するようになり、本発明の実施形態によるFTLは、一般的なFTLが「デバイスオープン(FTL_Open)」、「デバイスクローズ(FTL_Close)」、「読み取り(FTL_Read)」および「書き込み(FTL_Write)」のように4種類のAPIを提供するものである反面、前述した4種類のAPIとさらに追加して「トランザクション開始(FTL_BeginTxn)」、「トランザクション コミット(FTL_CommitTxn)」及び「トランザクション中止(FTL_AbortTxn)」のような三つのAPIを支援することができる。
具体的には、作業処理部130はユーザ要求部120によって、書き込み作業が要求された時、「トランザクション開始」と「トランザクションコミット」の間に数回の「書き込み」を呼び出し、「トランザクションコミット」が呼び出される以前にシステムが中断されたり電源供給が中断される場合、すべての書き込み作業は取り消すようになる。一方、ユーザは「トランザクション中止」を明示的に呼び出し、書き込み作業を取り消しできるようになる。また、ユーザはユーザ要求部120を利用して「トランザクション開始」、「トランザクションコミット」及び「トランザクション中止」のようなAPIを呼び出すことができる。
作業処理部130の作業処理と一緒にブロック管理部140は、書き込み作業に対応して不揮発性メモリ110に含まれたブロックを管理するようになる。すなわち、ブロック管理部140は作業処理部130によってトランザクションが始まる場合、ガーベッジブロックを割り当て、トランザクションが遂行されるようにできる。また、ブロック管理部140は安定した状態のデータと不安定な状態のデータ、すなわちコミットされたブロックとトランザクションが始まったがコミットされていないブロックをマッピングテーブルを通して管理することができる。
具体的には、ブロック管理部140は図3のように不揮発性メモリ110に含まれたブロックをマップブロック111、データブロック112、トランザクションブロック113、及びガーベッジブロック114に区分して管理することができるものである。もちろん、図3ではマップブロック111、データブロック112、トランザクションブロック113、及びガーベッジブロック114がすべて存在するが不揮発性メモリ110の初期フォーマット時にはマップブロック111及びガーベッジブロック114が存在するようになり、マップブロック111、データブロック112、トランザクションブロック113、及びガーベッジブロック114の状態は処理する作業によってその数が変更される。
ブロック管理部140は、不揮発性メモリ110のブロックを前述したマップブロック、データブロック、トランザクションブロック、及びガーベッジブロックに区分して管理し、トランザクションがコミットされる時、該当ブロックをトランザクションブロックでデータブロックに変換させて、このような作業はマップブロックに記録された各ブロックの状態を変換させることができる。
図4は、本発明の実施形態によるブロックマップを示した図である。
具体的には、本発明の実施形態によるマップブロック111には図4のように、各ブロックに対するブロック状態情報211、削除回数212及びブロック生成順序213を表すブロックマップ210を保存することができ、ブロック管理部140は作業処理部130による書き込み作業がコミットされる場合、一括してトランザクションブロックのブロック状態情報211をデータブロックに一括変換するようになる。
この時、ブロックマップ210はすべてのブロックに対して各々保存されており、ブロック状態情報211は該当ブロックがマップブロック、データブロック、トランザクションブロック、及びガーベッジブロックの内のどこに属するかを表す。また、ブロック生成順序213は該当ブロックが生成された順序を表すものと理解し得る。
図5は、本発明の実施形態によるマッピングテーブルを示した図である。
ブロック管理部140は、各ブロックに対するマッピングテーブルを生成し保存することができ、このようなマッピングテーブルはマップブロック111に保存され得る。マップブロック111に記録されるマッピングテーブルを、安定した状態のセクターと不安定な状態のセクターを区分するために二元化され管理することができる。具体的には、本発明の実施形態によるマッピングテーブル220は図5のように、各論理セクター番号に対して安定した状態のページ及び不安定な状態のページが各々マッピングされ得る。このように、マッピングテーブル220を二元化して管理するのは不安定な状態のページは書き込み作業がコミットされる前には常に書き込み作業が取り消され得る可能性が存在するため、コミットされる時まで既存データに対する情報を削除してはならないためである。
また、マッピングテーブル220を二元化して管理するのはガーベッジコレクション時に該当セクターの状態を知るために行うものである。言い換えれば、既存のものではトランザクションの概念がなかったため、セクター書き込み時FTLで空のページに書き込み作業を処理し、該当セクターに対するマッピングテーブルを変更して、該当セクターに以前のデータはこれ以上必要がないのでガーベッジとしてマークするようになる。しかし、トランザクションの概念を支援する場合にはセクター書き込み時にコミットされる前に取り消される可能性も存在するため以前のデータに対する情報が必要なためである。
図6は本発明の実施形態による不揮発性メモリのデータ処理方法を示すフローチャートである。
また、図6は不揮発性メモリ110がフォーマットされ、マップブロックとガーベッジブロックだけが存在する状態の場合を例をあげて、説明することにし、マップブロック及びガーベッジブロックだけでなく、データブロック及びトランザクションブロックが共に存在する場合にも同一に適用され得る。
図に示すように、本発明の実施形態による不揮発性メモリのデータ処理方法は、まず、ユーザがユーザ要求部120を利用して不揮発性メモリ110に書き込み作業を要求する(ステップS110)。
作業処理部130は、ユーザの書き込み要求により不揮発性メモリ110のガーベッジブロックをトランザクションブロックに割り当て、書き込み作業を遂行するようになる(ステップS120)。
この時、作業処理部130はFTLのAPIのうち「トランザクション開始」を呼び出すようになり、「トランザクションコミット」が呼び出しされる前まで複数の「書き込み」を呼び出し、ユーザが要求した書き込み作業を遂行する。
この時、上述したステップS120段階で作業処理部130が書き込み作業を遂行する間、ブロックの割り当てなどはブロック管理部140によって管理される。すなわち、マップブロックに保存されるブロックマップでのブロック状態情報等とマッピングテーブルがブロック管理部140によって管理されるものである。
次に、作業処理部130はユーザによって「トランザクションコミット」が呼び出されたかを判断し(ステップS130)、判断の結果「トランザクションコミット」が呼び出された場合、ブロック管理部140は複数のトランザクションブロックをデータブロックに変換する(ステップS140)。
この時、ブロック管理部140が複数のトランザクションブロックをデータブロックに変換する時、マップブロックに保存されたブロックマップにブロック状態情報を変換し、一括してトランザクションブロックがデータブロックに変換されるようにする。
万一、上述したステップS130段階で「トランザクションコミット」が呼び出されなかったり、突然の電源供給中断が発生すれば、ユーザによって要求された書き込み作業は取り消され(ステップS150)、トランザクションブロックは改めてガーベッジブロックに変換される。
図7は、本発明の実施形態による不揮発性メモリでの各ブロックの状態変移を示した図である。
図に示したように、ガーベッジブロックはガーベッジコレクションによって、データブロックになることができ、ガーベッジブロックは「トランザクション開始」呼び出し時、トランザクションブロックに変換され得る。また、トランザクションブロックは「トランザクションコミット」が呼び出される前にユーザによって「トランザクション中止」が呼び出されたり、電源供給が中断された場合、改めてガーベッジブロックに変換される。トランザクションブロックは「トランザクションコミット」が呼び出された場合、データブロックに変換され得る。
以上で表記された「部」は、ソフトウェア又はField Programmable Gate Array(FPGA)または注文型(特定用途向け)集積回路(Application Specific Integrated Circuit;ASIC)のようなハードウェア構成要素を意味し、「部」はある役割を遂行する。しかし、「部」はソフトウェア又はハードウェアに限定される意味ではない。「部」はアドレッシングできる保存媒体に存在するように構成することもでき、一つ又はそれ以上のプロセッサを実行させるように構成され得ることもある。したがって、一形態として「部」はソフトウェア構成要素、オブジェクト指向ソフトウェア構成要素、クラス構成要素、及びタスク構成要素のような構成要素と、プロセス、関数、属性、プロシージャ、サブルーチン、プログラム コードのセグメント、ドライバ、ファームウェア、マイクロコード、回路、データ、データベース、データ構造、テーブル、アレイ、及び変数を含み得る。構成要素と「部」で提供されている機能はさらに小さい数の構成要素及び「部」に結合したり追加的な構成要素と「部」にさらに分離することもできる。
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
従来の技術によるページマッピング技法を示した図である。 本発明の実施形態による不揮発性メモリのデータ処理装置を示すブロック図である。 本発明の実施形態による不揮発性メモリの構造を示すブロック図である。 本発明の実施形態によるブロックマップを示した図である。 本発明の実施形態によるマッピングテーブルを示した図である。 本発明の実施形態による不揮発性メモリのデータ処理方法を示すフローチャートである。 本発明の実施形態による各ブロックの状態変移を示した図である。
符号の説明
100 不揮発性メモリのデータ処理装置
110 不揮発性メモリ
111 マップブロック
112 データブロック
113 トランザクションブロック
114 ガーベッジブロック
120 ユーザ要求部
130 作業処理部
140 ブロック管理部
210 ブロックマップ
220 マッピングテーブル

Claims (20)

  1. 複数のブロックを含む不揮発性メモリと、
    ユーザの書き込み作業要求時、前記ブロックにデータを書き込んだ後に前記データが書き込まれたブロックを一括して有効化させる作業処理部と、
    前記作業処理部の作業処理に対応して前記ブロックの状態を管理するブロック管理部とを有することを特徴とする不揮発性メモリのデータ処理装置。
  2. 前記不揮発性メモリに含まれる前記ブロックは、ブロックの状態を表すブロックマップが保存されるマップブロックと、
    トランザクション遂行時、割り当てられるトランザクションブロックと、
    コミット(commit)された安定した状態のデータが書き込まれたデータブロックと、
    有効なデータが含まれないガーベッジブロックとを含むことを特徴とする請求項1に記載の不揮発性メモリのデータ処理装置。
  3. 前記作業処理部は、書き込み作業時、前記ガーベッジブロックを前記トランザクションブロックに割り当てることを特徴とする請求項2に記載の不揮発性メモリのデータ処理装置。
  4. 前記作業処理部は、前記トランザクションブロックにデータを書き込んだ後、コミット要求時に一括して前記トランザクションブロックを前記データブロックに変換することを特徴とする請求項3に記載の不揮発性メモリのデータ処理装置。
  5. 前記作業処理部は、前記トランザクションブロックにデータを書き込む場合、ユーザによる作業中止及び電源供給中断のうち少なくとも一つの状況が発生し、コミットが要求されない時、前記トランザクションブロックを前記ガーベッジブロックに変換することを特徴とする請求項3に記載の不揮発性メモリのデータ処理装置。
  6. 前記ブロック管理部は、前記不揮発性メモリに含まれるすべてのブロックのブロックマップを管理し、前記ブロックマップは前記各ブロックのブロック状態情報、削除回数及び寿命のうち少なくとも一つを含むことを特徴とする請求項2に記載の不揮発性メモリのデータ処理装置。
  7. 前記ブロック状態情報は、前記各ブロックが前記マップブロック、前記トランザクションブロック、前記データブロック、及び前記ガーベッジブロックの内のどのブロックなのかを表すことを特徴とする請求項6に記載の不揮発性メモリのデータ処理装置。
  8. 前記ブロック管理部は、論理セクター番号に対応する安定した状態のページ及び不安定な状態のページを表すマッピングテーブルを生成することを特徴とする請求項6に記載の不揮発性メモリのデータ処理装置。
  9. 前記安定した状態のページは、前記データブロックに含まれるページであることを特徴とする請求項8に記載の不揮発性メモリのデータ処理装置。
  10. 前記不安定な状態のページは、前記トランザクションブロックに含まれるページであることを特徴とする請求項8に記載の不揮発性メモリのデータ処理装置。
  11. 複数のブロックを含む不揮発性メモリにユーザの書き込み作業要求が入力される段階と、
    前記ブロックにデータを書き込んだ後に前記データが書き込まれたブロックを一括して有効化させる段階と、
    前記ブロックを一括して有効化させる段階の作業処理に対応して前記ブロックの状態を管理する段階とを有することを特徴とする不揮発性メモリのデータ処理方法。
  12. 前記不揮発性メモリに含まれるブロックは、前記ブロックの状態を表すブロックマップが保存されるマップブロックと、
    トランザクション遂行時、割り当てられるトランザクションブロックと、
    コミット(commit)された安定した状態のデータが書き込まれたデータブロックと、
    有効なデータが含まれないガーベッジブロックとを含むことを特徴とする請求項11に記載の不揮発性メモリのデータ処理方法。
  13. 前記ブロックを一括して有効化させる段階は、前記書き込み作業時、前記ガーベッジブロックを前記トランザクションブロックに割り当てる段階を含むことを特徴とする請求項12に記載の不揮発性メモリのデータ処理方法。
  14. 前記ブロックを一括して有効化させる段階は、前記トランザクションブロックにデータを書き込んだ後、コミット要求時に一括して前記トランザクションブロックを前記データブロックに変換する段階を含むことを特徴とする請求項13に記載の不揮発性メモリのデータ処理方法。
  15. 前記ブロックを一括して有効化させる段階は、前記トランザクションブロックにデータを書き込む場合、ユーザによる作業中止及び電源供給中断のうち少なくとも一つの状況が発生し、コミットが要求されない時、前記トランザクションブロックを前記ガーベッジブロックに変換する段階を含むことを特徴とする請求項13に記載の不揮発性メモリのデータ処理方法。
  16. 前記ブロックの状態を管理する段階は、前記不揮発性メモリに含まれるすべてのブロックのブロックマップを管理する段階を含み、前記ブロックマップは前記各ブロックのブロック状態情報、削除回数及び寿命のうち少なくとも一つを含むことを特徴とする請求項12に記載の不揮発性メモリのデータ処理方法。
  17. 前記ブロック状態情報は、前記各ブロックが前記マップブロック、前記トランザクションブロック、前記データブロック、及び前記ガーベッジブロックの内のどのブロックなのかを表すことを特徴とする請求項16に記載の不揮発性メモリのデータ処理方法。
  18. 前記ブロックの状態を管理する段階は、論理セクター番号に対応する安定した状態のページおよび不安定な状態のページを表すマッピングテーブルを生成する段階を含むことを特徴とする請求項16に記載の不揮発性メモリのデータ処理方法。
  19. 前記安定した状態のページは、前記データブロックに含まれるページであることを特徴とする請求項18に記載の不揮発性メモリのデータ処理方法。
  20. 前記不安定な状態のページは、前記トランザクションブロックに含まれるページであることを特徴とする請求項18に記載の不揮発性メモリのデータ処理方法。
JP2008140920A 2007-05-29 2008-05-29 不揮発性メモリのデータ処理装置及びその処理方法 Pending JP2008299848A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070052154A KR101336258B1 (ko) 2007-05-29 2007-05-29 비휘발성 메모리의 데이터 처리 장치 및 방법

Publications (1)

Publication Number Publication Date
JP2008299848A true JP2008299848A (ja) 2008-12-11

Family

ID=40089584

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008140920A Pending JP2008299848A (ja) 2007-05-29 2008-05-29 不揮発性メモリのデータ処理装置及びその処理方法

Country Status (4)

Country Link
US (1) US7971022B2 (ja)
JP (1) JP2008299848A (ja)
KR (1) KR101336258B1 (ja)
CN (1) CN101315613A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012155705A (ja) * 2011-01-27 2012-08-16 Micron Technology Inc トランザクションメモリ
JP2013080397A (ja) * 2011-10-04 2013-05-02 Dainippon Printing Co Ltd Icチップ、icチップにおける処理方法、icチップ用処理プログラム、及びicカード
JP2013092938A (ja) * 2011-10-26 2013-05-16 Dainippon Printing Co Ltd Icチップ、icチップにおける処理方法、icチップ用処理プログラム、及びicカード等
WO2015170454A1 (ja) * 2014-05-07 2015-11-12 ソニー株式会社 メモリ制御装置、メモリ装置およびメモリ制御方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101401198B1 (ko) * 2008-05-29 2014-05-28 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 교체가능한 프린터 구성요소
KR101994672B1 (ko) 2012-12-04 2019-07-01 삼성전자 주식회사 저장 장치 및 저장 장치의 동작 방법
US10614903B2 (en) * 2016-07-18 2020-04-07 International Business Machines Corporation Testing non-volatile memories
CN108766487A (zh) * 2018-05-31 2018-11-06 郑州云海信息技术有限公司 一种硬盘异常下电方法、系统、设备及计算机存储介质
DE102020108101A1 (de) * 2020-03-24 2021-09-30 Pilz Gmbh & Co. Kg Vorrichtung zur Speicherung von Daten in einem nichtflüchtigen Speicher
KR20220108342A (ko) * 2021-01-27 2022-08-03 에스케이하이닉스 주식회사 메모리 시스템 내 프리 블록을 확보하는 장치 및 방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2629330B2 (ja) 1989-01-12 1997-07-09 富士通株式会社 データ更新コミット処理方式
JP2582487B2 (ja) * 1991-07-12 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 半導体メモリを用いた外部記憶システム及びその制御方法
US5832493A (en) * 1997-04-24 1998-11-03 Trimble Navigation Limited Flash file management system
JP3721725B2 (ja) * 1997-07-09 2005-11-30 ソニー株式会社 情報処理方法および情報処理装置
KR100330164B1 (ko) * 1999-04-27 2002-03-28 윤종용 무효 블록들을 가지는 복수의 플래시 메모리들을 동시에 프로그램하는 방법
FI109620B (fi) * 1999-10-26 2002-09-13 Tellabs Oy Menetelmä ja järjestely atomaaristen päivitysten toteuttamiseksi loogista flashmuistilaitetta käyttäen
JP3793868B2 (ja) 1999-11-25 2006-07-05 カシオ計算機株式会社 フラッシュメモリ管理装置及び記録媒体
JP4812192B2 (ja) 2001-07-27 2011-11-09 パナソニック株式会社 フラッシュメモリ装置、及び、それに記憶されたデータのマージ方法
JP2004242160A (ja) 2003-02-07 2004-08-26 Sony Corp データ書込高速化方法及びその電子機器
JP2006126919A (ja) 2004-10-26 2006-05-18 Kyocera Corp フラッシュメモリのデータ管理装置およびフラッシュメモリの制御方法
US20070300013A1 (en) * 2006-06-21 2007-12-27 Manabu Kitamura Storage system having transaction monitoring capability

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012155705A (ja) * 2011-01-27 2012-08-16 Micron Technology Inc トランザクションメモリ
US9104690B2 (en) 2011-01-27 2015-08-11 Micron Technology, Inc. Transactional memory
US10083122B2 (en) 2011-01-27 2018-09-25 Micron Technology, Inc. Transactional memory
JP2013080397A (ja) * 2011-10-04 2013-05-02 Dainippon Printing Co Ltd Icチップ、icチップにおける処理方法、icチップ用処理プログラム、及びicカード
JP2013092938A (ja) * 2011-10-26 2013-05-16 Dainippon Printing Co Ltd Icチップ、icチップにおける処理方法、icチップ用処理プログラム、及びicカード等
WO2015170454A1 (ja) * 2014-05-07 2015-11-12 ソニー株式会社 メモリ制御装置、メモリ装置およびメモリ制御方法
US9916103B2 (en) 2014-05-07 2018-03-13 Sony Corporation Memory control device, memory device, and memory control method

Also Published As

Publication number Publication date
CN101315613A (zh) 2008-12-03
US20080301393A1 (en) 2008-12-04
KR20080104815A (ko) 2008-12-03
US7971022B2 (en) 2011-06-28
KR101336258B1 (ko) 2013-12-03

Similar Documents

Publication Publication Date Title
JP2008299848A (ja) 不揮発性メモリのデータ処理装置及びその処理方法
KR101473344B1 (ko) 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작방법
JP4778942B2 (ja) 不揮発性メモリを管理する装置及び方法
JP5405513B2 (ja) メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法、及びプログラム
JP5413572B2 (ja) メモリストレージ装置及びその制御方法
JP4422652B2 (ja) 漸進的マージ方法及びそれを利用したメモリシステム
JP5420814B2 (ja) バッファメモリに貯蔵されたデータを無効化させるスキームを有する貯蔵システム及びそれを含んだコンピューティングシステム
KR100484147B1 (ko) 플래시 메모리 관리 방법
US8402202B2 (en) Input/output control method and apparatus optimized for flash memory
JP2005222550A (ja) フラッシュメモリのリマッピング方法
JP2008198208A (ja) ホストデータ処理装置の動作方法、ホストデータ処理装置並びにデータ格納装置
KR20120037786A (ko) 저장 장치, 그것의 락 모드 관리 방법, 및 그것을 포함하는 메모리 시스템
JP2011090460A (ja) データ記憶装置およびデータ記憶装置における制御方法
JP2007220107A (ja) 不揮発性メモリのマッピング情報管理装置及び方法
US11176089B2 (en) Systems and methods for implementing dynamic file systems
JP2015053075A (ja) メモリシステム、情報処理装置および記憶装置
JP5649709B2 (ja) メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法およびプログラム
US20130326123A1 (en) Memory management device and method, and program
KR100801072B1 (ko) 플래시 메모리, 이를 위한 맵핑 장치 및 방법
JP7435470B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
JP2008191855A (ja) 半導体記憶装置及びメモリ制御方法
JP2016177822A (ja) メモリシステム
KR20220096247A (ko) 플래시 메모리의 가비지 콜렉션 방법 및 이를 이용하는 저장 장치
JP2010152832A (ja) 情報記録装置、半導体記憶装置のファイル管理方法
KR20160085035A (ko) 메모리제어장치 및 메모리제어장치의 동작 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110524

A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A073

Effective date: 20120925