JP4902547B2 - フラッシュメモリのデータ処理装置及び方法 - Google Patents

フラッシュメモリのデータ処理装置及び方法 Download PDF

Info

Publication number
JP4902547B2
JP4902547B2 JP2007542897A JP2007542897A JP4902547B2 JP 4902547 B2 JP4902547 B2 JP 4902547B2 JP 2007542897 A JP2007542897 A JP 2007542897A JP 2007542897 A JP2007542897 A JP 2007542897A JP 4902547 B2 JP4902547 B2 JP 4902547B2
Authority
JP
Japan
Prior art keywords
data
count
flash memory
logical address
inverted
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
JP2007542897A
Other languages
English (en)
Other versions
JP2008521123A (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.)
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 JP2008521123A publication Critical patent/JP2008521123A/ja
Application granted granted Critical
Publication of JP4902547B2 publication Critical patent/JP4902547B2/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
    • 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

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)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Description

本発明は、フラッシュメモリのデータ処理装置及び方法に関し、より詳しくはフラッシュメモリのデータに対する有効性を容易に判断し得るフラッシュメモリのデータ処理装置及び方法に関するものである。
一般に、家電機器、通信機器、セットトップボックスなどの埋め込みシステムにはデータを格納して処理するための格納媒体として不揮発性メモリが多く使われている。
不揮発性メモリのうち主に使われるフラッシュメモリは、電気的にデータを削除したり、再記録することができる不揮発性記憶素子であって、磁気ディスクメモリを基盤とする格納媒体に比べて電力消耗が少なく、ハードディスクのような速いアクセスタイムを有し、サイズが小さいため、携帯機器などに適する。
フラッシュメモリは、ハードウェア的な特性上、既に記録されているデータに再記録する場合、該当データが記録されたブロック全体を削除する過程を必要とする。
このように、フラッシュメモリでデータの記録及び削除単位の不一致によって生じ得る性能低下を防止するために論理アドレスと物理アドレスの概念が導入された。
このとき、論理アドレスはユーザが所定のユーザプログラムを通じてフラッシュメモリで所定のデータ演算を行う場合に使われるアドレスであり、物理アドレスは実際フラッシュメモリで所定のデータ演算を行う場合に使われるアドレスである。
また、フラッシュメモリは一般に小ブロックフラッシュメモリと大ブロックフラッシュメモリに区分されるが、小ブロックフラッシュメモリは論理的な演算単位と物理的な演算単位が同一である反面、大ブロックフラッシュメモリは論理的な演算単位に比べて物理的な演算単位が大きい特性を有する。
図1及び図2は一般的な小ブロックフラッシュメモリと大ブロックフラッシュメモリの概略的な構造を示す図面である。
小ブロックフラッシュメモリは図1に示すように、論理的な演算単位であるセクター11と物理的な演算単位であるページ12が同一であることが分かる。
一方、大ブロックフラッシュメモリは図2に示すように、少なくとも1つ以上の論理的な演算単位であるセクター21が集まって1つの物理的な演算単位であるページ22を構成することが分かる。
フラッシュメモリを基盤とするシステムは、その応用分野の特性上、予測できない電源供給中断が頻繁に発生する。したがって、フラッシュメモリの動作中に電源が中断された場合に対する対応が必須的である。
具体的に、フラッシュメモリに所定のデータを記録する場合と削除する場合について説明する。まず、フラッシュメモリに所定のデータを記録する途中、電源供給が中断されれば、フラッシュメモリに記録しようとしたデータの一部は記録され、また一部は記録されない場合が発生する。一方、フラッシュメモリから所定のデータを削除する途中、電源供給が中断されれば、フラッシュメモリから削除しようとしたデータの一部は削除され、また一部は削除されない場合が発生する。
したがって、フラッシュメモリにおけるデータの記録及び削除のようなデータ演算が完了する前に予測できなかった電源供給中断が発生した場合に対応してフラッシュメモリのデータに対する有効性を判断し得る多様な方法が提案されている。
図3は従来技術によるフラッシュメモリにおけるデータ記録演算方法を示す図面である。
図示のように、まずフラッシュメモリの所定セクターにデータを記録しようとする場合、該当セクターにデータを記録できるか否かを判断し、判断結果、該当セクターにデータを記録できる場合、データ記録演算を行う同時にデータが記録されるセクターに該当する所定のインデックス領域に所定のマーキング値を記録する(S10)。
具体的に、フラッシュメモリは図4に示すように、データ領域31とインデックス領域32からなる多数ページ33が集まって1つのブロック34を構成する。また、インデックス領域32はさらにデータ記録演算進行状態を表す第1インデックス領域32aと、データ削除演算進行状態を表す第2インデックス領域32bに分けられる。このとき、第1インデックス領域32a及び第2インデックス領域32bに各々第1マーキング値と第3マーキング値が記録される。
また、データ領域31が図5のように、多数のセクターからなる場合、第1インデックス領域32aは各セクターによって別に構成される。このとき、第2インデックス領域32bも一般にセクター単位で構成される。
データ記録演算が完了すれば(S20)、第1インデックス領域32aにはデータ記録演算が完了したことを表す第2マーキング値が記録される(S30)。
例えば、データ記録演算が開始すれば、第1インデックス領域32aには第1マーキング値である「0xFE」が記録され、第2インデックス領域には第3マーキング値である「0x00」が記録される。また、データ記録演算が完了すれば第1インデックス領域32aには第2マーキング値である「0xFC」が記録される。
このとき、データ記録演算時にデータを記録できるか否かを判断する方法は、第1インデックス領域32a及び第2インデックス領域32bに記録された値が全て初期値、例えば「0xFF」である場合はデータ記録可能と判断し、場合によってはデータ領域31の値が「0xFF」である場合まで含んでデータ記録可能と判断するようになる。具体的に、フラッシュメモリで削除演算が行われる場合、全てのビットは1に変わる。したがって、全てのビットが1である場合の「0xFF」である場合、データ記録可能状態となる。
図6は前記図3のデータ記録方法によって記録されたデータの有効性を判断する方法を示している。
図示のように、まず第1インデックス領域32a及び第2インデックス領域32bに記録された値が正常であるか否かを判断する(S40)。
具体的に、第1インデックス領域32a及び第2インデックス領域32bに記録された値が前記第2マーキング値及び第3マーキング値である場合、第1インデックス領域32a及び第2インデックス領域32bに記録された値が正常であると判断する。
判断結果、正常である場合は該当セクターに記録されたデータを有効であると判断し(S50)、そうでない場合は有効でないと判断する(S60)。
しかし、前記のような従来技術によるデータの有効性判断方法は、該当セクターに記録されたデータの有効性を判断するために、データ記録時にデータ領域にデータ、第1インデックス領域32aに第1マーキング値、第2インデックス領域には第3マーキング値を記録する第1記録演算と第1インデックス領域32aにさらに第2マーキング値を記録する第2記録演算を経るようになる。
このような2回にわたる記録動作はフラッシュメモリの全体的な書き込み性能低下をもたらし得るという問題点がある。
また、フラッシュメモリのデータ削除演算が行われる途中、電源供給が中断されれば、前記データ領域31のデータのうち一部は削除されるが、第1インデックス領域32aと第2インデックス領域32bの値は全く削除されないため、実際的にデータは有効でないが、第1インデックス領域32a及び第2インデックス領域32bに記録されている値によっては有効であると判断し得るという問題点がある。すなわち、図7のように有効であるデータがデータ領域31に記録された状態でデータ削除演算が行われる途中、電源供給が中断されれば、図8のようにデータ領域31のデータは有効でないが、第1インデックス領域32aの第1マーキング値「0xFC」、第2インデックス領域32bの第3マーキング値「0x00」は削除演算の影響を受けずにそのまま残っているため有効性判断結果、有効であるデータと判断し得るという問題点がある。
特許文献1には、記録削除演算によるマッピング情報を更新し、これを格納してエラーを防止し得るフラッシュメモリ、それによるフラッシュメモリアクセス装置及び方法を開示しているが、これは記録削除演算によるマッピング情報を更新するために経なければならない記録動作回数とマッピング情報自体にエラーが発生した場合、データの有効性を判断し難いという問題点がある。
韓国公開特許第2004−0042478号公報
本発明は、フラッシュメモリに所定のデータ演算を行う途中、電源供給が中断される場合、データの有効性を容易に判断し得るフラッシュメモリのデータ処理装置及び方法を提供することを目的とする。
本発明の目的は、前記目的に制限されず、言及していないさらなる目的は下記によって当業者に明確に理解できるものである。
前記目的を達成するために、本発明の実施形態によるフラッシュメモリのデータ処理装置は、所定の論理アドレスを用いてデータ演算を要請するユーザ要請部と、前記論理アドレスを物理アドレスに変換する変換部と、前記データから所定ビットの個数をカウントしたカウントデータを前記データ演算実行時に前記データの有効性の可否を示すインデックス領域に記録する制御部とを含む。
また、前記目的を達成するために、本発明の実施形態によるフラッシュメモリのデータ処理装置は、所定の論理アドレスに存在するデータの有効性の可否を示すインデックス領域に記録されたデータを抽出する抽出部と、前記論理アドレスに存在するデータと前記抽出されたデータの関係によって前記論理アドレスに存在するデータの有効性の可否を判断する制御部とを含む。
また、前記目的を達成するために、本発明の実施形態によるフラッシュメモリのデータ処理方法は、所定の論理アドレスを用いて所定のデータ演算が要請されるステップと、前記論理アドレスが物理アドレスに変換されるステップと、前記データから所定のビットの個数をカウントしたカウントデータを前記データ演算実行時に前記データの有効性の可否を示すインデックス領域に記録するステップとを含む。
さらに、前記目的を達成するために、本発明の実施形態によるフラッシュメモリのデータ処理方法は、所定の論理アドレスに存在するデータの有効性の可否を示すインデックス領域に記録されたデータを抽出するステップと、前記論理アドレスに存在するデータと前記抽出されたデータの関係によって前記論理アドレスに存在するデータの有効性の可否を判断するステップとを含む。
その他、実施形態の具体的な事項は詳細な説明及び図面に含まれている。
前記のような本発明のフラッシュメモリのデータ処理装置及び方法によれば次のような効果が1つあるいはそれ以上ある。
第一に、データの記録または削除演算中に電源が中断されて、記録または削除中のデータが所望するデータと異なる場合、これを発見する検査の正確度を高めることができるという長所がある。
第二に、所定論理アドレスに該当するインデックス領域にデータ記録演算後、所定値をマーキングしないため、データの有効性判断のためにデータ記録時に必要とする演算回数が減少してフラッシュメモリの全体的な性能を向上させることができるという長所がある。
本発明の利点及び特徴、そしてそれらを達成する方法は添付する図面とともに詳細に後述する実施形態を参照すれば明確になる。しかし、本発明は以下に開示される実施形態に限定されず、相異なる多様な形態によって具現でき、単に本実施形態は本発明の開示を完全なものにし、本発明の属する技術分野における通常の知識を有する者に発明の範疇を完全に知らせるために提供するものであって、本発明は請求項の範疇によってのみ定義される。明細書全体にわたって同じ参照符号は同じ構成要素を示す。
以下、本発明の実施形態により、フラッシュメモリのデータ処理装置及び方法を説明するためのブロック図または処理フローチャートに関する図面を参考して本発明について説明する。この場合、処理フローチャートの各ブロックとフローチャートの組み合せは、コンピュータプログラムインストラクションによって行われることが理解できる。これらコンピュータプログラムインストラクションは、汎用コンピュータ、特殊用コンピュータまたはその他プログラム可能なデータプロセシング装備のプロセッサに搭載できるので、コンピュータまたはその他プログラム可能なデータプロセシング装備のプロセッサによって行われるインストラクションはフローチャートブロックで説明する機能を行う手段を生成する。これらコンピュータプログラムインストラクションは、特定方式で機能を具現するために、コンピュータまたはその他プログラム可能なデータプロセシング装備が備えられるコンピュータによって利用可能または読取可能なメモリに格納できるので、そのコンピュータによって利用可能または読取可能なメモリに格納したインストラクションは、フローチャートブロックで説明する機能を行うインストラクション手段を含む製造品目の生産に用いることができる。また、コンピュータプログラムインストラクションは、コンピュータまたはその他プログラム可能なデータプロセシング装備上に搭載できるので、コンピュータまたはその他プログラム可能なデータプロセシング装備上で一連の動作ステップが行われ、コンピュータで実行されるプロセスを生成してコンピュータまたはその他プログラム可能なデータプロセシング装備の機能を行うインストラクションは、フローチャートブロックで説明する各ステップの機能を実行することもできる。
また、各ブロックは特定した論理的機能を実行するための1つ以上の実行可能なインストラクションを含むモジュール、セグメントまたはコードの一部を表すことができる。また、複数の代替実行例ではブロックで言及した機能が順序から外れて行われ得ることに注目しなければならない。例えば、連続して図示している2つのブロックは、実質的に同時に行われることも可能であり、またはそのブロックが場合によって該当する機能に応じて逆順に行われることも可能である。
以下、添付する図面を参照して本発明の好ましい実施形態を詳細に説明する。
一般に、フラッシュメモリは大きく小ブロックフラッシュメモリと大ブロックフラッシュメモリに分けられる。
小ブロックフラッシュメモリは実際の物理的な演算単位と論理的な演算単位が同一である反面、前記大ブロックフラッシュメモリは実際の物理的な演算単位が前記論理的な演算単位より大きい。
ここで、論理的な演算単位は通常セクターといい、ユーザが所定のユーザプログラムを使用してフラッシュメモリにデータを記録するための演算単位である。
また、物理的な演算単位は通常ページといい、実際のフラッシュメモリにおけるデータ演算、例えばデータ記録などの演算単位である。
このとき、論理的な演算単位及び物理的な演算単位はセクター及びページに限られず、使用する装置によって多様な単位で使うことができる。
従来には各セクターデータ演算を行う場合、データの有効性検証のために、データ演算が完了した後、所定セクターに該当するインデックス領域に所定値をマーキングする過程を経る。このようなデータ演算後、必要とするマーキング過程は全般的な書き込み性能を低下させ得る。
また、セクターだけでなく、インデックス領域に該当する容量がさらに使われるため格納容量が浪費される。
したがって、本発明の実施形態はフラッシュメモリでデータ演算実行時に有効性判断のために必要とする演算回数及び容量を減少させると同時に各論理アドレスのデータ有効性の可否を容易に判断し得るフラッシュメモリのデータ処理装置に関し、図9は本発明によるフラッシュメモリのデータ処理装置の構造を概略的に示している。
図示のように、本発明の実施形態によるフラッシュメモリのデータ処理装置は、ユーザが所定の論理アドレスを用いてフラッシュメモリにおけるデータ演算を要請するユーザ要請部100と、論理アドレスを物理アドレスに変換する変換部200と、変換された物理アドレスによってフラッシュメモリの動作を制御するデバイスドライバ400を通じてフラッシュメモリに所定のデータ演算を行い、データ演算実行結果、論理アドレスに存在するデータから所定ビットの個数をカウントしたカウントデータを、論理アドレスに存在するデータの有効性の可否を示すインデックス領域に記録する制御部300と、論理アドレスに存在するデータの有効性判断時にインデックス領域のデータを抽出する抽出部500とを含むことができる。
本発明の実施形態によるフラッシュメモリは図10に示すように、少なくとも1つ以上の論理アドレスを含み、データ演算が行われるデータ領域610と、データ演算実行結果、データ領域610に存在するデータの所定ビットの個数をカウントしたカウントデータが記録されるインデックス領域620を含むことができる。このとき、データの所定ビットとして「1」ビットまたは「0」ビットを使うことができ、場合によって選択的に使うことができる。
また、インデックス領域620は所定ビットの個数をカウントしたカウントデータが記録されるカウント領域621と、カウントデータのインバートされたデータが記録されるインバート領域622とを含むことができる。このようなインデックス領域620はデータ領域610に存在するデータが記録される単位によって構成される。インデックス領域620はデータ領域610に1回にわたるデータ記録が完了する領域の次に位置することができる。例えば、データ領域610にデータが1回に10byteが記録されれば、インデックス領域620は10byteの次に位置し、データ領域610にデータが1回に504byteが記録されれば、インデックス領域620は504byteの次に位置することができる。もちろんインデックス領域620の位置がデータ領域の次に固定されているのではない。
ここで、インバートされたデータはカウント領域621に記録されたカウントデータが所定の変換方式によって変換されたデータであって、本発明の実施形態では変換方式として論理アドレスに記録されたデータの1の補数変換が行われた場合を例として説明しているが、これに限定されず、インバートされたデータの逆変換時に論理アドレスに記録されたデータと同一になる全ての変換方式、例えば2の補数変換などを採択することもできる。例えば、インバートされたデータがカウントデータの1の補数である場合、カウントデータが「1010」であればインバートされたデータは「0101」になり得る。
一方、制御部300はインデックス領域620に記録されたカウントデータ及びインバートされたデータによってデータ領域610に存在するデータの有効性を判断することができる。このとき、カウントデータ及びインバートされたデータは抽出部500によって抽出され、制御部300は抽出されたカウントデータに対する有効性を判断した後、データ領域610に存在するデータの有効性を判断することができる。
制御部300はインバートされたデータを逆変換してカウントデータと同一であるか否かを判断し、判断結果に応じてカウントデータの有効性を判断することができる。このとき、カウントデータの有効性を判断する理由は、カウントデータを使ってデータの有効性を判断する前にカウントデータ自体の有効性を先に確認しなければならないためである。
以後、制御部300はカウントデータによる所定ビットの個数とデータ領域610に存在するデータで該当ビットの個数を比較して同一である場合は有効であると判断し、そうでない場合は有効でないと判断することができる。
したがって、各セクターに対するデータの有効性を判断するためにデータ記録演算後、セクターに該当するインデックス領域に所定値をマーキングする場合に比べて必要とする演算回数を減らすことができる
以下、本発明の実施形態によるフラッシュメモリのデータ処理方法について説明する。
図11は本発明の実施形態によるフラッシュメモリのデータ演算実行時にカウントデータ及びインバートされたデータを生成する方法を示す図面である。
図示のように、まずユーザがユーザ要請部100を用いて所定の論理アドレスにデータ演算を要請する(S110)。
このとき、制御部300はデータ演算実行以前にデータ演算時に使われるデータから所定ビットの個数をカウントし(S120)、カウント結果に応じて制御部300は所定ビットの個数をカウントしたカウントデータを生成する(S130)。このとき、カウントされるビットは「1」ビットまたは「0」ビットであり得、場合によって選択的に使うことができる。
また、制御部300は生成されたカウントデータのインバートされたデータを生成する(S140)。
具体的に、ユーザがデータ演算を要請すれば、該当データはバッファーにロードされ、制御部300はロードされたデータから所定ビットの個数をカウントするようになる。このとき、制御部300はカウントされたカウントデータを通じてインバートされたデータをまた生成するようになる。また、制御部300は生成されたカウントデータ及びインバートされたデータをバッファーにロードさせる。
以後、制御部300はデータ演算を行う同時に生成されたカウントデータ及びインバートされたデータを各々カウント領域621とインバート領域622に記録する(S150)。すなわち、制御部300はバッファーにロードされたデータ、カウントデータ及びインバートされたデータを各々データ領域610、カウント領域621、インバート領域622に記録する。
前記図11の本発明の実施形態によるカウントデータ及びインバートされたデータの生成方法を図12及び図13を参照してより詳細に説明する。
データ領域610に所定のデータ演算によって「100101011」が存在する場合、制御部300が「1」ビットの個数をカウントするようになれば、図12のようにカウント領域621には「0110」が記録される。このとき、インバートされたデータがカウントデータの1の補数である場合、インバート領域622には「0110」の1の補数である「1001」が記録される。例えば、制御部300が「0」ビットの個数をカウントすれば、図13のようにカウント領域621には「0100」が記録され、インバート領域622には「0100」の1の補数である「1011」が記録される。
図14は前記図11の方法によって記録されたカウントデータとインバートされたデータによってデータ領域610に存在するデータの有効性を判断する方法を示す図面である。
図示のように、まず抽出部500がカウント領域621及びインバート領域622のカウントデータ及びインバートされたデータを抽出する(S210)。
以後、制御部300は抽出されたカウントデータ及びインバートされたデータが互いにインバート関係を有するか否かを判断する(S220)。このとき、インバート関係はインバートされたデータを逆変換してカウントデータと比較して同一であるか否かを判断し、判断結果、同一である場合はインバート関係を有すると判断し、そうでない場合はインバート関係でないと判断する。また、カウントデータとインバートされたデータが互いにインバート関係でない場合にはデータ領域610に存在するデータに対する有効性を判断することができないためデータ領域610に存在するデータも有効でないと判断する。
判断結果、カウントデータとインバートされたデータが互いにインバート関係である場合、制御部300はデータ領域610に存在するデータから所定ビットの個数をカウントする(S230)。このとき、カウントされるビットはカウントデータ生成時に使われたビットと同一ビットが使われる。
データ領域610に存在するデータから所定ビットの個数をカウントしたデータと抽出されたカウントデータが同一であるか否かを判断する(S240)。
判断結果、データ領域610に存在するデータで所定ビットの個数と抽出されたカウントデータによる所定ビットの個数が同一である場合、データ領域610に存在するデータは有効であると判断される(S250)。
例えば、データ領域610に存在するデータで所定ビットの個数と抽出されたカウントデータによる所定ビットの個数が異なったり、前記カウントデータとインバートされたデータが互いにインバート関係でない場合、データ領域610に存在するデータは有効でないと判断される(S260)。
一方、本発明の実施形態において、「部」はソフトウェアまたはField Programmable Gate Array(FPGA)または注文型半導体(Application Specific Integrated Circuit、ASIC)のようなハードウェア構成要素を意味し、モジュールはある役割を行う。しかし、モジュールはソフトウェアまたはハードウェアに限定される意味ではない。モジュールはアドレシングできる格納媒体にあるように構成することができ、1つまたはそれ以上のプロセッサを実行させるように構成することもできる。したがって、一例としてモジュールは、ソフトウェア構成要素、オブジェクト指向ソフトウェア構成要素、クラス構成要素及びタスク構成要素などのような構成要素と、プロセス、関数、属性、プロシージャ、サブルーチン、プログラムコードのセグメント、ドライバ、ファームウェア、マイクロコード、回路、データ、データベース、データ構造、テーブル、アレイ、及び変数を含む。構成要素とモジュールにより提供される機能は、さらに小さい数の構成要素及びモジュールで結合されたり、追加的な構成要素とモジュールにさらに分離できる。
以上、本発明によるフラッシュメモリのデータ処理装置及び方法を例示する図面を参照して説明したが、本発明は本明細書に開示した実施形態と図面に限定されず、その発明の技術思想範囲内で当業者によって多様な変形が行われるのは言うまでもない。
一般的な小ブロックフラッシュメモリの構造を示す図である。 一般的な大ブロックフラッシュメモリの構造を示す図である。 従来技術によるフラッシュメモリにおけるデータの記録演算方法を示す図である。 一般的なフラッシュメモリのデータ領域とインデックス領域を示す図である。 図4のデータ領域に含まれた各セクター別に区分されたインデックス領域を示す図である。 従来技術によるフラッシュメモリのデータ有効性判断方法を示す図である。 従来技術によって有効であるデータが記録されたデータ領域とインデックス領域を示す図である。 従来技術によって有効でないデータが記録されたデータ領域とインデックス領域を示す図である。 本発明によるフラッシュメモリのデータ処理装置を示す図である。 本発明の実施形態によるデータ領域及びインデックス領域を示す図である。 本発明の実施形態によるカウントデータとインバートされたデータを生成する方法を示す図である。 本発明の実施形態によって1ビットの個数をカウントしたカウントデータ及びインバートされたデータを示す図である。 本発明の実施形態によって0ビットの個数をカウントしたカウントデータ及びインバートされたデータを示す図である。 本発明の実施形態によってフラッシュメモリに記録されたデータの有効性を判断する方法を示す図である。

Claims (13)

  1. 所定の論理アドレスを用いてデータ演算を要請するユーザ要請部と、
    前記論理アドレスを物理アドレスに変換する変換部と、
    前記データから所定ビットの個数をカウントしたカウントデータと、該カウントデータのインバートされたデータとを、前記データ演算実行時に前記データの有効性の可否を示すインデックス領域に記録する制御部と、を含むフラッシュメモリのデータ処理装置。
  2. 前記インデックス領域は、前記カウントデータが記録されるカウント領域と、前記インバートされたデータが記録されるインバート領域と、を含む請求項に記載のフラッシュメモリのデータ処理装置。
  3. 前記インバートされたデータは前記カウントデータの逆データからなる請求項に記載のフラッシュメモリのデータ処理装置。
  4. 所定の論理アドレスに存在するデータの有効性の可否を示すインデックス領域に記録されたデータを抽出する抽出部と、
    前記論理アドレスに存在するデータと前記抽出されたデータの関係によって前記論理アドレスに存在するデータの有効性の可否を判断する制御部と、を含み、
    前記インデックス領域は、前記論理アドレスに存在するデータの所定ビットの個数をカウントしたカウントデータが記録されるカウント領域と、前記カウントデータのインバートされたデータが記録されるインバート領域と、を含む、
    フラッシュメモリのデータ処理装置。
  5. 前記インバートされたデータは前記カウントデータの逆データからなる請求項に記載のフラッシュメモリのデータ処理装置。
  6. 前記制御部は、前記インバートされたデータの逆変換時に前記カウントデータと同一である場合、前記カウントデータが有効であると判断する請求項に記載のフラッシュメモリのデータ処理装置。
  7. 前記制御部は、前記論理アドレスに存在するデータで所定ビットの個数と前記カウントデータによる該当ビットの個数が同一である場合、前記論理アドレスに存在するデータが有効であると判断する請求項に記載のフラッシュメモリのデータ処理装置。
  8. 所定の論理アドレスを用いて所定のデータ演算が要請されるステップと、
    前記論理アドレスが物理アドレスに変換されるステップと、
    前記データから所定ビットの個数をカウントしたカウントデータと、該カウントデータのインバートされたデータとを、前記データ演算実行時に前記データの有効性の可否を示すインデックス領域に記録するステップと、を含むフラッシュメモリのデータ処理方法。
  9. 前記インバートされたデータは前記カウントデータの逆データからなる請求項に記載のフラッシュメモリのデータ処理方法。
  10. 所定の論理アドレスに存在するデータの有効性の可否を示すインデックス領域に記録されたデータを抽出するステップと、
    前記論理アドレスに存在するデータと前記抽出されたデータの関係によって前記論理アドレスに存在するデータの有効性の可否を判断するステップと、を含み、
    前記インデックス領域に記録されたデータを抽出するステップは、前記論理アドレスに存在するデータから所定ビットの個数をカウントしたカウントデータを抽出するステップと、前記カウントデータのインバートされたデータを抽出するステップと、を含む、
    フラッシュメモリのデータ処理方法。
  11. 前記論理アドレスに存在するデータ有効性の可否を判断するステップは、前記カウントデータの有効性の可否を判断するステップをさらに含む請求項10に記載のフラッシュメモリのデータ処理方法。
  12. 前記論理アドレスに存在するデータ有効性の可否の判断は、前記カウントデータが有効である場合にのみ行われ、前記カウントデータは逆変換されたインバートされたデータと同一である場合、有効であると判断する請求項11に記載のフラッシュメモリのデータ処理方法。
  13. 前記論理アドレスに存在するデータは、前記カウントデータによる所定ビットの個数と前記論理アドレスに存在するデータで該当ビットの個数が同一である場合、有効であると判断する請求項12に記載のフラッシュメモリのデータ処理方法。
JP2007542897A 2004-11-19 2005-11-14 フラッシュメモリのデータ処理装置及び方法 Active JP4902547B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020040095286A KR100643287B1 (ko) 2004-11-19 2004-11-19 플래시 메모리의 데이터 처리 장치 및 방법
KR10-2004-0095286 2004-11-19
PCT/KR2005/003851 WO2006054852A1 (en) 2004-11-19 2005-11-14 Apparatus and method for processing data of flash memory

Publications (2)

Publication Number Publication Date
JP2008521123A JP2008521123A (ja) 2008-06-19
JP4902547B2 true JP4902547B2 (ja) 2012-03-21

Family

ID=36407364

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007542897A Active JP4902547B2 (ja) 2004-11-19 2005-11-14 フラッシュメモリのデータ処理装置及び方法

Country Status (8)

Country Link
US (2) US8015344B2 (ja)
EP (1) EP1812866A4 (ja)
JP (1) JP4902547B2 (ja)
KR (1) KR100643287B1 (ja)
CN (1) CN101061466B (ja)
AU (2) AU2005307231A1 (ja)
CA (1) CA2587724C (ja)
WO (1) WO2006054852A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US8914557B2 (en) * 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
KR100736103B1 (ko) 2006-06-27 2007-07-06 삼성전자주식회사 비휘발성 메모리, 상기 비휘발성 메모리의 데이터 유효성을판단하는 장치 및 방법
CN101256536B (zh) * 2007-03-01 2010-05-26 创惟科技股份有限公司 闪存地址转换层系统
KR101473344B1 (ko) * 2007-08-24 2014-12-17 삼성전자 주식회사 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작방법
KR101393622B1 (ko) 2007-08-30 2014-05-13 삼성전자주식회사 멀티 비트 플래시 메모리 장치를 포함하는 시스템 및그것의 데이터 처리 방법
US8631203B2 (en) * 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
US8495438B2 (en) * 2007-12-28 2013-07-23 Texas Instruments Incorporated Technique for memory imprint reliability improvement
JP4729062B2 (ja) * 2008-03-07 2011-07-20 株式会社東芝 メモリシステム
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
JP4696171B2 (ja) * 2009-05-19 2011-06-08 富士通株式会社 記憶装置、データ保存方法およびデータ保存プログラム
KR20140125985A (ko) * 2013-04-22 2014-10-30 에스케이하이닉스 주식회사 반도체 장치
CN105653469B (zh) * 2015-12-30 2018-11-02 深圳Tcl数字技术有限公司 数据写入方法和装置
CN107786320B (zh) * 2016-08-25 2021-06-22 华为技术有限公司 一种发送和接收业务的方法、装置和网络系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56107399A (en) * 1980-01-29 1981-08-26 Matsushita Electric Ind Co Ltd Parity check system
JPH01181141A (ja) * 1988-01-13 1989-07-19 Fujitsu Ltd メモリ誤り検出方式
JPH0830517A (ja) * 1994-07-20 1996-02-02 Mitsubishi Electric Corp 計装制御装置
JP2001273198A (ja) * 2000-03-23 2001-10-05 Toyota Motor Corp データ書込装置及びデータ破壊検出装置
JP2004021811A (ja) * 2002-06-19 2004-01-22 Hitachi Ltd 不揮発メモリを使用したディスク制御装置
JP2004310216A (ja) * 2003-04-02 2004-11-04 Nisca Corp 電子機器の動作制御を行うための制御装置及び自動原稿送り装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3840862A (en) * 1973-09-27 1974-10-08 Honeywell Inf Systems Status indicator apparatus for tag directory in associative stores
JPS59165300A (ja) * 1983-03-10 1984-09-18 Fujitsu Ltd メモリ障害訂正方式
US4980888A (en) * 1988-09-12 1990-12-25 Digital Equipment Corporation Memory testing system
US5473753A (en) * 1992-10-30 1995-12-05 Intel Corporation Method of managing defects in flash disk memories
US6571361B1 (en) * 1995-09-29 2003-05-27 Kabushiki Kaisha Toshiba Encoder and decoder
US5708790A (en) * 1995-12-12 1998-01-13 International Business Machines Corporation Virtual memory mapping method and system for address translation mapping of logical memory partitions for BAT and TLB entries in a data processing system
US5875477A (en) * 1995-12-22 1999-02-23 Intel Corporation Method and apparatus for error management in a solid state disk drive using primary and secondary logical sector numbers
JP3489708B2 (ja) 1996-10-23 2004-01-26 シャープ株式会社 不揮発性半導体記憶装置
JPH113284A (ja) * 1997-06-10 1999-01-06 Mitsubishi Electric Corp 情報記憶媒体およびそのセキュリティ方法
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
CN1249586C (zh) * 1997-12-22 2006-04-05 Tdk株式会社 闪速存储器系统
DE69732637T2 (de) * 1997-12-22 2005-12-29 Stmicroelectronics S.R.L., Agrate Brianza Selbsttest und Korrektur von Ladungsverlustfehlern in einem Sektorenlöschbaren und-programmierbaren Flashspeicher
KR100319598B1 (ko) * 1998-03-18 2002-04-06 김영환 플래시메모리어레이액세스방법및장치
JP4146006B2 (ja) 1998-09-28 2008-09-03 富士通株式会社 フラッシュメモリを有する電子機器
US6233645B1 (en) * 1998-11-02 2001-05-15 Compaq Computer Corporation Dynamically disabling speculative prefetch when high priority demand fetch opportunity use is high
US6473877B1 (en) * 1999-11-10 2002-10-29 Hewlett-Packard Company ECC code mechanism to detect wire stuck-at faults
US6141251A (en) * 2000-01-28 2000-10-31 Silicon Storage Technology, Inc. Non-volatile memory array having an index used in programming and erasing
US6767695B2 (en) * 2001-01-17 2004-07-27 International Business Machines Corporation CDROM copy protection
US7549011B2 (en) * 2001-08-30 2009-06-16 Micron Technology, Inc. Bit inversion in memory devices
US6977847B2 (en) 2001-11-23 2005-12-20 M-Systems Flash Disk Pioneers Ltd. Detecting partially erased units in flash devices
US7020815B2 (en) * 2002-08-29 2006-03-28 Micron Technology, Inc. Memory technology test apparatus
EP1548602B1 (en) * 2002-10-02 2008-03-12 Matsushita Electric Industrial Co., Ltd. Non-volatile storage device control method
KR100457812B1 (ko) 2002-11-14 2004-11-18 삼성전자주식회사 플래시 메모리, 그에 따른 플래시 메모리 액세스 장치 및방법
JP2004265162A (ja) * 2003-03-03 2004-09-24 Renesas Technology Corp 記憶装置およびアドレス管理方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56107399A (en) * 1980-01-29 1981-08-26 Matsushita Electric Ind Co Ltd Parity check system
JPH01181141A (ja) * 1988-01-13 1989-07-19 Fujitsu Ltd メモリ誤り検出方式
JPH0830517A (ja) * 1994-07-20 1996-02-02 Mitsubishi Electric Corp 計装制御装置
JP2001273198A (ja) * 2000-03-23 2001-10-05 Toyota Motor Corp データ書込装置及びデータ破壊検出装置
JP2004021811A (ja) * 2002-06-19 2004-01-22 Hitachi Ltd 不揮発メモリを使用したディスク制御装置
JP2004310216A (ja) * 2003-04-02 2004-11-04 Nisca Corp 電子機器の動作制御を行うための制御装置及び自動原稿送り装置

Also Published As

Publication number Publication date
EP1812866A4 (en) 2009-01-07
WO2006054852A1 (en) 2006-05-26
CN101061466B (zh) 2010-09-08
CN101061466A (zh) 2007-10-24
EP1812866A1 (en) 2007-08-01
US8230166B2 (en) 2012-07-24
CA2587724C (en) 2014-05-27
US20110276750A1 (en) 2011-11-10
US20060112215A1 (en) 2006-05-25
JP2008521123A (ja) 2008-06-19
CA2587724A1 (en) 2006-05-26
AU2005307231A1 (en) 2006-05-26
KR20060056440A (ko) 2006-05-24
KR100643287B1 (ko) 2006-11-10
US8015344B2 (en) 2011-09-06
AU2010201333A1 (en) 2010-04-29

Similar Documents

Publication Publication Date Title
JP4902547B2 (ja) フラッシュメモリのデータ処理装置及び方法
US9836392B2 (en) Storage control apparatus to control pre-processing operations
JP4688584B2 (ja) ストレージ装置
JP4227106B2 (ja) フラッシュメモリのデータ復旧装置及び方法
US9760433B2 (en) Flash memory control apparatus utilizing buffer to temporarily storing valid data stored in storage plane, and control system and control method thereof
AU2015371849A1 (en) Data reading method and apparatus
US7519764B2 (en) Apparatus and method for detecting data validity in flash memory
JP2005196769A (ja) フラッシュメモリのデータ管理装置及び方法
US11204864B2 (en) Data storage devices and data processing methods for improving the accessing performance of the data storage devices
KR100643288B1 (ko) 플래시 메모리의 데이터 처리 장치 및 방법
JP2007193449A (ja) 情報記録装置及びその制御方法
TWI796882B (zh) 讀取干擾檢查方法、記憶體儲存裝置及記憶體控制電路單元
TW201500923A (zh) 資料儲存裝置及用於快閃記憶體之資料讀取方法
CN113342276A (zh) 一种日志保存方法、系统、设备以及介质
JP4634404B2 (ja) 不揮発性メモリ、そのためのデータ有効性を判断する装置及び方法
JP2012521032A (ja) Ssdコントローラおよびssdコントローラの動作方法
JP2006338083A (ja) メモリコントローラ
JP2009271828A (ja) ストレージ装置、ストレージ装置制御システム、ストレージ装置の制御方法、及びプログラム
CN113703671B (zh) 一种数据块擦除方法及相关装置
JP4935101B2 (ja) メモリアクセス方法及び装置
TW201740276A (zh) 儲存裝置及其控制單元、可用於儲存裝置的資料搬移方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100820

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110707

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: 20111129

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: 20111228

R150 Certificate of patent or registration of utility model

Ref document number: 4902547

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150113

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250