硬盘驱动器中多流场景的服务质量保障系统和方法与流程

文档序号:21406949发布日期:2020-07-07 14:41阅读:149来源:国知局
硬盘驱动器中多流场景的服务质量保障系统和方法与流程

本公开总体上涉及数据存储领域。更具体地,本公开涉及一种硬盘驱动器中多流场景的服务质量(qos)保证系统和方法。



背景技术:

互联网和电子商务的普及持续创造了大量的数字内容。各种存储系统已被创建,用于访问和存储这些数字内容。一个存储系统或服务器可以包含多个驱动器,诸如硬盘驱动器(hdd)和固态驱动器(ssd)。服务器中的存储器对存储系统的性能和容量起着至关重要的作用。在当前经济形势下,hdd的价格明显低于ssd。hdd的容量持续增加。与此同时,虚拟化技术允许越来越多的客户机共享相同物理设备(例如hdd)的资源。结果,单一的hdd可以并行接收多个写入操作。每个写入操作都是具有多个数据部分的单独的流的一部分,并且每个流都可以写到hdd的磁盘上的不同物理区域。然而,由于hdd是每个磁盘只具有一个物理写磁头的主轴存储设备,所以,所述写磁头必须在磁盘上的多个物理区域之间重复切换或移动,这会增加查找时间和轮作时间二者。这不仅会降低hdd的效率以及存储系统的整体效率和性能,并且还会导致qos的保障级别降低。



技术实现要素:

一个实施例便于在存储设备中放置数据。在操作期间,系统接收来自多个流的输入数据,其中,所述输入数据包括多个数据部分。系统通过在每个数据部分之前插入头部并且在每个数据部分之后插入尾部的方式格式化所述数据部分,其中,格式化的数据部分包括相应数据部分、所述头部和所述尾部,并且其中,所述头部和尾部指示流中的所述相应数据部分的顺序和目标区域。所述系统将所述格式化的数据部分依次写入存储设备的非易失性存储器的预分配的日志区域。所述系统按数据部分相应的头部和尾部所指示的顺序连接所述数据部分。所述系统根据由数据部分相应的头部和尾部所指示的目标区域将连接的数据部分依次写入非易失性存储器。

在一些实施例中,在将连接的数据部分依次写入非易失性存储器之前:所述系统检测故障;并且,所述系统根据数据部分相应的头部所指示的目标区域标识符和部件长度来重构所述数据部分的逻辑地址与所述数据部分的物理地址之间的映射。

在一些实施例中,接收到的所述输入数据被放置在第一数据缓冲区中。在将格式化的数据部分依次写入日志区域之后:所述系统将所述格式化的数据部分从日志区域读入第二数据缓冲区;并且,所述系统验证所述第二数据缓冲区中的所述格式化的数据部分。

在一些实施例中,验证第二数据缓冲区中的所述格式化的数据部分包含,针对相应格式化的数据部分:确定由其相应头部指示的部件标识符与由其相应尾部指示的部件标识符相匹配;以及根据由其相应尾部指示的循环冗余校验值,对所述相应数据部分进行校验。

在一些实施例中,所述头部还指示:作为所述相应数据部分的开始的部件起点;作为所述相应数据部分的唯一标识符的部件标识符;指示所述相应数据部分中包含的位数的部件长度;作为相应数据部分将被写入到的区域的唯一标识符的目标区域标识符;以及指示距开始写入相应数据部分的部件起点的位置的目标区域偏移量。所述尾部还指示:与所述头部中指示的部件标识符相匹配的部件标识符;指示采用现有循环冗余校验(crc)编解码器编码的相应数据部分的签名的crc值;以及指示相应数据部分的结束的部件终点。

在一些实施例中,响应于确定当前写指针位于所述日志区域的末尾位置,所述系统将所述当前写指针设置到所述日志区域的起点位置。

在一些实施例中,所述系统配置所述非易失性存储器的备用扇区池区域,以供挂起的扇区替换和由于所述预分配日志区域而需要额外存储容量的数据二者使用。

在一些实施例中,所述存储设备包括硬盘驱动器。

在一些实施例中,所述系统将所述存储设备的所述非易失性存储器中的一个区域分配为所述预分配的日志区域预分配日志区域。

附图说明

图1示出了根据现有技术的便于在存储设备中放置数据的示例性环境。

图2示出了根据本申请的实施例的存储系统的示例性体系结构。

图3示出了根据本申请的实施例的便于在存储设备中放置数据的示例性环境。

图4a示出了根据本申请的实施例的包括头部、数据和尾部(如同存储在预分配日志区域中)的示例性格式化的数据部分。

图4b示出了根据本申请的实施例的来自图4a的示例性的格式化的数据部分的示例性的数据连接(在中间缓冲区中)。

图5a呈现了根据本申请的实施例的示出便于在存储设备中放置来自多个流的数据的方法的流程图。

图5b呈现了根据本申请的实施例的示出便于在存储设备中放置来自多个流的数据的方法的流程图。

图6示出了根据本申请的实施例的包括具有预分配日志区域的硬盘驱动器和共享备用扇区池(具有可相互配置的容量)的示例性环境。

图7示出了根据本申请的实施例的便于在存储设备中放置数据的示例性计算机系统。

图8示出了根据本申请的实施例的便于在存储设备中放置数据的示例性装置。

在诸图中,相似的附图标记指代相同的附图元件。

具体实施方式

呈现以下描述以使得本领域技术人员能够制造和使用实施例,并且在特定应用及其要求的背景下提供以下描述。对于本领域技术人员来说,对所公开的实施例的各种修改是显而易见的,并且在不脱离本公开的精神和范围的情况下,可以将本文定义的一般原理应用于其他实施例和应用。因此,本文描述的实施例不限于所示的实施例,而应符合本文公开的原理和特征的最宽范围。

综述

本文描述的实施例通过使用预分配日志区域,使用元数据对数据进行格式化,并将要依次写入的数据部分重新排序到目标区域,而不需要hdd的写头重复移动,解决了提高在硬盘驱动器(hdd)中处理多个输入数据流的效率的问题。

如上所述,hdd的容量持续增加。同时,虚拟化技术允许越来越多的客户机共享相同物理设备的资源(诸如hdd)。因此,单一的hdd可以并行接收多个写入操作。每个写入操作都是具有多个数据部分的单独的流的一部分,并且每个流都可以写到hdd的磁盘上的不同物理区域。然而,由于hdd是每个磁盘只具有一个物理写磁头的主轴存储设备,所以,所述写磁头必须在磁盘上的多个物理区域之间重复切换或移动,这会增加查找时间和轮作时间二者。这会降低hdd的效率以及存储系统的整体效率和性能,如以下参照图1所描述的。

本文描述的实施例通过提供减少处理多个流的查找和轮作时间的系统来解决这些挑战。所述系统可以分配日志区域,使用元数据来格式化数据,并连接数据部分以将数据写到特定的目标区域。所述系统可以接收来自多个流的输入数据,其中,输入数据包括多个数据部分。所述系统可以通过在每个数据部分前面插入头部并且在每个数据部分后面插入尾部来格式化数据部分(在第一数据缓冲区中)。头部和尾部包含元数据,这些元数据指示,例如,针对其相应流中的每个数据部分的序列和目标区域。所述系统可以将格式化的数据部分写入预分配日志区域。所述系统可以根据每个格式化数据部分的头部和尾部中指示的元数据对格式化的数据部分(在第二数据缓冲区中)进行排序,并可以基于顺序将数据部分连接起来。然后,所述系统可以依次将连接的数据部分写入特定的目标区域,这消除了所述系统为每个特定的数据部分查询和轮作到不同的目标区域的需要(如现有技术中)。

通过包含元数据(例如,头部和尾部),所述系统可以确保数据的一致性。此外,所述系统还可以通过利用元数据重构映射信息来提供容错,如下图所描述的。

因此,本文描述的实施例提供了一种改进存储系统的效率的系统,这种改进从根本上说是技术性的。改进的效率可以包括改进完成i/o操作的延时性能。所述系统提供了一个技术方案(即,具有预分配日志区域的hdd,用于存储来自多个流的流数据,并且格式化并随后连接数据部分,以便在目标区域中进行有序放置)以解决减少并行处理来自多个流的数据所涉及的查找和轮作时间的技术问题,这提高了服务质量(qos)保障和系统的整体效率。

现有技术中的用于便于数据放置的示例性环境

图1示出了根据现有技术的便于在存储设备中放置数据的示例性环境100。环境100描述了多个流(例如,流a、b、c和d),这些流将被并行地写到存储设备上的不同物理区域。每个物理区域可以对应于一个流,并且可以包含多个数据部分。例如,物理区域1110可以对应于输入写入数据的数据流a,数据部分a1-a8将写入区域1110。类似地,流b的数据部分b1-b8将写入物理区域2120,流c的数据部分c1-c8将写入物理区域3130,并且流d的数据部分d1-d8将写入物理区域4140。

所述系统可以按照箭头指示的顺序将数据写入hdd的磁盘上的特定区域。例如,所述系统可以从移动写磁头并将数据部分a1写入区域1110开始,将写磁头移动到区域2以将数据部分b1写入区域2120(箭头150),将写磁头移动到区域3以将数据部分c1写入数据区域3130(箭头152),将写磁头移动到区域4以将数据部分d1写入区域4140(箭头154),然后将写磁头移动返回到区域1以将数据部分a2写入区域1110(箭头156),等等。在环境100中,hdd不断地“切换”其写磁头的位置。也就是说,hdd每次必须移动它的写磁头来查找和轮作到不同的区域(例如,如箭头150-156所指示)。对于每次“切换”,hdd将它的写磁头移动到特定区域中的正确磁道上,并等待磁盘旋转到特定区域中的用于写入数据部分的正确位置。

随着并行流的数量增加,hdd的性能也随之降低。虽然每个流与物理硬盘中的顺序写入相对应,但是对不同物理位置(例如,区域中的磁道)的多个(例如,几十个)写入操作会导致效率下降。例如,查找时间和轮作时间的消耗可能导致延时增加和qos降低(由于重复的物理振动)。此外,为了处理多个数据流,hdddram写入缓存可能会承受越来越多数量的数据累积。这可能会导致数据一致性的问题。如果所述系统经历故障,诸如由于功率损耗或操作系统崩溃,所述系统可能会丢失保存在hdddram缓存中的数据。这些挑战会降低整个存储系统的效率,并且还会降低qos的保障级别。

使用预分配日志区域处理多个写入数据流的存储系统的示例性体系结构

本文描述的实施例提供了解决上述传统系统中描述的挑战的系统。图2示出了根据本申请的实施例的存储系统的示例性体系结构200。所述系统可以在hdd的非易失性存储器中分配特定的“日志区域”(例如,hdd的磁盘上的大区域,如下图6中所描述的“预分配日志区域”)。所述日志区域被配置为保存来自多个流的输入数据。在操作期间,所述系统可以接收来自多个流的输入数据(主机多流输入220)。来自多个流的输入数据可以进入hdd控制器的输入缓冲区202,并通过通信222传递给部件格式化器204。部件格式化器204可以通过在每个数据部分前面插入头部并且在每个数据部分后面插入尾部来格式化每个数据部分。因此,格式化的数据部分可以包括相应的数据部分、头部和尾部。所述头部和所述尾部可以指示数据部分的元数据,包括流中的相应数据部分的顺序和目标区域。格式化的数据部分如下图4所示。

在格式化数据部分时,所述系统可以(通过通信224)将格式化的数据部分依次写入一个预先分配的大日志区域206,而不需要切换区域。也就是说,格式化的数据部分可以依次写入所述一个预分配日志区域206,如下图3所示。一旦已经将相应数据部分写入日志区域206,所述系统就可以向主机确认数据已成功写入(未示出)。

所述系统可以执行正在进行的后台读取,以将(格式化的数据部分的)数据部分放置到磁盘的正确区域或物理位置。例如,所述系统可以将格式化的数据部分(通过通信226)检索到hdd控制器的中间缓冲区208中,并将格式化的数据部分(通过通信228)传递给部件连接器模块210。基于格式化的数据部分中指示的元数据(包括顺序和目标区域),部件连接器模块210可以识别出同一流的数据部分,对流中识别出的数据部分进行排序,并且将同一流的已排序的数据部分(不包含头部和尾部)依次写入所指示的目标区域(例如,通过通信230传输到数据区域1212、数据区域2214和数据区域n216中的一个)。也就是说,在将数据部分写入目标区域之前,所述系统可以从每个格式化的数据部分中移除头部和尾部。

图3示出了根据本申请的实施例的便于在存储设备中放置数据的示例性环境300。与环境100类似,环境300可以包含来自四个并行输入的流a、b、c和d的数据(其中每个流分别包含数据部分a1-a8、b1-b8、c1-c8和d1-d8)。所述系统可以接收流a-d的多个数据部分,并且可以在将数据部分写入日志区域302时将数据部分混合在一起(如从a1到b1到c1到d1到a2等的箭头所指示)。随后,当系统执行正在进行的后台读取以将每个数据部分放置在正确区域或物理位置(通过通信304)时,所述系统可以从日志区域302读出属于同一流的数据部分,将这些数据部分排序并封装(例如,连接它们),丢弃元数据(即,头部和尾部),并将有序的和连接的数据部分写入每个特定区域。

例如,使用格式化的数据部分所指示的元数据(例如,头部和尾部),所述系统(例如,通过图2的部件连接器模块210)可以从日志区域302识别出属于同一流的数据部分a1-a8,对数据部分a1-a8进行排序,连接来自数据部分a1-a8的数据(例如,通过移除元数据),并依次将连接的数据作为单个流的数据写入到区域1310,而无需在将流a的数据部分a1-a8写入到区域1310期间重复将写磁头移动到其他物理区域。

类似地,所述系统能够识别出日志区域302的属于同一流的数据部分b1-b8,对数据部分b1-b8进行排序,连接来自数据部分b1-b8的数据(例如,通过移除元数据),并依次将连接的数据作为单一流的数据写入到区域2320,而无需在将流b的数据部分b1-b8写入到区域2320期间重复将写磁头移动到其他物理区域。系统可针对流c的数据部分c1-c8执行类似的动作(将流c的数据部分c1-c8被写入到区域3330),以及针对流d的数据部分d1-d8执行类似的动作(将流d的数据部分d1-d8被写入到区域4340)。

因此,环境300示出了系统如何并行处理来自多个流的输入数据,并且在写入单个流的数据部分的同时避免重复地将写磁头切换到多个其它物理区域。

存储在预分配日志区域中的示例性格式化数据部分;示例性数据连接

图3中的环境300描述了多个输入流为相同长度或相似长度的场景。本文描述的实施例还可以采用如下方式通过格式化元数据(即,头部和尾部)处理不同长度的具有未排序部件的多个输入数据流的场景。

图4a示出了根据本申请的实施例的包括头部410、数据420和尾部440(如同存储在预分配日志区域中)的示例性的格式化数据部分402。所述系统可以在多个不同长度的输入流的多个数据部分的每个数据部分的前面插入头部410并且在所述每个数据部分的后面插入尾部440。头部410可以包括:作为相应数据部分的开始的部件起点412;作为相应数据部分的唯一标识符的部件标识符414;指示相应数据部分中包含的位数的部件长度416;作为相应数据部分将被写入到的区域的唯一标识符的目标区域标识符418;以及指示距开始写入相应数据部分的部件起点的位置的目标区域偏移量420。尾部440可包括:与头部410中指示的部件标识符412相匹配的部件标识符442;指示采用现有循环冗余校验(crc)编解码器编码的相应数据部分的签名的crc值444;以及指示相应数据部分的结束的部件终点446。如上所述,格式化数据部分402可以存储在hdd的预分配日志区域中。

图4b示出了根据本申请的实施例的来自图4a的示例性格式化的数据部分402的示例性数据连接(在中间缓冲区中)。在图4b的环境450中操作期间,所述系统可以将格式化的数据部分从预分配日志区域中读取到中间缓冲区(例如,图2中的从日志区域206到中间缓冲区208)。所述系统可以通过确认头部的部件标识符与尾部的部件标识符相匹配并且还通过基于尾部中指示的crc值对数据执行crc操作来验证格式化的数据部分。所述系统可以识别出哪些数据部分属于同一流,对数据部分进行排序,并将要依次写入的有序的数据部分连接到给定的目标区域。

例如,给定同一流的格式化数据部分i402和格式化数据部分j452,所述系统可以检查(头部410的)部件标识符414是否与(尾部440的)部件标识符442相匹配。所述系统还可以根据(尾部440的)crc值444检查格式化数据部分402的数据420的有效性。所述系统可以对被识别为属于同一流的经过验证的(格式化的)数据部分进行排序,例如,通过检查格式化的数据部分j452的目标区域偏移量(未示出)是否等于预先排序的格式化的数据部分i402的(头部410的)目标区域偏移量420与格式化的数据部分i的(头部410的)部件长度416之和。

此外,虽然数据部分的物理地址由文件系统的元数据维护,但是在发生故障时,所述系统可以提供额外的数据保护功能。如果所述系统检测到故障,所述系统可以根据数据部分的相应头部所指示的目标区域标识符和部件长度来重构数据部分的逻辑地址与数据部分的物理地址之间的映射。

用于便于将来自多个流的数据放置在存储设备中的示例性方法

图5a呈现了根据本申请的实施例的示出用于便于在存储设备中放置来自多个流的数据的方法的流程图。在操作期间,所述系统将存储设备的非易失性存储器的区域分配为日志区域,以获得预分配日志区域(操作502)。所述系统接收来自多个流的输入数据,其中,输入数据包括多个数据部分,并且其中,接收到的输入数据放置在第一数据缓冲区中(操作504)。所述系统通过在每个数据部分之前插入头部并且在每个数据部分之后插入尾部来格式化数据部分,其中,格式化的数据部分包括相应数据部分、头部和尾部,其中,头部和尾部指示流中的相应数据部分的顺序和目标区域(操作506)。所述系统将格式化的数据部分依次写入存储设备的非易失性存储器的预分配日志区域(操作508)。

如果当前写指针不位于日志区域的末尾位置(决策510),则在操作514处继续执行操作。如果当前写指针位于日志区域的末尾位置(决策510),则所述系统将当前写指针设置到日志区域的起点位置(操作512)。所述系统继续依次将格式化的数据部分写入日志区域(操作514),并在图5b的标签a处继续操作。因为数据是被依次写入到日志区域,因此,在将一个数据部分从日志区域复制并写入其对应的目标区域之后(如本文中在以下参照图5b所描述的),预先被复制出的数据占用的日志区域中的物理空间可以被标记或指示为准备好被重写。因此,当写指针到达预分配日志区域的末尾位置时,写指针可以循环回到日志区域的起点位置(例如,采用桶形移位方式),并且在预先被标记或指示为准备好被重写的物理空间上开始进行写入。

图5b呈现了根据本申请的实施例的示出便于在存储设备中放置来自多个流的数据的方法的流程图530。在操作期间,所述系统将格式化的数据部分从日志区域读入第二数据缓冲区(操作532)。针对相应的格式化的数据部分,所述系统通过以下操作来对所述第二数据缓冲区中的格式化的数据部分进行验证:确定由其相应头部指示的部件标识符与由其相应尾部指示的部件标识符相匹配;以及基于由其相应尾部指示的crc值对相应数据部分进行校验(操作534)。所述系统按数据部分相应的头部和尾部所指示的序列连接数据部分(操作536)。

如果所述系统没有检测到故障(决策538),则在操作542处继续执行操作。如果所述系统检测到故障(决策538),则所述系统将基于数据部分相应的头部所指示的目标区域标识符和部件长度来重构数据部分的逻辑地址与数据部分的物理地址之间的映射(操作540)。所述系统基于数据部分相应的头部和尾部所指示的目标区域来依次将连接的数据部分写入非易失性存储器中(操作542)。如果所述系统达到或确定最近的写入不是与多个流关联的最后一次写入(决策544),则在图5a的操作504处继续执行操作。如果所述系统达到或确定最近的写入是与多个流关联的最后一次写入(决策544),则操作返回。

共享备用扇区池(具有可相互配置的容量)

图6示出了根据本申请的实施例的示例性环境600,包括具有预分配日志区域620和共享备用扇区池(具有可相互配置的容量)630的硬盘驱动器602。hdd602可以包括控制器604。hdd602还可以包括多个磁盘,诸如磁盘610。

在hdd602中,所述系统可以将磁盘610的一些磁道配置成作为日志区域(即,预分配日志区域620)进行分配。然而,分配该日志区域会导致hdd中的可用于存储的总容量减少。为了解决这个问题,所述系统可以利用hdd的隐藏容量。hdd通常被设计和制造为具有比其给定的规定或名义容量大的容量。在发货之前,制造商可以屏蔽坏磁道/扇区(称为“介质缺陷屏蔽”)。在介质缺陷屏蔽之后,任何超过名义容量的附加剩余容量都可以用作备用扇区池,例如,用于挂起扇区重映射。一般来说,备用扇区池包含的扇区比在hdd操作期间动态生成的挂起扇区数量多得多。

在本文描述的实施例中,所述系统可以将备用扇区池配置为共享的可相互配置的区域(即,共享备用扇区池(具有可相互配置的容量)630),该区域可用于挂起扇区重置以及通过因预分配日志区域而要求额外存储容量的数据进行利用。

示例性计算机系统和装置

图7示出了根据本申请的实施例的便于在存储设备中放置数据的示例性计算机系统700。计算机系统700包括处理器702、控制器704、易失性存储器706和存储设备708。计算机系统700还可以包括易失性存储器(未显示),该易失性存储器可以包括例如充当托管存储器以及可用于存储一个或多个存储器池的ram。非易失性存储器706可以包括永久性存储装置,例如,通过控制器704访问的带有多个交叠磁道带的叠瓦式磁记录。此外,计算机系统700可以联接到显示设备710、键盘712和指向设备714。存储设备708可以存储操作系统716、内容处理系统718以及数据734。

内容处理系统718可以包括指令,当指令被计算机系统700执行时,指令可以使计算机系统700执行本公开中描述的方法和/或过程。具体地,内容处理系统718可以包括接收和发送包括来自多个流的输入数据、数据部分、格式化的数据部分、头部和尾部的数据包的指令(通信模块720)。

内容处理系统718还可以包括接收来自多个流的输入数据的指令,其中,所述输入数据包括多个数据部分(通信模块720)。内容处理系统718可以包括用于通过在每个数据部分之前插入头部并且在每个数据部分之后插入尾部来格式化数据部分的指令,其中,格式化的数据部分包括相应数据部分、头部和尾部,其中,头部和尾部指示流中的相应数据部分的顺序和目标区域(数据格式化模块722)。内容处理系统718可以包括用于将格式化的数据部分依次写入存储设备的非易失性存储器中的预分配日志区域的指令(日志区域管理模块728)。内容处理系统718可以包括用于按数据部分相应的头部和尾部所指示的顺序连接数据部分的指令(数据连接模块726)。内容处理系统718可以包括用于基于由数据部分相应的头部和尾部所指示的目标区域将连接的数据部分依次写入非易失性存储器的指令(数据写入模块730)。

内容处理系统718可以包括用于检测故障并且用于根据数据部分相应的头部所指示的目标区域标识符和部件长度重构数据部分的逻辑地址与数据部分的物理地址之间的映射的指令(故障管理模块732)。内容处理系统718可以包括用于验证第二数据缓冲区中的格式化的数据部分的指令(数据验证模块724)。内容处理系统718可以包括将存储设备的非易失性存储器的区域分配为预分配日志区域的指令(日志区域管理模块728)。

数据734可以包括需要作为输入的任何数据或者通过本公开中描述的方法和/或过程所生成的作为输出的任何数据。具体地,数据734可以至少存储:数据;数据流;数据部分;格式化的数据部分;头部;尾部;故障指示器;逻辑地址;物理地址;逻辑地址和物理地址之间的映射;数据缓冲区;部件起点;部件标识符;部件长度;目标区域标识符;目标区域偏移量;在尾部中指示的部件标识符;crc值;编码数据;写指针的位置的指示符;区域中开始或结束的指示符;备用扇区池或区域;区域;日志区域;预分配日志区域;目标区域;数据部分;格式化的数据部分;经过验证的数据部分;经过排序的数据部分;连接的数据;以及对数据部分进行验证或检查的指示符。

图8示出了根据本申请的实施例的便于将数据放置在存储设备中的示例性装置800。装置800可以包括多个可通过有线、无线、量子光或电气通信通道相互通信的单元或设备。装置800可以使用一个或更多个集成电路来实现,并且可以包括比图8所示的单元或设备少或多的单元或设备。此外,装置800可以被集成在计算机系统中,或者被实现为能够与其他计算机系统和/或设备通信的独立设备。具体地,装置800可以包括执行与图7中的计算机系统700的模块720-732相似的功能或操作的单元802-814,包括:通信单元802;数据格式化单元804;数据验证单元806;数据连接单元808;日志区域管理单元810;数据写入单元812;以及故障管理单元814。

该具体实施方式中描述的数据结构和代码通常被存储在计算机可读存储介质上,所述计算机可读存储介质可以是可以存储代码和/或数据以供计算机系统使用的任何设备或介质。计算机可读存储介质包括但不限于易失性存储器、非易失性存储器、磁性和光学存储装置(诸如磁盘、磁带、光盘(cd)、数码多功能光盘或数码视像光盘(dvd))以及现在已知或后续研发出的能够存储计算机可读介质的其它介质。

具体实施方式部分所描述的方法和过程可以被体现为代码和/或数据,这些代码和/或数据可以被存储在如上文所描述的计算机可读存储介质中。当计算机系统读取并执行存储在计算机可读存储介质上的代码和/或数据时,计算机系统执行体现为数据结构和代码并且存储在计算机可读存储介质中的方法和过程。

此外,上述方法和过程可以被包含在硬件模块中。例如,硬件模块可以包含但不限于专用集成电路(asic)芯片、现场可编程门阵列(fpga)和其他已知的或后续研发出的可编程逻辑器件。当硬件模块被激活时,硬件模块执行硬件模块中包含的方法和过程。

已经仅出于说明和描述的目的提供了本文描述的以上实施例。它们并不旨在为详尽的或将本文所描述的实施例限于所公开的形式。因此,许多修改和变动对于本领域技术人员而言是显而易见的。此外,以上公开不旨在限制本文描述的实施例。本文所描述的实施例的范围由所附的权利要求限定。

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