JP6864228B2 - 記憶装置および記憶装置のデータ管理方法 - Google Patents
記憶装置および記憶装置のデータ管理方法 Download PDFInfo
- Publication number
- JP6864228B2 JP6864228B2 JP2017112177A JP2017112177A JP6864228B2 JP 6864228 B2 JP6864228 B2 JP 6864228B2 JP 2017112177 A JP2017112177 A JP 2017112177A JP 2017112177 A JP2017112177 A JP 2017112177A JP 6864228 B2 JP6864228 B2 JP 6864228B2
- Authority
- JP
- Japan
- Prior art keywords
- old
- conversion table
- data
- new information
- flash memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 57
- 238000013523 data management Methods 0.000 title claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 164
- 230000015654 memory Effects 0.000 claims description 107
- 238000007726 management method Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 description 30
- 230000004913 activation Effects 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 3
- 238000012804 iterative process Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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/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
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
-
- 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/7207—Details relating to flash memory management management of metadata or control data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
コンピュータなどのホストデバイス20に接続され、ホストデバイス20から見て外部記憶装置の1つとして扱われる記憶装置30の概略構成を、図1に示した。この記憶装置30は、いわゆるソリッドステートデバイス(以下、SSD)であり、ホストデバイス20からは、ハードディスクなどと同様に、ファイルシステムを用いて、データを保存することができる。
[1]ガベージコレクションの対象となるブロック(これを、イレーズブロックと呼ぶ)から有効なデータだけをスペアブロックにコピーする。
[2]イレーズブロックを、ブロック単位で消去する。
[3]元のスペアブロックの物理アドレスを、イレーズブロックに記録されていたデータの物理アドレスとして変換テーブルCTに登録する。
[4]元のイレーズブロックを新たなスペアブロックとする。
という一連の手続により行なわれる。上記の[1]ないし[4]処理を、使用不可として登録されているページが存在するすべてのブロックについて繰り返し、使用不可のページを解放する。なお、使用できないページはブロックに存在する512のページの種々の位置に生じるので、スペアブロックにコピーする際には、先頭のページから順に詰めていく。この結果、データが記録されているページ番号は変更されるので、ガベージコレクションの際には、変換テーブルCT内のページ番号も書き直している。
次に第2実施形態について説明する。第2実施形態の記憶装置30は、第1実施形態の記憶装置30と同一のハードウェア構成を備え、変換テーブルの形式と、変換テーブルを構築する処理が異なる。第2実施形態の記憶装置30では、図3に例示したファイル書き込み処理ルーチンの末尾のステップS87の処理が異なり、かつその後にステップS99の処理を行なう。この部分の処理を図8に示した。
(A)着目ブロック内の着目ページから読み出した論理アドレスLDAが、変換テーブルCTに格納されていなければ、読み出した論理アドレスとその物理アドレスとを対応付けて、変換テーブルCTに格納する。
(B)変換テーブルCTに格納されていた新旧情報NTmが着目ブロック内の着目ページから読み出した新旧情報NBmより小さければ、変換テーブルCT内の新旧情報は古く、フラッシュメモリ60の着目ブロックの着目ページに記録されている新旧情報の方が正しいとして、変換テーブルCTの物理アドレス(ブロック番号およびページ番号)を、その新旧情報NBmが記録されていたフラッシュメモリ60の実際の物理アドレス(ブロック番号およびページ番号)によって書き直し、かつ新旧情報NBmによって新旧情報NTmを置き換える。
上記第1,第2実施形態では、いずれも変換テーブルCTの再構築を行なうとき、図6のステップs310−e310の繰り返しや、図13のステップs710−e710の繰り返しのように、各ブロック内の各ページの内容を読み取っている。そこで、各ブロックの最終ページの1つの前のページまで書き込みが行なわれたとき、そこまでの全ページ(ここでは、Page1-Page511)の冗長部分に記載されたデータを、最終ページ(ここでは、Page512 )にまとめて書き込むものとしても良い。この様子を図14に示した。こうしておけば、全ページのデータを読み出して処理する上記繰り返しを、着目するブロックの情報を最終ページから一括して読み出す、という処理で置き換えることができる。なお、最終ページに記録する情報は、冗長部分に記録された論理アドレスと新旧情報のすべてでも良いし、これを圧縮したダイジェストデータであってもよい。ダイジェストデータとしては、例えば論理アドレスや新旧情報が連番であれば、初期値と差分値の形で記録したものであっても良い。
30…記憶装置
31…管理部
32…データ書込部
33…新旧情報書込部
35…再構築部
40…コントローラ
41…CPU
43…SI/O
45…RAMI/F
46…フラッシュI/F
50…RAM
60…フラッシュメモリ
Claims (11)
- ホストデバイスから論理アドレスを用いてアクセスされる記憶装置であって、
不揮発的に記憶されたデータの消去を複数ページからなるブロックを単位として行ない、データの書き込みと読み出しとを前記ページを単位として実行可能なフラッシュメモリと、
前記フラッシュメモリに前記ページを単位として書き込まれるデータの論理アドレスと、前記ブロックと前記ページとにより管理される物理アドレスであって、前記データが書き込まれる物理アドレスとを、変換テーブルによってアドレス変換可能に管理する管理部と、
前記データを前記フラッシュメモリの所定の物理アドレスに書き込む際に、当該物理アドレスに対応する論理アドレスとして前記変換テーブルに記憶される論理アドレスおよび当該書き込みの新旧を表わす新旧情報を、前記ページを単位として、前記データと共に前記物理アドレスに書き込むデータ書込部と、
前記データの書込用として前記ブロックに用意された複数の前記ページへの書き込みを完了する際、前記ブロックの所定のページに、少なくとも前記ブロックに書き込まれた前記新旧情報のうちの最新の新旧情報を書き込む新旧情報書込部と、
前記変換テーブルの再構築を行なうものとして予め定めた再構築タイミングにおいて、前記フラッシュメモリの前記各ブロックから、前記最新の新旧情報を読み出し、前記各ブロックの前記最新の新旧情報の古い順に従って、前記ブロックに含まれる前記各ページに記録された前記論理アドレスを読み出し、当該論理アドレスに対応する前記物理アドレスを、前記論理アドレスに従って配列することで、前記変換テーブルを再構築する再構築部と
を備える記憶装置。 - 前記再構築部は、前記新旧情報書込部による書込がなされていない前記ブロックについては、当該ブロックに含まれる前記ページに書き込まれた前記新旧情報を読み出し、前記読み出した新旧情報のうちの最新の新旧情報を、当該ブロックについての最新の新旧情報として扱う請求項1記載の記憶装置。
- 請求項1または請求項2記載の記憶装置であって、
前記管理部は、当該記憶装置の使用を終了するタイミングを含むタイミングで、前記変換テーブルを前記フラッシュメモリの所定の領域に記録する変換テーブル記録部を備え、
前記再構築部は、前記フラッシュメモリの前記所定の領域に記録された前記変換テーブルが正常であると判断できないとき、前記再構築タイミングであると判断して、前記変換テーブルの再構築を行なう
記憶装置。 - ホストデバイスから論理アドレスを用いてアクセスされる記憶装置であって、
不揮発的に記憶されたデータの消去を複数ページからなるブロックを単位として行ない、データの書き込みと読み出しとを前記ページを単位として実行可能なフラッシュメモリと、
前記フラッシュメモリに前記ページを単位として書き込まれるデータの論理アドレスと、前記ブロックと前記ページとにより管理される物理アドレスであって、前記データが書き込まれる物理アドレスと、当該データの書き込みの新旧を表わす新旧情報とを、変換テーブルによって管理する管理部と、
前記データを前記フラッシュメモリの所定の物理アドレスに書き込む際に、当該物理アドレスに対応する論理アドレスとして前記変換テーブルに記憶される論理アドレスおよび前記変換テーブルに記憶される前記新旧情報を、前記データと共に前記物理アドレスに書き込むデータ書込部と、
当該記憶装置の使用を終了する際に、前記変換テーブルを前記フラッシュメモリの所定の領域に記録する変換テーブル記録部と、
前記フラッシュメモリの前記所定の領域に記録された前記変換テーブルが正常であると判断できないとき、前記フラッシュメモリの前記ページ単位または前記ブロック単位で記録された前記論理アドレス毎の前記新旧情報と前記フラッシュメモリに記録された前記変換テーブルの前記論理アドレス毎の前記新旧情報とを比較して、前記変換テーブルを再構築する再構築部と
を備える記憶装置。 - 少なくとも当該記憶装置の使用開始時に、前記フラッシュメモリに記録された前記変換テーブルの前記新旧情報のうちの最も新しい新旧情報と、前記フラッシュメモリの各ページまたは各ブロックに記録された前記新旧情報のうち最も新しい新旧情報とを比較し、両新旧情報が不一致の場合には、前記変換テーブルが正常であると判断できないと判断する
請求項4に記載された記憶装置。 - 前記変換テーブル記録部は、前記変換テーブルの前記フラッシュメモリの所定の領域への記録を、前記記憶装置の使用の終了の際に加えて、前記記憶装置の使用中の所定のタイミングで行なう請求項3から請求項5のいずれか一項に記載の記憶装置。
- 請求項3から請求項6のいずれか一項に記載の記憶装置であって、
前記変換テーブル記録部は、前記変換テーブルを前記フラッシュメモリの所定の領域に記録する際、前記変換テーブルに記憶されたすべての新旧情報のうち、最も新しい新旧情報を代表新旧情報として、所定の領域に記録し、
前記再構築部は、前記新旧情報の比較の際に、前記フラッシュメモリに記録された前記変換テーブルの前記新旧情報のうちの最も新しい新旧情報として、前記所定の領域に記録された前記代表新旧情報を読み出して用いる
記憶装置。 - 請求項1から請求項7のいずれか一項に記載の記憶装置であって、
前記フラッシュメモリの前記ブロックを単位とした前記データの書き込みが完了する際、前記ページを単位としたデータの書き込みの際に書き込まれた前記論理アドレスと前記新旧情報とを、前記ブロックの所定のページに一括して書き込む一括書込部を備え、
前記再構築部は、前記再構築の際に、前記一括して書き込まれた論理アドレスおよび新旧情報を読み出して、前記フラッシュメモリの前記ページ単位または前記ブロック単位で記録された論理アドレスおよび新旧情報として扱う
記憶装置。 - 請求項1から請求項8のいずれか一項に記載の記憶装置が組み込まれ、
前記記憶装置に対して、論理アドレスによりデータをアクセスするコンピュータ装置。 - 不揮発的に記憶されたデータの消去を複数ページからなるブロックを単位として行ない、データの書き込みと読み出しとを前記ページを単位として実行可能なフラッシュメモリを備えた記憶装置に対して、ホストデバイスから論理アドレスを用いてアクセスされる際のデータ管理方法であって、
前記フラッシュメモリに前記ページを単位として書き込まれるデータの論理アドレスと、前記ブロックと前記ページとにより管理される物理アドレスであって、前記データが書き込まれる物理アドレスとを、変換テーブルによってアドレス変換可能に管理し、
前記データを前記フラッシュメモリの所定の物理アドレスに書き込む際に、当該物理アドレスに対応する論理アドレスとして前記変換テーブルに記憶される論理アドレスおよび当該書き込みの新旧を表わす新旧情報を、前記ページを単位として、前記データと共に前記物理アドレスに書き込み、
前記データの書込用として前記ブロックに用意された複数の前記ページへの書き込みを完了する際、前記ブロックの所定のページに、少なくとも前記ブロックに書き込まれた前記新旧情報のうちの最新の新旧情報を書き込み、
前記変換テーブルの再構築を行なうものとして予め定めた再構築タイミングにおいて、前記フラッシュメモリの前記各ブロックから、前記最新の新旧情報を読み出し、前記各ブロックの前記最新の新旧情報の古い順に従って、前記ブロックに含まれる前記各ページに記録された前記論理アドレスを読み出し、当該論理アドレスに対応する前記物理アドレスを、前記論理アドレスに従って配列することで、前記変換テーブルを再構築する
記憶装置のデータ管理方法。 - 不揮発的に記憶されたデータの消去を複数ページからなるブロックを単位として行ない、データの書き込みと読み出しとを前記ページを単位として実行可能なフラッシュメモリを備えた記憶装置に対して、ホストデバイスから論理アドレスを用いてアクセスされる際のデータ管理方法であって、
前記フラッシュメモリに前記ページを単位として書き込まれるデータの論理アドレスと、前記ブロックと前記ページとにより管理される物理アドレスであって、前記データが書き込まれる物理アドレスと、当該データの書き込みの新旧を表わす新旧情報とを、変換テーブルによって管理し、
前記データを前記フラッシュメモリの所定の物理アドレスに書き込む際に、当該物理アドレスに対応する論理アドレスとして前記変換テーブルに記憶される論理アドレスおよび前記変換テーブルに記憶される前記新旧情報を、前記データと共に前記物理アドレスに書き込み、
当該記憶装置の使用を終了する際に、前記変換テーブルを前記フラッシュメモリの所定の領域に記録し、
少なくとも当該記憶装置の使用開始時に、前記フラッシュメモリに記録された前記変換テーブルの前記新旧情報のうちの最も新しい新旧情報と、前記フラッシュメモリの各ページまたは各ブロックに記録された前記新旧情報のうち最も新しい新旧情報とを比較し、両新旧情報が不一致の場合には、前記フラッシュメモリの前記ページ単位または前記ブロック単位で記録された前記論理アドレス毎の前記新旧情報と前記フラッシュメモリに記録された前記変換テーブルの前記論理アドレス毎の前記新旧情報とを比較して、前記変換テーブルを再構築する
記憶装置のデータ管理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017112177A JP6864228B2 (ja) | 2017-06-07 | 2017-06-07 | 記憶装置および記憶装置のデータ管理方法 |
US16/000,089 US10657040B2 (en) | 2017-06-07 | 2018-06-05 | Storage device and data management method of storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017112177A JP6864228B2 (ja) | 2017-06-07 | 2017-06-07 | 記憶装置および記憶装置のデータ管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018206161A JP2018206161A (ja) | 2018-12-27 |
JP6864228B2 true JP6864228B2 (ja) | 2021-04-28 |
Family
ID=64562212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017112177A Active JP6864228B2 (ja) | 2017-06-07 | 2017-06-07 | 記憶装置および記憶装置のデータ管理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10657040B2 (ja) |
JP (1) | JP6864228B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113900589A (zh) * | 2021-09-16 | 2022-01-07 | 合肥致存微电子有限责任公司 | 一种数据的写入方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1185589A (ja) * | 1997-09-12 | 1999-03-30 | Toshiba Corp | 情報記憶装置および同装置に適用される管理データ再構築方法 |
JP3788961B2 (ja) | 2002-08-30 | 2006-06-21 | 株式会社東芝 | ディスクアレイ装置及び同装置におけるレイドレベル変更方法 |
JP3912355B2 (ja) * | 2003-10-14 | 2007-05-09 | ソニー株式会社 | データ管理装置、データ管理方法、不揮発性メモリ、不揮発性メモリを有する記憶装置及びデータ処理システム |
JP2008146255A (ja) | 2006-12-07 | 2008-06-26 | Sony Corp | 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法 |
JP4301301B2 (ja) * | 2007-02-05 | 2009-07-22 | ソニー株式会社 | 不揮発性半導体記憶装置およびその管理方法 |
JP5570406B2 (ja) * | 2010-12-14 | 2014-08-13 | 株式会社日立製作所 | メモリコントローラ、及びデータ記録装置 |
-
2017
- 2017-06-07 JP JP2017112177A patent/JP6864228B2/ja active Active
-
2018
- 2018-06-05 US US16/000,089 patent/US10657040B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018206161A (ja) | 2018-12-27 |
US20180357158A1 (en) | 2018-12-13 |
US10657040B2 (en) | 2020-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10254983B2 (en) | Atomic write command support in a solid state drive | |
CN108733510B (zh) | 数据储存装置及映射表重建方法 | |
JP3078946B2 (ja) | 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置 | |
EP2793132B1 (en) | Method and system for recovery of metadata in a flash memory system | |
US9170938B1 (en) | Method and system for atomically writing scattered information in a solid state storage device | |
TWI645404B (zh) | 資料儲存裝置以及非揮發式記憶體操作方法 | |
KR101257989B1 (ko) | 인덱스 페이지 복구 | |
US9286198B2 (en) | Method and system for storage of data in non-volatile media | |
US10372619B2 (en) | Data backup method, data recovery method and storage controller | |
US20150186224A1 (en) | Data storage device and flash memory control method | |
JP2002175211A (ja) | データ管理システムおよびデータ管理方法 | |
CN109669889B (zh) | 一种轻量型Nor Flash闪存控制方法和装置 | |
CN104021089A (zh) | 快闪存储器控制芯片与存储装置以及快闪存储器控制方法 | |
CN112035294A (zh) | 安全日志文件系统及其实现方法和介质 | |
JP4586469B2 (ja) | メモリ制御装置、メモリ制御方法、プログラム | |
CN107544912B (zh) | 一种日志记录方法、加载方法及其装置 | |
US8966161B2 (en) | Memory storage device and restoring method thereof | |
JP6864228B2 (ja) | 記憶装置および記憶装置のデータ管理方法 | |
CN109558271B (zh) | 数据备份方法、数据恢复方法以及存储控制器 | |
EP2267725A1 (en) | Memory device for managing the recovery of a non volatile memory | |
JP6644427B2 (ja) | Fatファイルシステム及びそのプログラム | |
TW201826267A (zh) | 數據儲存方法及其裝置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20180320 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200225 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210222 |
|
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: 20210302 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210315 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6864228 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |