具有提高的耐久性的存储装置的制作方法

文档序号:30498287发布日期:2022-06-22 11:34阅读:190来源:国知局
具有提高的耐久性的存储装置的制作方法

1.本公开涉及存储器系统,并且具体地,涉及提高存储装置中的耐久性。


背景技术:

2.最近的法规要求配备有自动驾驶功能的车辆的制造商安装黑匣子以帮助确定事故发生时的责任。黑匣子的使用可帮助确保自动驾驶技术能够安全地部署。可能需要黑匣子在自动驾驶系统处于活动状态的情况下,在驾驶员驾驶车辆的情况下以及在系统要求驾驶员接管车辆的驾驶的情况下进行记录。此外,可能需要黑匣子在很多年内保持可操作并且可靠地保留所需的数据。因此,在黑匣子中可能需要具有高耐久性的存储装置。


技术实现要素:

3.本文所述的具体实施描述了具有改进的耐久性的存储装置。在所附权利要求的范围内的系统、方法和装置的各种具体实施各自具有若干方面,其中并无单个一者唯一地负责本文所述的所需属性。在不限制所附权利要求的范围的情况下,描述了一些突出特征。在考虑本讨论之后,并且具体地在阅读标题为“具体实施方式”的部分之后,应当理解如何使用各种具体实施的特征来在第一读取场景中降低位错误率。
附图说明
4.为了更详细地理解本公开,可通过参考各种具体实施的特征得到更具体的描述,这些具体实施中的一些具体实施在附图中示出。然而,附图仅示出了更相关的本公开特征,因此不被认为是限制性的,因为描述可承认其他有效特征。
5.图1是根据一些实施方案的数据存储系统的框图。
6.图2是根据一些实施方案的存储装置的存储介质中的存储器单元阵列的图。
7.图3是根据一些实施方案的存储器单元的图。
8.图4a至图4c是示出根据一些实施方案的示例性存储器单元的阈值电压分布的曲线图。
9.图5a至图5d是示出根据一些实施方案的示例性存储器单元的阈值电压分布的曲线图。
10.图6a至图6b是示出根据一些实施方案的示例性存储器单元的阈值电压分布的曲线图。
11.图7a至图7c是示出根据一些实施方案的示例性存储器单元的阈值电压分布的曲线图。
12.图8是示出根据一些实施方案的用于对存储器单元进行编程的方法的流程图。
13.根据共同实践,附图中示出的各种特征部可不按比例绘制。因此,为了清楚起见,可任意地扩展或缩减各种特征部的尺寸。此外,一些附图可不描述给定的系统、方法或设备的所有部件。最后,在通篇说明书和附图中,类似的附图标号可用于表示类似的特征部。
具体实施方式
14.本文所述的各种具体实施包括具有提高的耐久性同时最小化由增加的存储器导致的附加成本的系统、方法和/或装置。
15.本文描述了许多细节,以便提供对附图中所示的示例性具体实施的深入理解。然而,可在没有许多具体细节的情况下实施本发明。并且,并未详尽地描述已知的方法、部件和电路,以免不必要地模糊本文所述的具体实施的更相关方面。虽然本文所述的技术具体地是与车辆黑匣子记录装备相关,但是本领域的技术人员将理解,本技术可应用于其他装备和装置,诸如物联网(iot)装置。
16.图1是数据存储环境(即,数据存储系统100)的具体实施的图。示例性存储系统可以为用于车辆(诸如汽车、卡车、火车、飞机等)的黑匣子事件数据记录器(edr)。
17.然而,本文所述的概念可应用于其他数据存储系统,包括但不限于用于计算装置(诸如计算机、膝上型计算机、平板装置、上网本、互联网信息亭、个人数字助理、移动电话、智能电话、游戏装置、计算机服务器、物联网(iot)装置、智能家居装置或任何其他计算装置)的存储系统。虽然示出了某些特定特征,但本领域技术人员从本公开将了解,为了简洁起见并未示出各种其他特征,以免模糊本文所公开的示例性具体实施的更相关方面。为此,作为非限制性示例,数据存储系统100包括数据处理系统(另选地在本文称为计算机系统或主机)110和存储装置120。
18.主机110通过数据连接件101耦接到存储装置120。在各种具体实施中,主机110包括存储装置120作为部件。在一些具体实施中,主机110包括一个或多个处理器、一种或多种类型的存储器、显示器和/或其他用户界面部件,诸如键盘、触摸屏显示器、鼠标、触控板、数字相机和/或任何数量的添加功能的补充装置。
19.存储装置120包括通过数据连接件103耦接到存储控制器124的一个或多个存储介质130(有时称为非易失性存储器或nvm)。在各种具体实施中,存储控制器124和存储介质130包括在与其构成部件相同的装置(例如,存储装置120)中,而在其他实施方案中,存储控制器124和存储介质130是单独装置或在单独装置中。每个数据存储介质130包括任何数量(即,一个或多个)的存储器装置,该存储器装置包括但不限于非易失性半导体存储器装置,诸如闪存存储器。例如,闪存存储器装置可被配置用于适用于应用(诸如云计算)的企业存储。附加地和/或另选地,闪存存储器装置也可被配置用于相对较小规模的应用诸如个人闪存驱动器,或用于个人计算机、膝上型计算机和平板计算机的硬盘替换品。在一些具体实施中,存储介质130包括一个或多个闪存存储器装置。在一些具体实施中,存储介质130包括nand型闪存存储器和/或nor型闪存存储器中的至少一者。
20.存储介质通常被划分为多个可寻址且可单独选择的块,诸如可选择部分131。在一些具体实施中,针对闪存存储器,这些可单独选择的块是闪存存储器装置中的最小可擦除单元。换句话讲,每个块包含可被同时擦除的最小数量的存储器单元。每个块通常被进一步划分为多个页,其中每个页通常是块中最小可单独访问子块的最小单元的实例。然而,在一些具体实施中(例如,在一些类型的闪存存储器中),可单独访问的数据的最小单元是扇区,该扇区是页的子集。即,每个页包含多个扇区,并且每个扇区是用于向闪存存储器装置写入数据或从闪存存储器装置读取数据的可单独访问的数据的最小单元。
21.仅出于表示的目的,数据块包括多个页,通常每个块有固定数量的页,并且每个页
包括多个扇区,通常每个页有固定数量的扇区。例如,在一些具体实施中,一个块包括64个页、128个页、256个页或另一个合适数量的页。块、页和扇区的相应大小通常取决于设计选择或最终用户选择,并且通常在企业和消费者装置的宽泛范围上有所不同。然而,仅作为示例而非限制,在一些企业应用中,页包括2k(即,2048)字节到16k字节,并且扇区包括256字节到544字节的任何字节。根据特定的应用,那些范围可向上或向下延伸,和/或缩小或扩大。在一些实施方案中,每个页存储一个或多个码字,其中码字是由特定装置的编码器和解码器机制单独编码和解码的最小数据单元。
22.存储介质(nvm)130可包括多个增长的物理坏块(也称为增长的死块)。增长的死块是在存储装置的使用期间变为坏(即,无法满足一个或多个数据寿命规格)的块。增长的死块通常被停用,因为它们不能再可靠地写入。被停用的块变为只读。在一些具体实施中,可容许增长的物理坏块的数量多至并超过所有物理块(或所有可寻址块)的约5%,以及多至所有物理块(或所有可寻址块)的约95%,其中“约”表示值的
±
10%。应当理解,基于应用可允许其他数量的增长的物理坏块。因此,前述涉及数量是所有块的5%的公开不应被理解为是必需的限制。
23.在一些具体实施中,存储介质(nvm)130具有定义的导出容量与物理容量的比率,该比率大于0.02且小于约0.50(其中“约”表示值的
±
10%)。导出容量(也称为用户容量、主机导出容量和主机地址范围)是从用户或主机的角度来看存储介质的大小。更正式的,导出容量由可用于主机写入的地址范围乘以每个地址的字节的数量来定义。例如,如果主机以4kb的单位写入数据,并且存在1,024个可用地址用于写入那些数据单元,则导出容量是4,096kb(约4mb)。
24.另一方面,物理容量是存储介质的物理大小(存储器单元的总数)。导出容量被分配给由主机指定写入的数据,同时剩余的存储器单元(物理地存在但不包括在地址范围内)通常用于纠错(例如,ecc、奇偶校验位等)。应当理解,基于应用可允许其他比率。因此,前述涉及比率是大于0.02且小于约0.50的公开不应被理解为是必需的限制。
25.在一些具体实施中,存储控制器124包括管理模块121、错误控制模块125、存储介质接口(i/o)128和主机接口129。主机接口129将存储装置120和其存储控制器124耦接到一个或多个主机110,同时存储介质接口128将存储控制器124耦接到存储介质130。在一些具体实施中,存储控制器124包括各种附加特征,为了简洁起见并未示出这些附加特征,以免模糊本文所公开的示例性具体实施的更相关特征,并且特征的不同布置可以是可能的。
26.主机接口129通常包括数据缓冲器(未示出)以缓冲由存储装置120经由数据连接件101接收和传输的数据。类似地,存储介质i/o 128通过数据连接件103向存储介质130提供接口。在一些具体实施中,存储介质接口128包括读取和写入电路。
27.在一些具体实施中,管理模块121包括一个或多个处理器122。然而,在一些具体实施中,处理器122由在存储控制器124的功能内并在一些情况下超出其功能的一个或多个部件共享。
28.管理模块121耦接到主机接口129、错误控制模块125和存储介质i/o 128以便协调这些部件的操作。
29.错误控制模块125耦接在存储介质i/o 128和主机接口129之间。在一些具体实施中,提供错误控制模块125以限制无意地引入到数据中的不可纠正错误的数量。为此,错误
控制模块125包括编码器126和解码器127。编码器126对数据进行编码以产生码字,该码字随后被存储在存储介质130中。当从存储介质130读取编码数据时,解码器127应用解码过程以恢复数据并且在错误控制码的纠错能力内纠正错误。各种错误控制码具有不同错误检测和校正能力,并且针对各种应用选择特定码。
30.在一些具体实施中,错误控制模块125被配置为计算从主机110接收到的数据的纠错码(ecc),并且将ecc与接收数据一起保存。在一些具体实施中,ecc码率小于约0.60(其中“约”表示值的
±
10%)。应当理解,基于应用可能需要其他ecc码率。因此,前述涉及ecc码率是0.60的公开不应被理解为是必需的限制。
31.管理模块121通常包括用于执行存储在存储器中的模块、程序和/或指令,并且从而执行处理操作的一个或多个处理器122(在本文有时称为cpu、处理单元、硬件处理器、处理器、微处理器或微控制器)。管理模块121也包括存储器123(在本文有时称为控制器存储器)以及用于将这些部件互连的一条或多条通信总线。通信总线可选地包括将系统部件互连并且控制其间通信的电路(有时称为芯片组)。管理模块121通过通信总线耦接到存储介质接口128、错误控制模块125和主机接口129。控制器存储器123包括高速随机存取存储器诸如dram、sram、ddr ram或其他随机存取固态存储器设备,并且可包括非易失性存储器诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。控制器存储器123可选地包括位于远离一个或多个处理器122的一个或多个存储设备。在一些实施方案中,控制器存储器123或另选地控制器存储器123内的非易失性存储器设备包括非暂态计算机可读存储介质。在一些实施方案中,控制器存储器123或控制器存储器123的非暂态计算机可读存储介质存储一个或多个程序、模块和数据结构或其子集或超集,以用于执行本文所述的操作。
32.以上识别的元件中的每个元件可存储在先前提到的存储器装置中的一者或多者中,并且对应于用于执行上述功能的指令集。以上识别的模块或程序(即,指令集)不需要实现为单独的软件程序、过程或模块,并且因此这些模块的各种子集可以在各种实施方案中组合或以其他方式重新布置。在一些实施方案中,存储器123可存储以上识别的模块和数据结构的子集。此外,存储器123可存储以上未描述的附加的模块和数据结构。在一些实施方案中,存储在存储器123或存储器123的非暂态计算机可读存储介质中的程序、模块和数据结构提供指令以用于实现以下所述的方法中的任一种方法。换句话讲,存储在存储器123中的程序或模块在由一个或多个处理器122执行的情况下致使存储装置120执行以下所述的方法中的任一种方法。尽管图1示出了各种模块,但是图1更多地旨在作为可存在于模块中的各种特征的功能描述,而不是作为本文所述的实施方案的结构图示。在实施过程中,可组合单独地示出的程序、模块和数据结构,并且可分离一些程序、模块和数据结构。
33.图2描绘了包括存储介质130的可选择部分131(图1)的存储器单元阵列的示例性块200。在此示例中,存储器单元阵列被配置为nand阵列。所描绘的配置是许多可能配置中的一个,并且为了简洁起见并未示出各种其他配置(例如,nor阵列、3d nand等),以免模糊本文所公开的示例性具体实施的更相关方面。
34.在示例性阵列中,串202(列)是最小可读单元并且可由32个或64个存储器单元组成。根据应用,串可包括其他数量的存储器单元(例如,大于64、小于32或介于32和64之间)。阵列中的所有串在一端连接到公共源极线206并且在另一端连接到位线(例如,bl3)。每个
串还包含与存储器单元串联的两个控制晶体管。串和接地选择晶体管分别连接到串选择线(sgd)和接地选择线(sgs)。
35.在示例性阵列中,页204(行)共享相同的字线并且是最小可编程单元。它们可由至少32,768(32k)、64k或128k存储器单元组成。根据应用,页可包括其他数量的存储器单元(例如,大于128k、小于32k或介于32k和128k之间)。通常,页大小称为2k、4k、8k,以此类推。这表示页大小以字节为单位。所以如果页大小具有32,768个存储器单元(位),则这等于4,096(4k)字节。
36.在示例性阵列中,块200是由串(列)和页(行)组成的二维矩阵。可通过将串的数量乘以页的数量来计算块中的总位数。根据要执行的存储器操作(例如,读取、编程、擦除),存储介质130的可选择部分131包括单个页、单个串或单个块。
37.存储器阵列中的存储器单元可具有阈值电压vth,该阈值电压包括在图4a至图4c的分布中的一者中。图4a示出了单层单元(slc)存储器中的单元分布,其中每个单元被编程一个位。图4b示出了2位多层单元(mlc)存储器中的单元分布,其中每个单元被编程两个位。图4c示出了3位多层单元(tlc)存储器中的单元分布,其中每个单元被编程三个位。对于slc闪存存储器,图2的阵列的每个单元具有阈值电压,该阈值电压根据被编程数据的值包括在擦除状态e或编程状态a中,如图4a所示。对于2位mlc闪存存储器,图2的阵列的每个单元具有阈值电压,该阈值电压包括在擦除状态e或第一编程状态a至第三编程状态c中的任一者中,如图4b所示。对于3位mlc闪存存储器,图2的阵列的每个单元具有阈值电压,该阈值电压包括在擦除状态e或第一编程状态a至第七编程状态g中的任一者中,如图4c所示。然而,本文所述的实施方案不限于这三种配置。例如,每个单元可被编程四个位(qlc单元)、五个位(plc单元)或多于五个位。此外,根据应用,阵列中的各种单元可被编程不同数量的位。
38.返回参考图2,读取存储器单元(例如,208)的状态需要区分单元的电压阈值电平,而与串中所有其他单元的电压阈值电平无关。为了实现这一点,将串(例如,202)连接到感测电路(例如,选择线sgd和sgs为高),并且特定位线(例如,bl3)被偏置;因此,电流可流向(例如,通过串202)(接地的)源极线。未选择的单元(例如,耦接到wl0和wl2至wl7的单元)被置于传输晶体管模式,从而以大于最大阈值电压vth的传输电压偏置它们的字线。然后通过施加读取电压(例如,到wl1)、感测通过单元串(bl3)的单元电流以及将所感测的电流和固定参考值进行比较以评估对应的二进制代码来执行实际读取操作。针对mlc、tlc和qlc单元执行多于一次的操作。
39.图3示出了根据一些实施方案的存储器单元(例如,图2中的单元208)的编程状态。该存储器单元包括控制栅级302、浮动栅级306和导电通道310。在一些实施方案(例如,3d nand)中,浮动栅级306称为电荷捕获层,并且该导电通道称为存储器孔。存储器单元还包括设置在浮动栅级306和导电通道310之间的隧道氧化物层308,以及设置在控制栅极302和浮动栅级306之间的栅极氧化物层304。
40.在读取操作期间,将读取电压施加到控制栅极302。如果浮动栅级306被编程(即,浮动栅级中存在电子),则电流将不会在导电通道310中流动,这被解释为逻辑0。如果浮动栅级306被擦除(即,电子大部分不存在于浮动栅级中),则电流将在导电通道306中流动,这被解释为逻辑1。对于mlc、tlc和qlc存储器,测量连续施加的读取电压的电流量以确定表示为哪种逻辑(例如,对于mlc为11、10、01、00)。
41.在写入操作期间,将高电压(例如,12v)施加到控制栅极302,这将电子从导电通道310拉到浮动栅级306中。电子通过逃离导电通道310并隧穿氧化物308进入浮动栅级306。对于mlc、tlc和qlc存储器,需要多个电压来将不同量的电子拉到浮动栅级中。例如,在tlc存储器单元(图4c)中,每个状态a-g与浮动栅级上的不同的电荷量相关联,这些电荷的量会影响多少读取电流能够通过导电通道。在一些具体实施中,编程操作包括一个或多个编程脉冲,在该一个或多个编程脉冲期间,将连续增加的电压施加到控制栅极,以便将连续增加量的电子拉到浮动栅级上。
42.图4a至图4c示出了针对读取操作的单元电压阈值和对应的读取电压电平(有时也称为参考电压电平)。
43.例如,在slc存储器单元(图4a)中,存在两个阈值电压:e(针对擦除状态:1)和a(针对编程状态:0)。在施加读取电压信号402的情况下,如果电流流过存储器单元,则该单元被擦除(例如,逻辑1)。如果电流不流过存储器单元,则该单元被编程(例如,逻辑0)。
44.在两位mlc存储器单元(图4b)中,存在四个阈值电压:e(针对擦除状态:1)和a至c(针对三个编程状态:01、00、10)。在施加读取电压信号412的情况下,如果电流在第一阈值以上流过存储器单元,则该单元被擦除(例如,逻辑11)。在施加电压414的情况下,如果电流在第一阈值以下但在第二阈值以上流动,则该单元处于第一编程状态(例如,逻辑01)。在施加电压416的情况下,如果电流在第二阈值以下但在第三阈值以上流动,则该单元处于第二编程状态(例如,逻辑00),并且如果电流在第三阈值以下流动,则该单元处于第三编程状态(例如,逻辑10)。
45.在三位tlc存储器单元(图4c)中,存在八个阈值电压:e(针对擦除状态:1)和a至g(针对七个编程状态:011、001、000、010、110、100、101)。在施加读取电压418的情况下,如果电流在第一阈值以上流过存储器单元,则该单元被擦除(例如,逻辑111)。读取电压的其余部分被选择为使得它们在剩余编程状态的电压阈值之间,如上文关于图4b所述。
46.需要高耐久性的具体实施
47.在上述数据存储系统100的一些应用中,读取和写入性能要求相对较低,并且耐久性要求相对较高。例如,在一些具体实施中,主机110是车辆上的处理系统,有时称为引擎控制单元(ecu)。在一些具体实施中,ecu包括一个或多个控制器和存储器,该一个或多个控制器和存储器与嵌入在车辆中的一个或多个传感器操作地耦接,并且由ecu传输的用于存储在存储装置120中的数据包括来自这些传感器中的一个或多个传感器的传感器数据。在这些应用中,存储装置120被实现为黑匣子事件数据记录器(edr)。
48.在一些edr具体实施中,传感器数据(由主机110通过数据连接件101提供的数据)描述车辆、车辆的驾驶员和/或车辆附近的环境的连续状态。示例性传感器数据可包括描述驾驶员与车辆的各种控制系统交互的驾驶员操作数据,诸如加速器踏板操作数据、制动踏板操作数据和/或方向盘操作数据。示例性传感器数据可包括描述车辆周围环境的连续状态的环境数据,诸如车辆与在该车辆附近的其他车辆或物体之间的距离、在该车辆附近的其他车辆或物体的特征、道路状况数据、速度限制或交通信号数据、道路标识等。示例性传感器数据可包括驾驶员意识数据(例如,驾驶员的手是否在方向盘上、驾驶员的眼睛是否朝向前方、是否正在进行电话呼叫或其他通信)、事件日志(例如,包括针对驾驶员控制车辆的警告)、车辆健康数据(例如,燃料水平、错误代码等)和/或指示驾驶员、车辆和/或环境在任
何给定的时刻的状态的任何其他传感器数据。
49.关于本文所述的edr具体实施中的读取性能,读取是非常罕见的。不同的主机110从存储装置120读取(相对于写入到存储装置120的主机)。例如,当车辆中的ecu将如上所述的传感器数据和其他车辆相关的数据写入到存储装置120时,在碰撞事件中,存储装置120将从车辆中移除并且通过计算机系统在另外的环境(诸如实验室)中进行读取,该计算机系统被优化用于从edr存储装置读取从事故恢复的数据(也称为读取“离线”)。由于只有在发生事故时才读取存储装置120,因此这种存储装置可被配置为读取性能要求相对较低的重复“只写”装置。因此,对于edr存储装置,读取性能(通常是存储瓶颈)可能显著地被折衷。
50.关于本文所述的edr具体实施中的写入性能,写入速率相对中等。在一些具体实施中,对存储装置120进行编程的速率为每秒60mb。然而,根据edr和车辆特定规格,此速率可以为更高或更低。虽然可能以更高的速率写入,但是许多车辆传感器传输数据不能像存储装置120的编程容量一样快。因此,对于edr存储装置,写入性能可能被折衷。
51.关于本文所述的edr具体实施中的耐久性,一些管辖区域要求黑匣子edr存储装置在相当于15年中每天驾驶8小时的寿命期间可靠地存储传感器数据和其他信息。这粗略地转化为要求总edr耐久性容量为1,400兆兆字节写入(tbw)。另一方面,不是所有的这些数据都需要被永久地存储。例如,一项要求可能是拥有事故发生前30秒和事故发生后30秒的数据。在这些时间窗口期间收集的数据有时在本文被称为“用户数据”。该用户数据可以仅为4gb的数据。然而,根据车辆规格、edr规格和时间窗口要求,用户数据量可能会更高或更低。尽管本公开涉及1,400tbw和4gb的用户数据的示例性要求,但应当理解,这些数字仅是示例,并不意味着限制本文所述的概念。
52.针对成本优化的常规存储装置可以包括仅足够的存储器来捕获所需的用户数据,但是这样的装置不满足耐久性要求。另一方面,常规存储装置可以被设计为满足耐久性要求,但是此类装置将包括比捕获用户数据所需的存储器多得多的存储器,并且因此将更昂贵。因此,需要一种存储装置,其可以在成本上优化(即,相对低的存储器占用空间),但是也能够满足黑匣子edr的耐久性要求。
53.耐久性改进
54.本文描述的具体实施增加了存储装置的耐久性,而不会以增加的存储器的形式的增加额外成本。例如,虽然常规slc存储装置可以在其使用寿命中执行100k编程/擦除周期(pec),但本文描述的具体实施允许存储装置执行500k到1m pec周期。这些数字足以满足1,400tbw的耐久性要求。
55.返回参考图4a至图4c,存储单元中能够存储的位越多,性能就会越慢,但成本也就越低(因为存储器占用空间越小)。因此,多层单元架构在针对成本优化的黑匣子edr中会很有用。因此,图4c所示的tlc具体实施将比图4a所示的slc具体实施成本更低。
56.作为另一个考虑因素,编程电压越高,耐久性(可以对单元进行编程,同时可以可靠地存储和从单元读取数据的次数)就越低。无论编程操作的类型或存储器单元的类型如何,存储器单元的耐久性都与在单元的寿命期间穿过隧穿氧化物(308,图3)的电子的量成反比。换句话说,越多电子隧穿氧化物308,对存储器单元的耐久性的负面影响越大。这部分地归因于氧化物308随着连续编程操作而变得对隧穿电子的势垒较小,这导致特定控制栅极电压致使浮动栅极获取越来越多的电荷,进而影响每个状态的读取分布。换句话说,当氧
化物308变得对隧穿电子的抵抗性较低时,施加到控制栅极302的编程电压将导致图4a至图4c中所示的状态分布变宽并且最终重叠,从而致使读取错误增加。
57.因此,选择多层方案但将编程状态限制在电压谱的下端(图4a至图4c中的vth轴的左侧)上的那些编程状态将优化存储器单元,以实现(i)成本优化,这是因为使用多层单元可以实现更小的存储器占用空间,以及(ii)耐久性优化,这是因为编程单元所需的电压较低。
58.使用例如状态a和c(以及逐渐地其他状态)的两层伪tlc编程方案可以基于具有较低、中间和较高页的tlc编程方案,具有适当的更精细的编程微调和速率。然而,对于此伪tlc方案,所有数据仅被编程到两个状态(a和c或如下文所论述的其他tlc层)。由于写入时间不是限制性的,因此可以使用mlc、qlc和涉及多于两个状态(不仅仅是tlc)的任何其他编程方案,并且甚至可以使用更精细的编程步长大小来放宽以便改进耐久性。这两个状态之间的间隔距离要求也可以更宽松,因为更多的保护位可以用在受读取延迟限制较少的解码器中。
59.图5a至图5d示出了用于使用可用编程状态的子集(少于所有)来编码存储器单元的伪tlc方案。虽然在此示例中使用了tlc,但基本概念也适用于mlc、qlc和任何其他涉及两个以上状态的编程方案。图5a示出了用于tlc存储器单元的可用编程状态a-g,以及擦除状态e。在伪tlc编程方案中,tlc存储器单元可以被编程为仅表示两个状态,类似于slc编程方案。然而,在伪tlc方案中,这两个状态由tlc状态中的两个状态(例如,图5b中的状态a和b)而不是两个slc状态(图4a中的e和a)表示。例如,在伪tlc方案510-1(图5b)中编程状态a和b所需的电压低于在slc方案410(图4a)中编程状态a所需的电压,并且因此提高了耐久性。
60.由于编程状态(例如,方案500-1中的状态a和b)的接近性,使用伪tlc方案编程的存储器单元将最终导致读取错误。这被称为装置损耗,并且是由如上所述的浮动栅极和控制栅极之间的氧化层变得对隧穿电子的抵抗能力较低而导致的。因此,存储控制器124可以转换状态,使得它们彼此远离,同时仍然保持电压谱下端上的状态(更靠近图5a至图5d中的vth轴的左侧),而不是将单元标记为不可用。例如,当存储控制器确定特定单元或多个单元的损耗水平高于阈值时,存储控制器可将第二编程状态形式b转换到c,如图5c中的伪tlc方案500-2中所示。由于状态a和c之间存在更多空间,因此电压分布可以变宽而不会导致过量的错误(对于错误控制模块125来说太高而无法使用各种ecc过程来纠正的错误数量)。然而,最终,状态a和c的分布可能会导致过量的错误,因此存储控制器可能会再次转换状态,如图5d中的伪tlc方案500-3所示。
61.在一些具体实施中,参考图5b至图5d描述的编程状态转换可以基于损耗量来触发。存储控制器的损耗检测模块可以通过跟踪每个单元的编程-擦除周期(pec)的数量来检测或估计一个或多个存储器单元上的损耗。在各种pec阈值之后,编程状态可转换以便防止过量的与损耗相关的错误。附加地或另选地,损耗检测模块可以通过跟踪装置的寿命来检测或估计损耗。在各种时间或使用阈值之后(例如,在使用1年、使用2年等等之后),编程状态可转换以便防止过量的与损耗相关的错误。附加地或另选地,损耗检测模块可致使对一个或多个存储器单元执行诊断读取以用于确定错误的量或各种状态分布的宽度和/或位置的目的。基于检测到的错误的数量、分布宽度和/或分布位置,编程状态可转换以便防止过量的与损耗相关的错误。
62.在一些具体实施中,编程状态分布(也称为窗口)可以被配置为相对较窄。可通过在连续编程脉冲之间使用较小步长来使每个编程状态的电压分布变窄。步长越小,编程所需的时间越长。然而,对于edr具体实施,只要满足最小吞吐量要求,就可以折衷程序性能,以便捕获由ecu 110提供的用于存储的传感器数据和其他车辆数据,如上所述。除了或作为编程状态修改的另选方案,存储控制器还可以调整一个或多个编程微调参数以便优化耐久性。编程微调参数包括窗口大小、起始电压、步长、验证电平、字线上的读取电平等。
63.在一些具体实施中,与常规tlc方案相比,可以减小编程状态之间的距离。例如,编程状态之间的距离可以从800mv减小到400mv,或小于400mv。图6a和图6b示出了用于仅使用可用编程状态的子集对存储器单元进行编码的伪tlc方案600,在该方案中编程状态之间的距离减小。例如,在伪tlc方案600-1中(图6a),状态a和c比方案500-2中的对应状态更靠近(图5c)。同样,在伪tlc方案600-2中(图6b),状态b和d比方案500-3中的对应状态更靠近(图5d)。
64.图7a至图7c示出了由于与编程状态相对应的电压阈值分布变宽而导致的编程状态转换。在第一时间(t1),使用如图7a所示的伪tlc方案500-1,编程状态为a(011)和b(001),如上文参考图5b所述。在已经发生一定数量的编程操作之后,电压分布在随后的时间(t2)变宽,如图7b所示。电压分布由于损耗而变宽,并且分布之间的重叠可能会随着它的增长而越来越多地导致错误。当重叠达到与过量的错误相关联的阈值时,存储控制器将第二编程状态(b)转换到右侧,如图7c所示的伪tlc方案500-2(对应于图5c)中所示。转换的第二编程状态(现在为c)不再与编程状态a重叠,从而使与损耗相关的错误最小化。即使编程状态c需要用于待编程的浮动栅极的更多电压,所述电压仍可小于图4a所示的slc方案410中的分布a,从而通过允许较低的编程电压来提高耐久性。
65.上述伪tlc方案使用tlc编程分布(七个可能的编程状态)实现了slc方案(每单元仅采用两个状态)。因此,当使用状态a(011)和c(000)将数据x写入特定单元时,存储控制器将致使分别将以下内容编程到该单元的下部、中部和上部页:0x x。这对应于状态a和c的011和000值(其中待写入的数据为1或0,代表x)。
66.除了或作为上述伪mlc/tlc/qlc两层编程特征的另选方案,可以通过增加在编程操作中与码字一起使用的奇偶校验位的数量来提高存储器单元耐久性。由于错误控制模块125能够更有效地使用ecc过程来恢复错误,所以增加的奇偶性意味着可以吸收更多的错误。在一些实施方案中,增加奇偶校验位的数量,使得码率(表示数据的码字中的位数与包括ecc奇偶校验位的码字中的总位数之比)为0.6或更小。额外的奇偶校验位会导致编程速度较慢,但在edr应用中,编程性能可能会因为上述原因而被折衷以便优化耐久性。由于通过添加奇偶校验位而导致错误复原能力增加,因此状态(例如,图5c和图6a中的状态a和c)之间的间隔距离可更宽松,因为可允许两个状态之间的较高重叠面积。出于相同原因(增加的复原能力允许状态之间的更多重叠),可增加状态转换之间的时间量。通过允许编程状态之间的距离更短以及转换之间的时间更长,编程操作可以在更长的时间量内使用更低的电压,从而进一步提高耐久性。
67.还可以通过增加存储器占用空间来实现额外的奇偶校验位。可以通过增加物理容量(例如,物理存在的所有存储器单元)与导出容量(例如,仅可寻址存储器单元)的比率来增加存储器的大小。物理存在但不可寻址的存储器单元可用于纠错操作(例如,奇偶校验
位)。通过将物理容量与导出容量的比率提高到50:1(0.02的导出容量与物理容量之比),可用于纠错操作的物理存储单元的数量会增加,从而能够增加如上所述的错误复原能力。例如,可以选择32gb或64gb存储装置,而不是在512gb存储装置(以成本为代价来优化耐久性)和16gb存储装置(以耐久性为代价来优化成本)之间进行选择,从而与512gb存储装置相比维持相对低的存储器占用空间(并且因此,低成本),但同时,将可用的存储量加倍或四倍于存储4gb用户数据所需的量(称为“过度供应”)。过度供应越大,可用于奇偶校验位的存储空间就越多。在一些实施方案中,物理容量与导出容量的比率可能低至2:1(0.50的导出容量与物理容量之比)。
68.除了或作为上述伪mlc/tlc/qlc两层编程特征的另选方案,增加码字的长度(例如,卷积低密度奇偶校验(cldpc)码字)也提高了耐久性。能够以不同的码率实现长码字。例如,对于4.5kb的码字长度,可以将码长设置为4kb,具有512字节的奇偶校验,从而得到0.9的码率。另选地,可以将码长设置为2.25kb,具有2.25kb的奇偶校验,从而得到0.5的码率。增加码字的长度意味着增加读取时间,因为需要解码整个码字以便读取所述码字内的数据。然而,由于上文所述的原因可能会牺牲edr具体实施中的读取性能,因此与较长码字相关联的更好的校正能力(并且因此,更高的耐久性)可能会胜过降低的读取性能。例如,在事故之后,可以在实验室中以降低的速度从黑匣子edr读取数据。读取数据可能花费的额外时间(数小时而不是数分钟)可能不是edr设计中的主要因素,因为数据仅需要读取一次,并且数据集是有限的(例如,事故前后30秒)。cldpc的使用在美国专利申请第15/817,442号中有所描述,该申请通过引用整体并入本文。
69.通过实现上述关于增加的物理容量与导出容量之比、额外的奇偶校验位和/或增加的码字长度的特征,可容许增长的物理坏块的量多至并超过所有物理块(或所有可寻址块)的5%,以及多至所有物理块(或所有可寻址块)的95%。
70.除了或作为上述伪mlc/tlc/qlc两层编程特征的另选方案,可以使用其他耐久性增强技术来提高耐久性。
71.例如,存储控制器可以使用可调ecc(tecc)技术来增强耐久性。由于不是所有数据块都具有相同错误率,因此存储控制器可以使用更多的奇偶校验来对具有较多错误的单元进行编程,并且使用更少的奇偶校验对具有较少错误的单元进行编程,这节省了存储容量。可用于编程的额外存储容量提高了耐久性,因为编程操作可能分布在可用的存储器单元上。例如,代替对每个存储器单元使用50%的奇偶校验位,存储控制器可以对仅1%的单元使用50%的奇偶校验,对20%的单元使用40%的奇偶校验,以此类推。
72.又如,存储控制器可以使用耐久性编码和/或成形,其添加了更多奇偶校验位以便减少被编程的单元的数量,这减少了损耗,并且由此提高了耐久性。
73.又如,存储控制器(例如,编码器126)可以使用一个或多个压缩过程来压缩待编程的数据。这使得更少的数据写入,从而提高了耐久性。
74.又如,存储控制器可以使用部分良好块(pgb)技术来提高耐久性。例如,如果块不是完全不可用(例如,字线的子集正在导致错误),则存储控制器可以继续使用仍然可用的块的部分(例如,不导致错误的字线),而不是停止使用整个块。这使得较少的块退役,从而提高了耐久性。
75.又如,存储控制器可以使用延长的读取时间和/或多次读取操作来降低噪声。存储
控制器可以读取软信息,这使ecc过程能够纠正更多错误,从而提高了耐久性。
76.又如,存储控制器可以使用直接前瞻(dla)技术,该技术涉及使用下一个字线来减少交叉耦合。这延长了读取时间,但是由于上述原因,提高的耐久性胜过降低的读取性能。
77.又如,存储控制器可以使用联合ecc和raid(jlr)技术,其改进了大尾高ecc事件。假设没有关键故障,但是错误的数量很高,jlr可以通过使用用于关键故障的额外奇偶校验来改进ecc技术。由于存储控制器可以使用raid中的奇偶校验以使状态更靠近,这减少了损耗并由此提高了耐久性。
78.图8描绘了使用伪mlc/tlc/qlc两层编程方案对存储器单元进行编程的方法800的流程图。方法800通常由存储控制器124或者存储装置120或存储系统的管理模块121执行,但是另选地可以由存储装置被嵌入的计算机系统(例如,主机110)执行。在一些具体实施中,方法800中的各种操作可被重新排序或省略。
79.存储控制器接收(802)待写入的数据(例如,如上所述的车辆传感器数据),并确定(804)该多个存储器单元中的一个或多个存储器单元作为该数据待写入的目的地,其中该一个或多个存储器单元被配置为使用至少三个编程状态(例如,如上所述的mlc、tlc或qlc编程状态)来编程。存储控制器确定(806)该一个或多个存储器单元的损耗水平(例如,使用上述损耗水平检测或估计技术中的任一种)。存储控制器基于该一个或多个存储器单元的损耗水平,针对该一个或多个存储器单元中的每个存储器单元,选择(808)至少三个编程状态的第一编程状态和第二编程状态(例如,tlc状态a和b,图7a)。在一些具体实施中,存储控制器基于所确定的与存储器单元和/或特定编程状态相关联的损耗水平(和/或其他错误度量)转换(810)先前选择的编程状态编程(例如,从状态b到状态c,图7c)。在选择编程状态时,存储控制器所选择的编程状态对目标单元进行编程(812)。
80.由于较高数量的奇偶校验位而与低编码率(例如,50%)组合的上述伪mlc/tlc/qlc两层编程方案的具体实施提供了对于32gb或64gb nand存储装置的500,000个周期和更大数量级的高耐久性。这些概念可用于任何具有类似低读取/写入速率和高耐久性要求的应用,诸如iot装置。
81.另外,应当指出的是,上文所述的具体实施不需要常规的损耗均衡保护,因为写入总是开启的,连续地覆盖存储装置的存储器地址空间;因此,闪存管理固件可能要简单得多。这样,可以显著地减少写入放大(例如,因为不需要用于数据寿命管理操作诸如垃圾收集的压缩)。还应当指出的是,使用不同的mlc/tlc/qlc状态代替擦除(e)状态在不过度擦除单元方面也是有益的。过度擦除的单元变成可能导致完全装置故障的离群值;使用如本文提出的较高编程状态防止了此过度擦除故障。
82.应当理解,尽管本文可使用术语“第一”、“第二”等来描述各种元件,但这些元件不应受到这些术语的限制。除了短语“第一读取条件”和“第二读取条件”之外,术语“第一”、“第二”等仅用于将一个元件与另一个元件区分开来。例如,第一触点可被称为第二触点,并且类似地,第二触点可被称为第一触点,而不改变描述的含义,只要将“第一触点”的所有出现一致地重命名并且将“第二触点”的所有出现一致地重命名。第一触点和第二触点都是触点,但它们不是同一触点。
83.本文所用的术语仅出于描述特定实施方案的目的,而非旨在限制权利要求。如在实施方案和所附权利要求的描述中所用,除非上下文另有明确指示,否则单数形式“一”、“一个”和“所述”也旨在包括复数形式。还应当理解,本文使用的术语“和/或”是指且包括一个或多个相关的所列项目的任何和所有可能的组合。还应当理解,当用在本说明书中时,术语“包括”指定所述特征、整数、步骤、操作、元件和/或部件存在,但不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件和/或它们的组。
84.如本文所用,术语“如果”可被解释为意味着“当陈述先决条件为真时”或“在陈述先决条件为真时”或“响应于确定陈述先决条件为真”或“根据确定陈述先决条件为真”或“响应于检测陈述先决条件为真”,这取决于上下文。类似地,短语“如果确定[陈述先决条件为真]”或“如果[陈述先决条件为真]”或“当[陈述先决条件为真]时”可被解释为意味着“在陈述先决条件为真确定时”或“响应于确定陈述先决条件为真”或“根据确定陈述先决条件为真”或“在检测陈述先决条件为真时”或“响应于检测陈述先决条件为真”,这取决于上下文。
[0085]
出于解释的目的,已参考特定实施方案描述了前述描述。然而,以上例示性论述并非旨在为穷举性的或者将发明限制于所公开的精确形式。鉴于以上教导,许多修改和变型是可能的。选择和描述这些实施方案是为了最好地解释本发明的原理及其实际应用,从而使本领域的其他技术人员能够最好地利用本发明和具有适合于所构想的特定用途的各种修改的各种实施方案。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1