CN110247666A - 一种硬件并行压缩的系统及方法 - Google Patents

一种硬件并行压缩的系统及方法 Download PDF

Info

Publication number
CN110247666A
CN110247666A CN201910431508.XA CN201910431508A CN110247666A CN 110247666 A CN110247666 A CN 110247666A CN 201910431508 A CN201910431508 A CN 201910431508A CN 110247666 A CN110247666 A CN 110247666A
Authority
CN
China
Prior art keywords
compression
compression core
data
compressed
core
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
Application number
CN201910431508.XA
Other languages
English (en)
Other versions
CN110247666B (zh
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.)
Shenzhen University
Original Assignee
Shenzhen University
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 Shenzhen University filed Critical Shenzhen University
Priority to CN201910431508.XA priority Critical patent/CN110247666B/zh
Publication of CN110247666A publication Critical patent/CN110247666A/zh
Application granted granted Critical
Publication of CN110247666B publication Critical patent/CN110247666B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6005Decoder aspects
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6017Methods or arrangements to increase the throughput
    • H03M7/6023Parallelization
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提供了一种硬件并行压缩的系统及方法。一种硬件并行压缩的系统包括循环冗余校验模块、数据大小记录模块、压缩核调度模块和N个压缩核,对待压缩数据进行并行压缩时,每周期获取待压缩数据的M比特数据,每周期将M比特数据输入系统,其中,M、N为正整数;循环冗余校验模块,用于计算待压缩数据的循环冗余校验码;数据大小记录模块,用于计算待压缩数据的大小;压缩核调度模块,用于检测N个压缩核的执行状态,根据N个压缩核的执行状态将M比特数据分配到N个压缩核中进行压缩;N个压缩核,用于压缩M比特数据,其中,N个压缩核并行压缩。本发明实施例的技术方案,实现了多路并行压缩数据,提升了数据压缩的速率。

Description

一种硬件并行压缩的系统及方法
技术领域
本发明涉及数据压缩技术领域,尤其涉及一种硬件并行压缩的系统及方法。
背景技术
随着大数据和人工智能不断发展,互联网上需要处理的数据规模越来越大,庞大的数据量会占用大量的磁盘资源,为了减少数据存储,避免数据占用过多存储资源,通常会对数据进行压缩,再进行存储。
目前的数据压缩通常采用软件实现Gzip压缩算法,但会占用中央处理器(CPU,Central Processing Unit)大量的时间以及大量的内存资源,并且,由于采用Gzip算法压缩数据时,对前面的数据有依赖关系,所以现在大多采用单路压缩方式进行数据压缩,即每个周期最多只能处理一个字符,这样,数据压缩的速率较低。
发明内容
本发明实施例提供硬件并行压缩的系统及方法,以实现多路并行压缩数据,提升数据压缩的速率。
本发明第一方面提供一种硬件并行压缩的系统,所述系统包括循环冗余校验模块、数据大小记录模块、压缩核调度模块和N个压缩核,对待压缩数据进行并行压缩时,每周期获取所述待压缩数据的M比特数据,每周期将所述M比特数据输入所述系统,其中,M、N为正整数;
所述循环冗余校验模块,用于计算所述待压缩数据的循环冗余校验码;
所述数据大小记录模块,用于计算所述待压缩数据的大小;
所述压缩核调度模块,用于检测所述N个压缩核的执行状态,根据所述N个压缩核的执行状态将所述M比特数据分配到所述N个压缩核中进行压缩;
所述N个压缩核,用于压缩所述M比特数据,其中,所述N个压缩核并行压缩。
基于本发明第一方面,在第一种可能的实施方式中,所述压缩核调度模块具体包括输入状态机模块、辅助状态机模块、输出状态机模块和压缩核状态寄存模块:
所述输入状态机模块,用于将所述M比特数据发送给第一压缩核、所述循环冗余校验模块和所述数据大小记录模块,将所述第一压缩核的存储信息发给所述辅助状态机模块,其中,所述第一压缩核属于所述N个压缩核;
所述辅助状态机模块,用于转换所述N个压缩核的执行状态,将所述N个压缩核的执行状态发给所述输入状态机模块和所述输出状态机模块;
所述输出状态机模块,用于检测所述N个压缩核是否有压缩完成的数据输出,如果第二压缩核有压缩完成的数据输出,则将所述第二压缩核压缩完成的数据传输到内存,发送转换指令给所述辅助状态机模块,其中,所述转换指令用于指示所述辅助状态机模块转换所述第二压缩核的执行状态,所述第二压缩核属于所述N个压缩核;
所述压缩核状态寄存模块,用于存储所述N个压缩核的执行状态,所述压缩核状态寄存模块由所述辅助状态机模块调度。
基于本发明第一方面的第一种可能的实施方式,在第二种可能的实施方式中,所述N个压缩核中每个压缩核的执行状态包括准备状态、输入状态和工作状态,所述第一压缩核的执行状态为输入状态,所述第二压缩核的执行状态为工作状态,所述辅助状态机模块具体用于:
根据所述第一压缩核的存储信息判断所述第一压缩核的输入缓存是否存满,如果存满,将所述第一压缩核的执行状态转换为工作状态;
接受到所述转换指令时,将所述第二压缩核的执行状态转换为准备状态;
获取处于准备状态的第三压缩核,将所述第三压缩核的执行状态转换为输入状态,其中,所述第三压缩核属于所述N个压缩核。
基于本发明第一方面、或者基于本发明第一方面的第一种可能的实施方式、或者基于本发明第一方面的第二种可能的实施方式,在第三种可能的实施方式中,所述压缩核调度模块还用于:
当所述待压缩数据压缩完成时,从所述循环冗余校验模块中获取所述待压缩数据的循环冗余校验码;
从所述数据大小记录模块中获取所述待压缩数据的大小;
将所述待压缩数据的循环冗余校验码和所述待压缩数据的大小拼接在压缩完成的数据尾部,传输到内存。
基于本发明第一方面,在第四种可能的实施方式中,所述N个压缩核中的第i个压缩核具体包括:
输入缓存,用于存储输入所述第i个压缩核的数据;
输出缓存,用于存储所述第i个压缩核压缩完成的数据;
压缩模块,用于对输入所述第i个压缩核的数据进行压缩,将所述第i个压缩核压缩完成的数据发送给所述输出缓存;
其中,i为不大于N的正整数。
本发明第二方面提供了一种硬件并行压缩的方法,包括:
对待压缩数据进行并行压缩时,每周期获取所述待压缩数据的M比特数据,其中,M为正整数;
计算所述待压缩数据的循环冗余校验码;
计算所述待压缩数据的大小;
检测N个压缩核的执行状态,其中,N为正整数;
根据所述N个压缩核的执行状态将所述M比特数据分配到所述N个压缩核中进行压缩,其中,所述N个压缩核并行压缩。
可以看到,通过本发明提供的硬件并行压缩的系统及方法,通过循环冗余校验模块、数据大小记录模块、压缩核调度模块和N个压缩核对数据进行压缩,对待压缩数据进行并行压缩时,每周期获取待压缩数据的M比特数据,每周期将M比特数据输入硬件并行压缩系统,其中,通过循环冗余校验模块生成待压缩数据的循环冗余校验码,以支持高位宽的循环冗余校验,通过压缩核调度模块调度N个压缩核对每周期输入的M比特数据进行多路并行压缩,N个压缩核没有数据依赖关系,一个周期内可以并行处理多个M比特数据,实现了多路并行压缩数据,提升了数据压缩的速率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种硬件并行压缩的系统的结构示意图;
图2为本发明实施例提供的一种硬件并行压缩的系统中压缩核调度模块的结构示意图;
图3为本发明实施例提供的一种硬件并行压缩的系统中N个压缩核中的任意一个压缩核的结构示意图;
图4为本发明实施例提供的一种硬件并行压缩的方法的流程图;
图5为本发明实施例提供的另一种硬件并行压缩的方法的流程图。
具体实施方式
本发明实施例提供硬件并行压缩的系统及方法,以实现多路并行压缩数据,提升数据压缩的速率。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
以下分别进行详细说明。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供的硬件并行压缩的系统,可实现Gzip硬件并行压缩功能。通过循环冗余校验模块、数据大小记录模块、压缩核调度模块和N个压缩核对数据进行压缩,对待压缩数据进行并行压缩时,每周期获取待压缩数据的M比特数据,每周期将M比特数据输入硬件并行压缩系统,其中,通过循环冗余校验模块生成待压缩数据的循环冗余校验码,以支持高位宽的循环冗余校验,压缩格式与软件压缩相同,支持软件对已经压缩完成的文件进行解压缩操作,通过压缩核调度模块调度N个压缩核对每周期输入的M比特数据进行多路并行压缩,N个压缩核之间没有数据依赖关系,一个周期内可以并行处理多个M比特数据,实现了多路并行压缩数据,提升了数据压缩的速率。同时,在压缩过程中,中央处理器可以利用直接存储器访问模块(DMA,Direct Memory Access)将内存上的待压缩数据传输到可编程逻辑器件(FPGA,Field Programmable Gate Array),即可进行数据压缩,无需中央处理器进行计算,减少了占用中央处理器的时间和内存资源。
首先参见图1,图1为本发明实施例提供的一种硬件并行压缩的系统100的结构示意图,本发明实施例提供的一种硬件并行压缩的系统100可以包括:循环冗余校验模块101、数据大小记录模块102、压缩核调度模块103和N个压缩核104,N为正整数;
对待压缩数据进行并行压缩时,每周期获取所述待压缩数据的M比特数据,每周期将所述M比特数据输入所述系统,M为正整数;
其中,循环冗余校验模块101,用于计算待压缩数据的循环冗余校验码;
数据大小记录模块102,用于计算待压缩数据的大小;
压缩核调度模块103,用于检测N个压缩核104的执行状态,根据N个压缩核104的执行状态将输入的M比特数据分配到N个压缩核104中进行压缩;
N个压缩核104,用于压缩输入的M比特数据,其中,N个压缩核104并行压缩。
可选的,循环冗余校验模块101具体用于,每周期将M比特数据输入系统时,计算每周期输入的M比特数据的循环冗余校验码,即,计算当前周期输入的M比特数据与循环冗余校验模块101前一周期计算得到的循环冗余校验码的逻辑关系,以得到当前周期的循环冗余校验码,当待压缩数据输入结束时,即得到待压缩数据的循环冗余校验码。
进一步可选的,M可以为128,每周期将128比特数据输入系统时,计算128比特数据的32比特循环冗余校验码,即,计算当前周期输入的128比特数据与循环冗余校验模块101前一周期计算得到的32比特循环冗余校验码的逻辑关系,以得到当前周期的32比特循环冗余校验码,当待压缩数据输入结束时,即得到待压缩数据的32比特循环冗余校验码。
可选的,数据大小记录模块102具体用于,当每周期将M比特数据输入系统时,记录M比特数据的大小,当待压缩数据输入结束时,通过记录的每周期输入的数据大小,即得到待压缩数据的大小。
进一步可选的,M为128时,每周期将128比特数据输入系统,即每周期将16个8比特字符输入系统,当128比特数据有效时,数据大小记录模块102计数加16,直到待压缩数据全部输入结束,得到表示待压缩数据的大小的32比特数据。
可选的,N个压缩核104中任意一个压缩核的执行状态包括准备状态、输入状态和工作状态,压缩核调度模块103具体用于,实时检测N个压缩核104的执行状态,将输入的M比特数据存入处于输入状态的压缩核的输入缓存,判断该处于输入状态的压缩核的输入缓存是否存满,如果存满,则将该处于输入状态的压缩核的执行状态转换为工作状态,对输入的M比特数据进行压缩;
进一步可选的,压缩核调度模块103还用于,实时检测处于工作状态的压缩核是否有压缩完成的数据,如果处于工作状态的压缩核有压缩完成的数据,则将该处于工作状态的压缩核中压缩完成的数据传输到内存,将该处于工作状态的压缩核的执行状态转换为准备状态;
进一步可选的,压缩核调度模块103还用于,当待压缩数据压缩完成时,从循环冗余校验模块101中获取待压缩数据的循环冗余校验码,从数据大小记录模块102中获取待压缩数据的大小,将待压缩数据的循环冗余校验码和待压缩数据的大小拼接在压缩完成的数据尾部,传输回内存。
可选的,N个压缩核104中,各个压缩核之间没有数据依赖关系,由压缩核调度模块103对各个压缩核分配工作并行压缩,N个压缩核104中的第i个压缩核(i为不大于N的正整数)具体用于,压缩传入该第i个压缩核的M比特数据,当该第i个压缩核处于工作状态时,从该第i个压缩核的输入缓存中读取M比特数据进行硬件压缩处理,将压缩完成的数据存入该第i个压缩核的输出缓存,当输入缓存中的M比特数据全部压缩完成时,通知压缩核调度模块103读取输出缓存中压缩完成的数据。
参见图2,图2为本发明实施例提供的一种硬件并行压缩的系统中压缩核调度模块200的结构示意图,本发明实施例提供的一种压缩核调度模块200可以包括:输入状态机模块201、辅助状态机模块202、输出状态机模块203和压缩核状态寄存模块204;
其中,输入状态机模块201,用于将输入的M比特数据发送给第一压缩核、循环冗余校验模块和数据大小记录模块,将第一压缩核的存储信息发给辅助状态机模块202,其中,第一压缩核属于N个压缩核;
辅助状态机模块202,用于转换N个压缩核的执行状态,将N个压缩核的执行状态发给输入状态机模块201和输出状态机模块203;
输出状态机模块203,用于检测N个压缩核是否有压缩完成的数据输出,如果第二压缩核有压缩完成的数据输出,则将第二压缩核压缩完成的数据传输到内存,发送转换指令给辅助状态机模块202,其中,转换指令用于指示辅助状态机模块202转换第二压缩核的执行状态,第二压缩核属于N个压缩核;
压缩核状态寄存模块204,用于存储N个压缩核的执行状态,压缩核状态寄存模块204由辅助状态机模块202调度。
可选的,N个压缩核中任意一个压缩核的执行状态包括准备状态、输入状态和工作状态,硬件并行压缩系统中,每个工作周期只有一个压缩核处于输入状态,可以有多个压缩核处于工作状态或者准备状态,处于输入状态的压缩核表示该压缩核目前在接收数据并存入该压缩核的输入缓存,处于工作状态的压缩核表示该压缩核目前正在进行数据压缩工作,处于准备状态的压缩核表示该压缩核没有执行数据压缩工作,正在等待转换成输入状态以便接收数据。
进一步可选的,第一压缩核的执行状态为输入状态,第二压缩核的执行状态为工作状态,辅助状态机模块202具体用于:
根据第一压缩核的存储信息判断第一压缩核的输入缓存是否存满,如果存满,将第一压缩核的执行状态转换为工作状态;
接受到转换指令时,将第二压缩核的执行状态转换为准备状态;
获取处于准备状态的第三压缩核,将第三压缩核的执行状态转换为输入状态,其中,第三压缩核属于N个压缩核。
可选的,输入状态机模块201与输出状态机模块203同时进行工作,互不干扰。
可选的,压缩核状态寄存模块204具体用于,实时存储N个压缩核的执行状态,辅助状态机模块202每次先从压缩核状态寄存模块204中读取N个压缩核的执行状态,与辅助状态机模块202当前周期的信息计算后,将更新的N个压缩核的执行状态信息刷新存储回压缩核状态寄存模块204。
参见图3,图3为本发明实施例提供的一种硬件并行压缩的系统中N个压缩核中的第i个压缩核300的结构示意图,本发明实施例提供的N个压缩核中的第i个压缩核300可以包括:输入缓存301、输出缓存302和压缩模块303;
其中,i为不大于N的正整数;
输入缓存301,用于存储输入第i个压缩核300的数据;
输出缓存302,用于存储第i个压缩核300压缩完成的数据;
压缩模块303,用于对输入第i个压缩核300的数据进行压缩,将第i个压缩核300压缩完成的数据发送给输出缓存302;
其中,N个压缩核之间没有数据依赖关系,由压缩核调度模块对各个压缩核分配工作并行压缩,压缩模块303具体用于,压缩传入第i个压缩核300的M比特数据,当第i个压缩核300处于工作状态时,从第i个压缩核300的输入缓存301中读取M比特数据进行硬件压缩处理,将压缩完成的数据存入第i个压缩核300的输出缓存302,当输入缓存301中的M比特数据全部压缩完成时,通知压缩核调度模块读取输出缓存302中压缩完成的数据。
参见图4,图4为本发明实施例提供的一种硬件并行压缩的方法的流程图。其中,如图4所示,本发明实施例提供的一种硬件并行压缩的方法可以包括:
401、对待压缩数据进行并行压缩时,每周期获取待压缩数据的M比特数据,其中,M为正整数。
402、计算待压缩数据的循环冗余校验码。
可选的,计算待压缩数据的循环冗余校验码的方法可以是:
每周期对M比特数据进行压缩时,计算每周期输入的M比特数据的循环冗余校验码,即,计算当前周期输入的M比特数据与前一周期计算得到的循环冗余校验码的逻辑关系,以得到当前周期的循环冗余校验码,当待压缩数据输入结束时,即得到待压缩数据的循环冗余校验码。
进一步可选的,M可以为128,每周期对128比特数据进行压缩时,计算每周期输入的128比特数据的32比特循环冗余校验码,即,计算当前周期输入的128比特数据与前一周期计算得到的32比特循环冗余校验码的逻辑关系,以得到当前周期的32比特循环冗余校验码,当待压缩数据输入结束时,即得到待压缩数据的32比特循环冗余校验码。
403、计算待压缩数据的大小。
可选的,计算待压缩数据的大小的方法可以是:
当每周期对M比特数据进行压缩时,记录M比特数据的大小,当待压缩数据输入结束时,通过记录的每周期输入的数据大小,即得到待压缩数据的大小。
进一步可选的,M为128时,每周期对128比特数据进行压缩,即每周期对16个8比特字符进行压缩,当128比特数据有效时,计数加16,直到待压缩数据全部输入结束,得到表示待压缩数据的大小的32比特数据。
404、检测N个压缩核的执行状态,其中,N为正整数。
其中,N个压缩核之间没有数据依赖关系,N个压缩核中任意一个压缩核的执行状态包括准备状态、输入状态和工作状态,硬件并行压缩系统中,每个工作周期只有一个压缩核处于输入状态,可以有多个压缩核处于工作状态或者准备状态,处于输入状态的压缩核表示该压缩核目前在接收数据并存入该压缩核的输入缓存,处于工作状态的压缩核表示该压缩核目前正在进行数据压缩工作,处于准备状态的压缩核表示该压缩核没有执行数据压缩工作,正在等待转换成输入状态以便接收数据。
405、根据N个压缩核的执行状态将M比特数据分配到N个压缩核中进行压缩,其中,N个压缩核并行压缩。
可选的,N个压缩核中每个压缩核的执行状态包括准备状态、输入状态和工作状态,根据N个压缩核的执行状态将M比特数据分配到N个压缩核中进行压缩的方法可以是:
将M比特数据发送给第一压缩核,其中,第一压缩核处于输入状态,第一压缩核属于N个压缩核;
判断第一压缩核的输入缓存是否存满;
如果存满,将第一压缩核的执行状态转换为工作状态,以对M比特数据进行压缩。
进一步可选的,检测N个压缩核是否有压缩完成的数据输出;
如果第二压缩核有压缩完成的数据输出,则将第二压缩核压缩完成的数据传输到内存,其中,第二压缩核处于工作状态,第二压缩核属于N个压缩核;
将第二压缩核的执行状态转换为准备状态。
进一步可选的,获取处于准备状态的第三压缩核,将第三压缩核的执行状态转换为输入状态,其中,第三压缩核属于N个压缩核。
进一步可选的,当待压缩数据压缩完成时,获取待压缩数据的循环冗余校验码;
获取待压缩数据的大小;
将待压缩数据的循环冗余校验码和待压缩数据的大小拼接在压缩完成的数据尾部,传输到内存。
参见图5,图5为本发明实施例提供的另一种硬件并行压缩的方法的流程图。其中,如图5所示,本发明实施例提供的另一种硬件并行压缩的方法可以包括:
501、获取M比特数据输入压缩核调度模块。
502、判断当前处于输入状态的压缩核中输入缓存是否存满,如果是,则进入步骤503,如果否,则进入步骤504。
503、将当前处于输入状态的压缩核的执行状态转换为工作状态,获取下一个处于准备状态的压缩核,将处于准备状态的压缩核的执行状态转换为输入状态。
504、将M比特数据发送给当前处于输入状态的压缩核、循环冗余校验模块和数据大小记录模块。
505、判断待压缩数据是否输入结束,如果是,则进入步骤506,如果否,则进入步骤501。
506、判断处于工作状态的压缩核是否将输出缓存中压缩完成的数据发送给压缩核调度模块,如果是,则进入步骤507,如果否,则进入步骤505。
507、将已经把输出缓存中压缩完成的数据发送完毕的压缩核的执行状态转换为准备状态。
508、判断是否还有处于工作状态的压缩核,如果是,则进入步骤506,如果否,则进入结束状态。
本发明实施例提供的硬件并行压缩的方法中,从内存中获取待压缩数据,将待压缩数据传输到可编程逻辑器件(FPGA,Field Programmable Gate Array)后,先从待压缩数据中获取M比特输入压缩核调度模块,压缩核调度模块检测到当前处于输入状态的压缩核,将M比特数据发送给该处于输入状态的压缩核,直到处于输入状态的压缩核中的输入缓存存满数据后,将该压缩核的执行状态更改为工作状态,启动压缩工作,此时压缩核调度模块获取下一个处于准备状态的压缩核并将该压缩核的执行状态更改为输入状态。通过压缩核调度模块对输入数据进行分配压缩,每个压缩核可以获取一定数量的数据进行压缩工作,压缩核彼此之间没有数据依赖关系,可以实现并行压缩数据的效果,对比软件压缩,压缩速率大幅度提高。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种硬件并行压缩的系统,其特征在于,所述系统包括循环冗余校验模块、数据大小记录模块、压缩核调度模块和N个压缩核,对待压缩数据进行并行压缩时,每周期获取所述待压缩数据的M比特数据,每周期将所述M比特数据输入所述系统,其中,M、N为正整数;
所述循环冗余校验模块,用于计算所述待压缩数据的循环冗余校验码;
所述数据大小记录模块,用于计算所述待压缩数据的大小;
所述压缩核调度模块,用于检测所述N个压缩核的执行状态,根据所述N个压缩核的执行状态将所述M比特数据分配到所述N个压缩核中进行压缩;
所述N个压缩核,用于压缩所述M比特数据,其中,所述N个压缩核并行压缩。
2.根据权利要求1所述的系统,其特征在于,所述压缩核调度模块具体包括输入状态机模块、辅助状态机模块、输出状态机模块和压缩核状态寄存模块:
所述输入状态机模块,用于将所述M比特数据发送给第一压缩核、所述循环冗余校验模块和所述数据大小记录模块,将所述第一压缩核的存储信息发给所述辅助状态机模块,其中,所述第一压缩核属于所述N个压缩核;
所述辅助状态机模块,用于转换所述N个压缩核的执行状态,将所述N个压缩核的执行状态发给所述输入状态机模块和所述输出状态机模块;
所述输出状态机模块,用于检测所述N个压缩核是否有压缩完成的数据输出,如果第二压缩核有压缩完成的数据输出,则将所述第二压缩核压缩完成的数据传输到内存,发送转换指令给所述辅助状态机模块,其中,所述转换指令用于指示所述辅助状态机模块转换所述第二压缩核的执行状态,所述第二压缩核属于所述N个压缩核;
所述压缩核状态寄存模块,用于存储所述N个压缩核的执行状态,所述压缩核状态寄存模块由所述辅助状态机模块调度。
3.根据权利要求2所述的系统,其特征在于,所述N个压缩核中每个压缩核的执行状态包括准备状态、输入状态和工作状态,所述第一压缩核的执行状态为输入状态,所述第二压缩核的执行状态为工作状态,所述辅助状态机模块具体用于:
根据所述第一压缩核的存储信息判断所述第一压缩核的输入缓存是否存满,如果存满,将所述第一压缩核的执行状态转换为工作状态;
接受到所述转换指令时,将所述第二压缩核的执行状态转换为准备状态;
获取处于准备状态的第三压缩核,将所述第三压缩核的执行状态转换为输入状态,其中,所述第三压缩核属于所述N个压缩核。
4.根据权利要求1至3任一项所述的系统,其特征在于,所述压缩核调度模块还用于:
当所述待压缩数据压缩完成时,从所述循环冗余校验模块中获取所述待压缩数据的循环冗余校验码;
从所述数据大小记录模块中获取所述待压缩数据的大小;
将所述待压缩数据的循环冗余校验码和所述待压缩数据的大小拼接在压缩完成的数据尾部,传输到内存。
5.根据权利要求1所述的系统,其特征在于,所述N个压缩核中的第i个压缩核具体包括:
输入缓存,用于存储输入所述第i个压缩核的数据;
输出缓存,用于存储所述第i个压缩核压缩完成的数据;
压缩模块,用于对输入所述第i个压缩核的数据进行压缩,将所述第i个压缩核压缩完成的数据发送给所述输出缓存;
其中,i为不大于N的正整数。
6.一种硬件并行压缩的方法,其特征在于,包括:
对待压缩数据进行并行压缩时,每周期获取所述待压缩数据的M比特数据,其中,M为正整数;
计算所述待压缩数据的循环冗余校验码;
计算所述待压缩数据的大小;
检测N个压缩核的执行状态,其中,N为正整数;
根据所述N个压缩核的执行状态将所述M比特数据分配到所述N个压缩核中进行压缩,其中,所述N个压缩核并行压缩。
7.根据权利要求6所述的方法,其特征在于,所述N个压缩核中每个压缩核的执行状态包括准备状态、输入状态和工作状态,所述根据所述N个压缩核的执行状态将所述M比特数据分配到所述N个压缩核中进行压缩包括:
将所述M比特数据发送给第一压缩核,其中,所述第一压缩核处于输入状态,所述第一压缩核属于所述N个压缩核;
判断所述第一压缩核的输入缓存是否存满;
如果存满,将所述第一压缩核的执行状态转换为工作状态,以对所述M比特数据进行压缩。
8.根据权利要求7所述的方法,其特征在于,还包括:
检测所述N个压缩核是否有压缩完成的数据输出;
如果第二压缩核有压缩完成的数据输出,则将所述第二压缩核压缩完成的数据传输到内存,其中,所述第二压缩核处于工作状态,所述第二压缩核属于所述N个压缩核;
将所述第二压缩核的执行状态转换为准备状态。
9.根据权利要求8所述的方法,其特征在于,还包括:
获取处于准备状态的第三压缩核,将所述第三压缩核的执行状态转换为输入状态,其中,所述第三压缩核属于所述N个压缩核。
10.根据权利要求6至9任一项所述的方法,其特征在于,还包括:
当所述待压缩数据压缩完成时,获取所述待压缩数据的循环冗余校验码;
获取所述待压缩数据的大小;
将所述待压缩数据的循环冗余校验码和所述待压缩数据的大小拼接在压缩完成的数据尾部,传输到内存。
CN201910431508.XA 2019-05-22 2019-05-22 一种硬件并行压缩的系统及方法 Active CN110247666B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910431508.XA CN110247666B (zh) 2019-05-22 2019-05-22 一种硬件并行压缩的系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910431508.XA CN110247666B (zh) 2019-05-22 2019-05-22 一种硬件并行压缩的系统及方法

Publications (2)

Publication Number Publication Date
CN110247666A true CN110247666A (zh) 2019-09-17
CN110247666B CN110247666B (zh) 2023-08-18

Family

ID=67884825

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910431508.XA Active CN110247666B (zh) 2019-05-22 2019-05-22 一种硬件并行压缩的系统及方法

Country Status (1)

Country Link
CN (1) CN110247666B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020232682A1 (zh) * 2019-05-22 2020-11-26 深圳大学 一种硬件并行压缩的系统及方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101022286A (zh) * 2007-03-20 2007-08-22 中兴通讯股份有限公司 一种比特加扰并行处理方法和装置
CN101478370A (zh) * 2009-01-20 2009-07-08 中兴通讯股份有限公司 基于文件系统的文件压缩方法及装置
US20130159811A1 (en) * 2011-12-15 2013-06-20 International Business Machines Corporation Method of Hybrid Compression Acceleration Utilizing Special and General Purpose Processors
CN103384884A (zh) * 2012-12-11 2013-11-06 华为技术有限公司 一种文件压缩方法、文件解压缩方法、装置及服务器
CN103559020A (zh) * 2013-11-07 2014-02-05 中国科学院软件研究所 一种dna读序数据fastq文件并行压缩和解压缩方法
CN108134609A (zh) * 2017-12-21 2018-06-08 深圳大学 一种通用数据gz格式的多线程压缩与解压方法及装置
US20180167083A1 (en) * 2016-12-12 2018-06-14 Texas Instruments Incorporated Lossless data compression
CN111880740A (zh) * 2020-07-29 2020-11-03 平安科技(深圳)有限公司 数据处理方法、装置、计算机系统及可读存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101022286A (zh) * 2007-03-20 2007-08-22 中兴通讯股份有限公司 一种比特加扰并行处理方法和装置
CN101478370A (zh) * 2009-01-20 2009-07-08 中兴通讯股份有限公司 基于文件系统的文件压缩方法及装置
US20130159811A1 (en) * 2011-12-15 2013-06-20 International Business Machines Corporation Method of Hybrid Compression Acceleration Utilizing Special and General Purpose Processors
CN103384884A (zh) * 2012-12-11 2013-11-06 华为技术有限公司 一种文件压缩方法、文件解压缩方法、装置及服务器
CN103559020A (zh) * 2013-11-07 2014-02-05 中国科学院软件研究所 一种dna读序数据fastq文件并行压缩和解压缩方法
US20180167083A1 (en) * 2016-12-12 2018-06-14 Texas Instruments Incorporated Lossless data compression
CN108134609A (zh) * 2017-12-21 2018-06-08 深圳大学 一种通用数据gz格式的多线程压缩与解压方法及装置
CN111880740A (zh) * 2020-07-29 2020-11-03 平安科技(深圳)有限公司 数据处理方法、装置、计算机系统及可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
陈国良 等: "高性能计算及其相关新兴技术", 《深圳大学学报理工版》 *
陈国良 等: "高性能计算及其相关新兴技术", 《深圳大学学报理工版》, vol. 32, no. 1, 31 January 2015 (2015-01-31), pages 25 - 31 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020232682A1 (zh) * 2019-05-22 2020-11-26 深圳大学 一种硬件并行压缩的系统及方法

Also Published As

Publication number Publication date
CN110247666B (zh) 2023-08-18

Similar Documents

Publication Publication Date Title
CN109740747B (zh) 运算方法、装置及相关产品
CN104731859B (zh) 数据处理方法及装置
CN105900064B (zh) 调度数据流任务的方法和装置
CN106951926A (zh) 一种混合架构的深度学习系统方法及装置
CN107256156A (zh) 用于状态机中的检测的方法及系统
Wu et al. A deadline-aware estimation of distribution algorithm for resource scheduling in fog computing systems
CN110334436A (zh) 一种数据处理方法以及设备
CN109615071A (zh) 一种高能效的神经网络处理器、加速系统及方法
CN109344268A (zh) 图形数据库写入的方法、电子设备及计算机可读存储介质
CN111198754A (zh) 一种任务调度方法及装置
CN115237802A (zh) 基于人工智能的模拟测试方法及相关设备
CN108491924B (zh) 一种面向人工智能计算的神经网络数据串行流水处理装置
CN106997394A (zh) 一种数据乱序到达处理方法和系统
CN105786941B (zh) 一种信息挖掘方法和装置
CN110247666A (zh) 一种硬件并行压缩的系统及方法
CN109117949A (zh) 用于人工智能设备的灵活数据流处理器和处理方法
CN107957861A (zh) 即时播放声卡信号输入通道中音频数据的方法及装置
CN108512817A (zh) 多视频转码调度方法及装置
CN103209328A (zh) 多源卫星图像实时在线处理技术方法及装置
CN109343856A (zh) 自定义算法组件的生成方法及装置
CN116974765A (zh) 一种异构计算机的存储管理系统
CN209708122U (zh) 一种计算单元、阵列、模块、硬件系统
CN108009111A (zh) 数据流连接方法及装置
WO2020232682A1 (zh) 一种硬件并行压缩的系统及方法
CN100551066C (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