CN115938458A - 存储装置、控制器以及存储装置的操作方法 - Google Patents
存储装置、控制器以及存储装置的操作方法 Download PDFInfo
- Publication number
- CN115938458A CN115938458A CN202210201751.4A CN202210201751A CN115938458A CN 115938458 A CN115938458 A CN 115938458A CN 202210201751 A CN202210201751 A CN 202210201751A CN 115938458 A CN115938458 A CN 115938458A
- Authority
- CN
- China
- Prior art keywords
- ecc
- memory
- logic
- memory array
- array
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/35—Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
- H03M13/356—Unequal error protection [UEP]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/35—Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
- H03M13/353—Adaptation to the channel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6513—Support of multiple code types, e.g. unified decoder for LDPC and turbo codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6516—Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Vehicle Body Suspensions (AREA)
- Electrotherapy Devices (AREA)
- Steering Control In Accordance With Driving Conditions (AREA)
Abstract
本发明提供一种存储装置、控制器以及存储装置的操作方法,该存储装置包含存储器阵列及存储器控制器。存储器控制器产生用于存储器阵列的读取及写入命令。用于存储装置的错误校正码引擎可操作以使用多个不同码字大小、不同码率或不同错误校正码(Error Correction Code,ECC)演算法。包含取决于存储器阵列的操作条件而应用选定码字大小、码率或ECC演算法的逻辑。
Description
技术领域
本发明是关于使用用于存储器中的数据的存储的错误校正,所述存储器可具有不同错误率,取决于存储器的操作条件。
背景技术
在数据存储系统中,错误检查与校正ECC演算法通常用以改良可靠性。ECC演算法更通常用于集成电路存储器装置中,例如高容量NAND及NOR快闪装置,其中错误率可取决于存储器的操作条件,例如温度、写入和擦除周期次数、存取频率等。
此外,在许多存储系统中,需要使操作的功耗及速度最佳化同时保持在指定错误率规范内。结合ECC演算法,存储系统用以存储码字,所述码字包含承载数据段及在承载数据段上计算的ECC码段的组合。举例而言,一种演算法可计算具有4千位元承载数据段外加在4千位元上计算的ECC码段的码字。另一演算法可计算具有2千位元承载数据段外加在2千位元上计算的ECC码段的码字。此外,不同ECC演算法可具有不同码率,其中码率为承载数据段的大小除以码字中承载数据段的大小及ECC码段的大小的总和,其指示在给定大小码字内传输的可用数据量。可根据系统的特定需要使用各种大小的码字及各种码率。
码字的大小及码率可根据所应用的特定ECC演算法而变化。针对给定承载数据段大小的较大ECC码字可提供较佳的防错保护强度,但需要较多的功耗及较复杂的演算法,所述演算法可能消耗较大量的处理资源。另一方面较小码字可节省功耗及依赖于较简单的演算法,但针对给定码率可具有较弱的保护强度。
提供一种结合数据存储系统就功耗、操作速度以及复杂度而言需要更高效使用ECC演算法的技术。
发明内容
所述的一种存储技术,其为错误率可随操作条件改变的存储器阵列提供具有不同码字大小及/或不同码率的ECC演算法的可适性选择。
所述错误率可取决于操作条件的存储装置。在一个方面中,存储装置包括存储器阵列,及设置于用以接收承载数据的输入端与存储器阵列之间的数据路径中的控制器。控制器包含错误校正码ECC引擎及调整逻辑。ECC引擎产生用于存储在存储器阵列的写入地址中的码字,所述码字包含各别承载数据段及ECC码段。ECC引擎包含用以实施具有至少二ECC码率的码字的逻辑,调整逻辑用以依据存储于多个存储器区块中的已定址存储器区块中数据可靠性(data reliability),将所述至少二ECC码率映射至地址的日志以及用以使用随所述地址及所述操作条件而变化的所述日志,自至少二ECC码率选择其一ECC码率。
在所述存储技术的一个方面中,存储器阵列包含多个存储器区块,多个存储器区块中的每一存储器区块设置于单个集成电路芯片上;以及包含ECC引擎的控制器,设置于用以接收承载数据及存储器阵列的输入端之间的数据路径中,所述ECC引擎用以产生用于存储在多个存储器区块中的已定址存储器区块中的地址中的码字,所述码字包含各别承载数据段及ECC码段,所述ECC引擎包含用以实施具有至少二ECC码率的码字的逻辑。控制器更包含调整逻辑,调整逻辑是将至少二ECC码率映射至地址的日志以及用以使用随地址及操作条件而变化的日志自至少二ECC码率选择其一ECC码率的逻辑。在技术的此方面中,给定码字的承载数据段及ECC码段一起存储在存储器阵列的相同区块中。在一些实施例中,给定码字的承载数据段及ECC码段一起存储在存储器阵列的相同区块的相同页面上。
在所述存储技术的各种方面中,存储装置包括存储器阵列以及可操作方式连接至存储器阵列的存储器控制器。存储器控制器产生用于存储器阵列的读取及写入命令。用于存储装置的ECC引擎包含可操作以实施多个不同ECC演算法的逻辑,其可能会导致使用不同码字大小、不同码率以及不同校正能力。包含取决于存储器阵列的操作条件而应用选定码字大小、码率或ECC演算法的逻辑。
在一种途径中,存储器控制器包含用以对存储器阵列的部分的存取进行计数的逻辑,且操作条件包含对码字待写入至其中的存储器阵列的部分的存取计数。
在另一途径中,包含存储器控制器可存取的温度感测器或其他环境感测器。此途径中的操作条件可包含感测器的输出,其可指示存储器阵列或存储器阵列中所存取部分的操作温度。
在另一实施方法中,存储器控制器包括磨损均衡逻辑(wear leveling),应用于高密度快闪存储器,而基于受监控的存储器区块耐久性(例如存储器阵列的区块中的写入和擦除周期次数),以及在闪存中数据访问频率,用以识别该数据为热(Hot data)或冷数据(Cold data)。操作条件可以包括磨损平衡状态及冷或热数据。
在一些实施例中,存储器器控制器包含一逻辑用以记录逻辑地址对应实体地址所选用的码字大小、码率或ECC算法,将这个对应表存储在闪存部份阵列空间。
在另一方面中,存储器阵列可包含用于“热”数据存储的部分及用于“冷”数据存储的部分,其分别具有高存取频率及低存取频率。在ECC演算法、码字大小或码率的选择中应用的操作条件可包含地址部分是否指定用于“热”或“冷”数据。
在本发明中所描述的一种存储技术中,存储器阵列可包括第一子阵列及第二子阵列。在一个实施方案中,存储器阵列可包括集成电路上的高密度快闪存储器,具有用以操作集成电路上的第一子阵列以每存储器单元存储一个位元及用以操作集成电路上的第二子阵列以每存储器单元存储多于一个位元的逻辑。举例而言,存储器控制器可在程序上应用以选择对第一子阵列进行存取的ECC演算法,且可应用不同程序以选择如上文所论述的对第二子阵列进行存取的ECC演算法。
此外,存储器控制器可执行程序以将数据集合自第一子阵列移动至第二子阵列,且在程序的执行中,改变应用于数据集合的ECC演算法。
一般而言,描述一种用于操作存储装置的方法,其包含将数据集合写入至存储器阵列。写入数据集合的过程包含识别存储数据集合的码字的存储器阵列的一部分,及判定识别出的部分的操作条件。过程可包含自多个ECC演算法中选择ECC演算法,其取决于所判定的操作条件可具有不同码字大小或码率。在选择ECC演算法时,使用数据集合的选定ECC演算法计算一或多个码字。接着,将所计算的一或多个码字写入至存储器阵列的识别出的一部分或部分。
方法亦可包含自存储器阵列的已定址部分读取特定码字;将存储器阵列的已定址部分映射至针对已定址部分而选择的ECC演算法;以及应用选定ECC演算法以检查特定码字中的错误。
使用“自适应ECC”提供技术。非易失性存储控制器可含有可支持数目“n”的不同类型ECC码字的可组态的ECC引擎。ECC的较小码字可节省功耗及逻辑门数。ECC的较大码字可提供较佳的保护强度但估据较大额外空间,且涉及较大功耗及较大逻辑门数。
在审阅以下图式、详细描述以及权利要求书之后可见技术的其他情况及优势。
附图说明
图1为具有存储器阵列及存储器控制器的存储装置的方块图,所述存储装置包含如本发明中所描述的多模式ECC引擎。
图2为示出与图1的存储装置相似的存储装置的ECC码率日志及存储器结构的图。
图3示出存储器阵列的一个实例,所述存储器阵列包含配置于与图1的系统相似的系统的多个通道中的多个NAND存储器芯片。
图4示出存储器结构的实例,所述存储器结构包括适合用于如本发明中所描述的存储装置中的页面中的区块。
图5为根据技术的一个方面的包含第一子阵列及第二子阵列的存储器阵列的简化方块图。
图6为示出在写入程序中选择ECC演算法的存储器控制器的一个方面中的逻辑的操作的流程图。
图7为示出根据技术的一个方面的选择ECC演算法的操作的流程图。
图8为示出根据技术的另一方面的选择ECC演算法的操作的流程图。
图9为示出根据技术的一个方面的在包含第一子阵列及第二子阵列的存储器阵列中产生码字的操作的流程图。
图10为自具有如图9中所绘示产生的码字的包含第一子阵列及第二子阵列的存储器阵列读取数据的流程图。
图11示出在循环数据缓冲区模式(circular buffer mode)中操作的SLC区域。
图12为将数据写入至与图11的SLC区域相似的SLC区域中的流程图。
附图标记说明
100:存储系统
101:主机接口
102a、102b:子阵列
103:处理器
104:缓冲器
105:加扰器
106:多模式ECC引擎
107:NAND接口
108:温度感测器
109:映射表
110、220:存储器阵列
201、204、206:总线
202、203:信号线
205、306:NAND接口
210:日志
215:ECC LEVEL图
221:周边电路
250:伪单阶单元SLC区块
251:三阶单元TLC区块
310、311、321、322、323:NAND快闪芯片
401:平面
410:区块
420:主要区域
421:备用区域
501:第一子阵列
502:第二子阵列
600、601、603、604、605、606、700、701、702、703、704、705、706、707、710、800、801、802、803、804、900、901、902、903、904、905、906、1000、1001、1002、1003、1004、1005、1006、1200、1202、1203、1204、1205、1211、1212、1213、1214、1215、1220:步骤
602:操作条件监视器
1100:SLC区块
1101:写入指针
1102:ECC LEVEL改变指针
BLK 0,BLK 2,…BLK n-1:区块地址/区块
Ch(0),Ch(1),…Ch(N-1):数据通道
具体实施方式
参考图1至图12提供技术的实施例的详细描述。
图1为包含存储器控制器及存储器阵列的一个实例存储系统100的方块图。在此实例中,存储系统100可作为固态磁盘操作。本技术可应用于利用ECC技术的其他类型的存储系统中。
图1中所绘示的存储系统100包含主机接口101,其连接至可使用逻辑地址产生用于承载数据的数据集合的读取及写入命令的主机系统。此外,存储系统100包含存储器阵列110,其可包括一个集成电路非易失性存储器装置,或如图1中所示出的多个集成电路非易失性存储器装置。在所示出的实例中,集成电路非易失性存储器装置可包括具有NAND阵列架构、NOR阵列架构或其他阵列架构的高密度快闪存储器。此外,集成电路非易失性存储器装置可包含多个子阵列。在所示出的实例中,子阵列102a用于每单元存储一个位元的单级单元(Single Level Cell,SLC)操作,且子阵列102b用于每单元存储多于一个位元的多级单元(Multiple Level Cell)操作,例如三级单元(Triple Level Cell,TLC)。
在此实例中,存储器控制器连接于主机接口101与存储器阵列110之间。存储器控制器可包含一或多个处理器103以执行存储器程序,例如损耗平衡、逻辑至实体地址变换、对存储器阵列110进行存取的仲裁、维持热及冷数据分类的读取存取计数、维持存储器阵列的部分的程序及擦除计数等。存储器控制器可包含例如使用DRAM或SRAM实施的缓冲器104,其可通过一或多个处理器103存取。一些实施例中的存储器控制器包含与一或多个处理器103及缓冲器104进行数据流通信的加扰器105。图1中所绘示的存储器控制器包含多模式ECC引擎106,其包含用以实施适用于特定实施例的具有不同码字大小及不同码率的多个ECC演算法的逻辑。多模式ECC引擎106可包含使用专用逻辑电路、可组态逻辑电路、执行软体的通用处理器或以其他方式实施的状态机。在一些实施例中,可使用通过一或多个处理器103执行的处理器程序实施多模式ECC引擎106。存储器控制器可实施例如快闪转换层(Flash Translation Layer,FTL)的协定以将承载数据的主机读取及写入命令翻译为可通过用于读取及写入ECC码字的快闪存储器实体地址使用的命令。
在图1的组态中,多模式ECC引擎106与NAND接口107进行数据流通信(在使用NAND架构集成电路实施存储器阵列110的情况下)。NAND接口107可包含用以在存储器阵列110中执行用于集成电路存储器装置的输入/输出协定的电路,包含用以在存储器阵列110中提供用于读取、写入以及擦除操作的命令及实体地址的逻辑。非易失性存储器的“写入”操作可为“编程”操作,或编程及擦除操作的组合。
存储器控制器亦可保存日志,例如存储器中的映射表109或其他类型的逻辑电路或程序,所述日志将写入码字的实体地址(例如,区块地址)映射至用于产生码字的选定ECC演算法。
存储器阵列110可由存储器阵列110的不同部分中的错误率表征,其在不同操作条件中变化。操作条件可以下各者反映:操作温度;通过损耗平衡程序提供的损耗平衡参数;写入/擦除次数以及可维持在存储器控制器中的存取频率(包含读取);可使用阵列110中的存储器单元的区块的读取及拷贝返回程序周期性地检测到的错误率(不常更动的数据);某些存储器操作,例如将数据集合自一个子阵列(例如,SLC子阵列)移动至不同子阵列(例如,TLC子阵列);或可由应用于存储器控制器的信号或提供至存储器控制器的数据表示的其他条件。在图1中,存储系统100包含将数据提供至存储器控制器的温度感测器108(或其他类型的环境感测器),其可指示存储器阵列110或存储器阵列110的部分的操作的温度或其他环境条件,且由存储器控制器中的逻辑使用以选择ECC演算法、码率或码字大小。
许多类别的ECC演算法适合在本技术中使用。ECC演算法的类别的实例包含低密度同位检查(Low-Density Parity Check;LDPC)演算法(亦称为加拉格尔(Gallagher)演算法)、汉明(Hamming)演算法、瑞德-所罗门(Reed-Solomon)演算法以及玻色-乔杜里-霍昆格姆(Bose-Chaudhuri-Hocquenghem;BCH)演算法。可调整单一类别的演算法以通过改变用以计算码字的参数来达成不同错误检测与校正能力、不同码率以及不同码字大小。因此,出于本说明书的目的,可使用一种类别的演算法以通过在存储器控制器中(例如,多模式ECC引擎106中)使用ECC演算法的不同参数来实施多个ECC演算法的逻辑。此外,可使用多于一种类别的演算法以实施存储器控制器中的多个ECC演算法的逻辑。通常存储于非易失性存储器中的各该存储器阵列中数据可靠性,乃是通过一些参数的组合而设定,比如,存储器阵列的温度、编程/擦除周期次数(anumber of P/E cycles)、多个读取周期(a number of readcycles)、擦除时间(an erase time)、读取时间(a read time),温度(temperature),和存储单元的阈值电压等,用以更强健的对应于各该存储器阵列中真实的情况的数据可靠性,以便增强数据的可靠程度。
参考图1描述其实例的存储器控制器包含用以执行用于操作存储器的程序的逻辑,所述程序包含在存储器阵列中读取及写入码字,其中码字组合形成用于主机处理器中所使用的数据集合。在此情形下执行的程序可包含将数据集合写入至存储器阵列,包含识别存储器阵列的一部分且判定识别出的部分的操作条件;取决于所判定的操作条件及阵列的识别出的部分,自具有不同码字大小或码率的多个ECC演算法中选择ECC演算法;使用用于数据集合所选定ECC演算法来计算一或多个码字;以及将计算出的一或多个码字写入至存储器阵列识别出的部分。此外,在此情形下执行的程序可包含自存储器阵列的已定址部分读取特定码字;将存储器阵列的已定址部分映射至针对已定址部分而选择的ECC演算法;以及应用选定ECC演算法以检查特定码字中的错误。可如参考图1所描述的或以其他组态实施用以执行程序的逻辑。举例而言,存储器控制器及存储器阵列可为单个集成电路的部分。
图2示出存储系统的一部分技术具有ECC码率日志及存储器结构的。在此实例中,承载数据源将总线201上的输入提供至多模式ECC引擎106。此外,操作条件在信号线202上作为输入自如上文所论述的操作条件信号传送至多模式ECC引擎106。多模式ECC引擎106使用选自日志210的ECC码率产生用于存储在存储器阵列220中的码字。多模式ECC引擎106用于跨总线204与NAND接口205进行数据流通信,所述NAND接口205可管理对一或多个集成电路存储器装置的存取。在所示出的实施例中,NAND接口205用于跨总线206与包含存储器阵列220的集成电路进行数据通信。其中,以本实施例为例,控制器中之处理器103中,另包括调整逻辑因应于存储器阵列220的数据可靠度,可为操作条件的一个或多个参数或一个或多个的参数历史来调整对应的ECC码率,所述参数包括:编程/擦除周期次数(a numberofP/E cycles),多个读取周期(a number of read cycles),擦除时间(an erase time),读取时间(a read time),温度(temperature),和存储单元的阈值电压…等;用以维持不同操作条件下的数据可靠度,更符合实际存储于各该存储器阵列的数据可靠性的情况。
在此实例中,存储器阵列220为设置于具有周边电路221的单个集成电路上的NAND快闪存储器,所述周边电路221包含命令解码器、地址解码器以及对于在存储器阵列220中进行存储器操作必需的其他电路。此外,在此实例中,存储器在单个集成电路上组织成多个区块,标记为区块地址BLK 0、区块地址BLK 1、区块地址BLK 2、…区块地址BLK n-1。多个区块可组织成出于此实例的目的包含具有地址BLK 0及BLK 1的区块的多个伪单级单元SLC区块250及出于此实例的目的包含具有地址BLK 2至地址BLK n-1的区块的多个三级单元TLC区块251。多个区块可包括使用相同技术实施的存储器单元,所述存储器单元在一些区块中操作为单级单元且在其他区块中操作为多级单元(例如,三级单元)。在其他实例中,多个区块可包含在不同类型的区块中的不同类型或变化形式的存储器单元。
如本发明中所描述的存储器区块为可通过区块地址识别的实体存储器的一部分。区块地址为用以在存储器阵列中存取数据的地址的一部分。举例而言,存储器地址可包含38位元以识别存储于存储器阵列中的个别位元的存储位置。在38位元中,数个高阶位元可识别集成电路芯片上的存储器平面,例如两个高阶位元的,数个第一中间阶位元可识别存储器平面内的个别区块(例如16个中间阶位元),数个第二中间阶位元可识别个别区块内的个别页面(例如12个中间阶位元),以及数个低阶位元可识别个别页面内的个别位元(例如8个低阶位元)。在一些实施例中,区块内的个别页面可包含通常用以保持与个别页面中的数据相关联的元数据的扩展(或备用)区域。区块地址包含存储器地址中足以独特地识别区块的地址位元。区块的逻辑及实体配置取决于多种因素,包含特定类型的存储器、写入及擦除演算法、施加的制造技术等,且因此可自一种类型的存储器阵列变化成另一种。
如图2中所示出,多模式ECC引擎106通过信号线203耦接至日志210,所述日志210可存储在包括如暂存器档案(register file)、SRAM、DRAM、PCRAM或快闪存储器相似的存储器,其保存区块地址至ECC码率的映射,其中ECC码率由此图示中的参数ECC LEVEL#指示。不同区块可具有不同ECC码率。如上文所提及,多模式ECC引擎106可具有用以执行多个不同ECC演算法及实施多个不同码率的资源。每一ECC LEVEL可指示用以实施选定码率的演算法中所选的一个。如图示中所见,存储器阵列220中具有区块地址BLK 0、区块地址BLK 1、区块地址BLK2、…区块地址BLK n-1的区块中的每一者在日志210中具有对应入口。亦在此实例中,如由ECC LEVEL图215所指示,SLC区块BLK 0及SLC区块BLK 1可具有判定用于对应存储器级别的ECC LEVEL,当次所述ECC LEVEL可固定设定为如此图中所指示为ECC LEVEL 5或其他任意值,或使用与应用于其他区块的不同程序动态地来判定(例如参见下文的图11至图12)。
图3示出与图1的系统相似的系统的组态,其中存储器阵列包含耦接至NAND接口306的多个NAND快闪存储器芯片,所述NAND接口306与图1中的NAND接口107相似。在此组态中,NAND接口306提供与多个数据通道Ch(0)、数据通道Ch(1)、…数据通道Ch(N-1)的通信。每一数据通道耦接至多个NAND快闪芯片。因此,如所示出,通道Ch(N-1)耦接至NAND快闪芯片321、NAND快闪芯片322、NAND快闪芯片323…的集合。通道Ch(0)耦接至包含NAND快闪芯片310的NAND快闪芯片的集合。通道Ch(1)耦接至包含NAND快闪芯片311的NAND快闪芯片的集合。图3的系统中的NAND快闪芯片中的每一者可包含一或多个区块。对于具有兆位元存储容量的NAND快闪芯片,出于实例的目的,芯片可包含4个平面,每一平面具有1438个区块,每一区块具有1536个页面,且每一页面具有16,384个主要区域位元及2048个备用区域位元。
图4示出单个集成电路上的3D NAND快闪阵列的结构,其支持如本发明中所描述的多模式ECC操作。在此实例中,平面401包含多个区块(例如410)。每一区块包含多个页面,其中每一页面包含主要区域420及备用区域421,备用区域421通常用于存放元数据(metadata)。当写入如本发明中所描述的码字时,码字的承载数据段及ECC码段两者可写入在相同实体区块中,且在一些实施例中可写入在相同实体页面中。在将ECC码字写入在实体页面上的实施例中,承载数据段及ECC码段可连续地写入在主要区域内。在将ECC码字写入在实体页面上的其他实施例中,承载数据段可写入在页面的主要区域内,且ECC码段可写入在页面的备用区域中。在另一的实施例中,具有不同码率的码字被存储以便它们可以在单个芯片中的单个读取操作中被检索,例如单页读取操作,或在使用来自存储器阵列的连续页的连续地址的连续读取操作中。在所示出的实例中,基于区块地址设定ECC LEVEL或码率。在其他实施例中,可基于区块地址及页面地址的组合设定ECC LEVEL或码率用于存储器阵列中的一些或所有区块。
图5为包括第一子阵列501及第二子阵列502的存储器阵列的图示。在此实例中,第一子阵列501包括多个单级单元SLC区块且第二子阵列502包括多个三级单元TLC区块,其呈现以高密度NAND快闪集成电路装置部署且可以其他类型的存储器装置部署的组态。在一些实施例中,SLC区块及TLC区块可实施于同一集成电路上。在一些实施例中,SLC区块及TLC区块是静态配置且可具有不同存储器单元结构或不同读取/编程/擦除演算法以适应每单元单位元或每单元多位元操作。在其他实施例中,提供适用于多级单元操作的存储器单元的阵列,且可动态地选择第一子阵列中的区块用于SLC操作,有时称作伪SLC区块。SLC区块与多级单元区块相比可具有较快存取时间及较大操作容忍电位偏移量。因此,在一些实例中,对于给定的数据量,SLC区块与TLC区块相比可以较高ECC码率(每码字较多数据)及较小码字操作。因此,在具有此特征的实施例中,用于选择ECC演算法的操作条件可为实体地址是否指向SLC区块或TLC区块。
图6为在与图1的存储器控制器相似的存储器控制器中实施的程序的简化流程图。在图6中,在存储器控制器处接收写入命令(步骤600)。存储器控制器自操作条件监视器602接收输入且用待使用多模式ECC引擎应用的演算法选择ECC LEVEL,以实施于被选定的ECC码率(步骤601)。被选定的ECC LEVEL亦可为存储器阵列中待写入数据的实体地址的函数。
在选定ECC LEVEL(步骤601)之后,多模式ECC引擎使用被选定的ECC LEVEL以产生待写入至存储器阵列的码字(步骤603)。接下来,将码字写入至存储器阵列(步骤604)。此外,记录被选定的ECC码率在表中以映射实体地址至码字,将被选定的ECC码率写入至被选定的ECC LEVEL以产生码字(步骤605)。接着,完成图6的流程图(步骤606)。
图7为通过存储器控制器执行的用于回应于操作条件而选择ECC LEVEL的程序的流程图。在此实例中多个ECC LEVEL由具有不同ECC码率表征,其中对于具有“n”个位元的原生承载数据段及且“k”个位元的冗余ECC码数据段的ECC码字,ECC码率等于n/n+k。
在图7的程序中,流程在步骤700处开始。设定初始ECC码率为最大码率(步骤701),其通常与较低错误校正能力及较高吞吐量相关。程序周期性地或不时地以适用特定限制的形式探测存储器阵列中的页面以检测位元的计数,所述位元的计数是通过ECC操作(步骤702)或其他操作条件校正(位元翻转)。可使用读取及拷贝返回操作执行此等探测。可累积位元翻转资讯以形成统计量测值“m”(步骤703)。举例而言,在包含具有多个区块的子阵列的存储器阵列中,统计量测值可为已最早存取的子阵列中的区块集的字元线上的位元翻转数量(bit flip counts)的平均值。在其他实施例中,统计量测值可仅为单一字元线上的位元翻转计数,一般而言,其可视为反映阵列或阵列的部分的操作条件。
接下来,将统计量测值m与阈值TH进行比较(步骤704)。若量测值m大于阈值TH,则ECC演算法分支至选择下一ECC码率的程序(步骤705)。接下来,判定呈递减形式的ECC码率参数(例如ECC LEVEL#)是否小于或等于最小值,对应于可用于存储器阵列的特定部分的最低ECC码率(步骤706)。在一种途径中,ECC码率可递减一,且若未在最小值设定递减的ECC码率参数,则ECC演算法改变为支持下一码率的演算法(步骤707)且演算法结束(步骤710)。若在步骤706处ECC码率参数小于或等于最小值,则设定或维持具有最小码率的ECC演算法(步骤707),且流程图结束(步骤710)。
图8为通过存储器控制器执行的用于回应于存储器阵列的操作条件而选择ECC演算法的另一程序的流程图,其中在此实例中,操作条件通过例如温度感测器的环境感测器指示。此演算法在步骤800处开始。在此程序中,温度感测器的输出用以计算统计参数“TA比率”,其等于HT/(HT+LT),其中HT为在间隔期间感测的高温,且LT为在间隔期间感测的低温(步骤801)。以此方式,较高TA比率指示间隔期间的较大温度波动,且较低TA比率指示间隔期间的较小温度波动。接着,对照阈值周期性地检查TA比率(步骤802)。若超出阈值TH,则改变码率新的ECC LEVEL被采用(步骤803),和流程图结束(步骤804)。若TA比率未超过阈值TH,则可保持相同ECC LEVEL,和流程图结束(步骤804)。
可利用图8中对应于温度的其他演算法及其他统计参数,包含例如正使用的集成电路存储器装置的或其中部署存储系统的环境的原始温度量测值。
图9为可通过存储器控制器执行的用于具有SLC子阵列及TLC子阵列(或多级单元子阵列)的存储器阵列的写入程序的流程图。图9的程序在步骤900处开始,接收写入命令。处理命令以判定其中待写入数据的实体位置,包含目标是否为SLC区块(步骤901)。若目标实体地址在SLC区块中,则使用为操作设定的SLC ECC LEVEL(例如,如在图2中所使用的ECCLEVEL 5)产生码字(步骤903)。若在步骤901处,目标实体地址不在SLC区块中,则可基于操作条件而判定ECC模式为ECC LEVEL n(步骤902),将选定ECC模式记录一映射表中,该映射表对应实体地址ECC LEVEL n于相对应的位置,且使用选定ECC模式产生ECC码字(步骤904)。在步骤903或步骤904处产生码字之后,在适当时将码字写入至SLC区块或TLC区块中的实体地址(步骤905)且流程图结束(步骤906)。
存储器阵列具有多个子阵列,例如SLC子阵列和TLC(或多级单元)子阵列,利用SLC与TLC子阵列访问时间的差异,可以以将SLC子阵列视为高速缓冲存储器的方式进行操作。在SLC子阵列与TLC子阵列之间移动数据作为高速缓存管理操作的部分,所述高速缓存管理操作可通过处理器执行的处理器程序实施于图1的存储系统中。如图10中所绘示,可以当数据在子阵列之间移动时导致ECC LEVEL改变的方式执行用以在SLC子阵列与TLC子阵列之间或在TLC子阵列与SLC子阵列之间移动数据的写入程序。
图10为可通过存储器控制器执行的用于具有SLC子阵列及TLC子阵列的存储器阵列的读取程序的流程图。图10的程序以接收读取命令开始(步骤1000)。处理命令以判定实体区块地址(Physical Block Address,PBA),及判定目标是否为SLC区块(步骤1001)。若在步骤1001处,目标实体地址为SLC区块,则确定SLC ECC模式(步骤1003),且自阵列输出码字(步骤1005)用于ECC处理。若在步骤1001处,目标实体地址为TLC区块,则自将ECC模式映射至实体区块地址的日志判定ECC模式(步骤1002)。接着,确立通过日志指示的ECC模式(步骤1004),且自存储器阵列输出码字用于ECC处理(步骤1005)。在输出码字之后,图10中所绘示的程序完成(步骤1006)。
在一些实施例中,可以将SLC区域处理为循环缓冲器的方式操作包含SLC区域及MLC区域的存储器装置。可在存储器控制器(例如,图1的处理器103)处或系统中的其他控制节点中的快闪变换层逻辑中执行循环缓冲器管理程序。图11为回应于写入指针1101存取SLC区块1100的简化图示。每一新码字写入至通过写入指针1101识别的实体区块地址,且写入指针递增。当写入指针递增至阵列的末端时,其环绕至起点,以循环缓冲器配置继续进行。可执行废料收集程序或其他程序以将在写入指针之后的下一区块保持在就绪状态以接收新码字。举例而言,可将在写入指针后的区域中保持有效数据的SLC区块拷贝至MLC区块,且可擦除SLC区块,藉此释放SLC区块从而写入新码字。以此方式,写入指针1101不应溢位而导致有效数据的重写。
对于作为循环缓冲器操作的SLC区域中ECC LEVEL的动态控制,系统亦可维持ECCLEVEL改变指针1102。可通过判定写入时SLC中区块的操作条件对每次写入至SLC区域执行ECC LEVEL的动态选择。若判定ECC LEVEL应基于目前操作条件而改变,则将ECC LEVEL改变指针1102移动至目前写入指针1101的位置,且将新ECC LEVEL应用于所有进行中的区块直至回应于条件的改变而更新ECC模式为止。
对于读取操作,将用于读取的SLC区块与ECC LEVEL改变指针1102进行比较。对于在ECC LEVEL改变为ECC LEVEL n+1的ECC LEVEL改变指针1102之间顺时针(向右)定位的SLC的区域中的读取,应用ECC LEVEL n+1以检查用于错误的码字。对于在ECC LEVEL改变指针1102与目前写入指针1101之间定址的循环缓冲器中逆时针(向左)定位的SLC的区域中的读取,应用先前ECC LEVEL n以检查用于错误的码字。
在此实例中,出于应用不同ECC的目的仅定义SLC循环缓冲器的两个区域。可通过如上文所论述的ECC LEVEL改变指针1102划定此等区域。最终,使用较早ECC LEVEL n写入的SLC区块将通过废料收集或以其他方式释放,以应用给新ECC LEVEL n+1使用。第一ECC区域包含在ECC LEVEL改变指针处的区块及顺时针方向上的区块直至最新有效SLC区块,其皆将在改变之后写入。第二ECC区域包含ECC LEVEL改变指针之前的区块及逆时针方向上的区块直至最旧有效区块。在一些实施例中,可维持多于一个ECC LEVEL改变指针,将SLC循环缓冲器分成多于两个的区域。
图12为包含例如参考图11所描述的SLC循环缓冲器的存储器的写入操作的流程图。在图12中,接收写入命令(步骤1200)。判定在存储器的SLC区域中是否命中写入命令(步骤1202)。若没有,则基于用于写入的实体区块地址(Physical Block Address,PBA)的MLC操作条件而判定ECC模式(步骤1203)。使用所判定的ECC模式,产生码字(步骤1204)。接着在实体区块地址处写入码字,且在日志中写入用于所述实体区块的ECC模式(步骤1205)。此时,写入操作结束(步骤1220)。
若在步骤1202处,判定在SLC循环缓冲器区域中为命中,则基于SLC一般操作条件或SLC中的选定区块的操作条件而判定ECC模式编号(步骤1211)。接下来判定是否基于操作条件改变目前ECC模式编号(步骤1212)。若其改变,则目前ECC模式改变,且将ECC模式改变指针移动至写入指针的位置(步骤1213)。若在步骤1212处或在改变ECC模式(步骤1213)之后ECC模式未改变,则使用目前ECC模式产生ECC码字(步骤1214)。接着,将码字写入至SLC区域中的写入指针的实体区块地址(步骤1215)。最后,演算法结束(步骤1220)。此为逻辑的实例,所述逻辑用以操作第一子阵列(例如,SLC区域)作为循环缓冲器及用以当执行目前写入操作时基于操作条件中的第一改变而改变ECC码率,以及用以将所改变的ECC码率应用于第一子阵列中的后续写入直至判定操作条件中的第二改变为止。此为方法的实例,所述方法操作第一子阵列作为循环缓冲器且维持写入指针及ECC LEVEL改变指针;当执行写入操作时基于操作条件中的改变来改变ECC码率,且将ECC LEVEL改变指针更新为写入指针;以及基于读取地址相对于ECC LEVEL改变指针的位置应用选定ECC码率。
本发明中描述示出通过存储器控制器或通过存储器装置执行的逻辑的多个流程图。可使用存储于电脑系统可存取的存储器中的电脑程序来程序化的处理器来实施逻辑,且可通过包含场可程序化集成电路的处理器、专用逻辑硬件以及专用逻辑硬件与电脑程序的组合来执行。如同本发明中的所有流程图,将了解,可组合、并行进行或以不同序列进行许多步骤而不影响所达成功能。在一些情况下,如读者将了解,只要亦进行某些其他改变,则步骤的重新配置亦将达成相同结果。在其他情况下,如读者将了解,只要满足某些条件,则步骤的重新配置将达成相同结果。此外,将了解,本发明中的流程图仅绘示相关于理解本发明的步骤,且应了解,可在所绘示的彼等步骤之前、之后以及之间进行用于实现其他功能的大量额外步骤。
尽管参考上文详述的较佳实施例及实例公开本发明,但应理解,此等实例意欲为说明性而非限制性意义。预期所属领域普通技术人员将容易地想到各种修改及组合,所述修改及组合将在本发明的精神及随附权利要求书的范畴内。
Claims (23)
1.一种存储装置,其错误率可取决于操作条件,其特征在于,该存储装置包括:
存储器阵列,包含多个存储器区块,所述多个存储器区块中的每一存储器区块设置于单一集成电路芯片上;以及
控制器,设置于一输入端与所述存储器阵列之间的数据路径中,该输入端用以接收承载数据,所述控制器包含错误校正码引擎(Error Correction Code Engine,ECC Engine),所述ECC引擎用以产生存储在所述多个存储器区块中的已定址存储器区块中的地址中的码字,所述码字包含各别承载数据段及ECC码段,所述ECC引擎包含用以实施具有至少二ECC码率的所述码字的逻辑;
其中所述控制器更包含调整逻辑,用以依据存储于所述多个存储器区块中的已定址存储器区块中数据可靠性(data reliability),自所述至少二ECC码率选择其一ECC码率。
2.根据权利要求1所述的存储装置,其特征在于,所述调整逻辑是将所述至少二ECC码率映射至地址的日志以及用以使用随所述地址及所述操作条件而变化的所述日志,自所述至少二ECC码率选择其一ECC码率的逻辑。
3.根据权利要求2所述的存储装置,其特征在于,所述ECC引擎包含用以处理来自所述存储器阵列中的读取地址的具有所述不同ECC码率的读取码字的逻辑,所述存储装置包含用以判定来自所述日志的读取码字的所述ECC码率的逻辑。
4.根据权利要求2所述的存储装置,其特征在于,包含用以对所述存储器阵列的部分的存取进行计数的逻辑,且所述操作条件包含存取计数。
5.根据权利要求2所述的存储装置,其特征在于,包含温度感测器,且所述操作条件包含来自所述温度感测器的输出。
6.根据权利要求2所述的存储装置,其特征在于,包含损耗平衡逻辑,其维持关于所述存储器阵列的部分的耐久性的数据,以及维持所述操作条件,其中所述操作条件包含耐久性数据。
7.根据权利要求2所述的存储装置,其特征在于,包含编程/擦除周期逻辑,其维护关于所述存储器阵列的部分的编程/擦除周期计数的数据,以及维护所述操作条件,其中所述操作条件包含编程/擦除周期计数。
8.根据权利要求2所述的存储装置,其特征在于,所述地址包含所述多个区块中的区块的实体区块地址,且所述日志将所述实体区块地址映射至所述ECC码率。
9.根据权利要求2所述的存储装置,其特征在于,所述多个区块中的所述区块各自包含多个页面,且其中所述码字存储在各别页面中。
10.根据权利要求2所述的存储装置,其特征在于,所述存储器阵列包含第一子阵列及第二子阵列,包含用以将所述ECC码率的集合应用于所述第一子阵列中的地址的逻辑。
11.根据权利要求10所述的存储装置,其特征在于,所述第一子阵列及所述第二子阵列位于单个集成电路上,且所述存储装置包含用以操作所述第一子阵列以存储每单元的一个位元及用以操作所述第二子阵列以存储每单元的多个位元的逻辑。
12.一种控制器,其使用于非易失性存储器阵列与承载数据源之间,用于使用非易失性存储器阵列的实体地址的读取命令及写入命令,其特征在于,所述控制器包括:
错误校正码引擎(Error Correction Code Engine,ECC Engine),位于用以接收承载数据的输入端与所述存储器阵列之间的数据路径中,所述ECC引擎用以产生码字,所述码字存储在所述非易失性存储器阵列中的已定址存储器区块中的地址,所述码字包含各别承载数据段及ECC码段,所述ECC引擎包含实施具有至少二ECC码率的所述码字的逻辑;以及
调整逻辑,用以依据存储于所述多个存储器区块中的所述已定址存储器区块中数据可靠性(data reliability),自所述至少二ECC码率选择其一。
13.根据权利要求12所述的控制器,其特征在于,所述调整逻辑是将所述至少二ECC码率映射至地址的日志以及用以使用随所述地址及所述操作条件而变化的所述日志,自所述至少二ECC码率选择其一ECC码率的逻辑。
14.根据权利要求13所述的控制器,其特征在于,包含逻辑,所述逻辑用以产生所述写入命令及所述读取命令,所述写入命令用以将所述码字写入所述已定址存储器区块中,所述读取命令用以使用读取地址读取码字,且所述读取命令用以处理来自所述非易失性存储器阵列的所述读取码字,其中所述读取码字具有所述不同ECC码率,包含来自所述日志用以判定读取码字的ECC码率的逻辑。
15.根据权利要求13所述的控制器,其特征在于,包含用以对所述非易失性存储器阵列的部分的存取进行计数的逻辑,且所述操作条件包含存取计数。
16.根据权利要求13所述的控制器,其特征在于,包含耦接至所述非易失性存储器阵列的温度感测器,且所述操作条件包含来自所述温度感测器的输出。
17.根据权利要求13所述的控制器,其特征在于,包含损耗平衡逻辑,其维持关于所述非易失性存储器阵列的耐久性,且维持所述操作条件,其中所述操作条件包含耐久性数据。
18.根据权利要求13所述的控制器,其特征在于,包括程序/擦除周期逻辑,其维护关于非易失性存储器阵列的部分的编程/擦除周期计数的数据,且维护所述操作条件,其中所述操作条件包括编程/擦除周期计数。
19.根据权利要求13所述的控制器,其特征在于,所述非易失性存储器阵列包含第一子阵列及第二子阵列,包含用以操作所述第一子阵列作为循环缓冲器及用以当执行写入操作时基于操作条件中的第一改变来改变所述ECC码率以及用以将所改变的所述ECC码率应用于所述第一子阵列中的写入直至判定操作条件中的第二改变为止的逻辑。
20.根据权利要求19所述的控制器,其特征在于,用以操作所述第一子阵列以存储每单元的一个位元及用以操作所述第二子阵列以存储每单元的多个位元的逻辑。
21.一种操作方法,用于错误率可取决于操作条件的存储装置,其特征在于,所述操作方法包括:
识别存储器阵列的一部分且判定被识别的部分的操作条件;
取决于所述被识别的部分及被判定的操作条件,自具有不同码率的多个ECC演算法中选择ECC演算法;
产生使用存储在所述已识别的部分中的所述被选定ECC演算法的一或多个码字;
将所述存储器的部分映射至一映射表中对应的所述被选定ECC演算法;以及
将所述一或多个码字写入所述存储器阵列中的所述识别出的部分。
22.根据权利要求21所述的操作方法,其特征在于,包含:
自所述存储器阵列的已定址部分读取特定码字;
判定映射至所述已定址部分的所述被选定的ECC演算法;以及
应用所述被选定的ECC演算法以检查所述特定码字中的错误。
23.根据权利要求21所述的操作方法,其特征在于,所述存储器阵列包含第一子阵列及第二子阵列,包含
操作所述第一子阵列作为循环缓冲器且维护写入指针及ECC级别改变指针;
当执行写操作时根据操作条件的变化改变ECC码率,并将ECC级别变化指针更新为写入指针;以及
基于读取地址相对于所述ECC级别改变指针的位置应用所述被选定的ECC码率。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/494,361 | 2021-10-05 | ||
US17/494,361 US11658685B2 (en) | 2021-10-05 | 2021-10-05 | Memory with multi-mode ECC engine |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115938458A true CN115938458A (zh) | 2023-04-07 |
Family
ID=85774629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210201751.4A Pending CN115938458A (zh) | 2021-10-05 | 2022-03-03 | 存储装置、控制器以及存储装置的操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11658685B2 (zh) |
CN (1) | CN115938458A (zh) |
TW (1) | TWI803203B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102496011B1 (ko) * | 2021-01-04 | 2023-02-06 | 서울시립대학교 산학협력단 | 코드 밀도를 조절하는 데이터 스크램블링 방법 |
KR20230152501A (ko) * | 2022-04-27 | 2023-11-03 | 한국과학기술원 | 플래시 기반 저장 장치 및 그 카피백 동작 방법 |
US20240061589A1 (en) * | 2022-08-17 | 2024-02-22 | Micron Technology, Inc. | Code rate as function of logical saturation |
US20240103741A1 (en) * | 2022-09-26 | 2024-03-28 | Micron Technology, Inc. | Providing multiple error correction code protection levels in memory |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8307261B2 (en) * | 2009-05-04 | 2012-11-06 | National Tsing Hua University | Non-volatile memory management method |
US20110307758A1 (en) * | 2010-06-15 | 2011-12-15 | Fusion-Io, Inc. | Apparatus, system, and method for providing error correction |
US20130031301A1 (en) * | 2011-07-29 | 2013-01-31 | Stec, Inc. | Backend organization of stored data |
US8566667B2 (en) * | 2011-07-29 | 2013-10-22 | Stec, Inc. | Low density parity check code decoding system and method |
US9152495B2 (en) * | 2013-07-03 | 2015-10-06 | SanDisk Technologies, Inc. | Managing non-volatile media using multiple error correcting codes |
US9984768B2 (en) * | 2014-10-20 | 2018-05-29 | Sandisk Technologies Llc | Distributing storage of ECC code words |
US20170126249A1 (en) | 2015-10-30 | 2017-05-04 | Intel Corporation | Temperature dependent multiple mode error correction |
US10026483B1 (en) * | 2017-06-28 | 2018-07-17 | Western Digital Technologies, Inc. | Program temperature aware data scrub |
US10545685B2 (en) | 2017-08-30 | 2020-01-28 | Micron Technology, Inc. | SLC cache management |
US10896123B2 (en) * | 2018-12-13 | 2021-01-19 | Western Digital Technologies, Inc. | Enhancing the effectiveness of read scan performance and reliability for non-volatile memory |
KR20200099438A (ko) * | 2019-02-14 | 2020-08-24 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 |
US11200118B2 (en) * | 2019-08-29 | 2021-12-14 | Micron Technology, Inc. | Semiconductor device with modified command and associated methods and systems |
KR20210034726A (ko) * | 2019-09-20 | 2021-03-31 | 삼성전자주식회사 | 메모리 모듈, 그것을 제어하는 메모리 제어기의 에러 정정 방법, 및 그것을포함하는 컴퓨팅 시스템 |
US11258464B1 (en) * | 2020-04-09 | 2022-02-22 | Kioxia Corporation | Codeword concatenation for correcting errors in data storage devices |
US11159176B1 (en) * | 2020-06-26 | 2021-10-26 | Western Digital Technologies, Inc. | Data-assisted LDPC decoding |
-
2021
- 2021-10-05 US US17/494,361 patent/US11658685B2/en active Active
-
2022
- 2022-02-22 TW TW111106308A patent/TWI803203B/zh active
- 2022-03-03 CN CN202210201751.4A patent/CN115938458A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US11658685B2 (en) | 2023-05-23 |
US20230106125A1 (en) | 2023-04-06 |
TWI803203B (zh) | 2023-05-21 |
TW202316270A (zh) | 2023-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10102059B2 (en) | Data storage device capable of preventing a data retention fail of a nonvolatile memory device and operating method thereof | |
US11658685B2 (en) | Memory with multi-mode ECC engine | |
US10936391B2 (en) | Memory management method and storage controller | |
US11107550B2 (en) | Self-adaptive read voltage adjustment using boundary error statistics for memories with time-varying error rates | |
CN106257594B (zh) | 读取干扰收回策略 | |
US9627072B2 (en) | Variant operation sequences for multibit memory | |
CN109599143B (zh) | 具有读阈值机制的存储系统及其操作方法 | |
US8977804B1 (en) | Varying data redundancy in storage systems | |
KR20210070378A (ko) | 판독 방해 스캔 통합 | |
US20090024787A1 (en) | Data writing method and apparatus | |
TWI651726B (zh) | 解碼方法以及儲存控制器 | |
US11579972B2 (en) | Non-volatile memory device, controller for controlling the same, storage device having the same, and reading method thereof | |
US10832784B2 (en) | Pre-program read to counter wordline failures | |
US11061769B2 (en) | Storage device selectively generating parity bits according to endurance of memory cell, and method thereof | |
US20070294588A1 (en) | Performing a diagnostic on a block of memory associated with a correctable read error | |
US10324648B1 (en) | Wear-based access optimization | |
JP2010500699A (ja) | メモリデバイス内のセクタごとに許容できるビットエラー | |
US11894090B2 (en) | Selective power-on scrub of memory units | |
CN116954491A (zh) | 用于存储控制器的操作方法和包括存储控制器的存储系统 | |
US11698832B2 (en) | Selective sampling of a data unit during a program erase cycle based on error rate change patterns | |
CN113076218B (zh) | Nvm芯片读数据错误快速处理方法及其控制器 | |
US20230153038A1 (en) | Storage device performing self-diagnosis and storage system including the same | |
US20240069765A1 (en) | Two-tier defect scan management | |
TW202240594A (zh) | 用於管理具有動態錯誤更正碼保護之記憶體的方法及系統 | |
KR20230115195A (ko) | 액티브 존 리프레시를 수행하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |