JP5184462B2 - ページ−ディファレンシャルを使用して、dbmsに独立的な方法でフラッシュメモリーにデータを格納する方法 - Google Patents

ページ−ディファレンシャルを使用して、dbmsに独立的な方法でフラッシュメモリーにデータを格納する方法 Download PDF

Info

Publication number
JP5184462B2
JP5184462B2 JP2009183667A JP2009183667A JP5184462B2 JP 5184462 B2 JP5184462 B2 JP 5184462B2 JP 2009183667 A JP2009183667 A JP 2009183667A JP 2009183667 A JP2009183667 A JP 2009183667A JP 5184462 B2 JP5184462 B2 JP 5184462B2
Authority
JP
Japan
Prior art keywords
page
differential
flash memory
logical
recording
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
JP2009183667A
Other languages
English (en)
Other versions
JP2010218529A (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.)
Korea Advanced Institute of Science and Technology KAIST
Original Assignee
Korea Advanced Institute of Science and Technology KAIST
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 Korea Advanced Institute of Science and Technology KAIST filed Critical Korea Advanced Institute of Science and Technology KAIST
Publication of JP2010218529A publication Critical patent/JP2010218529A/ja
Application granted granted Critical
Publication of JP5184462B2 publication Critical patent/JP5184462B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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/7202Allocation control and policies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Description

本発明は、ページ−ディファレンシャルを使用して、DBMSに独立的な方法でフラッシュメモリーにデータを格納する方法に関するものである。
フラッシュメモリーは、メモリーセルの構造によって、NANDとNORの二つのタイプがある。NANDタイプは、データを格納するのに相応しく、NORタイプは、コードを格納するのに相応しい。本発明で「フラッシュメモリー」という用語は、フラッシュ式格納システムで広く使用されるNANDタイプのフラッシュメモリーを示す。
図1は、フラッシュメモリーの構造を示す。フラッシュメモリーは、Nblock個のブロックで構成されて、各ブロックは、Npage個のページで構成される。ページは、データの読み書きの演算が遂行される最小単位であり、ブロックは、データを削除する演算が遂行される最小単位である。各ページは、データを格納するためのデータ領域と有効(valid)及び廃止(obsolete)状態ビット、バッドブロック識別、エラーチェックのような補助情報を格納するためのスペア領域で構成される。
フラッシュメモリー内のデータを読み書きするために、読み取り、書き込み、削除の三種類の演算が存在する。
−読み取り演算:特定ページ内のすべてのビット値を返還する
−書き込み演算:特定ページ内の選択されたビットの値を1から0に変える
−削除演算:特定ブロック内のすべてのビット値を1に設定する
フラッシュメモリーに対する演算は、磁気ディスクに対する演算と異なる。まず、フラッシュメモリー内のすべてのビットは、初期に1に設定される。よって、フラッシュメモリーに対する書き込み演算は、特定ページ内の一部ビット値を1から0に変えることを意味する。次に、フラッシュメモリーに対する削除演算は、特定ブロック内のすべてのビット値を1に戻すことができる。各ブロックに対して、おおよそ100,000回程度に制限された回数のみ削除演算の遂行が可能で、それ以上、遂行される場合、データを信頼することができなくなる。
書き込みと削除演算の制約によってページを上書きするためには、一般的に削除演算が書き込み演算に先行して遂行される。削除演算を遂行してブロック内のすべてのビット値を1に変化させた後、書き込み演算を遂行してページ内の一部ビット値を0に変化させる。また、削除演算は、書き込み演算よりずっと大きい単位に対して遂行される。すなわち、書き込み演算は、ページに対して遂行される一方、削除演算はブロックに対して遂行される。ページを上書きするための具体的な方法は、使用しているページ更新方法によって決定される。
フラッシュメモリーは、メモリーセルの容量によって単一レベルセル(SLC)と多重レベルセル(MLC)の二つのタイプがある。前者は、セルごとに一つのデータビット値のみを格納することができるのと比較して、後者は、セルごとに二つの(またはそれ以上の)データビット値を格納することができる。よって、MLCタイプのフラッシュメモリーは、SLCタイプと比較して容量がさらに大きくて、大容量のフラッシュ格納装置に広く使用されることが予想される。表1は、MLCタイプのフラッシュメモリーのパラメーターとその値を要約したものである。ページサイズは、2,048バイトであり、ブロックは、64個のページで構成される。また、演算のアクセス時間は、読み取り、書き込み、削除の順序で増加する。読み取り演算は、書き込み演算と比較して7.9倍速く、書き込み演算は、削除演算と比較して1.6倍速い。
以後、本発明での不明確さを減らすために、物理的ページと論理的ページを区別する。メモリー内のページを論理的ページと呼び、フラッシュメモリー内のページを物理的ページと呼ぶ。また、説明の便宜上、論理的ページのサイズが物理的ページのサイズと同一であると仮定する。
今までフラッシュ式格納システムのために更新されたページをフラッシュメモリーに格納する方法に対する多くの研究が行なわれた。本発明では、このような方法をページ更新方法と呼ぶことにする。ページ更新方法は、ページ式とログ式の二つのカテゴリーに分けられる。
ページ式方法では、一つの論理的ページが一つの物理的ページに格納される。更新されたページがフラッシュメモリーに反映される必要がある場合(例えば、更新されたページが、DBMSバッファーでデータベースにスワップアウトされる場合)、一つの論理的ページ全体が一つの物理的ページに記録される。論理的ページがフラッシュメモリーから再生成される場合(例えば、ページをDBMSバッファーで読み込む場合)、論理的ページは一つの物理的ページから読まれる。この方法は、フラッシュ変換階層(Flash Translation Layer、FTL)と呼ばれる中間階層に具現されるので、格納システムと緩く結合される。ここで、FTLは、図2のように論理的ページと物理的ページ間の論理的住所と物理的住所のマッピングを管理する。FTLは、SSD’s(solid state disks)内に存在するコントローラーにファームウエア形態で具現することもでき、組込みボードのための運営体制内にソフトウェア形態で具現することもできる。
ページ式方法は、論理的ページがいつも同一物理的ページに記録されるのかいなかによって、インプレースアップデート(in−place update)とアウトプレースアップデート(out−place update)の二つの方法に分けられる。論理的ページが、フラッシュメモリーに反映される必要がある場合、インプレースアップデートは、論理的ページを以前に読んだ特定物理的ページに上書きして、アウトプレースアップデートは、論理的ページを新しい物理的ページに記録する。
フラッシュメモリーでの書き込み演算は、ページ内のビット値を1に変えることができないので、ブロックb内の物理的ページpから読み込んだ論理的ページmを同一な物理的ページpに上書きする場合、インプレースアップデートは、次の四種類の工程を遂行する。
第一工程:pを除いたブロックb内のすべてのページを読む。
第二工程:ブロックbに対して削除演算を遂行する。
第三工程:論理的ページmを物理的ページpに記録する。
第四工程:mを除く工程1で読んだすべてのページをブロックb内の該当のページに記録する。
したがって、インプレースアップデートは、論理的ページをフラッシュメモリーに反映しなければならない度に一回の削除演算と数回の読み取り及び書き込み演算を発生させるので深刻な性能低下問題を有し、フラッシュ式格納システムでは、ほとんど使用されない。
インプレースアップデートの短所を克復するために、アウトプレースアップデートは、論理的ページmをフラッシュメモリーに反映しなければならない場合、論理的ページ mを新しい物理的ページpに記録した後、物理的ページpを廃止(obsolete)状態に設定する。フラッシュメモリー内のフリー状態のページが不足な場合、廃止状態のページは、ガベージコレクションによってフリー状態のページに変換されて再使用される。
アウトプレースアップデートは、論理的ページをフラッシュメモリーに反映しなければならない度に、削除演算を発生させないのでフラッシュ式格納システムで、広く使用される。これに対して、図3と図4は、アウトプレースアップデートを示す。図3は、ブロックb内の物理的ページpから読んだ論理的ページmを示し、図4は、更新された論理的ページmとこれを物理的ページpに記録する過程を示す。ここで、pは、以前に読んだオリジナルページで、pは新たに記録されたページである。
ログ式方法では、一つの論理的ページが一般的にいくつかの物理的ページに格納される。論理的ページが更新される度に、多くの論理的ページの更新ログが先にメモリー上の書き込みバッファーに集められる。ここで、更新ログは、一つの更新命令によって発生するページ内の変更事項である。そして、もしバッファーがすべていっぱいになるとそれを一つの物理的ページに記録する。よって、論理的ページが頻繁に更新される場合、それに対する更新ログがいくつかの物理的ページに格納されるので、一つの論理的ページを再生成する場合、いくつかの物理的ページが読まれなければならないし、併合されなければならない。のみならず、ログ式方法は格納システムが論理的ページの更新ログを識別することができるように直されなければならないので、システムに密結合になる(システム依存性が高い)。
ログ式方法には、LFS(Log−structured File system)、JFFS(Journaling Flash File System)、YAFFS(Yet Another Flash File System)、そしてIPL(In−Page Logging)がある。LFS、JFFS、そしてYAFFSでは、論理的ページの更新ログがフラッシュメモリー内の任意のログページに記録され得る一方、IPLでは更新ログが特定ログページに記録される。IPLは、各ブロック内のページを固定された個数のオリジナルページとログページに分ける。この方法は、論理的ページの更新ログをその論理的ページのオリジナルページを含んだブロック内のログページにのみ記録する。よって、IPLは論理的ページを再生成する場合、ブロック内のオリジナルページとログページのみを読む。IPLは、ブロック内にフリー状態のログページがない場合、ブロック内のオリジナルページとログページを併合した後、併合されたページを新しいブロック内のページに記録する(この過程は、合併(merging)と呼ばれる)。
結果的に、他のログ式方法と比較した時、IPLは合併によってログページが無限に増加しないので、論理的ページを再生成する場合にフラッシュメモリーから読まなければならないログページの個数を減らすことにより、読み取り性能を向上させる。IPLは、合併の効果を除き、ログ式方法の長短所を受け継ぐため、他のログ式方法と性能が類似している。
図5から図9までは、ログ式方法の典型的な例を示す。
図5は、メモリー上の論理的ページm,mを示す。
図6は、論理的ページm,mの更新ログq、qとこれらをフラッシュメモリーに記録する過程を示す。ここで、更新ログq、qは、先に書き込みバッファーに記録された後、バッファーの内容がログページpに記録される。よって、更新ログq、qは、同一ログページpに集められる。
図7は、論理的ページm,mの更新ログq、qとこれらをフラッシュメモリーに記録する過程を示す。ここで、更新ログq、qは、先に書き込みバッファーに記録された後、バッファーの内容がログページpに記録される。よって、更新ログq、qは、同一ログページpに集められる。
図8は、フラッシュメモリーから再生成された論理的ページmを示す。
図9は、図8で再生成された論理的ページmの生成過程を示す。ここで、論理的ページmは、オリジナルページpとログページp、pそれぞれから読んだ更新ログq、qを併合することで再生成される。
ページ式方法とログ式方法を比較すると、論理的ページを更新するためにページ式方法は、ページ内の変更された部分だけではなく変更されない部分までも記録するのと比較して、ログ式方法は、ただ更新ログのみを記録する。よって、更新が頻繁に発生しない場合、ページ式方法がログ式方法と比較してさらに悪い書き込み性能を有する。ページ式方法は、更新されたページがフラッシュメモリーに反映される必要がある場合にのみ、更新されたページをフラッシュメモリーに記録する。しかし、ログ式方法は、論理的ページを更新する度に更新ログを使用するバッファーに記録する。ここで、書き込みバッファーがすべていっぱいになるとこれをフラッシュメモリーに記録する。よって、更新が頻繁に発生する場合、論理的ページが何回も更新されてページ一つの更新ログの総量が、ページ一つのサイズよりもっと大きくなることがある。この場合には、ページ式方法がログ式方法と比較してより良い書き込み性能を有する。
次に、フラッシュメモリーから論理的ページを再生成する場合、ページ式方法は、論理的ページが一つの物理的ページに格納されているので、一回の読み取り演算のみを必要とする。一方、ログ式方法は、論理的ページがいくつかの物理的ページに格納されているので、何回かの読み取り演算を必要とする。結果的に、ページ式方法は、ログ式方法と比較してより良い読み取り性能を有する。
最後に、ページ式方法は、DBMS依存性がないのに対して、ログ式方法は、DBMS依存性がある。
Chang, L. and Kuo, T., "An Efficient Management Scheme for Large-Scale Flash Memory Storage Systems", In ACM Symposium on Applied Computing (SAC), Nicosia, Cyprus, Mar. 2004. Gal, E. and Toledo, S., "Algorithms and Data Structures for Flash Memories", In ACM Computing Surveys, Vol.37, No.2, 2005. Kawaguchi, A., Nishioka, S., and Motoda, H., "A Flash-Memory Based File System", In Proc. USENIX Annual Technical Conference, New Orleans, Louisiana, Jan. 1995. Koltsidas, I. and Viglas, S. D., "Flashing Up the Storage Layer", In Proc. Int’l Conf. on Very Large Data Bases (VLDB), Auckland, New Zealand, Aug. 2008. Lee, S., Choi, W., Park, D., "FAST: An Efficient Flash Translation Layer for Flash Memory", In Proc. 1st Int’l Workshop on Embedded Software Optimization (ESO), Seoul, Korea, Aug. 2006. Lee, S. and Moon, B., "Design of Flash-Based DBMS: An In-Page Logging Approach", In Proc. Int’l Conf. on Management of Data, ACM SIGMOD, Beijing, China, June 2007. Nath, S. and Gibbons, P. B., "Online Maintenance of Very Large Random Samples on Flash Srorage", In Proc. Int’l Conf. on Very Large Data Bases (VLDB), Auckland, New Zealand, Aug. 2008. Park, C., Seo, J., Seo, D., Kim, S., and Kim, B., "Cost-Efficient Memory Architecture Design of NAND Flash Memory Embedded Systems", In Proc. Int’l Conf. on Computer Design (ICCD), San Jose, California, Oct. 2003. Rosenblum, M. and Ousterhout, J. K., "The Design and Implementation of a Log-Structured File System", In ACM Transactions on Computer Systems (TOCS), Vol.10, No.1, 1992. Samsung Electronics, Datasheet: 1G×8bit/2G×8bit/4G×8bit NAND Flash Memory, 2005 (http://www.DataSheet4U.com). Woodhouse, D., "JFFS: The Journaling Flash File System", In Proc. OttawaLinux Symposium, Ottawa, Canada, July 2001. Wu, C., Kuo, T., and Chang, L., "An Efficient B-Tree Layer for Flash-Memory Storage Systems", In ACM Transactions on Embedded Computing Systems, Vol.6, No.3, 2007.
米国特許出願公開2008/0068894A1明細書
本発明では、読み取り及び書き込み演算すべてに対して良い性能を有することで、フラッシュメモリー式格納システムの性能を顕著に向上させるページ−ディファレンシャルロギング(page−differential logging)と呼ばれるページ更新方法を提案する。
上述した課題を解決するために、本発明によるDBMSに独立的な方法でフラッシュメモリーにデータを格納する方法は、論理的ページをフラッシュメモリーのベースページとディファレンシャルページに分けて記録する記録工程と、ベースページとディファレンシャルページを読んだ後、ベースページとディファレンシャルページ内のディファレンシャルを併合して論理的ページを生成する再生成工程とを含むことを特徴とする。
また、前記記録工程は、論理的ページとベースページを比較してディファレンシャルを生成するディファレンシャル生成工程と、前記ディファレンシャル生成工程後、生成されたディファレンシャルを書き込みバッファーに記録するディファレンシャル記録工程と、前記書き込みバッファーがすべていっぱいになると、これをフラッシュメモリーに記録するバッファー記録工程とを含むことを特徴とする。
また、前記ベースページは、論理的ページ全体を含むことを特徴とする。
また、前記ディファレンシャルページは、一つ以上の論理的ページのディファレンシャルを含むことができることを特徴とする。
また、前記ディファレンシャルは、前記ベースページと前記論理的ページ間の差異点であることを特徴とする。
また、前記記録工程は、論理的ページがメモリー上で更新される度に遂行されるのではなく、更新された論理的ページがフラッシュメモリーに反映される必要がある場合にのみ遂行されることを特徴とする。
また、前記記録工程は、フラッシュメモリーから論理的ページに対するベースページを読む第1工程と、前記第1工程で読んだベースページと論理的ページを比較することによって、論理的ページに対するディファレンシャルを生成する第2工程と、前記第2工程後、ディファレンシャルを書き込みバッファーに記録する第3工程とを含むことを特徴とする。
また、前記第3工程は、前記ディファレンシャルのサイズが前記書き込みバッファーの余裕空間と同じか小さな場合に、前記ディファレンシャルを書き込むバッファーに記録する工程であることを特徴とする。
また、前記第3工程は、前記ディファレンシャルのサイズが前記書き込みバッファーの余裕空間よりは大きいが、物理的ページ一つのサイズと同じか小さな場合、前記書き込みバッファーの内容をフラッシュメモリーに記録した後、前記書き込みバッファーを空にして、前記ディファレンシャルを前記書き込みバッファーに記録する工程であることを特徴とする。
また、前記第3工程は、前記ディファレンシャルのサイズが物理的ページ一つのサイズよりもさらに大きい場合、前記ディファレンシャルを捨てて論理的ページ自体をフラッシュメモリーに新しいベースページとして記録する工程であることを特徴とする。
また、前記再生成工程は、前記フラッシュメモリーから前記論理的ページに対する前記ベースページを読む第1過程と、前記論理的ページに対するディファレンシャルを捜す第2過程と、前記第1過程で読んだベースページと前記第2過程で捜したディファレンシャルを併合して論理的ページを生成する第3過程とを含むことを特徴とする。
また、前記第2過程は、前記ディファレンシャルが前記書き込みバッファーに存在する場合には、前記書き込みバッファーから論理的ページに対するディファレンシャルを捜す工程であることを特徴とする。
また、前記第2過程は、前記ディファレンシャルが前記書き込みバッファーに存在しない場合には、論理的ページに対するディファレンシャルページをフラッシュメモリーから読み出した後、読んだディファレンシャルページからディファレンシャルを捜す工程であることを特徴とする。
上述したように、本発明によるページ−ディファレンシャルロギング方法は、フラッシュ式格納システムの性能を顕著に向上させる効果的で効率的なページ更新方法であり、この方法によれば、更新されたページのディファレンシャルのみが記録され、ディファレンシャルは、ページがメモリー上で更新される度に計算され記録されるのではなく、更新されたページがフラッシュメモリーに反映される必要がある場合にのみ計算され記録される。フラッシュメモリーからページを再生成する場合、ログ式方法と比較して読み取り演算の回数を少なくすることができ、更新されたページをフラッシュメモリーに反映しなければならない場合、ログ式及びページ式方法と比較して書き込み演算の回数を少なくすることができる。また、この方法は、フラッシュメモリードライバーのみを直すことで、既存ディスク式DBMSをフラッシュ式DBMSに再使用可能となるので、経済的で速度が速く、かつ性能がさらに向上する。
フラッシュメモリーの構造を示した図である。 ページ式アプローチのアーキテクチャーを示した図である。 アウトプレースアップデート過程の中でブロックb内の物理的ページpから読んだ論理的ページmを示した図である。 アウトプレースアップデート過程の中で更新された論理的ページmと、それを物理的ページpに記録する過程を示した図である。 ログ式アプローチを説明するために過程開始前のメモリー状態を示した図である。 ログ式アプローチ過程の中で、論理的ページm,mとそれぞれの更新ログq、qがフラッシュメモリーに記録される過程を示した図である。 ログ式アプローチ過程の中で、論理的ページm,mとそれぞれの更新ログq、qがフラッシュメモリーに記録される過程を示した図である。 ログ式アプローチ過程の中で、フラッシュメモリーから再生成された論理的ページmを示した図である。 ログ式アプローチ過程の中で、図8で再生成された論理的ページmの生成方法を示した図である。 ディファレンシャル式アプローチを説明するために過程開始前のメモリー状態を示した図である。 ディファレンシャル式アプローチ過程の中で、更新された論理的ページm,mと、これらがフラッシュメモリーに記録される過程を示した図である。 ディファレンシャル式アプローチ過程の中で、更新された論理的ページm,mと、これら各々のベースページとの比較によるディファレンシャルの生成を示す。 ディファレンシャル式アプローチ過程の中で、フラッシュメモリーから再生成された論理的ページmを示す図である。 ディファレンシャル式アプローチ過程の中で、フラッシュメモリーから再生成された論理的ページmの生成方法を示した図である。 ページ−ディファレンシャルロギング方法の資料構造を示した図である。 論理的ページをフラッシュメモリーに記録するアルゴリズムを示した図である。 図16に記載したアルゴリズムで使用されるwritingDifferentialWriteBuffer関数を示した図である。 図16に記載したアルゴリズムで使用されるwritingNewBasePage関数を示した図である。 論理的ページをフラッシュメモリーに記録するアルゴリズムである図16〜図18を工程として示した図である。 図16と図19の中でディファレンシャルのサイズによる論理的ページの記録工程を示した図である。 図20の中で、ディファレンシャルのサイズが書き込みバッファーの余裕サイズよりは大きいが、物理的ページ一つのサイズよりは小さいか同じ場合の図17で示された関数であるwritingDifferentialWriteBuffer工程を示した図である。 図20の中でディファレンシャルのサイズが、物理的ページ一つのサイズよりは大きい場合の図18の工程である該当のディファレンシャルを捨てた後に実行されるwritingNewBasePage工程を示した図である。 フラッシュメモリーから論理的ページを再生成するアルゴリズムを示した図である。 フラッシュメモリーから論理的ページを再生成するアルゴリズムである図23を工程で示した図である。
以下、添付された図面を参照して本発明の実施例を詳しく説明する。
本発明は、フラッシュ式格納システムのためのページ−ディファレンシャルロギング(page−differential logging)方法を提案する。ページ−ディファレンシャル(簡単にディファレンシャルと呼ぶ)とは、フラッシュメモリー内のオリジナルページとメモリー内の最新ページとの間の差異である。この方法は、データをフラッシュメモリーに格納するための新しいアプローチであり、次のようないくつかの点でページ式方法またはログ式方法と非常に異なる。
(1)ページ−ディファレンシャルロギング方法は、更新されたページのディファレンシャルのみを記録する。このような特徴は、データの変更された部分及び変更されない部分を含むページ全体を記録する既存のページ式方法またはページ内の変更事項(すなわち、いくつかの更新ログ)の記録をすべて維持する既存のログ式方法と区別される。のみならず、ディファレンシャルは、ページがメモリー上で更新される度に計算され記録されるのではなく、更新されたページがフラッシュメモリーに反映される必要がある時にのみ計算され記録される。本方法は、フラッシュメモリーから論理的ページのオリジナルページを読んだ後、更新された論理的ページとの差異を計算することで更新されたページに対するディファレンシャルを生成する。フラッシュメモリーでは、読み取り演算の速度が書き込みまたは削除演算の速度と比較して非常に速いので、ディファレンシャルを生成するためのオーバーヘッドは、相対的に小さい。
(2)フラッシュメモリーからページを再生成する場合、ページ−ディファレンシャルロギング方法は、最大二つのページ(オリジナルページとディファレンシャルを含んでいる一つのページ)のみを読み取るので、ログ式方法と比較して読み取り演算の回数を少なくすることができる。
(3)更新されたページをフラッシュメモリーに反映しなければならない必要がある場合、ページ−ディファレンシャルロギング方法は、ディファレンシャルを記録するので、ログ式またはページ式方法と比較して書き込み演算の回数を少なくすることができる。
(4)ログ式方法は、格納システムに密結合になる(システム依存性が高い)一方、ページ−ディファレンシャルロギング方法は、システムに緩く結合される(システム依存性が低い)。ログ式方法では、ページが更新される度にページ内の変更事項を識別しなければならないので、DBMSの格納装置管理モジュールを直さなければならず、また、変更事項は、システムによって内部的に管理されるので、格納装置モジュール内部でのみ識別され得る。一方、ページ−ディファレンシャルロギング方法は、格納装置管理モジュール外部でフラッシュメモリーに反映される必要があるページをフラッシュメモリー内のオリジナルページと比較することによってディファレンシャルを計算するので、DBMSのモジュールを直す必要がない。
読み取り演算と書き込み演算すべてに対して良い性能を得るために、ページ−ディファレンシャルロギングのための三種類の原則を提示する。
一番目の原則は、writing difference onlyであり、論理的ページがフラッシュメモリーに反映される必要がある場合に差異点のみを記録する。
二番目の原則は、at−most−one−page writingであり、論理的ページがフラッシュメモリーに反映される必要がある場合、ページがメモリー上で何回更新されたとしても、最大一つの物理的ページのみを記録する。
三番目の原則は、at−most−two−page readingであり、フラッシュメモリーから論理的ページを再生成する場合、最大二つの物理的ページのみを読む。
本発明は、上で言及した三種類の原則によるページ−ディファレンシャルロギング方法を提案する。
ページ−ディファレンシャルロギングでは、一つの論理的ページが、二つの物理的ページであるベースページとディファレンシャルページに格納される。ここで、ベースページは、論理的ページ全体を含み、ディファレンシャルページは、ベースページと最新の論理的ページ間の差異点であるディファレンシャルを含む。ディファレンシャルページは、空の空間が浪費されることを防ぐために、いくつかの論理的ページのディファレンシャルを含むことができる。
ディファレンシャルは、ログ式方法での更新ログの集合と比較して次の二つの長所を有する。(1)ディファレンシャルは、論理的ページの更新ログをすべて維持しなくても計算することができる。言い換えれば、ディファレンシャルは、更新された論理的ページがフラッシュメモリーに反映される必要がある場合に、更新された論理的ページとベースページを比較することで計算することができる。(2)ディファレンシャルは、論理的ページ内の何回も更新された部分に対してオリジナルページと最新論理的ページとの差異点のみを含む。論理的ページ内の特定部分がメモリー上で何回も更新される場合、更新ログの集合は、変更事項をすべて含むのと比較して、ディファレンシャルは、オリジナルデータと最新データとの差異点のみを含む。例えば、論理的ページが[..aaaaaa..−>..bbbbba..−>..bcccba..]のように二度更新されたと仮定しよう。ここで、更新ログの集合は変更事項である「bbbbb」と「ccc」すべて含む一方、ディファレンシャルは差異点である「bcccb」だけを含む。
更新された論理的ページをフラッシュメモリーに反映する必要がある場合、ページディファレンシャルロギングは、論理的ページとフラッシュメモリー内のベースページを比較することでディファレンシャルを生成した後、このディファレンシャルを一つのページで構成された書き込みバッファーに記録する。そして、バッファーがすべていっぱいになると、これをフラッシュメモリーに記録する。よって、本方法は、writing difference only原則を満足する。
本方法は、論理的ページが更新される場合、別途のログを記録しないまま、メモリー上の論理的ページのみを更新する。ディファレンシャルを生成して記録することは、更新された論理的ページがフラッシュメモリーに反映される必要があるまで延期される。よって、本方法は、at−most−one−page writing原則を満足する。
理論的に、ディファレンシャルのサイズは、ページ一つのサイズより大きくなることができない。しかし、実際には、ディファレンシャルは、ページ内の変更されたデータだけではなく、オフセットと長さのようなメタデータを含むので、もしページの大きな部分が変更された場合には、ディファレンシャルのサイズがページ一つのサイズよりさらに大きくなることがある。この場合には、at−most−one−page writing原則を満足するために生成されたディファレンシャルを捨てて、更新された論理的ページ自体を新しいベースページとしてフラッシュメモリーに記録する(この特別な場合には、ページ−ディファレンシャルロギングは、ページ式方法と同じになる)。
フラッシュメモリーから論理的ページを再生成する場合、ページ−ディファレンシャルロギングは、ベースページとそれのディファレンシャルページを読んだ後、ベースページとディファレンシャルページ内のディファレンシャルを併合することで論理的ページを生成する。ここで、もしベースページが更新されなかった場合(すなわち、ディファレンシャルページがない場合)には、一つの物理的ページのみを読む。よって、本方法は、最大二つの物理的ページのみを読み取るので、at−most−two−page reading原則を満足する。
図10〜図14は、ページ−ディファレンシャルロギング方法を示す。ここで、base_page(p)、differential_page(p)、そしてdifferential(p)は、それぞれ論理的ページpに対するベースページ、ディファレンシャルページ、そしてディファレンシャルを示す。
図10は、メモリー上の論理的ページ、m,mを示す。
図11は、更新された論理的ページ、m,mとこれらをフラッシュメモリーに記録する過程を示す。
図12は、更新された論理的ページ、m,mとこれらそれぞれのベースページとの比較によるディファレンシャルの生成を示す。
図11で更新された論理的ページm,mが、フラッシュメモリーに反映される必要がある場合、ページ−ディファレンシャルロギング方法は、次の三工程を遂行する。
(1)フラッシュメモリーからベースページp、pを読む。
(2)更新された論理的ページm,mとベースページp、pをそれぞれ比較することで、differential(m)、differential(m)を生成する。
(3)differential(m)、differential(m)を使用するバッファーに記録する。もしバッファーがすべていっぱいになると、これを物理的ページpに記録する。
したがって、更新された論理的ページm,mのディファレンシャルは、同一なディファレンシャルページpに記録される。
図13は、フラッシュメモリーから再生成された論理的ページmを示す。
図14は、図13でフラッシュメモリーから再生成された論理的ページmの生成方法を示す。ここで、論理的ページmは、ベースページpとディファレンシャルページp内のdifferential(m)を併合することで生成される。
フラッシュメモリー内で使用される資料構造には、ベースページ、ディファレンシャルページ、そしてディファレンシャルがある。ベースページは、データ領域内に論理的ページを格納して、スペア領域内に物理的ページ識別子を格納する。物理的ページ識別子はデータベース内のページの唯一の識別子を示す。ディファレンシャルページは、論理的ページのディファレンシャルを格納する。ディファレンシャルが属するベースページを識別するために物理的ページ識別子がディファレンシャル内に格納される。よって、ディファレンシャルの構造は<物理的ページ識別子、[オフセット、長さ、変更されたデータ]>のような形態を有する。
メモリー内で使用される資料構造には、物理的ページマッピングテーブル、有効なディファレンシャルカウントテーブル、そしてディファレンシャル書き込みバッファーがある。物理的ページマッピングテーブルは、物理的ページ識別子を<ベースページ住所、ディファレンシャルページ住所>にマッピングする。フラッシュメモリーでは、アウトプレース方式によってページ内の位置が変わり得るので、このテーブルは、フラッシュメモリー内のベースページとディファレンシャルページの対を間接的に参照するのに使用される。
有効なディファレンシャルカウントテーブルは、有効なディファレンシャル(すなわち、廃止(obsolete)にしないディファレンシャル)の個数をカウントする。ここで、カウントの値が0になれば、そのディファレンシャルページは、廃止状態(obsolete状態)に設定されて、ガベージコレクションによって再使用される。
ディファレンシャル書き込みバッファーは、論理的ページのディファレンシャルをメモリー上で集めた後、バッファーがすべていっぱいになると、これらをフラッシュメモリー内のディファレンシャルページに記録するために使用される。ディファレンシャル書き込みバッファーは、一つのページで成り立つのでメモリー使用量が非常に少ない。図15は、前記で説明されたページディファレンシャルロギング方法の資料構造を示す。
論理的ページをフラッシュメモリーに記録するためのアルゴリズムとフラッシュメモリーから論理的ページを再生成するためのアルゴリズムを紹介する。
これらアルゴリズムをそれぞれPageDifferentialLogging_WritingとPageDifferentialLogging_Readingと呼ぶ。
図16と図19は、論理的ページをフラッシュメモリーに記録するのに使用されるPageDifferentialLogging_Writingアルゴリズムを示す。
PageDifferentialLogging_Writingの入力は、論理的ページpとヘッダー領域に格納された物理的ページ識別子pidである。このアルゴリズムは、次の三工程で成り立つ。
工程1では、フラッシュメモリーからbase_page(pid)を読む。
工程2では、工程1で読んだbase_page(pid)と入力として与えられた論理的ページpと比較することで、differential(pid)を生成する。
工程3では、工程2で生成したdifferential(pid)をディファレンシャル書き込みバッファーに記録する。ここで、differential(pid)のサイズにしたがって三種類の場合が存在する。ここで、論理的ページpの以前のディファレンシャルがバッファーに存在する場合には、以前のディファレンシャルをバッファーで先に削除した後、下の過程を遂行する。
第一の場合:differential(pid)のサイズが、ディファレンシャル書き込みバッファーの余裕空間と同じか小さな場合(場合1)には、単純にdifferential(pid)をディファレンシャル書き込みバッファーに記録する。
第二の場合:differential(pid)のサイズが、ディファレンシャル書き込みバッファーの余裕空間よりは大きいが、物理的ページ一つのサイズと同じかそれよりは小さい場合(場合2)には、writingDifferentialWriteBuffer()関数を呼び出した後、バッファーを空にして、differential(pid)をバッファーに記録する。図17と図21は、writingDifferentialWriteBuffer関数の内容を示す。この関数は、バッファーの内容をディファレンシャルページとしてフラッシュメモリーに記録した後、バッファー内のそれぞれのディファレンシャルに対して物理的ページマッピングテーブルと有効なディファレンシャルカウントテーブルを更新する。ここで、カウントの値が0になれば、そのディファレンシャルページは、廃止(obsolete)に設定されて、ガベージコレクションのために再使用される。
第三の場合:differential(pid)のサイズが、物理的ページ一つのサイズよりもっと大きい場合(場合3)には、生成したdifferential(pid)を捨てて、writingNewBasePage()関数を呼び出す。図18と図22は、writingNewBasePage関数の内容を示す。この関数は、論理的ページp自体を新しいベースページとしてフラッシュメモリーに記録した後、物理的ページマッピングテーブルと有効なディファレンシャルカウントテーブルを更新して、以前のベースページを廃止状態に設定する。
図23〜図24は、フラッシュメモリーから論理的ページを再生成するために使用されるPageDifferentialLogging_Readingアルゴリズムを示す。
PageDifferentialLogging_Readingの入力は、読もうとする論理的ページの物理的ページ識別子pidである。このアルゴリズムは、次の三工程で成り立つ。
工程1では、フラッシュメモリーからbase_page(pid)を読む。
工程2では、base_page(pid)のdifferential(pid)を捜す。ここで、differential(pid)がどこに存在するかによって二つの場合が存在する。
第一の場合:differential(pid)が、ディファレンシャル書き込みバッファー内に存在する場合、すなわち、バッファーがいまだにフラッシュメモリーに記録されていない場合には、ディファレンシャル書き込みバッファーでdifferential(pid)を捜す。
第二の場合:differential(pid)が、ディファレンシャル書き込みバッファー内に存在しない場合、フラッシュメモリーからdifferential_page(pid)を読んで、differential(pid)を捜す。ここで、もしdifferential_page(pid)がフラッシュメモリーに存在しない場合には(物理的ページマッピングテーブルから分かる)、工程1で読んだbase_page(pid)を結果として返還する。
工程3では、工程1で読んだbase_page(pid)と工程2で捜したdifferential(pid)を併合することで論理的ページpを再生成した後、これを結果として返還する。
以上のように本発明によるDBMSに独立的な方法でフラッシュメモリーにデータを格納する新しいアプローチであるページディファレンシャルロギングを例示した図面を参考にして説明したが、本明細書に開示された実施例と図面によって本発明が限定されるのではなく、本発明の技術思想の範囲内で当業者によって多様な変形がなされ得ることは、もちろんである。

Claims (18)

  1. ページ−ディファレンシャルを使用して、DBMSに独立的な方法でフラッシュメモリーにデータを格納する方法であって、
    メインメモリーの論理的ページとフラッシュメモリー内のベースページとを比較してディファレンシャルを生成するディファレンシャル生成工程と、
    前記ディファレンシャル生成工程後、生成されたディファレンシャルを書き込みバッファーに記録するディファレンシャル記録工程と、
    前記書き込みバッファーがすべて一杯になると、記録されたディファレンシャルをフラッシュメモリーのディファレンシャルページに格納するバッファー記録工程と、
    前記ベースページと前記ディファレンシャルページを読んだ後、前記ベースページと前記ディファレンシャルページ内のディファレンシャルを併合して論理的ページを生成する再生成工程と
    を含む方法。
  2. 前記ベースページが、論理的ページ全体を含むことを特徴とする請求項1に記載の方法。
  3. 前記ディファレンシャルページが、一つ以上の論理的ページのディファレンシャルを含むことを特徴とする請求項1に記載の方法。
  4. 前記ディファレンシャルが、前記ベースページと前記論理的ページとの間の差異であることを特徴とする請求項1に記載の方法。
  5. 前記ディファレンシャル記録工程及び前記バッファー記録工程が、更新された論理的ページがフラッシュメモリーに反映される必要がある場合にのみ遂行されることを特徴とする請求項1に記載の方法。
  6. 前記記録工程が、
    フラッシュメモリーから論理的ページに対するベースページを読む第1工程と、
    前記第1工程で読んだベースページと前記論理的ページを比較することで論理的ページに対するディファレンシャルを生成する第2工程と、
    前記第2工程後、書き込みバッファーに以前のディファレンシャルが存在する場合にはこれを先に削除した後、ディファレンシャルを前記書き込みバッファーに記録する第3工程と
    を含むことを特徴とする請求項1に記載の方法。
  7. 前記第3工程は、前記ディファレンシャルのサイズが前記書き込みバッファーの余裕空間と同じか小さい場合に、前記ディファレンシャルを書き込みバッファーに記録する工程であることを特徴とする請求項6に記載の方法。
  8. 前記第3工程は、前記ディファレンシャルのサイズが前記書き込みバッファーの余裕空間よりは大きいが、物理的ページ一つのサイズと同じか小さい場合に、前記書き込みバッファーの内容をフラッシュメモリーに記録する工程と、前記書き込みバッファーを空にする工程と、前記ディファレンシャルを前記書き込みバッファーに記録する工程とで構成されることを特徴とする請求項6に記載の方法。
  9. 前記フラッシュメモリーに記録する工程が、
    前記書き込みバッファーの内容をフラッシュメモリーから割り当てられた新しい物理的ページに記録する工程と、
    物理的ページマッピングテーブルと有効ディファレンシャルカウントテーブルを更新するテーブル更新工程と
    を含むことを特徴とする請求項8に記載の方法。
  10. 前記テーブル更新工程が、
    前記書き込みバッファー内の各ディファレンシャルに対して、前記各ディファレンシャルが属する論理的ページのディファレンシャルページが前記物理的ページになるように物理的ページマッピングテーブルを更新する工程と、
    前記各ディファレンシャルが属する論理的ページの以前のディファレンシャルページがnoneではない場合、有効ディファレンシャルカウントテーブルの以前のディファレンシャルページのカウント値を1減少させる工程と、
    有効ディファレンシャルカウントテーブルの新しいディファレンシャルページのカウント値を1増加させる工程と
    を含むことを特徴とする請求項9に記載の方法。
  11. 前記第3工程が、前記ディファレンシャルのサイズが物理的ページ一つのサイズよりさらに大きい場合、前記ディファレンシャルを捨てる工程と、ベースページを記録する工程とで構成されることを特徴とする請求項6に記載の方法。
  12. 前記ベースページを記録する工程が、
    前記ベースページをフラッシュメモリーから割り当てられた新しい物理的ページに記録する工程と、
    物理的ページマッピングテーブルと有効ディファレンシャルカウントテーブルを更新するテーブル更新工程と
    を含むことを特徴とする請求項11に記載の方法。
  13. 前記テーブル更新工程が、
    前記論理的ページのベースページとディファレンシャルページがそれぞれ前記物理的ページとnoneになるように物理的ページマッピングテーブルを更新する工程と、
    前記論理的ページの以前のディファレンシャルページがnoneではない場合、有効ディファレンシャルカウントテーブルの以前のディファレンシャルページのカウント値を1減少させる工程と、
    前記論理的ページの以前のベースページを廃止状態に設定する工程と
    を含むことを特徴とする請求項12に記載の方法。
  14. 前記以前のディファレンシャルページのカウント値を1減少させる工程以後に、前記減少された以前のディファレンシャルページのカウント値が0の場合、前記ディファレンシャルページを廃止状態に設定する工程をさらに含むことを特徴とする請求項10または請求項13に記載の方法。
  15. 前記再生成工程が、
    前記フラッシュメモリーから前記論理的ページに対する前記ベースページを読む第1過程と、
    前記論理的ページに対するディファレンシャルを捜す第2過程と、
    前記第1過程で読んだベースページと前記第2過程で捜したディファレンシャルを併合して論理的ページを生成した後、これを結果として返還する第3過程とを含むことを特徴とする請求項1に記載の方法。
  16. 前記第2過程は、前記ディファレンシャルが前記書き込みバッファーに存在する場合に、前記書き込みバッファーから前記論理的ページに対するディファレンシャルを捜す工程であることを特徴とする請求項15に記載の方法。
  17. 前記第2過程は、前記ディファレンシャルが前記書き込みバッファーに存在しない場合に、前記論理的ページに対するディファレンシャルページを読む工程と、前記読んだディファレンシャルページからディファレンシャルを捜す工程とで構成されることを特徴とする請求項15に記載の方法。
  18. 前記論理的ページに対するディファレンシャルページを読む工程以前に、前記論理的ページに対するディファレンシャルページがフラッシュメモリーに存在しない場合に前記第1過程で読んだベースページを結果として返還する工程をさらに含むことを特徴とする請求項17に記載の方法。
JP2009183667A 2009-03-18 2009-08-06 ページ−ディファレンシャルを使用して、dbmsに独立的な方法でフラッシュメモリーにデータを格納する方法 Expired - Fee Related JP5184462B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20090022955 2009-03-18
KR10-2009-0022955 2009-03-18
KR10-2009-0035341 2009-04-23
KR1020090035341A KR100929371B1 (ko) 2009-03-18 2009-04-23 페이지-디퍼런셜을 이용하여 dbms에 독립적인 방법으로 플래시 메모리에 데이터를 저장하는 방법

Publications (2)

Publication Number Publication Date
JP2010218529A JP2010218529A (ja) 2010-09-30
JP5184462B2 true JP5184462B2 (ja) 2013-04-17

Family

ID=41683734

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009183667A Expired - Fee Related JP5184462B2 (ja) 2009-03-18 2009-08-06 ページ−ディファレンシャルを使用して、dbmsに独立的な方法でフラッシュメモリーにデータを格納する方法

Country Status (3)

Country Link
US (1) US8117406B2 (ja)
JP (1) JP5184462B2 (ja)
KR (1) KR100929371B1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101644125B1 (ko) * 2009-09-22 2016-07-29 삼성전자주식회사 비휘발성 메모리를 이용한 로깅 최적화 장치 및 방법
KR101069667B1 (ko) 2009-11-25 2011-10-05 동국대학교 산학협력단 전화번호 저장 방법 및 저장 시스템
JP2011192239A (ja) * 2010-03-17 2011-09-29 Sony Corp 記憶装置および記憶システム
KR101191320B1 (ko) 2010-12-09 2012-10-16 한양대학교 산학협력단 쓰기 데이터의 비교에 의한 플래시 메모리 관리장치 및 방법
US9159422B1 (en) * 2011-04-12 2015-10-13 Sk Hynix Memory Solutions Inc. Cross page management to avoid NAND physical page size limitation
JP2013127748A (ja) * 2011-12-19 2013-06-27 Fujitsu Ltd 情報処理装置、データ記憶方法及びプログラム
US8990450B2 (en) * 2012-05-14 2015-03-24 International Business Machines Corporation Managing a direct memory access (‘DMA’) injection first-in-first-out (‘FIFO’) messaging queue in a parallel computer
US8972826B2 (en) 2012-10-24 2015-03-03 Western Digital Technologies, Inc. Adaptive error correction codes for data storage systems
US9021339B2 (en) 2012-11-29 2015-04-28 Western Digital Technologies, Inc. Data reliability schemes for data storage systems
US9059736B2 (en) 2012-12-03 2015-06-16 Western Digital Technologies, Inc. Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme
US9214963B1 (en) 2012-12-21 2015-12-15 Western Digital Technologies, Inc. Method and system for monitoring data channel to enable use of dynamically adjustable LDPC coding parameters in a data storage system
JP6008325B2 (ja) * 2013-05-17 2016-10-19 学校法人 中央大学 データ記憶システムおよびその制御方法
US20140351485A1 (en) * 2013-05-23 2014-11-27 Spansion Llc Differential File System for Computer Memory
US9519591B2 (en) * 2013-06-22 2016-12-13 Microsoft Technology Licensing, Llc Latch-free, log-structured storage for multiple access methods
US9275095B2 (en) 2013-07-31 2016-03-01 International Business Machines Corporation Compressing a multi-version database
CN105701021B (zh) * 2014-12-10 2021-03-02 慧荣科技股份有限公司 数据储存装置及其数据写入方法
KR102275710B1 (ko) 2015-02-02 2021-07-09 삼성전자주식회사 오버-라이트가 가능한 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법
US9870170B2 (en) 2015-09-10 2018-01-16 Toshiba Memory Corporation Memory controller, memory system and memory control method
US20170109102A1 (en) * 2015-10-19 2017-04-20 Elastifile Ltd. Usage of ssd nvdram by upper software layers
US10013346B2 (en) * 2015-11-17 2018-07-03 Western Digital Technologies, Inc. Method of decreasing write amplification of NAND flash using a journal approach
US10061523B2 (en) * 2016-01-15 2018-08-28 Samsung Electronics Co., Ltd. Versioning storage devices and methods
US10180891B2 (en) 2016-11-02 2019-01-15 Sap Se Monitoring processes running on a platform as a service architecture
US10268566B2 (en) 2016-11-04 2019-04-23 Sap Se Debugging in a private cloud environment
US10446197B2 (en) 2017-08-31 2019-10-15 Micron Technology, Inc. Optimized scan interval
US10754580B2 (en) 2017-10-23 2020-08-25 Micron Technology, Inc. Virtual partition management in a memory device
WO2019113729A1 (en) 2017-12-11 2019-06-20 Micron Technology, Inc. Scheme to improve efficiency of garbage collection in cached flash translation layer
US10365854B1 (en) 2018-03-19 2019-07-30 Micron Technology, Inc. Tracking data temperatures of logical block addresses

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002008379A (ja) * 2000-06-12 2002-01-11 Shijin Kogyo Sakushinkai フラッシュメモリの消去回数減少可能なデータアクセス方法と該方法を使用するデータ補修及びアクセス装置
FR2816750B1 (fr) * 2000-11-15 2003-01-24 St Microelectronics Sa Memoire flash comprenant des moyens de controle de la tension de seuil de cellules memoire
EP1331643B1 (en) 2002-01-29 2009-12-16 Agere Systems Inc. Differential flash memory programming technique
US7398381B2 (en) * 2004-12-10 2008-07-08 Intel Corporation Utilizing paging to support dynamic code updates
KR100868674B1 (ko) * 2006-10-30 2008-11-13 한국과학기술원 플래시메모리 관리방법
KR100843135B1 (ko) * 2006-11-20 2008-07-02 삼성전자주식회사 비휘발성 메모리 관리 방법 및 장치
KR101473344B1 (ko) * 2007-08-24 2014-12-17 삼성전자 주식회사 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작방법

Also Published As

Publication number Publication date
US8117406B2 (en) 2012-02-14
KR100929371B1 (ko) 2009-12-02
JP2010218529A (ja) 2010-09-30
US20100241790A1 (en) 2010-09-23

Similar Documents

Publication Publication Date Title
JP5184462B2 (ja) ページ−ディファレンシャルを使用して、dbmsに独立的な方法でフラッシュメモリーにデータを格納する方法
US12045162B1 (en) System, method and apparatus for accelerating fast block devices
US10649910B2 (en) Persistent memory for key-value storage
US10620862B2 (en) Efficient recovery of deduplication data for high capacity systems
US9519575B2 (en) Conditional iteration for a non-volatile device
US9489297B2 (en) Pregroomer for storage array
US9824092B2 (en) File storage system including tiers
US10956071B2 (en) Container key value store for data storage devices
US20140351526A1 (en) Data storage controller with multiple pipelines
KR20070060070A (ko) 최적화된 순차적인 클러스터 관리용 에프에이티 분석
Lee et al. An efficient index buffer management scheme for implementing a B-tree on NAND flash memory
Lee et al. An efficient buffer management scheme for implementing a B-tree on NAND flash memory
Lee et al. RMSS: an efficient recovery management scheme on NAND flash memory based solid state disk
KR101020781B1 (ko) 플래시 메모리를 기반으로 한 데이터베이스 시스템에 대한 로그 관리 방법
Gong et al. A write-optimized B-tree layer for NAND flash memory
CN117850682A (zh) 一种基于位图的追加写场景下磁盘管理方法
CN117828133A (zh) 一种基于键差值分离完善lsm树的键值存储方法及系统
Sahri Design issues of shingled write disk for database table implementation
Lehtonen Bulk Indexing on Flash Devices
Du et al. A logging approach on B+-tree index for flash-based DBMS

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111220

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120828

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121026

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130116

R150 Certificate of patent or registration of utility model

Ref document number: 5184462

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

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

LAPS Cancellation because of no payment of annual fees