掌桥专利:专业的专利平台
掌桥专利
首页

数据处理方法、装置、设备及存储介质

文献发布时间:2023-06-19 18:37:28


数据处理方法、装置、设备及存储介质

技术领域

本公开涉及计算机技术领域,尤其涉及一种数据处理方法、装置、设备及存储介质。

背景技术

当前,数据呈现爆炸性增长,数据类型的多样化、数据产生速度的不断增长都对数据处理提出了越来越高的要求

目前,可以将待计算的数据存储在现场可编程逻辑门阵列(Field ProgrammableGate Array,FPGA)板卡的双倍速率同步动态随机存储器(Double Data Rate,DDR)中,然后通过FPGA的内部逻辑资源对板卡DDR中的数据进行计算得到想要的结果,达到高性能硬件数据计算加速的效果。

但是,现有FPGA板卡的DDR内存容量最大为64GB并且其内部逻辑单元为固定数量无法扩展。对于超出存储容量的数据无法在单板卡中存储,对于超出单板卡固有逻辑资源的任务,也无法在单板卡中计算。当有待计算数据的数据量和业务逻辑时超过单板卡容量时,会造成存储容量不足,计算资源不够的情况。因此,亟需一种数据处理方法解决大数据量与复杂运算情况下单板卡存储和计算无法满足数据处理需求的情况。

发明内容

为了解决上述技术问题,本公开提供了一种数据处理方法、装置、设备及存储介质。

本公开实施例的第一方面提供了一种数据处理方法,该方法包括:

接收用户程序发送的数据;

基于数据的大小,将数据分配到N个现场可编程逻辑门阵列FPGA板卡中进行存储,N为大于1的正整数;

接收用户程序发送的数据计算任务;

基于FPGA板卡中的任一空闲状态板卡,对数据计算任务对应的目标数据进行计算,得到数据计算结果;

将数据计算结果发送给用户程序。

本公开实施例的第二方面提供了一种数据处理装置,该装置包括:

第一接收模块,用于接收用户程序发送的数据;

分配模块,用于基于数据的大小,将数据分配到N个现场可编程逻辑门阵列FPGA板卡中进行存储,N为大于1的正整数;

第二接收模块,用于接收用户程序发送的数据计算任务;

第一计算模块,用于基于FPGA板卡中的任一空闲状态板卡,对数据计算任务对应的目标数据进行计算,得到数据计算结果;

发送模块,用于将数据计算结果发送给用户程序。

本公开实施例的第三方面提供了一种计算机设备,该设备包括存储器和处理器,其中,存储器中存储有计算机程序,当计算机程序被处理器执行时,可以实现上述第一方面的数据处理方法。

本公开实施例的第四方面提供了一种计算机可读存储介质,存储介质中存储有计算机程序,当计算机程序被处理器执行时,可以实现上述第一方面的数据处理方法。

本公开实施例提供的技术方案与现有技术相比具有如下优点:

本公开实施例,通过接收用户程序发送的数据;基于数据的大小,将数据分配到N个现场可编程逻辑门阵列FPGA板卡中进行存储,N为大于1的正整数;接收用户程序发送的数据计算任务;基于FPGA板卡中的任一空闲状态板卡,对数据计算任务对应的目标数据进行计算,得到数据计算结果;将数据计算结果发送给用户程序,可以通过在多个FPGA板卡中协同存储和计算数据,满足大数据量与复杂运算情况下的数据处理需求,提高了数据处理效率。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本公开实施例提供的一种数据处理方法的流程图;

图2是本公开实施例提供的一种板卡物理连接的结构示意图;

图3是本公开实施例提供的另一种数据处理方法的流程图;

图4是本公开实施例提供的又一种数据处理方法的流程图;

图5是本公开实施例提供的一种数据处理装置的结构示意图;

图6是本公开实施例提供的一种计算机设备的结构示意图。

具体实施方式

为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。

应当理解,本公开的方法实施方式中记载的各步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。

当前,数据呈现爆炸性增长,数据类型的多样化、数据产生速度的不断增长都对数据处理提出了越来越高的要求

目前,可以将待计算的数据存储在FPGA板卡的DDR中,然后通过FPGA的内部逻辑资源对板卡DDR中的数据进行计算得到想要的结果,达到高性能硬件数据计算加速的效果。

但是,现有FPGA板卡的DDR内存容量最大为64GB并且其内部逻辑单元为固定数量无法扩展。对于超出存储容量的数据无法在单板卡中存储,对于超出单板卡固有逻辑资源的任务,也无法在单板卡中计算。当有待计算数据的数据量和业务逻辑时超过单板卡容量时,会造成存储容量不足,计算资源不够的情况。因此,亟需一种数据处理方法解决大数据量与复杂运算情况下单板卡存储和计算无法满足数据处理需求的情况。

针对相关技术在数据处理方面存在的缺陷,本公开实施例提供了一种数据处理方法、装置、设备及存储介质,可以通过在多个FPGA板卡中协同存储和计算数据,满足大数据量与复杂运算情况下的数据处理需求,提高了数据处理效率。

本公开实施例提供的数据处理方法,可以由一种计算机设备来执行,该设备可以被理解为任意一种具有处理能力和计算能力的设备,该设备可以包括但不限于诸如服务器、智能手机、笔记本电脑、平板电脑(PAD)、车载终端(例如车载导航终端)以及诸如台式计算机、智能家居设备等的电子设备。

为了更好的理解本公开实施例的发明构思,下面结合示例性的实施例对本公开实施例的技术方案进行说明。

图1是本公开实施例提供的一种数据处理方法的流程图,如图1所示,本实施例提供的数据处理方法可以包括步骤110-150:

步骤110、接收用户程序发送的数据。

本公开实施例中的用户程序可以理解为用户端安装的应用程序。

本公开实施例中,用户程序可以将数据发送给计算机设备,计算机设备可以接收用户程序发送的数据。

步骤120、基于数据的大小,将数据分配到N个现场可编程逻辑门阵列FPGA板卡中进行存储,N为大于1的正整数。

本公开实施例中,数据的大小可以理解为数据的数据量大小。

本公开实施例中,N个现场可编程逻辑门阵列FPGA板卡可以基于高速串行计算机扩展总线标准(peripheral component interconnect express,PCIe)安装于计算机设备中,N为大于1的正整数。

例如,如图2所示,图2是本公开实施例提供的一种板卡物理连接的结构示意图,计算机设备A中提供4个PCIe插槽,每个FPGA板卡中包括PCIe接口,FPGA板卡1通过PCIe接口1安装在PCIe插槽1中,FPGA板卡2通过PCIe接口2安装在PCIe插槽2中,FPGA板卡3通过PCIe接口3安装在PCIe插槽3中,FPGA板卡4通过PCIe接口4安装在PCIe插槽4中,由此,计算机设备A中安装有4个FPGA板卡。

计算机设备中安装有FPGA板卡管理程序,计算机设备接收到用户程序发送的数据之后,计算机设备中的FPGA板卡管理程序可以基于数据的大小,将数据分配到N个现场可编程逻辑门阵列FPGA板卡中进行存储。

在一些实施例中,基于数据的大小,将数据分配到N个现场可编程逻辑门阵列FPGA板卡中进行存储,可以包括步骤1201-1202:

步骤1201、计算数据的大小与FPGA板卡的数量N的比值,得到平均数据量。

本公开实施例中,计算机设备中的FPGA板卡管理程序可以计算数据的大小与FPGA板卡的数量N的比值,得到平均数据量。

步骤1202、在各FPGA板卡中分别存储平均数据量大小的数据。

本公开实施例中,计算机设备可以在各FPGA板卡中分别存储平均数据量大小的数据,即每个FPGA板卡中存储平均数据量大小的数据。

在另一些实施例中,基于数据的大小,将数据分配到N个现场可编程逻辑门阵列FPGA板卡中进行存储,可以包括步骤1211-1212:

步骤1211、确定N个FPGA板卡的排列顺序。

本公开实施例中,计算机设备可以确定N个FPGA板卡的排列顺序。

步骤1212、按照排列顺序,基于数据的大小和各FPGA板卡的数据容量限值,从首个FPGA板卡开始,将数据依次存储至FPGA板卡中。

本公开实施例中,数据容量限值可以理解为FPGA板卡能够存储的最大数据量的值。

本公开实施例中,计算机设备可以按照N个FPGA板卡的排列顺序,基于数据的大小和各FPGA板卡的数据容量限值,从首个FPGA板卡开始,将数据依次存储至FPGA板卡中,具体的,首先将数据存储至第一个FPGA板卡中,当第一个FPGA板卡的容量大小达到第一个FPGA板卡的数据容量限值时,将数据存储至第一个FPGA板卡之后的第二个FPGA板卡中。依次类推,将数据依次存储至FPGA板卡中。

步骤130、接收用户程序发送的数据计算任务。

本公开实施例中,数据计算任务可以理解为数据计算任务。

本公开实施例中,当用户程序有数据计算任务时,可以将数据计算任务发送给计算机设备,计算机设备可以接收用户程序发送的数据计算任务。

步骤140、基于FPGA板卡中的任一空闲状态板卡,对数据计算任务对应的目标数据进行计算,得到数据计算结果。

本公开实施例中,空闲状态可以理解为没有计算任务的非工作状态,数据计算任务对应的目标数据可以理解为数据计算任务需要的数据,目标数据存储于FPGA板卡中。

本公开实施例中,计算机设备在接收到用户程序发送的数据计算任务之后,可以从N个FPGA板卡中获取数据计算任务对应的目标数据,然后在N个FPGA板卡中,选择任一空闲状态板卡对目标数据进行计算,得到数据计算结果。具体的,计算机设备可以基于应用程序接口标准(Application Program Interface,API),采用预设的计算方法对目标数据进行计算,得到数据计算结果。预设的计算方法可以包括矩阵数据求和、数据排序以及计算标准差等,具体可以参考相关技术,这里不再赘述。应用程序接口标准API可以理解为应用程序可用以与计算机操作系统交换信息和命令的标准集。

步骤150、将数据计算结果发送给用户程序。

本公开实施例中,计算机设备在得到数据计算结果之后,可以将该数据计算结果发送给用户程序。

本公开实施例,通过接收用户程序发送的数据;基于数据的大小,将数据分配到N个现场可编程逻辑门阵列FPGA板卡中进行存储,N为大于1的正整数;接收用户程序发送的数据计算任务;基于FPGA板卡中的任一空闲状态板卡,对数据计算任务对应的目标数据进行计算,得到数据计算结果;将数据计算结果发送给用户程序,可以通过在多个FPGA板卡中协同存储和计算数据,满足大数据量与复杂运算情况下的数据处理需求,提高了数据处理效率。

在本公开的一些实施例中,上述基于数据的大小,将数据分配到N个现场可编程逻辑门阵列FPGA板卡中进行存储之后,计算机设备还可以监测各FPGA板卡的剩余存储空间大小,在一些实施例中,若剩余存储空间大小小于预设阈值,则计算机设备可以发出提示信息,提示信息中可以包括FPGA板卡中的数据需进行清理,以提示管理员对该FPGA板卡中的数据进行清理;在另一些实施例中,若剩余存储空间大小小于预设阈值,则计算机设备可以自动对该FPGA板卡中的数据进行清理,以使该FPGA板卡的剩余存储空间大小大于或等于预设阈值。其中,预设阈值可以根据实际需要进行设定,这里不作具体限定。由此,可以保证FPGA板卡的数据存储空间满足实际的数据存储要求。

图3是本公开实施例提供的一种数据处理方法的流程图,如图3所示,本实施例提供的数据处理方法可以包括步骤310-390:

步骤310、接收用户程序发送的数据。

步骤320、基于数据的大小,将数据分配到N个现场可编程逻辑门阵列FPGA板卡中进行存储,N为大于1的正整数。

步骤330、接收用户程序发送的数据计算任务。

本公开实施例中的步骤310-330可以参考上述步骤110-130的内容,这里不再赘述。

步骤340、判断各FPGA板卡中是否存在空闲状态的板卡。

本公开实施例中,计算机设备可以判断各FPGA板卡中是否存在空闲状态的板卡,FPGA板卡的工作状态可以包括空闲状态和非空闲状态,空闲状态为没有计算任务的状态,非空闲状态为正在进行数据计算的状态。

步骤350、若FPGA板卡中存在空闲状态的板卡,则将空闲状态的板卡中的任一空闲状态板卡确定为目标板卡。

本公开实施例中,若FPGA板卡中存在空闲状态的板卡,则计算机设备可以从处于空闲状态的板卡中,选择任一空闲状态板卡作为目标板卡。目标板卡可以理解为处理目标数据的板卡。

步骤360、若FPGA板卡中不存在空闲状态的板卡,则等待FPGA板卡中出现空闲状态的板卡,将空闲状态的板卡中的任一空闲状态板卡确定为目标板卡。

本公开实施例中,若FPGA板卡中不存在空闲状态的板卡,说明计算机设备中的所有FPGA板卡均在进行数据计算,则计算机设备可以等待FPGA板卡中出现空闲状态的板卡,在FPGA板卡中出现空闲状态的板卡时,将空闲状态的板卡中的任一空闲状态板卡确定为目标板卡。

步骤370、从FPGA板卡中获取数据计算任务对应的目标数据。

本公开实施例中,计算机设备中的板卡管理程序可以从FPGA板卡中获取数据计算任务对应的目标数据。

在一些实施例中,从FPGA板卡中获取数据计算任务对应的目标数据,可以包括步骤3701-3705:

步骤3701、检测目标板卡中是否存在目标数据。

本公开实施例中,计算机设备在确定目标板卡之后,可以检测目标板卡中是否存在目标数据。

步骤3702、若目标板卡中存在目标数据,则从目标板卡中获取目标数据。

本公开实施例中,若目标板卡中存在目标数据,则计算机设备可以从目标板卡中获取目标数据。

步骤3703、若目标板卡中不存在目标数据或目标板卡中存在部分目标数据,则计算目标板卡中的缺失数据。

本公开实施例中,若目标板卡中不存在目标数据或目标板卡中存在部分目标数据,则计算机设备可以计算目标板卡中的缺失数据。缺失数据可以理解为目标板卡中缺失的目标数据。

步骤3704、从FPGA板卡中的剩余板卡中,提取缺失数据,并将缺失数据发送至目标板卡中。

本公开实施例中的剩余板卡可以理解为N个FPGA板卡中,除目标板卡之外的其余板卡。

本公开实施例中,在确定缺失数据之后,计算机设备可以从FPGA板卡中的剩余板卡中,提取缺失数据,并将缺失数据发送至目标板卡中。

步骤3705、从目标板卡中获取目标数据。

本公开实施例中,在将缺失数据发送至目标板卡中之后,此时目标板卡中存在完整的目标数据,计算机设备可以从目标板卡中获取完整的目标数据。

步骤380、基于目标板卡,对目标数据进行计算,得到数据计算结果。

本公开实施例中,计算机设备可以基于目标板卡,对目标数据进行计算,得到数据计算结果。具体计算方法可以参考上述步骤140的相关内容,这里不再赘述。

步骤390、将数据计算结果发送给用户程序。

本公开实施例中的步骤可以参考上述步骤150,这里不再赘述。

由此,可以根据FPGA板卡的工作状态进行数据计算,通过在多个FPGA板卡中协同存储和计算数据,满足大数据量与复杂运算情况下的数据处理需求,提高了数据处理效率。

图4是本公开实施例提供的一种数据处理方法的流程图,如图4所示,本实施例提供的数据处理方法可以包括步骤410-480:

步骤410、将FPGA板卡划分为主板卡和计算板卡。

本公开实施例中,计算机设备中的板卡管理程序可以将N个FPGA板卡划分为主板卡和计算板卡,主板卡可以理解为用于管理N个FPGA板卡的板卡,主板卡中存储有板卡管理程序以及板卡标识列表,计算板卡可以理解为用于数据计算的板卡。通常,选择N个FPGA板卡中的一个板卡作为主板卡,其余板卡作为计算板卡。

计算机设备中的板卡管理程序可以随机进行板卡划分,也可以基于管理员的设置操作进行划分,这里不作具体限定。

步骤420、获取FPGA板卡的数量以及各FPGA板卡的板卡标识和排列顺序。

本公开实施例中,计算机设备中的板卡管理程序可以获取计算机设备中的FPGA板卡的数量以及各FPGA板卡的板卡标识和排列顺序。板卡标识可以理解为唯一确定该FPGA板卡的身份信息,排列顺序可以理解为多个FPGA板卡在计算机设备中的排列顺序。

步骤430、将板卡的数量保存至主板卡中的板卡列表中以及将板卡标识按照排列顺序保存至主板卡中的板卡列表中。

本公开实施例中,计算机设备中的板卡管理程序可以将板卡数量保存至主板卡中的板卡列表中以及将板卡标识按照排列顺序保存至主板卡中的板卡列表中。

步骤440、接收用户程序发送的数据。

步骤450、基于数据的大小,将数据分配到N个现场可编程逻辑门阵列FPGA板卡中进行存储,N为大于1的正整数。

步骤460、接收用户程序发送的数据计算任务。

本公开实施例中的步骤440-460的内容可以参考上述步骤110-130的内容,这里不再赘述。

步骤470、从FPGA板卡中的计算板卡中,选择任一空闲状态的计算板卡对目标数据进行计算,得到数据计算结果。

本公开实施例中,计算机设备在接收到用户程序发送的数据计算任务之后,可以从FPGA板卡中的计算板卡中,选择任一空闲状态的计算板卡对目标数据进行计算,得到数据计算结果。具体计算方法可以参考上述步骤140中的相关内容,这里不再赘述。

步骤480、将数据计算结果发送给用户程序。

本公开实施例中的步骤可以参考上述步骤150的内容,这里不再赘述。

由此,可以将多个FPGA板卡进行职责划分,通过在多个FPGA板卡中协同存储和计算数据,满足大数据量与复杂运算情况下的数据处理需求,提高了数据处理效率。

图5是本公开实施例提供的一种数据处理装置的结构示意图,该装置可以被理解为上述计算机设备或者上述计算机设备中的部分功能模块。如图5所示,该数据处理装置500可以包括:

第一接收模块510,用于接收用户程序发送的数据;

分配模块520,用于基于数据的大小,将数据分配到N个现场可编程逻辑门阵列FPGA板卡中进行存储,N为大于1的正整数;

第二接收模块530,用于接收用户程序发送的数据计算任务;

第一计算模块540,用于基于FPGA板卡中的任一空闲状态板卡,对数据计算任务对应的目标数据进行计算,得到数据计算结果;

发送模块550,用于将数据计算结果发送给用户程序。

可选的,上述分配模块520,可以包括:

第一计算子模块,用于计算数据的大小与FPGA板卡的数量N的比值,得到平均数据量;

第一存储子模块,用于在各FPGA板卡中分别存储平均数据量大小的数据;或,

第一确定子模块,用于确定所述N个FPGA板卡的排列顺序;

第二存储子模块,用于按照所述排列顺序,基于所述数据的大小和各所述FPGA板卡的数据容量限值,从首个所述FPGA板卡开始,将所述数据依次存储至所述FPGA板卡中。

可选的,上述第一计算模块540,可以包括:

判断子模块,用于判断各FPGA板卡中是否存在空闲状态的板卡;

第二确定子模块,用于若FPGA板卡中存在空闲状态的板卡,则将空闲状态的板卡中的任一空闲状态板卡确定为目标板卡;

等待子模块,用于若FPGA板卡中不存在空闲状态的板卡,则等待FPGA板卡中出现空闲状态的板卡,将空闲状态的板卡中的任一空闲状态板卡确定为目标板卡;

获取子模块,用于从FPGA板卡中获取数据计算任务对应的目标数据;

第二计算子模块,用于基于目标板卡,对目标数据进行计算,得到数据计算结果。

可选的,上述获取子模块,可以包括:

检测单元,用于检测目标板卡中是否存在目标数据;

第一获取单元,用于若目标板卡中存在目标数据,则从目标板卡中获取目标数据;

计算单元,用于若目标板卡中不存在目标数据或目标板卡中存在部分目标数据,则计算目标板卡中的缺失数据;

提取单元,用于从FPGA板卡中的剩余板卡中,提取缺失数据,并将缺失数据发送至目标板卡中;

第二获取单元,用于从目标板卡中获取目标数据。

可选的,上述数据处理装置500,可以包括:

划分模块,用于将FPGA板卡划分为主板卡和计算板卡;

获取模块,用于获取FPGA板卡的数量以及各FPGA板卡的板卡标识和排列顺序;

保存模块,用于将数量保存至主板卡中的板卡列表中以及将板卡标识按照排列顺序保存至主板卡中的板卡列表中。

可选的,上述数据处理装置500,可以包括:

第二计算模块,用于从FPGA板卡中的计算板卡中,选择任一空闲状态的计算板卡对目标数据进行计算,得到数据计算结果。

可选的,上述数据处理装置500,可以包括:

监测模块,用于监测各所述FPGA板卡的剩余存储空间大小;

提示模块,用于若所述剩余存储空间大小小于预设阈值,则发出提示信息,所述提示信息中包括所述FPGA板卡中的数据需进行清理;或,

清理模块,用于若所述剩余存储空间大小小于预设阈值,则自动对所述FPGA板卡中的数据进行清理,以使所述FPGA板卡的剩余存储空间大小大于或等于预设阈值。

本公开实施例提供的数据处理装置可以实现上述任一实施例的方法,其执行方式和有益效果类似,在这里不再赘述。

本公开实施例还提供一种计算机设备,该计算机设备包括处理器和存储器,其中,存储器中存储有计算机程序,当该计算机程序被该处理器执行时可以实现上述任一实施例的方法,其执行方式和有益效果类似,在这里不再赘述。

本公开实施例中的计算机设备可以被理解为任意一种具有处理能力和计算能力的设备,该设备可以包括但不限于诸如服务器、智能手机、笔记本电脑、平板电脑(PAD)、车载终端(例如车载导航终端)以及诸如台式计算机、智能家居设备等的电子设备。

图6是本公开实施例提供的一种计算机设备的结构示意图,如图6所示,计算机设备600可以包括处理器610和存储器620,其中,存储器620中存储有计算机程序621,当该计算机程序621被该处理器610执行时可以实现上述任一实施例提供的方法,其执行方式和有益效果类似,在这里不再赘述。

当然,为了简化,图6中仅示出了该计算机设备600中与本发明有关的组件中的一些,省略了诸如总线、输入/输出接口、输入装置和输出装置等的组件。除此之外,根据具体应用情况,计算机设备600还可以包括任何其他适当的组件。

本公开实施例提供了一种计算机可读存储介质,该存储介质中存储有计算机程序,当该计算机程序被处理器执行时,可以实现上述任一实施例的方法,其执行方式和有益效果类似,在这里不再赘述。

上述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

上述计算机程序可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算机设备上部分在远程计算机设备上执行、或者完全在远程计算机设备或服务器上执行。

以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

技术分类

06120115631004