降低TCAM由读写引起查找冲突的方法与流程

文档序号:11148094阅读:230来源:国知局
降低TCAM由读写引起查找冲突的方法与制造工艺

本发明涉及网络芯片设计方法及TCAM查找方法,具体涉及一种降低TCAM因读写引起查找冲突的方法。



背景技术:

TCAM中每个bit位有三种状态,“0”,“1”和“不关心”,正因为有这3种状态,TCAM既能进行精确匹配,也能进行模糊匹配。TCAM通过掩码来实现这三种状态,每个bit都包含Mask和Value,当Mask为1,表示必须比较并匹配;当Mask为0,表示不关心该位的值,即总是匹配。由于每个bit包含了Mask和Value,因此CPU在配置TCAM的时候,需要配置两次,一次配置Value,一次配置Mask。在配置的同时,如果有数据查找请求,就会发生冲突;而在两次配置的中间,如果有数据查找请求,则可能会产生误匹配。如图1所示:TCAM里面的一组原始数据是匹配数据10**(*表示不关心),假若要修改里面的值,希望匹配数据0*1*,因此CPU会修改Mask和Value的值,分别修改为1010和0010。但是,在已修改Mask值而还未修改Value值的时候,会产生一个中间值,变成匹配数据1*1*,而此时恰好有个查找数据1010被送往TCAM进行查找,则被匹配,这样就产生了误匹配。

图2是芯片在处理CPU配置和查找数据冲突时产生误匹配的示意图,从图中可以看出,一旦查找数据从TCAM查找模块出来后在流水线上就停不下来,会一直送往TCAM进行查找,这个时候如果CPU要插入配置动作,那么只能抽空插入,从而会导致先后配置Value和Mask。而在这两次配置中间,如果有查找数据进入TCAM,则会出现图1所示的误匹配结果,从而导致查找错误。

现有技术中为解决上述问题,在查找数据一侧添加一个FIFO(First Input First Output,先入先出队列),其方案示意图如图3所示,FIFO在CPU下发配置的时候等待两个时钟周期,保证将Value和Mask连续写入TCAM,中间不会插入数据查找请求。但是在网络芯片中,查找TCAM的ACL查找数据基本都是在640bit的宽度以上,如果流水线很长的话,那么该FIFO可能会很深,从而导致耗费大量资源,进而影响芯片的面积和价格。



技术实现要素:

针对现有技术的不足,本发明的主要目的在于:提出一种降低TCAM因读写引起查找冲突的方法,解决TCAM查找误匹配问题,同时减少芯片设计面积和降低芯片成本。

为实现前述目的,本发明公开了一种降低TCAM因读写引起查找冲突的方法,通过冲突解决模块同步调节TCAM查找模块发送查找数据的请求与CPU操作模块下发配置请求的时序,具体包括:

CPU操作模块在下发配置前向冲突解决模块发送一CPU操作请求信号;

冲突解决模块收到所述CPU操作请求信号后,向TCAM查找模块发送一暂停请求信号;

TCAM查找模块收到所述暂停请求信号后,连续两个时钟周期停止发送查找数据,同时向冲突解决模块发送暂停响应信号;

冲突解决模块收到所述暂停响应信号后,计数器开始计数,当计数值达到阈值后,冲突解决模块向CPU操作模块发送一允许CPU操作的响应信号,同时将所述计数器清零;

CPU操作模块收到所述允许CPU操作的响应信号后,连续两个时钟周期对TCAM进行配置。

优选地,所述计数的方式为每经过一个时钟周期计数加1。

优选地,所述连续两个时钟周期对TCAM进行配置的方式为:第一个时钟周期将Value值写入TCAM,第二个时钟周期将Mask值写入TCAM;或

第一个时钟周期将Mask值写入TCAM,第二个时钟周期将Value值写入TCAM。

优选地,所述阈值根据查找数据的流水线延迟确定。

优选地,所述阈值的具体值为t0+t1+t2+t3+t4+1,其中:

t0为TCAM查找模块发送响应信号到停止发送数据的时间差;

t1为TCAM查找模块发送数据到TCAM接收到查找数据的时间差;

t2为冲突解决模块收到暂停响应信号到开始计数的时间差;

t3为冲突解决模块计数达到阈值到发送允许CPU操作的响应信号给CPU操作模块的时间差;

t4为CPU操作模块接收允许操作信号到CPU下发配置到TCAM的时间差。

与现有技术相比,本发明的优点在于:本发明公开的一种降低TCAM因读写引起查找冲突的方法,解决了CPU对TCAM进行写操作与TCAM查找的同步而引起冲突并且产生误匹配的问题,且本发明实现简单,所用资源较少,降低了芯片的设计成本和生产成本。

附图说明

图1是CPU配置TCAM引起查找数据误匹配的示意图;

图2是芯片处理CPU配置和查找数据冲突产生误匹配的示意图;

图3是现有技术中解决CPU配置和查找数据冲突产生误匹配的方案示意图;

图4是与本发明一实施例提出的降低TCAM因写操作引起查找冲突的方法示意图;

图5是与本发明一实施例提出的芯片处理CPU配置和查找数据的时序图。

具体实施方式

鉴于现有技术中的不足,本案发明人经长期研究和大量实践,得以提出本发明的技术方案。如下将对该技术方案、其实施过程及原理等作进一步的解释说明。

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本发明通过同步调节TCAM查找模块送出查找数据的请求与CPU下发配置请求的时序来实现冲突解决,图4是与本发明一实施例提出的降低TCAM因写操作引起查找冲突的方法示意图,如图4所示,包括以下步骤:

①CPU操作模块在下发配置前向冲突解决模块发送一CPU操作请求信号;

②冲突解决模块收到CPU的操作请求信号后,向TCAM查找模块发送一暂停请求信号;

③TCAM查找模块收到暂停请求信号后,连续两个时钟周期停止发送查找数据,同时向冲突解决模块发送暂停响应信号;

④冲突解决模块收到暂停响应信号后,计数器开始计数,每经过一个时钟周期加1,当计数等于一个阈值后,冲突解决模块向CPU操作模块发送一允许CPU操作的响应信号,同时将计数器清零;

其中,阈值的具体值与查找数据的流水线延迟有关,其计算方式为:阈值=t0+t1+t2-t3-t4+1;

t0为TCAM查找模块发送响应信号到停止发送数据的时间差;

t1为TCAM查找模块发送数据到TCAM接收到查找数据的时间差;

t2为冲突解决模块收到暂停响应信号到开始计数的时间差;

t3为冲突解决模块计数达到阈值到发送允许CPU操作的响应信号给CPU操作模块的时间差;

t4为CPU操作模块接收允许操作信号到CPU下发配置到TCAM的时间差。

⑤CPU操作模块收到允许CPU操作的响应信号后,连续两个时钟周期对TCAM进行配置,即连续两个周期将Value和Mask值写入TCAM。

CPU对TCAM进行写操作的两个时钟周期内,也正是TCAM未收到查找数据,暂停数据查找操作的空闲时期,从而解决了因读写引起的查找冲突并避免了误匹配情况发生。其中,Value和Mask值写入TCAM的先后顺序任意。

下面通过一组时序图对本发明实施例所提出的方案作更进一步阐述,图5是与本发明一实施例提出的芯片处理CPU配置和查找数据的时序图,为了方便说明,省略或简化了部分模块的流水线延迟,其中t0=0,t1=0,t2=4,t3=1,t4=0,则计数器的阈值等于4。各操作对应的时钟周期如图5所示:

在时钟周期1中,CPU发送一个请求信号给冲突解决模块,冲突解决模块在时钟周期2发送暂停请求信号给TCAM查找模块;

TCAM查找模块在时钟周期6发送暂停响应信号给冲突解决模块,同时连续两个时钟周期停止发送查找数据(对应t0=0);

在时钟周期6,冲突解决模块收到暂停响应信号后,计数器开始计数(对应t1=0);

在时钟周期9,冲突解决模块的计数等于阈值4后,在时钟周期10发送允许CPU操作的响应信号给CPU操作模块(对应t3=1);

在时钟周期10、11,CPU操作模块连续两个时钟周期对TCAM进行写操作(对应t4=0),并且在该连续两个时钟周期,TCAM没有接收到查找数据(对应t2=4);

TCAM在时钟周期5,6,8,9,12以及13进行正常的查找操作,而在时钟周期10,CPU将Value值写入到TCAM,在时钟周期11,CPU将Mask值写入到TCAM。

通过上述实施例的时序图可见,本发明技术方案通过调节TCAM查找请求与CPU下发配置请求的时序,可有效地解决CPU对TCAM进行写操作与TCAM查找的同步操作而引起冲突并且产生误匹配的问题。并且本发明实现简单,仅使用少量资源即可解决相应的技术问题,相对于现有技术,降低了芯片的设计成本和生产成本。

应当理解,上述实施例仅为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1