CN118100955B - 一种用于对压缩数据进行并行解压的预处理的方法 - Google Patents
一种用于对压缩数据进行并行解压的预处理的方法 Download PDFInfo
- Publication number
- CN118100955B CN118100955B CN202410508652.XA CN202410508652A CN118100955B CN 118100955 B CN118100955 B CN 118100955B CN 202410508652 A CN202410508652 A CN 202410508652A CN 118100955 B CN118100955 B CN 118100955B
- Authority
- CN
- China
- Prior art keywords
- data
- decompressed
- decompression
- module
- compressed data
- 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.)
- Active
Links
- 230000006837 decompression Effects 0.000 title claims abstract description 215
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000007781 pre-processing Methods 0.000 title claims abstract description 28
- 238000013144 data compression Methods 0.000 claims description 21
- 230000011218 segmentation Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 5
- 238000013461 design Methods 0.000 abstract description 14
- 238000012545 processing Methods 0.000 description 34
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 10
- 238000007906 compression Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000010921 in-depth analysis Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供一种用于对压缩数据进行并行解压的预处理的方法以及并行解压缩的装置、芯片电路和解压缩系统及计算设备。用于对压缩数据进行并行解压的预处理的方法包括:按照解压并行度设定相应数量的存储空间;将待处理数据按照预定单位数量顺序分组,将每组数据依次存储在各存储空间中;依次输出每个存储空间中预定比特长度的完整压缩数据,作为待解压数据。并行解压缩的装置包括:压缩数据分发模块、多个数据解压子模块、解压数据缓存模块。根据本发明的技术方案能够在实现大量数据快速解压的同时节约功耗,且电路设计灵活,可扩展性强。
Description
技术领域
本发明涉及芯片电路技术领域,具体涉及一种用于对压缩数据进行并行解压的预处理的方法以及并行解压缩的装置及计算设备。
背景技术
随着计算机技术的发展,数据量呈爆炸式增长,尤其是在互联网、物联网、大数据、人工智能等领域。早期存储设备容量有限且价格昂贵,促使人们寻找有效的方法来减少数据占用的空间。数据压缩技术应运而生,通过算法去除数据中的冗余信息,将大文件转化为小体积的压缩文件,极大地提升了存储效率。
数据压缩可以显著减少需要存储的数据量。这对于存储容量有限的系统(如嵌入式系统或移动设备)尤为重要,因为它们往往需要在有限的存储空间内存储尽可能多的信息。通过压缩数据,这些系统可以更高效地利用存储空间,从而存储更多的数据或应用更大的程序,还能够加快数据传输速度,特别是在网络传输或远程数据传输中,数据压缩可以减少需要传输的数据量,从而缩短传输时间。
随着时间的推移,多种通用和专用的压缩算法被开发出来,如ZIP、RAR、GZIP、LZMA、Brotli、JPEG、MP3等,形成了广泛接受的行业标准。相应的解压缩软件和库也得以广泛开发和应用,使得用户能够方便地创建、分享和解压压缩文件。但是,相比于软件解压,硬件解压的解压速度更快,对于需要高速处理大量数据的应用来说,更能够保证数据处理速度以及可靠性,例如视频处理、图像处理和科学计算等。硬件解压通常使用专门的硬件电路来执行解压操作,可以避免软件解压中可能出现的错误和故障,解压电路经过严格的设计和测试,具有更高的可靠性。
现行的硬件数据解压模块的设计通常采用非常复杂的电路设计,不仅增加了开发电路的成本和时间也限制了模块的灵活性和可扩展性,还使得硬件数据解压模块只能处理特定类型的数据或特定的压缩算法,难以在各种应用场景下通用,也导致后续更新和维护的困难。此外,硬件模块可能消耗更多的电力,这对于低功耗设备或需要长时间运行的系统来说是一个问题。
为此,需要一种技术方案,能够在实现大量数据快速解压的同时节约功耗。
发明内容
本发明旨在提供用于一种用于对压缩数据进行并行解压的预处理的方法以及并行解压缩的装置及计算设备。能够在实现大量数据快速解压的同时节约功耗,且电路设计灵活,可扩展性强。
根据本发明的一方面,提供一种用于对压缩数据进行并行解压的预处理的方法,包括:
按照解压并行度设定相应数量的存储空间;
将待处理数据按照预定单位数量顺序分组,将每组数据依次存储在各存储空间中;
依次输出每个存储空间中预定比特长度的完整压缩数据,作为待解压数据。
根据一些实施例,还包括:通过直接存储器访问搬运所述待解压数据到并行解压模块。
根据一些实施例,所述并行解压模块,包括:压缩数据分发模块、多个数据解压子模块、解压数据缓存模块,其中,
所述压缩数据分发模块接收经过数据预处理的待解压数据,所述待解压数据包括预定比特长度的多个完整的压缩数据,并将所述待解压数据按照并行度分发至各数据解压子模块;
所述多个数据解压子模块分别接收来自所述压缩数据分发模块的待解压数据,并对所述待解压数据进行并行解压,得到解压后数据,并将所述解压后数据传输至所述解压数据缓存模块;
所述解压数据缓存模块接收来自所述数据解压子模块的解压后数据,对所述解压后数据进行缓存排序,得到完整解压数据并输出。
根据本发明的一方面,提供一种并行解压缩的装置,包括:压缩数据分发模块、多个数据解压子模块、解压数据缓存模块,其中,
所述压缩数据分发模块接收利用如上所述的方法进行预处理的待解压数据,所述待解压数据包括预定比特长度的多个完整的压缩数据,并将所述待解压数据按照并行度分发至各数据解压子模块;
所述多个数据解压子模块分别接收来自所述压缩数据分发模块的待解压数据,并对所述待解压数据进行并行解压,得到解压后数据,并将所述解压后数据传输至所述解压数据缓存模块;
所述解压数据缓存模块接收来自所述数据解压子模块的解压后数据,对所述解压后数据进行缓存排序,得到完整解压数据并输出。
根据一些实施例,所述数据解压子模块包括:数据压缩分割单元、有效压缩数据拼接单元、压缩数据解压单元,其中,
所述数据压缩分割单元接收所述待解压数据,获取所述待解压数据中的有效压缩数据,并将所述有效压缩数据传输至所述有效压缩数据拼接单元;
所述有效压缩数据拼接单元接收来自所述数据压缩分割单元的有效压缩数据,将所述有效压缩数据进行拼接并按照预定单位数量顺序分组,得到待解压数据组并传输至所述压缩数据解压单元;
所述压缩数据解压单元接收来自所述有效压缩数据拼接单元的待解压数据组,对所述待解压数据组进行解压,得到解压后数据,并输出所述解压后数据。
根据一些实施例,所述多个数据解压子模块的数量根据并行度设置。
根据一些实施例,所述待解压数据通过直接存储器访问搬运到所述压缩数据分发模块。
根据本发明的一方面,提供一种芯片电路,包括如上所述的任意一项的装置。
根据本发明的一方面,提供一种解压系统,包括如上所述的任意一项的装置及预处理模块,所述预处理模块执行如上所述的任一项所述的方法。
根据本发明的另一方面,提供一种计算设备,包括:
处理器;以及
存储器,存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行如上任一项所述的方法。
根据本发明的另一方面,提供一种非瞬时性计算机可读存储介质,其上存储有计算机可读指令,当所述指令被处理器执行时,使得所述处理器执行如上任一项所述的方法。
根据本发明的实施例,对压缩数据进行预处理,将待处理数据按照预定单位数量顺序分组,再按照存储空间中预定比特长度的完整压缩数据,且所述并行解压缩装置与所述用于对压缩数据进行并行解压的预处理的方法中的所述设定的预定单位数量大小相同,使得待解压数据在后续并行解压过程中,能够同步分析、同步解压,进一步提高解压效率,大幅提升了并行解压效率。
根据一些实施例,将所述待解压数据分解成多个待解压数据进行并行解压,提高了数据解压速度。数据解压模块中采用多解压支路并行的电路设计,电路简单灵活、可扩展性强。
根据一些实施例,通过对压缩数据进行预先处理,将压缩文件进行重新排布,配合所述解压数据缓存模块对解压后数据进行缓存排序,提高了电路装置对不同压缩数据的适应类型。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1示出根据示例实施例一种用于对压缩数据进行并行解压的预处理的方法流程图。
图2示出根据示例实施例一种并行解压缩的装置架构图。
图3示出根据示例实施例一种并行解压缩的装置示意图。
图4示出根据示例实施例一种并行解压缩的装置的数据解压子模块示意图。
图5示出根据示例实施例并行解压缩的装置的压缩数据存储格式示例图。
图6示出根据示例实施例并行解压缩的装置的预处理后压缩数据存储格式示例图。
图7示出根据示例性实施例的计算设备的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本发明将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本发明概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本发明所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的,因此不能用于限制本发明的保护范围。
随着计算机技术的发展,数据量呈爆炸式增长,数据压缩可以显著减少需要存储的数据量。通过压缩数据,这些系统可以更高效地利用存储空间,从而存储更多的数据或应用更大的程序,还能够加快数据传输速度,特别是在网络传输或远程数据传输中,数据压缩可以减少需要传输的数据量,从而缩短传输时间。
与之相应的,解压缩软件和库也得以广泛开发和应用,使得用户能够方便地创建、分享和解压压缩文件。相比于软件解压,硬件解压的解压速度更快,对于需要高速处理大量数据的应用来说,更能够保证数据处理速度以及可靠性,例如视频处理、图像处理和科学计算等。硬件解压通常使用专门的硬件电路来执行解压操作,可以避免软件解压中可能出现的错误和故障,解压电路经过严格的设计和测试,具有更高的可靠性。
传统硬件数据解压模块架构通常包含压缩数据分割、有效压缩数据拼接等模块;随着输入数据位宽的增加,这两个模块的设计会非常复杂,增加了开发成本和时间,并限制了模块的灵活性和可扩展性,还使得硬件数据解压模块只能处理特定类型的数据或特定的压缩算法,难以在各种应用场景下通用,也导致后续更新和维护的困难。此外,硬件模块可能消耗更多的电力,这对于低功耗设备或需要长时间运行的系统来说是一个问题。
为此,本发明提出一种并行解压缩的装置以及用于高并行度解压的方法及计算设备,能够在实现大量数据快速解压的同时节约功耗,且电路设计灵活,可扩展性强。根据实施例,通过对压缩数据进行预先处理,将压缩文件进行重新排布,配合所述解压数据缓存模块对解压后数据进行缓存排序,提高了电路装置对不同压缩数据的适应类型;将所述待解压数据分解成多个待解压数据进行并行解压,提高了数据解压速度;数据解压模块中采用多解压支路并行的电路设计,电路简单灵活、可扩展性强。
在描述本发明实施例之前,对本发明实施例涉及到的一些术语或概念进行解释说明。
Direct Memory Access,直接存储器访问(DMA)是一个计算机硬件功能,它允许外部设备(如硬盘、网卡等)直接读写内存,无需CPU介入每一个数据传输操作。通过这种方式,DMA能够大大提高数据传输效率,并减轻了CPU的负担。
下面结合附图对本发明的示例实施例进行说明。
图1示出根据示例实施例一种用于对压缩数据进行并行解压的预处理的方法流程图。
参见图1,图中示出一种用于高并行度解压数据预处理的方法,具体步骤包括:
在S101,按照并行度值定义相应数量的存储空间。
根据一些实施例,所述压缩数据送入所述解压装置之前,首先将所述压缩数据进行数据的预先处理,得到所述待压缩数据。首先,根据系统设定的并行度值,动态分配相应数量的存储空间。所述并行度通常为硬件支持的最大并发解压任务数,例如,硬件架构配置了4个并行解压单元,则预处理模块会准备4个独立的存储区域,用于存放即将分解的压缩数据片段。
在S103,将待处理数据按照预定单位数量顺序分组,将每组数据依次存储在各存储空间中。
根据一些实施例,定义好存储空间之后,数据预处理模块会对输入的压缩数据进行分组处理。根据设定的预定单位数量分组,将完整的压缩数据切分成多个数据段。
根据一些实施例,每个分组好的数据段会按照一定的顺序逐一存储在上述分配好的各个存储空间中。这样做的目的就是为了后续能按照并行策略,将每个存储空间中的数据独立、同步地交给不同的解压子模块进行解压处理。
在S105,依次输出每个存储空间中预定比特长度的完整压缩数据,作为待解压数据。
根据一些实施例,最后,数据预处理模块会按照存储顺序,依次从各个存储空间中取出预定比特长度的完整压缩数据,作为待解压数据送入所述高并行度解压装置中,由所述压缩数据分发模块将这些待解压数据合理地分配给各个解压模块进行并行解压作业,既满足了高并行解压对数据分割和分发的需求,也充能够有效利用硬件资源,使得数据处理更加流畅、高效。
所述预定单位数量为根据压缩数据大小及解压装置的数据处理能力设定的数据分组长度。
根据一些实施例,设定的预定单位数量是基于压缩数据本身的大小以及解压装置的数据处理能力和并行度来设定的。首先,分析原始压缩数据的整体大小,根据数据量的多少,以及解压过程中内存和带宽等资源的限制,确定一个合理的数据分组长度。例如,数据位宽是128bits,同一个压缩数据在不能拆分到两个128bits或不满足128bits需要冗余数据进行填充,这会导致数据压缩率降低。同时,也有对硬件实现电路和数据压缩率的考虑,解压数据位宽越小、硬件实现会变简单,对应的面积和功耗也越小,确保设定的数据分组长度能够充分利用硬件资源,实现高效并行解压。例如,对于同一压缩数据是拆分成4个128bits,或是2个256bits都是可行的,但是综合权衡硬件装置的功耗、并行度和数据压缩率的结果,进行最优选择与设定。在实际操作中,可能还需要考虑数据本身的内在规律和压缩算法特性,尽量避免在数据分组边界处出现解压过程中的依赖性问题,确保分组后的数据能够独立解压,以进一步提高解压效率。因此,设定的数据分组长度是一种综合考量压缩数据特性、解压装置性能和并行处理能力的结果,旨在确保在解压过程中能够高效、有序地对数据进行分发、处理和整合,从而获得最佳的解压性能。
图2示出根据示例实施例一种并行解压缩的装置架构图。
图中示出一种并行解压缩的装置架构图作为所述并行解压模块的一个具体示例,参见图2,所述并行解压模块,包括:压缩数据分发模块、多个数据解压子模块、解压数据缓存模块,其中,所述压缩数据分发模块接收经过数据预处理的待解压数据,所述待解压数据包括预定比特长度的多个完整的压缩数据,并将所述待解压数据按照并行度分发至各数据解压子模块;所述多个数据解压子模块分别接收来自所述压缩数据分发模块的待解压数据,并对所述待解压数据进行并行解压,得到解压后数据,并将所述解压后数据传输至所述解压数据缓存模块;所述解压数据缓存模块接收来自所述数据解压子模块的解压后数据,对所述解压后数据进行缓存排序,得到完整解压数据并输出。
如图2所示,压缩数据data_i[511:0]被分配到4个硬件解压子模块进行处理,由于解压子模块输入位宽为data_i[127:0],这极大的简化压缩数据分割和有效压缩数据拼接设计、电路时序易于收敛、减少开发成本和时间。这样的架构具备灵活性和可扩展性的优势,随着算法的更新迭代,输入的数据位宽可能增加data_i[1023:0]或减少data_i[255:0],对于此架构只需要额外增加或减少硬件数据解压子模块即可。
根据一些实施例,在所述待解压数据送入所述压缩数据分发模块之前,需要对所述压缩数据进行预先处理,得到待解压数据根据系统设定的并行度值,动态分配相应数量的存储空间。定义好存储空间之后,根据设定的预定单位数量分组,将完整的压缩数据切分成多个数据段。
根据一些实施例,每个分组好的数据段会按照一定的顺序逐一存储在上述分配好的各个存储空间中。这样做的目的就是为了后续能按照并行策略,将每个存储空间中的数据独立、同步地交给不同的解压子模块进行解压处理。最后,数据预处理模块会按照存储顺序,依次从各个存储空间中取出数据段,作为待解压数据送入压缩数据分发模块,由所述压缩数据分发模块将这些待解压数据合理地分配给各个解压模块进行并行解压作业,既满足了高并行解压对数据分割和分发的需求,也充能够有效利用硬件资源,使得数据处理更加流畅、高效。
根据一些实施例,数据经过预先处理后,再分发到高并行度解压装置中进行多个待解压数据同时、同步解压,省去了异步解压的等待时间,进一步提高解压效率。
图3示出根据示例实施例一种并行解压缩的装置示意图。
参见图3,图中示出一种并行解压缩的装置,用于对压缩数据进行高并行度解压,包括:压缩数据分发模块01、多个数据解压子模块02、解压数据缓存模块03,其中,
所述压缩数据分发模块01接收利用如上所述方法进行预处理的待解压数据的待解压数据,所述待解压数据包括预定比特长度的多个完整的压缩数据,并将所述待解压数据按照并行度分发至各数据解压子模块02。
根据一些实施例,所述压缩数据分发模块01将预处理过的待解压数据按照特定的并行策略进行分割和调度,所述待解压数据包括预定比特长度的多个完整的压缩数据,根据预设的并行解压策略和当前硬件平台所能提供的并行度,该模块会对待解压数据进行智能且高效的分解,并将所述待解压数据按照并行度分发至各数据解压子模块02。
根据一些实施例,所述并行策略可依据数据内部的逻辑结构、数据块大小、解压算法特性以及硬件资源的实际配置来进行动态调整和优化,以最大化硬件资源的利用率,实现高并发的解压处理。
所述多个数据解压子模块02分别接收来自所述压缩数据分发模块的待解压数据,并对所述待解压数据进行并行解压,得到解压后数据,并将所述解压后数据传输至所述解压数据缓存模块03。
根据一些实施例,所述多个数据解压子模块02从压缩数据分发模块01接收已分解好的待解压数据。所述多个数据解压子模块02由多个并行解压单元构成,这些单元能够独立并高效地执行解压缩算法,对各自的待解压数据进行解压处理。
根据一些实施例,在接收到待解压数据后,多个数据解压子模块02运用对应的解压算法(如Huffman编码、LZ77/LZ78、DEFLATE、LZMA等),去除数据中的冗余信息,还原成原始的未压缩格式。这个过程不仅要求速度快,还需要保证解压数据的完整性和准确性。
根据一些实施例,待解压数据成功解压后,多个数据解压子模块02就会将解压后数据传输至解压数据缓存模块03。解压数据缓存模块03则作为一个临时存储区域,用于暂存这些解压结果,便于后续的数据整合、处理或传输。这样的设计使得解压过程与后续的数据处理环节能够更加顺畅地衔接,同时也减轻了系统在解压瞬间对内存或存储的压力,提高了整个系统的吞吐量和响应速度。
所述解压数据缓存模块03接收来自所述数据解压子模块的解压后数据,对所述解压后数据进行缓存排序,得到完整解压数据并输出。
根据一些实施例,解压数据缓存模块03对接收到的多个数据解压子模块02传送过来的解压后数据进行管理和优化存储。解压数据缓存模块03与多个数据解压子模块02之间存在高速的数据通道,用于实时接收并存储从03模块解压出来的各个解压后数据。接收到的解压后数据会被暂时存储在高效的缓存系统中,该系统通常具备快速读写的能力,确保解压后的数据能够快速且有效地暂存起来,减少I/O瓶颈,提高数据处理的整体速度。
根据一些实施例,解压数据缓存模块03还会进行相应的排序和整理工作,对于有顺序依赖关系或者需要按特定规则合并的解压后数据,保证数据的完整性和一致性。这种排序是基于时间戳、序列号或其他逻辑关联属性,确保后续处理时数据的正确拼接。
根据一些实施例,解压数据缓存模块03完成缓存和排序之后,解压数据缓存模块03会按照系统需求,适时地将解压且排序好的数据发送到下一个处理阶段,这一输出过程可以是实时推送,也可以是在满足一定条件(如数据完整性确认、缓存空间管理策略触发等)时触发的批量处理模式。解压数据缓存模块03确保了解压后数据的正确性,以及对数据的有效管理和高效流转。
图4示出根据示例实施例一种并行解压缩的装置的数据解压子模块示意图。
参见图4,所述数据解压子模块包括:数据压缩分割单元0201、有效压缩数据拼接单元0202、压缩数据解压单元0203,其中,
所述数据压缩分割单元0201接收所述待解压数据,获取所述待解压数据中的有效压缩数据,并将所述有效压缩数传输至所述有效压缩数据拼接单元。
根据一些实施例,所述数据压缩分割单元0201接收经过初步处理的待解压数据,并准备进入具体的解压流程。
根据一些实施例,所述数据压缩分割单元0201对每一个待解压数据进行深入分析,从中识别并提取出有效压缩数据部分。通常来说,压缩数据中还包含头部信息、校验码等各种非压缩内容,只有提取出有效压缩数据才能进行下一步的解压操作。将提取出来的有效压缩数据,按照预定的格式或协议,精准地传输给后续的有效压缩数据拼接单元0202。数据压缩分割单元0201不仅确保了数据在并行解压过程中的正确流动,还优化了解压效率,因为只处理有效压缩数据,而非包含额外元数据的部分,从而降低了不必要的计算资源消耗。
所述有效压缩数据拼接单元0202接收来自所述数据压缩分割单元0201的有效压缩数据,将所述有效压缩数据进行拼接并按照预定单位数量顺序分组,得到待解压子数据组并传输至所述压缩数据解压单元0203
根据一些实施例,所述有效压缩数据拼接单元0202从数据压缩分割单元0201接收已经过滤和提取出的有效压缩数据,并将这些有效压缩数据进行拼接和分组操作。拼接是为了将连续的数据片段重新整合成完整的数据流,以利于解压缩过程。
根据一些实施例,还需要对所述有效数据进行分组,将所述有效压缩数据进行拼接并按照预定单位数量顺序分组,将数据分割成适合各个压缩数据解压单元处理的数据组。所述预定单位数量在所述多个数据解压子模块中与预处理中保持一致,这样统一大小的分组方式,能够减少或省去并行解压中的等待时间,实现同步分析、同步解压,进一步提高解压效率。
根据一些实施例,完成拼接分组后,有效压缩数据拼接单元0202将得到的待解压数据组准确无误地传输给后续的压缩数据解压单元0203,确保这些子数据组可以被并行解压单元同时处理,提高了解压效率,从而实现整个解压架构的高并行度解压目标。
所述压缩数据解压单元0203接收来自所述有效压缩数据拼接单元的待解压子数据组,对所述待解压子数据组进行解压,得到解压后数据,并输出所述解压后数据。
根据一些实施例,所述压缩数据解压单元0203接收经过整合的待解压数据组,运用与压缩时相对应的解压缩算法对接收到的子数据组进行解码还原,把高度紧凑的压缩形式转换回原本占用空间更大的原始数据格式。成功解压后,得到一个解压后数据,这个解压后数据是原始数据的一部分或完整的小块数据单位。
根据一些实施例,所述压缩数据解压单元0203会将这个解压后数据输出到所述解压数据缓存模块03中。通过这种方式,系统能够有序而有效地处理大量压缩数据,从而保证数据传输与处理的高效性及完整性。
所述多个数据解压子模块的数量根据并行度设置。
根据一些实施例,在所述高并行硬件数据解压架构中,数据解压模块设计了多个独立的数据解压子模块,这些子模块可以根据系统所支持的并行度动态配置和激活。当系统配置了特定的并行度数值时,数据解压模块会按照这个数值在硬件或软件层面实例化(例化)相应数量的数据解压子模块。例如,如果系统支持最大4个并行解压子线程,那么就会创建4个数据解压子模块。每个数据解压子模块都具备独立解压数据块的能力,且各子模块间相互独立,互不干扰。这样设计的目的在于利用硬件并行处理能力,将待解压的压缩数据分割成若干子数据块,分别提交给这些解压子模块同时进行解压操作。
根据一些实施例,压缩数据分发模块将所述待解压数据均匀地分配给各个数据解压子模块,确保每个子模块都能得到有效利用,避免资源闲置或过度集中,从而最大程度地提高解压效率。
所述待解压数据通过DMA搬运到所述压缩数据分发模块。
根据一些实施例,DMA控制器接收到来自并行解压缩装置的请求,将所述待解压数据通过DMA搬运到所述压缩数据分发模块。这一过程无需CPU执行每一步的数据读写操作,从而极大地提高了数据搬运速度。DMA控制器根据预先配置好的传输参数(如源地址、目标地址、传输长度等)发起并管理数据的直接搬运,数据按照连续的物理内存块进行高效的传输。通过这样的机制,系统可以充分利用硬件资源,同时释放CPU去执行其他更高优先级的任务,保证了整体系统的性能和效率。
图5示出根据示例实施例并行解压缩的装置的压缩数据存储格式示例图。
图6示出根据示例实施例并行解压缩的装置的预处理后压缩数据存储格式示例图。
具体地,结合图5及图2中架构示例,对压缩数据进行预处理的方法及流程进行举例说明。读图可知,示例中并行度为4,输入的压缩数据为i_data[511:0],输入数据的存储格式如图5所示。
首先,将输入的压缩数据i_data[511:0]拆分成4个i_data[127:0]并行处理。参见图4,定义4个存储空间 container 0、1、2、3。将压缩数据按照每16个字节为单位按按照原始数据的顺序的方向,存放在4个存储空间。具体场景中,每个存储空间的大小按照数据大小进行适应调整。之后再将每个存储空间中的数据竖向整合成128bits,依次读取得到所述待解压数据。每128bits大致包含0~32个压缩数据,但通常情况包含约24个压缩数据。
根据一些实施例,经上述预处理后,得到所述待解压数据的存储格式如图6中所示,所述待解压数据在芯片内部,经DMA搬运到高并行解压模块,经所述高并行度解压装置进行并行解压操作,最终输出解压数据,该过程减少DMA搬运数据的时间和功耗、提高芯片的带宽和工作效率。
对所述待解压数据进行解压,得到解压后的解压后数据,包括:获取所述待解压数据中的有效压缩数据;将所述有效压缩数据进行拼接分组,得到待解压数据组;对所述待解压数据组进行解压,得到解压后数据。
根据一些实施例,在接收到待解压数据后,首先需要从其中筛选出有效的压缩数据部分。然后,将这些子数据块中的有效压缩数据拼接到一起,形成连续的数据流,为了适应并行解压的需求,还需将拼接后的数据流按照合适的大小和边界进行分组,形成多个待解压数据组。
根据一些实施例,对每一个待解压数据组进行解压操作。在并行硬件架构中,不同解压子模块可以同时对不同的子数据组进行解压,极大地提高了解压速度和效率。经解压后,每个待解压数据组会被还原成未压缩的原始数据,这些数据集合在一起构成了解压后的解压后数据。
根据一些实施例,本发明方案可集成于各种类型的芯片电路中,在芯片电路中,集成上文中所述的装置,实现对压缩文件的大批量高速解压。
根据一些实施例,本发明方案可应用于各类型的数据解压系统中,其中,所述并行解压缩的装置与所述用于对压缩数据进行并行解压的预处理的方法中的所述设定的预定单位数量顺序大小相同,保证最大限度提高硬件装置的解压效率。
根据一些实施例,本发明方案中对压缩数据进行预先处理,将压缩文件进行重新排布,配合所述解压数据缓存模块对解压后数据进行缓存排序,提高了电路装置对不同压缩数据的适应类型,提高了硬件解压装置的通用性,最大限度发挥了硬件解压的速度优势。
根据一些实施例,本发明方案中,将所述待解压数据分解成多个待解压数据进行并行解压,并行解压的方式提高了数据解压速度。数据解压模块中采用多解压支路并行的电路设计,电路简单灵活、可扩展性强。
根据一些实施例,本发明方案中,通过数据通路旁路技术优化了数据处理流程,而独立电源供电则增强了功耗管理能力和系统鲁棒性,共同助力装置实现高效、灵活、节能的数据解压处理模式。
图7示出根据本发明示例实施例的计算设备的框图。
如图7所示,计算设备30包括处理器12和存储器14。计算设备30还可以包括总线22、网络接口16以及I/O接口18。处理器12、存储器14、网络接口16以及I/O接口18可以通过总线22相互通信。
处理器12可以包括一个或多个通用CPU(Central Processing Unit,处理器)、微处理器、或专用集成电路等,用于执行相关程序指令。根据一些实施例,计算设备30还可包括为处理器12进行加速的高性能显示适配器(GPU)20。
存储器14可以包括易失性存储器形式的机器系统可读介质,例如随机存取存储器(RAM)、只读存储器(ROM)和/或高速缓存存储器。存储器14用于存储包含指令的一个或多个程序以及数据。处理器12可读取存储在存储器14中的指令以执行上述根据本发明实施例的方法。
计算设备30也可以通过网络接口16与一个或者多个网络通信。该网络接口16可以是无线网络接口。
总线22可以为包括地址总线、数据总线、控制总线等。总线22提供了各组件之间交换信息的通路。
需要说明的是,在具体实施过程中,计算设备30还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC)、网络存储设备、云存储设备,或适合于存储指令和/或数据的任何类型的媒介或设备。
本发明实施例还提供一种计算机程序产品,该计算机程序产品包括存储计算机程序的非瞬时性计算机可读存储介质,该计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种方法的部分或全部步骤。
本领域的技术人员可以清楚地了解到本发明的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列、集成电路等。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上具体地展示和描述了本发明的示例性实施例。应可理解的是,本发明不限于这里描述的详细结构、设置方式或实现方法;相反,本发明意图涵盖包含在所附条款的精神和范围内的各种修改和等效设置。
Claims (8)
1.一种用于对压缩数据进行并行解压的预处理的方法,其特征在于,包括:
按照解压并行度设定相应数量的存储空间;
将待处理数据按照预定单位数量顺序分组,将每组数据依次存储在各存储空间中;
依次输出每个存储空间中预定比特长度的完整压缩数据,作为待解压数据;
通过直接存储器访问搬运所述待解压数据到并行解压模块,
其中,所述并行解压模块包括:压缩数据分发模块、多个数据解压子模块、解压数据缓存模块,其中,
所述压缩数据分发模块接收经过数据预处理的待解压数据,所述待解压数据包括预定比特长度的多个完整的压缩数据,并将所述待解压数据按照并行度分发至各数据解压子模块;
所述多个数据解压子模块分别接收来自所述压缩数据分发模块的待解压数据,并对所述待解压数据进行并行解压,得到解压后数据,并将所述解压后数据传输至所述解压数据缓存模块;
所述解压数据缓存模块接收来自所述数据解压子模块的解压后数据,对所述解压后数据进行缓存排序,得到完整解压数据并输出。
2.一种并行解压缩的装置,其特征在于,包括:压缩数据分发模块、多个数据解压子模块、解压数据缓存模块,其中,
所述压缩数据分发模块接收利用权利要求1所述的方法进行预处理的待解压数据,并将所述待解压数据按照并行度分发至各数据解压子模块,所述待解压数据包括预定比特长度的多个完整的压缩数据;
所述多个数据解压子模块分别接收来自所述压缩数据分发模块的待解压数据,并对所述待解压数据进行并行解压,得到解压后数据,并将所述解压后数据传输至所述解压数据缓存模块;
所述解压数据缓存模块接收来自所述多个数据解压子模块的解压后数据,对所述解压后数据进行缓存排序,得到完整解压数据并输出。
3.根据权利要求2所述的装置,其特征在于,所述数据解压子模块包括:数据压缩分割单元、有效压缩数据拼接单元、压缩数据解压单元,其中,
所述数据压缩分割单元接收所述待解压数据,获取所述待解压数据中的有效压缩数据,并将所述有效压缩数据传输至所述有效压缩数据拼接单元;
所述有效压缩数据拼接单元接收来自所述数据压缩分割单元的有效压缩数据,将所述有效压缩数据进行拼接并按照预定单位数量顺序分组,得到待解压数据组并传输至所述压缩数据解压单元;
所述压缩数据解压单元接收来自所述有效压缩数据拼接单元的待解压数据组,对所述待解压数据组进行解压,得到解压后数据,并输出所述解压后数据。
4.根据权利要求2所述的装置,其特征在于,所述多个数据解压子模块的数量根据并行度设置。
5.根据权利要求2所述的装置,其特征在于,所述待解压数据通过直接存储器访问搬运到所述压缩数据分发模块。
6.一种芯片电路,其特征在于,包括权利要求2-5中任意一项所述的装置。
7.一种解压缩系统,其特征在于,包括权利要求2-5中任意一项所述的装置及预处理模块,所述预处理模块执行权利要求1中所述的方法。
8.一种计算设备,其特征在于,包括:
处理器;以及
存储器,存储有计算机程序,当所述计算机程序被所述处理器执行时,实现如权利要求1中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410508652.XA CN118100955B (zh) | 2024-04-26 | 2024-04-26 | 一种用于对压缩数据进行并行解压的预处理的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410508652.XA CN118100955B (zh) | 2024-04-26 | 2024-04-26 | 一种用于对压缩数据进行并行解压的预处理的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118100955A CN118100955A (zh) | 2024-05-28 |
CN118100955B true CN118100955B (zh) | 2024-07-23 |
Family
ID=91153475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410508652.XA Active CN118100955B (zh) | 2024-04-26 | 2024-04-26 | 一种用于对压缩数据进行并行解压的预处理的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118100955B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827221A (zh) * | 2022-11-16 | 2023-03-21 | 人和未来生物科技(长沙)有限公司 | 一种bam文件并行读取方法、系统及介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6119092A (en) * | 1998-06-26 | 2000-09-12 | Lsi Logic Corporation | Audio decoder bypass module for communicating compressed audio to external components |
JP2007251423A (ja) * | 2006-03-14 | 2007-09-27 | Fujifilm Corp | 画像処理装置及び方法 |
US8032499B2 (en) * | 2007-05-21 | 2011-10-04 | Sap Ag | Compression of tables based on occurrence of values |
CN103997648B (zh) * | 2014-06-11 | 2017-04-05 | 中国科学院自动化研究所 | 一种基于dsp的jpeg2000标准图像快速解压缩系统及方法 |
CN111290697B (zh) * | 2018-12-07 | 2022-01-28 | 上海寒武纪信息科技有限公司 | 数据压缩方法、编码电路和运算装置 |
CN111294057A (zh) * | 2018-12-07 | 2020-06-16 | 上海寒武纪信息科技有限公司 | 数据压缩方法、编码电路和运算装置 |
CN115622569B (zh) * | 2022-11-30 | 2023-03-10 | 中国人民解放军国防科技大学 | 基于字典压缩算法的数字波形压缩方法、装置和设备 |
-
2024
- 2024-04-26 CN CN202410508652.XA patent/CN118100955B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827221A (zh) * | 2022-11-16 | 2023-03-21 | 人和未来生物科技(长沙)有限公司 | 一种bam文件并行读取方法、系统及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN118100955A (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10915247B2 (en) | Efficient data management through compressed data interfaces | |
US20190188738A1 (en) | Method and a Device for Decoding Data Streams in Reconfigurable Platforms | |
US7924183B2 (en) | Method and system for reducing required storage during decompression of a compressed file | |
EP3820048A1 (en) | Data compression and decompression method and related apparatus, electronic device, and system | |
US7800519B2 (en) | Method and apparatus for compressing and decompressing data | |
CN111723059B (zh) | 一种数据压缩方法、装置、终端设备及存储介质 | |
US9836248B2 (en) | In-memory data compression complementary to host data compression | |
US11070230B2 (en) | Run-length base-delta encoding for high-speed compression | |
US11791838B2 (en) | Near-storage acceleration of dictionary decoding | |
CN107850983B (zh) | 计算机系统、存储装置和数据的管理方法 | |
US11973519B2 (en) | Normalized probability determination for character encoding | |
CN118100955B (zh) | 一种用于对压缩数据进行并行解压的预处理的方法 | |
CN113138969A (zh) | 数据传输方法、装置、电子设备和计算机可读存储介质 | |
CN113497627A (zh) | 一种数据压缩和解压缩方法、装置及系统 | |
CN108932315A (zh) | 一种数据解压的方法以及相关装置 | |
US12001237B2 (en) | Pattern-based cache block compression | |
CN212873459U (zh) | 一种用于数据压缩存储的系统 | |
WO2024066547A1 (zh) | 数据压缩方法、装置、计算设备及存储系统 | |
US11507499B2 (en) | System and method for facilitating mitigation of read/write amplification in data compression | |
EP4355047A2 (en) | Technology for early abort of compression acceleration | |
CN116991812A (zh) | 文件压缩方法、装置、设备及存储介质 | |
CN112199343A (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 |