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

存储器装置中的存储流量模式检测的制作方法

2022-02-21 11:37:33 来源:中国专利 TAG:


1.本公开的实施例大体上涉及存储器子系统,且更确切地说,涉及存储器装置中的存储流量模式检测。


背景技术:

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


技术实现要素:

3.本公开的一个实施例提供一种用于检测流量模式的系统,其包括:存储器装置;控制器,其耦合到存储器装置且配置成:监测多个接收到的命令以识别强制单元存取命令;基于强制单元存取命令而识别存储器装置的元数据区域;且响应于识别对元数据区域的后续强制单元存取命令而执行动作。
4.本公开的另一实施例提供一种用于检测流量模式的方法,其包括:在存储器子系统处接收命令;确定接收到的命令是否为写入命令;响应于确定接收到的命令为写入命令,确定写入命令是否为强制单元存取命令;响应于确定写入命令为强制单元存取命令,确定存储器子系统的存储器装置的候选日志区域的开始lba和结束lba;响应于候选日志区域被存取阈值数目次而将候选日志区域标记为存储器装置的日志区域;且响应于对日志区域的后续存取而采取动作。
5.本公开的又一实施例提供一种用于检测流量模式的系统,其包括:存储器装置;控制器,其耦合到存储器装置且配置成:利用对存储器装置的多个存取命令识别文件系统;响应于识别文件系统,基于多个存取命令和文件系统确定存储器装置的元数据区域的开始逻辑块地址(lba)和结束lba;利用开始lba、结束lba和多个存取命令确定多个存取命令的写入模式;且基于写入模式而执行动作。
附图说明
6.根据下文提供的具体实施方式和本公开的各种实施例的附图将更加充分地理解本公开。
7.图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
8.图2为说明根据本公开的一些实施例的命令序列所针对的lba的图表。
9.图3说明根据本公开的一些实施例的用于识别日志区域的方法的实例。
10.图4为说明根据本公开的一些实施例的命令序列所针对的lba的图表以及对应于其的多个表。
11.图5说明根据本公开的一些实施例的元数据区域的实例。
12.图6说明根据本公开的一些实施例的元数据区域的实例。
13.图7为根据本公开的一些实施例的用于检测电路的实例方法的流程图。
14.图8为本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
15.本公开的各种实施例涉及用于存储器装置中的存储流量模式检测的存储器子系统。存储器子系统可以是存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用存储器子系统,所述存储器子系统包含一或多个存储器装置,例如存储数据的存储器装置。主机系统可提供数据以存储在存储器子系统处,且可请求从存储器子系统检索数据。
16.主机系统可将存取请求(例如,写入命令、读取命令)发送到存储器子系统,以便将数据存储在存储器子系统的存储器装置上以及从存储器装置读取数据。如由主机请求指定,待读取或写入的数据在下文中被称作“主机数据”或“用户数据”。主机请求可包含用于主机数据的逻辑地址信息(例如,逻辑块地址(lba)、名字空间),其是主机系统与主机数据相关联的位置。主机系统可实施文件系统以将主机数据/用户数据存储在存储器子系统中。如本文中所使用,文件系统可包括实施以控制存储数据和/或从存储器子系统检索数据的方式的软件。
17.用于特定文件系统的写入序列可包含用于存储元数据的存储器的一部分的写入命令。对逻辑块地址(lba)的写入命令可存储在高速缓冲存储器(cache)中。周期性地,存储到高速缓冲存储器的数据可提交到存储器子系统的存储器装置。一些系统(例如,ext4文件系统)阻止对存储装置的操作,直到从高速缓冲存储器到存储器装置的数据和相关元数据移动成功完成为止。无法在存储器子系统处处理命令可能导致用户所感知的系统滞后。举例来说,对文件系统的一些存取可能暂时不可用(例如,被阻止),直到可能被视为系统关键的特定操作成功完成为止。这类操作可包含对特定元数据区域的写入,所述特定元数据区域可能与设计成例如维持数据完整性的日志提交操作或其它操作相关联。因此,当服务特定元数据写入时,用于处理用户级命令的文件系统的不可用性可被视为系统滞后,这可降低用户体验。
18.本公开的各种实施例解决以上和其它缺陷。举例来说,多个实施例可提供针对与文件系统相关联的元数据区域的改进的操作延迟,由此改进用户体验。举例来说,多个实施例可包含基于输入/输出(io)模式识别特定文件系统。还可识别用于存储文件系统的元数据的存储器装置的特定区域(例如,lba范围),且可采取动作以便改进对所识别元数据区域的存取的延迟。举例来说,这类元数据区域存取可优先于各种其它操作,例如包含垃圾收集操作的后台和/或内务处理操作。
19.如本文中所使用,元数据是指描述不同数据的数据。元数据可包含描述文件结构的数据和/或描述文件系统的数据。举例来说,元数据可用于数据完整性。元数据可包含可描述内部文件系统结构(例如,ext4日志)的专用数据结构。元数据区域描述用于存储元数据的存储器装置的一部分(例如,lba范围)。
20.本文中的图遵循编号定则,其中第一一或多个数字对应于图号,且剩余的数字标识图式中的元件或组件。可通过使用类似数字来标识不同图之间的类似元件或组件。举例来说,221可指图2中的元件“21”,且类似元件可在图4中表示为421。可利用连字符和额外数
字或字母提及图内的类似元件。参见例如图2中的元件226-1、...、226-5。如将了解,可添加、交换和/或去除本文中的各种实施例中展示的元件,以便提供本公开的多个额外实施例。另外,如将了解,图中提供的元件的比例和相对标度意欲说明本发明的某些实施例,且不应以限制性意义理解。
21.图1说明根据本公开的一些实施例的包含存储器子系统103的实例计算系统100。存储器子系统103可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置106)、一或多个非易失性存储器装置(例如,存储器装置105),或其组合。
22.存储器子系统103可为存储装置、存储器模块,或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、闪存驱动器、通用串行总线(usb)闪存驱动器、嵌入式多媒体控制器(emmc)驱动器、通用闪存存储(ufs)驱动器、安全数字(sd)卡和硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小外形dimm(so-dimm),以及各种类型的非易失性双列直插式存储器模块(nvdimm)。
23.计算系统100可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它运输工具)、支持物联网(iot)的装置、嵌入式计算机(例如,包含在运载工具、工业设备或联网市售装置中的计算机),或这类包含存储器和处理装置的计算装置。
24.计算系统100可包含耦合到一或多个存储器子系统103的主机系统102。在一些实施例中,主机系统102耦合到不同类型的存储器子系统103。图1说明耦合到一个存储器子系统103的主机系统102的实例。如本文中所使用,“耦合到”或“与...耦合”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如,不具有介入组件),无论有线还是无线,包含例如电连接、光学连接、磁性连接等连接。
25.主机系统102可包含处理器芯片组和由处理器芯片组执行的软件堆叠。处理器芯片组可包含一或多个核心、一或多个高速缓冲存储器、存储器控制器(例如,nvdimm控制器)和存储协议控制器(例如,外围组件互连高速(pcie)控制器、sata控制器)。主机系统102使用存储器子系统103,例如,将数据写入到存储器子系统103以及从存储器子系统103读取数据。
26.主机系统102可经由物理主机接口耦合到存储器子系统103。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、pcie接口、通用串行总线(usb)接口、光纤通道、串行附接scsi(sas)、小型计算机系统接口(scsi)、双数据速率(ddr)存储器总线、双列直插式存储器模块(dimm)接口(例如,支持双数据速率(ddr)的dimm套接接口)、开放式nand闪存接口(onfi)、双数据速率(ddr)、低功率双数据速率(lpddr),或任何其它接口。物理主机接口可用于在主机系统102与存储器子系统103之间传输数据。在存储器子系统103通过pcie接口与主机系统102耦合时,主机系统102可进一步利用nvm快速(nvme)接口来存取存储器组件(例如,存储器装置105)。物理主机接口可提供用于在存储器子系统103与主机系统102之间传递控制、地址、数据和其它信号的接口。图1说明存储器子系统103作为实例。一般来说,主机系统102可经由同一通信连接、多个独立通信连接和/或通信连接的组合存取多个存储器子系统。
27.存储器装置105、106可包含不同类型的非易失性存储器装置105和/或易失性存储器装置106的任何组合。易失性存储器装置(例如,存储器装置106)可以是(但不限于)随机
存取存储器(ram),例如动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)。
28.非易失性存储器装置(例如,存储器装置105)的一些实例包含“与非”(nand)型闪存存储器和就地写入存储器,例如三维交叉点(“3d交叉点”)存储器装置,其是非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的改变来执行位存储。另外,与许多基于闪存的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。nand型闪存存储器包含例如二维nand(2d nand)和三维nand(3d nand)。
29.存储器装置105中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(slc),可每单元存储一个位。其它类型的存储器单元,例如多层级单元(mlc)、三层级单元(tlc)、四层级单元(qlc)和五层级单元(plc),可每单元存储多个位。在一些实施例中,存储器装置105、106中的每一个可包含一或多个存储器单元阵列,例如slc、mlc、tlc、qlc或这些的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的slc部分以及mlc部分、tlc部分、qlc部分或plc部分。存储器装置105、106的存储器单元可分组为页,页可指用以存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,nand),页可进行分组以形成块。
30.虽然描述例如3d交叉点非易失性存储器单元阵列和nand型存储器(例如,2dnand、3d nand)和3d交叉点非易失性存储器单元阵列等非易失性存储器装置105,但存储器装置105可基于任何其它类型的非易失性存储器或存储装置、相变存储器(pcm)、自选存储器、其它基于硫族化物的存储器、铁电晶体管随机存取存储器(fetram)、铁电随机存取存储器(feram)、磁随机存取存储器(mram)、自旋转移力矩(stt)-mram、导电桥接ram(cbram)、电阻性随机存取存储器(rram)、基于氧化物的rram(oxram)、“或非”(nor)闪存存储器,以及电可擦除可编程只读存储器(eeprom)。
31.存储器子系统控制器104(或简称为控制器104)可与存储器装置105通信以执行操作,例如在存储器装置105处读取数据、写入数据或擦除数据,以及其它这类操作。存储器子系统控制器104可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有专用(即,硬译码)逻辑的数字电路以执行本文中所描述的操作。存储器子系统控制器104可为微控制器、专用逻辑电路(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等),或其它合适的处理器。
32.存储器子系统控制器104可包含处理器107(例如,处理装置),其配置成执行存储在本地存储器(例如,未展示)中的指令。存储器子系统控制器104的本地存储器可包含配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统103的操作(包含处置存储器子系统103与主机系统102之间的通信)的各种过程、操作、逻辑流程和例程。
33.在一些实施例中,本地存储器可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器还可包含用于存储例如微码的只读存储器(rom)。虽然图1中的实例存储器子系统103已说明为包含存储器子系统控制器104,但在本公开的另一实施例中,存储器子系统103不包含存储器子系统控制器104,且实际上可依靠外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
34.一般来说,存储器子系统控制器104可从主机系统102接收命令或操作,且可将命
令或操作转换成指令或适当命令以实现对存储器装置105和/或存储器装置106的所需存取。存储器子系统控制器104可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ecc)操作、加密操作、高速缓存操作,以及与存储器装置105相关联的逻辑地址(例如,逻辑块地址(lba)、名字空间)与物理地址(例如,物理块地址)之间的地址转译。存储器子系统控制器104可进一步包含主机接口电路以经由物理主机接口与主机系统102通信。主机接口电路可将从主机系统接收到的命令转换成命令指令以存取存储器装置105和/或存储器装置106,以及将与存储器装置105和/或存储器装置106相关联的响应转换成用于主机系统102的信息。
35.存储器子系统103还可包含未说明的额外电路或组件。在一些实施例中,存储器子系统103可包含高速缓冲存储器或缓冲器(例如,dram)和地址电路(例如,行解码器和列解码器),其可从存储器子系统控制器104接收地址且解码地址以存取存储器装置105。在各种实例中,本地存储器可包括可结合存储器装置105/106利用的高速缓冲存储器111。
36.在一些实施例中,存储器装置105包含本地媒体控制器110,其结合存储器子系统控制器104操作以对存储器装置105的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器104)可在外部管理存储器装置105(例如,对存储器装置105执行媒体管理操作)。
37.在各种实例中,存储器子系统103可为受管理nand(mnand)装置,其中外部控制器(例如,104)与一或多个nand裸片(例如,105)一起封装。在mnand装置中,外部控制器104可处置例如媒体管理的高层级存储器管理功能,且本地媒体控制器110可管理较低层级存储器过程中的一些,例如何时执行编程验证操作、mlc、tlc、qlc编程操作和/或校准等。
38.存储器子系统控制器104还可包含闪存转译层(ftl)108。ftl 108可负责各种功能。举例来说,ftl 108可执行地址转译(例如,逻辑到物理)、垃圾收集、ecc和耗损均衡,以及由ftl 108执行的其它功能。
39.存储器子系统控制器104还可包含检测组件109。检测组件109可包括配置成执行本文中所描述的实例的asic。虽然检测组件109可实施为电路(例如,asic),但检测组件109也可实施为固件和/或软件。举例来说,固件和/或软件可包含指令,所述指令在由存储器子系统控制器104执行时可使得存储器子系统控制器104执行本文中所描述的实例,例如由图3、7所描述的实例,但不排除图2、4、5、6、8中描述的实例。虽然检测组件109展示为与ftl 108分离实施,但检测组件109可以是ftl 108的一部分。检测组件109可检测存储器装置105/106的元数据区域。元数据区域的类型可取决于特定文件系统而变化,但可包含例如日志区域。检测组件109还可确定与对存储器装置105/106的元数据区域的写入相关联的特定文件系统101。
40.如本文中所使用,文件系统101控制存储和检索数据的方式。文件系统101可控制数据在存储于存储器子系统103中时被分离的方式。文件系统102可控制数据的命名和/或数据的部分(例如,分离的部分)。文件系统102可控制用于管理存储于存储器子系统103中的数据的结构和逻辑规则。文件系统101可为例如网络文件系统、数据库文件系统、事务文件系统和/或移动装置文件系统。移动文件系统可为例如第四扩展(ext4)文件系统或闪存友好型文件系统(f2fs)。
41.检测组件109可进一步检测用于存储器装置105/106的元数据区域和/或用户区域
的io模式。如本文中所使用,互换地使用术语检测、识别和确定。
42.检测组件109可例如基于检测到的io模式确定与文件系统相关联的元数据区域(例如,lba范围)的文件系统类型和/或位置。举例来说,可监测(例如,追踪)io模式的强制单元存取命令,且在文件系统元数据区域通常经由强制单元存取而存取的条件下使用所述强制单元存取命令来识别元数据区域。举例来说,文件系统通常在与存取元数据区域相关联的特定可识别模式中采用强制单元存取命令。因此,强制单元存取命令还可用于检测特定io模式。如本文中所使用,强制单元存取命令为写入命令,所述写入命令的对应数据绕过写入高速缓冲存储器(例如,高速缓冲存储器111)而直接写入到存储器装置。
43.图2为说明根据本公开的一些实施例的命令序列所针对的lba的图表。在图2中,x轴表示时间且y轴表示对应于存储器装置的lba空间。如图2中所展示,lba空间包含日志区域220。lba空间的剩余部分可用于例如用户数据(例如,用户lba)、额外日志区域和/或其它元数据。
44.日志区域220可为用于追踪尚未提交以供存储的文件系统改变的日志文件系统的专用元数据区域。举例来说,日志区域220可存储用户lba的指针和/或日志区域220的指针。日志区域220还可被称作日志220。日志220可实施为循环缓冲器。作为实例,与图2相关联地描述的日志220可与例如用于linux的扩展4(ext4)文件系统的日志文件系统的日志块装置相关联。虽然与图2到4相关联地描述的实例涉及ext4文件系统,但实施例不限于特定类型的日志文件系统。
45.图2说明多个写入命令223、日志写入命令224-1、224-2、224-3和224-4(统称为日志写入命令224),以及日志提交命令225-1、225-2、225-3和225-4(统称为日志提交225)。如本文中所使用,日志写入命令(例如,224)是指涉及日志区域(例如,220)的写入命令,而常规写入命令(例如,223)是指涉及用户lba空间的写入命令。日志提交命令225是指清空命令226后接(对日志区域220的)强制单元存取命令的序列。强制单元存取命令是指写入命令,所述写入命令的对应数据绕过写入高速缓冲存储器而直接写入到存储器装置。因此,在一连串日志写入224的结束处使用的日志提交225涉及清空命令之后的强制单元存取,使得在不利用存储器子系统的高速缓冲存储器的情况下,对应于强制单元存取的数据直接写入到存储器装置。相比于强制单元存取,日志写入命令224和常规写入命令223在(经由清空命令)写入到存储器装置之前写入到存储器子系统的高速缓冲存储器(例如,写入高速缓冲存储器)。高速缓冲存储器可实施于存储器子系统(例如,图1中展示的103)内的各种位置中。举例来说,高速缓冲存储器可位于例如存储器装置105、106的存储器装置上和/或位于控制器104上的本地存储器中,以及其它位置。
46.文件系统日志(例如,ext4日志)可在特定系统利用期间具有与其相关联的可识别(例如,特定)流量模式(关于io流量)。系统的稳固性和执行可对日志区域220的执行敏感。如果存储装置可在快速执行和可靠数据存储的情况下处置到日志区域220的流量,那么用户体验可能受益。由于一或多个日志(例如,220)的位置对于文件系统来说为未知的,所以识别日志区域可能是有利的,以便提高系统效能。
47.作为实例,考虑用户更新数据库(例如,在用户插入新电话号码、制作新相片、使其账号与云服务同步等等时),其可能涉及日志区域220中的至少两个或三个写入操作,这可被称作日志的日志(journal of the journal)。根据多个实施例,在确定日志区域(例如,
220)的位置后,存储器子系统可检测对日志区域220的存取且可用以加速检测到的存取的执行(相较于将执行存取的速度,其未被识别为涉及日志区域),由此提供改进的数据库效能和/或用户体验。另外,由于通过特定文件系统发布到存储装置的写入流量为存储装置的整个使用期限中的总写入流量的一致百分比,所以通过在特定底层装置区域中(例如,在nand slc块中)含有这一流量,存储装置的总体耐久性可增强。
48.举例来说,文件系统利用特定协议将命令提供到存储器子系统,所述特定协议例如嵌入式多媒体控制器(emmc)协议或小型计算机系统接口(scsi)协议。scsi协议可与例如通用闪存存储(ufs)装置和/或固态驱动器(ssd)相关联。
49.由于特定文件系统命令为协议相关的,且文件系统很可能不了解底层存储装置(例如,emmc、ufs、ssd等),所以本文中所描述的各种实例是指通常为读取、写入、清空、强制单元存取、读取元数据、写入元数据、丢弃等文件系统命令。表1提供为协议特定命令/标志对通用文件系统命令的实例映射。举例来说,如表1中展示,可使用scsi协议将读取命令提供为read_10命令。可使用scsi协议将写入命令提供为write_10命令。可使用scsi协议将强制单元存取命令提供为具有fua标签(例如,标志)的write_10。与用户文件元数据有关的写入命令可使用scsi协议提供为使用系统数据标签(例如,标志)的write_10命令或使用emmc协议提供为具有data_tag标签的cmd23或cmd25。如本文中所使用,对元数据区域的读取或写入命令可包括具有例如data_tag或系统数据标签(其可被称作数据标签)的标签的命令。
50.表1
[0051][0052]
ext4日志区域220可在规则系统利用期间具有特定流量。在系统的常规利用期间,可利用多个标准存取日志区域220。举例来说,第一标准可包含以lba顺序次序执行日志写入命令。如本文中所使用,lba顺序次序描述位置n处及由m个lba组成的日志写入后接n m位置处的另一日志写入。举例来说,对日志区域220的第一写入命令的结束lba可邻近于对日志区域220的第二写入命令的开始lba。在第一lba与第二lba之间不存在第三lba的情况下,如果第一lba后接第二lba,那么lba(例如,第一lba和第二lba)可相邻。
[0053]
第二标准可包含对日志区域220的一连串常规写入命令(例如,日志写入命令224)将以后接强制单元存取命令的清空命令(例如,清空命令226-1、226-2、226-3、226-4和226-5)结束。清空命令(例如,226)后接强制单元存取命令的这一特定序列可被称作日志提交(例如,225)。应注意,日志提交命令225表示对日志区域220的强制单元存取命令和紧接在强制单元存取前的对应个别清空命令226的组合。如本文中所使用,清空命令是指执行以将数据从高速缓冲存储器移动到存储器装置的命令。举例来说,日志写入命令224可能涉及写
1和224-2的lba的候选日志区域重叠。
[0060]
如果接收到的命令与候选日志区域重叠,那么方法继续到334。如果接收到的命令并不与候选日志区域重叠,那么方法继续到333。在333处,可审查接收到的命令以确定接收命令是否为强制单元存取命令。方法可确定接收到的命令是否包括标签或与标签相关联。可审查与接收到的命令相关联的标签以确定标签是否为rel_write标签或fua标签中的一个。如果与接收命令相关联的标签为rel_write标签或fua标签中的一个,那么接收到的命令可为强制单元存取命令。如果接收到的命令为强制单元存取命令,那么方法可继续到334。如果接收到的命令不为强制单元存取命令,那么方法可继续到339。
[0061]
虽然方法可包含确定接收到的命令是否与候选日志区域重叠以及确定接收到的命令是否为强制单元存取命令,但方法可以不同次序执行两种确定或仅执行确定中的一个。举例来说,方法可在确定接收到的命令是否与候选日志区域重叠之前确定接收到的命令是否为强制单元存取命令。替代地,方法可仅执行确定中的一个,所述确定包含确定接收到的命令是否与候选日志区域重叠或确定接收到的命令是否为强制单元存取命令。
[0062]
在334处,方法可包含添加或与候选日志区域的列表合并。如果接收到的命令并不与候选日志区域重叠且为强制单元存取命令,那么可将新候选日志区域添加到候选日志区域列表中。如果接收到的命令与候选日志区域重叠,那么接收到的命令可与候选日志区域合并。如果接收到的命令的lba与候选日志区域的lba合并(例如,添加到所述lba中),那么命令可与候选日志区域合并。
[0063]
方法可接着继续到335。在335处,可作出关于接收到的命令和/或新创建的候选日志区域对于已存在候选日志区域是否连续的确定。如果新创建的候选日志区域或接收到的命令的lba邻近于已存在候选日志区域的lba,那么接收到的命令或新创建的候选日志区域可为连续的。如果接收到的命令或新创建的候选日志区域对于已存在候选日志区域连续,那么方法继续到336。如果接收到的命令或新创建的候选日志区域对于已存在候选日志区域不连续,那么方法继续到337。
[0064]
在336处,计数器可针对已存在候选日志区域递增。可将计数器称作命中计数器。计数器可表示已存在候选日志区域的使用。举例来说,以连续方式使用的候选日志区域越多,那么候选日志区域越有可能实际上是日志区域。在使计数器针对已存在候选日志区域递增之后,方法可继续到337。在337处,方法可包含确定用于候选日志区域的计数器是否大于阈值。如果计数器大于阈值,那么方法可将接收到的命令标记为日志写入命令和/或可将候选日志区域标记为日志区域。将接收到的命令标记为日志写入命令和/或将候选日志区域标记为日志区域可提供加快日志写入命令的执行以限制存储器装置、存储器子系统和/或计算环境的停滞的能力。方法可接着通过执行接收到的命令来继续到339。
[0065]
图4为说明根据本公开的一些实施例的命令序列所针对的lba的图表以及对应于其的多个表(444-1、444-2、444-3、444-4、444-5和444-6)。
[0066]
在图4中,x轴表示时间且y轴表示对应于存储器装置的lba空间。图表展示日志写入命令442-1在日志提交命令443-1之前执行且日志写入命令442-1和日志提交命令443-1为连续的。图表展示日志写入命令442-2在日志提交命令443-2之前执行且日志写入命令442-2和日志提交命令443-2为连续的。图表进一步展示日志写入命令442-3在日志提交命令443-3之前执行且日志写入命令442-3和日志提交命令443-3为连续的。图表展示日志写
入命令442-4在日志提交命令443-4之前执行且日志写入命令442-4和日志提交命令443-4为连续的。图表进一步展示日志写入命令442-5在日志提交命令443-5之前执行且日志写入命令442-5和日志提交命令443-5为连续的。图4中提供的实例实施图3中提供的方法。
[0067]
在表444-1中,响应于接收到日志写入命令442-1而创建第一候选日志区域。日志写入命令442-1可使得数据写入到存储器装置的开始lba(例如,216)和结束lba(例如,217)。在这一实例中,由于命令442-1为接收到的第一命令,所以确定第一候选日志区域不与其它候选日志区域重叠。由于新创建的候选日志区域和/或接收到的命令对于不同候选日志区域不连续,所以用于新创建的候选日志区域的计数器不递增。
[0068]
在表444-2中,日志提交命令443-1与第一候选日志区域重叠且为强制单元存取命令,导致日志提交命令443-1与第一候选日志区域合并。日志提交命令443-1可使得数据写入到开始lba(例如,217)和结束lba(例如,232)。在日志提交命令443-1与第一候选日志区域连续的条件下,与第一候选日志区域相关联的计数器递增(例如,1)。可将日志提交命令和/或日志写入命令与候选日志区域的连续称作“命中”。如果存在命中(例如,如果日志提交命令和/或日志写入命令与候选日志区域连续),那么计数器可递增。在与第一候选日志区域相关联的计数器不大于阈值的条件下,日志提交命令443-1可能并不标注为日志写入命令。举例来说,阈值可大于100命中。但阈值可大于或小于100命中。可执行日志提交命令443-1。
[0069]
在表444-3中,日志写入命令442-2与第一候选日志区域重叠,导致日志写入命令442-2与第一候选日志区域合并。在日志写入命令442-2与第一候选日志区域连续的条件下,与第一候选日志区域相关联的计数器递增(例如,2)。在与第一候选日志区域相关联的计数器不大于阈值的条件下,日志写入命令442-2可能并不标注为日志写入命令。可执行日志写入命令442-2。在表444-3中,日志提交命令443-2也与第一候选日志区域重叠且为强制单元存取命令,导致日志提交命令443-2与第一候选日志区域合并。在日志提交命令443-2与第一候选日志区域连续的条件下,与第一候选日志区域相关联的计数器递增(例如,3)。在与第一候选日志区域相关联的计数器不大于阈值的条件下,日志提交命令443-2可能并不标注为日志写入命令。可执行日志提交命令443-2。
[0070]
在表444-4中,日志写入命令442-3与第一候选日志区域重叠,导致日志写入命令442-3与第一候选日志区域合并。在日志写入命令442-3与第一候选日志区域连续的条件下,与第一候选日志区域相关联的计数器递增(例如,100 )。在与第一候选日志区域相关联的计数器大于阈值的条件下,日志写入命令442-3可标注为日志写入命令。可基于将命令442-3识别为日志写入命令而以与日志写入命令442-1和442-2的执行不同的方式执行日志写入命令442-3。在表444-4中,日志提交命令443-3也与第一候选日志区域重叠且为强制单元存取命令,导致日志提交命令443-3与第一候选日志区域合并。在日志提交命令443-3与第一候选日志区域连续的条件下,与第一候选日志区域相关联的计数器递增(例如,100 )。在与第一候选日志区域相关联的计数器大于阈值的条件下,命令443-3可标注为日志写入命令。可执行日志提交命令443-3。
[0071]
在表444-5中,日志写入命令442-4并不与第一候选日志区域重叠,导致创建新候选日志区域。可将新候选日志区域称作第二候选日志区域。在日志写入命令442-4或第二候选日志区域不与第一候选日志区域连续的条件下,与第一候选日志区域相关联的计数器不
递增。在与第二候选日志区域相关联的计数器不大于阈值的条件下,日志写入命令442-4可能并不标注为日志写入命令。
[0072]
虽然未展示,但日志提交命令443-4与第二候选日志区域重叠但并不与第一候选日志区域重叠,且为强制单元存取命令,导致日志提交命令443-4与第二候选日志区域合并。在日志提交命令443-4与第二候选日志区域连续的条件下,与第二候选日志区域相关联的计数器递增(例如,1)。在与第一候选日志区域相关联的计数器不大于阈值的条件下,日志提交命令443-4可能并不标注为日志写入命令。可执行日志提交命令443-4。
[0073]
在表444-6中,日志写入命令442-5与第二候选日志区域重叠,导致日志写入命令442-5与第二候选日志区域合并。在日志写入命令442-5或第二候选日志区域不与第一候选日志区域连续的条件下,与第一候选日志区域相关联的计数器不递增,但与第二候选日志区域相关联的计数器递增。在与第二候选日志区域相关联的计数器不大于阈值的条件下,日志写入命令442-5可能并不标注为日志写入命令。
[0074]
日志提交命令443-5与第二候选日志区域和第一候选日志区域重叠,且为强制单元存取命令,导致日志提交命令443-5与第一候选日志区域和第二候选日志区域合并。第一候选日志区域和第二候选日志区域也可在其连续的条件下合并。在日志提交命令443-5与第二候选日志区域和第一候选日志区域连续的条件下,与第一候选日志区域相关联的计数器递增(例如,100 )。在与第一候选日志区域相关联的计数器大于阈值的条件下,日志提交命令443-5可标注为日志写入命令。可执行日志提交命令443-5。合并两个不同候选日志区域可导致候选日志区域中的一个的删除和另一候选日志区域的连续性。
[0075]
图5说明根据本公开的一些实施例的元数据区域551的实例。如先前所描述,在f2fs的上下文中提供图5和图6的实例。
[0076]
f2fs的布局可包含超级块区域、检查点区域、片段信息表(sit)区域、节点地址表(nat)区域、片段汇总(ss)区域和主要区域。在读取模式中在平台启动期间以及在写入模式中在格式化时间存取超级块(sb)区域。使用强制单元存取命令存取检查点(cp)区域。使用元数据读取和写入命令存取sit、nat和/或ss区域。可利用data_tag标签标注(例如,标记)用于读取或写入到元数据区域551的命令。利用常规读取和写入命令存取主要区域以存取来自用户区域552的用户数据。
[0077]
图5展示包括lba 520的范围的图表。lba 520的范围包含用于元数据区域551和用户区域552的开始lba和结束lba。
[0078]
图6说明根据本公开的一些实施例的元数据区域的实例。图6包含包括表示时间621的x轴和表示lba 620的y轴的图表。图表展示写入命令623、元数据写入命令661-1、661-2、661-3和661-4以及检查点命令662-1和662-2。可将元数据写入命令661-1、661-2、661-3和661-4称作元数据写入命令661。可将检查点命令662-1和662-2称作检查点命令662。也可将检查点命令662称作强制单元存取命令662。检查点的存在可用于识别文件系统为f2fs。此外,对相同lba范围的强制单元存取命令可表示f2fs的使用。
[0079]
f2fs流量可以在多个阶段中划分。第一阶段可包含使用存取命令623(例如,写入命令和/或读取命令)写入及读取来自用户区域(例如,图5中的用户区域552)的数据。在第一阶段期间,将多个命令引导到用户区域。多个命令包含读取命令、写入命令、清空命令和丢弃命令,以及其它可能命令。第一阶段中的命令中的一些还可引导到元数据区域,所述元
数据区域包含sit区域、nat区域和/或ss区域(例如,ssa)。
[0080]
第二阶段可包含清空元数据。在第二阶段期间,写入命令引导到元数据区域,所述元数据区域包含sit区域、nat区域和/或ssa。可使用例如data_tag标签识别到元数据区域的写入命令。第三阶段可包含清空和检查点。以清空命令后接对检查点区域的写入来标记第三阶段的结束。对检查点区域的写入可为强制单元存取命令。可通过识别作为强制单元存取命令662的命令来识别检查点区域。
[0081]
可在协议层级处识别第二阶段和第三阶段。举例来说,在emmc协议中,可通过监测写入操作中的data_tag标签来识别第二阶段的开始。可通过监测rel_write标签来检测第三阶段。举例来说,可在写入命令中识别rel_write标签。rel_write标签的识别可用于识别第三阶段。rel_write标签还可用于识别命令为强制单元存取命令。检测电路(例如,图1中的检测电路)可采取动作以在检测到第二和第三阶段时改进操作的延迟。举例来说,识别第二阶段和第三阶段可允许确定文件系统正被使用。识别第二阶段和第三阶段可提供对元数据区域的确定和对io模式的识别。
[0082]
在图6中,可响应于元数据写入命令666-1和666-2利用data_tag标签而识别元数据写入命令666-1和666-2。清空命令可用于识别第二阶段的结束和第三阶段的开始。使用具有命令的rel_write标签可传信检查点区域。检查点区域可出现在相同lba中,使得对相同数目的lba的重复命令也可传信检查点区域/第三阶段。可基于强制单元存取命令的lba确定检查点区域的lba。举例来说,检查点的开始lba和结束lba可确定为强制单元存取命令662-1和662-2的开始lba和结束lba。强制单元存取命令662-1和662-2的开始lba和结束lba可用作(例如,指定为)检查点区域的开始lba和结束lba。可监测强制单元存取命令662-1和662-2以确保强制单元存取命令662-1和662-2具有相同开始lba和结束lba。
[0083]
可观测到元数据写入命令661-3和661-4。对应于元数据写入命令661-3和661-4的lba可不同于对应于元数据写入命令661-1和661-2的lba。如果元数据写入命令661-3和661-4利用具有与元数据写入命令661-1和661-2不同的lba范围的命令,那么可更新元数据区域的lba。
[0084]
图7为根据本公开的一些实施例的对应于检测电路的实例方法780的流程图。方法780可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法780由图1的检测组件109执行。虽然以特定序列或次序展示,但除非另外规定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序执行,且一些过程可并行地执行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
[0085]
在781处,可在存储器子系统处接收到命令。在782处,可作出关于接收到的命令是否为写入命令的确定。举例来说,可确定命令是否为常规写入命令和/或强制单元存取命令。在783处,响应于确定接收到的命令为写入命令,可作出关于写入命令是否为强制单元存取命令的确定。在784处,响应于确定写入命令为强制单元存取命令,可确定存储器子系统的存储器装置的候选日志区域的开始lba和结束lba。在785处,可响应于候选日志区域被存取阈值数目次而将候选日志区域标记为存储器装置的日志区域。在786处,可响应于对日志区域的后续存取而采取动作。
[0086]
方法780可进一步包括在存储器子系统处接收不同命令。方法780还可包含响应于确定接收到的不同命令为不同写入命令,确定用于不同写入命令的开始lba和结束lba是否与候选日志区域的开始lba和结束lba重叠。响应于经由存储器子系统的控制电路确定用于不同写入命令的开始lba和结束lba与候选日志区域的开始lba和结束lba重叠,可更新候选日志区域的开始lba和结束lba以包含不同写入命令的开始lba和结束lba。更新候选日志区域的开始lba和结束lba可包含将不同写入命令的开始lba和/或结束lba设置为候选日志区域的开始lba和/或结束lba,使得候选日志区域的开始lba与结束lba之间的差大于更新之前的差。响应于确定用于不同写入命令的开始lba和结束lba并不与候选日志区域的开始lba和结束lba重叠,可作出关于不同写入命令是否为不同强制单元存取命令的确定。
[0087]
响应于确定不同写入命令为不同强制单元存取命令,可添加新候选日志区域,其中新候选日志区域具有对应于不同强制单元存取命令的开始lba和结束lba的开始lba和结束lba。响应于确定不同写入命令不为强制单元存取命令,可在不将候选日志区域标记为日志区域的情况下执行命令。
[0088]
响应于添加新候选日志区域或更新候选日志区域的开始lba和结束lba,可作出关于不同写入命令的开始lba或结束lba对于候选日志区域或新候选日志区域的开始lba或结束lba是否连续的确定。响应于确定不同写入命令的开始lba或结束lba对于候选日志区域或新候选日志区域的开始lba或结束lba连续,可使用于候选日志区域或新候选日志区域的区域命中计数器递增。
[0089]
响应于确定候选日志区域的区域命中计数器大于阈值,可将候选日志区域标记为日志区域。响应于确定新候选日志区域的区域命中计数器大于阈值,可将新候选日志区域标记为日志区域。可响应于将候选日志区域标记为日志区域和/或将新候选日志区域标记为日志区域而执行新命令。
[0090]
响应于确定候选日志区域的区域命中计数器不大于阈值,可能并不将候选日志区域标记为日志区域且可执行新命令。响应于确定新候选日志区域的区域命中计数器不大于阈值,可能并不将新候选日志区域标记为日志区域且可执行新命令。
[0091]
在各种情况下,系统可包括耦合到存储器装置的控制器。控制器可配置成:监测多个接收到的命令以识别强制单元存取命令,基于强制单元存取命令而识别存储器装置的元数据区域,且响应于识别对元数据区域的后续强制单元存取命令而执行动作。
[0092]
控制器可进一步识别包含强制单元存取命令的多个强制单元存取命令,且基于多个强制单元存取命令而识别存储器装置的元数据区域。控制器还可确定用于多个强制单元存取命令中的每一个的开始lba和结束lba。控制器可至少基于用于多个强制单元存取命令中的每一个的开始lba和结束lba而进一步确定用于元数据区域的开始lba和结束lba。
[0093]
在各种实例中,系统可包括控制器,所述控制器耦合到存储器装置且配置成:利用对存储器装置的多个存取命令识别文件系统;且响应于识别文件系统,基于多个存取命令和文件系统确定存储器装置的元数据区域的开始lba和结束lba。控制器可利用开始lba、结束lba和多个存取命令而进一步确定多个存取命令的写入模式,且可基于写入模式而执行动作。
[0094]
可利用对存储器装置的多个存取命令而识别f2fs。可作出关于多个存取命令的写入模式是否进一步配置成识别元数据区域的检查点区域的确定。可利用来自对存储器装置
的多个存取命令的多个强制单元存取命令而识别检查点区域。可确定用于多个强制单元存取命令的开始lba和结束lba,且可将多个强制单元存取命令的开始lba和结束lba指定为检查点区域的开始lba和结束lba。可确定多个强制单元存取命令中的每一个具有相同开始lba和相同结束lba。可将检查点的开始lba指定为元数据区域的开始lba。
[0095]
图8说明计算机系统890的实例机器,所述实例机器内可执行用于使得机器执行本文中所论述的方法中的一或多种的指令集。在一些实施例中,计算机系统890可类似于图1的存储器子系统控制器104。在替代性实施例中,机器可连接(例如联网)到lan、内联网、外联网和/或互联网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。
[0096]
机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、网络设备、服务器、网络路由器、交换机或桥接器,或能够执行指定要由所述机器进行的动作的指令集(依序或以其它方式)的另一机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的集合,所述集合单独地或共同地执行一(或多个)指令集以执行本文中所论述的方法中的一或多种。
[0097]
实例计算机系统890包含处理装置892、主存储器894(例如,只读存储器(rom)、闪存存储器、动态随机存取存储器(dram),例如同步dram(sdram)或rambus dram(rdram)等)、静态存储器898(例如,闪存存储器、静态随机存取存储器(sram)等),和数据存储系统899,其经由总线897彼此通信。数据存储系统899可为存储器子系统,例如图1中所描述的存储器子系统103(例如,ufs、emmc等)。
[0098]
处理装置892,其可类似于图1中的处理器107,表示一或多个通用处理装置,例如微处理器、中央处理单元等。更确切地说,处理装置可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置892也可以是一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理装置892配置成执行用于执行本文中所论述的操作和步骤的指令893。计算机系统890可进一步包含用以经由网络896通信的网络接口装置895。
[0099]
数据存储系统899可包含机器可读存储媒体891(也称为计算机可读媒体),其上存储有指令893的一或多个集合或体现本文中所描述的方法或功能中的一或多种的软件。指令893还可在其由计算机系统890执行期间完全或至少部分地驻存在主存储器894内和/或处理装置892内,所述主存储器894和所述处理装置892也构成机器可读存储媒体。机器可读存储媒体891、数据存储系统899和/或主存储器894可对应于图1的存储器子系统103。
[0100]
在一个实施例中,指令893包含用以实施对应于图1的检测组件109的功能性的指令。指令可包含与辨识文件系统、侦测元数据区域以及侦测用于元数据区域的io模式(例如,图1中的检测组件109)相关联的命令指令889。尽管在实例实施例中机器可读存储媒体891展示为单个媒体,但应认为术语“机器可读存储媒体”包含存储一或多个指令集的单个媒体或多个媒体。还应认为术语“机器可读存储媒体”包含能够存储或编码供机器执行的指令集且使得机器执行本公开的方法中的一或多种的媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。
[0101]
已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其它技术人员的方式。在本文中,且一般将算法构想为产生所需结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称作位、值、元素、符号、字符、项、编号等有时是便利的。
[0102]
然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可指操纵计算机系统的寄存器和存储器内的表示为物理(电子)量的数据且将所述数据变换成计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
[0103]
本公开还涉及用于执行本文中的操作的设备。这一设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这类计算机程序可存储在计算机可读存储媒体中,所述计算机可读存储媒体例如但不限于各自耦合到计算机系统总线的包含软盘、光盘、cd-rom和磁性光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁性卡或光学卡的磁盘类型或适合于存储电子指令的媒体类型。
[0104]
本文中呈现的算法和显示并非在本质上与特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或可以证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,不参考特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。
[0105]
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、闪存存储器装置等。
[0106]
在前述说明书中,本公开的实施例已经参照其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书及图式。
再多了解一些

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

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

相关文献