JP2022143243A - メモリシステムおよびその制御方法 - Google Patents
メモリシステムおよびその制御方法 Download PDFInfo
- Publication number
- JP2022143243A JP2022143243A JP2021043664A JP2021043664A JP2022143243A JP 2022143243 A JP2022143243 A JP 2022143243A JP 2021043664 A JP2021043664 A JP 2021043664A JP 2021043664 A JP2021043664 A JP 2021043664A JP 2022143243 A JP2022143243 A JP 2022143243A
- Authority
- JP
- Japan
- Prior art keywords
- data
- parity
- memory
- writing
- read
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 258
- 238000000034 method Methods 0.000 title claims description 17
- 238000012545 processing Methods 0.000 claims description 46
- 230000008569 process Effects 0.000 claims description 11
- 230000000052 comparative effect Effects 0.000 description 23
- 238000012937 correction Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 11
- 101000979629 Homo sapiens Nucleoside diphosphate kinase A Proteins 0.000 description 4
- 102100023252 Nucleoside diphosphate kinase A Human genes 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 101150056203 SGS3 gene Proteins 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- 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
- 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/1048—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 using arrangements adapted for a specific error detection or correction feature
-
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1096—Parity calculation or recalculation after configuration or reconfiguration of the system
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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/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
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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/7209—Validity control, e.g. using flags, time stamps or sequence numbers
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)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
Description
図1は、第1の実施形態に係るメモリシステム1の構成の例を示すブロック図である。
第2の実施形態においては、上記第1の実施形態に係るパリティの生成を、ガベージコレクションの処理において使用する場合を説明する。
Claims (10)
- 不揮発性メモリと、
前記不揮発性メモリを制御するコントローラと、
を具備し、
前記コントローラは、
前記不揮発性メモリへデータをライトし、
前記ライトが完了した後、前記ライトしたデータを前記不揮発性メモリからリードし、
前記リードしたデータに対応するパリティを生成し、
前記生成したパリティをパリティ保存用のメモリにライトする、
メモリシステム。 - 前記コントローラは、
前記不揮発性メモリに対する所定量の第1のデータのライトが完了した後、前記第1のデータに含まれており前記ライトが完了したデータを前記不揮発性メモリからリードし、前記リードしたデータに対応するパリティを生成する、
請求項1のメモリシステム。 - 前記コントローラは、
前記不揮発性メモリの所定位置までの第1のデータのライトが完了した後、前記第1のデータに含まれており前記ライトが完了したデータを前記不揮発性メモリからリードし、前記リードしたデータに対応するパリティを生成する、
請求項1のメモリシステム。 - 前記コントローラは、前記不揮発性メモリへ第1の量のデータをライトし、
前記第1の量のデータに含まれておりパリティ生成対象であり前記第1の量より少ない第2の量のデータを決定し、
前記ライトが完了した後、前記第2の量のデータを前記不揮発性メモリからリードし、
前記リードした第2の量のデータに対応するパリティを生成する、
請求項1ないし請求項3のうちのいずれか1項のメモリシステム。 - 前記コントローラは、前記パリティの生成のために使用可能なメモリサイズに基づいて、前記第2の量のデータを決定する、
請求項4のメモリシステム。 - 前記コントローラは、前記第2の量のデータに対応する前記パリティを前記パリティ保存用のメモリにライトした後、前記第1の量のデータのうちの前記第2の量のデータとは異なるデータを新たなパリティ生成対象として決定する、
請求項4または請求項5のメモリシステム。 - 前記コントローラは、前記不揮発性メモリに前記データの後にライトされるデータのライト処理と、前記データに対応する前記パリティを生成するための処理とを、パイプライン処理により実行する、
請求項1ないし請求項6のうちのいずれか1項のメモリシステム(1)。 - 前記コントローラは、ガベージコレクションの処理において、
前記不揮発性メモリのガベージコレクション元ブロックから前記データをリードし、
前記ガベージコレクション元ブロックからリードした前記データを前記不揮発性メモリのガベージコレクション先ブロックへライトし、
前記ガベージコレクション先ブロックへの前記ライトが完了した後、前記ライトしたデータを前記ガベージコレクション先ブロックからリードし、
前記ガベージコレクション先ブロックからリードした前記データに対応する前記パリティを生成し、
前記生成したパリティを前記パリティ保存用のメモリにライトする、
請求項1ないし請求項7のいずれか1項のメモリシステム。 - 前記コントローラは、ガベージコレクションではないライト処理時に、前記不揮発性メモリへライト対象データをライトし、前記ライト対象データの前記ライトが完了する前から、前記ライト対象データに対応するパリティの生成を開始し、前記生成した前記ライト対象データに対応する前記パリティを前記パリティ保存用のメモリにライトする、
請求項8のメモリシステム。 - 不揮発性メモリを含むメモリシステムの制御方法であって、
前記不揮発性メモリへデータをライトすることと、
前記ライトが完了した後、前記ライトしたデータを前記不揮発性メモリからリードすることと、
前記リードしたデータに対応するパリティを生成することと、
前記生成したパリティをパリティ保存用のメモリにライトすることと、
を具備する制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021043664A JP2022143243A (ja) | 2021-03-17 | 2021-03-17 | メモリシステムおよびその制御方法 |
US17/348,412 US11645003B2 (en) | 2021-03-17 | 2021-06-15 | Memory system generating parity data based on written data and control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021043664A JP2022143243A (ja) | 2021-03-17 | 2021-03-17 | メモリシステムおよびその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022143243A true JP2022143243A (ja) | 2022-10-03 |
Family
ID=83284688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021043664A Pending JP2022143243A (ja) | 2021-03-17 | 2021-03-17 | メモリシステムおよびその制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11645003B2 (ja) |
JP (1) | JP2022143243A (ja) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7934052B2 (en) | 2007-12-27 | 2011-04-26 | Pliant Technology, Inc. | System and method for performing host initiated mass storage commands using a hierarchy of data structures |
JP6212396B2 (ja) | 2014-01-08 | 2017-10-11 | ルネサスエレクトロニクス株式会社 | データ処理装置 |
JP2017027388A (ja) | 2015-07-23 | 2017-02-02 | 株式会社東芝 | メモリシステムおよび不揮発性メモリの制御方法 |
JP6928247B2 (ja) * | 2017-09-11 | 2021-09-01 | 富士通株式会社 | ストレージ制御装置およびストレージ制御プログラム |
KR20190073132A (ko) * | 2017-12-18 | 2019-06-26 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US11494306B2 (en) * | 2019-09-20 | 2022-11-08 | Micron Technology, Inc. | Managing data dependencies in a transfer pipeline of a hybrid dimm |
-
2021
- 2021-03-17 JP JP2021043664A patent/JP2022143243A/ja active Pending
- 2021-06-15 US US17/348,412 patent/US11645003B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20220300189A1 (en) | 2022-09-22 |
US11645003B2 (en) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11301373B2 (en) | Reconstruction of address mapping in a host of a storage system | |
US8677058B2 (en) | Memory system selecting write mode of data block and data write method thereof | |
US9817717B2 (en) | Stripe reconstituting method performed in storage system, method of performing garbage collection by using the stripe reconstituting method, and storage system performing the stripe reconstituting method | |
KR102570367B1 (ko) | 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치를 액세스하는 액세스 방법 | |
US20160179422A1 (en) | Method of performing garbage collection and raid storage system adopting the same | |
US20150347291A1 (en) | Flash memory based storage system and operating method | |
US20130080689A1 (en) | Data storage device and related data management method | |
US20200218451A1 (en) | Storage device having dual access procedures | |
KR20120055725A (ko) | 스트라이프 기반 메모리 작동 | |
KR20220005111A (ko) | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 | |
CN110928805B (zh) | 存储器系统及其操作方法 | |
US10353626B2 (en) | Buffer memory management method and write method using the same | |
US9858003B2 (en) | Storage system that reliably stores lower page data | |
CN113703662B (zh) | 存储器系统、存储器控制器及其操作方法 | |
US10754771B2 (en) | Storage device and storage control method | |
CN111796962A (zh) | 存储装置以及存储装置的操作方法 | |
US11586379B2 (en) | Memory system and method of operating the same | |
US11928361B2 (en) | Memory system and control method | |
JP2022143243A (ja) | メモリシステムおよびその制御方法 | |
KR20220068535A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
US11669266B2 (en) | Memory system and operating method of memory system | |
US20240004566A1 (en) | Memory system for managing namespace using write pointer and write count, memory controller, and method for operating memory system | |
KR20240008590A (ko) | 저장 장치 및 그 동작 방법 | |
KR20240058593A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20220163661A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230911 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240513 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240618 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240809 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20240903 |