JP5806792B2 - フラッシュメモリ用のldpc消失復号化 - Google Patents

フラッシュメモリ用のldpc消失復号化 Download PDF

Info

Publication number
JP5806792B2
JP5806792B2 JP2012557303A JP2012557303A JP5806792B2 JP 5806792 B2 JP5806792 B2 JP 5806792B2 JP 2012557303 A JP2012557303 A JP 2012557303A JP 2012557303 A JP2012557303 A JP 2012557303A JP 5806792 B2 JP5806792 B2 JP 5806792B2
Authority
JP
Japan
Prior art keywords
read
flash memory
storage component
interface
component type
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
Application number
JP2012557303A
Other languages
English (en)
Other versions
JP2013522735A5 (ja
JP2013522735A (ja
Inventor
ツォン、ハオ
リ、ヤン
ダニラク、ラドスラヴ
ティー コーエン、アール
ティー コーエン、アール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LSI Corp
Original Assignee
LSI Logic Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by LSI Logic Corp filed Critical LSI Logic Corp
Publication of JP2013522735A publication Critical patent/JP2013522735A/ja
Publication of JP2013522735A5 publication Critical patent/JP2013522735A5/ja
Application granted granted Critical
Publication of JP5806792B2 publication Critical patent/JP5806792B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • H03M13/3715Adaptation to the number of estimated errors or to the channel state
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1072Adding 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 multilevel memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Error Detection And Correction (AREA)
  • Storage Device Security (AREA)

Description

本願に基づく優先権の利益は、添付の出願データシート、願書、または送付状(該当する場合)にて主張されている。本願の種別につき許可される範囲内で、本願は、以下の出願および本願権利者の全所有物において、参照により以下を本明細書に組み込むものとする。
2010年3月12日付で出願されたHao Zhong(第一発明者)による米国仮特許出願(整理番号SF−10−01および第61/313,681号)「LDPC Erasure Decoding for Flash Memories」(フラッシュメモリ用のLDPC消失復号化)
フラッシュメモリのアクセスについては、その性能、効率、および実用性を改善する進歩が必要とされている。
本明細書で説明する技術および概念は、公知または周知であるとの明示的な断りがない限り、その文脈、定義、または比較に関するものを含め、これまでに公知であり、または先行技術の一部であったと解釈すべきものではない。この明細書で文献を引用する場合、特許、特許出願、および出版物を含むそれらすべての引用文献は、すべての目的について具体的に盛り込まれているかどうかにかかわらず、参照によりその全体が本明細書に組み込まれるものとする。
この出願の発明に関連する先行技術文献情報としては、以下のものがある(国際出願日以降国際段階で引用された文献及び他国に国内移行した際に引用された文献を含む)。
(先行技術文献)
(特許文献)
(特許文献1) 米国特許第6678823号明細書
(特許文献2) 米国特許第6347051号明細書
(特許文献3) 米国特許第6341085号明細書
(特許文献4) 米国特許第8125827号明細書
(特許文献5) 米国特許出願公開第2010/0091535号明細書
(特許文献6) 米国特許出願公開第2010/0131809号明細書
(特許文献7) 米国特許出願公開第2011/0032760号明細書
(特許文献8) 米国特許出願公開第2011/0182119号明細書
(特許文献9) 韓国特許第10−2010−0010746号公報
(特許文献10) 国際公開第2013/166200号
(特許文献11) 米国特許第7656707号明細書
(特許文献12) 米国特許出願公開第2010/0034021号明細書
(特許文献13) 米国特許出願公開第2010/0020611号明細書
(特許文献14) 米国特許出願公開第2009/0003057号明細書
(特許文献15) 米国特許出願公開第2007/0171714号明細書
(特許文献16) 米国特許出願公開第2009/0241010号明細書
(特許文献17) 米国特許出願公開第2008/0022189号明細書
(特許文献18) 米国特許出願公開第2009/0024905号明細書
(特許文献19) 米国特許出願公開第2009/0177943号明細書
(特許文献20) 米国特許出願公開第2008/0250300号明細書
(特許文献21) 米国特許出願公開第2012/0151286号明細書
(特許文献22) 米国特許第5099484号明細書
(特許文献23) 米国特許出願公開第2006/0242542号明細書
(特許文献24) 米国特許出願公開第2008/0250270号明細書
(特許文献25) 米国特許出願公開第2010/0017650号明細書
(特許文献26) 米国特許出願公開第2010/0017649号明細書
(特許文献27) 国際公開第2008/099723号
(特許文献28) 米国特許第6594728号明細書
(特許文献29) 米国特許第5651135号明細書
(特許文献30) 米国特許出願公開第2005/0240731号明細書
(特許文献31) 国際公開第2012/099937号
(特許文献32) 米国特許第5666512号明細書
(特許文献33) 米国特許第7117397号明細書
(特許文献34) 米国特許第7681109号明細書
(特許文献35) 米国特許第7739576号明細書
(特許文献36) 米国特許第7809994号明細書
(特許文献37) 米国特許出願公開第2008/0316819号明細書
(特許文献38) 米国特許出願公開第2008/0094907号明細書
(特許文献39) 米国特許出願公開第2010/0100764号明細書
(特許文献40) 韓国特許第10−2010−0076447号公報
(特許文献41) 国際公開第2009/114618号
(特許文献42) 国際公開第2012/075200号
(特許文献43) 国際公開第2012/058328号
(非特許文献)
(非特許文献1) S.Li,T.Zhang,"Improving Multi−Level NAND Flash Memory Storage Reliability Using Concatenated BCH−TCM Coding"in IEEE Transactions on Very Large Scale Integration(VLSI)Systems,Vol.18,No.10,October 2010,pages 1412−1420(9 sheets).
(非特許文献2) R.Micheloni,L.Crippa,A,Marelli,"InsideNANDFlashMemories"Springer Science +Business Media B.V.2010 ISBN 978−90−481−9430−8,pages 38−43 and related footnote pages 52−53,formatted as 4 sheets.
(非特許文献3) R.Micheloni,L.Crippa,A,Marelli,"InsideNANDFlashMemories"Springer Science +Business Media B.V.2010 ISBN 978−90−481−9430−8,pages 515−536,formatted as 12 sheets.
(非特許文献4) Chanik Park,Prakash Talawar,Daesik Won,MyungJin Jung,JungBeen Im,Suksan Kim and Youngjoon Choi,"A High Performance Controller for NAND Flash−based Solid State Disk (NSSD),"in Non−volatile Semiconductor Memory Workshop(NVSMW) Digest Technical Papers,2006,pp.17−20(4 sheets).
(非特許文献5) K. Takeuchi,"NAND Successful as a Media for SSD"IEEE International Solid−State Circuits Conference Tutorial T7,2008,rotated,Pages 1−81(81 sheets).
(非特許文献6) INTERNATIONAL SEARCH REPORT in related case PCT/US2013/039138,10 pages
(非特許文献7) INTERNATIONAL SEARCH REPORT AND WRITTEN OPINION in the parent PCT/US2011/028244,12 pages
(非特許文献8) J.S.Plank and M.G.Thomason."On the Practical Use of LDPC Erasure Codes for Distributed Storage Applications",Technical Report CS−03−510,University of Tennessee,September 2003,15 pages.
(非特許文献9) DEVANG PANCHIGAR"EMC Symmetrix DMX − RAID 6 Implementation" 2009−02−27,http://storagenerve.com/2009/02/27/emc−symmetrix−dmx−raid−6−implementation/,9 pages
(非特許文献10) H.PETER ANVIN,"The mathematics of RAID−6" Last updated 20 December 2011,https://www.kernel.org/pub/linux/kernel/people/hpa/raid6.pdf, accessed on September 30, 2013,9 pages
(非特許文献11) Advanced Computer & Network Corporation,"RAID Level 6: Independent Data Disks with Two Independent Parity Schemes", http://www.acnc.com/raidedu/6,accessed on September 30,2013,2 pages
(非特許文献12) INTERNATIONAL SEARCH REPORT AND THE WRITTEN OPINION in the related PCT/US12/21682,9 pages
(非特許文献13) INTERNATIONAL SEARCH REPORT in related PCT/US2011/062726,3 pages
(非特許文献14) THE WRITTEN OPINION in related PCT/US2011/062726,3 pages
(非特許文献15) INTERNATIONAL SEARCH REPORT AND THE WRITTEN OPINION in related PCT/US2011/057914,9 pages
概要
本発明は、多数の方法で実施でき、工程、製造品、機器、システム、組成物、その他コンピュータ可読記憶媒体などのコンピュータ可読媒体(例えば、ディスクなどの光および/または磁気による大容量記憶装置における媒体、あるいはフラッシュ記憶装置などの不揮発性記憶装置を有する集積回路)、あるいは光通信リンクまたは電子通信リンク経由でプログラム命令が送信されるコンピュータネットワークなどとして実施可能である。本明細書では、これらの実施態様、または本発明が取りうる他のいかなる形態も、技術と呼ぶことができる。以降の詳細な説明では、上記で特定した分野において性能、効率、および実用性の改善を可能にする本発明の1若しくはそれ以上の実施形態について解説している。この詳細な説明の項には、この項の他の部分に関する理解を促すため、序論を含めている。この序論には、本明細書で説明する概念に基づいた1若しくはそれ以上のシステム、方法、製造品、およびコンピュータ可読媒体の実施形態例が含まれる。以下、結論の項で詳述するように、本発明は、請求項の範囲内で考えられるすべての変更(修正)形態および変形形態を包含する。
図1Aは、低密度パリティ検査(LDPC)符号ベースのフラッシュメモリアクセスを使ったソリッドステートディスク(SSD)コントローラを含むSSDの一実施形態の詳細を一部選んで例示した図である。 図1Bは、図1AのSSDを含むシステムの一実施形態の詳細を一部選んで例示したものである。 図1Cは、図1AのSSDを含むシステムの一実施形態の詳細を一部選んで例示したものである。 図2Aは、シングルレベルセル(SLC)を1回読み出して硬判定情報を取得する一実施形態の詳細を一部選んで例示した図であり、図2Bは、SLCを3回読み出して軟判定情報を取得する一実施形態の詳細を一部選んで例示した図であり、図2Cは、SLCを2回読み出して消失判定情報を取得する一実施形態の詳細を一部選んで例示した図である。図2A〜2Cは、i)全セルにわたる閾値電圧の分布であって、それらのセルに書き込まれた種々の論理状態に対応した分布と、ii)前記セルに格納された生データを読み出す実施形態に基づき使用される検出電圧レベル(破線で表示)とを示している。 図2Aは、シングルレベルセル(SLC)を1回読み出して硬判定情報を取得する一実施形態の詳細を一部選んで例示した図であり、図2Bは、SLCを3回読み出して軟判定情報を取得する一実施形態の詳細を一部選んで例示した図であり、図2Cは、SLCを2回読み出して消失判定情報を取得する一実施形態の詳細を一部選んで例示した図である。図2A〜2Cは、i)全セルにわたる閾値電圧の分布であって、それらのセルに書き込まれた種々の論理状態に対応した分布と、ii)前記セルに格納された生データを読み出す実施形態に基づき使用される検出電圧レベル(破線で表示)とを示している。 図2Aは、シングルレベルセル(SLC)を1回読み出して硬判定情報を取得する一実施形態の詳細を一部選んで例示した図であり、図2Bは、SLCを3回読み出して軟判定情報を取得する一実施形態の詳細を一部選んで例示した図であり、図2Cは、SLCを2回読み出して消失判定情報を取得する一実施形態の詳細を一部選んで例示した図である。図2A〜2Cは、i)全セルにわたる閾値電圧の分布であって、それらのセルに書き込まれた種々の論理状態に対応した分布と、ii)前記セルに格納された生データを読み出す実施形態に基づき使用される検出電圧レベル(破線で表示)とを示している。 図3は、種々の技術、例えば種々の符号化率8/9符号の誤り訂正性能を例示したものである。 図4A、4B、および4Cは、LDPC復号化に基づくSSDの諸実施形態の操作詳細を一部選んで例示したものである。 図4A、4B、および4Cは、LDPC復号化に基づくSSDの諸実施形態の操作詳細を一部選んで例示したものである。 図4A、4B、および4Cは、LDPC復号化に基づくSSDの諸実施形態の操作詳細を一部選んで例示したものである。 図5Aは、2ビット/セルマルチレベルセル(MLC)を7回読み出して情報を取得する一実施形態の詳細を一部選んで例示したものであり、図5Bは、2ビット/セルMLCを5回読み出して消失判定情報を取得する一実施形態の詳細を一部選んで例示したものである。図5Aおよび5Bは、i)全セルにわたる閾値電圧の分布であって、それらのセルに書き込まれた種々の論理状態に対応した分布と、ii)前記セルに格納された生データを読み出す実施形態に基づき使用される検出電圧レベル(破線で表示)とを示している。 図5Aは、2ビット/セルマルチレベルセル(MLC)を7回読み出して情報を取得する一実施形態の詳細を一部選んで例示したものであり、図5Bは、2ビット/セルMLCを5回読み出して消失判定情報を取得する一実施形態の詳細を一部選んで例示したものである。図5Aおよび5Bは、i)全セルにわたる閾値電圧の分布であって、それらのセルに書き込まれた種々の論理状態に対応した分布と、ii)前記セルに格納された生データを読み出す実施形態に基づき使用される検出電圧レベル(破線で表示)とを示している。
以下では、本発明の1若しくはそれ以上の実施形態について、本発明の詳細を一部選んで例示した添付の図面とともに詳細に説明している。本発明については、実施形態に関連付けて説明する。それらの実施形態は本明細書において単に例示的なものと理解され、本発明は、本明細書の実施形態のいずれか若しくはすべてに明示的に限定されず、多くの代替形態、変更(修正)形態、および均等物(等価物)を包含するものである。説明が単調になるのを避けるため、種々の表現ラベル(word label)(「第1の」、「最後の」、「特定の(certain)」、「種々の」、「さらに別の」、「他の」、「特定の(particular)」、「選択された」、「一部の」、「および特筆すべき」を含み、かつこれらに限定されない)を別個の実施形態セットに適用する場合がある。本明細書において、このようなラベルは、明示的に、特質、または嗜好若しくは偏見の何らかの形態を伝えることを目的としたものではなく、単に別個のセットを便宜的に区別するためのものである。開示した工程の操作・動作のいくつかは、本発明の範囲内で順序を変えることができる。工程、方法、および/またはプログラム命令の特徴の変形形態を複数の実施形態で説明している場合は、所定の、または動的に決定される基準に基づいて、それぞれ複数の実施形態に対応した複数の操作・動作モードから静的および/または動的に選択される1つを実施する他の実施形態も考えられる。以下の説明では、本発明が完全に理解されるよう具体的な詳細事項を多数記載する。これらの詳細事項は例示目的で提供するものであり、本発明は、これら具体的な詳細事項の一部または全部がなくとも、添付の請求項に従って実施可能である。明瞭性のため、本発明を不要に曖昧にしないよう、本発明に関する技術分野で公知の技術的事項は詳述していない。
序論
本序論は、以降の詳細な説明をより短時間で理解できるよう含めたものである。いかなる序論も必然的に当該主題全体を概説するものであり、完全または限定的な説明を意図したものではないため、本発明は本序論に示す概念(明示的な例がある場合はそれを含む)に限定されるものではない。例えば、以下では、本明細書の紙面および構成の制限上、特定の実施形態だけに関する概要を提供している。本明細書の残りの部分では、最終的に請求項と整合するものも含め、他の実施形態を多数説明している。
頭字語および略称
本明細書の他の部分では、特定の要素を指す種々の略称または頭字語が使用されている。これら頭字語・略称の少なくとも一部を以下に説明する。
Figure 0005806792
一部のタイプのNAND型フラッシュメモリでは、フローティングゲートトランジスタのアレイを使って情報を格納する。各ビットセル(例えば、フローティングゲートトランジスタ)は、単一ビット情報(SLCとして知られる)または複数ビット情報(MLCとして知られる)を格納することができる。CMOS技術をスケールダウンすると、フローティングゲートに格納される電子の個数が減少する。記憶容量および/または記憶密度を増加させると、セルごとに格納されるビット数が増加する。そのため、技術のスケールダウンに伴い、セルに格納される値は比較的低い電圧範囲で表されるようになる。セルに格納された電子数の検出および/または経時変化の不確実性は、データ読み出し誤りを増大させる。一部の実施態様および/または使用シナリオでは、ECCにより、通常であれば破損データとされるデータを正しく読み出すことができる。
一部のSSDタイプでは、フラッシュメモリを使って不揮発性記憶装置を提供する(例えば、電力なしで情報が保持される)。一部のSSDは、HDD、CDドライブ、およびDVD駆動など磁気および/または光による不揮発性記憶装置に使用されるフォームファクタ、電気的インターフェース、および/またはプロトコルと互換性がある。一部のSSDでは、誤り訂正にRSおよび/またはBCH符号が使用される。
ソリッドステートディスク(Solid−State Disk:SSD)コントローラは、低密度パリティ検査(Low Density Parity Check:LDPC)復号化を使って、フラッシュメモリアクセスにおける待ち時間(レイテンシ)および/または誤り訂正能力の改善を可能にする。一部の実施形態では、シングルレベルセル(SLC)技術のフラッシュメモリが所定値未満の生ビット誤り率(BER)を有する場合、SSDコントローラは、1ビット読み出し(単一読み出し)硬判定LDPCデコーダを使って前記フラッシュメモリにアクセスする。前記硬判定LDPCデコーダが訂正不可能な誤りを検出した場合、前記SSDコントローラは、1.5ビット読み出し(2回読み出し)消失判定LDPCデコーダを使って前記フラッシュメモリにアクセスする。一部の実施形態では、フラッシュメモリが他の2つの所定値間の生BERを有する場合、SSDコントローラは、前記硬判定LDPCデコーダの使用を省き、前記消失判定LDPCデコーダだけを使って前記フラッシュメモリにアクセスする。SSDコントローラの変形形態は、同様な技術を使ってマルチレベルセル(MLC)技術のフラッシュメモリにアクセスする。一部のSSDコントローラは、動的なデコーダ選択基準に基づいて、硬判定および消失ベースのデコーダ間で動的に切り替えを行う。この基準としては、プログラムサイクルまたは消去サイクルの数、読み出しディスターブイベント数、以前の訂正可能な誤りの数、および/または以前の訂正不可能な誤りの数などがある。
例示的な実施形態
詳細な説明の序論の結びとして、以下では、少なくとも「EC」(Example Combination。組み合わせ例)として明示的に列挙されたいくつかを含む実施形態例集を示し、本明細書で説明する概念に係る種々の実施形態タイプについてさらに説明する。これらの例は、相互に排他的、網羅的、または限定的であることを意図したものではなく、本発明は、これらの実施形態例に限定されず、特許請求の範囲内で考えられる変更(修正)形態および変形形態をすべて包含するものである。
EC1)システムであって、
フラッシュメモリ内の特定の位置に格納されたデータに対する要求の受信に応答して、当該特定の位置における1若しくはそれ以上の初期読み出しを要求する手段と、
前記初期読み出しの完了に応答して、当該初期読み出しの結果に基づく硬判定ベースの低密度パリティ検査(LDPC)復号化により訂正不可能な誤りを検出する手段と、
前記検出手段に応答して、前記特定の位置における1若しくはそれ以上の追加読み出しを要求する手段と、
前記追加読み出しの完了に応答して、当該追加読み出しの各結果に基づく消失判定LDPC復号化を実行する手段と
を有するシステム。
EC2)EC154記載のシステムにおいて、前記フラッシュメモリは、シングルレベルセル(SLC)技術のフラッシュメモリを含み、前記初期読み出しは1回であり、前記追加読み出しは2回であり、前記各追加読み出しは、各々の読み出し電圧におけるものであるシステム。
EC3)EC154記載のシステムにおいて、さらに、
各前記追加読み出しについて各々の電圧指定子を提供する手段を有するものであるシステム。
EC4)EC154記載のシステムにおいて、前記電圧指定子のうち少なくとも1つは、明示的な電圧レベル、複数の所定電圧レベルの1つの識別子、および複数の読み出し要求タイプの1つの一意の識別結果のうちの1つであるシステム。
EC5)EC154記載のシステムにおいて、前記フラッシュメモリは、マルチレベルセル(MLC)技術のフラッシュメモリを含むものであるシステム。
EC6)EC154記載のシステムにおいて、前記受信は、複数のインターフェース規格のうち1若しくはそれ以上に適合し、当該インターフェース規格は、
シリアル・アドバンスド・テクノロジー・アタッチメント(SATA)インターフェース規格と、
シリアル・アタッチド・スモール・コンピュータ・システム・インターフェース(SAS)インターフェース規格と、
周辺機器相互接続エクスプレス(PCIe)インターフェース規格と、
ファイバーチャネル・インターフェース規格と、
イーサネット(登録商標)・インターフェース規格と
を含むものであるシステム。
EC7)EC154記載のシステムにおいて、前記初期読み出しを要求する手段および前記追加読み出しを要求する手段はコントローラを介し、当該コントローラおよび前記フラッシュメモリは、複数の不揮発性記憶構成要素タイプの1つとして実装される記憶サブシステムに含まれ、前記不揮発性記憶構成要素タイプは、
ユニバーサルシリアルバス(USB)記憶構成要素タイプと、
コンパクトフラッシュ(登録商標)(CF)記憶構成要素タイプと、
マルチメディアカード(MMC)記憶構成要素タイプと、
セキュアデジタル(SD)記憶構成要素タイプと、
メモリースティック記憶構成要素タイプと、
xDピクチャーカード記憶構成要素タイプと
を含むものであるシステム。
EC8)方法であって、
フラッシュメモリ内の特定の位置に格納されたデータに対する要求の受信に応答して、前記特定の位置における1若しくはそれ以上の初期読み出しを要求する工程と、
前記初期読み出しの完了に応答して、当該初期読み出しの結果に基づく硬判定ベースの低密度パリティ検査(LDPC)復号化により訂正不可能な誤りを検出する工程と、
前記検出に応答して、前記特定の位置における1若しくはそれ以上の追加読み出しを要求する工程と、
前記追加読み出しの完了に応答して、当該追加読み出しの各結果に基づく消失判定LDPC復号化を実行する工程と
を有する方法。
EC9)EC154記載の方法において、前記フラッシュメモリは、シングルレベルセル(SLC)技術のフラッシュメモリを含み、前記初期読み出しは1回であり、前記追加読み出しは2回であり、前記各追加読み出しは、各々の読み出し電圧におけるものである方法。
EC10)EC154記載の方法において、さらに、
各前記追加読み出しについて各々の電圧指定子を提供する工程を有するものである方法。
EC11)EC154記載の方法において、前記電圧指定子のうち少なくとも1つは、明示的な電圧レベル、複数の所定電圧レベルの1つの識別子、および複数の読み出し要求タイプの1つの一意の識別結果のうちの1つである方法。
EC12)EC154記載の方法において、前記フラッシュメモリは、マルチレベルセル(MLC)技術のフラッシュメモリを含むものである方法。
EC13)EC154記載の方法において、前記受信は、複数のインターフェース規格のうち1若しくはそれ以上に適合し、当該インターフェース規格は、
シリアル・アドバンスド・テクノロジー・アタッチメント(SATA)インターフェース規格と、
シリアル・アタッチド・スモール・コンピュータ・システム・インターフェース(SAS)インターフェース規格と、
周辺機器相互接続エクスプレス(PCIe)インターフェース規格と、
ファイバーチャネル・インターフェース規格と、
イーサネット(登録商標)・インターフェース規格と
を含むものである方法。
EC14)EC154記載の方法において、前記初期読み出しを要求する工程および前記追加読み出しを要求する工程はコントローラを介し、当該コントローラおよび前記フラッシュメモリは、複数の不揮発性記憶構成要素タイプの1つとして実装される記憶サブシステムに含まれ、前記不揮発性記憶構成要素タイプは、
ユニバーサルシリアルバス(USB)記憶構成要素タイプと、
コンパクトフラッシュ(登録商標)(CF)記憶構成要素タイプと、
マルチメディアカード(MMC)記憶構成要素タイプと、
セキュアデジタル(SD)記憶構成要素タイプと、
メモリースティック記憶構成要素タイプと、
xDピクチャーカード記憶構成要素タイプと
を含むものである方法。
EC15)システムであって、
インターフェースと、
コントローラであって、
フラッシュメモリ内の特定の位置に格納されたデータに対する要求を前記インターフェース経由で受信し、当該要求に応答して前記特定の位置における1若しくはそれ以上の初期読み出しを要求する工程と、
前記初期読み出しの完了に応答して、当該初期読み出しの結果に基づく硬判定ベースの低密度パリティ検査(LDPC)復号化により訂正不可能な誤りを検出する工程と、
前記検出に応答して、前記特定の位置における1若しくはそれ以上の追加読み出しを要求する工程と、
前記追加読み出しの完了に応答して、当該追加読み出しの各結果に基づく消失判定LDPC復号化を実行する工程と
を実行可能なものである、前記コントローラと
を有するシステム。
EC16)EC154記載のシステムにおいて、前記フラッシュメモリは、シングルレベルセル(SLC)技術のフラッシュメモリを含み、前記初期読み出しは1回であり、前記追加読み出しは2回であり、前記各追加読み出しは、各々の読み出し電圧におけるものであるシステム。
EC17)EC154記載のシステムにおいて、前記コントローラは、さらに、
各前記追加読み出しについて各々の電圧指定子を提供する工程を実行可能なものであるシステム。
EC18)EC154記載のシステムにおいて、前記電圧指定子のうち少なくとも1つは、明示的な電圧レベル、複数の所定電圧レベルの1つの識別子、および複数の読み出し要求タイプの1つの一意の識別結果のうちの1つであるシステム。
EC19)EC154記載のシステムにおいて、前記フラッシュメモリは、マルチレベルセル(MLC)技術のフラッシュメモリを含むものであるシステム。
EC20)EC154記載のシステムにおいて、前記コントローラおよび前記フラッシュメモリは、複数の不揮発性記憶構成要素タイプの1つとして実装される記憶サブシステムに含まれ、前記不揮発性記憶構成要素タイプは、
ユニバーサルシリアルバス(USB)記憶構成要素タイプと、
コンパクトフラッシュ(登録商標)(CF)記憶構成要素タイプと、
マルチメディアカード(MMC)記憶構成要素タイプと、
セキュアデジタル(SD)記憶構成要素タイプと、
メモリースティック記憶構成要素タイプと、
xDピクチャーカード記憶構成要素タイプと
を含むものであるシステム。
EC21)命令セットが内部に格納された有形のコンピュータ可読媒体であって、前記命令セットが処理要素により実行されると、前記処理要素により、
フラッシュメモリ内の特定の位置に格納されたデータに対する要求の受信に応答して、前記特定の位置における1若しくはそれ以上の初期読み出しを要求する工程と、
前記初期読み出しの完了に応答して、当該初期読み出しの結果に基づく硬判定ベースの低密度パリティ検査(LDPC)復号化により訂正不可能な誤りを検出する工程と、
前記検出に応答して、前記特定の位置における1若しくはそれ以上の追加読み出しを要求する工程と、
前記追加読み出しの完了に応答して、当該追加読み出しの各結果に基づく消失判定LDPC復号化を実行する工程と
を有する動作が実行されるものである
有形のコンピュータ可読媒体。
EC22)EC21記載の有形のコンピュータ可読媒体において、前記フラッシュメモリは、シングルレベルセル(SLC)技術のフラッシュメモリを含み、前記初期読み出しは1回であり、前記追加読み出しは2回であり、前記各追加読み出しは、各々の読み出し電圧におけるものである有形のコンピュータ可読媒体。
EC23)EC22記載の有形のコンピュータ可読媒体において、前記動作は、さらに、
各前記追加読み出しについて各々の電圧指定子を提供する工程を有するものである有形のコンピュータ可読媒体。
EC24)EC23記載の有形のコンピュータ可読媒体において、前記電圧指定子のうち少なくとも1つは、明示的な電圧レベル、複数の所定電圧レベルの1つの識別子、および複数の読み出し要求タイプの1つの一意の識別結果のうちの1つである有形のコンピュータ可読媒体。
EC25)EC21記載の有形のコンピュータ可読媒体において、前記フラッシュメモリは、マルチレベルセル(MLC)技術のフラッシュメモリを有するものである有形のコンピュータ可読媒体。
EC26)EC21記載の有形のコンピュータ可読媒体において、前記受信は、複数のインターフェース規格のうち1若しくはそれ以上に適合し、当該インターフェース規格は、
シリアル・アドバンスド・テクノロジー・アタッチメント(SATA)インターフェース規格と、
シリアル・アタッチド・スモール・コンピュータ・システム・インターフェース(SAS)インターフェース規格と、
周辺機器相互接続エクスプレス(PCIe)インターフェース規格と、
ファイバーチャネル・インターフェース規格と、
イーサネット(登録商標)・インターフェース規格と
を含むものである有形のコンピュータ可読媒体。
EC27)EC21記載の有形のコンピュータ可読媒体において、前記処理要素はコントローラに含まれ、当該コントローラおよび前記フラッシュメモリは、複数の不揮発性記憶構成要素タイプの1つとして実装される記憶サブシステムに含まれ、前記不揮発性記憶構成要素タイプは、
ユニバーサルシリアルバス(USB)記憶構成要素タイプと、
コンパクトフラッシュ(登録商標)(CF)記憶構成要素タイプと、
マルチメディアカード(MMC)記憶構成要素タイプと、
セキュアデジタル(SD)記憶構成要素タイプと、
メモリースティック記憶構成要素タイプと、
xDピクチャーカード記憶構成要素タイプと
を有するものである有形のコンピュータ可読媒体。
EC28)システムであって、
フラッシュメモリ内の特定の位置に格納されたデータに対する要求の受信に応答して、前記特定の位置における1若しくはそれ以上の初期読み出しを要求する手段と、
前記初期読み出しの完了に応答して、当該初期読み出しの結果に基づく硬判定ベースの低密度パリティ検査(LDPC)復号化により訂正不可能な誤りを検出する手段と、
前記検出手段に応答して、前記特定の位置における1若しくはそれ以上の追加読み出しを要求する手段と、
前記追加読み出しの完了に応答して、当該追加読み出しの各結果に基づく消失判定LDPC復号化を実行する手段と
を有するシステム。
EC29)EC28記載のシステムにおいて、前記フラッシュメモリは、シングルレベルセル(SLC)技術のフラッシュメモリを含み、前記初期読み出しは1回であり、前記追加読み出しは2回であるシステム。
EC30)EC29記載のシステムにおいて、前記各追加読み出しは、各々の読み出し電圧におけるものであるシステム。
EC31)EC30記載のシステムにおいて、さらに、
各前記追加読み出しについて各々の電圧指定子を提供する手段を有するものであるシステム。
EC32)EC31記載のシステムにおいて、前記電圧指定子のうち少なくとも1つは、明示的な電圧レベル、複数の所定電圧レベルの1つの識別子、および複数の読み出し要求タイプの1つの一意の識別結果のうちの1つであるシステム。
EC33)EC28記載のシステムにおいて、前記フラッシュメモリは、マルチレベルセル(MLC)技術のフラッシュメモリを含むものであるシステム。
EC34)EC33記載のシステムにおいて、前記各初期読み出しは、各々の読み出し電圧におけるものであるシステム。
EC35)EC34記載のシステムにおいて、さらに、
各前記初期読み出しについて各々の電圧指定子を提供する手段を有するものであるシステム。
EC36)EC35記載のシステムにおいて、前記電圧指定子のうち少なくとも1つは、明示的な電圧レベル、複数の所定電圧レベルの1つの識別子、および複数の読み出し要求タイプの1つの一意の識別結果のうちの1つであるシステム。
EC37)EC28記載のシステムにおいて、前記受信は、複数のインターフェース規格のうち1若しくはそれ以上に適合し、当該インターフェース規格は、
シリアル・アドバンスド・テクノロジー・アタッチメント(SATA)インターフェース規格と、
シリアル・アタッチド・スモール・コンピュータ・システム・インターフェース(SAS)インターフェース規格と、
周辺機器相互接続エクスプレス(PCIe)インターフェース規格と、
ファイバーチャネル・インターフェース規格と、
イーサネット(登録商標)・インターフェース規格と
を含むものであるシステム。
EC38)EC28記載のシステムにおいて、前記初期読み出しを要求する手段および前記追加読み出しを要求する手段はコントローラを介し、当該コントローラおよび前記フラッシュメモリは、複数の不揮発性記憶構成要素タイプの1つとして実装される記憶サブシステムに含まれ、前記不揮発性記憶構成要素タイプは、
ユニバーサルシリアルバス(USB)記憶構成要素タイプと、
コンパクトフラッシュ(登録商標)(CF)記憶構成要素タイプと、
マルチメディアカード(MMC)記憶構成要素タイプと、
セキュアデジタル(SD)記憶構成要素タイプと、
メモリースティック記憶構成要素タイプと、
xDピクチャーカード記憶構成要素タイプと
を含むものであるシステム。
EC39)EC28記載のシステムにおいて、さらに、
フラッシュメモリインターフェースを介して、前記初期読み出しおよび前記追加読み出しを前記フラッシュメモリにインターフェース接続する手段を有するものであるシステム。
EC40)EC39記載のシステムにおいて、前記フラッシュメモリインターフェースは、
非同期インターフェースと、
同期インターフェースと、
ダブルデータレート(DDR)同期インターフェースと、
オープンNANDフラッシュ・インターフェース(ONFI)互換インターフェースと、
トグルモード互換フラッシュ・インターフェースと
のうち1若しくはそれ以上を有するものであるシステム。
EC41)EC28記載のシステムにおいて、前記データ要求は、ホストからのものであるシステム。
EC42)EC41記載のシステムにおいて、前記ホストは、
コンピュータと、
ワークステーション・コンピュータと、
サーバー・コンピュータと、
ストレージ・サーバーと、
パーソナルコンピュータ(PC)と、
ラップトップ・コンピュータと、
ノートブック・コンピュータと、
ネットブック・コンピュータと、
携帯情報端末(PDA)と、
メディアプレーヤーと、
メディアレコーダーと、
デジタルカメラと、
携帯電話ハンドセットと、
コードレスホン・ハンドセットと、
電子ゲームと
のうち1若しくはそれ以上を有するものであるシステム。
EC43)方法であって、
フラッシュメモリ内の特定の位置に格納されたデータに対する要求の受信に応答して、前記特定の位置における1若しくはそれ以上の初期読み出しを要求する工程と、
前記初期読み出しの完了に応答して、当該初期読み出しの結果に基づく硬判定ベースの低密度パリティ検査(LDPC)復号化により訂正不可能な誤りを検出する工程と、
前記検出に応答して、前記特定の位置における1若しくはそれ以上の追加読み出しを要求する工程と、
前記追加読み出しの完了に応答して、当該追加読み出しの各結果に基づく消失判定LDPC復号化を実行する工程と
を有する方法。
EC44)EC43記載の方法において、前記フラッシュメモリは、シングルレベルセル(SLC)技術のフラッシュメモリを含み、前記初期読み出しは1回であり、前記追加読み出しは2回である方法。
EC45)EC44記載の方法において、前記各追加読み出しは、各々の読み出し電圧におけるものである方法。
EC46)EC45記載の方法において、さらに、
各前記追加読み出しについて各々の電圧指定子を提供する工程を有するものである方法。
EC47)EC46記載の方法において、前記電圧指定子のうち少なくとも1つは、明示的な電圧レベル、複数の所定電圧レベルの1つの識別子、および複数の読み出し要求タイプの1つの一意の識別結果のうちの1つである方法。
EC48)EC43記載の方法において、前記フラッシュメモリは、マルチレベルセル(MLC)技術のフラッシュメモリを含むものである方法。
EC49)EC48記載の方法において、前記各初期読み出しは、各々の読み出し電圧におけるものである方法。
EC50)EC49記載の方法において、さらに、
各前記初期読み出しについて各々の電圧指定子を提供する工程を有するものである方法。
EC51)EC50記載の方法において、前記電圧指定子のうち少なくとも1つは、明示的な電圧レベル、複数の所定電圧レベルの1つの識別子、および複数の読み出し要求タイプの1つの一意の識別結果のうちの1つである方法。
EC52)EC43記載の方法において、前記受信は、複数のインターフェース規格のうち1若しくはそれ以上に適合し、当該インターフェース規格は、
シリアル・アドバンスド・テクノロジー・アタッチメント(SATA)インターフェース規格と、
シリアル・アタッチド・スモール・コンピュータ・システム・インターフェース(SAS)インターフェース規格と、
周辺機器相互接続エクスプレス(PCIe)インターフェース規格と、
ファイバーチャネル・インターフェース規格と、
イーサネット(登録商標)・インターフェース規格と
を含むものである方法。
EC53)EC43記載の方法において、前記初期読み出しを要求する工程および前記追加読み出しを要求する工程はコントローラを介し、当該コントローラおよび前記フラッシュメモリは、複数の不揮発性記憶構成要素タイプの1つとして実装される記憶サブシステムに含まれ、前記不揮発性記憶構成要素タイプは、
ユニバーサルシリアルバス(USB)記憶構成要素タイプと、
コンパクトフラッシュ(登録商標)(CF)記憶構成要素タイプと、
マルチメディアカード(MMC)記憶構成要素タイプと、
セキュアデジタル(SD)記憶構成要素タイプと、
メモリースティック記憶構成要素タイプと、
xDピクチャーカード記憶構成要素タイプと
を含むものである方法。
EC54)EC43記載の方法において、さらに、
フラッシュメモリインターフェースを介して、前記初期読み出しおよび前記追加読み出しを前記フラッシュメモリにインターフェース接続する工程を有するものである方法。
EC55)EC54記載の方法において、前記フラッシュメモリインターフェースは、
非同期インターフェースと、
同期インターフェースと、
ダブルデータレート(DDR)同期インターフェースと、
オープンNANDフラッシュ・インターフェース(ONFI)互換インターフェースと、
トグルモード互換フラッシュ・インターフェースと
のうち1若しくはそれ以上を有するものである方法。
EC56)EC43記載の方法において、前記データ要求は、ホストからのものである方法。
EC57)EC56記載の方法において、前記ホストは、
コンピュータと、
ワークステーション・コンピュータと、
サーバー・コンピュータと、
ストレージ・サーバーと、
パーソナルコンピュータ(PC)と、
ラップトップ・コンピュータと、
ノートブック・コンピュータと、
ネットブック・コンピュータと、
携帯情報端末(PDA)と、
メディアプレーヤーと、
メディアレコーダーと、
デジタルカメラと、
携帯電話ハンドセットと、
コードレスホン・ハンドセットと、
電子ゲームと
のうち1若しくはそれ以上を有するものである方法。
EC58)システムであって、
インターフェースと、
コントローラであって、
フラッシュメモリ内の特定の位置に格納されたデータに対する要求を前記インターフェース経由で受信し、当該要求に応答して前記特定の位置における1若しくはそれ以上の初期読み出しを要求する工程と、
前記初期読み出しの完了に応答して、当該初期読み出しの結果に基づく硬判定ベースの低密度パリティ検査(LDPC)復号化により訂正不可能な誤りを検出する工程と、
前記検出に応答して、前記特定の位置における1若しくはそれ以上の追加読み出しを要求する工程と、
前記追加読み出しの完了に応答して、当該追加読み出しの各結果に基づく消失判定LDPC復号化を実行する工程と
実行可能なものである、前記コントローラと
を有するシステム。
EC59)EC58記載のシステムにおいて、前記フラッシュメモリは、シングルレベルセル(SLC)技術のフラッシュメモリを含み、前記初期読み出しは1回であり、前記追加読み出しは2回であるシステム。
EC60)EC59記載のシステムにおいて、前記各追加読み出しは、各々の読み出し電圧におけるものであるシステム。
EC61)EC60記載のシステムにおいて、前記コントローラは、さらに、
各前記追加読み出しについて各々の電圧指定子を提供する工程を実行可能なものであるシステム。
EC62)EC61記載のシステムにおいて、前記電圧指定子のうち少なくとも1つは、明示的な電圧レベル、複数の所定電圧レベルの1つの識別子、および複数の読み出し要求タイプの1つの一意の識別結果のうちの1つであるシステム。
EC63)EC58記載のシステムにおいて、前記フラッシュメモリは、マルチレベルセル(MLC)技術のフラッシュメモリを有するものであるシステム。
EC64)EC63記載のシステムにおいて、前記各初期読み出しは、各々の読み出し電圧におけるものであるシステム。
EC65)EC64記載のシステムにおいて、前記コントローラは、さらに、
各前記追加読み出しについて各々の電圧指定子を提供する工程を実行可能なものであるシステム。
EC66)EC65記載のシステムにおいて、前記電圧指定子のうち少なくとも1つは、明示的な電圧レベル、複数の所定電圧レベルの1つの識別子、および複数の読み出し要求タイプの1つの一意の識別結果のうちの1つであるシステム。
EC67)EC58記載のシステムにおいて、前記インターフェースは、複数のインターフェース規格のうち1若しくはそれ以上に適合し、当該インターフェース規格は、
シリアル・アドバンスド・テクノロジー・アタッチメント(SATA)インターフェース規格と、
シリアル・アタッチド・スモール・コンピュータ・システム・インターフェース(SAS)インターフェース規格と、
周辺機器相互接続エクスプレス(PCIe)インターフェース規格と、
ファイバーチャネル・インターフェース規格と、
イーサネット(登録商標)・インターフェース規格と
を含むものであるシステム。
EC68)EC58記載のシステムにおいて、前記コントローラおよび前記フラッシュメモリは、複数の不揮発性記憶構成要素タイプの1つとして実装される記憶サブシステムに含まれ、前記不揮発性記憶構成要素タイプは、
ユニバーサルシリアルバス(USB)記憶構成要素タイプと、
コンパクトフラッシュ(登録商標)(CF)記憶構成要素タイプと、
マルチメディアカード(MMC)記憶構成要素タイプと、
セキュアデジタル(SD)記憶構成要素タイプと、
メモリースティック記憶構成要素タイプと、
xDピクチャーカード記憶構成要素タイプと
を含むものであるシステム。
EC69)EC58記載のシステムにおいて、前記インターフェースはホストインターフェースであり、前記初期読み出しおよび前記追加読み出しを前記フラッシュメモリに提供可能なフラッシュメモリインターフェースをさらに有するものであるシステム。
EC70)EC69記載のシステムにおいて、前記フラッシュメモリインターフェースは、
非同期インターフェースと、
同期インターフェースと、
ダブルデータレート(DDR)同期インターフェースと、
オープンNANDフラッシュ・インターフェース(ONFI)互換インターフェースと、
トグルモード互換フラッシュ・インターフェースと
のうち1若しくはそれ以上を有するものであるシステム。
EC71)EC58記載のシステムにおいて、前記インターフェースは、ホストからの前記データ要求を通信できるものであるシステム。
EC72)EC71記載のシステムにおいて、前記ホストは、
コンピュータと、
ワークステーション・コンピュータと、
サーバー・コンピュータと、
ストレージ・サーバーと、
パーソナルコンピュータ(PC)と、
ラップトップ・コンピュータと、
ノートブック・コンピュータと、
ネットブック・コンピュータと、
携帯情報端末(PDA)と、
メディアプレーヤーと、
メディアレコーダーと、
デジタルカメラと、
携帯電話ハンドセットと、
コードレスホン・ハンドセットと、
電子ゲームと
のうち1若しくはそれ以上を有するものであるシステム。
EC73)命令セットが内部に格納された有形のコンピュータ可読媒体であって、前記命令セットが処理要素により実行されると、前記処理要素により、
フラッシュメモリ内の特定の位置に格納されたデータに対する要求の受信に応答して、前記特定の位置における1若しくはそれ以上の初期読み出しを要求する工程と、
前記初期読み出しの完了に応答して、当該初期読み出しの結果に基づく硬判定ベースの低密度パリティ検査(LDPC)復号化により訂正不可能な誤りを検出する工程と、
前記検出に応答して、前記特定の位置における1若しくはそれ以上の追加読み出しを要求する工程と、
前記追加読み出しの完了に応答して、当該追加読み出しの各結果に基づく消失判定LDPC復号化を実行する工程と
を有する動作が実行されるものである
有形のコンピュータ可読媒体。
EC74)EC73記載の有形のコンピュータ可読媒体において、前記フラッシュメモリは、シングルレベルセル(SLC)技術のフラッシュメモリを含み、前記初期読み出しは1回であり、前記追加読み出しは2回である有形のコンピュータ可読媒体。
EC75)EC74記載の有形のコンピュータ可読媒体において、前記各追加読み出しは、各々の読み出し電圧におけるものである有形のコンピュータ可読媒体。
EC76)EC75記載の有形のコンピュータ可読媒体において、前記動作は、さらに、各前記追加読み出しについて各々の電圧指定子を提供する工程を有するものである有形のコンピュータ可読媒体。
EC77)EC76記載の有形のコンピュータ可読媒体において、前記電圧指定子のうち少なくとも1つは、明示的な電圧レベル、複数の所定電圧レベルの1つの識別子、および複数の読み出し要求タイプの1つの一意の識別結果のうちの1つである有形のコンピュータ可読媒体。
EC78)EC73記載の有形のコンピュータ可読媒体において、前記フラッシュメモリは、マルチレベルセル(MLC)技術のフラッシュメモリを含むものである有形のコンピュータ可読媒体。
EC79)EC78記載の有形のコンピュータ可読媒体において、前記各初期読み出しは、各々の読み出し電圧におけるものである有形のコンピュータ可読媒体。
EC80)EC79記載の有形のコンピュータ可読媒体において、前記動作は、さらに、
各前記初期読み出しについて各々の電圧指定子を提供する工程を有するものである有形のコンピュータ可読媒体。
EC81)EC80記載の有形のコンピュータ可読媒体において、前記電圧指定子のうち少なくとも1つは、明示的な電圧レベル、複数の所定電圧レベルの1つの識別子、および複数の読み出し要求タイプの1つの一意の識別結果のうちの1つである有形のコンピュータ可読媒体。
EC82)EC73記載の有形のコンピュータ可読媒体において、前記受信は、複数のインターフェース規格のうち1若しくはそれ以上に適合し、当該インターフェース規格は、
シリアル・アドバンスド・テクノロジー・アタッチメント(SATA)インターフェース規格と、
シリアル・アタッチド・スモール・コンピュータ・システム・インターフェース(SAS)インターフェース規格と、
周辺機器相互接続エクスプレス(PCIe)インターフェース規格と、
ファイバーチャネル・インターフェース規格と、
イーサネット(登録商標)・インターフェース規格と
を含むものである有形のコンピュータ可読媒体。
EC83)EC73記載の有形のコンピュータ可読媒体において、前記処理要素はコントローラに含まれ、当該コントローラおよび前記フラッシュメモリは、複数の不揮発性記憶構成要素タイプの1つとして実装される記憶サブシステムに含まれ、前記不揮発性記憶構成要素タイプは、
ユニバーサルシリアルバス(USB)記憶構成要素タイプと、
コンパクトフラッシュ(登録商標)(CF)記憶構成要素タイプと、
マルチメディアカード(MMC)記憶構成要素タイプと、
セキュアデジタル(SD)記憶構成要素タイプと、
メモリースティック記憶構成要素タイプと、
xDピクチャーカード記憶構成要素タイプと
を有するものである有形のコンピュータ可読媒体。
EC84)EC73記載の有形のコンピュータ可読媒体において、前記初期読み出しおよび前記追加読み出しは、フラッシュメモリインターフェースを介して、前記フラッシュメモリにインターフェース接続されるものである有形のコンピュータ可読媒体。
EC85)EC84記載の有形のコンピュータ可読媒体において、前記フラッシュメモリインターフェースは、
非同期インターフェースと、
同期インターフェースと、
ダブルデータレート(DDR)同期インターフェースと、
オープンNANDフラッシュ・インターフェース(ONFI)互換インターフェースと、
トグルモード互換フラッシュ・インターフェースと
のうち1若しくはそれ以上を有するものである有形のコンピュータ可読媒体。
EC86)EC73記載の有形のコンピュータ可読媒体において、前記データ要求は、ホストからのものである有形のコンピュータ可読媒体。
EC87)EC86記載の有形のコンピュータ可読媒体において、前記ホストは、
コンピュータと、
ワークステーション・コンピュータと、
サーバー・コンピュータと、
ストレージ・サーバーと、
パーソナルコンピュータ(PC)と、
ラップトップ・コンピュータと、
ノートブック・コンピュータと、
ネットブック・コンピュータと、
携帯情報端末(PDA)と、
メディアプレーヤーと、
メディアレコーダーと、
デジタルカメラと、
携帯電話ハンドセットと、
コードレスホン・ハンドセットと、
電子ゲームと
のうち1若しくはそれ以上を有するものである有形のコンピュータ可読媒体。
EC88)システムであって、
フラッシュメモリの特定の位置における2つの消失判定読み出しを要求する手段と、
前記2つの消失判定読み出しの結果に基づいて、消失ベースの低密度パリティ検査(LDPC)復号化を実行する手段と
を有するシステム。
EC89)EC88記載のシステムにおいて、さらに、
前記フラッシュメモリ内の前記特定の位置に格納されたデータに対する要求に応答して、前記特定の位置における硬判定読み出しを要求する手段と、
前記硬判定読み出しの結果に基づいて、硬判定ベースのLDPC復号化を実行する手段と
を有し、
前記2つの消失判定読み出しを要求する手段は、前記硬判定ベースのLDPC復号化を実行する手段の訂正不可能な誤り結果に応答して、前記2つの消失判定読み出しを要求するものである
システム。
EC90)EC88記載のシステムにおいて、さらに、
前記消失ベースのLDPC復号化を実行する手段の失敗に応答して、前記フラッシュメモリの前記特定の位置において1若しくはそれ以上の軟判定読み出しを要求する手段と、
前記軟判定読み出しの結果に基づいて、軟判定LDPC復号化を実行する手段と
を有するものであるシステム。
EC91)EC88記載のシステムにおいて、さらに、
前記フラッシュメモリの少なくとも一部を有するものであるシステム。
EC92)EC91記載のシステムにおいて、前記フラッシュメモリは、マルチレベルセル(MLC)技術を有するものであるシステム。
EC93)方法であって、
フラッシュメモリの特定の位置における2つの消失判定読み出しを要求する工程と、
前記2つの消失判定読み出しの結果に基づいて、消失ベースの低密度パリティ検査(LDPC)復号化を実行する工程と
を有する方法。
EC94)EC93記載の方法において、さらに、
前記フラッシュメモリ内の特定の位置に格納されたデータに対する要求に応答して、前記特定の位置における硬判定読み出しを要求する工程と、
前記硬判定読み出しの結果に基づいて、硬判定ベースのLDPC復号化を実行する工程と
を有し、
前記2つの消失判定読み出しを要求する工程は、前記硬判定ベースのLDPC復号化の訂正不可能な誤り結果に応答するものである
方法。
EC95)EC93記載の方法において、さらに、
前記消失ベースのLDPC復号化の失敗に応答して、前記フラッシュメモリの前記特定の位置において1若しくはそれ以上の軟判定読み出しを要求する工程と、
前記軟判定読み出しの結果に基づいて、軟判定LDPC復号化を実行する工程と
を有するものである方法。
EC96)EC93記載の方法において、さらに、
前記フラッシュメモリの少なくとも一部を有するものである方法。
EC97)EC96記載の方法において、前記フラッシュメモリは、マルチレベルセル(MLC)技術を有するものである方法。
EC98)システムであって、
フラッシュメモリの特定の位置における2つの消失判定読み出しを要求するように動作可能なコントローラと、
前記2つの消失判定読み出しの結果に応答して動作可能な消失ベースの低密度パリティ検査(LDPC)デコーダと
を有するシステム。
EC99)EC98記載のシステムにおいて、さらに、
前記硬判定読み出しの結果に応答して動作可能な硬判定ベースのLDPCデコーダ
を有し、
前記コントローラは、さらに、前記フラッシュメモリ内の特定の位置に格納されたデータに対する要求に応答して、前記特定の位置における前記硬判定読み出しを要求するように動作可能であり、
前記2つの消失判定読み出しを要求する工程は、前記硬判定ベースのLDPCデコーダの訂正不可能な誤り結果に応答するものである
システム。
EC100)EC98記載のシステムにおいて、さらに、
1若しくはそれ以上の軟判定読み出しの結果に応答して動作可能な軟判定LDPCデコーダ
を有し、
前記コントローラは、さらに、前記消失ベースのLDPCデコーダの失敗に応答して、前記フラッシュメモリの前記特定の位置における前記軟判定読み出しを要求するように動作可能である
システム。
EC101)EC98記載のシステムにおいて、さらに、
前記フラッシュメモリの少なくとも一部を有するものであるシステム。
EC102)EC101記載のシステムにおいて、前記フラッシュメモリは、マルチレベルセル(MLC)技術を有するものであるシステム。
EC103)システムであって、
フラッシュメモリの特定の位置における第1および第2の読み出しを要求し、当該要求の応答として第1および第2の結果をそれぞれ受信する手段と、
前記第1および第2の結果に基づいて、消失ベースの低密度パリティ検査(LDPC)復号化を実行する手段と
を有するシステム。
EC104)EC103記載のシステムにおいて、さらに、
前記フラッシュメモリ内の前記特定の位置に格納されたデータに対する要求に応答して、前記特定の位置における第3の読み出しを要求する手段と
を有するものであるシステム。
EC105)EC104記載のシステムにおいて、前記第3の読み出しは、前記第1および第2の読み出しに先行し、当該第1および第2の読み出しは、前記第3の読み出しから生じる訂正不可能な誤りに応答して要求されるものであるシステム。
EC106)EC105記載のシステムにおいて、さらに、
前記第3の読み出しの結果に基づいて、硬判定ベースのLDPC復号化を実行する手段を有するものであるシステム。
EC107)EC106記載のシステムにおいて、前記硬判定ベースのLDPC復号化を実行する手段は、前記訂正不可能な誤りが起こったかどうかを決定するものであるシステム。
EC108)EC103記載のシステムにおいて、前記フラッシュメモリは、マルチレベルセル(MLC)技術を有するものであるシステム。
EC109)システムであって、
コンピューティングホストに対するインターフェースと、
フラッシュメモリに対するインターフェースと、
コントローラであって、
前記コンピューティングホストからデータ要求を受信し、
前記データ要求に応答して、前記フラッシュメモリインターフェースに前記フラッシュメモリの特定の位置における第1および第2の読み出しを要求させ、当該第1および第2の読み出し各々の応答として前記フラッシュメモリから第1および第2の結果をそれぞれ受信し、
前記第1および第2の結果に基づいて、消失ベースの低密度パリティ検査(LDPC)復号化を実行するように動作可能なものである
前記コントローラと
を有するシステム。
EC110)EC109記載のシステムにおいて、前記コントローラは、さらに、前記コンピューティングホストとのインターフェースを介して、前記フラッシュメモリ内の特定の位置に格納されたデータに対する要求を受信し、当該要求に応答して前記特定の位置における前記第3の読み出しを要求するように動作可能なものであるシステム。
EC111)EC110記載のシステムにおいて、前記第3の読み出しは、前記第1および第2の読み出しに先行し、当該第1および第2の読み出しは、前記第3の読み出しから生じる訂正不可能な誤りに応答して要求されるものであるシステム。
EC112)EC109記載のシステムにおいて、さらに、
前記コンピューティングホストインターフェースに連結されたコンピューティングホストを有するものであるシステム。
EC113)EC109記載のシステムにおいて、さらに、
前記フラッシュメモリインターフェースに連結されたフラッシュメモリを有するものであるシステム。
EC114)EC113記載のシステムにおいて、前記フラッシュメモリは、マルチレベルセル(MLC)技術を有するものであるシステム。
EC115)EC113記載のシステムにおいて、前記第1および第2の読み出しに対する要求は、各々の電圧指定子を提供するものであるシステム。
EC116)EC115記載のシステムにおいて、前記電圧指定子のうち少なくとも1つは、明示的な電圧レベル、複数の所定電圧レベルの1つの識別子、および複数の読み出し要求タイプの1つの一意の識別結果のうちの1つであるシステム。
EC117)EC109記載のシステムにおいて、前記インターフェースおよび前記コントローラは、ソリッドステートディスク(SSD)に含まれるものであるシステム。
EC118)EC109記載のシステムにおいて、さらに、
前記フラッシュメモリおよび記憶サブシステム制御要素を有し、前記記憶サブシステム制御要素は前記インターフェースおよび前記コントローラを有し、前記フラッシュメモリおよび前記記憶サブシステム制御要素は、複数の不揮発性記憶構成要素タイプの1つとして実装され、前記不揮発性記憶構成要素タイプは、
ユニバーサルシリアルバス(USB)記憶構成要素タイプと、
コンパクトフラッシュ(登録商標)(CF)記憶構成要素タイプと、
マルチメディアカード(MMC)記憶構成要素タイプと、
セキュアデジタル(SD)記憶構成要素タイプと、
メモリースティック記憶構成要素タイプと、
xDピクチャーカード記憶構成要素タイプと
を有するものであるシステム。
EC119)EC109記載のシステムにおいて、前記コンピューティングホストに対するインターフェースは、複数のインターフェース規格のうち1若しくはそれ以上に適合し、当該インターフェース規格は、
シリアル・アドバンスド・テクノロジー・アタッチメント(SATA)インターフェース規格と、
シリアル・アタッチド・スモール・コンピュータ・システム・インターフェース(SAS)インターフェース規格と、
周辺機器相互接続エクスプレス(PCIe)インターフェース規格と、
ファイバーチャネル・インターフェース規格と、
イーサネット(登録商標)・インターフェース規格と
を有するものであるシステム。
EC120)方法であって、
フラッシュメモリの特定の位置における第1および第2の読み出しを要求し、当該要求の応答として第1および第2の結果をそれぞれ受信する工程と、
前記第1および第2の結果に基づいて、消失ベースの低密度パリティ検査(LDPC)復号化を実行する工程と
を有する方法。
EC121)EC120記載の方法において、さらに、
前記消失ベースのLDPC復号化に基づいて、前記特定の位置に格納されたデータに対する要求を受け取った場合、それに応答して、データを返す工程を有するものである方法。
EC122)EC120記載の方法において、前記フラッシュメモリは、シングルレベルセル(SLC)技術を有するものである方法。
EC123)EC120記載の方法において、前記消失ベースのLDPC復号化の少なくとも一部は、ハードウェア内で実行されるものである方法。
EC124)EC123記載の方法において、前記ハードウェアは、少なくとも1つのハードウェア排他的OR回路を有するものである方法。
EC125)命令セットが内部に格納されたコンピュータ可読媒体であって、前記命令セットが処理要素により実行されると、前記処理要素により、
フラッシュメモリの特定の位置における第1および第2の読み出しを要求し、当該要求の応答として第1および第2の結果をそれぞれ受信する工程と、
前記第1および第2の結果に基づいて、消失ベースの低密度パリティ検査(LDPC)復号化を実行する工程と
を有する動作が実行されるものである、コンピュータ可読媒体。
EC126)命令セットが内部に格納されたコンピュータ可読媒体であって、前記命令セットが処理要素により実行されると、前記処理要素により、
デコーダ選択基準を収集する工程であって、前記デコーダ選択基準は、プログラムサイクルまたは消去サイクルの数と、読み出しディスターブイベントの数と、書き込みディスターブイベントの数と、訂正可能な誤りの数と、訂正不可能な誤りの数とのうちのいずれか1つ若しくはそれ以上を有するものである、前記収集する工程と、
前記デコーダ選択基準に少なくとも部分的に基づき、複数のデコーダタイプの1つを動的に選択するように命令する工程であって、前記デコーダタイプは、硬判定デコーダタイプと消失ベースのデコーダタイプとを有するものである、前記命令する工程と、
前記選択されたデコーダタイプの指標をフラッシュメモリコントローラ回路に提供する工程であって、前記フラッシュメモリコントローラ回路は、前記硬判定デコーダタイプおよび前記消失ベースのデコーダタイプにそれぞれ対応するデコーダ回路を有するものである、前記提供する工程と
を有する動作が実行されるものである、コンピュータ可読媒体。
EC127)EC126記載のコンピュータ可読媒体において、前記動作は、さらに、前記フラッシュメモリコントローラ回路を選択的に制御してフラッシュメモリの所定の位置における1若しくはそれ以上の読み出しを実行する工程を有し、前記1若しくはそれ以上の読み出しの各々は異なる読み出し電圧を使用するものであるコンピュータ可読媒体。
EC128)EC126記載のコンピュータ可読媒体において、前記デコーダタイプは、さらに、軟判定デコーダタイプを有し、前記フラッシュメモリコントローラ回路は、さらに、前記軟判定デコーダタイプに対応したデコーダ回路を有するものであるコンピュータ可読媒体。
EC129)EC126記載のコンピュータ可読媒体において、前記デコーダタイプのうち1若しくはそれ以上は、低密度パリティ検査(LDPC)符号化に少なくとも部分的に基づくものであるコンピュータ可読媒体。
EC130)EC126記載のコンピュータ可読媒体において、前記デコーダタイプはすべて、低密度パリティ検査(LDPC)符号化に少なくとも部分的に基づくものであるコンピュータ可読媒体。
EC131)システムであって、
フラッシュ装置の生ビット誤り率(BER)が所定のレベルより高い場合、消失ベースの低密度パリティ検査(LDPC)復号化を実行する手段と、
前記BERが所定のレベル未満である場合、硬判定LDPC復号化を実行する手段と
を有するシステム。
EC132)EC131記載のシステムにおいて、前記手段の双方は、ソリッドステートディスク(SSD)に含まれるハードウェア論理ブロックにより少なくとも部分的に実装されるものであるシステム。
EC133)システムであって、
フラッシュ装置がマルチレベルセル(MLC)技術を有する場合、消失ベースの低密度パリティ検査(LDPC)復号化を実行する手段と、
前記フラッシュ装置がシングルレベルセル(SLC)技術を有する場合、硬判定LDPC復号化を実行する手段と
を有するシステム。
EC134)EC133記載のシステムにおいて、前記手段の双方は、ソリッドステートディスク(SSD)に含まれるハードウェア論理ブロックにより少なくとも部分的に実装されるものであるシステム。
EC135)方法であって、
フラッシュ装置の生ビット誤り率(BER)が所定のレベルより高い場合、消失ベースの低密度パリティ検査(LDPC)復号化を実行する工程と、
前記BERが所定のレベル未満である場合、硬判定LDPC復号化を実行する工程と
を有する方法。
EC136)EC135記載の方法において、前記復号化工程は、ソリッドステートディスク(SSD)に含まれるハードウェア論理ブロックにより少なくとも部分的に実施されるものである方法。
EC137)方法であって、
フラッシュ装置がマルチレベルセル(MLC)技術を有する場合、消失ベースの低密度パリティ検査(LDPC)復号化を実行する工程と、
前記フラッシュ装置がシングルレベルセル(SLC)技術を有する場合、硬判定LDPC復号化を実行する工程と
を有する方法。
EC138)EC137記載の方法において、前記復号化工程は、ソリッドステートディスク(SSD)に含まれるハードウェア論理ブロックにより少なくとも部分的に実施されるものである方法。
EC139)システムであって、
フラッシュメモリの所定の位置における第1の読み出しを要求し、当該要求の応答として第1の結果を受信する手段と、
硬判定低密度パリティ検査(LDPC)デコーダに基づいて前記第1の結果が訂正不可能な誤りを有する場合、前記フラッシュメモリの前記所定の位置における第2および第3の読み出しを要求し、当該要求の応答として第2および第3の結果をそれぞれ受信する手段と、
少なくとも前記第2および前記第3の結果に基づいて、消失ベースのLDPC復号化を実行する手段と
を有するシステム。
EC140)EC139記載のシステムにおいて、前記第1の読み出しを要求する手段は、前記所定の位置におけるデータの全部または任意部分に対する要求に応答したものであるシステム。
EC141)EC139記載のシステムにおいて、さらに、
前記所定の位置におけるデータの全部または任意部分を要求する手段
を有するものであるシステム。
EC142)システムであって、
コンピューティングホストに対するインターフェースと、
フラッシュメモリに対するインターフェースと、
コントローラであって、
データ要求を受信し、
前記データ要求に応答して、前記フラッシュメモリインターフェースに前記フラッシュメモリインターフェースに連結された前記フラッシュメモリの所定の位置における第1の読み出しを要求させ、当該第1の読み出しの応答として前記フラッシュメモリから第1の結果を受信し、
硬判定低密度パリティ検査(LDPC)デコーダに基づいて、前記第1の結果が訂正不可能な誤りを有するか決定し、訂正不可能な誤りを有する場合は、前記フラッシュメモリの前記所定の位置における第2および第3の読み出しを要求し、前記第2および第3の読み出し各々の応答として、前記フラッシュメモリから第2および第3の結果をそれぞれ受信し、
少なくとも前記第2および前記第3の結果に基づいて、消失ベースのLDPC復号化を実行するように動作可能なものである
前記コントローラと
を有するシステム。
EC143)EC142記載のシステムにおいて、前記コンピューティングホストインターフェース、前記フラッシュメモリインターフェース、および前記コントローラは、ソリッドステートディスク(SSD)に含まれるものであるシステム。
EC144)EC142記載のシステムにおいて、前記コンピューティングホストインターフェース、前記フラッシュメモリインターフェース、および前記コントローラは、不揮発性記憶構成要素に含まれるものであるシステム。
EC145)EC144記載のシステムにおいて、前記不揮発性記憶構成要素は、ユニバーサルシリアルバス(USB)記憶構成要素タイプと、コンパクトフラッシュ(登録商標)(CF)記憶構成要素タイプと、マルチメディアカード(MMC)記憶構成要素タイプと、セキュアデジタル(SD)記憶構成要素タイプと、メモリースティック記憶構成要素タイプと、xDピクチャーカード記憶構成要素タイプとのうち1若しくはそれ以上を含むものであるシステム。
EC146)EC142記載のシステムにおいて、さらに、
前記コンピューティングホストインターフェースに連結されたコンピューティングホストを有するものであるシステム。
EC145)EC144記載のシステムにおいて、前記コンピューティングホストは、コンピュータと、ワークステーション・コンピュータと、サーバー・コンピュータと、ストレージ・サーバーと、パーソナルコンピュータ(PC)と、ラップトップ・コンピュータと、ノートブック・コンピュータと、ネットブック・コンピュータと、携帯情報端末(PDA)と、メディアプレーヤーと、メディアレコーダーと、デジタルカメラと、携帯電話ハンドセットと、コードレスホン・ハンドセットと、および電子ゲームとのうちの1つ、または任意の組み合わせであるシステム。
EC148)EC142記載のシステムにおいて、さらに、
前記フラッシュメモリインターフェースに連結されたフラッシュメモリを有するものであるシステム。
EC149)方法であって、
フラッシュメモリの位置における第1の読み出しを要求し、当該要求に応答して第1の結果を受信する工程と、
硬判定低密度パリティ検査(LDPC)デコーダに基づいて前記第1の結果が訂正不可能な誤りを有する場合、前記フラッシュメモリの前記所定の位置における第2および第3の読み出しを要求し、当該要求に応答して第2および第3の結果をそれぞれ受信する工程と、
少なくとも前記第2および前記第3の結果に基づいて、消失ベースのLDPC復号化を実行する工程と
を有する方法。
EC150)EC149記載の方法において、前記第1の読み出しを要求する工程は、前記所定の位置におけるデータの全部または任意部分に対する要求に応答したものである方法。
EC151)EC149記載の方法において、さらに、
前記所定の位置におけるデータの全部または任意部分を要求する工程を有するものである方法。
EC152)命令セットが内部に格納されたコンピュータ可読媒体であって、前記命令セットが処理要素により実行されると、前記処理要素により、
フラッシュメモリの所定の位置における第1の読み出しを要求し、当該要求の応答として第1の結果を受信する工程と、
硬判定低密度パリティ検査(LDPC)デコーダに基づいて前記第1の結果が訂正不可能な誤りを有する場合、前記フラッシュメモリの前記所定の位置における第2および第3の読み出しを要求し、当該要求の応答として第2および第3の結果をそれぞれ受信する工程と、
少なくとも前記第2および前記第3の結果に基づて、消失ベースのLDPC復号化を実行する工程と
を有する動作が実行される、コンピュータ可読媒体。
EC153)EC149記載のコンピュータ可読媒体において、前記第1の読み出しを要求する工程は、前記位置に格納されたデータに対する要求に応答したものであるコンピュータ可読媒体。
EC154)EC149記載のコンピュータ可読媒体において、前記動作は、前記消失ベースのLDPC復号化に少なくとも部分的に基づき、前記位置に格納されたデータの全部または任意部分を提供する工程をさらに有するものであるコンピュータ可読媒体。
システム
図1Aは、低密度パリティ検査(LDPC)符号ベースのフラッシュメモリアクセスを使ったソリッドステートディスク(SSD)コントローラを含むSSDの一実施形態の詳細を一部選んで例示した図である。SSDコントローラ100は、1若しくはそれ以上の外部インターフェース110を介して、ホスト(図示せず)に通信可能に連結されている。種々の実施形態によれば、外部インターフェース110は、SATAインターフェース、SASインターフェース、PCIeインターフェース、ファイバーチャネルインターフェース、イーサネット(登録商標)インターフェース(例えば、10ギガビットイーサネット(登録商標))、以上のうち任意のインターフェースの非標準バージョン、カスタムインターフェース、または記憶装置および/または通信装置および/またはコンピュータ装置を相互接続するため使用される他の任意タイプインターフェースのうち1若しくはそれ以上である。例えば、一部の実施形態では、SSDコントローラ100にSATAインターフェースおよびPCIeインターフェースが含まれる。
さらに、SSDコントローラ100は、1若しくはそれ以上の装置インターフェース190を介して、1若しくはそれ以上の記憶装置、例えばフラッシュ装置192を含む不揮発性メモリ199と通信可能に連結されている。種々の実施形態によれば、外部インターフェース190は、非同期インターフェース、同期インターフェース、DDR同期インターフェース、ONFI 2.2またはONFI 3.0互換インターフェースなどのONFI互換インターフェース、トグルモード互換フラッシュインターフェース、以上のうち任意のインターフェースの非標準バージョン、カスタムインターフェース、または記憶装置に接続するため使用される他の任意タイプインターフェースのうち1若しくはそれ以上である。
フラッシュ装置192は、一部の実施形態において、1若しくはそれ以上の個々のフラッシュダイ194を有する。フラッシュ装置192の特定の1タイプによれば、特定のフラッシュ装置192内の複数のフラッシュダイ194は、任意選択的および/または選択的に、並列アクセス可能である。フラッシュ装置192は、SSDコントローラ100に通信可能に連結できる記憶装置の単なる1タイプを表したものである。種々の実施形態では、任意タイプの記憶装置、例えばSLC NAND型フラッシュメモリ、MLC NAND型フラッシュメモリ、NOR型フラッシュメモリ、読み出し専用メモリ、静的ランダムアクセスメモリ、動的ランダムアクセスメモリ、強磁性メモリ、相変化メモリ、レーストラックメモリ、あるいは他の任意タイプのメモリ装置または記憶媒体を使用できる。
種々の実施形態によれば、装置インターフェース190は、バスごとに1若しくはそれ以上のフラッシュ装置192を伴った1若しくはそれ以上のバス、バスごとに1若しくはそれ以上のフラッシュ装置192を伴った1若しくはそれ以上のバスグループのうち1グループ内のバスが全般的に並列アクセスされるもの、または装置インターフェース192上の他の任意のフラッシュ装置190構成として構成される。
引き続き図1Aにおいて、SSDコントローラ100は、1若しくはそれ以上のモジュール、例えばホストインターフェース111、データ処理121、バッファ131、マップ141、リサイクラ151、ECC 161、装置インターフェース論理191、およびCPU 171を有する。図1Aに例示したこれらの具体的なモジュールおよび相互接続は、単なる一実施形態を表したものであり、これらモジュールのほか図示していない追加モジュールの一部または全部の構成および相互接続も多数考えられる。第1の例では、一部の実施形態において、2若しくはそれ以上のホストインターフェース111がデュアルポーティングを提供する。第2の例では、一部の実施形態において、データ処理121および/またはECC 161がバッファ131と組み合わされる。第3の例では、一部の実施形態において、ホストインターフェース111がバッファ131に直結され、バッファ131に格納されたデータをデータ処理121が任意選択的および/または選択的に操作する。第4の例では、一部の実施形態において、装置インターフェース論理191がバッファ131に直結され、バッファ131に格納されたデータをECC 161が任意選択的および/または選択的に操作する。
ホストインターフェース111は、外部インターフェース110経由でコマンドおよび/またはデータを送受信し、一部の実施形態では、タグ追跡113により個々のコマンドの進捗状況を追跡する。例えば、一部の実施形態において、ホストインターフェース111はSATAプロトコルと互換性があり、NCQコマンドを使って最高32まで保留中コマンドを有することができ、その各々が0〜31の数で表される一意のタグを伴う。一部の実施形態において、タグ追跡113は、外部インターフェース110経由で受信されたコマンドに関する外部タグを、SSDコントローラ100による処理中、前記コマンドの追跡に使用される内部タグに関連付けることができる。
種々の実施形態によれば、データ処理121は、任意選択的および/または選択的に、バッファ131および外部インターフェース110間で送信されるデータの一部または全部を処理し、かつ、データ処理121は、任意選択的および/または選択的に、バッファ131に格納されたデータを処理し、あるいは、データ処理121は、これらデータ処理のいずれか一方を行う。一部の実施形態において、データ処理121は、1若しくはそれ以上のエンジン123を使って、暗号化、解読、圧縮、展開、フォーマット、リフォーマット、トランスコード、および他の任意のデータ処理および/または操作タスクのうち1若しくはそれ以上を実行する。
バッファ131は、外部インターフェース110と装置インターフェース190との間で送信されるデータを格納する。また、一部の実施形態において、バッファ131は、フラッシュ装置192の管理用にSSDコントローラ100が使用するシステムデータ、例えばマップテーブルの一部または全部も格納する。種々の実施形態において、バッファ131は、データの一時記憶に使用されるメモリ137、バッファ131に出入りするデータの移動を制御するため使用されるDMA 133、より高レベルの誤り訂正機能、例えば複数のフラッシュ装置192および/またはフラッシュダイ194にわたり実装されるRAIDを提供する上で使用されるECC−X 135、および他のデータ移動および/または操作機能のうち、1若しくはそれ以上を有する。
種々の実施形態によれば、ECC 161は、任意選択的および/または選択的に、バッファ131および装置インターフェース190間で送信されるデータの一部または全部を処理し、かつ、ECC 161は、任意選択的および/または選択的に、バッファ131に格納されたデータを処理し、あるいは、ECC 161は、これらデータ処理のいずれか一方を行う。一部の実施形態では、ECC 161は、CRC符号、ハミング符号、RS符号、BCH符号、LDPC符号、ビタビ符号、トレリス符号、硬判定符号、軟判定符号、消失ベースの符号、任意の誤り検出および/または訂正符号、および以上の任意の組み合わせのうち1若しくはそれ以上を実施する。一部の実施形態では、硬判定、軟判定、および消失判定ベースのデコーダ169で概念的に例示したように、1若しくはそれ以上のデコーダ(例えば、LDPCデコーダ)がECC 161に含まれる。
装置インターフェース論理191は、装置インターフェース190を介してフラッシュ装置192を制御する。装置インターフェース論理191は、フラッシュ装置192のプロトコルに基づき、フラッシュ装置192とデータを送受信できる。装置インターフェース論理191には、装置インターフェース190を介してフラッシュ装置192の制御を選択的に順序付けするスケジューリング193が含まれる。例えば一部の実施形態において、スケジューリング193は、フラッシュ装置192の操作をキューでき、利用可能な個々のフラッシュ装置192(またはフラッシュダイ194)の操作を選択的に送信することができる。
マップ141は、外部インターフェース110で使用されるデータアドレス指定と装置インターフェース190で使用されるデータアドレス指定との間の変換を行うことができる。例えば、一部の実施形態において、外部インターフェース110で使用されるLBAは、1若しくはそれ以上のフラッシュダイ194をターゲットとしたブロックアドレスおよび/またはページアドレスに、マップ141によって変換される。一部の実施形態において、マップ141の粒度は固定され、例えば、まず外部インターフェース110で使用される固定サイズの論理ブロックがマッピングされ、次に、装置インターフェース190で使用される固定サイズのブロックがマッピングされる。他の実施形態では、マップ141の粒度が変更可能であり、外部インターフェース110または装置インターフェース190で使用されるすべてのブロックが必ずしも同じサイズであるとは限らない。
一部の実施形態では、マップ141が、テーブル143を使って、外部インターフェース110で使用されるアドレスと、装置インターフェース190で使用されるデータアドレス指定との間の変換を実行および/またはルックアップする。種々の実施形態によれば、テーブル143は、1レベルのマップ、2レベルのマップ、複数レベルのマップ、マップキャッシュ、圧縮されたマップ、1つのアドレス空間から別のアドレス空間への任意タイプのマッピング、および以上の任意の組み合わせのうち1若しくはそれ以上である。種々の実施形態によれば、テーブル143は、静的ランダムアクセスメモリ、動的ランダムアクセスメモリ、不揮発性メモリ(例えば、フラッシュメモリ)、キャッシュメモリ、オンチップメモリ、オフチップメモリ、および以上の任意の組み合わせのうち1若しくはそれ以上を含む。
一部の実施形態では、リサイクラ151がガベージコレクションを行う。例えば、一部の実施形態では、消去して再び書き込み可能にしなければならないブロックがフラッシュ装置192に含まれる。リサイクラ151は、フラッシュ装置192のどの部分が活発に使用されているかを、例えばマップ141が維持するマップをスキャンして決定し、フラッシュ装置192で使用されていない部分を消去して書き込み可能にすることができる。さらに別の実施形態において、リサイクラ151は、フラッシュ装置192内に格納されたデータを移動させることにより、フラッシュ装置192で連続して書き込み可能な部分を増やすことができる。
CPU 171は、SSDコントローラ100の種々の部分を制御する。CPU 171には、CPUコア172が含まれる。CPUコア172は、種々の実施形態によれば、1若しくはそれ以上のシングルコアまたはマルチコアのプロセッサである。CPUコア172内の個々のプロセッサコアは、一部の実施形態において、マルチスレッド式である。CPUコア172には、命令および/またはデータキャッシュおよび/またはメモリが含まれる。例えば、前記命令メモリには、CPUコア172がソフトウェア(場合により、ファームウェアと呼ばれる)を実行してSSDコントローラ100を制御できるようにする命令が含まれる。一部の実施形態では、CPUコア172により実行されるファームウェアの一部または全部が、フラッシュ装置192に格納される。
種々の実施形態において、CPU 171は、さらに、外部インターフェース110経由で受信されたコマンドを当該コマンドの進行中に追跡および制御するコマンド管理173と、バッファ131の割り当ておよび使用を制御するバッファ管理175と、マップ141を制御する変換管理177と、データアドレス指定の一貫性を制御し外部データアクセスおよびリサイクルデータアクセス間などの競合を回避するコヒーレンシ管理179と、装置インターフェース論理191を制御する装置管理181と、任意選択で他の管理ユニットとを含む。種々の実施形態によれば、CPU 171により実行される前記管理機能の一部または全部が、ハードウェア、ソフトウェア(例えばCPUコア172で、または外部インターフェース110経由で接続されたホストで実行されるソフトウェア)、またはハードウェアとソフトウェアの任意の組み合わせにより制御および/または管理され、あるいは、CPU 171により実行される前記管理機能でこれらに制御および/または管理されるものは、まったくない。
一部の実施形態において、CPU 171は、他の管理タスク、例えば性能統計量を収集および/または報告する工程と、SMARTを実施する工程と、電源シーケンスを制御する工程と、電力消費量を制御および/または監視および/または調整する工程と、電源障害に対処する工程と、クロックレートを制御および/または監視および/または調整する工程と、他の管理タスクとのうち1若しくはそれ以上を実行することができる。
種々の実施形態は、SSDコントローラ100と同様なコンピューティングホスト・フラッシュメモリ・コントローラを有し、そのコントローラは、ホストインターフェース111および/または外部インターフェース110の適合などにより種々のコンピューティングホストと動作互換性がある。前記種々のコンピューティングホストとしては、コンピュータ、ワークステーション・コンピュータ、サーバー・コンピュータ、ストレージ・サーバー、PC、ラップトップ・コンピュータ、ノートブック・コンピュータ、ネットブック・コンピュータ、PDA、メディアプレーヤー、メディアレコーダー、デジタルカメラ、携帯電話ハンドセット、コードレスホン・ハンドセット、および電子ゲームのうちの1つ、または任意の組み合わせなどがある。
図1Bは、図1AのSSDを含むシステムの一実施形態の詳細を一部選んで例示したものである。SSD 101には、装置インターフェース190を介して不揮発性メモリ199に連結されたSSDコントローラ100が含まれる。このSSDは、外部インターフェース110を介してホスト102に連結されている。

図1Cは、図1AのSSDを含むシステムの一実施形態の詳細を一部選んで例示したものである。図1Bのように、SSD 101には、装置インターフェース190を介して不揮発性メモリ199に連結されたSSDコントローラ100が含まれる。当該SSDは、外部インターフェース110経由でホスト102に連結されており、前記外部インターフェース110は、中間コントローラ103、次いで中間インターフェース104を介してホスト102に連結されている。種々の実施形態において、SSDコントローラ100は、他のコントローラの1若しくはそれ以上の中間レベル、例えばRAIDコントローラを介して前記ホストに連結される。
種々の実施形態では、SSDコントローラおよび/またはコンピューティングホストコントローラを1若しくはそれ以上の不揮発性メモリと組み合わせたものが、不揮発性記憶構成要素、例えばUSB記憶構成要素、CF記憶構成要素、MMC記憶構成要素、SD記憶構成要素、メモリースティック記憶構成要素、およびxD記憶構成要素として実装される。
コマンド管理173の抽象的なレベルにおいて、「読み出し」コマンドは1若しくはそれ以上の読み出し工程を開始し、不揮発性メモリ199から情報を読み出す。それより低いレベルのSLCおよびMLC文脈において用語「読み出し」とは、単一の読み出し電圧を有するセルレベルの読み出しをいう。一部の実施形態において、フラッシュメモリは、当該フラッシュメモリ外部からの明示的な制御なしで、例えば、異なる電圧での読み出しが当該フラッシュメモリ内に「隠された」状態で、複数セルレベルの読み出しを異なる読み出し電圧にて(すべて同じ指定読み出しアドレスで)実行する。他の実施形態では、前記フラッシュメモリの外部にあり(装置管理181レベルで動作する)制御エージェントにより、複数セルレベルでの読み出しが異なる読み出し電圧で行われるよう明示的に指示が行われる。種々の実施形態において、前記複数セルレベルの読み出しは、SLCおよび/またはMLCセルについて軟判定および/または消失判定情報を得るための、かつ、MLCセルについて硬判定情報を得るための(例えば、MLCセルごとに2ビットの読み出しを3つ)、付加的および/または任意選択的な読み出しであり、あるいはこれらの任意の組み合わせのための付加的および/または任意選択的な読み出しである。
明示的に修飾された場合を除き、「読み出し電圧」の制御、設定、または調整とは、1若しくはそれ以上の実際の読み出し電圧レベルまたは複数の実際の読み出し電圧レベルのシーケンス選択肢を表す1若しくはそれ以上の電圧指定子などにより、直接または間接に読み出し電圧を制御または設定することを広義にいう。種々の実施形態では、前記電圧指定子を提供する制御エージェントが実際の読み出し電圧レベルに関する知識を有するが、他の種々の実施形態において、制御エージェントは実際の読み出し電圧レベルに関する知識を有さない。用語「読み出し電圧」および「検出電圧」は同義的に使用される。
SLC操作
フラッシュメモリからの硬判定情報(例えば、格納されたビットごとに1ビット)だけを入力として使用する一部の文字ベースRSまたはBCHデコーダと異なり、一部のLDPCデコーダは、軟情報を使って誤り訂正の改善を可能にすることができる。これを受け、誤り訂正性能を高めるよう、軟判定情報(例えば、格納されたビットごとに1を超える(複数の)ビット)がフラッシュメモリから読み出される。SLCは、フラッシュメモリからの硬判定または軟判定情報の取得方法を示す一例として使用されている。この技術は、MLCにも同様に適用される。フラッシュメモリから硬判定情報を得るには、図2Aに例示するように、プログラムされた電圧tで1回だけ読み出しが行われる(読み出し閾値電圧290)。フラッシュメモリから2ビットの軟判定情報を得るには、図2Bに例示するように、3つの異なる電圧(t−1、t、およびt)で3回の読み出しが行われる(それぞれ読み出し閾値電圧292、読み出し閾値電圧290、読み出し閾値電圧291)。前記フラッシュメモリは、読み出し用の電圧を設定する能力を提供する。前記軟判定情報を得るには、各々の電圧を伴う複数の読み出しが使用される。
一部の実施形態および/または使用シナリオでは、軟判定情報を読み出すとフラッシュメモリのアクセス時間が増大する(例えば、図2Aおよび図2Bを参照して説明したように3倍)。本明細書で説明する技術では、一部の実施形態および/または使用シナリオにおいて、アクセス効率、電力、および待ち時間のうち1若しくはそれ以上を改善することができる。
一部の実施形態および/または使用シナリオにおいて、消失ベースのLDPCデコーダは、硬判定情報および消失情報が提供された場合(例えば不確実性が高く、ビットが決定されない場合)、硬判定デコーダの性能を上回る。電圧t′−1およびt′の2つの読み出し(図2Cのように、読み出し閾値電圧294および読み出し閾値電圧293)は、格納された1ビットあたり1.5ビットに相当する情報を提供するため実行される。図2Cでは、読み出しに使用されるこれら2つの電圧(それぞれ破線で表されている)は、概念的に3つの範囲を表している。外側の範囲は、それぞれ第1の論理状態および第2の論理状態に対応している(例えば、それぞれゼロおよび1つ、またはその逆、その特定の割り当ては、システム設計の制約または設計の選択肢により決定される)。内側の範囲は「消失」に対応している(誤り符号化の概念、ここではこの範囲のデータ値が誤りであると推定されることを意味する)。一部の実施形態および/または使用シナリオにおいて、前記消失ベースのLDPCの誤り訂正性能は、3回の読み出しに基づいた2ビット軟判定LDPC(図2B)と同程度、またはそれより優れたものとなる。一部の場合には、例えば、2ビット軟判定LDPC復号化が3回読み出しを行うのに対し、前記消失ベースのLDPC復号化は2回の読み出しに基づくため、アクセススピードおよび電力消費量は3分の1改善され、待ち時間は3分の1短縮される。
種々の実施形態では、硬判定LDPCデコーダ(例えば、図1Aの硬判定、軟判定、および消失判定ベースのデコーダ169の全部または任意部分)が、硬判定情報(例えば、図2Aに関連したもの)を処理する。種々の実施形態では、軟判定LDPCデコーダ(例えば、図1Aの硬判定、軟判定、および消失判定ベースのデコーダ169の全部または任意部分)が、軟判定情報(例えば、図2Bに関連したもの)を処理する。種々の実施形態では、消失判定LDPCデコーダ(例えば、図1Aの硬判定、軟判定、および消失判定ベースのデコーダ169の全部または任意部分)が、消失判定情報(例えば、図2Cに関連したもの)を処理する。
図3は、種々の技術、例えば種々の符号化率8/9符号の誤り訂正性能を例示したものである。この図の凡例において、「fixpt」とは、「fixed point」(固定小数点)を意味する。凡例「4KB LDPC,fixpt 1b」は、1回の読み出し技術(例えば、図2Aで示したもの)に対応する。凡例「4KB LDPC,fixpt erasure 1.5b」は、2回の読み出し技術(例えば、図2Cで示したもの)に対応する。凡例「4KB LDPC,fixpt 2b」は、3回の読み出し技術(例えば、図2Bで示したもの)に対応する。凡例「4KB LDPC,fixpt 3b」および「4KB LDPC,fixpt 4b」は、それぞれ7回および15回の読み出し技術に対応する。
LDPCデコーダ(例えば、図3に例示した4KB LDPC符号に基づくもの)を有するSSDを伴った一部の実施形態は、以下のように動作する。
1.図4Aに例示するように、生BERが所定のレベルより低い(例えば、3×10−3)フラッシュ装置の場合
a.SSDは、1ビット読み出し(図2Aの1回読み出し)を使って硬判定LDPC復号化(硬判定LDPC復号化402A)を開始する。
b.硬判定LDPC復号化で訂正不可能な誤り(誤り? 404A)があった場合(誤り403AY)、SSDは、2回の追加読み出しによる軟判定情報ビットを使って(消失判定)LDPC復号化を実行し(追加読み出し404Aおよび消失判定LDPC復号化405A)、格納されたビットあたり1.5ビット相当を提供する(図2Cのように)。
c.訂正不可能な誤差が比較的少ない場合、平均的なスピードは、硬判定デコーダに比較的近くなる。
2.図4Bに例示したように、一部の場合(例えば、技術のスケールダウンと密度向上に伴い)、フラッシュ装置の生BERは、所定レベルより高く(例えば、7×10−3)、別の所定レベルより低くなる(例えば、4×10−3)。
a.SSDは、1.5ビット読み出し(図2Cの2回読み出し)を使って消失ベースのLDPC復号化を開始する。これにより、一部の場合、前記消失ベースのLDPC復号化性能は、2ビット入力軟デコーダ(図2Bの3回読み出しと図2Cの2回読み出しとの関係)より高速になり、誤り訂正性能は、同程度かそれより改善される。硬判定LDPC復号化(例えば、硬判定LDPC復号化404B)を使用するか、消失ベースのLDPC復号化(例えば、消失ベースのLDPC復号化403B)を使用するかに関する判定(例えば、消失判定/硬判定LDPC? 402B)は、例えば、SSDにインストールされたフラッシュメモリのタイプ(例えば、SLCに対しMLC)、環境条件、動作スピード、および/または他の要因に基づく。
3.図4Cに例示するように、デコーダタイプの動的切り替え(例えば、動的に切り替え403C)、例えば硬判定(例えば、硬判定LDPC復号化404C)と、消失ベースの判定(例えば、消失判定復号化405C)と、軟判定(例えば、軟判定復号化406C)との間での動的切り替えは、種々の実施形態によれば、種々の基準(基準402C)により行われる。この基準としては、プログラムサイクルまたは消去サイクルの数、読み出しディスターブ(同じおよび/または隣接しあうページまたはブロックの読み出し数)、書き込みディスターブ、以前の誤りを含まない読み出しの率および/または回数、以前の訂正可能な誤りの率および/または回数、以前の訂正不可能な誤りの率および/または回数、および/または他の因子がある。率および/または回数は、一部の実施形態において、硬判定、軟判定、および消失判定ベースの復号化の各種文脈で発生するものとしてさらに区別される。回数は、一部の実施形態において、特定の間隔、例えば装置製造以降、前回の装置電源投入以降、または事前定義された他の任意のイベント以降について定義される。判定は、ブロックごとに、読み出し中のブロックに伴う履歴に基づき、そのブロック内のページが硬判定LDPC復号化で1回読み出されたか(図2Aのように)、または消失ベースのLDPC復号化で2回読み出されたか(図2Cのように)について行われる。種々の実施形態において、前記判定および前記履歴は、ページ単位または他の任意の単位で行われ、前記判定は随時行われ、前記判定は、硬判定ベースと消失ベースと他の変形形態との間で交互に切り替えられる。
一部の実施形態では、硬判定LDPCが使用されて訂正不可能な誤りが検出されると、当該ページ(またはブロック、あるいは使用中の任意単位)が再度1若しくはそれ以上の回数読み出され、別の技術(例えば、図2Cの消失ベースのLDPC)で訂正が試行される。
一部の実施形態では、図2Aのように硬判定復号化が行われる。他の一部の実施形態では、図2Aのt電圧が、図2Cのt′−1またはt′のどちらか一方に近づくよう左右に調整される。この調整により硬判定誤り率は若干増大する(「1」か「0」かの判定にバイアスがかかる)が、これと二律背反的に、消失情報を得るための第2の読み出し、および/または消失ベースの符号を使ったもう1つの追加読み出しを、消去されたビットを決定するため任意選択で何らかのバイアスをかけて、実行する手間を省くことができる。一部の実施形態において、前記電圧および/またはその調整量を調整すべきかどうかの判定は、上述のように動的に行われる。さらに、前記第1の読み出しのバイアス方向および/またはバイアスの大きさは、種々の実施形態によれば、複数の基準のうち1若しくはそれ以上に基づいて決定される。その基準は、データにおける1または0の優位性、特定の装置タイプに関する知識、および特定の装置タイプがセル内で電荷を獲得する可能性と失う可能性のどちらが高いかを含む。前記基準は、さらに、読み出し中の特定の装置および/または特定のブロックまたはページの以前の履歴に関する知識、例えばそれまでの動作・操作タイプ(一部の場合、読み出しディスターブは特定の方向にセルをドリフトさせる傾向がある一方、書き込みは付近のセルに逆に作用する傾向があるため)、以前の誤り履歴(誤りが1→0であったか、0→1であったか)、および他の因子を含む。
一部の実施形態では、硬判定情報を取得するため行われる第1の読み出し(図2A)の結果を入力として使ってもう1つの追加読み出し情報(図2C)を得るための第2の読み出し用電圧が制御される。前記第1の読み出しの結果は装置、例えばページバッファに保存され、または前記第2の読み出しが行われる場合、前記装置に返される。一部の実施形態において、前記第2の読み出し用電圧は、前回の読み出しで「1」が返された場合はt′に、前回の読み出しで「0」が返された場合はt′−1に、設定可能(セルごとに)である。もう1つの追加読み出しは、付加的な0.5ビットの情報を決定するよう行われる。例えば、所与のセルに対する第1の読み出しで「1」が返された場合、このセルは「0」ではないため、「1」と「e」との間のあいまいさを排除することのみ必要である。
一部の実施形態では、前記第1の読み出しで返された「0」の数と「1」の数とを計数・比較することにより、(例えば)特定のページに含まれるセル内の電荷がどちら側にドリフトしたか、また「0」と「1」の数が期待される範囲外であるかに関する決定に使用されるバイアスが提供されて、追加読み出しを行うための読み出し電圧が適宜調整される。例えば、フラッシュメモリに書き込まれた全データが暗号化される一実施形態では、ページサイズが大きいことを考慮すると、「0」および「1」の数のバランスはおよそ均等である。期待される範囲外へのずれは、特定のページで電荷のドリフトが生じていることを示すため、一部の実施形態では、図2Cの読み出し電圧を調整して補正を行う。一部のフラッシュ装置では電荷ドリフトに複数の原因があり、所与のページが「0」へ向かって若しくは「1」へ向かってドリフトしたかを事前に知ることはできない。一部の実施形態は、フラッシュメモリに格納されたデータは暗号化され、またはスクランブルがかけられ、「0」および「1」が公称50対50(若干の統計的変動が伴う)または他の何らかの既知のバランスになるよう、効果的にランダム化される。
一部の実施形態では、消失ベースの復号化が失敗すると、さらに軟判定復号化が行われる。例えば、4ビット軟判定情報を決定するには付加的な読み出しが行われ、4ビットの固定小数点軟判定LDPCデコーダが使用される。
MLC操作
図5Aは、2ビット/セルの(各セルに2ビット情報を格納する)MLCを7回読み出して(読み出し507A〜507G)情報を取得する一実施形態の詳細を一部選んで例示したものであり、図5Bは、2ビット/セルのMLCを5回読み出して(読み出し505A〜505E)消失判定情報を取得する一実施形態の詳細を一部選んで例示したものである。2ビット/セルMLC技術を使用する一部の実施形態には、「下側」ページ(左半分または右半分)および「上側」ページ(各半分における左側の4分の1または右側の4分の1)がある。下半分のページからの情報取得は、SLCについて説明したように行われる(本明細書の「SLC操作」の項を参照)。上側ページからの情報取得には、追加読み出しを使用する(例えば、図5Aおよび5Bで例示したように)。
一部の実施形態では、上側ページからの硬判定情報取得に3回の読み出しを行い、そのうち第1の読み出しでは、どちらの半ページかを決定し、第2の読み出しでは、上半分のどちらの4分の1か(左側の4分の1または右側の4分の1)を決定し、第3の読み出しでは、下半分のどちらの4分の1か(左側の4分の1または右側の4分の1)を決定する。一部のMLC実施形態では、すべてのセルが共通の読み出し電圧を有し、下側ページにゼロを格納するセルと1を格納するセルとがあることから、上側ページから情報を取得する工程は、下側ページの値に基づいて値を決定するため各半分で電圧を設定する工程を含む。
変形形態
種々の実施形態では、消失ベースの復号化で使用できる種々の符号、例えばLDPC符号、RS符号、およびBCH符号が使用される。
一部の実施形態において、前記硬判定符号および前記消失ベースの符号は異なる。
種々の実施形態では、種々の単位、例えばフラッシュメモリページ、その一部(固定サイズまたは可変サイズの)、任意の複数ページ(ページの整数倍または非整数倍)、固定サイズ、および可変サイズ、および他の変形形態にわたり、ECCを行う。例えば、可変サイズの符号は、パンクチャを行ってその符号を短くすることにより実現できる。
実施技術例
一部の実施形態において、コンピューティングホスト・フラッシュメモリ・コントローラまたはSSDコントローラ(例えば、図1AのSSDコントローラ100)と、プロセッサ、マイクロプロセッサ、システムオンチップ、特定用途向け集積回路、ハードウェアアクセラレータ、または上記動作の全部または一部を提供する他の回路の諸部分とにより実行される動作の全部または一部の種々の組み合わせは、コンピュータシステムによる処理と互換性のある仕様で指定される。前記指定は、種々の記述、例えばハードウェア記述言語、回路記述、ネットリスト記述、マスク記述、レイアウト記述による。記述例としては、Verilog、VHDL、SPICE、SPICEの変形形態(例えば、IBIS、LEF、DEF、GDS−II、OASIS)、または他の記述がある。種々の実施形態では、前記処理として、1若しくはそれ以上の集積回路への搭載に適した論理および/または回路を生成、検証、または指定するための解釈、コンパイル、シミュレーション、および合成の任意の組み合わせが含まれる。各集積回路は、種々の実施形態によれば、種々の技術に基づいて設計可能および/または製造可能である。それらの技術としては、プログラマブル技術(例えば、フィールドプログラマブルまたはマスクプログラマブル・ゲートアレイ集積回路)、セミカスタム技術(例えば、全体的または部分的にセルベースの集積回路)、フルカスタム技術(例えば、実質的に特定用途向けの集積回路)、これらの任意の組み合わせ、または集積回路の設計および/または製造に適合した他の任意技術などがある。
一部の実施形態において、命令セットを内部に格納して有するコンピュータ可読媒体による上記動作の全部または一部の各種組み合わせは、1若しくはそれ以上のプログラム命令の実行および/または解釈により、1若しくはそれ以上のソースおよび/またはスクリプト言語ステートメントの解釈および/またはコンパイルにより、あるいはプログラミングおよび/またはスクリプト言語ステートメントで表現された情報をコンパイル、変換、および/または解釈して生成されたバイナリ命令の実行により、実施される。前記ステートメントは、いかなる標準プログラミング言語またはスクリプト言語とも互換性がある(例えば、C、C++、Fortran、Pascal、Ada、Java(登録商標)、VBscript、およびShell)。前記プログラム命令、前記言語ステートメント、またはバイナリ命令のうち1若しくはそれ以上は、任意選択で、1若しくはそれ以上のコンピュータ可読記憶媒体要素に格納される。種々の実施形態において、前記プログラム命令の一部、全部、または種々の部分は、1若しくはそれ以上の関数、ルーチン、サブルーチン、インラインルーチン、プロシージャ、マクロ、またはその部分として実現される。
結論
上記説明では一定の選択を行っているが、これは単に文章と図面を作成するための便宜的なもので、別段の断りがない限り、これらの選択自体が、上記実施形態の構造または動作に関する追加情報を表現していると解釈すべきではない。前記選択の例としては、図の参照番号に使用される指定の具体的な構成または割り当て、ならびに前記実施形態の特徴および要素を識別および参照するため使用した前記要素識別子の具体的な構成または割り当て(例えば、図中の引き出し線または参照番号)などがある。
表現「を含む」または「が含まれる」は、特に非限定的な範囲の論理セットを記述する抽象表現として解釈されるよう意図したものであり、明示的に「内に」という表現を伴わない限り、物理的収納を意味することを意図したものではない。
以上の実施形態については、説明および理解の明瞭化を目的として一部詳しく説明したが、本発明は上記で提供した詳細事項に限定されるものではない。本発明には多くの実施形態がある。開示した実施形態は、例示的なものであって限定的なものではない。
構造、構成、および使用については、前記説明と一貫し、また本発明に付与される特許の請求範囲内で多数の変形形態が可能であることが理解されるであろう。例えば、使用する相互接続および機能単位のビット幅、クロック速度、および技術のタイプは、各構成要素ブロックにおける種々の実施形態に応じて異なる。相互接続および論理に与えた名称は単に例示的なものであり、説明した概念を限定するものと解釈するべきではない。フローチャートの工程、アクション、および機能要素の順序および構成は、種々の実施形態に応じて異なる。また、特に別段の断りがない限り、指定した値範囲、使用した最大値および最小値、または他の特定の仕様(例えば、フラッシュメモリ技術のタイプ、ならびにレジスタおよびバッファのエントリまたはステージの数など)は、単に説明した実施形態のものであり、実施態様の技術は将来的な改善および変更にも適用されるものと予測されるため、本発明を限定するものと解釈すべきではない。
種々の構成要素、サブシステム、動作・操作、機能、ルーチン、サブルーチン、インラインルーチン、プロシージャ、マクロ、またはこれらの部分を実施するため説明した技術については、これらに代えて、当該技術分野で知られた機能的に等価の技術が使用できる。また、諸実施形態の多くの機能的態様は、ハードウェア(一般に専用回路)またはソフトウェア(プログラムされたコントローラまたはプロセッサの何らかの態様による)で、実施形態に応じた設計上の制約と、処理高速化(それまでハードウェアに含まれていた機能のソフトウェアへの移行を促す)および集積密度向上(それまでソフトウェアに含まれていた機能のハードウェアへの移行を促す)という技術トレンドとの関数として、選択的に実現できることを理解すべきである。種々の実施形態における具体的な変形形態としては、パーティショニングの違い、フォームファクタおよびコンフィギュレーションの違い、使用するオペレーティングシステムおよび他のシステムソフトウェアの違い、使用するインターフェース規格、ネットワークプロトコル、または通信リンクの違いによる変形形態、ならびに本明細書で説明した概念の実施時、特定用途のユニークな工学および業務上の制約に応じて予測される他の変形形態などがあるが、これらに限定されるものではない。
以上の実施形態は、説明した実施形態の多数の態様について最低限必要な実施態様よりはるかに多い詳細事項および環境的文脈を加え、説明したものである。当業者であれば、一部の実施形態では、本明細書に開示した構成要素または特徴を省略しても、残りの要素間の基本的な協動態様は変わらないことが理解できるであろう。したがって、開示した詳細事項の大部分については、説明した実施形態の種々の態様を実施(実装)する必要がないことを理解すべきである。前記残りの要素が先行技術と区別できる限り、省略された構成要素および特徴により本明細書で説明する概念が限定されることはない。
設計におけるそのようないかなる変形形態も、説明した実施形態により開示した内容に対する実質的な変更とはならない。また、本明細書で説明した実施形態は他のコンピューティング用途およびネットワーキング用途に広い応用性を有し、説明した実施形態の特定の応用または産業に限定されないことを理解すべきである。このように、本発明は、本発明に付与される特許の請求範囲内で考えられるすべての変更(修正)形態および変形形態を含むものと解釈されるべきである。

Claims (23)

  1. システムであって、
    フラッシュメモリ内の特定の位置に格納されたデータに対する要求の受信に応答して、当該特定の位置における1若しくはそれ以上の初期読み出しを要求する手段と、
    前記初期読み出しの完了に応答して、当該初期読み出しの結果に基づく低密度パリティ検査(LDPC)復号化により訂正不可能な誤りを検出する手段と、
    前記検出する手段に応答して、前記特定の位置における1若しくはそれ以上の追加読み出しを要求する手段と、
    前記追加読み出しの完了に応答して、当該追加読み出しの各結果に基づくLDPC復号化を実行する手段と
    を有し、
    前記LDPC復号化におけるデコーダタイプは、硬判定、消失ベースの判定、および軟判定の中から動的に切り替えられるものである、
    システム。
  2. 請求項1記載のシステムにおいて、上記動的な切り替えは、プログラムサイクルまたは消去サイクルの数、読み出しディスターブ、書き込みディスターブ、以前の誤りを含まない読み出しの率および/または回数、以前の訂正可能な誤りの率および/または回数、以前の訂正不可能な誤りの率および/または回数、および/または他の因子を基準として実行されるものであるシステム。
  3. 請求項1記載のシステムにおいて、前記フラッシュメモリは、シングルレベルセル(SLC)技術のフラッシュメモリを含み、前記初期読み出しは1回であり、前記追加読み出しは2回であり、前記各追加読み出しは、各々の読み出し電圧におけるものであるシステム。
  4. 請求項記載のシステムにおいて、さらに、
    各前記追加読み出しについて各々の電圧指定子を提供する手段を有するものであるシステム。
  5. 請求項記載のシステムにおいて、前記電圧指定子のうち少なくとも1つは、明示的な電圧レベル、複数の所定電圧レベルの1つの識別子、および複数の読み出し要求タイプの1つの一意の識別結果のうちの1つであるシステム。
  6. 請求項1記載のシステムにおいて、前記フラッシュメモリは、マルチレベルセル(MLC)技術のフラッシュメモリを含むものであるシステム。
  7. 請求項1記載のシステムにおいて、前記受信は、複数のインターフェース規格のうち1若しくはそれ以上に適合し、当該インターフェース規格は、
    シリアル・アドバンスド・テクノロジー・アタッチメント(SATA)インターフェース規格と、
    シリアル・アタッチド・スモール・コンピュータ・システム・インターフェース(SAS)インターフェース規格と、
    周辺機器相互接続エクスプレス(PCIe)インターフェース規格と、
    ファイバーチャネル・インターフェース規格と、
    イーサネット(登録商標)・インターフェース規格と
    を含むものであるシステム。
  8. 請求項1記載のシステムにおいて、前記初期読み出しを要求する手段および前記追加読み出しを要求する手段はコントローラを介し、当該コントローラおよび前記フラッシュメモリは、複数の不揮発性記憶構成要素タイプの1つとして実装される記憶サブシステムに含まれ、前記不揮発性記憶構成要素タイプは、
    ユニバーサルシリアルバス(USB)記憶構成要素タイプと、
    コンパクトフラッシュ(登録商標)(CF)記憶構成要素タイプと、
    マルチメディアカード(MMC)記憶構成要素タイプと、
    セキュアデジタル(SD)記憶構成要素タイプと、
    メモリースティック記憶構成要素タイプと、
    xDピクチャーカード記憶構成要素タイプと
    を含むものであるシステム。
  9. 方法であって、
    フラッシュメモリ内の特定の位置に格納されたデータに対する要求の受信に応答して、前記特定の位置における1若しくはそれ以上の初期読み出しを要求する工程と、
    前記初期読み出しの完了に応答して、当該初期読み出しの結果に基づく低密度パリティ検査(LDPC)復号化により訂正不可能な誤りを検出する工程と、
    前記検出に応答して、前記特定の位置における1若しくはそれ以上の追加読み出しを要求する工程と、
    前記追加読み出しの完了に応答して、当該追加読み出しの各結果に基づくLDPC復号化を実行する工程と
    を有し、
    前記LDPC復号化におけるデコーダタイプは、硬判定、消失ベースの判定、および軟判定の中から動的に切り替えられるものである、
    法。
  10. 請求項9記載の方法において、上記動的な切り替えは、プログラムサイクルまたは消去サイクルの数、読み出しディスターブ、書き込みディスターブ、以前の誤りを含まない読み出しの率および/または回数、以前の訂正可能な誤りの率および/または回数、以前の訂正不可能な誤りの率および/または回数、および/または他の因子を基準として実行されるものである方法。
  11. 請求項記載の方法において、前記フラッシュメモリは、シングルレベルセル(SLC)技術のフラッシュメモリを含み、前記初期読み出しは1回であり、前記追加読み出しは2回であり、前記各追加読み出しは、各々の読み出し電圧におけるものである方法。
  12. 請求項11記載の方法において、さらに、
    各前記追加読み出しについて各々の電圧指定子を提供する工程を有するものである方法。
  13. 請求項12記載の方法において、前記電圧指定子のうち少なくとも1つは、明示的な電圧レベル、複数の所定電圧レベルの1つの識別子、および複数の読み出し要求タイプの1つの一意の識別結果のうちの1つである方法。
  14. 請求項記載の方法において、前記フラッシュメモリは、マルチレベルセル(MLC)技術のフラッシュメモリを含むものである方法。
  15. 請求項記載の方法において、前記受信は、複数のインターフェース規格のうち1若しくはそれ以上に適合し、当該インターフェース規格は、
    シリアル・アドバンスド・テクノロジー・アタッチメント(SATA)インターフェース規格と、
    シリアル・アタッチド・スモール・コンピュータ・システム・インターフェース(SAS)インターフェース規格と、
    周辺機器相互接続エクスプレス(PCIe)インターフェース規格と、
    ファイバーチャネル・インターフェース規格と、
    イーサネット(登録商標)・インターフェース規格と
    を含むものである方法。
  16. 請求項記載の方法において、前記初期読み出しを要求する工程および前記追加読み出しを要求する工程はコントローラを介し、当該コントローラおよび前記フラッシュメモリは、複数の不揮発性記憶構成要素タイプの1つとして実装される記憶サブシステムに含まれ、前記不揮発性記憶構成要素タイプは、
    ユニバーサルシリアルバス(USB)記憶構成要素タイプと、
    コンパクトフラッシュ(登録商標)(CF)記憶構成要素タイプと、
    マルチメディアカード(MMC)記憶構成要素タイプと、
    セキュアデジタル(SD)記憶構成要素タイプと、
    メモリースティック記憶構成要素タイプと、
    xDピクチャーカード記憶構成要素タイプと
    を含むものである方法。
  17. システムであって、
    インターフェースと、
    コントローラであって、
    フラッシュメモリ内の特定の位置に格納されたデータに対する要求を前記インターフェース経由で受信し、当該要求に応答して前記特定の位置における1若しくはそれ以上の初期読み出しを要求する工程と、
    前記初期読み出しの完了に応答して、当該初期読み出しの結果に基づく低密度パリティ検査(LDPC)復号化により訂正不可能な誤りを検出する工程と、
    前記検出に応答して、前記特定の位置における1若しくはそれ以上の追加読み出しを要求する工程と、
    前記追加読み出しの完了に応答して、当該追加読み出しの各結果に基づくLDPC復号化を実行する工程と
    を実行可能なものである、前記コントローラと、
    を有し、
    前記LDPC復号化におけるデコーダタイプは、硬判定、消失ベースの判定、および軟判定の中から動的に切り替えられるものである、
    ステム。
  18. 請求項17記載のシステムにおいて、上記動的な切り替えは、プログラムサイクルまたは消去サイクルの数、読み出しディスターブ、書き込みディスターブ、以前の誤りを含まない読み出しの率および/または回数、以前の訂正可能な誤りの率および/または回数、以前の訂正不可能な誤りの率および/または回数、および/または他の因子を基準として実行されるものであるシステム。
  19. 請求項17記載のシステムにおいて、前記フラッシュメモリは、シングルレベルセル(SLC)技術のフラッシュメモリを含み、前記初期読み出しは1回であり、前記追加読み出しは2回であり、前記各追加読み出しは、各々の読み出し電圧におけるものであるシステム。
  20. 請求項19記載のシステムにおいて、前記コントローラは、さらに、
    各前記追加読み出しについて各々の電圧指定子を提供する工程を実行可能なものであるシステム。
  21. 請求項20記載のシステムにおいて、前記電圧指定子のうち少なくとも1つは、明示的な電圧レベル、複数の所定電圧レベルの1つの識別子、および複数の読み出し要求タイプの1つの一意の識別結果のうちの1つであるシステム。
  22. 請求項17記載のシステムにおいて、前記フラッシュメモリは、マルチレベルセル(MLC)技術のフラッシュメモリを含むものであるシステム。
  23. 請求項17記載のシステムにおいて、前記コントローラおよび前記フラッシュメモリは、複数の不揮発性記憶構成要素タイプの1つとして実装される記憶サブシステムに含まれ、前記不揮発性記憶構成要素タイプは、
    ユニバーサルシリアルバス(USB)記憶構成要素タイプと、
    コンパクトフラッシュ(登録商標)(CF)記憶構成要素タイプと、
    マルチメディアカード(MMC)記憶構成要素タイプと、
    セキュアデジタル(SD)記憶構成要素タイプと、
    メモリースティック記憶構成要素タイプと、
    xDピクチャーカード記憶構成要素タイプと
    を含むものであるシステム。
JP2012557303A 2010-03-12 2011-03-11 フラッシュメモリ用のldpc消失復号化 Expired - Fee Related JP5806792B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US31368110P 2010-03-12 2010-03-12
US61/313,681 2010-03-12
PCT/US2011/028244 WO2011113034A2 (en) 2010-03-12 2011-03-11 Ldpc erasure decoding for flash memories

Publications (3)

Publication Number Publication Date
JP2013522735A JP2013522735A (ja) 2013-06-13
JP2013522735A5 JP2013522735A5 (ja) 2014-05-01
JP5806792B2 true JP5806792B2 (ja) 2015-11-10

Family

ID=44564175

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012557303A Expired - Fee Related JP5806792B2 (ja) 2010-03-12 2011-03-11 フラッシュメモリ用のldpc消失復号化

Country Status (6)

Country Link
US (2) US8935595B2 (ja)
EP (1) EP2545554A4 (ja)
JP (1) JP5806792B2 (ja)
KR (2) KR101466555B1 (ja)
TW (1) TWI579854B (ja)
WO (1) WO2011113034A2 (ja)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9727414B2 (en) 2010-12-01 2017-08-08 Seagate Technology Llc Fractional redundant array of silicon independent elements
WO2012075200A2 (en) 2010-12-01 2012-06-07 Sandforce, Inc. Dynamic higher-level redundancy mode management with independent silicon elements
US8719663B2 (en) 2010-12-12 2014-05-06 Lsi Corporation Cross-decoding for non-volatile storage
KR101454807B1 (ko) 2011-01-18 2014-11-04 엘에스아이 코포레이션 상위-레벨 리던던시 정보 계산
US8924630B2 (en) * 2011-06-21 2014-12-30 Taejin Info Tech Co., Ltd. Semiconductor storage device-based high-speed cache storage system
US9294132B1 (en) * 2011-11-21 2016-03-22 Proton Digital Systems, Inc. Dual-stage data decoding for non-volatile memories
KR101968746B1 (ko) * 2011-12-30 2019-04-15 삼성전자주식회사 저장 장치로부터 데이터를 읽는 읽기 방법, 에러 정정 장치, 그리고 에러 정정 코드 디코더를 포함하는 저장 시스템
US8737139B2 (en) 2012-04-11 2014-05-27 Micron Technology, Inc. Determining soft data for combinations of memory cells
US8856611B2 (en) 2012-08-04 2014-10-07 Lsi Corporation Soft-decision compensation for flash channel variation
US8839073B2 (en) 2012-05-04 2014-09-16 Lsi Corporation Zero-one balance management in a solid-state disk controller
KR20130136271A (ko) * 2012-06-04 2013-12-12 삼성전자주식회사 비휘발성 메모리 장치 및 그것의 데이터 처리 방법
US8856431B2 (en) 2012-08-02 2014-10-07 Lsi Corporation Mixed granularity higher-level redundancy for non-volatile memory
US9239754B2 (en) 2012-08-04 2016-01-19 Seagate Technology Llc Single read based soft-decision decoding of non-volatile memory
KR102081584B1 (ko) * 2012-11-02 2020-02-26 삼성전자 주식회사 메모리 장치 구동 방법 및 메모리 시스템
KR102081581B1 (ko) * 2012-11-02 2020-02-26 삼성전자 주식회사 메모리 장치 구동 방법
US9116822B2 (en) 2012-12-07 2015-08-25 Micron Technology, Inc. Stopping criteria for layered iterative error correction
US9065483B2 (en) 2013-01-21 2015-06-23 Micron Technology, Inc. Determining soft data using a classification code
US9229848B2 (en) 2013-01-21 2016-01-05 Micron Technology, Inc. Determining soft data for fractional digit memory cells
KR102050896B1 (ko) 2013-02-19 2019-12-02 삼성전자주식회사 메모리 컨트롤러 및 그것의 동작 방법
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
KR20150128750A (ko) 2013-03-07 2015-11-18 마벨 월드 트레이드 리미티드 늦은 신뢰도 정보를 사용하여 디코딩하기 위한 시스템 및 방법
US9323611B2 (en) * 2013-03-21 2016-04-26 Marvell World Trade Ltd. Systems and methods for multi-stage soft input decoding
KR102081588B1 (ko) 2013-08-08 2020-02-26 삼성전자 주식회사 Ecc 디코더의 동작 방법 및 그것을 포함하는 메모리 컨트롤러
KR102065664B1 (ko) 2013-08-09 2020-01-13 삼성전자 주식회사 메모리 장치의 열화 상태 추정 방법 및 이를 이용한 메모리 시스템에서의 웨어 레벨링 방법
US9336134B2 (en) * 2013-11-12 2016-05-10 Skyera, Llc Apparatus and method for accessing a non-volatile memory blade using multiple controllers in a non-volatile memory based storage device
US9229855B2 (en) 2013-11-12 2016-01-05 Skyera, Llc Apparatus and method for routing information in a non-volatile memory-based storage device
KR101824671B1 (ko) * 2013-11-12 2018-03-14 스카이에라, 엘엘씨 비휘발성 메모리 기반 저장 디바이스에서 정보를 라우팅하는 장치 및 방법
KR101484066B1 (ko) 2013-11-29 2015-01-19 한국과학기술원 엘디피시 부호의 디코딩 방법
US9417960B2 (en) * 2013-12-20 2016-08-16 Seagate Technology Llc Preventing programming errors from occurring when programming flash memory cells
US10276247B2 (en) 2013-12-20 2019-04-30 Seagate Technology Llc Read retry operations with estimation of written data based on syndrome weights
US9262268B2 (en) * 2013-12-20 2016-02-16 Seagate Technology Llc Method to distribute user data and error correction data over different page types by leveraging error rate variations
US9818488B2 (en) * 2015-10-30 2017-11-14 Seagate Technology Llc Read threshold voltage adaptation using bit error rates based on decoded data
KR102110767B1 (ko) * 2013-12-24 2020-06-09 삼성전자 주식회사 메모리 컨트롤러 구동방법 및 메모리 컨트롤러
KR102127287B1 (ko) 2014-02-11 2020-06-26 삼성전자주식회사 메모리 컨트롤러 및 메모리 컨트롤러가 불휘발성 메모리로부터 데이터를 읽는 데이터 읽기 방법
JP5855150B2 (ja) * 2014-03-06 2016-02-09 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
US10361721B1 (en) * 2014-05-01 2019-07-23 Marvell International Ltd. Methods and network device for uncoded bit protection in 10GBASE-T Ethernet
US9407294B2 (en) * 2014-07-07 2016-08-02 Kabushi Kaisha Toshiba. Non-volatile memory controller with error correction (ECC) tuning via error statistics collection
KR20160046467A (ko) * 2014-10-21 2016-04-29 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 시스템, 데이터 저장 시스템 및 그것의 동작 방법
GB2531756A (en) 2014-10-29 2016-05-04 Ibm Multi-chip device and method for storing data
US9575669B2 (en) 2014-12-09 2017-02-21 Western Digital Technologies, Inc. Programmable solid state drive controller and method for scheduling commands utilizing a data structure
KR20160102738A (ko) 2015-02-23 2016-08-31 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
US10120753B2 (en) 2015-05-26 2018-11-06 Micron Technology, Inc. Methods and apparatuses for error correction
US10474525B2 (en) * 2015-08-11 2019-11-12 Sandisk Technologies Llc Soft bit techniques for a data storage device
US10284232B2 (en) * 2015-10-28 2019-05-07 Pure Storage, Inc. Dynamic error processing in a storage device
US9793923B2 (en) * 2015-11-24 2017-10-17 Texas Instruments Incorporated LDPC post-processor architecture and method for low error floor conditions
US10678662B2 (en) 2016-01-04 2020-06-09 Cnex Labs, Inc. Computing system with data protection mechanism with soft information and method of operation thereof
US10395754B2 (en) * 2016-03-21 2019-08-27 Nandext Srl Method for decoding bits in a solid state drive, and related solid state drive
US10180868B2 (en) 2016-07-08 2019-01-15 Seagate Technology Llc Adaptive read threshold voltage tracking with bit error rate estimation based on non-linear syndrome weight mapping
US10290358B2 (en) 2016-07-08 2019-05-14 Seagate Technology Llc Independent read threshold voltage tracking for multiple dependent read threshold voltages using syndrome weights
US10229000B2 (en) 2016-08-09 2019-03-12 Seagate Llc Erasure codes to prevent lower page corruption in flash memory
US10498362B2 (en) 2016-12-19 2019-12-03 Kabushiki Kaisha Toshiba Low power error correcting code (ECC) system
US10025661B1 (en) * 2016-12-27 2018-07-17 Sandisk Technologies Llc Adaptive hard and soft bit decoding
KR101871682B1 (ko) 2017-02-02 2018-06-28 한밭대학교 산학협력단 페이지 단위의 ldpc 복호 반복 횟수 기록 및 마모도 모니터링을 통한 신뢰도 높은 웨어-레벨링 수행방법
KR101893064B1 (ko) 2017-02-02 2018-08-30 한밭대학교 산학협력단 Ldpc 복호 반복 횟수 기록 및 모니터링을 통한 웨어-레벨링 신뢰도 향상 시스템 및 방법
US10222996B2 (en) 2017-02-07 2019-03-05 Western Digital Technologies, Inc. Read operation and soft decoding timing
US10908988B2 (en) 2017-04-03 2021-02-02 Hitachi, Ltd. Storage apparatus
US10469103B1 (en) 2017-04-19 2019-11-05 Seagate Technology Llc Adaptive read retry optimization
US10445008B2 (en) * 2017-09-15 2019-10-15 Macronix International Co., Ltd. Data management method for memory and memory apparatus
US10558522B2 (en) 2017-10-20 2020-02-11 Western Digital Technologies, Inc. Dynamic multi-stage decoding
US10637511B2 (en) 2017-12-18 2020-04-28 Western Digital Technologies, Inc Dynamic multi-stage decoding
TWI664634B (zh) * 2018-08-17 2019-07-01 慧榮科技股份有限公司 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置
CN109144771A (zh) * 2018-09-10 2019-01-04 浪潮电子信息产业股份有限公司 一种纠错方法、系统、装置及计算机可读存储介质
US10733047B2 (en) 2018-09-28 2020-08-04 Sandisk Technologies Llc Hard and soft bit data from single read
KR102237603B1 (ko) 2019-09-25 2021-04-06 연세대학교 산학협력단 자기활성 부재를 포함하는 발광소자와 그 제조방법 및 발광소자를 포함하는 전자소자
DE112022000073T5 (de) * 2021-07-04 2023-04-20 Maxlinear, Inc. Pmd-zu-tc-mac-schnittstelle mit 2-stufigem fec-schutz
US11921581B1 (en) * 2022-08-15 2024-03-05 Micron Technology, Inc. Read recovery including low-density parity-check decoding

Family Cites Families (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5099484A (en) 1989-06-09 1992-03-24 Digital Equipment Corporation Multiple bit error detection and correction system employing a modified Reed-Solomon code incorporating address parity and catastrophic failure detection
US6347051B2 (en) 1991-11-26 2002-02-12 Hitachi, Ltd. Storage device employing a flash memory
TW261687B (ja) 1991-11-26 1995-11-01 Hitachi Seisakusyo Kk
JPH07271672A (ja) 1994-03-30 1995-10-20 Toshiba Corp マルチウェイセットアソシアティブキャッシュシステム
JPH10509819A (ja) 1994-10-14 1998-09-22 シリコン グラフィックス インク. インターリーブされるキャッシュメモリアレイのインデッキシングとマルチプレキシング
US5666512A (en) 1995-02-10 1997-09-09 Hewlett-Packard Company Disk array having hot spare resources and methods for using hot spare resources to store user data
US6272659B1 (en) * 1998-05-18 2001-08-07 Cirrus Logic, Inc. Error correction code processor employing adjustable correction power for miscorrection minimization
US7117397B1 (en) 1999-12-15 2006-10-03 Fujitsu Limited Apparatus and method for preventing an erroneous operation at the time of detection of a system failure
US6678823B1 (en) 2000-05-01 2004-01-13 Xtec, Incorporated Methods and apparatus for authenticating data stored in semiconductor memory cells
CA2347927A1 (en) * 2001-05-16 2002-11-16 Telecommunications Research Laboratories Centralized synchronization for wireless networks
US7073115B2 (en) 2001-12-28 2006-07-04 Network Appliance, Inc. Correcting multiple block data loss in a storage array using a combination of a single diagonal parity group and multiple row parity groups
US7246294B2 (en) * 2002-04-01 2007-07-17 Intel Corporation Method for iterative hard-decision forward error correction decoding
US7209527B2 (en) * 2002-07-08 2007-04-24 Agere Systems Inc. Turbo decoder employing max and max* map decoding
JP4011583B2 (ja) * 2003-01-30 2007-11-21 富士通株式会社 データ記録再生システム及び方法
US7206992B2 (en) * 2003-03-04 2007-04-17 Broadcom Corporation Decoding a received BCH encoded signal
US7237183B2 (en) * 2003-03-04 2007-06-26 Broadcom Corporation Parallel decoding of a BCH encoded signal
US7372731B2 (en) 2003-06-17 2008-05-13 Sandisk Il Ltd. Flash memories with adaptive reference voltages
US7334181B2 (en) * 2003-09-04 2008-02-19 The Directv Group, Inc. Method and system for providing short block length low density parity check (LDPC) codes
US7555070B1 (en) * 2004-04-02 2009-06-30 Maxtor Corporation Parallel maximum a posteriori detectors that generate soft decisions for a sampled data sequence
US7237067B2 (en) 2004-04-22 2007-06-26 Hewlett-Packard Development Company, L.P. Managing a multi-way associative cache
JP4551740B2 (ja) * 2004-11-08 2010-09-29 株式会社東芝 低密度パリティチェック符号復号器及び方法
US7450668B2 (en) * 2005-02-02 2008-11-11 At&T Intellectual Property I, L.P. Soft bit viterbi equalizer using partially collapsed metrics
US8200887B2 (en) 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
KR100732628B1 (ko) 2005-07-28 2007-06-27 삼성전자주식회사 멀티-비트 데이터 및 싱글-비트 데이터를 저장하는 플래시메모리 장치
US7681109B2 (en) 2005-10-13 2010-03-16 Ramot At Tel Aviv University Ltd. Method of error correction in MBC flash memory
US8055979B2 (en) 2006-01-20 2011-11-08 Marvell World Trade Ltd. Flash memory with coding and signal processing
US7661057B2 (en) * 2006-02-01 2010-02-09 Broadcom Corporation Clocking Chien searching at different frequency than other Reed-Solomon (RS) ECC decoding functions
WO2007132457A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
US7809994B2 (en) 2006-05-17 2010-10-05 Sandisk Corporation Error correction coding for multiple-sector pages in flash memory devices
US8069397B2 (en) * 2006-07-10 2011-11-29 Broadcom Corporation Use of ECC with iterative decoding for iterative and non-iterative decoding in a read channel for a disk drive
US7739576B2 (en) 2006-08-31 2010-06-15 Micron Technology, Inc. Variable strength ECC
US20080059144A1 (en) * 2006-09-01 2008-03-06 Inphase Technologies Emulation of dissimilar removable medium storage device types assisted by information embedded in the logical format
WO2008053472A2 (en) * 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7558109B2 (en) * 2006-11-03 2009-07-07 Sandisk Corporation Nonvolatile memory with variable read threshold
US7593263B2 (en) * 2006-12-17 2009-09-22 Anobit Technologies Ltd. Memory device with reduced reading latency
US20100107039A1 (en) 2007-02-01 2010-04-29 Kabushiki Kaisha Toshiba Semiconductor memory with reed-solomon decoder
WO2008111058A2 (en) 2007-03-12 2008-09-18 Anobit Technologies Ltd. Adaptive estimation of memory cell read thresholds
US7904793B2 (en) * 2007-03-29 2011-03-08 Sandisk Corporation Method for decoding data in non-volatile storage using reliability metrics based on multiple reads
US8418023B2 (en) * 2007-05-01 2013-04-09 The Texas A&M University System Low density parity check decoder for irregular LDPC codes
WO2008139441A2 (en) * 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit
KR100888842B1 (ko) 2007-06-28 2009-03-17 삼성전자주식회사 읽기 전압을 최적화할 수 있는 플래시 메모리 장치 및그것의 독출 전압 설정 방법
KR101397549B1 (ko) * 2007-08-16 2014-05-26 삼성전자주식회사 고속 프로그램이 가능한 불휘발성 반도체 메모리 시스템 및그것의 독출 방법
WO2009072103A2 (en) * 2007-12-05 2009-06-11 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated bch codes and/or designation of 'first below' cells
US8453022B2 (en) 2007-12-05 2013-05-28 Densbits Technologies Ltd. Apparatus and methods for generating row-specific reading thresholds in flash memory
US7656707B2 (en) 2007-12-14 2010-02-02 Intel Corporation Systems and methods for discrete channel decoding of LDPC codes for flash memory
AU2007254619B2 (en) * 2007-12-21 2010-10-07 Canon Kabushiki Kaisha Barcode removal
US20090177943A1 (en) 2008-01-09 2009-07-09 Broadcom Corporation Error correction coding using soft information and interleaving
US8276043B2 (en) * 2008-03-01 2012-09-25 Kabushiki Kaisha Toshiba Memory system
US8724381B2 (en) 2008-03-11 2014-05-13 Agere Systems Llc Methods and apparatus for storing data in a multi-level cell flash memory device with cross-page sectors, multi-page coding and per-page coding
US8533559B2 (en) * 2008-05-12 2013-09-10 Panasonic Corporation Semiconductor recording device with error recovery
ATE539403T1 (de) 2008-06-24 2012-01-15 Sandisk Il Ltd Verfahren und vorrichtung zur fehlerkorrektur nach der löschanzahl eines festkörperspeichers
US8458536B2 (en) * 2008-07-17 2013-06-04 Marvell World Trade Ltd. Data recovery in solid state memory devices
US20100017650A1 (en) 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
US20100017649A1 (en) 2008-07-19 2010-01-21 Nanostar Corporation Data storage system with wear-leveling algorithm
KR101391362B1 (ko) 2008-07-23 2014-05-07 삼성전자주식회사 읽기 전압 레벨이 설정가능한 플래시 메모리 시스템 및읽기 전압 레벨의 설정방법
KR100967004B1 (ko) 2008-08-05 2010-06-30 주식회사 하이닉스반도체 플래시 메모리 장치의 동작 제어 방법
US8406048B2 (en) * 2008-08-08 2013-03-26 Marvell World Trade Ltd. Accessing memory using fractional reference voltages
KR101483190B1 (ko) * 2008-09-05 2015-01-19 삼성전자주식회사 메모리 시스템 및 그것의 데이터 처리 방법
US8041984B2 (en) 2008-10-17 2011-10-18 International Business Machines Corporation Redundancy information for adjusting threshold for component failure in a multi-layer system
KR101059673B1 (ko) 2008-12-26 2011-08-25 서울대학교산학협력단 신뢰도 또는 저장 용량을 동적으로 조절하는 저장 장치 및 그 방법
US8560918B1 (en) * 2009-04-21 2013-10-15 Marvell International Ltd. Method and apparatus for dynamically selecting an error correction code to be applied to data in a communication system
JP2011040124A (ja) 2009-08-07 2011-02-24 Toshiba Corp 半導体記憶装置のデータ読み出し方法
WO2011094454A2 (en) 2010-01-27 2011-08-04 Fusion-Io, Inc. Apparatus, system, and method for determining a read voltage threshold for solid-state storage media
KR101633048B1 (ko) * 2010-02-25 2016-06-24 삼성전자주식회사 메모리 시스템 및 그것의 데이터 처리 방법
KR101635506B1 (ko) * 2010-03-29 2016-07-04 삼성전자주식회사 데이터 저장 시스템 및 그것의 읽기 방법
US8667361B1 (en) * 2010-10-21 2014-03-04 Marvell International Ltd. Systems and methods for performing bit flipping in an LDPC decoder
JP2013542533A (ja) 2010-10-27 2013-11-21 エルエスアイ コーポレーション フラッシュメモリベースのデータ記憶のための順応ecc技術
WO2012075200A2 (en) 2010-12-01 2012-06-07 Sandforce, Inc. Dynamic higher-level redundancy mode management with independent silicon elements
US8719663B2 (en) 2010-12-12 2014-05-06 Lsi Corporation Cross-decoding for non-volatile storage
KR101454807B1 (ko) 2011-01-18 2014-11-04 엘에스아이 코포레이션 상위-레벨 리던던시 정보 계산
US8839073B2 (en) 2012-05-04 2014-09-16 Lsi Corporation Zero-one balance management in a solid-state disk controller
US9021337B1 (en) * 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for adaptively selecting among different error correction coding schemes in a flash drive
US8898549B2 (en) * 2013-02-12 2014-11-25 Seagate Technology Llc Statistical adaptive error correction for a flash memory

Also Published As

Publication number Publication date
KR101541040B1 (ko) 2015-08-03
TW201203269A (en) 2012-01-16
WO2011113034A3 (en) 2012-01-19
KR101466555B1 (ko) 2014-12-02
CN102985975A (zh) 2013-03-20
US10230406B2 (en) 2019-03-12
JP2013522735A (ja) 2013-06-13
US20170155409A1 (en) 2017-06-01
WO2011113034A2 (en) 2011-09-15
EP2545554A4 (en) 2015-03-11
US20130139035A1 (en) 2013-05-30
US8935595B2 (en) 2015-01-13
KR20140047740A (ko) 2014-04-22
EP2545554A2 (en) 2013-01-16
KR20130006472A (ko) 2013-01-16
TWI579854B (zh) 2017-04-21

Similar Documents

Publication Publication Date Title
JP5806792B2 (ja) フラッシュメモリ用のldpc消失復号化
US11449252B2 (en) Method of writing and reading data in an NVM using Lpage identification headers
US9239754B2 (en) Single read based soft-decision decoding of non-volatile memory
US10002046B2 (en) Zero-one balance management in a solid-state disk controller
US9461904B2 (en) Selective enablement of operating modes or features via host transfer rate detection
JP6452278B2 (ja) 不揮発性メモリの耐久性平準化のためのセル損傷の測定
US9595320B2 (en) Optimization of read thresholds for non-volatile memory
US20140215103A1 (en) Decoupled locking dma architecture
KR20130114681A (ko) 독립 실리콘 소자들을 갖는 동적 상위 레벨 리던던시 모드 관리
KR20140094468A (ko) 비휘발성 메모리에 대한 기록들의 관리 및 그 기록들의 영역 선택
US9396104B1 (en) Accessing compressed data of varying-sized quanta in non-volatile memory

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140311

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140311

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141202

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150228

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150402

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150506

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150602

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: 20150707

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150806

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150905

R150 Certificate of patent or registration of utility model

Ref document number: 5806792

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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