CN102985975B - 闪存的低密度奇偶校验擦除译码 - Google Patents
闪存的低密度奇偶校验擦除译码 Download PDFInfo
- Publication number
- CN102985975B CN102985975B CN201180023737.XA CN201180023737A CN102985975B CN 102985975 B CN102985975 B CN 102985975B CN 201180023737 A CN201180023737 A CN 201180023737A CN 102985975 B CN102985975 B CN 102985975B
- Authority
- CN
- China
- Prior art keywords
- flash memory
- read
- storage
- types
- component
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 199
- 238000005516 engineering process Methods 0.000 claims abstract description 78
- 239000007787 solid Substances 0.000 claims abstract description 22
- 238000003860 storage Methods 0.000 claims description 141
- 238000000034 method Methods 0.000 claims description 74
- 230000004044 response Effects 0.000 claims description 73
- 239000002356 single layer Substances 0.000 claims description 17
- 238000001514 detection method Methods 0.000 claims description 12
- 239000000835 fiber Substances 0.000 claims description 11
- 230000002093 peripheral effect Effects 0.000 claims description 11
- 238000012795 verification Methods 0.000 claims description 10
- 230000000875 corresponding effect Effects 0.000 description 36
- 230000008569 process Effects 0.000 description 23
- 230000006870 function Effects 0.000 description 13
- 230000008859 change Effects 0.000 description 11
- 238000013507 mapping Methods 0.000 description 10
- 239000010410 layer Substances 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 230000001413 cellular effect Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 102100024406 60S ribosomal protein L15 Human genes 0.000 description 2
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 101001117935 Homo sapiens 60S ribosomal protein L15 Proteins 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 235000013599 spices Nutrition 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 210000001519 tissue Anatomy 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000005307 ferromagnetism Effects 0.000 description 1
- 229910052738 indium Inorganic materials 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 210000003205 muscle Anatomy 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Abstract
固态硬盘(SSD)控制器使用LDPC译码从而实现延迟和/或纠错能力得到改进的闪存存取。对于BER小于预定值的SLC闪存,SSD控制器使用1比特读取(一次读取)硬判决LDPC译码器来存取闪存。如果硬判决LDPC译码器检测到无法纠正的错误,则SSD控制器使用1.5比特读取(两次读取)擦除判决LDPC译码器从而存取闪存。对于原始BER在两个其他预定值之间的闪存,SSD控制器只使用擦除判决LDPC译码器来存取闪存,而不使用硬判决LDPC译码器。SSD控制器的变形类似地存取MLC技术。一些SSD控制器根据动态译码器选择标准在硬决策和基于擦除的译码器之间动态地切换。
Description
相关申请的交叉引用
本申请主张的优先权利益在附带的申请资料表、请求或传送单里面注明(视情况而定,如果有的话)。在即时申请类型允许的范围内,以下申请通过引用结合于本申请,以下所有申请都由本即时申请的所有人拥有:
2010年3月12日递交的标题为“LDPC Erasure Decoding for Flash Memories”的美国临时申请(备案号:SF-10-01,序号:61/313,681),第一发明人:Hao Zhong。
技术领域
为了提高使用性能、效率和实用性,需要闪存存取方面的提升。
背景技术
除非明确指出是公开或熟知的,否则本文所提到的技术和概念(包括:上下文、定义或比较目的)不应当被理解为承认这种技术和概念是早先公开已知的或者是现有技术的一部分。本文引用的所有参考文献(如果有的话),包括:专利、专利申请和出版物,无论是否是专门结合的,都通过参考全部结合本申请中,以用于所有的目的。
发明内容
本发明能够以多种方式实现,包括:实现为工艺、制品、设备、系统、组合物和诸如计算机可读存储介质的计算机可读介质(例如,诸如磁盘的以光和/或磁质量存储设备的介质,或诸如闪存存储器的具有非易失性存储器的集成电路),或程序指令通过光或电子通信链路发送的计算机网络。在本说明书中,这些实现方式或本发明可以采用的任何其他形式可以称为技术。具体实施方式对本发明的一个或多个实施方式进行了说明,这些实施方式能够在上述指出的领域中提高使用性能、效率和实用性。具体实施方式包括有助于快速理解该具体实施方式其余部分的引言。该引言包括根据本文所述概念的一个或多个系统、方法、制品和计算机可读介质的示例实施方式。正如在结论中详细讨论的,本发明涵盖在公布的权利要求书的范围内所有可能的修改和变化。
附图说明
图1A示出了固态硬盘(SSD)的实施方式的选定详情,该固态硬盘包括采用基于低密度奇偶校验(LDPC)码的闪存存取的SSD控制器。
图1B示出了包括图1A的SSD的系统的实施方式的选定详情。
图1C示出了包括图1A的SSD的系统的实施方式的选定详情。
图2A示出了经由一次读取单层单元(SLC)来获得硬判决信息的实施方式的选定详情,图2B示出了经由三次读取SLC获得软判决信息的实施方式的选定详情,以及图2C示出了经由两次读取SLC获得擦除判决信息的实施方式的选定详情。图2A到图2C示出了:i)对应于单元中写入的各种逻辑状态,跨所有单元的阈值电压分布,和ii)根据实施方式使用的感测电压电平(虚线所示)以检索单元内存储的原始数据。
图3示出了各种技术的纠错性能,诸如,各种速率8/9码。
图4A、图4B和图4C示出了基于LDPC译码的SSD的实施方式的操作的选定详情。
图5A示出了经由七次读取每单元2比特的多层单元(MLC)获得信息的实施方式的选定详情,图5B示出了经由五次读取每单元2比特的MLC获得擦除判决信息的实施方式的选定详情。图5A和图5B示出了:i)对应于单元中写入的各种逻辑状态,跨所有单元的阈值电压分布,和ii)根据实施方式使用的感测电压电平(虚线所示)以检索单元中存储的原始数据。
具体实施方式
下面连同示出了本发明选定详情的附图对本发明的一个或多个实施方式进行详细描述。结合实施方式对本发明进行描述。本申请的实施方式可认为仅仅是示例性的,本发明显然并不限于任何或所有本文的这些实施方式,或不受这些实施方式的限制,并且本发明涵盖多种替换物、变形例和等同物。为了避免说明的单调,各组实施方式可采用多种词语标签(包括,但不限于:第一、最后、某个、各种、更多、其他、特定、选择、一些和显著的);当在本申请中使用时,这些标签明显并不意味着表达质量,或任何形式的优先选择或偏见,而仅仅是便于区分各组实施方式。所公开的处理的一些操作顺序在本发明的范围内是可变的。无论在什么情况下,多个实施方式都用于描述处理、方法和/或程序指令功能的变化,根据预定或动态确定标准所构想的其他实施方式执行分别对应于多个实施方式的操作模式之一的静态和/或动态选择。在下面的描述中对许多具体细节进行了阐述,以能够透射理解本发明。提供细节是为了进行示例的目的,并且可在没有一些或所有这些细节的情况下根据权利要求可以实践本发明。为了清楚起见,没有对本发明相关的技术领域内熟知的技术材料进行描述,从而本发明会很容易理解。
引言
包括该引言仅是为了便于更快理解具体实施方式;本发明并不限于引言中所呈现的概念(包括:详细示例,如果有的话),因为任何引言的段落必然是整个主题的删减视角,而不是详尽或限制性的描述。例如,下面的引言提供了仅对于某些实施方式的空间和组织受限的信息概览。存在了包括最终从中撰写了权利要求书的多个其他实施方式,其贯穿说明书的其他部分来讨论。
缩写
在本文的其他地方,各种缩写缩略词或缩写表示某元件。至少一些缩写的描述如下。
缩写 | 说明 |
BCH | 博斯-查德胡里-霍昆格母 |
BER | 比特误码率 |
CD | 光盘 |
CF | 紧凑式闪存 |
CMOS | 互补金属氧化物半导体 |
CPU | 中央处理单元 |
CRC | 循环冗余检验 |
DDR | 双倍数据速率 |
DMA | 直接存储器存取 |
DVD | 多功能数码光盘/视频光盘 |
ECC | 误差校正码 |
HDD | 硬盘驱动器 |
LBA | 逻辑块地址 |
LDPC | 低密度奇偶校验 |
MLC | 多层单元 |
MMC | 多媒体卡 |
NCQ | 原生命令队列 |
ONFI | 开放NAND闪存接口 |
PC | 个人计算机 |
PCIe | 外设部件互连高速(PCI高速) |
PDA | 个人数字助理 |
RAID | 廉价/独立磁盘冗余阵列 |
RS | 里德索洛蒙 |
SAS | 串行连接小型计算机系统接口(串行SCSI) |
SATA | 串行高级技术附件(串行ATA) |
SD | 安全数字 |
SLC | 单层单元 |
SMART | 自我监视、分析和报告技术 |
SSD | 固态硬盘/驱动 |
USB | 通用串行总线 |
一些类型的NAND闪存使用一系列浮动栅极晶体管来存储信息。每个比特单元(例如:浮动栅极晶体管)能存储单比特信息(已知为SLC)或可替换地,能存储多比特信息(已知为MLC)。CMOS技术比例缩减,减少了存储在浮动栅极中电子的数量。日益增加的存储容量和/或密度增加了每个单元所存储的比特的数量。因此,由于技术比例缩减,因此相对小的电压范围表示单元中存储的值。存储的电子的数量随时间的检测和/或变化的不确定性增加了数据读取错误。在一些实现方式和/或使用场景中,ECC能正确检索其他损坏的数据。
一些类型的SSD使用闪存来提供非易失性存储器(例如,在不施加电力的情况下保持信息)。一些SSD与诸如HDD、CD驱动器和DVD驱动器的磁和/或光非易失性存储器使用的形状因子、电接口和/或协议兼容。一些SSD使用RS和/或BCH码进行纠错。
固态硬盘(SSD)控制器使用低密度奇偶校验(LDPC)译码从而实现具有改善的延迟和/或纠错能力的闪存存取。在一些实施方式中,如果单层单元(SLC)技术闪存的原始比特误码率(BER)小于预定值,则SSD控制器使用1比特读取(单次读取)硬判决LDPC译码器来存取闪存。如果硬判决LDPC译码器检测到无法纠正的错误,则SSD控制器使用1.5比特读取(两次读取)擦除判决LDPC译码器来存取闪存。在一些实施方式中,如果闪存的原始BER在两个其他预定值之间,则SSD控制器只使用擦除判决LDPC译码器来存取闪存,而不使用硬判决LDPC译码器。SSD控制器的变体使用类似的技术来存取多层单元(MLC)技术闪存。一些SSD控制器根据动态译码器选择标准在硬判决和基于擦除的译码器之间切换。该标准包括程序/擦除循环数、读取干扰事件计数、写入干扰事件计数、先前可纠正错误计数和/或先前无法纠正错误计数。
示例实施方式
结束了对于具体实施方式的引言,接下来是示例实施方式集合,包括:至少一些明确列出为示例组合(EC),根据本文描述的概念对多个实施方式类型进行了额外说明;这些示例并不意味着相互排斥、穷尽或限制;并且本发明并不限于这些示例实施方式,而是涵盖所公开的权利要求书范围内所有可能的修改和变化。
EC1)一种系统,包括:
用于响应于接收的对于闪存中特定位置存储的数据的请求来请求在该特定位置进行一次或多次初始读取的装置;
响应于该初始读取的完成,用于基于该初始读取的结果经由基于硬判决的低密度奇偶校验(LDPC)译码来检测无法纠正的错误的装置;
响应于用于检测的装置,用于请求在该特定位置进行一次或多次额外读取的装置;以及
响应于该额外读取的完成,用于基于该额外读取的相应结果执行擦除判决LDPC译码的装置。
EC2)EC1的系统,其中,闪存包括单层单元(SLC)技术闪存,该初始读取在数量上为一次,该额外读取在数量上为两次,每次额外读取处于相应的读取电压。
EC3)EC2的系统还包括:用于针对每个额外读取提供相应的电压说明符(specifier)的装置。
EC4)EC3的系统,其中,至少一个电压说明符是以下各项之一:显式电压电平、多个预定电压电平之一的标识符、以及多个读取请求类型之一的唯一标识。
EC5)EC1的系统,其中,闪存包括多层单元(MLC)技术闪存。
EC6)EC1的系统,其中,接收与多种接口标准中的一种或多种兼容,该接口标准包括:
串行高级技术附件(SATA)接口标准,
串行连接小型计算机系统接口(SAS)接口标准,
外设部件互连高速(PCIe)接口标准,
光纤信道接口标准,以及
以太网接口标准。
EC7)EC1的系统,其中,用于请求初始读取的装置和用于请求额外读取的装置经由控制器,该控制器和闪存包含在被实现为多个非易失性存储组件类型之一的存储器子系统中,该非易失性存储组件类型包括:
通用串行总线(USB)存储组件类型,
紧凑式闪存(CF)存储组件类型,
多媒体卡(MMC)存储组件类型,
安全数字(SD)存储组件类型,
记忆棒存储组件类型,和
xD图像卡存储组件类型。
EC8)一种方法,包括:
响应于接收的对于闪存中特定位置存储的数据的请求,请求在该特定位置进行一次或多次初始读取;
响应于该初始读取的完成,基于该初始读取的结果经由基于硬判决的低密度奇偶校验(LDPC)译码来检测无法纠正的错误;
响应于该检测,请求在该特定位置进行一次或多次额外读取;以及
响应于该额外读取的完成,基于该额外读取的相应结果执行擦除判决LDPC译码。
EC9)EC84的方法,其中,闪存包括单层单元(SLC)技术闪存,该初始读取在数量上为一次,该额外读取在数量上为两次,每次额外读取处于相应的读取电压。
EC10)EC9的方法,还包括:针对每个额外读取提供相应的电压说明符。
EC11)EC10的方法,其中,至少一个电压说明符是以下各项之一:显式电压电平、多个预定电压电平之一的标识符、以及多个读取请求类型之一的唯一标识。
EC12)EC8的方法,其中,闪存包括多层单元(MLC)技术闪存。
EC13)EC8的方法,其中,接收与多种接口标准中的一种或多种兼容,该接口标准包括:
串行高级技术附件(SATA)接口标准,
串行连接小型计算机系统接口(SAS)接口标准,
外设部件互连高速(PCIe)接口标准,
光纤信道接口标准,以及
以太网接口标准。
EC14)EC8的方法,其中,请求初始读取和请求额外读取是经由控制器,该控制器和闪存包含在被实现为多个非易失性存储组件类型之一的存储器子系统中,该非易失性存储组件类型包括:
通用串行总线(USB)存储组件类型,
紧凑式闪存(CF)存储组件类型,
多媒体卡(MMC)存储组件类型,
安全数字(SD)存储组件类型,
记忆棒存储组件类型,和
xD图像卡存储组件类型。
EC15)一种系统,包括:
接口;以及
控制器,该控制器能够:
响应于经由该接口接收的对于闪存中特定位置存储的数据的请求,请求在该特定位置进行一次或多次初始读取;
响应于该初始读取的完成,基于该初始读取的结果经由基于硬判决的低密度奇偶校验(LDPC)译码来检测无法纠正的错误;
响应于该检测,请求在该特定位置进行一次或多次额外读取;以及
响应于该额外读取的完成,基于该额外读取的相应结果执行擦除判决LDPC译码。
EC16)EC15的系统,其中,闪存包括单层单元(SLC)技术闪存,该初始读取在数量上为一次,该额外读取在数量上为两次,每次额外读取处于相应的读取电压。
EC17)EC16的系统,其中,控制器还能为每个额外读取提供相应的电压说明符。
EC18)EC17的系统,其中,至少一个电压说明符是以下各项之一:显式电压电平、多个预定电压电平之一的标识符、以及多个读取请求类型之一的唯一标识。
EC19)EC15的系统,其中,闪存包括多层单元(MLC)技术闪存。
EC20)EC15的系统,其中,该控制器和闪存包含在被实现为多个非易失性存储组件类型之一的存储器子系统中,该非易失性存储组件类型包括:
通用串行总线(USB)存储组件类型,
紧凑式闪存(CF)存储组件类型,
多媒体卡(MMC)存储组件类型,
安全数字(SD)存储组件类型,
记忆棒存储组件类型,和
xD图像卡存储组件类型。
EC21)一种存储有一组指令的有形计算机可读介质,当被处理元件执行时,这组指令使处理元件进行下列操作,包括:
响应于接收的对于闪存中特定位置存储的数据的请求,请求在该特定位置进行一次或多次初始读取;
响应于该初始读取的完成,基于该初始读取的结果经由基于硬判决的低密度奇偶校验(LDPC)译码来检测无法纠正的错误;
响应于该检测,请求在该特定位置进行一次或多次额外读取;以及
响应于该额外读取的完成,基于该额外读取的相应结果执行擦除判决LDPC译码。
EC22)EC21的有形计算机可读介质,其中,闪存包括单层单元(SLC)技术闪存,该初始读取在数量上为一次,该额外读取在数量上为两次,每次额外读取处于相应的读取电压。
EC23)EC22的有形计算机可读介质,其中,操作还包括针对每个额外读取提供相应的电压说明符
EC24)EC23的有形计算机可读介质,其中,至少一个电压说明符是以下各项之一:显式电压电平、多个预定电压电平之一的标识符、以及多个读取请求类型之一的唯一标识。
EC25)EC21的有形计算机可读介质,其中,闪存包括多层单元(MLC)技术闪存。
EC26)EC21的有形计算机可读介质,其中,接收与多种接口标准中的一种或多种兼容,该接口标准包括:
串行高级技术附件(SATA)接口标准,
串行连接小型计算机系统接口(SAS)接口标准,
外设部件互连高速(PCIe)接口标准,
光纤信道接口标准,以及
以太网接口标准。
EC27)EC21的有形计算机可读介质,其中,处理元件包含在控制器中,该控制器和闪存包含在被实现为多个非易失性存储组件类型之一的存储器子系统中,该非易失性存储组件类型包括:
通用串行总线(USB)存储组件类型,
紧凑式闪存(CF)存储组件类型,
多媒体卡(MMC)存储组件类型,
安全数字(SD)存储组件类型,
记忆棒存储组件类型,和
xD图像卡存储组件类型。
EC28)一种系统,包括:
响应于接收的对于闪存中特定位置存储的数据的请求,用于请求在该特定位置进行一次或多次初始读取的装置;
响应于该初始读取的完成,用于基于该初始读取的结果经由基于硬判决的低密度奇偶校验(LDPC)译码来检测无法纠正的错误的装置;
响应于用于检测的装置,用于请求在该特定位置进行一次或多次额外读取的装置;以及
响应于该额外读取的完成,用于基于该额外读取的相应结果执行擦除判决LDPC译码的装置。
EC29)EC28的系统,其中,闪存包括单层单元(SLC)技术闪存,该初始读取在数量上为一次,该额外读取在数量上为两次。
EC30)EC29的系统,其中,每次额外读取处于相应的读取电压。
EC31)EC30的系统还包括:用于针对每个额外读取提供相应的电压说明符的装置。
EC32)EC31的系统,其中,至少一个电压说明符是以下各项之一:显式电压电平、多个预定电压电平之一的标识符、以及多个读取请求类型之一的唯一标识。
EC33)EC28的系统,其中,闪存包括多层单元(MLC)技术闪存。
EC34)EC33的系统,其中,每次初始读取处于相应的读取电压。
EC35)EC34的系统还包括:用于针对每次初始读取提供相应的电压说明符的装置。
EC36)EC35的系统,其中,至少一个电压说明符是以下各项之一:显式电压电平、多个预定电压电平之一的标识符、以及多个读取请求类型之一的唯一标识。
EC37)EC28的系统,其中,接收与多种接口标准中的一种或多种兼容,该接口标准包括:
串行高级技术附件(SATA)接口标准,
串行连接小型计算机系统接口(SAS)接口标准,
外设部件互连高速(PCIe)接口标准,
光纤信道接口标准,以及
以太网接口标准。
EC38)EC28的系统,其中,用于请求初始读取的装置和用于请求额外读取的装置经由控制器,该控制器和闪存包含在被实现为多个非易失性存储组件类型之一的存储器子系统中,该非易失性存储组件类型包括:
通用串行总线(USB)存储组件类型,
紧凑式闪存(CF)存储组件类型,
多媒体卡(MMC)存储组件类型,
安全数字(SD)存储组件类型,
记忆棒存储组件类型,和
xD图像卡存储组件类型。
EC39)EC28的系统还包括:用于经由闪存接口将初始读取和额外读取接口至闪存的装置。
EC40)EC39的系统,其中,闪存接口包括以下各项中的一项或多项:
异步接口,
同步接口,
双倍数据速率(DDR)同步接口,
开放式NAND闪存接口(ONFI)兼容接口,和
切换模式(Toggle-mode)兼容闪存接口。
EC41)EC28的系统,其中,数据请求来自主机。
EC42)EC41的系统,其中,主机包括以下各项中的一项或多项:
计算机,
工作站计算机,
服务器计算机,
存储服务器,
个人计算机(PC),
膝上型计算机,
笔记本计算机,
上网本计算机,
个人数字助理(PDA),
媒体播放器,
媒体记录器,
数码相机,
蜂窝手机,
无绳电话手机,和
电子游戏机。
EC43)一种方法,包括:
响应于接收的对于闪存中特定位置存储的数据的请求,请求在该特定位置进行一次或多次初始读取;
响应于该初始读取的完成,基于该初始读取的结果经由基于硬判决的低密度奇偶校验(LDPC)译码来检测无法纠正的错误;
响应于该检测,请求在该特定位置进行一次或多次额外读取;以及
响应于该额外读取的完成,基于该额外读取的相应结果执行擦除判决DPC译码。
EC44)EC43的方法,其中,闪存包括单层单元(SLC)技术闪存,该初始读取在数量上为一次,该额外读取在数量上为两次。
EC45)EC44的方法,其中,每次额外读取处于相应的读取电压。
EC46)EC45的方法,还包括:针对每次额外读取提供相应的电压说明符。
EC47)EC46的方法,其中,至少一个电压说明符是以下各项之一:显式电压电平、多个预定电压电平之一的标识符、以及多个读取请求类型之一的唯一标识。
EC48)EC43的方法,其中,闪存包括多层单元(MLC)技术闪存。
EC49)EC48的方法,其中,每次初始读取处于相应的读取电压。
EC50)EC49的方法,还包括:针对每次初始读取提供相应的电压说明符。
EC51)EC50的方法,其中,至少一个电压说明符是以下各项之一:显式电压电平、多个预定电压电平之一的标识符、以及多个读取请求类型之一的唯一标识。
EC52)EC43的方法,其中,接收与多种接口标准中的一种或多种兼容,该接口标准包括:
串行高级技术附件(SATA)接口标准,
串行连接小型计算机系统接口(SAS)接口标准,
外设部件互连高速(PCIe)接口标准,
光纤信道接口标准,以及
以太网接口标准。
EC53)EC43的方法,其中,请求初始读取和请求额外读取经由控制器,该控制器和闪存包含在被实现为多个非易失性存储组件类型之一的存储器子系统中,该非易失性存储组件类型包括:
通用串行总线(USB)存储组件类型,
紧凑式闪存(CF)存储组件类型,
多媒体卡(MMC)存储组件类型,
安全数字(SD)存储组件类型,
记忆棒存储组件类型,和
xD图像卡存储组件类型。
EC54)EC43的方法,还包括:经由闪存接口将初始读取和额外读取接口至闪存。
EC55)EC54的方法,其中,闪存接口包括以下各项中的一项或多项:
异步接口,
同步接口,
双倍数据速率(DDR)同步接口,
开放式NAND闪存接口(ONFI)兼容接口,和
切换模式兼容闪存接口。
EC56)EC43的方法,其中,数据请求来自主机。
EC57)EC56的方法,其中,主机包括以下各项中的一项或多项:
计算机,
工作站计算机,
服务器计算机,
存储服务器,
个人计算机(PC),
膝上型计算机,
笔记本计算机,
上网本计算机,
个人数字助理(PDA),
媒体播放器,
媒体记录器,
数码相机,
蜂窝手机,
无绳电话手机,和
电子游戏机。
EC58)一种系统,包括:
接口;以及
控制器,该控制器能够:
响应于经由接口接收的对于闪存中特定位置存储的数据的请求,请求在该特定位置进行一次或多次初始读取;
响应于该初始读取的完成,基于该初始读取的结果经由基于硬判决的低密度奇偶校验(LDPC)译码来检测无法纠正的错误;
响应于该检测,请求在该特定位置进行一次或多次额外读取;以及
响应于该额外读取的完成,基于该额外读取的相应结果执行擦除判决LDPC译码。
EC59)EC58的系统,其中,闪存包括单层单元(SLC)技术闪存,该初始读取在数量上为一次,该额外读取在数量上为两次。
EC60)EC59的系统,其中,每次额外读取处于相应的读取电压。
EC61)EC60的系统,其中,控制器还能够针对每次额外读取提供相应的电压说明符。
EC62)EC61的系统,其中,至少一个电压说明符是以下各项之一:显式电压电平、多个预定电压电平之一的标识符、以及多个读取请求类型之一的唯一标识。
EC63)EC58的系统,其中,闪存包括多层单元(MLC)技术闪存。
EC64)EC63的系统,其中,每次初始读取处于相应的读取电压。
EC65)EC64的系统,其中,控制器还能够针对每次初始读取提供相应的电压说明符。
EC66)EC65的系统,其中,至少一个电压说明符是以下各项之一:显式电压电平、多个预定电压电平之一的标识符、以及多个读取请求类型之一的唯一标识。
EC67)EC58的系统,其中,接收与多种接口标准中的一种或多种兼容,该接口标准包括:
串行高级技术附件(SATA)接口标准,
串行连接小型计算机系统接口(SAS)接口标准,
外设部件互连高速(PCIe)接口标准,
光纤信道接口标准,以及
以太网接口标准。
EC68)EC58的系统,其中,该控制器和闪存包含在被实现为多个非易失性存储组件类型之一的存储器子系统中,该非易失性存储组件类型包括:
通用串行总线(USB)存储组件类型,
紧凑式闪存(CF)存储组件类型,
多媒体卡(MMC)存储组件类型,
安全数字(SD)存储组件类型,
记忆棒存储组件类型,和
xD图像卡存储组件类型。
EC69)EC58的系统,其中,接口为主机接口并且还包括能够向闪存提供初始读取和额外读取的闪存接口。
EC70)EC69的系统,其中,闪存接口包括以下各项中的一项或多项:
异步接口,
同步接口,
双倍数据速率(DDR)同步接口,
开放式NAND闪存接口(ONFI)兼容接口,和
切换模式兼容闪存接口。
EC71)EC58的系统,其中,接口能够将来自主机的数据请求进行通信。
EC72)EC71的系统,其中,主机包括以下各项中的一项或多项:
计算机,
工作站计算机,
服务器计算机,
存储服务器,
个人计算机(PC),
膝上型计算机,
笔记本计算机,
上网本计算机,
个人数字助理(PDA),
媒体播放器,
媒体记录器,
数码相机,
蜂窝手机,
无绳电话手机,和
电子游戏机。
EC73)一种存储了指令集的有形计算机可读介质,当被处理元件执行时,该指令集使处理元件执行下列操作,包括:
响应于接收的对于闪存中特定位置存储的数据的请求,请求在该特定位置进行一次或多次初始读取;
响应于该初始读取的完成,基于该初始读取的结果经由基于硬判决的低密度奇偶校验(LDPC)译码来检测无法纠正的错误;
响应于该检测,请求在该特定位置进行一次或多次额外读取;以及
响应于该额外读取的完成,基于该额外读取的相应结果执行擦除判决LDPC译码。
EC74)EC73的有形计算机可读介质,其中,闪存包括单层单元(SLC)技术闪存,该初始读取在数量上为一次,该额外读取在数量上为两次。
EC75)EC74的有形计算机可读介质,其中,每次额外读取处于相应的读取电压。
EC76)EC75的有形计算机可读介质,其中,操作还包括针对每次额外读取提供相应的电压说明符。
EC77)EC76的有形计算机可读介质,其中,至少一个电压说明符是以下各项之一:显式电压电平、多个预定电压电平之一的标识符、以及多个读取请求类型之一的唯一标识。
EC78)EC73的有形计算机可读介质,其中,闪存包括多层单元(MLC)技术闪存。
EC79)EC78的有形计算机可读介质,其中,每次初始读取处于相应的读取电压。
EC80)EC79的有形计算机可读介质,其中,操作还包括针对每次初始读取提供相应的电压说明符。
EC81)EC80的有形计算机可读介质,其中,至少一个电压说明符是以下各项之一:显式电压电平、多个预定电压电平之一的标识符、以及多个读取请求类型之一的唯一标识。
EC82)EC73的有形计算机可读介质,其中,接收与多种接口标准中的一种或多种兼容,该接口标准包括:
串行高级技术附件(SATA)接口标准,
串行连接小型计算机系统接口(SAS)接口标准,
外设部件互连高速(PCIe)接口标准,
光纤信道接口标准,以及
以太网接口标准。
EC83)EC73的有形计算机可读介质,其中,处理元件包含在控制器中,该控制器和闪存包含在被实现为多个非易失性存储组件类型之一的存储器子系统中,该非易失性存储组件类型包括:
通用串行总线(USB)存储组件类型,
紧凑式闪存(CF)存储组件类型,
多媒体卡(MMC)存储组件类型,
安全数字(SD)存储组件类型,
记忆棒存储组件类型,和
xD图像卡存储组件类型。
EC84)EC73的有形计算机可读介质,其中,初始读取和额外读取经由闪存接口来接口至闪存。
EC85)EC84的有形计算机可读介质,其中,闪存接口包括以下各项中的一项或多项:
异步接口,
同步接口,
双倍数据速率(DDR)同步接口,
开放式NAND闪存接口(ONFI)兼容接口,和
切换模式兼容闪存接口。
EC86)EC73的有形计算机可读介质,其中,数据请求来自主机。
EC87)EC86的有形计算机可读介质,其中,主机包括以下各项中的一项或多项:
计算机,
工作站计算机,
服务器计算机,
存储服务器,
个人计算机(PC),
膝上型计算机,
笔记本计算机,
上网本计算机,
个人数字助理(PDA),
媒体播放器,
媒体记录器,
数码相机,
蜂窝手机,
无绳电话手机,和
电子游戏机。
EC88)一种系统,包括:
用于请求在特定位置的闪存的两次擦除判决读取的装置;以及
用于基于该两次擦除判决读取的结果执行纠删低密度奇偶校验(LDPC)译码的装置。
EC89)EC88的系统,还包括:
用于响应于对于在特定位置存储的数据的请求,来请求在该特定位置的闪存的硬判决读取的装置;
用于基于该硬判决读取的结果执行基于硬判决的LDPC译码的装置;以及
其中,用于请求两次擦除判决读取的装置响应于用于执行基于硬判决的LDPC译码的装置的无法纠正错误的结果来请求两次擦除判决读取。
EC90)EC88的系统,还包括:
响应于用于执行纠删LDPC译码的装置失败,用于请求在特定位置的闪存的一次或多次软判决读取的装置;以及
用于基于软判决读取的结果执行软判决LDPC译码的装置。
EC91)EC88的系统还包括:至少一部分闪存。
EC92)EC91的系统,其中,闪存包括多层单元(MLC)技术。
EC93)一种方法,包括:
请求在特定位置的闪存的两次擦除判决读取;以及
基于两次擦除判决读取的结果执行纠删低密度奇偶校验(LDPC)译码。
EC94)EC93的方法,还包括:
响应于对于特定位置存储的数据的请求,来请求在该特定位置的闪存的硬判决读取;
基于硬判决读取的结果执行基于硬判决的LDPC译码;以及
其中,请求两次擦除判决读取是响应于基于硬判决的LDPC译码的无法纠正错误结果。
EC95)EC93的方法,还包括:
响应于纠删LDPC译码失败来请求在该特定位置的闪存的一次或多次软判决读取;以及
基于软判决读取的结果执行软判决LDPC译码。
EC96)EC93的方法还包括:至少一部分闪存。
EC97)EC96的方法,其中,闪存包括多层单元(MLC)技术。
EC98)一种系统,包括:
控制器,能够请求在特定位置的闪存的两次擦除判决读取;以及
纠删低密度奇偶校验(LDPC)译码器,能够对于该两次擦除判决读取的结果进行操作。
EC99)EC98的系统,还包括:
基于硬判决的LDPC译码器,能够对硬判决读取的结果进行操作;
其中,该控制器还能够响应于对于存储在特定位置的数据的请求来请求在特定位置的闪存的硬判决读取;以及
其中,请求两次擦除判决读取是响应于基于硬判决的LDPC译码器的无法纠正错误结果。
EC100)EC98的系统,还包括:
软判决LDPC译码器,能够对于一次或多次软判决读取的结果进行操作;以及
其中,该控制器还能够响应于纠删LDPC译码器失败来请求在特定位置的闪存的软判决读取。
EC101)EC98的系统还包括:至少一部分闪存。
EC102)EC101的系统,其中,闪存包括多层单元(MLC)技术。
EC103)一种系统,包括:
用于请求在特定位置的闪存的第一和第二读取并分别接收响应的第一和第二结果的装置;以及
用于基于第一和第二结果执行纠删低密度奇偶校验(LDPC)译码的装置。
EC104)EC103的系统,还包括:用于响应于对于在特定位置存储的数据的请求来请求在该特定位置的闪存的第三读取的装置。
EC105)EC104的系统,其中,第三读取先于第一和第二读取,并且响应于第三读取得出的无法纠正错误来请求第一和第二读取。
EC106)EC105的系统,还包括:用于基于第三读取的结果执行基于硬判决的LDPC译码的装置。
EC107)EC106的系统,其中,用于执行基于硬判决的LDPC译码的装置确定是否发生无法纠正错误。
EC108)EC103的系统,其中,闪存包括多层单元(MLC)技术。
EC109)一种系统,包括:
对于计算主机的接口;
对于闪存的接口;以及
控制器,该控制器能够:
接收来自计算主机的数据请求,
响应于该数据请求,指示闪存接口来请求在特定位置的闪存的第一和第二读取,并且接收分别响应于第一和第二读取的来自闪存的相应的第一和第二结果,以及
基于第一和第二结果执行纠删低密度奇偶校验(LDPC)译码。
EC110)EC109的系统,其中,该控制器还能够响应于经由对于计算主机的接口所接收的对于存储在特定位置的数据的请求,来请求在该特定位置的闪存的第三次读取闪存。
EC111)EC110的系统,其中,第三读取先于第一和第二读取,并且响应于第三读取得出的无法纠正错误来请求第一和第二读取。
EC112)EC109的系统,还包括:耦接至计算主机接口的计算主机。
EC113)EC109的系统,还包括:耦接至闪存接口的闪存。
EC114)EC113的系统,其中,闪存包括多层单元(MLC)技术。
EC115)EC113的系统,其中,第一和第二读取请求提供相应的电压说明符。
EC116)EC115的系统,其中,至少一个电压说明符是以下各项之一:显式电压电平、多个预定电压电平之一的标识符、以及多个读取请求类型之一的唯一标识。
EC117)EC109的系统,其中,接口和控制器包含在固态硬盘(SSD)中。
EC118)EC109的系统,还包括:闪存和存储子系统控制元件,该存储子系统控制元件包括接口和控制器,其中,闪存和存储子系统控制元件被实现为多个非易失性存储组件类型之一,该非易失性存储组件类型包括:
通用串行总线(USB)存储组件类型,
紧凑式闪存(CF)存储组件类型,
多媒体卡(MMC)存储组件类型,
安全数字(SD)存储组件类型,
记忆棒存储组件类型,和
xD图像卡存储组件类型。
EC119)EC109的系统,其中,对于计算主机的接口与多种接口标准中的一种或多种兼容,该接口标准包括:
串行高级技术附件(SATA)接口标准,
串行连接小型计算机系统接口(SAS)接口标准,
外设部件互连高速(PCIe)接口标准,
光纤信道接口标准,以及
以太网接口标准。
EC120)一种方法,包括:
请求在特定位置的闪存的第一和第二读取并分别接收响应的第一和第二结果;以及
基于第一和第二结果执行纠删低密度奇偶校验(LDPC)译码。
EC121)EC120的方法,还包括:响应于对于特定位置存储的数据的请求,根据纠删LDPC译码返回数据。
EC122)EC120的方法,其中,闪存包括单层单元(SLC)技术。
EC123)EC120的方法,其中,至少部分纠删LDPC译码在硬件中执行。
EC124)EC123的方法,其中,硬件包括至少一个硬件异或电路。
EC125)一种存储有指令集的计算机可读介质,当被处理元件执行时,该指令集使处理元件执行下列操作,包括:
请求在特定位置的闪存的第一和第二读取并分别接收响应的第一和第二结果;以及
基于第一和第二结果执行纠删低密度奇偶校验(LDPC)译码。
EC126)一种存储有指令集的计算机可读介质,当被处理元件执行时,该指令集使处理元件执行下列操作,包括:
收集译码器选择标准,该译码器选择标准包括以下各项中的任一项或多项:程序/擦除循环数、读取干扰事件数、写入干扰事件数、可以纠正的错误计数、以及无法纠正的错误计数;
至少部分地基于译码器选择标准来指示动态选择多种译码器类型之一,该译码器类型包括硬判决译码器类型和纠删译码器类型;以及
向闪存控制器电路提供选定的译码器类型的表示,该闪存控制器电路包括对应于硬判决译码器类型和纠删译码器类型的相应的译码器电路。
EC127)EC126的计算机可读介质,其中,操作还包括选择性地控制闪存控制器电路执行在闪存中指定位置的一次或多次读取,该一次或多次读取中的每一次使用不同的读取电压。
EC128)EC126的计算机可读介质,其中,译码器类型还包括软判决译码器类型,闪存控制器电路还包括对应于软判决译码器类型的译码器电路。
EC129)EC126的计算机可读介质,其中,一种或多种译码器类型至少部分地基于低密度奇偶校验(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)一种系统,包括:
用于请求在某位置的闪存的第一读取并接收响应的第一结果的装置;
如果根据硬判决低密度奇偶校验(LDPC)译码器,第一结果包括无法纠正的错误,则请求在该位置的闪存的第二和第三读取并且接收响应的各个第二和第三结果的装置;以及
用于至少基于第二和第三结果来执行纠删LDPC译码的装置。
EC140)EC139的系统,其中,用于请求第一读取的装置响应于对于该位置的所有或任何部分数据的请求。
EC141)EC139的系统,还包括:用于请求该位置的所有或任何部分数据的装置。
EC142)一种系统,包括:
对于计算主机的接口;
对于闪存的接口;以及
控制器,该控制器能够:
接收数据请求,
响应于该数据请求,指示闪存接口请求在耦接至闪存接口的闪存的某个位置的第一读取并响应于第一读取从闪存接收第一结果,
根据硬判决低密度奇偶校验(LDPC)译码器来确定第一结果是否包括无法纠正的错误,如果有,则指示闪存接口请求在该位置的闪存的第二和第三读取,并从闪存接收分别响应于第二和第三读取的相应的第二和第三结果,以及
至少基于第二和第三结果执行纠删LDPC译码。
EC143)EC142的系统,其中,计算主机接口、闪存接口和控制器包含在固态硬盘(SSD)中。
EC144)EC142的系统,其中,计算主机接口、闪存接口和控制器包含在非易失性存储组件中。
EC145)EC144的系统,其中,非易失性存储组件包括以下各项中的一个或多个:通用串行总线(USB)存储组件、紧凑式闪存(CF)存储组件、多媒体卡(MMC)存储组件、安全数字(SD)存储组件、记忆棒存储组件、以及xD存储组件。
EC146)EC142的系统,还包括:耦接至计算主机接口的计算主机。
EC147)EC146的系统,其中,计算主机是以下各项中的一个或任意组合:计算机、工作站计算机、服务器计算机、存储服务器、个人计算机(PC)、膝上型计算机、笔记本计算机、上网本计算机、个人数字助理(PDA)、媒体播放器、媒体记录器、数码相机、蜂窝手机、无绳电话手机和电子游戏机。
EC148)EC142的系统,还包括:耦接至闪存接口的闪存。
EC149)一种方法,包括:
请求在某个位置的闪存的第一读取并接收响应的第一结果;
根据硬判决低密度奇偶校验(LDPC)译码器,如果第一结果包括无法纠正的错误,则请求在该位置的闪存的第二和第三读取并且接收响应的各个第二和第三结果;以及
至少基于第二和第三结果执行纠删LDPC译码。
EC150)EC149的方法,其中,请求第一读取是响应于对于该位置的所有或任何部分的数据的请求。
EC151)EC149的方法,还包括:请求该位置的所有或任何部分数据。
EC152)一种存储有指令集的计算机可读介质,当被处理元件执行时,该指令集使处理元件执行下列操作,包括:
请求在某个位置的闪存的第一读取并接收响应的第一结果;
如果根据硬判决低密度奇偶校验(LDPC)译码器,第一结果包括无法纠正的错误,则请求在该位置的闪存的第二和第三读取并且接收响应的各个第二和第三结果;以及
至少基于第二和第三结果来执行纠删LDPC译码。
系统
图1A示出了固态硬盘(SSD)的实施方式的选定详情,该固态硬盘包括采用基于低密度奇偶校验(LDPC)码的闪存存取的SSD控制器固态硬盘。SSD控制器100经由一个或多个外部接口110通信地耦接至主机(未示出)。根据各种实施方式,外部接口110为以下各项中的一个或多个:SATA接口;SAS接口;PCIe接口;光纤信道接口;以太网接口(例如:10Gb以太网);任何上述接口的非标准版本;定制接口;或用于与存储和/或通信和/或计算设备互连的其他任何类型接口。例如,在一些实施方式中,SSD控制器100包括SATA接口和PCIe接口。
SSD控制器100还经由一个或多个设备接口190通信地耦接至包括一个或多个存储设备(例如,闪存设备192)的非易失性存储器199。根据各种实施方式,设备接口190为以下各项中的一个或多个:异步接口;同步接口;DDR同步接口;ONFI兼容接口,例如,ONFI2.2或ONFI3.0兼容接口;切换模式兼容闪存接口;任何上述接口的非标准版本;定制接口;或用于连接至存储设备的任何其他类型接口。
在一些实施方式中,闪存设备192具有一个或多个单独的闪存芯片(die)194。根据闪存设备192的其中一种特定类型,该特定闪存设备192中的多个闪存芯片194是可选的和/或选择性地并行存取。闪存设备192仅仅表示能与SSD控制器100通信耦接的存储设备的一种类型。在各种实施方式中,可使用任何类型的存储设备,例如,SLC NAND闪存、MLCNAND闪存、NOR闪存、只读存储器、静态随机存取存储器、动态随机存取存储器、铁磁性存储器、相变存储器、赛道形存储器、或其他任何类型的存储设备或存储介质。
根据各种实施方式,设备接口190被组织为:一条或多条总线,其中,每条总线一个或多个闪存设备192;一个或多个总线组,其中,每条总线一个或多个闪存设备192,其中,一组中的总线通常被并行存取;或闪存设备192至设备接口190的任何其他组织。
继续图1A,SSD控制器100具有一个或多个模块,例如:主机接口111、数据处理121、缓冲器131、映射141、回收站151、ECC161、设备接口逻辑191、以及CPU171。图1A所示的具体模块和互连仅仅表示一个实施方式,可以想到一些或所有模块以及未示出的其他模块的多种布置和互连。在第一示例中的一些实施方式,存在两个以上主机接口111来提供双通道。在第二示例中的一些实施方式,数据处理121和/或ECC161与缓冲器131组合。在第三示例中的一些实施方式,主机接口111直接与缓冲器131耦接,并且数据处理121可选地和/或选择性地对于存储在缓冲器131中的数据进行操作。在第四示例中的一些实施方式,设备接口逻辑191直接与缓冲器131耦接,并且ECC161可选地和/或选择性地对于存储在缓冲器131中的数据进行操作。
主机接口111经由外部接口110发送和接收命令和/或数据,并且,在一些实施方式中,经由标签跟踪113来跟踪单独命令的进程。例如,在一些实施方式中,主机接口111与SATA协议兼容,并且,通过NCQ命令能具有最多32条待处理命令,每条命令有表示为数字0到31的唯一标签。在一些实施方式中,标签跟踪113能够将针对经由外部接口110接收的命令的外部标签与用于在SSD控制器100处理过程中跟踪命令的内部标签关联。
根据各种实施方式,以下各项中的一个或多个:数据处理121可选地和/或选择性地处理在缓冲器131与外部接口110之间发送的一些或所有数据;以及数据处理121可选地和/或选择性地处理存储在缓冲器131中的数据。在一些实施方式中,数据处理121使用一个或多个引擎123来执行以下各项中的一项或多项:加密;解密;压缩;解压;格式化;重新格式化;转码;以及任何其他的数据处理和/或操控任务。
缓冲器131存储从设备接口190发送至外部接口110的数据,以及从外部接口110发送至设备接口190的数据。在一些实施方式中,缓冲器131还存储系统数据,例如SSD控制器100对于闪存设备192进行管理所使用的一些或所有的映射表。在各种实施方式中,缓冲器131具有下列一个或多个:用于临时存储数据的存储器197;用于控制数据到和/或来自缓冲器131的数据的移动的DMA133;用于提供较高水平纠错功能的ECC-X135,例如:跨多个闪存设备192和/或闪存芯片194执行的RAID;和其他数据移动和/或操控功能。
根据各种实施方式,下面一个或多个:ECC161可选地和/或选择性地处理在缓冲器131和设备接口190之间发送的一些或所有数据;以及ECC161可选地和/或选择性地处理存储在缓冲器131内的数据。在一些实施方式中,ECC161实现下面其中一个或多个:CRC码;汉明码;RS码;BCH码;LDPC码;维特比码;Trellis码;硬判决码;软判决码;擦除码;任何错误检测和/或纠正码;以及上述的任意组合。在一些实施方式中,ECC161包括一个或多个译码器(例如:LDPC译码器),从概念上讲,如硬、软和基于擦除的译码器169。
设备接口逻辑191经由设备接口190控制闪存设备192。设备接口逻辑191能根据闪存设备192的协议将数据发送到或从闪存设备192发送数据。设备接口逻辑191包括调度193,从而经由设备接口190选择性地顺序控制闪存设备192。例如,在一些实施方式中,调度193能排队对于闪存设备192的操作,并且当单独的闪存设备192(或闪存芯片194)可用时,选择性地将操作发送至单独的闪存设备192(或闪存芯片194)。
映射141能将外部接口110上使用的数据寻址与设备接口190上使用的数据寻址之间转换。例如,在一些实施方式中,在外部接口110上使用的LBA被映射141转换成定位一个或多个闪存芯片194的块和/或页地址。在一些实施方式中,映射141的粒度是固定的,例如:将外部接口110上使用的第一固定大小逻辑块映射至设备接口190上使用的第二固定大小块。在其他实施方式中,映射141的粒度是可变的,并且在外部接口110或设备接口190上使用的所有块的大小不一定相同。
在一些实施方式中,映射141使用表143从而在外部接口110上使用的地址和设备接口190上使用的数据寻址之间执行和/或查询转化。根据各种实施方式,表143为下面中的一个或多个:一层映射;二层映射;多层映射;映射缓存;压缩映射;一个地址空间到另一个地址空间的任何类型映射;以及上述的任意组合。根据各种实施方式,表143包括下面中的一个或多个:静态随机存取存储器;动态随机存取存储器;非易失性存储器(例如:闪存);缓存存储器;片上存储器;片外存储器;和上述的任意组合。
在一些实施方式中,回收站(recycler,再循环器)151执行无用数据收集。例如,在一些实施方式中,闪存设备192包含在可重写前必须擦除的块。回收站151能够(例如,通过扫描映射141保存的映射)确定闪存设备192的哪些部分正在有效使用中,然后使闪存设备192的未使用部分通过对其进行擦除而可用于写入。在另外的实施方式中,回收站151能移动存储在闪存设备192内的数据,以使闪存设备192的更大的连续部分可用于写入。
CPU171控制SSD控制器100的各个部分。CPU171包括CPU内核172。根据各种实施方式,CPU内核172为一个或多个单核或多核处理器。在一些实施方式中,CPU内核172中的各个处理器内核是多线程的。CPU内核172包括指令和/或数据缓存器和/或存储器。例如,指令存储器包括能使CPU内核执行软件(有时候称为固件)以控制SSD控制器100的指令。在一些实施方式中,CPU内核172执行的一些或所有固件存储在闪存设备192上。
在各种实施方式中,CPU171还包括:在经由外部接口110接收的命令处于进程的同时来跟踪和控制该命令的命令管理173;控制缓冲器的分配和使用的缓冲器管理175;控制映射141的转化管理177;控制数据寻址的一致性并避免例如外部数据存取和回收数据存取之间冲突的一致性管理179;控制设备接口逻辑191的设备管理181;以及其他可选的管理单元。需要注意,根据各种实施方式,CPU171执行的任何或所有管理功能是由硬件、软件(例如:在CPU内核172或经由外部接口110连接的主机上执行的软件)或其任何组合进行控制和/或管理的。
在一些实施方式中,CPU171能执行其他管理任务,例如,以下各项中的一个或多个:收集和/或报告性能统计;实现SMART;控制电力排序、控制和/或监测和/或调整电力消耗;对电力故障做出响应;控制和/或监测和/或调整时钟速率;以及其他管理任务。
各种实施方式包括与SSD控制器100类似并且与各种计算主机的操作兼容的计算主机闪存控制器,例如,经由主机接口111和/或外部接口110适配。各种计算主机包括以下各项中的一个或其任何组合:计算机、工作站计算机、服务器计算机、存储服务器、PC、膝上型计算机、笔记本计算机、上网本计算机、PDA、媒体播放器、媒体记录器、数码相机、蜂窝手机、无绳电话手机和电子游戏机。
图1B示出了包括图1A的SSD的系统的实施方式的选定详情。SSD101包括经由设备接口190与非易失性存储器199耦接的SSD控制器100。SSD经由外部接口110与主机102耦接。
图1C示出了包括图1A的SSD的系统实施方式的选定详情。如图1B所示,SSD101包括经由设备接口190与非易失性存储器199耦接的SSD控制器100。SSD经由外部接口110与主机102耦接,其中,该外部接口与中间控制器103耦接然后经由中间接口104与主机102耦接。在各种实施方式中,SSD控制器100经由一个或多个中间层的其他控制器(例如,RAID控制器)与主机耦接。
在各种实施方式中,与一个或多个非易失性存储器组合的SSD控制器和/或计算主机控制器被实现为非易失性存储组件,例如,USB存储组件、CF存储组件、MMC存储组件、SD存储组件、记忆棒存储组件、以及xD存储组件。
在抽象层,命令管理173中,“读取”命令发起一个或多个读取处理以从非易失性存储器199检索信息。在SLC和MLC较低层上下文中,术语“读取”是指具有单个读取电压的单元层读取。在一些实施方式中,闪存在没有任何对于闪存外部的显式控制的情况下(例如:不同电压下的读取“隐藏”在闪存中),以不同的读取电压(所有电压处于相同的指定读取地址)执行多单元层读取。在其他实施方式中,闪存外部的控制代理(以及在设备管理181层运行)显式地指示以不同的读取电压下的多个单元层读取发生。在各种实施方式中,多个单元层读取为额外和/或可选读取,以获得针对SLC和/或MLC单元的软判决和/或擦除判决信息、针对MLC单元的硬判决信息(例如:针对每单元2比特的MLC的三次读取)或其组合。
除非明确限定,否则控制、设置或调整“读取电压”的参考泛指直接或间接控制或设置读取电压,例如经由表示一个或多个实际的读取电压的一个或多个电压说明符或多个实际的读取电压电平序列的选择。在各种实施方式中,提供电压说明符的控制代理知晓实际的读取电压电平,而在其他各种实施方式中,控制代理不知晓实际的读取电压电平。术语“读取电压”和“感测电压”可互换使用。
SLC操作
不像有些基于字符的RS或BCH译码器那样仅使用来自闪存的硬判决信息(例如:每个存储位为一个比特)作为输入,一些LDPC译码器能使用软信息来改进纠错。因此,从闪存读取软判决信息(例如:每个存储位不止一个比特)以提高纠错能力。将SLC作为示例来说明如何从闪存获得硬判决或软判决信息。该技术同样适用于MLC。为了从闪存获得硬判决信息,如图2A所示,只进行具有程控电压t0的一次读取(读取阈值电压290)。为了从闪存获得二比特的软判决信息,如图2B所示,进行具有三个不同电压(t-1、t0和t1)的三次读取(分别为读取阈值电压292、读取阈值电压290和读取阈值电压291)。闪存提供了能设置读取电压的能力。都具有相应电压的多次读取用于获得软判决信息。
在一些实施方式和/或使用场景中,读取软判决信息会增加闪存的存取时间(例如:对于图2A和图2B,增加了3倍)。如本申请所述,在一些实施方式和/或使用场景中该技术能提高存取、电力和延迟中的一个或多个的效率。
在一些实施方式和/或使用场景中,当擦除LDPC译码器提供有硬判决信息和擦除信息时(例如:当由于高不确定性导致比特未确定时),该擦除LDPC译码器优于硬判决译码器。执行具有电压t’-1和t’1的两次读取(如图2C所示,例如:分别为读取阈值电压294和读取阈值电压293)以提供相当于每个存储位1.5比特的信息。在图2C中,用于读取的两个电压(由相应的虚线表示)从概念上讲表示三个范围。外部范围分别对应于第一逻辑状态和第二逻辑状态(例如:分别为零和一,反之亦然,由系统设计限制或设计选择建立特定的分配)。内部范围对应于“擦除”(错误编码概念,这里表示推断在该范围的数据值不正确)。在一些实施方式和/或使用场景中,擦除LDPC的纠错性能与基于三次读取的2比特软判决LDPC(如图2B所示)相当或更好。在一些情况下,存取速度和电力消耗改善了三分之一,延迟减少了三分之一,例如,这是因为擦除LDPC译码是基于两次读取而非针对2比特软判决LDPC译码的三次读取。
在各种实施方式中,硬判决LDPC译码器(例如:图1A中基于硬、软和擦除判决的译码器169的所有或任何部分)处理硬判决信息(例如:与图2A相关)。在多个实施方式中,软判决LDPC译码器(例如:图1A中基于硬、软和擦除判决的译码器169的所有或任何部分)处理软判决信息(例如:与图2B相关)。在各种实施方式中,擦除判决LDPC译码器(例如:图1A中基于硬、软和擦除判决的译码器169的所有或任何部分)处理擦除判决信息(例如:与图2C相关)。
图3示出了各种技术(例如:各种速率8/9码)的纠错性能示意。在附图的图例中,“fixpt”表示“固定点”。图例“4KB LDPC,fixpt1b”对应于单次读取技术(例如:如图2A所示)。图例“4KB LDPC,fixpt擦除1.5b”对应于两次读取技术(例如:如图2C所示)。图例“4KBLDPC,fixpt2b”对应于三次读取技术(例如:如图2B所示)。图例“4KB LDPC,fixpt3b”和“4KBLDPC,fipt4b”分别对应于七次和十五次读取技术。
在其中的SSD具有LDCP译码器(例如:基于图3所示的4KB LDCP码)的实施方式,按照如下操作:
1.如图4A所示,对于原始BER低于预定水平(例如:3×10-3)的闪存设备:
a.SSD开始于采用1比特读取(如图2A所示的一次读取)的硬判决LDPC译码(硬判决LDPC译码402A)。
b.如果根据硬判决LDPC译码存在(错误403AY)无法纠正的错误(错误?403A),则SSD经由两次额外读取(额外读取404A和擦除判决LDPC译码405A)使用软判决信息来执行(擦除判决)LDPC译码,提供相当于每个存储位1.5比特(如图2C所示)。
c.如果无法纠正的错误相对不频繁,则平均速度相对接近硬判决译码器。
2.如图4B所示,在某些情况下(例如:当技术比例缩小并且密度增加时),闪存设备的BER高于预定水平(例如:7×10-3)但是低于另一预定水平(4×10-3):
a.SSD开始于采用1.5比特读取的擦除LDPC译码(如图2C所示的两次读取)。因此,在某些情况下,擦除LDPC译码性能比2比特输入软译码器更快(如图2C所示的两次读取对比如图2B所示的三次读取),而纠错能力则相当或更好。是使用硬判决LDPC译码(例如:硬判决LDPC译码404B)还是使用擦除LDPC译码(例如:擦除判决LDPC译码403B)的判决(例如:擦除/硬LDPC?402B)例如是基于安装在SSD内的闪存类型(例如:SLC对MLC)、环境条件、操作速度和/或其他因素。
3.如图4C所示,根据多种实施方式,例如:在硬判决(例如:硬判决LDPC译码404C)、擦除(例如:擦除判决LDPC译码405C)和软判决(例如:软判决LDPC译码406C)之间的动态切换译码器类型(例如:动态切换403C)是根据各种标准(标准402C)来执行的。标准包括程序/擦除循环数、读取干扰(读取相同和/或相邻的页/块的数)、写入干扰、之前无错读取速率和/或计数、之前可以纠正的错误比率和/或计数、之前无法纠正的错误比率和/计数、和/或其他因素。在一些实施方式中,比率和/或计数进一步区分为在硬、软或擦除译码的各种上下文中出现。在一些实施方式中,相对特定的间隔(例如:距设备制造、距上一次设备通电或距其他任何预定的事件)定义计数。在逐块的基础上,基于与正被读取的块相关的历史记录,对于块内的页是利用硬判决LDPC译码一次读取(如图2A所示)还是利用擦除LDPC译码两次读取(如图2C所示)进行判决。在各种实施方式中,判决和历史记录是基于页面或其他方面的,在任何时候做出判决,该判决在基于硬判决与基于擦除和其他变化之间来回切换。
在一些实施方式中,当使用硬判决LDPC并且检测到无法纠正的错误时,重新读取页(或块或其他正在使用的单元)一次或多次,并且利用另一技术(例如:如图2C所示的擦除LDPC)尝试纠正。
在一些实施方式中,如图2A所示执行硬判决译码。在其他一些实施方式中,图2A的电压t0向右或向左边调整以接近图2C中t’-1或t’1其中之一。该调节以硬判决错误率上升(通过偏置“1”对“0”判决)为代价,节省了为了获得擦除信息的第二读取、和/或执行一次额外读取从而使用擦除代码,可选地利用某些偏置来确定哪些比特被擦除。在一些实施方式中,如上所述,对是否调整电压和/或调整量进行动态判决。此外,根据各种实施方式,按照一种或多种标准来确定第一读取的偏置方向和/或偏置大小。该标准包括数据中1还是0占优势,以及知晓特定设备类型和该特定设备类型是否更有可能获取或失去单元内的电荷。该标准还包括正在被读取的具体设备和/或具体块/页的之前历史记录的了解程度,例如:之前操作的类型(由于在一些情况下读取干扰趋向于在特定方向上移动单元,而附近的写入则趋向做相反的动作)、之前错误历史记录(错误是否是1->0或0->1)和其他因素。
在一些实施方式中,用于获取硬判决信息的第一读取(如图2A所示)的结果被用作输入以控制第二读取的电压,从而通过一次额外读取产生信息(如图2C所示)。第一读取的结果保存在设备内,例如:页缓冲器,或者可替换地,如果进行第二读取则返回给该设备。在一些实施方式中,如果前一次读取返回“1”,则第二读取的电压可设置成(每个单元)t’1,如果前一次读取返回“0”,则可设置成t’-1。进行一次额外读取以确定额外0.5比特的信息。例如,如果第一读取针对给定单元返回“1”,则只需要消除“1”与“e”模棱两可的情况,因为单元不为“0”。
在一些实施方式中,在第一读取中返回的0与1的计数提供了用于确定例如特定页面内的单元内电荷已经漂移的方式的偏向,并且如果0对1的数目不在预计的范围内,则相应调整用于执行额外读取的读取电压。例如,在加密所有写入闪存数据的实施方式中,考虑到大的页面大小,0和l差额接近50-50。预计范围外的偏差表示特定页面上的电荷偏移,一些实施方式通过调整图2C中的读取电压进行补偿。有些闪存设备的电荷偏移的原因很多,并且给定页面是否已经偏向更多0或l的先验并不知晓。在一些实施方式中,加密或扰码存储在闪存内的数据,并且通过0和l的额定50-50的差额(其他统计变化)或其他已知的0和l的差额来有效地使这些数据随机化。
在一些实施方式中,如果擦除译码失败,则进行进一步的软判决译码。例如,额外读取用于确定4比特的软判决信息,并且使用4比特定点软判决LDPC译码器。
MLC操作
图5A示出了经由七次读取(读取507A到507G)每个单元2比特的MLC所获得信息的实施方式的选定详情,图5B示出了经由五次读取(读取505A到505E)每个单元2比特的MLC所获得擦除判决信息的实施方式的选定详情。在使用每个单元2比特的MLC技术的一些实施方式中,有“下”页面(左一半或右一半)和“上”页面(每一半的左四分之一对右四分之一部分)。如针对SLC所述的(见本申请中“SLC操作”部分),执行从下半页面获得信息。从上页面获得信息使用额外读取(例如,如图5A和图5B所示)。
在一些实施方式中,从上页面获取硬判决信息使用三次读取,第一次读取确定页面的哪半边,第二次读取确定上半部分内的哪个四分之一部分(左四分之一部分对右四分之一部分),第三次读取确定下半部分的哪个四分之一部分(左四分之一部分对右四分之一部分)。在一些MLC实施方式中,所有单元具有共同的读取电压,并且因为一些下页面单元存储零而一些存储一,因此从上页面获得信息包括设置每个半边内的电压以确定值是基于哪个下页面值。
变形例
多种实施方式采用多个代码,这些代码可用于擦除译码,例如:LDPC、RS和BCH码。
在一些实施方式中,硬判决和擦除码是不同的。
多种实施方式例如在闪存页面、其(大小固定或大小变化的闪存页面)的一部分、页面的任何倍数(整数倍数或非整数倍数)、大小固定、大小可变以及其他组合的多种单位上执行ECC。例如,可通过打孔和缩短代码来实现大小可变的代码。
示例实现方式技术
在一些实施方式中,计算主机闪存控制器或SSD控制器(例如:图1A的SSD控制器100)执行的所有或部分操作以及提供这些操作的一部分或全部的处理器、微处理器、片上系统、专用集成电路、硬件加速器或其他电路的各种组合是由与计算机系统处理兼容的规格指定的。该规格是根据各种描述,例如:硬件描述语言、电路描述、网表描述、掩码描述或布局描述。示例描述包括:Verilog、VHDL、SPICE、SPICE的变体(例如:PSpice)、IBIS、LEF、DEF、GDS-II、OASIS或其他描述。在各种实施方式中,处理包括译码、编译、方针和合成的任何组合以生成、验证或指定适于包含在一个或多个集成电路上的逻辑和/或电路。根据各种实施方式,每个集成电路可根据多种技术来设计和/或制造。该技术包括可编程技术(例如:场或掩码可编程门阵列集成电路)、半定制技术(例如:整体或部分基于单元的集成电路)和全定制技术(例如:基本上专用的集成电路),及其任何组合,或与集成电路的设计和/或制造兼容的其他任何技术。
在一些实施方式中,通过执行和/或解释一个或多个程序指令,通过解释和/或编译一个或多个源和/或脚本语言,或通过或执行通过编译、转化和/或解释以编程和/或脚本语言语句表达的信息生成的二进制指令来进行所有或部分如计算机可读介质所述的操作的各种组合,该计算机可读介质存储有一组指令。语句与任何标准的编程或脚本语言(例如:C、C++、Fortran、Pascal、Ada、Java、VBscript和Shell)兼容。一个或多个程序指令、语言语句或二进制指令可选地存储在一个或多个计算机可读存储介质元件上。在各种实施方式中,一些、所有或各个部分的程序指令实现为一种或多种功能、例程、子例程、线内例程、过程、宏或其部分。
结论
在该说明书中作出的某些选择仅仅是便于准备文本和附图,除非有相反的指示,否则这些选择本身不应解释为表达所述实施方式的结构或操作相关的额外信息。选择的示例包括:用于数字编号的设计的特定组织或分配以及用于标识和参考实施方式的功能和元件的元件指示符(例如:插图编号或数字标志符)的特定组织或分配。
词语“包括(include)”或“包括(including)”具体是理解为描述开放范围的逻辑组合的抽象概念,并不是表达实际包括的意思,除非后面明确有词语“在其中”。
尽管为了说明和理解清楚起见已经对上述实施方式进行相当详细的描述,但是本发明并不限于上述详细说明。本发明有很多实施方式。公开的实施方式只是实例性而非限制性的。
可以理解的是构成、设置和使用中的多种变换可能是与描述一致的,并且在所公开专利的权利要求的范围内。例如,根据每个组件块的各种实施方式,使用技术的互联和功能单元比特宽度、时钟速度和类型是可变的。互联和逻辑的命名仅仅是示例性的,并且不应理解为限制所述概念。根据各种实施方式,流程图和流程图过程、动作以及功能元件的顺序和布置是可变的。同样,除非有具体相反的说明,否则限定的值范围、使用的最大和最小值或其他特定的规格(例如:闪存技术类型;和寄存器和缓冲器内条目或级数)仅仅是所述实施方式的那些用来跟踪实现技术的改进和变化,而不应理解为限制。
可使用在本技术领域所知的功能相当的技术,来代替被描述为实现各种组件、子系统、操作、功能、例程、子例程、线内例程、步骤、宏或其部分的技术。还可理解的是,根据实施方式相关的设计限制以及更快处理(便于把之前硬件内的功能迁移到软件内)和更高集成密度(便于把之前软件内的功能迁移到硬件内)的技术趋势,实施方式多个功能方面可选择性地在硬件(即:一般专用电路)或软件(即:通过编程的控制器或处理的一些方式)内实现。各种实施方式的具体变化包括,但不限于:
分区差异;不同形式的因素和配置;使用不同的操作系统和其他系统软件;使用不同的接口标准、网络协议或通信链路;以及当根据特定应用中独特的技术和业务限制实现本申请所述概念时其他预计的变化。
已经通过详细的环境背景在实现所述实施方式多个方面最小实现的要求上对实施方式进行了很好的描述。本领域的技术人员会意识到一些实施方式在没有改变剩余元件之间的基本配合的情况下省去了公开的组件或功能。因此,可以理解的是,公开的详细说明并不都是实现所述实施方式的各种方面所需的。在现有技术能区分剩余元件的范围内,省去的组件和功能并不限制本申请所述的概念。
所有这些设计上的变化都是所述实施方式表达言论的非实体变化。还可以理解的是,本申请所述的实施方式对于其他计算和组网应用具有广泛的实用性,并且并不限于所述实施方式的特定应用或产业。因此,本发明应理解为包括发布专利的权利要求范围内所有可能的修改和变化。
Claims (20)
1.一种用于控制固态硬盘的系统,包括:
用于响应于接收的对于闪存中特定位置存储的数据的请求来请求在所述特定位置的一次或多次初始读取的模块;
用于响应于所述初始读取的完成来基于所述初始读取的结果经由基于硬判决的低密度奇偶校验译码来检测无法纠正的错误的模块;
用于响应于用于检测的模块来请求在所述特定位置的一次或多次额外读取的模块;以及
用于响应于所述额外读取的完成来基于所述额外读取的相应结果执行擦除判决低密度奇偶校验译码的模块。
2.根据权利要求1所述的系统,其中,所述闪存包括单层单元技术闪存,所述初始读取在数量上为一次,所述额外读取在数量上为两次,每次所述额外读取处于相应的读取电压。
3.根据权利要求2所述的系统,还包括:用于向每个所述额外读取提供相应的电压说明符的模块。
4.根据权利要求3所述的系统,其中,至少一个所述电压说明符是以下各项之一:显式电压电平、多个预定电压电平之一的标识符、以及多个读取请求类型之一的唯一标识。
5.根据权利要求1所述的系统,其中,所述闪存包括多层单元技术闪存。
6.根据权利要求1所述的系统,其中,所述接收与多种接口标准中的一种或多种兼容,所述接口标准包括:
串行高级技术附件接口标准,
串行连接小型计算机系统接口接口标准,
外设部件互连高速接口标准,
光纤信道接口标准,以及
以太网接口标准。
7.根据权利要求1所述的系统,其中,用于请求初始读取的模块和用于请求额外读取的模块经由控制器,所述控制器和所述闪存包含在被实现为多个非易失性存储组件类型之一的存储器子系统中,所述非易失性存储组件类型包括:
通用串行总线存储组件类型,
紧凑式闪存存储组件类型,
多媒体卡存储组件类型,
安全数字存储组件类型,
记忆棒存储组件类型,以及
xD图像卡存储组件类型。
8.一种用于控制固态硬盘的方法,包括:
响应于接收的对于闪存中特定位置存储的数据的请求,请求在所述特定位置的一次或多次初始读取;
响应于所述初始读取的完成,基于所述初始读取的结果经由基于硬判决的低密度奇偶校验译码来检测无法纠正的错误;
响应于所述检测,请求在所述特定位置的一次或多次额外读取;以及
响应于所述额外读取的完成,基于所述额外读取的相应结果执行擦除判决低密度奇偶校验译码。
9.根据权利要求8所述的方法,其中,所述闪存包括单层单元技术闪存,所述初始读取在数量上为一次,所述额外读取在数量上为两次,每次所述额外读取处于相应的读取电压。
10.根据权利要求9所述的方法,还包括:针对每个所述额外读取提供相应的电压说明符。
11.根据权利要求10所述的方法,其中,至少一个所述电压说明符是以下各项之一:显式电压电平、多个预定电压电平之一的标识符、以及多个读取请求类型之一的唯一标识。
12.根据权利要求8所述的方法,其中,所述闪存包括多层单元技术闪存。
13.根据权利要求8所述的方法,其中,所述接收与多种接口标准中的一种或多种兼容,所述接口标准包括:
串行高级技术附件接口标准,
串行连接小型计算机系统接口接口标准,
外设部件互连高速接口标准,
光纤信道接口标准,以及
以太网接口标准。
14.根据权利要求8所述的方法,所述请求初始读取和所述请求额外读取是经由控制器,所述控制器和所述闪存包含在被实现为多个非易失性存储组件类型之一的存储器子系统中,所述非易失性存储组件类型包括:
通用串行总线存储组件类型,
紧凑式闪存存储组件类型,
多媒体卡存储组件类型,
安全数字存储组件类型,
记忆棒存储组件类型,和
xD图像卡存储组件类型。
15.一种固态硬盘系统,包括:
接口;以及
控制器,所述控制器能够:
响应于经由所述接口接收的对于闪存中特定位置存储的数据的请求,请求在所述特定位置的一次或多次初始读取;
响应于所述初始读取的完成,基于所述初始读取的结果经由基于硬判决的低密度奇偶校验译码来检测无法纠正的错误;
响应于所述检测,请求在所述特定位置的一次或多次额外读取;以及
响应于所述额外读取的完成,基于所述额外读取的相应结果执行擦除判决低密度奇偶校验译码。
16.根据权利要求15所述的固态硬盘系统,其中,所述闪存包括单层单元技术闪存,所述初始读取在数量上为一次,所述额外读取在数量上为两次,以及每次所述额外读取处于相应的读取电压。
17.根据权利要求16所述的固态硬盘系统,其中,所述控制器还能够针对每次所述额外读取提供相应的电压说明符。
18.根据权利要求17所述的固态硬盘系统,其中,至少一个所述电压说明符是以下各项之一:显式电压电平、多个预定电压电平之一的标识符、以及多个读取请求类型之一的唯一标识。
19.根据权利要求15所述的固态硬盘系统,其中,所述闪存包括多层单元技术闪存。
20.根据权利要求15所述的固态硬盘系统,其中,所述控制器和所述闪存包含在被实现为多个非易失性存储组件类型之一的存储器子系统中,所述非易失性存储组件类型包括:
通用串行总线存储组件类型,
紧凑式闪存存储组件类型,
多媒体卡存储组件类型,
安全数字存储组件类型,
记忆棒存储组件类型,以及
xD图像卡存储组件类型。
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 (2)
Publication Number | Publication Date |
---|---|
CN102985975A CN102985975A (zh) | 2013-03-20 |
CN102985975B true CN102985975B (zh) | 2016-12-14 |
Family
ID=
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101232346A (zh) * | 2007-01-25 | 2008-07-30 | 华为技术有限公司 | 低密度奇偶校验码译码方法和译码装置 |
CN101345532A (zh) * | 2008-08-15 | 2009-01-14 | 苏州大学 | Ldpc信道编码的译码方法 |
CN101405943A (zh) * | 2005-10-03 | 2009-04-08 | 摩托罗拉公司 | 用于低密度奇偶校验解码器的方法和装置 |
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101405943A (zh) * | 2005-10-03 | 2009-04-08 | 摩托罗拉公司 | 用于低密度奇偶校验解码器的方法和装置 |
CN101232346A (zh) * | 2007-01-25 | 2008-07-30 | 华为技术有限公司 | 低密度奇偶校验码译码方法和译码装置 |
CN101345532A (zh) * | 2008-08-15 | 2009-01-14 | 苏州大学 | Ldpc信道编码的译码方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101541040B1 (ko) | 플래시 메모리들을 위한 ldpc 소거 디코딩 | |
CN103329103B (zh) | 使用用于基于闪存的数据存储的自适应ecc技术的方法和设备 | |
CN103678146B (zh) | 为了非易失性存储器中的耗损均衡测量单元损伤 | |
CN103415844B (zh) | 用于高级冗余信息计算的系统和方法 | |
US9239754B2 (en) | Single read based soft-decision decoding of non-volatile memory | |
CN103348330B (zh) | 采用独立硅元件的动态较高级冗余模式管理 | |
JP6265746B2 (ja) | 記憶アドレス空間と不揮発性メモリのアドレス、範囲、および長さとの間のマッピング/変換 | |
US9098410B2 (en) | Cross-decoding for non-volatile storage | |
CN103942010A (zh) | 用于写入非易失性存储器的管理及区域选择 | |
CN103902403A (zh) | 经由冗余阵列的非易失性存储器编程故障恢复 | |
US10979077B2 (en) | Generating hamming weights for data | |
US9396104B1 (en) | Accessing compressed data of varying-sized quanta in non-volatile memory | |
US10372377B2 (en) | Memory controller, memory system, and control method | |
CN102985975B (zh) | 闪存的低密度奇偶校验擦除译码 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20160222 Address after: California, USA Applicant after: Seagate Technology LLC Address before: California, USA Applicant before: LSI Corp. |
|
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20161214 |