用于存储器的智能编码装置、方法及计算机程序与流程

文档序号:14033662阅读:218来源:国知局
用于存储器的智能编码装置、方法及计算机程序与流程

相关申请的交叉引用

本申请要求享有于2015年7月28日提交、申请号为14/811,763、发明名称为“用于存储器的智能编码装置、方法及计算机程序”的美国专利申请的优先权,其全部内容通过引用如同再现并入本申请中。

本发明涉及存储器系统,更具体地,涉及与存储器系统的相关使用的编码。



背景技术:

目前,存在用于在存储器系统中生成和存储编码(例如奇偶校验码等)的各种技术。通常,为存储在存储器中的全部数据生成编码。这导致对存储所有这些编码的大存储容量的要求。这不仅引入了增加的成本,还导致了运行期间性能的降低。



技术实现要素:

提供了一种与存储器一起使用的智能编码装置、方法及计算机程序。在操作中,识别存储在第一存储器中的数据子集。处理存储在第一存储器中的数据的该子集,以生成编码。然后将编码存储在第二存储器中,以用于重建数据的至少一部分。

在一个实施例中,公开了一种装置,其包括用于存储数据的第一存储器、第二存储器以及与所述第一存储器和第二存储器通信的电路。所述电路可以被配置用于识别存储在所述第一存储器中的数据的子集,处理存储在所述第一存储器中的数据的子集,以生成编码,并将编码存储在第二存储器中,用于重建至少一部分数据。

在另一个实施例中,公开了一种方法,其包括识别存储在第一存储器中的数据的子集,处理存储在第一存储器中的数据的子集,以生成编码,并将编码存储在第二存储器中,以用于重建至少一部分数据。

在另一个实施例中,公开了一种在非瞬时计算机可读介质上实施的计算机程序产品,其包括用于识别存储在第一存储器中的数据子集的代码,用于处理存储在第一存储器中的数据子集的编码以生成编码的代码,以及用于将该编码存储在第二存储器,以用于重建数据的至少一部分的代码。

附图说明

图1示出了根据一个实施例的用于实现智能编码存储器架构的方法。

图2示出了根据一个实施例的智能编码存储器系统。

图3示出了根据一个实施例的用于实现智能编码存储器系统的方法。

图4示出了根据一个实施例的用于实现智能编码存储器系统的第一设计。

图5示出了根据一个实施例的用于实现智能编码存储器系统的第二设计。

图6示出了根据一个实施例的用于实现智能编码存储器系统的第三设计。

图7示出了根据一个实施例的具有针对图6设计的改进的设计。

图8示出了根据一个可能的实施例的网络架构。

图9示出了根据一个实施例的示例性系统。

具体实施方式

图1示出了根据一个实施例的用于实现智能编码存储器架构的方法100。如操作102所示,存储在第一存储器中的数据子集被识别。在各种实施例中,这样的第一存储器可以包括任何类型的存储器。例如,在各种实施例中,第一存储器可以采取随机存取存储器(randomaccessmemory,ram)、高速缓存、存储体或用于此的任何其他类型的存储器的任何形式。

将在后续实施例的描述中进行阐述,可以基于与这种数据子集有关的一个或多个调度访问来识别各种实施例中的数据子集。为此,可以将数据子集识别为第一存储器中的访问对象。当然,在其他实施例的环境中,可以使用任何期望的算法(例如,统计、预测、其他等)来识别数据子集,该期望算法导致只有数据的一个子集被识别用于后续处理。

接下来,处理存储在第一存储器中的数据的子集,以生成编码。见操作104。在本说明书的环境中,将很快变得明显的是,这样的编码可以包括能够用于重建数据的任何编码。例如,在一个实施例中,编码可以包括基于数据子集生成的一个或多个比特。在另一个实施例中,编码可以包括奇偶校验码。在根据一个可能的实施例的使用中,可以重建由于第一存储器中的存储体冲突而不可用的数据。此外,上述处理可以是能够导致这样的编码的任何处理。

在各种实施例中,识别的数据子集可以包括来自两个,三个或四个存储体的数据,并且所述数据可以基于其任何组合来生成。一般来讲,在不同的实施例中,第二存储器可以包括小于或等于第一存储器的部件的数量的多个部件。为此,因而提供了适当的编码复杂性。当然,在其他实施例的环境中,数据子集可以不一定以上述方式来限定,并且因此可以包括存储在第一存储器中的任何数据子集。

继续参考图1,编码被存储在第二存储器中,用于重建数据的至少一部分。见操作106。在本说明书的环境中,第二存储器可以是或可以不是第一存储器的组件(例如,部分等)。此外,类似于第一存储器,第二存储器可以采取随机存取存储器(ram),高速缓存,存储体或用于此的任何其他类型的存储器的任何形式。

作为选择,在一个实施例中,编码可以存储在具有数据子集的第二存储器中。当然,也虑及了非该情况下的其他实施例。在任何情况下,结合随后对其的任何访问,该编码随后可用于重建数据的至少一部分(例如其子集或其部分等)。作为选择,编码可操作用于执行与使用来自第一存储器的每个存储体的一个或多个数据项有关的一个或多个功能。进一步地,为了生成编码,通过仅识别相关的数据子集,可以(或可能不)显示各种特征。例如,在各种可选实施例中,可以节省编码存储所需的第二存储器的大小,可以启用同时读/写等。

现在将对于各种可选的架构和使用,阐述更多说明性信息,在该架构和使用中根据用户的意愿,前述方法可以实现或可能不被实现。应该强调指出,为了说明的目的,阐述了以下信息,并且不应被解释为以任何方式进行限制。无论是否排除所描述的其它特征,任何以下特征都可以可选地并入。

图2示出了根据一个实施例的智能编码存储器系统200。作为选择,系统200可以在任何前述和/或后续图形和/或其描述中阐述的任何一个或多个实施例的环境中实现。然而,当然,系统200可以在任何期望的环境的上下文中实现。

如图所示,包括用于存储原始数据的第一存储器202以及用于存储一个或多个编码的第二存储器204。如前所述,这样的第一存储器202和第二存储器204可以采取任何形式。此外,虽然在图2中将第一存储器202和第二存储器204示为分离的存储器,但是应当注意,这样的第一存储器202和第二存储器204可以是相同的单一存储器的部分。尽管仍然示出为邻近的分离的存储器,但是其他实施例被设想为其中这样的第一存储器202和第二存储器204的位置远离。

还包括与第一存储器202和第二存储器204通信的存储器控制器206。如图所示,存储器控制器206被示出为包括各种电路。例如,包括第一调度器210,其用于识别存储在第一存储器202中的数据的子集以便为其生成编码。存储器控制器206还包括编码生成器212,其用于生成通过使用第一调度器210识别的数据子集的编码。尽管未示出,但编码可以与数据的子集一起存储在第二存储器204中。

继续参考图2,第二调度器214与第一调度器210通信。在各种实施例中,第二调度器214可以包括全局调度器,芯片级调度器或用于此的任何其他类型的调度器。在使用中,第二调度器214用于调度与各种数据有关的任务(例如由处理器处理等),并进一步与存储器控制器206直接或经由互连(例如总线)进行通信(如图所示),以促使第一调度器210用于识别经由编码生成器212来产生编码的数据子集。

应当注意,虽然在本实施例中,第一调度器210和编码生成器212被示为存储器控制器206的组件,但也可以考虑其他实施例,其中这样的电路可以位于不同的设备中(例如,集成在处理器、存储器、分立芯片中等),和/或定位在分开的不同设备中。

第二调度器214也可以如此。虽然第二调度器214被示为相对于中央处理单元(centralprocessingunit,cpu)216、数字信号处理器(digitalsignalprocessor,dsp)218、硬件加速器(hardwareaccelerator,hac)220是独立的;在其他实施例中,它可以在处理器的环境中实现。例如,在各种实施例中,这种处理器可以包括cpu216、dsp218、专用处理器(例如hac220等)、处理器核心或能够处理数据的任何其他设备(或其组件)。

此外,虽然一些各种组件之间的通信被示出为直接通信,但是应当注意,也虑及在通信是间接的(例如,一个或多个其他组件位于其间等)的情况下的其他实施例。现在将根据实施例阐述关于上述组件可以进行操作的示例性方法的更多信息。

图3示出了根据实施例的用于实现智能编码存储器系统的方法300。作为选择,方法300可以在任何前述和/或后续图形和/或其描述中阐述的任何一个或多个实施例的环境中实现。例如,在一个实施例中,方法300可以在图2的系统200的环境中实现。然而,当然,方法300可以在任何期望的环境的上下文中实现。

在使用中,可以基于与数据子集有关的请求来识别数据子集(即编码的基础)。具体来说,这样的请求可以包括由全局或芯片级调度器(例如,图2的调度器等等)识别的访问请求。在其他实施例中,可以基于与数据的子集有关的多个请求来实时地识别数据子集。例如,可以接收多个访问请求以访问不同的数据。为此,可以基于访问请求将数据子集识别为包括该不同数据。然而,将数据子集识别为包括该不同数据的过程可以实时地执行。

然而,与上述请求相关联的信息可以由全局或芯片级调度器通过消息传送到存储器控制器(例如,图2的存储器控制器206等)的存储器控制器调度器(例如图2的调度器210等),使得这样的信息可以用于识别用于编码生成的适当的数据子集。在使用期间,数据子集可以至少部分地与访问请求的处理(用于后续编码生成)同时被处理(用于编码生成)。

参考图3,存储器控制器调度器从全局或芯片级调度器接收上述消息。见操作302。然后确定第一存储器的特定存储器区域中的数据是否已被调度用于多个访问。见决策304。在一个实施例中,这样的决定可以由全局或芯片级调度器执行。

如果确定特定存储器区域中的数据已经被调度用于决策304中的多个访问,则触发额外的操作,使得数据的子集被有条件地处理(用于编码生成)。具体地,如图3所示,这样的附加操作从关联地址区域开始,该关联地址区域由全局或芯片级调度器传送到存储器控制器调度器。见操作306。

接下来,在决策308中,存储器控制器确定第二存储器的容量是否能够容纳编码的存储。具体地,确定是否存在空间容纳编码的新编码区域(例如编码存储体等)。如果没有,则可以移除现有的编码区域以创建容量。见操作310。在一个实施例中,用于移除的现有编码区域的选择可以基于最少使用策略或者为此生成必要容量的任何其他算法。为此,基于确定第二存储器的容量是否能够容纳编码的存储,来清除第二存储器的至少一部分。

在任何情况下,然后编码存储体可以在后台生成,并且一旦编码存储体准备就绪,就可以通知/触发存储器控制器。见操作312-314。接下来,在操作316中,一旦实际流量到达存储器控制器,则存储器控制器调度器开始相应地调度编码存储体。因此,可以基于确定第二存储器的准备是否就绪以容纳编码的存储来启动编码的存储。

仍然,在各种实施例中,数据子集可以被处理以利用用于识别数据子集的同一流程来生成编码。因此,根据一个可能的实施例,数据子集的识别及其用于编码生成的处理可以是同一流程的初始和后续操作,使得这些操作能够被无缝地紧接着执行以完成实时操作。

一旦编码存储体准备就绪,存储器控制器调度器也可以对全局或芯片级调度器触发一些事件。此外,在某些情况下,全局或芯片级调度器可等待触发的到达,然后将任务调度到例如多个cpu/dsp内核的处理器。这些多个cpu/dsp内核可能受益于编码存储体,因为它们能够对该区域进行多次同时访问,以进一步提高整体性能。

现在将根据各种实施例阐述关于可以在智能编码存储器系统的环境中实现的多种不同设计的更多信息。下文将阐述每个实施例包括存储编码的有效方式。为了描述和区分这些设计,本文限定了表1中的下列术语。

表1

·数据存储体:原始存储体,其存储原(例如原始等)数据并且其存在于基线(例如非编码等)系统中。

·编码存储体:存储至少一个编码的存储体。

·编码区域:存储体组,其划分是为了确保更有效的访问并满足编码的可用性。

·编码的局部性:用于形成编码的数据存储体元素的数量。例如,存储a+b的编码存储体具有局部性“2”,因为它使用a和b来形成编码。

·编码可用性:数据存储体存在于编码存储体中的次数。例如,如果存在编码(a+b),(a+c),(a+d),则(a)的可用性为3,并且(b),(c)和(d)的可用性为1,因为它们在编码的系统中只出现一次。

·码率:该比率为数据存储体数量/存储体总数,即n(数据存储体)/[n(数据存储体)+n(编码存储体)]。在一个实施例中,只有在编码存储体大小与数据存储体大小相同时才可能是这种情况;否则,码率方程可以是原始数据的大小/编码数据的大小,其中编码的数据包括原始数据+编码数据。

假设以下设计实施例具有表2中所阐述的以下约束,其仅用于说明之目的。

表2

·读访问:在一个周期内,每个存储体有4个

·写访问:在一个周期内,每个存储体有2个

·共享的存储大小:8kb-256kb

·存储体数量:8

·存储器开销:15%

·编码存储体:5或6个用于编码存储的浅(shallow)存储体

图4示出了根据一个实施例的用于实现智能编码存储器系统的第一设计400。作为选择,设计400可以在任何前述和/或后续图形和/或其描述中阐述的任何一个或多个实施例的环境中实现。然而,当然,设计400可以在任何期望的环境的背景中实现。

第一个设计400使用批处理编码的概念来编码每个存储体内的特定行的存储器。这允许使用编码存储体向编码的区域提供多个访问。在第一设计400下,在一个可能的实施例中,可以保证在任何给定时间,可以提供对编码的区域的任何4个读请求。如图4所示,8个存储体被分成两个区域。每个区域由4个存储体组成。每个区域都有6个并行的浅(shallow)存储体来存储编码。在存储体1-8中示出的中间区域是被编码区域。这些区域被假定为存储器的α部分。

在使用中,编码被设计为在发出对被编码区域的顺序访问时实现最大性能。在该访问期间,可以在一个周期内实现多达10个并行访问。例如,如果接收到对a1,b1,c1,d1,a2,b2,c2,d2,a3,b3,c3和d3的访问,则可以考虑此场景。这里,第一设计400可以使用a1及编码存储体a1+b1和b1+c1,c1+d1来提供a1,b1,c1和d1。此外,可以使用来自相关联的数据存储体的b2和来自编码存储体的a2+d2,b2+d2和a2+c2来提供a2,b2,c2和d2。最后,第一设计400可以使用数据存储体c和数据存储体d来提供c3和d3。

在另一种场景下,当存在对内存存储体的非顺序和非连续访问时,编码方案在一个周期内减少到4个访问。例如,当对a1,b8,c9和d15请求访问时,可能会发生这种情况。由于编码存储体中不存在该组合的编码,因此未使用并行访问的优点。然而,在这种情况下,第一设计400可以使用预取机制在队列中预见,并从编码存储体中预取编码以用于随后的访问。以下将阐述有关这种机制的更多信息。图4显示了存储体中编码的存储模式。表3示出了第一设计400的概要。

表3

每个存储体编码区域的部分=α

可以在一个时钟周期向任何存储体提供最多四个读请求

图5示出了根据一个实施例的用于实现智能编码存储器系统的第二设计500。作为选择,设计500可以在任何前述和/或后续图形和/或其描述中阐述的任何一个或多个实施例的环境中实现。然而,当然,设计500可以在任何期望的环境的背景中实现。

如图所示,设计500通过每个周期允许每个存储体最多5次读取访问来改进图4的设计400。设计500也将存储体划分为两个区域。第一个区域是存储体a到存储体d,有5个相应的编码存储体。图5所示的两个区域包括形成一个区域的上部9个存储体和形成另一个区域的下部9个存储体。设计500允许区域之间的编码的混合存储。对于每个区域,设计500还使用5个编码存储体。该设计500下的数据对于存储体间和存储体内编码进行编码。存储体内编码存储在替代编码存储体区域中。如果可用,则允许使用来自其他区域的编码存储体。

在正常使用情况下,设计500允许在发出对被编码区域的顺序访问时实现最大性能。在该访问期间,能在一个周期内实现多达9个并行访问。例如,可以考虑接收到对a1,b1,c1,d1,a2,b2,c2,d2,a3,b3和c3的访问的场景。这里,可以使用a1及编码存储体a1+b1,b1+c1,c1+d1来提供a1,b1,c1,d1。此外,可以使用b2及编码存储体a2+d2和b2+d2来提供a2,b2,d2。最后,c2和d3可以使用存储体3和存储体4来提供。

在一个实施例中,这些可以是对内存存储体的非顺序和非连续访问。例如,当访问模式是d1,d6,d9,d15和d20时;设计500可以在被编码存储体的帮助下执行这5个读取。它可以从编码区域ii中的底部编码存储体读取d1,在编码区域ii中已经存储了来自编码区域i中的原始数据存储体的d1,d6;读a9和a9+d9以获取d9;读b15和b15+d15以获取d15;并读c20和c20+d20,以从编码区域i及其相关的编码存储体中获取d20。设计500还可以使用预取机制在队列中预见,并从编码存储体预取编码以用于进一步访问。例如,预取程序代码可以分析来自所有队列的所有未完成的读取和写入命令,以生成优化的访问模式,从而可以并行执行最大数据和编码存储体访问。为此,可以增加读取和写入的次数。

表4示出了设计500的概要。

表4

每个存储体编码区域的部分=α

可以在一个时钟周期向存储体提供最多五个读请求

图6示出了根据一个实施例的用于实现智能编码存储器系统的第三设计600。作为选择,设计600可以在任何前述和/或后续图形和/或其描述中阐述的任何一个或多个实施例的环境中实现。然而,当然,设计600可以在任何期望的环境的背景中实现。

图4/5的设计400/500达到了2/5的比率。设计600达到1/2的比率。如图6所示,设计600需要9个数据存储体和9个编码存储体。设计600也具有相对较高的局部性,为3。也就是说,设计600要求存储器控制器“知道”三个数据元素中的两个以对第三个进行解码。这还有助于实现对于每个周期每个存储体的4个同时读访问和每个周期每个存储体的2个同时写访问。与设计400/500相比,设计600的存储器开销较少(只是α)。然而,由于局部性的增加,设计600具有较高的逻辑复杂性。下面在表5中描述了该设计的示例性情况。

表5

4次对存储体a的读取,例如a0、a1、a2以及a3:

ο从存储体a的1次读取a0

ο对存储体b、c以及a+b+c的1次读取以获取b1、c1以及a1+b1+c1,以分解a1

ο对存储体d、g以及a+d+g的1次读取以获取d2、g2以及a2+d2+g2以解决a2

ο对存储体e、i以及a+e+i的1次读取以获取e3、i3以及a3+e3+i3以解决a3

对存储体a的3次读取,例如a0、a1以及a3;以及对存储体b的1次读取,例如b0:

ο从存储体a的1次读取a0

ο对存储体d、g以及a+d+g的1次读取以获取d1、g1以及a1+d1+g1以分解a1

ο对存储体e、i以及a+e+i的1次读取以获取e2、i2、a2+e2+i2以分解a2

ο对存储体b读取1次以获取b0

对存储体a的2次读取,例如a0,a1;和对存储体b的2次读取,例如b0和b1:

ο从存储体a的1次读取a0

ο对存储体d、g以及a+d+g的1次读取以获取d1、g1以及a1+d1+g1以分解a1

ο从存储体的1次b读取b0

ο对存储体e、h以及b+e+h的1次读取以获取e1、h1以及e1+e1+h1以分解b1

对存储体a的2次读取,例如,a0和a1,对存储体b的1次读取,例如b0,以及对存储体c的1次读取,例如c0:

ο从存储体a的1次读取a0

ο对存储体d、g以及a+d+g的1次读取以获取d1、g1以及a1+d1+g1以分解a1

ο从存储体b的1次读取b0

ο从存储体c的1次读取c0

表6示出了设计600的概要。

表6

每个存储体编码区域的部分=α

可以在一个时钟周期向存储体提供最多四个读请求

表7比较了图4-6的设计实施例的各种参数和相关成本。

表7

图7示出了根据一个实施例的具有针对图6设计600进行改进的设计700。表8示出了设计700的概要。

表8

每个存储体被编码区域的部分=α

可以在一个时钟周期向一存储体提供最多四个读请求

总之,在各种实施例中,编码存储器系统可被实现为以压缩形式创建数据冗余。在一个实施例中,编码数据可以是原始数据的算术组合。也可以通过使用杂乱的数据组合来获得编码。编码还可以包含这些杂乱组合的子集,以支持读写保障。在一个实施例中,编码构造可以被分成两个集合。例如,在存储体间编码的环境中,可以通过从m个存储体获取数据值来构建编码。也就是说,如果有两个存储体,存储体a和存储体b,可以通过添加来自这两个存储体的数据值来构建编码。这种编码可能有助于跨越存储体扩大访问范围。另一方面,在存储体内编码的环境中,可以通过使用来自同一个存储体的数据值来构建编码。例如,在存储体a具有从a1到an的值的示例中,编码可以被构建为a1+a2,a2+a3等等。这里,存储体是自编码的,且对于每个数据存储体都存在编码存储体。应当注意,在这种情况下,编码可以以图案或随机性被建构,以提供最佳码率。例如,通常是当顺序编码(a1+a2,a2+a3等)时,读取访问请求可能必须是顺序地使用代码。在上一句中,“+”号可能是指涉及的两个术语之间的异或运算;然而,一般来说,它代表涉及a1和a2两者的函数运算。[例如func(a1,a2)等]。在一些实施例中,在地址空间布局随机化(addressspacelayoutrandomization,aslr)系统的情况下也可以支持随机编码。

图8示出了根据一个可能的实施例的网络架构800。如图所示,提供至少一个网络802。在本网络架构800的环境中,网络802可以采取任何形式,包括但不限于电信网络/局域网(localareanetwork,lan)、无线网络、诸如因特网的广域网(wideareanetwork,wan)、对等网络、有线网络等。虽然仅示出了一个网络,但是应当理解,可以提供两个或多个相似或不同的网络802。

多个设备耦合到网络802。例如,出于通信的目的,服务器计算机812和终端用户计算机808可以耦合到网络802。这样的终端用户计算机808可以包括台式计算机、笔记本电脑和/或任何其他类型的逻辑。然而,包括个人数字助理(personaldigitalassistant,pda)设备810、移动电话设备806、电视机804等的各种其他设备可以耦合到网络802。

图9示出了根据一个实施例的示例性系统900。作为选择,系统900可以在图8的网络架构800的任何设备的环境中实现。当然,系统900可以在任何期望的环境中实现。

如图所示,提供了包括至少一个中央处理器901的系统900,其连接到诸如总线的通信互连912。系统900还包括主存储器904[例如,随机存取存储器(randomaccessmemory,ram)等]。系统900还包括图形处理器908和显示器910。

系统900还可以包括辅助存储器906。辅助存储器906包括例如表示软盘驱动器、磁带驱动器、光盘驱动器等的硬盘驱动器和/或可移动存储驱动器。可移动存储驱动器以公知的方式从可移动存储单元读取和/或向可移除存储单元写入。

计算机程序或计算机控制逻辑算法可以存储在主存储器904、辅助存储器906和/或用于此的任何其他存储器中。这样的计算机程序在执行时使得系统900能够执行各种功能(例如,如上所述)。存储器904、存储器906和/或任何其它存储器是非瞬时性计算机可读介质的可能示例。

应该注意的是,在一方面,本文描述的技术具体体现在存储在计算机可读介质中的可执行指令中,供指令执行机器,装置或设备,例如基于计算机的或包含处理器的机器,装置或设备来使用或与其一起使用。本领域技术人员将理解,对于一些实施例,包括可以存储可由计算机访问的数据的其他类型的计算机可读介质,诸如磁带盒、闪存卡、数字视频盘、伯努利盒、随机存取存储器(randomaccessmemory,ram)、只读存储器(read-onlymemory,rom)等。

如这里所使用的,“计算机可读介质”包括用于存储计算机程序的可执行指令的任何合适的介质中的一个或多个,使得指令执行机器、系统、装置或设备可以从计算机可读介质中读取(取得),并执行用于实施所述方法的指令。合适的存储格式包括电子、磁、光和电磁格式中的一种或多种。常规示例性计算机可读介质的非详尽列表包括:便携式计算机软盘;ram;rom;可擦除可编程只读存储器(eprom或闪存);包括便携式光盘(cd),便携式数字视频盘(digitalvideodisc,dvd),高分辨率dvd(highdefinitiondvd,hd-dvdtm),蓝光光盘的光学存储设备;等等。

应当理解,所描述的附图中所示的部件的布置是示例性的,并且也可以是其它布置。还应当理解,由下面描述的权利要求限定并且在各种框图中示出的各种系统组件(和装置)表示根据本文公开的主题配置的一些系统中的逻辑组件。

例如,这些系统组件(和装置)中的一个或多个可以全部或部分地由所描述的附图中所示布置中示出的至少一些部件来实现。另外,尽管这些部件中的至少一个被至少部分地被实现为电子硬件部件,并且因此构成机器,但是其他部件可以以软件形式来实现,其当被包括在执行环境中时构成了机器,硬件或软件和硬件的组合。

更具体地,由权利要求限定的至少一个组件至少部分地实现为电子硬件组件,例如指令执行机器(例如,基于处理器或包含处理器的机器)和/或实现为专用电路或电路(例如互连的离散逻辑门来执行专门的功能)。其他组件可以以软件、硬件或软件和硬件的组合来实现。此外,这些其他组件中的一些或全部可以组合,一些可以整个省略,并且可以在仍然实现本文描述的功能的同时添加附加组件。因此,本文描述的主题可以以许多不同的变化形式实施,并且所有这些变化被认为在所要求保护的范围内。

在上面的描述中,除非另有说明,否则参考由一个或多个设备执行的操作的动作和符号表示来描述主题。因此,应当理解,有时被称为由计算机来执行的这些动作和操作包括由处理器以结构化形式对数据进行的操作。该操作转换数据或将其保持在计算机的存储器系统中的位置,其以本领域技术人员公知的方式重新配置或改变设备的操作。数据被保持在存储器的物理位置,作为具有由数据格式限定的特定属性的数据结构。然而,虽然在上述环境中描述了主题,但是并无限制的意味。本领域技术人员将理解的是,以下描述的各种动作和操作也可以在硬件中实现。

为了便于理解本文描述的主题,根据动作的顺序对许多方面进行描述。由权利要求限定的这些方面中的至少一个由电子硬件部件执行。例如,将认识到,各种动作可以由专用电路或电路,由一个或多个处理器执行的程序指令或两者的组合来执行。本文中对于任何操作次序的描述并不意味着必须遵循用于执行该次序的特定顺序。除非本文另有说明或明确地与环境相矛盾,否则本文描述的所有方法可以以任何合适的顺序进行。

例如,在一个实施例中,公开了一种装置,包括用于存储数据的第一存储装置,第二存储装置和与第一存储装置和第二存储装置通信的电路装置。所述电路可以被配置用于识别存储在所述第一存储器中的数据的子集,处理存储在所述第一存储器中的数据的子集,以生成编码,并将编码存储在第二存储器中,用于重建至少一部分数据。

在另一个实施例中,公开了一种方法,其包括识别存储在第一存储器装置中的数据的子集,处理存储在第一存储器装置中的数据的子集,以生成编码,并将编码存储在第二存储器装置中,以用于重建至少一部分数据。

在另一个实施例中,公开了一种在非瞬时计算机可读介质上实施的计算机程序产品,其包括用于识别存储在第一存储器装置中的数据子集的代码,用于处理存储在第一存储器装置中的数据子集的编码以生成编码的代码,以及用于将该编码存储在第二存储器装置中的代码,以用于重建数据的至少一部分。

除非本文另有说明或明确地与上下文相矛盾,否则在描述主题(特别是在所附权利要求的上下文中)的上下文中使用术语“一”和“一个”和“该”以及类似的指称对象应被解释为涵盖单数和复数。除非本文另有说明,否则本文中值的范围的描述仅旨在用作单独提及落在范围内的每个单独值的简写方法,且每个单独的值被并入本说明书中,如同在本文中进行单独列举一样。此外,因为所要保护的范围由下文所阐述的权利要求以及任何有资格的等同物来共同限定,所以前面的描述仅仅是为了说明的目的,而不是为了限制的目的。除非另有说明,否则本文中提供的任何和所有示例或示例性语言(例如“例如”)的使用仅旨在更好地说明主题,并且不对主题的范围构成限制。在权利要求和书面说明书中,使用术语“基于”和其他类似短语来表示引起结果的条件并不旨在排除引起该结果的任何其他条件。对于所要求保护的本发明实践所必需的那些要素,说明书中的任何语言都不应被解释为表示任何未被要求保护的该要素。

本文描述的实施例包括了发明人已知的用于执行所要求保护的主题的一个或多个模式。当然,在阅读前面的描述时,这些实施例的变化对于本领域普通技术人员将变得显而易见。发明人期望本领域技术人员适当地使用这些变化,并且发明人旨在要求保护的主题以不同于本文具体描述的方式实施。因此,这一要求保护的主题包括适用法律所允许的所附权利要求中所述的主题的所有修改和等同物。此外,除非另有说明,或上下文明确矛盾,否则包含其所有可能变化中的上述要素的任何组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1