使用页缓冲器对存储器裸片进行软件指令集更新的制作方法

文档序号:28050613发布日期:2021-12-17 20:41阅读:354来源:国知局
使用页缓冲器对存储器裸片进行软件指令集更新的制作方法

1.实施例涉及存储器装置。一些实施例涉及以高效方式将软件指令集更新传播到使用中的个别存储器裸片。


背景技术:

2.用于计算机或其它电子装置的存储器装置可分类为易失性和非易失性存储器。易失性存储器需要电力来维持其数据,且包含随机存取存储器(ram)、动态随机存取存储器(dram)或同步动态随机存取存储器(sdram)等。非易失性存储器可在未供电时保持所存储数据,且包含快闪存储器、只读存储器(rom)、电可擦除可编程rom(eeprom)、静态ram(sram)、可擦除可编程rom(eprom)、电阻可变存储器、相变存储器、存储级存储器、电阻式随机存取存储器(rram)和磁阻随机存取存储器(mram)等。
3.快闪存储器用作广泛范围的电子应用的非易失性存储器。快闪存储器装置通常包含允许高存储器密度、高可靠性和低功耗的例如浮动栅极或电荷阱存储器单元等晶体管的一或多个群组。


技术实现要素:

4.在一个方面中,本技术提供一种存储器系统,其包括:存储器裸片,所述存储器裸片包括经配置以通过指令集执行一或多个操作的一或多个硬件处理器;存储器控制器,其包括一或多个硬件处理器,所述存储器控制器经配置以执行包括以下各项的操作:确定所述存储器裸片上的所述指令集的更新得以指示;将更新后的指令集加载到所述存储器裸片的页缓冲器中;以及使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集。
5.在另一方面中,本技术提供一种更新用于在存储器裸片上执行的指令的方法,其包括:在存储器控制器处执行包括以下各项的操作:确定在所述存储器裸片上配置硬件处理器的指令集的更新得以指示;将更新后的指令集加载到所述存储器裸片的页缓冲器中;以及使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集。
6.在又一方面中,本技术提供一种非暂时性机器可读媒体,其存储指令,所述指令在由存储器装置的控制器执行时使所述控制器执行包括以下各项的操作:确定在存储器裸片上配置硬件处理器的指令集的更新得以指示;将更新后的指令集加载到所述存储器裸片的页缓冲器中;以及使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集。
附图说明
7.在不一定按比例绘制的图式中,相似标号可在不同视图中描述类似组件。具有不同字母后缀的相似标号可表示类似组件的不同例子。图式借助于实例而非限制性地总体上说明本文件中所论述的各种实施例。
8.图1说明根据本公开的一些实例的例如存储装置等存储器装置的图式。
9.图2说明根据本公开的一些实例的nand架构半导体存储器阵列的一部分的实例示意图。
10.图3说明根据本公开的一些实例的3d nand架构半导体存储器的实例示意图。
11.图4说明根据本公开的一些实例的存储器裸片的实例框图。
12.图5说明根据本公开的一些实例的控制器更新一或多个存储器裸片的软件指令集的方法的流程图。
13.图6说明根据本公开的一些实例的将软件指令集更新加载到存储器裸片的页缓冲器中的方法的流程图。
14.图7说明根据本公开的一些实例的将软件指令集更新加载到存储器裸片的页缓冲器中的方法的流程图。
15.图8说明根据本公开的一些实例的更新存储器装置中的多个存储器裸片上的软件指令集的过程的消息序列图。
16.图9说明可对其执行本文中所论述的技术(例如,方法)中的任何一或多种的实例机器的框图。
具体实施方式
17.存储器装置使用一或多个存储器单元阵列来存储数据。除了存储器单元阵列之外,存储器装置通常还包含用于控制存储器阵列的操作的额外电路系统。另外,可至少部分地经由单个控制器控制多个存储器装置。举例来说,存储器装置可组织有控制器和数个存储器裸片,所述存储器裸片包含存储数据的基于晶体管的存储器单元。存储器裸片的特征通常在于根据一组一或多个软件指令执行基本命令的小型硬件微处理器。举例来说,呈微码或固件形式的软件可将指令转换为执行从存储器单元读取、写入到存储器单元、擦除存储器单元等详细电路级操作的序列。
18.软件指令在制造期间加载到每一存储器裸片上,且可存储在构成每一存储器裸片的存储器单元的特殊部分中,所述特殊部分被称作nand只读存储器(rom)块。在通电时,nand将微码从阵列加载到静态锁存器中。
19.软件指令中的缺陷可能会被制造商忽视且使其变为字段。这些缺陷可能会引起性能和稳定性问题。由于指令集存储在rom中,所以更新这些指令通常需要最终用户不可用的工具。即使可修改nand上的rom代码,在经过验证的生产环境外进行这种修改也会被视为危险的。此微码负责使nand裸片准备就绪且具有极严格的数据保持和读取干扰要求。擦除此信息且对其进行重新编程的更新很难在受控制环境外进行验证,且可能会是裸片变得永久无响应。因此,当前,nand裸片在所述领域中没有安全的更新微码指令的方式。
20.在一些实例中,公开了允许高效且安全地更新存储器裸片的软件指令集的方法、系统、装置、存储器控制器、存储器裸片、存储器装置和机器可读媒体。在一些实例中,存储器装置的控制器可通过以下操作来更新一或多个存储器裸片的软件指令:用更新后的软件指令集加载一或多个存储器裸片的一或多个页缓冲器,且随后将更新来自存储在一或多个页缓冲器中的更新后的软件指令集的软件指令集的命令发出到存储器裸片。在一些实例中,不在rom中改写旧指令集,而是(例如,通过本文中所公开的方法)通过以下操作来更新
指令集:首先允许nand裸片将存储在rom中的旧指令集加载到静态锁存器,接着通过由控制器提供的更新后的指令集改写静态锁存器。在一些实例中,此情形可在每次nand通电时发生,例如,作为nand裸片和/或控制器的初始化的部分或在所述初始化之后,控制器使得指令集更新。在其它实例中,rom可由nand裸片更新以存储新的代码。在另外其它实例中,使用寄存器、指针或其它标记在启动后通知nand裸片加载不在rom中而是在由寄存器、指针或其它标记指示的不同位置中的指令集。
21.本发明通过更新存储器裸片的指令集为上述问题提供应变方法。由工厂编程的rom代码保持在适当位置,从而保证裸片将变得活动,且所述rom代码接着与控制器一起工作以在通电时应用更新。如果出现错误,那么控制器收到通知,且能够在固件中使用不同的恢复方法进行恢复。这以启动时间略微减少换得可靠性提高以提供微码的字段更新。如所提及,在一些实例中,维持且加载原始微码,且接着用更新替换所述原始微码。如果出现任何错误,那么可由控制器取消更新,使得操作返回到工厂默认微码。
22.如所提及,可通过本文中所公开的方法更新的实例软件指令包含微码、固件或其它较低层级的软件。然而,得益于本公开的所属领域的一般技术人员将了解,也可以更新其它软件指令(如果存在于存储器裸片上)。举例来说,如果存储器裸片要执行较高层级的指令(例如,应用级指令),那么更新存储器裸片的软件指令的方法也可以适用于更新那些较高层级的指令。
23.页缓冲器为存储器裸片的静态随机存取存储器(sram)的所分配部分,其临时存储数据以用于进行操作,例如存储器裸片的存储器单元(例如,nand单元)上的编程、擦除和读取操作。软件指令集更新可以数种不同的方式加载到页缓冲器中。举例来说,存储器装置可以发出将软件指令集更新写入到裸片中的存储器阵列(例如,nand阵列)中的存储器位置的写入命令。所述存储器位置例如裸片的可写入部分等。借助于写入命令,写入页缓冲器可存储软件指令集更新的副本,也就是说,在写入到nand阵列之前,存储器裸片可将软件指令集更新存储在页缓冲器中,且在写入命令完成之后,可不立即清除页缓冲器的内容。如果控制器希望使用读取页缓冲器,那么可针对先前写入的软件指令集更新发出读取命令。可由控制器例如经由请求命令、经由写入(或读取)的返回值或借助于系统设计(例如,控制器可知道存储器裸片如何使用页缓冲器)确定上面存储有数据的页缓冲器位置。
24.在其它实例中,控制器能够直接控制页缓冲器。举例来说,控制器可发出用软件指令集更新加载特定页缓冲器的命令。在这些实例中,加载软件指令集更新的命令可包含作为命令中的有效负载的软件指令集更新。在其它实例中,将软件指令集更新加载到页缓冲器中的命令可指定存储器裸片上的存储器阵列中的位置。也就是说,控制器首先将软件指令集更新写入到存储器裸片上的位置,且接着发出用存储在所述位置处的数据加载页缓冲器的命令。
25.一旦软件指令集更新被加载到页缓冲器中,控制器的固件就可接着发出更新软件指令集更新的命令。命令可指定页缓冲器以使用含有软件指令集更新的页缓冲器。存储器裸片可接着更新软件指令集(例如,微码)。在一些实例中,可加载全新的软件指令集。在又其它实例中,可更新集合中的特定指令。存储在页缓冲器中的软件指令集更新可包含当前指令集内的偏移和一或多个替换指令。存储器裸片可用替换指令来替换偏移处的指令。
26.在一些实例中,存储器裸片将更新后的指令集加载到一或多个锁存器中以应用更
新后的软件指令集。如先前所描述,在工厂处编程的指令集可存储在存储器裸片的静态rom位置中。在一些实例中,更新指令集可在加载因子编程(factor programmed)的指令集之后进行。在这些实例中,将更新后的指令集加载到一或多个锁存器中可改写先前可能已从静态rom加载的指令集(在工厂处编程的指令集)。在其它实例中,将更新后的指令集加载到锁存器中可在存储器裸片加载存储在静态rom中的指令集之前进行,且因此,存储器裸片在不首先加载存储在静态rom中的指令集的情况下加载更新后的指令集。
27.在又其它实例中,可从控制器发出单个命令,所述命令包含软件指令集更新或软件指令集更新在存储器阵列中的位置,所述命令接着由存储器裸片解译为将软件指令集更新加载到页缓冲器中且随后应用更新的命令。
28.在一些实例中,公开了存储器装置控制器可更新在nand初始化时设置的存储器裸片的一或多个其它值的方法、系统、装置、存储器控制器、存储器裸片、存储器装置和机器可读媒体。举例来说,可在裸片初始化后将存储在rom块中的其它信息加载到锁存器中。此信息可以类似于指令集的方式更新。此信息在初始化时加载且可由控制器(例如,固件)以与指令集相同的方式更新。所述信息例如:关于用哪些nand存储器列来换出冗余列(例如,由于错误)的更新冗余列(修复列)信息;关于用哪些nand存储器块换出冗余块的冗余块(修复块)信息;关于哪些块不可操作以不允许客户使用那些块的块标记(不良块)信息;定义装置的页映射(即,块中的每一逻辑页的物理字线和/或超级块位置)的页映射锁存器(逻辑到物理转换);等等。举例来说,可在裸片制造时设置这些值。这些值是实例,且得益于本公开的所属领域的一般技术人员将了解,可以相同方式更新其它信息。
29.存储器装置概览
30.如前文所述,快闪存储器用作广范围的电子应用的非易失性存储器。快闪存储器通常包含允许高存储器密度、高可靠性和低功耗的例如浮动栅极或电荷阱存储器单元等晶体管的一或多个群组。两种常见类型的快闪存储器阵列架构包含nand和nor架构,所述架构以每一架构的基本存储器单元配置所布置的逻辑形式来命名。存储器阵列的存储器单元通常布置在矩阵中。在实例中,阵列的一行中的每一存储器单元的栅极耦合到存取线(例如,字线)。在nor架构中,阵列的一列中的每一存储器单元的漏极耦合到数据线(例如位线)。在nand架构中,阵列的串中的每一存储器单元的漏极以源极到漏极方式一起串联耦合在源极线与位线之间。
31.nor和nand架构半导体存储器阵列均经由解码器存取,所述解码器通过选择耦合到特定存储器单元的栅极的字线来激活特定存储器单元。在nor架构半导体存储器阵列中,一旦被激活,选定存储器单元便将其数据值置于位线上,从而取决于特定单元被编程的状态而使不同电流流动。在nand架构半导体存储器阵列中,将高偏压电压施加到漏极侧选择栅极(sgd)线。以指定传递电压(例如,vpass)驱动耦合到每一群组的未经选择的存储器单元的栅极的字线,以使每一群组的未经选择的存储器单元作为传递晶体管操作(例如,以不受其所存储的数据值限制的方式传递电流)。电流随后从源极线经由每一串联耦合的群组流动到位线,仅受每一群组中的选定存储器单元限制,从而将选定存储器单元的当前经编码数据值置于位线上。
32.nor或nand架构半导体存储器阵列中的快闪存储器单元可个别地或共同地编程为一个或数个经编程状态。举例来说,单层级单元(slc)可表示两个经编程状态(例如,1或0)
中的一个,从而表示一个数据位。然而,快闪存储器单元也可表示多于两个经编程状态中的一个,从而允许制造较高密度的存储器而不增加存储器单元的数目,因为每一单元可表示多于一个二进制数字(例如,多于一个位)。此类单元可称为多状态存储器单元、多数字单元或多层级单元(mlc)。在某些实例中,mlc可以指每单元可存储两个数据位(例如,四个经编程状态中的一个)的存储器单元,三层级单元(tlc)可以指每单元可存储三个数据位(例如,八个经编程状态中的一个)的存储器单元,且四层级单元(qlc)可每单元存储四个数据位。mlc在本文中以其较广泛情形使用,可指每单元可存储多于一个数据位(即,可表示多于两个经编程状态)的任何存储器单元。
33.传统存储器阵列是布置在半导体衬底表面上的二维(2d)结构。为了增大给定面积的存储器容量且降低成本,已减小个别存储器单元的大小。然而,个别存储器单元大小的减小存在技术限制,且因此2d存储器阵列的存储器密度也存在技术限制。作为响应,正在研发三维(3d)存储器结构,例如3d nand架构半导体存储器装置,以进一步增大存储器密度且降低存储器成本。
34.此类3d nand装置通常包含存储单元串,其串联(例如,以漏极到源极方式)耦合于接近源极的一或多个源极侧选择栅极(sgs)与接近位线的一或多个漏极侧选择栅极(sgd)之间。在实例中,sgs或sgd可包含一或多个场效应晶体管(fet)或金属氧化物半导体(mos)结构装置等。在一些实例中,串将竖直延伸穿过含有相应字线的多个竖直间隔开的层次。半导体结构(例如,多晶硅结构)可邻近于存储单元串而延伸以形成用于所述串的存储单元的通道。在竖直串的实例中,多晶硅结构可呈竖直延伸柱的形式。在一些实例中,串可“折叠”,且因此相对于u形柱而布置。在其它实例中,多个竖直结构可堆叠于彼此上以形成存储单元串的堆叠阵列。
35.存储器阵列或装置可组合在一起以形成例如固态驱动器(ssd)等存储器系统或各种形式的受管理存储器装置中的一个的存储容量。可以根据公认的行业标准来配置和操作受管理存储器装置。举例来说,受管理nand装置可为(作为非限制性实例)通用快闪存储(ufs
tm
)装置或嵌入式mmc装置(emmc
tm
)等。举例来说,在以上实例的情况下,可以根据电子装置工程设计联合协会(jedec)标准(例如,jedec标准jesd223d,标题为“jedec ufs快闪存储装置3.0(jedec ufs flash storage 3.0)”)和/或此类标准的更新或后续版本配置ufs装置。类似地,可以根据标题为“jedec emmc标准5.1(jedec emmc standard 5.1)”的jedec标准jesd84

a51(同样,和/或此类标准的更新或后续版本)配置所识别的emmc装置。
36.ssd尤其可用作计算机的主存储装置,其关于例如性能、大小、重量、耐用性、操作温度范围和功耗具有优于具有移动部件的传统硬盘驱动器的优点。举例来说,ssd可具有减少的寻道时间、时延或与磁盘驱动器相关联的其它延迟(例如,机电等)。ssd使用例如快闪存储器单元等非易失性存储器单元来避免内部电池电源需求,因此允许驱动器更通用且紧凑。
37.ssd可包含数个存储器装置,包含数个裸片或逻辑单元(例如,逻辑单元数字或lun),且可包含执行操作存储器装置或与外部系统介接所需的逻辑功能的一或多个处理器或其它控制器。此类ssd可包含一或多个快闪存储器裸片,其上包含数个存储器阵列和外围电路系统。快闪存储器阵列可包含组织成数个物理页的数个存储器单元块。在许多实例中,ssd还将包含dram或sram(或其它形式的存储器裸片或其它存储器结构)。ssd可与存储器操
作相关联地从主机接收命令,所述存储器操作例如在存储器装置与主机之间传送数据(例如,用户数据和相关联完整性数据,例如错误数据和地址数据等)的读取或写入操作,或从存储器装置擦除数据的擦除操作。
38.存储器装置包含个别存储器裸片,所述存储器裸片可例如包含存储区,所述存储区包括一或多个存储器单元阵列,从而实施一种(或多种)选定存储技术。此类存储器裸片通常包含用于操作存储器阵列的支持电路系统。有时通常被称为“受管理存储器装置”的其它实例包含与经配置以控制一或多个存储器裸片的操作的控制器功能性相关联的一或多个存储器裸片的组合件。此类控制器功能性可以简化与例如“主机”的外部装置的互操作性,如本文稍后所论述。在此类受管理存储器装置中,控制器功能性可以在也并入有存储器阵列的一或多个裸片上或在单独的裸片上实施。在其它实例中,一或多个存储器装置可以与控制器功能性组合以形成固态驱动器(ssd)存储卷。术语“存储器系统”在本文中使用为包含一或多个存储器裸片以及用于此类存储器裸片的任何控制器功能性(当存在时);且因此包含个别存储器装置、受管理存储器装置和ssd。
39.出于当前描述的目的,实例实施例包含实施nand快闪存储器单元的受管理存储器装置,被称为“受管理nand”装置。此类受管理nand装置可大体上根据所描述的jedec ufs快闪存储装置3.0规范来构造和操作,可按需要修改以并入有本文中所描述的结构和功能性。然而,所描述的功能性可利用如上文所描述的可并入有其它存储技术的其它类型的存储器装置来实施,其若干非限制性实例在本文中早先论述;且可经配置以用于根据如上文所论述的其它行业标准操作;或根据非行业标准协议操作。
40.例如移动电子装置(例如,智能电话、平板计算机等)、用于汽车应用的电子装置(例如,汽车传感器、控制单元、驾驶员辅助系统、乘客安全或舒适系统等)和因特网连接的电器或装置(例如,物联网(iot)装置等)等电子装置尤其取决于电子装置的类型、使用环境、性能期望等而具有变化的存储需要。
41.电子装置可分解为若干主要组件:处理器(例如,中央处理单元(cpu)或其它主处理器);存储器(例如,一或多个易失性或非易失性随机存取存储器(ram)存储器装置,例如动态ram(dram)、移动或低功率双数据速率同步dram(ddr sdram)等);以及存储装置(例如,非易失性存储器(nvm)装置,例如快闪存储器、只读存储器(rom)、ssd、mmc或其它存储卡结构或组合件等)。在某些实例中,电子装置可包含用户接口(例如,显示器、触摸屏、键盘、一或多个按钮等)、图形处理单元(gpu)、电源管理电路、基带处理器或一或多个收发器电路等。
42.图1说明根据本公开的一些实例的例如存储装置的存储器装置100的图式。存储器装置100可包含一或多个主机接口123,其可利用一或多个协议,例如串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、通用快闪存储(ufs)接口、emmc
tm
接口,或与主机装置135通信的一或多个其它连接器或接口。主机135可经由主机接口123将例如读取命令、写入命令、擦除命令等一或多个命令发送到存储器装置100。主机接口123可以是控制器105的一部分或可由单独的电路系统实施。
43.存储器装置100可包含一或多个存储器控制器105。控制器105可包含处理电路系统110,所述处理电路系统可包含一或多个硬件处理器115。处理器115可以是通用硬件处理器,其执行固件或其它软件指令以用于执行存储器装置的操作,包含实施主机接口123和存
储器裸片接口125。在其它实例中,处理器115可以是专用硬件处理器,其经特别设计以经由硬件逻辑和/或经由软件指令的执行来执行存储器装置100的操作。处理电路系统110还可包含逻辑电路和其它电路组件,其经配置以执行各种控制功能性和存储器管理操作或其部分,其实例在下文描述。
44.在所描绘的实例中,存储器装置100包含经由主机总线137提供到外部主机装置135的通信的主机接口123。取决于存储器装置100(其也可被称为“存储器系统”)的特定配置,主机接口123的配置可具有各种形式。举例来说,在存储器装置100为ufs装置的实例中,主机接口将根据可适用的ufs标准。
45.存储器装置100还并入有控制器105的处理电路系统110与存储器装置100内的存储器裸片130

a到130n+1的至少某一部分之间的一或多个存储器裸片接口125。存储器裸片接口125可以是控制器105的一部分或可由单独的电路系统实施。举例来说,在ufs装置的实例中,存储器裸片接口125中的一或多个将是合适的存储器接口,例如,如由onfi 4.0规范或其后续版本或修正限定的开放式nand快闪接口(“onfi”)。
46.存储器装置100的组件,例如控制器105,可包含用于执行存储器装置100的操作的随机存取存储器(ram)120。随机存取存储器120可与控制器105分离,或如所展示,可集成在控制器105中。
47.控制器105可通过与作为一或多个存储器裸片130

a到130n+1的一部分的存储器装置的存储器单元交互来处理存储器的一或多个功能。图4中展示存储器裸片130的实例实施方案的示意图。控制器105可跨存储器裸片总线127经由存储器裸片接口125与这些存储器裸片通信。在一些实例中,存储器裸片可具有其自身的装置控制器,包含处理电路系统和处理器,以控制相应存储器裸片上的操作。此类装置控制器可形成于与装置存储阵列共同的裸片上,或可在与含有装置存储阵列的裸片分离的裸片上。两种配置均由本文中所描述的所识别的“存储器裸片”(130a到130n+1)涵盖。存储器裸片可以是nand裸片、三维nand裸片、相变存储器裸片等等。
48.主机装置135可以是个人计算机、智能手机、平板计算机、集成电路的一部分、物联网(iot)装置(例如,冰箱或其它电器、传感器、电机或致动器、移动通信装置、汽车、无人机等)等等。
49.出于当前描述的目的,将在nand存储器的上下文中描述实例存储器操作和管理功能。本领域的技术人员将认识到,其它形式的非易失性存储器可具有类似的存储器操作或管理功能。此类nand管理功能包含耗损均衡(例如,垃圾收集或回收)、错误检测或校正、块引退或一或多个其它存储器管理功能。
50.存储器裸片130

a到130

n+1可包含以例如数个平面、子块、块或页布置的若干存储器单元。作为一个实例,48gb tlc nand存储器装置可包含每页18,592字节(b)的数据(16,384+2208字节)、每块1536页、每平面548块和每装置4个或更多个平面。作为另一实例,32gb mlc存储器装置(每单元存储两个数据位(即,4个可编程状态))可包含每页18,592字节(b)的数据(16,384+2208字节)、每块1024页、每平面548个块及每装置4个平面,但与对应tlc存储器装置相比所需的写入时间为一半且编程/擦除(p/e)循环为两倍。其它实例可以包含其它数量或布置。在一些实例中,存储器装置或其部分可在slc模式中或在所要mlc模式(例如tlc、qlc等)中选择性地操作。
51.在操作中,数据通常以页写入到存储器装置100或从所述存储器装置读取,且以块擦除。然而,可按需要对存储器单元的更大或更小群组执行一或多个存储器操作(例如,读取、写入、擦除等)。存储器装置100的数据传送大小通常称为页,而主机的数据传送大小通常称为扇区。
52.虽然数据页可包含数个字节的用户数据(例如,包含数个数据扇区的数据有效负载)及其对应的元数据,但页的大小通常仅指代用以存储用户数据的字节的数目。作为实例,具有4kb的页大小的数据页可包含4kb的用户数据(例如,假定扇区大小为512b的8个扇区)以及对应于用户数据的数个字节(例如,32b、54b、224b等)的元数据,例如完整性数据(例如,错误检测或校正码数据)、地址数据(例如,逻辑地址数据等)或与用户数据相关联的其它元数据。
53.不同类型的存储器单元可提供不同的页大小,或可能需要与所述页大小相关联的不同量的元数据。举例来说,不同存储器装置类型可具有不同位错误率,这可能使得需要不同量的元数据来确保数据页的完整性(例如,相比于具有较低位错误率的存储器装置,具有较高位错误率的存储器装置可能需要更多字节的错误校正码数据)。作为实例,多层级单元(mlc)nand快闪装置可具有比对应单层级单元(slc)nand快闪装置高的位错误率。由此,相比于对应slc装置,mlc装置可能需要更多的元数据字节用于错误数据。
54.图2说明根据本公开的一些实例的nand架构半导体存储器阵列300的一部分的实例示意图,其包含布置于串(例如,串205到207)和层次(例如,说明为相应字线(wl)wl0210到wl7 217、漏极侧选择栅极(sgd)线225、源极侧选择栅极(sgs)线230等)的二维阵列中的多个存储器单元202,以及感测放大器或装置260。举例来说,存储器阵列200可说明来自图1的存储器裸片130的存储器单元的一个物理页的一部分的实例示意图。
55.每一存储器单元串使用相应源极侧选择栅极(sgs)(例如,sgs 231到233)耦合到源极线(src)235,且使用相应漏极侧选择栅极(sgd)(例如,sgd 226到228)耦合到相应数据线(例如,位线(bl)bl0 220到bl2 222)。虽然在图2的实例中说明为具有8个层次(例如,使用字线(wl)wl0 210到wl7 217)和三个数据线(bl0 226到bl2 228),但其它实例按需要可以包含具有更多或更少层次或数据线的存储器单元串。
56.在例如实例存储器阵列200等nand架构半导体存储器阵列中,可通过感测与含有选定存储器单元的特定数据线相关联的电流或电压变化来存取选定存储器单元202的状态。可使用一或多个驱动器(例如,通过控制电路、一或多个处理器、数字逻辑等)来存取存储器阵列200。在实例中,一或多个驱动器可通过取决于需要对特定存储器单元或存储器单元组执行的操作的类型而将特定电位驱动到一或多个数据线(例如,位线bl0到bl2)、存取线(例如,字线wl0到wl7)或选择栅极来激活特定存储器单元或存储器单元组。
57.为了将数据编程或写入到存储器单元,可将编程电压(vpgm)(例如,一或多个编程脉冲等)施加到选定字线(例如,wl4),且因此施加到耦合到选定字线的每一存储器单元的控制栅极(例如,耦合到wl4的存储器单元的控制栅极(cg)241到243)。举例来说,编程脉冲可以在15v处或附近开始,并且在某些实例中,可以在每一编程脉冲施加期间增加量值。当将编程电压施加到选定字线时,可将例如接地电位(例如,vss)等电位施加到数据线(例如,位线)和作为编程的目标的存储器单元的衬底(且因此源极与漏极之间的通道),从而引起从所述通道到目标存储器单元的电荷存储结构的电荷转移(例如,直接注入或福勒

诺德海
姆(fowler

nordheim,fn)隧穿等)。此类电荷存储结构可包含例如相应存储器单元的浮动栅极或电荷阱区。在浮动栅极存储器单元中,电荷存储在隔离多晶硅结构中;而在电荷阱存储器单元中,电荷通常存储在介电结构中。
58.相比之下,可将传递电压(vpass)施加到具有并不作为编程的目标的存储器单元的一或多个字线,或可将禁止电压(例如,vcc)施加到具有并不作为编程的目标的存储器单元的数据线(例如,位线),以例如禁止电荷从通道转移到此类非目标存储器单元的电荷存储结构。传递电压可以取决于例如施加的传递电压与作为编程的目标的字线的接近度而变化。禁止电压可包含电源电压(vcc),例如,相对于接地电位(例如,vss)来自外部源或电源(例如,电池、ac

dc转换器等)的电压。
59.作为实例,如果将编程电压(例如,15v或更高)施加到特定字线,例如wl4,那么可将10v的传递电压施加到一或多个其它字线,例如wl3、wl5等,以禁止非目标存储器单元的编程,或保持并不作为编程的目标的此类存储器单元上存储的值。随着所施加编程电压与非目标存储器单元之间的距离增大,制止对非目标存储器单元进行编程所需的传递电压可减小。举例来说,在将15v的编程电压施加到wl4的情况下,可将10v的传递电压施加到wl3和wl5,可将8v的传递电压施加到wl2和wl6,可将7v的传递电压施加到wl1和wl7等。在其它实例中,传递电压或字线的数目等可更高或更低,或更多或更少。
60.耦合到数据线(例如,第一位线、第二位线或第三位线(bl0到bl2)220到222)中的一或多个的感测放大器260可通过感测特定数据线上的电压或电流来检测相应数据线中的每一存储器单元的状态。
61.在一或多个编程脉冲(例如,vpgm)的施加之间,可以执行验证操作以确定选定存储器单元是否已达到其预期经编程状态。如果选定存储器单元已达到其预期经编程状态,则可禁止其进一步编程。如果选定存储器单元尚未达到其预期经编程状态,则可施加额外编程脉冲。如果选定存储器单元在特定数目的编程脉冲(例如,最大数目)之后尚未达到其预期经编程状态,那么可以将选定存储器单元或与此类选定存储器单元相关联的串、块或页标记为有缺陷的。
62.对于单层级单元(slc),存在两个编程到单元中的可能的电压电平,一个电压电平表示二进制
‘1’
,且另一电压电平表示二进制
‘0’
。对于多层级单元(mlc),存在编程到单元中的四个可能的电压电平。四个可能的电压电平表示

00’、

01’、

10’和

11’。为了对mlc单元进行编程,施加多个编程脉冲。第一脉冲对表示单元的最高有效位或最低有效位的第一数据“页”进行编程。第二脉冲对表示单元的未由第一脉冲编程的另一位的第二数据“页”进行编程。类似地,三层级单元(tlc)存储八个可能的电压电平,且四层级单元(qlc)存储16个可能的电压电平。
63.为了读取存储在一或多个存储器单元中的值,将读取电压施加到选定单元的字线。如果存储在字线的单元中的电压大于读取电压,那么单元将电压传递到感测放大器。对于slc单元,将读取电压选择为在表示
‘1’

‘0’
的两个电压之间。对于mlc、tlc和qlc,使用多个读取操作来读取存储在单元中的每一位,每一读取操作利用不同的读取电压。
64.为了擦除存储器单元或存储器单元群组(例如,通常以块或子块执行擦除),可将擦除电压(vers)施加到作为擦除的目标的存储器单元的衬底(且因此源极与漏极之间的通道)(例如,使用一或多个位线、选择栅极等),同时目标存储器单元的字线保持在例如接地
电位(例如,vss)等电位下,从而引起从目标存储器单元的电荷存储结构到通道的电荷转移(例如,直接注入或福勒

诺德海姆(fn)隧穿等)。
65.图3说明包含数个存储器单元串(例如,a0存储器串305a0到307a0、a
n
存储器串305a
n
到307a
n
、b0存储器串305b0到307b0、b
n
存储器串305b
n
到307b
n
等)的3d nand架构半导体存储器阵列300的实例示意图,所述存储器单元串组织成块(例如,块a 301a、块b 301b等)和子块(例如,子块a
0 301a0、子块a
n 301a
n
、子块b
0 301b0、子块b
n 301b
n
等)。存储器阵列300表示通常在存储器装置的块、装置或其它单元中发现的较大数目的类似结构的一部分。
66.每一存储器单元串包含以源极到漏极方式在z方向上堆叠于源极线(src)335或源极侧选择栅极(sgs)(例如,a0sgs 331a0到333a0、a
n sgs 331a
n
到333a
n
、b0sgs 331b0到333b0、b
n sgs 231b
n
到233b
n
等)与漏极侧选择栅极(sgd)(例如,a0sgd 326a0到328a0、a
n sgd 326a
n
到328a
n
、b0sgd 326b0到328b0、b
n sgd 326b
n
到328b
n
等)之间的电荷存储晶体管(例如,浮动栅极晶体管、电荷捕集结构等)的数个层次。3d存储器阵列中的每一存储器单元串可沿着x方向布置为数据线(例如,位线(bl)bl0 320到bl2322),且沿着y方向布置为物理页。
67.在物理页内,每一层次表示一行存储器单元,且每一存储器单元串表示一列。子块可包含一或多个物理页。块可包含数个子块(或物理页)(例如,128、256、384等)。尽管本文中说明为具有两个块,每一块具有两个子块,每一子块具有单个物理页,每一物理页具有三个存储器单元串,且每一串具有8个层次的存储器单元,但在其它实例中,存储器阵列300可包含更多或更少的块、子块、物理页、存储器单元串、存储器单元或层次。举例来说,每一存储器单元串按需要可包含更多或更少层次(例如,16、32、64、128等),以及电荷存储晶体管(例如,选择栅极、数据线等)上方或下方的半导体材料的一或多个额外层次。作为实例,48gb tlc nand存储器装置可包含每页18,592字节(b)的数据(16,384+2208字节)、每块1536页、每平面548块,和每装置4个或更多个平面。
68.存储器阵列300中的每一存储器单元包含耦合到(例如,以电或另外以操作方式连接到)存取线(例如,字线(wl)wl0
0 310a到wl7
0 317a、wl0
1 310b到wl7
1 317b等)的控制栅极(cg),所述存取线按需要跨越特定层次或层次的一部分共同地耦合控制栅极(cg)。可使用相应存取线来存取或控制3d存储器阵列中的特定层次,且因此存取或控制串中的特定存储器单元。可使用各种选择线来存取多组选择栅极。举例来说,可使用a0sgd线sgda
0 325a0来存取a0sgd 326a0到328a0,可使用sgd线sgda
n 325a
n
来存取a
n sgd 326a
n
到328a
n
,可使用b0sgd线sgdb
0 325b0来存取b0sgd 326b0到328b0,且可使用b
n sgd线sgdb
n 325b
n
来存取b
n sgd 326b
n
到328b
n
。可使用栅极选择线sgs
0 330a来存取a0sgs 331a0到333a0和a
n sgs 331a
n
到333a
n
,且可使用栅极选择线sgs
1 330b来存取b0sgs 331b0到333b0和b
n sgs 331b
n
到333b
n

69.在实例中,存储器阵列300可包含数个层级的半导体材料(例如,多晶硅等),其经配置以耦合阵列的相应层次的每一存储器单元的控制栅极(cg)或选择栅极(或者cg或选择栅极的一部分)。可以使用位线(bl)和选择栅极等的组合来存取、选择或控制阵列中的特定存储器单元串,且可使用一或多个存取线(例如,字线)来存取、选择或控制特定串中的一或多个层次处的特定存储器单元。
70.图4说明根据本公开的一些实例的存储器裸片400的实例框图。存储器裸片400可为图1的存储器裸片130a到130n+1的一个实例。存储器裸片400可包含具有多个存储器单元
404的存储器阵列402,以及用以提供与存储器阵列402的通信或对存储器阵列402执行一或多个存储器操作的一或多个电路或组件。存储器裸片400可包含行解码器412、列解码器414、感测放大器420、页缓冲器422、选择器424、输入/输出(i/o)电路426和呈存储器控制单元430的形式的专用存储器控制器,包含潜在地包含一或多个处理器的处理电路系统,如本文中早先所描述。
71.存储器阵列402的存储器单元404可布置在块中,例如第一块402a和第二块402b。每一块可包含子块。举例来说,第一块402a可包含第一子块402a0和第二子块402a
n
,且第二块402b可包含第一子块402b0和第二子块402b
n
。每一子块可包含数个物理页,每一页包含数个存储器单元404。虽然本文中说明为具有两个块,每一块具有两个子块,且每一子块具有数个存储器单元404,但在其它实例中,存储器阵列402可包含更多或更少的块、子块、存储器单元等。在其它实例中,存储器单元404可按数个行、列、页、子块、块等布置,且使用例如存取线406、第一数据线410或一或多个选择栅极、源极线等存取。
72.存储器控制单元430可根据利用存储器控制器在存储器接口处(如关于图1的存储器装置100的控制器105和主机接口123所描述)在控制线432上接收的一或多个信号和/或指令/命令控制存储器裸片400的存储器操作。此类信号和/或指令可包含例如指示所要操作(例如,写入、读取、擦除等)的一或多个时钟信号和/或控制信号,或者在一或多个地址线416上接收的地址信号(a0到ax)。在存储器裸片400外部的一或多个装置可控制控制线432上的控制信号或地址线416上的地址信号的值。在存储器裸片400外部的装置的实例可包含但不限于主机、存储器控制器、处理器或图4中未说明的一或多个电路或组件。
73.存储器裸片400可使用存取线406和第一数据线410向(例如,写入或擦除)或从(例如,读取)存储器单元404中的一或多个传送数据。行解码器412和列解码器414可从地址线416接收地址信号(a0到ax)并对其进行解码,可确定将存取哪些存储器单元404,且可向存取线406(例如,多个字线(wl0到wlm)中的一或多个)或第一数据线410(例如,多个位线(bl0到bln)中的一或多个)中的一或多个提供信号,如上文所描述。
74.存储器裸片400可包含感测电路系统,例如感测放大器420,其经配置以确定使用第一数据线410的存储器单元404上的数据的值(例如,读取),或确定待写入到存储器单元404的数据的值。举例来说,在存储器单元404的选定串中,感测放大器420中的一或多个可响应于读取电流在存储器阵列402中穿过选定串流动到数据线410来读取选定存储器单元404中的逻辑电平。
75.在存储器裸片400外部的一或多个装置(例如,控制器105)可使用i/o线(dq0

dqn)408、地址线416(a0

ax)或控制线432与存储器裸片400通信。输入/输出(i/o)电路426可根据例如控制线432和地址线416使用i/o线408将数据值传送到存储器裸片400中或从其中传送数据值,例如将数据值传送到页缓冲器422或存储器阵列402中或从其中传送数据值。页缓冲器422可在数据被编程到存储器阵列402的相关部分中之前存储从存储器裸片400外部的一或多个装置接收的数据,或可在数据被传输到存储器裸片400外部的一或多个装置之前存储从存储器阵列402读取的数据。
76.列解码器414可接收地址信号(a0到ax)且将其解码为一或多个列选择信号(csel1到cseln)。选择器424(例如,选择电路)可接收列选择信号(csel1到cseln)且选择页缓冲器422中表示待从存储器单元404读取或待编程到存储器单元404中的数据的值的数据。选定
数据可使用第二数据线418在页缓冲器422与i/o电路426之间传送。在一些实例中,快闪转换层(未示出)可将由主机提供的地址映射到由行解码器412和列解码器414使用以读取存储器阵列402中的数据的物理存储器地址。
77.存储器控制单元430可从外部源或电源(例如,内部或外部电池、ac

dc转换器等)接收正和负电源信号,例如电源电压(vcc)434和负电源(vss)436(例如,接地电位)。在某些实例中,存储器控制单元430可包含调节器428以在内部提供正或负电源信号。
78.存储器控制单元430可利用随机存取存储器(ram)(例如,sram 431)来辅助执行操作以控制存储器裸片400的存储器操作。举例来说,sram 431可存储一或多个指令、工作值和其它计算。存储器控制单元430可执行软件指令集,例如可完全或部分地驻留在sram 431上、存储器控制单元430内(例如,专用寄存器、rom、快闪或其它专用存储器中)、一或多个存储器单元(例如,存储器单元404)内等等的微码。sram 431可存储由存储器控制单元430使用以临时存储正从存储器单元(例如,存储器单元404)读取或写入到存储器单元的数据的一或多个页缓冲器。
79.软件指令集更新
80.如先前所提及,本公开允许更新nand裸片的微处理器上的软件指令集。例如,来自图4的存储器控制单元430、i/o电路426等的软件指令集。如先前所描述,存储器装置的控制器(例如,控制器105)可将软件指令集更新加载到一或多个存储器裸片(例如,图1的存储器裸片130a到130n+1,或存储器裸片400)的页缓冲器。一旦将软件指令集更新加载到页缓冲器中的一或多个中,存储器装置便可针对存储器裸片发出将软件指令集更新为更新后的软件指令集的指令。
81.在一些实例中,存储器裸片可在更新之前对软件指令集更新执行错误检测和/或校正操作。举例来说,软件指令集更新可包含软件指令集更新和软件指令集更新的逆操作两者。举例来说,如果软件指令集更新的字节为01010101,那么逆操作为10101010。存储器裸片接着可通过将软件指令集更新与软件指令集更新的逆操作的逆操作进行比较来检查软件指令集更新。如果逆操作的逆操作不等于软件指令集更新,那么存在错误。在其它实例中,软件指令集更新可利用逆操作进行异或运算。如果结果全为1,那么完整性检查合格,否则完整性检查不合格。包含软件指令集更新和软件指令集更新的逆操作的技术对于例如nand装置等存储器装置可为有益的,这是因为这些装置上的错误往往在相同方向上(例如,一转变成零,或零转变成一,但两个位在相反方向上反转的几率较低)。可例如通过发送软件指令集更新的冗余副本来使用其它完整性检查。
82.发现的错误可能会使错误消息发送到控制器,或在其它实例中,存储器裸片可校正软件指令集中的错误。例如,通过确定软件指令集与软件指令集的逆操作之间的哪些位不匹配。在其它实例中,由控制器发送的软件指令集更新可具有与软件指令集更新相关联的一或多个奇偶校验位,使得可利用奇偶校验位来校正错误地接收或存储的任何位。在其它实例中,软件指令集更新可具有多个副本,使得在一个副本含有错误的情况下,可使用下一副本。
83.图5说明根据本公开的一些实例的控制器更新一或多个存储器裸片的软件指令集的方法500的流程图。在操作510处,控制器可确定存储器装置的一或多个存储器裸片的软件指令集的更新得以指示。举例来说,软件指令集更新可存在于控制器的固件更新中。在应
用固件更新后,固件更新可包含供控制器将软件指令集更新应用于存储器裸片的指令。在其它实例中,软件指令集更新可与固件更新分离(例如,使用专用命令从主机加载到固件)。在一些实例中,不同裸片可具有不同软件指令集版本,且可能只有某些裸片需要更新。控制器能够查询来自存储器裸片的软件指令集版本,且确定将软件指令集更新应用于哪一或多个存储器裸片。软件指令集更新可应用于某些固件版本(例如,较早版本)。
84.对于存储器装置中待更新的每一特定裸片,控制器可应用操作514和516。在操作514处,控制器可使软件指令集更新加载到特定存储器裸片的一或多个页缓冲器中。在操作516处,控制器可发出使存储器裸片将软件指令集更新为一或多个页缓冲器中的版本的命令。命令可包含软件指令集更新在一或多个页缓冲器中的位置。例如,特定页缓冲器、特定页缓冲器范围等等。在一些实例中,存储器裸片可具有多个平面,且每一平面可具有不同页缓冲器。命令可包含识别页缓冲器集合(例如,页缓冲器含有更新的平面)。另外,软件指令集更新可在多个页缓冲器当中展开。举例来说,软件指令集更新可能不适合于单一平面的页缓冲器。在这些实例中,命令可识别软件指令集更新所在的每一页缓冲器。在一些实例中,可预定应用软件指令集更新的次序(例如,在平面0处开始,接着从平面1应用软件指令集更新,以此类推);在其它实例中,次序可由控制器在命令中指定。如所提及,在一些实例中,操作514和516可为相同操作,其中控制器指示存储器裸片将软件指令集更新加载到页缓冲器中且应用软件指令集更新。在一些实例中,可通过改写nand裸片的静态锁存器来应用软件指令集更新。
85.对于需要更新的每一裸片重复操作514和516。在一些实例中,控制器可等待指示存储器裸片已开始或即将开始软件指令集更新的响应,随后进行到下一存储器裸片。在一些实例中,控制器可等待指示存储器裸片已完成更新的响应,随后移动到下一裸片上。在其它实例中,控制器可不等到存储器裸片已完成更新才移动到下一裸片上,以便允许每一裸片彼此同时更新,进而改进软件指令集更新的并行性。
86.在一些实例中,存储器裸片可发送指示更新是成功还是失败的消息。对于更新失败的存储器裸片,控制器可重试更新,或可执行一或多个失败操作,例如将失败消息发送到主机装置。对于一或多个重试操作,控制器可将软件指令集更新加载到不同页缓冲器、裸片上的不同存储器单元等等(例如,软件指令集更新可能已被不良sram、不良存储器单元等等损坏)。在一些实例中,重试可具有额外错误校正保护(例如,额外奇偶校验位)等等。在一些实例中,如果首先将软件指令集更新加载到mlc、tlc或qlc存储器单元,那么软件指令集更新可加载到每单元存储较少位的单元(例如,slc)以用于重试。
87.图6说明根据本公开的一些实例的将软件指令集更新加载到存储器裸片的页缓冲器中的方法600的流程图。在操作610处,控制器发送将软件指令集更新写入到存储器裸片的存储器阵列的存储器位置中的写入请求。举例来说,对于nand存储器装置,软件指令集更新存储在构成由存储器裸片提供的nand存储装置的nand快闪单元上。在操作620处,存储器裸片可提供指示软件指令集更新已被写入的响应。在一些实例中,不存在响应且可省略操作620。在一些实例中,控制器可指示物理地址上的存储器裸片存储软件指令集更新。在其它实例中,存储器裸片可选择位置且在响应中提供所述位置。在一些实例中,当存储器裸片将数据加载到页缓冲器中以便写入数据时,页缓冲器可借助于所执行的写入命令而含有软件指令集更新。在这些实例中,控制器可指示裸片(例如,在图5的操作516处)更新来自页缓
冲器的软件指令集而不在操作630处发送将软件指令集更新移动到页缓冲器的命令。
88.如先前所提及,控制器可基于由存储器裸片接收的响应、由控制器对存储器裸片进行的查询(对提供一或多个页缓冲器的查询的响应)、基于控制器知道如何由存储器裸片填充页缓冲器,或基于显式命令(例如,写入命令可指定在软件指令集更新被写入到nand阵列之前用所述软件指令集更新加载特定页缓冲器)等等而知道恰当页缓冲器。
89.在控制器由于写入命令而不知道页缓冲器位置或不信任软件指令集更新处于恰当页缓冲器中的实例中,控制器可在操作630处发出将软件指令集更新从存储器单元移动到一或多个页缓冲器的命令。这可为供应特定页缓冲器的特定命令,或在存储器控制器希望利用读取页缓冲器来加载软件指令集更新的情况下可为读取命令。同样,对于读取页缓冲器,控制器可基于由存储器裸片接收的响应、由控制器对存储器裸片进行的查询(对提供一或多个页缓冲器的查询的响应)、基于控制器知道如何由存储器裸片填充页缓冲器,或基于显式命令(例如,操作630处的命令可指定在软件指令集更新被写入到nand阵列之前用所述软件指令集更新加载特定页缓冲器)等等而知道恰当页缓冲器。
90.图7说明根据本公开的一些实例的将软件指令集更新加载到存储器裸片的页缓冲器中的方法700的流程图。在操作710处,控制器可发送将软件指令集更新加载到存储器裸片的页缓冲器的请求。请求可包含识别要将软件指令集更新加载到其中的特定页缓冲器(或起始页缓冲器)。在操作715处,一旦接收到响应,就可应用更新。此时,控制器可发出更新软件指令集的命令(例如,在图5的操作516处)。
91.如先前所描述,更新可以是对软件指令集的整体更新,但在其它实例中,更新可更新软件指令集的一或多个部分。举例来说,软件指令集更新的有效负载可指定到当前软件指令集中的偏移,更新根据所述偏移进行改写。举例来说,偏移可以是从当前代码开始的字节数目,且软件指令集更新可指定要在所述时间插入或改写的指令或指令块。
92.如先前所描述,在更新之前,用软件指令集更新加载页缓冲器。在软件指令集更新已经加载到存储器裸片的存储器单元的其它实例中,可用存储器裸片的存储器单元中的软件指令集更新的地址加载页缓冲器,或可在由控制器发送的命令中提供地址。在一些实例中,存储器裸片将指令集更新从给定地址加载到页缓冲器中且应用所述更新。在其它实例中,存储器裸片可接着直接从存储器单元加载软件指令集更新,而不首先将软件指令集更新传送到页缓冲器。
93.在一些实例中,存储器裸片可具有每存储器裸片多个平面。每一平面可具有其自身的页缓冲器。指示存储器裸片将软件指令集更新加载到页缓冲器的命令以及指示存储器裸片应用软件指令集更新的命令可(例如,通过供应平面编号)指定要使用的页缓冲器。在一些实例中,还供应页缓冲器上的位置。在一些实例中,软件指令集更新可足够大,使得其跨越多个平面的多个页缓冲器展开。命令可指定特定平面以及软件指令集更新在那些平面的页缓冲器中的位置。在一些实例中,指令集更新可足够大,使得其需要多个操作来完成整个软件指令集的加载。在一些实例中,在软件指令集更新跨越多个平面中的页缓冲器分段的情况下,可由控制器或在软件指令集更新自身内将区段的排序提供到存储器裸片,使得存储器裸片知道如何按次序重新汇编所述片段。
94.在软件指令集更新在加载到页缓冲器之前存储在存储器装置的存储器单元上的实例中,存储器单元在一些实例中可为slc单元。在其它实例中,存储器单元可为mlc、tlc或
qlc存储器单元。在一些实例中,无论存储器单元是slc、mlc、tlc还是qlc,都可应用额外错误检测和校正译码以确保软件指令集更新在更新之前的完整性。
95.图8说明根据本公开的一些实例的更新存储器装置中的多个存储器裸片上的软件指令集的过程的消息序列图800。消息序列图800说明多个存储器裸片同时更新其软件指令集的并行方法。控制器802发送将软件指令集更新加载到存储器裸片1 804且发起对所述存储器裸片的更新的一或多个消息810。控制器接着发送将软件指令集更新加载到软件指令集更新且发起对存储器裸片2 806的软件指令集更新的一或多个消息812。此过程针对存储器裸片2 806与存储器裸片n 808之间的未展示存储器裸片继续,直到使用一或多个消息814指示要更新的最后一个存储器裸片(存储器裸片n 808)为止。每一存储器裸片804接着开始独立地更新存储器裸片上的软件指令集。也就是说,当控制器加载且指示其它存储器裸片更新其软件指令集时,且当其它存储器裸片更新其软件指令集时,存储器裸片1 804开始更新软件指令集。也就是说,一旦由控制器指示,在存储器裸片上更新软件指令集的过程就独立于其它裸片执行且可并行地执行。一旦完成存储器裸片1 804,其就可发送指示更新成功或失败的状态消息816。一旦完成存储器裸片2806,其就可发送指示更新成功或失败的状态消息818。可针对存储器裸片2与存储器裸片n之间的未展示存储器裸片接收另外的状态消息。一旦完成存储器裸片n 808,其就可发送指示更新成功或失败的状态消息820。因此,即使软件指令集更新可能相当大,使用页缓冲器来存储更新也可允许跨越存储器裸片进行并行更新。
96.如先前所提及,图5到8的方法可用于更新nand裸片中的其它信息。例如,加载到锁存器的信息,例如关于用哪些nand存储器列来换出冗余列(例如,由于错误)的更新冗余列(修复列)信息;关于用哪些nand存储器块换出冗余块的冗余块(修复块)信息;关于哪些块不可操作以不允许客户使用那些块的块标记(不良块)信息;定义装置的页映射(即,块中的每一逻辑页的物理字线和/或超级块位置)的页映射锁存器(逻辑到物理转换);等等。举例来说,可在裸片制造时设置这些值。这些值是实例,且得益于本公开的所属领域的一般技术人员将了解,可以相同方式更新其它信息。
97.图9说明可对其执行本文中所论述的技术(例如,方法)中的任何一或多种的实例机器900的框图。机器900可以是主机装置(例如主机装置135),其中实例机器900的存储器单元(主存储器904、静态存储器906和/或存储装置921)中的一或多个可经由实施例如本文中关于图1到8所论述的技术的存储器来实施。图1到8中所说明的各种存储器装置可包含机器900的一或多个组件。举例来说,处理器902可为图1的处理器115的实例;主存储器904;静态存储器906可为随机存取存储器120的实例。存储装置921(例如,大容量存储装置)可为图1的存储器裸片130a到130n的实例。互连件908可为存储器裸片总线127的实例;网络接口装置920可为主机接口123的实例;等等。机器900上展示的其它组件在一些实例中可包含在存储器装置上,或在其它实例中可不包含在存储器装置上。
98.在替代实施例中,机器900可作为主机中的存储器装置、独立存储器装置、独立主机装置操作,或可为连接到其它机器的计算装置(例如,联网的主机)。在联网部署中,机器900可在服务器

客户端网络环境中以服务器机器、客户端机器或这两者的容量操作。在实例中,机器900可充当对等(p2p)(或其它分布式)网络环境中的对等机器。机器900可以是:存储器装置;主机装置,例如个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、
移动电话、网络器具、iot装置、汽车系统等等;或能够(按顺序或以其它方式)执行指定将由所述机器采取的动作的指令的任何机器。此外,虽然仅说明单个机器,但术语“机器”还应被视为包含单独或联合执行一组(或多组)指令以执行本文中所论述的方法论中的任何一种或多种的任何机器集合,例如云计算、软件即服务(saas)、其它计算机集群配置。
99.如本文中所描述,实例可包含逻辑、组件、装置、封装或机构(下文中称为“电路系统”),或者可通过逻辑、组件、装置、封装或机构操作。电路系统为在包含硬件(例如,简单电路、栅极、逻辑等)的有形实体中实施的电路的总集(例如,集合)。电路系统成员可以随时间和基础硬件可变性而为灵活的。电路系统包含在操作时可单独或组合地执行特定任务的部件。在实例中,可以不可改变的方式设计电路系统的硬件以进行特定操作(例如,硬连线)。在实例中,电路系统的硬件可以包含可变地连接的物理组件(例如,执行单元、晶体管、简单电路等),所述物理组件包含以物理方式修改(例如,不变集中式粒子的磁性、电气可移动放置等)以对特定操作的指令进行编码的计算机可读媒体。在连接物理组件时,改变硬件组成部分的基本电性质,例如从绝缘体变为导体,或反之亦然。指令使得参与的硬件(例如,执行单元或加载机构)能够经由可变连接创建硬件中的电路系统部件以当在操作中时实行特定任务的部分。因此,当装置操作时,计算机可读媒体以通信方式耦合到电路系统的其它组件。在实例中,物理组件中的任一个可以用于多于一个电路系统中的多于一个部件中。举例来说,在操作下,执行单元可在一个时间点用于第一电路系统中的第一电路,且由第一电路系统中的第二电路重新使用,或在不同时间由第二电路系统中的第三电路重新使用。
100.机器(例如,计算机系统)900(例如,主机装置135、存储器装置100等)可包含硬件处理器902(例如,中央处理单元(cpu)、图形处理单元(gpu)、硬件处理器核心或其任何组合,例如处理器115等)、主存储器904和静态存储器906,其中的一些或全部可经由互连件(例如,总线)908彼此通信。机器900可进一步包含显示单元910、字母数字输入装置912(例如,键盘)和用户界面(ui)导航装置914(例如,鼠标)。在实例中,显示单元910、输入装置912和ui导航装置914可以是触摸屏显示器。机器900可另外包含大容量存储装置(例如,驱动单元)921、信号产生装置918(例如,扬声器)、网络接口装置920和一或多个传感器916,例如全球定位系统(gps)传感器、指南针、加速度计或其它传感器。机器900可包含输出控制器928,例如串行(例如,通用串行总线(usb)、并行或其它有线或无线(例如,红外(ir)、近场通信(nfc)等)连接,以连通或控制一或多个外围装置(例如,打印机、读卡器等)。
101.存储装置916可以包含机器可读媒体922,其上存储有体现本文中所描述的技术或功能中的任何一或多个或由本文中所描述的技术或功能中的任何一或多个利用的一或多组数据结构或指令924(例如,软件)。指令924还可以在其由机器900执行期间完全或至少部分地驻留于主存储器904内、静态存储器906内或硬件处理器902内。在实例中,硬件处理器902、主存储器904、静态存储器906或存储装置916中的一个或任何组合可构成机器可读媒体922。
102.虽然机器可读媒体922被说明为单个媒体,但术语“机器可读媒体”可包含经配置以存储一或多个指令924的单个媒体或多个媒体(例如,集中或分布式数据库,或相关联高速缓冲存储器和服务器)。
103.术语“机器可读媒体”可包含能够存储、编码或携载供机器900执行的指令且使机器900执行本公开的技术中的任何一或多种或能够存储、编码或携载由此类指令使用或与
此类指令相关联的数据结构的任何媒体。机器可读媒体可包含非暂时性机器可读媒体、存储装置、存储媒体等等。非限制性机器可读媒体实例可以包含固态存储器以及光学和磁性媒体。在实例中,集中式机器可读媒体包括具有多个粒子的机器可读媒体,所述粒子具有不变(例如,静止)质量。因此,集中式机器可读媒体为非暂时性传播信号。集中式机器可读媒体的特定实例可以包含:非易失性存储器,例如半导体存储器装置(例如,电可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom))和快闪存储器装置;磁盘,例如内部硬盘和可移动磁盘;磁光盘;以及cd

rom和dvd

rom磁盘。
104.指令924(例如,软件、程序、操作系统(os)等)或存储在存储装置921上的其它数据可由主存储器904存取以供处理器902使用。主存储器904(例如,dram)通常快速但易失,且因此为与适用于长期存储(包含在处于“关断”条件中时)的存储装置921(例如,ssd)不同类型的存储装置。供用户或机器900使用的指令924或数据通常加载在主存储器904中,以供处理器902使用。在主存储器904已满时,可分配来自存储装置921的虚拟空间以补充主存储器904;然而,因为存储装置921通常比主存储器904慢且写入速度通常比读取速度慢至少两倍,所以虚拟存储器的使用由于存储装置时延(相比于主存储器904,例如dram)可能极大地降低用户体验。此外,用于虚拟存储器的存储装置921的使用可能极大地减少存储装置921的可用使用寿命。
105.相比于虚拟存储器,虚拟存储器压缩(例如,内核特征“zram”)使用存储器的部分作为压缩块存储以避免寻呼到存储装置921。在压缩块中进行寻呼,直至有必要将此类数据写入到存储装置921为止。虚拟存储器压缩增大主存储器904的可用大小,同时减少对存储装置921的损耗。
106.针对移动电子装置或移动存储装置而优化的存储装置传统上包含mmc固态存储装置(例如,微安全数字(microsd
tm
)卡等)。mmc装置包含与主机装置的数个并行接口(例如,8位并行接口),且通常是可从主机装置移除且与主机分离的组件。相比之下,emmc
tm
装置附接到电路板且被视为主机装置的组件,其读取速度比得上基于串行ata
tm
(串行高级技术(at)附件,或sata)的ssd装置。然而,对移动装置性能的需求继续增加,以便完全启用虚拟或扩增现实装置,利用提高的网络速度等。响应于此需求,存储装置已从并行通信接口转换到串行通信接口。包含控制器和固件的通用快闪存储(ufs)装置使用具有专用读取/写入路径的低电压差分信令(lvds)串行接口与主机装置通信,进一步推进了更高的读取/写入速度。
107.可以进一步利用数个传送协议中的任一个(例如,帧中继、因特网协议(ip)、传输控制协议(tcp)、用户数据报协议(udp)、超文本传送协议(http)等)经由网络接口装置920使用传输媒体在通信网络926上传输或接收指令924。实例通信网络可以包含局域网(lan)、广域网(wan)、分组数据网络(例如,因特网)、移动电话网络(例如,蜂窝网络)、普通传统电话(pots)网络和无线数据网络(例如,称为的电气电子工程师学会(ieee)802.11系列标准、称为的ieee 802.16系列标准)、ieee 802.15.4系列标准、对等(p2p)网络等等。在实例中,网络接口装置920可以包含一或多个物理插口(例如,以太网、同轴或电话插口)或一或多个天线以连接到通信网络926。在实例中,网络接口装置920可以包含多个天线以使用单输入多输出(simo)、多输入多输出(mimo)或多输入单输出(miso)技术中的至少一种进行无线通信。术语“传输媒体”应被视为包含能够存储、编码或携带指令以用于由机
器900执行的任何无形媒体,且包含数字或模拟通信信号或用以促进此类软件的通信的其它无形媒体。
108.以上详细描述包含对附图的参考,所述附图形成所述详细描述的一部分。图式借助于说明展示可实践本发明的特定实施例。这些实施例在本文中也称为“实例”。此类实例可包含除了所展示或所描述的那些元件之外的元件。然而,本发明人还预期其中仅提供所展示或所描述的那些元件的实例。此外,本发明人还预期使用相对于特定实例(或其一或多个方面)或相对于本文展示或描述的其它实例(或其一或多个方面)而展示或描述的那些元件的任何组合或排列的实例(或其一或多个方面)。
109.在本文件中,如专利文件中常见,使用术语“一”以包含一个或多于一个,这与“至少一个”或“一或多个”的任何其它例子或用途无关。在本文件中,术语“或”用于指代非排它性,或使得除非另有指示,否则“a或b”可包含“a而非b”、“b而非a”以及“a和b”。在所附权利要求书中,术语“包含”和“其中(in which)”用作相应术语“包括”和“其中(wherein)”的通俗等效术语。此外,在以下权利要求书中,术语“包含”和“包括”为开放式的,即,包含除权利要求书中在此术语之后列出的那些元件之外的元件的系统、装置、物品或过程仍被视为在权利要求书的范围内。此外,在以下权利要求书中,术语“第一”、“第二”和“第三”等仅用作标签,并且并不意图对其对象施加数字要求。
110.在各种实例中,本文中所描述的组件、控制器、处理器、单元、引擎或表可尤其包含存储在物理装置上的物理电路系统或固件。如本文中所使用,“处理器”意指任何类型的计算电路,例如但不限于微处理器、微控制器、图形处理器、数字信号处理器(dsp),或任何其它类型的处理器或处理电路,包含处理器或多核心装置群组。
111.根据本公开且在本文中所描述的各种实施例包含利用存储器单元的竖直结构(例如,存储器单元的nand串)的存储器。如本文中所使用,将采用相对有存储器单元形成在上面的衬底的表面的方向性形容词(即,竖直结构将被视为远离衬底表面而延伸,竖直结构的底端将被视为最接近衬底表面的端部,并且竖直结构的顶端将被视为最远离衬底表面的端部)。
112.如本文中所使用,方向性形容词,例如水平、竖直、正交、平行、垂直等,可指相对定向,并且除非另外指出,否则并不意图要求严格遵守具体几何性质。举例来说,如本文中所使用,竖直结构无需精确地垂直于衬底的表面,而是可替代地大体上垂直于衬底的表面,并且可与衬底的表面形成锐角(例如,在60度与120度之间,等)。
113.如本文中所使用,操作存储器单元包含从存储器单元读取、写入到存储器单元或擦除存储器单元。使存储器单元置于预期状态中的操作在本文中被称作“编程”,且可包含写入到存储器单元或从存储器单元擦除(例如,存储器单元可经编程为被擦除状态)。
114.将理解,当一元件被称为“在另一元件上”、“连接到另一元件”或“与另一元件耦合”时,其可直接在另一元件上、与另一元件直接连接或耦合,或者可存在中间元件。相比之下,当一元件被称为“直接”在另一元件“上”、“直接连接到”或“直接耦合到”另一元件时,不存在中间元件或层。如果两个元件在图式中展示为被线连接,那么除非另外指示,否则所述两个元件可耦合或直接耦合。
115.本文中所描述的方法实例可至少部分地由机器或计算机实施。一些实例可包含编码有指令的计算机可读媒体或机器可读媒体,所述指令可操作以配置电子装置以执行如在
以上实例中描述的方法。此类方法的实施方案可包含代码,例如微码、汇编语言代码、高级语言代码等等。此类代码可包含用于执行各种方法的计算机可读指令。代码可以形成计算机程序产品的部分。此外,代码可例如在执行期间或在其它时间有形地存储在一或多个易失性或非易失性有形计算机可读媒体上。这些有形计算机可读媒体的实例可以包含但不限于:硬盘、可移动磁盘、可移动光盘(例如,压缩光盘和数字视频光盘)、盒式磁带、存储器卡或棒、随机存取存储器(ram)、只读存储器(rom)、固态驱动器(ssd)、通用快闪存储(ufs)装置、嵌入式mmc(emmc)装置等等。
116.以上描述既定是说明性的而非限制性的。例如,上述实例(或其一或多个方面)可以彼此组合使用。如所属领域的一般技术人员在查阅以上描述后可使用其它实施例。应理解,所述描述不会用于解释或限制权利要求书的范围或含义。另外,在以上具体实施方式中,可将各种特征分组在一起以简化本公开。此情况不应解释为期望未要求的公开特征对任何权利要求来说是必需的。实际上,本发明主题可在于比特定公开的实施例的所有特征要少。因此,特此将所附权利要求书并入到具体实施方式中,其中每一权利要求作为单独实施例而独立存在,且经考虑,这些实施例可以各种组合或排列彼此组合。本发明的范围应该通过参考所附的权利要求书以及所述权利要求书所授予的等效物的完整范围来确定。
117.其它注释及实例
118.实例1为一种存储器系统,其包括:存储器裸片,所述存储器裸片包括经配置以通过指令集执行一或多个操作的一或多个硬件处理器;存储器控制器,其包括一或多个硬件处理器,所述存储器控制器经配置以执行包括以下各项的操作:确定所述存储器裸片上的所述指令集的更新得以指示;将更新后的指令集加载到所述存储器裸片的页缓冲器中;以及使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集。
119.在实例2中,实例1的主题包含,其中确定所述存储器裸片上的所述指令集的所述更新得以指示的所述操作包括确定所述存储器裸片上的所述指令集的版本早于用所述存储器控制器的固件更新加载的版本。
120.在实例3中,实例1至2的主题包含,其中将所述更新后的指令集加载到所述存储器裸片的所述页缓冲器中的所述操作包括:将包含所述更新后的指令集的命令发送到所述存储器裸片,所述命令指示所述存储器裸片将所述更新后的指令集存储在所述页缓冲器中。
121.在实例4中,实例1至3的主题包含,其中将所述更新后的指令集加载到所述存储器裸片的所述页缓冲器中的所述操作包括:向所述存储器裸片发送将所述更新后的指令集写入到所述存储器裸片上的存储器阵列的写入命令;以及向所述存储器裸片发送指示所述存储器裸片将所述更新后的指令集从所述存储器裸片上的所述存储器阵列加载到所述页缓冲器的命令。
122.在实例5中,实例1至4的主题包含,其中使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集的所述操作包括更新所述存储器裸片的所有所述指令集。
123.在实例6中,实例1至5的主题包含,其中使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集的所述操作包括仅更新所述存储器裸片的所述指令集的一部分。
124.在实例7中,实例1至6的主题包含,其中仅更新所述存储器裸片的所述指令集的一
部分的所述操作包括:读取所述更新后的指令集以确定偏移;以及用所述更新后的指令集中的替换指令替换所述存储器裸片的所述指令集的地址处的指令。
125.在实例8中,实例1至7的主题包含,其中所述指令集为微码或固件指令。
126.在实例9中,实例1至8的主题包含,其中将更新后的指令集加载到所述存储器裸片的页缓冲器中且使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集的所述操作是在所述指令集被加载到nand裸片的存储器中之后执行的,且其中使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集的所述操作包括:用所述更新后的指令集改写静态存储器中的所述指令集。
127.在实例10中,实例1至9的主题包含,其中所述操作进一步包括:确定存储在所述存储器裸片上的只读存储器中的第一值的更新得以指示;将更新后的第一值加载到所述存储器裸片的页缓冲器中;以及使所述存储器裸片将所述第一值更新为所述页缓冲器中的所述更新后的第一值。
128.在实例11中,实例1至10的主题包含,其中使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集的所述操作包括:用所述更新后的指令集改写存储在所述nand裸片的多个锁存器中的所述指令集。
129.实例12为一种更新用于在存储器裸片上执行的指令的方法,其包括:在存储器控制器处,执行包括以下各项的操作:确定在所述存储器裸片上配置硬件处理器的指令集的更新得以指示;将更新后的指令集加载到所述存储器裸片的页缓冲器中;以及使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集。
130.在实例13中,实例12的主题包含,其中确定所述存储器裸片上的所述指令集的所述更新得以指示包括确定所述存储器裸片上的所述指令集的版本早于用所述存储器控制器的固件更新加载的版本。
131.在实例14中,实例12至13的主题包含,其中将所述更新后的指令集加载到所述存储器裸片的所述页缓冲器中包括:将包含所述更新后的指令集的命令发送到所述存储器裸片,所述命令指示所述存储器裸片将所述更新后的指令集存储在所述页缓冲器中。
132.在实例15中,实例12至14的主题包含,其中将所述更新后的指令集加载到所述存储器裸片的所述页缓冲器中包括:向所述存储器裸片发送将所述更新后的指令集写入到所述存储器裸片上的存储器阵列的写入命令;以及向所述存储器裸片发送指示所述存储器裸片将所述更新后的指令集从所述存储器裸片上的所述存储器阵列加载到所述页缓冲器的命令。
133.在实例16中,实例12至15的主题包含,其中使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集包括更新所述存储器裸片的所有所述指令集。
134.在实例17中,实例12至16的主题包含,其中使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集包括仅更新所述存储器裸片的所述指令集的一部分。
135.在实例18中,实例12至17的主题包含,其中仅更新所述存储器裸片的所述指令集的一部分包括:读取所述更新后的指令集以确定偏移;以及用所述更新后的指令集中的替换指令替换所述存储器裸片的所述指令集的地址处的指令。
136.在实例19中,实例12至18的主题包含,其中所述指令集为微码或固件指令。
137.在实例20中,实例12至19的主题包含,其中将更新后的指令集加载到所述存储器裸片的页缓冲器中且使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集是在所述指令集被加载到nand裸片的存储器中之后执行的,且其中使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集包括:用所述更新后的指令集改写静态存储器中的所述指令集。
138.在实例21中,实例12至20的主题包含,其中所述方法进一步包括:确定存储在所述存储器裸片上的只读存储器中的第一值的更新得以指示;将更新后的第一值加载到所述存储器裸片的页缓冲器中;以及使所述存储器裸片将所述第一值更新为所述页缓冲器中的所述更新后的第一值。
139.在实例22中,实例12至21的主题包含,其中使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集包括:用所述更新后的指令集改写存储在所述nand裸片的多个锁存器中的所述指令集。
140.实例23为一种非暂时性机器可读媒体,其存储指令,所述指令在由存储器装置的控制器执行时使所述控制器执行包括以下各项的操作:确定在所述存储器裸片上配置硬件处理器的指令集的更新得以指示;将更新后的指令集加载到所述存储器裸片的页缓冲器中;以及使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集。
141.在实例24中,实例23的主题包含,其中确定所述存储器裸片上的所述指令集的所述更新得以指示的所述操作包括确定所述存储器裸片上的所述指令集的版本早于用所述存储器控制器的固件更新加载的版本。
142.在实例25中,实例23至24的主题包含,其中将所述更新后的指令集加载到所述存储器裸片的所述页缓冲器中的所述操作包括:将包含所述更新后的指令集的命令发送到所述存储器裸片,所述命令指示所述存储器裸片将所述更新后的指令集存储在所述页缓冲器中。
143.在实例26中,实例23至25的主题包含,其中将所述更新后的指令集加载到所述存储器裸片的所述页缓冲器中的所述操作包括:向所述存储器裸片发送将所述更新后的指令集写入到所述存储器裸片上的存储器阵列的写入命令;以及向所述存储器裸片发送指示所述存储器裸片将所述更新后的指令集从所述存储器裸片上的所述存储器阵列加载到所述页缓冲器的命令。
144.在实例27中,实例23至26的主题包含,其中使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集的所述操作包括更新所述存储器裸片的所有所述指令集。
145.在实例28中,实例23至27的主题包含,其中使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集的所述操作包括仅更新所述存储器裸片的所述指令集的一部分。
146.在实例29中,实例23至28的主题包含,其中仅更新所述存储器裸片的所述指令集的一部分的所述操作包括:读取所述更新后的指令集以确定偏移;以及用所述更新后的指令集中的替换指令替换所述存储器裸片的所述指令集的地址处的指令。
147.在实例30中,实例23至29的主题包含,其中所述指令集为微码或固件指令。
148.在实例31中,实例23至30的主题包含,其中将更新后的指令集加载到所述存储器裸片的页缓冲器中且使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集的所述操作是在所述指令集被加载到nand裸片的存储器中之后执行的,且其中使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集的所述操作包括:用所述更新后的指令集改写静态存储器中的所述指令集。
149.在实例32中,实例23至31的主题包含,其中所述操作进一步包括:确定存储在所述存储器裸片上的只读存储器中的第一值的更新得以指示;将更新后的第一值加载到所述存储器裸片的页缓冲器中;以及使所述存储器裸片将所述第一值更新为所述页缓冲器中的所述更新后的第一值。
150.在实例33中,实例23至32的主题包含,其中使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集的所述操作包括:用所述更新后的指令集改写存储在所述nand裸片的多个锁存器中的所述指令集。
151.实例34为一种用于更新用于在存储器裸片上执行的指令的装置,其包括:用于确定在所述存储器裸片上配置硬件处理器的指令集的更新得以指示的构件;用于将更新后的指令集加载到所述存储器裸片的页缓冲器中的构件;以及用于使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集的构件。
152.在实例35中,实例34的主题包含,其中所述用于确定所述存储器裸片上的所述指令集的所述更新得以指示的构件包括用于确定所述存储器裸片上的所述指令集的版本早于用所述存储器控制器的固件更新加载的版本的构件。
153.在实例36中,实例34至35的主题包含,其中所述用于将所述更新后的指令集加载到所述存储器裸片的所述页缓冲器中的构件包括:用于将包含所述更新后的指令集的命令发送到所述存储器裸片的构件,所述命令指示所述存储器裸片将所述更新后的指令集存储在所述页缓冲器中。
154.在实例37中,实例34至36的主题包含,其中所述用于将所述更新后的指令集加载到所述存储器裸片的所述页缓冲器中的构件包括:用于向所述存储器裸片发送将所述更新后的指令集写入到所述存储器裸片上的存储器阵列的写入命令的构件;以及用于向所述存储器裸片发送指示所述存储器裸片将所述更新后的指令集从所述存储器裸片上的所述存储器阵列加载到所述页缓冲器的命令的构件。
155.在实例38中,实例34至37的主题包含,其中所述用于使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集的构件包括用于更新所述存储器裸片的所有所述指令集的构件。
156.在实例39中,实例34至38的主题包含,其中所述用于使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集的构件包括用于仅更新所述存储器裸片的所述指令集的一部分的构件。
157.在实例40中,实例34至39的主题包含,其中所述用于仅更新所述存储器裸片的所述指令集的一部分的构件包括:用于读取所述更新后的指令集以确定偏移的构件;以及用于用所述更新后的指令集中的替换指令替换所述存储器裸片的所述指令集的地址处的指令的构件。
158.在实例41中,实例34至40的主题包含,其中所述指令集为微码或固件指令。
159.在实例42中,实例34至41的主题包含,其中所述用于将更新后的指令集加载到所述存储器裸片的页缓冲器中的构件和用于使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集的构件是在所述指令集被加载到nand裸片的存储器中之后执行的,且其中所述用于使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集的构件包括:用所述更新后的指令集改写静态存储器中的所述指令集。
160.在实例43中,实例34至42的主题包含:用于确定存储在所述存储器裸片上的只读存储器中的第一值的更新得以指示的构件;用于将更新后的第一值加载到所述存储器裸片的页缓冲器中的构件;以及用于使所述存储器裸片将所述第一值更新为所述页缓冲器中的所述更新后的第一值的构件。
161.在实例44中,实例34至43的主题包含,其中所述用于使所述存储器裸片基于所述页缓冲器中的所述更新后的指令集而更新所述指令集的构件包括:用于用所述更新后的指令集改写存储在所述nand裸片的多个锁存器中的所述指令集的构件。
162.实例45为至少一个机器可读媒体,其包含指令,所述指令在由处理电路系统执行时使所述处理电路系统执行操作以实施实例1至44中的任一项。
163.实例46为一种设备,其包括用以实施实例1至44中的任一项的构件。
164.实例47为一种系统,其用以实施实例1至44中的任一项。
165.实例48为一种方法,其用以实施实例1至44中的任一项。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1