CN107257958A - 用于定制应用的动态近似存储 - Google Patents

用于定制应用的动态近似存储 Download PDF

Info

Publication number
CN107257958A
CN107257958A CN201680012455.2A CN201680012455A CN107257958A CN 107257958 A CN107257958 A CN 107257958A CN 201680012455 A CN201680012455 A CN 201680012455A CN 107257958 A CN107257958 A CN 107257958A
Authority
CN
China
Prior art keywords
region
memory
value
storage
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201680012455.2A
Other languages
English (en)
Other versions
CN107257958B (zh
Inventor
K·施特劳斯
L·H·塞泽
H·S·马尔瓦
郭青
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN107257958A publication Critical patent/CN107257958A/zh
Application granted granted Critical
Publication of CN107257958B publication Critical patent/CN107257958B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50004Marginal testing, e.g. race, voltage or current testing of threshold voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C2029/5004Voltage
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种用于动态近似存储的存储器芯片包括与至少两个区域相关联的存储器单元阵列。芯片进一步包括至少一个阈值寄存器,用于存储与至少两个区域的每个区域对应的存储单元的阈值的值;以及控制逻辑,可编程地调节用于存储器单元的阈值的值。一种控制用于动态近似存储的存储设备的方法包括修改存储在阈值寄存器中且与包括至少两个区域的存储器的区域中的至少一个单元相关联的至少一个值,以为至少一个单元应用偏置,其中偏置调节单元中的值的范围。

Description

用于定制应用的动态近似存储
背景技术
存储器和存储常在精确度(错误)、持久性、性能、能量效率与密度(容量)之间具有各种权衡。单级单元(SLC)存储器(例如动态随机存取存储器(DRAM)和一些形式的闪存)在每个单元中存储1位的数据。为了提供更高的密度,(例如闪存和相变存储器(PCM)可用的)多级单元(MLC)存储器将一个单元中的值范围细分为许多级以存储多于1位的数据。例如,闪存代表存储器单元的阈值电压的值,PCM代表存储器单元的电阻的值。由此,对于某些多级存储,单元允许的电阻范围越大,单元中可用于存储信息的级别数越高,从储存观点来看使得单元密度更大。也就是说,单元能够在每单位物理容积存储更多的信息。然而,关于权衡,对于在保持便宜、可靠的同时制作密度多大的单元存在限制。
另外,单元密度越大,维持相同错误率需要的读写机制越精确。例如,对于固定的电阻范围,使用更多的级别数要求更精确的硬件以每次正确地读写这些单元。更精确的硬件意味着更高的成本;对于相同的硬件,在单元中存储更多的级别数会引发更高的读写错误率。其它电阻改变过程(例如PCM中的漂移)也影响读错误率。
发明内容
本文描述了动态近似存储和系统,其允许应用和操作系统利用放松存储设备的存储器中的区域的错误要求,以作为对增加的容量、持久性、性能、能量效率或存储设备的其它属性的交换,同时仍能够为数据维持适当的输出质量。
描述了一种用于动态近似存储的存储器芯片,其包括存储器的具有不同错误约束的至少两个区域。该存储器芯片能够包括至少一个阈值寄存器,用于存储标识与该至少两个区域的每个区域对应的存储单元的值的阈值的值;以及控制逻辑,可编程地调节该存储器单元的该阈值的值。该阈值可被调节以创建单元中的值的非对称范围,甚至调节单元能够存储的级别(和位)的数目。
一种控制用于动态近似存储的存储设备的方法包括修改存储在阈值寄存器中且与包括至少两个区域的存储器的区域中的至少一个单元相关联的至少一个值,以将偏置应用于该至少一个单元,其中该偏置调节单元中的值的范围。在另外实施方式中,存储器的单元或区域的错误率能够被修改使得存储器的不同区域具有不同的纠错级别。
本发明内容被提供以用简化形式介绍在下面的具体实施方式中进一步描述的概念的选择。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
附图说明
图1A图示了存储精确度和数据编码的操作;
图1B图示了用于图1A中所示的存储器100的三种类型的存储区域的表示;
图2A-2C图示了具有不同指派的阈值以提供1位(图2A)和2位(图2B和图2C)的存储的四级别单元的模拟(电阻)范围(x轴);
图3图示了用于可编程存储精确度的存储器系统;
图4A-4C图示了各种操作环境和相应的存储位置;
图5A示出了均匀的(u)和偏置的(b)4级单元参数的表1;
图5B示出了均匀的(u)和偏置的(b)8级单元参数的表2;
图6示出了随均匀的和偏置的PCM单元的时间变化的组合的原始误码率(RBER)的曲线图;
图7示出了具有增大的清理间隔的密度的曲线图,其对均匀的和偏置的PCM单元进行比较;
图8示出了比较512数据位块上的纠错码(ECC)的容量与开销的曲线图;
图9示出了图示ECC存储开销与清理间隔之间的权衡的图表;以及
图10示出了比较用于闪存的512字节块数据上的ECC的容量与开销的曲线图。
具体实施方式
本文描述了动态近似存储和系统,其允许应用和操作系统利用放松存储设备的存储器中的区域的错误要求,以作为对增加的容量、持久性、性能、能量效率或存储设备的其它属性的交换,同时仍能够为数据维持适当的输出质量。
“近似存储”指可能指示某些对象可以被存储在具有较高错误可能性的存储器中的存储器优化技术。存储器的具有较高错误可能性的这些区域不一定是具有高错误率的区域,仅是对具体错误率的容忍性或要求被放松并且可能发生偶然的错误的区域。
“动态近似存储”涉及针对存储设备的多个区域的放松的错误约束的可调节优化。动态近似存储能够涉及单级单元(SLC)和/或可变的多级单元(MLC)存储,并可以进一步涉及纠错技术。针对存储器区域的放松的错误约束还可贡献用于存储数据(尤其是针对对于至少一些数据不要求常规存储器提供的精确度的应用)的附加的容量。
动态近似存储适用于能够利用具有放松的错误约束的存储器的定制应用。这些定制应用能够包括近似感知算法和/或操作系统。放松存储设备的存储器中的区域的错误要求能够允许增加的容量、持久性、性能、能量效率或存储设备的其它属性。
所描述的用于定制应用的动态近似存储包含具有不同错误约束的不同区域。存储器区域的错误的概率在本文中被称为“精确度”,其中较低的错误概率表示较高的精确度。也就是说,较高的精确度具有较低的错误率。单元错误属性与由应用存储的位类型的仔细匹配能够有益于数据的输出质量同时获得近似存储提供的大部分的密度益处。
术语“存储器”和“存储”在本文中可互换使用,并且可通过其上下文理解被应用于该术语的任何具体含义。
图1A图示了存储精确度和数据编码的操作;以及图1B图示了图1A中所示的存储器100的三种类型的存储区域的表示。参考图1A,存储器100可被指派具有不同的允许精确度级别(或错误率)的多个区域。例如,第一类型区域101可以最精确,具有最低的错误可能性(例如,10-12错误);第二类型区域102可以较不精确,具有放松的错误率;第三类型区域103可以更不精确,具有更放松的错误率。这些区域能够被硬连线或是动态的(编程的)。错误率的差别可因所应用的纠错类型和/或所允许的密度引起。
存储器100可以是任何适当的存储器存储设备,包括SLC存储器和MLC存储器。对于MLC存储器(或包含SLC单元和MLC单元的混合存储器),第一类型区域101可以被配置为用于存储单个位的单级单元区域(尽管在MLC存储器的情况中可以是多级);第二类型区域102可以被配置成更密区域,例如,具有三级别或四级别单元;以及第三类型区域103可以被配置为比第二类型区域102更密,例如,具有八级别(例如,用于3位)或更密的单元。对于各种SLC和MLC实施方式,区域可被指派不同类型的纠错(例如,不同的错误代码和/或纠错位数)。这些类型的存储区域的示例在图1B中示出。
在图1B中示出了表示图1A的区域101、102和103的三种类型的存储。具有最低错误率的第一类型区域121能够被优化用于高重要位111,以包括存储器单元122和提供大纠错开销的纠错单元123。第二类型区域131能够被优化用于中等重要位112,以包括比存储器单元122密且具有中等错误率的单元132和提供一些纠错开销的纠错单元133。第三区域141则可包括具有最高允许错误率的(可选地被优化用于较不重要位113的)单元142,例如为最密的存储器且具有最小(如果有的话)的纠错。
能够向将数据存储至存储器100的程序标识包括放松错误约束的区域。定制应用然后能够利用所标识的精确度(作为近似感知算法)并能够将特定的数据指派给合适的区域(例如,区域101、102和103之一)。
例如,定制应用可以生成编码数据110,编码数据110包括可被标识为对输出质量最重要的位(高重要位111)、能够被标识为对输出质量重要的位(中等重要位112)和能够被标识为对输出质量较不重要的位(低重要位113)。这里,高重要位111要求最高的精确度以确保输出质量。因此,高重要位111被存储在第一类型区域101中。高重要位111的示例是数据块的头部。中等重要位112可以被存储在第一类型区域101中,或将中等重要位112存储在第二类型区域102中就足够了。然后低重要位113能够被存储在最放松的错误率区域(例如,第三类型区域103)中。
尽管示出了三种类型的区域,但是在一些情况中可以使用两种类型的区域,在一些其它情况中可使用多于三种类型。区域类型的数目可以取决于使用存储器的具体应用。在一些情况中,类型的数量是可编程的,并且能够在制造之后被调节,甚至能够被重新编程。
每个区域的存储器单元可以是相同类型的单元,在该情况中,不同的区域通过如何解释单元的值来被获得。也就是说,针对多级单元的读写过程能够控制单元属于哪类存储器区域。例如,通过调节阈值(甚至通过指派特定的电阻范围),四级别的多级单元能够被用于存储1位或2位。
这在图2A-2C中被图示,其示出了具有指派的不同阈值的四级别单元的模拟(电阻)范围(x轴),以提供1位(图2A)和2位(图2B和图2C)的存储。x轴范围是对数标度。
相变存储器单元将信息存储在硫属化合物材料的电阻中,其中硫属化合物材料提供了足够宽范围的电阻以允许多级单元。电阻基于单元中的非晶体和晶体材料的量而改变,其中非晶体和晶体材料的量能够通过对材料应用不同振幅的电流脉冲来控制。对于SLC,单位的信息以完全非晶态(高电阻)或几乎晶态(低电阻)被存储。由此,参考图2A,四级别单元可通过向目标阈值指派‘1’和‘0’被编程为(SLC方式的)二级别单元。
由于高电阻级别与低电阻级别之间的高边界,针对SLC的写入电路能够不如针对MLC的写入电路精确。因为每个MLC级别窄于SLC级别,所以写入电路更精确并且通常采用应用写入脉冲随后读取单元的迭代过程,以验证电阻在目标级别边界(例如,2T)内。MLC包含将它们的模拟状态映射到数字信息中的电路。模拟值的每个范围(级别)映射至某一二进制值(或“位模式(bit pattern)”)。在写入操作时,写入电路迭代地应用脉冲并验证是否达到目标级别。在图2A-2C中,最终的写入电阻被建模为该级别的目标电阻周围的正态分布。
图2B图示了针对具有从最低至最高电阻的L0、L1、L2和L3级别(对数标度)的4级单元的示例性映射,其中‘10’被映射至最低电阻带、‘11’被映射至第二最低电阻带、‘01’被映射至第二最高电阻带、以及‘00’被映射至最高电阻带。当然,其它映射可以被使用。实际上,在一些实施方式中,将某些位模式的映射优化至特定的电阻范围是可能的。例如,被指示为具有大量‘00’模式的数据流能够被存储在‘00’被映射到范围的可具有较少漂移错误的具体部分(例如L3(见图2B和图2C))的单元中,这将在下文更详细地讨论。
在一些情况中,能够基于范围的频率为它们指派二进制值,其中将最通用指派给失效最少的级别,并将第二最通用指派给具有第二至最少失效率的级别等等。在一些情况中,将最通用指派给失效最少的级别并将Gray码用于其它单元,从而使用Gray码约束但以使该类单元的集合错误率的方式指派值最小化。
例如,如果确定‘00’是最通用的位模式、然后是‘10’、然后是‘01’、然后是‘11’,以及如果如上所述确定发生多级单元的漂移(其中最高和最低级别未漂移,但是第二和第三级别漂移且第三级别漂移最多),则可将‘00’指派给第四级别。对于使用Gray码的情况,在该情况中级别与级别之间仅变化1位,第三级别的位模式的选择是‘01’或‘10’。由于‘01’不比‘10’通用且第三级别具有最严重的漂移,则将‘01’指派给第三级别。接下来,对于第二级别,根据Gray码必须选择‘11’。最后,将‘10’指派给第一级别。
典型地,对每个电阻范围的划分是均匀的并且每个级别位于2T(或例如图2A中的4T)的目标级别边界内,其中距级别分布的波峰的大于B的距离(B>T)可导致指示单元的下一级别的值。Gray码可用于使相邻级别之间的汉明距离最小化。
PCM的均匀划分的示例是最小电阻带L0:103-104Ω、第二最小电阻带L1:104-105Ω、第二最高电阻带L2:105-106Ω、以及最高电阻带L3:106-107Ω。写入过程通常以这些均匀划分的带的中点(例如,分别103.5Ω、104.5Ω、105.5Ω、106.5Ω)为目标。
PCM单元能够遇到两种类型的错误—写入错误和漂移错误。当写入电路不能在超过最大迭代次数之前将单元电阻设为目标级别时发生写入错误,这将单元留在不期望的电阻级别。在PCM中,材料松弛导致单元电阻漂移至较高电阻级别,这导致第二类错误—漂移错误。电阻漂移由材料的结构松弛导致,这随时间使电阻增大。电阻越大,漂移越强。单向漂移增加了单元电阻并且高电阻级别的漂移效应比低电阻级别的漂移效应更明显。
其中的含义是即使单元最初被正确地(在电阻范围2T内)写入,它可随时间漂移至不同的值,这导致软错误(例如,如果L0值漂移到L0+B外)。由于L3是4级电阻范围的最高级别,则在L3中漂移至较高电阻不会导致错误。相反,L2变为经受漂移错误最多的级别并常在单元的组合软错误中占据主导。如此,均匀单元中的第二最高级别(图2B中的L2)变为最易漂移的级别,并在组合的漂移错误率占据主导。在具有多于四级别的MLC中可以看到类似的效应。
根据本文描述的某些实施方式,因漂移(和其它磁化率)引起的错误使用近似存储以受控的方式暴露于应用。除了近似存储以外,在一些情况中,可以包括例如以下的减轻漂移的方法:存储器清理、纠错、或合并多个级别以建立聚合级别,其中聚合级别足够宽以至于跨级别边界概率可被忽略(例如,三级别单元)。
由于单元电阻范围中的带的大小和位置确定由写入过程和漂移引起的错误数目,所以通过改变单元的电阻范围以及位如何被映射至单元而使某些类型的错误最小是可能的。
图2C示出了使用偏置使漂移错误最小化的实施方式。代替均匀的级别分布(即,所有级别在图2B(对数空间)具有相同的大小),可实施偏置级别,在偏置级别中模拟值范围被调谐以使组合的(写入和漂移)错误率最小化。偏置级别在对数空间范围呈现为不均匀。
例如,在上述的映射中,使第二最高电阻带较宽(例如,105-106.5Ω),同时在写入操作期间仍以105.5Ω为目标将导致PCM中的较少漂移错误。
如图2C所示偏置重定位每个电阻级别和重新调节每个电阻级别的大小。组合的漂移错误率能够通过均衡每个单独级别的漂移错误率(假设所存储的数据映射均匀地映射至每个级别)而被最小化。如图3C所示,漂移更容易作用的级别具有较宽的值范围,即较高电阻级别。级别偏置能够基于自最后一次写入起的固定消逝时间(“清理间隔”)被优化。这假设系统在此清理间隔清理存储内容并将电阻级别重置为目标电阻。值得注意的是,单元将以不同的清理间隔工作,但是与它们被优化的间隔相比它们将经受更高的错误率,因为级别的错误率未被完全均衡。
偏置从每级别(具有相等的带BB)的中点改变目标电阻以在左侧形成窄带(D)和在右侧形成较宽带(Bi)以留出更多的空间用于漂移。然而,随着目标电阻移至较低值且D减小,因为写入电阻分布的尾部更接近级别的下端,所以写入错误率开始增大。因此,D和Bi的大小是写入错误率与漂移错误率之间的权衡。对于其它技术的漂移,这种关系和解决方案可以是不同的。例如,一些技术可以经受到范围中的较低值的漂移。其它技术可以经受到值整个范围中的中心值或具体值范围的漂移。对于这些类型的技术中的任一个,可进行偏置以在可能发生漂移的方向形成较宽的带。
由此,某些实现包括调谐不均匀的带大小(例如,根据指数的对数标度中的不均匀的范围)和写入操作目标(到可能不同于带中点的值)以设置配制中的单元错误率,其可以产生所存储的图像(或通常任意编码数据)的较小质量下降。
附加地或备选地,某些实施方式包括改变值如何映射至级别,例如在较少可能经受错误的级别(例如,在具有最少(如果有)的因漂移引起的错误的最高电阻带)放置(针对具体算法)较通常的值。除了允许2位的存储以外,四级别单元能够以优化方式将其具体值指派给具有2T边界的每个目标阈值。例如,如图2B和图2C所示,‘10’可以被映射至最低电阻级别,而‘11’可以被映射至下一最高电阻级别。然而,在一些其它情况中,‘11’可以被映射至最低电阻级别,‘10’被映射至下一最低电阻级别。映射可基于模式出现而被指派。例如,对于具有大量的‘10’模式的应用,‘10’可被映射至最高电阻级别。为级别重新指派值的另一示例性用途是使相邻级别中变化的位数最小化。
图3图示了用于可编程存储精确度的存储器系统。存储器300可通过包括例如用于动态改变多级单元存储(例如,闪存和PCM)的阈值的电路301来实施存储器100(以及图2A-2C中所示的电阻阈值的任一或所有)。代替被调谐用于通用行为的硬编码阈值,用于动态改变阈值的电路301能够实施可变的阈值。也就是说,指示用于存储器单元的级别的阈值能够针对具体应用(或数据类型)而被优化。例如,可为单元中的不同值创建非对称范围。PCM使用电阻值,然而,其它存储器可使用包括电压值的其它物理特性。
另外,在一些情况中,区域可被分配有具体错误代码。在该情况的一些中,电路301可用于实施可变的纠错。也就是说,单元的错误率能够根据该单元所属的区域的错误约束而使用不同的纠错级别来修改。电路301可以是在芯片上或存储器控制器的一部分,并包括寄存器、解码逻辑以及可选地用于寄存器中数据的外部控制的逻辑。存储器控制器能够包含用于控制存储器的各方面的控制逻辑的至少一部分;另外,一些控制逻辑可在存储器自身和系统的其它部分上。
在一些情况中,存储器300是基于工业标准的存储器卡,例如在移动电话、数字摄像机、平板电脑、平板手机、笔记本电脑和其它计算设备中可用的紧凑式闪存(CF)、多媒体卡(MMC)或安全数字(SD)非易失性存储器卡。实施存储器300的SD图片存储器(或被编码且包含不同容错的可标识位的其它数据类型)包括电路301以存储可编程的阈值和基于数据属性的不同映射(例如,基于容错和/或位模式的映射)。
32GB通用SD能够充当例如用于80GB数据的图片存储器,其包括电路301,电路301包含存储级别信息(例如,级别的阈值)以允许将更多容错位存储到更密单元中的寄存器。在一些情况中,SD包括允许对存储在寄存器中的值进行外部控制的逻辑。在一些情况中,代替对存储在寄存器中的值的外部可编程控制,SD可具有拥有不同版本精确度的硬连线级别/阈值,其中硬连线级别/阈值可在制造(或在过程中的其它适当步骤)时被建立。
在具有合适的存储器300的情况下,访问存储器300的操作系统310包括利用存储器300的手段。也就是说,包括用于数据的精确度级别的属性,使得操作系统310能够向存储器300指示与数据的某些位和/或字节相关联的精确度级别。该指示能够包括标记。在一些情况中,操作系统310可接收多个图像(或其它数据),并通过例如与用于存储器300的存储器控制器通信以指示针对位或字节集的精确度级别,来将标识有相同重要级别的数据发送给相同类型的存储器单元。图1A和图1B中所示的示例示出了三个精确度级别(以及对应的三种类型的区域);然而,粒度可以被调节使得存在更多级的存储器以及更多级的位类型/重要性。
操作系统310可包括标识正被存储的数据的数据类型(以及对应的合适的存储精确度级别)的功能。附加地或备选地,操作系统可以经由应用编程接口(API)320暴露不同的存储精确度级别,从而应用330能够更容易地为操作系统310标识具体数据是否能够被存储在具有放松要求的存储器单元中。
应用330被建立或修改以能够将图像(或一些其它编码数据)的编码位的相对优先级指派为不同错误敏感性(和所导致的质量损耗)种类。在与操作系统310通信以将数据存储在存储器300中时,应用330为其数据请求(或指示)不同的精确度级别。不论由操作系统310理解还是经由API 320理解,操作系统310和/或(存储器300的)存储器控制器然后根据单元的期望错误率,将不同错误敏感性种类中的位映射到不同的单元种类。
由此,如图3所示的操作环境能够包括一个或多个存储器芯片(存储器300),存储器芯片由存储器控制器(或读取/写入控制器)编程以具有为具体应用330优化的阈值(和/或错误代码)。指派特定的精确度级别能够由系统执行,但是取决于应用和/或情形。例如,存储某类(例如JPEG XR)图像的应用330能够使用具有被优化用于存储JPEG XR的阈值的存储器300。在一些情况中,操作系统310和/或存储器控制器能够基于存储数据的应用的类型访问(存储在精确存储器和/或寄存器中的)简档以获得系统参数。用户还能够指定他们的图像的最终质量。
被编程的阈值还可以取决于存储的位置。图4A-4C图示了各种操作环境和对应的存储位置。例如,如图4A所示,云存储401能够从在计算设备403上执行的应用330接收图像402。计算设备403可以是或包括服务器、个人计算机、移动设备、可穿戴式计算机、游戏系统和电器中的一个或多个。图4A所示的操作环境的一种情形是向Microsoft账户发送图像402的蜂窝电话。被编程的阈值的数目和实施云存储的特定的存储器类型(例如,闪存、PCM等)可被选择以适于处理对云存储常见的大量数据。在利用此情形的一种实施方式中,计算设备403可以是对位于设备上的图像402越长时间未被访问的副本越强制降低其质量的电话。图像402可作为较高质量副本被存储在云存储401中,计算设备403可从该副本恢复高质量图像。
在图4B所示的示例中,从应用330接收图像405的存储404是执行应用330的设备406上的(或与其相关联的)本地存储。继续蜂窝电话示例,在此操作环境中,图像405例如通过(例如在图像由蜂窝电话的摄像头捕获时)将来自暂时存储407的图像写入至计算设备406的存储404的数据存储408,而被存储在蜂窝电话的存储器中。应用330还可被存储在存储系统404的应用存储409中。在一些情况中,数据存储408和应用存储409可以是相同的存储器芯片的一部分,而暂时存储404是可以与计算设备406的处理器分离或集成(例如,在芯片上)的高速缓存的一部分。在一些情况中,暂时存储407是与数据存储408同一芯片上的区域。当然,特定的配置取决于设备和技术。
如之前所指出的,被编程的阈值的具体数量能够基于设备406的容量和存储需求,设备406可以是或包括服务器、个人计算机、移动设备、可穿戴式计算机、游戏系统和电器中的一个或多个。在蜂窝电话示例中,存储404的20%可被分配用于存储器的最精确区域,从而存在足够的空间以用于应用存储404和重要的数据,而剩余的存储404可具有较高的允许错误率(例如,更密或具有较少用于纠错的位)。
在图4C所示的示例中,存储410能够与通过因特网414(经由web浏览器413)从计算设备412接收上传的图像411(并将图像存储在与存储410相关联的服务器415)的网站相关联。尽管在以分离的表示示出,但是图4C所示的示例可在图4A所示的环境中实现。例如,网站可以由云服务托管和/或相关联的存储可以是云存储。在其它情况中,指定的服务器用于托管网站并存储相关联的数据。这些设备的需求和容量能够影响阈值的数目和在每个阈值可用的存储量的分配。
存储基片(substrate)优化
PCM存储基片可以被优化,以提供高密度,经由偏置提供合理的错误率,并且提供极低频率的清理。在示例研究中,PCM存储基片经由偏置被优化以使错误最小化,并且经由选择性的纠错被调谐至不同的错误率级别。此优化针对特定的图像加密算法、近似感知渐进变换编解码(PTC)而被执行。
在优化中,单元电阻级别到它们的数字值的映射被调节,以便执行偏置用以优化PCM单元从而平衡写入错误与漂移错误,然后优化的单元利用选择性的纠错被调谐以匹配希望这些单元存储的、由PTC编码的位。例如,多级PCM单元设计可以在相当高的错误率(例如,10-3)时针对高密度(例如,3×)而被优化。
所描述的优化以4级配置(2位/单元)实现低错误率并且以8级配置(3位/单元)实现相当低的错误率。
为了优化,PCM单元的电阻范围被划分为偏置级别。一旦电阻范围被划分为偏置级别,下一步骤是将数字值映射至个体偏置级别。在一般图像和PTC编码的图像中,0是最常见的(‘00’用于4级单元并且‘000’用于8级单元),所以值0被映射至不受漂移影响的最高级别。不存在图像的其它值看起来比余下的值更常见,所以使用简单的Gray码为剩余的级别指派值。
在案例研究实施例的优选实施方式中,使用三个单元配置:精确配置、4级配置和8级配置。4级配置和8级配置以其原始形式都未实现固态存储产品的已公布的不可纠错的误位率(10-16),但是可以实现可以被纠错至商用可靠性级别的相当低的错误率。即使对于具有较高错误率的8级单元,纠错的存储开销也低于100%,所以甚至利用此开销,偏置的8级单元与未纠错的偏置的4级单元相比,提供更密的存储。
不幸的是,即使在偏置之后,将建模电路用于16级单元也导致了太高的错误率(写入错误率大约为10-4是合理的,但是在1秒的写入操作之后漂移错误率却是无法忍受地高—10-1),并且该错误率不能利用足够低的存储开销通过纠错而被降至用以证明级数增加正确的合理的错误率。2级单元和3级单元被用作精确基线,因为它们显示了极低的错误率。在一个方面,2级单元更简单且更快。在另一方面,3级单元以被认为精确的仍然足够低的错误率提供更高的密度。4级单元和8级单元然后用作近似存储器单元。
甚至在偏置之后,漂移可能仍然是个长期的问题。为了减轻过度的漂移,可以使用清理来重写单元并使电阻级别降回来。基于(在下面更详细描述的)PCM单元模型,希望清理周期为3个月(107秒)量级。每千兆位存储100位/秒量级的平均存取带宽是可忽略的数字。而且,如果无论如何数据将要被清理,则这可能还是一个执行损耗平衡的好机会。
一旦单元被优化,单元可以被调谐以提供不同的错误率级别。存储控制器负责提供各种纠错码,每个纠错码位于由元数据存储所需的存储开销和所提供的错误率降低限定的空间中的不同点。原理上,这导致更高的控制器复杂性,但是实践中在相同族(例如,BCH-4和BCH-16)中使用多个代码可以保持复杂性得到控制。
控制器还负责将存储组织成区域,每个区域具有不同的纠错强度。控制器将区域至配置映射存储在表中,该表驻留在控制器中且由预配置的精确的存储区域支持,其在电力循环期间存留该映射。系统软件将特殊的配置命令发送给控制器以分配和配置区域。一旦被配置,控制器使用所请求的地址和区域至配置映射中的信息确定该请求针对哪个区域和在为该请求服务时使用的合适的纠错强度。不同区域的数目小(例如,在此示例中为8),所以区域至配置映射可以支持可变大小区域并完全关联。
具有不同纠错的区域具有不同的元数据开销。如此,不同的区域需要不同数目的单元来存储相同数目的数据位。整个存储空间可以两种方式之一被管理。静态管理在制造时将存储简单地划分成多个区域。这种方法不灵活,它不允许不同比例的存储专用于一个区域。第二种方法是允许区域的动态重配置以匹配应用需求。在此情况中,区域大小重调节导致附加的复杂性。假设存储设备在制造时使所有区域默认地被初始化为最强可用纠错,当区域第一次被配置时,其密度增长因此可用的大小也增大。应对它的简单方式是将此区域暴露为两个区域,一个具有重新配置之前的原始大小的区域以及具有剩余存储的虚拟区域。这使得寻址更简单。如果系统能够在别处容纳剩余区域的内容,则区域能够仅被重配置为更小的大小。
评估设置
定制仿真基础设施用于多级单元仿真。质量测量基于Kodak PCD图像集中768×512像素分辨率的24灰度级原始图像。图5A和图5B分别概括了用于4级单元和8级单元的配置和参数设置。图5A示出了均匀的(u)和偏置的(b)4级单元参数的表1。RT表示级别的平均电阻,RB表示级别的上边界处的电阻。图5B示出了均匀的(u)和偏置的(b)8级单元参数的表2。注意,与均匀的单元相比,偏置单元使目标级别(log RT)和级别边界(log RB)朝向低电阻移动适当的量,这导致以增大的写入错误为代价的较低的漂移所引致的错误。偏置单元的写入错误率根据应用的特性被设置为10-6。整体漂移错误率能够通过均衡所有级别的漂移错误率(除了第一级别和最后一个级别)而被最小化。单元在被写入之后以清理间隔t=107(约3个月)被优化。在清理期间,它们的原始目标电阻被恢复。
所建议的系统由两个度量评估:峰值信噪比(PSNR)和存储器密度。PSNR逐个像素比较原始图像与解码图像,其中解码图像包含来自有损压缩算法(例如,量化)和存储器子系统的错误(在此情况中,未纠正的写入错误和漂移错误)。PSNR值越高,原始图像与重构图像之间的差别越小。
近似存储器系统使用来自若干目标PSNR级别(即35dB、38dB、40dB和42Db)的图像进行评估。对于大多数图像,40-42dB范围表示高图像质量且失真在视觉上几乎无法察觉;然而38dB和35dB分别表示普通质量和低质量。由于近似存储器系统中的非确定性错误模式,每个图像的100个样本在该标准检查程序(benchmark)中运行并且使用最小PSNR,这给出了重构图像的质量的下界。存储器密度被定义为由单元存储的数据位的数目。易出错存储器(例如,PCM)通常使用纠错码(ECC)以从某一数目的错误恢复。纠错位的存储开销可以使存储器密度降低。
对于已确定容错类的目标错误率的定制应用,PCM基片可被优化用于定制应用。在示例性的案例研究中,通过经由偏置优化单元来将基片优化用于任意清理率(107s或近似3个月)。图6示出了随均匀的和偏置的PCM单元的时间变化的组合的原始误码率(RBER)的曲线图。这里,示出了对于4级单元和8级单元而言偏置对错误率的作用,报告了跨所有级别的组合的错误率。由于漂移作用,错误率随时间增长。
最初,使用4级和8级的均匀单元(均匀的4LC和均匀的8LC)。如所期望的,4级单元的错误率总是低于8级单元的错误率,因为较少的级别允许更多的空间用于每个级别中的漂移。然而,这两种类型的单元即使仅在写入之后的1个小时就开始呈现过度高的错误率。相反,偏置的4LC在该时间范围保持极低的漂移错误率(1010s处的10-20)。偏置的4LC的原始误码率(RBER)由写入错误占据主导。将最高密度与相当低错误率结合的偏置8LC在107s处提供大约10-3的错误率的良好权衡,比均匀的8LC低2个数量级。幸运地,它还满足最多容错位(即,精细位)的需求。这允许不对所有这些位使用纠错,从而消除了不必要的元数据开销。
图7示出了具有增大的清理间隔的密度的曲线图,其对均匀的和偏置的PCM单元进行比较。图7提供了哪个单元配置在示例性实施方式的整体密度与清理开销之间提供最佳权衡的观点,该示例性实施方式包括纠错以将不可纠错的误码率(UBER)维持在商用错误率(10-16)。2LC和3LC单元具有如精确存储器一样低的RBER,因而不需要纠错。3LC提供了2LC的1.58×的更高密度。均匀的单元(即,4LC、8LC和16LC)的密度尽管对于短清理间隔(太短以致于不引人注意)高,但是在较长的间隔因为漂移引致错误快速产生而急剧下降。相反,偏置抑制了漂移错误率的显著增长:偏置4LC具有稳定的1.86×密度增益(由写入错误引起的),偏置8LC经历更加平滑的密度下降从而在大约3个月(107s)之后实现了2.28×的密度改进。
一旦用于定制应用的算法错误率要求被确定,并且基片被优化用于最低可能错误率,算法和基片能够经由纠错进行匹配。这依赖于理解纠错机制的存储开销与其纠正力量之间的权衡。图8示出了比较512数据位块的纠错码(ECC)的容量与开销的曲线图。在图8中,提供了各种纠错机制(具有存储开销)、以及原始误码率(RBER)与不可纠错的误码率(UBER)之间的对应关系。
单纠错和双检错(SECDED)ECC在72位中纠正一个错误并检测多达两个错误,每个BCH码纠正512数据位加开销中多达指示数目的错误。能够基于定制应用的具体类的位的需要/错误约束选择用于存储器区域的合适的纠错技术。在一些情况中,可能不需要附加的纠错。在其它情况中,使用一些附加的纠错方案。例如,如果期望一种纠错机制接受10-3的RBER并产生10-16的UBER,则曲线显示BCH-16是以最低存储开销(31.3%)提供此容量的代码。类似地,能够看出BCH-6以11.7%的开销提供10-6的UBER,这对某些低重要位(它们可以构成正被存储的位中的大多数)来说是足够的。
还值得注意的是,随着RBER增大,维持相同UBER所需的代码强度迅速增长。这突出了偏置的价值:要不是其使错误率降低2个量级,8级单元设计将提供如此高的RBER,以致于纠正所有错误的开销将过高。
为偏置优化所选择的清理周期在某种程度上是任意的。为了说明使用具有其它清理间隔的相同的描述的单元设计的效果(所以单元被“超出规定地”用于不同的清理间隔),在不同的清理间隔上执行仿真。如果间隔短于规定,则写入错误占据主导;如果间隔较长,则代替地漂移错误占据主导。
图9示出了图示ECC存储开销与清理间隔之间的权衡的图表。对于每列,第一行中的代码被应用于彻底纠错(TC)中的所有位;选择性纠错(SC)将第一行ECC用于MB1中的控制和行程长度位,将第二行ECC用于其它MB中的控制和行程长度位,并留下所有的精细位不被保护。第三行示出了用于SC的总开销。在图9中,能够看出纠错选择针对不同的清理间隔如何变化(假设<1dB的质量下降)。
图9中的图表在每个间隔将彻底纠错(偏置8LC TC)与选择性纠错(偏置8LC SC)并列比较。随着清理间隔增大(朝向x轴右侧),必须采用更强的ECC机制抑制漂移错误率的增长,这导致更大的存储开销。在另一方面,较大的间隔减少了系统功耗、由数据移动引起的带宽开销和由清理产生的校验位计算。
尽管107秒被选择作为密的近似图像存储系统的目标清理间隔,但是如果更高的密度是最优先的,则对其它系统而言更短的间隔也是可接受的。然而这些结果的中心思想是:仅在需要时选择性地应用纠错能够显著地减少密度损失同时使存储器具有算法要求的错误率,如每对线条中的巨大差别所证明的。通过包括偏置(以107的清理间隔被优化),仅需要10.22%(从几乎32%下降到)存储开销,这导致能够达到2级基线的2.7×的存储密度。
本文描述的框架容易地适用于其它技术,例如闪存,尤其多级闪存(例如,TLCNAND闪存)。在这些设备中,ECC(BCH和LDPC是常见的)被应用于512字节(或更大,例如1024字节)的扇区。图10示出了比较512字节块数据(典型地闪存)上的ECC的容量与存储开销的曲线图。每个代码能够纠正512字节闪存扇区中的指示数目的错误和增扩的ECC校验位。
现有研究报告TLC NAND闪存设备具有初始的10-4的RBER,其随程序/擦除循环的数目逐渐增加。由此,TLC闪存可为存储需要最高精确度的位的单元使用BCH-16,为需要较低精确度的位使用BCH-6,并且需要最低精确度的剩余位可能不被纠错。RBER随同程序/擦除循环增大,所以逐渐要求更强的ECC。例如,RBER在大致3000个程序/擦除循环之后达到10-3。此时,选择性纠错和彻底纠错的密度改进分别降低至2.88×和2.49×,使选择性纠错更具吸引力。
协同设计的数据编码和存储机制提供更密的近似存储。通过标识编码位对输出质量的相对重要性和根据所标识的相对重要性执行纠错,能够增大存储容量。级别偏置可被进一步并入存储中以降低经受漂移的基片中的错误率。有利地,所描述的系统和技术适用于各种存储基片。
本发明的某些方面提供了下面的非限制性实施方式。
示例1.一种用于动态近似存储的存储器芯片,包括:存储器单元阵列,阵列包括至少两个区域;至少一个阈值寄存器,至少一个阈值寄存器用于存储用于与至少两个区域中的每个区域相对应的存储器单元的阈值的值;以及控制逻辑,控制逻辑用以可编程地调节用于存储器单元的所述阈值的所述值。
示例2.根据示例1的存储器芯片,其中阈值的值表示电阻阈值。
示例3.根据示例2的存储器芯片,其中用于针对至少两个区域中的至少一个区域的存储器单元的电阻阈值指示对数标度电阻带中的非均匀性。
示例4.根据示例1的存储器芯片,其中阈值的值表示电压阈值。
示例5.根据示例1-4的任一个的存储器芯片,其中存储器单元包括单级单元或多级单元中的至少一个,其中至少两个区域具有对应的至少两种类型的可用的纠错开销。
示例6.根据示例1-5的存储器芯片,进一步包括控制器,控制器提供各种纠错码,其中控制器存储区域至配置映射,以指示至少两个区域中的请求所针对的合适的区域和来自各种纠错码中的一个纠错码的用以服务于请求的合适的纠错强度。
示例7.根据示例1-6的任一个的存储器芯片,进一步包括用于存储位模式表的至少一个位模式映射寄存器,位模式表将特定位模式映射至至少两个区域中的区域中的至少一个区域的多级单元中的特定级别,其中控制逻辑进一步包括用以可编程地指派被映射至特定级别的特定位模式的控制逻辑。
示例8.根据示例1-7的任一个的存储器芯片,其中存储器芯片是安全数字(SD)非易失性存储器卡。
示例9.一种控制用于动态近似存储的存储设备的方法,包括:修改被存储在阈值寄存器中并且与存储器的区域中的至少一个单元相关联的至少一个值,以将偏置应用于至少一个单元,存储器包括至少两个区域,其中偏置调节单元中值的范围。
示例10.根据示例9的方法,进一步包括:将位模式指派给单元中的值的范围中的每个范围。
示例11.根据示例9或10的方法,进一步包括:将第一级别的纠错指派给至少两个区域的中一个区域,以及将第二级别的纠错指派给至少两个区域中的第二区域。
示例12.根据示例9-11的任一个的方法,其中偏置产生对数标度范围中的非均匀性。
示例13.根据示例9-12的任一个的方法,其中该存储器是相变存储器并且该值表示电阻值。
示例14.根据示例9-12的任一个的方法,其中该值表示电压值。
示例15.根据示例14的方法,其中存储器是多层闪存存储器。
示例16.一种移动设备,包括:处理器;存储系统,存储系统包括:存储器芯片,存储器芯片包括:存储器单元阵列,阵列包括至少两个区域;至少一个阈值寄存器,至少一个阈值寄存器用于存储用于与至少两个区域中的每个区域相对应的存储器单元的阈值的值;以及控制逻辑,控制逻辑用以可编程地调节用于存储器单元的阈值的值;以及定制应用,定制应用被存储在存储系统上,并且包括在由处理器执行时将数据存储在存储器芯片上的指令,其中数据具有利用至少两种类型的错误约束标识的位。
示例17.根据示例16的移动设备,其中用于针对至少两个区域中的至少一个区域的存储器单元的阈值指示对数标度范围中的非均匀性。
示例18.根据示例16或17的移动设备,进一步包括提供各种纠错码的控制器。
示例19.根据示例18的移动设备,其中控制器存储区域至配置映射,以指示至少两个区域中的用以存储数据的请求所针对的合适的区域和来自各种纠错码中的一个纠错码的用以服务于请求的合适的纠错强度。
示例20.根据示例16-19的移动设备,存储位模式表的至少一个位模式映射寄存器,位模式表将特定位模式映射至至少两个区域中的区域中的至少一个区域的多级单元中的特定级别,其中控制逻辑进一步包括用以可编程地指派被映射至特定级别的特定位模式的控制逻辑。
示例21.根据示例16-19的移动设备,其中该阈值的值表示电阻阈值。
示例22.根据示例16-19的移动设备,其中该阈值的值表示电压阈值。
示例23.一种用于执行示例9-15的任一个的方法的系统或产品。
示例24.一种系统,包括用于修改被存储在阈值寄存器中并且与存储器的区域中的至少一个单元相关联的至少一个值,以将偏置应用于至少一个单元的装置,存储器包括至少两个区域,其中偏置调节单元中值的范围。
应该理解,本文描述的示例和实施方式仅用于说明目的,对本领域技术人员教导其各种修改或改变并且该修改或改变包括在本申请的精神和范围内。
尽管主题用结构特征和/或动作专用的语言描述,但是将理解,所附权利要求中定义的主题不一定限于上述的具体的特征或动作。然而,上述的具体的特征和动作作为实现权利要求的示例被公开,其它等同的特征和动作旨在权利要求的范围内。

Claims (15)

1.一种用于动态近似存储的存储器芯片,包括:
存储器单元阵列,所述阵列包括至少两个区域;
至少一个阈值寄存器,所述至少一个阈值寄存器用于存储用于与所述至少两个区域中的每个区域相对应的存储器单元的阈值的值;以及
控制逻辑,所述控制逻辑用以可编程地调节用于所述存储器单元的所述阈值的所述值。
2.根据权利要求1所述的存储器芯片,其中所述存储器单元包括单级单元或多级单元中的至少一个,其中所述至少两个区域具有对应的至少两种类型的可用的纠错开销。
3.根据权利要求1所述的存储器芯片,其中阈值的所述值表示电阻阈值。
4.根据权利要求3所述的存储器芯片,其中用于针对所述至少两个区域中的至少一个区域的所述存储器单元的所述电阻阈值指示对数标度电阻带中的非均匀性。
5.根据权利要求1所述的存储器芯片,其中阈值的所述值表示电压阈值。
6.根据权利要求1所述的存储器芯片,进一步包括控制器,所述控制器提供各种纠错码,其中所述控制器存储区域至配置映射,以指示所述至少两个区域中的请求所针对的合适的区域和来自所述各种纠错码中的一个纠错码的用以服务于所述请求的合适的纠错强度。
7.根据权利要求1所述的存储器芯片,进一步包括用于存储位模式表的至少一个位模式映射寄存器,所述位模式表将特定位模式映射至所述至少两个区域中的所述区域中的至少一个区域的多级单元中的特定级别,其中所述控制逻辑进一步包括用以可编程地指派被映射至所述特定级别的所述特定位模式的控制逻辑。
8.一种控制用于动态近似存储的存储设备的方法,包括:
修改被存储在阈值寄存器中并且与存储器的区域中的至少一个单元相关联的至少一个值,以将偏置应用于所述至少一个单元,所述存储器包括至少两个区域,其中所述偏置调节单元中值的范围。
9.根据权利要求8所述的方法,进一步包括:
将第一级别的纠错指派给所述至少两个区域的中一个区域,以及将第二级别的纠错指派给所述至少两个区域中的第二区域。
10.根据权利要求8所述的方法,进一步包括:
将位模式指派给所述单元中的所述值的所述范围中的每个范围。
11.根据权利要求8所述的方法,其中所述偏置产生对数标度范围中的非均匀性。
12.一种移动设备,包括:
处理器;
存储系统,所述存储系统包括:
存储器芯片,所述存储器芯片包括:存储器单元阵列,所述阵列包括至少两个区域;至少一个阈值寄存器,所述至少一个阈值寄存器用于存储用于与所述至少两个区域中的每个区域相对应的存储器单元的阈值的值;以及控制逻辑,所述控制逻辑用以可编程地调节用于所述存储器单元的所述阈值的所述值;以及
定制应用,所述定制应用被存储在所述存储系统上,并且包括在由所述处理器执行时将数据存储在所述存储器芯片上的指令,其中所述数据具有利用至少两种类型的错误约束标识的位。
13.根据权利要求12所述的移动设备,进一步包括控制器,所述控制器提供各种纠错码。
14.根据权利要求13所述的移动设备,其中所述控制器存储区域至配置映射,以指示所述至少两个区域中的用以存储所述数据的请求所针对的合适的区域和来自所述各种纠错码中的一个纠错码的用以服务于所述请求的合适的纠错强度。
15.根据权利要求12所述的移动设备,其中用于针对所述至少两个区域中的至少一个区域的所述存储器单元的所述阈值指示对数标度范围中的非均匀性。
CN201680012455.2A 2015-02-27 2016-02-05 用于定制应用的动态近似存储 Active CN107257958B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/633,787 2015-02-27
US14/633,787 US9786386B2 (en) 2015-02-27 2015-02-27 Dynamic approximate storage for custom applications
PCT/US2016/016673 WO2016137717A1 (en) 2015-02-27 2016-02-05 Dynamic approximate storage for custom applications

Publications (2)

Publication Number Publication Date
CN107257958A true CN107257958A (zh) 2017-10-17
CN107257958B CN107257958B (zh) 2020-07-03

Family

ID=55404844

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680012455.2A Active CN107257958B (zh) 2015-02-27 2016-02-05 用于定制应用的动态近似存储

Country Status (4)

Country Link
US (1) US9786386B2 (zh)
EP (1) EP3262645B1 (zh)
CN (1) CN107257958B (zh)
WO (1) WO2016137717A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109697135A (zh) * 2017-10-20 2019-04-30 上海寒武纪信息科技有限公司 存储装置及方法、数据处理装置及方法、电子装置
CN109947589A (zh) * 2019-03-05 2019-06-28 深圳市得一微电子有限责任公司 一种闪存中近似数据存储方法
CN110827913A (zh) * 2018-08-07 2020-02-21 三星电子株式会社 用于检测电阻存储器器件的劣化的方法和系统
CN113707208A (zh) * 2020-05-21 2021-11-26 晶豪科技股份有限公司 用于非易失性存储装置的错误纠正的控制验证操作的方法及非易失性存储装置
CN114822611A (zh) * 2022-06-27 2022-07-29 波平方科技(杭州)有限公司 用于近似计算的磁性存储芯片、模组及系统级封装芯片
US11593658B2 (en) 2017-10-20 2023-02-28 Shanghai Cambricon Information Technology Co., Ltd Processing method and device

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10254961B2 (en) * 2017-02-21 2019-04-09 International Business Machines Corporation Dynamic load based memory tag management
US10396821B2 (en) 2017-06-30 2019-08-27 Seagate Technologies Llc Generating Hamming weights for data
US11347650B2 (en) * 2018-02-07 2022-05-31 Advanced Micro Devices, Inc. Word type/boundary propagation with memory performance applications
US10897273B2 (en) 2018-06-27 2021-01-19 Western Digital Technologies, Inc. System-level error correction coding allocation based on device population data integrity sharing
US10802908B2 (en) * 2018-07-31 2020-10-13 Western Digital Technologies, Inc. Data dependent allocation of error correction resources

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040225662A1 (en) * 2003-05-08 2004-11-11 Hiroshi Nojima Storage operation management system
CN1819055A (zh) * 2004-12-09 2006-08-16 赛芬半导体有限公司 非易失性存储器存储单元读取方法
US7460398B1 (en) * 2007-06-19 2008-12-02 Micron Technology, Inc. Programming a memory with varying bits per cell
US20090019321A1 (en) * 2007-07-09 2009-01-15 Micron Technolgy. Inc. Error correction for memory
CN101573761A (zh) * 2006-11-03 2009-11-04 桑迪士克股份有限公司 具有可变读取阈值的非易失性存储器
US20100082900A1 (en) * 2008-10-01 2010-04-01 Hitachi, Ltd. Management device for storage device
US20120155174A1 (en) * 2006-05-15 2012-06-21 Apple Inc. Use of Alternative Value in Cell Detection
US20130024605A1 (en) * 2011-07-22 2013-01-24 Sandisk Technologies Inc. Systems and methods of storing data
US20140219001A1 (en) * 2013-02-07 2014-08-07 Seagate Technology Llc Applying a bias signal to memory cells to reverse a resistance shift of the memory cells
US8891303B1 (en) * 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6012160A (en) 1997-10-03 2000-01-04 Ericsson Inc. Method for protecting important data bits using less important data bits
US6363008B1 (en) 2000-02-17 2002-03-26 Multi Level Memory Technology Multi-bit-cell non-volatile memory with maximized data capacity
US6466476B1 (en) 2001-01-18 2002-10-15 Multi Level Memory Technology Data coding for multi-bit-per-cell memories having variable numbers of bits per memory cell
US6643169B2 (en) 2001-09-18 2003-11-04 Intel Corporation Variable level memory
JP2004046991A (ja) 2002-07-12 2004-02-12 Fujitsu Ltd 不揮発性半導体記憶装置の閾値電圧調整方法、および不揮発性半導体記憶装置
GB2412278B (en) 2004-03-16 2006-06-14 Motorola Inc Method and apparatus for classifying importance of encoded frames in a digital communications system
JP4660353B2 (ja) 2005-11-01 2011-03-30 株式会社東芝 記憶媒体再生装置
US7366013B2 (en) * 2005-12-09 2008-04-29 Micron Technology, Inc. Single level cell programming in a multiple level cell non-volatile memory device
US8239735B2 (en) 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
US7870457B2 (en) * 2006-12-29 2011-01-11 Sandisk Corporation Page by page ECC variation in a memory device
US7626868B1 (en) 2007-05-04 2009-12-01 Flashsilicon, Incorporation Level verification and adjustment for multi-level cell (MLC) non-volatile memory (NVM)
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8140746B2 (en) 2007-12-14 2012-03-20 Spansion Llc Intelligent memory data management
US8627165B2 (en) 2008-03-24 2014-01-07 Micron Technology, Inc. Bitwise operations and apparatus in a multi-level system
US9477587B2 (en) * 2008-04-11 2016-10-25 Micron Technology, Inc. Method and apparatus for a volume management system in a non-volatile memory device
KR101466695B1 (ko) 2008-04-30 2014-12-01 삼성전자주식회사 멀티 비트 레벨 데이터의 부호화 및 복호화 방법
US20090287969A1 (en) 2008-05-13 2009-11-19 Bpm Microsystems Electronic apparatus and bit error rate tolerance method for programming non-volatile memory devices
US7995388B1 (en) 2008-08-05 2011-08-09 Anobit Technologies Ltd. Data storage using modified voltages
US8665642B2 (en) 2008-12-31 2014-03-04 Rambus Inc. Pattern-sensitive coding of data for storage in multi-level memory cells
US8948286B2 (en) 2009-10-20 2015-02-03 Wisconsin Alumni Research Foundation Wireless communication system mapping data bits to symbol bit positions according to error rates of those bit positions and data content
US8130553B2 (en) 2009-12-02 2012-03-06 Seagate Technology Llc Systems and methods for low wear operation of solid state memory
US8578246B2 (en) * 2010-05-31 2013-11-05 International Business Machines Corporation Data encoding in solid-state storage devices
US8856439B2 (en) 2010-12-03 2014-10-07 Lsi Corporation Method and device for utilizing application-level prior knowledge for selectively storing data in higher performance media
US8484542B2 (en) * 2011-02-08 2013-07-09 Sandisk Technologies Inc. Data recovery using additional error correction coding data
US8942035B2 (en) 2011-03-23 2015-01-27 Seagate Technology Llc Non-sequential encoding scheme for multi-level cell (MLC) memory cells
US8839076B2 (en) * 2011-03-31 2014-09-16 International Business Machines Corporation Encoding a data word for writing the encoded data word in a multi-level solid state memory
US8699266B2 (en) 2012-01-30 2014-04-15 HGST Netherlands B.V. Implementing enhanced data write for multi-level cell (MLC) memory using threshold voltage-drift or resistance drift tolerant moving baseline memory data encoding
US20140089561A1 (en) 2012-09-26 2014-03-27 Kiran Pangal Techniques Associated with Protecting System Critical Data Written to Non-Volatile Memory
US9021313B2 (en) 2012-11-21 2015-04-28 Microsoft Technology Licensing, Llc Priority-assignment interface to enhance approximate computing
US9164832B2 (en) * 2013-02-27 2015-10-20 Seagate Technology Llc ECC management for variable resistance memory cells
US8861270B2 (en) 2013-03-11 2014-10-14 Microsoft Corporation Approximate multi-level cell memory operations

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040225662A1 (en) * 2003-05-08 2004-11-11 Hiroshi Nojima Storage operation management system
CN1819055A (zh) * 2004-12-09 2006-08-16 赛芬半导体有限公司 非易失性存储器存储单元读取方法
US20120155174A1 (en) * 2006-05-15 2012-06-21 Apple Inc. Use of Alternative Value in Cell Detection
CN101573761A (zh) * 2006-11-03 2009-11-04 桑迪士克股份有限公司 具有可变读取阈值的非易失性存储器
US7460398B1 (en) * 2007-06-19 2008-12-02 Micron Technology, Inc. Programming a memory with varying bits per cell
US20090019321A1 (en) * 2007-07-09 2009-01-15 Micron Technolgy. Inc. Error correction for memory
US20100082900A1 (en) * 2008-10-01 2010-04-01 Hitachi, Ltd. Management device for storage device
US20130024605A1 (en) * 2011-07-22 2013-01-24 Sandisk Technologies Inc. Systems and methods of storing data
US20140219001A1 (en) * 2013-02-07 2014-08-07 Seagate Technology Llc Applying a bias signal to memory cells to reverse a resistance shift of the memory cells
US8891303B1 (en) * 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109697135A (zh) * 2017-10-20 2019-04-30 上海寒武纪信息科技有限公司 存储装置及方法、数据处理装置及方法、电子装置
CN109697135B (zh) * 2017-10-20 2021-03-26 上海寒武纪信息科技有限公司 存储装置及方法、数据处理装置及方法、电子装置
US11593658B2 (en) 2017-10-20 2023-02-28 Shanghai Cambricon Information Technology Co., Ltd Processing method and device
CN110827913A (zh) * 2018-08-07 2020-02-21 三星电子株式会社 用于检测电阻存储器器件的劣化的方法和系统
CN109947589A (zh) * 2019-03-05 2019-06-28 深圳市得一微电子有限责任公司 一种闪存中近似数据存储方法
CN109947589B (zh) * 2019-03-05 2023-02-17 深圳市得一微电子有限责任公司 一种闪存中近似数据存储方法
CN113707208A (zh) * 2020-05-21 2021-11-26 晶豪科技股份有限公司 用于非易失性存储装置的错误纠正的控制验证操作的方法及非易失性存储装置
CN113707208B (zh) * 2020-05-21 2024-05-03 晶豪科技股份有限公司 用于非易失性存储装置的错误纠正的控制验证操作的方法及非易失性存储装置
CN114822611A (zh) * 2022-06-27 2022-07-29 波平方科技(杭州)有限公司 用于近似计算的磁性存储芯片、模组及系统级封装芯片

Also Published As

Publication number Publication date
EP3262645B1 (en) 2023-08-16
US9786386B2 (en) 2017-10-10
US20160254063A1 (en) 2016-09-01
WO2016137717A1 (en) 2016-09-01
CN107257958B (zh) 2020-07-03
EP3262645A1 (en) 2018-01-03

Similar Documents

Publication Publication Date Title
CN107257958A (zh) 用于定制应用的动态近似存储
US11074125B2 (en) Data storage system and method for decoding data based on extrapolated flipped-bit data
US8443242B2 (en) Systems and methods for multiple coding rates in flash devices
US8327246B2 (en) Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith
JP6606039B2 (ja) メモリシステムおよび制御方法
US10216574B2 (en) Adaptive error correction codes for data storage systems
KR102372825B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US10339001B2 (en) Method and system for improving flash storage utilization by predicting bad M-pages
CN108694098B (zh) 对于存储设备的不同存储器区域的比特顺序修改
CN107258083A (zh) 单级单元和可变的多级单元存储上的数据编码
CN108399110B (zh) 高容量固态驱动器中的软信息管理
US20170168716A1 (en) Paired Metablocks in Non-Volatile Storage Device
US11630722B2 (en) Method and system for decoding data based on association of first memory location and second memory location
TW202240594A (zh) 用於管理具有動態錯誤更正碼保護之記憶體的方法及系統
CN108268339A (zh) 用于在线编程/擦除计数估计的方法和系统
KR20170009554A (ko) 테스트 시스템 및 테스트 방법
CN112230843B (zh) 限制热-冷交换磨损均衡
CN117980994A (zh) 存储器中经改进的ecc配置
KR20200121621A (ko) 메모리 시스템 내 복수의 메모리 블록의 특성을 결정하는 방법 및 장치
CN111868697A (zh) 存储级存储系统的磨损均衡方案及其实现方式
US20240231632A1 (en) Adaptive die selection for block family scan
KR20210008604A (ko) 메모리 시스템의 입출력 성능을 향상시키는 장치 및 방법
CN118471296A (zh) 用于加电性能提升的缓慢电荷损失监测器
CN113921060A (zh) 管理在存储器子系统中的清理操作的执行
Mirhoseini Coding for Phase Change Memory Performance Optimization

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
GR01 Patent grant
GR01 Patent grant