CN111164695A - 闪存的码率切换机制 - Google Patents
闪存的码率切换机制 Download PDFInfo
- Publication number
- CN111164695A CN111164695A CN201980004805.4A CN201980004805A CN111164695A CN 111164695 A CN111164695 A CN 111164695A CN 201980004805 A CN201980004805 A CN 201980004805A CN 111164695 A CN111164695 A CN 111164695A
- Authority
- CN
- China
- Prior art keywords
- code rate
- data storage
- switching
- data
- volatile memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 124
- 230000007246 mechanism Effects 0.000 title description 3
- 238000013500 data storage Methods 0.000 claims abstract description 82
- 238000000034 method Methods 0.000 claims description 45
- 230000004044 response Effects 0.000 claims description 14
- 230000008569 process Effects 0.000 description 25
- 238000007726 management method Methods 0.000 description 20
- 238000012545 processing Methods 0.000 description 8
- 230000014759 maintenance of location Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000012937 correction Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 241001522296 Erithacus rubecula Species 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 241000258963 Diplopoda Species 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000012005 ligant binding assay Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Probability & Statistics with Applications (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
公开了一种能够基于主机命令切换码率的数据存储系统。数据存储系统的控制器可以将数据存储设备中的码率设置为第一码率,用于对要被写入数据存储设备的非易失性存储器的数据进行编码。控制器可以在数据存储设备处接收主机命令,该主机命令指示用于将设置的码率从第一码率切换到第二码率的切换点。控制器可以在所指示的切换点处将设置的码率从第一码率切换到第二码率。
Description
背景技术
非易失性闪存的寿命有限。闪存的寿命可对应于闪存可承受的程序擦除(P/E)周期的数量。为了防止存储在闪存中的用户数据损坏,可以生成奇偶校验数据并与用户数据一起存储,以便于错误检测和/或更正。如果使用更高的码率对数据进行编码,则生成和存储的奇偶校验数据较少。由于在使用较高的码率时存储的奇偶校验数据较少,因此较高的码率可允许闪存具有更多的存储容量。另一方面,如果使用较低的码率,则生成更多的奇偶校验数据以保护用户数据免于错误,从而使闪存的存储容量变小。
发明内容
提供一种用于数据存储系统的码率切换系统和方法。根据一些实施方式,该方法包括将数据存储设备中的码率设置为第一码率,用于对要被写入数据存储设备的非易失性存储器的数据进行编码,并在数据存储设备处接收主机命令,该主机命令指示用于将设置的码率从第一码率切换到第二码率的切换点,并在所指示的切换点处将设置的码率从第一码率切换到第二码率。
根据一些实施方式,数据存储设备包括非易失性存储器和耦合到非易失性存储器的控制器。控制器被配置为:将数据存储设备中的码率设置为第一码率,用于对要被写入非易失性存储器的数据进行编码,在数据存储设备处接收主机命令,该主机命令指示用于将设置的码率从第一码率切换到第二码率的切换点,确定已在非易失性存储器中已经到达所指示的切换点,并响应于确定已到达所指示的切换点,将所设置的码率从第一码率切换到第二码率。
根据一些实施方式,非暂时性机器可读介质包括其上的指令,当被执行时,该指令使编码模块执行方法。在这些实施方式中,该方法包括将码率设置为第一码率,用于对要被写入数据存储设备的非易失性存储器的数据进行编码,接收主机命令,该主机命令指示用于将设置的码率从第一码率切换到第二码率的切换点,在所指示的切换点处将所设置的码率从第一码率切换到第二码率,响应于将设置的码率从第一码率切换到第二码率,从非易失性存储器读取和解码以第一码率编码的数据,以第二码率对读取和解码的数据进行编码并将以第二码率编码的数据写入非易失性存储器。
根据一些实施方式,数据存储设备包括非易失性存储器、用于将数据存储设备中的码率设置为用于将要被写入非易失性存储器的数据编码的第一码率的装置、用于在数据存储设备处接收指示用于将设置的码率从第一码率切换到第二码率的切换点的主机命令的装置、用于确定在非易失性存储器中已到达所指示的切换点的装置以及用于响应于确定已到达所指示的切换点而将所设置的码率从第一码率切换到第二码率的装置。
应当理解,根据以下详细描述,本领域技术人员将很容易明白本主题技术的其他配置,其中通过图解的方式示出和描述了本主题技术的各种配置。如将要实现的,本主题技术能够进行其他和不同的配置,并且其若干细节能够在各种其他方面进行修改,而所有这些都不脱离本主题技术的范围。因此,附图和详细的描述在本质上应被视为说明性的,而不是限制性的。
附图说明
将参考以下附图描述体现本本主题技术的各种特征的系统和方法,其中:
图1图解说明了根据本主题技术的各方面的示例非易失性闪存系统。
图2描绘了图解说明各种情况下的码率的切换点的示例图。
图3图解说明了根据本主题技术的方面图解说明非易失性闪存系统的控制器中包括的组件的示例图。
图4描绘了根据本主题技术的方面的用于非易失性闪存系统的码率切换的示例处理的流程图。
图5描绘了根据本主题技术的方面的用于非易失性闪存系统的码率切换的示例处理的流程图。
具体实施方式
下文阐述的详细描述旨在描述本主题技术的各种配置,而不是旨在表示本主题技术可在其中实践的唯一配置。附图包含在本文中,并且构成详细描述的一部分。详细描述包括具体细节,以提供对本主题技术的透彻理解。然而,对于本领域技术人员来说显然是,在没有这些具体细节的情况下,可以实践本本主题技术。在某些情况下,为了避免混淆本主题技术的概念,众所周知的结构和组件以框图的形式显示。为了便于理解,类似的组件被标记为相同的元件号。
数据存储系统,诸如固态驱动器,可以包括与一个或更多个非易失性闪存阵列耦合的一个或更多个控制器。存储的数据可能会由于例如读/写干扰、数据保留丢失和/或持久性下降等原因而出现错误。例如,数据保持可以是闪存随时间保持存储的信息的能力,因此可以对应于存储的数据可以可靠地从闪存中检索的时间段。持久性可以对应于在错误率超过阈值或数据不可读之前闪存能够承受的程序擦除(P/E)周期的数量。数据存储系统可以利用一个或更多个错误更正或错误编码机制来检测和/或更正存储数据中的错误。例如,当写入用户数据时,用户数据可以用奇偶校验数据编码并存储在闪存阵列中。当检索存储在闪存阵列中的用户数据时,可以检索和利用与用户数据相关联的奇偶校验数据来确定检索到的用户数据的完整性。如果在检索到的用户数据中检测到一个或更多个错误,则可以更正此类错误。
奇偶校验数据的生成可能涉及相当大的系统开销,诸如处理时间开销、系统资源开销和/或系统组件开销(例如,需要使用额外的硬件、固件等)。此外,存储奇偶校验数据(例如,在闪存阵列中)可以减少可用于存储用户数据的存储器空间。因此,对于数据存储系统来说,支持多个不同的码率、码长度和/或不同的编码吞吐速度可能是有利的。例如,数据存储系统可以使用更高的码率对数据进行编码,以在闪存处于生命周期的早期时生成和存储更少的奇偶校验数据,从而提供足够的数据保持和/或持久性。随着闪存随着时间的推移逐渐损耗,数据存储系统可以自动切换到较低的码率,以生成更多的奇偶校验数据来保护用户数据避免错误。因此,数据存储系统可以预配置为当到达闪存的生命周期中的预定切换点时自动切换到较低的码率。然而,在某些情况下(例如,在闪存的生命周期的给定点处的实际错误量小于预期错误量的情况下),在预定切换点处的这种码率切换可能是不可取的。
在某些情况下,闪存可能会离线(例如,与电源断开连接)。例如,可以将闪存拔出并存储在存储室中。期间停用闪存的持续时间可称为离线持续时间。在离线持续时间期间,由于电荷泄漏,存储在闪存中的数据的完整性可能随着时间的推移而恶化,从而对数据保持产生不利影响。因此,如果期望较长的离线持续时间,则可能需要更多的错误更正。例如,如果预期离线持续时间长,则可能需要使用更多奇偶校验数据以提供更多的错误更正能力。因此,预期的离线持续时间也可能影响切换到较低码率的最优切换点。
本主题技术的示例实施方式针对数据存储系统,该数据存储系统被配置为基于来自主机系统的主机命令来调整码率。例如,可以向数据存储系统的控制器提供主机命令,使得控制器可以基于主机命令从一个码率切换到另一个码率。因此,码率的切换点可以不限于预定义的切换点,而是可以由主机命令指示,从而基于主机命令在控制码率切换方面提供灵活性。
图1图解说明了根据本主题技术的方面的示例非易失性闪存系统100。如图所示,数据存储系统100(例如,固态驱动器)包括控制器130和闪存150。闪存150可包括非易失性存储器,诸如闪存集成电路、NAND闪存(例如,单级单元(SLC)存储器、多级单元(MLC)存储器或其任何组合)、NOR闪存、EEPROM闪存、其他分立快闪NVM(非易失性存储器)芯片或其任何组合。数据存储系统100还可以包括其他类型的存储。
控制器130可以被配置成从主机系统110的存储接口112(例如,设备驱动器)接收数据和/或存储访问命令。由存储接口112传送的存储访问命令可以包括由主机系统110发出的写入数据和读取数据命令。读和写命令可以指定用于访问数据存储系统100的逻辑地址(例如,逻辑块地址或LBA)。控制器130可以在闪存150中执行接收到的命令。
数据存储系统100可以存储由主机系统110传送的数据。换句话说,数据存储系统100可以充当主机系统110的存储器存储装置。为了方便此功能,控制器130可以实施逻辑接口。逻辑接口可以向主机系统110提供数据存储系统的存储器作为一组逻辑地址(例如,连续地址),其中可以存储用户数据。在内部,控制器130可以将逻辑地址映射到闪存150和/或其他存储模块中的各种物理位置或地址。控制器130除其它外包括存储器132。存储器132可以包括易失性存储器,诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)或其任何组合。控制器130被配置成将数据存储在闪存150中并从闪存150检索数据,确定从非易失性存储器阵列检索的数据的完整性,必要时对检索的数据执行错误更正,并在数据存储系统100和主机系统110之间执行数据传输。
如上所述,由于闪存150可能磨损,因此随着时间的推移变得更容易受到错误的影响,在闪存150的生命周期的晚期可偏爱较低的码率,以提供更多的保护以防止错误。因此,控制器130可以被配置成在闪存150处于生命周期的早期时使用第一码率对数据进行编码,并且可以在闪存150处于生命周期的晚期时切换到第二码率以对数据进行编码,其中第二码率可以低于第一码率。闪存150的生命周期可以由多个P/E周期来表示。因此,在一个方面中,控制器130可以被配置成在P/E周期数到达P/E周期阈值之前在生命周期的早期利用第一码率,并且当P/E周期数到达P/E周期阈值时切换到第二码率。P/E周期阈值可以指示从第一码率切换到第二码率的切换点。
从较高的码率切换到较低的码率的最优切换点可以取决于数据存储系统100是在线的(例如,在循环模式中)还是计划离线(例如,在保持模式下)以及指示数据存储系统100离线的持续时间的预期离线持续时间。在数据存储系统100离线(例如,在保持模式下)的离线持续时间期间,闪存150可能经历电荷泄漏,这可能恶化存储在非易失性闪存中的数据的完整性。因此,针对数据存储系统100在一段时间内离线的情况的最优切换点可能比针对数据存储系统100保持在线的情况的最优切换点早。
图2描绘了图解说明各种情况下的码率的切换点的示例图200。x轴表示P/E周期数,y轴表示误比特率/误码率(BER)。随着P/E周期数的增加,误比特率增加。在误比特率超过错误阈值的点处,码率从第一码率切换到第二码率,其中第二码率低于第一码率。实曲线表示在存储设备保持在线而不离线的循环情况下的误比特率。虚线曲线表示在计划使存储设备离线一段离线持续时间(例如3个月)的保留情况下的误比特率。随着P/E周期数的增加(例如,由于离线期间离线导致的电荷泄漏),保持情况下的误比特率可能比循环模式的误比特率增加得快。因此,保持情况下的误比特率将比循环情况下的误比特率更快地到达错误阈值。因此,当预期存储设备离线一段离线持续时间时,应在存储器的生命周期中更早地发生从第一码率到第二码率的码率切换。在图200中,对于保持情况,切换点在点1,而对于循环情况,切换点在点2。在保持情况下,当P/E周期数到达点1时,码率切换到低于第一码率的第二码率。在循环情况下,当P/E周期数到达点2时,码率切换到低于第一码率的第二码率。
为了考虑数据存储系统100离线的可能性,数据存储系统100可以针对在数据存储系统100离线预定义的离线持续时间(例如3个月)的情况下的最优切换点,预配置P/E周期阈值。然而,如果预期数据存储系统100不离线,则最优切换点可能在生命周期中晚于预配置的切换点,因此可能对应于大于预配置的P/E周期阈值的P/E周期数。另一方面,如果预期数据存储系统100离线的持续时间比预定离线持续时间长,则最优切换点可能在生命周期中早于预配置切换点,因此可能对应于小于预配置P/E周期阈值的P/E周期数。因此,利用预配置P/E周期阈值,控制器130可能无法在最优切换点处执行码率切换以从较高码率切换到较低速率,特别是在数据存储系统100离线的持续时间短于或长于预定义离线持续时间的情况下。
本主题技术使得控制器130能够接收指示切换点的主机命令,使得控制器130可以在由主机命令指示的切换点处切换码率。例如,如果用户知道数据存储系统100将无限期地保持在线,则用户可以输入主机命令,指示对应于生命周期中比预配置的切换点晚的点的切换点。另一方面,如果用户知道数据存储系统100将在较长时间内离线(例如,大于预定义的离线持续时间),则用户可以输入主机命令,指示对应于生命周期中比预配置的切换点早的点的切换点。基于主机命令,控制器130可以在主机命令指示的切换点处执行码率切换。因此,当接收到主机命令时,控制器130可以不利用预配置的切换点,而是可以利用由主机命令指示的切换点。
在一个或更多个实施方式中,可以利用两个以上的码率和一个以上的切换点。例如,控制器130可以通过在数据存储系统100的生命周期中利用4到8个码率来转换。当到达切换点序列中的每一个时,控制器130可以逐步切换到利用数据存储系统100的可用码率的下一个更高码率。主机命令可以指示用于在码率之间切换的多个切换点。例如,如果第一、第二、第三和第四码率可用,则主机命令可以指示三个切换点。因此,当到达第一切换点时,可以将码率从第一码率切换到高于第一码率的第二码率,当到达第二切换点时,可以将码率从第二码率切换到高于第二码率的第三码率,当到达第三切换点时,可以将码率从第三码率切换到高于第三码率的第四码率。主机命令可以指示可用码率总数中的多个码率以及用于在所指示码率之间切换的多个切换点。例如,如果主机命令指示五个可用码率中的三个码率并指示两个切换点,则当到达第一切换点时,可以将码率从第一码率切换到第二码率,并且当到达第二切换点时,可以将码率从第二码率切换到第三码率。替代地,主机命令可以仅指示码率以及相关联的切换点的序列中的下一个码率和相关联的切换点。
闪存150可以包括多个闪存芯片或管芯,每个芯片或管芯包括多个闪存块。在闪存150的生命周期中,在不同的P/E周期计数下,闪存芯片或管芯可以各自具有不同的误比特率特性。此外,在不同的P/E周期计数下,多组闪存块或单个闪存块也可能具有不同的误比特率特性。控制器130可以对闪存150的不同部分(例如不同芯片、闪存块或闪存块组)利用不同的码率。闪存150的每个部分可以具有其自己的码率和/或切换点的序列,其考虑不同的误比特率特性。替代性地,所有部分可以利用相同的码率和切换点的序列,并且当每个部分到达切换点时,控制器130在每个部分的码率之间转换。在闪存150的不同部分可以利用不同的码率和/或切换点的实施方式中,主机命令可以进一步指示所指示的码率或切换点应用于闪存150的部分。
图3图解说明了根据本主题技术的方面的示例图300,其图解说明包括在非易失性闪存系统100的控制器130中的组件。控制器130可以包括码率管理组件302、读/写管理组件304、解码器306和编码器308。包括在控制器130中的一个或更多个组件可以与存储器132通信,以临时存储用于控制器130进行各种操作的数据。为了适应不同的码率,编码器308和/或解码器306可以被配置成设置不同的码率。替代性地,编码器308可以包括用于不同码率的不同编码器和/或解码器306可以包括用于不同码率的不同解码器。
码率管理组件302可以最初将数据存储系统100中的码率设置为用于编码要被写入闪存150的数据的第一码率。因此,最初,编码器308可以以第一码率对数据进行编码,其中读/写管理组件304可以将以第一码率编码的数据写入闪存150。例如,首先,在生命周期的早期,由于闪存150可以提供足够的数据保持和/或持久性,所以可以将码率设置为较高的码率。
码率管理组件302可以接收主机命令,该主机命令指示用于将设置的码率从第一码率切换到第二码率的切换点。主机系统110可以向控制器130发射主机命令,使得码率管理组件302可以接收主机命令。主机命令可以由用户输入。例如,如果用户知道数据存储系统100的预期离线持续时间,则用户可能能够基于预期离线持续时间设置主机命令,以指示对于具有预期离线持续时间的数据存储系统100来说是最优的切换点。因此,可以将主机命令发送到数据存储系统100,以基于不同的情况定制切换点。当码率管理组件302接收到主机命令时,码率管理组件302可以不利用预配置的切换点,因为码率管理组件302利用由主机命令指示的切换点。
码率管理组件302可确定是否已到达闪存150中所指示的切换点。当码率管理组件302确定已在闪存150中到达指示的切换点时,码率管理组件302可以在指示的切换点处将设置的码率从第一码率切换到第二码率。第一码率可以高于第二码率,因此第一码率可以是较高的码率,而第二码率可以是较低的码率。通过在指示的切换点切换到较低的码率,码率管理组件302可能能够减少错误并补偿闪存150随着时间的推移而损耗。
切换点可以是P/E周期阈值。当码率管理组件302确定闪存150的P/E周期计数满足P/E周期阈值时,码率管理组件302可以确定已到达指示的切换点。P/E周期阈值可以基于数据存储系统100的离线持续时间规范。
在一个或更多个实施方式中,指示的切换点可以是接收主机命令时的时间。例如,主机命令可以指示在接收到主机命令时将发生从第一码率到第二码率的切换。在这种情况下,码率管理组件302可以在接收到主机命令时立即将设置的码率从第一码率切换到第二码率。
当码率从较高速率切换到较低速率时,在预期数据存储系统100即将处于离线状态的情况下,使用较低的码率重写被写入闪存150中的数据可能是有益的。例如,在数据存储系统100变为离线之前,使用较低的码率重写被写入闪存150中的数据可能是有益的,因为以较低的码率写入数据可以最小化由数据存储系统100离线引起的错误。因此,当在指示的切换点处将设置的码率切换到第二码率时,读/写管理组件304可以从闪存150读取以第一码率编码的数据,并且解码器306可以对读取的数据进行解码。随后,编码器308可以以第二码率对解码的数据进行编码。然后,读/写管理组件304可以将以第二码率编码的数据写入闪存150。通过以低于第一速率的第二速率对数据进行编码并重写所编码的数据,当数据存储系统100离线时,可以减少由数据存储系统100离线引起的错误。
图4描绘了根据本主题技术的各个方面的用于非易失性闪存系统的码率切换的示例过程400的流程图。为了说明的目的,本文参照本文描述的组件和/或过程来描述示例过程400的各个块。过程400的一个或更多个块可以例如由一个或更多个处理器实施,例如,包括图1的控制器130或控制器130的一个或更多个组件或处理器。在一些实施方式中,一个或更多个块可以与其他块分开实施,并且由一个或更多个不同的处理器或控制器实施。此外,为了说明的目的,示例过程400的块被描述为以串行或线性方式发生。然而,示例过程400的多个块可以并行发生。此外,不需要按照所示顺序执行示例过程400的块和/或不需要执行示例过程400的一个或更多个块。过程400的块或其子集也可以针对每个存储器设备执行和/或支持多个代码长度,这取决于(一个或更多个)存储器设备的各种操作条件。
在所描绘的示例中,根据本主题技术的系统将数据存储设备中的码率设置为用于编码要被写入数据存储设备的非易失性存储器的数据的第一码率(402)。在数据存储设备(例如,数据存储系统100)处,接收指示用于将设置的码率从第一码率切换到第二码率的切换点的主机命令(404)。在一些方面,第一码率可以高于第二码率。
在一个或更多个实施方式中,切换点可以是接收主机命令时的时间。在一个或更多个实施方式中,切换点可以是P/E周期阈值,并且可以通过确定非易失性闪存150的P/E周期计数满足P/E周期阈值来确定已到达所指示的切换点。P/E周期阈值可以基于数据存储设备的离线持续时间规范。
根据本主题技术的系统确定是否已在闪存150中到达所指示的切换点(406)。如果确定在闪存150中已到达所指示的切换点,则设置的码率从第一码率切换到第二码率(408)。如果确定在闪存150中未到达指示的切换点,则设置的码率可以保持在第一码率。
图5描绘了根据本主题技术的各个方面的用于非易失性闪存系统的码率切换的示例过程500的流程图。为了说明的目的,本文参照本文描述的组件和/或过程来描述示例性过程500的各个块。过程500的一个或更多个块可以例如由一个或更多个处理器实施,例如,包括图1的控制器130或控制器130的一个或更多个组件或处理器。在一些实施方式中,一个或更多个块可以由一个或更多个不同的处理器或控制器与其他块分开实施。此外,为了说明的目的,示例过程500的块被描述为以串行或线性方式发生。然而,示例过程500的多个块可以并行发生。此外,不需要按照所示的顺序执行示例过程500的块和/或不需要执行示例过程500的一个或更多个块。过程500的块或其子集也可以针对每个存储器设备执行和/或支持多个代码长度,这取决于(一个或更多个)存储器设备的各种操作条件。
当设置的码率从第一码率切换到第二码率时,可以发生示例过程500。在所描述的示例中,根据本主题技术的系统响应于将设置的码率从第一码率切换到第二码率,从非易失性存储器读取和解码以第一码率编码的数据(502)。读取和解码的数据以第二速率被编码(504)。将编码的数据以第二速率写入非易失性存储器(506)。
可以由控制器130利用码率管理组件302、读/写管理组件304、解码器306和编码器308来执行过程400和500的上述步骤。示例过程400和500的许多上述特征以及相关特征和应用可以被实施为指定为记录在计算机可读存储介质(也称为计算机可读介质)上的一组指令的软件处理。当这些指令由一个或更多个处理单元(例如,一个或更多个处理器、处理器核心或其他处理单元)执行时,它们使(一个或更多个)处理单元执行指令中指示的动作。计算机可读介质的示例包括但不限于CD-ROM、闪存驱动器、RAM芯片、硬盘驱动器、EPROM等。计算机可读介质不包括无线或通过有线连接传递的载波和电子信号。
本文公开的系统和方法可应用于硬盘驱动器、混合硬盘驱动器等。此外,还可以附加地或替代性地使用其他形式的存储装置(例如DRAM或SRAM、电池备份的易失性DRAM或SRAM设备、EPROM、EEPROM存储器等)。作为另一示例,图中所说明的各种组件可以被实施为处理器、AS1C/FPGA或专用硬件上的软件和/或固件。此外,可以以不同方式组合上面公开的特定示例实施方式的特征和属性以形成附加示例实施方式,所有这些都属于本公开的范围。尽管本公开提供了某些优选的示例性实施方式和应用,但对于本领域普通技术人员明显的其他示例实施方式,包括不提供本文所阐述的所有特征和优点的示例实施方式,也在本公开的范围内。因此,本公开的范围仅通过参考所附权利要求来定义。
可以使用将一个或更多个指令编码的有形计算机可读存储介质(或一种或更多种类型的多个有形计算机可读存储介质)部分或全部实现本公开范围内的实施方式。有形的计算机可读存储介质本质上也可以是非暂时性的。
计算机可读存储介质可以是可由通用或专用计算设备读取、写入或以其他方式访问的任何存储介质,包括能够执行指令的任何处理电子器件和/或处理电路。例如,而不是限制的情况下,计算机可读介质可以包括任何易失性半导体存储器,诸如RAM、DRAM、SRAM、T-RAM、Z-RAM和TTRAM。计算机可读介质还可以包括任何非易失性半导体存储器,诸如ROM、PROM、EPROM、EEPROM、NVRAM、flash、nvSRAM、FeRAM、FeTRAM、MRAM、PRAM、CBRAM、SONOS、RRAM、NRAM、赛道(racetrace)存储器、FJG和Millipede存储器。
此外,计算机可读存储介质可以包括任何非半导体存储器,诸如光盘存储装置、磁盘存储装置、磁带、其他磁存储设备,或者能够存储一个或更多个指令的任何其他介质。在一些实施方式中,有形计算机可读存储介质可以直接耦合到计算设备,而在其他实施方式中,有形计算机可读存储介质可以间接耦合到计算设备,例如,经由一个或更多个有线连接、一个或更多个无线连接或其任何组合。
指令可以是直接可执行的,也可以用于开发可执行指令。例如,指令可以实现为可执行或不可执行的机器代码,也可以实现为高级语言中的指令,该高级语言可以被编译以产生可执行或不可执行的机器代码。此外,指令也可以实现为或可以包括数据。计算机可执行指令也可以以任何格式组织,包括例程、子例程、程序、数据结构、对象、模块、应用程序、小程序、函数等。由本领域技术人员所认识到的,包括但不限于数字、结构、序列和指令的组织的细节可以在不改变底层逻辑、函数、处理和输出的情况下发生显著变化。
虽然上述讨论主要针对执行软件的微处理器或多核处理器,但一个或更多个实施方式由一个或更多个集成电路执行,诸如应用专用集成电路(ASIC)或现场可编程门阵列(FPGA)。在一个或更多个实施方式中,这种集成电路执行存储在电路本身上的指令。
本领域技术人员将了解,本文描述的各种说明性块、模块、元件、组件、方法和算法可以被实施为电子硬件、计算机软件或两者的组合。为了说明硬件和软件的这种可互换性,上文一般根据其功能性描述了各种说明性块、模块、元件、组件、方法和算法。这种功能是作为硬件还是软件实现,取决于对整个系统施加的特定应用和设计约束。熟练的技术人员可以针对每个特定应用以不同的方式实施所描述的功能。各种组件和块可以以不同的方式排列(例如,以不同的顺序排列或以不同的方式分区),而不脱离本主题技术的范围。
可以理解,所公开的过程中步骤的特定顺序或层次结构是示例性方法的说明。基于设计偏好,可以理解,可以重新排列过程中步骤的特定顺序或层次结构。一些步骤可以同时执行。随附的方法权利要求书以示例顺序呈现了各个步骤的元素,并且不意味着限于呈现的特定顺序或层次结构。
提供上述描述是为了使本领域技术人员能够实践本文所描述的各个方面。前面的描述提供了本主题技术的各种示例,并且本主题技术不限于这些示例。对这些方面的各种修改对于本领域技术人员来说是明显的,并且本文定义的一般原则可以应用于其他方面。因此,权利要求不限于本文所示的方面,而是应被赋予与语言权利要求一致的全部范围,其中,除非特别说明,否则单数形式的元素不是指“一个且仅一个”,而是指“一个或更多个”。除非特别说明,术语“一些”指代一个或更多个。阳性代词(如his)包括阴性和中性(如her和its),反之亦然。标题和副标题(如有)仅为了方便,不限制本主题技术。
诸如“方面”之类的短语并不意味着这样的方面对于本主题技术是必要的,或者该方面适用于本主题技术的所有配置。与一个方面相关的公开可应用于所有配置或一个或更多个配置。一个方面可以提供一个或更多个示例。诸如方面这样的短语可以指一个或更多个方面,反之亦然。诸如“实施例”之类的短语并不意味着该实施例对于本主题技术是必要的,或者该实施例适用于本主题技术的所有配置。与实施例相关的公开可应用于所有实施例或一个或更多个实施例。一个实施例可以提供一个或更多个示例。诸如“实施例”的短语可以指代一个或更多个实施例,反之亦然。诸如“配置”之类的短语并不意味着这样的配置对于本主题技术是必要的,或者这样的配置适用于本主题技术的所有配置。与配置相关的公开可应用于所有配置或一个或更多个配置。配置可以提供一个或更多个示例。诸如“配置”这样的短语可以指代一个或更多个配置,反之亦然。
此处使用“示例性”词是指“作为示例或说明”。此处描述为“示例性”的任何方面或设计不一定被解释为优先于或优于其他方面或设计。
本领域普通技术人员已知或后来知道的本公开中所描述的各个方面的元件的所有结构和功能等效物,通过参考明确地并入本文中,并且旨在包含在权利要求中。此外,本文所公开的任何内容都不旨在专用于公众,无论该公开是否在权利要求中明确陈述。根据《美国法典》第35章第112条第6款的规定,不得解释权利要求要素,除非该要素使用短语“用于……的装置”明确陈述,或者,在方法权利要求的情况下,该要素使用短语“用于……的步骤”陈述。此外,如果术语“包括”、“具有”等用于描述或权利要求,该术语旨在以类似于术语“包含”的方式包含,如同“包含”在被用作权利要求中的过渡词时被解释的那样。
Claims (22)
1.一种方法,包括:
将数据存储设备中的码率设置为第一码率,用于对要被写入所述数据存储设备的非易失性存储器的数据进行编码;
在所述数据存储设备处接收指示用于将设置的码率从所述第一码率切换到第二码率的切换点的主机命令;以及
在指示的切换点处将所述设置的码率从所述第一码率切换到所述第二码率。
2.根据权利要求1所述的方法,其中所述第一码率高于所述第二码率。
3.根据权利要求1所述的方法,还包括:
响应于将所述设置的码率从所述第一码率切换到所述第二码率,从所述非易失性存储器读取和解码以所述第一码率编码的数据;
以所述第二码率对读取和解码的数据进行编码;以及
将以所述第二码率编码的所述数据写入所述非易失性存储器。
4.根据权利要求1所述的方法,其中所述指示的切换点是接收所述主机命令所处的时间。
5.根据权利要求1所述的方法,还包括:
确定所述非易失性存储器中已到达所述指示的切换点,
其中,响应于确定已经到达所述指示的切换点,将所述设置的码率从所述第一码率切换到所述第二码率。
6.根据权利要求5所述的方法,其中所述指示的切换点是程序擦除周期阈值,并且
其中,确定已到达所述指示的切换点包括确定所述非易失性存储器的程序擦除周期计数满足所述程序擦除周期阈值。
7.根据权利要求6所述的方法,其中所述程序擦除周期阈值基于所述数据存储设备的离线持续时间规范。
8.一种数据存储设备,包括:
非易失性存储器;以及
耦合到所述非易失性存储器的控制器,所述控制器被配置为:
将所述数据存储设备中的码率设置为第一码率,用于对要被写入所述非易失性存储器的数据进行编码;
在所述数据存储设备处,接收指示用于将所设置的码率从所述第一码率切换到所述第二码率的切换点的主机命令;
确定所述非易失性存储器中已到达所指示的切换点;以及
响应于确定已到达所指示的切换点,将所述设置的码率从所述第一码率切换到所述第二码率。
9.根据权利要求8所述的数据存储设备,其中所述控制器进一步配置为:响应于将所述设置的码率从所述第一码率切换到所述第二码率,从所述非易失性存储器读取和解码以所述第一码率编码的数据;
以所述第二码率编码所述读取和解码的数据;以及
将以所述第二码率编码的所述数据写入所述非易失性存储器。
10.根据权利要求8所述的数据存储设备,其中所述第一码率高于所述第二码率。
11.根据权利要求8所述的数据存储设备,其中所述指示的切换点是程序擦除周期阈值,以及
其中,所述控制器被配置成通过确定所述非易失性存储器的程序擦除周期计数满足所述程序擦除周期阈值来确定已到达所述指示的切换点。
12.根据权利要求11所述的数据存储设备,其中,所述程序擦除周期阈值基于所述数据存储设备的离线持续时间规范。
13.一种用指令编码的非临时性处理器可读存储介质,所述指令在由处理器执行时执行一种方法,其包括:
将码率设置为第一码率,用于对要被写入数据存储设备的非易失性存储器的数据进行编码;
接收主机命令,所述主机命令指示用于将所设置的码率从所述第一码率切换到第二码率的切换点;
在所指示的切换点将所述设置的码率从所述第一码率切换到所述第二码率;
响应于将所述设置的码率从所述第一码率切换到所述第二码率,从所述非易失性存储器读取和解码以所述第一码率编码的数据;
以所述第二码率对读取和解码的数据进行编码;以及
将以所述第二码率编码的所述数据写入所述非易失性存储器。
14.根据权利要求13所述的处理器可读存储介质,其中所述第一码率高于所述第二码率。
15.根据权利要求13所述的处理器可读存储介质,其中所述指示的切换点是接收所述主机命令所处的时间。
16.根据权利要求15所述的方法,其中所述方法进一步包括:
确定所述非易失性存储器中已到达所述指示的切换点,
其中,响应于确定已经到达所述指示的切换点,将所述设置的码率从所述第一码率切换到所述第二码率。
17.根据权利要求16所述的处理器可读存储介质,其中所述指示的切换点是程序擦除周期阈值,以及
其中,响应于确定所述非易失性存储器的程序擦除周期的数量已到达所述程序擦除周期阈值,将所述设置的码率从所述第一码率切换到所述第二速率。
18.根据权利要求17所述的处理器可读存储介质,其中,所述程序擦除周期阈值基于所述数据存储设备的离线持续时间。
19.一种数据存储设备,包括:
非易失性存储器;
用于将所述数据存储设备中的码率设置为第一码率以对要被写入所述非易失性存储器的数据进行编码的装置;
用于在所述数据存储设备处接收主机命令的装置,所述主机命令指示用于将所设置的码率从所述第一码率切换到第二码率的切换点;
用于确定已在所述非易失性存储器中到达所指示的切换点的装置;以及
用于响应于确定已到达所述指示的切换点而将所述设置的码率从所述第一码率切换到所述第二码率的装置。
20.根据权利要求19所述的数据存储设备,其中所述第一码率高于所述第二码率。
21.根据权利要求19所述的数据存储设备,其中所述数据存储设备还包括:
用于响应于将所述设置的码率从所述第一码率切换到所述第二码率而从所述非易失性存储器读取和解码以所述第一码率编码的数据的装置;
用于以所述第二码率对读取和解码的数据进行编码的装置;以及
用于将以所述第二码率编码的所述数据写入所述非易失性存储器的装置。
22.根据权利要求19所述的数据存储设备,其中所述指示的切换点是程序擦除周期阈值,以及
其中,用于切换所述设置的码率的装置被配置成响应于确定所述非易失性存储器的程序擦除周期的数量已到达所述程序擦除周期阈值而将所述设置码率从所述第一速率切换到所述第二速率。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/868,868 | 2018-01-11 | ||
US15/868,868 US10644727B2 (en) | 2018-01-11 | 2018-01-11 | Code rate switching mechanism for flash memory |
PCT/US2019/012418 WO2019139836A1 (en) | 2018-01-11 | 2019-01-04 | Code rate switching mechanism for flash memory |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111164695A true CN111164695A (zh) | 2020-05-15 |
Family
ID=67141197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980004805.4A Pending CN111164695A (zh) | 2018-01-11 | 2019-01-04 | 闪存的码率切换机制 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10644727B2 (zh) |
KR (1) | KR102150922B1 (zh) |
CN (1) | CN111164695A (zh) |
DE (1) | DE112019000108T5 (zh) |
WO (1) | WO2019139836A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10644727B2 (en) * | 2018-01-11 | 2020-05-05 | Western Digital Technologies, Inc. | Code rate switching mechanism for flash memory |
US11016693B2 (en) * | 2018-06-21 | 2021-05-25 | International Business Machines Corporation | Block health estimation for wear leveling in non-volatile memories |
US12099409B2 (en) | 2022-06-07 | 2024-09-24 | Western Digital Technologies, Inc. | Adjustable code rates and dynamic ECC in a data storage device |
US12028091B2 (en) * | 2022-09-26 | 2024-07-02 | Western Digital Technologies, Inc. | Adjustable code rates and dynamic ECC in a data storage device with write verification |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840359A (zh) * | 2009-03-18 | 2010-09-22 | 三星电子株式会社 | 数据处理系统及其操作方法 |
CN101868831A (zh) * | 2007-11-21 | 2010-10-20 | 美光科技公司 | 支持速率兼容经穿孔码的存储器控制器 |
US20130124945A1 (en) * | 2011-11-16 | 2013-05-16 | Stec, Inc. | Dynamic ldpc code rate solution |
CN107221351A (zh) * | 2017-05-27 | 2017-09-29 | 华中科技大学 | 一种固态盘系统中纠错码的优化处理方法及其应用 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4946249B2 (ja) * | 2006-08-07 | 2012-06-06 | 富士通セミコンダクター株式会社 | Eccのコード長が変更可能な半導体メモリ装置 |
EP2299362A3 (en) | 2009-08-18 | 2011-05-04 | ViaSat, Inc. | Forward error correction for memories |
US8533550B2 (en) * | 2010-06-29 | 2013-09-10 | Intel Corporation | Method and system to improve the performance and/or reliability of a solid-state drive |
US8341498B2 (en) * | 2010-10-01 | 2012-12-25 | Sandisk Technologies Inc. | System and method of data encoding |
KR101606718B1 (ko) | 2010-10-27 | 2016-03-28 | 엘에스아이 코포레이션 | 플래시 메모리 기반 데이터 저장을 위한 적응적 ecc 기술들 |
US8566667B2 (en) * | 2011-07-29 | 2013-10-22 | Stec, Inc. | Low density parity check code decoding system and method |
US9214963B1 (en) * | 2012-12-21 | 2015-12-15 | Western Digital Technologies, Inc. | Method and system for monitoring data channel to enable use of dynamically adjustable LDPC coding parameters in a data storage system |
US8898549B2 (en) | 2013-02-12 | 2014-11-25 | Seagate Technology Llc | Statistical adaptive error correction for a flash memory |
US9727416B2 (en) | 2015-07-01 | 2017-08-08 | Xilinx, Inc. | Variable code rate solid-state drive |
US10069859B2 (en) * | 2015-12-16 | 2018-09-04 | Verizon Digital Media Services Inc. | Distributed rate limiting |
US10198313B2 (en) | 2016-03-11 | 2019-02-05 | Western Digital Technologies, Inc. | Redundancy of error correction encoded data in a storage system |
US10644727B2 (en) * | 2018-01-11 | 2020-05-05 | Western Digital Technologies, Inc. | Code rate switching mechanism for flash memory |
-
2018
- 2018-01-11 US US15/868,868 patent/US10644727B2/en active Active
-
2019
- 2019-01-04 WO PCT/US2019/012418 patent/WO2019139836A1/en active Application Filing
- 2019-01-04 KR KR1020207009474A patent/KR102150922B1/ko active IP Right Grant
- 2019-01-04 CN CN201980004805.4A patent/CN111164695A/zh active Pending
- 2019-01-04 DE DE112019000108.6T patent/DE112019000108T5/de active Pending
-
2020
- 2020-03-20 US US16/826,063 patent/US11190218B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101868831A (zh) * | 2007-11-21 | 2010-10-20 | 美光科技公司 | 支持速率兼容经穿孔码的存储器控制器 |
CN101840359A (zh) * | 2009-03-18 | 2010-09-22 | 三星电子株式会社 | 数据处理系统及其操作方法 |
US20130124945A1 (en) * | 2011-11-16 | 2013-05-16 | Stec, Inc. | Dynamic ldpc code rate solution |
CN107221351A (zh) * | 2017-05-27 | 2017-09-29 | 华中科技大学 | 一种固态盘系统中纠错码的优化处理方法及其应用 |
Also Published As
Publication number | Publication date |
---|---|
US20190215016A1 (en) | 2019-07-11 |
US20200220561A1 (en) | 2020-07-09 |
US10644727B2 (en) | 2020-05-05 |
DE112019000108T5 (de) | 2020-08-27 |
KR102150922B1 (ko) | 2020-09-02 |
KR20200038320A (ko) | 2020-04-10 |
US11190218B2 (en) | 2021-11-30 |
WO2019139836A1 (en) | 2019-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11190218B2 (en) | Code rate switching mechanism for data storage system | |
US8499217B2 (en) | Memory device and error control codes decoding method | |
US8621266B2 (en) | Nonvolatile memory system and related method of performing erase refresh operation | |
US8112692B2 (en) | Flash memory device error correction code controllers and related methods and memory systems | |
US20120240007A1 (en) | Ldpc decoding for solid state storage devices | |
US20100241928A1 (en) | Data Processing System Having ECC Encoding and Decoding Circuits Therein with Code Rate Selection Based on Bit Error Rate Detection | |
US11574688B2 (en) | Memory system, control method thereof, and program | |
KR20130057758A (ko) | 플래시 메모리 시스템 및 플래시 메모리 시스템의 리드 방법 | |
CN102148058A (zh) | 读可靠性获得提高的含有多位存储单元的快闪存储器件 | |
KR20080067834A (ko) | 프로그램 방식을 선택할 수 있는 메모리 시스템 | |
KR20140103755A (ko) | 메모리 컨트롤러 및 그것의 동작 방법, 메모리 컨트롤러를 포함하는 메모리 시스템 | |
WO2009116718A1 (en) | Memory devices and data decision methods | |
KR20160074237A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN111261212B (zh) | 高密度存储系统及其控制方法 | |
US11119697B2 (en) | Read voltage management based on write-to-read time difference | |
US11984171B2 (en) | Selective and dynamic deployment of error correction code techniques in integrated circuit memory devices | |
US20120195118A1 (en) | Semiconductor memory apparatus, data programming method thereof, and memory system including the same | |
WO2023028347A1 (en) | Monitoring memory device health according to data storage metrics | |
KR20170012006A (ko) | 메모리 컨트롤러와 이를 포함하는 메모리 시스템 | |
CN108255634A (zh) | 一种数据读取方法及装置 | |
US11798614B2 (en) | Automated voltage demarcation (VDM) adjustment for memory device | |
US20240070014A1 (en) | Commands for testing error correction in a memory device | |
KR20090110648A (ko) | 플래시 메모리로 데이터를 기록하는 방법과 플래시메모리에 기록된 데이터를 읽는 방법 및 플래시 메모리시스템 | |
KR20150015620A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20150098254A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20240829 Address after: California, USA Applicant after: SanDisk Technology Co. Country or region after: U.S.A. Address before: California, USA Applicant before: Western Digital Technologies, Inc. Country or region before: U.S.A. |