CN119149506A - 数据压缩处理方法及相关装置 - Google Patents
数据压缩处理方法及相关装置 Download PDFInfo
- Publication number
- CN119149506A CN119149506A CN202411269985.8A CN202411269985A CN119149506A CN 119149506 A CN119149506 A CN 119149506A CN 202411269985 A CN202411269985 A CN 202411269985A CN 119149506 A CN119149506 A CN 119149506A
- Authority
- CN
- China
- Prior art keywords
- data
- channels
- channel
- spliced
- module
- 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
Links
- 238000013144 data compression Methods 0.000 title claims abstract description 57
- 238000003672 processing method Methods 0.000 title claims abstract description 26
- 238000007906 compression Methods 0.000 claims abstract description 88
- 230000006835 compression Effects 0.000 claims abstract description 85
- 238000012545 processing Methods 0.000 claims abstract description 64
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000003860 storage Methods 0.000 claims abstract description 31
- 238000007781 pre-processing Methods 0.000 claims abstract description 19
- 238000012432 intermediate storage Methods 0.000 claims abstract description 17
- 239000011159 matrix material Substances 0.000 claims description 18
- 238000000605 extraction Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 238000004590 computer program Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请实施方式提供了一种数据压缩处理方法及相关装置。该方法包括:接收多个通道的初始数据和连接位图;对每个通道的初始数据进行预处理,得到每个通道的第一数据;将多个通道的初始数据和所述连接位图输入到中间存储区域中;根据中间存储区域中的连接位图,将多个通道的第一数据拼接得到拼接数据;对拼接数据进行零压缩处理,得到压缩数据包。本申请通过数据拼接将多路数据整合为单数据流,对单数据流进行零压缩处理,以实现存储空间压缩。数据拼接和零压缩两个环节实现数据压缩,是不对输入数据类型有特殊约束的,因此具有更广泛的适用性,也就是实现了数据压缩处理的高可拓展性。
Description
技术领域
本申请实施方式涉及数据处理领域,更具体地,本申请实施方式涉及一种数据压缩处理方法及相关装置。
背景技术
稀疏矩阵是指大部分元素为零的矩阵。这类矩阵在工程应用中经常被使用,尤其是在人工智能领域。比如自然语言处理等机器学习领域常常会应用到大型稀疏矩阵。由于稀疏矩阵中存在大量的冗余0,如果将其当作稠密矩阵来表示和处理,计算资源消耗大,导致计算成本较高。因而,需要对稀疏矩阵进行预处理,以降低其计算成本,提升计算效率。
相关技术中,基于字典的压缩方案将数据字替换为字典中的对应短码,通过压缩频繁出现的数据字,此方案可以实现较高的压缩率,然而该方案需要依赖于专用字典,由于字典同步复杂性使得方案的可扩展性较差,时延较长。
综上,亟待提供一种全新的技术方案,用以解决相关技术中存在的上述至少一个技术问题。
发明内容
在本上下文中,本申请的实施方式期望提供一种数据压缩处理方法及相关装置,用以实现相关技术中可拓展性不高的问题,以实现高可拓展性。
在本申请实施方式的第一方面中,提供了一种数据压缩处理方法,所述方法应用稀疏矩阵压缩场景下的多通道流水线架构,所述多通道流水线架构至少包括数据拼接模块和/或零压缩模块,所述数据拼接模块和/或所述零压缩模块采用组合逻辑电路;所述方法包括:
接收多个通道的初始数据和连接位图;其中,所述连接位图用于表征多个通道之间的数据连接关系,每一通道的初始数据的数据位宽相同;
对每个通道的初始数据进行预处理,得到每个通道的第一数据;
将所述多个通道的第一数据和所述连接位图输入到中间存储区域中;
根据中间存储区域中的所述连接位图,通过数据拼接模块将多个通道的所述第一数据拼接得到拼接数据;
通过零压缩模块对所述拼接数据进行零压缩处理,得到压缩数据包。
在本申请实施方式的第二方面中,提供了一种数据压缩处理装置,所述装置应用稀疏矩阵压缩场景下的多通道流水线架构,所述多通道流水线架构至少包括数据拼接模块和/或零压缩模块,所述数据拼接模块和/或所述零压缩模块采用组合逻辑电路;所述装置至少包括:
数据接收模块,用于接收多个通道的初始数据和连接位图;其中,所述连接位图用于表征多个通道之间的数据连接关系,每一通道的初始数据的数据位宽相同;
数据预处理模块,用于对每个通道的初始数据进行预处理,得到每个通道的第一数据;
数据拼接模块,用于将所述多个通道的初始数据和所述连接位图输入到中间存储区域中;根据中间存储区域中的所述连接位图,将多个通道的所述第一数据拼接得到拼接数据;
零压缩模块,用于对所述拼接数据进行零压缩处理,得到压缩数据包。
在本申请实施方式的第三方面中,提供了一种计算设备,所述计算设备包括:
至少一个处理器、存储器和输入输出单元;
其中,所述存储器用于存储计算机程序,所述处理器用于调用所述存储器中存储的计算机程序来执行第一方面的数据压缩处理方法。
在本申请实施方式的第四方面中,提供了一种计算机可读存储介质,其包括指令,当其在计算机上运行该指令时,使得计算机执行第一方面的数据压缩处理方法。
在本申请实施方式的第五方面中,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现第一方面的数据压缩处理方法。
在本申请实施方式的第六方面中,提供了一种芯片,该芯片中包括与收发器耦合的处理器,用于执行第一方面的数据压缩处理方法。
在本申请实施方式的第七方面中,提供了一种芯片系统,该芯片系统包括:通信接口,用于输入和/或输出信息;处理器,用于执行计算机可执行程序,使得安装有所述芯片系统的设备执行如第一方面的数据压缩处理方法。
本申请实施方式中,提供了一种数据压缩处理方法及相关装置。本申请实施方式中,通过接收多个通道的初始数据和连接位图;对每个通道的初始数据进行预处理,得到每个通道的第一数据;将所述多个通道的初始数据和所述连接位图输入到中间存储区域中;根据中间存储区域中的所述连接位图,将多个通道的第一数据拼接得到拼接数据;对拼接数据进行零压缩处理,得到压缩数据包。通过数据拼接将多路数据整合为单数据流,对单数据流进行零压缩处理,以实现存储空间压缩。且数据拼接和零压缩两个环节实现数据压缩,是不对输入数据类型有特殊约束的,因此具有更广泛的适用性,也就是实现了数据压缩处理的高可拓展性。
附图说明
通过参考附图阅读下文的详细描述,本申请示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本申请的若干实施方式,其中:
图1为本申请一实施例提供的数据压缩处理方法的流程示意图;
图2为本申请一可选实施例提供的步骤S104的实施过程示意图;
图3为本申请一可选实施例提供的步骤S105的实施过程示意图;
图4为本申请一可选实施例提供的零压缩电路的架构示意图;
图5为本申请一具体实例中提供的一种零压缩电路的工作流程示意图;
图6为本申请一具体实例中提供的一种输出电路的工作流程示意图;
图7为本申请一具体实例中提供的数据压缩处理设备的工作流程示意图;
图8为本申请一具体实例中提供的16通道数据压缩实例示意图;
图9为本申请一实施例提供的数据压缩处理装置的结构示意图;
图10示意性地示出了本申请实施例的一种介质的结构示意图;
图11示意性地示出了本申请实施例的一种计算设备的结构示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本申请的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本申请,而并非以任何方式限制本申请的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本申请的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
稀疏矩阵是指大部分元素为零的矩阵。这类矩阵在工程应用中经常被使用,尤其是在人工智能领域。大型稀疏矩阵在许多情况下都很常见,特别是在机器学习应用中,例如在线性方程组的系数、将类别映射为计数的数据编码,甚至在自然语言处理等机器学习子领域中。由于稀疏矩阵中存在大量的冗余0,如果将其当作稠密矩阵来表示和处理,计算成本会非常高。然而,通过使用专门处理稀疏矩阵的电路,可以大大提高性能。因此,稀疏矩阵在计算前通常需要经过预处理压缩电路。预处理压缩电路就是用来对稀疏矩阵进行压缩的专用硬件电路。压缩的主要目的是去除矩阵中的大量零元素,只保留非零元素及其位置信息,从而大幅减小存储空间和计算复杂度。因此,在稀疏矩阵计算中,预处理压缩电路是一个非常重要的模块,能够有效减少存储和计算开销,提高整体系统的效率。
目前,相关技术中,由于基于字典的压缩方案将数据字替换为字典中的对应短码,此种方案,需要同步字典,字典的同步会比较复杂,一方面是不同的数据格式需要同步不同的字典,导致此压缩方案的可扩展性较差;另一方面,字典同步时需要较长的数据传输时间,导致数据压缩处理的时长较长,导致延迟开销。
相关技术中,由于基于模式的压缩方案依据数据字中预定义模式的出现频率进行编码,这种方案在压缩多种数据类型,尤其是浮点型和字符型数据能力有限,也很难适应新的数据模式,导致此压缩方案的可扩展性较差。
综上,相关技术中的零数据压缩方案,由于字典同步迁移难度较大,可处理的数据类型不够灵活,可扩展性较差。同步地,由于压缩处理流程复杂,数据压缩的开销延迟。
综上,亟待提供一种全新的技术方案,用以解决相关技术中存在的上述至少一个技术问题。
为了克服现有方案存在的上述技术问题,根据本申请的实施方式,提出了一种数据压缩处理方法及相关装置。
本申请实施方式中,首先,通过接收多个通道的初始数据和连接位图,每一通道的初始数据的数据位宽相同;对每个通道的初始数据进行预处理,得到每个通道的第一数据;将所述多个通道的初始数据和所述连接位图输入到中间存储区域中;根据中间存储区域中的连接位图,通过数据拼接模块,将多个通道的第一数据拼接得到拼接数据;对拼接数据进行零压缩处理,得到压缩数据包。通过数据拼接将多路数据整合为单数据流,对单数据流进行零压缩处理,以实现存储空间压缩。且数据拼接和零压缩两个环节实现数据压缩,是不对输入数据类型有特殊约束的,因此具有更广泛的适用性,也就是实现了数据压缩处理的高可拓展性。比如,需要处理的输入数据属于浮点型和/或字符型数据,那么,对于输入数据的约束可以设置为,输入数据需要位宽相同。此处设置的作用,参见下文所述,意在采用位宽相同的数据作用于逻辑或操作。
其次,通过拼接和零压缩的组合使用,能够支持两个阶段的数据处理的并行工作,从而显著提升了数据的吞吐能力和处理效率,甚至能够在接收到输入的数据后,示例性地可以采用三个时钟周期完成零数据压缩,从而显著降低延迟开销。
本申请实施方式提供的技术方案,可以由服务器和/或终端设备实现。需要说明的是,本申请实施例涉及的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、大数据和人工智能平台等基础云计算服务的云服务器。
本申请实施例涉及的终端设备,可以是指向用户提供语音和/或数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。例如移动电话(或称为“蜂窝”电话)和具有移动终端的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语音和/或数据。例如,个人通信业务(Personal Communication Service,PCS)电话、无绳电话、会话发起协议(Sessioninitialization Protocol,SIP)话机、无线本地环路(Wireless LocalLoop,WLL)站、个人数字助理(Personal Digital Assistant,PDA)等设备。
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本申请的若干代表性实施方式,详细阐释本申请的原理和精神。
下面参考图1,图1为本申请一实施例提供的数据压缩处理方法的流程示意图。本申请实施例提供的一种数据压缩处理方法,包括:
步骤S101,接收多个通道的初始数据和连接位图。
具体地,连接位图用于表征多个通道之间的数据连接关系,连接位图中包含多位,位数与通道的个数相等,每一位表征的是此位对应的通道是否有其他位对应的通道有联系,例如第一位对应的是通道一,第二位对应的是通道二,第三位对应的是通道三,以此类推,第n位对应的是通道n。每一位的取值为0或1,其中,0表征的是此位对应的通道数据与其他位对应的通道无联系,即此位对应的通道数据全是0;1表征的是此位对应的通道数据与其他位对应的通道存在联系,即此位对应的通道数据并非全是0。
示例性地,连接位图中第一位、第四位和第七位的取值为1,其余位的取值为0,表征的是通道一、通道四和通道七的数据并非全为0,且通道一、通道四和通道七的数据有关联,需要拼接在一起。
需要说明的是,多个通道的初始数据来源于需要被压缩的稀疏矩阵,其中包含有大量的冗余0,需要压缩来去除大量零元素。
步骤S102,对每个通道的初始数据进行预处理,得到每个通道的第一数据。
可以理解是,每个通道的初始数据的位宽相同,例如,数据位宽可以为m,也就是说,每个通道的初始数据的位宽相同,为m位。
具体实施例中,步骤S102实施过程,包括:对每个通道的初始数据进行移位补零处理,以使第一数据的数据位宽对齐至初始数据的数据位宽的N倍,实现多通道数据拼接。需要说明的是,N为多个通道的通道个数。通过对初始数据进行移位补零的预处理,将每个通道的初始数据拓展为原始位宽的通道个数的倍数,以便后续多通道数据拼接的实现。
在本公开示例性实施例中,对每个通道的初始数据进行移位补零处理,包括:将每个通道的初始数据进行左移,左移后在数据前端补零。可以理解的是,对于每个通道,在前级模块中将每个通道的初始数据按照预设规则对应的目标位数进行左移,并对左移后的数据进行补零处理,其中左移后的数据在数据前端补零。示例性地,将第n通道的初始数据左移(n-1)×m位,m为每个通道的初始数据的数据位宽,并在左移后的数据前端补0,使所有通道数据位宽对齐至n×m位。
步骤S103,将所述多个通道的第一数据和所述连接位图输入到中间存储区域中。
在本公开的一些实施例中,将多个通道的初始数据和连接位图暂存于先入先出队列FIFO。
需要说明的是,FIFO(First-In,First-Out,先进先出)是一种常见的数据结构或算法策略,FIFO能够保证最早进入队列的数据最先被处理,确保了所有数据的处理顺序是公正的。且FIFO的实现非常简单直观,不需要复杂的逻辑来跟踪数据项的状态,在硬件实现中,FIFO通常可以通过简单的电路设计来实现,易于理解和维护。通过使用FIFO能够有效地管理数据流,避免新数据覆盖旧数据的情况发生。特别是对于本公开实施例中这种需要按照时间顺序处理的数据,FIFO可以帮助减少不必要的延迟,保持数据的顺序性和一致性。在需要增加容量或改变性能的情况下,使用FIFO结构相对容易进行扩展和调整。
相应地,在上述实施例中,步骤S103具体实施过程,包括:响应于接收到压缩指令信号,从FIFO中取出连接位图;基于连接位图,从FIFO中提取多个通道的第一数据进行拼接,得到拼接数据。进一步可选地,压缩指令信号至少包括待写入的内存地址。
在本公开的一些实施例中,提供的数据压缩处理方法,在步骤S104之后,还包括如下步骤:将压缩数据包通过信用的接口存入内存。需要说明的是,将压缩数据包通过信用的接口存入内存中,也就是只在内存可以接受数据时发送数据,能够有效降低存储开销,减少访问内存的流量。
信用的接口是指基于信用的接口(credit based interface),基于信用的接口的作用就是,确保发送端已经发送的任何数据,接收端都具有足够的能力(缓冲区)来接收,所以需要根据下游接收端缓冲区的大小以及下游可接受的数据量设置接口。参见下文,此处需要设置配套的硬件单元,该硬件单元中包含的主要部件为计数器和FIFO,具体参见下文对输出电路组合逻辑的具体示例。
在本公开示例性实施例中,得到压缩数据包后,将压缩数据包存储入FIFO中,以保证生成的压缩数据包能够按照处理顺序通过信用的接口存入内存中。
步骤S104,根据中间存储区域中的所述连接位图,通过数据拼接模块将多个通道的第一数据拼接得到拼接数据。
由于连接位图表征了不同通道数据之间的关联关系,基于连接位图即可确定多个通道之间的拼接关系,基于拼接关系将多个通道的第一数据拼接即可得到单一数据流的拼接数据,以便后续的数据零压缩的实现。
具体来说,在步骤S104的一可选实施例参见图2所示,可以实现为如下步骤:
步骤S201,基于连接位图,确定多个通道中至少两个待拼接通道。
步骤S202,将至少两个待拼接通道的第一数据拼接得到拼接数据。
在本公开的一些实施例中,步骤S201具体实施时,包括:确定连接位图中取值为目标数值的至少两个位;需要说明的是目标数值为一;根据至少两个位得到至少两个待拼接通道。确定连接位图中取值为1的至少两个位,每位对应一个数据通道,则能够确定至少两个待拼接通道。举例说明,连接位图中取值为1的至少两个位为第七位、第九位、第十一位和第十六位,故至少两个待拼接通道为通道七、通道九、通道十一和通道十六。
在本公开的一些实施例中,步骤S202具体实施时,包括:对至少两个待拼接通道的第一数据执行逻辑或运算,得到拼接数据。具体实施时,提取至少两个待拼接通道的第一数据,对其执行逻辑或运算,以将至少两个待拼接通道的第一数据拼接在一起。可以理解的是,除至少两个待拼接通道外的其他通道的数据全为0,即使与至少两个待拼接通道的第一数据拼接在一起的结果执行逻辑或运算得到的结果依然不变,故通过前期筛选出至少两个待拼接通道进行数据拼接,以减少没有必要的数据运算过程就能够得到准确的拼接数据。
需要说明的是,拼接数据的数据位宽与拼接前的所述第一数据的数据位宽相同。执行逻辑或运算能够实现n个通道数据的拼接,拼接后数据位宽仍为n×m位。
可以理解的是,上述数据拼接的过程,仅保留连接位图中取值为1对应的通道数据,其余通道数据未被保留,也就是相当于将连接位图中取值为1对应通道的全0数据全部删除,以实现一部分0数据的剔除。
步骤S105,对拼接数据进行零压缩处理,得到压缩数据包。
具体来说,在步骤S105的一可选实施例参见图3所示,可以实现为如下步骤:
步骤S301,对拼接数据进行零数据删除,得到有效非零数据和校正后的连接位图。
步骤S302,统计有效非零数据的个数和位置信息。
步骤S303,基于有效非零数据的个数和位置信息以及校正后的连接位图确定头信息。
步骤S304,基于头信息和有效非零数据得到压缩数据包。
需要说明的是,对于拼接数据,利用零压缩电路会将删除拼接数据中的全0数据段,剩余的数据即为有效的非零数据,也就是取值为1的数据。在此过程中,也会对连接位图进行校正。举例说明,连接位图中取值为1的位所对应的通道数据应该为非全0数据,但在删除0数据时可能会识别到某一或某些位的取值为1,但对应的通道数据为全0数据,此时,需要对连接位图中的相应位取值进行校正,校正为0。
在上述零压缩过程中,零压缩电路会统计并记录有效非零数据的个数、位置信息以及更新后的拼接位图,这些信息将作为头信息存储。经过零压缩后的数据包仅包含头信息和有效非零数据两部分。
作为一个可选示例,在图4中,零压缩电路主要部件包括比较器、计数器、数据选择器等组合逻辑电路,以及必要的寄存器和控制逻辑。零压缩电路会遍历拼接后的数据,只把不为0的部分被存入新的临时变量。
可以注意的是,在一些实施例中,图4中示意的计数器部分也可以删除,即零压缩电路中不包含图4所示的计数器部分。
示例性地,零压缩组合逻辑电路的主要组成部分包括:比较器用于判断当前数据是否为有效非零数据,计数器用于统计当前数据中有效非零数据的数量,数据选择器用于选择所述有效非零数据,并将被选择的有效非零数据存放至数组中。
进一步可选地,如图5所示的零压缩组合逻辑电路示意图。在图5中,输入零压缩电路中的数据,经过比较器和两个计数器的处理,筛选出了头部信息中的部分信息,比如有效非零数据的个数、位置信息等,并且同步还得到了压缩后的数据。即传输到FIFO中等待输出的数据包,参见图6的实施例。这一步的作用在于,将非零值(即有效非零数据)存放在数组的前面,0存放在数组的后面,从而筛选出非零值。
本申请实施例中,示例性地,输出组合逻辑电路的主要组成部分就是计数器和FIFO。参见图6给出的输出组合逻辑电路示意图,在图6中,压缩后的数据被存储到FIFO中,计数器中某一数据所对应的信任值(Credit)大于0时,即将FIFO中存储的对应数据作为输出数据。
本申请实施方式中,通过上述步骤S101至S105,通过数据拼接将多路数据整合为单数据流,对单数据流进行零压缩处理,以实现存储空间压缩。且数据拼接和零压缩两个环节实现数据压缩,是不对输入数据类型有特殊约束的,因此具有更广泛的适用性,也就是实现了数据压缩处理的高可拓展性。通过拼接和零压缩的组合使用,能够支持两个阶段的数据处理的并行工作,从而显著提升了数据的吞吐能力和处理效率,甚至能够在接收到输入的数据后,仅用三个时钟周期就能够开始输出压缩后的数据包,从而显著降低了延迟开销。通过将压缩数据包通过信用的接口存入内存中,能够有效降低存储开销,减少访问内存的流量。
为了更好地说明本公开实施例提供的数据压缩处理方法,现提供一种具体实例来进一步说明。本具体实例应用于本公开实施例提供的数据压缩处理方法提供一种数据压缩处理设备,数据压缩处理设备的工作流程如图7所示。
如图8所示为上述数据压缩处理设备处理的16通道数据以及连接位图。从图中可以看出,该16通道数据中,通道1、2、3、8、14、15的数据有效,可拼接在一起后进行零压缩。
如图7所示,上述设备的具体工作过程包括:对16个通道的数据进行压缩,每个通道初始数据位宽相同为m位。为实现多通道数据拼接,各通道数据会在前级模块进行移位补零处理,以使所有通道数据位宽对齐至16×m位。
接收到预处理后的数据和连接位图,暂存于先入先出队列FIFO中,等待特定的压缩指令信号触发后续处理。一旦收到压缩指令信号,从FIFO中取出连接位图,根据连接位图中为1的位对应通道(也就是Data1、Data2、Data3、Data8、Data14、Data15)提取相应数据,并对提取数据执行逻辑或运算,实现16个通道数据的拼接,拼接后数据位宽仍为16×m位。
接下来进行零压缩处理。对于拼接数据,将删除全0数据段,剩余的数据即为有效的非零数据。在此过程中,零压缩电路中的计数器会统计并记录有效非零数据的个数,零压缩电路中的寄存器会记录有效非零数据的位置信息以及校正后的连接位图,将有效非零数据的个数、有效非零数据的位置信息以及校正后的连接位图作为头信息存储。
最终,经过零压缩后的数据包仅包含头信息和有效非零数据两部分,该数据包将通过信用的接口存入内存中,即只在内存可以接受数据时发送数据,有效降低了存储开销。
通过上述工作过程可以看出,上述设备实现了多通道数据的拼接、零压缩等处理,大幅减小了数据存储所需空间,提高了处理效率。其中FIFO队列的引入则保证了数据处理的实时性和可靠性。通过流水线设计增大数据吞吐量,即数据拼接模块和零压缩模块均采用纯组合逻辑电路实现,它们各自的输出结果由后级寄存器缓存。该流水线架构支持各级模块的并行工作,从而显著提升了数据的吞吐能力和处理效率。通过拼接和零压缩实现兼容不同的数据格式,也就是本设备通过数据拼接和零压缩两个环节实现数据压缩的目标,不对输入数据类型有特殊约束,因此具有更广泛的适用范围。数据拼接模块将多路输入数据整合为单数据流,而零压缩模块则剔除无效数据,从而达到压缩存储空间的目的。且通过使用基于信用的接口减少访问内存的流量。
在介绍了本申请示例性实施方式的方法之后,接下来,参考图9对本申请示例性实施方式的一种数据压缩处理装置进行说明,该装置应用稀疏矩阵压缩场景下的多通道流水线架构,所述多通道流水线架构至少包括数据拼接模块和/或零压缩模块,所述数据拼接模块和/或所述零压缩模块采用组合逻辑电路;该装置包括如下模块:
数据接收模块701,用于接收多个通道的初始数据和连接位图;其中,连接位图用于表征多个通道之间的数据连接关系,每一通道的初始数据的数据位宽相同;
数据预处理模块702,用于对每个通道的初始数据进行预处理,得到每个通道的第一数据;
数据拼接模块703,用于将所述多个通道的初始数据和所述连接位图输入到中间存储区域中;根据中间存储区域中的所述连接位图,将多个通道的第一数据拼接得到拼接数据;
零压缩模块704,用于对拼接数据进行零压缩处理,得到压缩数据包。
作为一种可选的实施方式,数据预处理模块702,具体用于:
对每个通道的初始数据进行移位补零处理,以使第一数据的数据位宽对齐至初始数据的数据位宽的N倍;其中,N为多个通道的通道个数。
作为一种可选的实施方式,数据预处理模块702,具体用于:对于每个通道,在前级模块中将每个通道的初始数据按照预设规则对应的目标位数进行左移,并对左移后的数据进行补零处理,其中左移后的数据在数据前端补零。
作为一种可选的实施方式,数据预处理模块702,将每个通道的初始数据按照预设规则对应的目标位数进行左移,被配置为:将第n通道的初始数据左移(n-1)×m位;其中,m为每个通道的初始数据的数据位宽。
作为一种可选的实施方式,数据拼接模块703,根据中间存储区域中的所述连接位图,通过数据拼接模块将多个通道的所述第一数据拼接得到拼接数据,具体用于:
基于连接位图,确定多个通道中至少两个待拼接通道;
将至少两个待拼接通道的第一数据拼接得到拼接数据。
作为一种可选的实施方式,数据拼接模块703,被配置为:
确定连接位图中取值为目标数值的至少两个位;其中,目标数值为一;
根据至少两个位得到至少两个待拼接通道。
作为一种可选的实施方式,数据拼接模块703,被配置为:
对至少两个待拼接通道的第一数据执行逻辑或运算,得到拼接数据;所述拼接数据的数据位宽与拼接前的所述第一数据的数据位宽相同。
作为一种可选的实施方式,若所述多个通道的通道个数为n,每个通道的所述第一数据的数据位宽为m,则所述拼接数据的数据位宽与拼接前的所述第一数据的数据位宽均为n×m位。
作为一种可选的实施方式,数据拼接模块703,将所述多个通道的第一数据和所述连接位图输入到中间存储区域中,具体用于:
将所述多个通道的第一数据和所述连接位图暂存于先入先出队列FIFO,所述FIFO支持多通道并行提取。
相应地,数据拼接模块703,根据中间存储区域中的所述连接位图,通过数据拼接模块将多个通道的所述第一数据拼接得到拼接数据,具体用于:
响应于接收到压缩指令信号,从FIFO中取出连接位图;
基于连接位图,从FIFO中提取多个通道的第一数据进行拼接,得到拼接数据。进一步可选地,压缩指令信号至少包括待写入的内存地址。
作为一种可选的实施方式,零压缩模块704,具体用于:
通过零压缩模块遍历所述拼接数据,并删除所述拼接数据中的零数据,得到有效非零数据和校正后的连接位图;
统计有效非零数据的个数和位置信息;
基于有效非零数据的个数和位置信息以及校正后的连接位图确定头信息;
基于头信息和有效非零数据得到压缩数据包。
作为一种可选的实施方式,零压缩模块的组合逻辑电路至少包括比较器、计数器、数据选择器。进一步地,所述比较器用于判断当前数据是否为所述有效非零数据,所述计数器用于统计当前数据中所述有效非零数据的数量,所述数据选择器用于选择所述有效非零数据,并将被选择的所述有效非零数据存放至数组中。
作为一种可选的实施方式,提供的数据压缩处理装置,还包括:数据接入模块,用于:将压缩数据包通过信用的接口存入内存。
本申请实施例中,通过数据压缩处理装置,通过数据拼接将多路数据整合为单数据流,对单数据流进行零压缩处理,以实现存储空间压缩。且数据拼接和零压缩两个环节实现数据压缩,是不对输入数据类型有特殊约束的,因此具有更广泛的适用性,也就是实现了数据压缩处理的高可拓展性。
在介绍了本申请示例性实施方式的设备、方法和装置之后,接下来,参考图10对本申请示例性实施方式的计算机可读存储介质进行说明,该计算机可读存储介质可以设置于数据压缩处理设备中,请参考图10,其示出的计算机可读存储介质为光盘110,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会实现上述方法实施方式中所记载的各步骤,例如,接收多个通道的初始数据和连接位图;其中,所述连接位图用于表征多个通道之间的数据连接关系,每一通道的初始数据的数据位宽相同;对每个通道的初始数据进行预处理,得到每个通道的第一数据;将所述多个通道的初始数据和所述连接位图输入到中间存储区域中;根据中间存储区域中的所述连接位图,通过数据拼接模块将多个通道的所述第一数据拼接得到拼接数据;通过零压缩模块对所述拼接数据进行零压缩处理,得到压缩数据包。各步骤的具体实现方式在此不再重复说明。
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
在介绍了本申请示例性实施方式的设备、方法、介质和装置之后,接下来,参考图11对本申请示例性实施方式的用于数据压缩处理的计算设备,该计算设备可以设置于数据压缩处理设备中。
图11示出了适于用来实现本申请实施方式的示例性计算设备120的框图,该计算设备120可以是计算机系统或服务器。图11显示的计算设备120仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图11所示,计算设备120的组件可以包括但不限于:一个或者多个处理器或者处理单元1201,系统存储器1202,连接不同系统组件(包括系统存储器1202和处理单元1201)的总线1203。
计算设备120典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算设备120访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器1202可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)12021和/或高速缓存存储器12022。计算设备120可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,ROM12023可以用于读写不可移动的、非易失性磁介质(图11中未显示,通常称为“硬盘驱动器”)。尽管未在图11中示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线1203相连。系统存储器1202中可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块12024的程序/实用工具12025,可以存储在例如系统存储器1202中,且这样的程序模块12024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块12024通常执行本申请所描述的实施例中的功能和/或方法。
计算设备120也可以与一个或多个外部设备1204(如键盘、指向设备、显示器等)通信。这种通信可以通过输入/输出(I/O)接口1205进行。并且,计算设备120还可以通过网络适配器1206与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图11所示,网络适配器1206通过总线1203与计算设备120的其它模块(如处理单元1201等)通信。应当明白,尽管图11中未示出,可以结合计算设备120使用其它硬件和/或软件模块。
处理单元1201通过运行存储在系统存储器1202中的程序,从而执行各种功能应用以及数据处理,例如,接收多个通道的初始数据和连接位图;其中,所述连接位图用于表征多个通道之间的数据连接关系,每一通道的初始数据的数据位宽相同;对每个通道的初始数据进行预处理,得到每个通道的第一数据;将所述多个通道的初始数据和所述连接位图输入到中间存储区域中;根据中间存储区域中的所述连接位图,通过数据拼接模块将多个通道的所述第一数据拼接得到拼接数据;通过零压缩模块对所述拼接数据进行零压缩处理,得到压缩数据包。各步骤的具体实现方式在此不再重复说明。应当注意,尽管在上文详细描述中提及了数据压缩处理装置的若干单元/模块或子单元/子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机程序产品,该计算机程序产品包括:计算机程序,所述计算机程序被处理器执行时实现上述数据压缩处理方法。
在本申请的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
Claims (10)
1.一种数据压缩处理方法,其特征在于,所述方法应用稀疏矩阵压缩场景下的多通道流水线架构,所述多通道流水线架构至少包括数据拼接模块和/或零压缩模块,所述数据拼接模块和/或所述零压缩模块采用组合逻辑电路;所述方法包括:
接收多个通道的初始数据和连接位图;其中,所述连接位图用于表征多个通道之间的数据连接关系,每一通道的初始数据的数据位宽相同;
对每个通道的初始数据进行预处理,得到每个通道的第一数据;
将所述多个通道的第一数据和所述连接位图输入到中间存储区域中;
根据中间存储区域中的所述连接位图,通过数据拼接模块将多个通道的所述第一数据拼接得到拼接数据;
通过零压缩模块对所述拼接数据进行零压缩处理,得到压缩数据包。
2.根据权利要求1所述的数据压缩处理方法,其特征在于,对每个通道的初始数据进行预处理,得到每个通道的第一数据,包括:
对每个通道的初始数据进行移位补零处理,以使所述第一数据的数据位宽对齐至所述初始数据的数据位宽的N倍;
其中,N为所述多个通道的通道个数。
3.根据权利要求2所述的数据压缩处理方法,其特征在于,对每个通道的初始数据进行移位补零处理,包括:
对于每个通道,在前级模块中将每个通道的初始数据按照预设规则对应的目标位数进行左移,并对左移后的数据进行补零处理,其中左移后的数据在数据前端补零。
4.根据权利要求3所述的数据压缩处理方法,其特征在于,将每个通道的初始数据按照预设规则对应的目标位数进行左移,包括:
将第n通道的初始数据左移(n-1)×m位;其中,m为每个通道的初始数据的数据位宽。
5.根据权利要求1所述的数据压缩处理方法,其特征在于,根据中间存储区域中的所述连接位图,通过数据拼接模块将多个通道的所述第一数据拼接得到拼接数据,包括:
基于所述连接位图,确定多个通道中至少两个待拼接通道;
将所述至少两个待拼接通道的所述第一数据拼接得到所述拼接数据。
6.根据权利要求5所述的数据压缩处理方法,其特征在于,基于所述连接位图,确定多个通道中至少两个待拼接通道,包括:
确定所述连接位图中取值为目标数值的至少两个位;其中,所述目标数值为一;
根据所述至少两个位得到所述至少两个待拼接通道。
7.根据权利要求6所述的数据压缩处理方法,其特征在于,将所述至少两个待拼接通道的所述第一数据拼接得到所述拼接数据,包括:
对所述至少两个待拼接通道的所述第一数据执行逻辑或运算,得到所述拼接数据;所述拼接数据的数据位宽与拼接前的所述第一数据的数据位宽相同。
8.根据权利要求7所述的数据压缩处理方法,其特征在于,若所述多个通道的通道个数为n,每个通道的所述第一数据的数据位宽为m,则所述拼接数据的数据位宽与拼接前的所述第一数据的数据位宽均为n×m位。
9.根据权利要求1所述的数据压缩处理方法,其特征在于,将所述多个通道的第一数据和所述连接位图输入到中间存储区域中,包括:
将所述多个通道的第一数据和所述连接位图暂存于先入先出队列FIFO,所述FIFO支持多通道并行提取。
10.一种数据压缩处理装置,其特征在于,所述装置应用稀疏矩阵压缩场景下的多通道流水线架构,所述多通道流水线架构至少包括数据拼接模块和/或零压缩模块,所述数据拼接模块和/或所述零压缩模块采用组合逻辑电路;所述装置至少包括:
数据接收模块,用于接收多个通道的初始数据和连接位图;其中,所述连接位图用于表征多个通道之间的数据连接关系,每一通道的初始数据的数据位宽相同;
数据预处理模块,用于对每个通道的初始数据进行预处理,得到每个通道的第一数据;
数据拼接模块,用于将所述多个通道的初始数据和所述连接位图输入到中间存储区域中;根据中间存储区域中的所述连接位图,将多个通道的所述第一数据拼接得到拼接数据;
零压缩模块,用于对所述拼接数据进行零压缩处理,得到压缩数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411269985.8A CN119149506A (zh) | 2024-09-11 | 2024-09-11 | 数据压缩处理方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411269985.8A CN119149506A (zh) | 2024-09-11 | 2024-09-11 | 数据压缩处理方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN119149506A true CN119149506A (zh) | 2024-12-17 |
Family
ID=93811732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202411269985.8A Pending CN119149506A (zh) | 2024-09-11 | 2024-09-11 | 数据压缩处理方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN119149506A (zh) |
-
2024
- 2024-09-11 CN CN202411269985.8A patent/CN119149506A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9158686B2 (en) | Processing system and method including data compression API | |
US6489902B2 (en) | Data compression for use with a communications channel | |
EP2074756B1 (en) | Method, system, and computer program product for resequencing of data segments received over a bonding channel set | |
CN111124317B (zh) | 一种数据流写入的异步交替收发方法、收发系统及设备 | |
US11188338B2 (en) | Context value retrieval prior to or parallel with expansion of previous symbol for context-decoding in range decoder | |
KR20210086420A (ko) | 신경망 데이터 처리 장치, 방법 및 전자 장비 | |
JP2009531976A (ja) | セットアソシアティブキャッシュマッピング技術に基づく高速データ圧縮 | |
CN115065725B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US7480308B1 (en) | Distributing packets and packets fragments possibly received out of sequence into an expandable set of queues of particular use in packet resequencing and reassembly | |
US10565182B2 (en) | Hardware LZMA compressor | |
US8868584B2 (en) | Compression pattern matching | |
US10673768B2 (en) | Managing data compression | |
CN111279617A (zh) | 数据解压缩的装置与方法 | |
CN119149506A (zh) | 数据压缩处理方法及相关装置 | |
CN115567460B (zh) | 数据包处理方法及装置 | |
CN117708005A (zh) | 一种存储器访问方法、装置、设备及介质 | |
CN114157716B (zh) | 基于区块链的数据处理方法、装置和电子设备 | |
US7467150B2 (en) | Block-aware encoding of bitmap for bitmap index eliminating max-slot restriction | |
US11139829B1 (en) | Data compression techniques using partitions and extraneous bit elimination | |
CN116192776A (zh) | 可自修复的报文保序方法、装置、终端及存储介质 | |
CA2358323A1 (en) | Transporting data transmission units of different sizes using segments of fixed sizes | |
CN111817724B (zh) | 一种数据压缩电路 | |
US20050251717A1 (en) | Method and/or apparatus implemented in hardware to discard bad logical transmission units (LTUs) | |
CN106788909A (zh) | 基于gmr卫星通信协议的crc计算方法及装置 | |
WO2013149045A1 (en) | Processing system and method including data compression api |
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 |