JP2005196769A - フラッシュメモリのデータ管理装置及び方法 - Google Patents
フラッシュメモリのデータ管理装置及び方法 Download PDFInfo
- Publication number
- JP2005196769A JP2005196769A JP2004369991A JP2004369991A JP2005196769A JP 2005196769 A JP2005196769 A JP 2005196769A JP 2004369991 A JP2004369991 A JP 2004369991A JP 2004369991 A JP2004369991 A JP 2004369991A JP 2005196769 A JP2005196769 A JP 2005196769A
- Authority
- JP
- Japan
- Prior art keywords
- address
- physical
- data
- flash memory
- address information
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】フラッシュメモリのデータ管理装置及び方法を提供する。
【解決手段】物理的なデータ演算単位であるページ別に物理アドレスを区分し、各ページ別に該当物理アドレスを抽出してデータ演算を行うことによって、論理的なデータ演算単位に比べて物理的なデータ演算単位の大きい大ブロックフラッシュメモリでのデータ演算時にかかる時間を短縮させるので、最適のデータ演算を行える。
【選択図】図7
【解決手段】物理的なデータ演算単位であるページ別に物理アドレスを区分し、各ページ別に該当物理アドレスを抽出してデータ演算を行うことによって、論理的なデータ演算単位に比べて物理的なデータ演算単位の大きい大ブロックフラッシュメモリでのデータ演算時にかかる時間を短縮させるので、最適のデータ演算を行える。
【選択図】図7
Description
本発明はフラッシュメモリのデータ管理装置及び方法に係り、より詳細には大ブロックフラッシュメモリで論理的なデータ演算単位が物理的な演算単位より小さいために発生する非効率的なデータ演算方式を改善しうるフラッシュメモリのデータ管理装置及び方法に関する。
一般的に、家電機器、通信機器、セットトップボックスなどの内蔵型システム(Embedded System)では、データを保存して処理するための保存媒体としてフラッシュメモリを使用しうる。
前記フラッシュメモリは電気的にデータを削除するか、再記録可能な不揮発性記憶素子である。マグネチックディスクメモリを基盤にした保存媒体に比べてフラッシュメモリを基盤にした保存媒体は電力消耗が少なく、かつハードディスクのような速いアクセスタイムを有し、小型であるために携帯機器などに適している。
また、前記フラッシュメモリはハードウェア的な特性上、既に書込まれたデータに上書きを行う場合に該当データの記録されたブロック全体を消去する過程が必要である。
このように前記フラッシュメモリでデータの書込み及び消去単位の不一致によって発生する可能性があるフラッシュメモリの性能低下を防止するために論理アドレスと物理アドレスとの概念が導入された。
この際、前記論理アドレスはユーザが所定のユーザプログラムを通じて前記フラッシュメモリでのデータ読込み及び書込みなどのデータ演算を行う場合に使用するアドレスであり、前記物理アドレスは実際のフラッシュメモリへのデータの読込み及び書込みなどのデータ演算を行う場合に使用するアドレスである。
また、前記フラッシュメモリは一般的に小ブロックフラッシュメモリと大ブロックフラッシュメモリとに区分されるが、前記小ブロックフラッシュメモリは論理的なデータ演算単位と実際の物理的なデータ演算単位とが同一である一方、前記大ブロックフラッシュメモリは前記論理的なデータ演算単位に比べて前記実際物理的なデータ演算単位が小さい特性を有する。
一般的な大ブロックフラッシュメモリの構造を概略的に説明すれば、図1のように前記論理的なデータ演算単位であるセクタ11と、物理的なデータ演算単位であるページ12及びデータ削除単位であるブロック13よりなる。
この際、前記大ブロックフラッシュメモリは所定のセクタが集まって1つのページを構成する一方、前記小ブロックフラッシュメモリは1つのセクタが集まって1つのページを構成する。
前記大ブロックフラッシュメモリのデータ管理装置は、図2に示されたように、ユーザが所定の論理アドレスを使用して前記フラッシュメモリでのデータ演算を要請するユーザ要請部21と、前記データ演算要請時に使用した論理アドレスを所定のマッピングテーブルを通じて物理アドレスに変換する変換部22と、前記変換された物理アドレスによって前記フラッシュメモリの動作を制御するデバイスドライバ24を通じて前記フラッシュメモリで所定のデータ演算を行う演算部23とを含む。
前述したように構成される大ブロックフラッシュメモリのデータ管理装置の動作は図3に示されたように、ユーザが所定の論理アドレスを使用して前記フラッシュメモリでのデータ演算を要請する(S1)。
この際、前記ユーザは前記ユーザ要請部21が含む所定のユーザプログラムを通じて前記データ演算を要請しうる。
前記論理アドレスは前記変換部22で所定のマッピングテーブルを通じて実際のフラッシュメモリの物理アドレスに変換される(S2)。
前記変換された物理アドレスを通じて前記演算部23が前記フラッシュメモリの動作を制御するデバイスドライバ24を制御して前記ユーザが要請したデータ演算を行わせる(S3)。
この際、前記ユーザが使用したあらゆる論理アドレスに対するデータ演算が完了したか否かを判断し(S4)、前記判断の結果、あらゆる論理アドレスに対するデータ演算が完了していない場合、次の論理アドレスを物理アドレスに変換し(S5)、前記変換された物理アドレスにデータ演算を行う過程(S3)を反復的に行う。
すなわち、前記大ブロックフラッシュメモリの場合を例として説明すれば、前記ユーザがデータ演算要請時に使用した論理アドレスに該当する物理アドレスのセクタがそれぞれ異なるページに含まれた場合、前記演算部23は前記論理アドレスの順序によって該当物理アドレスが含まれたページにアクセスしてデータ演算を行う。
したがって、同じページに含まれた物理アドレスであるとしてもその順序が連続していない場合、前記演算部23は該当ページに反復的にアクセスしてデータ演算を行う。
この際、前記演算部23によるデータ演算のうちデータ読込みを例として説明する。
まず、前記ユーザが使用した論理アドレスが論理アドレス0〜論理アドレス5であり、それに該当する物理アドレスが図4Aと同一であれば、前記演算部23は論理アドレス0に該当する物理アドレスに対する演算を始めとして、論理アドレス1、論理アドレス2、論理アドレス3、論理アドレス4及び論理アドレス5の順序でデータ演算を行う。
すなわち、図4Bに示されたように、論理アドレスに該当する物理アドレスが含まれたページに順次にアクセスして該当論理アドレスに対する物理アドレスにデータ演算を行う。
この際、前記演算部23は1つのページに多数の物理アドレスが存在しても連続した物理アドレスではない場合、該当順序の物理アドレスに対するデータ演算のみを行う。
したがって、前記論理アドレス0ないし論理アドレス5に対するデータ演算を全て行うためには合計6回のページアクセスが必要となる。
しかし、前記のようなフラッシュメモリのデータ管理装置は、同じページに含まれた物理アドレスであっても、該当する論理アドレスの順序が連続的でない場合、同じページに反復的にアクセスしてデータ演算を行う。
したがって、同じページへの反復的なアクセスによりデータ演算時の所要時間が延びるために前記フラッシュメモリの性能低下を引き起こす問題点がある。
特許文献1は、ホストによりアクセスされるブロックを確認する論理ブロックアドレスを物理ブロックアドレスでマッピングする情報を保存する装置及び方法を提供しているが、これは単純に論理ブロックアドレスに対する物理ブロックアドレスをマッピングすることに関するものであって、物理ブロックアドレスへのデータ演算の実行時にかかる時間を短縮することについては開示していない。
韓国公開特許2001-0005824号公報
本発明は前記問題点を解決するために案出されたものであって、その目的は、同じページに含まれる物理アドレスに対するデータ演算を一回のページアクセスを通じて行って最適のデータ演算を行えるフラッシュメモリのデータ管理装置及び方法を提供するところにある。
前記目的を達成するための本発明に係るフラッシュメモリのデータ管理装置は、論理アドレスを物理アドレスに変換する変換部と、物理的なデータ演算単位別に物理アドレスを区分して再配列する再配列部と、前記再配列された物理アドレスを前記物理的なデータ演算単位で抽出して所定のデータ演算を行う演算部と、を含む。
望ましくは、前記再配列部は前記変換された物理アドレスと該当論理アドレスよりなるアドレス情報を前記物理アドレスの順序によって羅列したアドレスリストを生成する。
望ましくは、前記再配列部は前記アドレスリストに含まれたアドレス情報を各ページ別に区分する。
望ましくは、前記演算部でデータ演算のために抽出されたアドレス情報を前記アドレスリストから削除する。
一方、本発明に係るフラッシュメモリのデータ管理方法は、論理アドレスを物理アドレスに変換する第1段階と、物理アドレスの順序によって前記変換された物理アドレスを再配列する第2段階と、前記再配列された物理アドレスを物理的なデータ演算単位別に区分する第3段階と、を含む。
望ましくは、前記第2段階は前記変換された物理アドレスと該当論理アドレスよりなったアドレス情報を生成する第1過程と、前記生成されたアドレス情報を前記変換された物理アドレスの順序によって羅列したアドレスリストを生成する第2過程と、を含む。
望ましくは、前記物理的なデータ演算単位でアドレス情報を抽出する第4段階と、前記抽出されたアドレス情報に該当する物理アドレスでデータの演算を行う第5段階と、をさらに含む。
望ましくは、前記第5段階は前記データ演算に使われたアドレス情報を前記アドレスリストから削除する過程をさらに含む。
本発明によれば、物理的なデータ演算単位である各ページに含まれた物理アドレスを区分し、前記区分された物理アドレスに所定のデータ演算を行うことによって、論理的なデータ演算単位に比べて物理的なデータ演算単位の大きい大ブロックフラッシュメモリでのデータ演算時にかかる時間を短縮させるので、最適のデータ演算を行える。
以下、添付した図面を参照して本発明の望ましい実施形態を詳細に説明する。
一般的にフラッシュメモリは大きく小ブロックフラッシュメモリと大ブロックフラッシュメモリとに分けられる。
前記小ブロックフラッシュメモリは、実際の物理的なデータ演算単位のページの大きさが論理的なデータ演算単位のセクタの大きさと同一である一方、前記大ブロックフラッシュメモリは実際物理的なデータ演算単位のページが論理的なデータ演算単位のセクタに比べて大きい。
ここで、前記セクタは所定のユーザプログラムを通じてユーザが前記フラッシュメモリへのデータの演算、すなわち、データの読込み、書込みなどの演算を行う論理的なデータ演算単位である。
また、前記ページは、実際前記フラッシュメモリで行われるデータの演算を行う物理的なデータ演算単位であって、前記フラッシュメモリから/へのデータ読込み/書込みなどの演算単位である。
この際、前記物理的なデータ演算単位は前記ページに限定されず、使用する装置によってブロックなどの多様な単位として使われうる。
この際、前記大ブロックフラッシュメモリは、図5に示されたように、ブロック100は多数のセクタ110よりなる多数のページ120よりなる。
この実施形態では、前記ページ110、120、130が前記セクタ140の4倍、すなわち前記セクタ140が512byteである場合、前記各ページ110、120、130は2Kbyteである場合を例として説明する。
ここで、前記セクタ140は論理的な演算単位であり、前記ページ110、120、130は物理的な演算単位である。
この際、前記ユーザは前記フラッシュメモリに所定のデータ演算を行うために論理アドレスを要請し、前記論理アドレスは前記フラッシュメモリで所定のセクタにマッピングされうる。
すなわち、前記図5のように、所定セクタに対して物理アドレスが設定された場合、図6のような所定のマッピングテーブルを使用して前記各論理アドレスに該当する物理アドレスをマッピングさせうる。
したがって、ユーザが所定の論理アドレスを通じてデータの演算を行う場合、前記フラッシュメモリでは前記マッピングテーブルに係る物理アドレスに実際データの演算が行われるものである。
この際、前記ユーザが要請した論理アドレスによって該当物理アドレスでデータの演算を行うが、所定の物理アドレスが同じページに含まれた場合であっても、前記論理アドレスの順序によってデータの演算を行うために各々別途にデータの演算を行うために、これによって最適のデータ演算を行えなくなる。
図7は、本発明の実施形態に係るフラッシュメモリのデータ管理装置を示している。
示されたように、ユーザが所定の論理アドレスを使用して要請するデータ演算を要請するユーザ要請部200と、前記要請された論理アドレスを前記マッピングテーブルを通じて物理アドレスに変換する変換部300と、前記変換された物理アドレスが含まれたページを判断し、前記ページの順序によって前記物理アドレスの順序を再配列する再配列部400と、前記再配列された物理アドレスのうちページ単位で該当ページに含まれた物理アドレスを抽出して所定のデータ演算を行う演算部500と、前記フラッシュメモリの動作を制御し、前記演算部500の制御によって該当物理アドレスで実際データ演算を行うデバイスドライバ600と、を含む。
ここで、前記ユーザ要請部200は、ユーザが前記論理アドレスを通じて所定のデータ演算を要請できるユーザプログラムを含む。
前記変換部300は、前記ユーザが使用した論理アドレスを該当物理アドレスに変換する時に必要なマッピングテーブルを含む。
前記変換部300により変換された物理アドレスは該当論理アドレスと共に前記再配列部400に伝えられ、前記再配列部400は、前記変換された物理アドレス及び該当論理アドレスよりなるアドレス情報を生成し、前記アドレス情報を前記物理アドレスの順序によって羅列したアドレスリストを生成する。
次いで、前記演算部500は前記再配列部400で再配列されたアドレス情報を各ページ単位で抽出し、抽出されたページに含まれたアドレス情報を判読して該当物理アドレスでデータ演算を行う。
また、前記データ演算を行った物理アドレスに関するアドレス情報は前記アドレスリストから削除されうる。
前述したように構成される本発明に係るフラッシュメモリのデータ管理方法を説明する。
本発明に係るフラッシュメモリのデータ管理方法は、図8に示されたように、まずユーザが所定の論理アドレスを使用して前記フラッシュメモリでのデータ演算を要請する(S110)。
この際、前記小ブロックフラッシュメモリの場合には、論理的なデータ演算単位と実際物理的なデータ演算単位とが同一なために前記要請された論理アドレスと実際物理アドレスとが同一である。
一方、前記大ブロックフラッシュメモリの場合には、前記論理的なデータ演算単位が実際の物理的なデータ演算単位より小さいために前記要請された論理アドレスを実際の物理アドレスに変換する過程が要求される。
この実施形態では前記フラッシュメモリが大ブロックフラッシュメモリである場合を例として説明する。
前記要請された論理アドレスが前記変換部300に伝達されれば、前記マッピングテーブルにより前記論理アドレスが実際フラッシュメモリの物理アドレスに変換される(S120)。
前記変換された物理アドレス及び該当論理アドレスは前記再配列部400に伝えられ、前記再配列部400は前記変換された物理アドレス及び該当論理アドレスよりなるアドレス情報を生成する(S130)。
この際、前記アドレス情報は前記ユーザが使用した論理アドレスと、前記論理アドレスが前記マッピングテーブルによりマッピングされた物理アドレスとよりなる。
前記再配列部400は、前記生成されたアドレス情報を前記変換された物理アドレスの順序によって再配列したアドレスリストを生成する(S140)。
前記アドレスリストは、図9に示されたように、前記変換部300により変換された物理アドレス710と該当論理アドレス720とよりなるアドレス情報700を前記物理アドレス710の順序によって羅列したものである。
前記アドレスリストを生成した後、前記再配列部400は前記アドレスリストに含まれた各アドレス情報を物理的なデータ演算単位であるページ別に区分する(S150)。
すなわち、図10に示されたように、前記再配列部400により生成されたアドレスリスト内のアドレス情報に含まれた物理アドレスによって前記アドレス情報をページ別に区分することである。
以後、前記演算部500が前記アドレスリストに含まれたアドレス情報のうち最初のページ、すなわち、ページ0に含まれたアドレス情報を抽出し(S160)、前記抽出されたアドレス情報の物理アドレスにユーザが要請したデータ演算を行う(S170)。
前記データ演算が完了されたアドレス情報は前記アドレスリストから削除され(S180)、前記アドレスリストに含まれたあらゆるアドレス情報が抽出されたかを判断する(S190)。
この際、前記アドレスリストに含まれたあらゆるアドレス情報が抽出されていない場合、次のページに含まれるアドレス情報を抽出して前記データ演算を行う過程(S170、S180)を反復的に行う(S200)。
この際、前記データ演算のために抽出されたアドレス情報は前記データ演算後、前記アドレスリストから削除されうる。
以下、前記のようなフラッシュメモリのデータ管理方法を通じたデータ演算の望ましい実施形態としてデータ読込み及びデータ書込みの場合を例として簡略に説明する。
まず、前記データ読込み演算過程を簡略に説明すれば、図11に示されたように、ユーザが論理アドレスを使用してデータ読込み演算を要請する(S310)。
前記論理アドレスが、前記変換部300で前記マッピングテーブルを通じて物理アドレスに変換される(S320)。
前記変換された物理アドレスは該当論理アドレスと共に前記再配列部400に伝えられ、前記再配列部400は前記変換された物理アドレス及び該当論理アドレスよりなるアドレス情報を生成する(S330)。
また、前記再配列部400は、前記生成されたアドレス情報を前記物理アドレスの順序によって再配列したアドレスリストを生成する(S340)。
前記演算部500は最初ページに含まれた物理アドレスを有するアドレス情報を前記アドレスリストから抽出する(S350)。
以後、前記演算部500は前記抽出されたアドレス情報に含まれた物理アドレスに記録された所定のデータを読込む(S360)。
前記データを読込んだアドレス情報を前記アドレスリストから削除した後(S370)、前記アドレスリストに含まれたあらゆるアドレス情報を抽出したか否かを判断する(S380)。
前記判断の結果、前記アドレスリストに抽出されていないアドレス情報がある場合、次のページに含まれたアドレス情報であると判断し、次のページに含まれたアドレス情報を抽出する(S390)。
次いで、前記抽出されたアドレス情報の物理アドレスに記録されたデータを読込む過程(S360、S370)を前記アドレスリストに含まれたあらゆるアドレス情報を抽出するまでページ別に抽出して反復的に行う。
前述したようなデータ読込み演算を図12を参照してより詳細に説明する。
ユーザが使用した論理アドレスが論理アドレス0ないし論理アドレス5である場合を例として説明すれば、前記論理アドレス0ないし論理アドレス5は前記マッピングテーブルにより3つのページに何れも含まれうる。
したがって、前記演算部500は3回に亙って各ページに含まれた物理アドレスを有するアドレス情報から前記アドレスリストを抽出して該当物理アドレスに記録されたデータを読込み得る。
一方、前記フラッシュメモリへのデータ書込み演算過程を簡略に説明すれば、図13に示されたように、データ書込み演算を行う論理アドレスを使用してユーザがデータ書込み演算を要請する(S410)。
前記データ書込み演算時に使用した論理アドレスが、前記変換部300で前記マッピングテーブルにより実際フラッシュメモリの物理アドレスに変換される(S420)。
前記変換された物理アドレス及び該当論理アドレスが前記再配列部400に伝えられ、前記再配列部400は前記変換された物理アドレス及び該当論理アドレスとよりなるアドレス情報を生成する(S430)。
前記再配列部400は、前記生成されたアドレス情報を前記アドレス情報に含まれた物理アドレスの順序によって再配列して羅列したアドレスリストを生成する(S440)。
前記演算部500は、前記生成されたアドレスリストのうち各ページに含まれたアドレス情報を区分した後、最初のページに含まれたアドレス情報を抽出する(S450)。
前記抽出されたアドレス情報の物理アドレスに所定のデータを記録する(S460)。
前記データ記録が完了した物理アドレスを有するアドレス情報を前記アドレスリストから削除する(S470)。
次いで、前記アドレスリストに含まれたあらゆるアドレス情報を抽出したか否かを判断し(S480)、前記判断結果、あらゆるアドレス情報が抽出されていない場合、次のページに含まれるアドレス情報があると判断して次のページに含まれるアドレス情報を抽出する(S490)。
次いで、次のページに含まれたアドレス情報を抽出し、前記抽出されたアドレス情報の物理アドレスに所定のデータを書込む過程(S460、S470)を前記アドレスリストに含まれたあらゆるアドレス情報を抽出するまで反復する。
前記データ書込み演算を、図14に基づいてさらに詳細に説明する。
ユーザが使用した論理アドレスが論理アドレス0ないし論理アドレス5である場合を例として説明すれば、前記論理アドレス0ないし論理アドレス5は前記マッピングテーブルにより3つのページに何れも含まれうる。
したがって、前記演算部500は3回に亙って各ページに含まれた物理アドレスを有するアドレス情報から前記アドレスリストを抽出して該当物理アドレスに所定のデータを記録できる。
以上、本発明について詳細に記述したが、本発明が属する技術分野の当業者ならば、特許請求の範囲に定義された本発明の精神及び範囲を外れずに本発明を多様に変形または変更して実施できることは自明であり、よって本発明の実施形態に係る単純な変更は本発明の技術を逸脱しない。
本発明は、家電機器、通信機器、セットトップボックスなどの保存媒体として用いられるフラッシュメモリのデータ管理技術分野に好適に適用されうる。
200 ユーザ要請部
300 変換部
400 再配列部
500 演算部
600 デバイスドライバ
300 変換部
400 再配列部
500 演算部
600 デバイスドライバ
Claims (8)
- 論理アドレスを物理アドレスに変換する変換部と、
物理的なデータ演算単位別に物理アドレスを区分して再配列する再配列部と、
前記再配列された物理アドレスを前記物理的なデータ演算単位で抽出して所定のデータ演算を行う演算部と、を含むフラッシュメモリのデータ管理装置。 - 前記再配列部は、前記変換された物理アドレスと該当論理アドレスとよりなるアドレス情報を前記物理アドレスの順序によって羅列したアドレスリストを生成することを特徴とする請求項1に記載のフラッシュメモリのデータ管理装置。
- 前記再配列部は前記アドレスリストに含まれたアドレス情報を各ページ別に区分することを特徴とする請求項2に記載のフラッシュメモリのデータ管理装置。
- 前記演算部でデータ演算のために抽出されたアドレス情報を前記アドレスリストから削除することを特徴とする請求項3に記載のフラッシュメモリのデータ管理装置。
- 論理アドレスを物理アドレスに変換する第1段階と、
物理アドレスの順序によって前記変換された物理アドレスを再配列する第2段階と、
前記再配列された物理アドレスを物理的なデータ演算単位別に区分する第3段階と、を含むことを特徴とするフラッシュメモリのデータ管理方法。 - 前記第2段階は、前記変換された物理アドレスと該当論理アドレスとよりなったアドレス情報を生成する第1過程と、前記生成されたアドレス情報を前記変換された物理アドレスの順序によって羅列したアドレスリストを生成する第2過程と、を含むことを特徴とする請求項5に記載のフラッシュメモリのデータ管理方法。
- 前記物理的なデータ演算単位でアドレス情報を抽出する第4段階と、前記抽出されたアドレス情報に該当する物理アドレスでデータの演算を行う第5段階と、をさらに含むことを特徴とする請求項6に記載のフラッシュメモリのデータ管理方法。
- 前記第5段階は、前記データ演算に使われたアドレス情報を前記アドレスリストから削除する過程をさらに含むことを特徴とする請求項7に記載のフラッシュメモリのデータ管理方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2003-0097486A KR100533682B1 (ko) | 2003-12-26 | 2003-12-26 | 플래시 메모리의 데이터 관리 장치 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005196769A true JP2005196769A (ja) | 2005-07-21 |
Family
ID=34545912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004369991A Pending JP2005196769A (ja) | 2003-12-26 | 2004-12-21 | フラッシュメモリのデータ管理装置及び方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7526600B2 (ja) |
EP (1) | EP1548600B1 (ja) |
JP (1) | JP2005196769A (ja) |
KR (1) | KR100533682B1 (ja) |
CN (1) | CN1321378C (ja) |
DE (1) | DE602004004494T2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007102805A (ja) * | 2006-11-20 | 2007-04-19 | Toshiba Corp | メモリシステム |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100659475B1 (ko) * | 2005-05-26 | 2006-12-20 | 영남대학교 산학협력단 | Zigbee MAC 계층의 재정렬 송신 버퍼 구조 |
US8566479B2 (en) * | 2005-10-20 | 2013-10-22 | International Business Machines Corporation | Method and system to allow logical partitions to access resources |
JP4984666B2 (ja) * | 2006-06-12 | 2012-07-25 | ソニー株式会社 | 不揮発性メモリ |
US7975109B2 (en) | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
WO2008150927A2 (en) * | 2007-05-30 | 2008-12-11 | Schooner Information Technology | System including a fine-grained memory and a less-fine-grained memory |
US8732386B2 (en) | 2008-03-20 | 2014-05-20 | Sandisk Enterprise IP LLC. | Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory |
US8229945B2 (en) | 2008-03-20 | 2012-07-24 | Schooner Information Technology, Inc. | Scalable database management software on a cluster of nodes using a shared-distributed flash memory |
US20090265521A1 (en) * | 2008-04-18 | 2009-10-22 | Mediatek Inc. | Pattern protection method and circuit |
JP5066209B2 (ja) * | 2010-03-18 | 2012-11-07 | 株式会社東芝 | コントローラ、データ記憶装置、及びプログラム |
US8856593B2 (en) | 2010-04-12 | 2014-10-07 | Sandisk Enterprise Ip Llc | Failure recovery using consensus replication in a distributed flash memory system |
US9164554B2 (en) | 2010-04-12 | 2015-10-20 | Sandisk Enterprise Ip Llc | Non-volatile solid-state storage system supporting high bandwidth and random access |
US8677055B2 (en) | 2010-04-12 | 2014-03-18 | Sandisk Enterprises IP LLC | Flexible way of specifying storage attributes in a flash memory-based object store |
US8868487B2 (en) | 2010-04-12 | 2014-10-21 | Sandisk Enterprise Ip Llc | Event processing in a flash memory-based object store |
US9047351B2 (en) | 2010-04-12 | 2015-06-02 | Sandisk Enterprise Ip Llc | Cluster of processing nodes with distributed global flash memory using commodity server technology |
US8666939B2 (en) | 2010-06-28 | 2014-03-04 | Sandisk Enterprise Ip Llc | Approaches for the replication of write sets |
CN102467460B (zh) * | 2010-11-12 | 2014-02-26 | 群联电子股份有限公司 | 资料管理方法、存储器控制器与存储器储存装置 |
US8694733B2 (en) | 2011-01-03 | 2014-04-08 | Sandisk Enterprise Ip Llc | Slave consistency in a synchronous replication environment |
US8874515B2 (en) | 2011-04-11 | 2014-10-28 | Sandisk Enterprise Ip Llc | Low level object version tracking using non-volatile memory write generations |
US9135064B2 (en) | 2012-03-07 | 2015-09-15 | Sandisk Enterprise Ip Llc | Fine grained adaptive throttling of background processes |
TWI454913B (zh) * | 2012-06-26 | 2014-10-01 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
CN103049389B (zh) * | 2012-12-14 | 2016-08-03 | 锐迪科科技有限公司 | Nand闪存控制器及其写入控制方法 |
US9778848B2 (en) * | 2014-12-23 | 2017-10-03 | Intel Corporation | Method and apparatus for improving read performance of a solid state drive |
US11126369B1 (en) | 2020-02-28 | 2021-09-21 | Western Digital Technologies, Inc. | Data storage with improved suspend resume performance |
US20210272619A1 (en) * | 2020-02-28 | 2021-09-02 | Western Digital Technologies, Inc. | Data Storage With Improved Read Performance By Avoiding Line Discharge |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS53129923A (en) | 1977-04-20 | 1978-11-13 | Hitachi Ltd | Control system for input/output device |
GB2251323B (en) | 1990-12-31 | 1994-10-12 | Intel Corp | Disk emulation for a non-volatile semiconductor memory |
JPH04278651A (ja) | 1991-03-07 | 1992-10-05 | Nec Corp | 主記憶装置 |
US6757800B1 (en) * | 1995-07-31 | 2004-06-29 | Lexar Media, Inc. | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices |
JPH0991975A (ja) | 1995-09-28 | 1997-04-04 | Nec Corp | 不揮発性メモリへのデータ格納装置 |
JP3702515B2 (ja) | 1995-12-04 | 2005-10-05 | 富士通株式会社 | フラッシュメモリ制御方法及びフラッシュメモリ制御ユニット |
US6112265A (en) | 1997-04-07 | 2000-08-29 | Intel Corportion | System for issuing a command to a memory having a reorder module for priority commands and an arbiter tracking address of recently issued command |
US6078985A (en) * | 1997-04-23 | 2000-06-20 | Micron Technology, Inc. | Memory system having flexible addressing and method using tag and data bus communication |
US5937425A (en) * | 1997-10-16 | 1999-08-10 | M-Systems Flash Disk Pioneers Ltd. | Flash file system optimized for page-mode flash technologies |
KR100319598B1 (ko) * | 1998-03-18 | 2002-04-06 | 김영환 | 플래시메모리어레이액세스방법및장치 |
KR19990079321A (ko) | 1998-04-03 | 1999-11-05 | 김영환 | 플래시 메모리의 데이터 리드 및 라이트방법 |
US6427186B1 (en) | 1999-03-30 | 2002-07-30 | Frank (Fong-Long) Lin | Memory, interface system and method for mapping logical block numbers to physical sector numbers in a flash memory, using a master index table and a table of physical sector numbers |
KR20010105824A (ko) | 2000-05-18 | 2001-11-29 | 서진원 | 인터넷의 웹사이트 게시판을 이용한 자동광고시스템 |
JP3472256B2 (ja) | 2000-10-17 | 2003-12-02 | 株式会社東芝 | データ処理装置およびデータ処理方法 |
US7020739B2 (en) * | 2000-12-06 | 2006-03-28 | Tdk Corporation | Memory controller, flash memory system having memory controller and method for controlling flash memory device |
JP4256600B2 (ja) * | 2001-06-19 | 2009-04-22 | Tdk株式会社 | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法 |
US6760805B2 (en) * | 2001-09-05 | 2004-07-06 | M-Systems Flash Disk Pioneers Ltd. | Flash management system for large page size |
TWI240861B (en) * | 2002-01-11 | 2005-10-01 | Integrated Circuit Solution In | Data access method and architecture of flash memory |
US6839826B2 (en) * | 2002-02-06 | 2005-01-04 | Sandisk Corporation | Memory device with pointer structure to map logical to physical addresses |
US6895464B2 (en) * | 2002-06-03 | 2005-05-17 | Honeywell International Inc. | Flash memory management system and method utilizing multiple block list windows |
-
2003
- 2003-12-26 KR KR10-2003-0097486A patent/KR100533682B1/ko active IP Right Grant
-
2004
- 2004-12-06 US US11/003,400 patent/US7526600B2/en active Active
- 2004-12-17 EP EP04257934A patent/EP1548600B1/en active Active
- 2004-12-17 DE DE602004004494T patent/DE602004004494T2/de active Active
- 2004-12-21 JP JP2004369991A patent/JP2005196769A/ja active Pending
- 2004-12-23 CN CNB2004101017114A patent/CN1321378C/zh active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007102805A (ja) * | 2006-11-20 | 2007-04-19 | Toshiba Corp | メモリシステム |
JP4498341B2 (ja) * | 2006-11-20 | 2010-07-07 | 株式会社東芝 | メモリシステム |
Also Published As
Publication number | Publication date |
---|---|
KR100533682B1 (ko) | 2005-12-05 |
EP1548600A1 (en) | 2005-06-29 |
US7526600B2 (en) | 2009-04-28 |
EP1548600B1 (en) | 2007-01-24 |
CN1637724A (zh) | 2005-07-13 |
DE602004004494D1 (de) | 2007-03-15 |
KR20050066228A (ko) | 2005-06-30 |
CN1321378C (zh) | 2007-06-13 |
US20050144421A1 (en) | 2005-06-30 |
DE602004004494T2 (de) | 2007-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100533682B1 (ko) | 플래시 메모리의 데이터 관리 장치 및 방법 | |
US11630766B2 (en) | Memory system and operating method thereof | |
JP4902547B2 (ja) | フラッシュメモリのデータ処理装置及び方法 | |
US20130073816A1 (en) | Method of storing data in a storage medium and data storage device including the storage medium | |
JP2006216036A (ja) | フラッシュメモリを含んだデータ貯蔵装置及びそれのマージ方法 | |
US20090198875A1 (en) | Data writing method for flash memory, and controller and system using the same | |
KR20090026941A (ko) | 복수개의 비휘발성 데이터 저장매체를 구비한 저장장치의가상 파일 시스템에서 어드레스 맵핑을 수행하는 방법 및그 장치 | |
KR101374065B1 (ko) | 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치 | |
JP4992835B2 (ja) | ディスク記憶装置およびプログラム | |
US7519764B2 (en) | Apparatus and method for detecting data validity in flash memory | |
JP2008547068A (ja) | 複数個のdmaチャンネルを有するusb−sd保存装置及びその保存方法と記録媒体 | |
US20080250189A1 (en) | Circuit and Method for Improving Operation Life of Memory | |
US20070168603A1 (en) | Information recording apparatus and control method thereof | |
JP2007193449A (ja) | 情報記録装置及びその制御方法 | |
JP2012113343A (ja) | 記憶装置 | |
JP2005222534A (ja) | フラッシュメモリのデータ管理装置及び方法 | |
US8595412B2 (en) | Data storage device and data storage system including the same | |
JP2012521032A (ja) | Ssdコントローラおよびssdコントローラの動作方法 | |
JP5206103B2 (ja) | ストレージ装置、ストレージ装置制御システム、ストレージ装置の制御方法、及びプログラム | |
KR100479170B1 (ko) | 메모리 억세스 제어장치 및 방법 | |
KR100336744B1 (ko) | 플래시 메모리의 라이트장치 및 방법 | |
JP2017151609A (ja) | ストレージ、ストレージシステム | |
TWI587212B (zh) | 高效能固態硬碟與其操作方法 | |
US8122183B2 (en) | Data managing method for flash memory and flash memory device using the same | |
CN113467697A (zh) | 存储器控制器与数据处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070221 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070227 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070528 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070828 |