一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于存储模式控制的系统、方法和设备与流程

2022-02-24 20:32:18 来源:中国专利 TAG:


1.本公开的实施例大体上涉及存储器子系统,且更具体来说,涉及存储器子系统存储器存储模式控制。


背景技术:

2.存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置及易失性存储器装置。一般来说,主机系统可利用存储器子系统在存储器装置处存储数据及从所述存储器装置检索数据。


技术实现要素:

3.根据本公开的一项实施例,提供一种用于存储模式控制的系统。所述系统包括:存储器装置,其包括存储器单元;及处理装置,其耦合到所述存储器装置。所述处理装置经配置以执行操作,所述操作包括:将数据存储在单电平单元(slc)模式中的所述存储器单元中;断言指示写入到所述slc模式中的所述存储器单元的所述数据将保持以所述slc模式存储的旗标;及取消断言所述旗标,从而指示所述数据可折叠到非slc模式中的存储器单元中。
4.根据本公开的另一实施例,提供一种用于存储模式控制的方法。所述方法包括:防止将写入到单电平单元(slc)模式中的存储器装置的存储器单元的操作系统或供应商提供的数据存储在非单电平单元(非slc)模式中的存储器单元中;及响应于所述存储器装置的特定数量的功率循环的执行,允许在所述特定数量的功率循环的执行之后的下一个功率循环将写入到所述slc模式中的所述存储器单元的所述操作系统或供应商提供的数据存储在所述非slc模式中的存储器单元中。
5.根据本公开的另一实施例,提供一种用于存储模式控制的设备。所述设备包括:存储器装置和耦合到所述存储器装置的处理装置。所述存储器装置包括:第一存储器单元阵列,其用于以单电平单元(slc)模式写入数据;及第二存储器单元阵列,其用于以非slc模式写入数据。所述处理装置经配置以执行操作,所述操作包括:断言指示将数据存储到所述第一阵列的第一旗标;断言指示将存储到所述第一阵列的所述数据维持在所述第一阵列中的第二旗标;及响应于接收到指示而取消断言所述第二旗标。
附图说明
6.将从下面给出的详细描述及从本公开的各种实施例的附图中更充分地理解本公开。
7.图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
8.图2a说明根据本公开的一些实施例的以slc模式和tlc模式存储的数据的部分的实例。
9.图2b说明根据本公开的一些实施例的与废弃项目收集相关联的数据的部分的实
例。
10.图3a说明根据本公开的一些实施例的对应于对存储器单元类型控制的存储器子系统操作的流程图。
11.图3b说明根据本公开的一些实施例的对应于存储器子系统存储器单元类型控制的流程图。
12.图4是根据本公开的一些实施例的对应于用于执行存储器子系统操作以控制存储器单元类型的方法的流程图。
13.图5是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
14.本公开的方面涉及与存储器子系统相关联的存储器存储模式控制,具体来说涉及包含存储模式组件的存储器子系统。存储器子系统可为存储装置、存储器模块或存储装置与存储器模块的混合。存储器子系统的实例是存储系统,例如固态驱动器(sdd)。下文结合图1描述存储装置及存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(例如存储数据的“存储器装置”)的存储器子系统。主机系统可提供将存储在存储器子系统处的数据且可请求从存储器子系统检索数据。
15.ssd是一种使用集成电路组合件来持久存储数据(通常使用快闪存储器)的存储器子系统。ssd可包含具有一或多个存储器单元阵列的存储器装置。ssd的性能、耐久性和/或保持性可与ssd所采用的存储器单元的(若干)类型有关。通常,随着每个单元存储的位的数量增加,存储器单元对温度波动的保持敏感性(在指定时间长度内维持经存储数据完整性的能力)趋于增加。保持失败可导致错误,并可引起ssd所执行的事件失败或不正确发生。在ssd后制造的运输期间,温度波动可能会发生很长时间。作为实例,与以非slc(例如,多(mlc)、三(tlc)或四(qlc)、五(plc)电平单元模式)存储数据的存储器单元相比,以单电平单元(slc)模式存储数据的存储器单元可更不易归因于高温波动而受到损坏。
16.通过将数据存储限制在slc模式中的存储器单元,可有利地限制较高温度波动的负面影响。此外,将数据的存储限制为slc模式可在系统的第一次或初始启动期间为用户提供更有利的体验。例如,可更快地存取和写入slc模式中的存储器单元,且从而提供改进的初始用户体验。通过在ssd中断言(例如,设置)指示以slc模式存储数据的旗标,可将数据的存储限制到slc模式中的存储器单元。此外,可断言指示维持slc模式中的存储器单元中的经存储数据的额外旗标。这样,可防止以slc模式存储的数据被传送到非slc模式中的存储器单元。作为实例,数据可从存储在slc模式中的存储器单元中折叠到存储在非slc模式中的存储器单元中。此折叠可发生在废弃项目收集操作或打算提供ssd中的数据的更高效存储的其它操作期间。
17.本公开的方面通过在制造过程期间和在终端用户启动ssd之前维持slc模式中的存储器单元中的数据存储来解决上述和其它缺陷。这样,可最小化由例如高温的环境因素造成的错误。此外,归因于数据仍然以slc模式存储,最终用户可体验更快和更高效的启动。这是归因于以slc模式存储的数据比以非slc模式存储的数据更快地被存取。本公开的优点包含最小化对存储在ssd中的数据的损坏,并为用户提供更快的初始启动。本文描述的实施例包含驻留在存储器子系统上(例如,在存储器子系统控制器上)的存储模式组件,以使控
制存储器子系统的存储模式成为可能。
18.图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如存储器装置140)、一或多个非易失性存储器装置(例如存储器装置130)或其组合。
19.存储器子系统110可为存储装置、存储器模块或存储装置与存储器模块的混合。存储器模块的实例包含双列直插式存储器模块(dimm)、小外形dimm(so-dimm)和各种类型的非易失性双列直插式存储器模块(nvdimm)。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储(ufs)驱动器、安全数字(sd)卡及硬盘驱动器(hdd)。
20.计算系统100可为例如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如飞机、无人机、火车、汽车或其它运输工具)、具备物联网(iot)功能的装置、嵌入式计算机(例如,包含于运载工具、工业设备或联网商用装置中的嵌入式计算机)或包含存储器及处理装置的此计算装置的计算装置。
21.计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中使用,“耦合到”或“与

耦合”一般指代组件之间的连接,其可为间接通信连接或直接通信连接(例如,不具有中介组件),无论是有线还是无线,包含例如电、光学、磁性等的连接。
22.主机系统120可包含处理器芯片组及由处理器芯片组执行的软件堆叠。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如nvdimm控制器)及存储协议控制器(例如pcie控制器、sata控制器)。主机系统120使用存储器子系统110例如将数据写入到存储器子系统110及从存储器子系统110读取数据。
23.主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件高速互连(pcie)接口、通用串行总线(usb)接口、光纤通道、串行附加scsi(sas)、双倍数据速率(ddr)存储器总线、小型计算机系统接口(scsi)、双列直插式存储器模块(dimm)接口(例如,支持双倍数据速率(ddr)的dimm套接口)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过pcie接口与主机系统120耦合时,主机系统120可进一步利用nvm高速(nvme)协议存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据及其它信号的接口。图1说明作为实例的存储器子系统110。通常,主机系统120可经由相同的通信连接、多个单独的通信连接和/或通信连接的组合来存取多个存储器子系统。
24.存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的各种组合。易失性存储器装置(例如存储器装置140)可为但不限于随机存取存储器(ram),例如动态随机存取存储器(dram)及同步动态随机存取存储器(sdram)。
25.非易失性存储器装置的一些实例(例如,存储器装置130)包含与非(nand)型快闪存储器及原位写入存储器,例如三维交叉点(“3d交叉点”)存储器装置,其是非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可基于体电阻变化结合可堆叠交叉网格数据存取阵列来执行位存储。另外,与许多基于快闪的存储器形成对比,交叉点非易失性
存储器可执行原位写入操作,其中可在先前未擦除非易失性存储器单元的情况下对所述非易失性存储器单元进行编程。nand型快闪存储器包含例如二维nand(2dnand)及三维nand(3d nand)。
26.尽管描述了例如非易失性存储器单元的3d交叉点阵列和nand型存储器(例如2dnand、3d nand)的非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器或存储装置,例如只读存储器(rom)、相变存储器(pcm)、自选择存储器、其它硫属化物基存储器、铁电晶体管随机存取存储器(fetram)、铁电随机存取存储器(feram)、磁随机存取存储器(mram)、自旋力矩(stt)-mram、导电桥接ram(cbram)、电阻式随机存取存储器(rram)、氧化物基rram(oxram)、或非(nor)快闪存储器及电可擦除可编程只读存储器(eeprom)。
27.非易失性双列直插存储器模块(nvdimm)是一种具有用于正常操作的易失性存储器和用于在电源故障时使用板上备用电源存储易失性存储器的内容的非易失性存储器的随机存取存储器。相对于存储器单元,主机可被构造为响应于由主机执行的指令(例如,应用程序、程序等)控制进出存储器单元的数据的一或多个处理器。如果发生电源故障,那么nvdimm可将所有数据从其易失性存储器(例如,dram或dram组)复制到其持久快闪存储器,且可在电源恢复时将所有数据复制回到易失性存储器。将所有dram数据的状态传送到持久快闪存储器上的持久数据可在一个功率循环内执行。虽然上述实例涉及持久快闪存储器,但实施例不限于此。作为实例,一些实施例可包含是非快闪持久存储器的持久存储器。nvdimm具有它自身的电池备用电源或存取专用电源,以允许nvdimm完成保存。
28.nvdimm可包含多种不同类型(n、p、x、f)。nvdimm-n是双列直插式存储器模块(dimm),其通常在相同模块上具有快闪存储器和传统的动态随机存取存储器(dram)。主机处理单元可直接存取传统的dram。nvdimm-p可包含持久的主存储器,且可与dram dimm共享ddr4或ddr5 dimm互连。nvdimm-x可包含ddr4 dimm,其在相同模块上具有nand快闪存储器和易失性dram。nvdimm-f可包含具有快闪存储器的nvdimm。
29.存储器装置130中的每一者可包含一或多个存储器单元阵列。例如单电平单元(slc)的一种类型的存储器单元可每单元存储一位。例如多电平单元(mlc)、三电平单元(tlc)及四电平单元(qlc)的其它类型的存储器单元可每单元存储多位。在一些实施例中,存储器装置130中的每一者可包含一或多个存储器单元阵列,例如slc、mlc、tlc、qlc或此类的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的slc部分及mlc部分、tlc部分或qlc部分。在一些实施例中,存储器装置130中的每一者可包含是动态slc的一或多个存储器单元阵列,这意味着存储器单元可在slc模式或非slc模式(例如,mlc、tlc、qlc)中的任一个使用,且可从一个转换到另一个。
30.如上文讨论,存储数据的存储模式可影响数据的错误率。作为实例,当暴露于更高的温度或其它环境因素时,以非slc模式存储数据的存储器单元可比以slc模式存储数据的单元更容易出错。为此,可有利地以slc模式存储数据以承受更高的温度,然后当温度波动较小或更有可能处于较低温度时,返回使用以非slc模式存储数据的单元。此外,存储器装置130的存储器单元可分组为页,所述页可指代用于存储数据的存储器装置的逻辑单位。对于一些类型的存储器(例如nand),页可经分组以形成块,如下文将在图2中进一步描述。
31.存储器子系统控制器115(或为了简化起见,控制器115)可与存储器装置130通信
以执行操作,所述操作例如在存储器装置130处读取数据、写入数据或擦除数据及其它此类操作。存储器子系统控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有用于执行本文中描述的操作的专用(即,硬编码)逻辑的数字电路系统。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或其它合适的处理器。
32.存储器子系统控制器115可包含经配置以执行存储在本地存储器119中的指令的处理器117(处理装置)。在所说明实例中,存储器子系统控制器115的本地存储器119包含经配置以存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流程及例程(包含处置存储器子系统110与主机系统120之间的通信)的指令的嵌入式存储器。
33.在一些实施例中,本地存储器119可包含存储存储器指针、经提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(rom)。虽然图1中的实例存储器子系统110已被说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,而是可依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
34.一般来说,存储器子系统控制器115可从主机系统120接收命令或操作且可将所述命令或操作转换成指令或适当命令,以实现对存储器装置130和/或存储器装置140的所需存取。存储器子系统控制器115可负责其它操作,例如损耗均衡操作、废弃项目收集操作、错误检测及错误校正码(ecc)操作、加密操作、高速缓存操作,及与存储器装置130相关联的逻辑地址(例如逻辑块地址(lba)、命名空间)与物理地址(例如物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收的命令转换成命令指令以存取存储器装置130和/或存储器装置140,以及将与存储器装置130和/或存储器装置140相关联的响应转换成用于主机系统120的信息。
35.存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如dram)及地址电路系统(例如行解码器及列解码器),其可从存储器子系统控制器115接收地址且解码所述地址以存取存储器装置130和/或存储器装置140。
36.在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其是与用于相同存储器装置封装内的媒体管理的本地控制器(例如,本地控制器135)组合的原始存储器装置。受管理存储器装置的实例是受管理nand(mnand)装置。
37.存储器子系统110包含存储模式组件113,其可经配置以编排和/或执行操作以控制数据存储在存储器单元中的模式,并在存储器子系统110的各种组件、数据路径和/或接口上传达存储模式数据。尽管未在图1中展示以免混淆附图,但存储模式组件113可包含各种电路系统以促进存储器单元中的数据存储的控制。例如,存储模式组件113可包含呈asic、fpga、状态机和/或其它逻辑电路系统或软件和/或固件形式的专用电路系统,其可允许存储模式组件113编排和/或执行数据存储操作并与存储器子系统110的各种组件、数据
路径和/或接口通信。
38.存储模式组件113可通信地耦合到存储器装置130,且可存取存储器装置130、存储器装置140、存储器子系统110的内部数据路径和/或存储器子系统110的接口,以执行本文描述的操作和/或将存储模式数据传送到存储器子系统110的额外元件。在一些实施例中,由存储模式组件113执行的操作可在存储器子系统110和/或存储器子系统控制器115内的数据传送的初始化或预初始化阶段期间执行。因此,在一些实施例中,存储模式组件113可在数据传送之前执行本文描述的操作,以便确定数据存储的模式,这可影响以所述特定模式存储的单元中的数据的后续数据传送速度。
39.在一些实施例中,存储模式组件113可包含响应于确定仍在执行将存储器装置130/140集成到较大计算系统中的制造过程而断言(例如,设置)的旗标。经断言旗标可为指示将数据存储在slc模式中的存储器单元中的位或若干位。此外,可断言存储模式组件113的额外旗标以指示将数据维持在slc模式中的存储器单元中。如此,可防止或允许数据的初始存储和数据从一种存储模式到另一种存储模式的传送,以便控制数据存储的模式。
40.图1中的存储器装置130、140可包含根据本公开的若干实施例的若干物理块。例如,存储器装置130、140可包含具有若干物理块的nand快闪存储器阵列。但是,本公开的实施例不限于特定类型的存储器或存储器阵列。例如,存储器阵列可为dram阵列、rram阵列或pcram阵列以及其它类型的存储器阵列。此外,存储器阵列可与相关联於其操作的各种外围电路系统一起定位在特定半导体裸片上。
41.存储器阵列的存储器单元可为可操作为slc和/或xlc(例如,可指代可在大于slc的电平上操作的单元的额外电平单元)的混合模式单元。存储器阵列中的物理块的数量可为128个块、512个块或1,024个块,但实施例不限于存储器阵列中的128的特定倍数个或任何特定数量个物理块。此外,存储器的不同部分可用作动态slc高速缓存以用于废弃项目收集目的。例如,随着对存储器的需求增加和/或减少,可动态地增加和/或减少存储器的不同部分的大小,且废弃项目收集降低这些需求。
42.存储器阵列的每个物理块可含有耦合到存取线(例如,字线)的存储器单元的若干物理行。每个物理块中的行(例如,字线)的数量可为32,但是实施例不限于每个物理块的特定行数。此外,存储器单元可耦合到感测线(例如,数据线和/或数字线)。
43.每一行可包含若干存储器单元页(例如,物理页)。物理页指代编程和/或感测的单位(例如,作为功能组一起编程和/或感测的若干存储器单元)。每一行可包括存储器单元的一个物理页。但是,本公开的实施例不限于此。例如,在若干实施例中,每一行可包括存储器单元的多个物理页(例如,耦合到偶数号位线的存储器单元的一或多个偶数页,和耦合到奇数号位线的存储器单元的一或多个奇数页)。另外,对于包含xlc的实施例,存储器单元的物理页可存储多页(例如,逻辑页)数据,例如数据的上页和数据的下页,其中物理页中的每个单元存储朝向数据的上页的一或多位和朝向数据的下页的一或多位。
44.图2a和2b说明在执行废弃项目收集的折叠操作之前(图2a 203)和之后(图2b 207)的相应图203/207。列228包含对应于存储器单元的块232的物理地址(pa)。列234-1指示存储“折叠”数据(例如,改写到mlc模式中的块的先前以slc模式写入的主机数据的部分)的块。列234-2指示存储尚未折叠的主机数据的块。在图2a和2b中展示的实例中,块是tlc块,使得每个块可以slc模式存储单个数据单位或以tlc模式存储3个数据单位。在各种实施
例中,主机数据以slc模式写入,直到驱动器达到饱和阈值电平,此时发生折叠和/或数据以xlc模式(例如,在此实例中是tlc模式)写入。折叠可与损耗均衡和/或废弃项目收集操作相关联。
45.在一些实施例中,可执行一或多个块上的损耗均衡以控制此类存储器装置的损耗率。损耗均衡可通过在整个存储器阵列和/或存储器装置上更均匀地展开对特定块组执行的处理循环(例如,编程和/或擦除循环)来减少此类循环的数量。损耗均衡可包含静态损耗均衡和/或动态损耗均衡,以最小化移动以回收块的有效块的数量。例如,静态损耗均衡可包含将静态数据写入至具有高编程/擦除计数的块以延长所述块的寿命。在一些实施例中,损耗均衡可包含废弃项目收集操作。
46.废弃项目收集可包含回收(例如,擦除和使其可用于编程)(若干)存储器装置中的块当中具有最无效页的块。在一些实施例中,废弃项目收集可包含回收具有超过阈值量(例如,数量)的无效页的块。但是,如果存在足够的空闲块用于编程操作,那么可不发生废弃项目收集操作。废弃项目收集通常可在后台执行(例如,在存储器的空闲时间期间);但是,在一些实施例中,废弃项目收集可在前台执行,例如响应于确定空闲块的数量已经减少到低于阈值空闲块计数。
47.在一些实施例中,可映射(若干)存储器装置中的存储器块。例如,在损耗均衡和/或废弃项目收集操作期间发现的坏块可映射到仍然可接受有效数据的块。此外,响应于写入和/或擦除块,可递增与每个块相关联的计数器。
48.如图2a和2b中说明,每个pa 228可对应于驱动器上的块。在此情况下,废弃项目收集和主机数据两者可写入到相同块。在此实例中,在slc模式下,可写入1个数据单位。在tlc模式下,可写入三(3)个数据单位。虽然结合图2a到2b描述的实例展示tlc模式中的一些单元,但实例不限于此。例如,额外实例可使用qlc模式或mlc模式中的单元,尽管此处未展示。数据的废弃项目收集组件可写入到由234-1表示的块(其在图2a中是空的,归因于其表示在废弃项目收集之前),且数据的主机部分可写入到由234-2表示的块。响应于以slc模式写入主机数据,可将一(1)个主机数据单位写入到每个pa。响应于以tlc模式写入数据,可将三(3)个数据单位写入到每个pa。在图201-1中,主机数据以slc模式写入pa 232-1到232-9中。主机数据以tlc模式写入pa 232-10和232-11中。在此实例中,在此时,可完全使用所有的块。为了写入额外主机数据,可对块执行废弃项目收集。写入到块的废弃项目收集数据的数量在列234-3中表示。
49.例如,图2a中的存储器201-1和图2b中的201-2可表示存储器阵列的部分,例如先前结合图1描述的存储器装置130或140的阵列。
50.如在图2a中展示,存储器201-1是数据的第一填充(例如,存储)的说明。主机可将第一数据单位“1”存储在存储器块的列234-2的第一块中。第一数据单位“1”可为第一个存储在存储器400-1中的数据单位。第一数据单位“1”可与“1”的第一物理地址(“pa”)232-1相关联。第一数据单位“1”可以slc模式存储,且因此将不使用被称为“折叠”的列234-1,因为没有要折叠的数据(其为说明性目的经包含以与下文与图2b中的存储器201-2相关联的描述相关,并且在存储器201-1中经展示以重申在来自主机的数据的初始存储中没有发生折叠)。为了清楚起见,相同pa中的数据的“折叠”和“主机”部分位于相同块中。此外,作为实例,如果块是第一顺序填充,那么所述块可没有“折叠”数据。
51.同样地,在图2a中,第二数据单位“2”可由主机存储在存储器块的列234-2的与pa 232-2(例如“2”)相关联的第二块中。第二数据单位“2”可按照顺序在第二个且在第一数据单位被存储之后存储。第三到第九数据单位“3”到“9”可存储在slc模式中的存储器块的列234-2的第三到第九块(与pa 232-3(例如“3”)到pa 232-9(例如“9”)相关联)中。第三到第九数据单位可按照从第三到第九的递增顺序且在第一和第二数据单位之后存储。
52.在一些实施例中,使用动态slc高速缓存方法可包含最初将主机数据以slc模式写入到具有xlc模式能力的存储器块,直到可用的slc模式块用完为止。这可提供更快的数据存取,直到以xlc模式存储数据以保持数据存储容量。例如,当xlc单元在slc模式下使用时,所使用的单元容量的大小范围从1/2、1/3到1/4不等(取决于xlc模式是指代多单元模式(2个数据值存储在一个单元中)、三电平单元模式(3个数据值存储在一个单元中)还是四电平模式(4个数据值存储在一个单元中))。因此,如果在已经达到可用slc存储器块的全部存储容量之前使用slc模式,那么可填充空闲存储器块。废弃项目收集可指代将以slc模式写入的主机数据移动到以xlc模式写入的数据,以创建额外的存储容量。如果没有为此执行废弃项目收集,那么可启动写入保护模式以避免故障。
53.当存储器的数据存储容量变得有限时,在动态slc高速缓存方法中,额外的主机数据可最初以xlc模式写入。例如,如图2a中说明,第十“10”、第十一“11”和第十二“12”数据单位可以xlc模式存储在与2a 232-10(例如“10”)相关联的列234-2的第十块中。例如,第十“10”数据单位可为第十块的上页数据单位,第十一“11”数据单位可为第十块的中间页数据单位,且第十二“12”数据单位可为第十块的下页数据单位。第十三“13”、第十四“14”和第十五“15”数据单位可以xlc模式存储在与pa 232-11(例如“11”)相关联的列234-2的第十一块中。例如,第十三“13”数据单位可为第十一块的上页数据单位,第十四“14”数据单位可为第十一块的中间页数据单位,且第十五“15”数据单位可为第十一块的下页数据单位。
54.虽然出于此实例的目的,如在每个块中展示般说明单个数据单位,但实施例不限于此。可在存储器块中存储任意数量的数据单位,且可使用每个填充任意数量的数据单位。例如,数据单位“1”到“15”最初存储在存储器201-1中,如图2a中说明,且数据单位“1”到“30”存储在存储器201-2中,如图2b中说明,因为主机通过废弃项目收集继续存储数据单位“16”到“30”。但是,实施例不限于每个填充30个总数据单位。
55.当额外主机数据被写入到存储器块时,主机数据和已经废弃项目收集的数据可一起写入到存储器块。这可创建逻辑上非顺序的数据存储,即使主机数据是顺序传送的。归因于此动态slc高速缓存引入的数据存储碎片,可使用几个逻辑填充来消除数据的逻辑随机性。用于从存储碎片中恢复的填充数量可随着第一初始写入中引入的存储碎片而变化。根据下文描述的实施例,描述废弃项目收集,其在已经被写入的存储器块的数量和经释放以被写入的块的数量之间产生不平衡。换句话说,释放的存储器块比写入的存储器块多。为了实现此,减少用主机数据和经废弃项目收集的数据填充的块的数量。
56.如图2b中说明,可对数据(其存储在图2a的存储器201-1中)执行废弃项目收集且将废弃项目收集的结果如说明般存储在存储器201-2中。例如,存储在slc模式中的存储器201-1中的第一数据单位“1”可经废弃项目收集和折叠,如由列234-3说明,而第十六数据单位“16”和第十七数据单位“17”由主机写入到与物理地址“1”232-1相关联的存储器201-2的第一块。折叠可指代将数据单位从以slc模式存储改变为存储在xlc模式中的单元内的新位
置中。折叠列234-3用于说明在废弃项目收集期间从先前位置折叠哪些数据单位。同样地,以slc模式存储在存储器201-1中的第二数据单位“2”可经废弃项目收集并与第十八数据单位和第十九数据单位一起折叠,以按xlc模式一起写入为合并在与pa 232-2(例如,“2”)相关联的第二块中,第三数据单位“3”可与第二十数据单位和第二十一数据单位合并,

,第八数据单位可与第三十数据单位和第三十一数据单位合并。存储在与pa 232-9、232-10、232-11(例如“9”、“10”和“11”)相关联的块中的数据单位(“9”、“10”、“11”、“12”、“13”、“14”和“15”)可保持不变。在此废弃项目收集之后存储在存储器201-2中的数据可被称为第一“填充”。
57.在此实例中,存储在存储器201-2中的数据包含许多块,其中“折叠”和“主机”数据位于相同块内。例如,第1、第2、第3、第4、第5、第6、第7和第8块全部包含碎片数据(且是经历废弃项目收集的仅有的块)。在一个实例中,当这些第1到第8数据单位分别与第16到30数据单位折叠时,如图2b中说明,将以slc模式存储的数据组合以按非slc模式与额外数据单位一起存储。虽然未说明,但以slc模式存储的数据单位可与以非slc模式存储的数据单位组合或折叠,且随后以非slc模式存储为经组合或经折叠的数据单位。
58.当暴露于高温时,与以slc模式存储的数据相比,以非slc模式的数据存储更容易损坏和/或出错。为了避免高温的这些负面影响,可在特定时段期间或直到达到阈值参数为止防止数据的折叠。例如,可防止数据的折叠,直到已对数据执行阈值数量的功率循环。如此,可在防止数据折叠的同时执行将存储器装置集成到更大的计算系统中的制造过程(其可包含执行许多功率循环),并且在制造过程之后,可允许按预期折叠数据以更高效地存储数据。此外,可断言指示将数据存储和/或维持在slc模式中的单元中的旗标。响应于取消断言所述旗标,例如,在下一个功率循环上,可允许将数据折叠到非slc模式中的单元中。
59.图3a到4中的每一者说明根据本公开的一些实施例的对应于用于执行存储器子系统操作以控制存储模式的方法350、360、470的流程图。每个相应方法350、360、470可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,每个方法350、360、470由图1的存储模式组件113执行。尽管以特定序列或顺序展示,但除非另有指定,否则可修改过程的顺序。因此,所说明的实施例应仅被理解为实例,并且所说明的过程可以不同顺序执行,且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每一个实施例中都需要所有过程。其它过程流程是可能的。
60.图3a说明根据本公开的一些实施例的对应于控制存储模式的存储器子系统操作的流程图350。在操作351,可启动包含ssd的系统(例如,存储器子系统)的制造。在操作352,存储模式组件(例如,存储模式组件113)可断言旗标以防止数据折叠。作为实例,可断言旗标以防止数据从以slc模式存储数据的单元传送到以非slc模式存储数据的单元。可使用指示旗标要么被断言(例如,经设置)要么被取消断言(例如,未设置)的若干位来断言所述旗标。
61.在操作353,存储器子系统控制器可检查旗标,并且在确定断言了所述旗标时,仅将数据存储在slc模式中的单元中。数据可在整个制造过程中继续存储在slc模式中的单元中。制造过程可包含对系统和/或存储在ssd中的数据执行若干测试,并且可执行若干功率
循环来这样做。在没有断言旗标的情况下,ssd可对数据进行废弃项目收集或折叠而以非slc模式存储,但是,由于断言了所述旗标,在此情况下,ssd不会那样做。在操作354,在制造过程结束时,或当达到阈值(例如,功率循环的阈值)时,可取消断言旗标。在操作355,响应于取消断言旗标,数据可在下一个功率循环折叠到非slc模式中的单元中。
62.图3b说明根据本公开的一些实施例的对应于控制存储模式的存储器子系统操作的流程图360。在操作361,可启动使用ssd的系统(例如,存储器子系统)的制造。在操作362,可防止ssd折叠数据,直到达到阈值数量的功率循环。如此,直到达到阈值为止,数据可保持在slc模式中。只要还没达到阈值,数据就可在整个制造过程中继续存储在slc模式中的单元中。制造过程可包含对ssd中的数据执行若干测试,并且可执行若干功率循环来这样做。
63.在操作363,存储器子系统控制器可确定已经达到阈值(例如,已经执行了若干功率循环)。在操作364,响应于确定已经达到阈值,可将数据折叠到非slc模式中的单元中。
64.图4是根据本公开的一些实施例的对应于用于执行存储器子系统操作以控制存储模式的方法470的流程图。方法470可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在操作471,方法470可包含防止将写入到单电平单元(slc)模式中的存储器装置的存储器单元的数据(例如,操作系统或供应商提供的数据)存储在非单电平单元(非slc)模式中的存储器单元中。在一个实例中,供应商提供的数据可为由供应商提供的操作系统数据。在一个实例中,供应商提供的数据可为除操作系统数据以外的数据。存储模式组件可类似于图1的存储模式组件113。存储器装置可类似于图1的存储器装置130和/或存储器装置140。
65.在操作473,方法470可包含响应于存储器装置的特定数量的功率循环的执行,允许将写入到slc模式中的存储器单元的数据(例如,操作系统或供应商提供的数据)存储在非slc模式中的存储器单元中。特定数量的功率循环的执行可与用于通过集成存储器装置来制造系统的功率循环的数量相关联。特定数量的功率循环的执行可与用于制造且测试包含存储器装置的系统的功率循环的数量相关联。
66.在一些实施例中,包含存储器单元的存储器装置可为易失性存储器装置,并且不同于所述存储器装置的存储器装置可为非易失性存储器装置(或反之亦然)。例如,存储器装置可为系统存储器装置,例如dram(例如,双端口ram)存储器装置,并且不同于所述存储器装置的存储器装置可为例如nand存储器装置、三维交叉点存储器装置或其它非易失性存储器装置的存储装置。
67.方法470可进一步包含将数据写入到非slc模式中的存储器单元。方法470可进一步包含在执行所述数量的功率循环之后防止将写入到存储器单元的一部分的数据存储在非slc模式中的存储器单元中。功率循环的数量可与用于制造且测试系统和存储器装置的功率循环的数量相关联。在一些实例中,响应于存储器单元的部分的预期存取频率的指示,可防止将写入到存储器单元的所述部分的数据存储在非slc模式中的存储器单元中。在一些实例中,方法470可进一步包含响应于存储器装置的制造过程和供应商提供的修改的完成,允许将写入到slc模式中的存储器单元的数据(例如,操作系统或供应商提供的数据)存储在非slc模式中的存储器单元中。
68.图5说明计算机系统500的实例机器,可在计算机系统500内执行用于引起机器执
行本文中讨论的方法论中的任一或多者的一组指令。在一些实施例中,计算机系统500可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110),或可用以执行控制器的操作(例如,执行操作系统以执行对应于图1的存储模式组件113的操作)。在替代实施例中,机器可连接(例如联网)到lan、内联网、外联网和/或因特网中的其它机器。机器可在客户端-服务器网络环境中以服务器或客户端机器的身份操作,在对等(或分布式)网络环境中作为对等机器,或在云计算基础设施或环境中作为服务器或客户端机器。
69.机器可为个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥或能够(循序或以其它方式)执行指定由所述机器所采取的动作的一组指令的任何机器。此外,虽然说明单个机器,但是术语“机器”也应被认为包含个别地或共同地执行一组(或多组)指令以执行本文中讨论的方法论中的任一或多者的机器的任何集合。
70.实例计算机系统500包含处理装置502、主存储器504(例如,只读存储器(rom)、快闪存储器、动态随机存取存储器(dram),例如同步dram(sdram)或rambus dram(rdram)等)、静态存储器506(例如,快闪存储器、静态随机存取存储器(sram)等)及数据存储系统518,它们经由总线531彼此通信。
71.处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元或类似者。更特定来说,处理装置可为复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的一个处理器或实施指令集的组合的多个处理器。处理装置502也可为一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器或类似者。处理装置502经配置以执行用于执行本文中讨论的操作及步骤的指令526。计算机系统500可进一步包含用于通过网络511进行通信的网络接口装置508。在一些实施例中,主存储器504或系统518可为例如结合图2所描述的nvdimm。
72.数据存储系统518可包含机器可读存储媒体524(也称为计算机可读媒体),在其上存储体现本文中描述的方法论或功能中的任一或多者的一或多组指令526或软件。在由计算机系统500执行指令526期间,指令526也可完全或至少部分地驻留在主存储器504内和/或处理装置502内,主存储器504及处理装置502也构成机器可读存储媒体。机器可读存储媒体524、数据存储系统518和/或主存储器504可对应于图1的存储器子系统110。
73.在一个实施例中,指令526包含用以实施对应于存储器块分级和分配组件(例如,图1的存储模式组件113)的功能性的指令。虽然在实例实施例中将机器可读存储媒体524展示为单个媒体,但是术语“机器可读存储媒体”应被认为包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”也应被认为包含能够存储或编码一组指令以供机器执行并且引起机器执行本公开的方法论中的任一或多者的任何媒体。因此,术语“机器可读存储媒体”应被认为包含但不限于固态存储器、光学媒体及磁性媒体。
74.已经根据对计算机存储器内的数据位的操作的算法及符号表示来呈现前述详细描述的某些部分。这些算法描述及表示是数据处理领域的技术人员用来向所属领域的其它技术人员最有效地传达其工作实质的方式。算法在此且通常被认为是导致预期结果的自洽操作序列。所述操作是需要对物理量进行物理操纵的操作。通常但不是必须的,这些量采取
能够被存储、组合、比较及以其它方式操纵的电或磁信号的形式。已被证明是方便的是,有时出于习惯用法的原因,原则上将这些信号称为位、值、元素、符号、字符、项、数字或类似者。
75.但是,应记住,所有这些及类似术语都应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可涉及计算机系统或类似电子计算装置的动作及过程,其操纵表示为计算机系统的寄存器及存储器内的物理(电子)量的数据并将所述数据变换成类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据。
76.本公开还涉及用于执行本文中的操作的设备。此设备可出于预期目的经专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的磁盘(包含固态驱动器(ssd)、硬盘驱动器(hdd)、软盘、光盘、cd-rom及磁光盘)、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁或光卡或适于存储电子指令的各自耦合到计算机系统总线的任何类型的媒体。
77.本文中呈现的算法及显示器并不固有地与任何特定计算机或其它设备有关。各种通用系统可与根据本文中的教示的程序一起使用,或可证明构造更专门的设备来执行方法是方便的。用于多种这些系统的结构将如下文描述中所陈述般出现。另外,本公开并不是参考任何特定编程语言进行描述。将了解,多种编程语言可用于实施本文中所描述的本公开的教示。
78.本公开可经提供作为计算机程序产品或软件,其可包含其上存储有指令的机器可读媒体,所述指令可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程。机器可读媒体包含用于存储呈可由机器(例如计算机)读取的形式的信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存储器装置等。
79.在前述说明书中,已经参考本公开的特定实例实施例描述本公开的实施例。将明显的是,在不背离所附权利要求书中所陈述的本公开的实施例的更宽广精神及范围的情况下,可对其作出各种修改。因此,本说明书和附图被视为说明性的意义而不是限制性的意义。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献