JP4740216B2 - 不揮発性メモリ管理方法及び装置 - Google Patents

不揮発性メモリ管理方法及び装置 Download PDF

Info

Publication number
JP4740216B2
JP4740216B2 JP2007276619A JP2007276619A JP4740216B2 JP 4740216 B2 JP4740216 B2 JP 4740216B2 JP 2007276619 A JP2007276619 A JP 2007276619A JP 2007276619 A JP2007276619 A JP 2007276619A JP 4740216 B2 JP4740216 B2 JP 4740216B2
Authority
JP
Japan
Prior art keywords
offset
block
page
logical
physical
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.)
Expired - Fee Related
Application number
JP2007276619A
Other languages
English (en)
Other versions
JP2008130088A (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 JP2008130088A publication Critical patent/JP2008130088A/ja
Application granted granted Critical
Publication of JP4740216B2 publication Critical patent/JP4740216B2/ja
Expired - Fee Related 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

Description

本発明は、不揮発性メモリに関し、より詳しくは不揮発性メモリの性能を向上させることができ、論理ページと物理ページとの間のマッピング情報がなくても要求された論理ページが記録された物理ページのオフセットが分かる不揮発性メモリ管理方法及び装置に関する。
不揮発性メモリは、自由にデータの記録及び削除が可能なラム(RAM:Random Access Memory)の長所と電源供給がなくても格納しているデータを保存するロム(ROM:Read Only Memory)の長所をともに有しており、最近デジタルカメラ、PDA、MP3プレーヤのような携帯用電子機器の格納媒体として広く使われている。
このような不揮発性メモリは、既存のRAMや不揮発性格納装置、マグネティックなどと同様に特定位置に格納されたデータに任意にアクセスできるが、データを修正したり削除する方法においては、既存の格納装置と異なって、削除ブロック(Erase block、以下「ブロック」という)を基本単位にしてアクセスが行われる。
すなわち、以前のデータを修正または削除しようとする場合、該当データを含むブロックを削除した後、データを再記録しなければならない。一例として、文字やアルファベットを1個ずつ修正する代わりに「削除」キーを押して全体単語をすべて削除した後、再修正するのである。
以下、使用する用語のうち物理的に連続したアドレスを有するバイトをセクタというが、セクタ(Sector)は不揮発性メモリに対する読み取り/書き込み演算の基本単位であり、複数のセクタで構成されるブロックは不揮発性メモリで1回の削除演算により消すことができる削除演算の基本単位である。
このような不揮発性メモリでは、記録前削除(erase before write)によって不揮発性メモリに記録されたデータの物理アドレス(Physical Address)が変更されても、同一の論理アドレス(Logical Address)で不揮発性メモリに記録されたデータにアクセスできるように論理―物理マッピング(logical−physical)方法を支援する。
すなわち、マッピング方法は特定データに対する論理アドレスと物理アドレスとの間のマッピング情報を所定のマッピングテーブル(mapping table)を介して管理するものであって、セクタマッピング方法、ブロックマッピング方法が例に挙げられる。
図1Aは従来のセクタマッピング方法による不揮発性メモリアクセス方法を概略的に示す図面である。
図1Aに示すように、セクタマッピング方法はマッピングテーブル10に不揮発性メモリのセクタ単位でマッピング情報を保持して、論理セクタ情報を用いた不揮発性メモリの物理セクタアクセスを可能にするものである。
一例として、所定のデータに対して記録動作要求とともに論理セクタ番号(Logical Sector Number:LSN)が9番に指定されれば、不揮発性メモリアクセス装置ではマッピングテーブル10を参照してLSN9番に相応する物理セクタ番号(Physical Sector Number:PSN)であるPSN6番を検索する。
次いで、不揮発性メモリの6番セクタに該当データを記録するが、該当セクタに他のデータが記録されていれば、不揮発性メモリの空いている物理セクタにデータを記録し、マッピングテーブル10でLSN9番に相応するPSNを変更させる。
図1Bは従来のブロックマッピング方法による不揮発性メモリアクセス方法を概略的に示す図面である。
図1Bに示すように、ブロックマッピング方法はマッピングテーブル11不揮発性メモリのブロック単位でマッピング情報を保持して、論理セクタ情報を論理ブロック情報に変換させた後、論理ブロック情報とオフセット情報を用いた不揮発性メモリの物理セクタアクセスを可能にするものである。
一例として、4つのページが1つのブロックを構成する場合、所定のデータに対して記録動作要求とともにLSN9番に指定されれば、不揮発性メモリアクセス装置では論理セクタ番号9番の論理ブロック番号(Logical Block Number:LBN)9/4=2を求めた後、マッピングテーブル11を参照してLBNに相応する物理ブロック番号(Physical Block Number:PBN)を求める。
このとき、論理ブロックのオフセットと物理ブロックのオフセットとを一致させて算出されたPBNである1番でオフセット1に相応するセクタにデータを記録する。
該当セクタに他のデータが記録されていれば、オフセットを一致させて、不揮発性メモリの空いている物理セクタにデータを記録し、マッピングテーブル11でLBN2番に相応するPBNを変更させる。
このような従来のマッピング方法のうちセクタマッピング方法は不揮発性メモリのセクタ単位でマッピング情報を保持するためのマッピング情報が多すぎて実際不揮発性メモリに応用するには難しいという問題点があった。
このような従来技術の問題点を補完するために、多くのマッピング情報を必要としないブロックマッピング方法が使用されている。
特許文献1では、一部ブロックに対してのみマッピング情報を提供し、他のブロックに対しては併合演算を行って論理ページのオフセットと物理ページのオフセットとを一致させることによって、マッピング情報がなくても論理ページが記録された物理ページのオフセットが分かる方法を開示している。
前記技術によれば、コピー併合(copy merge)演算よりは完全併合(full merge)演算が頻繁に要求されるが、前記完全併合演算が行われるためには1つのブロックに対する削除演算及び複数のページに対する書き込み演算が要求される。しかし、このような頻繁な削除/書き込み演算は不揮発性メモリの性能を低下させる原因になる。
従って、完全併合演算の回数を減らすことによって、不揮発性メモリシステムの性能を向上させることができる不揮発性メモリ管理方法及び装置が要求される。
韓国公開特許第2002−0092487号公報
本発明は、不揮発性メモリの管理において、完全併合演算が行われる回数を減らすことによって、不揮発性メモリの性能を向上させることができる方法及び装置を提供するのにその目的がある。
しかし、本発明の目的は以上で言及した目的に制限されず、言及していないさらなる目的は下記により当業者に明確に理解できる。
前記目的を達成するために、本発明の実施形態による不揮発性メモリ管理装置は、少なくとも1つの物理ページを含む第1ブロック及び第2ブロックを含む不揮発性メモリ、及び前記第1ブロックで連続した物理ページに記録されている論理ページのオフセットが順次的に増加しつつ循環するかを判別した結果に応じて、前記第1ブロック及び前記第2ブロックの併合のための演算種類を決定する演算部を含む。
前記目的を達成するために、本発明の実施形態による不揮発性メモリ管理装置は、連続した物理ページに記録されている論理ページのオフセットが順次的に増加しつつ循環するブロックを少なくとも1つ以上含む不揮発性メモリ、第1論理ページのオフセットとともに読み取り演算要求が入力される入力部、及び前記ブロックで前記第1論理ページのオフセットと同一のオフセットを有する第1物理ページにアクセスした後、前記第1物理ページから獲得した第2論理ページのオフセットに基づいて、前記第1論理ページのオフセットが記録された第2物理ページのオフセットを獲得する演算部を含む。
また、前記目的を達成するために、本発明の実施形態による不揮発性メモリ管理方法は少なくとも1つの物理ページを含む第1ブロック及び第2ブロックを含む不揮発性メモリを管理する方法において、前記第1ブロックで連続した物理ページに記録されている論理ページのオフセットが順次的に増加しつつ循環するかを判断するステップ、及び前記判断結果に応じて前記第1ブロック及び前記第2ブロックの併合のための演算種類を決定するステップを含む。
さらに、前記目的を達成するために、本発明の実施形態による不揮発性メモリ管理方法は、連続した物理ページに記録されている論理ページのオフセットが順次的に増加しつつ循環するブロックを少なくとも1つ以上含む不揮発性メモリを管理する方法において、第1論理ページのオフセットとともに読み取り演算要求が入力されるステップ、前記ブロックで前記第1論理ページのオフセットと同一のオフセットを有する第1物理ページにアクセスするステップ、及び前記第1物理ページから獲得した第2論理ページのオフセットに基づいて、前記第1論理ページのオフセットが記録された第2物理ページのオフセットを獲得するステップを含む。
また、前記目的を達成するために、本発明の実施形態による不揮発性メモリ管理方法は、複数個の論理ページに対応する複数個の物理ページを含むブロックを含む不揮発性メモリの管理方法において、前記複数個の論理ページのオフセットが順次的に増加しつつ循環する場合、および前記複数個の論理ページのうち、有効な論理ページの個数が前記ブロックが含む物理ページの総個数と一致する場合のうち、少なくても一の場合において、交換併合、複写併合および完全併合のうち何れか一つの併合演算を決定する段階、および前記決定された併合演算によって併合された少なくとも一つ以上の前記ブロックに対して削除演算を行う段階を含む。
また、前記目的を達成するために、本発明の実施形態による不揮発性メモリ管理装置は、 複数個の論理ページに対応する複数個の物理ページを含むブロックを含む不揮発性メモリ、および前記複数個の論理ページのオフセットを順次的に増加しつつ循環する場合、および前記複数個の論理ページのうち有効な論理ページの個数が前記ブロックが含む物理ページの総個数と一致する場合のうち、少なくても一の場合において、交換併合、複写併合および完全併合のうち何れか一つの併合演算を決定し、前期決定された併合演算によって併合された少なくとも一つ以上の前記ブロックに対して削除演算を行う演算部を含む。
前記のような本発明による不揮発性メモリ管理方法及び装置によれば次のような効果が1つあるいはそれ以上ある。
ブロックに含まれる論理ページを整列するとき、論理ページのオフセットが順次的に増加しつつ循環するようにすることによって、完全併合演算が行われる回数を減らすことができ、これによって不揮発性メモリの書き込み演算の速度を向上させることができる効果がある。
物理ページのスペア領域に前記物理ページに記録された論理ページのオフセットを記録することによって、物理ページと論理ページとの間のマッピングが情報なくても要求された論理ページが記録された物理ページのオフセットが分かる。
その他、実施形態の具体的な事項は詳細な説明及び図面に含まれている。
本発明の利点及び特徴、そしてそれらを達成する方法は添付する図面とともに詳細に後述する実施形態を参照すれば明確になる。しかし、本発明は以下に開示される実施形態に限定されず、相異なる多様な形態によって具現でき、単に本実施形態は本発明の開示を完全なものにし、本発明の属する技術分野における通常の知識を有する者に発明の範疇を完全に知らせるために提供するものであって、本発明は請求項の範疇によってのみ定義される。明細書全体にわたって同じ参照符号は同じ構成要素を示す。
以下、添付するブロック図または処理フローチャートに関する図面を参考して本発明の実施形態による不揮発性メモリ管理方法及び装置について説明する。この場合、処理フローチャートの各ブロックとフローチャートの組み合せは、コンピュータプログラムインストラクションによって行われることが理解できる。
これらコンピュータプログラムインストラクションは、汎用コンピュータ、特殊用コンピュータまたはその他プログラム可能なデータプロセシング装備のプロセッサに搭載できるので、コンピュータまたはその他プログラム可能なデータプロセシング装備のプロセッサによって行われるインストラクションはフローチャートブロックで説明する機能を行う手段を生成する。
これらコンピュータプログラムインストラクションは、特定方式で機能を具現するために、コンピュータまたはその他プログラム可能なデータプロセシング装備が備えられるコンピュータによって利用可能または読取可能なメモリに格納できるので、そのコンピュータによって利用可能または読取可能なメモリに格納したインストラクションは、フローチャートブロックで説明する機能を行うインストラクション手段を含む製造品目の生産に用いることができる。また、コンピュータプログラムインストラクションは、コンピュータまたはその他プログラム可能なデータプロセシング装備上に搭載できるので、コンピュータまたはその他プログラム可能なデータプロセシング装備上で一連の動作ステップが行われ、コンピュータで実行されるプロセスを生成してコンピュータまたはその他プログラム可能なデータプロセシング装備の機能を行うインストラクションは、フローチャートブロックで説明する各ステップの機能を実行することもできる。
また、各ブロックは特定した論理的機能を実行するための1つ以上の実行可能なインストラクションを含むモジュール、セグメントまたはコードの一部を表すことができる。また、複数の代替実行例ではブロックで言及した機能が順序から外れて行われ得ることに注目しなければならない。例えば、連続して図示している2つのブロックは、実質的に同時に行われることも可能であり、またはそのブロックが場合によって該当する機能に応じて逆順に行われることも可能である。
図2は本発明の実施形態による不揮発性メモリ管理装置20の構造を示す図面である。
図示のように、本発明の実施形態による不揮発性メモリ管理装置20は入力部100と格納部200と演算部400と不揮発性メモリ300を含んで構成され得る。
入力部100はユーザから所定の論理ページに対する読み取り/書き込み要求などが入力される。
演算部400は論理的アドレスに対する書き込み/読み取り要求を物理的アドレスに対する書き込み/読み取り要求に変換する。すなわち、演算部400はユーザが要求した論理ページに対する要求を不揮発性メモリ300上の物理的アドレスに変換して書き込み/読み取り演算を行う。
格納部200は演算部400が不揮発性メモリ300にアクセスするのに必要なアクセスコードを格納する。例えば、格納部200はユーザにより要求された論理的アドレスと不揮発性メモリ300上の物理的アドレスとの間のマッピング関係を示すマッピングテーブル(未図示)を格納する。このような格納部200はRAM(Random Access Memory)またはフラッシュメモリ(Flash memory)など外部メモリを含み得る。
不揮発性メモリ300はユーザが記録しようとするデータを格納する。不揮発性メモリ300の構造についてより詳しく説明するために図3を参照する。
図3は図2に示した不揮発性メモリ300の構造を示す図面である。図3に示すように、不揮発性メモリ300は複数のページ320を含む複数のブロック310を含む。
ページは読み取り/書き込み演算の基本単位であって、各ページはデータ領域330とスペア領域340に区分できる。このとき、データ領域330にはデータが格納され、スペア領域340には該当物理ページに記録された論理ページのオフセットが記録される。
ブロックは削除演算の基本単位であって、大きくデータブロック、ログブロック及びフリーブロックに区分できる。ここでフリーブロックとは、データが記録されていないブロック、すなわち、空いているブロックを意味する。そしてデータブロックとは、一般データを格納するブロックを意味する。これに対して、ログブロックとは、データブロックに記録されたデータのうち特定部分を修正しようとする場合に割り当てられて、修正内容を記録する用途に活用されるブロックを意味する。従って、ログブロックは図4のように、ただ1つのデータブロックに対応され、対応されるデータブロックの修正されたページを格納する。このため、ログブロックのページはデータブロックのページより優先的に参照できる。以下の説明では、ログブロックで優先的に参照されるページを「有効ページ」といい、物理的に有効データが記録されていても有効ページによってその内容が無視されるページを「無効ページ」という。
図5を参照すれば、前述した不揮発性メモリ300は論理的に大きくマップ領域510、データブロック領域530、ログブロック領域520及びフリーブロック領域540に区分できる。前記マップ領域510はアドレス変換情報を格納する。そして、データブロック領域530は複数のデータブロックを含み、ログブロック領域520は複数のログブロックを含む。フリーブロック領域540はデータブロックまたはログブロックに割り当てられるための複数のフリーブロックを含む。図5に示す各領域は不揮発性メモリ300の論理的な分割を示すものであって、各領域に含まれるデータブロック、ログブロック及びフリーブロックは物理的に互いに連続して存在することもでき、不連続に散在して存在することもできる。
一方、本発明によれば、不揮発性メモリ300を管理するために「ブロック併合(block merge)」が行われ得る。ブロック併合とは、データブロックの有効ページ及びログブロックの有効ページを収集して新しいデータブロックを生成し、既存のログブロック及び既存のデータブロックを対象に削除演算を行うことによって、フリーブロックを作り出すことをいう。ブロック併合はログブロックに書き込み可能なフリーページがそれ以上存在しない場合に行うことができる。
ブロック併合の種類には交換併合、コピー併合及び完全併合が例に挙げられるが、ブロック併合が行われるときは、ブロック併合の対象になるブロックの状態に応じて3つのうちいずれか1つが行われ得る。
交換併合は図6のように、ログブロック610で連続した物理ページに記録された論理ページのオフセットが順次的に増加しつつ循環し、ログブロック610で有効論理ページ数と前記ログブロック610に含まれた物理ページの総数とが一致する場合に行われる。交換併合はログブロック610をデータブロック620に移してアドレス変換情報を更新した後、既存のデータブロック630に記録されたデータを削除することによって行われる。すなわち、交換併合ではデータブロック630やログブロック610に記録されているデータをコピーする過程なくアドレス変換情報のみを更新することによって行われる。このとき、既存のデータブロック630は削除可能なブロック(erasable block)になる。
コピー併合は図7のように、ログブロック710で連続した物理ページに記録された論理ページのオフセットが順次的に増加しつつ循環し、ログブロック710で有効ページ数とログブロック710に含まれた物理ページの総数とが一致しない場合に行われる。コピー併合はデータブロック700で有効論理ページをログブロックのフリーページにコピーした後、ログブロック710を新たなデータブロック(未図示)に移すことによって行われる。このとき、既存のデータブロックは削除可能なブロックになる。
完全併合は図8のように、ログブロック810で連続した物理ページに記録された論理ページのオフセットが順次的に増加しなかったり、循環しない場合に行われる。完全併合はフリーブロック820が割り当てられた後、ログブロック810及び既存のデータブロック800で有効論理ページが割り当てられたフリーブロック820にコピーすることによって行われる。このとき、既存のデータブロック800と既存のログブロック810は削除可能なブロックになる。
次に、図9ないし図12を参照して、本発明の実施形態による不揮発性メモリ管理方法を説明する。
図9は本発明の実施形態による書き込み演算過程を示すフローチャートである。
ユーザから第1論理ページのオフセットとともに書き込み演算が要求されれば、演算部400はマッピング情報を参照して、第1論理ページのオフセットに対応する物理ページのオフセットを検索する。次いで、検索された物理ページが使用可能な状態であるかを判断する(S810)。
前記判断結果、該当物理ページが使用可能であれば(S810、はい)、演算部400は該当物理ページにデータを記録する(S860)。このとき、データは該当ページのデータ領域に記録できる。データ領域にデータが記録されるとき、該当物理ページのスペア領域には第1論理ページのオフセットが記録されるのが好ましい。データの書き込みが完了すれば、演算部400はマップ領域のマッピング情報を更新する。
前記判断結果、該当物理ページが使用不可であれば(S810、いいえ)、すなわち該当物理ページに既にデータ記録されている状態であれば、演算部400はフリーページの割り当てが可能であるかを判断する(S820)。
判断結果、フリーページの割り当てが可能であれば(S820、はい)、演算部400はフリーページを割り当て、割り当てられたフリーページのデータ領域にデータを記録する(S865)と同時に前記フリーページのスペア領域には第1論理ページのオフセットを記録する(S865)。
判断結果、フリーページの割り当てが不可であれば(S820、いいえ)、演算部400はログブロックの割り当てが可能であるかを判断する(S830)。すなわち、残っているフリーブロック数が十分であるかを判断する。
判断結果、残っているフリーブロック数が十分で新しいログブロックの割り当てが可能であれば(S830、はい)、演算部400はフリーブロックのうち所定のフリーブロックをログブロックに割り当てる(S850)。そして、割り当てられたログブロックの物理ページにデータを記録する(S860)。このとき、演算部400は該当物理ページのデータ領域にはデータを記録し、前記物理ページのスペア領域には第1論理ページのオフセットを記録するのが好ましい。データ書き込みが完了すれば、演算部400はマップ領域のマッピング情報を更新する(S870)。
判断結果、残っているフリーブロック数が不十分で新しいログブロックの割り当てが不可であれば(S830、いいえ)、演算部400は併合演算を行って新しいフリーブロックを生成し(S840)、前記フリーブロックをログブロックに割り当てる(S850)。そして割り当てられたログブロックの物理ページに書き込みを行った後、演算部400はマップ領域のマッピング情報を更新する(S870)。
以上、図9を参照して、ユーザから書き込み演算が要求された場合、フリーブロックを生成するための方法の1つとして併合演算が行われるのを説明したが、併合演算は不揮発性メモリのブロック状態が予め指定された基準を満たす場合に自動的に行われ得る。例えば、ユーザから書き込みが要求された場合でなくても、フリーブロック数が予め指定された数未満になる場合に行われ得る。
図10は本発明の実施形態による併合演算過程を示すフローチャートである。
先ず、演算部400は併合対象になるログブロックの論理ページ整列状態を確認する。具体的に、前記ログブロックで連続した物理ページのスペア領域を確認し、前記スペア領域に記録されている論理ページのオフセットが順次的に増加しつつ循環しているかを判断する(S901)。ここで順次的に増加しつつ循環するというのは、論理ページのオフセットが順次的に増加すると同時に、オフセットが最大である論理ページとオフセットが最少である論理ページとが互いに連続して存在するのを意味する。
前記S901ステップでの判断結果、図8のように、ログブロックで連続した物理ページに記録された論理ページのオフセットが順次的に増加しなかったり、循環しない場合(S901、いいえ)、演算部400は該当ログブロックを対象に完全併合を行う。完全併合を行うために演算部400には先ず新しいフリーブロックが割り当てられる(S908)。次いで、ログブロック及びデータブロックで有効論理ページを前記フリーブロックにコピーする(S909)。このとき、演算部400は前記有効論理ページをオフセットに応じて順次的に前記フリーブロックにコピーすることによって、前記有効論理ページをすべて前記フリーブロックにコピーしたとき、前記論理ページのオフセットが順次的に増加しつつ循環できるようにする。ログブロック及びデータブロックで有効論理ページがすべて前記フリーブロックにコピーされれば、演算部400は前記フリーブロックをデータブロックに移した後(S910)、マッピング情報を更新する(S911)。そして、以前のデータブロック及びログブロックを対象に削除演算を行って新しいフリーブロックを生成する(S912)。
一方、前記S901ステップでの判断結果、ログブロックで連続した物理ページに記録された論理ページのオフセットが順次的に増加しつつ循環する場合(S901、はい)、演算部400は該当ログブロックで有効論理ページ数と該当ログブロックに含まれた物理ページの総数とが一致するかを判断する(S902)。
前記S902ステップでの判断結果、図7のように、該当ログブロックで有効論理ページ数と物理ページの総数とが互いに一致しない場合(S902、いいえ)、演算部400はコピー併合を行う。コピー併合を行うために演算部400は先ずログブロックに対応するデータブロックで有効論理ページを前記ログブロックのフリーページに記録する(S903)。このとき、演算部400は前記有効論理ページを論理ページのオフセットに応じて順次的にログブロックにコピーすることによって、コピー過程が完了した後、前記ログブロックの状態を確認したとき、論理ページのオフセットが順次的に増加しつつ循環できるようにする。コピー過程が完了すれば、演算部400はログブロックをデータブロックに移し(S904)、マッピング情報を更新する(S905)。次いで、演算部400は以前のデータブロックに対して削除演算を行うことによって、新しいフリーブロックを生成する(S906)。
前記S902ステップでの判断結果、図6のように、ログブロックで有効論理ページ数と物理ページの総数とが互いに一致する場合(S902、はい)、演算部400は交換併合を行う。具体的に、演算部400は該当ログブロックをデータブロックに移した後(S904)、マッピング情報を更新する(S905)。この後、演算部400は以前のデータブロックに対して削除演算を行うことによって、新しいフリーブロックを生成する(S906)。
次に、図11は本発明の実施形態による読み取り演算過程を示すフローチャートである。
ユーザから第1論理ページのオフセットとともに読み取り演算が要求されれば、演算部400は前記第1論理ページのオフセット(以下「第1オフセット」という)と同一のオフセットを有する第1物理ページにアクセスする(S10)。
次いで、演算部400は前記第1物理ページのスペア領域を確認して第2論理ページのオフセット(以下「第2オフセット」という)を獲得する(S20)。
この後、演算部400は前記第2論理ページのオフセットに基づいて前記第1論理ページが記録された第2物理ページのオフセットを獲得する(S30)。具体的に、第1オフセットをX、第2オフセットをY、第1オフセットと第2オフセットの差をZとし、ブロックに含まれる物理ページの総数をNとするとき、演算部400は下記数式1に基づいて第2物理ページのオフセットX’を求める。
X’=(X+Z+N) mod N (1)
すなわち、演算部400は第1オフセットと第2オフセットの差Zに、第1オフセットXとブロックに含まれる物理ページの総数Nが各々足された結果値を前記物理ページの総個数Nで割ったときの余りを求めることによって、第2物理ページのオフセットX’を獲得する。
数式(1)によって第2物理ページのオフセットX’が獲得されれば、演算部400は第2物理ページを読み取る(S40)。
ここで、図12を参照して読み取り演算過程について説明する。図12は本発明の実施形態によるブロックを示す図面である。図12に示すブロック1200は総8つの物理ページ(ページ0〜7)を含むことが分かる。そして、各物理ページのスペア領域に論理ページのオフセットが記録されていることが分かる。また、各スペア領域に記録されている論理ページのオフセットは順次的に増加しつつ循環するのが分かる(ページ4に記録された論理ページのオフセットは7であり、ページ5に記録された論理ページのオフセットは0であるため、論理ページのオフセットが循環しているのが分かる)。
このような状態で、オフセットが7である第1論理ページに対する読み取り要求が入力されれば、演算部400は先ず第1論理ページのオフセットと同一のオフセットを有する第1物理ページにアクセスする。具体的に、第1論理ページのオフセットは7であるため、演算部400は7というオフセットを有する第1物理ページ、すなわちページ7にアクセスする。
次いで、演算部400はページ7のスペア領域を確認し、第2論理ページのオフセットYすなわち2を獲得する。
この後、演算部400はページ7のスペア領域に記録されている第2論理ページのオフセットYに基づいて、第1論理ページが記録された第2物理ページのオフセット X’を求める。具体的に、演算部400は数式1に基づいて第2物理ページのオフセット X’を求める。図12の場合、第2物理ページのオフセットX’=(7+5+8) mod 8=4であることが分かる。
第2物理ページのオフセットX’が獲得されれば、演算部400は該当ブロック1200でオフセットが4である物理ページ、すなわち5番目ページを読み取る。図12において5番目ページであるページ4のスペア領域をみれば、論理ぺージのアドレスとして7が記憶されていることが分かる。
以上のように、本発明による不揮発性メモリ管理方法及び装置を図面を参照して説明したが、本発明は本明細書に開示する実施形態と図面に限定されず、その発明の技術思想の範囲内で当業者によって多様な変形が可能であることは言うまでもない。
従来技術によるページマッピング方法を示す図である。 従来技術によるブロックマッピング方法を示す図である。 本発明の実施形態によるフラッシュメモリ管理装置を示す図である。 図2に示した不揮発性メモリの構造を示す図である。 図2に示した不揮発性メモリのデータブロックとログブロックとの間の関係を示す図である。 図2に示した不揮発性メモリの領域分割を示す図である。 本発明の実施形態による併合演算のうち交換併合を示す図である。 本発明の実施形態による併合演算のうちコピー併合を示す図である。 本発明の実施形態による併合演算のうち完全併合を示す図である。 本発明の実施形態による書き込み演算過程を示すフローチャートである。 本発明の実施形態による併合演算過程を示すフローチャートである。 本発明の実施形態による読み取り演算過程を示すフローチャートである。 本発明の実施形態による併合演算が行われたブロックを例示する図である。
符号の説明
100 入力部
200 格納部
300 不揮発性メモリ
400 演算部

Claims (6)

  1. 連続した物理ページに記録されている論理ページのオフセットが順次的でかつ循環的に増加するブロックを少なくとも1つ以上含む不揮発性メモリと、
    第1論理ページのオフセットとともに読み取り演算要求が入力される入力部と、
    前記ブロックで前記第1論理ページのオフセットと同一のオフセットを有する第1物理ページにアクセスした後、前記第1物理ページから獲得した第2論理ページのオフセットに基づいて、前記第1論理ページのオフセットが記録された第2物理ページのオフセットを獲得する演算部と、を含むことを特徴とする不揮発性メモリ管理装置。
  2. 前記物理ページは、データが記録されるデータ領域と、前記オフセットが記録されるスペア領域と、を含むことを特徴とする請求項に記載の不揮発性メモリ管理装置。
  3. 前記第2物理ページのオフセットは、前記第1物理ページのオフセットから前記第2論理ページのオフセットを引いた値に、前記第1物理ページのオフセットと前記ブロックの総ページ数をそれぞれ足した結果値を、前記総ページ数で割ったときの余りであることを特徴とする請求項に記載の不揮発性メモリ管理装置。
  4. 連続した物理ページに記録されている論理ページのオフセットが順次的でかつ循環的に増加するブロックを少なくとも1つ以上含む不揮発性メモリを管理する方法において、
    第1論理ページのオフセットとともに読み取り演算要求が入力されるステップと、
    前記ブロックで前記第1論理ページのオフセットと同一のオフセットを有する第1物理ページにアクセスするステップと、
    前記第1物理ページから獲得した第2論理ページのオフセットに基づいて、前記第1論理ページのオフセットが記録された第2物理ページのオフセットを獲得するステップと、を含むことを特徴とする不揮発性メモリ管理方法。
  5. 前記物理ページは、データが記録されるデータ領域と、前記オフセットが記録されるスペア領域と、を含むことを特徴とする請求項に記載の不揮発性メモリ管理方法。
  6. 前記第2物理ページのオフセットは、前記第1物理ページのオフセットから前記第2論理ページのオフセットを引いた値に、前記第1物理ページのオフセットと前記ブロックの総ページ数をそれぞれ足した結果値を、前記総ページ数で割ったときの余りであることを特徴とする請求項に記載の不揮発性メモリ管理方法。
JP2007276619A 2006-11-20 2007-10-24 不揮発性メモリ管理方法及び装置 Expired - Fee Related JP4740216B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020060114788A KR100843135B1 (ko) 2006-11-20 2006-11-20 비휘발성 메모리 관리 방법 및 장치
KR10-2006-0114788 2006-11-20

Publications (2)

Publication Number Publication Date
JP2008130088A JP2008130088A (ja) 2008-06-05
JP4740216B2 true JP4740216B2 (ja) 2011-08-03

Family

ID=39020750

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007276619A Expired - Fee Related JP4740216B2 (ja) 2006-11-20 2007-10-24 不揮発性メモリ管理方法及び装置

Country Status (5)

Country Link
US (1) US20080120488A1 (ja)
EP (1) EP1923792A1 (ja)
JP (1) JP4740216B2 (ja)
KR (1) KR100843135B1 (ja)
CN (1) CN101187898A (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8180929B2 (en) * 2007-04-24 2012-05-15 Samsung Electronics Co., Ltd. Method for managing logical address and device thereof
KR101477047B1 (ko) * 2008-02-29 2014-12-30 삼성전자주식회사 메모리 시스템 및 그것의 블록 병합 방법
KR101497074B1 (ko) * 2008-06-17 2015-03-05 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법
KR100954039B1 (ko) * 2008-08-11 2010-04-20 (주)인디링스 플래시 메모리 제어 방법 및 제어 장치
KR101510120B1 (ko) 2008-11-21 2015-04-10 삼성전자주식회사 메모리 장치 및 메모리 장치의 관리 방법
CN101788955B (zh) * 2009-01-23 2012-05-02 群联电子股份有限公司 闪存数据的存取方法及其储存系统与控制器系统
KR100929371B1 (ko) * 2009-03-18 2009-12-02 한국과학기술원 페이지-디퍼런셜을 이용하여 dbms에 독립적인 방법으로 플래시 메모리에 데이터를 저장하는 방법
KR20110018157A (ko) * 2009-08-17 2011-02-23 삼성전자주식회사 플래시 메모리 장치의 액세스 방법
JP5480913B2 (ja) * 2009-12-03 2014-04-23 株式会社日立製作所 記憶装置、およびメモリコントローラ
TWI414940B (zh) * 2009-12-30 2013-11-11 Phison Electronics Corp 區塊管理與資料寫入方法、快閃記憶體儲存系統與控制器
US9141289B2 (en) 2010-03-30 2015-09-22 Os Nexus, Inc. Intelligent data storage utilizing one or more records
KR101734200B1 (ko) * 2010-12-03 2017-05-11 삼성전자주식회사 적응적 머지를 수행하는 메모리 시스템 및 그것의 데이터 쓰기 방법
US9104548B2 (en) * 2011-01-21 2015-08-11 Blackbird Technology Holdings, Inc. Method and apparatus for memory management
CN102736985B (zh) * 2011-03-30 2015-10-14 群联电子股份有限公司 数据合并方法、控制器与储存装置
JP5520880B2 (ja) * 2011-05-13 2014-06-11 株式会社東海理化電機製作所 フラッシュメモリ装置
CN102289411B (zh) * 2011-06-27 2014-03-26 北京握奇数据系统有限公司 一种智能卡资源调度的方法和智能卡
TWI457755B (zh) * 2011-08-22 2014-10-21 Phison Electronics Corp 資料寫入方法、記憶體控制器與儲存裝置
CN102968385B (zh) * 2011-08-31 2016-01-20 群联电子股份有限公司 数据写入方法、存储器控制器与储存装置
US9026887B2 (en) * 2012-03-15 2015-05-05 Micron Technology, Inc. Physical page, logical page, and codeword correspondence
KR101997572B1 (ko) * 2012-06-01 2019-07-09 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 쓰기 방법
JP5813589B2 (ja) * 2012-07-13 2015-11-17 株式会社東芝 メモリシステムおよびその制御方法
CN103761193B (zh) * 2013-12-17 2016-09-14 记忆科技(深圳)有限公司 抑制逻辑页碎片产生的方法及系统
US20150205531A1 (en) * 2014-01-20 2015-07-23 Seagate Technology Llc Adding Storage Capacity to an Object Storage System
US20160062691A1 (en) * 2014-03-13 2016-03-03 Mediatek Inc. Method for controlling memory device to achieve more power saving and related apparatus thereof
KR102586628B1 (ko) * 2015-06-05 2023-10-11 삼성전자 주식회사 전자 장치 및 전자 장치의 메모리 관리 방법
KR102329924B1 (ko) * 2015-10-27 2021-11-23 삼성전자 주식회사 전자 장치 및 이의 메모리 관리 방법
US9996463B2 (en) * 2015-11-10 2018-06-12 International Business Machines Corporation Selection and placement of volumes in a storage system using stripes
KR102552689B1 (ko) * 2018-04-26 2023-07-05 삼성전자주식회사 데이터 저장 장치
KR20200043676A (ko) * 2018-10-18 2020-04-28 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR20200055349A (ko) * 2018-11-13 2020-05-21 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11194666B2 (en) * 2019-04-26 2021-12-07 EMC IP Holding Company LLC Time addressable storage in a content addressable storage system
CN112148203B (zh) * 2019-06-27 2023-12-05 龙芯中科技术股份有限公司 存储器管理方法、装置、电子设备及存储介质
US11841794B2 (en) * 2020-12-16 2023-12-12 Micron Technology, Inc. Memory sub-system write sequence track

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366423A (ja) * 2001-06-04 2002-12-20 Samsung Electronics Co Ltd フラッシュメモリの管理方法
JP2003167795A (ja) * 2001-11-16 2003-06-13 Samsung Electronics Co Ltd フラッシュメモリの管理方法
JP2005174279A (ja) * 2003-12-10 2005-06-30 Samsung Electronics Co Ltd フラッシュメモリ、そのためのマッピング制御装置及び方法
JP2005196736A (ja) * 2003-12-30 2005-07-21 Samsung Electronics Co Ltd フラッシュメモリのアドレスマッピング方法、マッピング情報管理方法及びこれらの方法を用いたフラッシュメモリ
JP2005222534A (ja) * 2004-02-03 2005-08-18 Samsung Electronics Co Ltd フラッシュメモリのデータ管理装置及び方法
JP2005339231A (ja) * 2004-05-27 2005-12-08 Toshiba Corp メモリカード、半導体装置、及び半導体メモリの制御方法
JP2006018839A (ja) * 2004-06-30 2006-01-19 Samsung Electronics Co Ltd 漸進的マージ方法及びそれを利用したメモリシステム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08212019A (ja) * 1995-01-31 1996-08-20 Mitsubishi Electric Corp 半導体ディスク装置
JP4323707B2 (ja) 2000-10-25 2009-09-02 富士通マイクロエレクトロニクス株式会社 フラッシュメモリの欠陥管理方法
US6901499B2 (en) * 2002-02-27 2005-05-31 Microsoft Corp. System and method for tracking data stored in a flash memory device
KR100914646B1 (ko) * 2002-08-31 2009-08-28 지인정보기술 주식회사 멀티-플레인 구조의 플래시 메모리 관리 방법
JP2005092678A (ja) 2003-09-19 2005-04-07 Matsushita Electric Ind Co Ltd 半導体メモリカード及び不揮発性メモリのデータ消去処理方法
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
KR20070007265A (ko) * 2003-12-30 2007-01-15 쌘디스크 코포레이션 제어 데이터 관리를 구비한 비휘발성 메모리 및 방법

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366423A (ja) * 2001-06-04 2002-12-20 Samsung Electronics Co Ltd フラッシュメモリの管理方法
JP2003167795A (ja) * 2001-11-16 2003-06-13 Samsung Electronics Co Ltd フラッシュメモリの管理方法
JP2005174279A (ja) * 2003-12-10 2005-06-30 Samsung Electronics Co Ltd フラッシュメモリ、そのためのマッピング制御装置及び方法
JP2005196736A (ja) * 2003-12-30 2005-07-21 Samsung Electronics Co Ltd フラッシュメモリのアドレスマッピング方法、マッピング情報管理方法及びこれらの方法を用いたフラッシュメモリ
JP2005222534A (ja) * 2004-02-03 2005-08-18 Samsung Electronics Co Ltd フラッシュメモリのデータ管理装置及び方法
JP2005339231A (ja) * 2004-05-27 2005-12-08 Toshiba Corp メモリカード、半導体装置、及び半導体メモリの制御方法
JP2006018839A (ja) * 2004-06-30 2006-01-19 Samsung Electronics Co Ltd 漸進的マージ方法及びそれを利用したメモリシステム

Also Published As

Publication number Publication date
CN101187898A (zh) 2008-05-28
EP1923792A1 (en) 2008-05-21
JP2008130088A (ja) 2008-06-05
KR100843135B1 (ko) 2008-07-02
KR20080045556A (ko) 2008-05-23
US20080120488A1 (en) 2008-05-22

Similar Documents

Publication Publication Date Title
JP4740216B2 (ja) 不揮発性メモリ管理方法及び装置
US7702844B2 (en) Address mapping method and mapping information managing method for flash memory, and flash memory using the same
TWI459195B (zh) 用來管理一記憶裝置之方法以及其相關之記憶裝置
US8386746B2 (en) Storage unit management methods and systems
US8095723B2 (en) Log-based flash translation layer and operating method thereof
JP3827682B2 (ja) フラッシュメモリ、そのためのマッピング制御装置及び方法
US20080104357A1 (en) Apparatus and method for managing nonvolatile memory
US8296503B2 (en) Data updating and recovering methods for a non-volatile memory array
JP2004127185A (ja) メモリカード
JP2010287049A (ja) メモリシステムおよびメモリシステムの管理方法
KR20080104815A (ko) 비휘발성 메모리의 데이터 처리 장치 및 방법
JP4242245B2 (ja) フラッシュrom制御装置
JP2012058770A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2010237907A (ja) ストレージ装置および記録方法
JP4235646B2 (ja) メモリコントローラおよびフラッシュメモリシステム
JP2009259145A (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
KR100638638B1 (ko) 플래시 메모리의 제어 방법
JP4434171B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP2008299455A (ja) データ記憶装置及びデータ管理方法
CN113703671B (zh) 一种数据块擦除方法及相关装置
JP2009104430A (ja) フラッシュディスク装置
CN113434084A (zh) 一种数据擦除方法、系统、设备以及介质
JP2009301491A (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110330

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110419

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140513

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees