混合逻辑到物理高速缓存方案的制作方法

文档序号:21847936发布日期:2020-08-14 17:15阅读:142来源:国知局
混合逻辑到物理高速缓存方案的制作方法

优先权申请

本申请要求2018年12月31日提交的第62/787,043号美国临时申请以及2019年3月6日提交的第16/294,427号美国申请的优先权,这些申请以全文引用的方式并入本文中。

本发明涉及存储器装置,特定来说涉及混合逻辑到物理高速缓存方案。



背景技术:

通常将存储器装置提供为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性和非易失性存储器。易失性存储器需要功率以维持其数据,且易失性存储器的实例包含随机存取存储器(random-accessmemory,ram)、动态随机存取存储器(dynamicrandom-accessmemory,dram)和同步动态随机存取存储器(synchronousdynamicrandom-accessmemory,sdram)等等。非易失性存储器可在未被供电时保持所存储数据,且非易失性存储器的实例包含快闪存储器、只读存储器(read-onlymemory,rom)、电可擦除可编程rom(eeprom)、可擦除可编程rom(eprom)、电阻可变存储器(例如相变随机存取存储器(pcram))、电阻式随机存取存储器(rram)和三维(3d)xpointtm存储器等等。

快闪存储器用作用于广泛范围的电子应用的非易失性存储器。快闪存储器装置通常包含允许高存储器密度、高可靠性和低功耗的单晶体管浮动栅极或电荷阱存储器单元的一或多个群组。两个常见类型的快闪存储器阵列架构包含nand和nor架构,以每一个的基本存储器单元配置所布置的逻辑形式来命名。存储器阵列的存储器单元通常布置成矩阵。在一实例中,阵列的行中每一浮动栅极存储器单元的栅极耦合到存取线(例如,字线)。在nor架构中,阵列的列中每一存储器单元的漏极耦合到数据线(例如,位线)。在nand架构中,阵列的串中的存储器单元在源极线与位线之间源极到漏极地串联耦合在一起。

nor和nand架构半导体存储器阵列都是通过解码器来存取,所述解码器通过选择耦合到特定存储器单元的栅极的字线来激活特定存储器单元。在nor架构半导体存储器阵列中,一旦被激活,选定存储器单元便使其数据值置于位线上,从而取决于特定单元经编程的状态而造成不同电流流动。在nand架构半导体存储器阵列中,将高偏置电压施加于漏极侧选择栅极(sgd)线。以指定传递电压(例如,vpass)驱动耦合到每一群组的未选定存储器单元的栅极的字线,以使每一群组的未选定存储器单元作为传递晶体管操作(例如,以不受其所存储数据值限制的方式传递电流)。电流随后从源极线通过每个串联耦合的群组流动到位线,仅受每个群组的选定存储器单元限制,从而使选定存储器单元的当前经编码数据值置于位线上。

nor或nand架构半导体存储器阵列中的每一快闪存储器单元可个别地或共同地编程到一个或若干经编程状态。举例来说,单电平单元(single-levelcell,slc)可表示两个经编程状态(例如,1或0)中的一个,表示一个数据位。然而,快闪存储器单元还可表示两个以上经编程状态中的一个,从而允许制造较高密度存储器,而不增加存储器单元的数目,因为每一单元可表示一个以上二进制数位(例如,一个以上位)。这些单元可称为多状态存储器单元、多数位单元或多电平单元(mlc)。在某些实例中,mlc可以指每单元可存储两个数据位(例如,四个经编程状态中的一个)的存储器单元,三电平单元(triple-levelcell,tlc)可以指每单元可存储三个数据位(例如,八个经编程状态中的一个)的存储器单元,且四电平单元(quad-levelcell,qlc)可每单元存储四个数据位。除非表达语言或上下文另外清楚地指示,否则mlc在本文中在其较广上下文中使用,可以指每单元可存储一个以上数据位(即,可表示两个以上经编程状态)的任何存储器单元。

传统的存储器阵列是布置于半导体衬底的表面上的二维(2d)结构。为了针对给定面积增加存储器容量且减小成本,已减小个别存储器单元的大小。然而,存在个别存储器单元的大小减小的技术限制,且因此存在2d存储器阵列的存储器密度的技术限制。作为响应,正开发三维(3d)存储器结构,例如3dnand架构半导体存储器装置,以进一步增加存储器密度且降低存储器成本。

此类3dnand装置通常包含存储单元串,其串联(例如,以漏极到源极的方式)耦合于接近源极的一或多个源极侧选择栅极(sgs)与接近位线的一或多个漏极侧选择栅极(sgd)之间。在一实例中,sgs或sgd可包含一或多个场效应晶体管(field-effecttransistor;fet)或金属-氧化物半导体(metal-oxidesemiconductor;mos)结构装置等。在一些实例中,所述串将竖直地延伸通过含有相应字线的多个竖直间隔层次。半导体结构(例如,多晶硅结构)可邻近于存储单元串而延伸以形成用于所述串的存储单元的通道。在竖直串的实例中,多晶硅结构可呈竖直延伸支柱的形式。在一些实例中,串可以“折叠”,并因此相对于u形支柱而布置。在其它实例中,多个竖直结构可堆叠于彼此之上以形成存储单元串的堆叠阵列。

存储器阵列或装置可组合在一起以形成存储器系统的存储体积,例如固态驱动器(ssd)、通用快闪存储(ufstm)装置、多媒体卡(mmc)固态存储装置、嵌入式mmc装置(emmctm)等。ssd尤其可用作计算机的主存储装置,其关于例如性能、大小、重量、耐用性、操作温度范围和功耗具有优于具有移动部件的传统硬盘驱动器的优点。举例来说,ssd可具有缩短的寻道时间、等待时间或与磁盘驱动器相关联的其它延迟(例如,机电等)。ssd使用例如快闪存储器单元等非易失性存储器单元来避免内部电池电源要求,因此允许驱动器更为多功能且紧凑。

ssd可包含若干存储器装置,包含若干裸片或逻辑单元(例如,逻辑单元数字或lun),且可包含执行操作存储器装置或与外部系统介接所需的逻辑功能的一或多个处理器或其它控制器。这些ssd可包含一或多个快闪存储器裸片,其上包含若干存储器阵列和外围电路。快闪存储器阵列可包含组织成若干物理页的若干存储器单元块。在许多实例中,ssd也将包含dram或sram(或其它形式的存储器裸片或其它存储器结构)。ssd可与存储器操作相关联而从主机接收命令,所述存储器操作例如在存储器装置与主机之间传递数据(例如,用户数据和相关联完整性数据,例如错误数据和地址数据等)的读取或写入操作,或从存储器装置擦除数据的擦除操作。

在基于nand快闪存储器的存储系统中,存储在nand存储器装置中的用户数据可由例如主机处理器或处理器等主机写入到某一地址,其中逻辑块地址(lba)可提供为所述地址。lba从主机的视角反映用户数据的位置的信息。用户数据根据物理地址存储在nand存储器装置中。逻辑到物理(l2p)映射可由存储系统维持以将lba块映射到物理地址。此映射的至少一些可维持在随机存取存储器(ram)中。在例如ufs和emmc等受管nand环境中,使用此映射可包含使用大量ram存储空间和增加处理时间、成本及功耗。



技术实现要素:

根据本申请的一方面,提供一种系统。所述系统包括:固件,其具有所存储指令,所述指令可由处理装置执行以执行以下操作:控制对存储装置中的逻辑到物理(l2p)高速缓存和所述存储装置中的l2p变更日志的存取,其中所述l2p高速缓存不同于所述l2p变更日志,所述l2p变更日志含有数对逻辑块地址和物理地址,所述逻辑块地址在存储器系统中映射到所述物理地址;以及为了在所述存储器系统中执行写入操作,存取所述l2p高速缓存中的页指针表,以获得映射到来自主机的指定逻辑块地址的特定物理地址,所述存取基于从所述l2p变更日志加载到所述l2p高速缓存中的所述页指针表。

根据本申请的另一方面,提供一种系统。所述系统包括:存储器装置;存储装置,其具有逻辑到物理(l2p)高速缓存和l2p变更日志,其中所述l2p高速缓存不同于所述l2p变更日志,所述l2p变更日志含有数对逻辑块地址和物理地址,所述逻辑块地址在所述存储器装置中映射到所述物理地址;以及固件,其具有所存储指令,所述所存储指令可由处理装置执行以执行操作来:控制对所述l2p高速缓存和所述l2p变更日志的存取;以及为了在所述存储器装置中执行写入操作,存取所述l2p高速缓存中的页指针表,以获得映射到来自主机的指定逻辑块地址的物理地址,所述存取基于从所述l2p变更日志加载到所述l2p高速缓存中的所述页指针表。

根据本申请的又一方面,提供一种方法。所述方法包括:控制对存储装置中的逻辑到物理(l2p)高速缓存和所述存储装置中的l2p变更日志的存取,其中所述l2p高速缓存不同于所述l2p变更日志,所述l2p变更日志含有数对逻辑块地址和物理地址,所述逻辑块地址在存储器系统中映射到所述物理地址;以及为了在所述存储器系统中执行写入操作,存取所述l2p高速缓存中的页指针表,以获得映射到来自主机的指定逻辑块地址的特定物理地址,所述存取基于从所述l2p变更日志加载到所述l2p高速缓存中的所述页指针表。

附图说明

不一定按比例绘制的图式通过实例而非作为限制大体上说明本文件中论述的各种实施例。

图1说明根据各种实施例包含存储器装置的环境的实例。

图2和3说明根据各种实施例的三维nand架构半导体存储器阵列的实例的示意图。

图4说明根据各种实施例的存储器模块的实例框图。

图5是说明根据各种实施例上面可实施一或多个实施例的机器的实例的框图。

图6a展示根据各种实施例的逻辑到物理高速缓存的实例的表示。

图6b展示根据各种实施例的逻辑到物理变更日志的实例的表示.

图7是根据各种实施例的逻辑到物理变更日志集群的实例的说明。

图8展示根据各种实施例当页指针表变热时加载逻辑到物理变更日志的实例。

图9说明根据各种实施例与页指针表相关联的冷状态。

图10是根据各种实施例包含与使用混合逻辑到物理高速缓存方案的存储器系统一起操作的主机的实例系统的框图。

图11是根据各种实施例使用混合逻辑到物理高速缓存方案的实例方法的特征的框图。

具体实施方式

以下详细描述参考附图,附图借助于说明而非限制来展示其中可实践本发明的各种实施例。这些实施例通过足够的细节描述以使得所属领域的技术人员能够实践这些和其它实施例。可利用其它实施例,且可对这些实施例作出结构性、逻辑、机械和电性变化。各种实施例不一定相互排斥,因为一些实施例可与一或多个其它实施例组合以形成新的实施例。因此,不应按限制性意义来看待以下详细描述。

存储器系统可被配置成维持一组l2p指针。l2p指针使存储器系统的存储器阵列处的物理地址与由一或多个主机使用的逻辑地址相关。l2p指针可存储在存储器系统的ram中。读取和写入请求可包含与待读取或写入d数据单元相关联的逻辑地址。

在一些方法中,存储器系统被配置成高速缓存包含l2p指针的l2p表的部分。当作出逻辑地址处的读取请求时,可确定是否高速缓存对应于所述逻辑地址的l2p指针的副本。如果存储器具有l2p指针的高速缓存副本,则其可使用l2p指针来解析对应于逻辑地址的存储器系统处的物理地址。因此,nand存储装置的性能很大程度上受高速缓存的l2p命中率影响。

在深度嵌入式管理的存储器系统中,可存在减少的ram存储器资源,从而不允许高速缓存每一lba的物理地址的所有阵列。对于此存储器系统,l2p高速缓存管理可能是重要的。地址受限ram存储器的一些架构解决方案可包含ram的两个l2p区域:ram中的l2p高速缓存区域和ram中的l2p变更日志区域。l2p变更日志是随写入命令更新的对(lba,物理地址)的阵列。对于每一写入操作,lba,物理地址对可添加到l2p变更日志来更新l2p变更日志。对于读取操作,可布置为物理地址阵列的页指针表(ppt)可加载于l2p高速缓存中以存取nand存储器装置中的数据。这些先前架构解决方案是基于使用仅l2p高速缓存区域或l2p高速缓存和l2p变更日志区域两者,写入操作均仅使用l2p变更日志中的存取。

在各种实施例中,l2p高速缓存区域可渐进地被配置成具有最频繁存取的ppt,其可称为l2p组块,考虑到存储器系统的最新主机存取。通过基于主机的最新存取配置最频繁存取的ppt,l2p高速缓存命中率可增加。在具有有限ram资源的系统中,此方法改进l2p高速缓存命中率以缩短归因于从存储器系统的nand加载的l2p组块的等待时间。术语加载(load)也可被称作刷新(flush)。

混合方法可使用ram中的l2p高速缓存和l2p变更日志两者来以最频繁存取的l2p组块渐进地配置l2p高速缓存。此混合方法可基于识别变更日志更新期间的最热ppt以将其加载于l2p高速缓存区域中,而非最冷ppt。将来自l2p变更日志的ppt加载到l2p高速缓存是ppt到l2p高速缓存的促进。最热ppt是最新主机操作中最频繁存取的ppt。最冷ppt是最新主机操作中具有低存取率的l2p高速缓存中的ppt。与主机操作(例如限定热和冷状态的写入操作)相关联的时间间隔可由固件设定并且可经修改。

此混合方法可基于用于写入和读取操作两者的l2p高速缓存和l2p变更日志两者的存取,取决于最近主机行为为给定操作挑选最适当的l2p区域。此方法可帮助配置l2p组块的有限ram存储器来改进ppt的范围中循序和随机操作两者的性能,这在其它方法中未发现。

例如移动电子装置(例如,智能电话、平板电脑等)、用于汽车应用的电子装置(例如,汽车传感器、控制单元、驾驶员辅助系统、乘客安全或舒适系统等)和因特网连接的电器或装置(例如,物联网(iot)装置等)等电子装置尤其取决于电子装置的类型、使用环境、性能期望等而具有变化的存储需要。

电子装置可分解为若干主要组件:处理器(例如,中央处理单元(cpu)或其它主处理器);存储器(例如,一或多个易失性或非易失性随机存取存储器(ram)存储器装置,比如动态ram(dram)、移动或低功率双数据速率同步dram(ddrsdram)等);以及存储装置(例如,非易失性存储器(nvm)装置,比如快闪存储器、只读存储器(rom)、ssd、mmc,或其它存储卡结构或组合件等)。在某些实例中,电子装置可包含用户接口(例如,显示器、触摸屏、键盘、一或多个按钮等)、图形处理单元(gpu)、功率管理电路系统、基带处理器或一或多个收发器电路等。

图1说明包含被配置成在通信接口上通信的主机装置105和存储器装置110的环境100的实例。主机装置105或存储器装置110可包含在多种产品150中,例如物联网(iot)装置(例如,冰箱或其它电器、传感器、马达或致动器、移动通信装置、汽车、无人机等)以支持产品150的处理、通信或控制。

存储器装置110包含存储器处理装置115和存储器阵列120,所述存储器阵列包含例如若干个别存储器裸片(例如,三维(3d)nand裸片的堆叠)。在3d架构半导体存储器技术中,堆叠竖直结构,从而增加层次数目、物理页和相应地存储器装置(例如,存储装置)的密度。在一实例中,存储器装置110可以是主机装置105的离散存储器或存储装置组件。在其它实例中,存储器装置110可以是与主机装置105的一或多个其它组件堆叠或以其它方式一起包含的集成电路(例如,芯片上系统(soc)等)的部分。

可使用一或多个通信接口以在存储器装置110与主机装置105的一或多个其它组件之间传递数据,例如串行高级技术附件(serialadvancedtechnologyattachment,sata)接口、外围组件互连高速(peripheralcomponentinterconnectexpress,pcie)接口、通用串行总线(universalserialbus,usb)接口、通用快闪存储(ufs)接口、emmctm接口,或者一或多个其它连接器或接口。主机装置105可包含主机系统、电子装置、处理器、存储卡读卡器,或在存储器装置110外部的一或多个其它电子装置。在一些实例中,主机装置105可以是具有参考图5的机器500论述的组件的某一部分或全部的机器。

存储器处理装置115可从主机装置105接收指令,且可与存储器阵列120通信,以便向(例如,写入或擦除)或从(例如,读取)存储器阵列120的存储器单元、平面、子块、块或页中的一或多个传递数据。存储器处理装置115可尤其包含电路系统或固件,其包含一或多个组件或集成电路。举例来说,存储器处理装置115可包含一或多个存储器控制单元、电路或组件,其被配置成控制跨越存储器阵列120的存取且提供主机105与存储器装置110之间的转译层。存储器处理装置115可包含一或多个输入/输出(i/o)电路、线路或接口以向或从存储器阵列120传递数据。存储器处理装置115可包含存储器管理器125和阵列控制器135。

存储器管理器125尤其可包含电路系统或固件,例如与各种存储器管理功能相关联的若干组件或集成电路。出于当前描述的目的,将在nand存储器的上下文中描述实例存储器操作和管理功能。所属领域的技术人员将认识到,其它形式的非易失性存储器可具有类似的存储器操作或管理功能。此类nand管理功能包含耗损均衡(例如,垃圾收集或回收)、错误检测或校正、块引退或者一或多个其它存储器管理功能。存储器管理器125可将主机命令(例如,从主机接收到的命令)解析或格式化为装置命令(例如,与存储器阵列的操作相关联的命令等),或产生用于阵列控制器135或存储器装置110的一或多个其它组件的装置命令(例如,以实现各种存储器管理功能)。

存储器管理器125可包含一组管理表130,其被配置成维持与存储器装置110的一或多个组件相关联的各种信息(例如,与耦合到存储器处理装置115的存储器阵列或一或多个存储器单元相关联的各种信息)。举例来说,管理表130可包含关于耦合到存储器处理装置115的一或多个存储器单元块的块年龄(blockage)、块擦除计数、错误历史或一或多个错误计数(例如,写入操作错误计数、读取位错误计数、读取操作错误计数、擦除错误计数等)的信息。在某些实例中,如果针对错误计数中的一或多个检测到的错误的数目高于阈值,那么位错误可称为不可校正的位错误。管理表130尤其可维持可校正或不可校正的位错误的计数。

阵列控制器135可尤其包含被配置成控制存储器操作的电路系统或组件,所述存储器操作与将数据写入到耦合到存储器处理装置115的存储器装置110的一或多个存储器单元,从所述一或多个存储器单元读取数据或对所述一或多个存储器单元进行擦除相关联。存储器操作可基于例如从主机装置105接收到或由存储器管理器125内部产生的主机命令(例如,与耗损均衡、错误检测或校正等相关联)。

阵列控制器135可包含错误校正码(ecc)组件140,其尤其可包含ecc引擎或其它电路系统,所述ecc引擎或其它电路系统被配置成检测或校正与对耦合到存储器处理装置115的存储器装置110的一或多个存储器单元写入数据或从所述一或多个存储器单元读取数据相关联的错误。存储器处理装置115可被配置成主动地检测与各种操作或数据存储相关联的错误发生(例如,位错误、操作错误等)且从其恢复,同时维持主机装置105与存储器装置110之间传递的数据的完整性,或维持所存储数据的完整性(例如,使用冗余raid存储等),且可移除(例如,引退)故障的存储器资源(例如,存储器单元、存储器阵列、页、块等)以防止未来错误。

存储器阵列120可包含布置于例如若干装置、平面、子块、块或页中的若干存储器单元。作为一个实例,48gbtlcnand存储器装置可包含每页18,592字节(b)的数据(16,384+2208字节)、每块1536页、每平面548块,和每装置4个或更多个平面。作为另一实例,32gbmlc存储器装置(存储每单元两个数据位(即,4个可编程状态))可包含每页18,592字节(b)的数据(16,384+2208字节)、每块1024页、每平面548块,和每装置4个平面,但所需写入时间为相应tlc存储器装置的一半且编程/擦除(p/e)循环为相应tlc存储器装置的两倍。其它实例可以包含其它数目或布置。在一些实例中,存储器装置或其部分可在slc模式中或在所需mlc模式(例如tlc、qlc等)中选择性操作。

在操作中,数据通常以页写入到nand存储器装置110或从nand存储器装置110读取,且以块擦除。然而,可视需要对存储器单元的更大或更小群组执行一或多个存储器操作(例如,读取、写入、擦除等)。nand存储器装置110的数据传递大小通常称为页,而主机的数据传递大小通常称为扇区。

虽然数据页可包含数个字节的用户数据(例如,包含数个数据扇区的数据有效负载)及其对应的元数据,但页的大小经常仅指代用以存储用户数据的字节的数目。作为一实例,具有4kb的页大小的数据页可包含4kb的用户数据(例如,假定512b的扇区大小的8个扇区)以及对应于用户数据的多个字节(例如32b、54b、224b等)的元数据,例如完整性数据(例如错误检测或校正代码数据)、地址数据(例如逻辑地址数据等)或与用户数据相关联的其它元数据。

不同类型的存储器单元或存储器阵列120可提供不同页大小,或可能需要与其相关联的不同量的元数据。举例来说,不同存储器装置类型可具有不同位错误率,其可导致必需要不同量的元数据来确保数据页的完整性(例如,具有较高位错误率的存储器装置可需要比具有较低位错误率的存储器装置更多字节的错误校正码数据)。作为一实例,多电平单元(mlc)nand快闪装置可具有比对应单电平单元(slc)nand快闪装置高的位错误率。因而,mlc装置可需要比对应slc装置更多的元数据字节用于错误数据。

图2说明包含数个存储器单元串(例如,第一a0存储器串205a0到第三a0存储器串207a0、第一an存储器串205an到第三an存储器串207an、第一b0存储器串205b0到第三b0存储器串207b0、第一bn存储器串205bn到第三bn存储器串207bn等)的3dnand架构半导体存储器阵列200的实例示意图,所述存储器单元串组织成块(例如,块a201a、块b201b等)和子块(例如,子块a0201a0、子块an201an、子块b0201b0、子块bn201bn等)。存储器阵列200表示在存储器装置的块、装置或其它单元中通常将找到的较大数目的相似结构的一部分。

每一存储器单元串包含数个层次的电荷存储晶体管(例如,浮动栅极晶体管、电荷捕集结构等),所述电荷存储晶体管在z方向上源极到漏极地堆叠于源极线(src)235或源极侧选择栅极(sgs)(例如,第一a0sgs231a0到第三a0sgs233a0、第一ansgs231an到第三ansgs233an、第一b0sgs231b0到第三b0sgs233b0、第一bnsgs231bn到第三bnsgs233bn等)与漏极侧选择栅极(sgd)(例如,第一a0sgd226a0到第三a0sgd228a0、第一ansgd226an到第三ansgd228an、第一b0sgd226b0到第三b0sgd228b0、第一bnsgd226bn到第三bnsgd228bn等)之间。3d存储器阵列中的每一存储器单元串可沿着x方向布置为数据线(例如,位线(bl)bl0-bl2220-222),且沿着y方向布置为物理页。

在物理页内,每一层次表示一行存储器单元,且每串存储器单元表示一列。子块可以包含一或多个物理页。块可包含数个子块(或物理页)(例如,128、256、384等)。虽然本文中示出为具有两个块,每一块具有两个子块,每一子块具有单个物理页,每一物理页具有三串存储器单元,且每串具有8层存储器单元,但在其它实例中,存储器阵列200可以包含更多或更少的块、子块、物理页、存储器单元串、存储器单元或层次。举例来说,每一存储器单元串可包含更多或更少层次(例如,16、32、64、128等),以及按需要在电荷存储晶体管(例如,选择栅极、数据线等)上方或下方的半导体材料的一或多个额外层次。作为一实例,48gbtlcnand存储器装置可包含每页18,592字节(b)的数据(16,384+2208字节)、每块1536页、每平面548块,和每装置4个或更多个平面。

存储器阵列200中的每一存储器单元包含耦合到(例如,以电或另外以操作方式连接到)存取线(例如,字线(wl)wl00210a到wl70217a、wl01210b到wl71217b等)的控制栅极(cg),所述存取线按需要跨越特定层次或层次的一部分共同地耦合控制栅极(cg)。可以使用相应存取线来存取或控制3d存储器阵列中的特定层次且因此串中的特定存储器单元。可以使用各种选择线存取多组选择栅极。举例来说,可使用a0sgd线sgda0225a0存取第一a0sgd226a0到第三a0sgd228a0,可使用ansgd线sgdan225an存取第一ansgd226an到第三ansgd228an,可使用b0sgd线sgdb0225b0存取第一b0sgd226b0到第三b0sgd228b0,且可使用bnsgd线sgdbn225bn存取第一bnsgd226bn到第三bnsgd228bn。可使用栅极选择线sgs0230a存取第一到第三a0sgs231a0-233a0和第一到第三ansgs231an-233an,且可使用栅极选择线sgs1230b存取第一到第三b0sgs231b0-233b0和第一到第三bnsgs231bn-233bn。

在实例中,存储器阵列200可包含数个层级的半导体材料(例如,多晶硅等),其被配置成耦合阵列的相应层次的每一存储器单元的控制栅极(cg)或选择栅极(或cg或选择栅极的一部分)。可使用位线(bls)和选择栅极等的组合来存取、选择或控制阵列中的特定存储器单元串,且可使用一或多个存取线(例如,字线)来存取、选择或控制特定串中的一或多个层次处的特定存储器单元。

图3说明nand架构半导体存储器阵列300的一部分的实例示意图,所述nand架构半导体存储器阵列包含布置于串(例如,第一-第三串305-307)和层次(例如,说明为相应字线(wl)wl0-wl7310-317、漏极侧选择栅极(sgd)线325、源极侧选择栅极(sgs)线330等)的二维阵列中的多个存储器单元302,以及读出放大器或装置360。举例来说,存储器阵列300可说明例如图2中所说明的3dnand架构半导体存储器装置的存储器单元的一个物理页的部分的实例示意图。

每一存储器单元串使用相应源极侧选择栅极(sgs)(例如,第一-第三sgs331-333)耦合到源极线(src)335,且使用相应漏极侧选择栅极(sgd)(例如,第一-第三sgd326-328)耦合到相应数据线(例如,第一-第三位线(bl)bl0-bl2320-322)。尽管在图3的实例中说明为具有8个层次(例如,使用字线(wl)wl0-wl7310-317)和三个数据线(bl0-bl2326-328),但其它实例按需要可包含具有更多或更少层次或数据线的存储器单元串。

在例如实例存储器阵列300等nand架构半导体存储器阵列中,可通过感测与含有所选存储器单元的特定数据线相关联的电流或电压变化而存取所选存储器单元302的状态。存储器阵列300可使用一或多个驱动器来存取(例如,由控制电路、一或多个处理器、数字逻辑等)。在一实例中,一或多个驱动器可通过取决于将需要在特定存储器单元或存储器单元的集合上执行的操作的类型将特定电位驱动到一或多个数据线(例如,位线bl0-bl2)、存取线(例如,字线wl0-wl7)或选择栅极来激活特定存储器单元或存储器单元的集合。

为了将数据编程或写入到存储器单元,可将编程电压(vpgm)(例如,一或多个编程脉冲等)施加到选定字线(例如,wl4),且因此施加到耦合到选定字线的每一存储器单元的控制栅极(例如,耦合到wl4的存储器单元的第一-第三控制栅极(cgs)341-343)。编程脉冲可以例如在15v处或附近开始,并且在某些实例中,可以在每一编程脉冲施加期间增加量值。当编程电压施加到选定字线时,例如接地电位(例如,vss)等电位可施加到作为编程的目标的存储器单元的数据线(例如,位线)和衬底(及因此源极和漏极之间的通道),从而产生从所述通道到目标存储器单元的浮动栅极的电荷转移(例如,直接注入或佛勒-诺德海姆(fowler-nordheim,fn)隧穿等)。

相比之下,可将传递电压(vpass)施加到具有并不作为编程的目标的存储器单元的一或多个字线,或可将抑制电压(例如,vcc)施加到具有并不作为编程的目标的存储器单元的数据线(例如,位线),以例如抑制电荷从所述通道转移到此类非目标存储器单元的浮动栅极。传递电压可例如取决于施加的传递电压与作为编程的目标的字线的接近度而变化。抑制电压可包含供应电压(vcc),例如相对于接地电位(例如,vss)来自外部源或供应(例如,电池、ac到dc转换器等)的电压。

作为一实例,如果将编程电压(例如,15v或更高)施加到特定字线,例如wl4,那么可将10v的传递电压施加到一或多个其它字线,例如wl3、wl5等,以抑制非目标存储器单元的编程,或保持并不作为编程的目标的这些存储器单元上存储的值。随着施加的编程电压与非目标存储器单元之间的距离增加,制止对非目标存储器单元进行编程所需的传递电压可减小。举例来说,在将15v的编程电压施加到wl4的情况下,可将10v的传递电压施加到wl3和wl5,可将8v的传递电压施加到wl2和wl6,可将7v的传递电压施加到wl1和wl7等。在其它实例中,传递电压或字线的数目等等可更高或更低、或更大或更小。

耦合到数据线(例如,第一、第二或第三位线(bl0-bl2)320-322)中的一或多个的感测装置360可通过感测特定数据线上的电压或电流来检测相应数据线中的每一存储器单元的状态。

在一或多个编程脉冲(例如,vpgm)的施加之间,可执行验证操作以确定所选存储器单元是否已到达其既定经编程状态。如果所选存储器单元已达到其既定经编程状态,则可以抑制其进一步编程。如果所选存储器单元尚未达到其既定经编程状态,则可以施加额外编程脉冲。如果选定的存储器单元在特定数目的编程脉冲(例如,最大数目)之后尚未达到其既定经编程状态,那么可以将选定的存储器单元或与此类选定的存储器单元相关联的串、块或页标记为有缺陷的。

为了擦除存储器单元或存储器单元群组(例如,擦除通常以块或子块执行),可(例如,使用一或多个位线、选择栅极等)将擦除电压(vers)(例如,通常vpgm)施加到作为擦除的目标的存储器单元的衬底(及因此源极和漏极之间的通道),同时目标存储器单元的字线保持在例如接地电位(例如,vss)等电位,从而导致从目标存储器单元的浮动栅极到所述通道的电荷转移(例如,直接注入或佛勒-诺德海姆(fn)隧穿等)。

图4说明存储器装置400的实例框图,所述存储器装置包含具有多个存储器单元404的存储器阵列402和一或多个电路或组件以提供与存储器阵列402的通信或在所述存储器阵列402上执行一或多个存储器操作。存储器装置400可包含行解码器412、列解码器414、读出放大器420、页缓冲器422、选择器424、输入/输出(i/o)电路426和存储器控制单元430。

存储器阵列402的存储器单元404可布置于块中,例如第一和第二块402a、402b。每一块可包含子块。举例来说,第一块402a可包含第一和第二子块402a0、402an,且第二块402b可包含第一和第二子块402b0、402bn。每一子块可包含若干物理页,每一页包含若干存储器单元404。虽然本文中示出为具有两个块,每一块具有两个子块,且每一子块具有若干存储器单元404,但在其它实例中,存储器阵列402可包含更多或更少的块、子块、存储器单元等。在其它实例中,存储器单元404可布置于若干行、列、页、子块、块等中,且使用例如存取线406、第一数据线410或一或多个选择栅极、源极线等来存取。

存储器控制单元430可根据控制线432上接收的一或多个信号或指令控制存储器装置400的存储器操作,包含例如指示所要操作(例如,写入、读取、擦除等)的一或多个时钟信号或控制信号,或者一或多个地址线416上接收的地址信号(a0-ax)。在存储器装置400外部的一或多个装置可控制控制线432上的控制信号或地址线416上的地址信号的值。在存储器装置400外部的装置的实例可包含(但不限于)主机、存储器控制器、处理器或图4中未说明的一或多个电路或组件。

存储器装置400可使用存取线406和第一数据线410向(例如,写入或擦除)或从(例如,读取)存储器单元404中的一或多个传递数据。行解码器412和列解码器414可接收和解码来自地址线416的地址信号(a0-ax),可确定待存取哪些存储器单元404,且可将信号提供到例如上文描述的存取线406(例如,多个字线(wl0-wlm)中的一或多个)或第一数据线410(例如,多个位线(bl0-bln)中的一或多个)中的一或多个。

存储器装置400可包含感测电路,例如读出放大器420,其被配置成确定使用第一数据线410的存储器单元404上(例如,读取)的数据的值,或确定待使用第一数据线410写入到存储器单元404的数据的值。举例来说,在存储器单元404的选定串中,读出放大器420中的一或多个可响应于读取电流在存储器阵列402中穿过选定串流动到数据线410而读取选定存储器单元404中的逻辑电平。

在存储器装置400外部的一或多个装置可使用i/o线(dq0-dqn)408、地址线416(a0-ax)或控制线432与存储器装置400通信。输入/输出(i/o)电路426可根据例如控制线432和地址线416,使用i/o线408将数据的值传递进出存储器装置400,例如进出页缓冲器422或存储器阵列402。页缓冲器422可存储从在存储器装置400外部的一或多个装置接收的数据,然后将所述数据编程到存储器阵列402的相关部分中,或者可存储从存储器阵列402读取的数据,然后将所述数据发射到在存储器装置400外部的一或多个装置。

列解码器414可将地址信号(a0-ax)接收且解码为一或多个列选择信号(csel1-cseln)。选择器424(例如,选择电路)可接收列选择信号(csel1-cseln),且选择页缓冲器422中的表示待从存储器单元404读取或待编程到存储器单元404中的数据的值。可使用第二数据线418在页缓冲器422与i/o电路426之间传递所选数据。

存储器控制单元430可从外部源或供应(例如,内部或外部电池、ac到dc转换器等)接收正和否供应信号,例如供应电压(vcc)434和负供应(vss)436(例如,接地电位)。在某些实例中,存储器控制单元430可包含调节器428以内部地提供正或负供应信号。

图5说明可在上面执行本文所论述的技术(例如,方法)中的任何一或多个的实例机器500的框图。在替代实施例中,机器500可以充当独立装置或可以连接(例如,联网)到其它机器。在联网部署中,机器500可在服务器-客户端网络环境中作为服务器机器、客户端机器或两者操作。在实例中,机器500可以充当同级间(p2p)(或其它分布式)网络环境中的同级机器。机器500可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、移动电话、网络器具、iot装置、汽车系统,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的指令的任何机器。此外,虽然仅说明单一机器,但术语“机器”也将被视为包含个别地或共同地执行指令集(或多个指令集)以执行本文中所论述的方法中的任何一或多个(例如,云计算、软件即服务(saas)、其它计算机集群配置)的任何机器集合。

如本文中所描述,实例可以包含逻辑、组件、装置、封装或机制,或者可以通过逻辑、组件、装置、封装或机制操作。电路是在包含硬件(例如,简单电路、栅极、逻辑等)的有形实体中实施的电路的总集(例如,集合)。电路系统成员可以随时间推移和基础硬件变化而为灵活的。电路系统包含当操作时可单独或组合地执行特定任务的部件。在实例中,可以不可改变地设计电路系统的硬件以实行特定操作(例如,硬连线)。在实例中,电路系统的硬件可以包含可变连接的物理组件(例如,执行单元、晶体管、简单电路等),包含物理上经修改(例如,以磁性方式、以电学方式、恒定集结粒子的可移动放置等)以编码特定操作的指令的计算机可读介质。在连接物理组件时,硬件构成的基础电特性例如从绝缘体改变成导体或反之亦然。指令使得参与的硬件(例如,执行单元或加载机制)能够经由可变连接产生硬件中的电路系统部件以当在操作中时实行特定任务的部分。因此,当装置操作时计算机可读介质以通信方式耦合到电路系统的其它组件。在实例中,物理组件中的任一个可以用于多于一个电路系统中的多于一个部件中。例如,在操作下,执行单元可在一个时间点处用于第一电路系统的第一电路中,并且由第一电路系统中的第二电路再使用,或在不同时间处由第二电路系统中的第三电路再使用。

机器(例如,计算机系统)500(例如,主机装置105、存储器装置110等)可包含硬件处理器502(例如,中央处理单元(cpu)、图形处理单元(gpu)、硬件处理器核心或其任何组合,例如存储器处理装置115等)、主存储器504和静态存储器506,其中的一些或全部可经由互链接(例如,总线)508彼此通信。机器500可进一步包含显示装置510、文数字输入装置512(例如,键盘)和用户接口(ui)导航装置514(例如,鼠标)。在实例中,显示装置510、输入装置512和ui导航装置514可以是触摸屏显示器。机器500可额外包含存储装置(例如,驱动单元)521、信号产生装置518(例如,扬声器)、网络接口装置520和一或多个传感器516,例如全球定位系统(gps)传感器、指南针、加速度计或其它传感器。机器500可包含输出控制器528,例如串行(例如,通用串行总线(usb)、并行或其它有线或无线(例如,红外(ir)、近场通信(nfc)等)连接以使一或多个外围装置(例如,打印机、读卡器等)通信或控制所述一或多个外围装置。

存储装置521可包含机器可读介质522,其上存储体现本文中所描述的技术或功能中的任何一或多个或由本文中所描述的技术或功能中的任何一或多个利用的数据结构或指令524(例如,软件)的一或多个集合。指令524还可在其由机器500执行期间完全或至少部分地驻留在主存储器504内、静态存储器506内或硬件处理器502内。在实例中,硬件处理器502、主存储器504、静态存储器506或存储装置521中的一或任何组合可构成机器可读介质522。

虽然机器可读介质522说明为单个介质,但术语“机器可读介质”可包含被配置成存储一或多个指令524的单个介质或多个介质(例如,集中式或分布式数据库,或相关联高速缓冲存储器和服务器)。

术语“机器可读介质”可以包含能够存储、编码或载送用于由机器500执行且使机器500执行本公开的技术中的任何一或多个的指令,或能够存储、编码或载送由此类指令使用或与此类指令相关联的数据结构的任何介质。非限制性机器可读介质实例可以包含固态存储器以及光学和磁性介质。在实例中,集中式机器可读介质包括具有多个粒子的机器可读介质,所述粒子具有不变(例如,静止)质量。因此,集中式机器可读介质是非暂时性传播信号。集中式机器可读介质的具体实例可以包含:非易失性存储器,例如半导体存储器装置(例如,电可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom))和快闪存储器装置;磁盘,例如内部硬盘和可移动盘;磁光盘;以及cd-rom和dvd-rom盘。

指令524(例如,软件、程序、操作系统(os)等)或其它数据存储在存储装置521上,可由存储器504存取以供处理器502使用。存储器504(例如,dram)通常为快速但易失性的,且因此是与适于长期存储(包含在“关断”条件中)的存储装置521(例如,ssd)不同类型的存储装置。供用户或机器500使用的指令524或数据通常加载在存储器504中,以供处理器502使用。在存储器504已满时,可分配来自存储装置521的虚拟空间以补充存储器504;然而,因为存储装置521通常比存储器504慢且写入速度通常比读取速度慢至少两倍,所以虚拟存储器的使用归因于存储装置等待时间(与例如dram等存储器504相比)可能极大地降低用户体验。此外,用于虚拟存储器的存储装置521的使用可能极大地缩短存储装置521的可用使用寿命。

相比于虚拟存储器,虚拟存储器压缩(例如,内核特征“zram”)使用存储器的部分作为压缩块存储以避免寻呼到存储装置521。可在压缩块中进行寻呼,直到将此类数据写入到存储装置521的时间为止。虚拟存储器压缩增大了存储器504的可用大小,同时减少对存储装置521的损耗。

针对移动电子装置或移动存储而优化的存储装置传统地包含mmc固态存储装置(例如,微安全数字(microsdtm)卡等)。mmc装置包含与主机装置的若干并行接口(例如,8位并行接口),且经常是从主机装置可移除和分离的组件。相比之下,emmctm装置附接到电路板且视为主机装置的组件,其读取速度比得上基于串行atatm(串行高级技术(at)附接,或sata)的ssd装置。然而,对移动装置性能的需求持续增加,以便完全实现虚拟或增强现实装置,利用增加的网络速度等。响应于此需求,存储装置已经从并行转变到串行通信接口。包含控制器和固件的通用快闪存储(ufs)装置使用具有专用读取/写入路径的低电压差分信令(lvds)串行接口与主机装置通信,进一步推进了更高的读取/写入速度。

可进一步利用数个传递协议中的任一个(例如,帧中继、因特网协议(ip)、发射控制协议(tcp)、用户数据报协议(udp)、超文本传递协议(http)等)经由网络接口装置520使用发射介质在通信网络526上发射或接收指令524。实例通信网络可以包含局域网(lan)、广域网(wan)、包数据网络(例如,因特网)、移动电话网络(例如,蜂窝网络)、简易老式电话(pots)网络和无线数据网络(例如,称为的电气电子工程师学会(ieee)802.11系列标准、称为的ieee802.16系列标准)、ieee802.15.4系列标准、同级间(p2p)网络,以及其它网络。在实例中,网络接口装置520可以包含一或多个物理插口(例如,以太网、同轴或电话插口)或一或多个天线以连接到通信网络526。在实例中,网络接口装置520可以包含多个天线以使用单输入多输出(simo)、多输入多输出(mimo)或多输入单输出(miso)技术中的至少一种进行无线通信。术语“发射信号”应视为包含能够存储、编码或携载指令以由机器500执行的任何信号,且包含数字或模拟通信信号或用以促进此类软件的通信的其它信号。

图6a展示l2p高速缓存640的实例的实施例的表示。l2p高速缓存640可布置于ram中作为ram中的两个l2p区域中的一个,所述ram可用作用于例如与受管存储器系统相关联的写入和读取操作的高速缓存。l2p高速缓存640可布置为ppt的时隙中划分的ram区域。举例来说,l2p高速缓存640可布置为n个时隙,编号为时隙0、时隙1、时隙2...时隙n-1,每一时隙具有一ppt。在此实例中,时隙0含有pptx,时隙1含有pptj,时隙2含有pptk,且时隙2之后的每一时隙含有针对含有pptx的时隙n-1的ppt。ppt可被分配一定量的存储器大小。举例来说,ppt可结构化为各自含有4b的1k物理地址的4kb大小的组块。其它大小可用于ppt。

图6b展示l2p变更日志645的实例的实施例的表示。l2p变更日志645可布置于ram的另一区域中作为lba与其相关联物理地址的对的阵列。举例来说,l2p变更日志645可包含k数目个条目:条目0、条目1...条目k-1,每一条目含有(lba,物理地址)对。条目0含有(lbai,物理地址i)对,条目1含有(lbau,物理地址u)对,且条目1之后的每一条目含有针对含有(lbac,物理地址c)对的条目k-1的(lba,物理地址)对。对的阵列可被分配一定量的存储器大小。举例来说,对的阵列可结构化为8b(4b+4b)的4k条目。其它大小可用于对的阵列。

l2p混合方法可以同与写入操作相关联的l2p更新一起使用。在写入操作的情况下,可执行不仅仅使用l2p变更日志(例如l2p变更日志645)的程序。在l2p高速缓存640中的目标ppt为脏的情况下,目标ppt可在l2p高速缓存640中以当前写入操作的数据的新地址信息更新。否则,l2p变更日志645可以新地址信息进行更新。脏意味着数据与所存储版本相比经过修改。

当l2p高速缓存640中的给定ppt变脏时,这指示其经过修改,则无法在将给定ppt刷新到nand之前用将加载于l2p高速缓存640中的另一ppt将其从l2p高速缓存640调换出去。可在通过新ppt在l2p高速缓存640中重写给定ppt之前,将给定ppt刷新到nand。

在针对可包含l2p高速缓存的存取的写入操作的l2p混合方法中,可考虑写入操作的ppt的状态。ppt可具有热状态或冷状态。如果在最新时间间隔内存在主机对ppt的高频率存取,则ppt为热,即其具有热状态。如果在最新时间间隔内不存在主机的存取,则ppt为冷,即其具有冷状态。时间间隔可以是由主机在数据存取操作中执行的最新时间。此时间间隔可由固件设定。

l2p混合方法可经实施来改进循序写入操作。此改进可通过减少l2p变更日志645填满的时间量来实现,其中所述减少可通过加载l2p高速缓存640来实现。当l2p变更日志645填满时,更新在最新写入操作期间修改的l2p高速缓存640的所有ppt。在l2p高速缓存640中直接更新一些ppt的情况下,变更日志645填满的时间量可减少。

l2p混合方法可经实施来改进随机读取。可通过借助于使用l2p高速缓存640存取代替变更日志存取来避免l2p变更日志645存取,而改进随机读取。如果ppt已加载于l2p高速缓存640中以用于写入操作,则此ppt已经加载用于写入操作之后的读取操作。在此发生的情况下,可避免用于读取操作的l2p变更日志645的存取。此机制避免针对(lba,物理地址)对在l2p变更日志645中执行搜索,因为存取可直接到达l2p高速缓存640以找到读取的lba命中。

增加用于写入和读取操作的l2p高速缓存640上的命中率可通过缩短用以执行与写入和读取操作相关联的功能的时间来改进性能。l2p高速缓存区域可渐进地被配置成具有最新主机存取操作中最频繁存取的ppt。l2p高速缓存区域的配置的此控制可增加l2p高速缓存命中率,也就是说,可对l2p高速缓存而不是l2p变更日志作出存取,以减少l2p变更日志中的搜索。

图7是l2p变更日志集群的实例的实施例的说明。提供专用变更日志的待修改的每一ppt的列表可具现化。举例来说,图6b的l2p变更日志645可被操作以使若干列表具现化。图7展示图6b的l2p变更日志645以以下各项扩展:含有(lbai,物理地址i)对的条目0、含有(lbau,物理地址u)对的条目1、含有(lbaj,物理地址j)对的条目2、含有(lbag,物理地址g)对的条目3、含有(lbay,物理地址y)对的条目4、含有(lbaa,物理地址a)对的条目5,以及含有(lbap,物理地址p)对的条目6,其中所述条目以含有(lbac,物理地址c)对的条目k-1结束。这些条目可具现化为一组列表,其中集合含有由ppta、pptb、ppth、pptr等限定的列表。在l2p变更日志集群的此实例中,ppta列表包含(lbaa,物理地址a)对和(lbac,物理地址c)对。pptb列表包含(lbai,物理地址i)对、(lbaj,物理地址j)对和(lbag,物理地址p)对。ppth列表包含(lbap,物理地址p)对。pptr列表包含(lbay,物理地址y)对和(lbau,物理地址u)对。

在此集群中,变更日志从循序布置修改为一组列表,其中所述列表可充当贮体(bucket)。每一贮体有效地提供比图6b的l2p变更日志645的循序布置小的变更日志。可存在用于每一ppt的一个贮体。如上文所展现,每一贮体具有lba和映射到lba的物理地址之间的一组映射。

在写入操作期间,l2p变更日志645的更新可包含集群ppt的列表的更新。在其中无列表针对作为写入操作的主体的ppt具现化的情况下,新列表可针对主体ppt具现化,且相关联要素可添加到主体ppt。在列表已经以与写入操作的主体相关联的ppt具现化的情况下,要素可添加在ppt列表中。

图8展示当ppt变热时加载l2p高速缓存640的实例的实施例。如果例如l2p变更日志645的pptb列表等ppt的l2p变更日志快速填充,则pptb变热并且可加载到l2p高速缓存640中。填充参数可在固件中设定为pptb列表的数目k个要素。当要素k+1到达pptb时,已超出填充参数。响应于要素k+1的到达,pptb可首先从nand存储器加载到l2p高速缓存640的时隙,例如时隙t。第二,pptb可在l2p高速缓存640中更新。第三,pptb列表的贮体可设定为不含l2p变更日志645的具现化列表池(pool)。

图9说明与ppt相关联的冷状态。在图8中,变热后的pptb促进到l2p高速缓存640且从具现化列表池移除,从而留下ppta、pptc、ppth和pptr,以及具现化列表池中的其它ppt。在ppta、pptc、ppth和pptr保持在冷状态的情况下,这些ppt可处于这些ppt不被促进到l2p高速缓存640的状态中。存在l2p高速缓存640的每一ppt的冷度(coldness)状态。可考虑所述冷度来释放l2p高速缓存640中的一些位置用于新ppt加载。ppt当其在最新存取时间内未由主机存取时变冷。当ppt参与读取或写入操作从而有效地加热ppt时,其它ppt的冷度可增加。这提供ppt冷索引。计数器可用于通过在存取另一ppt时递增ppt的计数器来确定冷度。其它机制可用于产生冷度索引。当读取或写入操作命中ppt变更日志列表时,l2p高速缓存640的所有ppt的冷度可增加。当读取或写入操作命中l2p高速缓存640的ppt时,l2p高速缓存640中的所有ppt的冷度可增加,关于读取或写入操作的ptt命中除外。

在各种实施例中,用于管理l2p映射的混合技术可包含针对ppt的调换策略,其中最冷ppt被调换出l2p高速缓存,且最热ppt被调换到l2p高速缓存中。当新ppt将加载到l2p高速缓存时隙中且不存在空闲时隙时,新ppt可加载于最冷非锁定ppt的时隙中。非锁定ppt为脏ppt。如果l2p高速缓存的所有时隙被锁定,则m个最冷ppt可经识别并刷新到nand存储器以解锁,且使l2p高速缓存中的m个新时隙可用于将要加载的新ppt。参数m可挑选为使相对于存取nand存储器的通道的nand并行性最大化。

在各种实施例中,可渐进地达到用于存取的l2p配置,所述配置可导向最佳性能。此渐进方法可基于ppt的热度(hotness)状态。对于循序操作,随着要素添加到每一变更日志列表ppt,变更日志列表朝向已填满列表的k数目个要素参数进行填充。随着列表中要素的数目增加,列表可快速变热。变更日志列表池的最多存取ppt可快速促进到l2p高速缓存中。此加载允许在l2p高速缓存而非变更日志中存取被促进的ppt,从而有效地改变ram中的l2p区域的路线选择。如果变更日志未快速填充,则检查点的触发时间可推迟。检查点在l2p变更日志变满时发生,且由以下组成:将l2p变更日志中的所有ppt加载到l2p高速缓存中以便更新ppt且接着将经修改的ppt刷新到nand存储器中。检查点操作是一项费时的操作。如本文所教示,执行混合方法的使用两个l2p区域的特征,检查点可推迟,因为使用l2p高速缓存代替使用l2p变更日志可能减少l2p变更日志的填充。检查点的此推迟可增加性能,因为检查点事件的发生可变少。

对于随机操作,在完全随机写入的情况下,变更日志列表可近似为空,使得不存在热ppt贮体。在变更日志区域中无热ppt贮体的情况下,不触发ppt的加载和刷新。将仅基于变更日志已满事件触发检查点。在变更日志列表的范围内的完全随机写入的情况下,仅在l2p高速缓存中加载逐渐变热的ppt,代替最冷ppt。l2p高速缓存区域时隙可仅由热ppt占据,所述热ppt是最多存取ppt。

如本文所教示,l2p高速缓存加上l2p变更日志的混合使用可允许选择这些区域中的最适当区域用于存取。不同于仅在写入操作中使用l2p变更日志且在读取操作中使用l2p高速缓存的其它方法,混合方法可在写入和读取两者中使用l2p高速缓存和l2p变更日志两者。混合方法中的l2p高速缓存区域或l2p变更日志区域的选择可通过使l2p变更日志中的ppt集群来启用。此集群可实现变更日志存取时间的缩短。

可以在混合方法中使用ppt的热度和冷度状态。仅当ppt应当加载时才在写入操作期间实施ppt热度检测来加载ppt。热ppt应当加载,因为ppt随着其在此当前时间帧中受主机影响而变热。这些ppt将促进到l2p高速缓存中,l2p高速缓存用于存取lba-物理地址映射而非在变更日志中存取。在变更日志中存取热ppt可致使相当大数目次更新,这可能使得触发检查点事件。更新促进到l2p高速缓存的ppt而非在l2p变更日志中进行所述更新可增强性能。

冷度刷新策略可包含仅刷新脏的最冷ppt的方法。这确保要刷新到存储器的所有ppt的至少k+1个要素经修改。参数k提供关于填充变更日志列表的参数。参数k可被视为与时间相关。考虑供ppt变更日志列表填充的k个要素,这意味着此ppt被操作k时间,等于k乘以最大主机存取时间间隔。此冷度刷新策略还可经实施以确保l2p表的编程期间的最大nand并行性。

如本文所教示,l2p高速缓存加上l2p变更日志的混合使用可允许检查点等待时间缩短,其中检查点等待时间是归因于在一时间周期内检查点事件的操作的延迟。如本文所教示,使用l2p高速缓存区域和/或l2p变更日志来用于写入和读取操作两者的能力可实现给定间隔内l2p变更日志填满的时间量的缩短,这可减少检查点事件的数目。此外,随着更新刷新到nand存储器,一些ppt已经在l2p高速缓存中可用,这可实现检查点等待时间延长。这不仅仅推迟检查点,而是当执行检查点时,其可以针对ppt的更高效修改来执行。

图10是包含主机1005的实例系统1000的实施例的框图,主机1005与使用混合逻辑到物理高速缓存方案的存储器系统1010一起操作。主机1005通过接口1020耦合到存储器系统1010。存储器系统1010可包含通过总线1027耦合到存储器装置1012-1、1012-2、1012-3、1012-4、1012-5和1012-6的处理装置1015。存储器装置1012-1、1012-2、1012-3、1012-4、1012-5和1012-6可以是nand存储器装置。尽管图10中展示六个存储器装置,但存储器系统1010可实施为具有少于或多于六个存储器装置,也就是说,存储器系统1010可包括一或多个存储器装置。存储器装置可以包含但不限于多个存储器裸片的数种形式实现。处理装置1015可包含一或多个处理器或构造为一或多个处理器。

存储器系统1010可包括固件1025,其具有可由处理装置1015执行的代码以至少管理存储器装置1012-1、1012-2、1012-3、1012-4、1012-5和1012-6。固件1025可驻留在耦合到处理装置1015的存储器系统1010的存储装置中。固件1025可使用总线1027或存储器系统1010上的某一其它接口耦合到处理装置1015。或者,固件1025可驻留在处理装置1015中,或可与固件组件一起分布在存储器系统1010中,所述固件组件例如(但不限于)代码,包含处理装置1015中的一或多个组件。固件1025可包含具有指令的代码,所述指令可由处理装置1015执行以在存储器装置1012-1、1012-2、1012-3、1012-4、1012-5和1012-6上操作。所述指令可包含执行混合逻辑到物理高速缓存方案用于存储器系统1010的多个存储器装置中的用户数据的写入和读取的指令,如本文所教示。高速缓存方案可以两个l2p区域实施:l2p高速缓存区域和l2p变更日志区域。

系统1000和其组件可以数种不同布置结构化。举例来说,系统1000可以包括主机1005、接口1020、存储器系统1010、存储器装置1012-1、1012-2、1012-3、1012-4、1012-5和1012-6、处理装置1015和总线1029的组件的类型的变化来布置。主机1005可包括类型可不同的一或多个处理器。接口1020可布置为(但不限于)外围组件互连高速(pcie)接口。存储器系统1010可以是但不限于ssd。存储器装置1012-1、1012-2、1012-3、1012-4、1012-5和1012-6可以是nand存储器装置。处理装置1015可包含或结构化为与存储器装置1012-1、1012-2、1012-3、1012-4、1012-5和1012-6兼容的一或多种类型的处理器。总线1027可以是用于使存储器装置1012-1、1012-2、1012-3、1012-4、1012-5和1012-6成为nand快闪存储器装置的开放式nand快闪接口(onfi)总线。

存储装置1014可经实施以提供用于维护存储器系统1010的数据或参数。存储装置1014可被布置成包含两个l2p区域:l2p高速缓存区域和l2p变更日志区域。存储装置1014可包含ram。尽管存储装置1014在图10中的存储器系统1010中的处理装置1015外部,但存储装置1014可集成到处理装置1015中。存储装置1014可耦合到总线1027用于与存储器系统1010的其它组件通信。或者,存储装置1014可与处理装置1015耦合,其中处理装置1015处置存储装置1014和存储器系统1010的其它组件之间的通信。存储装置1014可耦合到总线1027和处理装置1015。

在各种实施例中,固件1025可具有指令,其可由处理装置1015执行以在多个存储器装置,即存储器装置1012-1、1012-2、1012-3、1012-4、1012-5和1012-6上操作。所述操作可包含管理存储器系统1010的存储装置1014的两个l2p区域。由处理装置1015执行的固件1025的指令可包含以下操作:控制对存储装置1014中的l2p高速缓存和存储装置1014中的l2p变更日志的存取,其中l2p高速缓存不同于l2p变更日志,所述l2p变更日志含有数对逻辑块地址和物理地址,其中逻辑块地址在存储器系统中映射到物理地址;以及为了在存储器系统中执行写入操作,存取l2p高速缓存中的ppt,以获得映射到来自主机的指定逻辑块地址的特定物理地址,所述存取基于从l2p变更日志加载到l2p高速缓存中的ppt。来自执行固件1025中的指令的操作可包含,为了在存储器系统中执行另一写入操作,存取另一ppt,所述另一ppt安置于l2p变更日志中,以获得映射到来自主机的指定逻辑块地址的另一物理地址用于另一写入操作。

由处理装置1015执行的固件1025的指令可包含若干操作。所述操作可包含将l2p变更日志布置为ppt的集群的操作,其中每一ppt具有一对或多对逻辑块地址和物理地址。所述操作可包含从l2p变更日志加载到l2p高速缓存中的ppt,这是基于在指定时间帧中在l2p变更日志中存取ppt的次数等于或大于所述指定时间帧中的阈值存取次数。所述操作可包含:使冷状态或热状态关联到l2p高速缓存中的每一ppt;将l2p高速缓存中的数目m个ppt识别为具有成为l2p高速缓存中的m个最冷ppt的状态,m为正整数;以及将l2p高速缓存中的m个ppt刷新到存储器系统,从而使l2p高速缓存中的m个时隙可用于加载来自l2p变更日志的新ppt。新页指针表相对于l2p高速缓存为新的。所述操作可包含选择数目m以使相对于存取存储器系统的通道的存储器系统并行性最大化。

来自固件1025的指令的执行的操作可包含基于选定ppt被填充有数目k个要素(k为正整数)而将选定ppt从l2p变更日志加载到l2p高速缓存中。将选定ppt从l2p变更日志加载到l2p高速缓存中的起始可基于选定ppt的k+1要素的到达。所述操作可包含相对于l2p高速缓存和l2p变更日志执行各种功能用于存储器系统1010的读取和写入操作,如本文所教示。

图11是针对存储器系统相对于存储器系统中的读取和写入操作实施混合逻辑到物理高速缓存方案的实例方法1100的实施例的特征的框图。可使用执行存储于固件中的指令的处理装置来实施方法1100。在1110处,控制对存储装置中的l2p高速缓存和存储装置中的l2p变更日志的存取,其中l2p高速缓存不同于l2p变更日志。l2p变更日志可含有数对逻辑块地址和物理地址,其中逻辑块地址在存储器系统中映射到物理地址。在1120处,为了在存储器系统中执行写入操作,存取l2p高速缓存中的ppt,以获得映射到来自主机的指定逻辑块地址的特定物理地址,其中所述存取是基于从l2p变更日志加载到l2p高速缓存中的ppt。

方法1100的变型或类似于方法1100的方法可包含数个不同实施例,所述不同实施例可取决于此类方法的应用和/或实施此类方法的系统的架构而组合。此类方法可包含将l2p变更日志布置为页指针表的集群,其中每一页指针表具有一对或多对逻辑块地址和物理地址。方法1100的变型或类似于方法1100的方法可包含以从l2p变更日志加载到l2p高速缓存中的页指针表渐进地配置l2p高速缓存,其中在加载到l2p高速缓存中之前,已经在l2p变更日志中存取页指针表的次数大于指定数目的最新主机存取中的阈值存取次数。

方法1100的变型或类似于方法1100的方法可包含使用l2p高速缓存中的ppt的冷度索引来控制从l2p变更日志将选定ppt加载到l2p高速缓存中。此类方法可包含响应于被接收以用于包含在来自存储器系统的存储器装置的特定ppt中的要素将所述特定ppt加载到l2p高速缓存中,其中在接收所述要素之前,所述特定ppt填充有所述特定ppt的最大数目的要素。接着,可在l2p高速缓存中更新特定ppt。此更新之后,所述方法可包含从l2p变更日志中的ppt的列表池释放特定ppt。

方法1100的变型或类似于方法1100的方法可包含如相对于如本文所教示的混合逻辑到物理高速缓存方案论述的特征。这些方法可实施于如本文所教示可具有图1-10中示出的特征的系统中。

用于受管系统中的一或多个存储器装置的操作的固件可包括指令,例如微码,所述指令当由处理装置执行时可致使执行操作,所述操作包含执行如本文所教示的一或多个混合逻辑到物理高速缓存方案的操作。处理装置可被实施为一组一或多个处理装置,例如(但不限于)一组一或多个处理器、一组一或多个存储器控制器或其组合。

通过由处理装置执行固件的指令而执行的操作可包含执行方法1100、类似于方法1100的方法或与如本文所教示的写入和读取操作相关联的其它技术的任务的操作。通过由处理装置执行固件的指令执行的操作可包含执行如本文中所教示的系统的功能的操作。以上固件或类似固件的指令的变型可包含数个不同实施例,所述不同实施例可取决于此类固件的应用和/或实施此类固件的系统的架构而组合。固件的此类指令当由处理装置执行时可致使执行操作,所述操作可包含控制对存储装置中的l2p高速缓存和存储装置中的l2p变更日志的存取,其中l2p高速缓存不同于l2p变更日志,l2p变更日志含有数对lba和物理地址,lba在存储器系统中映射到物理地址;以及为了在存储器系统中执行写入操作,存取l2p高速缓存中的ppt,以获得映射到来自主机的指定lba的特定物理地址,所述存取基于从l2p变更日志加载到l2p高速缓存中的ppt。l2p变更日志可布置为ppt的集群,其中每一ppt具有一对或多对lba和物理地址。所述操作可包含为了在存储器系统中执行另一写入操作,存取另一ppt,所述另一ppt安置于l2p变更日志中,以获得映射到来自主机的指定lba的另一物理地址用于另一写入操作。

固件的指令当由处理装置执行时可致使执行操作,其中操作可包含基于在指定时间帧中在l2p变更日志中存取ppt的次数等于或大于指定时间帧中的阈值存取次数而将ppt从l2p变更日志加载到l2p高速缓存中。指定时间帧中的次数等于或大于指定时间帧中的阈值存取次数可被实现为最新主机存取中最频繁存取的ppt。

固件的指令当由处理装置执行时可致使执行操作,其中操作可包含:使冷状态或热状态关联到l2p高速缓存中的每一ppt;将l2p高速缓存中的数目m个ppt识别为具有成为l2p高速缓存中的m个最冷ppt的状态,m为正整数;以及将l2p高速缓存中的m个ppt刷新到存储器系统,从而使l2p高速缓存中的m个时隙可用于加载来自l2p变更日志的新ppt。新ppt相对于l2p高速缓存为新的。所述操作可包含选择数目m以使相对于存取存储器系统的通道的存储器系统并行性最大化。

固件的指令当由处理装置执行时可致使执行操作,其中操作可包含基于选定ppt填充有数目k个要素而将选定ppt从l2p变更日志加载到l2p高速缓存中,k为正整数。所述操作可包含基于选定ppt的k+1要素的到达起始将选定ppt从l2p变更日志加载到l2p高速缓存中。

在各种实施例中,系统可包括存储器装置、存储装置和固件。存储装置可具有l2p高速缓存和l2p变更日志,其中l2p高速缓存不同于l2p变更日志。l2p变更日志可含有数对lba和物理地址,其中逻辑块地址映射到存储器装置中的物理地址。存储装置可包含随机存取存储器。固件可具有所存储指令,其可由处理装置执行以执行操作来:控制对l2p高速缓存和l2p变更日志的存取;以及为了在存储器装置中执行写入操作,存取l2p高速缓存中的ppt,以获得映射到来自主机的指定逻辑块地址的物理地址,其中所述存取是基于从l2p变更日志加载到l2p高速缓存中的ppt。所述操作可包含为了在存储器系统中执行另一写入操作,存取另一ppt,所述另一ppt安置于l2p变更日志中,以获得映射到来自主机的指定逻辑块地址的另一物理地址用于另一写入操作。

如本文中所教示的此系统和其特征的变型可包含数个不同实施例,所述不同实施例可取决于此类系统的应用和/或实施系统的架构而组合。如本文所教示的系统的变型可包含l2p变更日志布置为ppt的集群,其中每一ppt具有一对或多对lba和物理地址。

如本文所教示的系统的变型可包含结构化以执行若干功能的系统的固件。系统的固件的操作可包含以从l2p变更日志加载到l2p高速缓存中的ppt渐进地配置l2p高速缓存,其中在加载到l2p高速缓存中之前,已经在l2p变更日志中存取ppt的次数大于指定数目的最新主机存取中的阈值存取次数。所述次数大于指定数目的最新主机存取中的阈值存取次数可以最新主机存取中的最频繁存取的ppt来实现。可在固件中设定用于设定最频繁存取的值和最新主机存取的值的参数。

系统的固件的操作可包含通过在起始加载来自l2p高速缓存的选定ppt之前使用l2p高速缓存中的ppt的冷度索引来控制选定ppt从l2p变更日志到l2p高速缓存中的加载。系统的固件的操作还可包含基于选定ppt填充有数目k个要素而将选定ppt从l2p变更日志加载到l2p高速缓存中,k为正整数;基于选定ppt的k+1要素的到达起始将选定ppt从l2p变更日志加载到l2p高速缓存中;以及从l2p变更日志中的ppt的列表池移除选定ppt。

尽管本文中已说明且描述具体实施例,但所属领域的一般技术人员将了解,计算出实现相同目的的任何布置可以取代所展示的具体实施例。各种实施例使用本文中所描述的实施例的排列及/或组合。应理解,以上描述意图是说明性而不是限制性的,且本文中所采用的措词或术语是出于描述的目的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1