目标存储系统和使用附加操作于目标存储系统中的方法与流程

文档序号:25811306发布日期:2021-07-09 13:32阅读:70来源:国知局
目标存储系统和使用附加操作于目标存储系统中的方法与流程
目标存储系统和使用附加操作于目标存储系统中的方法
1.相关申请的交叉引用
2.本申请要求2020年1月8日申请的美国临时申请第62/958,699号的优先权,所述美国临时申请的公开内容以全文引用的方式并入本文中。
技术领域
3.本文中所公开的主题涉及目标存储系统。更具体地说,本文中所公开的主题涉及一种有效支持目标存储系统中的附加操作的系统和方法。


背景技术:

4.附加操作是用于目标存储装置的常见操作。典型目标存储装置提供近似附加操作的一些迂回或变通技术,但这类目标存储装置一般不具有支持附加操作的本机和有效的方式。用于附加操作的一种技术是读取-修改-写入操作,其可能是一种昂贵且耗时的存储介质存取技术。
5.图1形象地描绘基本上为读取-修改-写入操作的附加操作100。在步骤101处,从存储器读取原始目标。在步骤102处,将新数据附加到原始目标。在步骤103处,将已更新目标写回到存储器。
6.另外,小的写入大小(即小于存储介质的本机块大小的写入大小)一般并不通过目标存储装置的存储介质有效操控。因此,可针对大量小型写入所执行的大量小型附加操作可实际上增加延迟,且可能以快的速率耗损存储装置的介质。


技术实现要素:

7.实例实施例提供一种目标存储系统,其可包含存储介质、永久性存储器以及控制器。存储介质可包含数据对准特性。永久性存储器可包含以随机存取字节可寻址方式可存取的非易失性存储器。控制器可联接到存储介质和永久性存储器,且控制器可被配置以:针对附加操作从应用程序接收数据;将数据的第一部分的大小确定为被存储介质的数据对准特性的大小的第一整数倍数整除的所述数据的大小,其中第一整数倍数可大于0;将数据的第二部分的大小确定为所述数据的大小除以存储介质的数据对准特性的大小的第一整数倍数后的余数;在存储介质中基于大于0的第一整数倍数来存储数据的第一部分;在永久性存储器中基于大于0的数据的第二部分的大小来暂存数据的第二部分,其中数据的第二部分可与使用先前接收到的附加操作所接收到的数据的其它第二部分一起暂存在永久性存储器中;以及在存储介质中存储共同具有为存储介质的数据对准特性的大小的第二整数倍数的大小的数据的所暂存的第二部分,所述第二整数倍数大于0。在一个实施例中,控制器可被进一步配置以:使用映射表来指示基于大于0的第一整数倍数将数据的第一部分存储在存储介质中;以及使用映射表来指示基于大于0的数据的第二部分的大小将数据的第二部分存储在永久性存储器中。
8.实例实施例提供一种目标存储系统,其可包含存储介质、永久性存储器以及控制
器。存储介质可包含数据对准特性。永久性存储器可包含以随机存取字节可寻址方式可存取的非易失性存储器。控制器可联接到存储介质和永久性存储器,且控制器可被配置以:针对第一附加操作从应用程序接收第一数据;将第一数据的第一部分的大小确定为被存储介质的数据对准特性的大小的第一整数倍数整除的第一数据的大小,其中第一整数倍数大于0;将第一数据的第二部分的大小确定为第一数据的大小除以存储介质的数据对准特性的大小的第一整数倍数后的余数;在存储介质中基于大于0的第一整数倍数来存储第一数据的第一部分;在永久性存储器中基于大于0的第一数据的第二部分的大小来暂存第一数据的第二部分;针对在第一附加操作之后的第二附加操作从应用程序接收第二数据;将第二数据的第一部分的大小确定为被存储介质的数据对准特性的大小的第二整数倍数整除的第二数据的大小,第二整数倍数大于0;将第二数据的第二部分的大小确定为被存储介质的数据对准特性的大小的第二整数倍数整除的第二数据的大小;在存储介质中基于大于0的第二整数倍数来存储第二数据的第一部分;在永久性存储器中基于大于0的第二数据的第二部分的大小来暂存第二数据的第二部分;以及在存储介质中存储暂存在永久性存储器中的共同具有为存储介质的数据对准特性的大小的第三整数倍数的大小的第一数据的第二部分和第二数据的第二部分,第三整数倍数大于0。
9.实例实施例提供一种用以使用附加操作将来自应用程序的数据存储在目标存储系统中的方法,其中方法可包含:针对第一附加操作从应用程序接收第一数据;将第一数据的第一部分的大小确定为被存储介质的数据对准特性的大小的第一整数倍数整除的第一数据的大小,其中第一整数倍数可大于0;将第一数据的第二部分的大小确定为第一数据的大小除以存储介质的数据对准特性的大小的第一整数倍数后的余数;在存储介质中基于大于0的第一整数倍数来存储第一数据的第一部分;在永久性存储器中基于大于0的第一数据的第二部分的大小来暂存第一数据的第二部分,其中永久性存储器可包含以随机存取字节可寻址方式可存取的非易失性存储器;针对在第一附加操作之后的第二附加操作从应用程序接收第二数据;将第二数据的第一部分的大小确定为被存储介质的数据对准特性的大小的第二整数倍数整除的第二数据的大小,其中第二整数倍数可大于0;将第二数据的第二部分的大小确定为被存储介质的数据对准特性的大小的第二整数倍数整除的第二数据的大小;在存储介质中基于大于0的第二整数倍数来存储第二数据的第一部分;在永久性存储器中基于大于0的第二数据的第二部分的大小来暂存第二数据的第二部分;以及在存储介质中存储暂存在永久性存储器中的共同具有为存储介质的数据对准特性的大小的第三整数倍数的大小的第一数据的第二部分和第二数据的第二部分,第三整数倍数大于0。
附图说明
10.在以下章节中,将参考图中所示出的示范性实施例来描述本文中所公开的主题的方面,其中:
11.图1形象地描绘基本上为读取-修改-写入操作的附加操作。
12.图2描绘根据本文中所公开的主题的提供支持附加操作的有效技术的目标存储系统的框图。
13.图3描绘根据本文中所公开的主题的可形成于例如永久性存储器中的实例映射表的部分,所述映射表指向通过应用程序写入到目标存储系统的目标数据的不同部分的位
置。
14.图4形象地描绘根据本文中所公开的主题的聚集或暂存在永久性存储器中的多个小的附加操作的实例。
15.图5形象地描绘根据本文中所公开的主题的附加操作的另一实例。
16.附图标号说明
17.100:附加操作;
18.101、102、103、401、402、403、404、405、406:步骤;
19.200:目标存储系统;
20.201:控制器;
21.202:数据缓冲器;
22.203:永久性存储器;
23.204:存储介质;
24.205:主机系统;
25.206:应用程序;
26.300:映射表;
27.400、500:实例;
28.v1、v2、v3、v
n
:值。
具体实施方式
29.在以下详细描述中,阐述许多特定细节以便提供对本公开的透彻理解。然而,本领域的技术人员将理解,可在不具有这些特定细节的情况下实践所公开的方面。在其它情况下,未详细描述熟知的方法、工序、组件以及电路,以避免混淆本文中所公开的主题。
30.贯穿本说明书对“一个实施例”或“一实施例”的参考意指结合实施例所描述的具体特征、结构或特性可包含在本文中所公开的至少一个实施例中。因此,在贯穿本说明书的不同位置中出现短语“在一个实施例中”或“在一实施例中”或“根据一个实施例”(或具有类似意义的其它短语)可能未必全部指代相同实施例。此外,在一或多个实施例中,具体特征、结构或特性可以任何合适的方式组合。就此而言,如本文中所使用,词语“示范性”意指“充当一实例、例子或说明”。本文中描述为“示范性”的任何实施例未必应被视为比其它实施例优选或有利。另外,在一或多个实施例中,具体特征、结构或特性可以任何合适的方式组合。另外,取决于本文中论述的上下文,单数术语可包含对应复数形式,且复数术语可包含对应单数形式。类似地,加连字符术语(例如“二维(two-dimensional)”、“预定(pre-determined)”、“特定于像素(pixel-specific)”等)可与对应未加连字符版本(例如“二维(two dimensional)”、“预定(predetermined)”,“特定于像素(pixel specific)”等)间或可互换使用,且大写条目(例如“计数器时钟(counter clock)”、“行选择(row select)”、“pixout”等)可与对应未大写版本(例如“计数器时钟(counter clock)”、“行选择(row select)”、“pixout”等)可互换使用。这类间或可互换使用不应被视为彼此不一致。
31.另外,取决于本文中论述的上下文,单数术语可包含对应复数形式,且复数术语可包含对应单数形式。还应注意,本文中所绘示和论述的各种图(包含组件图式)仅用于说明性目的,且未按比例绘制。类似地,各种波形和时序图仅出于说明性目的绘示。举例来说,为
了清楚起见,一些元件的尺寸可相对于其它元件放大。此外,如果认为适当,那么便在图中重复附图标号来指示对应和/或类似的元件。
32.本文中所使用的术语仅出于描述一些实例实施例的目的,且不意图限制所要求的主题。如本文中所使用,除非上下文另外明确指示,否则单数形式“一(a/an)”和“所述(the)”还意图包含复数形式。将进一步理解,术语“包括(comprises)”和/或“包括(comprising)”在用于本说明书中时指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但并不排除一或多个其它特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。如本文中所使用,除非如此明确定义,否则术语“第一”、“第二”等用作在其之前的名词标签,且并不暗示任何类型的次序(例如空间、时间、逻辑等)。此外,在两个或大于两个图中,相同附图标号可用以指代具有相同或类似功能性的部件、组件、块、电路、单元或模块。然而,这类使用仅出于说明的简洁和易于论述起见;其并不暗示这类组件或单元的构造或架构细节在所有实施例中都相同,或这类通用参考部件/模块是实施本文中所公开的实例实施例中的一些的唯一方式。
33.将理解,当元件或层称为在另一元件或层上、“连接到”另一元件或层或“联接到”另一元件或层时,所述元件或层可直接在另一元件或层上、直接连接或联接到另一元件或层,或可存在介入元件或层。相比之下,当元件称为“直接”在另一元件或层“上”、“直接连接到”或“直接联接到”另一元件或层时,不存在介入元件或层。相同标号始终指代相同元件。如本文中所使用,术语“和/或”包含相关联所列项中的一或多个的任何以及所有组合。
34.如本文中所使用,除非如此明确定义,否则术语“第一”、“第二”等用作在其之前的名词标签,且并不暗示任何类型的次序(例如空间、时间、逻辑等)。此外,在两个或大于两个图中,相同附图标号可用以指代具有相同或类似功能性的部件、组件、块、电路、单元或模块。然而,这类使用仅出于说明的简洁和易于论述起见;其并不暗示这类组件或单元的构造或架构细节在所有实施例中都相同,或这类通用参考部件/模块是实施本文中所公开的实例实施例中的一些的唯一方式。
35.除非另外定义,否则本文中所使用的所有术语(包含技术和科学术语)具有与本主题所属的领域的一般技术人员通常所理解相同的含义。将进一步理解,如常用词典中所定义的那些术语的术语应被解释为具有与其相关技术的上下文中的含义一致的含义,且除非在本文中明确地如此定义,否则将不在理想化或过度正式意义上进行解释。
36.如本文中所使用,术语“模块”指代软件、固件和/或硬件的任何组合,所述组合配置以提供本文中结合模块所描述的功能性。软件可实施为软件包、代码和/或指令集或指令,且如在本文中所描述的任何实施方案中所使用的术语“硬件”可例如单独或以任何组合包含硬接线电路、可编程电路、状态机电路和/或存储由可编程电路执行的指令的固件。模块可共同或单独地实施为形成较大系统的部分的电路,例如但不限于集成电路(integrated circuit,ic)、片上系统(system on-chip,soc)等等。本文中所公开的各种组件和/或功能块可实施为可包含软件、固件和/或硬件的模块,所述模块提供本文中结合各种组件和/或功能块所描述的功能性。
37.本文中所公开的主题提供一种支持在目标存储装置中避免读取-修改-写入操作的附加操作的有效方式。基于存储介质的数据对准特性来确定使用针对附加操作的请求从应用程序接收到的数据的大小。不与数据对准特性对准的数据存储在永久性存储器中,且
与来自应用程序的不与数据对准特性对准的其它数据聚集,而与数据对准特性对准的数据直接存储在存储介质中。将随着接收到针对附加操作的额外请求而变为与数据对准特性对准的聚集数据迁移到存储介质。
38.可形成指示与应用程序相关联的目标数据定位于何处的表。即,所述表可包含在存储介质中和永久性存储器中已存储目标数据的位置。
39.图2描绘根据本文中所公开的主题的提供支持附加操作的有效技术的目标存储系统200的框图。目标存储系统200可包含控制器201、数据缓冲器202、永久性存储器203以及存储介质204。控制器201通信耦合到数据缓冲器202、永久性存储器203以及存储介质204中的每一个。图2中针对目标存储系统200所描绘的各种组件可实施为一或多个模块。
40.控制器201可包含例如至少一个微处理器、至少一个数字信号处理器、至少一个微控制器等。可存在联接到控制器201的存储器(未绘示),所述控制器201可存储待由控制器201使用的命令码或用户数据。
41.缓冲器202可被配置以从在主机系统205中执行的应用程序206接收数据和命令,且将数据和状态信息发送到主机系统205。虽然已将仅一个应用程序206描绘为在主机系统205中执行,但将理解,可在主机系统205中执行任何数量的应用程序206。另外,还将理解,超过一个主机系统205可通信耦合到目标存储装置200。
42.永久性存储器203可以是以随机存取字节可寻址方式可存取的非易失性(nonvolatile,nv)存储器。在一个实例实施例中,永久性存储器203可以是例如动态随机存取存储器(dynamic random access memory,dram)或具有设置有电池备份的电力供应的静态随机存取存储器(static random access memory,sram)。在另一实例实施例中,永久性存储器203可以是非易失性双列直插式存储器模块(dual inline memory module,dimm)。在又另一实施例中,永久性存储器203可以是存储级存储器(storage class memory,scm)。永久性存储器203例如在电力故障时提供永久性存储。
43.存储介质204可以是非易失性海量存储装置,如但不限于一或多种固态驱动器(solid-state drive,ssd)和/或一或多种硬盘驱动器(hard drive,hd)。在一个实施例中,控制器201可使用永久性存储器203来存储由控制器201使用的命令码和/或用户数据。存储介质204可具有本机块大小。在一个实施例中,存储介质的本机块大小可以是512字节。
44.在一个实施例中,当应用程序206发送针对附加操作的请求和与附加操作相关联的数据时,数据缓冲器202接收数据。控制器201确定与所接收到的附加操作相关联的数据的大小是否与存储介质204的本机块大小匹配。在一个实施例中,将所接收到的数据的大小除以本机块大小的大小。将所接收到的数据的大小为本机块大小的大于0的整数倍数的部分直接写入到存储介质204中。将所接收到的数据的大小小于本机块大小的大小的任何剩余部分(即余数)写入到永久性存储器203以用于稍后存储到存储介质204中。
45.小型附加操作聚集或暂存在永久性存储器203中,且可针对可指向永久性存储器203内的地址的目标形成表中的映射条目。一旦永久性存储器203中的目标的部分增长得足够大以有效写入到存储介质204(即,为存储介质204的本机块大小的大于0的整数倍数),那么便可将永久性存储器203中的目标数据迁移或写入到存储介质204作为后台操作。表中针对迁移数据的一或多个映射条目可相应地予以更新。
46.图3描绘可形成于例如永久性存储器203中的实例映射表300的部分,所述映射表
300指向通过应用程序206写入到目标存储系统200的目标数据的不同部分的位置。即,目标可由能够指向目标存储系统200中的多个值或位置的唯一键表示。每一值可表示整个目标的片段或部分。片段可驻存在存储介质204中或永久性存储器203中。举例来说,目标键可索引目标的值v1到值v
n
。如图3中所描绘,值v1和值v2指示存储介质204中的位置。值v3和值v
n
指示永久性存储器203中的位置。在读取操作期间,目标的映射条目可用以从各种片段或部分组装目标。
47.图4形象地描绘聚集或暂存在永久性存储器203中的多个小的附加操作的实例400。考虑存储介质204具有512字节的本机块大小。在步骤401处,第一附加操作(附加1)产生未字节对准的124字节(余数)。可将124字节写入到永久性存储器203中,且可针对124字节目标将条目形成于表(未绘示)中。针对附加1(以及还针对附加2到附加4),可能也已存在字节对准且直接写入到存储介质204中的数据。随后,在步骤402处,第二附加操作(附加2)产生未字节对准的327字节。可将327字节写入到永久性存储器203中,且可针对327字节目标将条目形成于表(未绘示)中。可接收在步骤403和步骤404处的分别产生写入到永久性存储器203中的657字节和2998字节的第三附加操作和第四附加操作。此时(在步骤405处),四个实例附加操作附加1到附加4具有总共4096字节的共同字节。在步骤406处将4096字节写入到存储介质204,且四个附加操作附加1到附加4的对应条目已更新以指示已迁移到存储介质204的数据。
48.图5形象地描绘根据本文中所公开的主题的附加操作的另一实例500。考虑5000字节的附加操作,且存储介质204具有512字节的本机块大小。使用附加操作接收到的数据的大小可由512的本机块大小除尽且余数为392字节。将具有4608字节的大小的数据的部分直接写入到存储介质204中,且将剩余392字节写入到永久性存储器203中。条目在表(未绘示)中形成以指示存储在存储介质204中的4608字节的位置,且指示存储在永久性存储器203中的392字节的位置。
49.尽管本说明书可含有许多特定实施方案细节,但所述实施方案细节不应被视为对任何所要求主题的范围的限制,而是应被视为特定针对具体实施例的特征的描述。在本说明书中在单独实施例的上下文中所描述的某些特征也可以组合形式在单个实施例中加以实施。相反地,在单个实施例的上下文中所描述的各种特征也可分别在多个实施例中实施或以任何适合子组合来实施。此外,虽然上文可将特征描述为以某些组合起作用且甚至最初如此要求,但在一些情况下,可将来自所要求组合的一或多个特征从组合中删除,且所要求组合可针对子组合或子组合的变化。
50.类似地,尽管在附图中按具体次序描绘操作,但这不应被理解为要求应按所绘示的具体次序或按顺序次序执行这类操作,或应执行所有所示出的操作,以实现所要结果。在某些情况下,多任务处理和并行处理可为有利的。此外,上文所描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中均要求此分离,且应理解,所描述的程序组件和系统一般可一起整合在单个软件产品中或封装到多个软件产品中。
51.因此,已在本文中描述了主题的具体实施例。其它实施例在以下权利要求书的范围内。在一些情况下,权利要求书中所叙述的动作可以不同次序来执行且仍实现所要结果。另外,附图中所描绘的过程未必需要所绘示的具体次序或顺序次序来实现所要结果。在某些实施方案中,多任务处理和并行处理可为有利的。
52.如本领域的技术人员将认识到,可在广泛范围的应用内修改和改变本文中所描述的创新概念。因此,所要求主题的范围不应限于上文所论述的特定示范性教示中的任一种,而是由随附的权利要求书来定义。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1