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

用于主机常驻转译层的存储器存取跟踪的制作方法

2022-02-24 12:23:12 来源:中国专利 TAG:


1.本公开的实施例大体上涉及存储器子系统,且更具体来说,涉及用于主机常驻转译层的存储器子系统中的存储器存取跟踪。


背景技术:

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


技术实现要素:

3.在一个方面中,本技术提供一种系统,其包括:存储器装置;和处理装置,其以操作方式与所述存储器装置耦合以进行包括以下各项的操作:从主机系统接收包括所述存储器装置的逻辑地址空间的子区的指示的读取命令;递增与所述逻辑地址空间的区相关联的计数器,所述区包括包含所述子区的多个子区,所述计数器跟踪对所述区的所述多个子区进行的读取操作的数目,其中所述计数器响应于所述存储器装置上的新近事件的发生而周期性地递减;确定所述计数器的值是否满足可高速缓存阈值准则;和响应于所述计数器的所述值满足所述可高速缓存阈值准则,将激活所述子区的建议发送到所述主机系统。
4.在另一方面中,本技术提供一种方法,其包括:维持多个计数器以跟踪对存储器装置的逻辑地址空间的对应多个区进行的读取操作的数目;响应于所述存储器装置上的新近事件的发生而周期性地递减所述多个计数器;和响应于递减所述多个计数器,确定所述多个计数器的相应值是否满足可高速缓存阈值准则或可逐出阈值准则中的至少一个,其中所述可高速缓存阈值准则和所述可逐出阈值准则指示对应于所述多个区中的每一区的转译层映射数据是否将存储在主机常驻转译层映射表中。
5.在另一方面中,本技术提供一种非暂时性计算机可读存储介质,其包括指令,所述指令在由处理装置执行时使得所述处理装置进行包括以下各项的操作:从主机系统接收包括所述存储器装置的逻辑地址空间的子区的指示的读取命令;递增与所述逻辑地址空间的区相关联的计数器,所述区包括包含所述子区的多个子区,所述计数器跟踪对所述区的所述多个子区进行的读取操作的数目,其中所述计数器响应于所述存储器装置上的新近事件的发生而周期性地递减;确定所述计数器的值是否满足可高速缓存阈值准则;和响应于所述计数器的所述值满足所述可高速缓存阈值准则,将激活所述子区的建议发送到所述主机系统。
附图说明
6.根据下文给出的具体实施方式且根据本公开的各种实施例的附图将更加充分地理解本公开。
7.图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
8.图2为说明根据本公开的一些实施例的存储器装置的划分成区的逻辑地址空间的框图。
9.图3为根据本公开的一些实施例的用于主机常驻转译层的存储器子系统中的存储器存取跟踪的实例方法的流程图。
10.图4为根据本公开的一些实施例的用于存储器存取跟踪的计数器管理的实例方法的流程图。
11.图5为说明根据本公开的一些实施例的用于主机常驻转译层的存储器子系统中的存储器存取跟踪的随时间推移的曲线图。
12.图6为可在其中操作本公开的实施例的实例计算机系统的框图。
具体实施方式
13.本公开的方面是针对用于存储器子系统的主机常驻转译层写入命令。存储器子系统可为存储装置、存储器模块,或存储装置与存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含如存储数据的存储器装置的一或多个组件的存储器子系统。主机系统可提供将存储在存储器子系统处的数据且可请求将从存储器子系统检索的数据。
14.存储器子系统可包含高密度非易失性存储器装置,其中当没有电力供应到存储器装置时需要数据的保持。非易失性存储器装置的一个实例为与非(nand)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。非易失性存储器装置为一或多个裸片的封装。每一裸片可由一或多个平面组成。对于一些类型的非易失性存储器装置(例如,nand存储器装置),每一平面由块集组成。每一块由页集组成。每一页由存储器单元集合(“单元”)组成。单元为存储信息的电子电路。取决于单元类型,单元可存储二进制信息的一或多个位,且具有与正存储的位数相关的各种逻辑状态。逻辑状态可由二进制值(如“0”和“1”)或这种值的组合表示。
15.某些非易失性存储器装置使用快闪转译层(ftl)将存储器存取请求的通常称为逻辑块地址(lba)的逻辑地址转译为可存储在一或多个转译层映射表中的对应物理存储器地址,如物理块地址(pba)。lba可为由主机系统用来管理数据的逻辑地址。许多主机系统和存储器子系统控制器通常缺乏足够存储器以将整个转译层映射表维持在高速缓存中。因此,可按需求从存储器装置检索转译层映射表的部分,这可使得随机读取性能下降。在一些情况下,转译层映射表可称为存储逻辑到物理(l2p)映射信息的l2p映射表。
16.为了改进随机读取性能,某些主机系统利用主机常驻存储器作为用于转译层映射表的至少一部分的高速缓存,例如结合jedec标准的主机性能增强器(hpb)特征。由于主机常驻存储器受到限制,因此主机系统仅维持整个转译层映射表的一些子集。此主机常驻转译层映射表可在一些情况下称为hpb条目表。与从存储器装置读取相比,可从此主机常驻存储器更快地读取转译层映射信息,且主机系统可通过从主机常驻存储器检索存储在存储器装置中的数据的物理块地址(pba)且在传送到存储器子系统的存储器存取请求中包含pba来起始存储器操作。可由主机系统使用主机数据的lba从主机常驻存储器检索pba。在接收到存储器存取请求后,存储器子系统可立即从存储器装置检索与物理地址相关联的数据,而无与存取基于快闪存储器的转译层映射表且使用lba以获得物理地址相关联的延迟。
17.每当主机系统将数据写入到在高速缓存于主机常驻存储器中的转译层映射信息中表示的lba时,对应物理地址就会改变。另外,存储器子系统可有规律地进行某些存储器管理操作(例如,垃圾收集),这使得将数据重写到新物理地址。因此,高速缓存于主机常驻存储器中的转译层映射表的部分有规律地变为无效。在对lba的相同区进行混合读取和写入操作的任何典型工作负载期间,转译层映射表中的逻辑到物理映射的无效非常频繁。因此,主机系统可发布具有无效pba的读取命令,或必须请求更新后的转译层映射信息以替换主机常驻转译层映射信息(例如,发布hpb读取缓冲器命令)。由于主机系统上的转译层映射表的大小受到限制,所以一旦满了,在将要添加新的转译层映射信息的任何时间,都必须作出从转译层映射表去除转译层映射信息以空出必要的空间的确定。当在装置控制模式下操作时,存储器子系统向主机系统提供关于激活哪些区或子区(即,哪些区应具有存储在主机常驻转译层映射表中的对应转译层映射信息)或解除激活哪些区或子区(即,哪些区应具有从主机常驻转译层映射表去除的对应转译层映射信息)的建议。建议可例如基于最频繁或最不频繁地存取的逻辑块地址、最新近或最不新近存取的逻辑块地址等。取决于特定使用简档,在一段时间内的许多工作负载可跨越存储器子系统的具有不同时间和空间定位的大量存储容量。因此,数据使用跟踪可为复杂且资源密集型的过程。许多现有解决方案是低效的且导致主机系统与存储器子系统之间的数据业务增加、服务于存储器存取请求的等待时间增加、主机系统的服务质量降低和由存储器子系统进行的不必要的操作增加。
18.本公开的方面通过实施用于主机常驻转译层的存储器子系统中的存储器存取跟踪来解决以上和其它不足。在一个实施例中,存储器子系统的存储器存取跟踪组件维持数个计数器,每一计数器跟踪对存储器装置的逻辑地址空间的对应区进行的数个读取存取操作。每当对与所述区相关联的子区中的一个进行读取操作时,都递增给定区的计数器。在一个实施例中,仅在读取操作的传送长度(即,从存储器装置请求读取的数据量)满足长度阈值准则(例如,小于阈值长度,如32千字节)时才递增计数器。取决于实施例,计数器可递增固定量(例如,1)或递增基于读取操作的传送长度的量。在一个实施例中,存储器存取跟踪组件确定计数器的值是否满足可高速缓存阈值准则或可逐出阈值准则中的至少一个。如果用于特定区的计数器满足可高速缓存阈值准则(例如,符合或超出可高速缓存阈值),那么存储器存取跟踪组件可向主机系统建议激活所述区的一或多个子区(即,将包含用于子区的逻辑到物理地址映射的一或多个转译层条目存储在主机系统上的主机常驻转译层映射表中)。如果特定区的计数器满足可逐出阈值准则(例如,小于可逐出阈值),那么存储器存取跟踪组件可将所述区识别为可逐出的(即,当需要空间时可从主机常驻转译层映射表逐出所述区的子区的任何转译层条目)。在一个实施例中,存储器存取跟踪组件维持逐出列表上的可逐出区的指示。
19.在一个实施例中,存储器存取跟踪组件可周期性地递减计数器以便避免计数器的过饱和。计数器可响应于存储器装置上的新近事件的发生而递减。在一个实施例中,当饱和(即,已达到最大可存储值)的计数器的数目满足饱和阈值准则(例如,符合或超出饱和阈值)时,发生新近事件。在另一实施例中,当存储器装置的活动区的数目满足活动阈值准则(例如,符合或超出活动阈值)且逐出列表上的区的数目满足列表阈值准则(例如,小于列表阈值)时,发生新近事件。响应于新近事件的发生,存储器存取跟踪组件可将计数器中的每一个递减(不考虑那些计数器是否触发新近事件)一固定量或百分比/分数(例如,将计数器
值减小二分之一)。
20.此方法的优点包含但不限于对存储器装置的逻辑地址空间的各种区和子区的利用和存取频率的改进的跟踪。当存储器子系统在装置控制模式下操作时,此改进的跟踪可用以产生改进的建议,由此产生存储在主机系统上的主机常驻转译层映射表中的恰当的转译层映射信息。因此,传递存储在主机常驻转译层映射表中的有效物理地址的读取命令的数目增加。因此,用对应于存储在主机常驻转译层映射表中的lba的更新后的物理地址来更新主机常驻转译层映射表的hpb读取缓冲器命令的数目减少。这些因素一起使得主机系统与存储器子系统之间的数据业务减少、服务于存储器存取请求的等待时间减少、主机系统的服务质量提高和由存储器子系统进行的不必要的操作减少,从而允许带宽可用于进行其它操作。
21.图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含介质,如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或这种的组合。
22.存储器子系统110可为存储装置、存储器模块,或存储装置与存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储器(ufs)驱动器、安全数字(sd)和硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小型dimm(so-dimm)和各种类型的非易失性双列直插式存储器模块(nvdimm)。
23.计算系统100可为计算装置,如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具物联网(iot)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的这种计算装置。
24.计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”或“与......耦合”通常是指组件之间的连接,所述组件可为间接通信连接或直接通信连接(例如,无介入组件),不管有线或无线,包含如电、光学、磁性等的连接。
25.主机系统120可包含处理器芯片组和由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,nvdimm控制器),和存储协议控制器(例如,pcie控制器、sata控制器)。主机系统120使用存储器子系统110(例如)将数据写入到存储器子系统110且从存储器子系统110读取数据。在一个实施例中,主机系统120包含易失性存储器,如系统存储器124,其存储主机常驻转译层映射表125。
26.主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、通用快闪存储器(ufs)、光纤通道、串行连接的scsi(sas)、双数据速率(ddr)存储器总线、小型计算机系统接口(scsi)、双列直插式存储器模块(dimm)接口(例如,支持双数据速率(ddr)的dimm套接接口)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过物理主机接口(例如,pcie总线)与主机系统120耦合时,主机系统120可进一步利用nvm高速(nvme)接口来存取组件(例如,存储器装置
130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。图1说明存储器子系统110作为实例。一般来说,主机系统120可经由同一通信连接、多个个别通信连接和/或通信连接的组合存取多个存储器子系统。
27.存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可为(但不限于)随机存取存储器(ram),如动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)。
28.非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(nand)类型快闪存储器和就地写入存储器,如三维交叉点(“3d交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来进行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可进行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。nand类型快闪存储器包含例如二维nand(2dnand)和三维nand(3d nand)。
29.存储器装置130中的每一个可包含一或多个存储器单元阵列,如存储器阵列137。一种类型的存储器单元,例如单层级单元(slc)每单元可存储一个位。其它类型的存储器单元,如多层级单元(mlc)、三层级单元(tlc)、四层级单元(qlc)和五层级单元(plc)每单元可存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,如slc、mlc、tlc、qlc或这种的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的slc部分,和mlc部分、tlc部分、qlc部分或plc部分。存储器装置130的存储器单元可分组为可指代用于存储数据的存储器装置的逻辑单元的页。在一些类型的存储器(例如,nand)的情况下,页可分组以形成块。另外,在一个实施例中,存储器阵列137可包含转译层映射表135。
30.虽然描述了非易失性存储器组件,如3d交叉点非易失性存储器单元阵列和nand类型快闪存储器(例如,2d nand、3d nand),但存储器装置130可基于任何其它类型的非易失性存储器,如只读存储器(rom)、相变存储器(pcm)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(fetram)、铁电随机存取存储器(feram)、磁随机存取存储器(mram)、自旋转移力矩(stt)-mram、导电桥接ram(cbram)、电阻性随机存取存储器(rram)、基于氧化物的rram(oxram)、或非(nor)快闪存储器,和电可擦除可编程只读存储器(eeprom)。
31.存储器子系统控制器115(或为简单起见,控制器115)可与存储器装置130通信以进行操作,如在存储器装置130处读取数据、写入数据或擦除数据和其它这种操作。存储器子系统控制器115可包含硬件,如一或多个集成电路和/或离散组件、缓冲器存储器,或其组合。硬件可包含具有进行本文中所描述的操作的专用(即,硬译码)逻辑的数字电路系统。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或另一合适处理器。
32.存储器子系统控制器115可为处理装置,其包含配置成执行存储在本地存储器119中的指令的一或多个处理器(例如,处理器117)。在所说明实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,其配置成存储用于进行控制存储器子系统110的操作的各种过程、操作、逻辑流和例程,包含处置存储器子系统110与主机系统120之间的通信的
指令。
33.在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(rom)。虽然图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,且可改为依赖于(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供的)外部控制。
34.一般来说,存储器子系统控制器115可从主机系统120接收命令或操作且可将所述命令或操作转换成指令或适当的命令,以实现对存储器装置130的所要存取。存储器子系统控制器115可负责其它操作,如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ecc)操作、加密操作、高速缓存操作和逻辑地址(例如,逻辑块地址(lba)、名字空间)与物理地址(例如,物理块地址)之间的与存储器装置130相关联的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收到的命令转换成命令指令以存取存储器装置130,以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。
35.存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,dram)和地址电路系统(例如,行解码器和列解码器),其可从存储器子系统控制器115接收地址且对地址进行解码以存取存储器装置130。
36.在一些实施例中,存储器装置130包含本地介质控制器132,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130进行介质管理操作)。在一些实施例中,存储器子系统110为受管理存储器装置,其为具有在裸片上的控制逻辑(例如,本地控制器132)和用于同一存储器装置封装内的介质管理的控制器(例如,存储器子系统控制器115)的原始存储器装置130。受管理存储器装置的实例为受管理nand(mnand)装置。
37.在一个实施例中,存储器子系统110包含存储器存取跟踪组件113,其监视与存储器装置130的逻辑地址空间的多个区相关联的存储器存取操作(例如,读取操作)的数目,以便建议将快闪转译层(ftl)映射信息存储在主机系统120的主机常驻转译层映射表125中的区或子区。在一个实施例中,存储器存取跟踪组件113从主机系统120接收存储器存取命令,如包含存储器装置130的逻辑地址空间的子区的指示的主机常驻转译层读取命令。作为响应,存储器存取跟踪组件113递增与逻辑地址空间的区相关联的计数器。区可包含多个子区,包含在接收到的存储器存取命令中所指示的子区。此计数器可跟踪对区的多个子区进行的读取操作的数目。在一个实施例中,如本文中更详细地描述,此计数器响应于存储器装置130上的新近事件的发生而周期性地递减。在递增或递减计数器后,存储器存取跟踪组件113就确定计数器的值是否满足可高速缓存阈值准则,且响应于计数器的值满足可高速缓存阈值准则,将激活子区(即,以将包含用于子区的逻辑到物理地址映射的一或多个转译层条目存储在主机常驻转译层映射表125中)的建议发送到主机系统120。存储器存取跟踪组件113可随后从主机系统120接收包含子区的指示的主机常驻转译层读取缓冲器命令。作为响应,存储器存取跟踪组件113可进行读取操作以从存储在存储器装置130的存储器阵列
137中的基于快闪的转译层映射表135检索与子区相关联的转译层条目,且将对主机常驻转译层读取缓冲器命令的响应发送到主机系统120,所述响应包含与子区相关联的转译层条目。主机系统120可将转译层条目存储在主机常驻转译层映射表125中,由此激活对应子区。下文描述关于存储器存取跟踪组件113的操作的另外细节。
38.在一些实施例中,存储器子系统控制器115包含存储器存取跟踪组件113的至少一部分。举例来说,存储器子系统控制器115可包含配置成执行存储在本地存储器119中以用于进行本文中所描述的操作的指令的处理器117(处理装置)。在一些实施例中,存储器存取跟踪组件113为主机系统120、应用程序或操作系统的部分。
39.图2为说明根据本公开的一些实施例的存储器装置130的划分成区的逻辑地址空间200的框图。在一个实施例中,逻辑地址空间划分成数个分离区,其还可称为hpb区。举例来说,可存在n个区210、220、230。区210、220、230中的每一个可同等地设定大小,但如果逻辑地址空间200的总大小不是区大小的整数倍,那么区230可较小。区210、220、230中的每一个可进一步划分成数个分离子区,其还可称为hpb子区。在一个实施例中,在每一区中可存在m个子区。举例来说,区210可包含子区212、214、216,区220可包含子区222、224、226,且区230可包含子区232、234、236。子区中的每一个可同等地设定大小,但如果区大小不是子区大小的整数倍,那么每一区的子区m-1 216、226、236可较小。在其它实施例中,可存在某一其它数目的区和/或子区,且所述区和/或子区可具有不同大小。
40.在一个实施例中,基于快闪的转译层映射表135维持对应于逻辑地址空间200的数个转译层条目。每一转译层条目包含对应逻辑块地址的物理地址。在一个实施例中,主机系统120可发送对基于快闪的转译层映射表135中的条目的子集的请求(例如,hpb读取缓冲器命令),且将所述子集存储在主机常驻转译层映射表125中。在一个实施例中,用于给定子区中的所有逻辑块地址的转译层条目响应于所述请求一起传送到主机系统120。因此,主机常驻转译层映射表125可包含用于逻辑地址空间200的一或多个子区的转译层条目。转译层条目存储在主机常驻转译层映射表125中的那些子区称为“活动”子区。如果逻辑地址空间200的区包含至少一个活动子区,那么其可视为活动的。举例来说,如果对应于子区212中的逻辑地址的包含存储器装置130上的对应物理地址的转译层条目高速缓存于主机常驻转译层映射表125中,那么子区212和区210均视为活动的。
41.在一个实施例中,当在装置控制模式下操作时,存储器存取跟踪组件113向主机系统120提供关于激活或解除激活哪些区或子区的建议。建议可例如基于最频繁存取的逻辑块地址、最新近存取的逻辑块地址等。在一个实施例中,存储器存取跟踪组件113维持数个计数器218、228、238,每一计数器跟踪对区210、220、230中的对应一个进行的数个读取存取操作。每当对与所述区相关联的子区中的一个进行读取操作时,都递增给定区的计数器。举例来说,存储器存取跟踪组件113可针对涉及子区212、215、216中的任一个的每一读取操作递增计数器218。类似地,存储器存取跟踪组件113可针对涉及子区222、225、226中的任一个的每一读取操作递增计数器228,且可针对涉及子区232、235、236中的任一个的每一读取操作递增计数器238。在一个实施例中,仅在读取操作的传送长度(即,从存储器装置请求读取的数据量)满足长度阈值准则(例如,小于阈值长度,如32千字节)时才递增计数器。取决于实施例,计数器可递增固定量(例如,1)或递增基于读取操作的传送长度的量。在一个实施例中,存储器存取跟踪组件113可将传送长度除以存储器子系统110的读取大小以确定递增
量。举例来说,如果传送长度为32kb,那么存储器存取跟踪组件113可将其除以4kb读取大小,从而产生递增量8。
42.在一个实施例中,存储器存取跟踪组件113确定计数器218、228、238的值是否满足可高速缓存阈值准则或可逐出阈值准则中的至少一个。如果特定区的计数器的值满足可高速缓存阈值准则(例如,符合或超出可高速缓存阈值),那么存储器存取跟踪组件113可向主机系统建议激活区的一或多个子区。如果特定区的计数器满足可逐出阈值准则(例如,小于可逐出阈值),那么存储器存取跟踪组件113可将所述区识别为可逐出的。在一个实施例中,存储器存取跟踪组件113维持逐出列表240上的可逐出区的指示。
43.在一个实施例中,存储器存取跟踪组件113可周期性地递减计数器218、228、238以便避免计数器的过饱和。所有计数器218、228、238可响应于存储器装置130上的新近事件的发生而递减。在一个实施例中,当饱和(即,已达到最大可存储值)的计数器的数目满足饱和阈值准则(例如,符合或超出饱和阈值)时,发生新近事件。在另一实施例中,当存储器装置130的活动区的数目满足活动阈值准则(例如,符合或超出活动阈值)且逐出列表240上的区的数目满足列表阈值准则(例如,小于列表阈值)时,发生新近事件。响应于新近事件的发生,218、228、238可将计数器218、228、238中的每一个递减固定量或百分比/分数(例如,将计数器值减小二分之一)。
44.响应于接收到对激活的建议,主机系统120可请求对应于所建议的区或子区的转译层条目。在另一实施例中,当在主机控制模式下操作时,主机系统120决定在无来自存储器子系统110的输入的情况下激活或解除激活哪些区或子区。
45.图3为根据本公开的一些实施例的用于主机常驻转译层的存储器子系统中的存储器存取跟踪的实例方法的流程图。方法300可由处理逻辑进行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法300由图1的存储器存取跟踪组件113进行。虽然以特定顺序或次序展示,但除非另外规定,否则所述过程的次序可修改。因此,应理解所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,可在各种实施例中省略一或多个过程。因此,在每一实施例中并非需要全部过程。其它过程流程是可能的。
46.在操作305处,接收到存储器存取命令。举例来说,如存储器子系统控制器115的存储器子系统控制器的处理逻辑(例如,处理器117)从主机系统120接收存储器存取命令,如读取命令。在一个实施例中,读取命令包含如存储器装置130的存储器装置的如逻辑地址空间200的逻辑地址空间的如子区212和/或其它子区的一或多个子区的指示。举例来说,读取请求可包含与子区212和/或其它子区相关联的一或多个逻辑块地址。在一个实施例中,使用初始逻辑块地址和与读取命令一起包含的相关联传送大小信息识别一或多个子区。
47.在操作310处,确定存储器存取命令是否满足准则。举例来说,处理逻辑确定与读取命令相关联的传送长度是否满足长度阈值准则。传送长度表示在存储器存取命令中请求从存储器装置130读取的数据量。举例来说,逻辑块地址可包含表示子区212中的数据的地址范围或表示子区212中的数据的初始地址和长度。在一个实施例中,存储器存取跟踪组件113将传送长度与阈值长度(例如,32kb或某一其它长度)相比较。如果传送长度小于或等于阈值长度,那么存储器存取跟踪组件113可确定满足长度阈值准则(即,读取操作为随机读
取操作的部分)。如果传送长度大于阈值长度,那么存储器存取跟踪组件113可确定不满足长度阈值准则(即,读取操作为顺序读取操作的部分)。如果不满足长度阈值准则,那么执行读取命令,但维持如与区210相关联的计数器218的计数器的当前值,且当接收到另一存储器存取命令时,处理返回到操作305。
48.如果满足长度阈值准则,那么在操作315处,递增计数器。举例来说,处理逻辑可递增与区210相关联的计数器218。区210包含数个子区212、214、216,其包含读取命令所引导到的子区212。取决于实施例,存储器存取跟踪组件113可将计数器218递增固定量(例如,1)或递增基于读取操作的传送长度的量。在一个实施例中,存储器存取跟踪组件113可将传送长度除以存储器子系统110的读取大小以确定递增量。举例来说,如果传送长度为32kb,那么存储器存取跟踪组件113可将其除以4kb读取大小,从而产生递增量8。举例来说,图5说明第一计数器的计数值502和第二计数器的计数器值504的波动的随时间推移的曲线图500。当第一计数器和第二计数器递增时,对应计数值502和504随时间推移增大,如操作315处所描述。
49.再次参看图3,在操作320处,确定计数器是否满足准则。举例来说,在递增计数器218后,处理逻辑就可确定计数器218的值是否满足可高速缓存阈值准则。在一个实施例中,存储器存取跟踪组件113将计数器218的值与可高速缓存阈值相比较。举例来说,图5说明可高速缓存阈值510。如果计数器的计数值大于或等于可高速缓存阈值510,那么存储器存取跟踪组件113可确定满足可高速缓存阈值准则(即,与计数器218相关联的区210的子区的转译层映射信息可在主机常驻转译层映射表125中高速缓存)。如果计数值小于可高速缓存阈值,那么存储器存取跟踪组件113可确定不满足可高速缓存阈值准则。如果在操作320处,确定不满足可高速缓存阈值准则,那么执行读取命令而不对主机常驻ftl映射表125作出任何更新,且当接收到另一存储器存取命令时,处理返回到操作305。
50.如果满足可高速缓存阈值准则,那么在操作325处,确定在映射表中空间是否可用。举例来说,处理逻辑可确定在主机系统120中的主机常驻转译层映射表125中空间是否可用。在一个实施例中,存储器存取跟踪组件113跟踪包含用于当前存储在主机常驻转译层映射表125中的子区的逻辑到物理地址映射的数个转译层条目。在一个实施例中,每一转译层条目表示用于一个数据块(例如,4kb)的转译层映射信息。在知道转译层条目的大小(例如,8字节)和主机常驻转译层映射表125的总容量的情况下,存储器存取跟踪组件113可确定活动子区的最大数目。在另一实施例中,主机系统可基于主机常驻转译层映射表125的容量向存储器子系统指示可被激活的子区的最大数目。因此,存储器存取跟踪组件113可将活动区的当前数目与活动区的最大数目相比较。如果当前数目小于最大数目,那么存储器存取跟踪组件113可确定在主机常驻转译层映射表125中空间可用。如果当前数目等于最大数目,那么存储器存取跟踪组件113可确定在主机常驻转译层映射表125中空间不可用。
51.如果在主机常驻转译层映射表125中空间不可用,那么在操作330处,发送建议。举例来说,处理逻辑可将解除激活区(如由逐出列表240指示的至少一个区)的建议发送到主机系统120。在一个实施例中,存储器存取跟踪组件113识别来自逐出列表240的区,如第一区、最末区、最新近添加的区、最不新近添加的区等,且将指示识别出的区的建议发送到主机系统120。响应于接收到建议,主机系统120可从主机常驻转译层映射表125删除与识别出的区相关联的所有转译层条目以为新的转译层条目空出空间。
52.如果在主机常驻转译层映射表125中空间可用,那么在操作335处,发送建议。举例来说,处理逻辑可将激活与读取操作相关联的子区212的建议发送到主机系统120。在操作340处,接收到请求。举例来说,处理逻辑可接收包含子区212的指示的请求(例如,hpb读取缓冲器命令)。在一个实施例中,存储器存取跟踪组件113接收请求且进行读取操作以检索存储在存储器装置130上的转译层映射表135中的一或多个转译层条目。那些一或多个转译层条目与请求中所指示的子区212相关联。如上文所描述,每一转译层条目包含识别出的子区中的对应逻辑块地址的物理地址。在操作345处,发送响应。举例来说,处理逻辑可将对hpb读取缓冲器命令的响应发送到主机系统120。在一个实施例中,响应包含从存储器装置130上的转译层映射表135获得的一或多个转译层条目。主机系统120可将一或多个转译层条目存储在主机常驻转译层映射表125中,由此激活对应子区。
53.图4为根据本公开的一些实施例的用于存储器存取跟踪的计数器管理的实例方法的流程图。方法400可由处理逻辑进行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法400由图1的存储器存取跟踪组件113进行。虽然以特定顺序或次序展示,但除非另外规定,否则所述过程的次序可修改。因此,应理解所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,可在各种实施例中省略一或多个过程。因此,在每一实施例中并非需要全部过程。其它过程流程是可能的。
54.在操作405处,计数器递增。举例来说,处理逻辑可递增与逻辑地址空间200的区(如区210)相关联的计数器,如计数器218。区210包含数个子区212、214、216,其包含读取命令所引导到的子区212。取决于实施例,存储器存取跟踪组件113可将计数器218递增固定量(例如,1)或递增基于读取操作的传送长度的量。在一个实施例中,存储器存取跟踪组件113可将传送长度除以存储器子系统110的读取大小以确定递增量。举例来说,如果传送长度为32kb,那么存储器存取跟踪组件113可将其除以4kb读取大小,从而产生递增量8。
55.在操作410处,确定计数器的状态。举例来说,处理逻辑可确定计数器218是否饱和(即,已达到最大可存储值)。举例来说,图5说明表示最大可存储值的饱和等级530。由于计数器218以特定大小(例如,8位)实施,因此存在最大可存储值,如果高于所述值,那么计数器无法进一步递增。因此,在一个实施例中,存储器存取跟踪组件113将计数器的当前值与最大可存储值(即,饱和等级530)相比较。如果当前值小于最大可存储值,那么存储器存取跟踪组件113可确定计数器不饱和。如果当前值等于最大可存储值,那么存储器存取跟踪组件113可确定计数器饱和。
56.响应于确定计数器饱和,在操作415处,评估饱和计数器的数目。举例来说,处理装置可确定存储器装置130的饱和计数器的数目是否满足饱和阈值准则。在一个实施例中,存储器存取跟踪组件113可确定饱和计数器的数目且将饱和计数器的数目与饱和阈值(例如,计数器/区的总数目的25%)相比较。如果饱和计数器的数目大于或等于饱和阈值,那么存储器存取跟踪组件113可确定满足饱和阈值。如果饱和计数器的数目小于饱和阈值,那么存储器存取跟踪组件113可确定不满足饱和阈值。
57.响应于在操作410处确定计数器不饱和,或在操作415处确定不满足饱和阈值,在操作420处,评估可逐出区的数目。举例来说,处理逻辑可确定转译层映射数据存储在主机
常驻转译层映射表125中的活动区的数目是否满足活动阈值准则(例如,大于活动阈值),和具有满足逐出阈值的值的计数器的数目(即,在逐出列表240上所指示的区的数目)是否满足列表阈值准则。在一个实施例中,存储器存取跟踪组件113可确定在逐出列表240上所指示的区的数目,且将区的数目与列表阈值(例如,100)相比较。如果区的数目小于或等于列表阈值,那么存储器存取跟踪组件113可确定满足列表阈值。如果饱和计数器的数目大于列表阈值,那么存储器存取跟踪组件113可确定不满足列表阈值。如果不满足列表阈值,那么在操作425处,维持如计数器218、228、238的计数器的当前值。
58.响应于在操作415处确定满足饱和阈值,或在操作420处确定满足列表阈值,在操作430处,起始新近事件。举例来说,处理逻辑可确定存储器装置130上的新近事件的发生。响应于新近事件的发生,处理逻辑可递减计数器218、228、238。图5说明新近事件540和542的发生。在新近事件540和542处,计数值502和计数值504均递减(即,减小)。取决于实施例,计数值可减小固定量或百分比/分数(例如,二分之一)。在新近事件540处,即使在减小之后,计数值502和计数值504也保持高于逐出阈值520,但计数值504降至低于可高速缓存阈值510。然而,在新近事件542处,计数值502降至低于逐出阈值520。因此,存储器存取跟踪组件113可将对应区的指示添加到逐出列表240,如上文相对于操作355所描述。
59.在操作435处,确定计数器是否满足准则。举例来说,处理逻辑可确定计数器218的值是否满足可逐出阈值准则。在一个实施例中,存储器存取跟踪组件113将计数器218的值与可逐出阈值相比较。举例来说,图5说明可逐出阈值520。如果计数值小于或等于可逐出阈值520,那么存储器存取跟踪组件113可确定满足可逐出阈值准则(即,可从主机常驻转译层映射表125去除用于计数器218所关联的区210的转译层映射信息)。如果计数值大于可逐出阈值520,那么存储器存取跟踪组件113可确定不满足可逐出阈值准则。如果不满足可逐出阈值准则,那么当接收到另一存储器存取命令时不采取进一步动作且处理返回到操作405。
60.在操作440处,更新列表。举例来说,处理逻辑可将区的指示添加到逐出列表240。在一个实施例中,逐出列表240可实施为先进先出(fifo)数据结构。如上文所描述,存储器存取跟踪组件113可在对主机系统120作出解除激活区的建议时参考逐出列表240。在一个实施例中,可针对每一计数器(如计数器218、228和238中的每一个)重复操作435和440。对于每一计数器,在值已在操作430处递减之后,处理逻辑可在操作435处比较所述值与可逐出阈值准则。如果计数器中的任一个的值满足可逐出阈值准则,且先前激活对应区,那么在操作440处将所述区的指示添加到逐出列表。如果计数器中的任一个的值不满足可逐出阈值准则或先前未激活对应区,那么处理逻辑可继续到下一计数器。因此,处理逻辑可在环路中进行操作435和440直到已检查存储器装置中的所有计数器为止。
61.图6说明计算机系统600的实例机器,可在其内执行用于使得机器进行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统600可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于进行控制器的操作(例如,执行操作系统以进行对应于图1的存储器存取跟踪组件113的操作)。在替代性实施例中,机器可连接(例如,联网)到lan、内联网、外联网和/或互联网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
62.机器可为个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的指令集的任何机器。此外,虽然说明单个机器,但应认为术语“机器”也包含机器的任何集合,所述机器单独地或共同地执行指令集(或多个指令集)以进行本文中所论述的方法中的任何一或多种。
63.实例计算机系统600包含处理装置602、主存储器604(例如,只读存储器(rom)、快闪存储器、动态随机存取存储器(dram)(如同步dram(sdram)或rambus dram(rdram))等)、静态存储器606(例如,快闪存储器、静态随机存取存储器(sram)等)和数据存储系统618,其经由总线630彼此通信。
64.处理装置602表示一或多个通用处理装置,如微处理器、中央处理单元或其类似物。更特定来说,处理装置可为复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602也可为一或多个专用处理装置,如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器或其类似物。处理装置602配置成执行用于进行本文中所论述的操作和步骤的指令626。计算机系统600可进一步包含网络接口装置608以在网络620上通信。
65.数据存储系统618可包含机器可读存储介质624(也称为计算机可读介质,如非暂时性计算机可读介质),在其上存储有一或多个指令626集或体现本文中所描述的方法或功能中的任何一或多种的软件。在一个实施例中,此介质624还可由存储器存取跟踪组件113、存储器子系统控制器115或其它组件写入。指令626还可在其由计算机系统600执行期间完全或至少部分地驻存在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储介质。机器可读存储介质624、数据存储系统618和/或主存储器604可对应于图1的存储器子系统110。
66.在一个实施例中,指令626包含用以实施对应于图1的存储器存取跟踪组件113的功能性的指令。虽然在实例实施例中机器可读存储介质624展示为单个介质,但应认为术语“机器可读存储介质”包含存储一或多个指令集的单个介质或多个介质。还应认为术语“机器可读存储介质”包含能够存储或编码供机器执行的指令集且使得机器进行本公开的方法中的任何一或多种的任何介质。因此,应认为术语“机器可读存储介质”包含但不限于固态存储器、光学介质和磁性介质。
67.已关于对计算机存储器内的数据位的操作的算法和符号表示而呈现先前详细描述的一些部分。这些算法描述和表示为数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其它技术人员的方式。在本文中,且一般将算法构想为产生所要结果的操作的自洽序列。操作为要求对物理量进行物理操纵的操作。通常(但未必),这些量呈能够存储、组合、比较和以其它方式操纵的电或磁信号的形式。有时,主要出于常见使用的原因,已经证明将这些信号称为位、值、元件、符号、字符、项、编号或其类似物是方便的。
68.然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅是应用于这些量的方便标签。本公开可指操纵计算机系统的寄存器和存储器内的表示为物理(电子)量的数据且将所述数据变换成计算机系统存储器或寄存器或其它这种信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
69.本公开还涉及用于进行本文中的操作的设备。此设备可以出于预期目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可存储在计算机可读存储介质中,如但不限于任何类型的盘,包含软盘、光盘、cd-rom和磁性光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡,或适合于存储电子指令的任何类型的介质,其各自耦合到计算机系统总线。
70.本文中呈现的算法和显示本质上并不与任何特定计算机或另一设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或可证明构造用以进行所述方法更加专用的设备是方便的。将如下文描述中所阐述而表现用于各种这些系统的结构。另外,不参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示。
71.本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以进行根据本公开的过程的指令的机器可读介质。机器可读介质包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)介质包含机器(例如,计算机)可读存储介质,如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储介质、光学存储介质、快闪存储器组件等。
72.在前述说明书中,本公开的实施例已经参照其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中所阐述的本公开的实施例的更广精神和范围的情况下对其进行各种修改。因此,应在说明性意义上而非限制性意义上看待本说明书和附图。
再多了解一些

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

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

相关文献