CN117917650A - 持久性存储装置及其操作方法 - Google Patents
持久性存储装置及其操作方法 Download PDFInfo
- Publication number
- CN117917650A CN117917650A CN202311283654.5A CN202311283654A CN117917650A CN 117917650 A CN117917650 A CN 117917650A CN 202311283654 A CN202311283654 A CN 202311283654A CN 117917650 A CN117917650 A CN 117917650A
- Authority
- CN
- China
- Prior art keywords
- cache
- write request
- data
- persistent storage
- storage device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000002085 persistent effect Effects 0.000 title claims abstract description 186
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000012545 processing Methods 0.000 claims abstract description 27
- 238000010586 diagram Methods 0.000 description 16
- 235000019580 granularity Nutrition 0.000 description 15
- 230000008569 process Effects 0.000 description 11
- 230000004044 response Effects 0.000 description 6
- 238000013519 translation Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000012913 prioritisation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 150000003071 polychlorinated biphenyls Chemical class 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
持久性存储装置及其操作方法。在一些实施例中,一种持久性存储设备包括:处理电路;高速缓存;以及持久性存储设备。处理电路可被配置为执行方法,所述方法包括:接收根据第一协议的第一写入请求;将所述第一写入请求的数据负载保存在高速缓存的第一部分中;接收根据第二协议的第二写入请求;以及将第二写入请求的数据负载保存在高速缓存的第二部分中。
Description
本申请要求于2022年10月20日提交的题为“用于支持高速缓存行和页I/O粒度访问的SSD的利用SLC-TLC混合NAND闪存的高速缓存行优先化高速缓存设计(CACHE LINEACCESS PRIORITIZED CACHE DESIGN LEVERAGING SLC-TLC HYBRID NAND FLASH FOR SSDSTHAT SUPPORT CACHE LINE AND PAGE I/O GRANULARITY ACCESSES)”的第63/417,940号美国临时申请以及于2023年2月1日提交的第18/163,208号美国专利申请的优先权和权益,所述美国申请的全部内容通过引用包含于此。
技术领域
根据本公开的实施例的一个或多个方面涉及数据存储装置,并且更具体地,涉及用于具有双接口的持久性存储装置的***和方法。
背景技术
持久性存储装置可提供用于主机计算机的存储。这样的存储装置可使用不同的接口与主机计算机进行通信,不同的接口可使用不同大小的数据负载。
本公开的方面与该总体技术环境相关。
发明内容
根据本公开的实施例,提供一种持久性存储装置,所述持久性存储装置包括:处理电路;高速缓存;以及持久性存储设备,处理电路被配置为执行方法,所述方法包括:接收根据第一协议的第一写入请求;将第一写入请求的数据负载保存在高速缓存的第一部分中;接收根据第二协议的第二写入请求;以及将第二写入请求的数据负载保存在高速缓存的第二部分中。
在一些实施例中,第一写入请求包括指示所述持久性存储装置采用进行高速缓存的高速缓存提示。
在一些实施例中:第一协议以第一粒度对数据的单元进行寻址;第二协议以不同于第一粒度的第二粒度对数据的单元进行寻址;并且所述方法还包括:接收第三写入请求,第三写入请求包括数据负载和高速缓存提示,高速缓存提示指示所述持久性存储装置放弃进行高速缓存;以及将第三写入请求的数据负载保存在持久性存储设备中。
在一些实施例中:持久性存储设备包括第一存储介质和第二存储介质,第一存储介质具有比第二存储介质高的读取延迟;第三写入请求的数据负载小于第一阈值;并且将第三写入请求的数据负载保存在持久性存储设备中的步骤包括:将第三写入请求的数据负载保存在第二存储介质中。
在一些实施例中:第一存储介质包括三级单元;并且第二存储介质包括单级单元。
在一些实施例中,所述方法还包括:接收第四写入请求,第四写入请求包括数据负载和高速缓存提示,高速缓存提示指示所述持久性存储装置放弃进行高速缓存;以及将第四写入请求的数据负载保存在持久性存储设备中,其中:第四写入请求的数据负载大于第一阈值;并且将第四写入请求的数据负载保存在持久性存储设备中的步骤包括:将第四写入请求的数据负载保存在第一存储介质中。
在一些实施例中,所述方法还包括:接收第五写入请求,第五写入请求包括高速缓存提示和比第一阈值大的数据负载,高速缓存提示指示所述持久性存储装置采用进行高速缓存;确定高速缓存的第一部分已满;从高速缓存的第一部分逐出数据;以及将第五写入请求的数据负载保存在高速缓存的第一部分中。
在一些实施例中,所述方法还包括:接收第五写入请求,第五写入请求包括高速缓存提示和比第一阈值小的数据负载,高速缓存提示指示所述持久性存储装置采用进行高速缓存;确定高速缓存的第二部分已满并且在高速缓存的第一部分中空间可用;减小高速缓存的第一部分的大小;增大高速缓存的第二部分的大小;以及将第五写入请求的数据负载保存在高速缓存的第二部分中。
在一些实施例中,所述方法还包括:接收第六写入请求,第六写入请求包括高速缓存提示和比第一阈值小的数据负载,高速缓存提示指示所述持久性存储装置采用进行高速缓存;确定高速缓存的第一部分已满并且高速缓存的第二部分已满;从高速缓存的第一部分逐出数据;减小高速缓存的第一部分的大小;增大高速缓存的第二部分的大小;以及将第六写入请求的数据负载保存在高速缓存的第二部分中。
在一些实施例中,所述方法还包括:接收第六写入请求,第六写入请求包括高速缓存提示和比第一阈值小的数据负载,高速缓存提示指示所述持久性存储装置采用进行高速缓存;确定高速缓存的第一部分具有零的大小并且高速缓存的第二部分已满;从高速缓存的第二部分逐出数据;以及将第六写入请求的数据负载保存在高速缓存的第二部分中。
在一些实施例中,第一写入请求是非易失性存储器快速(NVMe)写入请求,并且第二写入请求是计算快速链路(CXL)写入请求。
根据本公开的实施例,提供一种方法,所述方法包括:通过持久性存储装置接收根据第一协议的第一写入请求;将第一写入请求的数据负载保存在高速缓存的第一部分中;接收根据第二协议的第二写入请求;以及将第二写入请求的数据负载保存在高速缓存的第二部分中。
在一些实施例中,第一写入请求包括指示持久性存储装置采用进行高速缓存的高速缓存提示。
在一些实施例中:第一协议以第一粒度对数据的单元进行寻址;第二协议以不同于第一粒度的第二粒度对数据的单元进行寻址;并且所述方法还包括:接收第三写入请求,第三写入请求包括数据负载和高速缓存提示,高速缓存提示指示持久性存储装置放弃进行高速缓存;以及将第三写入请求的数据负载保存在持久性存储装置的持久性存储设备中。
在一些实施例中:持久性存储设备包括第一存储介质和第二存储介质,第一存储介质具有比第二存储介质高的读取延迟;第三写入请求的数据负载小于第一阈值;并且将第三写入请求的数据负载保存在持久性存储设备中的步骤包括:将第三写入请求的数据负载保存在第二存储介质中。
在一些实施例中:第一存储介质包括三级单元;并且第二存储介质包括单级单元。
在一些实施例中,所述方法还包括:接收第四写入请求,第四写入请求包括数据负载和高速缓存提示,高速缓存提示指示持久性存储装置放弃进行高速缓存;以及将第四写入请求的数据负载保存在持久性存储设备中,其中:第四写入请求的数据负载大于第一阈值;并且将第四写入请求的数据负载保存在持久性存储设备中的步骤包括:将第四写入请求的数据负载保存在第一存储介质中。
在一些实施例中,所述方法还包括:接收第五写入请求,第五写入请求包括高速缓存提示和比第一阈值大的数据负载,高速缓存提示指示持久性存储装置采用进行高速缓存;确定高速缓存的第一部分已满;从高速缓存的第一部分逐出数据;以及将第五写入请求的数据负载保存在高速缓存的第一部分中。
在一些实施例中,所述方法还包括:接收第五写入请求,第五写入请求包括高速缓存提示和比第一阈值小的数据负载,高速缓存提示指示持久性存储装置采用进行高速缓存;确定高速缓存的第二部分已满并且在高速缓存的第一部分中空间可用;减小高速缓存的第一部分的大小;增大高速缓存的第二部分的大小;以及将第五写入请求的数据负载保存在高速缓存的第二部分中。
根据本公开的实施例,提供一种持久性存储装置,所述持久性存储装置包括:用于处理的装置;高速缓存;以及持久性存储设备,用于处理的装置被配置为执行方法,所述方法包括:接收包括比第一阈值大的数据负载的第一写入请求;将第一写入请求的数据负载保存在高速缓存的第一部分中,第一部分用于具有比第一阈值大的大小的数据单元;接收包括比第一阈值小的数据负载的第二写入请求;以及将第二写入请求的数据负载保存在高速缓存的第二部分中,第二部分用于具有比第一阈值小的大小的数据单元。
附图说明
参照说明书、权利要求书和附图,将领会和理解本公开的这些以及其他特征和优点,其中:
图1A是根据本公开的实施例的计算***的一部分的框图;
图1B是根据本公开的实施例的位分配示图;
图1C是根据本公开的实施例的持久性存储装置的混合框图和流程图;
图2A是根据本公开的实施例的高速缓存数据布局图;
图2B是根据本公开的实施例的数据布局图;
图2C是根据本公开的实施例的数据布局图;
图2D是根据本公开的实施例的数据布局图;
图2E是图2A至图2D的图例;
图2F是根据本公开的实施例的地址的表;
图3A是根据本公开的实施例的用于读取数据的第一方法的流程图;
图3B是根据本公开的实施例的用于写入数据的第一方法的流程图;
图3C是根据本公开的实施例的用于读取数据的第二方法的流程图;
图3D是根据本公开的实施例的用于写入数据的第二方法的流程图;
图4是根据本公开的实施例的决策树;
图5A是示出根据本公开的实施例的由持久性存储装置执行的第一过程的混合框图和流程图;
图5B是示出根据本公开的实施例的由持久性存储装置执行的第二过程的混合框图和流程图;
图5C是示出根据本公开的实施例的由持久性存储装置执行的第三过程的混合框图和流程图;
图5D是示出根据本公开的实施例的由持久性存储装置执行的第四过程的混合框图和流程图;
图5E是示出根据本公开的实施例的由持久性存储装置执行的第五过程的混合框图和流程图;
图5F是示出根据本公开的实施例的由持久性存储装置执行的第六过程的混合框图和流程图;
图6是根据本公开的实施例的方法的流程图。
具体实施方式
下面结合附图阐述的详细描述意在作为根据本公开提供的用于具有双接口的持久性存储设备的***和方法的示例性实施例的描述,而不意在表示本公开可被构造或利用的唯一形式。描述结合示出的实施例阐述本公开的特征。然而,应理解,相同或等同的功能和结构可通过也意在被包含在公开的范围内的不同实施例来实现。如在此其他地方所示,相同的元件编号意在指示相同的元件或特征。
在一些实施例中,持久性存储装置将两个(或更多个)接口提供给主机计算机,主机接口具有不同的特性,并且持久性存储装置被配置为提供为相应接口定制的数据存储和取回功能,以提供提高的性能。例如,持久性存储装置可具有非易失性存储器快速(NVMe)接口和计算快速链路(CXL)接口,针对NVMe接口,数据负载大小可以是4千字节(kB)(或4kB的倍数),针对CXL接口,数据负载大小可以是高速缓存行(例如,64字节)。
持久性存储装置可不同地对待具有不同寻址粒度的两个不同协议。例如,持久性存储装置可不同地对待NVMe操作和CXL操作,以例如在CXL接口处提供可部分地由于较小的负载大小而较低的延迟。例如,持久性存储装置可包括被分区为两个区域(分配给CXL数据的区域和分配给NVMe数据的区域)的高速缓存。通过CXL接口访问的数据可具有使用高速缓存的优先级(例如,通过NVMe接口访问的数据可被逐出,以为通过CXL接口访问的数据腾出空间)。持久性存储装置还可具有拥有不同性能特性的两种持久性存储介质(例如,单级单元存储介质和三级单元存储介质),并且具有例如较低延迟的类型可被保留用于存储通过CXL接口访问的数据。
参照图1A,在一些实施例中,持久性存储装置105(例如,固态驱动器(SSD))连接到主机110。持久性存储装置105包括主机接口115、数据高速缓存120、闪存转换层(FTL)125、闪存接口130和持久性存储介质(或持久性存储设备)135(其可包括多个持久性存储芯片(例如,与非(NAND)芯片(诸如,多个单级单元(SLC)NAND闪存芯片和多个三级单元(TLC)NAND闪存芯片)))。数据高速缓存120可包括高速缓存管理器122和存储器(例如,动态随机存取存储器(DRAM)),存储器可被称为高速缓存140。
主机接口115可通过单个端口或通过多个端口支持多个协议(例如,非易失性存储器快速(NVMe)和计算快速链路(CXL))。这样,持久性存储装置105可以是具有执行高速缓存行可寻址输入-输出请求的能力的块装置。每个输入-输出(I/O)请求(其可以是读取请求或写入请求)可携带(可选的)高速缓存提示,高速缓存提示可采用从分别指示持久性存储装置采用进行高速缓存或放弃进行高速缓存的集合{可高速缓存,不可高速缓存}选择的值。具有n倍4kB的大小的NVMe请求(例如,读取或写入具有n倍4kB的大小的块的数据的请求,n是大于1的整数)可被划分为多个4kB子请求用于进一步处理。
当CXL输入-输出请求由持久性存储装置105接收时,高速缓存管理器122可从CXL输入-输出请求提取逻辑页地址(LPA)并处理高速缓存提示。持久性存储装置105可针对读取和写入两者采用CXL优先化高速缓存设计。高速缓存140可被分区为两个区域,用于CXL数据的第一区域和用于NVMe数据的第二区域。分区可(基于替换策略和逐出)被动态地调整,使得例如高速缓存140中的总存储器的分配给CXL数据的比例可被增大,并且高速缓存140中的总存储器的分配给NVMe数据的比例可被减小,或者使得高速缓存140中的总存储器的分配给CXL数据的比例可被减小,并且高速缓存140中的总存储器的分配给NVMe数据的比例可被增大。已经使用CXL读取请求或使用CXL写入请求访问的任何数据片段可被分类为“CXL数据”,并且尚未使用CXL读取请求或尚未使用CXL写入请求访问(以及已经仅使用一个或多个NVMe读取或写入请求访问)的任何数据片段可被分类为“NVMe数据”。高速缓存140的被分配给CXL数据的区域中的数据可被存储在高速缓存行(例如,64字节)大小的块中,这可导致CXL输入-输出请求的更高命中率(与在数据被存储在更大(例如,4千字节(kB))的块中的情况下相比)。
持久性存储介质135的单级单元部分(其可具有比持久性存储介质135的三级单元部分低的读取延迟)可专门用于存储CXL数据。单级单元闪存可更快(例如,单级单元闪存可具有比持久性存储介质135的三级单元部分低的读取延迟),单级单元闪存可使用比在持久性存储介质135的三级单元部分中使用的物理页(例如,16kB)小的物理页(例如,4kB),并且单级单元闪存可具有更好的耐久性,因此,单级单元闪存可很好地适合于用于CXL的密集小输入-输出请求。持久性存储介质135的三级单元部分可专门用于存储NVMe数据。在一个示例中,持久性存储介质135可通过通道连接到闪存接口130。
如图1B中所示出的,CXL.MEM(CXL存储器协议)请求可携带具有46位或47位的主机物理地址(HPA)。逻辑页地址(LPA)和高速缓存行偏移(CLO)可用于定位64字节高速缓存行,64字节高速缓存行可使用逐位操作从主机物理地址被提取。例如,如果持久性存储装置105中的最小可寻址数据单元是64字节,则字节偏移可在持久性存储装置105中不被使用。如在此使用的,主机物理地址是在CXL规范中定义的地址,该地址由主机使用以表示主机110的存储器中的物理地址。
一位高速缓存提示可被包括在从主机110接收的每个输入-输出请求中。高速缓存提示可对应于集合{可高速缓存,不可高速缓存}中的选项中的一个。当提示是可高速缓存并且发生高速缓存未命中时,持久性存储装置105可将数据放入高速缓存140中。当提示是不可高速缓存并且发生高速缓存未命中时,持久性存储装置105可不将数据放入高速缓存140中。默认行为可以是与“高速缓存提示是可高速缓存”对应的行为。主机可用针对不同协议的输入-输出请求来发送不同的高速缓存提示。
图1C示出一些实施例中的用于写入请求的高速缓存旁路机制。如所示,当高速缓存提示是可高速缓存时,伴随写入请求的数据可被写入高速缓存140;否则,伴随写入请求的数据可被写入持久性存储介质135。可高速缓存的数据还可在高速缓存逐出时被移动到持久性存储介质135。
图2A至图2E示出一些实施例中的高速缓存行访问优先化替换策略。图2A和图2B示出在CXL写入请求被接收并且在高速缓存140的分配给CXL数据的区域中空间没有剩余时可采用的替换策略。如图2A中所示出的,当高速缓存140的任何区域被分配给NVMe数据(即,该区域的大小是非零)时,现有的高速缓存的4kB块的NVMe数据(现有NVMe数据)可之后被逐出(或牺牲),因此被释放的4kB区域可成为高速缓存140的被分配给CXL数据的区域的一部分,并且作为CXL写入请求的一部分接收的CXL数据(到达CXL数据)可被写入该新可用的4kB区域。如图2B中所示出的,当高速缓存140的区域没有被分配给NVMe数据(即,高速缓存140的被分配给NVMe数据的区域的大小是零)时,现有的高速缓存的64字节(B)块的CXL数据(现有CXL数据)可之后被逐出,并且作为CXL写入请求的一部分接收的CXL数据可被写入该新空闲的64字节区域。
图2C和图2D示出在NVMe写入请求被接收并且在高速缓存140的分配给NVMe数据的区域中空间没有剩余时可采用的替换策略。如图2C中所示出的,当高速缓存140的任何区域被分配给NVMe数据(即,该区域的大小是非零)时,现有的高速缓存的4kB块的NVMe数据可之后被逐出,并且作为NVMe写入请求的一部分接收的NVMe数据(到达NVMe数据)可被写入该新空闲的4kB区域。如图2D中所示出的,当高速缓存140的区域没有被分配给NVMe数据(即,高速缓存140的被分配给NVMe数据的区域的大小是零)时,高速缓存140中的数据可被留在原位(例如,没有64B块的数据可被逐出),作为NVMe写入请求的一部分接收的NVMe数据可被直接写入持久性存储介质135(即,该数据的高速缓存可不被进行)。图2E是图2A至图2D的图例。
在一些实施例中,可采用考虑持久性存储介质135的架构的替换策略(如下面所讨论的),该持久性存储介质135可如上所述包括单级单元介质和三级单元介质。替换策略可指定以下内容。当(从高速缓存140的被分配给NVMe数据的区域)逐出4kB数据时,如果LPA仅已经由NVMe访问,则4kB块的数据可被存储在三级单元介质中。当(从高速缓存140的被分配给NVMe数据的区域)逐出4kB数据时,如果逻辑页地址还已经由CXL访问,则逐出的数据可被存储在单级单元介质中,并且作为CXL数据(即,经由CXL访问的)的64字节块可被存储在高速缓存140的被分配给CXL数据的区域中。
当(从高速缓存140的被分配给CXL数据的区域)逐出64字节块的数据时,逐出的数据可被写入单级单元介质。这可通过以下操作实现:(i)使用读取-修改-写入操作来(例如,从单级单元介质)读取包含64字节数据块的4kB页并将其保存在单级单元介质中,或者(ii)以日志结构化形式保存操作。在一些实施例中,缓冲器累积逐出的64B数据块,直到完整的4kB页被获得。后一方法(以日志结构化形式保存操作)(这可导致相对高的开销)可涉及直接写入单级单元介质中的开放块,并更新映射表(如图2F中所示出的)。随后,当任何4kB块被读取时,***可检查日志结构化数据,以基于以日志结构化形式记录的写入操作来确定任何64字节块是否需要被更新。在图2F中,PPA_old是旧的物理页地址,CLO_old是旧的高速缓存行偏移,PPA_new是新的物理页地址,CLO_new是新的高速缓存行偏移。
在一些实施例中,高速缓存行(即,64字节块的数据)从高速缓存140的被分配给CXL数据的区域被周期性地逐出,并且当这导致该区域中的4kB的空间空闲时,高速缓存140的被分配给CXL数据的区域与高速缓存140的被分配给NVMe数据的区域之间的分区可被移动,使得附加的4kB块在高速缓存140的被分配给NVMe数据的区域中变得可用。当CXL输入-输出请求不频繁时,这可允许高速缓存140用于NVMe数据。控制这样的逐出的参数可以是用户可配置的。例如,寿命可被设置(例如,由用户指定),并且当任何64字节块在超过寿命的时间间隔期间尚未被访问时,其可被逐出。
在一些实施例中,当垃圾收集在单级单元介质中被执行时,数据可从单级单元介质被迁移到三级单元介质。当数据以这种方式被迁移时,由于存储在三级单元介质中,因此数据可被认为是NVMe数据,并且已经经由CXL访问的它们的任何记录可被擦除。存储在持久性存储介质135中的所有数据可在任何时间经由CXL或NVMe被访问。
在一些实施例中,由于每个(64字节或4kB)块仅被保存在高速缓存140中的一个位置中(在高速缓存140的被分配给CXL数据的区域中或者在高速缓存140的被分配给NVMe数据的区域中),因此高速缓存一致性不是问题。
图3A和图3B是高速缓存提示是可高速缓存并且高速缓存140已满且具有NVMe的数据和CXL的数据两者的示例中的NVMe读取-修改-写入操作的流程图(图3A是读取操作的流程图并且图3B是写入操作的流程图)。在图3A中,在302处,持久性存储装置105确定将被读取的数据是否在高速缓存140的被分配给NVMe数据的区域中。如果将被读取的数据在高速缓存140的被分配给NVMe数据的区域中,则在304处,从高速缓存140的被分配给NVMe数据的区域读取数据,并且在306处,返回4kB页。如果将被读取的数据不在高速缓存140的被分配给NVMe数据的区域中,则在308处,从持久性存储介质135读取数据,并且在310处,持久性存储装置105(例如,通过搜索与高速缓存140的被分配给CXL数据的区域相关联的地址的列表)确定被读取的逻辑页地址是否在与高速缓存140的被分配给CXL数据的区域中的相应64字节块相关联的地址的集合中。如果被读取的逻辑页地址在与高速缓存140的被分配给CXL数据的区域中的相应64字节块相关联的地址的集合中,则在312处,将来自高速缓存140的被分配给CXL数据的区域的数据和来自高速缓存140的被分配给NVMe数据的区域的数据组合或合并(例如,在从高速缓存140的被分配给NVMe数据的区域读取的数据中的对应64字节块上重写存在于高速缓存140的被分配给CXL数据的区域中的任何64字节块),并且执行进行到步骤306。否则,在314处,将数据写入高速缓存140的被分配给NVMe数据的区域,并且执行进行到步骤306。这样,当从持久性存储设备读取数据时,仅在数据不与高速缓存140的被分配给CXL数据的区域中的任何数据重叠的情况下才对其进行高速缓存。在不同于上述情况的情况下(如图3A和图3B的上下文),方法可不同;例如,如果高速缓存充满CXL数据,则在314处,可跳过到NVMe高速缓存的写入。
在图3B中,为了执行写入操作,在315处,从高速缓存140的被分配给NVMe数据的区域逐出数据;在316处,将新数据写入高速缓存140的被分配给NVMe数据的区域;在318处,持久性存储装置105(例如,通过搜索与高速缓存140的被分配给CXL数据的区域相关联的地址的列表)确定被写入的逻辑页地址是否在与高速缓存140的被分配给CXL数据的区域中的64字节块相关联的地址的集合中。如果被写入的逻辑页地址在与高速缓存140的被分配给CXL数据的区域中的64字节块相关联的地址的集合中,则在320处,更新高速缓存140的被分配给CXL数据的区域(例如,受影响的CXL数据(例如,一个或多个64字节块的数据)无效,以避免在高速缓存140的被分配给CXL数据的区域和高速缓存140的被分配给NVMe数据的区域两者中存储数据的情况)。否则,跳过该步骤(步骤320)。之后,在322处,发送响应(例如,NVMe写入命令的命令完成)。在不同于上述情况的情况下(如图3A和图3B的上下文),方法可不同;例如,如果高速缓存未满,则在315处,可跳过逐出。如果高速缓存充满CXL数据,则可仅将NVMe数据写入持久性存储介质135(并且不被高速缓存)。
图3C和图3D是高速缓存提示是可高速缓存并且高速缓存140已满且具有NVMe的数据和CXL的数据两者的示例中的CXL读取-修改-写入操作的流程图(图3C是读取操作的流程图并且图3D是写入操作的流程图)。在图3C中,在324处,持久性存储装置105(例如,通过搜索与高速缓存140的被分配给CXL数据的区域相关联的地址的列表)确定将被读取的数据是否在高速缓存140的被分配给CXL数据的区域中。如果将被读取的数据在高速缓存140的被分配给CXL数据的区域中,则在326处,从高速缓存140的被分配给CXL数据的区域读取数据。如果将被读取的数据不在高速缓存140的被分配给CXL数据的区域中,则在328处,持久性存储装置105(例如,通过搜索与高速缓存140的被分配给NVMe数据的区域相关联的地址的列表)确定数据是否在高速缓存140的被分配给NVMe数据的区域中;如果数据在高速缓存140的被分配给NVMe数据的区域中,则在330处,从高速缓存140的被分配给NVMe数据的区域读取数据,并且如果数据不在高速缓存140的被分配给NVMe数据的区域中,则在332处,从持久性存储介质135加载数据,并将其存储在高速缓存140的被分配给CXL数据的区域中。在334处,返回数据(例如,64字节块的数据)。
在图3D中,在336处,持久性存储装置105(例如,通过搜索与高速缓存140的被分配给CXL数据的区域相关联的地址的列表)确定将被写入的数据(例如,数据的地址)是否在高速缓存140的被分配给CXL数据的区域中。如果将被写入的数据在高速缓存140的被分配给CXL数据的区域中,则在338处,将数据写入(或更新到)高速缓存140的被分配给CXL数据的区域。如果将被写入的数据不在高速缓存140的被分配给CXL数据的区域中,则在340处,持久性存储装置105(例如,通过搜索与被分配给NVMe数据的高速缓存140的区域相关联的地址列表)确定将被写入的数据(例如,数据的地址)是否在高速缓存140的被分配给NVMe数据的区域中。如果将被写入的数据在高速缓存140的被分配给NVMe数据的区域中,则在342处,在高速缓存140的被分配给NVMe数据的区域中更新数据;如果将被写入的数据不在高速缓存140的被分配给NVMe数据的区域中,则在344处,从高速缓存140的被分配给CXL数据的区域逐出64字节块的数据,并且执行继续到步骤338。之后,在346处,发送响应(例如,CXL写入命令的命令完成)。
图4示出用于根据请求是读取请求还是写入请求、发生高速缓存命中还是未命中、以及高速缓存提示是可高速缓存还是不可高速缓存,来选择用于执行CXL读取或写入请求(作为读取-修改-写入指令的一部分)的过程的决策树。在图4中,“N/A”表示过程的选择不受高速缓存提示影响。标记为“过程”的列标识将被遵循的过程,A参照图5A,B参照图5B,C参照图5C,D参照图5D,E参照图5E,并且F参照图5F。
图5A是高速缓存命中的情况下的CXL读取请求的示例。在511处,持久性存储装置105接收主机物理地址(HPA)和高速缓存提示,并且确定已发生高速缓存命中。持久性存储装置105通过对LPA和CLO进行级联来计算地址,在512处将地址发送到高速缓存140的被分配给CXL数据的区域,在513处接收数据(例如,一个高速缓存行(64字节)),并且在514处将结果(高速缓存行)发送到主机。图5B是被设置为可高速缓存的高速缓存提示和高速缓存未命中的情况下的CXL读取请求的示例。在521处,持久性存储装置105接收主机物理地址(HPA)和高速缓存提示;在522处,持久性存储装置105确定已经发生高速缓存未命中,在523处,持久性存储装置105将读取请求发送到闪存转换层125,在524处,持久性存储装置105确定数据在三级单元介质中并将数据移动到单级单元介质。在525处将数据高速缓存在高速缓存140的被分配给CXL数据的区域中,并且在526处将数据返回到主机。图5C是被设置为不可高速缓存的高速缓存提示和高速缓存未命中的情况下的CXL读取请求的示例。在531处,持久性存储装置105接收主机物理地址(HPA)和高速缓存提示;在532处,持久性存储装置105确定已经发生高速缓存未命中,在533处,持久性存储装置105将读取请求发送到闪存转换层125。在534处,从三级单元介质读取结果(可读取4kB块的数据,并且可丢弃该块中的除了由主机请求的64字节块的数据之外的数据),并且在535处将结果返回到主机。
图5D是高速缓存命中的情况下的CXL写入请求的示例。在541处,持久性存储装置105接收主机物理地址(HPA)、高速缓存提示和高速缓存行(例如,将被写入的64字节块的数据),并且确定已经发生高速缓存命中。在542处,持久性存储装置105将地址发送到高速缓存140的被分配给CXL数据的区域,确定已经发生高速缓存命中,在543处写入数据,并且在544处将响应发送到主机。图5E是被设置为可高速缓存的高速缓存提示和高速缓存未命中的情况下的CXL写入请求的示例。在551处,持久性存储装置105接收主机物理地址(HPA)、高速缓存提示和高速缓存行(例如,将被写入的64字节块的数据);在552处,持久性存储装置105确定已经发生高速缓存未命中;在553处,持久性存储装置105将写入请求发送到闪存转换层125;在554处,持久性存储装置105确定数据在三级单元介质中,并将更新的数据保存在单级单元介质(使三级单元中的旧数据无效,并对高速缓存行和从三级单元介质读取的页进行组合)。在555处将数据高速缓存在高速缓存140的被分配给CXL数据的区域中,并且在556处将响应发送到主机。图5F是被设置为不可高速缓存的高速缓存提示和高速缓存未命中的情况下的CXL写入请求的示例。在561处,持久性存储装置105接收主机物理地址(HPA)、高速缓存提示和高速缓存行(例如,将被写入的64字节块的数据);在562处,持久性存储装置105确定已经发生高速缓存未命中,在563处,持久性存储装置105将写入请求发送到闪存转换层125;在564处,持久性存储装置105确定数据在三级单元介质中,并将更新的数据保存在单级单元介质(使三级单元中的旧数据无效)。在565处,将响应发送到高速缓存管理器122;并且在566处,将响应转发到主机。
图5A至图5D的过程不受日志结构化模式是否被采用的影响。在图5E和图5F中,如果日志结构化模式被采用,则第四步骤(例如,514)不被执行,并且64字节块的数据直接被写入单级单元介质。在图5A至图5F中的每个中,用于相似操作的NVMe数据路径可以是类似的。
在一些实施例中,替代处理恰好不同的两个数据负载大小(例如,4kB和64字节),持久性存储装置105可与具有比第一阈值小的负载大小的请求不同地处理具有比第一阈值大的负载大小的请求。
图6是一些实施例中的方法的流程图。该方法包括以下步骤:在605处,接收包括比第一阈值大的数据负载的第一写入请求(例如,NVMe写入请求);在610处,将第一写入请求的数据负载保存在高速缓存的第一部分中,第一部分用于具有比第一阈值大的大小的数据单元;在615处,接收包括比第一阈值小的数据负载的第二写入请求(例如,CXL写入请求);以及在620处,将第二写入请求的数据负载保存在高速缓存的第二部分中,第二部分用于具有比第一阈值小的大小的数据单元。
如在此使用的,某物的“一部分”表示该物的“至少一些”,这样可表示少于该物的全部或者可表示该物的全部。这样,作为特殊情况,物的“一部分”包括整个物(即,整个物是物的一部分的示例)。如在此使用的,术语“或”应被解释为“和/或”,使得例如“A或B”表示“A”或“B”和“A和B”中的任何一个。
在本公开部分的背景技术部分中提供的背景技术仅被包括以阐述上下文,并且该部分的内容不被承认是现有技术。(例如,在此包括的任何***图中)描述的任何组件或组件的任何组合可用于执行在此包括的任何流程图的操作中一个或多个。此外,(i)操作是示例操作,并可涉及未明确覆盖的各种附加步骤,并且(ii)操作的时间次序可被改变。
术语“处理电路”和“用于处理的装置”中的每个在此用于表示用于处理数据或数字信号的硬件、固件和软件的任何组合。处理电路硬件可包括例如专用集成电路(ASIC)、通用或专用中央处理器(CPU)、数字信号处理器(DSP)、图形处理器(GPU)和可编程逻辑器件(诸如,现场可编程门阵列(FPGA))。在处理电路中,如在此使用的,每个功能由被配置(即,硬连线)为执行该功能的硬件执行,或者由被配置为执行存储在非暂时性存储介质中的指令的更通用的硬件(诸如,CPU)执行。处理电路可在单个印刷电路板(PCB)上被制造或者分布在若干互连的PCB上。处理电路可包含其他处理电路;例如,处理电路可包括在PCB上互连的两个处理电路(FPGA和CPU)。
如在此使用的,当方法(例如,调整)或第一量(例如,第一变量)被称为“基于”第二量(例如,第二变量)时,这表示第二量是该方法的输入或影响第一量(例如,第二量可以是计算第一量的函数的输入(例如,唯一输入或若干输入之一),或者第一量可等于第二量,或者第一量可与第二量相同(例如,与第二量被存储在存储器中的相同的一个或多个位置处)。
将理解,尽管术语“第一”、“第二”、“第三”等在此可用于描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应受这些术语限制。这些术语仅用于将一个元件、组件、区域、层或部分与另一元件、组件、区域、层或部分区分开。因此,在不脱离发明构思的精神和范围的情况下,在此讨论的第一元件、第一组件、第一区域、第一层或第一部分可被称为第二元件、第二组件、第二区域、第二层或第二部分。
在此使用的术语仅出于描述特定实施例的目的,而不意在限制发明构思。如在此使用的,术语“基本上”、“约”以及类似术语用作近似的术语而不是程度的术语,并且意在考虑本领域普通技术人员将认识到的测量值或计算值的固有偏差。
如在此使用的,除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。还将理解,术语“包括”和/或“包含”在本说明书中使用时表明存在陈述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组。如在此使用的,术语“和/或”包括相关所列项中的一个或多个的任何和所有组合。诸如“……中的至少一个”的表述在一列元素之后时修饰整列元素,而不修饰列中的单个元素。此外,在描述发明构思的实施例时的“可”的使用表示“本公开的一个或多个实施例”。此外,术语“示例性”意在表示示例或说明。如在此使用的,术语“使用”及其变型可被认为与术语“利用”及其变型同义。
将理解,当元件或层被称为“在”另一元件或层“上”、“连接到”、“结合到”或“邻近于”另一元件或层时,它可直接在另一元件或层上、直接连接到、直接结合到或紧邻于另一元件或层,或者可存在一个或多个中间元件或层。相反,当元件或层被称为“直接在”另一元件或层“上”、“直接连接到”、“直接结合到”或“紧邻于”另一元件或层时,不存在中间元件或层。
在此所列的任何数值范围意在包括归入所列的范围内的相同数值精度的全部子范围。例如,“1.0至10.0”或“1.0与10.0之间”的范围意在包括所列的最小值1.0与所列的最大值10.0之间(并且包括所列的最小值1.0和所列的最大值10.0)(即,具有等于或大于1.0的最小值以及等于或小于10.0的最大值(诸如,以2.4至7.6为例))的全部子范围。类似地,描述为“35%之内”的范围意在包括所列的最小值6.5(即,(1-35/100)乘以10)与所列的最大值13.5(即,(1+35/100)乘以10)之间(并且包括所列的最小值6.5和所列的最大值13.5)(即,具有等于或大于6.5的最小值以及等于或小于13.5的最大值(诸如,以7.4至10.6为例))的全部子范围。在此所列的任何最大数值限制意在包括归入其中的全部较低数值限制,并且本说明书中所列的任何最小数值限制意在包括归入其中的全部较高数值限制。
一些实施例可包括以下编号陈述的特征。
1、一种持久性存储装置,包括:
处理电路;
高速缓存;以及
持久性存储设备,
处理电路被配置为执行方法,所述方法包括:
接收根据第一协议的第一写入请求;
将第一写入请求的数据负载保存在高速缓存的第一部分中;
接收根据第二协议的第二写入请求;以及
将第二写入请求的数据负载保存在高速缓存的第二部分中。
2、根据陈述1所述的持久性存储装置,其中,第一写入请求包括指示所述持久性存储装置采用进行高速缓存的高速缓存提示。
3、根据陈述1或陈述2所述的持久性存储装置,其中:
第一协议以第一粒度对数据的单元进行寻址;
第二协议以不同于第一粒度的第二粒度对数据的单元进行寻址;并且
所述方法还包括:
接收第三写入请求,第三写入请求包括数据负载和高速缓存提示,高速缓存提示指示所述持久性存储装置放弃进行高速缓存;以及
将第三写入请求的数据负载保存在持久性存储设备中。
4、根据陈述3所述的持久性存储装置,其中:
持久性存储设备包括第一存储介质和第二存储介质,第一存储介质具有比第二存储介质高的读取延迟;
第三写入请求的数据负载小于第一阈值;并且
将第三写入请求的数据负载保存在持久性存储设备中的步骤包括:将第三写入请求的数据负载保存在第二存储介质中。
5、根据陈述4所述的持久性存储装置,其中:
第一存储介质包括三级单元;并且
第二存储介质包括单级单元。
6、根据陈述4所述的持久性存储装置,其中,所述方法还包括:
接收第四写入请求,第四写入请求包括数据负载和高速缓存提示,高速缓存提示指示搜索持久性存储装置放弃进行高速缓存;以及
将第四写入请求的数据负载保存在持久性存储设备中,
其中:
第四写入请求的数据负载大于第一阈值;并且
将第四写入请求的数据负载保存在持久性存储设备中的步骤包括:将第四写入请求的数据负载保存在第一存储介质中。
7、根据陈述6所述的持久性存储装置,其中,所述方法还包括:
接收第五写入请求,第五写入请求包括高速缓存提示和比第一阈值大的数据负载,高速缓存提示指示所述持久性存储装置采用进行高速缓存;
确定高速缓存的第一部分已满;
从高速缓存的第一部分逐出数据;以及
将第五写入请求的数据负载保存在高速缓存的第一部分中。
8、根据陈述6所述的持久性存储装置,其中,所述方法还包括:
接收第五写入请求,第五写入请求包括高速缓存提示和比第一阈值小的数据负载,高速缓存提示指示所述持久性存储装置采用进行高速缓存;
确定高速缓存的第二部分已满并且在高速缓存的第一部分中空间可用;
减小高速缓存的第一部分的大小;
增大高速缓存的第二部分的大小;以及
将第五写入请求的数据负载保存在高速缓存的第二部分中。
9、根据陈述8所述的持久性存储装置,其中,所述方法还包括:
接收第六写入请求,第六写入请求包括高速缓存提示和比第一阈值小的数据负载,高速缓存提示指示所述持久性存储装置采用进行高速缓存;
确定高速缓存的第一部分已满并且高速缓存的第二部分已满;
从高速缓存的第一部分逐出数据;
减小高速缓存的第一部分的大小;
增大高速缓存的第二部分的大小;以及
将第六写入请求的数据负载保存在高速缓存的第二部分中。
10、根据陈述8所述的持久性存储装置,其中,所述方法还包括:
接收第六写入请求,第六写入请求包括高速缓存提示和比第一阈值小的数据负载,高速缓存提示指示所述持久性存储装置采用进行高速缓存;
确定高速缓存的第一部分具有零的大小并且高速缓存的第二部分已满;
从高速缓存的第二部分逐出数据;以及
将第六写入请求的数据负载保存在高速缓存的第二部分中。
11、根据前述陈述中的任何一项所述的持久性存储装置,其中,第一写入请求是非易失性存储器快速(NVMe)写入请求,并且第二写入请求是计算快速链路(CXL)写入请求。
12、一种方法,包括:
通过持久性存储装置接收根据第一协议的第一写入请求;
将第一写入请求的数据负载保存在高速缓存的第一部分中;
接收根据第二协议的第二写入请求;以及
将第二写入请求的数据负载保存在高速缓存的第二部分中。
13、根据陈述12所述的方法,其中,第一写入请求包括指示持久性存储装置采用进行高速缓存的高速缓存提示。
14、根据陈述12所述的方法,其中:
第一协议以第一粒度对数据的单元进行寻址;
第二协议以不同于第一粒度的第二粒度对数据的单元进行寻址;并且
所述方法还包括:
接收第三写入请求,第三写入请求包括数据负载和高速缓存提示,高速缓存提示指示持久性存储装置放弃进行高速缓存;以及
将第三写入请求的数据负载保存在持久性存储装置的持久性存储设备中。
15、根据陈述14所述的方法,其中:
持久性存储设备包括第一存储介质和第二存储介质,第一存储介质具有比第二存储介质高的读取延迟;
第三写入请求的数据负载小于第一阈值;并且
将第三写入请求的数据负载保存在持久性存储设备中的步骤包括:将第三写入请求的数据负载保存在第二存储介质中。
16、根据陈述15所述的方法,其中:
第一存储介质包括三级单元;并且
第二存储介质包括单级单元。
17、根据陈述15或陈述16所述的方法,还包括:
接收第四写入请求,第四写入请求包括数据负载和高速缓存提示,高速缓存提示指示持久性存储装置放弃进行高速缓存;以及
将第四写入请求的数据负载保存在持久性存储设备中,其中,
第四写入请求的数据负载大于第一阈值;并且
将第四写入请求的数据负载保存在持久性存储设备中的步骤包括:将第四写入请求的数据负载保存在第一存储介质中。
18、根据陈述17所述的方法,还包括:
接收第五写入请求,第五写入请求包括高速缓存提示和比第一阈值大的数据负载,高速缓存提示指示持久性存储装置采用进行高速缓存;
确定高速缓存的第一部分已满;
从高速缓存的第一部分逐出数据;以及
将第五写入请求的数据负载保存在高速缓存的第一部分中。
19、根据陈述17所述的方法,还包括:
接收第五写入请求,第五写入请求包括高速缓存提示和比第一阈值小的数据负载,高速缓存提示指示持久性存储装置采用进行高速缓存;
确定高速缓存的第二部分已满并且在高速缓存的第一部分中空间可用;
减小高速缓存的第一部分的大小;
增大高速缓存的第二部分的大小;以及
将第五写入请求的数据负载保存在高速缓存的第二部分中。
20、一种持久性存储装置,包括:
用于处理的装置;
高速缓存;以及
持久性存储设备,
用于处理的装置被配置为执行方法,所述方法包括:
接收包括比第一阈值大的数据负载的第一写入请求;
将第一写入请求的数据负载保存在高速缓存的第一部分中,第一部分用于具有比第一阈值大的大小的数据单元;
接收包括比第一阈值小的数据负载的第二写入请求;以及
将第二写入请求的数据负载保存在高速缓存的第二部分中,第二部分用于具有比第一阈值小的大小的数据单元。
尽管在此已经具体描述和示出了用于持久性存储装置的***和方法的示例性实施例,但是许多修改和变化对于本领域技术人员来说将是清楚的。因此,应理解,根据本公开的原理构造的用于持久性存储装置的***和方法可以以不同于在此具体描述的方式体现。发明还在所附权利要求及其等同物中被限定。
Claims (20)
1.一种持久性存储装置,包括:
处理电路;
高速缓存;以及
持久性存储设备,
处理电路被配置为执行方法,所述方法包括:
接收根据第一协议的第一写入请求;
将第一写入请求的数据负载保存在高速缓存的第一部分中;
接收根据第二协议的第二写入请求;以及
将第二写入请求的数据负载保存在高速缓存的第二部分中。
2.根据权利要求1所述的持久性存储装置,其中,第一写入请求包括指示所述持久性存储装置采用进行高速缓存的高速缓存提示。
3.根据权利要求1或2所述的持久性存储装置,其中:
第一协议以第一粒度对数据的单元进行寻址;
第二协议以不同于第一粒度的第二粒度对数据的单元进行寻址;并且
所述方法还包括:
接收第三写入请求,第三写入请求包括数据负载和高速缓存提示,高速缓存提示指示所述持久性存储装置放弃进行高速缓存;以及
将第三写入请求的数据负载保存在持久性存储设备中。
4.根据权利要求3所述的持久性存储装置,其中:
持久性存储设备包括第一存储介质和第二存储介质,第一存储介质具有比第二存储介质高的读取延迟;
第三写入请求的数据负载小于第一阈值;并且
将第三写入请求的数据负载保存在持久性存储设备中的步骤包括:将第三写入请求的数据负载保存在第二存储介质中。
5.根据权利要求4所述的持久性存储装置,其中:
第一存储介质包括三级单元;并且
第二存储介质包括单级单元。
6.根据权利要求4所述的持久性存储装置,其中,所述方法还包括:
接收第四写入请求,第四写入请求包括数据负载和高速缓存提示,高速缓存提示指示所述持久性存储装置放弃进行高速缓存;以及
将第四写入请求的数据负载保存在持久性存储设备中,
其中:
第四写入请求的数据负载大于第一阈值;并且
将第四写入请求的数据负载保存在持久性存储设备中的步骤包括:将第四写入请求的数据负载保存在第一存储介质中。
7.根据权利要求6所述的持久性存储装置,其中,所述方法还包括:
接收第五写入请求,第五写入请求包括高速缓存提示和比第一阈值大的数据负载,高速缓存提示指示所述持久性存储装置采用进行高速缓存;
确定高速缓存的第一部分已满;
从高速缓存的第一部分逐出数据;以及
将第五写入请求的数据负载保存在高速缓存的第一部分中。
8.根据权利要求6所述的持久性存储装置,其中,所述方法还包括:
接收第五写入请求,第五写入请求包括高速缓存提示和比第一阈值小的数据负载,高速缓存提示指示所述持久性存储装置采用进行高速缓存;
确定高速缓存的第二部分已满并且在高速缓存的第一部分中空间可用;
减小高速缓存的第一部分的大小;
增大高速缓存的第二部分的大小;以及
将第五写入请求的数据负载保存在高速缓存的第二部分中。
9.根据权利要求8所述的持久性存储装置,其中,所述方法还包括:
接收第六写入请求,第六写入请求包括高速缓存提示和比第一阈值小的数据负载,高速缓存提示指示所述持久性存储装置采用进行高速缓存;
确定高速缓存的第一部分已满并且高速缓存的第二部分已满;
从高速缓存的第一部分逐出数据;
减小高速缓存的第一部分的大小;
增大高速缓存的第二部分的大小;以及
将第六写入请求的数据负载保存在高速缓存的第二部分中。
10.根据权利要求8所述的持久性存储装置,其中,所述方法还包括:
接收第六写入请求,第六写入请求包括高速缓存提示和比第一阈值小的数据负载,高速缓存提示指示所述持久性存储装置采用进行高速缓存;
确定高速缓存的第一部分具有零的大小并且高速缓存的第二部分已满;
从高速缓存的第二部分逐出数据;以及
将第六写入请求的数据负载保存在高速缓存的第二部分中。
11.根据权利要求1所述的持久性存储装置,其中,第一写入请求是非易失性存储器快速写入请求,并且第二写入请求是计算快速链路写入请求。
12.一种持久性存储装置的操作方法,包括:
通过持久性存储装置接收根据第一协议的第一写入请求;
将第一写入请求的数据负载保存在高速缓存的第一部分中;
接收根据第二协议的第二写入请求;以及
将第二写入请求的数据负载保存在高速缓存的第二部分中。
13.根据权利要求12所述的操作方法,其中,第一写入请求包括指示持久性存储装置采用进行高速缓存的高速缓存提示。
14.根据权利要求12或13所述的操作方法,其中:
第一协议以第一粒度对数据的单元进行寻址;
第二协议以不同于第一粒度的第二粒度对数据的单元进行寻址;并且
所述操作方法还包括:
接收第三写入请求,第三写入请求包括数据负载和高速缓存提示,高速缓存提示指示持久性存储装置放弃进行高速缓存;以及
将第三写入请求的数据负载保存在持久性存储装置的持久性存储设备中。
15.根据权利要求14所述的操作方法,其中:
持久性存储设备包括第一存储介质和第二存储介质,第一存储介质具有比第二存储介质高的读取延迟;
第三写入请求的数据负载小于第一阈值;并且
将第三写入请求的数据负载保存在持久性存储设备中的步骤包括:将第三写入请求的数据负载保存在第二存储介质中。
16.根据权利要求15所述的操作方法,其中:
第一存储介质包括三级单元;并且
第二存储介质包括单级单元。
17.根据权利要求15所述的操作方法,还包括:
接收第四写入请求,第四写入请求包括数据负载和高速缓存提示,高速缓存提示指示持久性存储装置放弃进行高速缓存;以及
将第四写入请求的数据负载保存在持久性存储设备中,
其中:
第四写入请求的数据负载大于第一阈值;并且
将第四写入请求的数据负载保存在持久性存储设备中的步骤包括:将第四写入请求的数据负载保存在第一存储介质中。
18.根据权利要求17所述的操作方法,还包括:
接收第五写入请求,第五写入请求包括高速缓存提示和比第一阈值大的数据负载,高速缓存提示指示持久性存储装置采用进行高速缓存;
确定高速缓存的第一部分已满;
从高速缓存的第一部分逐出数据;以及
将第五写入请求的数据负载保存在高速缓存的第一部分中。
19.根据权利要求17所述的操作方法,还包括:
接收第五写入请求,第五写入请求包括高速缓存提示和比第一阈值小的数据负载,高速缓存提示指示持久性存储装置采用进行高速缓存;
确定高速缓存的第二部分已满并且在高速缓存的第一部分中空间可用;
减小高速缓存的第一部分的大小;
增大高速缓存的第二部分的大小;以及
将第五写入请求的数据负载保存在高速缓存的第二部分中。
20.一种持久性存储装置,包括:
用于处理的装置;
高速缓存;以及
持久性存储设备,
用于处理的装置被配置为执行方法,所述方法包括:
接收包括比第一阈值大的数据负载的第一写入请求;
将第一写入请求的数据负载保存在高速缓存的第一部分中,第一部分用于具有比第一阈值大的大小的数据单元;
接收包括比第一阈值小的数据负载的第二写入请求;以及
将第二写入请求的数据负载保存在高速缓存的第二部分中,第二部分用于具有比第一阈值小的大小的数据单元。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/417,940 | 2022-10-20 | ||
US18/163,208 | 2023-02-01 | ||
US18/163,208 US20240134796A1 (en) | 2022-10-20 | 2023-02-01 | Persistent storage with dual interface |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117917650A true CN117917650A (zh) | 2024-04-23 |
Family
ID=90729952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311283654.5A Pending CN117917650A (zh) | 2022-10-20 | 2023-09-28 | 持久性存储装置及其操作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117917650A (zh) |
-
2023
- 2023-09-28 CN CN202311283654.5A patent/CN117917650A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8495301B1 (en) | System and method for scatter gather cache processing | |
US9489239B2 (en) | Systems and methods to manage tiered cache data storage | |
US20170235681A1 (en) | Memory system and control method of the same | |
JP6613375B2 (ja) | プロファイリングキャッシュ置換 | |
KR101469512B1 (ko) | 외부 컴퓨팅 디바이스의 성능 향상을 위한 어댑티브 메모리 시스템 | |
US20160026406A1 (en) | Methods, systems, and computer readable media for providing flexible host memory buffer | |
CN105917319B (zh) | 存储器单元和方法 | |
US9639481B2 (en) | Systems and methods to manage cache data storage in working memory of computing system | |
US20150234745A1 (en) | Data cache prefetch controller | |
US20110173393A1 (en) | Cache memory, memory system, and control method therefor | |
US20120297140A1 (en) | Expandable data cache | |
US20070079070A1 (en) | Cache controller | |
US10635581B2 (en) | Hybrid drive garbage collection | |
US20110320720A1 (en) | Cache Line Replacement In A Symmetric Multiprocessing Computer | |
US7809889B2 (en) | High performance multilevel cache hierarchy | |
US20180088853A1 (en) | Multi-Level System Memory Having Near Memory Space Capable Of Behaving As Near Memory Cache or Fast Addressable System Memory Depending On System State | |
JP2003131946A (ja) | キャッシュメモリ制御装置及び方法 | |
US20180095884A1 (en) | Mass storage cache in non volatile level of multi-level system memory | |
US20170083444A1 (en) | Configuring fast memory as cache for slow memory | |
EP2926257A1 (en) | Memory management using dynamically allocated dirty mask space | |
US10157148B2 (en) | Semiconductor device configured to control a wear leveling operation and operating method thereof | |
CN113614702A (zh) | 基于检测到的读取命令活跃流的自适应预读高速缓存管理器 | |
US20230120184A1 (en) | Systems, methods, and devices for ordered access of data in block modified memory | |
US9996478B1 (en) | No allocate cache policy | |
TW201202929A (en) | Apparatus and methods to reduce duplicate line fills in a victim cache |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |