JP2015135676A - 複数のフラッシュ面にわたってコード語をインターリーブするための方法および/または装置 - Google Patents
複数のフラッシュ面にわたってコード語をインターリーブするための方法および/または装置 Download PDFInfo
- Publication number
- JP2015135676A JP2015135676A JP2015004983A JP2015004983A JP2015135676A JP 2015135676 A JP2015135676 A JP 2015135676A JP 2015004983 A JP2015004983 A JP 2015004983A JP 2015004983 A JP2015004983 A JP 2015004983A JP 2015135676 A JP2015135676 A JP 2015135676A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- slices
- pages
- codeword
- codewords
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 27
- 230000015654 memory Effects 0.000 claims abstract description 34
- 230000001172 regenerating effect Effects 0.000 claims 2
- 238000012937 correction Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 9
- 238000013507 mapping Methods 0.000 description 6
- 239000007787 solid Substances 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 101000574648 Homo sapiens Retinoid-inducible serine carboxypeptidase Proteins 0.000 description 1
- 102100025483 Retinoid-inducible serine carboxypeptidase Human genes 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- 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/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/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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/80—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
- G11C29/802—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout by encoding redundancy signals
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)
Abstract
Description
本件出願は、2014年1月13日に出願された米国特許仮出願第61/926,516号に関し、当該出願の全体が引用によりここに援用される。
本発明は、概してソリッドステートドライブに関し、より特定的には複数のフラッシュ面にわたってコード語をインターリーブするための方法および/または装置に関する。
フラッシュメモリの外形が小さくなるにつれ、各フラッシュメモリセルに保存される電子の量も小さくなる。電子の数が小さくなるとプロセス変動による影響をより受けやすくなり、様々なフラッシュ面およびダイにおける信頼度の差異がより顕著となる。従来の設計において、各コード語は同じダイに記憶される。このため、最も悪いフラッシュダイ/面の特定のコード語を誤り訂正符号化によって回復できない場合、訂正不能な符号訂正障害が起こる。
本発明は、複数のメモリへのインターフェイスと回路とを有する装置に関する。各メモリは、概して複数の面を有し、不揮発性である。回路は、(i)複数のデータユニットを符号化することによって複数のコード語を生成し、(ii)コード語をパーシングすることによって複数のスライスを生成し、(iii)スライスをインターリーブすることによって複数のページを生成し、(iv)それぞれの面にページを並行して書き込むように構成される。
本発明の実施形態は、複数のフラッシュ面にわたってコード語をインターリーブすることを含み、これは、(i)複数のフラッシュデバイスにわたってコード語を分配し得る、(ii)既存の技術と比較して信頼度を向上させ得る、(iii)複数のフラッシュデバイスにわたる誤り率を平均化し得る、(iv)プロセス変動によって誘発されるコード語内の誤りを減少させ得る、および/または(v)1つ以上の集積回路として実施され得る。
Claims (18)
- 装置であって、
各々が複数の面を有する複数のメモリへのインターフェイスを備え、前記メモリは不揮発性であり、装置はさらに、
回路を備え、前記回路は、(i)複数のデータユニットを符号化することによって複数のコード語を生成し、(ii)前記コード語をパーシングすることによって複数のスライスを生成し、(iii)前記スライスをインターリーブすることによって複数のページを生成し、(iv)それぞれの前記面に前記ページを並行して書き込むように構成される、装置。 - 前記メモリはフラッシュメモリである、請求項1に記載の装置。
- (i)前記回路は、前記複数のコード語を各々が含む複数のバッチを生成するようにさらに構成され、(ii)前記バッチの各々のサイズは実質的に前記面のサイズに一致する、請求項1に記載の装置。
- 前記ページのうちの1つ以上は、前記バッチのうちの2つ以上からの前記スライスを含む、請求項3に記載の装置。
- 前記回路は、(i)前記メモリから並行して前記面のそれぞれを読み取ることによって前記ページを再生成し、(ii)前記ページをパーシングすることによって前記スライスを再生成し、(iii)前記スライスから前記コード語を再生成し、(iv)前記コードを復号化することによって前記データユニットを再生成するようにさらに構成される、請求項1に記載の装置。
- (i)前記回路は、前記複数のコード語を各々が含む複数のバッチを生成するようにさらに構成され、(ii)前記バッチのうちの1つ以上は、前記ページのうちの2つ以上からの前記スライスを含む、請求項5に記載の装置。
- 前記コード語は、前記バッチをパーシングすることによって再生成される、請求項6に記載の装置。
- 前記ページの各々は、異なる前記メモリにおける前記面のそれぞれに書き込まれる、請求項1に記載の装置。
- 前記装置は1つ以上の集積回路として実施される、請求項1に記載の装置。
- 複数の面にわたってコード語をインターリーブする方法であって、
(A)複数のデータユニットを符号化することによって複数の前記コード語を生成するステップと、
(B)前記コード語をパーシングすることによって複数のスライスを生成するステップと、
(C)前記スライスをインターリーブすることによって複数のページを生成するステップと、
(D)複数のメモリにおける前記複数の面の各々にページを並行して書き込むステップとを備え、前記メモリは不揮発性である、方法。 - 前記メモリはフラッシュメモリである、請求項10に記載の方法
- 各々が複数の前記コード語を含む複数のバッチを生成するステップをさらに備え、前記バッチの各々のサイズは実質的に前記面のサイズに一致する、請求項10に記載の方法。
- 前記ページのうちの1つ以上は、前記バッチのうちの2つ以上からの前記スライスを含む、請求項12に記載の方法。
- 前記メモリから並行して前記面のそれぞれを読み取ることによって前記ページを生成するステップと、
前記ページをパーシングすることによって前記スライスを再生成するステップと、
前記スライスから前記コード語を生成するステップと、
前記コード語を復号化することによって前記データユニットを再生成するステップとをさらに備える、請求項10に記載の方法。 - 複数の前記コード語を各々が含む複数のバッチを生成するステップをさらに備え、前記バッチのうちの1つ以上は前記ページのうちの2つ以上からの前記スライスを含む、請求項14に記載の方法。
- 前記コード語は、前記バッチをパーシングすることによって再生成される、請求項15に記載の方法。
- 前記ページの各々は、異なる前記メモリにおける前記面のそれぞれに書き込まれる、請求項10に記載の方法。
- 装置であって、
複数のデータユニットを符号化することによって複数のコード語を生成するための手段と、
前記コード語をパーシングすることによって複数のスライスを生成するための手段と、
前記スライスをインターリーブすることによって複数のページを生成するための手段と、
複数のメモリにおける複数の面のそれぞれに前記ページを並行して書き込むステップとを備え、前記メモリは不揮発性である、装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201461926516P | 2014-01-13 | 2014-01-13 | |
US14/156,693 US9405480B2 (en) | 2014-01-13 | 2014-01-16 | Interleaving codewords over multiple flash planes |
US14/156,693 | 2014-01-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015135676A true JP2015135676A (ja) | 2015-07-27 |
JP6491482B2 JP6491482B2 (ja) | 2019-03-27 |
Family
ID=53521406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015004983A Expired - Fee Related JP6491482B2 (ja) | 2014-01-13 | 2015-01-14 | 複数のフラッシュ面にわたってコード語をインターリーブするための方法および/または装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9405480B2 (ja) |
JP (1) | JP6491482B2 (ja) |
KR (1) | KR20150085800A (ja) |
WO (1) | WO2015106263A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI646554B (zh) | 2017-03-28 | 2019-01-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
CN111209232B (zh) * | 2018-11-21 | 2022-04-22 | 昆仑芯(北京)科技有限公司 | 访问静态随机存取存储器的方法、装置、设备和存储介质 |
CN110277134A (zh) * | 2019-06-27 | 2019-09-24 | 鸿秦(北京)科技有限公司 | 一种自动化批量测试固态硬盘的系统 |
WO2023159347A1 (zh) * | 2022-02-22 | 2023-08-31 | 华为技术有限公司 | 一种控制数据读写的方法和装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10207726A (ja) * | 1997-01-23 | 1998-08-07 | Oki Electric Ind Co Ltd | 半導体ディスク装置 |
JP2005202957A (ja) * | 2004-01-12 | 2005-07-28 | Hewlett-Packard Development Co Lp | エラー訂正のためのデータの分割 |
US20080034154A1 (en) * | 1999-08-04 | 2008-02-07 | Super Talent Electronics Inc. | Multi-Channel Flash Module with Plane-Interleaved Sequential ECC Writes and Background Recycling to Restricted-Write Flash Chips |
US20100211833A1 (en) * | 2007-10-22 | 2010-08-19 | Hanan Weingarten | Systems and methods for averaging error rates in non-volatile devices and storage systems |
US20110125953A1 (en) * | 2009-11-23 | 2011-05-26 | Agiga Tech Inc. | Flash memory organization for reduced failure rate |
JP2012022422A (ja) * | 2010-07-13 | 2012-02-02 | Panasonic Corp | 半導体記録再生装置 |
US20120144093A1 (en) * | 2010-12-07 | 2012-06-07 | Densbits Technologies Ltd. | Interleaving codeword portions between multiple planes and/or dies of a flash memory device |
JP2013016149A (ja) * | 2011-06-08 | 2013-01-24 | Panasonic Corp | メモリコントローラ及び不揮発性記憶装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8543742B2 (en) | 2007-02-22 | 2013-09-24 | Super Talent Electronics, Inc. | Flash-memory device with RAID-type controller |
US8176284B2 (en) * | 2009-08-11 | 2012-05-08 | Texas Memory Systems, Inc. | FLASH-based memory system with variable length page stripes including data protection information |
US8402217B2 (en) * | 2009-09-15 | 2013-03-19 | Marvell International Ltd. | Implementing RAID in solid state memory |
KR101616100B1 (ko) * | 2009-09-25 | 2016-04-28 | 삼성전자주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US8626988B2 (en) | 2009-11-19 | 2014-01-07 | Densbits Technologies Ltd. | System and method for uncoded bit error rate equalization via interleaving |
US8365041B2 (en) | 2010-03-17 | 2013-01-29 | Sandisk Enterprise Ip Llc | MLC self-raid flash data protection scheme |
US8484408B2 (en) | 2010-12-29 | 2013-07-09 | International Business Machines Corporation | Storage system cache with flash memory in a raid configuration that commits writes as full stripes |
US8732557B2 (en) | 2011-05-31 | 2014-05-20 | Micron Technology, Inc. | Data protection across multiple memory blocks |
US9335939B2 (en) | 2011-07-12 | 2016-05-10 | Violin Memory Inc. | RAIDed memory system |
US20130019057A1 (en) | 2011-07-15 | 2013-01-17 | Violin Memory, Inc. | Flash disk array and controller |
US9424128B2 (en) | 2011-08-12 | 2016-08-23 | Futurewei Technologies, Inc. | Method and apparatus for flexible RAID in SSD |
KR20130111821A (ko) | 2012-04-02 | 2013-10-11 | 삼성전자주식회사 | Raid 메모리 시스템 |
US8910017B2 (en) | 2012-07-02 | 2014-12-09 | Sandisk Technologies Inc. | Flash memory with random partition |
-
2014
- 2014-01-16 US US14/156,693 patent/US9405480B2/en active Active
-
2015
- 2015-01-13 WO PCT/US2015/011189 patent/WO2015106263A1/en active Application Filing
- 2015-01-14 JP JP2015004983A patent/JP6491482B2/ja not_active Expired - Fee Related
- 2015-01-16 KR KR1020150008053A patent/KR20150085800A/ko not_active Application Discontinuation
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10207726A (ja) * | 1997-01-23 | 1998-08-07 | Oki Electric Ind Co Ltd | 半導体ディスク装置 |
US20080034154A1 (en) * | 1999-08-04 | 2008-02-07 | Super Talent Electronics Inc. | Multi-Channel Flash Module with Plane-Interleaved Sequential ECC Writes and Background Recycling to Restricted-Write Flash Chips |
JP2005202957A (ja) * | 2004-01-12 | 2005-07-28 | Hewlett-Packard Development Co Lp | エラー訂正のためのデータの分割 |
US20100211833A1 (en) * | 2007-10-22 | 2010-08-19 | Hanan Weingarten | Systems and methods for averaging error rates in non-volatile devices and storage systems |
US20110125953A1 (en) * | 2009-11-23 | 2011-05-26 | Agiga Tech Inc. | Flash memory organization for reduced failure rate |
JP2012022422A (ja) * | 2010-07-13 | 2012-02-02 | Panasonic Corp | 半導体記録再生装置 |
US20120144093A1 (en) * | 2010-12-07 | 2012-06-07 | Densbits Technologies Ltd. | Interleaving codeword portions between multiple planes and/or dies of a flash memory device |
JP2013016149A (ja) * | 2011-06-08 | 2013-01-24 | Panasonic Corp | メモリコントローラ及び不揮発性記憶装置 |
Also Published As
Publication number | Publication date |
---|---|
US9405480B2 (en) | 2016-08-02 |
US20150199140A1 (en) | 2015-07-16 |
KR20150085800A (ko) | 2015-07-24 |
WO2015106263A1 (en) | 2015-07-16 |
JP6491482B2 (ja) | 2019-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102645583B1 (ko) | 예측성 메모리 유지보수 | |
US10998923B2 (en) | Stopping criteria for layered iterative error correction | |
US8726140B2 (en) | Dummy data padding and error code correcting memory controller, data processing method thereof, and memory system including the same | |
US9673840B2 (en) | Turbo product codes for NAND flash | |
CN107155358B (zh) | 用于非易失性存储器的混合粒度较高级别冗余 | |
US10388400B2 (en) | Generalized product codes for flash storage | |
US9465552B2 (en) | Selection of redundant storage configuration based on available memory space | |
US9847139B2 (en) | Flash channel parameter management with read scrub | |
US8694865B2 (en) | Data storage device configured to reduce buffer traffic and related method of operation | |
KR102572357B1 (ko) | Raid-6 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템 | |
CN110597654B (zh) | 用于超快的具有奇偶校验的纠错码的系统和方法 | |
CN109857584B (zh) | 于记忆装置进行访问控制的方法、记忆装置和其控制器 | |
US10120753B2 (en) | Methods and apparatuses for error correction | |
US10223022B2 (en) | System and method for implementing super word line zones in a memory device | |
JP6491482B2 (ja) | 複数のフラッシュ面にわたってコード語をインターリーブするための方法および/または装置 | |
KR20190038964A (ko) | 에러 정정 코드 유닛, 그것의 인코딩 및 디코딩 방법 | |
US20150149856A1 (en) | Decoding with log likelihood ratios stored in a controller | |
KR20220045343A (ko) | 데이터 처리 시스템 내 데이터 전송에서 발생한 에러를 정정하는 장치 및 방법 | |
KR20170012006A (ko) | 메모리 컨트롤러와 이를 포함하는 메모리 시스템 | |
WO2020028801A1 (en) | Error correction with scatter-gather list data management | |
CN111796774B (zh) | 存储器控制方法、存储器存储装置及存储器控制器 | |
US20200264953A1 (en) | Error correction in data storage devices | |
CN108170554B (zh) | 一种nand的数据编码方法和装置 | |
US9906241B2 (en) | Apparatus and method for turbo product codes | |
US10114569B2 (en) | Computing system with shift expandable coding mechanism and method of operation thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180112 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180921 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181002 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20190104 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190122 |
|
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: 20190205 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190301 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6491482 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |