CN112597082A - 总线的数据传输方法及电子设备 - Google Patents
总线的数据传输方法及电子设备 Download PDFInfo
- Publication number
- CN112597082A CN112597082A CN202011507677.6A CN202011507677A CN112597082A CN 112597082 A CN112597082 A CN 112597082A CN 202011507677 A CN202011507677 A CN 202011507677A CN 112597082 A CN112597082 A CN 112597082A
- Authority
- CN
- China
- Prior art keywords
- data
- compressed
- fragment
- compression
- bus
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供一种总线的数据传输方法及电子设备。该方法包括:根据待压缩数据包括的至少一个分片数据,分别生成分片数据的压缩标识、分片数据的标志字和待压缩数据的压缩后数据,该分片数据的长度固定,该压缩标识用于表示分片数据中的数据是否相同,该标志字用于表示分片数据中的数据相同时分片数据中的数据的取值,该压缩后数据包括分片数据中的数据不同时分片数据中的数据的取值,该分片数据在待压缩数据包中的顺序与在压缩后数据中的顺序一致;将压缩标识、标志字和压缩后数据在总线上进行传输。本发明的方法提高了电子设备的总线上的数据传输速度。
Description
技术领域
本发明涉及计算机技术,尤其涉及一种总线的数据传输方法及电子设备。
背景技术
电子设备中通常存在多个电子元件,例如,处理器、硬盘、内存条、显卡等。这些电子元件之间通过总线进行数据传输。为了提高传输性能,通常需要对数据进行压缩,将压缩之后的数据在总线上传输。其中,这些数据包括文字、图像、声音和视频。
现有技术中,一种总线的数据压缩方法主要包括如下步骤:首先,构建一个字符串表;然后,将待压缩数据中每个第一次出现的字符串添加到该字符串表中,并根据该字符串在该字符串表中的位置为该字符串确定一个唯一的数字;最后,将待压缩数据中的每个字符串均替换为字符串表中该字符串对应的数字,这些替换之后的数字构成压缩后的数据,从而将压缩后的数据放在总线上进行传输。
发明人对上述方法进行研究之后发现,采用上述数据压缩方法进行数据传输时,总线上的数据传输速度较低,不能满足数据传输的要求。
发明内容
本发明提供一种总线的数据传输方法及电子设备,用以解决总线上的数据传输速度较低的问题。
第一方面,本发明提供一种总线的数据传输方法,应用于电子设备,所述电子设备内的任意两个电子元件之间通过总线传输数据,包括:
根据待压缩数据包括的至少一个分片数据,分别生成所述分片数据的压缩标识、所述分片数据的标志字和所述待压缩数据的压缩后数据,所述分片数据的长度固定,所述压缩标识用于表示所述分片数据中的数据是否相同,所述标志字用于表示所述分片数据中的数据相同时所述分片数据中的数据的取值,所述压缩后数据包括所述分片数据中的数据不同时所述分片数据中的数据的取值,所述分片数据在所述待压缩数据包中的顺序与在所述压缩后数据中的顺序一致;
将所述压缩标识、所述标志字和所述压缩后数据在所述总线上进行传输。
第二方面,本发明提供一种电子设备,所述电子设备内的任意两个电子元件之间通过总线传输数据,所述电子设备包括:
数据压缩模块,用于根据待压缩数据包括的至少一个分片数据,分别生成所述分片数据的压缩标识、所述分片数据的标志字和所述待压缩数据的压缩后数据,所述分片数据的长度固定,所述压缩标识用于表示所述分片数据中的数据是否相同,所述标志字用于表示所述分片数据中的数据相同时所述分片数据中的数据的取值,所述压缩后数据包括所述分片数据中的数据不同时所述分片数据中的数据的取值,所述分片数据在所述待压缩数据包中的顺序与在所述压缩后数据中的顺序一致;
数据传输模块,用于将所述压缩标识、所述标志字和所述压缩后数据在所述总线上进行传输。
第三方面,本发明实施例还提供了一种电子设备,包括:用于存储该电子元件可执行指令的存储器,至少两个电子元件;
其中,所述电子元件被配置为执行上述总线的数据传输方法。
第四方面,本发明实施例还提供了一种非临时性计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,该计算机执行指令被电子设备的电子元件执行时用于实现上述总线的数据传输方法。
第五方面,本发明实施例还提供了一种计算机程序,该计算机程序用于实现上述总线的数据传输方法。
本发明提供的总线的数据传输方法及电子设备,该方法应用于电子设备,该电子设备内的任意两个电子元件之间通过总线传输数据。本发明可以根据待压缩数据包括的至少一个分片数据,分别生成分片数据的压缩标识、分片数据的标志字和待压缩数据的压缩后数据,该分片数据的长度固定,该压缩标识用于表示分片数据中的数据是否相同,该标志字用于表示分片数据中的数据相同时分片数据中的数据的取值,该压缩后数据包括分片数据中的数据不同时分片数据中的数据的取值,该分片数据在待压缩数据包中的顺序与在压缩后数据中的顺序一致;将压缩标识、标志字和压缩后数据在总线上进行传输。本发明可以根据分片数据中的数据是否相同的特征对待压缩数据进行数据压缩,在待压缩数据中存在较多相同的连续数据时,可以较大程度的将待压缩数据进行压缩,从而可以提高电子设备的总线上的数据传输速度。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本发明实施例提供的总线的数据传输方法应用的电子设备的硬件结构示意图;
图2为本发明实施例提供的总线的数据传输方法的步骤流程图;
图3为本发明实施例提供的数据压缩原理的示意图;
图4为本发明实施例提供的一种第二传输包的结构示意图;
图5为本发明实施例提供的一种第一传输包的结构示意图;
图6为现有技术中的一种地址扩展包的结构示意图;
图7为本发明实施例提供的另一种第一传输包的结构示意图;
图8为本发明实施例提供的电子设备的一种结构框图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
本发明实施例提供了一种总线的数据传输方法,应用于电子设备,该电子设备包括通过总线传输数据的至少两个电子元件,包括但不限于:计算机、便携机、服务器。电子设备的电子元件可以包括但不限于:处理器、内存、输入设备、输出设备、存储器。
其中,总线(Bus)是电子设备内各电子元件之间传输数据的公共通信干线,它是由导线组成的传输线束。按照电子设备所传输的数据种类,总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信息。总线是电子设备的内部结构,电子设备的各个电子元件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了电子设备的硬件系统。
如图1所示,示例性的给出了一个电子设备的结构示意图,该电子设备包括两个电子元件E1和电子元件E2,这两个电子元件之间通过总线E3传输数据。例如,当电子元件E1为处理器,电子元件E2为存储器时,处理器可以通过总线E3从存储器中读取待处理数据,处理器还可以将对待处理数据的处理结果数据通过总线E3发送给存储器进行存储。
在上述电子设备中,电子元件在将数据向总线上传输之前,通常需要对数据进行压缩以提高数据传输速度。现有技术中,一种数据压缩方法的主要步骤包括:首先,构建一个字符串表;然后,将待压缩数据中每个第一次出现的字符串添加到该字符串表中,并根据该字符串在该字符串表中的位置为该字符串确定一个唯一的数字;最后,将待压缩数据中的每个字符串均替换为字符串表中该字符串对应的数字,这些替换之后的数字构成压缩后的数据,从而将压缩后的数据放在总线上进行传输。
然而,上述数据压缩方法只是简单的将数据映射为数字以实现数据压缩,无法实现对数据的充分压缩,进而导致总线上的数据传输速度较低。
为了解决上述技术问题,本发明实施例提供了一种总线的数据传输方法,其可以根据待压缩数据中连续出现相同数据的特征对待压缩数据进行压缩,用压缩标识表示连续出现的数据是否相同,在连续出现的数据相同时用标志字表示该相同数据的取值。如此,可以将连续出现的相同数据压缩为压缩标识和标志字,在待压缩数据中出现大量相同数据时,本发明实施例可以实现较充分的压缩,提高了总线上的数据传输速度。
下面以具体地实施例对本发明的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
参照图2,图2是本发明实施例提供的一种总线的数据传输方法的步骤流程图,包括S101至S102:
S101:根据待压缩数据包括的至少一个分片数据,分别生成分片数据的压缩标识、分片数据的标志字和待压缩数据的压缩后数据,该分片数据的长度固定,该压缩标识用于表示分片数据中的数据是否相同,该标志字用于表示分片数据中的数据相同时分片数据中的数据的取值,该压缩后数据包括分片数据中的数据不同时分片数据中的数据的取值,该分片数据在待压缩数据包中的顺序与在压缩后数据中的顺序一致。
其中,待压缩数据按照预设长度可以拆分为相同长度的若干分片数据,一个分片数据包括待压缩数据中的若干连续数据,从而在一个分片数据对应的压缩标识表示该分片数据被压缩时,可以根据该预设长度确定分片数据对应的二进制序列中包含的比特数,以根据该比特数和标志字还原出分片数据。例如,如图3所示的十六进制的待压缩数据:00000123FFFF00004567FFFF89ABFFFFCDEF0000FFFFCDEF00000123FFFF0000,将其拆分为四个字节长度的10个分片数据:0000、0123、FFFF、0000、4567、FFFF、89AB、FFFF、CDEF、0000、FFFF、CDEF、0000、0123、FFFF、0000。由于每个字节对应8比特,从而每个分片数据对应的二进制序列中包含的比特数为4*8=32个比特,如此可以在解压缩时根据每个标志字生成长度为32比特的二进制序列,该二进制序列中的每个比特的取值为该标志字,然后将该二进制序列转换为十六进制得到该标志字对应的分片数据。
可以理解的是,若分片数据的长度不固定,则在解压缩时,无法确定二进制序列中包含的比特数,从而无法准确的确定二进制序列,进而无法还原出分片数据。
对于上述每个分片数据,其均对应一个压缩标识,该压缩标识用于表示该分片数据对应的二进制序列中的各比特取值是否相同。当分片数据对应的二进制序列中的各比特取值相同时,该分片数据被压缩为标志字;当分片数据对应的二进制序列中的各比特取值不同时,该分片数据未被压缩。从而压缩标识也代表该分片数据中的数据是否被压缩。例如,图3中的分片数据0000对应的二进制序列中的32个比特均为0,从而其对应的压缩标识为1,代表分片数据0000被压缩。又例如,图3中的分片数据0123对应的二进制序列中的32个比特分别为00000000000000010000001000000011,可以看出,这32个比特的取值并不相同,从而分片数据0123对应的压缩标识为0,代表未被压缩。再例如,图3中的分片数据FFFF对应的二进制序列中的32个比特均为1,从而其对应的压缩标识为1,代表分片数据FFFF被压缩。同理,可以得到分片数据4567、89AB、CDEF的压缩标识均为0,代表其包含的数据不相同,这些分片数据均未被压缩。
对于上述每个分片数据,当其对应的压缩标识代表该分片数据被压缩时,可以将分片数据对应的二进制序列中的一个比特取值作为标志字。例如,图3中的分片数据0000,其二进制序列中的32个比特的取值均为0,从而其对应的标志字为0。又例如,图3中的分片数据FFFF,其二进制序列中的32个比特的取值均为1,从而其对应的标志字为1。
可以理解的是,当分片数据的压缩标识代表该分片数据中的数据不相同时,该分片数据的标志字无意义,该分片数据的标志字可以是任意取值。例如,图3中的分片数据0123、4567、89AB、CDEF的标志字1、1、0、0是任意一设定的取值,不代表该分片数据的取值。
可以看出,上述方案中存在数据不同的分片数据,这些分片数据无法被压缩。从而这些无法被压缩的分片数据可以构成压缩后数据。例如,图3中的分片数据0123、4567、89AB、CDEF、CDEF和0123可以按照其在待压缩数据中的顺序构成压缩后数据0123456789ABCDEFCDEF0123。
通过上述压缩过程对待压缩数据进行压缩之后,待压缩数据被压缩为压缩标识、标志字和压缩后数据。当分片数据的长度为N(字节)时,压缩标识和标志字的数目均为待压缩数据的长度(字节)的1/N。若压缩标识和标志字作为比特,则压缩标识所占用的字节数和标志字所占用的字节数均为待压缩数据的长度的1/(8N)。
在一种极限情况下,每个分片数据均被压缩,从而压缩后数据的长度为0,压缩标识和标志字所占用的字节总数为待压缩数据的长度的2/(8N)=1/(4N)。如此,若将压缩后数据、压缩标识和标志字三者的字节总数与待压缩数据的长度的比值作为压缩参数,则压缩参数为1/(4N)。
在另一种极限情况下,分片数据均未被压缩,从而压缩后数据的长度与待压缩数据的长度相同,此时压缩参数为1+1/(4N)。
基于上述两种极限情况,可以得到压缩参数在1/(4N)至1+1/(4N)之间。
S102:将压缩标识、标志字和压缩后数据在总线上进行传输。
可以理解的是,上述S101可以是电子设备中的其中一个电子元件实现的,在该电子元件将待压缩数据进行压缩之后,将得到的压缩标识、标志字和压缩后数据通过总线传输给另一个电子元件。
另一个电子元件在接收到压缩标识、标志字和压缩后数据之后,可以解压缩出待压缩数据,以将解压缩出的待压缩数据进行存储或处理等。主要过程可以包括:按照压缩标识的顺序,确定每个压缩标识对应的分片数据是否被压缩;若该压缩标识对应的分片数据被压缩,则获取对应位置的标志字作为该分片数据对应的二进制序列中的各比特的取值,并将该二进制序列转换为预设进制的分片数据;若该压缩标识对应的分片数据未被压缩,则按照压缩后数据的顺序获取该分片数据的取值。
下面参照图3中的压缩标识、标志字和压缩后数据,对上述解压缩过程进行举例说明。图3中的压缩标识存在10个,针对第一个压缩标识1,由于1代表对应的分片数据被压缩,从而可以获取第一个标志字0作为对应的分片数据对应的二进制序列中的各比特的取值,得到对应的分片数据为0000。针对第二个压缩标识0,由于0代表对应的分片数据未被压缩,从而可以获取压缩后数据的1至4个字节的数据作为该分片数据的取值;针对第三个压缩标识1,由于1代表对应的分片数据被压缩,从而可以获取第三个标志字1作为对应的分片数据对应的二进制序列中的各比特的取值,得到对应的分片数据为FFFF。同理,可以得到后续分片数据分别为:0000、4567、FFFF、89AB、FFFF、CDEF、0000、FFFF、CDEF、0000、0123、FFFF、0000。从而将各分片数据拼接为待压缩数据:00000123FFFF00004567FFFF89ABFFFFCDEF0000FFFFCDEF00000123FFFF0000。
可选地,在本发明实施例的一种示例中,上述分片数据的长度为总线上的最小传输数据包大小的整数倍。
其中,最小传输数据包大小可以是字节。例如,最小传输包的大小可以为4字节,从而分片数据的长度可以是4的整数倍4、8、12、16等。
可以理解的是,分片数据的长度代表了压缩粒度。当分片数据的长度越大时,代表压缩粒度越大;当分片数据的长度越小时,代表压缩粒度越小。当压缩粒度较大时,会导致较多的分片数据无法满足数据相同的条件而无法压缩,无法实现充分的压缩;当压缩粒度较小时,会产生较多的压缩标识和标志字,这些压缩标识和标志字占用额外的开销,无法实现充分的压缩。
总线上的传输包的大小通常是倍数关系,即存在一个最小传输包,其余传输包的大小均为该最小传输包的大小的整数倍。
本发明实施例基于该最小传输包的大小确定分片数据的长度,也就是确定压缩粒度,如此可以实现以传输包为单位的压缩。以传输包为单位的压缩,每个传输包为一个分片数据,从而可以在接收到一个传输包之后对该传输包进行解压缩,不需要等待其余传输包的到达,有助于提高解压缩速度。
可选地,在本发明实施例的一种示例中,上述S102包括S1021:
S1021:将所述压缩标识、所述标志字承载在总线上的第一传输包中进行传输,以及,将所述压缩后数据承载在总线上的第二传输包中进行传输。
其中,第一传输包可以为用于传输控制信息的传输包,第二传输包可以为用于传输数据的传输包。
在实际应用中,总线分为并行总线和串行总线。并行总线用于通过多个不同的物理链路进行传输包的并行传输,不同传输包的传输到达时间没有先后顺序,有可能第一传输包先传输到,第二传输包后传输到,也有可能第二传输包先传输到,第一传输包后传输到。如此,当第二传输包先于第一传输包到达时,由于控制信息未达到,从而第二传输包无法立即解码,需要等待第一传输包到达之后进行解码。如此导致第二传输包的解压缩实时性较差。
串行总线用于通过一个物理链路实现对传输包的先后传输,一种典型的串行总线为高速传输(hyper transport,HT)总线。在HT总线上,数据包通常跟在命令包之后传输,由于第一传输包为命令包,第二传输包为数据包,从而第一传输包在第二传输包之前传输以使压缩标识、标志字先到达。在第一传输包到达时,可以使用第一传输包中的压缩标识、标志字解压缩出数据相同的分片数据。在第二传输包到达时,可以使用已经到达的压缩标识、标志字以及第二传输包解压缩出数据不同的分片数据。如此可以有助于提高第二传输包的解压缩实时性。
基于上述考虑,本发明实施例可以应用于HT总线,后续将以HT总线上的传输为例进行说明。
可选地,在本发明实施例的一种示例中,上述压缩标识被按照对应的分片数据在所述待压缩数据中的顺序拼接为第一长度的至少一个压缩标识序列,所述标志字被按照对应的分片数据在所述待压缩数据中的顺序拼接为所述第一长度的至少一个标志字序列,所述第一长度等于所述第一传输包中的一个地址信息段的长度,所述至少一个压缩标识序列、所述至少一个标志字序列分别位于所述第一传输包中的至少两个地址信息段中。
其中,第一传输包可以是仅包含压缩标识和标志字的传输包,也可以是除压缩标识和标志字之外还包括其余信息的传输包。如图5所示的第一传输包为本发明实施例新增的传输包,如图7所示的第一传输包为如图6所示的HT总线的地址扩展包中添加压缩标识和标志字之后的地址扩展包,这种第一传输包可以在HT总线上传输。
在本发明实施例中,为了保持压缩标识之间的顺序不变,可以将压缩标识按照顺序拼接为压缩标识序列,每个压缩标识序列可以位于第一传输包中的一个地址信息段中。例如,当地址信息段的长度为一个字节时,如图3中的压缩标识:1、0、1、1、0、1、0、1、0、1、1、0、1、0、1、1,可以将其按照顺序组成两个压缩标识序列10110101、01101011。将图3中的压缩标识序列设置于如图5所示的第一传输包中,I[7:0]是第一个压缩标识序列10110101,I[15:8]是第二个压缩标识序列01101011。
为了保持标志字之间的顺序不变,可以将标志字按照顺序拼接为标志字序列,每个标志字序列可以位于第一传输包中的一个地址信息段中。例如,当地址信息段的长度为一个字节时,如图3中的标志字:0、1、1、0、1、1、0、1、0、0、1、0、0、1、1、0,可以将其按照顺序组成两个标志字序列01101101、00100110。将图3中的标志字序列设置于如图5所示的第一传输包中,C[7:0]是第一个标志字序列01101101,C[15:8]是第二个标志字序列00100110。
在第二传输包进行传输时按照第二传输包中的比特顺序分多个发送周期发送。例如,如图4所示的第二传输包的一种结构示意图,在HT总线上的一个第二传输包包括64比特,每8个比特在一个发送周期内发送,第二传输包可以在8个发送周期内发送完成。
可选地,在本发明实施例的一种示例中,所述第一传输包中包括至少两个空闲地址信息段,所述至少一个压缩标识序列、所述至少一个标志字序列分别位于所述至少两个空闲地址信息段中,当待压缩数据包括至少两个分片数据时,所述第一传输包中的压缩标识和标志字对应相同的分片数据。
可以理解的是,当待压缩数据包括一个分片数据时,压缩标识和标志字均只有一个,从而第一传输包中的压缩标识和标志字对应该分片数据。
当待压缩数据包括至少两个分片数据时,压缩标识和标志字也均为至少两个。此时,需要将同一个分片数据对应的压缩标识和标志字放在同一个第一传输包中,并且在该第一传输包中,压缩标识序列中包括的多个压缩标识对应的多个分片数据之间的顺序,和标志字序列中包括的多个标志字对应的多个分片数据之间的顺序一致,即压缩标识序列和标志字序列的长度相同,并且同一分片数据的压缩标识在压缩标识序列中的位置和标志字在标志字序列中的位置相同。
此外,在HT总线上,在传输一命令包之后会将其对应的数据包进行传输,由于第一传输包为命令包,第二传输包为数据包,从而在接收到第一传输包之后再接收到的下一个数据包即为该第一传输包对应的第二传输包。如此,形成了如下顺序的传输包:第一传输包PCK1->PCK1对应的第二传输包PCK2->第一传输包PCK3->PCK3对应的第二传输包PCK4,如此循环下去。
其中,第一传输包可以是具有空闲地址信息段的命令包,该命令包通常用于传输控制信息。例如,第一传输包可以为用于传输地址的传输包,也可以称为地址扩展包。如图6所示,示例性的给出了HT总线上的地址扩展包的结构示意图。图6中的地址扩展包为64比特,包括12个地址信息段,每个地址信息段的长度为8比特。其中,地址信息段Addr[47:40]、Addr[55:48]、Addr[63:56]、Addr[15:8]、Addr[23:16]、Addr[31:24]、Addr[39:32]用于存储地址信息,其余cmd所占用的地址信息段用于存储命令信息。
然而,上述地址扩展包中通常存在空闲地址信息段,例如,如图6中的Addr[55:48]、Addr[63:56]对应的地址信息段,通常并没有使用,不存储地址信息。从而本发明实施例可以将压缩标识序列和标志字序列存储在上述空闲地址信息段中,并且一个地址扩展包中的压缩标识和标志字对应相同的分片数据,从而在接收到一个地址扩展包时,可以根据该地址扩展包中的压缩标识和标志字解压缩对应的分片数据。图6中的空闲地址信息段Addr[55:48]、Addr[63:56]可以按照图7中所示的方式存储压缩标识序列和标志字序列,图7中,八个分片数据对应的压缩标识I[7:0]和标志字C[7:0]分别占用一个空闲地址信息段。
可选地,在本发明实施例的一种示例中,上述S102包括S1022至S1023:
S1022:根据所述待压缩数据、所述压缩后数据和所述分片数据的长度确定压缩参数。
其中,压缩参数是压缩程度的数值化表示。压缩参数是压缩后数据、压缩标识、标志字三者的总数据量与待压缩数据的数据量的比值。压缩参数CR具体可以参照如下公式:
其中,M是待压缩数据的数据量,L是压缩后数据的数据量,L大于或等于0,且小于或等于M,S是压缩标识的数据量,压缩标识的数据量和标志字的数据量相同。
可以理解的是,上述数据量可以用数据所占用的字节数表示。
由于分片数据的长度固定为N,从而当每个压缩标识和每个标志字均为一个比特时,S=M/(8N),从而上述公式(1)可以变换为如下公式:
本发明实施例可以通过压缩后数据的数据量、待压缩数据的数据量以及分片数据的长度确定压缩参数,避免统计压缩标识和标志字的数据量,有助于降低确定压缩参数的复杂度。
S1023:在所述压缩参数满足预设压缩条件的情况下,将所述压缩标识、所述标志字和所述压缩后数据在所述总线上进行传输。
其中,预设压缩条件可以为压缩参数小于或等于预设压缩参数阈值,代表压缩程度较大,可以较大程度的提高传输速度。
本发明实施例可以在压缩参数较小的情况下,将压缩标识、标志字和压缩后数据在总线上传输,有助于提高传输速度。
可选地,在本发明实施例的一种示例中,上述方法还包括S103:在所述压缩参数不满足预设压缩条件的情况下,将所述待压缩数据在总线上进行传输。
可以理解的是,压缩参数不满足预设压缩条件即为压缩参数大于预设压缩参数阈值,此时,压缩程度较小,传输速度的提高程度有限。本发明实施例可以在传输速度的提高程度有限的情况下,将待压缩数据在总线上传输,降低解压缩所消耗的时长。
参照图8,图8是本发明实施例提供的一种电子设备的结构框图,该电子设备内的任意两个电子元件之间通过总线传输数据,该电子设备包括:
数据压缩模块201,用于根据待压缩数据包括的至少一个分片数据,分别生成所述分片数据的压缩标识、所述分片数据的标志字和所述待压缩数据的压缩后数据,该分片数据的长度固定,所述压缩标识用于表示所述分片数据中的数据是否相同,所述标志字用于表示所述分片数据中的数据相同时所述分片数据中的数据的取值,所述压缩后数据包括所述分片数据中的数据不同时所述分片数据中的数据的取值,所述分片数据在所述待压缩数据包中的顺序与在所述压缩后数据中的顺序一致。
数据传输模块202,用于将所述压缩标识、所述标志字和所述压缩后数据在所述总线上进行传输。
可选地,在本发明实施例的一种示例中,上述分片数据的长度为所述总线上的最小传输数据包大小的整数倍。
可选地,在本发明实施例的一种示例中,上述数据传输模块202还用于:
将所述压缩标识、所述标志字承载在总线上的第一传输包中进行传输,以及,将所述压缩后数据承载在总线上的第二传输包中进行传输。
可选地,在本发明实施例的一种示例中,上述压缩标识被按照对应的分片数据在所述待压缩数据中的顺序拼接为第一长度的至少一个压缩标识序列,所述标志字被按照对应的分片数据在所述待压缩数据中的顺序拼接为所述第一长度的至少一个标志字序列,所述第一长度等于所述第一传输包中的一个地址信息段的长度,所述至少一个压缩标识序列、所述至少一个标志字序列分别位于所述第一传输包中的至少两个地址信息段中。
可选地,在本发明实施例的一种示例中,上述第一传输包中包括至少两个空闲地址信息段,上述至少一个压缩标识序列、所述至少一个标志字序列分别位于所述至少两个空闲地址信息段中,当待压缩数据包括至少两个分片数据时,上述第一传输包中的压缩标识和标志字对应相同的分片数据。
可选地,在本发明实施例的一种示例中,上述数据传输模块202还用于:
根据所述待压缩数据、所述压缩后数据和所述分片数据的长度确定压缩参数。
在所述压缩参数满足预设压缩条件的情况下,将所述压缩标识、所述标志字和所述压缩后数据在所述总线上进行传输。
可选地,在本发明实施例的一种示例中,上述电子设备还包括:
待压缩数据传输模块,用于在所述压缩参数不满足预设压缩条件的情况下,将所述待压缩数据在总线上进行传输。
本实施例提供的电子设备,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
本发明实施例还提供了一种电子设备,包括:用于存储该电子元件可执行指令的存储器,至少两个电子元件;
其中,所述电子元件被配置为执行上述总线的数据传输方法。
本发明实施例还提供了一种非临时性计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,该计算机执行指令被电子设备的电子元件执行时用于实现上述总线的数据传输方法。
本发明实施例还提供了一种计算机程序,该计算机程序用于实现上述总线的数据传输方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
Claims (11)
1.一种总线的数据传输方法,其特征在于,应用于电子设备,所述电子设备内的任意两个电子元件之间通过总线传输数据,包括:
根据待压缩数据包括的至少一个分片数据,分别生成所述分片数据的压缩标识、所述分片数据的标志字和所述待压缩数据的压缩后数据,所述分片数据的长度固定,所述压缩标识用于表示所述分片数据中的数据是否相同,所述标志字用于表示所述分片数据中的数据相同时所述分片数据中的数据的取值,所述压缩后数据包括所述分片数据中的数据不同时所述分片数据中的数据的取值,所述分片数据在所述待压缩数据包中的顺序与在所述压缩后数据中的顺序一致;
将所述压缩标识、所述标志字和所述压缩后数据在所述总线上进行传输。
2.根据权利要求1所述的方法,其特征在于,其特征在于,所述分片数据的长度为所述总线上的最小传输数据包大小的整数倍。
3.根据权利要求1或2所述的方法,其特征在于,所述将所述压缩标识、所述标志字和所述压缩后数据在所述总线上进行传输,包括:
将所述压缩标识、所述标志字承载在总线上的第一传输包中进行传输,以及,将所述压缩后数据承载在总线上的第二传输包中进行传输。
4.根据权利要求3所述的方法,其特征在于,所述压缩标识被按照对应的分片数据在所述待压缩数据中的顺序拼接为第一长度的至少一个压缩标识序列,所述标志字被按照对应的分片数据在所述待压缩数据中的顺序拼接为所述第一长度的至少一个标志字序列,所述第一长度等于所述第一传输包中的一个地址信息段的长度,所述至少一个压缩标识序列、所述至少一个标志字序列分别位于所述第一传输包中的至少两个地址信息段中。
5.根据权利要求4所述的方法,其特征在于,所述第一传输包中包括至少两个空闲地址信息段,所述至少一个压缩标识序列、所述至少一个标志字序列分别位于所述至少两个空闲地址信息段中,当所述待压缩数据包括至少两个所述分片数据时,所述第一传输包中的压缩标识和标志字对应相同的分片数据。
6.根据权利要求1或2所述的方法,其特征在于,所述将所述压缩标识、所述标志字和所述压缩后数据在所述总线上进行传输,包括:
根据所述待压缩数据、所述压缩后数据和所述分片数据的长度确定压缩参数;
在所述压缩参数满足预设压缩条件的情况下,将所述压缩标识、所述标志字和所述压缩后数据在所述总线上进行传输。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在所述压缩参数不满足预设压缩条件的情况下,将所述待压缩数据在总线上进行传输。
8.一种电子设备,其特征在于,所述电子设备内的任意两个电子元件之间通过总线传输数据,所述电子设备包括:
数据压缩模块,用于根据待压缩数据包括的至少一个分片数据,分别生成所述分片数据的压缩标识、所述分片数据的标志字和所述待压缩数据的压缩后数据,所述分片数据的长度固定,所述压缩标识用于表示所述分片数据中的数据是否相同,所述标志字用于表示所述分片数据中的数据相同时所述分片数据中的数据的取值,所述压缩后数据包括所述分片数据中的数据不同时所述分片数据中的数据的取值,所述分片数据在所述待压缩数据包中的顺序与在所述压缩后数据中的顺序一致;
数据传输模块,用于将所述压缩标识、所述标志字和所述压缩后数据在所述总线上进行传输。
9.一种电子设备,其特征在于,包括:用于存储所述电子元件可执行指令的存储器,至少两个电子元件;
其中,所述电子元件被配置为执行如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被电子设备的电子元件执行时用于实现如权利要求1至7任一项所述的方法。
11.一种计算机程序,其特征在于,所述计算机程序用于实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011507677.6A CN112597082B (zh) | 2020-12-18 | 2020-12-18 | 总线的数据传输方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011507677.6A CN112597082B (zh) | 2020-12-18 | 2020-12-18 | 总线的数据传输方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112597082A true CN112597082A (zh) | 2021-04-02 |
CN112597082B CN112597082B (zh) | 2023-02-24 |
Family
ID=75199493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011507677.6A Active CN112597082B (zh) | 2020-12-18 | 2020-12-18 | 总线的数据传输方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112597082B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5572209A (en) * | 1994-08-16 | 1996-11-05 | International Business Machines Corporation | Method and apparatus for compressing and decompressing data |
CN101527849A (zh) * | 2009-03-30 | 2009-09-09 | 清华大学 | 集成视频解码器的存储系统 |
CN102843142A (zh) * | 2011-06-23 | 2012-12-26 | 深圳市国微电子股份有限公司 | 可编程逻辑器件配置数据流压缩、解压缩处理方法及系统 |
CN103188810A (zh) * | 2011-12-29 | 2013-07-03 | 华为终端有限公司 | 指示位表下发方法和指示操作方法及设备和系统 |
CN110290099A (zh) * | 2018-03-19 | 2019-09-27 | 海能达通信股份有限公司 | 数据传输方法、通信设备及具有存储功能的装置 |
CN111111214A (zh) * | 2019-12-25 | 2020-05-08 | 上海米哈游天命科技有限公司 | 一种游戏存档的处理方法、装置及系统 |
CN111510155A (zh) * | 2020-04-17 | 2020-08-07 | 深圳市科思科技股份有限公司 | 数据压缩方法、数据解压方法、电子设备及存储介质 |
-
2020
- 2020-12-18 CN CN202011507677.6A patent/CN112597082B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5572209A (en) * | 1994-08-16 | 1996-11-05 | International Business Machines Corporation | Method and apparatus for compressing and decompressing data |
CN101527849A (zh) * | 2009-03-30 | 2009-09-09 | 清华大学 | 集成视频解码器的存储系统 |
CN102843142A (zh) * | 2011-06-23 | 2012-12-26 | 深圳市国微电子股份有限公司 | 可编程逻辑器件配置数据流压缩、解压缩处理方法及系统 |
CN103188810A (zh) * | 2011-12-29 | 2013-07-03 | 华为终端有限公司 | 指示位表下发方法和指示操作方法及设备和系统 |
CN110290099A (zh) * | 2018-03-19 | 2019-09-27 | 海能达通信股份有限公司 | 数据传输方法、通信设备及具有存储功能的装置 |
CN111111214A (zh) * | 2019-12-25 | 2020-05-08 | 上海米哈游天命科技有限公司 | 一种游戏存档的处理方法、装置及系统 |
CN111510155A (zh) * | 2020-04-17 | 2020-08-07 | 深圳市科思科技股份有限公司 | 数据压缩方法、数据解压方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112597082B (zh) | 2023-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3493084A1 (en) | Method for processing data in bloom filter and bloom filter | |
US7616137B2 (en) | Method and apparatus for compression and decompression of an executable code with a RISC processor | |
CN107295036B (zh) | 一种数据发送方法及数据合并设备 | |
US10817460B2 (en) | RDMA data sending and receiving methods, electronic device, and readable storage medium | |
CN110690943B (zh) | 数据编码方法、解码方法、编解码方法、设备及存储介质 | |
CN112514264A (zh) | 数据压缩、解压方法及相关装置、电子设备、系统 | |
CN112399479B (zh) | 用于数据传输的方法、电子设备和存储介质 | |
CN115941598A (zh) | 一种流表半卸载方法、设备及介质 | |
CN113630125A (zh) | 数据压缩、编码解压缩方法、装置、电子设备及存储介质 | |
WO2021036189A1 (zh) | Rdma数据发送及接收方法、电子设备及可读存储介质 | |
CN112597082B (zh) | 总线的数据传输方法及电子设备 | |
CN114064308A (zh) | 基于列式数据扫描的多数据发送和接收方法、装置和设备 | |
CN110958212B (zh) | 一种数据压缩、数据解压缩方法、装置及设备 | |
CN115643310B (zh) | 一种压缩数据的方法、装置和系统 | |
US11139829B1 (en) | Data compression techniques using partitions and extraneous bit elimination | |
US10742783B2 (en) | Data transmitting apparatus, data receiving apparatus and method thereof having encoding or decoding functionalities | |
CN115904488A (zh) | 数据传输方法、系统、装置及设备 | |
US10491241B1 (en) | Data compression scheme utilizing a repetitive value within the data stream | |
CN114070901A (zh) | 基于多数据对齐的数据发送和接收方法、装置和设备 | |
CN112800183A (zh) | 内容名称数据处理方法及终端设备 | |
CN108733598B (zh) | 一种数据传输方法和数据传输装置 | |
US20190124180A1 (en) | Packet compression and decompression | |
CN114979794B (zh) | 一种数据发送方法及装置 | |
JP6045720B2 (ja) | データ圧縮 | |
CN115694723A (zh) | 报文处理方法和通信设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |