CN101996139A - 数据匹配方法和数据匹配装置 - Google Patents
数据匹配方法和数据匹配装置 Download PDFInfo
- Publication number
- CN101996139A CN101996139A CN2009100917005A CN200910091700A CN101996139A CN 101996139 A CN101996139 A CN 101996139A CN 2009100917005 A CN2009100917005 A CN 2009100917005A CN 200910091700 A CN200910091700 A CN 200910091700A CN 101996139 A CN101996139 A CN 101996139A
- Authority
- CN
- China
- Prior art keywords
- character
- entered
- historical
- index
- calculation unit
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据匹配方法和数据匹配装置,其中,该方法包括:历史数据存储窗口将待输入字符之前预定字节的历史字符保存在历史数据存储窗口的随机存储器中;哈希计算单元计算待输入字符的哈希值,根据哈希值确定与待输入字符对应的字符索引,并将字符索引存储在哈希计算单元的随机存储器中,其中,字符索引为与待输入字符对应的历史字符在历史数据存储窗口的随机存储器中的位置信息;匹配查找单元获取哈希计算单元的随机存储器中的字符索引,并根据字符索引对待输入字符和历史字符进行匹配。通过上述处理,能够提高Lz77算法的处理效率,极大地节省了CPU与存储器的资源。
Description
技术领域
本发明实施例涉及数据压缩技术领域,尤其涉及一种数据匹配方法和数据匹配装置。
背景技术
目前,为了减少数据需要的存储介质,提高数据传输效率,数据压缩在互联网、数据库、存储应用中应用非常广泛,包括数据库应用、数据备份、压缩文件系统、网页(web)前端服务等。其中,GZIP压缩算法是目前应用最广泛的一种压缩算法,例如,在Web服务器软件(例如,apache、IIS)上使用GZIP对网页进行压缩,从而提高访问响应速度。
在相关技术中,GZIP压缩算法包括两部分:Lz77算法与哈夫曼(Huffman)编码。Lz77算法通过对原始数据进行去冗余处理以达到压缩的目的。该算法的软件实现方法是在一个数据窗口内(该数据窗口的大小一般为32KB),不断的迭代寻找最佳的匹配数据串进而消除冗余,并依赖中央处理器(Central Processing Unit;以下简称:CPU)对数据进行压缩。
在匹配查找过程中,为了快速向前定位可能匹配的数据,对每个比特(byte)的待输入字符,会计算一个hash值,如果两个字符的hash值相同,则可能存在匹配。在目前的实现方法中,会用一个链表数据结构保存所有hash值相同的字符索引,对每个输入字符,首先计算其hash值,然后使用hash值寻址到对应的链表,依次把字符索引取出进行匹配查找,最后会把当前字符的索引插入链表供后面字符的匹配查找使用。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
使用软件对Lz77算法进行串行处理的效率非常低,并且消耗大量的CPU与存储器(memory)资源,成为软件实现Lz77算法的性能瓶颈。
发明内容
本发明实施例提供一种数据匹配方法和数据匹配装置,用以解决现有技术中使用软件对Lz77算法进行串行处理的效率低、且消耗大量的CPU与存储器资源的缺陷,实现通过基于可编程门阵列的硬件来实现Lz77算法。
本发明实施例提供一种数据匹配方法,包括:
历史数据存储窗口将待输入字符之前预定字节的历史字符保存在历史数据存储窗口的随机存储器中;哈希计算单元计算待输入字符的哈希值,根据哈希值确定与待输入字符对应的字符索引,并将字符索引存储在哈希计算单元的随机存储器中,其中,字符索引为与待输入字符对应的历史字符在历史数据存储窗口的随机存储器中的位置信息;匹配查找单元获取哈希计算单元的随机存储器中的字符索引,并根据字符索引对待输入字符和历史字符进行匹配。
本发明实施例还提供一种数据匹配装置,包括:
历史数据存储窗口,用于保存待输入字符之前预定字节的历史字符;哈希计算单元,用于计算待输入字符的哈希值,根据哈希值确定与待输入字符对应的字符索引,并将字符索引存储在哈希计算单元的随机存储器中,其中,字符索引为与待输入字符对应的历史字符在历史数据存储窗口的随机存储器中的位置信息;匹配查找单元,用于获取哈希计算单元的随机存储器中的字符索引,并根据字符索引对待输入字符和历史字符进行匹配。
本发明实施例的数据匹配方法和数据匹配装置,通过基于可编程门阵列的硬件来实现Lz77算法,克服了现有技术中使用软件对Lz77算法进行串行处理的效率低、且消耗大量的CPU与存储器资源的缺陷,能够提高Lz77算法的处理效率,极大地节省了CPU与存储器的资源。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的数据匹配装置的结构示意图;
图2是根据本发明实施例的历史数据存储窗口分布式存储结构的示意图;
图3是根据本发明实施例的交叉存储方式的示意图;
图4是根据本发明实施例的哈希计算单元的随机存储器的结构示意图;
图5是根据本发明实施例的哈希计算单元的结构示意图;
图6是根据本发明实施例的匹配查找单元的结构示意图;
图7是根据本发明实施例的前端处理单元的结构示意图;
图8是根据本发明实施例的地址管理模块的结构示意图;
图9是根据本发明实施例的数据选择模块的结构示意图;
图10是根据本发明实施例的查询匹配模块的结构示意图;
图11是根据本发明实施例的后端处理单元的结构示意图;
图12是根据本发明实施例的数据匹配方法的流程图。
具体实施方式
根据本发明的实施例,Lz77算法的硬件实现可以基于专用集成电路(Application Specific Integrated Circuit;以下简称ASIC)是或现场可编程门阵列(Field-Programmable Gate Array;以下简称:FPGA)。其中,基于ASIC的方法因为一次投入高,开发周期长,最终产品不灵活等缺点,不太适合产品更新换代快、需求灵活多变的互联网应用。基于FPGA的方法一次投入适中,开发周期短,产品灵活可编程,因此在本发明实施例中,采用基于低端低成本FPGA的硬件来实现Lz77算法。
下面结合附图和具体实施例进一步说明本发明实施例的技术方案。
根据本发明的实施例,提供了一种数据匹配装置,图1是根据本发明实施例的数据匹配装置的结构示意图,如图1所示,根据本发明实施例的数据匹配装置包括:历史数据存储窗口10、哈希(hash)计算单元12、匹配查找单元14。下面,对上述各个模块进行详细的说明。
历史数据存储窗口10用于保存待输入字符之前预定字节的历史字符,在本发明的实施例中,优选地,上述预定字节为16千字节。
具体地,Lz77算法需要定义一个历史数据存储窗口,其大小一般为32KB,当前待输入字符会在这个历史数据存储窗口里面查找匹配。在基于低端低成本FPGA的解决方案中,因为片内受随机存储器(random access memory;以下简称:RAM)资源的限制,所以将历史数据存储窗口10的大小设置为16KB,虽然历史数据存储窗口10的大小变成了16KB,但是,16KB的历史数据存储窗口10对压缩率影响仅在1%左右,非常之小。
为了对待输入字符进行流式处理、以及多个匹配查找并发进行,本发明实施例的历史数据存储窗口10对历史字符的存储做了如下优化:
一、在多路进行匹配查找时,每个周期内有多个读请求访问历史数据存储窗口10,因此,必须采用新的存储结构来避免读冲突,在本发明实施例中,采用分布式的RAM结构,每个RAM可以独立寻址,并且具有两个独立的读端口。在本发明的实施例中,如图2所示,16KB的历史数据存储窗口采用16个独立的RAM存储历史字符,包括第一RAM 21、第二RAM 22、......、第十六RAM 216,每个RAM存储1KB的历史字符,这样每个周期(cycle)可以支持32个并发的读访问。
二、为了打破数据局部性,降低多个读操作同时访问同一个RAM的概率,本发明实施例采用交叉(interleave)的方式存储历史字符,可以提高RAM的使用效率。
具体地,输入的字符最有可能与最近的1KB之内的历史字符匹配,这会导致在匹配查找过程中,大部分的读访问集中在这1KB的数据,存储这1KB数据的RAM因为读端口不足而导致无法读取数据。采用交叉存储方式,把数据均匀分布存储在各个RAM里面,消除了数据局部性,使每个RAM的负载均衡。其中,如图3所示,交叉存储方式具体包括:从第1个可单独寻址的分布式随机存储器开始,顺序存储历史字符,如果最后1个可单独寻址的分布式随机存储器存储历史字符后,还存在未存储的历史字符,则从第1个可单独寻址的分布式随机存储器开始,再次顺序存储所述未存储的历史字符,依次循环,直到将所述预定字节的历史字符全部存储为止。例如,将0-3B的历史字符存储在第一RAM中,将4-7B的历史字符存储在第二RAM中,将60-63B的历史字符存储在第十六RAM中,将64-67B的历史字符存储在第一RAM中,将68-71B的历史字符存储在第而RAM中。
三、历史数据存储窗口10的数据端口由1Byte变成4Byte,并且每个周期会从4个RAM里面读取共16Byte的数据,这样可以使读请求的次数降低到原来的1/16。
从上述的描述可以看出,与现有技术中采用32KB的历史数据存储窗口,历史字符按照正常顺序存储,同一时刻只能读取一个历史字符相比,本发明实施例的基于FPGA的硬件虽然资源受到限制,只能使用16KB的历史数据窗口,但是,本发明实施例采用16个分布式可独立寻址的RAM,每个RAM存储1KB的历史数据,有两个独立的读端口,每个数据端口位宽是4-byte,极大地提高了读访问的并发性;此外,历史字符是以交叉方式进行存储管理,可以降低因为数据局部性造成的读冲突。
哈希计算单元12,用于计算待输入字符的哈希值,根据待输入字符的哈希值确定与待输入字符对应的字符索引,并将字符索引存储在哈希计算单元的随机存储器中,其中,字符索引为与待输入字符对应的历史字符在历史数据存储窗口的随机存储器中的位置信息。
具体地,为了在一个周期内把hash值相同的字符索引取出来,提高匹配处理的并发性,因此必须使用新的存储结构代替链表。本发明实施例把对应于同一个hash值的字符索引存储在不同的RAM里面,每个RAM可以用hash值作为地址去存储和读取匹配字符索引。如图4所示,在本发明实施例的低端FPGA中,由于受到片内RAM资源的限制,对于每个hash值,在哈希计算单元的第一随机存储器41和哈希计算单元的第二随机存储器42中分别保存2个最近的字符索引,从而保证每个周期可以读取2个字符索引。在实际应用中,该结构可以灵活扩展到保存更多个字符索引。对于每个待输入字符,哈希计算单元12先计算其hash值,并用hash值作为地址访问哈希计算单元的第一随机存储器与哈希计算单元的第二随机存储器,读取有效的字符索引,然后把当前字符索引写到hash值对应的存储位置,如果哈希计算单元的第一随机存储器与哈希计算单元的第二随机存储器已经存储两个有效的字符索引,则使用新字符索引替代旧字符索引。
根据本发明的实施例,哈希计算单元12中除哈希计算单元的第一随机存储器41和哈希计算单元的第二随机存储器42外,如图5所示,还包括如下模块:哈希计算模块51、写管理模块52、读管理模块53、字符索引过滤模块54。
其中,哈希计算模块51用于计算待输入字符的哈希值;随后,将计算的哈希值发送到写管理模块52,写管理模块52将对应于哈希值的至少两个字符索引分别存储在哈希计算单元的第一随机存储器41和哈希计算单元的第二随机存储器42中;
随后,读管理模块53就可以直接从哈希计算单元的第一随机存储器41和哈希计算单元的第二随机存储器42中读取字符索引;在字符索引还未写入哈希计算单元的第一随机存储器41和哈希计算单元的第二随机存储器42的情况下,读管理模块53还可以直接从写管理模块读取未存储的字符索引。具体地,因为RAM的写操作要2个周期才能生效,如果在这两个周期内需要读取待写入的数据,读管理模块53则从写管理模块52的缓存中直接读取字符索引。最后,字符索引过滤模块54将读管理模块53输出的无效的地址进行过滤并输出。其中,上述的无效地址是指偏移量超过历史数据窗口的地址等。
从上述描述可以看出,相对于现有技术中使用链表来存储和管理字符索引,本发明实施例使用两套独立的RAM,对每个hash值,保存最近的2个字符索引,可以并发读取两个甚至多个字符索引,提高了处理性能。
匹配查找单元14,用于获取哈希计算单元12的随机存储器(即,哈希计算单元的第一随机存储器41和哈希计算单元的第二随机存储器42)中的字符索引,并根据字符索引对待输入字符和历史字符进行匹配。
具体地,如图6所示,匹配查找单元14包括前端处理单元60、后端处理单元62,其中,前端处理单元60用于获取哈希计算单元的随机存储器中的字符索引,并根据获取的字符索引对待输入字符和历史字符进行匹配,并发送匹配结果;后端处理单元62用于接收匹配结果,并根据匹配结果计算匹配距离、匹配长度、以及不匹配时输出的字符。
具体地,为了提高压缩率,匹配查找单元14支持Lazzy匹配。Lazzy匹配是指当前待输入字符的匹配查找完成后并不马上输出,而是等下一个待输入字符的匹配完成后,比较这两个匹配结果,选择最长的匹配输出,另外一个字符按照不匹配输出。对于每个待输入字符,从hash2lookup模块读取两个匹配字符索引,然后发起2路匹配查找,对于下一cycle输入的字符,同样从哈希计算单元12读取两个匹配字符索引,如果前一字符匹配命中,则发起2路lazzy匹配查找,因此,系统最多同时共有4路匹配查找在同时进行。前端处理单元60把4路匹配查找的信息发送给后端处理单元62,后端处理单元62负责计算每路匹配查找的匹配距离,匹配长度,和不匹配时要输出的字符。
下面,对前端处理单元60的结构进行详细说明,如图7所示,前端处理单元60包括:地址管理模块70、匹配查找单元的移位寄存器71、数据选择模块72、查询匹配模块73、匹配逻辑控制模块74。下面,对上述各个模块分别进行说明。
具体地,如图8所示,地址管理模块70主要用于根据字符索引产生并存储历史数据存储窗口10的读地址;因为历史数据窗口由16个独立的RAM构成,每个RAM两个读端口,因此共需要管理32个读地址。在没有匹配的时候,读地址来自哈希计算单元12的两个字符索引,匹配过程中读地址是上一次读地址加上偏移量。由于历史字符从历史数据存储窗口10读回来时,需要根据读地址对历史字符进行裁剪选择(truncate),所以读地址必须寄存直到历史字符返回。
匹配查找单元的移位寄存器71用于存储待输入字符;具体地,匹配查找单元的移位寄存器71采用一个40bit移位寄存器寄存待输入字符,每发起一次新的匹配查找,匹配查找单元的移位寄存器71的低24bit(3Byte)和来自历史数据窗口的3Byte字符进行比较,如果相同,则这次匹配命中。在匹配命中后,每个周期使用匹配查找单元的移位寄存器71的16-23bit和来自历史数据窗口的一个byte数据比较以判断匹配是否在持续。
数据选择模块72用于根据读地址从历史数据存储窗口中的16个可单独寻址的分布式随机存储器中读取并存储32字节的历史字符,并根据读地址的低4位从32字节的历史字符中选择并存储有效的26字节的历史字符;
具体地,如图9所示,数据选择模块72从历史数据窗口的16个分布式RAM的32个读端口中选择2路有效的32byte历史字符,每路是16byte,这16byte数据里面只有13byte在当次匹配中是用到的,因此数据剪裁单元还会根据读地址的低4bit来选取有效的13byte数据,用来进行匹配查找。移位单元把已经匹配过的字符向右移走,保证字符数据寄存器里面的数据都是没有使用过的。
查询匹配模块73,用于在新发起的匹配查找中,根据字符索引对匹配查找单元的移位寄存器的低24位中存储的3字节的待输入字符和26字节的历史字符中的3字节历史字符进行匹配;如果3字节的待输入字符匹配命中,则意味着一次新的匹配查找开始:在第二个周期内,获取与当前待输入字符对应的至少两个字符索引,并根据与当前待输入字符对应的至少两个字符索引对存储在匹配查找单元的移位寄存器的16至23位中的当前待输入字符和26字节的历史字符中相应的1字节历史字符进行匹配操作,如果当前待输入字符匹配成功,则继续对下一个当前待输入字符进行匹配,依次类推,直到匹配结束,如果当前待输入字符匹配失败,则结束匹配;在匹配结束后,得到第一匹配结果。
也就是说,如图10所示,查询匹配模块73通过比较来自匹配查找单元的移位寄存器71和数据选择模块72的数据,以判断什么时候产生新的匹配,当前匹配什么时候结束等。判断一个新匹配的开始时,在检测新哈希匹配及检测新懒惰匹配单元中,需要同时比较3byte的数据,在匹配过程中,在检测哈希匹配及检测懒惰匹配单元中,每个周期只需要比较1byte数据,如果匹配的长度大于255、遇到文件末尾、或者新输入的字符与来自历史字符窗口的数据不相等,则当前匹配结束。
查询匹配模块73还用于:如果3字节的待输入字符匹配命中,在第二个周期内,针对当前待输入字符,发起一次和上述匹配查找并发进行的匹配查找,具体为:根据字符索引对匹配查找单元的移位寄存器中存储的当前待输入字符以及当前待输入字符之前的两个待输入字符和26字节的历史字符中的3字节历史字符再次进行匹配;如果再次进行的匹配为命中,在第三个周期内,获取与当前待输入字符的后一个待输入字符对应的至少两个字符索引,并根据与后一个待输入字符对应的至少两个字符索引对存储在匹配查找单元的移位寄存器的16至23位中的后一个待输入字符和26字节的历史字符中相应的1字节历史字符进行匹配操作,如果后一个待输入字符匹配成功,则继续对下一个待输入字符进行匹配,依次类推,直到匹配结束,如果后一个待输入字符匹配失败,则结束匹配;在匹配结束后,得到第二匹配结果。
通过上述处理,在匹配过程中,最多有4路匹配查找在同时进行,4路并发匹配查找意味着可能有4次读请求同时访问一个RAM,但每个保存历史数据的RAM只有2个读端口,这就导致了结构冒险。为了解决这个问题,匹配查找单元每次读请求会读取13byte数据,因此后面至少有10个周期不需要读取新数据,因此4次读请求可以错开发送,消除了读冲突。
匹配逻辑控制模块74用于比较第一匹配结果和第二匹配结果,确定匹配字符最长的匹配结果并输出,将另一匹配结果按照不匹配输出。在将匹配结果输出后,针对当前待输入字符重新发起上述过程的匹配查找。
此外,匹配逻辑控制模块还用于产生整个模块的控制信号和异常处理。
前端处理单元60经过上述处理后,就会将匹配结果发送到后端处理单元62,后端处理单元62的结构示意图如图11所示,后端处理单元62的计算哈希匹配0的匹配长度及距离单元、计算哈希匹配1的匹配长度及距离单元、计算懒惰匹配0的匹配长度及距离单元、计算懒惰匹配1的匹配长度及距离单元根据前端的输出计算每个匹配的长度,距离和不匹配时该输出的字符,其中,上述四个单元由匹配查找有限状态机控制,最终输出:不匹配的字符输出、哈希匹配输出、懒惰匹配输出,上述三个输出经过多路选择后,随后,由多路选择在4路匹配中选择匹配最长的一路输出(包括字符、匹配长度、匹配距离)。
从上述描述可以看出,相对于现有技术在查找匹配过程中每次只发起一路匹配查找,各个匹配查找串行完成来说,根据本发明实施例的硬件实现方法可以同时发起4路匹配查找,可以极大提高处理能力。需要说明的是,目前实现的硬件支持4次并发匹配查找,但硬件构架可以灵活扩展到支持8次及更多的并发匹配查找。
在实际的应用中,可以将本发明实施例的技术方案应用于各种需要进行数据压缩的应用环境中,例如,透明压缩文件系统用于对应用程序做完全透明的压缩和解压,并且能够选择性地使用软件压缩方式和硬件压缩方式。将本发明实施例的数据匹配装置应用于该透明压缩文件系统中,在该透明压缩文件系统高负载情况下能够节省30%-40%的CPU使用率,并使其写性能具有非常明显的优势。通过使用本发明实施例的数据匹配装置,避免了数据压缩时对系统CPU的消耗,进而改善了系统的整体性能。数据经该压缩文件系统的压缩后,能够节约超过50%的磁盘存储容量。此外,在实际应用中,还可以通过修改网页服务器软件中的zlib库,使用硬件压缩的方式取代软件压缩方式,并将本发明实施例的技术方案应用于网页服务器软件,能够极大提高系统每秒处理页面请求的数目。
通过上述处理,本发明实施例基于低端低成本的FPGA,利用较少的硬件资源实现lz77算法,最终的压缩率和软件实现方法非常接近,但每个FPGA的处理带宽是软件压缩方式的2倍多,且每秒处理事务的能力是单个CPU的6倍,可以达到CPU无法达到的处理能力。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
根据本发明的实施例,提供了一种数据匹配方法,图12是根据本发明实施例的数据匹配方法的流程图,如图12所示,根据本发明实施例的数据匹配方法包括:
步骤1201,历史数据存储窗口将待输入字符之前预定字节的历史字符保存在历史数据存储窗口的随机存储器中;其中,历史数据存储窗口的随机存储器为16个可单独寻址的分布式随机存储器,每个可单独寻址的分布式随机存储器均具有两个独立的读端口;此外,在本发明实施例中,优选地,上述预定字节为16千字节。需要说明的是,历史数据存储窗口的处理可以参照上述装置实施中相应的内容进行理解,其结构示意图可以参照图2进行理解,在此不再赘述。
在步骤1201中,历史数据存储窗口将待输入字符之前预定字节的历史字符保存在历史数据存储窗口的随机存储器中的处理具体包括:
历史数据存储窗口从第1个可单独寻址的分布式随机存储器开始,将历史字符顺序放入16个可单独寻址的分布式随机存储器中,如果将历史字符放入最后1个可单独寻址的分布式随机存储器后,还存在未放入的历史字符,则将未放入的历史字符从第1个可单独寻址的分布式随机存储器开始,再次顺序放入16个可单独寻址的分布式随机存储器,依次循环,直到将预定字节的历史字符全部放入16个可单独寻址的分布式随机存储器中为止,其中,每个可单独寻址的分布式随机存储器最多存储1千字节历史字符。上述过程可以参照图3进行理解。
步骤1202,哈希计算单元计算待输入字符的哈希值,根据哈希值确定与待输入字符对应的字符索引,并将字符索引存储在哈希计算单元的随机存储器中,其中,字符索引为与待输入字符对应的历史字符在历史数据存储窗口的随机存储器中的位置信息;
具体地,在步骤1202中,哈希计算单元将字符索引存储在哈希计算单元的随机存储器中的处理具体包括:
哈希计算单元以哈希值为地址,将对应于哈希值的至少两个字符索引分别存储在不同的哈希计算单元的随机存储器中,其中,哈希计算单元的随机存储器包括至少两个随机存储器;如果在哈希计算单元的随机存储器中,已经存储以哈希值为地址的旧字符索引,则使用新字符索引替代旧字符索引。
有关哈希计算单元的相关处理可以参照上述实施例中的相关内容进行理解,相关的结构示意图可以参照图4、图5进行理解,在此不再赘述。
随后,哈希计算单元读取字符索引,并将字符索引发送到匹配查找单元。在实际应用中,哈希计算单元可以直接从哈希计算单元的随机存储器中读取字符索引;在字符索引还未写入哈希计算单元的随机存储器的情况下,哈希计算单元也可以直接读取未存储的字符索引。
步骤1203,匹配查找单元获取哈希计算单元的随机存储器中的字符索引,并根据字符索引对待输入字符和历史字符进行匹配。
在步骤1203中,匹配查找单元根据字符索引对待输入字符和历史字符进行匹配的具体处理包括:
步骤1、匹配查找单元根据字符索引产生并存储历史数据存储窗口的读地址;
步骤2、匹配查找单元根据读地址从历史数据存储窗口中的16个可单独寻址的分布式随机存储器中读取并存储32字节的历史字符,并根据读地址的低4位从32字节的历史字符中选择并存储有效的26字节的历史字符;
步骤3、在新发起的匹配查找中,匹配查找单元根据字符索引对匹配查找单元的移位寄存器的低24位中存储的3字节(第1、2、3个待输入字符)的待输入字符和26字节的历史字符中的3字节历史字符进行匹配;
步骤4、如果3字节的待输入字符的匹配未命中,则匹配不开始,如果3字节的待输入字符的匹配为命中,则意味着一次新的匹配查找开始:在第二个周期内,匹配查找单元获取与当前待输入字符(第4个待输入字符)对应的至少两个字符索引,并根据与当前待输入字符对应的至少两个字符索引对存储在匹配查找单元的移位寄存器的16至23位中的当前待输入字符和26字节的历史字符中相应的1字节历史字符进行匹配操作,如果当前待输入字符匹配成功,则继续对下一个当前待输入字符进行匹配,依次类推,直到匹配结束,如果当前待输入字符匹配失败,则结束匹配;在匹配结束后,得到第一匹配结果。
步骤5、如果3字节的待输入字符匹配命中,在第二个周期内,针对当前输入的字符,发起一次和上述匹配查找并发进行的匹配查找,具体包括:匹配查找单元根据字符索引对匹配查找单元的移位寄存器中存储的当前待输入字符以及当前待输入字符之前的两个待输入字符和26字节的历史字符中的3字节历史字符再次进行匹配;
步骤6、如果再次进行的匹配为命中,在第三个周期内,匹配查找单元获取与当前待输入字符的后一个待输入字符(第5字符)对应的至少两个字符索引,并根据与后一个待输入字符对应的至少两个字符索引对存储在匹配查找单元的移位寄存器的16至23位中的后一个待输入字符和26字节的历史字符中相应的1字节历史字符进行匹配操作,如果后一个待输入字符匹配成功,则继续对下一个待输入字符进行匹配,依次类推,直到匹配结束,如果后一个待输入字符匹配失败,则结束匹配;在匹配结束后,得到第二匹配结果。
步骤7、比较第一匹配结果和第二匹配结果,确定匹配字符最长的匹配结果并输出,将另一匹配结果按照不匹配输出;然后重复执行上述步骤3-步骤6,对当前待输入字符重新发起新的匹配查找。
需要说明的是,有关匹配查找单元的相关处理可以参照上述实施例中的相关内容进行理解,相关的结构示意图可以参照图6至图11进行理解,在此不再赘述。
综上所述,借助于本发明的技术方案,本发明实施例采用16个分布式可独立寻址的RAM,每个RAM存储1KB的历史数据,有两个独立的读端口,每个数据端口位宽是4byte,极大地提高了读访问的并发性;此外,历史字符是以交叉方式进行存储管理,可以降低因为数据局部性造成的读冲突。
本发明实施例的哈希计算单元使用两套独立的RAM,对每个hash值,保存最近的2个字符索引,可以并发读取两个字符索引,提高了处理性能。此外,根据本发明实施例的硬件实现方法可以同时发起4路匹配查找,并且可以灵活扩展到支持8次及更多的并发匹配查找,极大提高了数据压缩的处理能力,可以达到CPU无法达到的处理能力。能够提高Lz77算法的处理效率,极大地节省了CPU与存储器的资源。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (18)
1.一种数据匹配方法,其特征在于,包括:
历史数据存储窗口将待输入字符之前预定字节的历史字符保存在所述历史数据存储窗口的随机存储器中;
哈希计算单元计算所述待输入字符的哈希值,根据所述哈希值确定与所述待输入字符对应的字符索引,并将所述字符索引存储在所述哈希计算单元的随机存储器中,其中,所述字符索引为与所述待输入字符对应的历史字符在所述历史数据存储窗口的随机存储器中的位置信息;
匹配查找单元获取所述哈希计算单元的随机存储器中的字符索引,并根据所述字符索引对所述待输入字符和所述历史字符进行匹配。
2.根据权利要求1所述的方法,其特征在于,所述历史数据存储窗口的随机存储器为16个可单独寻址的分布式随机存储器,其中,每个可单独寻址的分布式随机存储器均具有两个独立的读端口。
3.根据权利要求2所述的方法,其特征在于,所述历史数据存储窗口将待输入字符之前预定字节的历史字符保存在所述历史数据存储窗口的随机存储器中包括:
所述历史数据存储窗口从第1个可单独寻址的分布式随机存储器开始,将所述历史字符顺序放入所述16个可单独寻址的分布式随机存储器中,如果将所述历史字符放入最后1个可单独寻址的分布式随机存储器后,还存在未放入的历史字符,则将所述未放入的历史字符从所述第1个可单独寻址的分布式随机存储器开始,再次顺序放入所述16个可单独寻址的分布式随机存储器,依次循环,直到将所述预定字节的历史字符全部放入所述16个可单独寻址的分布式随机存储器中为止,其中,每个可单独寻址的分布式随机存储器最多存储1千字节历史字符。
4.根据权利要求3所述的方法,其特征在于,所述预定字节为16千字节。
5.根据权利要求4所述的方法,其特征在于,所述哈希计算单元将所述字符索引存储在所述哈希计算单元的随机存储器中包括:
所述哈希计算单元以所述哈希值为地址,将对应于所述哈希值的至少两个字符索引分别存储在不同的哈希计算单元的随机存储器中,其中,所述哈希计算单元的随机存储器包括至少两个随机存储器;
如果在所述哈希计算单元的随机存储器中,已经存储以所述哈希值为地址的旧字符索引,则使用新字符索引替代所述旧字符索引。
6.根据权利要求5所述的方法,其特征在于,所述匹配查找单元获取所述哈希计算单元的随机存储器中的字符索引之前,所述方法还包括:
所述哈希计算单元读取所述字符索引,并将所述字符索引发送到所述匹配查找单元。
7.根据权利要求6所述的方法,其特征在于,所述哈希计算单元读取所述哈希计算单元的随机存储器中的字符索引包括:
所述哈希计算单元直接从所述哈希计算单元的随机存储器中读取所述字符索引;或者,
在所述字符索引还未写入所述哈希计算单元的随机存储器的情况下,直接读取未存储的所述字符索引。
8.根据权利要求7所述的方法,其特征在于,所述匹配查找单元根据所述字符索引对所述待输入字符和所述历史字符进行匹配包括:
所述匹配查找单元根据所述字符索引产生并存储所述历史数据存储窗口的读地址;
所述匹配查找单元根据所述读地址从所述历史数据存储窗口中的所述16个可单独寻址的分布式随机存储器中读取并存储32字节的历史字符,并根据所述读地址的低4位从所述32字节的历史字符中选择并存储有效的26字节的历史字符;
在新发起的匹配查找中,所述匹配查找单元根据所述字符索引对所述匹配查找单元的移位寄存器的低24位中存储的3字节的待输入字符和所述26字节的历史字符中的3字节历史字符进行匹配;
如果所述3字节的待输入字符匹配命中,在第二个周期内,所述匹配查找单元获取与当前待输入字符对应的至少两个字符索引,并根据与所述当前待输入字符对应的至少两个字符索引对存储在所述匹配查找单元的移位寄存器的16至23位中的所述当前待输入字符和所述26字节的历史字符中相应的1字节历史字符进行匹配操作,如果所述当前待输入字符匹配成功,则继续对下一个当前待输入字符进行匹配,依次类推,直到匹配结束,如果所述当前待输入字符匹配失败,则结束匹配;
在匹配结束后,得到第一匹配结果。
9.根据权利要求8所述的方法,其特征在于,还包括:
如果所述3字节的待输入字符匹配命中,在所述第二个周期内,所述匹配查找单元根据所述字符索引对所述匹配查找单元的移位寄存器中存储的所述当前待输入字符以及所述当前待输入字符之前的两个待输入字符和所述26字节的历史字符中的3字节历史字符再次进行匹配;
如果再次进行的匹配为命中,在第三个周期内,所述匹配查找单元获取与所述当前待输入字符的后一个待输入字符对应的至少两个字符索引,并根据与所述后一个待输入字符对应的至少两个字符索引对存储在所述匹配查找单元的移位寄存器的16至23位中的所述后一个待输入字符和所述26字节的历史字符中相应的1字节历史字符进行匹配操作,如果所述后一个待输入字符匹配成功,则继续对下一个待输入字符进行匹配,依次类推,直到匹配结束,如果所述后一个待输入字符匹配失败,则结束匹配;
在匹配结束后,得到第二匹配结果。
10.根据权利要求9所述的方法,其特征在于,还包括:
比较所述第一匹配结果和所述第二匹配结果,确定匹配字符最长的匹配结果并输出,将另一匹配结果按照不匹配输出。
11.一种数据匹配装置,其特征在于,包括:
历史数据存储窗口,用于保存待输入字符之前预定字节的历史字符;
哈希计算单元,用于计算所述待输入字符的哈希值,根据所述哈希值确定与所述待输入字符对应的字符索引,并将所述字符索引存储在所述哈希计算单元的随机存储器中,其中,所述字符索引为与所述待输入字符对应的历史字符在所述历史数据存储窗口的随机存储器中的位置信息;
匹配查找单元,用于获取所述哈希计算单元的随机存储器中的字符索引,并根据所述字符索引对所述待输入字符和所述历史字符进行匹配。
12.根据权利要求11所述的装置,其特征在于,所述历史数据存储窗口具体包括:
16个可单独寻址的分布式随机存储器,用于从第1个可单独寻址的分布式随机存储器开始,顺序存储所述历史字符,如果最后1个可单独寻址的分布式随机存储器存储所述历史字符后,还存在未存储的历史字符,则从所述第1个可单独寻址的分布式随机存储器开始,再次顺序存储所述未存储的历史字符,依次循环,直到将所述预定字节的历史字符全部存储为止,其中,每个可单独寻址的分布式随机存储器最多存储1千字节历史字符。
13.根据权利要求12所述的装置,其特征在于,所述哈希计算单元具体包括:
哈希计算模块,用于计算所述待输入字符的哈希值;
写管理模块,用于将对应于所述哈希值的至少两个字符索引分别存储在哈希计算单元的第一随机存储器、哈希计算单元的第二随机存储器中;
所述哈希计算单元的第一随机存储器,用于以所述哈希值为地址,存储对应于所述哈希值的一个字符索引,如果已经存储以所述哈希值为地址的旧字符索引,则使用新字符索引替代所述旧字符索引;
所述哈希计算单元的第二随机存储器,用于以所述哈希值为地址,存储对应于所述哈希值的另一个字符索引,如果已经存储以所述哈希值为地址的旧字符索引,则使用新字符索引替代所述旧字符索引;
读管理模块,用于直接从所述哈希计算单元的第一随机存储器和所述哈希计算单元的第二随机存储器中读取所述字符索引;或者,在所述字符索引还未写入所述哈希计算单元的第一随机存储器和所述哈希计算单元的第二随机存储器的情况下,直接从所述写管理模块读取未存储的所述字符索引。
14.根据权利要求13所述的装置,其特征在于,匹配查找单元具体包括:
前端处理单元,用于获取所述哈希计算单元的随机存储器中的字符索引,并根据所述字符索引对所述待输入字符和所述历史字符进行匹配,并发送匹配结果;
后端处理单元,用于接收所述匹配结果,并根据所述匹配结果计算匹配距离、匹配长度、以及不匹配时输出的字符。
15.根据权利要求14所述的装置,其特征在于,所述前端处理单元具体包括:
地址管理模块,用于根据所述字符索引产生并存储所述历史数据存储窗口的读地址;
匹配查找单元的移位寄存器,用于存储所述待输入字符;
数据选择模块,用于根据所述读地址从所述历史数据存储窗口中的所述16个可单独寻址的分布式随机存储器中读取并存储32字节的历史字符,并根据所述读地址的低4位从所述32字节的历史字符中选择并存储有效的26字节的历史字符;
查询匹配模块,用于在新发起的匹配查找中,根据所述字符索引对所述匹配查找单元的移位寄存器的低24位中存储的3字节的待输入字符和所述26字节的历史字符中的3字节历史字符进行匹配;如果所述3字节的待输入字符匹配命中,在第二个周期内,获取与当前待输入字符对应的至少两个字符索引,并根据与所述当前待输入字符对应的至少两个字符索引对存储在所述匹配查找单元的移位寄存器的16至23位中的所述当前待输入字符和所述26字节的历史字符中相应的1字节历史字符进行匹配操作,如果所述当前待输入字符匹配成功,则继续对下一个当前待输入字符进行匹配,依次类推,直到匹配结束,如果所述当前待输入字符匹配失败,则结束匹配;在匹配结束后,得到第一匹配结果。
16.根据权利要求15所述的装置,其特征在于,所述查询匹配模块进一步用于:
如果所述3字节的待输入字符匹配命中,在所述第二个周期内,根据所述字符索引对所述匹配查找单元的移位寄存器中存储的所述当前待输入字符以及所述当前待输入字符之前的两个待输入字符和所述26字节的历史字符中的3字节历史字符再次进行匹配;如果再次进行的匹配为命中,在第三个周期内,获取与所述当前待输入字符的后一个待输入字符对应的至少两个字符索引,并根据与所述后一个待输入字符对应的至少两个字符索引对存储在所述匹配查找单元的移位寄存器的16至23位中的所述后一个待输入字符和所述26字节的历史字符中相应的1字节历史字符进行匹配操作,如果所述后一个待输入字符匹配成功,则继续对下一个待输入字符进行匹配,依次类推,直到匹配结束,如果所述后一个待输入字符匹配失败,则结束匹配;在匹配结束后,得到第二匹配结果。
17.根据权利要求16所述的装置,其特征在于,所述前端处理单元还包括:
匹配逻辑控制模块,用于比较所述第一匹配结果和所述第二匹配结果,确定匹配字符最长的匹配结果并输出,将另一匹配结果按照不匹配输出。
18.根据权利要求11至17中任一项所述的装置,其特征在于,所述数据匹配装置基于可编程门阵列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910091700.5A CN101996139B (zh) | 2009-08-28 | 2009-08-28 | 数据匹配方法和数据匹配装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910091700.5A CN101996139B (zh) | 2009-08-28 | 2009-08-28 | 数据匹配方法和数据匹配装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101996139A true CN101996139A (zh) | 2011-03-30 |
CN101996139B CN101996139B (zh) | 2015-11-25 |
Family
ID=43786315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910091700.5A Active CN101996139B (zh) | 2009-08-28 | 2009-08-28 | 数据匹配方法和数据匹配装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101996139B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103997346A (zh) * | 2014-05-12 | 2014-08-20 | 东南大学 | 一种基于流水线的数据匹配方法和装置 |
CN104300990A (zh) * | 2013-03-15 | 2015-01-21 | 英特尔公司 | 用于高速高度压缩lz77令牌化的并行装置和用于紧缩压缩的霍夫曼编码 |
CN105959013A (zh) * | 2015-05-11 | 2016-09-21 | 上海兆芯集成电路有限公司 | 利用预先霍夫曼编码决定对匹配字符串或反向指针执行霍夫曼编码程序的硬件数据压缩器 |
CN106326258A (zh) * | 2015-06-26 | 2017-01-11 | 中兴通讯股份有限公司 | Url匹配方法及装置 |
CN106603677A (zh) * | 2016-12-21 | 2017-04-26 | 济南浪潮高新科技投资发展有限公司 | 一种使用多核多线程并行的物理信息系统数据压缩传输方法 |
CN106797446A (zh) * | 2014-10-21 | 2017-05-31 | 华为技术有限公司 | 基于存储器的历史搜索 |
CN108460044A (zh) * | 2017-02-20 | 2018-08-28 | 阿里巴巴集团控股有限公司 | 数据的处理方法和装置 |
CN110674364A (zh) * | 2019-08-30 | 2020-01-10 | 北京浩瀚深度信息技术股份有限公司 | 一种利用fpga实现的滑动字符串匹配的方法 |
CN110825437A (zh) * | 2018-08-10 | 2020-02-21 | 北京百度网讯科技有限公司 | 用于处理数据的方法和装置 |
CN111835359A (zh) * | 2019-04-22 | 2020-10-27 | 深圳捷誊技术有限公司 | 压缩装置、存储介质及重复信息查询、更新的方法和装置 |
CN112241407A (zh) * | 2020-09-11 | 2021-01-19 | 重庆锐云科技有限公司 | 高尔夫球场会员数据处理方法、客户管理系统及存储介质 |
CN112541174A (zh) * | 2020-12-15 | 2021-03-23 | 平安科技(深圳)有限公司 | 业务数据核验方法、装置、设备及存储介质 |
CN113377819A (zh) * | 2021-07-07 | 2021-09-10 | 山东方寸微电子科技有限公司 | 一种哈希表滚动查找方法、系统及芯片 |
CN113485949A (zh) * | 2021-05-28 | 2021-10-08 | 浙江毫微米科技有限公司 | 数据处理方法、芯片及计算机可读存储介质 |
WO2023036009A1 (zh) * | 2021-09-08 | 2023-03-16 | 北京灵汐科技有限公司 | 计算系统、存储设备 |
CN116774970A (zh) * | 2023-08-22 | 2023-09-19 | 北京启源问天量子科技有限公司 | 基于量子随机数的id生成方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090132969A1 (en) * | 2005-06-16 | 2009-05-21 | Ken Mayer | Method and system for automated initiation of search queries from computer displayed content |
CN101494506A (zh) * | 2009-03-10 | 2009-07-29 | 北京科技大学 | 一种流水结构的水声扩频通信带通信号捕获电路 |
-
2009
- 2009-08-28 CN CN200910091700.5A patent/CN101996139B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090132969A1 (en) * | 2005-06-16 | 2009-05-21 | Ken Mayer | Method and system for automated initiation of search queries from computer displayed content |
CN101494506A (zh) * | 2009-03-10 | 2009-07-29 | 北京科技大学 | 一种流水结构的水声扩频通信带通信号捕获电路 |
Non-Patent Citations (1)
Title |
---|
董晨勇: "新型网络入侵检测系统的研究", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104300990A (zh) * | 2013-03-15 | 2015-01-21 | 英特尔公司 | 用于高速高度压缩lz77令牌化的并行装置和用于紧缩压缩的霍夫曼编码 |
CN104300990B (zh) * | 2013-03-15 | 2017-12-01 | 英特尔公司 | 用于高速高度压缩lz77令牌化的并行装置和用于紧缩压缩的霍夫曼编码 |
CN103997346A (zh) * | 2014-05-12 | 2014-08-20 | 东南大学 | 一种基于流水线的数据匹配方法和装置 |
CN103997346B (zh) * | 2014-05-12 | 2017-02-15 | 东南大学 | 一种基于流水线的数据匹配方法和装置 |
CN106797446A (zh) * | 2014-10-21 | 2017-05-31 | 华为技术有限公司 | 基于存储器的历史搜索 |
CN106797446B (zh) * | 2014-10-21 | 2019-08-27 | 华为技术有限公司 | 基于存储器的历史搜索 |
CN105959013A (zh) * | 2015-05-11 | 2016-09-21 | 上海兆芯集成电路有限公司 | 利用预先霍夫曼编码决定对匹配字符串或反向指针执行霍夫曼编码程序的硬件数据压缩器 |
CN105959013B (zh) * | 2015-05-11 | 2019-07-16 | 上海兆芯集成电路有限公司 | 利用预先霍夫曼编码决定对匹配字符串或反向指针执行霍夫曼编码程序的硬件数据压缩器 |
CN106326258A (zh) * | 2015-06-26 | 2017-01-11 | 中兴通讯股份有限公司 | Url匹配方法及装置 |
CN106603677A (zh) * | 2016-12-21 | 2017-04-26 | 济南浪潮高新科技投资发展有限公司 | 一种使用多核多线程并行的物理信息系统数据压缩传输方法 |
CN108460044A (zh) * | 2017-02-20 | 2018-08-28 | 阿里巴巴集团控股有限公司 | 数据的处理方法和装置 |
CN110825437A (zh) * | 2018-08-10 | 2020-02-21 | 北京百度网讯科技有限公司 | 用于处理数据的方法和装置 |
CN110825437B (zh) * | 2018-08-10 | 2022-04-29 | 昆仑芯(北京)科技有限公司 | 用于处理数据的方法和装置 |
CN111835359B (zh) * | 2019-04-22 | 2022-03-22 | 深圳捷誊技术有限公司 | 压缩装置、存储介质及重复信息查询、更新的方法和装置 |
CN111835359A (zh) * | 2019-04-22 | 2020-10-27 | 深圳捷誊技术有限公司 | 压缩装置、存储介质及重复信息查询、更新的方法和装置 |
CN110674364A (zh) * | 2019-08-30 | 2020-01-10 | 北京浩瀚深度信息技术股份有限公司 | 一种利用fpga实现的滑动字符串匹配的方法 |
CN110674364B (zh) * | 2019-08-30 | 2021-11-23 | 北京浩瀚深度信息技术股份有限公司 | 一种利用fpga实现的滑动字符串匹配的方法 |
CN112241407A (zh) * | 2020-09-11 | 2021-01-19 | 重庆锐云科技有限公司 | 高尔夫球场会员数据处理方法、客户管理系统及存储介质 |
CN112241407B (zh) * | 2020-09-11 | 2023-06-06 | 重庆锐云科技有限公司 | 高尔夫球场会员数据处理方法、客户管理系统及存储介质 |
CN112541174A (zh) * | 2020-12-15 | 2021-03-23 | 平安科技(深圳)有限公司 | 业务数据核验方法、装置、设备及存储介质 |
CN113485949A (zh) * | 2021-05-28 | 2021-10-08 | 浙江毫微米科技有限公司 | 数据处理方法、芯片及计算机可读存储介质 |
CN113485949B (zh) * | 2021-05-28 | 2023-06-20 | 浙江毫微米科技有限公司 | 数据处理方法、芯片及计算机可读存储介质 |
CN113377819B (zh) * | 2021-07-07 | 2023-02-03 | 山东方寸微电子科技有限公司 | 一种哈希表滚动查找方法、系统及芯片 |
CN113377819A (zh) * | 2021-07-07 | 2021-09-10 | 山东方寸微电子科技有限公司 | 一种哈希表滚动查找方法、系统及芯片 |
WO2023036009A1 (zh) * | 2021-09-08 | 2023-03-16 | 北京灵汐科技有限公司 | 计算系统、存储设备 |
CN116774970A (zh) * | 2023-08-22 | 2023-09-19 | 北京启源问天量子科技有限公司 | 基于量子随机数的id生成方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101996139B (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101996139B (zh) | 数据匹配方法和数据匹配装置 | |
US11294902B2 (en) | Storing data and parity in computing devices | |
CN102609360B (zh) | 一种数据处理方法、装置及系统 | |
CN103116661B (zh) | 一种数据库的数据处理方法 | |
US9836277B2 (en) | In-memory popcount support for real time analytics | |
US20160078045A1 (en) | Selective compression of objects in a storage compute device | |
US20150032938A1 (en) | System and method for performing efficient processing of data stored in a storage node | |
US11580162B2 (en) | Key value append | |
CN103106158A (zh) | 包括键-值存储的存储器系统 | |
CN103516369A (zh) | 一种自适应数据压缩和解压缩的方法和系统及存储装置 | |
WO2014015828A1 (zh) | 数据存储空间的处理方法、处理系统及数据存储服务器 | |
US9880750B1 (en) | Storage architecture for storage class memories | |
CN103152395A (zh) | 一种分布式文件系统的存储方法及装置 | |
CN104765574A (zh) | 数据云端存储方法 | |
US20080270690A1 (en) | System and method for efficient updates of sequential block storage | |
CN103997346A (zh) | 一种基于流水线的数据匹配方法和装置 | |
CN101710270A (zh) | 一种基于闪存的高速大容量存储器及芯片数据管理方法 | |
WO2017020668A1 (zh) | 一种物理磁盘的共享方法及装置 | |
CN101963977A (zh) | 无城市搜索方法及移动终端 | |
CN107729536A (zh) | 一种数据存储方法和装置 | |
CN110427347A (zh) | 重复数据删除的方法、装置、存储节点及存储介质 | |
CN107205024A (zh) | 一种云存储系统中数据去重方法及系统 | |
CN107423321B (zh) | 适用大批量小文件云存储的方法及其装置 | |
CN104778100A (zh) | 一种安全备份数据的方法 | |
CN102693096A (zh) | 基于位的串行传输云存储方法及装置 |
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 |