CN101572552B - 基于内容可寻址存储器的高速无损数据压缩系统 - Google Patents
基于内容可寻址存储器的高速无损数据压缩系统 Download PDFInfo
- Publication number
- CN101572552B CN101572552B CN2009100722505A CN200910072250A CN101572552B CN 101572552 B CN101572552 B CN 101572552B CN 2009100722505 A CN2009100722505 A CN 2009100722505A CN 200910072250 A CN200910072250 A CN 200910072250A CN 101572552 B CN101572552 B CN 101572552B
- Authority
- CN
- China
- Prior art keywords
- data
- module
- dictionary
- memory
- state
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
基于内容可寻址存储器的高速无损数据压缩系统,涉及到硬件系统的数据压缩技术领域。它解决了已有技术中压缩速率低、耗费硬件芯片内有限RAM资源多、查找周期不定等问题,以及采用哈希表地址模块实现字典查找存在的地址冲突的问题。本发明包括时钟模块、输入数据缓存模块、字典模块、LZW算法核心模块和输出编码模块,其中字典模块由FPGA内部的CAM构造,所述CAM的位宽为17位,深度为512;并且所述CAM中存储体的地址对应LZW算法核心模块中的LZW算法的代码,所述存储体由比较器和触发器组成,触发器用于存储数据,比较器用于将输入数据与触发器中的数据进行比较并输出匹配信号。本发明的数据压缩系统实现了基于FPGA的高速无损数据压缩,扩大了适用范围。
Description
技术领域
本发明涉及到硬件系统的数据压缩技术领域。
背景技术
在基于LZW(Lempel-Ziv-Welch)算法的无损数据压缩硬件实现中,压缩率和压缩速度是两个用于衡量压缩性能的重要指标。通常情况下,在压缩算法正确实现后,压缩率仅取决于待压缩数据源的特性,例如其冗余度及局部关联性,而压缩速度变化的空间则较大,目前实现的一般数据处理能力都可以达到20KB/s左右。在某些低速场合,这个速率完全可以满足要求,但是一旦系统实时要求能力提高则无法应用。为此,我们需要尽可能的提高数据压缩速度,因而首先需要分析压缩算法流程。在LZW压缩算法实现过程中,如图2所示,需要用到一个字典模块,用于存放压缩过程中生成的串表。通常情况下,此字典模块均是采用FPGA内部的RAM来构造。通过构造位宽比较大的RAM,高字节用于存放代码,低字节用于存放压缩中需要的前缀和后缀。针对字典的操作中,最重要的一个就是对字典的查找,这个过程决定了压缩算法的速度。而RAM主要根据输入地址进行对应的查找。假设在一个深度为512的由RAM构建的字典中查找一个数据,则RAM需要从地址为最低位(即“000000000”)一直向地址为最高位(即“111111111”)进行顺序查找,直到RAM中存储数据与待查找数据相同才会停止查找过程。查找所需时钟周期为1~512,不仅耗费时钟不确定会为程序实现带来很大的困难,而且在极端情况下,需要花费512个时钟周期,由于初始化尚且仅需256个时钟周期。因而相对而言,这个花费是非常大的。为解决此问题,人们提出了许多方法。其中比较成功的是将原本用于软件实现压缩算法中的哈希表地址模块引入到硬件实现中。但是采用哈希表地址模块对字典的查找仍要花费几十个时钟周期,并且会带来新的诸如哈希表地址冲突等问题,会给程序实现上带来更多不必要的麻烦。
发明内容
为了解决已有技术中压缩速率低、耗费硬件芯片内有限RAM资源多、查找周期不定等问题,以及采用哈希表地址模块实现字典查找存在的地址冲突的问题,本发明提出了一种基于内容可寻址存储器的高速无损数据压缩系统。
本发明的基于内容可寻址存储器的高速无损数据压缩系统包括时钟模块、输入数据缓存模块、字典模块、LZW算法核心模块和输出编码模块,其中:
时钟模块,用于提供系统所需要的所有时钟信号;
输入数据缓存模块,由FPGA内部的先入先出存储器FIFO构成,用于缓存输入数据,并将输入的数据以数据流的形式提供给LZW算法核心模块进行压缩;
LZW算法核心模块,所述LZW算法核心模块用于接收输入数据缓存模块输出的数据流;还用于通过对字典的初始化、查找、更新以及LZW算法的应用实现对输入数据流的压缩,并将压缩后生成的代码流输入到输出编码模块;
输出编码模块,用于根据后端存储器或总线位宽的需要将输入的代码流转换成预期的数据流;
其特征在于,所述字典模块由FPGA内部的CAM构造,所述CAM的位宽为17位,深度为512;并且所述CAM中存储体的地址对应LZW算法核心模块中的LZW算法的代码。
本发明的基于内容可寻址存储器的高速无损数据压缩系统,提高了压缩速率,减小了查找延迟,扩大了适用范围。它实现了基于FPGA的高速无损数据压缩,解决了字典查找的速度问题。本发明能够在一个时钟内完成查找,查找时间确定,从而使得压缩过程数据处理速度可以达到20MB/s以上。具体有以下优点:
固定查找周期:保证每次对字典的搜索过程都可以在一个时钟内完成。
高速率:压缩算法数据处理能力可以达到20MB/s以上。
低RAM使用率:几乎不占用任何RAM资源。
资源有效利用:原有技术中RAM的地址在系统中没有任何作用。本发明中CAM(Content Addressable Memory)的地址可以用作压缩过程中的代码。而CAM的内容则完全用于存储所需的由前缀和后缀生成的ENTRY,有效利用FPGA内部资源。
与RAM或普通CAM相比,本发明的CAM性能如下表所示(以深度为512为例)
指标 | RAM | CAM(现有) | CAM(本发明) |
逻辑单元 (Logic Elements) | 少 | 多 | 中 |
存储单元 (Memory) | 多 | 少 | 少 |
写速度 | 1CLK | 1CLK | 1CLK |
读速度 | 1~512CLK | 1~512CLK | 1CLK |
附图说明
图1为本发明的系统结构示意图;图2为现有LZW算法压缩环节的耗时构成示意图;图3为本发明所述的CAM整体结构示意图;图4为CAM测试结果示意图;图5为本发明所述系统的数据压缩过程示意图;图6为图5中的数据压缩状态中的数据压缩过程示意图;图7为本发明所述系统的性能测试结果示意图。
具体实施方式
具体实施方式一:基于内容可寻址存储器的高速无损数据压缩系统,它包括时钟模块4、输入数据缓存模块1、字典模块5、LZW算法核心模块2和输出编码模块3,其中:
时钟模块4,用于提供系统所需要的所有时钟信号;
输入数据缓存模块1,由FPGA内部的先入先出存储器FIFO构成,用于缓存输入数据,并将输入的数据以数据流的形式提供给LZW算法核心模块进行压缩;
LZW算法核心模块2,用于接收输入数据缓存模块1输出的数据流;还用于通过对字典模块5的初始化、查找、更新以及LZW算法的应用实现对输入数据流的压缩,并将压缩后生成的代码流输入到输出编码模块3;
输出编码模块3,用于根据后端存储器或总线位宽的需要将输入的代码流转换成预期的数据流;
所述字典模块5由FPGA内部的CAM构造,所述CAM的位宽为17位,深度为512;并且所述CAM中存储体的地址对应LZW算法核心模块中的LZW算法的代码。
本实施方式所述的系统中的所有时钟信号同步;
本实施方式中,将CAM的地址对应LZW算法核心模块2中的LZW算法的代码,并将实体Entry存储于对应的空间内,根据输入的实体Entry就能够获取对应的地址,即LZW算法的代码,能够方便的实现LZW算法的功能。所述实体Entry是LZW算法中的17位的由前缀和后缀组成的数据。
本实施方式中,构成输入数据缓存模块1的先入先出存储器FIFO为8位宽度,深度可以根据需要自行设定。当LZW算法核心模块2完成初始化时,读信号有效,数据经由FIFO读入到LZW算法核心模块2中。
所述LZW算法核心模块2,是本实施方式所述系统的核心组成部分,是整个系统的控制中心。它接收输入数据缓存模块1输出的数据流,在字典模块5中进行查找后,根据是否存在于字典模块5中选择性的对字典模块5的内容进行更新或进行其他操作。它需要完成包括字典初始化、字典搜索、字典更新等一系列针对字典的操作,同时还要将压缩后的代码流输出到输出编码模块3中。
所述输出编码模块3,实现数据位数的转换。在本实施方式中采用固定的512深度的字典,因此输出的经压缩后的代码流均为9位宽度,而后端的存储器件,如SRAM或数据线等的数据位宽度则不一定,常见的为16位或32位,因此需要添加此模块来对数据的位数进行转换。
所述字典模块5,是本实施方式所述系统的另一个核心模块,通过自行设计的位宽为17位,深度为512的CAM来构建,用于存储整个数据压缩过程中的字符串,包括在初始化阶段时写入的256个初始值,以及在压缩过程中写入的字符串。本实施方式所述的字典模块5,能够在保证实时更新内容的前提下,速度优于常见的基于LUT或RAM级联生成的CAM。
具体实施方式二:本实施方式是对具体实施方式一所述的基于内容可寻址存储器的高速无损数据压缩系统中的字典模块5的结构进行进一步说明。
本实施方式所述的构成字典模块5的CAM,由32个存储页及一个输入地址译码模块、一个输出地址译码模块和控制模块组成,每个存储页由16个存储体组成;所述存储体的地址为9位,每一位宽度是17位,前9位用于存储实体Entry的前缀Prefix,后8位用于存储实体Entry的后缀Suffix,每个存储体的结构相同,所述存储体由比较器和触发器组成,所述触发器用于存储数据,在写使能信号有效时,当某一个存储体被选中,向该存储体中的触发器中 写入新数据,进行数据更新;在比较模式下,所有存储体被选中,所述存储体中的比较器将输入的数据与所述存储体的触发器中的数据进行比较,并根据比较结果输出匹配信号;
所述输入地址译码模块,用于根据控制模块输入的四位地址数据addr(3:0)确定指定存储页中的存储体,并将所述存储体的选择信号置有效;
所述输出地址译码模块,用于根据存储页输出的匹配数据Entry_Match(15:0)输出匹配成功的存储体的四位地址数据add_suf(3:0),并将所述四位地址数据add_suf(3:0)输出给控制模块;
控制模块,用于根据输入的9位地址数据addr(8:0)的前5位addr(8:4)选择对应的指定存储页,还用于将所述9位地址数据addr(8:0)的后4位地址数据addr(3:0)输出给输入地址译码模块;还用于将输出地址译码模块输出的四位地址数据add_suf(3:0)添加上对应指定存储页的5位地址数据形成9位地址数据Data_out(8:0)输出。
本实施方式所述的存储体中的比较器根据比较结果输出匹配信号的过程中,当待比较数据与已存储数据内容相同时,输出有效匹配信号,否则输出无效匹配信号。
本实施方式中的输入地址译码模块是一个通用模块,它的输入与输出信号为:
信号名称 | 类型 | 说明 |
addr(3:0) | 输入 | 地址数据的后4位 |
Entry_sel(15:0) | 输出 | 一个存储页中的16个存储体的选择信号 |
所述输入地址addr(8:0)中的高五位addr(8:4)用于选择存储页,低四位addr(3:0)用于选择所述存储页中的存储体,CAM的控制模块根据输入地址信息的高五位addr(8:4)选择相应的存储页,然后将输入地址信息的低四位addr(3:0)输出给输入地址译码模块,由输入地址译码模块选择相应的存储体。
例如:当输入地址译码模块的输入信号add(3:0)为“0001”时,表示选择第2个存储体,需要将第2个存储体的选择信号置有效,即输入地址译码模块输出信号Entry_sel(15:0)为“0000000000000010”。
在比较模式中,一个存储页中的所有的存储体都被选中,输入地址译码模块输出的信号Entry_sel(15:0)为“1111111111111111”,即:该存储页中的所 有存储体同时进行比较操作,实现了所有存储体的并行比较,即:采用并行匹配,匹配速度快。
在未选中时,Add_Entry(15:0)为“0000000000000000”,也就是本存储页内所有存储体均未选中,不进行任何操作。
本实施方式所述的输入地址译码模块没有时钟,是一个组合逻辑电路,这样可以实现快速的操作,减小延迟。
本实施方式中的输出地址译码模块实现的功能与输入地址译码模块是一个相反的过程,它是一个通用模块,其输入输出信号为:
信号名称 | 类型 | 说明 |
Entry_Match(15:0) | 输入 | 一个存储页中所有存储体的匹配信号Match 信号的组合 |
add_suf(3:0) | 输出 | 匹配成功的存储体的地址 |
同理,有效地址的前5位也是在CAM的主程序里实现。
同时,由于采用了并行匹配技术,在CAM中搜索内容的速度远远大于RAM。
每个存储体的输入/输出信号为:
输入/输出信号名称 | 类型 | 说明 |
Clk | 输入 | 时钟信号 |
Clr | 输入 | 清零信号,低电平有效 |
Data(16:0) | 输入 | 输入数据,写操作时存入寄存器 |
Datatag(16:0) | 输入 | 待比较数据,比较操作时与寄存器中数据进 行比较 |
Wren | 输入 | 写使能,高电平有效 |
Sel | 输入 | 选择信号,高电平有效,选中时才可以对此 存储体进行操作 |
Matchen | 输入 | 比较允许信号,高电平有效 |
Match | 输出 | 输出匹配信号,高电平时表明输入待比较数 据与原有数据相同 |
Addressout | 输出 | 输出匹配数据的地址信息 |
一个存储页的输入输信号为:
输入/输出信号名称 | 类型 | 说明 |
Clk | 输入 | 时钟信号 |
Clr | 输入 | 清零信号,低电平有效 |
Data(16:0) | 输入 | 输入数据,写操作时存入寄存器 |
Datatag(16:0) | 输入 | 待比较数据, 比较操作时与寄存器中数据进行比较 |
Wren | 输入 | 写使能,高电平有效 |
Entry_sel(15:0) | 输入 | 选择信号,高电平有效, 分别对应16个基本存储单元的选择信号 |
Matchen | 输入 | 比较允许信号,高电平有效 |
Entry_Match(15:0) | 输出 | 输出匹配数据, 由16个基本存储单元的匹配信号构成 |
Page_Match | 输出 | 输出匹配信号 |
对比存储页和存储体的输入和输出信号,可以获知存储页与存储体的输入输出信号基本一致,不同之处就在于两者的选择信号及匹配信号的位宽不一致,同时一个存储页有两个输出信号而一个存储体只有一个。其中存储页的选择信号为16位,因为一个存储页包含16个存储体,16位选择信号对应着存储页中的16个存储体选择信号,例如Entry_sel(0)对应着该存储页中的第1个存储体的选择信号,而Entry_sel(15)对应着该存储页中的第16个存储体的选择信号。由16个存储体产生的匹配信号则构成一个存储页的匹配数据Entry_Match(15:0),同时Match信号则由匹配信号的不同值来确定,当Entry_Match(15:0)为全零时,表明此存储页内16个存储体中没有要查找的数据,此时Match为0,其他情况下Match均为1。
具体实施方式三:本实施方式是对具体实施方式一或二所述的基于内容可寻址存储器的高速无损数据压缩系统中的LZW算法核心模块2的结构的进一步限定。本实施方式中的LZW算法核心模块2由两个状态机嵌套组成。
本实施方式所述的两个状态机可以分别用于实现系统主程序和数据压缩程序。其中,用于实现数据压缩的状态机嵌套在用于实现系统主程序的状态机中。
本实施方式中,用于实现系统主程序的状态机有四个工作状态,每个工作 状态所做的工作及状态之间的相互转换过程参见图6所示:
空闲状态,用于判断复位信号Reset的状态,当复位信号有效Reset=1时,进入初始化状态;
初始化状态,用于完成对字典的初始化的写操作过程,具体为:向字典中前256个存储体中的数据的前缀均写为0,后缀写入该存储体地址信息,然后置清除标志有效、设置结束标志,此时,输入地址Addin=257,初始化完成,然后进入到数据压缩状态;
数据压缩状态,用于在写使能信号有效Wren=1、并且字典未满c_full=1的情况下,采用LZW压缩算法对数据进行压缩;在写使能信号无效Wren=0时,进入结束状态;在写使能信号有效Wren=1,并且字典已满c_full=0的情况下,进入到初始化状态;
结束状态,在复位信号无效Reset=0时,转入空闲状态。
当本实施方式的系统开始工作时,最开始处于空闲状态,在空闲状态下不执行任何操作,直到等到复位信号有效时进入到初始化过程,开始工作。
本实施方式在初始化状态中,是对字典中存储体中的数据进行初始状态设置的过程,在压缩算法正常工作前、即在复位信号有效后,即开始执行此过程。该状态下,对字典的前256项进行写操作。初始化状态完后,字典中前256个存储体的内容如下表所示:
CODE | PREFIX | SUFFIX |
0 | 0 | 0 |
1 | 0 | 1 |
... | ... | ... |
255 | 0 | 255 |
字典的后256个存储体不进行初始化操作。根据LZW算法的定义,清除标志Clear=255+1=256,结束标志为End=256+1=257。故在初始化时,输出代码为257。
本实施方式中,用于实现数据压缩程序的状态机有四个工作状态,每个工作状及状态之间的相互转换过程参见图7所示:
搜索空闲状态,在输入地址Addin=257、并且复位信号有效Reset=1时,进入字典搜索状态;
字典搜索状态,将输入数据与CAM中所有存储体中的数据进行比较,并获得比较结果Match,当比较结果有效Match=1时,进入字典匹配状态;当比较结果无效Match=0时,进入字典不匹配状态;当复位信号无效Reset=0时,进入搜索空闲状态;
字典匹配状态,将匹配的存储体的地址写入实体Entry的前缀中,然后进入字典搜索状态;
字典不匹配状态,输出实体Entry的前缀,更新字典模块5,然后将实体的后缀高位添0变成9位后写入实体Entry的前缀,然后进入字典搜索状态。
本实施方式中,采用采用状态机实现数据压缩,当未进入到数据压缩状态时,状态机位于空闲状态,一旦进入到压缩过程,则在字典搜索状态、匹配状态及不匹配状态之间来回转换。在字典搜索过程中,由于CAM的查找周期确定,所以设定在3个时钟后判断Match信号,若为高,表明存在,则进入匹配状态,否则进入不匹配状态。
采用压缩算法对数据进行压缩的过程中,输入数据是LZW算法核心模块产生的8位数据,然后将所述8位数据作为后缀Suffix,与前缀Prefix组成实体Entry进行数据压缩过程中,在字典中查找所述实体Entry:
如果所述实体Entry存在于字典中,不更新字典的内容,并将存储该实体Entry的存储体的地址当作代码写入该实体Entry的前缀Prefix中,然后继续输入新的8位数据到实体的后缀Suffix中,与前缀Prefix组成新的实体Entry进行查找;
如果所述实体Entry不存在于字典中,则输出该实体Entry的前缀Prefix,并将该实体的后缀Suffix的高位添0变为9位后放到后缀Prefix中,然后继续将输入新的8位数据放入后缀Suffix,与前缀Prefix组成新的实体进行查找。
本实施方式中的数据压缩状态中,数据压缩的过程为:压缩算法核心模块读入8位的数据,放到Suffix中,然后和Prefix组成一个Entry,并在字典中查找Entry。如果Entry存在于字典中,则不更新字典内容。将CAM中存储此Entry的对应地址当做代码放到Prefix中,继续输入新的数据放入Suffix后再次组成Entry并进行查找操作。若不存在,则输出Prefix,将Suffix在高位添0变为9位后放到Prefix中,继续将输入数据放入Suffix,进行查找过程。
Claims (5)
1.基于内容可寻址存储器的高速无损数据压缩系统,它包括时钟模块(4)、输入数据缓存模块(1)、字典模块(5)、LZW算法核心模块(2)和输出编码模块(3),其中:
时钟模块(4),用于提供系统所需要的所有时钟信号;
输入数据缓存模块(1),由FPGA内部的先入先出存储器FIFO构成,用于缓存输入数据,并将输入的数据以数据流的形式提供给LZW算法核心模块进行压缩;
LZW算法核心模块(2),所述LZW算法核心模块用于接收输入数据缓存模块输出的数据流;还用于通过对字典的初始化、查找、更新以及LZW算法的应用实现对输入数据流的压缩,并将压缩后生成的代码流输入到输出编码模块;
输出编码模块(3),用于根据后端存储器或总线位宽的需要将输入的代码流转换成预期的数据流;
所述字典模块(5)由FPGA内部的CAM构造,所述CAM的位宽为17位,深度为512;并且所述CAM中存储体的地址对应LZW算法核心模块中的LZW算法的代码;
其特征在于,用于构成字典模块(5)的CAM,由32个存储页及一个输入地址译码模块、一个输出地址译码模块和控制模块组成,每个存储页由16个存储体组成;所述存储体的地址为9位,每一位宽度是17位,前9位用于存储实体Entry的前缀Prefix,后8位用于存储实体Entry的后缀Suffix,每个存储体的结构相同,所述存储体由比较器和触发器组成,所述触发器用于存储数据,在写使能信号有效时,当某一个存储体被选中,向该存储体中的触发器中写入新数据,进行数据更新;在比较模式下,所有存储体被选中,所述存储体中的比较器将输入的数据与所述存储体的触发器中的数据进行比较,并根据比较结果输出匹配信号;
所述输入地址译码模块,用于根据控制模块输入的四位地址数据addr(3:0)确定指定存储页中的存储体,并将所述存储体的选择信号置有效;
所述输出地址译码模块,用于根据存储页输出的匹配数据Entry_Match(15:0)输出匹配成功的存储体的四位地址数据add_suf(3:0),并将所述四 位地址数据add_suf(3:0)输出给控制模块;
控制模块,用于根据输入的9位地址数据addr(8:0)的前5位addr(8:4)选择对应的指定存储页,还用于将所述9位地址数据addr(8:0)的后4位地址数据addr(3:0)输出给输入地址译码模块;还用于将输出地址译码模块输出的四位地址数据add_suf(3:0)添加上对应指定存储页的5位地址数据形成9位地址数据Data_out(8:0)输出。
2.根据权利要求1所述的基于内容可寻址存储器的高速无损数据压缩系统,其特征在于,所述LZW算法核心模块(2)由两个状态机嵌套组成。
3.根据权利要求2所述的基于内容可寻址存储器的高速无损数据压缩系统,其特征在于,所述两个状态机分别用于实现系统主程序和数据压缩程序。
4.根据权利要求3所述的基于内容可寻址存储器的高速无损数据压缩系统,其特征在于,用于实现系统主程序的状态机有四个工作状态,每个工作状态所做的工作及状态之间的相互转换过程为:
空闲状态,用于判断复位信号Reset的状态,当复位信号有效Reset=1时,进入初始化状态;
初始化状态,用于完成对字典的初始化的写操作过程,具体为:向字典中前256个存储体中的数据的前缀均写为0,后缀写入该存储体地址信息,然后置清除标志有效、设置结束标志,此时,输入地址Addin=257,初始化完成,然后进入到数据压缩状态;
数据压缩状态,用于在写使能信号有效Wren=1、并且字典未满c_full=1的情况下,采用LZW压缩算法对数据进行压缩;在写使能信号无效Wren=0时,进入结束状态;在写使能信号有效Wren=1,并且字典已满c_full=0的情况下,进入到初始化状态;
结束状态,在复位信号无效Reset=0时,转入空闲状态。
5.根据权利要求3所述的基于内容可寻址存储器的高速无损数据压缩系统,其特征在于,用于实现数据压缩程序的状态机有四个工作状态,每个工作状及状态之间的相互转换过程为:
搜索空闲状态,在输入地址Addin=257,并且复位信号有效Reset=1时,进入字典搜索状态;
字典搜索状态,将输入数据与CAM中所有存储体中的数据进行比较,并获得比较结果Match,当比较结果有效Match=1时,进入字典匹配状态;当比较结果无效Match=0时,进入字典不匹配状态;当复位信号无效时,进入搜索空闲状态;
字典匹配状态,将匹配的存储体的地址写入实体Entry的前缀中,然后进入字典搜索状态;
字典不匹配状态,输出实体Entry的前缀,更新字典模块(5),将实体的后缀高位添0变成9位后写入前缀,然后进入字典搜索状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100722505A CN101572552B (zh) | 2009-06-11 | 2009-06-11 | 基于内容可寻址存储器的高速无损数据压缩系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100722505A CN101572552B (zh) | 2009-06-11 | 2009-06-11 | 基于内容可寻址存储器的高速无损数据压缩系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101572552A CN101572552A (zh) | 2009-11-04 |
CN101572552B true CN101572552B (zh) | 2012-07-18 |
Family
ID=41231800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100722505A Expired - Fee Related CN101572552B (zh) | 2009-06-11 | 2009-06-11 | 基于内容可寻址存储器的高速无损数据压缩系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101572552B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023509A (zh) * | 2012-11-14 | 2013-04-03 | 无锡芯响电子科技有限公司 | 一种硬件lz77压缩实现系统及其实现方法 |
CN103095305A (zh) * | 2013-01-06 | 2013-05-08 | 中国科学院计算技术研究所 | 一种硬件lz77的压缩实现系统及方法 |
CN104281616B (zh) * | 2013-07-10 | 2017-10-13 | 北京旋极信息技术股份有限公司 | 数据处理方法 |
CN103746702B (zh) * | 2013-12-17 | 2017-01-11 | 记忆科技(深圳)有限公司 | 数据的无损压缩方法与装置 |
US9740631B2 (en) * | 2014-10-07 | 2017-08-22 | Google Inc. | Hardware-assisted memory compression management using page filter and system MMU |
US9647684B2 (en) | 2014-10-21 | 2017-05-09 | Huawei Technologies Co., Ltd. | Memory-based history search |
CN105609130B (zh) * | 2015-07-21 | 2020-04-07 | 上海磁宇信息科技有限公司 | 具有内容寻址功能的mram芯片及内容寻址方法 |
CN105207678B (zh) * | 2015-09-29 | 2018-10-26 | 东南大学 | 一种改进型lz4压缩算法的硬件实现系统 |
CN106980541B (zh) * | 2017-03-10 | 2019-11-19 | 浙江大学 | 一种大页内存压缩回收系统及方法 |
CN107483055B (zh) * | 2017-08-04 | 2020-06-16 | 北京世纪铭辰科技有限公司 | 一种无损压缩方法及系统 |
CN108400840A (zh) * | 2018-02-05 | 2018-08-14 | 杭州点壹下通讯科技有限公司 | 一种智能家居管理方法 |
RU182176U1 (ru) * | 2018-04-18 | 2018-08-06 | Общество с ограниченной ответственностью "БУЛАТ" | Устройство хранения данных |
RU184681U1 (ru) * | 2018-04-18 | 2018-11-02 | Общество с ограниченной ответственностью "БУЛАТ" | Устройство хранения данных |
CN108873062A (zh) * | 2018-05-08 | 2018-11-23 | 吉林大学 | 一种基于fpga的多编码器高速地震数据并行无损压缩方法 |
CN109933560A (zh) * | 2019-03-21 | 2019-06-25 | 南京威翔科技有限公司 | 一种基于fifo与随机存储器结合的模块间流控制通信方法 |
RU192299U1 (ru) * | 2019-06-13 | 2019-09-12 | Общество с ограниченной ответственностью "БУЛАТ" | Устройство хранения данных |
CN113630123B (zh) * | 2021-06-30 | 2023-08-18 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据压缩系统及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4558302A (en) * | 1983-06-20 | 1985-12-10 | Sperry Corporation | High speed data compression and decompression apparatus and method |
CN1171868A (zh) * | 1994-12-29 | 1998-01-28 | 尤尼西斯公司 | 使用相联存储器进行lzw数据压缩 |
-
2009
- 2009-06-11 CN CN2009100722505A patent/CN101572552B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4558302A (en) * | 1983-06-20 | 1985-12-10 | Sperry Corporation | High speed data compression and decompression apparatus and method |
US4558302B1 (zh) * | 1983-06-20 | 1994-01-04 | Unisys Corp | |
CN1171868A (zh) * | 1994-12-29 | 1998-01-28 | 尤尼西斯公司 | 使用相联存储器进行lzw数据压缩 |
Non-Patent Citations (1)
Title |
---|
李雷定等.利用FPGA实现LZW算法的研究.《电子测量技术》.2008,第31卷(第10期),171. * |
Also Published As
Publication number | Publication date |
---|---|
CN101572552A (zh) | 2009-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101572552B (zh) | 基于内容可寻址存储器的高速无损数据压缩系统 | |
CN100401425C (zh) | 用于在按内容寻址的存储器中执行可变宽度搜索的电路和方法 | |
CN101681249B (zh) | 先进先出缓冲器 | |
CN101523359B (zh) | 具有减小数据高速缓存访问功率的微标签阵列的处理器及其应用 | |
JP2000267848A (ja) | 情報処理装置 | |
CN103886916B (zh) | 输入位宽可伸缩的编码/编解码存储系统 | |
JP2007522571A5 (zh) | ||
US20100161668A1 (en) | Method and system for index serialization | |
CN101825997A (zh) | 一种异步先入先出存储器 | |
CN102567419B (zh) | 基于树结构的海量数据存储装置及方法 | |
CN105404591B (zh) | 处理器系统及其存储器控制方法 | |
CN100565475C (zh) | 联想存储器装置 | |
CN102156676B (zh) | 高速缓存系统 | |
CN101699391B (zh) | 提高Java处理器取指令带宽的字节码缓冲装置及使用方法 | |
CN110633225A (zh) | 实体存储对照表产生装置及方法 | |
CN209765494U (zh) | 一种异步fifo装置 | |
KR100735552B1 (ko) | 코드 메모리 상의 프로그램의 코드 크기를 줄이는 방법 | |
CN1407458A (zh) | 一种异步先进先出(fifo)数据缓存的方法 | |
CN100367240C (zh) | 能同时读写数据的方法和集成电路 | |
US20050204122A1 (en) | Hierarchical storage architecture for reconfigurable logic configurations | |
CN117312213B (zh) | 一种用于ahb总线的桥接装置、方法以及片上系统 | |
CN111159070A (zh) | 基于ahb总线的标记压缩系统和片上系统 | |
CN113377684A (zh) | 数据写入系统与方法 | |
US20040008552A1 (en) | Cache memory and control method thereof | |
CN201548950U (zh) | 用于提高Java处理器取指令带宽的字节码缓冲装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120718 Termination date: 20130611 |