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

用于多个存储器阵列存储器空间的写入缓冲器实施方案的制作方法

2021-02-24 00:07:00 来源:中国专利 TAG:存储器 缓冲器 地说 多个 阵列


[0001]
本公开涉及存储器装置,且更具体地说,涉及用于多个存储器阵列存储器空间的写入缓冲器实施方案。


背景技术:

[0002]
存储器装置通常提供为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性及非易失性存储器。易失性存储器可能需要电力来维持数据且包含随机存取存储器(ram)、动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)等等。非易失性存储器可通过当未被供电时保持所存储的数据而提供持久性数据,且可包含nand快闪存储器、nor快闪存储器、只读存储器(rom)、电可擦除可编程rom(eeprom)、可擦除可编程rom(eprom)和电阻可变存储器,例如相变随机存取存储器(pcram)、电阻性随机存取存储器(rram)和磁阻随机存取存储器(mram)、3d xpoint
tm
存储器等等。
[0003]
存储器单元通常布置成矩阵或阵列。多个矩阵或阵列可组合到存储器装置中,且多个装置可组合以形成存储器系统的存储容量,例如固态驱动器(ssd)、通用快闪存储(ufs
tm
)装置、multimediacard(mmc)固态存储装置、嵌入式mmc装置(emmc
tm
)等。
[0004]
存储器系统可包含一或多个处理器或其它存储器控制器,用于执行逻辑函数以操作所述存储器装置或与外部系统介接。存储器矩阵或阵列可包含组织成数个物理页的数个存储器单元块。存储器系统可从与存储器操作相关联的主机接收命令,例如旨在在存储器装置和主机之间传送数据(例如,用户数据和相关联的完整性数据,例如误差数据和地址数据等)的读取或写入操作、旨在从存储器装置擦除数据的擦除操作,或执行一或多个其它存储器操作。
[0005]
利用存储器作为用于多种多样的电子应用的易失性和非易失性数据存储装置,所述电子应用包含例如个人计算机、便携式存储棒、数码相机、蜂窝电话、便携式音乐播放器(例如mp3播放器)、电影播放器和其它电子装置。存储器单元可布置成阵列,其中所述阵列在存储器装置中使用。
[0006]
许多电子装置包含数个主要组件:主机处理器(例如,中央处理单元(cpu)或其它主处理器);主存储器(例如,一或多个易失性或非易失性存储器装置,例如动态ram(dram)、静态ram(sram)、移动或低功率双倍数据速率同步dram(ddr sdram)等);以及存储装置(例如,非易失性存储器(nvm)装置,例如快闪存储器、只读存储器(rom)、ssd、mmc或其它存储卡结构或组合件,或易失性和非易失性存储器的组合,等等)。在某些实例中,电子装置可包含用户接口(例如,显示器、触摸屏、键盘、一或多个按钮等)、图形处理单元(gpu)、电力管理电路、基带处理器或者一或多个收发器电路等。


技术实现要素:

[0007]
本公开的一个方面提供一种存储器装置,其中所述存储器装置包括:存储器阵列,
其包含可编程为单层级存储器单元(slc)的存储器单元和可编程为三层级存储器单元(tlc)的存储器单元;存储器控制单元,其以操作方式耦合到所述存储器阵列且包含处理器,所述处理器配置成用slc数据和tlc数据编程所述存储器单元;以及写入缓冲器,用于缓冲写入到所述存储器阵列的数据,所述写入缓冲器包含slc数据存储器空间和tlc数据存储器空间,其中所述存储器控制单元配置成当所述tlc数据存储器空间存在溢出时将所述tlc数据存储在所述slc数据存储器空间中。
[0008]
本公开的另一方面提供一种操作存储器装置的方法,其中所述方法包括:将数据接收到所述存储器装置的写入缓冲器中,所述数据将作为单层级存储器单元(slc)数据或每存储器单元包含两个或更多个数据位的多层级存储器单元(mlc)数据写入到所述存储器装置的存储器阵列中;将所述slc数据存储在所述写入缓冲器的slc数据存储器空间中;将所述mlc数据存储在所述写入缓冲器的mlc数据存储器空间中;以及当所述mlc数据存储器空间存在溢出时,将所述mlc数据存储在所述写入缓冲器的slc数据存储器空间中。
[0009]
本公开的另一方面提供一种非暂时性计算机可读存储媒体,其中所述非暂时性计算机可读存储媒体包括配置成使存储器装置的存储器控制单元进行以下操作的指令:将数据接收到所述存储器装置的写入缓冲器中,所述数据将作为单层级存储器单元(slc)数据或三层级存储器单元(tlc)数据写入到所述存储器装置的存储器阵列中;将所述slc数据存储在所述写入缓冲器的slc数据存储器空间中;将所述tlc数据存储在所述写入缓冲器的tlc数据存储器空间中;以及当所述tlc数据存储器空间存在溢出时,将所述tlc数据存储在所述写入缓冲器的slc数据存储器空间中。
附图说明
[0010]
在不一定按比例绘制的图式中,相似标号可以在不同视图中描述类似组件。具有不同字母后缀的相似标号可表示类似组件的不同例子。图式借助于实例且非限制性地总体上说明本文件中所论述的各种实施例。
[0011]
图1示出包含主机和存储器装置的实例系统。
[0012]
图2是呈包含非易失性存储器单元的存储器装置形式的设备的框图。
[0013]
图3a是存储器单元的电压阈值分布的实例的图示。
[0014]
图3b是示出阈值电压和对应位值的实例图。
[0015]
图4是由存储器控制单元执行的存储器编程算法的编程遍次的图示。
[0016]
图5是操作存储器装置的方法的流程图。
[0017]
图6是写入缓冲器的实例的框图。
[0018]
图7是写入缓冲器的另一实例的框图。
[0019]
图8是写入缓冲器的另一实例的框图。
[0020]
图9是操作存储器装置的方法的另一实例的流程图。
[0021]
图10是根据本文中所描述的一些实例的实例机器的框图。
具体实施方式
[0022]
存储器装置,具体地是nvm装置,例如nand快闪装置等,可包含多层级存储器单元的阵列。为了对多层级存储器单元编程,存储器页缓冲器或写入缓冲器存储有将写入到存
储器单元的值。此写入缓冲器可以通过存储器控制器或存储器控制单元使用从主机装置接收的数据来填充。在应该不会导致存储器单元的阈值电压超过多层级存储器单元的目标经编程数据状态的最低阈值电压的电压电平下,将第一编程脉冲应用到存储器单元的控制栅极。接着,可执行读取操作以验证所述单元被编程到的阈值电平。如果单元没有被编程到所要阈值电压,那么应用额外编程脉冲,任选地包含更高电压或更长长度的脉冲,并且重新检查阈值电压。此过程一直重复到读取操作确认存储器单元被编程到所要阈值电压为止。为了提高存储器阵列的吞吐量,从主机装置到写入缓冲器到存储器阵列的数据路径可能变得受限。
[0023]
图1示出实例系统100,其包含主机105和存储器装置110。主机105可包含主机处理器、中央处理单元或一或多个其它装置、处理器或控制器。存储器装置110可包含通用快闪存储(ufs)装置、嵌入式mmc(emmc
tm
)装置或一或多个其它存储器装置。主机105和存储器装置110可使用通信接口(i/f)115(例如,双向并行或串行通信接口)来通信。
[0024]
在实例中,存储器装置110可包含ufs装置,且通信接口115可包含串行双向接口,例如在一或多个电子装置工程设计联合协会(jedec)标准(例如,jedec标准d223d(jesd223d),通常被称为jedec ufs主机控制器接口(ufshci)3.0等)中所定义的。在另一实例中,存储器装置110可包含emmc
tm
装置,且通信接口115可包含数个并行双向数据线(例如,dat[7:0])和一或多个命令线,例如在一或多个jedec标准(例如,jedec标准d84-b51(jesd84-a51),通常被称为jedec emmc标准5.1等)中所定义的。在其它实例中,存储器装置110可包含一或多个其它存储器装置,或通信接口115可包含一或多个其它接口,这取决于主机105和存储器装置110。经识别标准只作为其中可以利用所描述的方法和结构的实例环境提供;但是此类方法和结构还可以用于除经识别标准(或任何实际或所提议标准)之外的各种环境。
[0025]
主机105和存储器装置110中的每一个可包含配置成经由通信接口115发送或接收信号的若干接收器或驱动器电路,或接口电路(例如数据控制单元、取样电路或其它中间电路),所述接口电路系统配置成处理将经由通信接口115传送的数据或以其它方式处理从通信接口115接收的数据以供主机105、存储器装置110或一或多个其它电路或装置使用。
[0026]
存储器装置110可包含存储器阵列(例如,一或多个存储器单元阵列,例如nand快闪存储器阵列,或一或多个其它存储器阵列)、存储器控制单元,以及在某些实例中,在存储器阵列和存储器控制单元之间的接口电路。在某些实例中,存储器阵列可包含数个存储器裸片,每个存储器裸片具有与存储器控制单元分离的控制逻辑。存储器控制单元可包含专用集成电路(asic)、现场可编程门阵列(fpga),或布置或编程成管理通向存储器阵列、来自存储器阵列或存储器阵列内的数据传送或操作的一或多个其它处理电路。
[0027]
图2示出根据本文中描述的一些实例的呈存储器装置200(例如,图1的存储器装置110)的形式的设备的框图,所述设备包含具有集成在相同集成电路(ic)芯片中的混合存储器单元类型的非易失性存储器单元。存储器装置200可包含含有存储器单元210和285的存储器阵列(或多个存储器阵列)201。在存储器装置200的物理结构中,存储器单元210和285可竖直地布置在存储器装置200的衬底(例如,包含存储器装置200的ic芯片的半导体衬底)上方(例如,彼此堆叠)。存储器单元210和285可包含非易失性单元。存储器单元210和285可具有不同的非易失性存储器单元类型。举例来说,存储器单元210可包含浮动栅极存储器单
元、电荷阱存储器单元,或其它类型的非易失性存储器单元。存储器单元285可包含铁电存储器单元、相变存储器单元、电阻性存储器单元、导电桥存储器单元、sram存储器单元,和自旋转移力矩磁性随机存取存储器(stt-mram)单元,或其它类型的非易失性存储器单元。
[0028]
如图2所示,存储器单元210和285可布置在块(存储器单元块)中,例如块290和291。块290和291中的每一个可包含子块。举例来说,块290可包含子块2900和290
n
,且块291可包含子块2910和291
n
。子块2900、290
n
、2910和291
n
中的每一个可包含存储器单元210和285的组合。作为实例,图2示出存储器装置200具有两个块290和291以及所述块中的每一个中的两个子块。存储器装置200可具有两个以上块以及所述块中的每一个中的两个以上子块。
[0029]
如图2所示,存储器装置200可包含存取线(其可包含字线)250和数据线(其可包含位线)270。存取线250可携载信号(例如,字线信号)wl0到wlm。数据线270可携载信号(例如,位线信号)bl0到bln。存储器装置200可使用存取线250来选择性地存取块290和291的子块2900、290
n
、2910和291
n
,且使用数据线270来选择性地与块290和291的存储器单元210交换信息(例如,数据)。
[0030]
存储器装置200可包含地址寄存器207以接收线路(例如,地址线)203上的地址信息(例如,地址信号)addr。存储器装置200可包含行存取电路系统208和列存取电路系统209,其可解码来自地址寄存器207的地址信息。基于经解码的地址信息,存储器装置200可确定块290和291的哪些子块的哪些存储器单元210将在存储器操作期间被存取。存储器装置200可执行读取操作以读取(例如,感测)存储器单元210中的信息(例如,先前存储的信息),或执行写入(例如,编程)操作以对存储器单元210中的信息进行存储(例如,编程)。存储器装置200可使用与信号bl0到bln相关联的数据线270来提供将存储在存储器单元210中的信息,或获得从存储器单元210读取(例如,感测)的信息。存储器装置200还可执行擦除操作以从块290和291的一些或全部存储器单元210擦除信息。
[0031]
存储器装置200可包含存储器控制单元218(其可包含例如状态机(例如,有限状态机)、寄存器电路和其它组件等组件),其配置成基于线路204上的控制信号控制存储器装置200的存储器操作(例如,读取、写入和擦除操作)。线路204上的控制信号的实例包含一或多个时钟信号和其它信号(例如,芯片启用信号ce#、写入启用信号we#)以指示存储器装置200可执行哪一操作(例如,读取、写入或擦除操作)。
[0032]
存储器装置200可包含感测和缓冲电路系统220,其可包含例如读出放大器和页缓冲电路(例如,数据锁存器)等组件。感测和缓冲电路系统220可响应于来自列存取电路系统209的信号bl_sel0到bl_seln。感测和缓冲电路系统220可配置成确定(例如,通过感测)从块290和291的存储器单元210读取(例如,在读取操作期间)的信息的值,且将信息的值提供到线路(例如,全局数据线)275。感测和缓冲电路系统220还可配置成使用线路275上的信号基于线路275上的信号的值(例如,电压值)确定将存储(例如,编程)在块290和291的存储器单元210中的信息的值(例如,在写入操作期间)。
[0033]
存储器装置200可包含输入/输出(i/o)电路系统217以在块290和291的存储器单元210与线路(例如,i/o线)205之间交换信息。线路205上的信号dq0到dqn可表示从块290和291的存储器单元210读取或存储在块290和291的存储器单元210中的信息。线路205可包含存储器装置200或存储器装置200可驻留于的封装上的引脚(或焊球)内的节点。存储器装置200外部的其它装置(例如,存储器控制器、存储器控制单元或处理器)可经由线路203、204
和205与存储器装置200通信。
[0034]
存储器装置200可接收包含供电电压vcc和vss的供电电压。供电电压vss可在地面电位(例如,具有大致零伏特的值)下操作。供电电压vcc可包含从例如电池或交流到直流(ac-dc)转换器电路系统的外部电源供应到存储器装置200的外部电压。
[0035]
存储器单元210中的每一个可以单独地或共同地编程到一个或数个经编程状态。例如,单层级单元(slc)可表示两个经编程状态中的一个(例如,1或0),它表示数据的一个位。然而,快闪存储器单元还可表示超过两个经编程状态中的一个,使得可以在不增加存储器单元的数目的情况下制造更高密度的存储器,因为每个单元可以表示超过一个二进制数位(例如,超过一个位)。此类单元可称为多状态存储器单元、多数位单元或多层级单元(mlc)。在某些实例中,mlc可以指可存储每单元两个数据位(例如,四个经编程状态中的一个)的存储器单元,三层级单元(tlc)可以指可存储每单元三个数据位(例如,八个经编程状态中的一个)的存储器单元,且四层级单元(qlc)可存储每单元四个数据位。在本文中,mlc在它的广泛上下文中使用,指代可存储每单元超过一个数据位(即,可表示超过两个经编程状态)的任何存储器单元。
[0036]
在另一实例中,存储器单元210中的每一个可经编程以存储表示多个位的值的信息,例如两个位的四个可能值“00”、“01”、“10”和“11”中的一个、三个位的八个可能值“000”、“001”、“010”、“011”、“100”、“101”、“110”和“111”中的一个,或另一数目的多个位的其它值中的一个。具有存储多个位的能力的单元有时称为多层级单元(或多状态单元)。
[0037]
存储器装置200可包含非易失性存储器装置,使得当电力(例如,电压vcc、vss或这两者)与存储器装置200断开连接时,存储器单元210和285可保持其上存储的信息。举例来说,存储器装置200可以是快闪存储器装置,例如nand快闪(例如,三维(3d)nand)或nor快闪存储器装置,或另一种类的存储器装置,例如可变电阻存储器装置(例如,相变存储器装置或电阻性ram(随机存取存储器)装置)。所属领域的一般技术人员可认识到,存储器装置200可包含图2中未图示的其它组件,以免使本文中所描述的实例实施例模糊不清。
[0038]
在存储器装置200中,存储器单元210可配置成存储信息(例如,用户数据)。存储器单元285可能未配置成永久性地存储信息,例如用户信息,但是在存储器单元210中存储信息(例如,用户数据)的操作(例如,写入操作)期间,它们可供存储器装置200用作临时存储器单元(例如,缓冲器),以便改进存储器装置200的操作。
[0039]
图3a示出根据本文中所描述的一些实例的图2的存储器装置200的存储器单元210和285的对应阈值电压vt0至vt7的电压阈值范围320至327的实例。存储器单元210和285中的每一个配置成存储超过一个信息位。图3a示出配置成存储三个信息位(例如,位b0、b1和b2)的存储器单元的电压阈值范围320至327的实例。图3a示出对应于三个位的八个不同组合的八个电平(电平0(l0)至电平7(l7))。电平l0可以称为擦除电平(例如,擦除状态)。电平l0至l7中的每一个具有用于大量存储器单元的电压阈值范围。在编程时可以使用其它数目的位和电平(例如,针对四个电平的两个位,或针对十六个电平的四个位)。
[0040]
阈值电压vt0至vt7中的每一个具有在对应电压阈值范围内的值(模拟电压值)。例如,阈值电压vt1可以是在电压阈值范围321内的任何值(以伏为单位的正电压值),并且阈值电压vt7可以是在电压阈值范围327内的任何值(以伏为单位的正电压值)。
[0041]
如图3a中所示,阈值电压vt0至vt7的值可从在最低值范围(对应于电平l0的电压阈
值范围320)内的值变成在最高电压阈值范围(对应于电平l7的电压阈值范围327)内的值。因此,阈值电压vt7的值在阈值电压vt0至vt7的值当中是最大的。阈值电压vt0至vt7中的每一个的值可用于表示三个信息位的组合的值(二进位值)。l0可以被视为擦除电平。
[0042]
图3b是根据本文中所描述的一些实例的示出三个位b0、b1和b2的阈值电压vt0至vt7(八个不同阈值电压)和对应值(二进制值的八个组合)的实例图(例如,表格)。例如,阈值电压vt0至vt7的值(例如,以伏为单位)可用于分别表示位b0、b1和b2的值(二进制值)000、001、010、011、100、101、110和111。作为实例,图3b示出阈值电压vt0至vt7的值以顺序次序(从较低二进位值依序到较高二进位值)指派给(例如,映射到)位b0、b1和b2的值(000至111)。但是,阈值电压vt0至vt7的值可以按任何次序(例如,非顺序次序)指派给位b0、b1和b2的值。基于图3b中的图,在写入操作期间,选定存储器单元(图2中的存储器单元210和285中的一个)的阈值电压的目标值(模拟值)是基于将存储在所述选定存储器单元中的位b0、b1和b3的值(二进位值)。例如,如果具有二进位值“100”的三个位(b0、b1和b2)将存储在选定存储器中,那么存储器装置100可使所述选定存储器单元的阈值电压变成(例如,将其编程为)阈值电压vt4的值(基于图3b中的图,“100”=vt4)。
[0043]
返回到图2,存储器控制单元218可加载要在感测和缓冲电路系统220中编程的数据页。由存储器控制单元218的处理器(例如,微处理器)执行的编程算法可开始于编程将在擦除循环中写入到l0的存储器单元。存储器单元可一次写入一个存储器页或一次写入多个存储器页。连续编程遍次可用于用数据编程存储器单元。第一遍次可将所有要编程的位编程到l1(或vt1)。所有l1位的编程或放置可以在移动到l2位上之前验证。对于其中到vt1的编程可以不验证的存储器单元,所述存储器控制器可尝试在这些存储器单元中放置增加的vt1。vt1的这一变化加上存储器单元的变化可产生图3a中所示的vt1的阈值电压范围。接着,阈值电压在单元中的编程或放置前进到放置l2至l7阈值电平来完成存储器单元的编程。
[0044]
图4是由存储器控制单元执行将八个电压阈值放置在多层级存储器单元(mlc)中的存储器编程算法的编程遍次的图示。位b2、b1和b0中的用户数据用于将存储器单元编程到八个电平。编程算法可包含预读取操作409。作为mlc编程算法的艺术,所述八个电平420至427使用编程脉冲405和验证操作407来放置。slc编程算法用于将存储器单元编程到两个电平。
[0045]
返回到图2,存储器单元210中的每一个可以单独地或共同地编程为slc(编程成两个编程状态中的一个)或mlc(编程成超过两个编程状态中的一个,例如,tlc)。在一些实施例中,主机装置控制写入到slc的主机数据和写入到mlc的主机数据。存储器装置可从主机装置接收两个数据流;一个用于slc数据,一个用于mlc数据。存储器控制单元218的固件可维持两个作用中光标,数据流中的每一个使用一个作用中光标。光标可以是对开放存储器块的指针,例如存储器阵列的存储器单元中的nand存储器。
[0046]
在主机和存储器单元之间进行传输时,每个光标可使用专用写入缓冲器来存储数据。在实例中,写入缓冲器可以是存储器控制单元218中单独的存储器222(例如,sram)。为了使性能更好,写入缓冲器的大小应该匹配最大nand存储器程序大小。例如,如果mlc数据是tlc数据且具有16个并行平面及每页16千字节(16kb)的数据,那么slc光标需要256kb,但是对于其中同时写入每平面三个页的单遍次tlc编程,tlc光标需要756kb。然而,写入缓冲器的sram可限制在存储器控制单元218中,并且添加额外sram可使存储器控制单元218的成
本增加。
[0047]
节省硬件资源的一种方法是在slc光标和mlc光标之间共享写入缓冲器。图5是操作存储器装置的方法500的流程图。在505处,将数据接收到存储器装置(例如,图2的存储器控制单元218中的存储器222)的写入缓冲器中。数据将作为单层级存储器单元slc数据或三层级存储器单元(tlc)数据(或其它mlc数据)写入到存储器装置的存储器阵列201中。在510处,将slc数据存储在写入缓冲器的slc数据存储器空间中。在515处,将tlc数据存储在写入缓冲器的tlc数据存储器空间中。在520处,当tlc数据存储器空间存在溢出时,将tlc数据存储在写入缓冲器的slc数据存储器空间中。这使得来自主机装置的slc数据流和tlc数据流(或其它mlc数据流)两者能够同时共存。当slc数据存储器空间已满时,存储器控制单元218可将slc数据存储器空间刷新到存储器阵列201。如果slc存储器空间还含有tlc数据,那么存储器控制单元还可将tlc数据存储器空间刷新到存储器阵列。在变化形式中,当写入缓冲器已满时,存储器控制单元218将写入缓冲器刷新到存储器阵列。
[0048]
图6是写入缓冲器622的实例的框图。写入缓冲器622可以利用sram或其它易失性和非易失性存储器类型实施。写入缓冲器包含用于tlc数据624的tlc存储器空间(或其它mlc存储器空间,例如用于qlc数据的qlc存储器空间)和用于slc数据626的slc存储器空间。tlc数据和slc数据将从写入缓冲器写入到存储器阵列,例如快闪nand存储器阵列。图2中的存储器控制单元218的处理器可执行用slc数据编程存储器阵列的存储器单元的第一编程算法,并执行用tlc数据编程存储器阵列的存储器单元的第二编程算法。
[0049]
写入缓冲器的大小可匹配最大nand程序大小(例如,并行的16个平面和每页16千字节(kb))。写入缓冲器322可包含三个存储器页:tlc下部存储器页(tlc-lp)、tlc上部存储器页(tlc-up)和slc存储器页或额外存储器页。当tlc存储器空间(例如,tlc-lp和tlc-up)存在溢出时,将tlc数据存储在slc存储器页中。因此,写入缓冲器的slc部分和tlc缓冲器的最后部分重叠。出于此原因,slc存储器页在图6中标记为“slc/tlc-xp”。
[0050]
当写入缓冲器已满时,存储器控制单元可将写入缓冲器622刷新到存储器阵列。在一些实例中,当slc存储器页已满时,存储器控制单元只将slc存储器页刷新到存储器阵列。如果slc存储器页包含tlc数据,那么在将slc存储器页刷新到存储器阵列时,存储器控制单元的处理器执行编程slc数据的编程算法和编程tlc数据的编程算法两者。
[0051]
图7是写入缓冲器722的另一实例的框图。为了填充缓冲器,存储器控制单元实施两个指针或光标。存储器控制单元可维持(例如,使用固件)tlc指针734以索引到tlc下部存储器页和tlc上部存储器页,并维持slc指针736以索引到slc存储器页。当tlc存储器空间中存在tlc数据724的溢出时,tlc指针734可索引到slc存储器页。只有在tlc存储器空间中的数据超过它的配额(例如,在图6和7的实例中,超过三页写入缓冲器中的两个页),才需要混合tlc数据724和slc数据726。
[0052]
图8是写入缓冲器822的另一实例的框图。为了填充写入缓冲器822的slc部分,存储器控制单元只使用一个共享指针838。当tlc数据824溢出到slc存储器空间中时,如果tlc数据824或slc数据826放置在存储器空间中,那么共享指针838前进。在将数据传送到存储器阵列时,图2的存储器控制单元218可重新组织写入缓冲器数据(例如,改变tlc数据和slc数据的次序)。不管填充实施方案是什么,存储器控制器都可以始终跟踪放置在共享缓冲器中属于slc流的数据量和属于tlc流的数据量。基于写入缓冲器的填充程度和关于缓冲器中
存在的数据种类的其它考虑因素,写入数据可以从写入缓冲器刷新到存储器阵列。
[0053]
图9是操作存储器装置以将写入数据接收到存储器装置的写入缓冲器中及清空算法以将数据从写入缓冲器传送到存储器装置的存储器阵列的方法900的实例的流程图。在图9的实例中,“tlc缓冲器”是指写入缓冲器的tlc特定部分,且“slc缓冲器”是指共享slc/tlc部分。方法开始于905,其中tlc缓冲器和slc缓冲器均为空。在910处,存储器装置的存储器控制单元从主机装置获取写入数据。在915处,将从主机装置接收的写入数据识别为slc数据或tlc数据。在920处,将识别为slc数据的写入数据存储在写入缓冲器的slc数据存储器页中。在925处,确定tlc缓冲器是否已满。如果tlc存储器页未满,那么在930处,将识别为tlc数据的写入数据存储在tlc缓冲器中。如果tlc存储器页已满,那么在920处,将识别为tlc数据的写入数据存储在slc缓冲器或写入缓冲器的slc存储器页中。
[0054]
在935处,确定slc缓冲器是否已满。如果slc缓冲器未满,那么方法返回到910,接收更多写入数据。如果slc缓冲器已满,那么在940处,确定tlc缓冲器是否已满。如果tlc缓冲器未满且slc缓冲器已满,那么在945处,将slc缓冲器的数据刷新到存储器阵列。如果tlc缓冲器和slc缓冲器均已满,那么在950处,检查借用计数(bc)计数器。bc计数器跟踪刷新到存储器阵列的slc块(例如,slc nand块)中的tlc数据量,并且因此跟踪存储器阵列的slc块中的借用空间量。在实例中,当写入缓冲器的共享存储器空间(例如,图6中的slc/tlc-xp页)含有16kb的tlc数据且共享存储器空间被刷新到slc块时,bc计数器增加16。但是如果整个缓冲器被刷新到tlc块,那么bc计数值减小属于slc流的数据量(在256kb slc缓冲器的实例中,bc计数器将减小240)。
[0055]
如果bc计数器小于或等于零,那么slc缓冲器中目前不存在tlc数据。将会溢出tlc缓冲器的tlc数据添加到slc缓冲器中。在955处,bc计数器增加写入到slc缓冲器的tlc配额(例如,tlc数据的字节数)。如果slc缓冲器已满,tlc缓冲器已满,并且bc计数器大于零,那么在960处,bc计数器减小将刷新的slc配额(例如,slc缓冲器中的tlc字节数),并且在965处,将tlc缓冲器刷新到存储器阵列。应注意,当slc缓冲器被刷新到存储器阵列时,如果bc计数器大于零,指示slc缓冲器中存在tlc数据,那么slc和tlc数据均会写入到存储器阵列。使用不同编程算法来编程slc数据和tlc数据。在某些实例中,存储器控制单元可重新组织经混合数据以供传送到存储器阵列。
[0056]
在slc数据流和tlc数据流之间共享sram写入缓冲器给人的印象是两个单独的缓冲器,同时使实际使用的硬件资源最小化。数据流之间的写入缓冲器的分配是平衡的,以保持每个数据流的写入传送的性能。尽管本文中所描述的实例使用slc数据和tlc数据,但是写入缓冲器实例可以存储不同的数据组合。举例来说,写入缓冲器可以保存tlc数据和每单元2位的数据。tlc数据可以被分配两个存储器页,每单元2位数据被分配一个存储器页(与slc数据一样),或者每单元2位数据可以被分配两个存储器页,且tlc数据被分配一个与每单元2位数据重叠的存储器页。在其它实例中,写入缓冲器存储超过两个数据流的数据(例如,slc数据、每单元2位数据和tlc数据)。
[0057]
在另一实例中,写入缓冲器可保存slc数据和qlc数据用于传送到存储器阵列。在变化形式中,qlc编程可以分两个步骤完成。在第一步骤中,使用两个qlc数据页在存储器阵列的qlc单元中的四个分布中编程或放置qlc数据。在第二步骤中,使用两个存储器页通过将前四个分布中的每一个分成再四个分布而在qlc单元中形成16个分布。用于编程qlc数据
的一个存储器页可以是与slc数据共享的存储器页。在此情况下,在写入缓冲器中可能只需要两个页,其中一个存储器页是混合slc/qlc存储器页。
[0058]
图10示出上面可执行本文所论述的技术(例如,方法)中的任一种或多种(例如,用于例如同时slc和tlc数据流的所描述写入缓冲器操作)的实例机器1000的框图。机器1000可以充当独立装置,或可以连接(例如,联网)到其它机器。在联网部署中,机器1000可以在服务器机器、客户端机器或服务器-客户端网络环境两者的能力范围内操作。在实例中,机器1000可以充当同级间(p2p)(或其它分布式)网络环境中的同级机器。机器1000可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、移动电话、网络设备、iot装置、汽车系统,或能够(循序或以其它方式)执行指定将由所述机器采取的动作的指令的任何机器。此外,虽然仅示出单个机器,但术语“机器”也将被视为包含个别地或共同地执行一个指令集(或多个集合)以执行本文中所论述的方法中的任一种或多种(例如,云计算、软件即服务(saas)、其它计算机集群配置)的任何机器集合。
[0059]
如本文所描述的实施例和实例可包含逻辑、组件、装置、封装或机制,或者可通过逻辑、组件、装置、封装或机制操作。电路系统是实施于包含硬件(例如,简单电路、门、逻辑等)的有形实体中的电路的集合(例如,集)。电路系统成员可以随时间推移和基础硬件变化而为灵活的。电路系统包含当操作时可单独或组合地执行特定任务的部件。在实例中,可以不可改变地设计电路系统的硬件以实行特定操作(例如,硬连线)。在实例中,电路系统的硬件可以包含可变连接的物理组件(例如,执行单元、晶体管、简单电路等),包含物理上经修改(例如,以磁性方式、以电学方式、恒定集结粒子的可移动放置等)以编码特定操作的指令的计算机可读媒体。在连接物理组件时,硬件构成的基础电特性例如从绝缘体改变成导体或反之亦然。指令使得参与的硬件(例如,执行单元或加载机构)能够经由可变连接创建硬件中的电路系统部件以当在操作中时实行特定任务的部分。因此,当装置操作时计算机可读媒体以通信方式耦合到电路系统的其它组件。在实例中,物理组件中的任一个可以用于一个以上电路系统中的一个以上部件中。例如,在操作下,执行单元可在一个时间点下用于第一电路系统的第一电路,并且由第一电路系统中的第二电路再使用,或在不同时间下由第二电路系统中的第三电路再使用。
[0060]
机器(例如,计算机系统)1000(例如,主机105、图1的存储器装置110等)可包含处理装置1002(例如,硬件处理器、中央处理单元(cpu)、图形处理单元(gpu)、硬件处理器核心或其任何组合,例如图1的存储器装置110的存储器控制单元等)、主存储器1004(例如,只读存储器(rom)、快闪存储器、例如同步dram(sdram)或rambus dram(rdram)等动态随机存取存储器(dram)等)、静态存储器1006(例如,快闪存储器、静态随机存取存储器(sram)等),和数据存储系统1018,其中一些或全部可经由链接(例如,总线)1030彼此通信。
[0061]
处理装置1002可以表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地说,处理装置1002可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置1002还可以是一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理装置1002可配置成执行用于执行本文中所论述的操作和步骤的指令1026。机器1000可进一步包含网络接口装置1008以经由网络1020通信。
[0062]
数据存储系统1018可以包含机器可读存储媒体1024(也称为计算机可读媒体),其上存储有一或多个指令集1026或体现本文中所描述的任何一或多种方法或功能的软件。指令1026还可在其由机器1000执行期间完全或至少部分驻留在主存储器1004内或处理装置1002内,主存储器1004和处理装置1002也构成机器可读存储媒体。机器可读存储媒体1024、数据存储系统1018或主存储器1004可对应于图1的存储器装置110。在一个实施方案中,指令1026包含用于实施对应于多个编程操作(例如,用于编程单层级存储器单元和多层级存储器单元的编程算法)的功能性的指令1011。
[0063]
虽然机器可读存储媒体1024在实例实施方案中示出为单个媒体,但术语“机器可读存储媒体”应被认为包含存储所述一或多个指令集的单个媒体或多个媒体。术语“计算机可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本公开的方法中的任何一种或多种的任何媒体。术语“机器可读存储媒体”因此应被认为包含但不限于固态存储器、光学媒体和磁性媒体。在实例中,集结机器可读媒体包括具有多个粒子的机器可读媒体,所述粒子具有不变(例如,静止)质量。因此,集结机器可读媒体不是暂时性传播信号。集结机器可读媒体的具体实例可以包含:非易失性存储器,例如半导体存储器装置(例如,电可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)),和快闪存储器装置;磁盘,例如内部硬盘和可移动盘;磁光盘;以及cd-rom和dvd-rom盘。
[0064]
机器1000可进一步包含显示单元、文数字输入装置(例如,键盘)和用户接口(ui)导航装置(例如,鼠标)。在实例中,显示单元、输入装置或ui导航装置中的一或多者可以是触摸屏显示器。机器信号产生装置(例如,扬声器)或一或多个传感器,例如全球定位系统(gps)传感器、指南针、加速度计或一或多个其它传感器。机器1000可包含输出控制器,例如串行(例如,通用串行总线(usb)、平行或其它有线或无线(例如,红外(ir)、近场通信(nfc)等)连接以与一或多个外围装置(例如,打印机、读卡器等)通信或控制所述一或多个外围装置。
[0065]
指令1026(例如,软件、程序、操作系统(os)等)或存储在数据存储装置1018上的其它数据可由主存储器1004存取以供处理装置1002使用。主存储器1004(例如,dram)通常为快速但易失性的,因此是与数据存储装置1018(例如,ssd)不同类型的存储装置,数据存储装置1018适于长期存储,包含在“断开”条件下。用户或机器1000正在使用中的指令1026或数据通常加载在主存储器1004上以供处理装置1002使用。当主存储器1004已满时,可分配来自数据存储装置1018的虚拟空间以补充主存储器1004;然而,因为数据存储装置1018装置通常比主存储器1004慢,且写入速度通常至多是读取速度的二分之一,所以虚拟存储器的使用可能归因于存储装置时延而极大地削弱了用户体验(与例如dram等主存储器1004相比)。此外,将数据存储装置1018用于虚拟存储器可能极大地缩短了数据存储装置1018的可用寿命。
[0066]
与虚拟存储器相比,虚拟存储器压缩(例如,linux
tm
内核特征“zram”)使用存储器的一部分作为压缩块存储装置以免对数据存储装置1018分页。分页在压缩块中发生,直至有必要将此类数据写入到数据存储装置1018为止。虚拟存储器压缩增加了主存储器1004的可用大小,同时减小了对数据存储装置1018的磨损。
[0067]
针对移动电子装置或移动存储而优化的存储装置传统地包含mmc固态存储装置(例如,微安全数字(microsd
tm
)卡等)。mmc装置包含与主机(例如,主机装置)的若干并行接
口(例如,8位并行接口),且经常是从主机可移除和分离的组件。相比之下,emmc
tm
装置附接到电路板且视为主机的组件,其读取速度比得上基于串行ata
tm
(串行高级技术(at)附接,或sata)的ssd装置。然而,对移动装置性能的需求持续增加,以便完全实现虚拟或增强现实装置,利用增加的网络速度等。响应于此需求,存储装置已经从并行转变到串行通信接口。包含控制器和固件的通用快闪存储(ufs)装置使用具有专用读取/写入路径的低电压差分信令(lvds)串行接口与主机通信,进一步推进了更高的读取/写入速度。
[0068]
指令1024可进一步利用若干传送协议(例如,帧中继、因特网协议(ip)、传输控制协议(tcp)、用户数据报协议(udp)、超文本传送协议(http)等)中的任一个经由网络接口装置1008使用传输媒体在网络1020上传输或接收。实例通信网络可以包含局域网(lan)、广域网(wan)、包数据网络(例如,因特网)、移动电话网络(例如,蜂窝网络)、简易老式电话(pots)网络和无线数据网络(例如,称为的电气电子工程师学会(ieee)802.11系列标准、称为的ieee 802.16系列标准)、ieee 802.15.4系列标准、同级间(p2p)网络,以及其它网络。在实例中,网络接口装置1008可包含一或多个物理插孔(例如,以太网、同轴或电话插孔)或一或多个天线以连接到通信网络1020。在实例中,网络接口装置1008可以包含多个天线以使用单输入多输出(simo)、多输入多输出(mimo)或多输入单输出(miso)技术中的至少一种进行无线通信。术语“传输媒体”应被认为包含能够存储、编码或携载指令以由机器1000执行的任何无形媒体,且包含数字或模拟通信信号或其它无形媒体以促进此类软件的通信。
[0069]
以上详细描述包含对附图的参考,附图形成详细描述的一部分。图式借助于说明示出可实践本发明的特定实施例。这些实施例在本文中也称为“实例”。此类实例可包含除了所示出或所描述的那些元件之外的元件。然而,本发明人还预期其中仅提供所示出或所描述的那些元件的实例。此外,本发明的发明人还预期使用相对于特定实例(或其一或多个方面)或相对于本文示出或描述的其它实例(或其一或多个方面)而示出或描述的那些元件的任何组合或排列的实例(或其一或多个方面)。
[0070]
在本文献中,如专利文献中所常见而使用术语“一”以包含一个或一个以上,其独立于“至少一个”或“一或多个”的任何其它例子或使用。在本文献中,除非另外陈述,否则术语“或”用于指代非排它性或,使得除非另有指示,否则“a或b”可包含“a而非b”、“b而非a”以及“a和b”。在所附权利要求书中,术语“包含”和“在其中”用作相应术语“包括”和“其中”的简明等效用语。另外,在所附权利要求书中,术语“包含”和“包括”是开放式的。权利要求中除了此类术语之后列出的元件之外还包含其它元件的系统、装置、制品或过程仍视为属于所述权利要求的范围。此外,在所附权利要求书中,术语“第一”、“第二”和“第三”等仅用作标记,且并不希望对其对象强加数值要求。
[0071]
在不同实例中,本文中所描述的组件、控制器、处理器、单元、引擎或表可包含存储于物理装置上的物理电路系统或固件等。如本文中所使用,“处理器”意指任何类型的计算电路,例如(但不限于)微处理器、微控制器、图形处理器、数字信号处理器(dsp),或任何其它类型的处理器或处理电路,包含处理器或多核装置的群组。
[0072]
如本文所使用,操作存储器单元包含从存储器单元读取、对存储器单元写入或擦除存储器单元。使存储器单元置于既定状态中的操作在本文中被称作“编程”,且可包含对存储器单元写入或从存储器单元擦除(例如,存储器单元可经编程为擦除状态)。
[0073]
根据本发明的一或多个实施例,位于存储器装置内部或外部的存储器控制器(例如,处理器、控制器、固件等)能够确定(例如,选择、设置、调整、计算、改变、清除、传达、调适、导出、限定、利用、修改、施加等)一定数量的磨损循环或磨损状态(例如,记录磨损循环、当其发生时对存储器装置的操作计数、跟踪其起始的存储器装置的操作、评估对应于磨损状态的存储器装置特性等)。
[0074]
根据本公开的一或多个实施例,存储器存取装置可配置成关于每一存储器操作将磨损循环信息提供到存储器装置。存储器装置控制电路系统(例如,控制逻辑)可经编程以补偿对应于磨损循环信息的存储器装置性能改变。存储器装置可接收磨损循环信息且响应于磨损循环信息而确定一或多个操作参数(例如,值、特性)。
[0075]
本文中描述的方法实例可以至少部分地由机器、装置或计算机实施。一些实例可以包含编码有指令的计算机可读媒体、装置可读媒体或机器可读媒体,所述指令可操作以配置电子装置以执行如以上实例中描述的方法。这类方法的实施方案可包含代码,例如微码、汇编语言代码、高级语言代码等等。这类代码可包含用于执行各种方法的计算机可读指令。所述代码可以形成计算机程序产品的部分。此外,代码可例如在执行期间或在其它时间有形地存储于一或多个易失性或非易失性有形计算机可读媒体上。这些有形计算机可读媒体的实例可包含但不限于:硬盘、可装卸式磁盘、可装卸式光盘(例如,压缩光盘和数字视频光盘)、盒式磁带、存储卡或棒、随机存取存储器(ram)、只读存储器(rom)、固态驱动器(ssd)、通用快闪存储(ufs)装置、嵌入式mmc(emmc)装置等等。
[0076]
额外描述和实例
[0077]
实例1包含包括以下的主题(例如,存储器装置):存储器阵列,其包含可编程为单层级存储器单元(slc)的存储器单元和可编程为三层级存储器单元(tlc)的存储器单元;存储器控制单元,其以操作方式耦合到所述存储器阵列且包含处理器,所述处理器配置成用slc数据和tlc数据编程所述存储器单元;以及写入缓冲器,用于缓冲写入到所述存储器阵列的数据,所述写入缓冲器包含slc数据存储器空间和tlc数据存储器空间,其中所述存储器控制单元配置成当所述tlc数据存储器空间存在溢出时将所述tlc数据存储在所述slc数据存储器中。
[0078]
在实例2中,根据实例1所述的主题任选地包含tlc存储器空间,所述tlc存储器空间包含tlc下部存储器页和tlc上部存储器页;所述slc存储器空间包含slc存储器页,并且其中所述存储器控制器配置成当所述tlc存储器空间中存在所述tlc数据的溢出时将所述tlc数据存储在所述slc存储器页中。
[0079]
在实例3中,根据实例2所述的主题任选地包含处理器,所述处理器配置成使用slc指针索引到所述slc存储器页;使用tlc指针索引到所述tlc下部存储器页和所述tlc上部存储器页;并在所述tlc存储器空间中存在所述tlc数据的溢出时使用所述tlc指针索引到所述slc存储器页。
[0080]
在实例4中,根据实例2所述的主题任选地包含处理器,所述处理器配置成实施共享指针以索引所述上部存储器页中的所述tlc数据、所述下部tlc存储器页中的所述tlc数据和所述slc存储器页中的所述slc数据;并且其中当所述tlc存储器空间中存在所述tlc数据的溢出时,所述共享指针索引所述slc存储器页中的tlc数据和slc数据两者。
[0081]
在实例5中,根据实例1至4中的一个或其任何组合所述的主题任选地包含处理器,
所述处理器配置成使用借用计数(bc)计数器跟踪从所述写入缓冲器的所述slc数据存储器空间写入到所述存储器阵列的slc块的tlc数据量。
[0082]
在实例6中,根据实例1至5中的一个或其任何组合所述的主题任选地包含处理器,所述处理器配置成当所述slc数据存储器空间已满时,将存储在所述写入缓冲器的所述slc数据存储器空间中的数据写入到所述存储器阵列。所述数据写入包含执行用存储在所述slc数据存储器空间中的所述slc数据编程所述存储器单元的第一编程算法;以及执行用存储在所述slc数据存储器空间中的所述tlc数据编程所述存储器单元的第二编程算法。
[0083]
在实例7中,根据实例1至6中的一个或其任何组合所述的主题任选地包含:包含快闪nand存储器单元的存储器阵列,及包含静态随机存取存储器(sram)单元的写入缓冲器。
[0084]
实例8包含主题(例如操作存储器装置的方法)或者可任选地与实例1至7中的一个或其任何组合组合以包含此类主题,包括:将数据接收到所述存储器装置的写入缓冲器中,所述数据将作为单层级存储器单元(slc)数据或每存储器单元包含两个或更多个数据位的多层级存储器单元(mlc)数据写入到所述存储器装置的存储器阵列中;将所述slc数据存储在所述写入缓冲器的slc数据存储器空间中;将所述mlc数据存储在所述写入缓冲器的mlc数据存储器空间中;以及当所述mlc数据存储器空间存在溢出时,将所述mlc数据存储在所述写入缓冲器的slc数据存储器空间中。
[0085]
在实例9中,根据实例8所述的主题任选地包含:将所述slc数据存储在所述写入缓冲器的slc存储器页中;将所述mlc数据存储在所述写入缓冲器的下部mlc存储器页和上部mlc存储器页中;以及当所述mlc数据存储器空间中存在所述mlc数据的溢出时,将所述mlc数据存储在所述slc存储器页中。
[0086]
在实例10中,根据实例8和9中的一个或两个所述的主题任选地包含实施索引到所述mlc数据存储器空间的mlc指针和索引到所述slc数据存储器空间的slc指针,并且当所述mlc存储器空间中存在所述mlc数据的溢出时,所述mlc指针索引到所述slc存储器空间。
[0087]
在实例11中,根据实例8和9中的一个或两个所述的主题任选地包含实施共享指针,所述共享指针既将mlc数据索引到所述mlc数据存储器空间中又将slc数据索引到所述slc数据存储器空间中,并且当所述mlc存储器空间中存在所述mlc数据的溢出时,还索引到所述slc存储器空间中的所述mlc数据和所述slc数据两者。
[0088]
在实例12中,根据实例8至11中的一个或其任何组合所述的主题任选地包含:将所接收数据识别为mlc数据或slc数据;将所识别的slc数据存储在所述写入缓冲器的slc数据存储器页中;当所述写入缓冲器的一或多个mlc数据存储器页未满时,将所识别的mlc数据存储在所述mlc数据存储器页中;以及当所述mlc数据存储器页已满时,将所述所识别的mlc数据存储在所述写入缓冲器的所述slc数据存储器页中。
[0089]
在实例13中,根据实例12所述的主题任选地包含:当所述slc数据存储器页已满且所述一或多个mlc数据存储器页未满时,将存储在所述slc数据存储器页中的数据写入到所述存储器阵列;以及当所述slc数据存储器页已满且所述一或多个mlc数据存储器页已满时,更新借用计数(bc)计数器。更新所述bc计数器包含当所述bc计数器大于零时使所述bc计数器增加所述slc数据存储器页中的mlc数据量,并将存储在所述slc数据存储器页中的所述数据写入到所述存储器阵列;以及当所述bc小于或等于零时使所述bc计数器减小所述slc数据存储器页中的slc数据量,并将存储在所述一或多个mlc数据存储器页中的所述数
据写入到所述存储器阵列。
[0090]
在实例14中,根据实例8至13中的一个或其任何组合所述的主题任选地包含当所述写入缓冲器的所述slc存储器空间已满时,将所述slc存储器空间中的数据写入到所述存储器阵列。写入所述写入缓冲器的所述slc存储器空间中的所述数据包含:执行用存储在所述写入缓冲器的所述slc存储器空间中的所述slc数据编程所述存储器阵列的存储器单元的第一编程算法;以及执行用存储在所述slc数据存储器空间中的所述mlc数据编程所述存储器阵列的存储器单元的第二编程算法。
[0091]
实例15包含主题(例如计算机可读存储媒体)或者可任选地与实例1至14中的一个或其任何组合组合以包含此类主题,包括配置成使存储器装置的存储器控制单元进行以下操作的指令:将数据接收到所述存储器装置的写入缓冲器中,所述数据将作为单层级存储器单元(slc)数据或三层级存储器单元(tlc)数据写入到所述存储器装置的存储器阵列中;将所述slc数据存储在所述写入缓冲器的slc数据存储器空间中;将所述tlc数据存储在所述写入缓冲器的tlc数据存储器空间中;以及当所述tlc数据存储器空间存在溢出时,将所述tlc数据存储在所述写入缓冲器的slc数据存储器空间中。所述计算机可读存储媒体可以是非暂时性的,也可以是暂时性的,例如传播信号。
[0092]
在实例16中,根据实例15所述的主题任选地包含使所述存储器控制单元进行以下操作的指令:将所述slc数据存储在所述写入缓冲器的slc存储器页中;将所述tlc数据存储在所述写入缓冲器的tlc下部存储器页和tlc上部存储器页中;以及当所述tlc数据存储器空间中存在所述tlc数据的溢出时,将所述tlc数据存储在所述slc存储器页中。
[0093]
在实例17中,根据实例15和16中的一个或两个所述的主题任选地包含使所述存储器控制单元进行以下操作的指令:实施索引到所述slc数据存储器空间的slc指针,并实施索引到所述tlc数据存储器空间并且当所述tlc存储器空间中存在所述tlc数据的溢出时索引到所述slc存储器页的tlc指针。
[0094]
在实例18中,根据实例15和16中的一个或两个所述的主题任选地包含使所述存储器控制单元进行以下操作的指令:实施共享指针,所述共享指针既将tlc数据索引到所述tlc数据存储器空间中又将slc数据索引到所述slc数据存储器空间中,并且当所述tlc存储器空间中存在所述tlc数据的溢出时,还索引到所述slc存储器页中的所述tlc数据和所述slc数据两者。
[0095]
在实例19中,根据实例15至18中的一个或其任何组合所述的主题任选地包含使所述存储器控制单元进行以下操作的指令:将所接收数据识别为tlc数据或slc数据;将所识别的slc数据存储在所述写入缓冲器的slc数据存储器页中;当所述写入缓冲器的一或多个tlc数据存储器页未满时,将所识别的tlc数据存储在所述tlc数据存储器页中;以及当所述tlc数据存储器页已满时,将所述所识别的tlc数据存储在所述写入缓冲器的所述slc数据存储器页中。
[0096]
在实例20中,根据实例19所述的主题任选地包含使所述存储器控制单元进行以下操作的指令:当所述slc数据存储器页已满且所述一或多个tlc数据存储器页未满时,将存储在所述slc数据存储器页中的数据写入到所述存储器阵列;以及当所述slc数据存储器页已满且所述一或多个tlc数据存储器页已满时,更新借用计数(bc)计数器。更新所述bc计数器可包含当所述bc计数器小于或等于零时使所述bc计数器增加所述slc数据存储器页中的
tlc数据量,并将存储在所述slc数据存储器页中的所述数据写入到所述存储器阵列,并且当所述bc大于零时使所述bc计数器减小所述slc数据存储器页中的slc数据量,并将存储在所述一或多个tlc数据存储器页中的所述数据写入到所述存储器阵列。
[0097]
在实例21中,根据实例15至20中的一个或其任何组合所述的主题任选地包含使所述存储器控制单元进行以下操作的指令:当所述写入缓冲器的所述slc存储器空间已满时,将存储在所述slc存储器空间中的数据写入到所述存储器阵列。写入存储在所述写入缓冲器的所述slc存储器空间中的所述数据可包含:执行用存储在所述写入缓冲器的所述slc存储器空间中的所述slc数据编程所述存储器阵列的存储器单元的第一编程算法;以及执行用存储在所述slc数据存储器空间中的所述tlc数据编程所述存储器阵列的存储器单元的第二编程算法。
[0098]
在实例22中,根据实例1至7所述的任一存储器装置可以进行调适和操作以依据根据实例8至14所述的任一方法执行操作。
[0099]
在实例23中,根据实例1至7所述的任一存储器装置可以并入到电子系统中,所述电子系统进一步包括主机处理器和在所述主机处理器和所述存储器装置之间延伸的通信总线。
[0100]
在实例24中,根据实例1至7所述的任一存储器装置可以进行修改以包含在实例1至7中的另一实例中呈现的任何结构。
[0101]
在实例25中,根据实例8至14所述的任一方法可由电子系统执行,所述电子系统包含主机处理器和在所述主机处理器和存储器装置之间延伸的通信总线。
[0102]
在实例26中,根据实例8至14所述的任一方法可以进行修改以包含在实例8至14中的任何其它实例中阐述的操作。
[0103]
在实例27中,根据实例8至14所述的任一方法可以至少部分地通过使用在根据实例15至21中的任一个所述的机器可读存储装置中的一或多个中作为物理状态存储的指令来实施。
[0104]
在实例28中,根据实例1至7所述的任一存储器装置可进一步包含实例15至21中的任一个的机器可读存储装置,所述机器可读存储装置配置成将指令存储为物理状态,其中所述指令可用于执行所述存储器装置的一或多个操作。
[0105]
这些非限制性实例可以组合成任何排列或组合。以上描述预期为说明性的而非限制性的。例如,上述实例(或其一或多个方面)可以彼此组合使用。例如所属领域的一般技术人员在查阅以上描述后可使用其它实施例。其基于以下理解而提交:其将不会用于解释或限制权利要求书的范围或含义。另外,在以上具体实施方式中,可将各种特征分组在一起以简化本公开。不应将此解释为期望未主张的公开特征对任何权利要求来说是必需的。实际上,本发明主题可在于特定所公开实施例的不到全部特征。因此,特此将所附权利要求书并入到具体实施方式中,其中每一权利要求作为单独实施例而独立存在,且预期此些实施例可以各种组合或排列彼此组合。本发明的范围应该通过参考所附权利要求书以及此权利要求书被赋予的等效物的完整范围来确定。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜