CN104378295A - 表项管理装置及表项管理方法 - Google Patents
表项管理装置及表项管理方法 Download PDFInfo
- Publication number
- CN104378295A CN104378295A CN201310350415.7A CN201310350415A CN104378295A CN 104378295 A CN104378295 A CN 104378295A CN 201310350415 A CN201310350415 A CN 201310350415A CN 104378295 A CN104378295 A CN 104378295A
- Authority
- CN
- China
- Prior art keywords
- search
- time
- list item
- unit
- searches
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种表项管理装置及表项管理方法,所述装置包括:结构定义表(SDT)单元,用于维护第一次查找对应的表项长度和表项基地址、以及针对第二次查找对应的表项长度和表项基地址;查找调度单元,用于向二级查找管理单元发起第一次查找,并根据所述二级查找管理单元返回的偏移量向缓存管理单元发起第二次查找;返回调度单元,用于将缓存管理单元返回的第二次查找的表项内容发送至相应的查找接口。采用本发明的技术方案,实现了表项存储的灵活配置;节省了指令的开销,提高了查找效率,并可实现对查找的保序。
Description
技术领域
本发明涉及通信技术,尤其涉及一种表项管理装置及表项管理方法。
背景技术
网络处理器(NP,Network Processor)是为网络应用领域设计的专用指令集处理器(ASIP,Application Specific Instruction Processor),ASIP具有自身的结构特征和专门的电路设计以适用于网络分组处理,同时其又是软件可编程芯片,使得网络***能够具备高性能和灵活性。
网络处理器应用于不同的场景中时,查表的类型、表项容量及查表性能需求差异较大,传统的表项管理方法,不能适应多变的应用场景。
发明内容
有鉴于此,本发明的主要目的在于提供一种表项管理装置及表项管理方法,以至少解决相关表项查找技术不能满足多场景中对表项类型、表项容量和表项查找性能的需求的问题。
为达到上述目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种表项管理装置,所述装置包括:结构定义表(SDT,Structure Definition Table)单元、查找调度单元、二级查找管理单元、缓存管理单元和返回调度单元;其中,
所述SDT单元,用于维护针对表项的第一次查找对应的表项长度和表项基地址、以及针对表项的第二次查找对应的表项长度和表项基地址;
所述查找调度单元,用于根据所述SDT单元中与查找接口发起的第一次查找对应的表项长度和表项基地址、以及所述查找接口发起第一次查找时发送的对应所述第一次查找的键值,向所述二级查找管理单元发起第一次查找,并根据所述二级查找管理单元返回的偏移量、以及所述SDT单元中与第二次查找对应的表项长度和表项基地址,向所述缓存管理单元发起第二次查找;
所述返回调度单元,用于将所述缓存管理单元返回的第二次查找的表项内容发送至相应的查找接口。
优选地,所述SDT单元,还用于维护第一次查找所使用的查找算法的信息;
所述查找调度单元,还用于根据所述SDT单元中与所述查找接口发起的第一次查找对应的查找算法的信息,确定响应对应的查找算法的二级查找管理单元,并通过所确定的二级查找管理单元,向所述缓存管理单元发起第一次查找。
优选地,所述装置还包括与所述二级查找管理单元对应的二级查找单元;
所述二级查找管理单元,还用于根据所述SDT单元中与所述查找接口发起的第一次查找对应的表项长度和表项基地址、以及对应所述第一次查找的键值,向对应的二次查找单元发起第一次查找;
所述二次查找单元,还用于根据所述SDT单元中与所述查找接口发起的第一次查找对应的表项长度和表项基地址、以及对应所述第一次查找的键值,向所述缓存管理单元请求相应的偏移量信息。
优选地,所述SDT单元,还用于维护对应第一次查找的目标存储器类型的信息;
所述二次查找单元,还用于根据所述SDT单元中与所述查找接口发起的第一查找对应的目标存储器的类型信息,向对应的缓存管理单元请求偏移量信息;
所述缓存管理单元,还用于根据所述二次查找单元的偏移量信息的请求,在对应的存储器查找偏移量信息。
优选地,所述SDT单元,还用于维护对应第二次查找的目标存储器类型的信息;
所述查找调度单元,还用于根据所述SDT单元中与所述第二次查找对应的目标存储器的类型信息,向对应的缓存管理单元请求表项内容。
优选地,所述SDT单元,还用于维护第二次查找的使能标识;
所述查找调度单元,还用于在接收到所述二级查找管理单元返回的偏移量时,确定与所述查找接口发起的第一次查找对应的第二次查找的使能标识有效时,向所述缓存管理单元发起第二次查找,否则,将所接收到的偏移量信息发送至发起第一次查找以请求所述偏移量信息的查找接口。
优选地,所述SDT单元,还用于维护直接查找对应的表项长度和表项基地址;
所述查找调度单元,还用于根据所述SDT单元中与所述查找接口发起的直接查找对应的表项长度和表项基地址、以及所述查找接口发起直接查找时所发送的键值,向所述缓存管理单元发起直接查找;
所述返回调度单元,用于将所述缓存管理单元返回的直接查找的表项内容发送至发起所述直接查找以请求相应表项内容的查找接口。
优选地,所述SDT单元,还用于维护对应直接查找的目标存储器类型的信息和直接查找所使用的算法信息;
所述查找调度单元,还用于根据所述SDT单元中与所述直接查找对应的目标存储器的类型信息和直接查找所使用的算法信息,向对应的缓存管理单元请求表项内容。
优选地,所述返回调度单元,还用于根据查询同一表项内容的第一次查找或直接查找对应的指针,确定所述第一次查找或所述直接查找发起的先后顺序,按照所确定的先后顺序将所述缓存管理单元返回的表项内容发送至发起所述第一次查找或所述直接查找的查找接口。
优选地,所述装置还包括:
表项管理单元,用于通过所述缓存管理单元将所述直接查找、所述第二次查找对应的表项内容、所述第一次查找对应的偏移量信息下发至相应类型的存储器。
本发明实施例还提供了一种表项管理方法,所述方法包括:
维护针对表项的第一次查找对应的表项长度和表项基地址、以及针对表项的第二次查找对应的表项长度和表项基地址;
根据与查找接口发起的第一次查找对应的表项长度和表项基地址、以及所述查找接口发起第一次查找时发送的对应所述第一次查找的键值,发起第一次查找,并根据所发起的第一次查找返回的偏移量、以及与第二次查找对应的表项长度和表项基地址,发起第二次查找;
将第二次查找返回的表项内容发送至相应的查找接口。
优选地,所述方法还包括:
维护第一次查找所使用的查找算法信息;
相应地,还根据与所述查找接口发起的第一次查找对应的查找算法信息发起第一次查找。
优选地,所述方法还包括:
根据与所述查找接口发起的第一次查找对应的表项长度和表项基地址、以及对应所述第一次查找的键值发起第一次查找;
相应地,根据与所述查找接口发起的第一次查找对应的表项长度和表项基地址、以及对应所述第一次查找的键值请求相应的偏移量信息。
优选地,所述方法还包括:
维护对应第一次查找的目标存储器类型的信息;
相应地,根据与所述查找接口发起的第一查找对应的目标存储器的类型信息请求所述查找接口发起的第一次查找对应的偏移量信息。
优选地,所述方法还包括:
维护对应第二次查找的目标存储器类型的信息;
相应地,根据与所述第二次查找对应的目标存储器的类型信息请求相应的表项内容。
优选地,所述方法还包括:
维护第二次查找的使能标识;
相应地,在接收到第一次查找返回的偏移量时,确定所述查找接口发送的一次查找对应的第二次查找的使能标识有效时发起第二次查找,否则,将所接收到的偏移量信息发送至发起所述第一次查找以请求所述偏移量信息的查找接口。
优选地,所述方法还包括:
维护直接查找对应的表项长度和表项基地址;
相应地,根据与查找接口发起的直接查找对应的表项长度和表项基地址、以及所述查找接口发起直接查找时所发送的键值发起直接查找;
将直接查找返回的表项内容发送至发起所述直接查找以请求相应表项内容的查找接口。
优选地,所述方法还包括:
维护对应直接查找的目标存储器类型的信息和直接查找所使用的算法信息;
相应地,根据与所述直接查找对应的目标存储器的类型信息和直接查找所使用的算法信息请求表项内容。
优选地,所述方法还包括:
根据查询同一表项内容的第一次查找或直接查找对应的指针,确定所述第一次查找或所述直接查找发起的先后顺序,按照所确定的先后顺序将表项内容发送至发起所述第一次查找或所述直接查找的查找接口。
优选地,所述方法还包括:
将所述直接查找、所述第二次查找对应的表项内容、所述第一次查找对应的偏移量信息下发至相应类型的存储器。
通过本发明实施例提供的技术方案,预设与直接查找、第一次查找和第二次查找的对应的信息,例如查找表项类型、查找表项长度和查找表项基地址,实现了表项存储的灵活配置;
支持二级查找(第一次查找和第二次查找),无需向用户侧的查找接口返回第一次查找的表项内容(偏移量信息),仅根据第一次查找的接口和预设的第二次查找使能标识即可发起第二次查找,节省了指令的开销,提高了查找效率;
根据查找对应的指针,可对查找对应的表项内容按照查找发起的顺序返回,即可实现保序;
查找表项内容时采用间接寻址的方法,克服了传统技术中直接寻址随机存储器(RAM,Random Access Memory)带来的占用总线地址空间大的缺陷,能够广泛应用于其他地址空间较少的表项管理场景中。
附图说明
图1为本发明实施例的表项管理装置的组成结构示意图;
图2a为本发明实施例的SDT单元101存储第一次查找和第二次查找对应表项信息的优选的结构示意图;
图2b为本发明实施例的SDT单元101存储直接查找对应表项信息的优选的结构示意图,
图3为本发明实施例的查找调度单元102的优选的结构示意图;
图4为本发明实施例的缓存管理单元104的优选的结构示意图;
图5为本发明实施例的控制寄存器的优选的结构示意图;
图6为本发明实施例的表项管理单元107的优选的结构示意图;
图7为本发明实施例的表项管理方法实现流程示意图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步详细说明。
图1为本发明实施例的表项管理装置的组成结构示意图,如图1所示,包括:SDT单元101、查找调度单元102、二级查找管理单元103、缓存管理单元104和返回调度单元105;其中,
所述SDT单元101,用于维护针对表项的第一次查找对应的表项长度和表项基地址、以及针对表项的第二次查找对应的表项长度和表项基地址;
所述查找调度单元102,用于根据所述SDT单元101中与查找接口发起的第一次查找对应的表项长度和表项基地址、以及所述查找接口发起第一次查找时发送的对应所述第一次查找的键值,向所述二级查找管理单元103发起第一次查找,并根据所述二级查找管理单元103返回的偏移量、以及所述SDT单元101中与第二次查找对应的表项长度和表项基地址,向所述缓存管理单元104发起第二次查找;
所述返回调度单元105,用于将所述缓存管理单元104返回的第二次查找的表项内容发送至相应的查找接口。
实际应用中,所述SDT单元101为不同的表项维护不同的索引,当查找接口发起第一次查找时,根据查找接口发送的SDT表索引,即可确定第一次查找对应的表项长度和表项基地址、以及针对表项的第二次查找对应的表项长度和表项基地址。
优选地,所述SDT单元101,还用于维护第一次查找所使用的查找算法信息;
所述查找调度单元102,还用于根据所述SDT单元101中与所述查找接口发起的第一次查找对应的查找算法的信息,确定响应对应的查找算法的二级查找管理单元103,并通过所确定的二级查找管理单元103,向所述缓存管理单元104发起第一次查找。
优选地,该装置还包括与所述二级查找管理单元103对应的二级查找单元106;
所述二级查找管理单元103,还用于根据所述SDT单元101中与所述查找接口发起的第一次查找对应的表项长度和表项基地址、以及对应所述第一次查找的键值,向对应的二次查找单元106发起第一次查找;
所述二次查找单元106,还用于根据所述SDT单元101中与所述查找接口发起的第一次查找对应的表项长度和表项基地址、以及对应所述第一次查找的键值,向所述缓存管理单元104请求相应的偏移量信息。
所述偏移量信息用于在后续的第二次查找
优选地,所述SDT单元101,还用于维护对应第一次查找的目标存储器类型的信息;
所述二次查找单元106,还用于根据所述SDT单元中与所述查找接口发起的第一查找对应的目标存储器的类型信息,向相应类型的缓存管理单元104请求偏移量信息;
所述缓存管理单元104,还用于根据所述二次查找单元的偏移量信息的请求,在对应的存储器查找偏移量信息。
实际应用中,所述存储器的类型可以包括片内存储器和片外存储器,相应地,当二次查找单元106根据SDT单元101维护的第一次查找的目标存储器类型的信息确定第一次查找对应的目标存储器的类型为片内存储器时,则向负责响应片内存储器的第一次查找的缓存管理单元104请求偏移量信息。
优选地,所述SDT单元101,还用于维护对应第二次查找的目标存储器类型的信息;
所述查找调度单元,还用于根据所述SDT单元101中与所述第二次查找对应的目标存储器的类型信息,向对应的缓存管理单元104请求表项内容。
优选地,所述SDT单元101,还用于维护第二次查找的使能标识;
所述查找调度单元102,还用于在接收到所述二级查找管理单元103返回的偏移量时,确定与所述查找接口发起的第一次查找对应的第二次查找对应的使能标识有效时,向所述缓存管理单元104发起第二次查找,否则,将所接收到的偏移量信息发送至发起第一次查找以请求所述偏移量信息的查找接口。
所述SDT单元101,还用于维护直接查找对应的表项长度和表项基地址;
所述查找调度单元102,还用于根据所述SDT单元101中与查找接口发起的直接查找对应的表项长度和表项基地址、以及所述查找接口发起直接查找时所发送的键值,向所述缓存管理单元104发起直接查找;
所述返回调度单元105,用于将所述缓存管理单元104返回的直接查找的表项内容发送至发起所述第一次查找以请求所述偏移量信息的查找接口。
优选地,所述SDT单元101,还用于维护对应直接查找的目标存储器类型的信息和直接查找所使用的算法信息;
所述查找调度单元102,还用于根据所述SDT单元101中与所述直接查找对应的目标存储器的类型信息和直接查找所使用的算法信息,向对应的缓存管理单元104请求表项内容。
优选地,所述返回调度单元105,还用于根据查询同一表项内容的第一次查找或直接查找对应的指针,确定所述第一次查找或所述直接查找发起的先后顺序,按照所确定的先后顺序将所述缓存管理单元返回的表项内容发送至发起所述第一次查找或所述直接查找的查找接口。
实际应用中,所述返回调度单元105,根据所述与所述第一次查找和所述直接查找对应的查找接口标识,将所述缓存管理单元104返回的表项内容发送至对应的查找接口。
优选地,该装置还包括:
表项管理单元107,用于通过所述缓存管理单元104将所述直接查找对应的表项、所述第一次查找和所述第二次查找对应的表项下发至相应类型的存储器。
图2a为本发明实施例的SDT单元101存储第一次查找和第二次查找对应表项信息的优选的结构示意图,如图2a所示,包括:
1)第一次查找表项类型;
包括第一次查找对应的查找算法信息以及第一次查找的目标存储器的类型信息;其中,
所述查找算法包括:哈希查找算法、路由查找算法、基于三态内容寻址存储器(TCAM,Ternary Content Addressable Memory)的高速路由查找算法;上述查找算法均为二级查找算法,即对于待查找的表项的内容,需要通过第一次查找确定该表项的偏移量信息,根据第一次查找确定的偏移量信息进行第二次查找,确定待查找表项的内容。
所述目标存储器的类型包括片内存储器和片外存储器。
2)第一次查找表项基地址;
所述第一次查找表项基地址为对应同一表项类型的表项的存储的起始地址,本发明实施例中,对于相同查找算法的第一次查找的表项内容在对应的片内存储器或片外存储器中利用连续的空间存储,该连续空间的起始地址为第一次查找表项类型的基地址。
3)第一次查找表项长度;
即对于相同查找算法的第一次查找的每个表项的长度。
4)第二次查找表项使能标识;
预设该使能标识为有效状态时,对应某一表项的第一次查找结束后,根据第一次查找的偏移量信息、以及与第一次查找对应的第二次查找的表项类型、表项基地址和表项长度,进行第二次查找。
5)第二次查找表项类型;
包括第二次查找的目标存储器的类型信息。
6)第二次查找表项基地址;
所述表项基地址为对应同一表项类型的表项的存储的起始地址,本发明实施例中,对于相同查找算法的第二次查找的表项内容在对应的片内存储器或片外存储器中利用连续的空间存储,该连续空间的起始地址为第二次查找表项类型的基地址。
7)第二次查找表项长度。
即对应相同查找算法的第二次查找的每个表项的长度。
例如,查表接口发起第一次查找时,假设第一次查找使用哈希查找算法,则在存储根据查表接口发送的第一次查找的键值确定待查找的偏移量信息的存储空间为:(第一次查找表项基地址+键值)~(第一次查找表项基地址+键值+第一次查找表项长度);相应地,第二次查找的表项内容的存储空间为:(第二次查找表项基地址+偏移量)~(第一次查找表项基地址+偏移量+第二次查找表项长度)。
图2b为本发明实施例的SDT单元101存储直接查找对应表项信息的优选的结构示意图,如图2b所示,包括:
1)直接查找表项类型;
包括直接查找对应的查找算法信息以及直接查找的目标存储器的类型信息;其中,
所述直接查找对应的算法是指通过一次查找即可查询到相应表项内容的查找算法,即对于待查找的表项,直接根据待查找表项的键值以及待查找表项的基地址和表项长度,确定待查找表项的内容。
所述目标存储器的类型包括片内存储器和片外存储器,实际应用中,在表项长度比较小但对查找性能要求比较高的场景中,可以采片内的查找方式,即在该场景中将下发的表项存储至片内存储器,并在对应的片内存储器进行查找;在表项长度比较大或者对于查表性能要求高的场景中,可以采用片内存储器、片外存储器混合存储下发表项的方式,并在对应的片内存储器或片外存储器进行查找。
2)直接查找表项基地址;
所述直接查找表项基地址为对应同一表项类型的表项的存储的起始地址,本发明实施例中,对于相同查找算法的第一次查找的表项内容在对应的片内存储器或片外存储器中利用连续的空间存储,该连续空间的起始地址为第一次查找表项类型的基地址。
3)直接查找表项长度;
即对应相同查找算法的直接查找的每个表项的长度。
例如,查表接口发起直接查找时,根据查表接口发送的键值确定待查找表项的存储空间为:(表项基地址+键值)~(表项基地址+键值+直接查找表项长度)。
实际应用中,当本发明实施例中的表项管理装置应用于维护表项数量较大且查找频率高的场景中时,为了避免查找拥塞,保证对查找的响应速率,查找调度单元102对第一次查找、第二次查找以及直接查找的目标存储器的类型以及所使用的查找算法,将第一次查找、第二次查找和直接查找对应的键值以及在SDT表中对应的信息缓存到对应的队列中,根据预设的负载均衡策略,对缓存的第一次查找、第二次查找以及直接查找的上述信息进行调度,对应发起第一次查找、第二次查找或直接查找,并在发起第一次查找、第二次查找或直接查找时发送对应的查找接口标识。
下面以直接查找、第一次查找和第二次查找为例进行说明,图3为本发明实施例的查找调度单元102的优选的结构示意图,如图3所示,包括:第二查找解析子单元301、第一查找解析子单元302、直接查找缓存子单元303、第一次查找缓存子单元304、第二次查找缓存子单元305、第一次查找管理子单元306和第二查找管理子单元307;其中,
所述第一查找解析子单元302,用于将直接查找的键值、以及SDT单元101中与所述直接查找对应的直接查找表项基地址和直接查找表项长度,根据直接查找的目标存储器的类型,缓存到相应的直接查找缓存子单元303;将第一次查找的键值、以及SDT单元101中与所述第一次查找对应的第一次查找表项基地址和第一次查找表项长度,根据第一次查找的目标存储器的类型,缓存到相应的第一次查找缓存子单元304;
所述第二查找解析子单元301,用于将第二次查找的键值、以及在SDT单元101中与所述第二次查找对应的第二次查找表项基地址和第二次查找表项长度,按照第二次查找的目标存储器的类型,缓存到相应的第二次查找缓存子单元305;
所述第二查找调度子单元307,用于调度与所述第一次查找调度子单元307连接的第一次查找缓存子单元304缓存的键值、第一次查找表项基地址和第一次查找表项长度,向与所述第二查找调度子单元307连接的二级查找管理单元103发起第一次查找,并向所述二次查找单元106发送第一次查找对应的查找接口标识和指针;
所述第一查找管理子单元306,用于调度与所述第一查找调度子单元306连接的第二次查找缓存子单元305缓存的键值、第二次查找表项基地址和第二次查找表项长度,向与所述第一查找管理子单元306连接的缓存管理单元104发起第一次查找,并向缓存管理单元104发送第一次查找对应的查找接口标识和指针;用于调度与所述第一查找调度子单元306连接的直接查找缓存子单元303缓存的键值、直接查找表项基地址和直接查找表项长度,向与所述第一查找管理子单元306连接的缓存管理单元104发起直接查找,并向缓存管理单元104发送直接查找对应的查找接口标识和指针。
例如,查找接口发起直接查找时,由第一查找解析子单元302将SDT单元101中与所述查找接口发起的直接查找对应的直接查找表项基地址和直接查找表项长度,以及直接查找的目标存储器的类型,缓存到对应的直接查找缓存子单元303中;查找接口发起第一次查找时,由第一查找解析子单元302将SDT单元101中与所述查找接口发起的第一次查找对应的第一次查找表项基地址和第一次查找表项长度,以及第一次查找的目标存储器的类型,缓存到对应的第一次查找缓存子单元304中;
其中,第一查找解析子单元302分别与第一次查找使用的查找算法(包括哈希查找算法和路由查找算法)对应;第二查找管理子单元307根据预设的负载均衡策略,从对应的第一次查找缓存子单元304调度出第一次查找对应的第一次查找表项基地址和第一次查找表项长度,向对应的二级查找管理单元103发起第一次查找。
实际应用中,当缓存管理单元104需要响应查找调度单元102发起的直接查找和二次查找调度单元106发起的第一次查找(即进行读操作)、以及接收表项管理单元107下发的表项(即进行写入操作),为了避免读写的冲突,缓存管理单元还将存储器的物理存储的存储地址划分为若干地址段,对每个地址段的读写操作进行缓存,根据预设的负载均衡策略执行对顺序执行对存储器的读写操作,并对读写操作的结果进行校验。
图4为本发明实施例的缓存管理单元104的优选的结构示意图,如图4所示,包括:
地址解析子单元401,用于解析存储待下发表项的存储器的访问地址,确定与所述访问地址对应的存储器的物理地址;
所述缓存管理调度子单元402,用于解析所述物理地址,将待下发表项发送至相应的缓存管理控制子单元403,不同的缓存管理控制子单元403存储器的;
所述缓存管理控制子单元403,用于根据待下发表项对应的物理地址,缓存所述待下发表项至读写队列中;缓存第一次查找的物理地址至所述读写队列中;缓存直接查找的物理地址至所述读写队列中;根据预设的负载均衡策略,依次执行所述读写队列中的操作,包括:将所述读写队列中的待下发的表项内容写入所述缓存管理控制子单元403对应的存储器404,根据所述读写队列中的物理地址在所述存储器404中获取相应的表项内容,并将所获取的表项内容发送至所述返回调度单元105。
如图4所示,缓存管理控制子单元403的数量可以为多个,每个缓存管理控制子单元403负责存储器404的一段连续的物理地址空间,上述读写队列可以采用寄存器的形式实现,所述存储器404可以采用随机存储器(RAM,RandomAccess Memory)组的形式实现,下面对上述实现举例进行说明:地址解析子单元401维护对应读写操作的数据寄存器和控制寄存器,其中,数据寄存器用于存储待写入存储器404的数据(即下发表项的内容)或待读取数据(即待查找的表项的内容),控制寄存器用于对数据寄存器的读写操作进行控制。
图5为本发明实施例的控制寄存器的优选的结构示意图,如图5所示,包括读命令write_cmd、写命令read_cmd、RAM块选择ram_sel和RAM地址ram_addr四个字段,当解析控制寄存器得到RAM访问的具体地址时,如当前为写命令有效则将数据写入对应的RAM中,如当前为读命令有效,将对应地址中的数据读出。
实际应用中,表项管理单元107对表项的内容进行下发(包括表项的首次存储和更新)时,根据SDT单元101中的信息将表项内容写入对应的存储器404,存储器404的类型包括片内和片外。
例如,对于直接查找对应的表项内容,直接根据SDT单元101中对应直接查找的信息将需要下发的表项内容通过快速***组件接口(PCI-E,PeripheralComponent Interface-Express)写入存储器404中,同时,为提高表项内容的下发速度,可采用直接内存存取(DMA,Direct Memory Access)模式进行下发;
对于第一次查找和第二次查找对应的表项内容,根据SDT单元101与第一次查找和第二次查找对应的信息,将需要下发的表项内容写入表项管理单元107自身的缓存中,通过调用硬件接口函数将需要下发的表项内容转发至对应的片内存储器304或片外存储器404。
图6为本发明实施例的表项管理单元107的优选的结构示意图,如图6所示,包括:
中央处理子单元601,用于根据SDT101中对应直接查找的信息,将直接查找对应的表项内容,下发至表项管理子单元602,并触发表项管理子单元602;根据SDT单元101与第一次查找和第二次查找对应的信息,将第一次查找和第二次查找对应的表项内容,下发至表项管理子单元602,并触发表项管理子单元602;
表项管理子单元602,用于将中央处理子单元601下发的直接查找对应的表项内容,通过快速***组件接口PCI-E写入存储器404中;将中央处理子单元601下发的第一次查找和第二次查找对应的表项内容通过调用内存读写函数写入表项管理单元缓存子单元603中,并通过调用硬件接口函数将缓存子单元603的表项内容转发至对应的片内存储器404或片外存储器404。
图7为本发明实施例的表项管理方法实现流程示意图,如图7所示,包括:
步骤701:维护针对表项的第一次查找对应的表项长度和表项基地址、以及针对表项的第二次查找对应的表项长度和表项基地址。
所述表项基地址为对应同一表项类型的表项的存储的起始地址,本发明实施例中,对于相同查找算法的第一次查找的表项内容在对应的片内存储器或片外存储器中利用连续的空间存储,该连续空间的起始地址为第一次查找表项类型的基地址。
所述表项长度为对于使用相同查找算法的第一次查找的每个表项的长度。
步骤702:根据与查找接口发起的第一次查找对应的表项长度和表项基地址、以及所述查找接口发起第一次查找时发送的对应所述第一次查找的键值,发起第一次查找。
步骤703:根据所发起的第一次查找返回的偏移量、以及与第二次查找对应的表项长度和表项基地址,发起第二次查找。
步骤704:将第二次查找返回的表项内容发送至相应的查找接口。
优选地,所述方法还包括:
维护第一次查找所使用的查找算法信息;
相应地,还根据与所述查找接口发起的第一次查找对应的查找算法信息发起第一次查找。
所述查找算法包括:哈希查找算法、路由查找算法、基于TCAM的高速路由查找算法;上述查找算法均为二级查找算法,即对于待查找的表项的内容,需要通过第一次查找确定该表项的偏移量信息,根据第一次查找确定的偏移量信息进行第二次查找,确定待查找表项的内容。
优选地,所述方法还包括:
根据与所述查找接口发起的第一次查找对应的表项长度和表项基地址、以及对应所述第一次查找的键值发起第一次查找;
相应地,根据与所述查找接口发起的第一次查找对应的表项长度和表项基地址、以及对应所述第一次查找的键值请求相应的偏移量信息。
优选地,所述方法还包括:
维护对应第一次查找的目标存储器类型的信息;
相应地,根据与所述查找接口发起的第一查找对应的目标存储器的类型信息请求所述查找接口发起的第一次查找对应的偏移量信息。
所述目标存储器的类型包括片内存储器和片外存储器。
优选地,所述方法还包括:
维护对应第二次查找的目标存储器类型的信息;
相应地,根据与所述第二次查找对应的目标存储器的类型信息请求相应的表项内容。
优选地,所述方法还包括:
维护第二次查找的使能标识;
相应地,在接收到第一次查找返回的偏移量时,确定所述查找接口发送的一次查找对应的第二次查找的使能标识有效时发起第二次查找,否则,将所接收到的偏移量信息发送至发起所述第一次查找以请求所述偏移量信息的查找接口。
预设该使能标识为有效状态时,对应某一表项的第一次查找结束后,根据第一次查找的偏移量信息、以及与第一次查找对应的第二次查找的表项类型、表项基地址和表项长度,进行第二次查找。
优选地,所述方法还包括:
维护直接查找对应的表项长度和表项基地址;
相应地,根据与查找接口发起的直接查找对应的表项长度和表项基地址、以及所述查找接口发起直接查找时所发送的键值发起直接查找;
将直接查找返回的表项内容发送至发起所述直接查找以请求相应表项内容的查找接口。
所述直接查找表项基地址为对应同一表项类型的表项的存储的起始地址,本发明实施例中,对于相同查找算法的第一次查找的表项内容在对应的片内存储器或片外存储器中利用连续的空间存储,该连续空间的起始地址为第一次查找表项类型的基地址。
所述直接查找表项长度为对于使用相同查找算法的第一次查找的每个表项的长度。
实际应用中,当本发明实施例中的表项管理装置应用于维护表项数量较大且查找频率高的场景中时,为了避免查找拥塞,保证对查找的响应速率,查找调度单元102对第一次查找、第二次查找以及直接查找的目标存储器的类型以及所使用的查找算法,将第一次查找、第二次查找和直接查找对应的键值以及在SDT表中对应的信息缓存到对应的队列中,根据预设的负载均衡策略,对缓存的第一次查找、第二次查找以及直接查找的上述信息进行调度,对应发起第一次查找、第二次查找或直接查找,并在发起第一次查找、第二次查找或直接查找时发送对应的查找接口标识。
优选地,所述方法还包括:
维护对应直接查找的目标存储器类型的信息和直接查找所使用的算法信息;
相应地,根据与所述直接查找对应的目标存储器的类型信息和直接查找所使用的算法信息请求表项内容。
优选地,所述方法还包括:
根据所述第一次查找、所述第二次查找和所述直接查找对应的指针,确定所述第一次查找和所述直接查找发起的顺序,按照所确定的顺序将返回的表项内容发送至相应的查找接口。
优选地,所述方法还包括:
将所述直接查找、所述第二次查找对应的表项内容、所述第一次查找对应的偏移量信息下发至相应类型的存储器。
本发明实施例提供的表项管理装置和表项管理方法,通过预设的与直接查找、第一次查找和第二次查找的对应的信息,例如查找表项类型、查找表项长度和查找表项基地址,实现了表项存储的灵活配置;
支持二级查找(第一次查找和第二次查找),无需向用户侧的查找接口返回第一次查找的表项内容(偏移量信息),仅根据第一次查找的接口和预设的第二次查找使能标识即可发起第二次查找,节省了指令的开销,提高了查找效率;
根据查找对应的指针,可以对查找对应的表项内容按照查找发起的顺序返回,即可实现保序;
查找表项内容时采用间接寻址的方法,克服了传统技术中直接寻址RAM带来的占用总线地址空间大的缺陷,能够广泛应用于其他地址空间较少的表项管理场景中。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (20)
1.一种表项管理装置,其特征在于,所述装置包括:结构定义表SDT单元、查找调度单元、二级查找管理单元、缓存管理单元和返回调度单元;其中,
所述SDT单元,用于维护针对表项的第一次查找对应的表项长度和表项基地址、以及针对表项的第二次查找对应的表项长度和表项基地址;
所述查找调度单元,用于根据所述SDT单元中与查找接口发起的第一次查找对应的表项长度和表项基地址、以及所述查找接口发起第一次查找时发送的对应所述第一次查找的键值,向所述二级查找管理单元发起第一次查找,并根据所述二级查找管理单元返回的偏移量、以及所述SDT单元中与第二次查找对应的表项长度和表项基地址,向所述缓存管理单元发起第二次查找;
所述返回调度单元,用于将所述缓存管理单元返回的第二次查找的表项内容发送至相应的查找接口。
2.根据权利要求1所述的装置,其特征在于,
所述SDT单元,还用于维护第一次查找所使用的查找算法的信息;
所述查找调度单元,还用于根据所述SDT单元中与所述查找接口发起的第一次查找对应的查找算法的信息,确定响应对应的查找算法的二级查找管理单元,并通过所确定的二级查找管理单元,向所述缓存管理单元发起第一次查找。
3.根据权利要求2所述的装置,其特征在于,所述装置还包括与所述二级查找管理单元对应的二级查找单元;
所述二级查找管理单元,还用于根据所述SDT单元中与所述查找接口发起的第一次查找对应的表项长度和表项基地址、以及对应所述第一次查找的键值,向对应的二次查找单元发起第一次查找;
所述二次查找单元,还用于根据所述SDT单元中与所述查找接口发起的第一次查找对应的表项长度和表项基地址、以及对应所述第一次查找的键值,向所述缓存管理单元请求相应的偏移量信息。
4.根据权利要求3所述的装置,其特征在于,
所述SDT单元,还用于维护对应第一次查找的目标存储器类型的信息;
所述二次查找单元,还用于根据所述SDT单元中与所述查找接口发起的第一查找对应的目标存储器的类型信息,向对应的缓存管理单元请求偏移量信息;
所述缓存管理单元,还用于根据所述二次查找单元的偏移量信息的请求,在对应的存储器查找偏移量信息。
5.根据权利要求1所述的装置,其特征在于,
所述SDT单元,还用于维护对应第二次查找的目标存储器类型的信息;
所述查找调度单元,还用于根据所述SDT单元中与所述第二次查找对应的目标存储器的类型信息,向对应的缓存管理单元请求表项内容。
6.根据权利要求1所述的装置,其特征在于,
所述SDT单元,还用于维护第二次查找的使能标识;
所述查找调度单元,还用于在接收到所述二级查找管理单元返回的偏移量时,确定与所述查找接口发起的第一次查找对应的第二次查找的使能标识有效时,向所述缓存管理单元发起第二次查找,否则,将所接收到的偏移量信息发送至发起第一次查找以请求所述偏移量信息的查找接口。
7.根据权利要求1所述的装置,其特征在于,
所述SDT单元,还用于维护直接查找对应的表项长度和表项基地址;
所述查找调度单元,还用于根据所述SDT单元中与所述查找接口发起的直接查找对应的表项长度和表项基地址、以及所述查找接口发起直接查找时所发送的键值,向所述缓存管理单元发起直接查找;
所述返回调度单元,用于将所述缓存管理单元返回的直接查找的表项内容发送至发起所述直接查找以请求相应表项内容的查找接口。
8.根据权利要求7所述的装置,其特征在于,
所述SDT单元,还用于维护对应直接查找的目标存储器类型的信息和直接查找所使用的算法信息;
所述查找调度单元,还用于根据所述SDT单元中与所述直接查找对应的目标存储器的类型信息和直接查找所使用的算法信息,向对应的缓存管理单元请求表项内容。
9.根据权利要求7或8所述的装置,其特征在于,
所述返回调度单元,还用于根据查询同一表项内容的第一次查找或直接查找对应的指针,确定所述第一次查找或所述直接查找发起的先后顺序,按照所确定的先后顺序将所述缓存管理单元返回的表项内容发送至发起所述第一次查找或所述直接查找的查找接口。
10.根据权利要求7或8所述的装置,其特征在于,所述装置还包括:
表项管理单元,用于通过所述缓存管理单元将所述直接查找、所述第二次查找对应的表项内容、所述第一次查找对应的偏移量信息下发至相应类型的存储器。
11.一种表项管理方法,其特征在于,所述方法包括:
维护针对表项的第一次查找对应的表项长度和表项基地址、以及针对表项的第二次查找对应的表项长度和表项基地址;
根据与查找接口发起的第一次查找对应的表项长度和表项基地址、以及所述查找接口发起第一次查找时发送的对应所述第一次查找的键值,发起第一次查找,并根据所发起的第一次查找返回的偏移量、以及与第二次查找对应的表项长度和表项基地址,发起第二次查找;
将第二次查找返回的表项内容发送至相应的查找接口。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
维护第一次查找所使用的查找算法的信息;
相应地,还根据与所述查找接口发起的第一次查找对应的查找算法的信息发起第一次查找。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
根据与所述查找接口发起的第一次查找对应的表项长度和表项基地址、以及对应所述第一次查找的键值发起第一次查找;
相应地,根据与所述查找接口发起的第一次查找对应的表项长度和表项基地址、以及对应所述第一次查找的键值请求相应的偏移量信息。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
维护对应第一次查找的目标存储器类型的信息;
相应地,根据与所述查找接口发起的第一查找对应的目标存储器的类型信息请求所述查找接口发起的第一次查找对应的偏移量信息。
15.根据权利要求11所述的方法,其特征在于,所述方法还包括:
维护对应第二次查找的目标存储器类型的信息;
相应地,根据与所述第二次查找对应的目标存储器的类型信息请求相应的表项内容。
16.根据权利要求11所述的方法,其特征在于,所述方法还包括:
维护第二次查找的使能标识;
相应地,在接收到第一次查找返回的偏移量时,确定所述查找接口发送的一次查找对应的第二次查找的使能标识有效时发起第二次查找,否则,将所接收到的偏移量信息发送至发起所述第一次查找以请求所述偏移量信息的查找接口。
17.根据权利要求11所述的方法,其特征在于,所述方法还包括:
维护直接查找对应的表项长度和表项基地址;
相应地,根据与查找接口发起的直接查找对应的表项长度和表项基地址、以及所述查找接口发起直接查找时所发送的键值发起直接查找;
将直接查找返回的表项内容发送至发起所述直接查找以请求相应表项内容的查找接口。
18.根据权利要求17所述的方法,其特征在于,所述方法还包括:
维护对应直接查找的目标存储器类型的信息和直接查找所使用的算法信息;
相应地,根据与所述直接查找对应的目标存储器的类型信息和直接查找所使用的算法信息请求表项内容。
19.根据权利要求17或18所述的方法,其特征在于,所述方法还包括:
根据查询同一表项内容的第一次查找或直接查找对应的指针,确定所述第一次查找或所述直接查找发起的先后顺序,按照所确定的先后顺序将表项内容发送至发起所述第一次查找或所述直接查找的查找接口。
20.根据权利要求17或18所述的方法,其特征在于,所述方法还包括:
将所述直接查找、所述第二次查找对应的表项内容、所述第一次查找对应的偏移量信息下发至相应类型的存储器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310350415.7A CN104378295B (zh) | 2013-08-12 | 2013-08-12 | 表项管理装置及表项管理方法 |
PCT/CN2014/077802 WO2014169874A1 (zh) | 2013-08-12 | 2014-05-19 | 表项管理装置、表项管理方法及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310350415.7A CN104378295B (zh) | 2013-08-12 | 2013-08-12 | 表项管理装置及表项管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104378295A true CN104378295A (zh) | 2015-02-25 |
CN104378295B CN104378295B (zh) | 2019-03-26 |
Family
ID=51730833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310350415.7A Active CN104378295B (zh) | 2013-08-12 | 2013-08-12 | 表项管理装置及表项管理方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104378295B (zh) |
WO (1) | WO2014169874A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016206490A1 (zh) * | 2015-06-26 | 2016-12-29 | 深圳市中兴微电子技术有限公司 | 一种用于提高表项访问带宽和原子性操作的装置及方法 |
CN108984553A (zh) * | 2017-06-01 | 2018-12-11 | 北京京东尚科信息技术有限公司 | 缓存方法和装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113992579B (zh) * | 2021-09-23 | 2023-03-31 | 新华三信息安全技术有限公司 | 一种路由表项存储方法、查找方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101036143A (zh) * | 2004-08-13 | 2007-09-12 | 谷歌股份有限公司 | 用于记号空间资料库的多级查询处理***与方法 |
US20080117910A1 (en) * | 2006-11-20 | 2008-05-22 | Alcatel Lucent | Switch and Method for Supporting Internet Protocol (IP) Network Tunnels |
CN101262505A (zh) * | 2008-04-22 | 2008-09-10 | 杭州华三通信技术有限公司 | 一种建立arp表项的方法、***和装置 |
CN101267331A (zh) * | 2008-04-23 | 2008-09-17 | 华为技术有限公司 | 一种组播转发表查找方法和装置 |
US20090178104A1 (en) * | 2008-01-08 | 2009-07-09 | Hemal Shah | Method and system for a multi-level security association lookup scheme for internet protocol security |
CN101694664A (zh) * | 2009-11-03 | 2010-04-14 | 杭州华三通信技术有限公司 | 一种查找内容可寻址存储器表项的方法和装置 |
CN102194002A (zh) * | 2011-05-25 | 2011-09-21 | 中兴通讯股份有限公司 | 哈希表的表项添加、删除、查找方法及哈希表存储装置 |
CN102193917A (zh) * | 2010-03-01 | 2011-09-21 | ***通信集团公司 | 一种数据处理和查询方法和装置 |
CN102546098A (zh) * | 2011-12-15 | 2012-07-04 | 福建星网锐捷网络有限公司 | 数据传输装置、方法及*** |
-
2013
- 2013-08-12 CN CN201310350415.7A patent/CN104378295B/zh active Active
-
2014
- 2014-05-19 WO PCT/CN2014/077802 patent/WO2014169874A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101036143A (zh) * | 2004-08-13 | 2007-09-12 | 谷歌股份有限公司 | 用于记号空间资料库的多级查询处理***与方法 |
US20080117910A1 (en) * | 2006-11-20 | 2008-05-22 | Alcatel Lucent | Switch and Method for Supporting Internet Protocol (IP) Network Tunnels |
US20090178104A1 (en) * | 2008-01-08 | 2009-07-09 | Hemal Shah | Method and system for a multi-level security association lookup scheme for internet protocol security |
CN101262505A (zh) * | 2008-04-22 | 2008-09-10 | 杭州华三通信技术有限公司 | 一种建立arp表项的方法、***和装置 |
CN101267331A (zh) * | 2008-04-23 | 2008-09-17 | 华为技术有限公司 | 一种组播转发表查找方法和装置 |
CN101694664A (zh) * | 2009-11-03 | 2010-04-14 | 杭州华三通信技术有限公司 | 一种查找内容可寻址存储器表项的方法和装置 |
CN102193917A (zh) * | 2010-03-01 | 2011-09-21 | ***通信集团公司 | 一种数据处理和查询方法和装置 |
CN102194002A (zh) * | 2011-05-25 | 2011-09-21 | 中兴通讯股份有限公司 | 哈希表的表项添加、删除、查找方法及哈希表存储装置 |
CN102546098A (zh) * | 2011-12-15 | 2012-07-04 | 福建星网锐捷网络有限公司 | 数据传输装置、方法及*** |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016206490A1 (zh) * | 2015-06-26 | 2016-12-29 | 深圳市中兴微电子技术有限公司 | 一种用于提高表项访问带宽和原子性操作的装置及方法 |
US10545867B2 (en) | 2015-06-26 | 2020-01-28 | Sanechips Technology Co., Ltd. | Device and method for enhancing item access bandwidth and atomic operation |
CN108984553A (zh) * | 2017-06-01 | 2018-12-11 | 北京京东尚科信息技术有限公司 | 缓存方法和装置 |
CN108984553B (zh) * | 2017-06-01 | 2022-02-01 | 北京京东尚科信息技术有限公司 | 缓存方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2014169874A1 (zh) | 2014-10-23 |
CN104378295B (zh) | 2019-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10706101B2 (en) | Bucketized hash tables with remap entries | |
KR101729503B1 (ko) | 계층 변환 테이블 제어 | |
US9264357B2 (en) | Apparatus and method for table search with centralized memory pool in a network switch | |
EP2472412B1 (en) | Explicitly regioned memory organization in a network element | |
CN105740164A (zh) | 支持缓存一致性的多核处理器、读写方法、装置及设备 | |
JP2011065574A (ja) | キャッシュメモリ制御装置およびキャッシュメモリ制御方法 | |
US20160147670A1 (en) | Page cache device and method for efficient mapping | |
CN113641596B (zh) | 缓存管理方法、缓存管理装置、处理器 | |
US6697923B2 (en) | Buffer management method and a controller thereof | |
US7260674B2 (en) | Programmable parallel lookup memory | |
CN101620623A (zh) | 内容可寻址存储器表项管理方法和装置 | |
CN104899159B (zh) | 高速缓冲存储器Cache地址的映射处理方法和装置 | |
US10430353B2 (en) | Memory device performing near-data processing using a plurality of data processing engines that independently perform data processing operations, and system including the same | |
CN104378295A (zh) | 表项管理装置及表项管理方法 | |
CN109933543B (zh) | Cache的数据锁定方法、装置和计算机设备 | |
US11256630B2 (en) | Cache address mapping method and related device | |
CN113722247A (zh) | 物理内存保护单元、物理内存权限控制方法和处理器 | |
US7720930B2 (en) | Systems and methods using NIC-based prefetching for host TCP context lookup | |
CN115934587A (zh) | 内存管理单元和内存管理方法 | |
CN110704338A (zh) | 地址转换装置、人工智能芯片及电子设备 | |
CN110347614A (zh) | 存储空间映射算法、缓存状态机、存储装置、存储介质 | |
JP2008511882A (ja) | 一意のタスク識別子を用いてデータを共用する仮想アドレス・キャッシュ及び方法 | |
KR102101419B1 (ko) | 라우팅 테이블 검색 방법 및 이를 구현하는 메모리 시스템 | |
JP5958195B2 (ja) | 仮想記憶管理システム、仮想記憶管理装置、仮想記憶初期化方法および仮想記憶初期化プログラム | |
US6674441B1 (en) | Method and apparatus for improving performance of an accelerated graphics port (AGP) device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221114 Address after: 518055 Zhongxing Industrial Park, Liuxian Avenue, Xili street, Nanshan District, Shenzhen City, Guangdong Province Patentee after: SANECHIPS TECHNOLOGY Co.,Ltd. Address before: 518057 Ministry of justice, Zhongxing building, South Science and technology road, Nanshan District hi tech Industrial Park, Shenzhen, Guangdong Patentee before: ZTE Corp. |
|
TR01 | Transfer of patent right |