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

用于存储装置的高速缓存架构的制作方法

2022-07-13 20:29:47 来源:中国专利 TAG:


1.本公开大体上涉及半导体存储器及方法,且更特定来说,涉及与例如混合存储器系统的存储装置的读取及/或写入高速缓存架构相关的设备及方法。


背景技术:

2.存储器装置通常被提供为计算系统中的内部半导体集成电路。存在许多不同类型的存储器,其包含易失性及非易失性存储器。易失性存储器需要电力来维持其数据(例如主机数据、错误数据等)且包含随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、同步动态随机存取存储器(sdram)及晶闸管随机存取存储器(tram)等。
3.非易失性存储器可通过在不供电时留存所存储的数据来提供持久数据且可包含nand快闪存储器、nor快闪存储器及电阻可变存储器,例如相变随机存取存储器(pcram)、电阻性随机存取存储器(rram)及磁阻随机存取存储器(mram),例如自旋力矩转移随机存取存储器(stt ram)等。
4.计算系统通常包含数个处理资源(例如一或多个处理器),其可检索及执行指令且将所执行指令的结果存储到合适位置。处理资源可包括(例如)可用于执行用于操作计算系统的指令的数个功能单元,例如算术逻辑单元(alu)电路系统、浮点单元(fpu)电路系统及组合逻辑锁。
5.计算系统中的数个组件可参与将指令提供到功能单元电路系统用于执行。指令可例如由处理资源执行,例如控制器及/或主机处理器。此外,因为不同类型的操作可通过功能单元电路系统执行于一或多个时钟循环中,所以指令及数据的中间结果也可被定序及/或缓冲。
附图说明
6.图1是根据本公开的数个实施例的呈包含框架、主机及存储器系统的计算系统的形式的设备的框图。
7.图2是根据本公开的数个实施例的呈包含包括主存储器的主机及存储器系统的计算系统的形式的设备的框图。
8.图3展示根据本公开的实施例的用于混合或受管理存储器系统的高速缓存架构的示意性实例;
9.图4是展示存储于本公开的存储器系统的易失性部分中的读取区计数器的表的示意图;
10.图5是展示本公开的存储器系统中的读取高速缓存逻辑块数据及流程的示意图;
11.图6是说明在本公开的存储器系统上有效的新近算法的介入的示意图;
12.图7展示对本公开的存储器系统执行的加载操作的实例的流程图;
13.图8展示由本公开的存储器系统周期性使用的新近算法的实例的流程图;
14.图9展示由本公开的存储器系统周期性使用的驱逐算法的实例的流程图;
15.图10展示图8的新近算法对本公开的存储器系统的计数器的影响的图形实例的图;
16.图11是展示本公开的存储器系统中的读取高速缓存逻辑块数据及流程的示意图;
17.图12是展示根据本公开的驱逐阶段期间的图11的读取高速缓存逻辑块数据及流程的示意图;
18.图13是说明在受管理存储装置上实施的本公开的读取方法的框图。
具体实施方式
19.本公开包含与混合存储器系统相关的设备及方法。实例设备包含耦合到主机的混合存储器系统及耦合到混合存储器系统的控制器。控制器可经配置以向命令指派敏感度且致使命令至少部分基于所指派敏感度来选择性转移到混合存储器系统。
20.tlc(三电平胞元)、qlc(四电平胞元)、slc(单电平胞元)及mlc(多电平胞元)nand如今用于生产大容量存储装置。不幸的是,这些快闪的特征在于比较旧slc及mlc nand更长的存取延时。本公开建议一种增强型存储解决方案,其包含新兴存储器(em),em的特征在于很低读取延时及高处理量以实施非易失性读取高速缓存存储器部分以加速读取存取且提高存储装置的系统性能。
21.本公开涉及一种定义为“受管理”的类型的存储器装置(例如非易失性存储器装置),在此意义上,外部主机装置或设备可看到称为通过逻辑块地址(lba)选择的逻辑块的块或存储器部分。
22.相反,驻留存储器控制器及相关联固件经结构化以将存储器装置的物理空间组织于称为物理块的位置中,物理块通过物理块地址(pba)选择。物理块地址(pba)可不同于逻辑块地址(lba)。
23.换句话说,存储器装置的逻辑与物理组织是不同的且其存在报告由外部实体(例如主机装置)使用的逻辑地址与由内部控制器及其固件使用的物理地址之间的对应性的l2p表(意味着逻辑到物理)。
24.例如个人计算机、膝上型计算机、平板计算机、平板手机、智能电话、物联网(iot)启用装置等的计算系统可包含用于存储与计算系统相关联的数据及/或指令的一或多个存储器资源。如本文中使用,“iot启用装置”包含物理装置、交通工具、家用电器及嵌入有电子设备、软件、传感器、致动器及/或使此类物体能够连接及交换数据的网络连接性的其它装置。iot启用装置的实例包含可穿戴技术、智能家用装置、智能购物系统及监测装置以及其它信息物理系统。另外,计算系统可包含用于执行系统软件(例如操作系统)以向在计算系统上运行的应用程序提供共同服务的一或多个处理资源。操作系统的实例包含等。
25.在操作期间,计算系统可执行指令(例如固件、计算机代码、元代码、框架文件等)以向计算系统提供功能性。这些指令中的至少部分可比其它指令更频繁执行,及/或这些指令中的至少部分可在计算系统的特定操作时间执行。
26.举例来说,如果计算系统试图多次读取指令的同一部分,那么可能发生异常(例如故障)。在一些方法中,产生此类异常的指令可经由预读机制(或其它合适预提取机制)加载到与计算系统相关联的高速缓存中以减少计算系统在多次存取指令中使用的时间量。尽管
预提取已经历异常(或很可能将经历异常)的指令可减少计算系统在多次存取指令中使用的时间量,但用于此类方法中的高速缓存通常不如其它存储器资源那样快。
27.在一些实施例中,当部署于用户空间及/或内核服务或库中的程序(例如应用程序)试图存取存储于与计算系统或计算系统的处理器相关联的内部高速缓存中的指令时,可发生例如页故障的异常,且当试图存取指令发生时,指令不存在于计算系统的存储器(例如ram)中。此类异常可通过存取指令存储于其上的存储装置及从存储装置加载与指令相关联的存储器页来补救。如果预读操作由计算系统进行,那么此类异常可通过从存储装置加载与指令相关联的连续存储器来补救。
28.作为另一实例,如果物理存储器资源被过度利用,例如,当多个过程在虚拟存储器中执行时,那么指令可在执行之前映射到物理存储器(例如物理存储器页)。然而,如果没有足够物理存储器用于供指令映射,那么物理存储器资源可能被过度利用,这可导致计算系统性能降低及/或计算系统的读取/写入时间增加。
29.在又一实例中,当计算系统在操作时,特定写入模式可为共同的。举例来说,特定指令可展现重复及/或可预测写入模式;然而,在一些方法中,计算系统无法存取关于这些写入模式的信息。因此,在一些方法中,重复提取及写入具有重复及/或可预测读取或写入模式的指令可能消耗时间及/或处理资源。
30.相比之下,本文中的实施例可减少在寻址在多次存取指令时发生的异常中消耗的时间量及/或处理资源量,可提供利用虚拟存储器寻址的计算系统的计算速度及/或读取/写入时间的增加,及/或可缓解计算系统在重复提取展现重复及/或可预测读取或写入模式的指令时消耗的时间及/或处理资源。
31.举例来说,在一些实施例中,与计算系统相关联的一或多个存储器资源可依混合存储装置的形式部署。举例来说,至少一个存储器资源可包括特定类型的存储器资源,而至少一个其它存储器资源可包括不同特定类型的存储器资源。作为非限制性实例,与计算系统相关联的一个存储器资源可为非易失性存储器资源(例如3d xpoint非易失性存储器),且第二存储器资源可为不同非易失性存储器资源(例如快闪存储器(例如存储卷))。然而,实施例不限于这些特定实例,且包括混合存储装置的存储器资源可包含其它类型的非易失性存储器(例如rom、prom、eprom、eeprom、nvram等)及/或易失性存储器(例如ram、dram、sram等)的组合。
32.在一些实施例中,如本文中更详细描述,确定为展现特定特性的指令或数据可从第一存储器资源或第二存储器资源存储及/或存取。举例来说,在一些实施例中,某些数据可响应于确定在数据从第一存储器资源存储及/或存取时计算系统可实现较低延时而从第一存储器资源存储及/或存取。
33.在本公开的以下详细描述中,参考形成本公开的一部分且其中通过说明来展示可如何实践本公开的一或多个实施例的附图。足够详细地描述这些实施例以使所属领域的一般技术人员能够实践本公开的实施例,且应理解,可利用其它实施例且可在不背离本公开的范围的情况下做出过程、电及/或结构改变。
34.如本文中使用,尤其关于图式中的元件符号的标示符(例如“n”等)指示可包含所标示的特定特征的数目。如本文使用,“数个”特定事物指代一或多个此类事物(例如,数个存储器阵列可指代一或多个存储器阵列)。“多个”意欲指代一个以上此类事物。
35.本文中的图遵循编号惯例,其中第一数字或前几个数字对应于图号且剩余数字识别图式中的元件或组件。不同图之间的类似元件或组件可通过使用类似数字来识别。举例来说,104可指代图1中的元件“04”,且类似元件在图2中可标注为204。应了解,本文中的各种实施例中展示的元件可经添加、交换及/或消除以便提供本公开的数个额外实施例。另外,应了解,图中提供的元件的比例及相对尺度意欲说明本发明的某些实施例,且不应被视为意在限制。
36.图1是根据本公开的数个实施例的呈包含框架110、主机102及存储器系统104的计算系统100的形式的设备的框图。如本文中使用,框架110、主机102及/或存储器系统104也可被单独视为“设备”。在一些实施例中,存储器系统104可为结合图2描述的混合存储器系统。
37.系统100包含耦合(例如,连接)到存储器系统104的主机102,存储器系统104包含本文图2中说明的一或多个存储器资源。主机102可为主机系统,例如个人膝上型计算机、台式计算机、数码相机、智能电话、存储器读卡器、iot启用装置以及各种其它类型的主机。主机102可包含系统母板及/或背板且可包含数个处理资源(例如一或多个处理器、微处理器或某种其它类型的控制电路系统)。系统100可包含单独集成电路,或两个主机
38.102及存储器系统104可在同一集成电路上。系统100可为例如服务器系统及/或高性能计算(hpc)系统及/或其一部分。
39.为清楚起见,系统100已经简化以聚集于与本公开特别相关的特征。存储器系统104可包含一或多个存储器资源,例如dram阵列(例如2t2c dram阵列、3t dram阵列等)、feram、sram阵列、stt ram阵列、pcram阵列、tram阵列、rram阵列、nand快闪阵列、3d xpoint存储器、nor快闪阵列及/或包含(例如)控制器、3d xpoint存储器部分及nand快闪部分的存储子系统。
40.框架110可包含可由与主机102相关联的处理资源执行以促进系统100操作的指令。举例来说,框架可包含可由主机102的处理资源执行以控制例如读取、写入、打开、关闭等的计算操作提供一或多个文件系统(例如虚拟文件系统、例如扩展文件系统的文件系统等)的指令及/或对应于块装置的一或多个指令。在一些实施例中,框架110可为框架,例如框架。另外,框架110可包含可执行以允许在主机102上运行的操作系统与耦合到主机102的一或多个装置通信的驱动程序(例如一或多个软件驱动程序)。
41.在一些实施例中,框架110可表示操作系统。举例来说,框架110可表示具有与其相关联的内核的操作系统。在此类实施例中,框架110可被视为“软件存储堆叠”(例如,框架110可表示操作系统的基于软件的内核实施方案)。
42.因此,框架110可具有与其相关联的用于存储可执行以操作计算系统100的指令的一或多个存储器资源,及/或框架110可包含其上存储由框架110用于操作计算系统100的指令的虚拟化存储器资源。实施例不限于此;然而,由框架110利用的指令及数据可经存储于存储器系统104或主机的主存储器中及/或从存储器系统104或主机的主存储器存取,如本文中进一步详细描述。
43.如上文描述,框架110可包含经配置以执行某些任务及/或操作的各种组件。举例来说,框架110可包含系统调用组件111、虚拟文件系统组件112、文件系统组件113、块装置组件114及/或驱动程序组件115。
44.系统调用组件111可包含可由处理资源(例如与主机相关联的处理资源)执行的指令及/或可具有指令最终可在其上执行以从指令将执行于其上的操作系统的内核请求一或多个服务的硬件资源。在一些实施例中,系统调用组件111可经由应用程序编程接口来存取。当实施时,与系统调用组件111相关联的指令可将计算系统100的控制从用户空间转移到内核空间。在一些实施例中,此控制转移可响应于软件中断而发生。
45.虚拟文件系统组件112可包含可由处理资源(例如与主机相关联的处理资源)执行的指令及/或可具有指令最终可在其上执行以在文件系统组件113的顶部上提供抽象层的硬件资源。举例来说,虚拟文件系统组件112可包含可经执行以存取本地及/或网络存储装置的指令。在一些实施例中,虚拟文件系统112可包含可经执行以透明地(例如,无客户端应用程序交互)存取本地及/或网络存储装置的指令。与虚拟文件系统组件112相关联的指令可指定内核与文件系统组件113之间的接口。
46.文件系统组件113可包含可由处理资源(例如与主机相关联的处理资源)执行的指令及/或可具有指令最终可在其上执行以控制如何存储及/或检索与计算系统100相关联的数据的硬件资源。举例来说,文件系统组件113可
47.包含可执行以从存储器系统104存储及/或检索数据的指令,如本文中更详细论述。
48.块装置组件114可存储可由处理资源(例如与主机相关联的处理资源)执行的指令及/或可具有指令最终可在其上执行以引用与计算系统100相关联的一或若干特定存储器位置的硬件资源。在一些实施例中,块装置组件114可包括可提供对计算系统100的缓冲存取的硬盘驱动及/或固态驱动ssd。举例来说,与块装置组件114相关联的指令可经执行以提供对与计算系统100相关联的装置(例如存储器系统104)的存取。
49.驱动程序组件115可包含可由处理资源(例如与主机相关联的处理资源)执行的指令及/或可具有指令最终可在其上执行以对与计算系统100相关联的各种组件提供驱动程序支持的硬件资源。举例来说,驱动程序组件115可经配置以执行指令以加载及/或更新与主机102、存储器系统104及/或可与计算系统100相关联的其它外围装置(未展示)相关联的驱动程序。
50.在一些实施例中,框架110的各种组件可展现不同存取模式,其中至少部分可展现可预测及/或重复行为,如本文中更详细描述。
51.因此,本文中描述的实施例可允许混合存储系统以促进框架110、主机102及/或存储器系统104的各种组件及/或与所述各种组件相关联的存取模式的管理。
52.框架110可经由主机102耦合到存储器系统104。举例来说,主机102可包含经配置以执行存储于框架110中的指令(例如与系统调用组件111、虚拟文件系统组件112、文件系统组件113、块装置组件114及/或驱动程序组件115相关联的指令)的一或多个处理资源(例如计算机处理器,例如中央处理单元及/或其它计算机处理器)。
53.图2是根据本公开的数个实施例的呈包含包括主存储器209的主机202及存储器系统204(例如混合存储器系统)的计算系统200的形式的设备的框图。主存储器209可为可用于存储与计算系统200的操作相关联的一或多个数据页的易失性存储器,例如ram、dram、sram等。
54.然而,实施例不限于易失性存储器,且主存储器可包含非易失性存储器作为易失
性存储器的补充或替代。
55.如图2中说明,混合存储器系统204可包含耦合到控制器206的一或多个存储器资源208-1、

、208-n。如图2中展示,控制器206经由相应通信通道210-1、

、210-n通信地耦合到存储器资源208-1、

、208-n。通信通道210-1、

、210-n可允许数据及/或命令在控制器206与存储器资源208-1、

、208-n之间传送。在各种实施例中,控制器206负责致使来自框架(例如图1中说明的框架110)及/或主机202的指令执行及/或使对存储器系统204的存取排序。
56.控制器206可为状态机、序列发生器或某种其它类型的控制器,且包含呈专用集成电路(asic)、现场可编程门阵列等的形式的硬件及/或固件(例如微代码指令)。控制器206可控制(例如)经执行以促进计算系统200操作的指令的存取模式。
57.如本文中使用,主机202、存储器系统204、控制器206及/或存储器资源208-1、

、208-n也可单独被视为“设备”。
58.在一些实施例中,存储器系统204可为混合存储系统且可包含一或多个存储器资源208-1、

、208-n。
59.存储器资源208-1、

、208-n可为不同种类的存储器资源。举例来说,存储器资源208-1可为新兴非易失性存储器资源(例如3d xpoint存储器资源、铁电ram(feram)等),而存储器资源208-n可为nand存储器资源。实施例不限于这些特定实例,且存储器资源208-1及/或存储器资源208-n可包括其它合适类型的存储器资源。
60.在计算系统200的操作期间,存储器系统204可用于代码分页。如本文中使用,“代码分页”是一种存储器管理方案,计算系统200通过所述存储器管理方案来存储数据及从存储器系统204检索数据以供主机202的主存储器209(例如系统存储器)使用。在一些实施例中,可执行以促进代码分页的指令(其可经存储于主机202的主存储器209中)可经执行作为计算系统200的操作的部分。
61.然而,在计算系统200的操作期间,可执行用于存取主存储器209的同一部分的多个指令(例如用于存储数据及/或从主存储器209检索数据的指令)。此可导致异常,因为在一些实施例中,程序可存取未映射到计算系统200的主存储器209中的数据及/或指令。在此情况中,数据及/或指令可从存储器系统204存取,借此处置由于数据及/或指令无法从主存储器209存取而发生的页故障。在一些方法中,此异常可通过提供对除主存储器209以外的存储器位置的读取及/或写入存取来处置(例如,补救)。举例来说,在一些方法中,预读机制可用于预提取已经历异常的指令集且将其存储于与计算系统200及/或主机202相关联的高速缓存中用于后续执行。
62.此类异常在计算系统200的操作中可能十分常见。举例来说,在多处理计算环境中,且可产生大量读取及/或写入数据,在一些实例中,高达每天数百千兆字节。在一些实施例中,为了缓解在读取/写入操作中消耗的处理资源及/或时间,将产生阈值数目次存取的指令或数据存储于存储器资源(例如存储器资源208-1)中以减少读取/写入延时及减少消耗处理资源量可为有益的。
63.举例来说,在一些实施例中,控制器206可经配置以确定对应于对特定数据集的读取或写入存取请求的异常将要发生(或已发生)且致使特定数据集写入到存储器资源208-1用于由计算系统200后续执行及/或检索。在一些实施例中,特定数据集可经存储于存储器
资源208-1中的分区或地址范围中。分区及/或地址范围可经分配(例如,保留)使得除特定数据以外的数据(例如不对应于读取或写入存取请求的数据)不存储于分区及/或lba块中,如本文中结合图3a、3b及3c更详细描述。
64.如上文描述,主机的主存储器209可为物理存储器资源,例如易失性存储器资源(例如ram、dram、sram等)、非易失性存储器资源(例如hdd、快闪存储器、铁电ram等)或其组合。因此,可经存储于主存储器209中的数据量可由于主存储器209的物理性质而受限。举例来说,主存储器209可包含其中可存储数据的有限空间量。
65.因此,在一些操作条件下,主存储器209可满载及/或可在主机202试图将过多数据存储于主存储器209中时展现降低性能。此可在利用虚拟存储器技术将存储器资源(例如主存储器209)抽象化以产生存储器空间量大于由主存储器209定义的实际物理存储器空间量的错觉的系统中进一步恶化。
66.在此类实施方案中,虚拟地址空间可使用逻辑到物理寻址技术来管理(例如,通过控制电路系统,例如与主机202相关联的存储器管理单元)。举例来说,虚拟地址可经指派给对应物理地址,所述物理地址可对应于过程最终可在其上执行的主存储器209的物理位置(例如一或多个存储器页等)。然而,当多个虚拟存储器地址经映射到同一物理存储器地址时,计算系统200可经历降低性能及/或可中止(例如,过程可被终止及/或可表现异常)。
67.举例来说,在利用虚拟存储器技术的计算实施方案中,一或多个过程可引用可映射到主存储器209的物理存储器位置上的一或多个虚拟存储器位置(例如存储器页、存储器块等)。此外,当主存储器209满载时,虚拟存储器页可能无法被调用,因为可用于执行过程的物理存储器资源不足。
68.在一些方法中,此可通过将主存储器209中的数据页传送到交换空间以释放主存储器209的物理存储器资源来缓解。举例来说,在一些方法中,操作系统的内核可包含释放分配给匿名页的主存储器209的物理存储器资源的机制。如本文中使用,“匿名页”是不具有相关联文件的存储器页。举例来说,匿名页可为未由文件支持的存储器页(例如不具有指定文件的存储器页)。然而,尽管匿名页可不与文件相关,但匿名页可与过程及/或过程工作集相关。过程及过程工作集的非限制性实例包含数据结构,例如堆、堆叠、常量等。
69.如本文中使用,过程工作集包含主机的虚拟地址空间中的存储于主机的物理存储器(例如主机的主存储器)中的一或多个数据页。举例来说,过程工作集含有主机的主存储器可见的存储器页(例如最近由主机引用的页)。
70.在此类方法中,页(例如匿名页)的相关内容可被临时传送(例如,复制)到交换空间及/或交换装置。如果页随后被引用,那么页可被传送(例如,复制)回主存储器209。然而,由于与将页从主存储器209传送到交换空间或交换装置及接着随后将页从交换空间或交换装置传送回主存储器209相关联的时间及能量消耗,传统交换技术可能不太可取,尤其在其中此类技术被重复利用的实施方案中。如本文中使用,过程工作集包含主机的虚拟地址空间中的存储于主机的物理存储器(例如主机的主存储器)中的一或多个数据页。举例来说,过程工作集含有主机的主存储器可见的存储器页(例如最近由主机引用的页)。
71.为了促进数据(例如对应于存储器页的数据)的选择性传送,在一些实施例中,混合存储器装置204的一部分可经配置以操作为交换装置(例如,可经配置以允许存储器页选择性来回传送于混合存储器系统204的部分)。举例来说,存储器资源208-1的一部分可经配
置以操作为交换装置,使得存储器页被选择性传送到存储器资源208-1的部分。在一些实施例中,存储器资源208-1的一或多个存储器页或与存储器资源208-1相关联的一或多个逻辑块地址可经分配以执行交换操作。
72.一或多个存储器页及/或一或多个逻辑块地址可在制造混合存储器系统204时(例如,在提供混合存储器系统204出售给终端用户之前)分配,或一或多个存储器页及/或一或多个逻辑块地址可在初始化混合存储器系统204时(例如,在启动计算系统200时)分配。然而,实施例不限于此,且在一些实施例中,一或多个存储器页及/或一或多个逻辑块地址可由混合存储器系统204在计算系统200的运行时间期间动态分配。
73.在一些实施例中,经分配为交换装置的混合存储器系统204的部分可为具有比混合存储器系统200的其它部分低的存取时间的混合存储器系统200的一部分。举例来说,存储器资源208-1可具有比存储器资源208-n低的存取时间,因为存储器资源208-1是新兴类型的存储器资源,例如3d xpoint存储器资源。此外,在一些实施例中,经分配为交换装置的混合存储器系统204的部分可为具有比混合存储器系统200的其它部分高的耐久性的混合存储器系统200的一部分。
74.在一些实施例中,由主机202执行的过程及/或应用程序可依赖于数据库管理系统(dbms),例如nosql、sqlite、云端dbms或其它合适dbms。dbms可允许终端用户创建、读取、更新及/或删除与计算系统200相关联的数据库中的数据。在一些实施例中,dmbs可根据可允许实现数据一致性及/或系统耐久性的日志记录策略操作。dbms可具有与其相关联的命令。在一些实施例中,与dbms相关联的命令可至少部分基于指派给dbms命令的敏感度来选择性转移到混合存储器系统的一部分。
75.日志记录系统可为跟踪尚未送交给文件系统(例如本文图1中说明的文件系统113)的变化的日志记录文件系统。在计算系统200的操作期间,日志记录系统可引发多个随机写入,这可使存储器系统204及/或主存储器209承受压力。举例来说,日志记录系统可引发多个同步随机及频繁写入,这可过度利用计算系统200的存储器及/或主存储器209,借此使计算系统200及/或主存储器承受压力。
76.这些随机及频繁写入可引发长延时,尤其在基于快闪的存储器系统中,因为维护操作在前台中执行(例如,在写入命令执行期间)。这些延时在某些条件下(例如当基于快闪的存储器系统满载或接近满载操作时及/或当基于快闪的存储器系统已长时间操作时)可在基于快闪的存储器系统中进一步恶化。相比之下,混合存储器系统204可随时间及/或在混合存储器系统204满载或接近满载操作时引发比基于快闪的存储器系统低的延时。
77.为了缓解与基于快闪的存储器系统相关联的缺点,一些实施例允许控制器206确定由dbms处置的命令业务的敏感度及基于业务的经确定敏感度将指示符应用于某些类型的命令业务。命令业务的敏感度可基于命令业务的特性,例如特定命令的执行频率、命令的大小、执行命令消耗的资源(例如存储器资源及/或处理资源)量、可执行命令的速度或其它合适敏感度特性。在一些实施例中,敏感度可基于与命令执行相关联的写入延时或读取延时。在此实例中,命令可响应于确定与命令执行相关联的写入延时超过阈值写入延时而选择性转移到混合存储器系统204。
78.一旦控制器206将指示符附加到命令,则命令可选择性转移到计算系统200的适当存储器位置。举例来说,重复、随机及/或频繁执行的命令业务(例如由日志记录系统在计算
系统200的操作期间引发的同步小频繁及随机写入)可被选择性转移到混合存储器装置204。在一些实施例中,命令业务可基于到与混合存储器系统204相关联的多个存储器资源208-1、

、208-n中的特定存储器资源(例如存储器资源208-1)的指示符来选择性转移。
79.通过将命令业务的某些部分选择性转移到混合存储器系统204,可相较于其中命令业务未选择性转移的方法或其中命令业务由基于快闪的存储器系统处置的方法实现较低延时及/或提高性能。
80.在一些实施例中,计算系统200的文件系统(例如图1中说明的虚拟文件系统112、图1中说明的文件系统113)可为例如快闪友好型文件系统(f2fs)的快闪文件系统或例如ext4的日志记录文件系统,但文件系统不限于这些特定实例。文件系统可通过在文件更新时更新的特定元数据更新来维持其结构。举例来说,计算系统200的文件系统可包括例如表、树、数据阵列等的数据结构,且可在与其相关联的文件更新时更新以维持文件系统的结构。
81.当文件系统更新时(例如,当元数据更新响应于文件更新而应用于文件系统时),以小随机写入执行更新。如上文描述,这些类型的小随机写入可使存储器系统204及/或主存储器209承受压力。这些随机写入可引发长延时,尤其在基于快闪的存储器系统中,因为维护操作在前台中执行(例如,在写入命令执行期间)。这些延时在某些条件下(例如当基于快闪的存储器系统满载或接近满载操作时及/或当基于快闪的存储器系统已长时间操作时)可在基于快闪的存储器系统中进一步恶化。相比之下,混合存储器系统204可随时间及/或在混合存储器系统204满载或接近满载操作时引发比基于快闪的存储器系统低的延时。
82.举例来说,在一些实施例中,与文件系统更新(例如文件系统元数据更新)相关联的命令业务可被选择性转移到计算系统200的适当存储器位置。在一些实施例中,计算系统200的适当存储器位置可为混合存储器系统204的一部分,例如存储器资源208-1。在一些实施例中,控制器206可经配置以致使文件系统更新选择性转移到混合存储器系统204的部分。
83.通过将文件系统写入选择性转移到混合存储器系统204,可相较于其中文件系统写入未选择性转移的方法或其中文件系统写入由基于快闪的存储器系统处置的方法实现较低延时及/或提高性能。
84.在计算系统200的操作期间,某些文件系统(例如图1中说明的虚拟文件系统112、图1中说明的文件系统113)可展现重复及/或可预测写入模式。举例来说,f2fs检查点及/或日志记录系统可以可预测方式重复写入某些命令及/或数据。这些命令及/或数据可以小随机写入来写入,如上文描述。
85.如上文描述,这些小随机写入可引发长延时,尤其在基于快闪的存储器系统中,因为维护操作在前台中执行(例如,在写入命令执行期间)。这些延时在某些条件下(例如当基于快闪的存储器系统满载或接近满载操作时及/或当基于快闪的存储器系统已长时间操作时)可在基于快闪的存储器系统中进一步恶化。相比之下,混合存储器系统204可随时间及/或在混合存储器系统204满载或接近满载操作时引发比基于快闪的存储器系统低的延时。
86.为了缓解与基于快闪的存储器系统相关联的缺点,一些实施例允许将小随机写入选择性转移到混合存储器系统204的一部分。举例来说,计算系统200(或其部分)可经配置以确定写入操作(例如小随机写入)的来源。在一些实施例中,与计算系统200相关联的文件
1、

、308-n的大容量存储装置。不幸的是,这些tlc及qlc nand快闪存储器部分308-1、

、308-n的特征在于比slc及mlc nand相对更高的存取延时。申请人已意识到,组合nand存储器部分与具有较低延时及较高处理量的新兴技术(例如前述3dxp存储器)可显著提高系统性能。
96.在本公开的一个实施例中,较快存储器部分310用作使读取存取及相关算法从nand加载数据及从高速缓存驱逐数据的高速缓存存储器。
97.本公开的至少一个实施例涉及一种用于包含存储装置的混合存储器装置的读取高速缓存架构,所述存储装置包括:
98.多个非易失性存储器部分;
99.所述存储装置的控制器,其定向连接到所述非易失性存储器部分;
100.至少一较快存储器部分,其相对于所述非易失性存储器部分具有更低延时及更高处理量且定向连接到所述控制器;
101.所述较快存储器部分是用于所述多个非易失性存储器部分的所述高速缓存存储器部分。
102.本发明的另外实施例涉及一种设备,其包括:
[0103]-主机装置;
[0104]-存储装置,其具有控制器;
[0105]-通信通道,其在所述主机装置与所述存储装置的所述控制器之间,其中
[0106]-所述存储装置包括:
[0107]-多个非易失性存储器部分;
[0108]-所述存储装置的控制器,其定向连接到所述非易失性存储器部分;
[0109]-至少一较快存储器部分,其相对于所述非易失性存储器部分具有更低延时及更高处理量且定向连接到所述控制器;
[0110]-所述较快存储器部分是用于所述多个非易失性存储器部分的高速缓存存储器部分。
[0111]
本公开的另一实施例涉及一种用于改进包含由存储器控制器管理的多个非易失性存储器部分的存储装置中的读取阶段的方法,其包括:
[0112]-提供至少一较快存储器部分,其相对于所述非易失性存储器部分具有更低延时及更高处理量且定向连接到所述控制器;
[0113]-将所述较快存储器部分用作读取高速缓存存储器以复制包含所述多个非易失性存储器部分的更频繁读取的逻辑块地址的存储器区的内容。
[0114]
本公开的又一实施例涉及一种用于加速包含多个非易失性存储器部分及存储器控制器的受管理存储装置的读取阶段的方法,其包括:
[0115]-读取所述多个非易失性存储器部分中的一者中的存储器区的逻辑块地址;
[0116]-在对所述存储器区的逻辑块地址进行任何读取存取时更新与每一存储器区相关联的计数器;
[0117]-当所述计数器超过设置阈值时在非易失性读取高速缓存存储器部分中复制内容,更频繁存取的存储器区。
[0118]
本公开是基于以下考虑:如果足够数据从相同页、不同平面或裸片读取,那么基于
nand的存储装置可达到良好读取性能。用大分块大小执行的循序读取存取可利用nand大页大小。另一方面,为了提高随机读取性能,使用长命令队列,从而允许从不同nand平面或裸片并行读取数据。不幸的是,在移动工作负载中,在命令队列中仅具有几个命令是很常见的,因此nand并行化无法被利用且此导致较低性能。
[0119]
本公开基于将新兴存储器(em)用作混合存储装置的高速缓存部分来提出一种新读取高速缓存架构。因为新兴存储器读取延时显著低于nand存储器,因此即使在低队列深度的情况中,此技术也可提供很高随机读取性能。如果高速缓存命中率较高且其具有低管理开销,那么读取高速缓存提高系统性能。
[0120]
换句话说,nand延时仅在第一存储器存取时产生,而考虑到较快高速缓存非易失性存储器部分的较低延时,后续存取成为可能。然而,管理高速缓存填充及清除的算法与读取存取的较佳优化相关。
[0121]
此外,根据本公开的实施例,读取命令经监测以发现哪一lba应复制于读取高速缓存存储器部分中及哪一lba应从其移除。此监测阶段使用在存储装置304的控制器306中是昂贵资源的sram部分315的有限量执行。
[0122]
下文描述的一部分将重点关注由主机控制器302向存储装置304发出的读取指令的分块大小。分块大小是可在对存储装置进行读取存取的任何时间交换的最小字节数目。最分散的分块大小中的一者是4kbyte;然而,由申请人执行的研究已证明,在具有较大分块大小的移动应用中,可覆盖通过主机控制器与存储装置交换的命令的最大百分比。
[0123]
现返回到图3的实例,已理解,本公开的设备包含具有读取高速缓存存储器部分的存储装置架构,读取高速缓存存储器部分是经结构化有新兴存储器(此一3d交叉点存储器部分)的非易失性存储器部分。此配置允许获得读取性能的显著提高,如将在下文看到。
[0124]
在移动工作负载中,即使多数读取业务是由于具有大分块大小的命令,但多数读取命令具有小分块大小,例如所提及的4kbyte大小。
[0125]
具有低读取延时的新兴存储器技术(例如3dxp存储器部分)独立于并发读取的物理块的数目而提供一致读取性能。相反,如果足够pba从相同页、不同平面或裸片读取,那么nand存储器部分较快。
[0126]
举例来说,来自3dxp的单个4kb读取更快得多,而来自nand的256kb读取可较快。因此,以短分块频繁读取的lba是复制于读取高速缓存中的候选者。
[0127]
在所提出的架构中,读取命令经监测以发现哪一lba应复制于读取高速缓存中及哪一lba应从其移除。
[0128]
包含读取高速缓存存储器部分310的存储装置304的控制器306经配置有负责读取高速缓存管理的驻留算法。此读取管理算法将从非易失性存储器部分308i频繁且以小分块读取的逻辑块的数据复制于较快存储器部分310中及在其不再使用时从相同存储器部分310驱逐lba。
[0129]
为了确定哪一lba应保持于较快存储器部分310中,整个存储装置逻辑容量划分于所谓的lba区中。换句话说,代替保持记录每一lba的读取及/或写入存取,本公开建议保持记录对具有某一大小的lba区执行的存取。
[0130]
举例来说,lba区可具有32mbyte的大小且可被视作扩展存储器页。
[0131]
每一lba区具有读取存取计数器及/或写入存取计数器:readregioncnt[i]及/或
writeregioncnt[i]。这些lab区存取计数器存储于控制器306内部的嵌入式易失性存储器部分315中。易失性存储器部分315是sram存储器。
[0132]
图4展示表示存储于易失性存储器315中的数据的示意表400,其包含在列410中与lba区的列420及读取区计数器的另一列430相关联的逻辑块地址。所报告的实例是基于512gbyte存储装置。类似表可经实施用于写入区计数器。
[0133]
更明确来说,本公开的存储器结构及方法可适合于提供写入高速缓存存储器部分以及写入区计数器的存储器装置的写入阶段。在此内容中,高速缓存存储器部分310可经结构化或配置为与写入区计数器或存储于易失性存储器部分315中的lab存取计数器通信的写入高速缓存存储器部分。
[0134]
在本公开的下文中,我们将参考高速缓存存储器部分以意指其可用于读取或写入操作,即使所公开的实例将主要聚焦于读取阶段。
[0135]
仅作为另一实例,如果读取计数器大小是1个字节,那么仅需要16kbyte的sram315。
[0136]
列410的最高有效lba位识别lba所属的lba区:例如32mbyte lba区大小的lba[26:13]。
[0137]
列430的读取区计数器在每次读取对应lba的一者时递增。作为一选项,计数器可仅在读取命令具有低于指定阈值的分块大小时递增。计数器通过新近算法周期性递减,否则最终其全都将饱和。
[0138]
图5是展示读取高速缓存逻辑数据及块流程的示意图。用510指示的块对应于图3的较快存储器部分310,而存储器组件508i表示图3中用元件符号3081、

、308n展示的通用nand存储器部分中的一者。
[0139]
图展示由箭头表示的数据流,其中如果lba区的计数器等于或大于阈值(loadth),那么lba区可高速缓存(意味着其内容优选地存储于较快存储器部分510中)。当发生以下两种条件时,逻辑块从nand部分508i复制到读取高速缓存存储器部分510:
[0140]
·
其用具有等于或低于经定义阈值的传送长度的命令读取;
[0141]
·
其属于可高速缓存的lba区。
[0142]
如果这两个条件都满足,那么命令的所有lba都复制于非易失性较快存储器部分510中。此存储器部分510也可经配置为写入高速缓存而非仅作为读取高速缓存。
[0143]
应注意,主机控制器302可提供提示,其指示例如应复制于较快存储器部分510中的lba范围,因为其被频繁读取或因为其对应用来说至关重要。
[0144]
仅作为实例且为了较佳理解,我们可考虑真实情况,其中安装于主机控制器302上的安卓操作系统需要存取在系统分区中包含操作系统的被频繁存取的库的只读存储器部分。在此情况中,主机控制器302可提供提示来仅将最频繁存取库存储于高速缓存较快存储器部分510中。
[0145]
因此,这些lba将在其在主机请求之后被写入或加载时复制于高速缓存较快存储器部分510中。安卓系统分区是可被钉紮的lba范围的实例,因为其以短分块频繁读取;然而,其它实例可在不限制申请人的权利的情况下完成。
[0146]
换句话说,lba区的lba将仅在其以短分块读取时复制于存储器部分510中;借此避免在频繁lba区的群组中插入已参与读取阶段仅一次但在相同区中包含有大量lba的区。
[0147]
高速缓存较快存储器部分510通过负责确保在高速缓存较快存储器部分510中始终存在足够空间用于存储频繁读取的lba的算法来管理。
[0148]
如果存储器部分510中的自由块的数目低于预定阈值,那么一些lba从此存储器部分510丢弃。此操作称为驱逐且在装置空闲时间期间执行。如果高速缓存的存储器部分的计数器低于设置阈值,那么高速缓存的存储器部分可视作“可驱逐的”。
[0149]
图6是说明新近算法及新近事件及可驱逐lba区列表更新的介入的示意图。读取区计数器630等效于图4中展示的读取区计数器430,而列表620对应于图4中展示的列表420但包含所谓的可驱逐区。
[0150]
在图6的左侧上展示在其中央部分中包含被频繁读取的lba区m或j的列表630。因此,所述两个区是传送于高速缓存存储器部分510中的最佳候选者。所有lba区计数器都通过新近算法周期性递减。
[0151]
新近算法在后续图9中说明且在两种情况中激活:当许多读取区计数器接近饱和时或当读取高速缓存接近满载且可驱逐列表中仅存在几个元素时。新近算法的介入使系统适应工作负载且相较于现有技术解决方案提供真实改进。
[0152]
重点关注图6的右侧,我们可了解,之前可高速缓存的lba区m及j已改变其相应特性。在新近事件之后,读取区计数器m保持高于负载阈值(loadth),而lba区j的计数器保持低于驱逐阈值(evictionth)的值。
[0153]
此lba区j变成可驱逐且其索引j附加到可驱逐lba区列表620。
[0154]
应注意,在驱逐操作期间,读取高速缓存管理算法从可驱逐读取区列表620搜索“可驱逐”区,且其从读取高速缓存存储器部分510丢弃所述区的所有lba。
[0155]
应进一步注意,存在于读取高速缓存510中的逻辑块在nand 508i中具有备份(因为读取高速缓存510大小不贡献总存储装置容量),接着在驱逐操作期间没有数据复制,而是仅l2p表更新。
[0156]
图7展示对高速缓存存储器部分510执行的加载操作的实例的流程图700。在第一测试步骤710中,检查主机控制器302读取命令是否具有等于或低于transferlengthth的传送长度。如果答案是肯定的,那么在步骤720中,相关联lba区的计数器递增等于传送长度的量。另一测试阶段在步骤730中执行以检查计数器值是否等于或大于加载阈值loadth。
[0157]
如果答案是肯定的,那么对应lba区可高速缓存且另一检查在步骤740中执行以评估lba是否已存在于读取高速缓存存储器部分510中。
[0158]
如果此另一检查是否定的,那么在步骤750中读取命令的所有lba在其从nand检索之后都复制于读取高速缓存存储器部分510中,如果还没有的话。
[0159]
应注意,读取区计数器仅在命令具有等于或低于transferlengthth的传送长度时在步骤720中递增。此降低在具有高传送长度的几个读取命令之后就使lba区升级为可高速缓存区的风险。
[0160]
最后,如果读取高速缓存存储器部分510中的自由块的数目低于阈值readcacheavailblockth,那么在步骤770中调度驱逐操作以从读取高速缓存存储器部分510丢弃一些lba。
[0161]
图8展示新近算法的实例的流程图800,其周期性用于递减所有读取区计数器。
[0162]
在图8的此实例中,每一计数器值在新近操作期间减半。在第一步骤810中,将指示
读取区计数器的位置的k参数设置为“0”。接着,在步骤820中,使第k计数器的值减半。
[0163]
测试步骤830经执行以在新近操作期间检查与经高速缓存的lba区相关联的计数器是否下降到低于阈值evictionth。如果答案是肯定的且属于lba区的至少一个lba被加载于读取高速缓存存储器部分510中,那么所述区变成可驱逐的。
[0164]
在步骤840中,将可驱逐区附加到可驱逐lba区列表620,且所述列表将在驱逐操作期间被扫描以选择其lba将从读取高速缓存存储器部分510移除的区。
[0165]
在步骤850中,使参数k的值递增且在步骤860中执行测试以检查值k是否等于lba区的总数,否则程序返回到步骤820。
[0166]
图9展示读取区计数器管理算法的实例的流程图900。如果传送长度低于或等于阈值,那么此算法在处理读取命令时启动。
[0167]
算法开始于步骤910,其中识别由识别lba所属的lba区的最高有效lba位给定的索引:例如lba[26:13]。
[0168]
如果计数器低于其最大值(maxreadcntvalue),那么计数器递增等于读取命令传送长度的量,参阅步骤915及步骤920。计数器最终在步骤930中达到饱和值maxreadcntvalue。
[0169]
如果此测试阶段930的答案是否定的,那么程序通过步骤980进行到测试阶段985,在步骤980中更新读取区计数器的索引。
[0170]
相反,如果测试步骤930的答案是肯定的,那么在调适读取区计数器索引的步骤940及950之后在步骤960中监测饱和读取区计数器的数目以检查此数目是否变成等于或大于经定义阈值satcntth。在步骤970中调度新近事件以递减所有读取区计数器。
[0171]
在步骤985中,检查读取高速缓存是否几乎满载,如果没有,那么算法结束。否则,如果在可驱逐读取区列表620中列举的可驱逐lba区的数目低于阈值minevictlistth(如通过步骤990检查),那么通过步骤970调度新近事件。
[0172]
驱逐步骤是例如在空闲时间执行且在读取高速缓存几乎满载时触发的后台操作。
[0173]
在其执行期间,一个可驱逐lba区选自可驱逐读取区列表620,且属于此列表的所有经高速缓存的lba都从读取高速缓存存储器部分510丢弃。搜索区的哪一lba在读取高速缓存中可为长操作,因为其需要扫描大量l2p表条目。
[0174]
为了解决此问题,将逻辑块信息存储于称为读取区链表的结构中。每一lba区的链表存在于读取高速缓存存储器部分510中。
[0175]
物理块地址(pba)指示逻辑块存储在哪里。物理块含有逻辑块数据及一些元数据信息。读取区链表存储于物理块元数据中:每一元数据含有复制于读取高速缓存存储器部分510中且属于相同lba区的下一逻辑块的pba。
[0176]
图10展示报告计数器值对时间的增大的图,用于周期性递减存储于计数器中的值以优化非易失性高速缓存存储器部分510内部的存储器区的读取阶段的根据本公开的机制。
[0177]
如通过图可了解,两个水平线指示两个预定阈值。第一阈值1010指示上限,当逻辑块被读取时,高于所述上限的计数器的值迫使逻辑块复制高速缓存存储器部分内部的对应存储器区的内容。第二阈值1020指示下限,低于所述下限的计数器的值迫使对应存储器区的内容从高速缓存存储器部分移除或驱逐。
[0178]
第一线1050指示存储于给定存储器区m的读取计数器rdcnt中的值(即,rdcntm),而第二线1070指示存储于另一给定存储器区j的读取计数器中的值(即,rdcntj)。
[0179]
在第一时间段i中,两个线都增大且指示两个区被频繁存取且被视作“热”,使得与第一线1010相关联的计数器达到指示其饱和的顶级。
[0180]
第一新近事件在第一时间段i到第二段ii之间执行且减小由所有计数器记录的值。此可能减小可例如是所存储的值除以2,使得所有计数器都减半。
[0181]
由于此新近,线1050仍在第一阈值水平1010上,而第二线1070在第一阈值水平1010下。
[0182]
在第二时间段ii中,碰巧发生存储器区j仍被频繁存取且指示对应计数器值的对应线1070增大比不再如此频繁存取的第一线1050多得多。
[0183]
此时,第二新近事件在第二时间段ii与第三时间段iii之间执行,从而将与存储器区j相关联的计数器的值降低甚至更多。此值现下降到甚至低于第二阈值限制1020。
[0184]
此意味着原来复制于存储器部分510内部的存储器区m的内容可被移除或驱逐且其位置可专用于复制及存储同时变“热”的另一存储器区。从“热”状态转变到所谓的“冷”状态的此存储器部分的地址“m”插入于其内容将很可能在下一可能时机从高速缓存存储器部分510移除的可驱逐存储器部分的列表620中。
[0185]
重要的是,应注意,驱逐阶段需要仅改变指针。换句话说,没有对高速缓存存储器部分执行擦除阶段,但仅对应于“冷”存储器区的内容的存储器区域或存储器位置留给同时变“热”的另一存储器区的内容的下一复制阶段的处理。
[0186]
为了总结根据本公开的程序,值得重做的是,新近阶段周期性递减所有读取计数器,且在新近之后变冷的经高速缓存的读取区被选择为

可驱逐的’且附加到可驱逐列表。
[0187]
因此,如果高速缓存存储器部分几乎满载,那么属于可驱逐区的经高速缓存的lba在驱逐阶段期间丢弃。然而,没有逻辑块数据在驱逐期间复制,而是仅更新指针l2p。
[0188]
针对存在于读取高速缓存存储器部分中的每一读取存储器区,复制于读取高速缓存中的最后一逻辑块的pba被保存于存储于控制器的易失性sram中的读取高速缓存表315中。每次新逻辑块插入于读取高速缓存存储器部分中时,更新此易失性存储器。
[0189]
图11说明链表的构建过程。通用存储器区m的第一经高速缓存lba可被识别为lbaa且存储于在图11中展示为1120的物理块地址pbaa中。此第一pbaa被保存于包含指向读取高速缓存存储器部分1110中的经高速缓存lba的所有指针的读取高速缓存表(sram)1115中。必须注意,读取高速缓存存储器部分1110对应于图3的存储器部分310及图5的存储器部分510。
[0190]
类似地,易失性存储器部分1115等效于存储器控制器306中所含的图3的存储器部分315。
[0191]
当另一逻辑块地址lbab加载于读取高速缓存存储器部分1110中时,先前pbaa值存储于相关联pbab元数据1130中,而读取高速缓存表1115用此pbab的值更新。过程针对加载于读取高速缓存存储器部分1110中的所有lba迭代。
[0192]
图12展示驱逐阶段期间的链表扫描过程,其中完全等效于图11的存储器部分1110的读取高速缓存存储器部分1210变成可用于新频繁读取的存储器区。
[0193]
通用lba存储器区m已被选择存储于读取高速缓存存储器部分1210中,参阅图12中
的虚线箭头(1)。如读取高速缓存表1215中报告,行m的对应物理块地址pbad必须从读取高速缓存存储器部分1210驱逐。
[0194]
从读取高速缓存表1215中指向的所述pbad开始,四个经高速缓存的lba(即:lbad、lbac、lbab、lbaa)遵循存储于元数据字段中的链接来检索。由于存储于其元数据中的特定值,可检测到区的最后lbaa,参阅图12中的虚线箭头(2)、(3)及(4)。
[0195]
本公开的读取高速缓存架构及读取方法实现巨大优势来加速包含现今用于制造大容量存储装置的多个非易失性存储器部分(例如tlc及/或qlc nand)的受管理存储装置的读取阶段。
再多了解一些

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

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

相关文献