CN101290635A - 一种基于特征字的内存管理方法及其装置 - Google Patents
一种基于特征字的内存管理方法及其装置 Download PDFInfo
- Publication number
- CN101290635A CN101290635A CNA200810126316XA CN200810126316A CN101290635A CN 101290635 A CN101290635 A CN 101290635A CN A200810126316X A CNA200810126316X A CN A200810126316XA CN 200810126316 A CN200810126316 A CN 200810126316A CN 101290635 A CN101290635 A CN 101290635A
- Authority
- CN
- China
- Prior art keywords
- tagged word
- ram
- address
- retrieval
- memory management
- 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.)
- Pending
Links
Images
Abstract
本发明公开了一种基于特征字的内存管理方法及其装置,通过采用散列(Hash)算法对待查找的特征字按照地址生成算法及存储空间的分配进行处理,使其按照地址生成算法得到的地址预存储在多片随机存储器(RAM)中,当系统运行时对内存中的报文或数据流中的特征字进行检索,并记录检索次数及地址冲突次数,然后根据本处理周期内的计数结果的次数对地址生成算法及RAM存储空间进行调整。通过重复执行以上处理过程可以降低发生地址冲突的次数,以此提高了特征字检索的查找速度以及内存存储空间的使用效率。将该装置并行连接使用,可以实现成倍提高特征字查找速度以及高速检索报文或数据包中特征字的能力。
Description
技术领域
本发明涉及数据通信设备的存储器设计技术,尤其涉及一种基于特征字的内存管理方法及其装置。
背景技术
随着数据通信技术的发展,特别是高带宽、高速率的数据通信技术的出现,在数据通信的过程中,必须在通信网中进行大容量的报文存储处理。当前的互联网带宽越来越宽,这对数据通信设备的数据处理能力提出了更高的要求,无论是数据通信网的骨干节点还是汇聚层的次要节点,均需要在内存中进行大量的数据包处理,而对数据包处理的关键环节之一是要求中央处理器(CPU)能够快速查找到待处理的数据包,进而对该数据包进行转发、拆分、重组、拦截等一系列操作。
现有的基于特征字处理的内存管理技术中,只是被动的对特征字进行检索,并不涉及对存储空间的合理分配等问题,且这类内存管理的实现还需要复杂的算法支持,由于存储空间巨大,这种内存管理方法的效率并不高,离要求数据通信设备能够进行大规模、高速度、高容量的数据处理的内存管理设计初衷还有很大一段距离。
发明内容
有鉴于此,本发明的主要目的在于提供一种基于特征字的内存管理方法及其装置,能大幅提升CPU在高速、海量内存数据流中查找特征字的能力,从而有效地提高内存存储空间的利用率。
为达到上述目的,本发明的技术方案是这样实现的:
一种基于特征字的内存管理方法,在内存管理装置中设置检索计数器及地址生成器,该方法包括:
A、将需查找的特征字按一定的分配策略分配给多个随机存储器RAM,并按照地址生成器的地址生成算法生成所述特征字的存储地址,然后将所述特征字存储在每个对应的RAM中;
B、当带有所述内存管理装置的系统运行时,以所述RAM中存储的特征字为索引查找待处理的数据包内的特征字,并启动所述检索计数器对检索次数及检索时的地址冲突次数进行统计;
C、根据所述检索计数器的统计结果,对当前的地址生成算法及存储空间的分配策略进行调整。
其中,所述步骤C之后,进一步包括:所述系统完成地址生成算法及存储空间的分配策略调整后,返回步骤A重新运行系统再次对地址生成算法及RAM存储空间进行调整,直至所述检索计数器的地址冲突次数降至最低,或系统对特征字的检索速度达到预先设定的级别。
所述将需查找的特征字按一定的分配策略分配为:按照不同长度范围、不同的特征字的数量进行均衡分配、或按照相同长度的特征字的数量进行平均分配。
所述地址生成器的地址生成算法为散列Hash算法的一种或多种。
其中,步骤A所述将所述特征字存储在每个对应的RAM之前,进一步包括:对所述RAM进行初始化及对所述检索计数器的内容进行清零处理。
步骤B所述待处理的数据包为内存中待检索的报文、数据流。
步骤C所述对分配策略进行调整为:根据检索时统计到的地址冲突次数,调整分配不同长度范围、不同数量的特征字在RAM中的数量以及存储空间。
该方法进一步包括:自第二次对地址生成算法及RAM存储空间进行调整时开始,对所述RAM进行初始化操作时,只对所述特征字的存储区域进行清零操作。
一种基于特征字的内存管理装置,包括RAM、RAM接口,该装置还包括:地址生成器、检索计数器;其中:
RAM,用于存储特征字信息及待处理的数据包;
RAM接口,用于接收输入到RAM的信息,并仲裁和响应检索指令以及初始化的存取指令等;
地址生成器,用于生成特征字在所述RAM的存储地址;
检索计数器,用于统计和显示特征字的检索次数、地址冲突次数。
其中,所述装置为一个以上,各个装置之间并行连接。
本发明所提供的基于特征字的内存管理方法及其装置,具有以下优点:
1)本发明提供了一种基于特征字进行内存分配的解决方案,通过采用散列(Hash)算法对待查找的特征字按照地址生成算法及存储空间的分配进行处理,使特征字按照地址生成算法得到的地址预存储在多片随机存储器(RAM)中,当运行系统时,对内存中的报文或数据流中的特征字进行检索,并记录检索次数及地址冲突次数,然后根据本次处理周期内计数结果的次数,对地址生成算法及RAM存储空间进行调整,然后再次重复执行相应处理过程,经过几次重复处理后,可以使地址冲突的次数大大降低,以此提高特征字检索的查找速度以及内存存储空间的使用效率。
2)本发明装置可以并行连接使用,如此能成倍提高特征字的查找速度,实现高速检索报文或数据包中的特征字,进而对所述报文或数据包进一步处理提供了基础。
附图说明
图1为本发明实施例内存管理装置的结构框图示意图;
图2为本发明实施例内存管理方法的运行流程图;
图3为本发明实施例内存管理装置应用环境的结构示意图。
具体实施方式
下面结合附图及本发明的实施例对本发明的实现作进一步详细的说明。
本发明要解决的技术问题是:通过采用新的内存管理技术,实现在高速、海量内存数据流中查找特征字,同时,提高内存存储空间的利用率。
解决该技术问题的基本思路是:将需要查找的特征字按照特征字符串的长度分别存储到若干个RAM芯片中,再利用地址生成算法生成所述特征字的存储地址,这里所述的地址生成算法是指Hash算法,然后按照所生成的存储地址将所述特征字存储在对应的RAM地址中;CPU在查找所需要操作的特征字时,先对所要查找的特征字进行字符串长度的区分,再用与预置时相同的Hash算法对其进行地址生成,最后再用这个生成地址在相应的RAM中检索出预置的特征字进行比较。
这里,所述Hash是指把任意长度的输入即预映射通过散列算法变换成固定长度的输出,该输出值就是散列值。这种转换过程是一种压缩映射,也就是散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。所述不同的输入可能会散列成相同的输出,即指本发明中所述的地址冲突。
本发明的关键在于要求查找特征字的检索速度很高,采用本发明的处理策略,单纯地按照特征字符串的长度进行查找仍然是达不到高速检索要求的,因此还需要考虑运用并行查找的处理方式,即:将多个字符串查找的系统进行并行连接,这样做的好处是可以成倍地提高查找速度;并且,为了避免对存储器资源的耗费会显著增加,不宜在同一片RAM中存储太多的特征字,由于每一片RAM中的地址资源有限,若要存储较多的特征字,即使是通过地址生成算法尽可能地把特征字分配到不同的地址进行存储,也会发生地址冲突现象。
为了有效避免以上所述的地址冲突现象,需要使特征字尽可能地分布在不同的存储空间中,以此达到避免在检索时发生地址冲突的目的。本发明还在现有系统中增加设置了检索计数器,能够对查找次数、发生地址冲突的次数进行统计。在系统运行一段时间后,就会产生一定的计数样本,此时可以根据计数器上的查找次数、发生地址冲突的次数对一个或多个长度字段的地址生成算法及RAM存储空间进行调整,直至使发生地址冲突的次数降至最低,如此,可使每个不同长度字段的特征字组占有最合适大小的RAM存储空间,并使整个系统拥有最合适的Hash地址生成算法。此时,即实现了一种在RAM存储容量有限的情况下实现内存及性能管理均比较理想、经济的内存管理方案。
图1为本发明实施例内存管理装置的结构框图示意图,如图1所示,该内存管理装置的实质是一种CPU与存储器的接口转换装置,所述装置包括:RAM101、RAM接口102、地址生成器103、检索计数器104,其中,
RAM101,用于存储特征字信息及待处理的报文数据包等。
RAM接口102,用于接收输入到RAM的信息,并仲裁和响应检索指令以及初始化的存取指令等。
地址生成器103,用于生成特征字在所述RAM101中所需的存储地址。
这里,该地址生成器可以使用多种地址生成算法,如,使用Hash算法生成所需要的地址,所述Hash算法常见的有取余算法、消息摘要(MD5,MessageDigest5)算法等。
检索计数器104,用于计算、统计和显示特征字的检索次数、地址冲突次数等信息。
所述RAM101与地址生成器103通过RAM接口102相连,所述检索计数器与地址生成器直接相连。
图2为本发明内存管理方法的运行流程图,如图1所示,该方法包括:
步骤201:以当前需要被检索的特征字的长度范围为依据,将所述特征字按照一定的分配策略合理地分配给用于存储长度特征字的RAM。
这里,所述按照一定的分配策略合理分配,是指按照不同长度范围、不同的特征字的数量进行均衡分配、或按照相同长度的特征字的数量进行平均分配。
例如,当前的不同的特征字的长度范围为3~13字节,其中,特征字长度为6字节的占了60%以上,其余的不同长度范围的特征字合计约占40%,在将所述不同的特征字进行分配时,需要把这些长度为6字节的特征字均衡分配给各个RAM进行分别存储,即平均分配存储。
步骤202:将检索计数器的内容清零,对所述RAM进行初始化,并将所述特征字按照地址生成器的地址生成算法计算出的存储地址,预置在所述RAM的指定存储空间。
这里,所述对RAM进行初始化,是对RAM的所有存储空间进行初始化,将内部数据清零。所述RAM的存储空间包括存放特征字的部分与处理报文、数据流的部分,后者的存储容量远远大于前者。
所述RAM的指定存储空间,是指按照所述地址生成算法计算出的地址段。该地址段的长度是可变的,根据特征字的数量、长度的变化,计算出的地址段亦有所不同。
步骤203:运行系统,对系统读入RAM中的报文或数据流中的特征字进行查找,并启动所述检索计数器对检索次数、地址冲突次数进行计数。
这里,所述系统是指数据通信设备及其软硬件环境,本发明描述的内存管理方法在所述系统中实现。
所述系统读入RAM中报文或数据流,其所占存储空间是所述特征字占用的地址段之外的其他部分。
步骤204:对所述检索计数器的计数结果进行统计,分别得到检索次数、地址冲突次数在一个检索周期内的总次数。
步骤205:根据所述统计结果,进行地址生成算法的调整以及RAM存储空间再次分配的调整,当所述系统完成地址生成算法及存储空间的分配策略调整后,返回步骤201,再按照调整后的地址生成算法及存储空间的分配策略重复执行此过程。
这里,重复执行此过程时与首次运行系统时的处理过程有所不同,即:所述再次对地址生成算法及RAM存储空间进行调整,涉及对RAM进行初始化过程,此时执行初始化,只是对存放特征字的存储空间进行清零处理。
按照如上处理过程进行几次调整后,即可达到使每一个不同长度的特征字组拥有最合适容量的存储空间,以及最合适的Hash地址生成算法。其判断依据有两个:一是所述检索计数器的地址冲突次数此时降至最低;二是此时系统对于特征字的检索速度很高,可以达到预先设置所规定的几个吉比特每秒(Gbit/s)的查找能力。这时的系统高速检索特征字的处理能力、存储器空间的使用效率、以及系统整体性能达到最佳状态。
图3为本发明实施例内存管理装置应用环境的结构示意图,如图3所示,本发明的基于特征字的内存管理方法中,实际上为了达到最佳效果,还可以将图1中的CPU接口转换装置进行并行连接设计,所述CPU接口转换装置在这里称为检索器,并行的多个检索器1、检索器2、…、检索器N,在检索特征字时是并行处理的,这样可以实现成倍提高查找速度的效果;同时,为了避免并行处理方式带来的存储器资源的大量耗费,可以通过采用如下处理方法得到弥补:可以采用图2中本发明的处理方法通过对地址生成算法及RAM存储空间进行调整,使发生地址冲突的次数降低至一个可以接受的程度;或采用减少预置在RAM特定地址段的特征字的数量的方法达到较好的效果。
这里,所述检索器1~检索器N,是基于特征字长度的N个检索装置。N的数量可以根据数据的处理需要进行调整。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (10)
1、一种基于特征字的内存管理方法,其特征在于,在内存管理装置中设置检索计数器及地址生成器,该方法包括:
A、将需查找的特征字按一定的分配策略分配给多个随机存储器RAM,并按照地址生成器的地址生成算法生成所述特征字的存储地址,然后将所述特征字存储在每个对应的RAM中;
B、当带有所述内存管理装置的系统运行时,以所述RAM中存储的特征字为索引查找待处理的数据包内的特征字,并启动所述检索计数器对检索次数及检索时的地址冲突次数进行统计;
C、根据所述检索计数器的统计结果,对当前的地址生成算法及存储空间的分配策略进行调整。
2、根据权利要求1所述的内存管理方法,其特征在于,所述步骤C之后,进一步包括:所述系统完成地址生成算法及存储空间的分配策略调整后,返回步骤A重新运行系统再次对地址生成算法及RAM存储空间进行调整,直至所述检索计数器的地址冲突次数降至最低,或系统对特征字的检索速度达到预先设定的级别。
3、根据权利要求1所述的内存管理方法,其特征在于,所述将需查找的特征字按一定的分配策略分配为:按照不同长度范围、不同的特征字的数量进行均衡分配、或按照相同长度的特征字的数量进行平均分配。
4、根据权利要求1所述的内存管理方法,其特征在于,所述地址生成器的地址生成算法为散列Hash算法的一种或多种。
5、根据权利要求1所述的内存管理方法,其特征在于,步骤A所述将所述特征字存储在每个对应的RAM之前,进一步包括:对所述RAM进行初始化及对所述检索计数器的内容进行清零处理。
6、根据权利要求1所述的内存管理方法,其特征在于,步骤B所述待处理的数据包为内存中待检索的报文、数据流。
7、根据权利要求1所述的内存管理方法,其特征在于,步骤C所述对分配策略进行调整为:根据检索时统计到的地址冲突次数,调整分配不同长度范围、不同数量的特征字在RAM中的数量以及存储空间。
8、根据权利要求1或2所述的内存管理方法,其特征在于,该方法进一步包括:自第二次对地址生成算法及RAM存储空间进行调整时开始,对所述RAM进行初始化操作时,只对所述特征字的存储区域进行清零操作。
9、一种基于特征字的内存管理装置,包括RAM、RAM接口,其特征在于,该装置还包括:地址生成器、检索计数器;其中:
RAM,用于存储特征字信息及待处理的数据包;
RAM接口,用于接收输入到RAM的信息,并仲裁和响应检索指令以及初始化的存取指令等;
地址生成器,用于生成特征字在所述RAM的存储地址;
检索计数器,用于统计和显示特征字的检索次数、地址冲突次数。
10、根据权利要求9所述的内存管理装置,其特征在于,所述装置为一个以上,各个装置之间并行连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA200810126316XA CN101290635A (zh) | 2008-06-24 | 2008-06-24 | 一种基于特征字的内存管理方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA200810126316XA CN101290635A (zh) | 2008-06-24 | 2008-06-24 | 一种基于特征字的内存管理方法及其装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101290635A true CN101290635A (zh) | 2008-10-22 |
Family
ID=40034891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200810126316XA Pending CN101290635A (zh) | 2008-06-24 | 2008-06-24 | 一种基于特征字的内存管理方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101290635A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101499097B (zh) * | 2009-03-16 | 2011-03-23 | 浙江工商大学 | 基于散列表的数据流频繁模式内存压缩存储方法 |
CN103064901A (zh) * | 2012-12-18 | 2013-04-24 | 中兴通讯股份有限公司 | 一种ram、网络处理系统和一种ram查表方法 |
CN105489242A (zh) * | 2014-10-07 | 2016-04-13 | 爱思开海力士有限公司 | 数据储存器件及其操作方法 |
-
2008
- 2008-06-24 CN CNA200810126316XA patent/CN101290635A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101499097B (zh) * | 2009-03-16 | 2011-03-23 | 浙江工商大学 | 基于散列表的数据流频繁模式内存压缩存储方法 |
CN103064901A (zh) * | 2012-12-18 | 2013-04-24 | 中兴通讯股份有限公司 | 一种ram、网络处理系统和一种ram查表方法 |
CN105489242A (zh) * | 2014-10-07 | 2016-04-13 | 爱思开海力士有限公司 | 数据储存器件及其操作方法 |
CN105489242B (zh) * | 2014-10-07 | 2021-02-05 | 爱思开海力士有限公司 | 数据储存器件及其操作方法 |
US11010289B2 (en) | 2014-10-07 | 2021-05-18 | SK Hynix Inc. | Data storage device and operating method thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101296114B (zh) | 基于流的并行模式匹配方法和系统 | |
Nilsson et al. | Fast address lookup for Internet routers | |
Bando et al. | Flashtrie: Hash-based prefix-compressed trie for IP route lookup beyond 100Gbps | |
Bando et al. | FlashTrie: beyond 100-Gb/s IP route lookup using hash-based prefix-compressed trie | |
Lee et al. | An efficient flow cache algorithm with improved fairness in software-defined data center networks | |
CN102970242A (zh) | 一种实现负载均衡的方法 | |
CN101841438B (zh) | 一种访问存储海量并发tcp流的流记录的方法或系统 | |
CN104579974A (zh) | 面向ndn中名字查找的哈希布鲁姆过滤器及数据转发方法 | |
CN102438020A (zh) | 内容分发网络中内容分发的方法、设备和网络系统 | |
CN101594319A (zh) | 表项查找方法和装置 | |
CN105515997B (zh) | 基于bf_tcam实现零范围扩张的高效范围匹配方法 | |
CN104572498B (zh) | 报文的缓存管理方法和装置 | |
Shi et al. | Ndn-nic: Name-based filtering on network interface card | |
CN103530335B (zh) | 电力计量采集系统的入库操作方法及装置 | |
CN102082832B (zh) | 一种分布式文件系统中的数据存储方法和装置 | |
CN104182393A (zh) | 基于hash表的关键字映射处理方法和装置 | |
CN101290635A (zh) | 一种基于特征字的内存管理方法及其装置 | |
CN106897458A (zh) | 一种面向机电设备数据的存储及检索方法 | |
CN104253754A (zh) | 一种acl快速匹配的方法和设备 | |
CN103064901B (zh) | 一种ram、网络处理系统和一种ram查表方法 | |
CN102739550B (zh) | 基于随机副本分配的多存储器流水路由体系结构 | |
MacKenzie et al. | On contention resolution protocols and associated probabilistic phenomena | |
CN104301227A (zh) | 基于tcam的高速低功耗ip路由表查找方法 | |
Liu et al. | Proactive data caching and replacement in the edge computing environment | |
CN107302571A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20081022 |