CN117289851A - 数据存储位宽的确定方法及装置、存储指数数据的方法 - Google Patents

数据存储位宽的确定方法及装置、存储指数数据的方法 Download PDF

Info

Publication number
CN117289851A
CN117289851A CN202210681153.1A CN202210681153A CN117289851A CN 117289851 A CN117289851 A CN 117289851A CN 202210681153 A CN202210681153 A CN 202210681153A CN 117289851 A CN117289851 A CN 117289851A
Authority
CN
China
Prior art keywords
block
sub
data
bit
significant
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210681153.1A
Other languages
English (en)
Inventor
徐其
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Calterah Semiconductor Technology Shanghai Co Ltd
Original Assignee
Calterah Semiconductor Technology Shanghai Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Calterah Semiconductor Technology Shanghai Co Ltd filed Critical Calterah Semiconductor Technology Shanghai Co Ltd
Priority to CN202210681153.1A priority Critical patent/CN117289851A/zh
Priority to EP22863689.0A priority patent/EP4343529A1/en
Priority to PCT/CN2022/140793 priority patent/WO2023030555A1/zh
Publication of CN117289851A publication Critical patent/CN117289851A/zh
Priority to US18/399,586 priority patent/US20240126683A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种数据存储位宽的确定方法及装置、存储指数数据的方法。该方法通过获取待存储的数据,数据数量至少4个,并对数据按照预设数量进行分块,其中,预设数量≥2n,n为≥2的整数,确定出块内各数据对应的有效位数及最大有效位数值。然后将块内数据等数量均分为第一子块和第二子块,同时获取第一子块内包含的有效位数和第二子块内包含的有效位数,并对第一子块内包含的有效位数和第二子块内包含的有效位数进行差分计算,得到有效差分值。最后,根据最大有效位数值所属的预设存储位宽区间,确定存储有效差分值的存储位宽。本申请的方法,通过存储数据有效位数的差分值,减少了数据有效位数占用的存储位宽。

Description

数据存储位宽的确定方法及装置、存储指数数据的方法
技术领域
本申请涉及数据存储技术领域,尤其涉及一种数据存储位宽的确定方法及装置、存储指数数据的方法。
背景技术
数据以某种格式存储在计算机内部或者外部介质中,存储过程会占用不同数量的比特,比特(binary digit,bit)是计算机中存储信息的最小的单位,用0或1来表示。
数据在存储时,通常是基于IEEE 754标准以二进制的科学计数法进行存储,例如十进制数123.25390625可以转换成二进制数1.11101101000001*26,其中,“6”表示数据的指数部分,也称之为有效位数。目前,对有效位数的存储是根据其二进制化后占据的存储位宽,分配比特位数。
但是,由于计算机要存储的数据量巨大,现有技术存储数据有效位数的方式,占用的存储位宽较多。
发明内容
本申请提供一种数据存储位宽的确定方法及装置、存储指数数据的方法,用以解决现有技术存储数据有效位数的方式,占用的存储位宽较多的问题。
第一方面,本申请提供一种数据存储位宽的确定方法,包括:
获取待存储的数据,所述数据数量至少4个;
对所述数据按照预设数量进行分块,并确定块内各数据对应的有效位数及最大有效位数值,所述预设数量≥2n,n为≥2的整数;
将所述块内数据等数量均分为第一子块和第二子块,获取所述第一子块内包含的有效位数和所述第二子块内包含的有效位数;
对所述第一子块内包含的有效位数和所述第二子块内包含的有效位数进行差分计算,得到有效差分值;
根据所述最大有效位数值所属的预设存储位宽区间,确定存储所述有效差分值的存储位宽。
可选的,所述对所述第一子块内包含的有效位数和所述第二子块内包含的有效位数进行差分计算,得到有效差分值,包括:
对所述第一子块内包含的有效位数和所述第二子块内包含的有效位数进行差分计算,得到所述第一子块与第二子块的有效位子块差分值;
对所述第一子块内包含的有效位数进行差分计算,得到所述第一子块的有效位差分值;
对所述第二子块内包含的有效位数进行差分计算,得到所述第二子块的有效位差分值。
可选的,所述对所述第一子块内包含的有效位数和所述第二子块内包含的有效位数进行差分计算,得到所述第一子块与第二子块的有效位子块差分值,包括:
获取所述第一子块内的最大有效位数值和所述第二子块内的最大有效位数值;
将所述第一子块内的最大有效位数值与所述第二子块内的最大有效位数值相减,得到所述有效位子块差分值。
可选的,所述对所述第一子块内包含的有效位数进行差分计算,得到所述第一子块的有效位差分值,包括:
将所述第一子块内包含的有效位数值相减,得到所述第一子块的有效位差分值。
可选的,所述对所述第二子块内包含的有效位数进行差分计算,得到所述第二子块的有效位差分值,包括:
将所述第二子块内包含的有效位数值相减,得到所述第二子块的有效位差分值。
可选的,所述根据所述最大有效位数值所属的预设存储位宽区间,确定存储所述有效差分值的存储位宽之前,还包括:
将所述最大有效位数值进行二进制数据化,确定存储所述最大有效位数的存储位宽。
可选的,所述根据所述最大有效位数值所属的预设存储位宽区间,确定存储所述有效差分值的存储位宽,包括:根据所述最大有效位数值所属的预设有效位子块差分值存储位宽区间,确定存储所述第一子块与第二子块的有效位子块差分值的存储位宽;
根据所述最大有效位数值所属的预设有效位差分值存储位宽区间,确定存储所述第一子块的有效位差分值的存储位宽;
根据所述最大有效位数值所属的预设有效位差分值存储位宽区间,确定存储所述第二子块的有效位差分值的存储位宽。
可选的,所述确定块内各数据对应的有效位数,包括:
若所述数据为实数,则确定所述数据的有效位数为所述实数对应的有效位数;
或者,若所述数据为复数,则确定所述数据的有效位数为所述复数实数部分与虚数部分两者中的最大的有效位数。
第二方面,本申请提供一种数据存储位宽的确定装置,包括:
获取模块,用于获取待存储的数据,所述数据数量至少4个;
分块模块,用于对所述数据按照预设数量进行分块,并确定块内各数据对应的有效位数及最大有效位数值,所述预设数量≥2n,n为≥2的整数;
所述分块模块,还用于将所述块内数据等数量均分为第一子块和第二子块,获取所述第一子块内包含的有效位数和所述第二子块内包含的有效位数;
差分处理模块,用于对所述第一子块内包含的有效位数和所述第二子块内包含的有效位数进行差分计算得到有效差分值;
确定模块,用于根据所述最大有效位数值所属的预设存储位宽区间,确定存储所述有效差分值的存储位宽。
第三方面,本申请提供一种存储指数数据的方法,所述指数数据中各数据具有对应的各数据对应的有效位数,所述方法可包括:
针对所述指数数据中包含连续的四个数据的任一数据块,获取该数据内最大的有效位数Ema
将所述数据块等分为两个子数据块,并获取该两个子数据块内最大有效位数的差值Esda
获取各子数据块内有效位数的差值Eada
将所述最大的有效位数Ema、所述差值Esda和所述差值Eada进行存储,以实现对所述数据块的存储。
可选的,所述指数数据中包含连续的八个数据时,所述方法还包括:
获取所述八个数据内最大有效位数Emb
将所述指数数据均分为两个所述数据块,并获取该两个数据块内最大有效位数的差值Esdb值;
获取各子数据块内的所述差值Esda和所述差值Eada;以及
将最大有效位数Emb、差值Esdb值、所述差值Esda和所述差值Eada进行存储,以实现对所述八个数据的存储。
可选的,所述指数数据中包含4x个连续数据时,x为大于2的整数;所述方法还包括:
将所述4x个连续数据进行二等分处理,以将各个数据块划分至包括连续的预定个数的数据;
获取该4x个连续数据中最大有效位数Em、每次二等分处理时数据块之间最大有效位数的差值,以及各子数据块的所述差值Esda和所述差值Eada;以及
存储该4x个连续数据中最大有效位数Em、每次二等分处理时数据块之间最大有效位数的差值和各子数据块的所述差值Esda和所述差值Eada,以实现对所述八个指数数据的存储;
其中,存储的数据总数为4x个。
第四方面,本申请提供一种电子设备,包括:至少一个处理器、存储器、接收器、发送器;
所述接收器和所述发送器均耦合至所述处理器;所述处理器控制所述接收器的接收动作,所述处理器控制所述发送器的发送动作;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述电子设备执行第一方面或第三方面中任一项所述的方法。
第五方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机执行指令,当所述计算机执行指令被处理器执行时,实现第一方面或第三方面中任一项所述的方法。
第六方面,本申请提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现第一方面或第三方面中任一项所述的方法。
本申请提供的一种数据存储位宽的确定方法及装置、存储指数数据的方法,通过获取待存储的数据,对数据按照预设数量进行分块,并确定块内各数据对应的有效位数及最大有效位数值,其中,预设数量≥2n,n为≥2的整数。然后将块内数据等数量均分为第一子块和第二子块,获取第一子块内包含的有效位数和第二子块内包含的有效位数,并对第一子块内包含的有效位数和第二子块内包含的有效位数进行差分计算,得到有效差分值。最后根据最大有效位数值所属的预设存储位宽区间,确定存储有效差分值的存储位宽。本申请通过存储数据有效位数的差分值,极大的减少了数据有效位数占用的存储位宽。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请提供的一种数据存储位宽的确定方法的流程示意图;
图2为本申请实施例二提供的一种得到有效差分值的方法的流程示意图;
图3为本申请实施例四提供的一种数据存储位宽的确定装置的结构示意图;
图4为本申请实施例五提供的一种电子设备结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要要说明的是,在本申请实施例的描述中,术语“左”、“右”等指示的方向或位置关系的术语是基于表格或附图所示的方向或位置关系,这仅仅是为了便于描述,而不是指示或暗示装置或构件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
数据存储对象包括数据流在加工过程中产生的临时文件或加工过程中需要查找的信息,这些信息通常以某种格式记录在计算机内部或外部存储介质中。数据存储过程会占用不同数量的比特(binary digit,bit),在本申请中也称之为存储位宽,是信息量的最小单位。
数据在存储时,通常是基于IEEE 754标准以二进制的科学计数法进行存储,IEEE754全称为Institute of Electrical and Electronics Engineers二进制浮点数算术标准,又称为微处理器系统的二进制浮点数算术。IEEE 754标准存储数据的格式为,例如,十进制数8.25可以转换成二进制数1.00001*23,其中,“1.00001”表述数据的余数部分,“3”表示数据的指数部分,也称之为有效位数。
将数据转换成二进制的科学计数法的形式后,余数部分的整数都为1,其无需在内存中体现出来,只需把小数点后面的二进制“00001”存储在内存中,并为其分配存储位宽。示例性的,表1为32bit数据的存储方式,如表1所示,在存储数据时,最高位即最左边一位为符号位,用来表示数据的正与负,中间部分为指数位,用来存储指数部分即有效位数部分,右边部分为余数部分,用来存储余数。
表1
0 11 00001
需要特别说明的是,本申请主要对数据有效位数部分占用的存储位宽进行说明。
对有效位数的存储是根据其二进制化后占据的存储位宽,分配比特位数。
例如,假设待存储的有效位数分别是31,30,28,26,则二进制化后分别为11111,11110,11100,11100,那么存储这4个有效位数需要占据20个比特位。
但是,由于计算机要存储的数据量巨大,现有技术存储数据有效位数的方式,占用的存储位宽较多。
因此,本申请提出一种数据存储位宽的确定方法及装置,可通过对待存储的数据按照预设数量进行分块,并确定块内各数据对应的有效位数及最大有效位数值,然后将块内数据等数量均分为第一子块和第二子块,获取第一子块内包含的有效位数和第二子块内包含的有效位数,并对第一子块内包含的有效位数和第二子块内包含的有效位数进行差分计算,得到有效差分值,最后,根据最大有效位数值所属的预设存储位宽区间,确定存储有效差分值的存储位宽。通过存储数据有效位数的差分值,从而减少了数据有效位数占用的存储位宽。
本申请可以应用于多种类型数据的指数部分的存储,例如数据类型可以是数字、文字、符号、图形、音频、视频等,可以理解的是,本申请所提供的数据存储位宽的确定方法,包括但不限于以上数据类型的存储,不因此作为对本申请的限制。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1为本申请提供的一种数据存储位宽的确定方法的流程示意图,如图1所示,该方法具体包括以下步骤:
S101、获取待存储的数据,数据数量至少4个。
本申请的执行主体可以为计算机或是其它可以处理并存储数据的装置(如毫米波雷达芯片)或设备,本实施例以计算机为例进行说明,计算机在处理数据时,不管输入的数据是十进制还是十六进制,最终都转换成以二进制的科学计数法的形式进行存储。
本申请中,主要用于存储二进制数据的指数部分,也称之为有效位数部分。例如,十进制数据8.25,转换成二进制的科学计数法的形式,则为1.00001*23,其中,“3”为有效位数部分。
需要说明的是,在本实施例中,获取的待存储的数据数量至少为4个。
S102、对数据按照预设数量进行分块,并确定块内各数据对应的有效位数及最大有效位数值,预设数量≥2n,n为≥2的整数。
在本实施例中,以n等于2为例进行说明,当n=2时,预设数量为4,以每4个数据为一组进行分块。确定每个块内4个数据对应的有效位数,同时,确定出4个有效位数中的最大有效位数值Em(Effective bits max)。
其中,若数据为实数,则确定数据的有效位数为实数对应的有效位数。
或者,若数据为复数,则确定数据的有效位数为复数实数部分与虚数部分两者中最大的有效位数。
S103、将块内数据等数量均分为第一子块和第二子块,获取第一子块内包含的有效位数和第二子块内包含的有效位数。
可选的,对步骤S102中块中的数据等数量均分即以两个数据为一组,划分为第一子块和第二子块,进而获取到第一子块内的两个有效位数和第一子块内的两个有效位数。
S104、对第一子块内包含的有效位数和第二子块内包含的有效位数进行差分计算,得到有效差分值。
其中,有效差分值包括第一子块与第二子块的有效位子块差分值Esd(Effectivebit subblock adjacent difference)、第一子块的有效位差分值Ead[0](Effective bitadjacent difference)和第二子块的有效位差分值Ead[1]。
S105、根据最大有效位数值所属的预设存储位宽区间,确定存储有效差分值的存储位宽。
在步骤S102中已经得到了最大有效位数值Em,根据最大有效位数值Em所属的预设存储位宽区间,可以确定存储有效位子块差分值Esd、第一子块的有效位差分值Ead[0]和第二子块的有效位差分值Ead[1]的存储位宽。
在本申请的上述实施例中,通过获取待存储的数据,并对数据按照预设数量进行分块,其中,预设数量≥2n,n为≥2的整数,确定出块内各数据对应的有效位数及最大有效位数值。然后继续将块内数据等数量均分为第一子块和第二子块,同时获取第一子块内包含的有效位数和第二子块内包含的有效位数,并对第一子块内包含的有效位数和第二子块内包含的有效位数进行差分计算,得到有效差分值。最后,根据最大有效位数值所属的预设存储位宽区间,确定存储有效差分值的存储位宽。本实施例通过存储数据有效位数的差分值,减少了数据有效位数占用的存储位宽。
可选的,在上述实施例一的基础之上,下面,结合图2所示的实施例二,对第一子块内包含的有效位数和第二子块内包含的有效位数进行差分计算,得到有效差分值的具体过程进行说明。
图2为本申请实施例二提供的一种得到有效差分值的方法的流程示意图,如图2所示,该方法包括以下步骤:
S201、对第一子块内包含的有效位数和第二子块内包含的有效位数进行差分计算,得到第一子块与第二子块的有效位子块差分值。
具体的,
获取第一子块内的最大有效位数值和第二子块内的最大有效位数值。
将第一子块内的最大有效位数值与第二子块内的最大有效位数值相减,得到有效位子块差分值Esd。
S202、对第一子块内包含的有效位数进行差分计算,得到第一子块的有效位差分值。
具体的,
将第一子块内包含的有效位数值相减,得到第一子块的有效位差分值Ead[0]。
S203、对第二子块内包含的有效位数进行差分计算,得到第二子块的有效位差分值。
具体的,
将第二子块内包含的有效位数值相减,得到第二子块的有效位差分值Ead[1]。
可选的,得到第一子块与第二子块的有效位子块差分值Esd、第一子块的有效位差分值Ead[0]和第二子块的有效位差分值Ead[1]后,根据最大有效位数值Em所属的预设存储位宽区间,确定存储上述有效差分值的存储位宽。
在此之前,首先将最大有效位数值进行二进制数据化,确定存储最大有效位数的存储位宽。例如,若最大有效位数值Em=31,则二进制数据化后为11111,占用5个存储位宽。
然后,根据最大有效位数值Em所属的预设存储位宽区间,分别确定第一子块与第二子块的有效位子块差分值Esd、第一子块的有效位差分值Ead[0]和第二子块的有效位差分值Ead[1]的存储位宽。
具体的,
可根据最大有效位数值所属的预设有效位子块差分值存储位宽区间,来确定存储第一子块与第二子块的有效位子块差分值的存储位宽。
示例性的,以32bit的有效位数为例进行说明:
当最大有效位数值Em在[16,31]区间时,则确定第一子块与第二子块的有效位子块差分值Esd的存储位宽为6bit;
当最大有效位数值Em在[8,15]区间时,则确定第一子块与第二子块的有效位子块差分值Esd的存储位宽为5bit;
当最大有效位数值Em在[4,7]区间时,则确定第一子块与第二子块的有效位子块差分值Esd的存储位宽为4bit;
当最大有效位数值Em在[2,3]区间时,则确定第一子块与第二子块的有效位子块差分值Esd的存储位宽为3bit。
根据最大有效位数值所属的预设有效位差分值存储位宽区间,确定存储第一子块的有效位差分值的存储位宽。
根据最大有效位数值所属的预设有效位差分值存储位宽区间,确定存储第二子块的有效位差分值的存储位宽。
当最大有效位数值Em在[16,31]区间时,则确定存储第一子块的有效位差分值Ead[0]的存储位宽和存储第二子块的有效位差分值Ead[1]的存储位宽分别为4bit;
当最大有效位数值Em在[2,15]区间时,则确定存储第一子块的有效位差分值Ead[0]的存储位宽和存储第二子块的有效位差分值Ead[1]的存储位宽分别为3bit。
其中,预设有效位子块差分值存储位宽区间和预设有效位差分值存储位宽区间已经预先在计算机中进行了设定,计算机可以根据最大有效位数值动态分配Esd和Ead。
综上,对第一子块内包含的有效位数和第二子块内包含的有效位数进行差分计算后,得到了第一子块与第二子块的有效位子块差分值、第一子块的有效位差分值及第二子块的有效位差分值。然后,根据最大有效位数值所属的预设存储位宽区间,确定存储上述有效差分值的存储位宽。
需要说明的,实施例一和实施例二的方法,除适用于以4个预设数据数量分块外,还适用于8个、16个…2n个,其中n为≥2的整数。当以8个数据数量分块时,先将8个数据分为两块,每个块中有4个数据,然后在将每个块在分为两个子块,并按照实施例一和实施例二的方法确定有效位数的存储位宽,对确定存储位宽的方法在此不再进行重复赘述。
为了便于理解实施例一和实施例二的方法,下面,通过具体的实施例三对该确定方法进行详细的示例性说明。
首先,对正数、负数、复数的实数部分及虚数部分的有效位数进行定义。
正数与复数的实数部分的有效位数都是指从最高位起第一个不为0的数到最低位的长度,其中最高位表示符号位,“0”表示正数,“1”表示负数。
如表2所示,表2所表示的数为正数或复数的实数部分,根据上述定义,可以看出该数的有效位数为14。
表2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
负数与复数的虚数部分的有效位数都是指从最高位起第一个不为1的数到最低位的长度。
如表3所示,表3所表示的数为负数或复数的虚数部分,根据上述定义,可以看出该数的有效位数为15。
表3
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
假设待存储的数据如下表4所示,其中,待存储的数据16进制的复数,复数的有效位数为复数的实数部分与虚数部分两者中有效位数大的值。
表4
序号 实数部分 虚数部分
1 0×12374911 0×84736297
2 0×2a645678 0×36064321
2 0×0bcf9789 0×ff198736
4 0×00004321 0×03837291
转换成2进制后,对应的2进制数据分别如表5所示:
表5
根据表2和表3的判断方法,可以得到上述数据1的有效位数为31,数据2的有效位数为30,数据3的有效位数为28,数据4的有效位数为26。
如实施例一中的步骤S102,对数据按照预设数量进行分块,并确定块内各数据对应的有效位数,其中,对应的有效位数即为31、30、28、26,最大有效位数值Em=31。
如实施例一中的步骤S103,将块内数据等数量均分为第一子块和第二子块,获取第一子块内包含的有效位数即31、30,第二子块内包含的有效位数28、26。
根据实施例二中得到有效差分值的方法,则第一子块与第二子块的有效位子块差分值为第一子块内的最大有效位数值与第二子块内的最大有效位数值的差值,即第一子块与第二子块的有效位子块差分值Esd=28-31=-3。
第一子块的有效位差分值为第一子块内包含的有效位数值的差值,即第一子块的有效位差分值Ead[0]=30-31=-1。
相应的,第二子块的有效位差分值Ead[1]=26-28=-2。
可选的,根据最大有效位数值Em=31,确定存储第一子块与第二子块的有效位子块差分值Esd=-3、第一子块的有效位差分值Ead[0]=-1及第二子块的有效位差分值的存储位宽Ead[1]=-2的存储位宽。
其中,最大有效位数值Em=31二进制化后为“11111”,则最大有效位数值Em=31的存储位宽为5比特。
因为Em=31属于预设有效位子块差分值存储位宽区间[16,31],因此对应的存储第一子块与第二子块的有效位子块差分值Esd=-3的存储位宽为6比特。
因为Em=31属于预设有效位差分值存储位宽区间[16,31],因此对应的存储第一子块的有效位差分值Ead[0]=-1的存储位宽为4比特。
同理,存储第二子块的有效位差分值Ead[1]=-2的存储位宽为4比特。最终,在计算机中存储的数据如表6所示:
表6
图3为本申请实施例四提供的一种数据存储位宽的确定装置的结构示意图,如图3所示,该装置包括:获取模块301、分块模块302、差分处理模块303、确定模块304。
获取模块301,用于获取待存储的数据,数据数量至少4个。
分块模块302,用于对数据按照预设数量进行分块,并确定块内各数据对应的有效位数及最大有效位数值,预设数量≥2n,n为≥2的整数。
分块模块302,还用于将块内数据等数量均分为第一子块和第二子块,获取第一子块内包含的有效位数和第二子块内包含的有效位数。
差分处理模块303,用于对第一子块内包含的有效位数和第二子块内包含的有效位数进行差分计算得到有效差分值。
确定模块304,用于根据最大有效位数值所属的预设存储位宽区间,确定存储有效差分值的存储位宽。
在一种可能的实现方式中,差分处理模块303,具体用于:
对第一子块内包含的有效位数和第二子块内包含的有效位数进行差分计算,得到第一子块与第二子块的有效位子块差分值。
对第一子块内包含的有效位数进行差分计算,得到第一子块的有效位差分值。
对第二子块内包含的有效位数进行差分计算,得到第二子块的有效位差分值。
在一种可能的实现方式中,差分处理模块303,具体还用于:
获取第一子块内的最大有效位数值和第二子块内的最大有效位数值。
将第一子块内的最大有效位数值与第二子块内的最大有效位数值相减,得到有效位子块差分值。
在一种可能的实现方式中,差分处理模块303,具体还用于:
将第一子块内包含的有效位数值相减,得到第一子块的有效位差分值。
在一种可能的实现方式中,差分处理模块303,具体还用于:
将第二子块内包含的有效位数值相减,得到第二子块的有效位差分值。
在一种可能的实现方式中,确定模块304,还用于:
将最大有效位数值进行二进制数据化,确定存储最大有效位数的存储位宽。
在一种可能的实现方式中,确定模块304,具体还用于:
根据最大有效位数值所属的预设有效位子块差分值存储位宽区间,确定存储第一子块与第二子块的有效位子块差分值的存储位宽。
根据最大有效位数值所属的预设有效位差分值存储位宽区间,确定存储第一子块的有效位差分值的存储位宽。
根据最大有效位数值所属的预设有效位差分值存储位宽区间,确定存储第二子块的有效位差分值的存储位宽。
在一种可能的实现方式中,确定模块304,具体还用于:
确定数据的有效位数为实数对应的有效位数。
或者,若数据为复数,则确定数据的有效位数为复数实数部分与虚数部分两者中的最大的有效位数。
下面结合表5中的数据,针对本申请提供存储连续指数数据的方法进行具体说明:
首先,当数据中包含四个连续的指数数据,可针对该四个连续的指数数据进行差分存储操作,如可基于表5中四个连续的指数数据,获取其各自对应的有效位数31、30、28、26,并得到该四个数据内最大的有效位数Ema为31;
然后,将上述的四个数据等分为两个子数据块,即第一个子数据块中的有效位数为31、30,而第一个子数据块中的有效位数为28、26,相应的第一个子数据块中的最大有效位数Ema1为31,第二个子数据块中的最大有效位数Ema2为28,进而可得到该两个子数据块内最大有效位数的差值Esda;=Ema2-Ema1=28-31=-3。
需要注意的是,本申请实施例中,对于数据块及子数据块均是基于数据分布的连续性进行划分的,即分块后的数据内,及数据块的排序均是按照原始数据的顺序进行排布,同时进行差分或者做差时也是按照统一既定的排位顺序进行,并保留差值的正负号,例如统一由低位减去高位。
再者,获取各子数据块内有效位数的差值Eada;即针对第一子数据块,Eada11=26-28=-2,针对第二子数据块,Eada12=30-31=-1。
最后,将最大的有效位数Ema、差值Esda、差值Eada11和差值Eada12进行存储,即将31、-3、-2、-1进行存储,就可以实现对表5中四个连续的指数数据存储。
同时,在进行上述存储操作时,有效位数Ema、差值Esda、差值Eada1和差值Eada2的位宽均可基于有效位数Ema的大小进行动态调整,进而实现数据的动态存储,具体可参见上述实施例相关的内容,在此便不予赘述。
在另一个可选的实施例中,当指数数据中包含连续的八个数据时,还可先获取八个数据内最大有效位数Emb,然后再将上述的八个指数数据均分为两个包含四个连续数据的数据块,并获取该两个数据块内最大有效位数的差值Esdb值;之后可基于上述针对四个数据的数据处理的步骤,得到各子数据块内的差值Esda和差值Eada等;最后,将最大有效位数Emb、差值Esdb值、差值Esda和差值Eada进行存储,即可实现对该八个数据的块的存储。同样的,对于存储操作时也可以参考上述的相关内容进行动态存储。
由于最大有效位数Emb与两个分别包含四个连续数据的数据块的最大的有效位数Ema必定有至少一个重叠的,且存储了差值Esda,故而针对连续的八个数据进行存储时,只需要存储八个数据即可,即最大有效位数Emb、差值Esdb值、第一子数据块的差值Esda1、第一子数据块的差值Eada11、第一子数据块的差值Eada12、第二子数据块的差值Esda1、第二子数据块的差值Eada11、第二子数据块的差值Eada12
在另一个可选的实施例中,针对数据包含诸如16个、32个等4x个连续数据时,可该连续的4x个进行二等分处理,例如针对16个就先等分为8个一组的数据块,然后采用上述的实施例相关的技术内容进行存储,并且均可采用四个一组数据块到八个数据块进行存储的思想进行类推,即先获取该连续数据中最大的有效位数,然后针对每次二等分后的数据块进行差分计算,直至划分至包含四个连续数据的子数据块,然后将数据的最大有效位Em、每次二等分求出的数据块之间最大有效位数的差值Esd和各子数据块中对应的Esd、Ead,总共4x个相关数据存储下来即可,即最终存储的相关数据的个数与上述的连续数据的个数相同。
需要说明的是,在一些可选的实施例中,还可基于实际需求,将连续的指数数据划分为四个、八个、十六个等4m(m为大于0的整数)个预设的单元数据,同步或异步进行本申请实施例中的差分计算和/或存储定操作,即可将该连续的指数数据作为一个差分数据信息进行存储,也可将其划分为不同的单元;当作为一个差分数据信息进行存储时,可最大程度的减小指数数据存储所占的存储空间,而当将划分为不同的单元进行处理时,由于单元之间的差分数据相互独立进行本申请实施例中的差分处理,即存储的差分数据之间相互独立,没有关联,可在减小数据存储空间的同事,兼顾存储的数据之间相互的影响,提升数据存储的稳定性和安全性。
图4为本申请实施例五提供的一种电子设备结构示意图。该电子设备例如可以是上述设备管理网元或者终端。如图4所示,该电子设备可以包括:接收器4011、发送器4012、至少一个处理器401和存储器402。
上述接收器4011和发送器4012均耦合至处理器401。处理器401控制接收器4011的接收动作,以及,控制发送器4012的发送动作。
存储器402,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
存储器402可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器401用于执行存储器402存储的计算机执行指令,以实现前述方法实施例所描述的通信方法。其中,处理器401可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
可选的,该电子设备400还可以包括通信接口403。在具体实现上,如果通信接口403、存储器402和处理器401独立实现,则通信接口403、存储器402和处理器401可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry StandardArchitecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果通信接口403、存储器402和处理器401集成在一块芯片上实现,则通信接口403、存储器402和处理器401可以通过内部接口完成通信。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或者光盘等各种可以存储程序代码的介质,具体的,该计算机可读存储介质中存储有程序指令,程序指令用于上述实施例中的方法。
本申请还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。电子设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得电子设备实施上述的各种实施方式提供的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

Claims (13)

1.一种数据存储位宽的确定方法,其特征在于,包括:
获取待存储的数据,所述数据数量至少4个;
对所述数据按照预设数量进行分块,并确定块内各数据对应的有效位数及最大有效位数值,所述预设数量≥2n,n为≥2的整数;
将所述块内数据等数量均分为第一子块和第二子块,获取所述第一子块内包含的有效位数和所述第二子块内包含的有效位数;
对所述第一子块内包含的有效位数和所述第二子块内包含的有效位数进行差分计算,得到有效差分值;
根据所述最大有效位数值所属的预设存储位宽区间,确定存储所述有效差分值的存储位宽。
2.根据权利要求1所述的方法,其特征在于,所述对所述第一子块内包含的有效位数和所述第二子块内包含的有效位数进行差分计算,得到有效差分值,包括:
对所述第一子块内包含的有效位数和所述第二子块内包含的有效位数进行差分计算,得到所述第一子块与第二子块的有效位子块差分值;
对所述第一子块内包含的有效位数进行差分计算,得到所述第一子块的有效位差分值;
对所述第二子块内包含的有效位数进行差分计算,得到所述第二子块的有效位差分值。
3.根据权利要求2所述的方法,其特征在于,所述对所述第一子块内包含的有效位数和所述第二子块内包含的有效位数进行差分计算,得到所述第一子块与第二子块的有效位子块差分值,包括:
获取所述第一子块内的最大有效位数值和所述第二子块内的最大有效位数值;
将所述第一子块内的最大有效位数值与所述第二子块内的最大有效位数值相减,得到所述有效位子块差分值。
4.根据权利要求2所述的方法,其特征在于,所述对所述第一子块内包含的有效位数进行差分计算,得到所述第一子块的有效位差分值,包括:
将所述第一子块内包含的有效位数值相减,得到所述第一子块的有效位差分值。
5.根据权利要求2所述的方法,其特征在于,所述对所述第二子块内包含的有效位数进行差分计算,得到所述第二子块的有效位差分值,包括:
将所述第二子块内包含的有效位数值相减,得到所述第二子块的有效位差分值。
6.根据权利要求5所述的方法,其特征在于,所述根据所述最大有效位数值所属的预设存储位宽区间,确定存储所述有效差分值的存储位宽之前,还包括:
将所述最大有效位数值进行二进制数据化,确定存储所述最大有效位数的存储位宽。
7.根据权利要求6所述的方法,其特征在于,所述根据所述最大有效位数值所属的预设存储位宽区间,确定存储所述有效差分值的存储位宽,包括:
根据所述最大有效位数值所属的预设有效位子块差分值存储位宽区间,确定存储所述第一子块与第二子块的有效位子块差分值的存储位宽;
根据所述最大有效位数值所属的预设有效位差分值存储位宽区间,确定存储所述第一子块的有效位差分值的存储位宽;
根据所述最大有效位数值所属的预设有效位差分值存储位宽区间,确定存储所述第二子块的有效位差分值的存储位宽。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述确定块内各数据对应的有效位数,包括:
若所述数据为实数,则确定所述数据的有效位数为所述实数对应的有效位数;
或者,若所述数据为复数,则确定所述数据的有效位数为所述复数实数部分与虚数部分两者中的最大的有效位数。
9.一种数据存储位宽的确定装置,其特征在于,包括:
获取模块,用于获取待存储的数据,所述数据数量至少4个;
分块模块,用于对所述数据按照预设数量进行分块,并确定块内各数据对应的有效位数及最大有效位数值,所述预设数量≥2n,n为≥2的整数;
所述分块模块,还用于将所述块内数据等数量均分为第一子块和第二子块,获取所述第一子块内包含的有效位数和所述第二子块内包含的有效位数;
差分处理模块,用于对所述第一子块内包含的有效位数和所述第二子块内包含的有效位数进行差分计算得到有效差分值;
确定模块,用于根据所述最大有效位数值所属的预设存储位宽区间,确定存储所述有效差分值的存储位宽。
10.一种存储指数数据的方法,其特征在于,所述指数数据中各数据具有对应的各数据对应的有效位数,所述方法包括:
针对所述指数数据中包含连续的四个数据的任一数据块,获取该数据内最大的有效位数Ema
将所述数据块等分为两个子数据块,并获取该两个子数据块内最大有效位数的差值Esda
获取各子数据块内有效位数的差值Eada
将所述最大的有效位数Ema、所述差值Esda和所述差值Eada进行存储,以实现对所述数据块的存储。
11.根据权利要求10所述的方法,其特征在于,所述指数数据中包含4x个连续数据时,x为大于2的整数;所述方法还包括:
将所述4x个连续数据进行二等分处理,以将各个数据块划分至包括连续的预定个数的数据;
获取该4x个连续数据中最大有效位数Em、每次二等分处理时数据块之间最大有效位数的差值,以及各子数据块的所述差值Esda和所述差值Eada;以及存储该4x个连续数据中最大有效位数Em、每次二等分处理时数据块之间最大有效位数的差值和各子数据块的所述差值Esda和所述差值Eada,以实现对所述八个指数数据的存储;
其中,存储的数据总数为4x个。
12.根据权利要求11所述的方法,其特征在于,所述指数数据中包含连续的八个数据时,所述方法还包括:
获取所述八个数据内最大有效位数Emb
将所述指数数据均分为两个所述数据块,并获取该两个数据块内最大有效位数的差值Esdb值;
获取各子数据块内所述差值Esda和所述差值Eada;以及
将最大有效位数Emb、差值Esdb值、所述差值Esda和所述差值Eada进行存储,以实现对所述八个指数数据的存储。
13.一种电子设备,其特征在于,包括:至少一个处理器、存储器、接收器、发送器;
所述接收器和所述发送器均耦合至所述处理器;所述处理器控制所述接收器的接收动作,所述处理器控制所述发送器的发送动作;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述电子设备执行权利要求1-8、10-12中任一项所述的方法。
CN202210681153.1A 2022-06-16 2022-06-16 数据存储位宽的确定方法及装置、存储指数数据的方法 Pending CN117289851A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202210681153.1A CN117289851A (zh) 2022-06-16 2022-06-16 数据存储位宽的确定方法及装置、存储指数数据的方法
EP22863689.0A EP4343529A1 (en) 2022-06-16 2022-12-21 Method and apparatus for determining data storage bit width, and method for storing index data
PCT/CN2022/140793 WO2023030555A1 (zh) 2022-06-16 2022-12-21 数据存储位宽的确定方法及装置、存储指数数据的方法
US18/399,586 US20240126683A1 (en) 2022-06-16 2023-12-28 Method and apparatus for determining data storage bit width, and method for storing index data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210681153.1A CN117289851A (zh) 2022-06-16 2022-06-16 数据存储位宽的确定方法及装置、存储指数数据的方法

Publications (1)

Publication Number Publication Date
CN117289851A true CN117289851A (zh) 2023-12-26

Family

ID=85411991

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210681153.1A Pending CN117289851A (zh) 2022-06-16 2022-06-16 数据存储位宽的确定方法及装置、存储指数数据的方法

Country Status (4)

Country Link
US (1) US20240126683A1 (zh)
EP (1) EP4343529A1 (zh)
CN (1) CN117289851A (zh)
WO (1) WO2023030555A1 (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4163967B2 (ja) * 2002-06-20 2008-10-08 松下電器産業株式会社 浮動小数点演算装置
US8301803B2 (en) * 2009-10-23 2012-10-30 Samplify Systems, Inc. Block floating point compression of signal data
US8645439B2 (en) * 2009-12-24 2014-02-04 Mcmaster University Bit-width allocation for scientific computations
CN111198673B (zh) * 2018-11-19 2022-07-12 北京智谱微科技有限责任公司 字长调整方法、装置、设备及存储介质
CN109977348B (zh) * 2019-04-03 2023-06-23 加特兰微电子科技(上海)有限公司 数据压缩方法及装置、存储介质、雷达系统
CN110267049B (zh) * 2019-05-30 2021-09-07 西安交通大学 一种稀疏编码的存储优化方法
CN112905125B (zh) * 2021-03-04 2023-02-07 中电普信(北京)科技发展有限公司 一种基于计算机高精度计算的数据存储及读取方法
CN114115740B (zh) * 2021-11-26 2024-06-07 百度在线网络技术(北京)有限公司 数据存储方法及装置、数据获取方法及装置、电子设备

Also Published As

Publication number Publication date
EP4343529A1 (en) 2024-03-27
WO2023030555A1 (zh) 2023-03-09
US20240126683A1 (en) 2024-04-18

Similar Documents

Publication Publication Date Title
CN110278719B (zh) 编码方法、解码方法和装置
EP1014699A1 (en) Method of selecting colors for pixels within blocks for block truncation encoding
CN101036125A (zh) 具有开发接口适用性的数据处理系统内的掩码
CN112100568A (zh) 定点傅里叶变换fft处理器及处理方法
CN110825323B (zh) 浮点数数据的存储、读取方法和计算机可读存储介质
CN111723053A (zh) 一种数据的压缩方法及装置、解压方法及装置
US6252992B1 (en) Variable length coding
CN117289851A (zh) 数据存储位宽的确定方法及装置、存储指数数据的方法
CN110222305B (zh) 一种基于双曲cordic的对数函数计算系统及方法
US20240137043A1 (en) Data compression method and apparatus, and data decompression method and apparatus
CN111384972A (zh) 多进制ldpc解码算法的优化方法、装置及解码器
EP4274128A1 (en) Communication method and apparatus, and system, storage medium and computer program product
CN110569487B (zh) 一种基于高频率字符替代算法的Base64扩展编码方法及系统
CN111193648B (zh) 降低can总线负载的数据发送方法、终端设备及存储介质
CN102870481A (zh) 时频资源分配消息发送方法、解析方法和装置及系统
CN106899312B (zh) 交织编解码方法及交织器
CN113094415A (zh) 数据抽取方法、装置、计算机可读介质及电子设备
CN112383382B (zh) 一种多空间流数据分配的方法及装置
CN112702068B (zh) 编码数据处理方法、装置、设备及存储介质
CN111384976A (zh) 稀疏校验矩阵的存储方法和读取方法
CN115883645A (zh) 通信配置方法、电子设备及存储介质
US7075539B1 (en) Apparatus and method for processing dual format floating-point data in a graphics processing system
Forišek et al. Online bandwidth allocation
CN117499681A (zh) 图像压缩方法、装置、电子设备以及存储介质
Chen et al. Analysis and architecture for memory efficient JBIG2 arithmetic encoder

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination