CN117093881B - 一种数据压缩方法、装置及电子设备和存储介质 - Google Patents

一种数据压缩方法、装置及电子设备和存储介质 Download PDF

Info

Publication number
CN117093881B
CN117093881B CN202311358428.9A CN202311358428A CN117093881B CN 117093881 B CN117093881 B CN 117093881B CN 202311358428 A CN202311358428 A CN 202311358428A CN 117093881 B CN117093881 B CN 117093881B
Authority
CN
China
Prior art keywords
data
hash
matching
processed
target
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
Application number
CN202311358428.9A
Other languages
English (en)
Other versions
CN117093881A (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 Dapu Microelectronics Co Ltd
Original Assignee
Shenzhen Dapu Microelectronics 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 Shenzhen Dapu Microelectronics Co Ltd filed Critical Shenzhen Dapu Microelectronics Co Ltd
Priority to CN202311358428.9A priority Critical patent/CN117093881B/zh
Publication of CN117093881A publication Critical patent/CN117093881A/zh
Application granted granted Critical
Publication of CN117093881B publication Critical patent/CN117093881B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • 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/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3086Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing a sliding window, e.g. LZ77

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种数据压缩方法、装置及一种电子设备和计算机可读存储介质,该方法包括:当读取操作和写入操作命中同一目标哈希条目时,确定所述写入操作对应的哈希匹配子单元的优先策略;若所述优先策略为读优先,则基于所述目标哈希条目存储的当前数据内容响应所述读取操作,并将写入操作对应的待写入数据缓存至寄存器中,以在下一次哈希匹配时将所述寄存器中的待写入数据写入所述目标哈希条目;若所述优先策略为写优先,则基于寄存器中缓存的待写入数据响应所述读取操作,并将写入操作对应的待写入数据写入所述目标哈希条目中。本申请避免了读写冲突,同时避免了匹配丢失的情况。

Description

一种数据压缩方法、装置及电子设备和存储介质
技术领域
本申请涉及计算机技术领域,更具体地说,涉及一种数据压缩方法、装置及一种电子设备和一种计算机可读存储介质。
背景技术
数据压缩可以潜在地减小数据的存储空间,提高存储设备的逻辑容量,从而降低数据的存储和传输成本,因此具有很高的技术吸引力。数据压缩是一项计算密集的操作,需要消耗较多的主机CPU(中央处理器,central processing unit)计算资源。在固态硬盘(Solid State Disk,SSD)内部实现数据压缩的硬件电路,以可计算存储的架构来支持数据压缩是近年来的一个技术趋势。
LZ77算法通过将重复出现的数据片段替换为对未压缩数据流中较早存在的数据片段的单个副本的引用来实现压缩。在LZ77算法中,采用TP_SRAM(two port StaticRandom-Access Memory,双口静态随机存取存储器)查询哈希表确定当前数据的候选匹配位置,如果不存在候选匹配位置,则将当前数据的位置写入哈希表中。在数据并行处理的过程中,读写哈希表是同时进行的,当读写地址是一致的,会存在读写冲突的问题,对于连续命中同一个hash地址的匹配,可能会存在丢失匹配的情况。
因此,如何避免LZ77算法中的匹配丢失是本领域技术人员需要解决的技术问题。
发明内容
本申请的目的在于提供一种数据压缩方法、装置及一种电子设备和一种计算机可读存储介质,避免了LZ77算法中的匹配丢失。
为实现上述目的,本申请提供了一种数据压缩方法,包括:
获取待压缩数据,在所述待压缩数据中确定待处理数据,并将所述待处理数据扩展为多个待处理数据单元;
计算多个所述待处理数据单元的目标哈希值,利用多个哈希匹配单元分别以多个所述目标哈希值为索引在哈希表中匹配对应的目标哈希条目;
判断所述目标哈希条目中是否存在候选匹配位置;
若是,则基于所述候选匹配位置从所述待压缩数据中读取第一数据内容,从所述待压缩数据中的所述待处理数据单元开始读取第二数据内容,对所述第一数据内容和所述第二数据内容进行数据匹配得到数据匹配结果,将所述第二数据内容中的目标数据内容替换为所述数据匹配结果中的匹配位置和匹配长度;
若否,则利用所述哈希匹配单元中的多个哈希匹配子单元将所述待处理数据单元中首字节在所述待压缩数据中的位置作为候选匹配位置写入所述哈希匹配子单元对应的哈希表中的目标哈希条目;
其中,当读取操作和写入操作命中同一目标哈希条目时,确定所述写入操作对应的哈希匹配子单元的优先策略;
若所述优先策略为读优先,则基于所述目标哈希条目存储的当前数据内容响应所述读取操作,并将写入操作对应的待写入数据缓存至寄存器中,以在下一次哈希匹配时将所述寄存器中的待写入数据写入所述目标哈希条目;
若所述优先策略为写优先,则基于寄存器中缓存的待写入数据响应所述读取操作,并将写入操作对应的待写入数据写入所述目标哈希条目中。
其中,在所述待压缩数据中确定待处理数据,包括:
依次在所述待压缩数据中提取第一预设数量个字节作为待处理数据。
其中,将所述待处理数据扩展为多个待处理数据单元,包括:
分别以所述待处理数据中的每个字节作为首字节在所述待压缩数据中提取第二预设数量个字节作为待处理数据单元。
其中,所述哈希匹配单元的数量为所述第一预设数量,每个所述哈希匹配单元包括所述第一预设数量个哈希匹配子单元。
其中,第i个哈希匹配单元用于处理所述待处理数据中第i个字节作为首字节对应的待处理数据单元,每个哈希匹配单元中的第j个哈希匹配子单元用于对第j个哈希表进行读写操作;
当i大于j时,第i个哈希匹配单元中的第j个哈希匹配子单元的优先策略为写优先;
当i小于或等于j时,第i个哈希匹配单元中的第j个哈希匹配子单元的优先策略为读优先。
其中,所述哈希表包括多个哈希条目,每个所述哈希条目以基于第一哈希算法计算得到的一级哈希值作为索引,每个所述哈希条目包括所述第二预设数量个二级哈希值和在所述待压缩数据中对应的所述第二预设数量个位置,所述二级哈希值为数据内容基于第二哈希算法计算得到的哈希值,所述一级哈希值和所述二级哈希值均为一个字节。
其中,所述计算多个所述待处理数据单元的目标哈希值,利用多个哈希匹配单元分别以多个所述目标哈希值为索引在哈希表中匹配对应的目标哈希条目,包括:
基于所述第一哈希算法计算多个所述待处理数据单元的目标一级哈希值,利用多个哈希匹配单元分别以多个所述目标一级哈希值为索引在哈希表中确定对应的目标哈希条目;
相应的,判断所述目标哈希条目中是否存在候选匹配位置,包括:
扩展模块,用于获取待压缩数据,在所述待压缩数据中确定待处理数据,并将所述待处理数据扩展为多个待处理数据单元;
哈希匹配模块,用于计算多个所述待处理数据单元的目标哈希值,利用多个哈希匹配单元分别以多个所述目标哈希值为索引在哈希表中匹配对应的目标哈希条目,判断所述目标哈希条目中是否存在候选匹配位置;若是,则启动数据匹配模块的工作流程;若否,则启动写入模块的工作流程;
数据匹配模块,用于基于所述候选匹配位置从所述待压缩数据中读取第一数据内容,从所述待压缩数据中的所述待处理数据单元开始读取第二数据内容,对所述第一数据内容和所述第二数据内容进行数据匹配得到数据匹配结果,将除第一个目标数据内容之外的后续的目标数据内容替换为所述数据匹配结果中的匹配位置和匹配长度;
写入模块,用于利用所述哈希匹配单元中的多个哈希匹配子单元将所述待处理数据单元中首字节在所述待压缩数据中的位置作为候选匹配位置写入所述哈希匹配子单元对应的哈希表中的目标哈希条目;
其中,所述哈希匹配模块包括:
确定单元,用于当读取操作和写入操作命中同一目标哈希条目时,确定所述写入操作对应的哈希匹配子单元的优先策略;
读优先单元,用于当所述优先策略为读优先时,基于所述目标哈希条目存储的当前数据内容响应所述读取操作,并将写入操作对应的待写入数据缓存至寄存器中,以在下一次哈希匹配时将所述寄存器中的待写入数据写入所述目标哈希条目;
写优先单元,用于当所述优先策略为写优先时,基于寄存器中缓存的待写入数据响应所述读取操作,并将写入操作对应的待写入数据写入所述目标哈希条目中。
为实现上述目的,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述数据压缩方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述数据压缩方法的步骤。
通过以上方案可知,本申请提供的一种数据压缩方法,包括:获取待压缩数据,在所述待压缩数据中确定待处理数据,并将所述待处理数据扩展为多个待处理数据单元;计算多个所述待处理数据单元的目标哈希值,利用多个哈希匹配单元分别以多个所述目标哈希值为索引在哈希表中匹配对应的目标哈希条目;判断所述目标哈希条目中是否存在候选匹配位置;若是,则基于所述候选匹配位置从所述待压缩数据中读取第一数据内容,从所述待压缩数据中的所述待处理数据单元开始读取第二数据内容,对所述第一数据内容和所述第二数据内容进行数据匹配得到数据匹配结果,将所述第二数据内容中的目标数据内容替换为所述数据匹配结果中的匹配位置和匹配长度;若否,则利用所述哈希匹配单元中的多个哈希匹配子单元将所述待处理数据单元中首字节在所述待压缩数据中的位置作为候选匹配位置写入所述哈希匹配子单元对应的哈希表中的目标哈希条目;其中,当读取操作和写入操作命中同一目标哈希条目时,确定所述写入操作对应的哈希匹配子单元的优先策略;若所述优先策略为读优先,则基于所述目标哈希条目存储的当前数据内容响应所述读取操作,并将写入操作对应的待写入数据缓存至寄存器中,以在下一次哈希匹配时将所述寄存器中的待写入数据写入所述目标哈希条目;若所述优先策略为写优先,则基于寄存器中缓存的待写入数据响应所述读取操作,并将写入操作对应的待写入数据写入所述目标哈希条目中。
本申请提供的数据压缩方法,当读取操作和写入操作命中同一目标哈希条目时,确定优先策略,当优先策略为读优先时,则将写入操作对应的待写入数据缓存至寄存器中,当优先策略为写优先时,则基于寄存器中缓存的待写入数据响应读取操作,使得读取的数据为更新后的哈希表中的数据,避免了读写冲突,同时避免了匹配丢失的情况。本申请还公开了一种数据压缩装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1为相关技术中的LZ77算法中重复数据识别技术的算法流程图;
图2为相关技术中的HASH管理方式的示意图;
图3为相关技术中的HASH表在硬件中处理方式的示意图;
图4为根据一示例性实施例示出的一种待压缩数据的示意图;
图5为根据一示例性实施例示出的一种数据压缩方法的流程图;
图6为根据一示例性实施例示出的一种读优先策略的硬件架构图;
图7为根据一示例性实施例示出的一种写优先策略的硬件架构图;
图8为根据一示例性实施例示出的一种哈希匹配模块的结构图;
图9为根据一示例性实施例示出的一种链表设计的hash表的示意图;
图10为根据一示例性实施例示出的一种数据压缩装置的结构图;
图11为根据一示例性实施例示出的一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。另外,在本申请实施例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
在相关技术中,LZ77算法中重复数据识别技术的算法流程如图1所示,如果最后字节距离当前数据单元的起始位置大于4字节,那么当前数据流中至少有一个4字节的数据单元,可以继续进行匹配;否则,匹配结束。匹配的逻辑如下:
步骤1:位置指针初始化为0;
步骤2:判断当前字节距离结束是否大于等于4;若是,则进入步骤3;若否,则结束流程;
步骤3:计算当前4字节的哈希值,以哈希值为索引查询hash表,判断hash表是否命中;若是,则进入步骤4;若否,则进入步骤5;
步骤4:数据内容比较,获取匹配位置和匹配长度,位置指针递增匹配长度个字节,返回步骤2。
步骤5:更新哈希表,位置指针递增1个字节,返回步骤2。
在相关技术中,HASH管理存在两种方式,如图2所示,一种方式HASH值存储“偏移地址(Position)”,这种方式由于HASH存在一定程度的碰撞概率,其准确的匹配需要在下一步的数据内容比较以后,才知道是否是真的匹配,匹配效率会比较低。另一种方式HASH值存储的内容为“偏移地址+原始数据(raw_symbol)”,这种可以解决误匹配的问题,但是硬件代价较大。
同时,在相关技术中,HASH表在硬件中处理方式如图3所示,通常采用TP_SRAM查找表来实现,而查找表读写是同时的,且读写地址是一致的,会存在读写冲突的问题,并且在高速ASIC设计中,例如TSMC12nm工艺下,时钟1GHZ,由于时序比较紧张,SRAM读数据输出以后必须使用register(寄存器)进行缓存,否则容易导致关键路径过长出现timingviolation(时序冲突)。同时由于hash写入和读出之间存在一定的延时,对于连续命中同一个hash地址的匹配,可能会存在丢失匹配的情况。例如,如图4所示,假设处理的并行度为4,由于传输字符是全a的,那么地址0和地址1的hash值必定是相同的,但是由于此时查找表里面存储的还是旧的hash值,由于hash表更新不及时,会导致地址1的匹配丢失掉,从而对压缩率造成一定的影响。
因此,在本申请中,当读取操作和写入操作命中同一目标哈希条目时,确定优先策略,当优先策略为读优先时,则将写入操作对应的待写入数据缓存至寄存器中,当优先策略为写优先时,则基于寄存器中缓存的待写入数据响应读取操作,使得读取的数据为更新后的哈希表中的数据,避免了读写冲突,同时避免了匹配丢失的情况。
本申请实施例公开了一种数据压缩方法,避免了LZ77算法中的匹配丢失。
参见图5,根据一示例性实施例示出的一种数据压缩方法的流程图,如图5所示,包括:
S101:获取待压缩数据,在所述待压缩数据中确定待处理数据,并将所述待处理数据扩展为多个待处理数据单元;
本实施例的目的在于利用改进的LZ77算法对待压缩数据进行压缩。在具体实施中,获取待压缩数据,并在其中确定待处理数据。作为一种可行的实施方式,在所述待压缩数据中确定待处理数据,包括:依次在所述待压缩数据中提取第一预设数量个字节作为待处理数据。例如,待处理数据的起始位置为i,第一预设数量为4时,待处理数据为[i,i+1,i+2,i+3]。又如,第一预设数量为8时,待处理数据为[i,i+1,i+2,i+3,i+4,i+5,i+6,i+7]。
进一步的,将待处理数据扩展为多个待处理数据单元。作为一种可行的实施方式,将所述待处理数据扩展为多个待处理数据单元,包括:分别以所述待处理数据中的每个字节作为首字节在所述待压缩数据中提取第二预设数量个字节作为待处理数据单元。在具体实施中,以待处理数据中的每个字节作为首字节在待压缩数据中提取包含第二预设数量个字节的待处理数据单元。例如,待处理数据为[i,i+1,i+2,i+3],第二预设数量为4时,待处理数据单元分别为[i,i+1,i+2,i+3]、[i+1,i+2,i+3,i+4]、[i+2,i+3,i+4,i+5]、[i+3,i+4,i+5,i+6]。又如,待处理数据为[i,i+1,i+2,i+3,i+4,i+5,i+6,i+7],第二预设数量为4时,待处理数据单元分别为[i,i+1,i+2,i+3]、[i+1,i+2,i+3,i+4]、[i+2,i+3,i+4,i+5]、[i+3,i+4,i+5,i+6]、[i+4,i+5,i+6,i+7]、[i+5,i+6,i+7,i+8]、[i+6,i+7,i+8,i+9]、[i+7,i+8,i+9,i+10]。
S102:计算多个所述待处理数据单元的目标哈希值,利用多个哈希匹配单元分别以多个所述目标哈希值为索引在哈希表中匹配对应的目标哈希条目;
S103:判断所述目标哈希条目中是否存在候选匹配位置;若是,则进入S104;若否,则进入S105;
S104:基于所述候选匹配位置从所述待压缩数据中读取第一数据内容,从所述待压缩数据中的所述待处理数据单元开始读取第二数据内容,对所述第一数据内容和所述第二数据内容进行数据匹配得到数据匹配结果,将所述第二数据内容中的目标数据内容替换为所述数据匹配结果中的匹配位置和匹配长度;
S105:利用所述哈希匹配单元中的多个哈希匹配子单元将所述待处理数据单元中首字节在所述待压缩数据中的位置作为候选匹配位置写入所述哈希匹配子单元对应的哈希表中的目标哈希条目;
在具体实施中,将第一个待处理数据作为当前待处理数据,对当前待处理数据对应的多个待处理数据单元进行哈希匹配,以确定每个待处理数据单元对应的候选匹配位置。
利用哈希表存储数据内容的哈希值与其在待压缩数据中的位置之间的对应关系,哈希表包括多个哈希条目,每个哈希条目的索引为数据内容的哈希值,每个哈希条目存储的内容为该数据内容在待压缩数据的位置,具体而言,为该数据内容的首字节在待压缩数据的位置。
将当前待处理数据扩展为多个待处理数据单元之后,利用多个哈希计算模块分别计算多个待处理数据单元的目标哈希值,利用多个哈希匹配模块分别以多个待处理数据单元的目标哈希值为索引在哈希表中确定对应的目标哈希条目,判断目标哈希条目中是否存在有效的候选匹配位置。若不存在,则匹配失败,基于待处理数据单元中首字节在待压缩数据中的位置更新哈希表中的目标哈希条目。若存在,则确定哈希匹配结果,根据哈希匹配结果从待压缩数据中的候选匹配位置开始读取第一数据内容,从待压缩数据中的待处理数据单元开始读取第二数据内容,具体而言,从待压缩数据中待处理数据单元的首字节开始读取第二数据内容,对第一数据内容和第二数据内容进行匹配,若第一数据内容和第二数据内容匹配成功,则确定匹配位置和匹配长度,得到数据匹配结果,其中包括匹配位置和匹配长度,匹配位置为第一数据内容中包含匹配成功的目标数据内容的第一个字节在待压缩数据的位置,匹配长度为目标数据内容的长度。将待压缩数据中除第一个目标数据内容之外的后续的目标数据内容替换为数据匹配结果中的匹配位置和匹配长度,其中,第一个目标数据内容与后续的目标数据内容是相同的数据,将后面出现的相同的数据用前面第一次出现的相同数据的匹配位置和匹配长度来替换,也即将第二数据内容中的目标数据内容替换为数据匹配结果中的匹配位置和匹配长度,实现数据压缩。进一步的,基于第二数据内容中包含匹配成功的目标数据内容的第一个字节在待压缩数据的位置,更新哈希表中目标数据内容所属的待处理数据单元的哈希值对应的哈希条目。
举例说明,待处理数据中首字节在待压缩数据中的位置为1000,待处理数据具体为ABCD,其对应的哈希值为8888,那么以8888为索引查找哈希表中第8888个条目,判断其中是否存储有效值,若否,则匹配失败,将1000存储至第8888个条目中。若是,则从第8888个条目读取该有效值为600,从待压缩数据中的位置600和1000处分别开始读取数据内容进行匹配。例如,从位置600处读取的数据内容为ABCDEF…,从位置600处读取的数据内容为ABCDEG…,那么匹配位置为600,匹配长度为5,将第8888个条目中的600替换为1000。
其中,当读取操作和写入操作命中同一目标哈希条目时,确定所述写入操作对应的哈希匹配子单元的优先策略;若所述优先策略为读优先,则基于所述目标哈希条目存储的当前数据内容响应所述读取操作,并将写入操作对应的待写入数据缓存至寄存器中,以在下一次哈希匹配时将所述寄存器中的待写入数据写入所述目标哈希条目;若所述优先策略为写优先,则基于寄存器中缓存的待写入数据响应所述读取操作,并将写入操作对应的待写入数据写入所述目标哈希条目中。
当读取操作和写入操作命中同一目标哈希条目时,确定优先策略,当优先策略为读优先时,则将写入操作对应的待写入数据缓存至寄存器中,当优先策略为写优先时,则基于寄存器中缓存的待写入数据响应读取操作,使得读取的数据为更新后的哈希表中的数据,避免了读写冲突,同时避免了匹配丢失的情况。
在具体实施中,为了解决TP-SRAM读写地址一致以及丢失匹配的问题,可以引入一系列寄存器,通过寄存器对读写进行错位,从而完成寄存器的读写问题。整体上分为了两类,读优先处理和写优先处理。读优先策略如图6所示,假设读写地址为raddr和waddr,写数据为din,由于hash表的读取和写入都是根据hash0的,故而raddr和waddr是一致的,为了解决读写地址的冲突,当优先策略为读优先时,基于目标哈希条目存储的当前数据内容响应读取操作,同时将写地址waddr和写数据din通过寄存器进行打拍处理。写优先策略如图7所示,当优先策略为写优先时,如果连续两个读地址raddr0和raddr1一致,在数据输出时会把写寄存器内的数据直接送到下一级的寄存器而不是memory(存储器)的输出值,也即基于寄存器中缓存的待写入数据响应读取操作,同时将写入操作对应的待写入数据写入目标哈希条目中。comb(链表更新模块)用来完成链表的更新,可以用一个移位来实现,是一个纯组合逻辑。
作为一种优选实施方式,所述哈希匹配单元的数量为所述第一预设数量,每个所述哈希匹配单元包括所述第一预设数量个哈希匹配子单元。
在具体实施中,哈希匹配单元的数量为并行度,也即上述的第一预设数量,每个哈希匹配单元均包括第一预设数量个哈希匹配子单元。第i个哈希匹配单元用于处理所述待处理数据中第i个字节作为首字节对应的待处理数据单元,每个哈希匹配单元中的第j个哈希匹配子单元用于对第j个哈希表进行读写操作;当i大于j时,第i个哈希匹配单元中的第j个哈希匹配子单元的优先策略为写优先;当i小于或等于j时,第i个哈希匹配单元中的第j个哈希匹配子单元的优先策略为读优先。
以并行度为四为例,哈希匹配单元的数量为四,每个哈希匹配单元均包括四个哈希匹配子单元。如图8所示,Hash_table_array_0、Hash_table_array_1、Hash_table_array_2、Hash_table_array_3分别为四个哈希匹配单元,lookup为哈希表的查询接口,update为哈希表的更新接口,每个哈希匹配单元均包括四个哈希匹配子单元,分别用于对Hash_Table0、Hash_Table1、Hash_Table2、Hash_Table3四个哈希表进行读写操作。Hash_table_array_0中的第一个哈希匹配子单元的优先策略为读优先,第二个哈希匹配子单元的优先策略为读优先,第三个哈希匹配子单元的优先策略为读优先,第四个哈希匹配子单元的优先策略为读优先,Hash_table_array_1中的第一个哈希匹配子单元的优先策略为写优先,第二个哈希匹配子单元的优先策略为读优先,第三个哈希匹配子单元的优先策略为读优先,第四个哈希匹配子单元的优先策略为读优先,Hash_table_array_2中的第一个哈希匹配子单元的优先策略为写优先,第二个哈希匹配子单元的优先策略为写优先,第三个哈希匹配子单元的优先策略为读优先,第四个哈希匹配子单元的优先策略为读优先,Hash_table_array_3中的第一个哈希匹配子单元的优先策略为写优先,第二个哈希匹配子单元的优先策略为写优先,第三个哈希匹配子单元的优先策略为写优先,第四个哈希匹配子单元的优先策略为读优先。
以图4的例子来说明,地址1和地址0的hash值相同,地址1对应Hash_table_array_1中的第一个哈希匹配子单元采用写优先原则,地址1读出来的匹配信息是地址0更新的信息,这样就可以即时获得匹配,从而解决匹配丢失的问题。
本申请实施例提供的数据压缩方法,当读取操作和写入操作命中同一目标哈希条目时,确定优先策略,当优先策略为读优先时,则将写入操作对应的待写入数据缓存至寄存器中,当优先策略为写优先时,则基于寄存器中缓存的待写入数据响应读取操作,使得读取的数据为更新后的哈希表中的数据,避免了读写冲突,同时避免了匹配丢失的情况。
在上述实施例的基础上,作为一种优选实施方式,所述哈希表包括多个哈希条目,每个所述哈希条目以基于第一哈希算法计算得到的一级哈希值作为索引,每个所述哈希条目包括所述第二预设数量个二级哈希值和在所述待压缩数据中对应的所述第二预设数量个位置,所述二级哈希值为数据内容基于第二哈希算法计算得到的哈希值,所述一级哈希值和所述二级哈希值均为一个字节。
在本实施例中,对于数据字符串进行hash计算时,可以计算两个hash0(一级哈希值)和hash1(二级哈希值),加上数据的位置信息pst,构成了hash表的一个索引值(hash1,pst),hash0为当前索引对应的hash表的地址,在发生匹配时,只有当hash0和hash1均匹配,才可以认为匹配成立。
为了降低匹配的碰撞概率,hash表的内容采用链表设计,如图9所示,其示出了一个深度为4的索引值链表,采用先入先出的原则进行更新,在位置0处,出现字符串ABCD,hash运算以后获得一级哈希值(hash0)、二级哈希值(hash1)和位置(position),通过hash0找到相应的地址,并把结果更新到node0中。在位置6处,同样发现字符串ABCDE,此时获得新的一级哈希值’(hash0’)、二级哈希值’(hash1’)和位置’(position’),而hash0’和地址0处的hash0是相等的,此时访问地址hash0,会把Node0的内容(node0->hash1,node0->post)更新至Node1,并把新的hash1’和post’(6)更新到Node0中,完成hash链的更新。在hash_match的判断上,只有当hash0和hash1均相等的时候才会认为是一次匹配,因为hash链上有4组hash值,这样可以有效减少误判,相对比于存储原始数据,可以有效减小存储空间。以4KB独立压缩为例,存储原始数据4B+地址13bit需要45bit,而存储hash1 8bit+地址13bit需要21bit,面积可以减少54%。
对于并行度为4的硬件hash table方案,存储的内容为4个索引链表也即4个哈希表,对于TP-SRAM而言,一个时钟周期只能处理一个地址的读写,对于并行度为4的Hashtable更新,每个时钟周期需要更新4个hash索引,有两种方式可以来处理,方式1使用4倍的高倍时钟来进行处理,方式2使用42个TP-SRAM来进行处理。另外,本实施例hash处理的时钟为1GHZ,采用高倍时钟频率需要达到4GHZ,对于TSMC 12nm工艺来讲几乎不可能,因此对于其他的并行度P,其需要的TP-SRAM个数为P2个。
进一步的,在本实施例提供的哈希表的基础上,所述计算多个所述待处理数据单元的目标哈希值,利用多个哈希匹配单元分别以多个所述目标哈希值为索引在哈希表中匹配对应的目标哈希条目,包括:基于所述第一哈希算法计算多个所述待处理数据单元的目标一级哈希值,利用多个哈希匹配单元分别以多个所述目标一级哈希值为索引在哈希表中确定对应的目标哈希条目;相应的,判断所述目标哈希条目中是否存在候选匹配位置,包括:基于所述第二哈希算法计算多个所述待处理数据单元的目标二级哈希值,判断所述目标哈希条目中是否存在所述目标二级哈希值对应的候选匹配位置。
在具体实施中,基于第一哈希算法计算待处理数据单元的目标一级哈希值,以目标一级哈希值为索引在哈希表中确定对应的目标哈希条目,基于第二哈希算法计算待处理数据单元的目标二级哈希值,判断目标哈希条目中是否存储有目标二级哈希值对应的有效值。
若不存在,则匹配失败,基于待处理数据单元中首字节在待压缩数据中的位置更新哈希表中待处理数据单元的哈希值对应的哈希条目,也即更新目标哈希条目。具体而言,将目标二级哈希值和待处理数据单元中首字节在待压缩数据中的位置存储至目标哈希条目中。
若存在,则从目标哈希条目中读取目标二级哈希值对应的有效值作为候选匹配位置,从待压缩数据中的候选匹配位置开始读取第一数据内容,从待压缩数据中的待处理数据单元开始读取第二数据内容,具体而言,从待压缩数据中待处理数据单元的首字节开始读取第二数据内容,对第一数据内容和第二数据内容进行匹配,若第一数据内容和第二数据内容匹配成功,则确定匹配位置和匹配长度。进一步的,基于目标待处理数据单元中首字节在待压缩数据中的位置更新哈希表中目标待处理数据单元的一级哈希值对应的哈希条目,具体而言,将目标待处理数据单元中首字节在待压缩数据中的位置存储至该哈希条目中目标待处理数据单元的二级哈希值对应的位置。
由此可见,本实施通过极大缩减哈希表的长度,略微扩展哈希表的宽度的方式,降低了LZ77算法的哈希表内存开销,同时降低了误匹配的情况,可以满足高速时钟的需求。
下面对本申请实施例提供的一种数据压缩装置进行介绍,下文描述的一种数据压缩装置与上文描述的一种数据压缩方法可以相互参照。
参见图10,根据一示例性实施例示出的一种数据压缩装置的结构图,如图10所示,包括:
扩展模块10,用于获取待压缩数据,在所述待压缩数据中确定待处理数据,并将所述待处理数据扩展为多个待处理数据单元;
哈希匹配模块20,用于计算多个所述待处理数据单元的目标哈希值,利用多个哈希匹配单元分别以多个所述目标哈希值为索引在哈希表中匹配对应的目标哈希条目,判断所述目标哈希条目中是否存在候选匹配位置;若是,则启动数据匹配模块的工作流程;若否,则启动写入模块的工作流程;
数据匹配模块30,用于基于所述候选匹配位置从所述待压缩数据中读取第一数据内容,从所述待压缩数据中的所述待处理数据单元开始读取第二数据内容,对所述第一数据内容和所述第二数据内容进行数据匹配得到数据匹配结果,将所述第二数据内容中的目标数据内容替换为所述数据匹配结果中的匹配位置和匹配长度;
写入模块40,用于利用所述哈希匹配单元中的多个哈希匹配子单元将所述待处理数据单元中首字节在所述待压缩数据中的位置作为候选匹配位置写入所述哈希匹配子单元对应的哈希表中的目标哈希条目;
其中,所述哈希匹配模块20包括:
确定单元201,用于当读取操作和写入操作命中同一目标哈希条目时,确定所述写入操作对应的哈希匹配子单元的优先策略;
读优先单元202,用于当所述优先策略为读优先时,基于所述目标哈希条目存储的当前数据内容响应所述读取操作,并将写入操作对应的待写入数据缓存至寄存器中,以在下一次哈希匹配时将所述寄存器中的待写入数据写入所述目标哈希条目;
写优先单元203,用于当所述优先策略为写优先时,基于寄存器中缓存的待写入数据响应所述读取操作,并将写入操作对应的待写入数据写入所述目标哈希条目中。
本申请实施例提供的数据压缩装置,当读取操作和写入操作命中同一目标哈希条目时,确定优先策略,当优先策略为读优先时,则将写入操作对应的待写入数据缓存至寄存器中,当优先策略为写优先时,则基于寄存器中缓存的待写入数据响应读取操作,使得读取的数据为更新后的哈希表中的数据,避免了读写冲突,同时避免了匹配丢失的情况。
在上述实施例的基础上,作为一种优选实施方式,所述扩展模块具体用于:获取待压缩数据,依次在所述待压缩数据中提取第一预设数量个字节作为待处理数据,分别以所述待处理数据中的每个字节作为首字节在所述待压缩数据中提取第二预设数量个字节作为待处理数据单元。
在上述实施例的基础上,作为一种优选实施方式,所述哈希匹配单元的数量为所述第一预设数量,每个所述哈希匹配单元包括所述第一预设数量个哈希匹配子单元。
在上述实施例的基础上,作为一种优选实施方式,第i个哈希匹配单元用于处理所述待处理数据中第i个字节作为首字节对应的待处理数据单元,每个哈希匹配单元中的第j个哈希匹配子单元用于对第j个哈希表进行读写操作;当i大于j时,第i个哈希匹配单元中的第j个哈希匹配子单元的优先策略为写优先;当i小于或等于j时,第i个哈希匹配单元中的第j个哈希匹配子单元的优先策略为读优先。
在上述实施例的基础上,作为一种优选实施方式,所述哈希表包括多个哈希条目,每个所述哈希条目以基于第一哈希算法计算得到的一级哈希值作为索引,每个所述哈希条目包括所述第二预设数量个二级哈希值和在所述待压缩数据中对应的所述第二预设数量个位置,所述二级哈希值为数据内容基于第二哈希算法计算得到的哈希值,所述一级哈希值和所述二级哈希值均为一个字节。
在上述实施例的基础上,作为一种优选实施方式,所述哈希匹配模块具体用于:基于所述第一哈希算法计算多个所述待处理数据单元的目标一级哈希值,利用多个哈希匹配单元分别以多个所述目标一级哈希值为索引在哈希表中确定对应的目标哈希条目;基于所述第二哈希算法计算多个所述待处理数据单元的目标二级哈希值,判断所述目标哈希条目中是否存在所述目标二级哈希值对应的候选匹配位置。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于上述程序模块的硬件实现,且为了实现本申请实施例的方法,本申请实施例还提供了一种电子设备,图11为根据一示例性实施例示出的一种电子设备的结构图,如图11所示,电子设备包括:
通信接口1,能够与其它设备比如网络设备等进行信息交互;
处理器2,与通信接口1连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的数据压缩方法。而所述计算机程序存储在存储器3上。
当然,实际应用时,电子设备中的各个组件通过总线系统4耦合在一起。可理解,总线系统4用于实现这些组件之间的连接通信。总线系统4除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图11中将各种总线都标为总线系统4。
本申请实施例中的存储器3用于存储各种类型的数据以支持电子设备的操作。这些数据的示例包括:用于在电子设备上操作的任何计算机程序。
可以理解,存储器3可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器3旨在包括但不限于这些和任意其它适合类型的存储器。
上述本申请实施例揭示的方法可以应用于处理器2中,或者由处理器2实现。处理器2可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器2可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器3,处理器2读取存储器3中的程序,结合其硬件完成前述方法的步骤。
处理器2执行所述程序时实现本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器3,上述计算机程序可由处理器2执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、CD-ROM等存储器。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (9)

1.一种数据压缩方法,其特征在于,包括:
获取待压缩数据,在所述待压缩数据中确定待处理数据,并将所述待处理数据扩展为多个待处理数据单元;
计算多个所述待处理数据单元的目标哈希值,利用多个哈希匹配单元分别以多个所述目标哈希值为索引在哈希表中匹配对应的目标哈希条目;
判断所述目标哈希条目中是否存在候选匹配位置;
若是,则基于所述候选匹配位置从所述待压缩数据中读取第一数据内容,从所述待压缩数据中的所述待处理数据单元开始读取第二数据内容,对所述第一数据内容和所述第二数据内容进行数据匹配得到数据匹配结果,将所述第二数据内容中的目标数据内容替换为所述数据匹配结果中的匹配位置和匹配长度;
若否,则利用所述哈希匹配单元中的多个哈希匹配子单元将所述待处理数据单元中首字节在所述待压缩数据中的位置作为候选匹配位置写入所述哈希匹配子单元对应的哈希表中的目标哈希条目;
其中,当读取操作和写入操作命中同一目标哈希条目时,确定所述写入操作对应的哈希匹配子单元的优先策略;
若所述优先策略为读优先,则基于所述目标哈希条目存储的当前数据内容响应所述读取操作,并将写入操作对应的待写入数据缓存至寄存器中,以在下一次哈希匹配时将所述寄存器中的待写入数据写入所述目标哈希条目;
若所述优先策略为写优先,则基于寄存器中缓存的待写入数据响应所述读取操作,并将写入操作对应的待写入数据写入所述目标哈希条目中;
其中,第i个哈希匹配单元用于处理所述待处理数据中第i个字节作为首字节对应的待处理数据单元,每个哈希匹配单元中的第j个哈希匹配子单元用于对第j个哈希表进行读写操作;
当i大于j时,第i个哈希匹配单元中的第j个哈希匹配子单元的优先策略为写优先;
当i小于或等于j时,第i个哈希匹配单元中的第j个哈希匹配子单元的优先策略为读优先。
2.根据权利要求1所述数据压缩方法,其特征在于,在所述待压缩数据中确定待处理数据,包括:
依次在所述待压缩数据中提取第一预设数量个字节作为待处理数据。
3.根据权利要求2所述数据压缩方法,其特征在于,将所述待处理数据扩展为多个待处理数据单元,包括:
分别以所述待处理数据中的每个字节作为首字节在所述待压缩数据中提取第二预设数量个字节作为待处理数据单元。
4.根据权利要求3所述数据压缩方法,其特征在于,所述哈希匹配单元的数量为所述第一预设数量,每个所述哈希匹配单元包括所述第一预设数量个哈希匹配子单元。
5.根据权利要求3所述数据压缩方法,其特征在于,所述哈希表包括多个哈希条目,每个所述哈希条目以基于第一哈希算法计算得到的一级哈希值作为索引,每个所述哈希条目包括所述第二预设数量个二级哈希值和在所述待压缩数据中对应的所述第二预设数量个位置,所述二级哈希值为数据内容基于第二哈希算法计算得到的哈希值,所述一级哈希值和所述二级哈希值均为一个字节。
6.根据权利要求5所述数据压缩方法,其特征在于,所述计算多个所述待处理数据单元的目标哈希值,利用多个哈希匹配单元分别以多个所述目标哈希值为索引在哈希表中匹配对应的目标哈希条目,包括:
基于所述第一哈希算法计算多个所述待处理数据单元的目标一级哈希值,利用多个哈希匹配单元分别以多个所述目标一级哈希值为索引在哈希表中确定对应的目标哈希条目;
相应的,判断所述目标哈希条目中是否存在候选匹配位置,包括:
基于所述第二哈希算法计算多个所述待处理数据单元的目标二级哈希值,判断所述目标哈希条目中是否存在所述目标二级哈希值对应的候选匹配位置。
7.一种数据压缩装置,其特征在于,包括:
扩展模块,用于获取待压缩数据,在所述待压缩数据中确定待处理数据,并将所述待处理数据扩展为多个待处理数据单元;
哈希匹配模块,用于计算多个所述待处理数据单元的目标哈希值,利用多个哈希匹配单元分别以多个所述目标哈希值为索引在哈希表中匹配对应的目标哈希条目,判断所述目标哈希条目中是否存在候选匹配位置;若是,则启动数据匹配模块的工作流程;若否,则启动写入模块的工作流程;
数据匹配模块,用于基于所述候选匹配位置从所述待压缩数据中读取第一数据内容,从所述待压缩数据中的所述待处理数据单元开始读取第二数据内容,对所述第一数据内容和所述第二数据内容进行数据匹配得到数据匹配结果,将所述第二数据内容中的目标数据内容替换为所述数据匹配结果中的匹配位置和匹配长度;
写入模块,用于利用所述哈希匹配单元中的多个哈希匹配子单元将所述待处理数据单元中首字节在所述待压缩数据中的位置作为候选匹配位置写入所述哈希匹配子单元对应的哈希表中的目标哈希条目;
其中,所述哈希匹配模块包括:
确定单元,用于当读取操作和写入操作命中同一目标哈希条目时,确定所述写入操作对应的哈希匹配子单元的优先策略;
读优先单元,用于当所述优先策略为读优先时,基于所述目标哈希条目存储的当前数据内容响应所述读取操作,并将写入操作对应的待写入数据缓存至寄存器中,以在下一次哈希匹配时将所述寄存器中的待写入数据写入所述目标哈希条目;
写优先单元,用于当所述优先策略为写优先时,基于寄存器中缓存的待写入数据响应所述读取操作,并将写入操作对应的待写入数据写入所述目标哈希条目中;
其中,第i个哈希匹配单元用于处理所述待处理数据中第i个字节作为首字节对应的待处理数据单元,每个哈希匹配单元中的第j个哈希匹配子单元用于对第j个哈希表进行读写操作;
当i大于j时,第i个哈希匹配单元中的第j个哈希匹配子单元的优先策略为写优先;
当i小于或等于j时,第i个哈希匹配单元中的第j个哈希匹配子单元的优先策略为读优先。
8.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述数据压缩方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述数据压缩方法的步骤。
CN202311358428.9A 2023-10-19 2023-10-19 一种数据压缩方法、装置及电子设备和存储介质 Active CN117093881B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311358428.9A CN117093881B (zh) 2023-10-19 2023-10-19 一种数据压缩方法、装置及电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311358428.9A CN117093881B (zh) 2023-10-19 2023-10-19 一种数据压缩方法、装置及电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN117093881A CN117093881A (zh) 2023-11-21
CN117093881B true CN117093881B (zh) 2024-01-12

Family

ID=88770240

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311358428.9A Active CN117093881B (zh) 2023-10-19 2023-10-19 一种数据压缩方法、装置及电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN117093881B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117113106B (zh) * 2023-10-19 2024-03-19 深圳大普微电子股份有限公司 一种数据压缩方法、装置及电子设备和存储介质
CN117527689B (zh) * 2024-01-08 2024-04-09 珠海星云智联科技有限公司 流表卸载方法、系统、设备、集群以及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101827137A (zh) * 2010-04-13 2010-09-08 西安邮电学院 一种基于哈希表和扩展存储器的高性能IPv6地址查找方法
US9112525B1 (en) * 2014-03-28 2015-08-18 Comtech Ef Data Corp. System and method for parallel hash-based data compression
CN105183557A (zh) * 2015-08-26 2015-12-23 东南大学 一种基于硬件的可配置的数据压缩系统
CN111240244A (zh) * 2020-01-16 2020-06-05 中科亿海微电子科技(苏州)有限公司 一种适用于fpga的可编程脉冲产生装置、电路及方法
CN112817516A (zh) * 2019-11-15 2021-05-18 深圳市中兴微电子技术有限公司 数据读写控制方法、装置、设备和存储介质
CN115955248A (zh) * 2022-12-28 2023-04-11 深圳大普微电子科技有限公司 一种数据压缩方法、装置及电子设备和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105550345B (zh) * 2015-12-25 2019-03-26 百度在线网络技术(北京)有限公司 文件操作方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101827137A (zh) * 2010-04-13 2010-09-08 西安邮电学院 一种基于哈希表和扩展存储器的高性能IPv6地址查找方法
US9112525B1 (en) * 2014-03-28 2015-08-18 Comtech Ef Data Corp. System and method for parallel hash-based data compression
CN105183557A (zh) * 2015-08-26 2015-12-23 东南大学 一种基于硬件的可配置的数据压缩系统
CN112817516A (zh) * 2019-11-15 2021-05-18 深圳市中兴微电子技术有限公司 数据读写控制方法、装置、设备和存储介质
CN111240244A (zh) * 2020-01-16 2020-06-05 中科亿海微电子科技(苏州)有限公司 一种适用于fpga的可编程脉冲产生装置、电路及方法
CN115955248A (zh) * 2022-12-28 2023-04-11 深圳大普微电子科技有限公司 一种数据压缩方法、装置及电子设备和存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
事务存储系统中PGHB冲突检测算法改进;窦强 等;《电子学报》(第01期);第197-200页 *
基于IXP2800的入侵检测系统集成端口扫描检测模块的设计与实现;刘婷婷;《中国优秀硕士学位论文全文数据库 信息科技辑》;第I139-259页 *

Also Published As

Publication number Publication date
CN117093881A (zh) 2023-11-21

Similar Documents

Publication Publication Date Title
CN117093881B (zh) 一种数据压缩方法、装置及电子设备和存储介质
US11307769B2 (en) Data storage method, apparatus and storage medium
US7146371B2 (en) Performance and memory bandwidth utilization for tree searches using tree fragmentation
US20020138648A1 (en) Hash compensation architecture and method for network address lookup
JPH06314241A (ja) 高速半導体記憶装置及び高速連想記憶装置
US20100228914A1 (en) Data caching system and method for implementing large capacity cache
JP4920378B2 (ja) 情報処理装置およびデータ検索方法
EP4350527A1 (en) Data compression method and apparatus, and computing device and storage medium
US20040103083A1 (en) Method and system for optimizing leaf comparisons from a tree search
CN113656332B (zh) 基于合并地址差值序列的cpu缓存数据预取方法
WO2022156650A1 (zh) 访问数据的方法及装置
CN114860627B (zh) 基于地址信息动态生成页表的方法
CN111859033B (zh) Ip库查询方法、装置及ip库压缩方法、装置
CN115955248A (zh) 一种数据压缩方法、装置及电子设备和存储介质
KR20230026946A (ko) 해싱을 사용하는 키 밸류 스토리지 장치 및 그것의 동작 방법
CN104166649B (zh) 一种用于搜索引擎的缓存方法和设备
CN114281712A (zh) 查表方法、装置、fpga及可读存储介质
CN114527938A (zh) 一种基于固态硬盘的数据读取方法、系统、介质及设备
US20200174939A1 (en) Multi-tag storage techniques for efficient data compression in caches
CN111541617B (zh) 一种用于高速大规模并发数据流的数据流表处理方法及装置
US20050027963A1 (en) System and method for employing a process identifier to minimize aliasing in a linear-addressed cache
CN111694806A (zh) 一种事务日志的缓存方法、装置、设备和存储介质
CN111402959A (zh) 一种序列比对的方法、系统、设备及可读存储介质
CN106293530B (zh) 一种数据写入方法和装置
US6941292B2 (en) Method and system for optimizing data searches in tree structures

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