JP7030636B2 - メモリシステムおよびその制御方法 - Google Patents
メモリシステムおよびその制御方法 Download PDFInfo
- Publication number
- JP7030636B2 JP7030636B2 JP2018132446A JP2018132446A JP7030636B2 JP 7030636 B2 JP7030636 B2 JP 7030636B2 JP 2018132446 A JP2018132446 A JP 2018132446A JP 2018132446 A JP2018132446 A JP 2018132446A JP 7030636 B2 JP7030636 B2 JP 7030636B2
- Authority
- JP
- Japan
- Prior art keywords
- page
- physical
- data
- memory
- pages
- 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
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
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- 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
- 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
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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
- 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/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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
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)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Description
Claims (10)
- 不揮発性メモリと、
前記不揮発性メモリへのデータのアクセスを制御するメモリコントローラと、
を備え、
前記不揮発性メモリ内にはデータの消去の単位である物理ブロックが複数存在し、
前記物理ブロック内にはデータの読み書きの単位である物理ページが複数存在し、
前記メモリコントローラは、
複数の前記物理ブロックをまとめて論理ブロックとし、
複数の前記物理ページのうち、前記物理ブロック内における相対的な位置が同じものをまとめて論理ページとし、
複数の前記論理ページに対して予め定められた第1の順序でデータが配置され、かつ、前記論理ページ内の複数の前記物理ページに対して予め定められた第2の順序でデータが配置されるように前記不揮発性メモリにデータ書き込みを指示し、
前記不揮発性メモリから、前記論理ブロック内で最後にデータが書き込まれた物理ページの候補である最終ページ候補を特定し、
前記最終ページ候補から前記第2の順序とは逆順に存在する第1の範囲数の前記物理ページのうち、プログラムされた前記物理ページの数が第1基準値以上であるかを判定する上方向チェック処理を実行し、
前記最終ページ候補から前記第2の順序と同じ順に存在する第2の範囲数の前記物理ページのうち、プログラムされた前記物理ページの数が第2基準値以下であるかを判定する下方向チェック処理を実行し、
前記上方向チェック処理および前記下方向チェック処理の結果から前記論理ブロック内で最後にデータが書き込まれた物理ページを特定する、
メモリシステム。 - 前記メモリコントローラは、前記上方向チェック処理でプログラムされた物理ページの数が前記第1基準値以上であり、かつ前記下方向チェック処理でプログラムされた前記物理ページの数が前記第2基準値以下である場合に、前記最終ページ候補から前記第1の範囲数の前記物理ページのうち、最も前記第2の順序と同じ順に存在するプログラムされた物理ページを最後にデータが書き込まれた前記物理ページであると特定する請求項1に記載のメモリシステム。
- 前記メモリコントローラは、前記上方向チェック処理でプログラムされた前記物理ページの数が前記第1基準値未満である場合には、前記最終ページ候補の探索範囲を補正して、新たな前記最終ページ候補を取得する請求項1に記載のメモリシステム。
- 前記メモリコントローラは、前記下方向チェック処理でプログラムされた前記物理ページの数が前記第2基準値より大きい場合には、前記最終ページ候補の探索範囲を補正して、新たな前記最終ページ候補を取得する請求項1または3に記載のメモリシステム。
- 前記メモリコントローラは、N分探索(Nは2以上の自然数)によって前記最終ページ候補を取得する請求項1から4のいずれか1つに記載のメモリシステム。
- 前記メモリコントローラは、前記論理ブロックに書き込むデータに対して訂正符号を生成し、前記データに前記訂正符号を付して前記論理ブロックに書き込み、
前記第1基準値および前記第2基準値は、前記訂正符号の誤り訂正能力によって訂正可能な範囲の物理ページ数に設定される請求項1から5のいずれか1つに記載のメモリシステム。 - 前記第1基準値は、3ページであり、
前記第2基準値は、2ページである請求項6に記載のメモリシステム。 - 前記第1の範囲数は、1論理ページに含まれる前記物理ページの数であり、
前記第2の範囲数は、1論理ページに含まれる前記物理ページの数である請求項1から7のいずれか1つに記載のメモリシステム。 - 前記不揮発性メモリは、NAND型フラッシュメモリである請求項1に記載のメモリシステム。
- 不揮発性メモリ内に複数存在する、データの消去の単位である物理ブロックを複数まとめて論理ブロックとし、
前記物理ブロック内に複数存在する、データの読み書きの単位である物理ページのうち、前記物理ブロック内における相対的な位置が同じものをまとめて論理ページとし、
複数の前記論理ページに対して予め定められた第1の順序でデータが配置され、かつ、前記論理ページ内の複数の前記物理ページに対して予め定められた第2の順序でデータが配置されるように前記不揮発性メモリにデータ書き込みを命令し、
前記不揮発性メモリから、前記論理ブロック内で最後にデータが書き込まれた物理ページの候補である最終ページ候補を特定し、
前記最終ページ候補から前記第2の順序とは逆順に存在する第1の範囲数の前記物理ページのうち、プログラムされた前記物理ページの数が第1基準値以上であるかを判定する上方向チェック処理を実行し、
前記最終ページ候補から前記第2の順序と同じ順に存在する第2の範囲数の前記物理ページのうち、プログラムされた前記物理ページの数が第2基準値以下であるかを判定する下方向チェック処理を実行し、
前記上方向チェック処理および前記下方向チェック処理の結果から前記論理ブロック内で最後にデータが書き込まれた物理ページを特定する、メモリシステムの制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018132446A JP7030636B2 (ja) | 2018-07-12 | 2018-07-12 | メモリシステムおよびその制御方法 |
US16/372,831 US11593007B2 (en) | 2018-07-12 | 2019-04-02 | Memory system and control method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018132446A JP7030636B2 (ja) | 2018-07-12 | 2018-07-12 | メモリシステムおよびその制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020009370A JP2020009370A (ja) | 2020-01-16 |
JP7030636B2 true JP7030636B2 (ja) | 2022-03-07 |
Family
ID=69139114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018132446A Active JP7030636B2 (ja) | 2018-07-12 | 2018-07-12 | メモリシステムおよびその制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11593007B2 (ja) |
JP (1) | JP7030636B2 (ja) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007119267A1 (ja) | 2006-03-13 | 2007-10-25 | Matsushita Electric Industrial Co., Ltd. | フラッシュメモリ用のメモリコントローラ |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4729062B2 (ja) | 2008-03-07 | 2011-07-20 | 株式会社東芝 | メモリシステム |
US8726126B2 (en) * | 2010-03-23 | 2014-05-13 | Apple Inc. | Non-regular parity distribution detection via metadata tag |
US9189389B2 (en) * | 2013-03-11 | 2015-11-17 | Kabushiki Kaisha Toshiba | Memory controller and memory system |
IN2014MU00845A (ja) | 2014-03-13 | 2015-09-25 | Sandisk Technologies Inc | |
US10977186B2 (en) * | 2017-11-21 | 2021-04-13 | Micron Technology, Inc. | Last written page searching |
-
2018
- 2018-07-12 JP JP2018132446A patent/JP7030636B2/ja active Active
-
2019
- 2019-04-02 US US16/372,831 patent/US11593007B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007119267A1 (ja) | 2006-03-13 | 2007-10-25 | Matsushita Electric Industrial Co., Ltd. | フラッシュメモリ用のメモリコントローラ |
Also Published As
Publication number | Publication date |
---|---|
US20200019314A1 (en) | 2020-01-16 |
US11593007B2 (en) | 2023-02-28 |
JP2020009370A (ja) | 2020-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4844639B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
US9075740B2 (en) | Memory system | |
JP4524309B2 (ja) | フラッシュメモリ用のメモリコントローラ | |
JP6258399B2 (ja) | 半導体装置 | |
US8694748B2 (en) | Data merging method for non-volatile memory module, and memory controller and memory storage device using the same | |
US8200892B2 (en) | Memory controller, memory system with memory controller, and method of controlling flash memory | |
US8316208B2 (en) | Memory controller, flash memory system with memory controller, and method of controlling flash memory | |
JP2008146254A (ja) | 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法 | |
US9778862B2 (en) | Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus | |
JP2008251154A (ja) | 不揮発性半導体記憶装置 | |
JP4513786B2 (ja) | メモリコントローラ、メモリシステム及びメモリ制御方法 | |
JP7030636B2 (ja) | メモリシステムおよびその制御方法 | |
JP4710918B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP4332132B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
US9208863B1 (en) | Memory system and method of controlling memory system | |
JP2012068764A (ja) | メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法 | |
US8503241B2 (en) | Electronic apparatus and data reading method | |
JP3934659B1 (ja) | メモリコントローラ及びフラッシュメモリシステム | |
JP2008112455A (ja) | メモリカード | |
JP4641034B2 (ja) | 不揮発性記憶システム | |
JP2012037971A (ja) | メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法 | |
JP4569554B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP2006318303A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP2006048746A (ja) | メモリカード | |
JP4245594B2 (ja) | メモリコントローラ及びフラッシュメモリシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20180905 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210317 |
|
TRDD | Decision of grant or rejection written | ||
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220119 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20220125 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220222 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7030636 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |