处理装置、信息查找系统及信息查找方法

文档序号:6601483阅读:144来源:国知局
专利名称:处理装置、信息查找系统及信息查找方法
技术领域
本发明涉及网络通信技术领域,尤其涉及一种处理装置、信息查找系统及信息查 找方 法。
背景技术
查找技术是网络设备处理和转发数据包过程中的一项关键技术。当数据包进入网 络设备时,网络设备的处理单元,例如中央处理器(CentralProcess Unit ;简称为CPU)、 网络处理器(Network Processor ;简称为NP)或专用集成电路(Application Specific Integrated Circuit ;简称为ASIC)芯片通过对数据包进行分析,提取出所需要的内容 (即关键字),然后通过查找技术获取具体关键字对应的下一步处理动作,例如查找路由表 以获取下一跳地址、查找访问控制列表(Access Control List ;简称为ACL)以过滤数据 包并获取后续转发方向,以及查找媒介访问控制(Medium Access Control ;简称为MAC) 地址表以获取报文对应的MAC地址等。目前查找技术主要有软件和硬件两种实现方式,其中硬件方式由于具有较高的查 找速度而被广泛用于核心网络设备上,其中待查找的内容被存储在硬件设备三态内容可寻 址存储器(Ternary Content-AddressableMemory ;简称为TCAM)中,TCAM接收处理单元通 过TCAM控制器转发的查找命令,自动完成查找操作,并将查找结果存储到TCAM控制器中, 以供处理单元读取。而为了加速查找过程,满足网络设备对查找性能的要求,现有信息查找 系统通常在以下几个方向进行改进一是将TCAM上传统的并行接口改造为串行接口,以克 服并行接口具有的传输带宽低、传输距离近、外围电路设计复杂等缺点;二是通过对TCAM 内部表项的组织形式进行优化处理,并将处理后的表项存放到多个TCAM上,每次查找时同 时对多个TCAM进行查找,以提高查找效率。上述技术方案均是对TCAM做出的改进,但是,当处理单元读取查找结果时,需要 从TCAM控制器(在硬件实现上,通常和处理单元集成在一个电路内)中读取,而现有TCAM 控制器的工作效率较低,处理单元从发出读取查找结果的命令到从TCAM控制器中读回查 找结果的时间延迟很长,这将严重影响整个基于TCAM的查找过程的速度,尤其当TCAM采用 高速串行接口之后,上述问题将更加突出,而现有技术并没有很好的解决该问题。

发明内容
本发明的目的是提供一种处理装置、信息查找系统及信息查找方法,用以解决现 有技术中处理单元从TCAM控制器中读取查找结果时间延迟大的问题,以提高基于TCAM的 查找过程的速度。本发明提供一种处理装置,包括处理器、高速缓存器、存储器和TCAM控制器;所述处理器,与所述高速缓存器和所述存储器连接,用于向所述TCAM控制器发送 查找命令,并发出读取命令以从所述高速缓存器或所述存储器中读取与所述查找命令对应 的查找结果;
所述高速缓存器,与所述TCAM控制器和所述存储器连接,用于存储所述TCAM控制 器提供的所述查找结果,并在根据所述读取命令判断出所述高速缓存器中存在所述查找结 果时,供所述处理器读取所述查找结果;所述存储器,与所述TCAM控制器连接,用于存储所述TCAM控制器提供的所述查找 结果,并在所述高速缓存器根据所述读取命令判断出不存在所述查找结果时,供所述处理 器读取所述查找结果;所述TCAM控制器,用于接收所述处理器通过所述高速缓存器发送的所述查找命 令,将所述查 找命令发送给TCAM装置,以供所述TCAM装置根据所述查找命令执行查找操 作,并接收所述TCAM装置返回的所述查找结果,根据预先获取的地址信息将所述查找结果 同时存储到所述高速缓存器和所述存储器中分别与所述地址信息对应的存储空间中。本发明提供另一种信息查找系统,包括处理装置和TCAM装置;所述处理装置包括处理器、高速缓存器、存储器和TCAM控制器;所述处理器,与所述高速缓存器和所述存储器连接,用于向所述TCAM控制器发送 查找命令,并发出读取命令以从所述高速缓存器或所述存储器中读取与所述查找命令对应 的查找结果;所述高速缓存器,与所述TCAM控制器和所述存储器连接,用于存储所述TCAM控制 器提供的所述查找结果,并在根据所述读取命令判断出所述高速缓存器中存在所述查找结 果时,供所述处理器读取所述查找结果;所述存储器,与所述TCAM控制器连接,用于存储所述TCAM控制器提供的所述查找 结果,并在所述高速缓存器根据所述读取命令判断出不存在所述查找结果时,供所述处理 器读取所述查找结果;所述TCAM控制器,用于接收所述处理器通过所述高速缓存器发送的所述查找命 令,将所述查找命令发送给TCAM装置,以供所述TCAM装置根据所述查找命令执行查找操 作,并接收所述TCAM装置返回的所述查找结果,根据预先获取的地址信息将所述查找结果 同时存储到所述高速缓存器和所述存储器中分别与所述地址信息对应的存储空间中;所述TCAM装置,与所述TCAM控制器连接,用于接收所述TCAM控制器发送的所述 查找命令,根据所述查找命令执行查找操作,并将所述查找结果提供给所述TCAM控制器。本发明提供一种信息查找方法,包括TCAM控制器接收处理器发送的查找命令,将所述查找命令提供给TCAM装置,以供 所述TCAM装置根据所述查找命令执行查找操作,并接收所述TCAM装置返回的查找结果;所述TCAM控制器根据预先获取的地址信息将所述查找结果同时存储到高速缓存 器和存储器中分别与所述地址信息对应的存储空间中,以供所述处理器读取所述查找结^ ο本发明提供的处理装置,采用在处理器和TCAM控制器之间增加高速缓存器和存 储器的技术方案,使TCAM控制器将接收到的查找结果同时存储到高速缓存器和存储器中, 从而使处理器直接从高速缓存器中读取查找结果,处理器读高速缓存器的速度要比读取外 部存储器(TCAM控制器中的存储器)的速度快的多,因此,减少了处理器读回查找结果的时 间延迟,加速了整个查找过程,提高了基于TCAM的查找过程的效率;另外,本发明在处理装 置的基础上还提供了信息查找系统和信息查找方法,同样采用处理器直接读取高速缓存器以获取查找结果的技术方案,减少了处理器读取查找结果的时间延迟,提高了查找效率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以 根据这些附图获得其他的附图。图1为本发明实施例一提供的处理装置的结构示意图;图2为本发明实施例一提供的处理装置中TCAM控制器的结构示意图;图3为本发明实施例二提供的信息查找系统的结构示意图;图4为本发明实施例二提供的信息查找系统中TCAM模块的结构示意图;图5为本发明实施例三提供的信息查找方法的流程图; 图6为本发明实施例四提供的信息查找方法的流程图;图7为本发明实施例五提供的信息查找方法的流程图;图8a为本发明实施例提供的命令帧的具体格式示意图;图8b为本发明实施例提供的数据帧的具体格式示意图;图8c为本发明实施例提供的结果帧的具体格式示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例一图1为本发明实施例一提供的处理装置的结构示意图,如图1所示,本实施例的处 理装置包括处理器11、高速缓存器12、存储器13和TCAM控制器14。处理器11与高速缓 存器12以及存储器13通过内部总线连接;TCAM控制器14也与高速缓存器12以及存储器 13通过内部总线连接;高速缓存器12和存储器13也相互连接,其中,内部总线包括控制总 线、地址总线和数据总线。其中,高速缓存器12设置于处理器11和存储器13之间,其存储 容量很小,但读写速度很快,以关联存储器13的方式运行,可以采用静态存储器芯片实现。 其中,高速缓存器12和存储器13之间的地址映像可以是直接映像、全相连映像或组相连映 像,在本发明实施例中选用直接映像方式,即高速缓存器12和存储器13具有相同的地址设 置,并具有识别存储器地址能力,既可以通过读存储器指令或写存储器指令实现对高速缓 存器12的读写操作。具体的,处理器11用于向TCAM控制器14发送查找命令,该查找命令通过TCAM控 制器14发送给TCAM装置(即TCAM),以供TCAM装置根据查找命令执行查找操作;同时处 理器11还用于发出读取命令以从高速缓存器12或存储器13中读取与查找命令对应的查 找结果,其中,该读取命令可以是读取地址空间的读指令。高速缓存器12,用于存储TCAM控 制器14提供的查找结果,并根据处理器11发出的读取命令判断其是否存储有查找结果,并在判断出存在查找结果时,供处理器11从高速缓存器12中读取查找结果。存储器13也用 于存储TCAM控制器14提供的查找结果,并在高速缓存器12根据读取命令判断出其内部不 存在处理器11要读取的查找结果时,供处理器11从存储器13中读取查找结果。具体的, 当处理器11(例如中央处理单元(Center Processing Unit ;简称为CPU))送出一组地 址去访问存储器13,高速缓存器12 (Cache)要检查处理器11送出的地址,判断处理器11要 访问的地址单元是否在高速缓存器12中。若在,称为Cache命中,处理器11可用极快的速 度对Cache进行读/写操作,这时高速缓存器12将通知存储器13不要把相同的查找结果 送出,由于高速缓存器12的访问速率远远快于存储器13,因此,可以及时通知存储器13 ;若不在,则称为Cache未命中,这时就需要从存储器13中获取查找结果,并把与本次访问相邻 近的存储空间的内容复制到Cache中。TCAM控制器14用于接收处理器11通过高速缓存器12发送的查找命令,并将查 找命令发送给TCAM装置,以供TCAM装置根据查找命令执行查找操作,以及接收TCAM装置 返回的查找结果,并根据预先获取的地址信息将查找结果同时存储到高速缓存器12和存 储器13中分别与地址信息对应的存储空间中,具体的,TCAM控制器14可以通过送出地址 信息对高速缓存器12和存储器13进行写操作,将查找结果存储到高速缓存器12和存储器 13中。本实施例的处理装置,在处理器和TCAM控制器之间增设高速缓存器和存储器, TCAM控制器预先存储存储查找结果的地址空间的地址,可以将接收到的查找结果直接送入 高速缓存器和存储器中,使处理器直接从高速缓存器中读取查找结果,与现有技术相比,减 少了处理器读取查找结果的时间延迟,提高了整个查找过程的查找效率。进一步,TCAM控制器14包括地址表单元141,用于存储地址信息,其中地址信息为 处理器11预先分配的、用于存储查找命令对应的查找结果的存储空间的地址。更进一步,如图2所示,TCAM控制器14还包括第一接口单元142、命令和数据寄 存器143、发送调度队列144、第二接口单元145和第一结果缓存区146。第一接口单元142用于接收处理器11发送的查找命令,并将查找命令存储到命令 和数据寄存器143,同时向发送调度队列144发送调度指令;以及用于根据地址表单元141 中存储的地址信息将第一结果缓存区146中的查找结果同时存储到高速缓存器12和存储 器13中分别与地址信息对应的存储空间中;命令和数据寄存器143用于存储查找命令;发 送调度队列144用于根据调度指令从命令和数据寄存器143中读取查找命令,并将查找命 令提供给第二接口单元145 ;第二接口单元145用于将查找命令发送给TCAM,以供TCAM根 据查找命令执行查找操作,并用于接收TCAM返回的查找结果,并将查找结果存储到第一结 果缓存区中146中;第一结果缓存区146用于存储第二接口单元145接收的查找结果,使第 一接口单元142根据地址信息将所存储的查找结果存储到高速缓存器12和存储器13中。更进一步,本实施例的处理器11包括多个处理单元;其中,多个处理单元分别用 于向TCAM控制器14发送携带处理单元标识的查找命令,并发出读取命令以从高速缓存器 12或存储器13中读取与查找命令携带相同标识的查找结果。例如,支持多线程的处理装 置,其中每个线程可以视为一个处理单元,可以同时向TCAM控制器14发送查找命令。为了 区分不同线程发出的查找命令,可以通过为每个线程提供一个唯一区分它们的标号,作为 每个线程的标识(即处理单元标识),并通过使查找命令和查找结果均携带对应线程的标识以区分不同线程的查找命令和查找结果。实施例二图3为本发明实施例二提供的信息查找系统的结构示意图,如图3所示,本实施例 的信息查找系统包括处理装置31和TCAM装置32。其中处理装置31可以为本发明实施例 一所提供的处理装置,其具体结构如图1和图2所示,本实施例不再详细介绍。
TCAM装置32与TCAM控制器14连接,用于接收TCAM控制器发送的查找命令,根据 查找命令执行查找操作,并将查找结果提供给TCAM控制器14。具体的,如图4所示,TCAM装置32包括连接模块321和TCAM模块322 ;其中TCAM 模块322主要用于根据查找信息完成查找操作,其内存储有各种表;连接模块321主要完成 查找命令的转换以及负责处理查找结果。其中,连接模块321主要包括第三接口单元3211、命令缓存区3212、数据缓存区 3213、第四接口单元3214和第二结果缓存区3215 ;第三接口单元3211与命令缓存区3212 和数据缓存区3213连接,用于接收TCAM控制器14发送的查找命令,并解析查找命令成为 命令帧和数据帧,并将命令帧和数据帧分别存储到命令缓存区3212和数据缓存区3213 ;以 及从第二结果缓存区3215中读取查找结果;第四接口单元3214,与命令缓存区3212、数据 缓存区3213和TCAM模块322连接,用于将命令帧和数据帧翻译成查找信息提供给TCAM模 块322,使TCAM模块322根据查找信息进行查找操作,并接收TCAM模块322返回的查找结 果;第二结果缓存区3215,与第四接口单元3214连接,用于接收第四接口单元3214获取的 查找结果,以供第三接口单元3211进行读取。本实施例的信息查找系统基于本发明的处理装置实现,通过在处理器和TCAM控 制器之间增设高速缓存器和存储器,TCAM控制器预先存储存储查找结果的地址空间的地 址,可以将接收到的查找结果直接存储到高速缓存器和存储器中,使处理器直接从高速缓 存器中读取查找结果,减少了处理器读取查找结果的时间延迟,提高了查找效率。另外,同 时将查找结果存储到存储器中,当处理器在高速缓存器中读取查找结果失败时,可以从存 储器中读取,在提高处理器读取查找结果速度的同时,还保证处理器能够读取到查找结果。下面将通过具体实施例介绍本发明的处理装置以及处理系统的工作原理。实施例三图5为本发明实施例三提供的信息查找方法的流程图。本实施例的执行主体为本 发明处理装置中的TCAM控制器,如图5所示,本实施例的信息查找方法包括步骤101,TCAM控制器接收处理器发送的查找命令,将查找命令提供给TCAM装置, 以供TCAM装置根据查找命令执行查找操作,并接收TCAM装置返回的查找结果;具体的,处理器发送查找命令给TCAM控制器,TCAM控制器将查找命令通过总线 (可以是并行总线,也可以是高速串行总线)发送给TCAM装置,TCAM装置接收到查找命令 后,根据查找命令执行查找操作。当查找操作结束后,TCAM装置获知该查找结果对应的查 找命令。TCAM装置通过总线,优选为高速串行总线,将查找结果发送给TCAM控制器。其中 处理器可以是中央处理器(CPU)、网络处理器(NP)或是专用集成电路芯片(ASIC),所发送 的查找命令可以是查找路由表、ACL表或者MAC表的命令。对于支持多线程的处理装置,其中处理器包括多个处理单元,多个处理单元可以 同时发出多个查找命令,并通过标识区分不同线程对应的查找命令。
步骤102,根据预先获取的地址信息将查找结果同时存储到高速缓存器和存储器 中与地址信息对应的存储空间中,以供处理器读取查找结果。其中,处理器预先分配存储查找结果的存储空间的地址,例如分配的存储空间的 地址为0001H,该地址0001H同时对应于高速缓存器和存储器中的0001H地址单元。处理 器将存储空间的地址(0001H)发送给TCAM控制器,TCAM控制器接收并存储存储空间的地 址(0001H),以便根据该地址信息将接收到的查找结果存储到高速缓存器和存储器对应的 存储空间中。具体的,TCAM控制器通过发出写0001H地址单元的指令,高速缓存器和存储 器接收到该写指令后,将查找结果存储到0001H对应的地址单元中。进一步,当有多个查找命令时,处理器将为每个查找命令对应的查找结果预先分 配存储空间,具体可以通过标识区分不同查找结果对应的存储空间,并将标识和标识对应 的存储空间的地址发送给TCAM控制器,TCAM控制器将接收到的标识和标识对应的存储空 间的地址存储到地址映射表中,以便根据该地址映射表将接收到的查找结果存储到对应的 存储空间中。其中标识可以是为每条查找命令分配不同的标号,也可以是为发出查找命令 的处理单元分配不同的标号,例如在支持多硬件线程的处理器中,每个硬件线程可以视为 一个处理单元,每个处理单元均可以发送查找命令。TCAM控制器接收到查找结果,获取查找结果中的标识,例如对应于每个处理单元 的标号,并根据标识查找地址映射表获取与该标识对应的存储空间的地址。 当TCAM控制器获取到存储空间的地址后,通过数据总线将查找结果同时存储到 高速缓存器和存储器中的存储空间,其中高速缓存器的地址设置与存储器的地址设置相 同,并且高速缓存器具有识别存储器地址的能力,以及由于TCAM控制器与高速缓存器和存 储器连接,因此,高速缓存器可以正常接收TCAM控制器发送的查找结果。其中,处理器读取查找结果的操作具体包括处理器通过发送读存储查找结果的 地址空间的读操作指令以读取查找结果,由于高速缓存器的访问速度远远高于存储器的访 问速度,因此,该读指令首先读取高速缓存器,只有在读取高速缓存器未命中时,处理器才 从存储器中获取查找结果,提高了读取查找结果的速度。具体的,高速缓存器设置在处理器 和存储器之间,处理器同时向高速缓存器和存储器发出读指令,若高速缓存器中存在相应 的查找结果,则高速缓存器把该查找结果返回给处理器,同时向存储器发出通知消息,以指 示存储器不把存储的相同查找结果送出给处理器,由于高速缓存器的访问速度远远高于存 储器的访问速度,因此,高速缓存器可以及时通知存储器。当处理器访问高速缓存器不成功 时,即高速缓存器中不存在相应的查找结果,则高速缓存器不会向处理器返回查找结果,且 不向存储器发出通知消息,因此,存储器会根据处理器发出的读指令将相应的查找结果送 出给处理器,即当高速缓存器中不存在查找结果时,处理器会通过访问存储器获取该查找 结果。本实施例提供的信息查找方法,通过预先将存储查找结果的存储空间的地址存储 到TCAM控制器中,当TCAM控制器接收到查找结果时,根据预先存储的地址信息,同时将查 找结果存储到高速缓存器和存储器中,而不是将查找结果存储到TCAM自身的存储空间中, 通过该技术方案,处理器可以直接读取高速缓存器获取查找结果,提高了读取查找结果的 速度,减小了读取查找结果的时间延迟,尤其当TCAM采用高速串行接口时,降低了 TCAM控 制器对查找过程的制约。
实施例四图6为本发明实施例四提供的信息查找方法的流程图。本实施例与实施例三对 应,其执行主体为处理装置中的处理器,本实施例的信息查找方法包括步骤201,处理器在发出查找命令后,等待一段时间;其中处理器等待的时间可以 是随机时间,当等待时间到达后执行步骤202。步骤202,处理器读取高速缓存器以获取查找命令对应的查找结果。其中,查找结 果是TCAM装置执行查找命令获得、并由TCAM控制器在接收到TCAM装置返回的查找结果 时,同时存储到高速缓存器和存储器中的。具体的,处理器在读取查找结果之前,将存储查找结果的存储空间的地址发送给 TCAM控制器,TCAM控制器接收并存储该地址信息,以便根据该地址信息将查找结果同时存 储到高速缓存器和存储器中与该地址对应的存储空间中。当处理器发出多个查找命令时,将为每个查找命令对应的查找结果分配存储空 间,并用标识区分不同查找命令以及查找命令对应的查找结果的存储空间,同时将标识和 标识对应的存储空间的地址发送给TCAM控制器,TCAM控制器将接收到的标识和 对应标识 的存储空间的地址存储到地址映射表中,其中标识可以是处理器为每条查找命令分配的标 号,例如标号1对应第一条查找命令、标号2对应第二条查找命令、标号3对应第三条查找 命令等;也可以是处理器为每个处理单元分配的标号,例如标号1对应于第一处理单元,标 号2对应于第二处理单元等。TCAM控制器接收TCAM装置返回的查找结果,其中为了区别不同查找命令对应的 查找结果,TCAM装置返回的查找结果中会携带有与查找命令相同的标识;TCAM控制器根据 查找结果中的标识从地址映射表中获取存储空间的地址,同时将查找结果存储到高速缓存 器和存储器中;具体的,TCAM控制器可以通过写存储器的指令同时将查找结果存储到高速 缓存器和存储器中,高速缓存器和存储器具有相同的地址设置,且具有识别存储器地址的 能力。处理器读取高速缓存器以获取查找结果,具体的处理器通过发送读存储器的指 令,实现读高速缓存器的目的。本实施例的信息查找方法,采用TCAM控制器预先存储存储空间的地址、并根据存 储空间的地址同时将查找结果存储到高速缓存器和存储器中的技术方案,处理器可以直接 从高速缓存器中读取查找结果,与处理器从TCAM控制器中读取查找结果的现有技术相比, 其读取时间延迟小,读取速度快,提高了整个查找过程的效率;同时,本技术方案明显降低 了 TCAM控制器对查找过程的制约,尤其当TCAM装置与TCAM控制器之间采用高速串行通信 接口时。进一步,当处理器读高速缓存器未获取到查找结果时,会自动转去读取存储器以 获取查找结果,即处理器通过发出读地址对应的存储空间的读指令后,处理装置会先读取 高速缓存器,并在未读到查找结果时,继续读存储器以保证处理器能够读到查找结果。本步 骤可以提高处理器读取查找结果的可靠性。更进一步,例如当有多个处理单元,且每个处理单元对应于一个标识时,高速缓存 器或是存储器中可能存在同一处理单元的多个查找结果,则处理器有可能读取到错误的查 找结果。因此,本实施例的信息查找方法还包括当处理器读取到查找结果后,判读查找结果是否为有效查找结果,其中有效是指读取到的查找结果是对应当前发送的查找命令的, 而不是其他时刻发送的查找命令对应的查找结果。具体的,通过在查找结果中设置有效标 志位实现,例如当有效标志位为“ 1,,标识查找结果有效,反之,若有效标志位为“0”,则说明 查找结果无效。同时,处理器还需要设置读取到的查找结果的有效标志位,即当处理器读 取到查找结果后,需要将存储器和高速缓存器中的查找结果的有效标识位设置为无效,例 如设置为“0”,此时查找结果将变为无效的查找结果。其中,若高速缓存器的查找结果还存 在,则对高速缓存器中的查找结果进行设置,若高速缓存器中的查找结果已经被覆盖掉,则 不再需要设置无效操作。
下面将以支持多个硬件线程的处理器为例,详细介绍本发明技术方案的实施过 程,其中每个硬件线程作为一个处理单元。实施例五图7为本发明实施例五提供的信息查找方法的流程图,本实施例可基于上述处理 装置实施例和各方法实施例实现,如图7所示,本实施例的信息查找方法包括步骤301,处理器为各个处理单元分配存储空间,并初始化存储空间;具体的,存 储空间用于存储各个处理单元的查找结果,并且每个处理单元的存储空间的地址范围相互 独立。处理器通过标号区分不同的处理单元,并将处理单元的标号作为区分存储空间的标 识,即处理单元的标号与处理单元的存储空间存在映射关系,其中存储空间是指存储器和 高速缓存器中的存储单元。例如,假设有3个处理单元,每个处理单元的标号为11、12和 13,且对应分配的存储空间的地址为0100H、0104H和0108H ;其中,处理器通过将这些存储 空间中全部写“0 ”实现对存储空间的初始化。步骤302,处理器将存储空间的地址和处理单元的标号的映射关系发送给TCAM控 制器;结合步骤31的举例,则处理器会预先将标号11和其所对应的存储空间的地址 0100H、标号12和其所对应的存储空间的地址0104H、标号13和其所对应的存储空间的地址 0108H发送给TCAM控制器。步骤303,TCAM控制器将接收到的处理单元的标号和存储空间的地址存储到地址 映射表中;TCAM控制器接收并将各处理单元的标号和其对应的存储空间的地址存储到地址 映射表内。上述步骤301-步骤303用于实现在TCAM控制器中预先存储地址映射表,且上述 步骤可以提前执行。步骤304,处理器向TCAM控制器发送查找命令,其中查找命令带有处理单元的标 号;本实施例中,处理器可以发送查找命令、读命令和写命令,其中查找命令用于向 TCAM发出查找请求;读命令和写命令可用于读或写处理器中的内部寄存器,本实施例重点 介绍查找命令,故提供一种查找命令的格式。具体的,该查找命令格式中包括标号、操作码、表信息或地址、关键字或数据四部 分。其中,表1详细介绍了本实施例查找命令中各部分的含义,具体如表1所示。表 1
本实施例中处理器通过高速缓存器将查找命令发送给TCAM控制器,TCAM控制器 通过数据总线接收查找命令。步骤305,TCAM控制器将查找命令转发给TCAM装置;具体的,TCAM控制器将接收到查找命令翻译成高速串行总线的查找命令帧和数据 中贞,并分别送入TCAM控制器中的命令寄存器和数据寄存器中,同时TCAM控制器把相应的标 号(例如标号11、12和13)送给发送调度对列中,本实施例假设命令寄存器和数据寄存器 的个数与处理单元即标号的个数相同。发送队列调度遵循“先入先出”的原则,把标号(例如标号11、12和13)从队列中 依次取出并进行识别,然后,根据标号到命令寄存器和数据寄存器中读取相应的查找命令 帧和数据帧,通过串行总线发送给TCAM装置。步骤306,TCAM装置接收TCAM控制器发送的带有标号的查找命令,并根据查找命 令执行查找操作;具体的,TCAM控制器接收串行总线上的查找命令帧和数据帧,并根据接收到的先 后顺序依次送入命令缓存区和数据缓存区,然后,将命令缓存区和数据缓存区中的内容转 换成可以被TCAM装置识别的查找信号,执行查找操作,即根据查找信号可以获知查找哪一 个表或哪几个表,以及查找的内容。步骤307,TCAM装置根据查找结果生成结果数据帧通过串行总线发送给TCAM控制 器;具体的,TCAM装置先将查找结果送去结果缓存区,然后根据查找所花费的时间获知对应的标号,将标号填入查找结果中,形成查找结果数据帧,送到串行总线上,通过串行 总线将查找结果发送给TCAM控制器。其中,由于TCAM装置每一次查找过程所花费的时间是固定的,因此,当TCAM装置 执行完查找操作时即可知道查找结果对应的查找命令。例如,假设TCAM装置从发出查找信 号到查找结束是10个时钟周期,因此,每次查找获取的查找结果是10个时钟周期之前发出 的查找信号,于是可以把相应的标号添加到查找结果中。在本实施例中,即得到携带标号11 的查找结果、携带标号12的查找结果以及携带标号13的查找结果。
对应的,本实施例还提供一种结果数据帧的结构,其包括标号、有效标记、成功标 记和结果的具体内容。表2详细介绍了结果数据帧中各部分的含义。表2 步骤308,TCAM控制器接收串行总线上的结果数据帧,并将查找结果同时存储到 存储器和高速缓存器中对应的存储空间中;具体的,TCAM控制器接收结果数据帧并将结果数据帧暂存到结果缓存区中;然 后,根据先入先出的原则把结果数据帧从结果缓存区中取出,对结果数据帧进行解析获取 标号;接着,根据标号查询地址映射表获取存储查找结果的存储空间的地址,把查找结果同 时存储到存储空间和高速缓存器中。例如当TCAM控制器接收到携带标号12的查找结果 时,通过解析查找结果获取查找结果中的标号12,并根据获取的标号12查找地址映射表, 获取与标号12对应的存储空间的地址0104Η,由于该地址同时对应高速缓存器和存储器, 因此,根据该地址0104Η,TCAM控制器可以将查找结果写入高速缓存器和存储器中,以供标 号为12的处理单元通过读地址0104Η读取查找结果。步骤309,处理器读取高速缓存器,以获取查找结果;本步骤中,处理器通过读取高速缓存器获取查找结果,由于处理器访问高速缓存 器的速度要比访问存储器的速度快很多,尤其要比访问TCAM控制器的速度快很多,因此, 本步骤可以使处理器更快的获取到查找结果,其中读取高速缓存器的操作可以由读存储器指令实现。由于高速缓存器的容量相对有限,且高速缓存器的地址空间被循环使用,其内部 早前存储的内容有可能被后续进来的其他内容所替换掉。因此,查找结果虽然被存储到高 速缓存器中,但是等到处理器读取时,有可能找不到,因此,本实施例的信息查找方法还包 括判断高速缓存器中是否有查找结果的操作,即步骤400。
步骤400,判断高速缓存器中是否有查找结果;该步骤具体可以由高速缓存器根据处理器送出的要访问的存储空间的地址来判 断,即判断高速缓存器中是否还用对应于处理器送出的地址的空间,若存在,则可以判断出 高速缓存器中存在相应的查找结果,例如与标号12对应的查找结果,则执行步骤402 ;反 之,执行步骤401。步骤401,从存储器中与地址对应的存储空间中读取查找结果,并执行步骤402。具体的,处理器读存储空间的方式为现有技术,本步骤不做详细论述。步骤402,判断读取的查找结果是否有效;具体的,通过查找结果中的有效标志位判断查找结果是否有效,例如,若有效标志 位为“ 1”,则说明查找结果有效,执行步骤404 ;反之,若有效标志位为“0”,则说明查找结果 无效,转去执行步骤403。步骤403,处理器随机等待一段时间,转去执行步骤309 ;其中,可能处理器读取查找结果的操作超前,实际查找过程还未结束,或者查找结 果还未被存储到存储器或高速缓存器中,从而使得处理器无法读取有效的查找结果。步骤404,处理器判断查找是否成功;具体的,本步骤中处理器根据查找结果中的成功标志位,判断查找过程是否成功, 例如若成功标志位为“1”表示查找成功,即在查找表中查找到与查找命令对应的结果,并执 行步骤406;反之,说明查找未成功,即未在查找表中查找到与查找命令对应的结果,转去 执行步骤405。步骤405,处理器执行预设的默认操作;其中,由于路由表中通常会设置一条默认路由,在整个表内查找不成功,则把默认 路由作为查找结果返回,因此,路由查找一般不存在不成功的情况。在某些特殊情况下,例 如若路由表中没有设置默认路由,一旦在整个路由表内查找失败,则会返回“不成功”的查 找结果,此时,处理器会对该报文进行丢弃,该丢弃操作可视为一种默认操作。又以ACL查 找为例,如果判断出当前查找结果为“不成功”,则认为该报文的特征不匹配ACL表中的任 何一条规则,对该报文不做任何处理直接送到下一个处理环节,可视为另一种默认操作。当 操作结束后转去执行步骤407,即将高速缓存器和存储器中查找结果的有效标志位修改为 无效。步骤406,处理器根据查找结果执行具体操作,并在操作结束后,执行步骤407 ;例如,若查找结果为下一跳路由地址,则处理器将报文转发给下一跳路由地址对 应的设备。又以ACL表查找为例,如果返回的结果为“对当前报文进行限速”,则处理器执行 限速动作;如果返回的结果为“把当前报文的优先级标志修改为1”,则处理器把当前报文 的优先级标志修改为1。步骤407,处理器将高速缓存器和存储器中查找结果的有效标志位修改为无效,并结束本次查找操作。具体的,本步骤407与步骤402结合操作,可以防止处理器在新的查找过程中,把 上一次的查找结果当作本次的查找结果,从而保证了处理器每次读取的查找结果是与查找 命令对应的有效查找结果。 本实施例的信息查找方法,TCAM控制器通过预存存储空间的地址,直接将查找结 果存储到存储器和高速缓存器中,使处理器可以直接从高速缓存器中读取查找结果,提高 了处理器读取查找结果的速度,与现有技术相比,减少了处理器读取查找结果的时间延迟, 降低了 TCAM控制器对查找过程的制约,进而提高了整个查找过程的查找效率。进一步,本实施例中TCAM控制器和TCAM之间采用高速串行总线,本实施例不对高 速串行总线的具体实现做详细介绍,本实施例提供一种数据帧格式,适于在高速串行总线 上传输,且结合本发明的信息查找方法可以进一步提高查找过程的查找速度。具体的在本发明中,帧长可以为SBytes的倍数,本实施例以SBytes例,即命令帧、数据帧 和结果帧的长度都是8Bytes。其中,命令帧包括8bits的操作码、8bits的标号、16bits的 地址或表信息和32bits的关键字或数据,具体格式如图8a所示。数据帧包括64bits的关 键字或数据,具体格式如图8b所示。结果帧包括8bits的标号、Ibit的有效位、Ibit的成 功位(即命中为)154bits的查找结果,具体格式如图8c所示。上述数据帧格式为一种可以充分实施本发明技术方案和发挥本发明技术方案的 技术效果的优选方式,但并不限于此,本领域技术人员可以结合自身的知识选择相应的数 据帧格式来实施本发明技术方案。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者 光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精 神和范围。
权利要求
一种处理装置,其特征在于,包括处理器、高速缓存器、存储器和TCAM控制器;所述处理器,与所述高速缓存器和所述存储器连接,用于向所述TCAM控制器发送查找命令,并发出读取命令以从所述高速缓存器或所述存储器中读取与所述查找命令对应的查找结果;所述高速缓存器,与所述TCAM控制器和所述存储器连接,用于存储所述TCAM控制器提供的所述查找结果,并在根据所述读取命令判断出所述高速缓存器中存在所述查找结果时,供所述处理器读取所述查找结果;所述存储器,与所述TCAM控制器连接,用于存储所述TCAM控制器提供的所述查找结果,并在所述高速缓存器根据所述读取命令判断出不存在所述查找结果时,供所述处理器读取所述查找结果;所述TCAM控制器,用于接收所述处理器通过所述高速缓存器发送的所述查找命令,将所述查找命令发送给TCAM装置,以供所述TCAM装置根据所述查找命令执行查找操作,并接收所述TCAM装置返回的所述查找结果,根据预先获取的地址信息将所述查找结果同时存储到所述高速缓存器和所述存储器中分别与所述地址信息对应的存储空间中。
2.根据权利要求1所述的处理装置,其特征在于,所述TCAM控制器包括地址表单元, 用于存储所述地址信息,所述地址信息为所述处理器预先分配的、用于存储所述查找命令 对应的查找结果的存储空间的地址。
3.根据权利要求2所述的处理装置,其特征在于,所述TCAM控制器还包括第一接口 单元、命令和数据寄存器、发送调度队列、第二接口单元和第一结果缓存区;所述第一接口单元,用于接收所述处理器发送的所述查找命令,将所述查找命令存储 到所述命令和数据寄存器,同时向所述发送调度队列发送调度指令,并根据所述地址表单 元中存储的地址信息,将所述第一结果缓存区中的查找结果同时存储到所述高速缓存器和 所述存储器中分别与所述地址信息对应的存储空间中;所述命令和数据寄存器,用于存储所述查找命令;所述发送调度队列,用于根据所述调度指令从所述命令和数字寄存器中读取所述查找 命令,并提供给所述第二接口单元;所述第二接口单元,用于将所述查找命令发送给所述TCAM装置,以供所述TCAM装置根 据所述查找命令执行查找操作,并接收所述TCAM装置返回的所述查找结果,将所述查找结 果存储到所述第一结果缓存区中;所述第一结果缓存区,用于存储所述第二接口单元提供的所述查找结果。
4.根据权利要求1-3任一项所述的处理装置,其特征在于,所述处理器包括多个处理 单元;所述多个处理单元分别用于向所述TCAM控制器发送携带所述处理单元标识的查找 命令,并发出读取命令以从所述高速缓存器或所述存储器中读取与所述查找命令携带相同 标识的查找结果。
5.一种信息查找系统,其特征在于,包括处理装置和TCAM装置;所述处理装置包括处理器、高速缓存器、存储器和TCAM控制器;所述处理器,与所述高速缓存器和所述存储器连接,用于向所述TCAM控制器发送查找 命令,并发出读取命令以从所述高速缓存器或所述存储器中读取与所述查找命令对应的查 找结果;所述高速缓存器,与所述TCAM控制器和所述存储器连接,用于存储所述TCAM控制器提供的所述查找结果,并在根据所述读取命令判断出所述高速缓存器中存在所述查找结果 时,供所述处理器读取所述查找结果;所述存储器,与所述TCAM控制器连接,用于存储所述TCAM控制器提供的所述查找结 果,并在所述高速缓存器根据所述读取命令判断出不存在所述查找结果时,供所述处理器 读取所述查找结果;所述TCAM控制器,用于接收所述处理器通过所述高速缓存器发送的所述查找命令,将 所述查找命令发送给TCAM装置,以供所述TCAM装置根据所述查找命令执行查找操作,并接 收所述TCAM装置返回的所述查找结果,根据预先获取的地址信息将所述查找结果同时存 储到所述高速缓存器和所述存储器中分别与所述地址信息对应的存储空间中;所述TCAM装置,与所述TCAM控制器连接,用于接收所述TCAM控制器发送的所述查找 命令,根据所述查找命令执行查找操作,并将所述查找结果提供给所述TCAM控制器。
6.根据权利要求5所述信息查找系统,其特征在于,所述TCAM控制器包括地址表单 元,用于存储所述地址信息,所述地址信息为所述处理器预先分配的用于存储所述查找命 令对应的查找结果的存储空间的地址。
7.根据权利要求6所述的信息查找系统,其特征在于,所述TCAM控制器还包括第一 接口单元、命令和数据寄存器、发送调度队列、第二接口单元和第一结果缓存区;所述第一接口单元,用于接收所述处理器发送的所述查找命令,将所述查找命令存储 到所述命令和数据寄存器,同时向所述发送调度队列发送调度指令,并根据所述地址表单 元中存储的地址信息,将所述查找结果同时存储到所述高速缓存器和所述存储器中分别与 所述地址信息对应的存储空间中;所述命令和数据寄存器,用于存储所述查找命令;所述发送调度队列,用于根据所述调度指令向所述从所述命令和数字寄存器中读取所 述查找命令,并提供给所述第二接口单元;所述第二接口单元,用于将所述查找命令发送给所述TCAM装置,以供所述TCAM装置根 据所述查找命令执行查找操作,并接收所述TCAM装置返回的所述查找结果,将所述查找结 果存储到所述第一结果缓存区中;所述第一结果缓存区,用于存储所述第二接口单元提供的所述查找结果。
8.根据权利要求5所述的信息查找系统,其特征在于,所述TCAM装置包括连接模块 和TCAM模块;所述连接模块包括第三接口单元、命令缓存区、数据缓存区、第四接口单元和第二结 果缓存区;所述第三接口单元,与所述TCAM控制器、所述命令缓存区和所述数据缓存区连接,用 于接收所述TCAM控制器发送的所述查找命令,解析所述查找命令成为命令帧和数据帧,将 所述命令帧和所述数据帧分别存储到所述命令缓存区和所述数据缓存区,并从所述第二结 果缓存区中读取所述查找结果;所述第四接口单元,与所述命令缓存区、所述数据缓存区和所述TCAM模块连接,用于 读取所述命令帧和所述数据帧,将所述命令帧和所述数据帧翻译成查找信息提供给所述 TCAM模块,并接收所述TCAM模块返回的所述查找结果;所述第二结果缓存区,与第四接口单元连接,用于接收所述第四接口单元获取的所述 查找结果,以供所述第三接口单元进行读取;所述TCAM模块,用于根据所述查找信息执行查找操作,并返回所述查找结果。
9.一种信息查找方法,其特征在于,包括 TCAM控制器接收处理器发送的查找命令,将所述查找命令提供给TCAM装置,以供所述 TCAM装置根据所述查找命令执行查找操作,并接收所述TCAM装置返回的查找结果;所述TCAM控制器根据预先获取的地址信息将所述查找结果同时存储到高速缓存器和 存储器中分别与所述地址信息对应的存储空间中,以供所述处理器读取所述查找结果。
10.根据权利要求9所述的信息查找方法,其特征在于,所述TCAM控制器在接收所述 TCAM装置返回的查找结果之前还包括所述TCAM控制器接收所述处理器发送的存储所述查找结果的存储空间的地址信息, 并将所述地址信息存储到地址映射表中。
全文摘要
本发明提供一种处理装置、信息查找系统及信息查找方法,其中,处理装置包括处理器、高速缓存器、存储器和TCAM控制器;处理器用于发送查找命令,并发出读取命令以从高速缓存器或存储器中读取查找结果;高速缓存器与存储器,用于存储查找结果;TCAM控制器用于接收查找命令,将查找命令发送给TCAM,并接收TCAM返回的查找结果,根据预先获取的地址信息将查找结果同时存储到高速缓存器和存储器中与地址信息对应的存储空间中。本发明的信息查找系统和信息查找方法基于处理装置实现。本发明技术方案可以解决现有技术中处理单元从TCAM控制器中读取查找结果时间延迟大的问题,提高了查找过程的速度和效率。
文档编号G06F12/02GK101840374SQ20101015916
公开日2010年9月22日 申请日期2010年4月28日 优先权日2010年4月28日
发明者徐洋 申请人:福建星网锐捷网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1