JP5184462B2 - ページ−ディファレンシャルを使用して、dbmsに独立的な方法でフラッシュメモリーにデータを格納する方法 - Google Patents
ページ−ディファレンシャルを使用して、dbmsに独立的な方法でフラッシュメモリーにデータを格納する方法 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation 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
−読み取り演算:特定ページ内のすべてのビット値を返還する
−書き込み演算:特定ページ内の選択されたビットの値を1から0に変える
−削除演算:特定ブロック内のすべてのビット値を1に設定する
フラッシュメモリーに対する演算は、磁気ディスクに対する演算と異なる。まず、フラッシュメモリー内のすべてのビットは、初期に1に設定される。よって、フラッシュメモリーに対する書き込み演算は、特定ページ内の一部ビット値を1から0に変えることを意味する。次に、フラッシュメモリーに対する削除演算は、特定ブロック内のすべてのビット値を1に戻すことができる。各ブロックに対して、おおよそ100,000回程度に制限された回数のみ削除演算の遂行が可能で、それ以上、遂行される場合、データを信頼することができなくなる。
第二工程:ブロックb1に対して削除演算を遂行する。
第三工程:論理的ページm1を物理的ページp1に記録する。
したがって、インプレースアップデートは、論理的ページをフラッシュメモリーに反映しなければならない度に一回の削除演算と数回の読み取り及び書き込み演算を発生させるので深刻な性能低下問題を有し、フラッシュ式格納システムでは、ほとんど使用されない。
図5は、メモリー上の論理的ページm1,m2を示す。
図6は、論理的ページm1,m2の更新ログq1、q2とこれらをフラッシュメモリーに記録する過程を示す。ここで、更新ログq1、q2は、先に書き込みバッファーに記録された後、バッファーの内容がログページp3に記録される。よって、更新ログq1、q2は、同一ログページp3に集められる。
図9は、図8で再生成された論理的ページm1の生成過程を示す。ここで、論理的ページm1は、オリジナルページp1とログページp3、p4それぞれから読んだ更新ログq1、q3を併合することで再生成される。
また、前記ディファレンシャルページは、一つ以上の論理的ページのディファレンシャルを含むことができることを特徴とする。
また、前記記録工程は、論理的ページがメモリー上で更新される度に遂行されるのではなく、更新された論理的ページがフラッシュメモリーに反映される必要がある場合にのみ遂行されることを特徴とする。
本発明は、フラッシュ式格納システムのためのページ−ディファレンシャルロギング(page−differential logging)方法を提案する。ページ−ディファレンシャル(簡単にディファレンシャルと呼ぶ)とは、フラッシュメモリー内のオリジナルページとメモリー内の最新ページとの間の差異である。この方法は、データをフラッシュメモリーに格納するための新しいアプローチであり、次のようないくつかの点でページ式方法またはログ式方法と非常に異なる。
一番目の原則は、writing difference onlyであり、論理的ページがフラッシュメモリーに反映される必要がある場合に差異点のみを記録する。
本発明は、上で言及した三種類の原則によるページ−ディファレンシャルロギング方法を提案する。
図11は、更新された論理的ページ、m1,m2とこれらをフラッシュメモリーに記録する過程を示す。
図11で更新された論理的ページm1,m2が、フラッシュメモリーに反映される必要がある場合、ページ−ディファレンシャルロギング方法は、次の三工程を遂行する。
(2)更新された論理的ページm1,m2とベースページp1、p2をそれぞれ比較することで、differential(m1)、differential(m2)を生成する。
図13は、フラッシュメモリーから再生成された論理的ページm1を示す。
これらアルゴリズムをそれぞれPageDifferentialLogging_WritingとPageDifferentialLogging_Readingと呼ぶ。
PageDifferentialLogging_Writingの入力は、論理的ページpとヘッダー領域に格納された物理的ページ識別子pidである。このアルゴリズムは、次の三工程で成り立つ。
工程2では、工程1で読んだbase_page(pid)と入力として与えられた論理的ページpと比較することで、differential(pid)を生成する。
工程2では、base_page(pid)のdifferential(pid)を捜す。ここで、differential(pid)がどこに存在するかによって二つの場合が存在する。
Claims (18)
- ページ−ディファレンシャルを使用して、DBMSに独立的な方法でフラッシュメモリーにデータを格納する方法であって、
メインメモリーの論理的ページとフラッシュメモリー内のベースページとを比較してディファレンシャルを生成するディファレンシャル生成工程と、
前記ディファレンシャル生成工程後、生成されたディファレンシャルを書き込みバッファーに記録するディファレンシャル記録工程と、
前記書き込みバッファーがすべて一杯になると、記録されたディファレンシャルをフラッシュメモリーのディファレンシャルページに格納するバッファー記録工程と、
前記ベースページと前記ディファレンシャルページを読んだ後、前記ベースページと前記ディファレンシャルページ内のディファレンシャルを併合して論理的ページを生成する再生成工程と
を含む方法。 - 前記ベースページが、論理的ページ全体を含むことを特徴とする請求項1に記載の方法。
- 前記ディファレンシャルページが、一つ以上の論理的ページのディファレンシャルを含むことを特徴とする請求項1に記載の方法。
- 前記ディファレンシャルが、前記ベースページと前記論理的ページとの間の差異であることを特徴とする請求項1に記載の方法。
- 前記ディファレンシャル記録工程及び前記バッファー記録工程が、更新された論理的ページがフラッシュメモリーに反映される必要がある場合にのみ遂行されることを特徴とする請求項1に記載の方法。
- 前記記録工程が、
フラッシュメモリーから論理的ページに対するベースページを読む第1工程と、
前記第1工程で読んだベースページと前記論理的ページを比較することで論理的ページに対するディファレンシャルを生成する第2工程と、
前記第2工程後、書き込みバッファーに以前のディファレンシャルが存在する場合にはこれを先に削除した後、ディファレンシャルを前記書き込みバッファーに記録する第3工程と
を含むことを特徴とする請求項1に記載の方法。 - 前記第3工程は、前記ディファレンシャルのサイズが前記書き込みバッファーの余裕空間と同じか小さい場合に、前記ディファレンシャルを書き込みバッファーに記録する工程であることを特徴とする請求項6に記載の方法。
- 前記第3工程は、前記ディファレンシャルのサイズが前記書き込みバッファーの余裕空間よりは大きいが、物理的ページ一つのサイズと同じか小さい場合に、前記書き込みバッファーの内容をフラッシュメモリーに記録する工程と、前記書き込みバッファーを空にする工程と、前記ディファレンシャルを前記書き込みバッファーに記録する工程とで構成されることを特徴とする請求項6に記載の方法。
- 前記フラッシュメモリーに記録する工程が、
前記書き込みバッファーの内容をフラッシュメモリーから割り当てられた新しい物理的ページに記録する工程と、
物理的ページマッピングテーブルと有効ディファレンシャルカウントテーブルを更新するテーブル更新工程と
を含むことを特徴とする請求項8に記載の方法。 - 前記テーブル更新工程が、
前記書き込みバッファー内の各ディファレンシャルに対して、前記各ディファレンシャルが属する論理的ページのディファレンシャルページが前記物理的ページになるように物理的ページマッピングテーブルを更新する工程と、
前記各ディファレンシャルが属する論理的ページの以前のディファレンシャルページがnoneではない場合、有効ディファレンシャルカウントテーブルの以前のディファレンシャルページのカウント値を1減少させる工程と、
有効ディファレンシャルカウントテーブルの新しいディファレンシャルページのカウント値を1増加させる工程と
を含むことを特徴とする請求項9に記載の方法。 - 前記第3工程が、前記ディファレンシャルのサイズが物理的ページ一つのサイズよりさらに大きい場合、前記ディファレンシャルを捨てる工程と、ベースページを記録する工程とで構成されることを特徴とする請求項6に記載の方法。
- 前記ベースページを記録する工程が、
前記ベースページをフラッシュメモリーから割り当てられた新しい物理的ページに記録する工程と、
物理的ページマッピングテーブルと有効ディファレンシャルカウントテーブルを更新するテーブル更新工程と
を含むことを特徴とする請求項11に記載の方法。 - 前記テーブル更新工程が、
前記論理的ページのベースページとディファレンシャルページがそれぞれ前記物理的ページとnoneになるように物理的ページマッピングテーブルを更新する工程と、
前記論理的ページの以前のディファレンシャルページがnoneではない場合、有効ディファレンシャルカウントテーブルの以前のディファレンシャルページのカウント値を1減少させる工程と、
前記論理的ページの以前のベースページを廃止状態に設定する工程と
を含むことを特徴とする請求項12に記載の方法。 - 前記以前のディファレンシャルページのカウント値を1減少させる工程以後に、前記減少された以前のディファレンシャルページのカウント値が0の場合、前記ディファレンシャルページを廃止状態に設定する工程をさらに含むことを特徴とする請求項10または請求項13に記載の方法。
- 前記再生成工程が、
前記フラッシュメモリーから前記論理的ページに対する前記ベースページを読む第1過程と、
前記論理的ページに対するディファレンシャルを捜す第2過程と、
前記第1過程で読んだベースページと前記第2過程で捜したディファレンシャルを併合して論理的ページを生成した後、これを結果として返還する第3過程とを含むことを特徴とする請求項1に記載の方法。 - 前記第2過程は、前記ディファレンシャルが前記書き込みバッファーに存在する場合に、前記書き込みバッファーから前記論理的ページに対するディファレンシャルを捜す工程であることを特徴とする請求項15に記載の方法。
- 前記第2過程は、前記ディファレンシャルが前記書き込みバッファーに存在しない場合に、前記論理的ページに対するディファレンシャルページを読む工程と、前記読んだディファレンシャルページからディファレンシャルを捜す工程とで構成されることを特徴とする請求項15に記載の方法。
- 前記論理的ページに対するディファレンシャルページを読む工程以前に、前記論理的ページに対するディファレンシャルページがフラッシュメモリーに存在しない場合に前記第1過程で読んだベースページを結果として返還する工程をさらに含むことを特徴とする請求項17に記載の方法。
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)
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)
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 | 삼성전자 주식회사 | 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작방법 |
-
2009
- 2009-04-23 KR KR1020090035341A patent/KR100929371B1/ko not_active IP Right Cessation
- 2009-07-23 US US12/507,946 patent/US8117406B2/en active Active
- 2009-08-06 JP JP2009183667A patent/JP5184462B2/ja not_active Expired - Fee Related
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 |