一种数据处理方法、装置、设备及机器可读存储介质

文档序号:1296040 发布日期:2020-08-07 浏览:4次 >En<

阅读说明:本技术 一种数据处理方法、装置、设备及机器可读存储介质 (Data processing method, device, equipment and machine-readable storage medium ) 是由 颜益 于 2020-03-20 设计创作,主要内容包括:本公开提供一种数据处理方法、装置、设备及机器可读存储介质,该方法包括:保存第一数据:判断本地保存的第二数据中与第一数据是否有相同的第三数据;若有,保存第一数据中与第二数据不同的第四数据;若无,保存第一数据;读取第一数据:若有第三数据和第四数据,则将第三数据和第四数据组合,读出第一数据;如果没有第三数据和第四数据,读出第一数据。通过本公开的技术方案,在保存数据时进行差异化保存,在读取时组合读取,在保证数据完整的前提下,有效节省了存储介质的占用空间,增大了存储介质的存储性能。(The present disclosure provides a data processing method, apparatus, device and machine-readable storage medium, the method comprising: saving the first data: judging whether third data which is the same as the first data exists in the second data stored locally; if yes, fourth data different from the second data in the first data is stored; if not, storing the first data; reading the first data: if the third data and the fourth data exist, the third data and the fourth data are combined, and the first data are read; if there is no third data and no fourth data, the first data is read out. Through the technical scheme, differential storage is carried out when data are stored, combined reading is carried out when data are read, the occupied space of the storage medium is effectively saved on the premise that the completeness of the data is guaranteed, and the storage performance of the storage medium is improved.)

一种数据处理方法、装置、设备及机器可读存储介质

技术领域

本公开涉及通信技术领域,尤其是涉及一种数据处理方法、装置、设备及机器可读存储介质。

背景技术

BIOS:"Basic Input Output System"即"基本输入输出系统"。它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。

发明内容

本公开提供一种数据处理方法、装置及电子设备、机器可读存储介质,以改善无法保存数据的问题。

本公开技术方案如下:

本公开提供了一种数据处理方法,所述方法包括:保存第一数据:判断本地保存的第二数据中与第一数据是否有相同的第三数据;若有,保存第一数据中与第二数据不同的第四数据;若无,保存第一数据;读取第一数据:若有第三数据和第四数据,则将第三数据和第四数据组合,读出第一数据;如果没有第三数据和第四数据,读出第一数据。

在其中一种实施方式中,保存第一数据,包括:将第一数据分解为第三数据和第五数据进行保存,其中,第三数据是第一数据的属性数据。

在其中一种实施方式中,数据中携带组标识,用于标识数据属性。

在其中一种实施方式中,判断本地保存的第二数据中与第一数据是否有相同的第三数据,包括:判断本地保存的组标识中是否有与第一数据中携带的组标识相同的标识;如果有,在相同标识对应的数据中,将第一数据中与第三数据不同的数据作为第四数据保存;如果没有,保存第一数据。

本公开还提供了一种数据处理装置,所述装置包括:判断模块,用于判断本地保存的第二数据中与第一数据是否有相同的第三数据;保存模块,用于根据判断模块的判断结果保存数据:若判断结果为是,保存第一数据中与第二数据不同的第四数据;若判断结果是否,保存第一数据;读取模块,用于读取第一数据:若有第三数据和第四数据,则将第三数据和第四数据组合,读出第一数据;如果没有第三数据和第四数据,读出第一数据。

在其中一种实施方式中,所述保存模块,在保存第一数据时,将第一数据分解为第三数据和第五数据进行保存,其中,第三数据是第一数据的属性数据。

在其中一种实施方式中,数据中携带组标识,用于标识数据属性;所述判断模块,用于判断本地保存的组标识中是否有与第一数据中携带的组标识相同的标识;所述保存模块,用于在所述判断模块判断结果为是时,在相同标识对应的数据中,将第一数据中与第三数据不同的数据作为第四数据保存;用于在所述判断结果是否时,保存第一数据。

本公开还提供了一种电子设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令,以实现上述任一所述的方法。

本公开还提供了一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现上述任一所述的方法。

本公开提供的上述技术方案至少带来了以下有益效果:

通过本公开的技术方案,在保存数据时进行差异化保存,在读取时组合读取,在保证数据完整的前提下,有效节省了存储介质的占用空间,增大了存储介质的存储性能。

附图说明

为了更加清楚地说明本公开实施方式或者现有技术中的技术方案,下面将对本公开实施方式或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中记载的一些实施方式,对于本领域普通技术人员来讲,还可以根据本公开实施方式的这些附图获得其他的附图。

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

图2是本公开一种实施方式中的数据处理装置的结构图;

图3是本公开一种电子设备的硬件结构图。

具体实施方式

在本公开实施方式使用的术语仅仅是出于描述特定实施方式的目的,而非限制本公开。本公开和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本公开实施方式可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

请参见图1,本公开提供了一种数据处理方法,所述方法包括:

步骤101:保存第一数据:判断本地保存的第二数据中与第一数据是否有相同的第三数据;若有,保存第一数据中与第二数据不同的第四数据;若无,保存第一数据;

步骤102:读取第一数据:若有第三数据和第四数据,则将第三数据和第四数据组合,读出第一数据;如果没有第三数据和第四数据,读出第一数据。

在其中一种实施方式中,同一种设备的数据会存在相似点,因此,可以将相同部分与不同部分进行区分。如果设备生成了一个新的数据,则将该数据保存,作为第二数据。如果该设备又生成了一个新的数据,此时的新数据作为第一数据进行保存;在保存第一数据时,可以将第一数据与本地保存的第二数据进行比较,如果有相同部分,则将相同部分作为第三数据,将不同部分作为第四数据,则保存第一数据时,仅保存第四数据即可。待到读取第一数据时,将第三数据和第四数据组合,即可得到第一数据,读出即可。

在其中一种实施方式中,也可以将第二数据和第四数据组合得到第一数据,即将第二数据中不同于第四数据的其他数据与第四数据组合得到第一数据,或者,用第四数据替代第二数据中的相应数据后得到第一数据。

在其中一种实施方式中,保存第一数据,包括:将第一数据分解为第三数据和第五数据进行保存,其中,第三数据是第一数据的属性数据。同一种设备其数据属性是相同的。

在其中一种实施方式中,数据中携带组标识,用于标识数据属性。例如,对于CPU,标识为1,对于DIMM,标识为2。

在其中一种实施方式中,判断本地保存的第二数据中与第一数据是否有相同的第三数据,包括:判断本地保存的组标识中是否有与第一数据中携带的组标识相同的标识;如果有,在相同标识对应的数据中,将第一数据中与第三数据不同的数据作为第四数据保存;如果没有,保存第一数据。

对于已保存的第二数据,包括组标识、对应数据属性的第三数据和体现数据差异化的第六数据。对于需要保存的第一数据,可以分解为组标识、对应数据属性的第三数据和体现数据差异化的第五数据。在其中一种实施方式中,第三数据可以包括组标识。在将第一数据读出时,可以将第三数据和第五数据组合得出第一数据读出。在将第二数据读出时,可以将第三数据和第六数据组合得出第一数据读出。

本公开实施方式以服务器或PC机在BIOS启动过程中的数据保存为例进行说明。

服务器或PC在BIOS启动过程中,在启动早期的PEI阶段,内存还未初始化,因此没有内存可以使用。此时我们将CPU中的缓存当做内存使用(Cache As Ram,记为CAR),在PEI阶段,会初始化CPU、DIMM、IIO、UPI等,在这个过程中会产生一系列数据,需要保存并用于后期的DXE阶段。

对于每一个设备(CPU、DIMM、IIO、UPI等)都建立一个HOB(Hand-Off Block,交接台)来存放初始化数据,并加在HOB LIST中。

其中,PEI(Pre-EFI Initialization,EFI前期初始化)是UEFI的第二阶段;EFI为Extensiable Firmware Interface,是可扩展固件接口;UEFI为Unified ExtensibleFirmware Interface,是统一可扩展固件接口,包括SEC(Security Phase,安全验证),PEI,DXE(Driver Execution Environment,驱动执行环境),BDS(Boot Device Selection,启动设备选择),TSL(Transient System Load,操作系统加载前期)。

但该缓存大小有限,以purley平台为例,Intel为2M左右,类似平台AMD仅为128K。

在PEI阶段,会初始化CPU、DIMM、IIO、UPI等,在这个过程中会产生一系列数据,需要保存并用于后期的DXE阶段。在这个过程中,UEFI规范引入了HOB List,当做传递数据的桥梁。HOB List在PEI阶段创建、更新和修改,在DXE阶段只能读取不能修改。在PEI阶段,每个CPU、DIMM、IIO、UPI都会创建一个HOB,并放在HOB LIST中,一直到所有设备都初始化完成。HOB LIST中包括一系列HOB1,HOB2,HOB3...等,分别对应CPU1、CPU2...DIMM1...、UPI、IIO等。

服务器CPU数量一般较多,同时每颗CPU可以支持,以Purley Intel平台为例,最多12根DIMM,3个UPI,48根PCIE LANE。随着CPU个数增加,包括CPU、DIMM、IIO、UPI的数据量将急剧增大。同时由于HOB在CAR中,HOB大小受到限制。以Purley平台举例,为64K;在实际使用过程中,Intel平台在CPU个数超过8颗时,HOB超过了64K;因此需要将一些数据进行裁剪,如,将一些非必要数据丢弃,例如内存属性较多,如果实在存不下,则只保留DXE及之后阶段需要用到的数据;这样的处理方式将会导致部分有效信息也必须被舍弃。

由于HOB SIZE较小,PEI阶段产生的数据会跟随设备数量增大而增加,在CPU数量较多时,HOB已经无法保存PEI阶段产生的数据。

在本公开实施方式中,可以分别对设备CPU、DIMM、IIO、UPI对应的数据进行标识,如,a0、a1、a2、a3分别对应初始化过程中产生的CPU、DIMM、IIO、UPI的数据。

请参见表1,以保存PEI阶段初始化CPU1的DIMM数据为例。

步骤1001、PEI阶段初始化CPU1的第1根正常DIMM1的数据并保存在HOB1中;

步骤1002、PEI阶段初始化CPU1的第2根正常DIMM2的数据,并与保存在HOB1中的DIMM1的数据进行比较,得出差异信息,并存放在HOB2中。在得出差异信息时,是将DIMM2的数据中的项目与DIMM1的数据中的相应项目对应的数据进行比较。如表1所示的,DIMM为设备标识,HOB1中的各个项目分别为:socket、channel、frequcncy、voltage、numRanks、memBclk,…在保存HOB2时,将DIMM2的数据中的项目与DIMM1的数据中的相应项目对应的数据进行比较,如将HOB1中的socket的数据与DIMM2的socket的数据进行比较,发现一致,则,在HOB2中不保存socket项目的数据;如将HOB1中的frequency的数据与DIMM2的frequency的数据进行比较,发现不一致,则,在HOB2中保存DIMM2的frequency项目的数据;其他项目的比较保存过程类似,在此不再赘述。

在DEX读取阶段,读取DIMM1的数据时,直接读取HOB1中的数据即可。读取DIMM2的数据时,读取HOB1的数据与HOB2中的数据,并将两者组合,即:将HOB1中的数据用HOB2中的项目相同的数据替换后得到DIMM2的数据。如表1所示的,将HOB2中的项目frequency和numRanks的数据替换HOB1中frequency和numRanks的数据即可得到DIMM2的数据。

表1:PEI阶段初始化CPU1的DIMM中的HOB表。

通过以上方式,可以最小化储存,并且数据是无损的,当PEI/DXE阶段读取数据时,只需要先读取DIMM1信息和需要的DIMMx信息,就可以获取完整的DIMMx的全部数据。

Legacy BIOS有别于UEFI BIOS,是早期的BIOS采用的技术和规范,当前UEFI规范也需要兼容Legacy BIOS。

在本公开提供的另一种实施方式中,SMBIOS table是BIOS在服务器初始化系统过程中收集设备信息而生成的一组结构化的表,存放在内存中,提供给操作系统使用。在SMBIOS的specification中可以看到,对于Legacy BIOS的系统而言,其SMBIOS TABLE存放于000F0000h–000FFFFFh,即1M以下某个内存位置。而在实际使用中,CPU/DIMM/PCIE/OEMINFO一旦过多,例如高端服务器很多都是8 CPU,96 DIMMs,数十种PCIE设备,则1M以下区域无法存放完整的SMBIOS信息。针对该种情况,我们也可以采用本公开提供的实施方式,在保存数据时进行差异化保存,在读取时组合读取,在保证数据完整的前提下,有效节省了存储介质的占用空间,增大了存储介质的存储性能。

本公开实施方式,可以适用于存储空间受限场景,也适用于一般的存储场景,以有效节省存储空间使用情况。本公开适用场景包括像HOB,RAM类型的易失性存储,也可用于FLASH,ROM类型的非易失性存储。

除了上述PEI阶段,在UEFI PEI阶段,以及Legacy模式SMBIOS Table,还有BIOS程序运行在16位实模式下,实模式下最大的寻址范围是1M等,这些场景中保存数据时,数据中都存在一些共性信息,则,在保存和读取数据时,都可以使用本公开实施方式的数据处理方法,以差异化存储,组合读取的方式,优化数据存储,使得存储空间得到有效利用。

请参见图2,本公开还提供了一种数据处理装置,所述装置包括:

判断模块201,用于判断本地保存的第二数据中与第一数据是否有相同的第三数据;

保存模块202,用于根据判断模块的判断结果保存数据:若判断结果为是,保存第一数据中与第二数据不同的第四数据;若判断结果是否,保存第一数据;

读取模块203,用于读取第一数据:若有第三数据和第四数据,则将第三数据和第四数据组合,读出第一数据;如果没有第三数据和第四数据,读出第一数据。

在其中一种实施方式中,所述保存模块,在保存第一数据时,将第一数据分解为第三数据和第五数据进行保存,其中,第三数据是第一数据的属性数据。

在其中一种实施方式中,数据中携带组标识,用于标识数据属性;所述判断模块,用于判断本地保存的组标识中是否有与第一数据中携带的组标识相同的标识;所述保存模块,用于在所述判断模块判断结果为是时,在相同标识对应的数据中,将第一数据中与第三数据不同的数据作为第四数据保存;用于在所述判断结果是否时,保存第一数据。

在一种实施方式中,本公开提供了一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,处理器执行所述机器可执行指令以实现前述的获取转发路径的方法,从硬件层面而言,硬件架构示意图可以参见图3所示。

在一种实施方式中,本公开提供了一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现前述的获取转发路径的方法。

这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

上述实施方式阐明的系统、装置、模块或单元,具体可以由获取机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为获取机,获取机的具体形式可以是个人获取机、膝上型获取机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板获取机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本公开时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本公开提供的上述技术方案至少带来了以下有益效果:

通过本公开的技术方案,在保存数据时进行差异化保存,在读取时组合读取,在保证数据完整的前提下,有效节省了存储介质的占用空间,增大了存储介质的存储性能。

本公开是参照根据本公开实施方式的方法、设备(系统)、和获取机程序产品的流程图和/或方框图来描述的。应理解可以由获取机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些获取机程序指令到通用获取机、专用获取机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过获取机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

而且,这些获取机程序指令也可以存储在能引导获取机或其它可编程数据处理设备以特定方式工作的获取机可读存储器中,使得存储在该获取机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。

这些获取机程序指令也可装载到获取机或其它可编程数据处理设备上,使得在获取机或者其它可编程设备上执行一系列操作步骤以产生获取机实现的处理,从而在获取机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本领域技术人员应明白,本公开的实施方式可提供为方法、系统或获取机程序产品。因此,本公开可以采用完全硬件实施方式、完全软件实施方式、或者结合软件和硬件方面的实施方式的形式。而且,本公开可以采用在一个或者多个其中包含有获取机可用程序代码的获取机可用存储介质(可以包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的获取机程序产品的形式。

以上所述仅为本公开的实施方式而已,并不用于限制本公开。对于本领域技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的权利要求范围之内。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于双缓存区的缓存方法、装置、设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类