本發(fā)明涉及網絡芯片設計方法及TCAM查找方法,具體涉及一種降低TCAM因讀寫引起查找沖突的方法。
背景技術:
TCAM中每個bit位有三種狀態(tài),“0”,“1”和“不關心”,正因為有這3種狀態(tài),TCAM既能進行精確匹配,也能進行模糊匹配。TCAM通過掩碼來實現(xiàn)這三種狀態(tài),每個bit都包含Mask和Value,當Mask為1,表示必須比較并匹配;當Mask為0,表示不關心該位的值,即總是匹配。由于每個bit包含了Mask和Value,因此CPU在配置TCAM的時候,需要配置兩次,一次配置Value,一次配置Mask。在配置的同時,如果有數據查找請求,就會發(fā)生沖突;而在兩次配置的中間,如果有數據查找請求,則可能會產生誤匹配。如圖1所示:TCAM里面的一組原始數據是匹配數據10**(*表示不關心),假若要修改里面的值,希望匹配數據0*1*,因此CPU會修改Mask和Value的值,分別修改為1010和0010。但是,在已修改Mask值而還未修改Value值的時候,會產生一個中間值,變成匹配數據1*1*,而此時恰好有個查找數據1010被送往TCAM進行查找,則被匹配,這樣就產生了誤匹配。
圖2是芯片在處理CPU配置和查找數據沖突時產生誤匹配的示意圖,從圖中可以看出,一旦查找數據從TCAM查找模塊出來后在流水線上就停不下來,會一直送往TCAM進行查找,這個時候如果CPU要插入配置動作,那么只能抽空插入,從而會導致先后配置Value和Mask。而在這兩次配置中間,如果有查找數據進入TCAM,則會出現(xiàn)圖1所示的誤匹配結果,從而導致查找錯誤。
現(xiàn)有技術中為解決上述問題,在查找數據一側添加一個FIFO(First Input First Output,先入先出隊列),其方案示意圖如圖3所示,F(xiàn)IFO在CPU下發(fā)配置的時候等待兩個時鐘周期,保證將Value和Mask連續(xù)寫入TCAM,中間不會插入數據查找請求。但是在網絡芯片中,查找TCAM的ACL查找數據基本都是在640bit的寬度以上,如果流水線很長的話,那么該FIFO可能會很深,從而導致耗費大量資源,進而影響芯片的面積和價格。
技術實現(xiàn)要素:
針對現(xiàn)有技術的不足,本發(fā)明的主要目的在于:提出一種降低TCAM因讀寫引起查找沖突的方法,解決TCAM查找誤匹配問題,同時減少芯片設計面積和降低芯片成本。
為實現(xiàn)前述目的,本發(fā)明公開了一種降低TCAM因讀寫引起查找沖突的方法,通過沖突解決模塊同步調節(jié)TCAM查找模塊發(fā)送查找數據的請求與CPU操作模塊下發(fā)配置請求的時序,具體包括:
CPU操作模塊在下發(fā)配置前向沖突解決模塊發(fā)送一CPU操作請求信號;
沖突解決模塊收到所述CPU操作請求信號后,向TCAM查找模塊發(fā)送一暫停請求信號;
TCAM查找模塊收到所述暫停請求信號后,連續(xù)兩個時鐘周期停止發(fā)送查找數據,同時向沖突解決模塊發(fā)送暫停響應信號;
沖突解決模塊收到所述暫停響應信號后,計數器開始計數,當計數值達到閾值后,沖突解決模塊向CPU操作模塊發(fā)送一允許CPU操作的響應信號,同時將所述計數器清零;
CPU操作模塊收到所述允許CPU操作的響應信號后,連續(xù)兩個時鐘周期對TCAM進行配置。
優(yōu)選地,所述計數的方式為每經過一個時鐘周期計數加1。
優(yōu)選地,所述連續(xù)兩個時鐘周期對TCAM進行配置的方式為:第一個時鐘周期將Value值寫入TCAM,第二個時鐘周期將Mask值寫入TCAM;或
第一個時鐘周期將Mask值寫入TCAM,第二個時鐘周期將Value值寫入TCAM。
優(yōu)選地,所述閾值根據查找數據的流水線延遲確定。
優(yōu)選地,所述閾值的具體值為t0+t1+t2+t3+t4+1,其中:
t0為TCAM查找模塊發(fā)送響應信號到停止發(fā)送數據的時間差;
t1為TCAM查找模塊發(fā)送數據到TCAM接收到查找數據的時間差;
t2為沖突解決模塊收到暫停響應信號到開始計數的時間差;
t3為沖突解決模塊計數達到閾值到發(fā)送允許CPU操作的響應信號給CPU操作模塊的時間差;
t4為CPU操作模塊接收允許操作信號到CPU下發(fā)配置到TCAM的時間差。
與現(xiàn)有技術相比,本發(fā)明的優(yōu)點在于:本發(fā)明公開的一種降低TCAM因讀寫引起查找沖突的方法,解決了CPU對TCAM進行寫操作與TCAM查找的同步而引起沖突并且產生誤匹配的問題,且本發(fā)明實現(xiàn)簡單,所用資源較少,降低了芯片的設計成本和生產成本。
附圖說明
圖1是CPU配置TCAM引起查找數據誤匹配的示意圖;
圖2是芯片處理CPU配置和查找數據沖突產生誤匹配的示意圖;
圖3是現(xiàn)有技術中解決CPU配置和查找數據沖突產生誤匹配的方案示意圖;
圖4是與本發(fā)明一實施例提出的降低TCAM因寫操作引起查找沖突的方法示意圖;
圖5是與本發(fā)明一實施例提出的芯片處理CPU配置和查找數據的時序圖。
具體實施方式
鑒于現(xiàn)有技術中的不足,本案發(fā)明人經長期研究和大量實踐,得以提出本發(fā)明的技術方案。如下將對該技術方案、其實施過程及原理等作進一步的解釋說明。
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明通過同步調節(jié)TCAM查找模塊送出查找數據的請求與CPU下發(fā)配置請求的時序來實現(xiàn)沖突解決,圖4是與本發(fā)明一實施例提出的降低TCAM因寫操作引起查找沖突的方法示意圖,如圖4所示,包括以下步驟:
①CPU操作模塊在下發(fā)配置前向沖突解決模塊發(fā)送一CPU操作請求信號;
②沖突解決模塊收到CPU的操作請求信號后,向TCAM查找模塊發(fā)送一暫停請求信號;
③TCAM查找模塊收到暫停請求信號后,連續(xù)兩個時鐘周期停止發(fā)送查找數據,同時向沖突解決模塊發(fā)送暫停響應信號;
④沖突解決模塊收到暫停響應信號后,計數器開始計數,每經過一個時鐘周期加1,當計數等于一個閾值后,沖突解決模塊向CPU操作模塊發(fā)送一允許CPU操作的響應信號,同時將計數器清零;
其中,閾值的具體值與查找數據的流水線延遲有關,其計算方式為:閾值=t0+t1+t2-t3-t4+1;
t0為TCAM查找模塊發(fā)送響應信號到停止發(fā)送數據的時間差;
t1為TCAM查找模塊發(fā)送數據到TCAM接收到查找數據的時間差;
t2為沖突解決模塊收到暫停響應信號到開始計數的時間差;
t3為沖突解決模塊計數達到閾值到發(fā)送允許CPU操作的響應信號給CPU操作模塊的時間差;
t4為CPU操作模塊接收允許操作信號到CPU下發(fā)配置到TCAM的時間差。
⑤CPU操作模塊收到允許CPU操作的響應信號后,連續(xù)兩個時鐘周期對TCAM進行配置,即連續(xù)兩個周期將Value和Mask值寫入TCAM。
CPU對TCAM進行寫操作的兩個時鐘周期內,也正是TCAM未收到查找數據,暫停數據查找操作的空閑時期,從而解決了因讀寫引起的查找沖突并避免了誤匹配情況發(fā)生。其中,Value和Mask值寫入TCAM的先后順序任意。
下面通過一組時序圖對本發(fā)明實施例所提出的方案作更進一步闡述,圖5是與本發(fā)明一實施例提出的芯片處理CPU配置和查找數據的時序圖,為了方便說明,省略或簡化了部分模塊的流水線延遲,其中t0=0,t1=0,t2=4,t3=1,t4=0,則計數器的閾值等于4。各操作對應的時鐘周期如圖5所示:
在時鐘周期1中,CPU發(fā)送一個請求信號給沖突解決模塊,沖突解決模塊在時鐘周期2發(fā)送暫停請求信號給TCAM查找模塊;
TCAM查找模塊在時鐘周期6發(fā)送暫停響應信號給沖突解決模塊,同時連續(xù)兩個時鐘周期停止發(fā)送查找數據(對應t0=0);
在時鐘周期6,沖突解決模塊收到暫停響應信號后,計數器開始計數(對應t1=0);
在時鐘周期9,沖突解決模塊的計數等于閾值4后,在時鐘周期10發(fā)送允許CPU操作的響應信號給CPU操作模塊(對應t3=1);
在時鐘周期10、11,CPU操作模塊連續(xù)兩個時鐘周期對TCAM進行寫操作(對應t4=0),并且在該連續(xù)兩個時鐘周期,TCAM沒有接收到查找數據(對應t2=4);
TCAM在時鐘周期5,6,8,9,12以及13進行正常的查找操作,而在時鐘周期10,CPU將Value值寫入到TCAM,在時鐘周期11,CPU將Mask值寫入到TCAM。
通過上述實施例的時序圖可見,本發(fā)明技術方案通過調節(jié)TCAM查找請求與CPU下發(fā)配置請求的時序,可有效地解決CPU對TCAM進行寫操作與TCAM查找的同步操作而引起沖突并且產生誤匹配的問題。并且本發(fā)明實現(xiàn)簡單,僅使用少量資源即可解決相應的技術問題,相對于現(xiàn)有技術,降低了芯片的設計成本和生產成本。
應當理解,上述實施例僅為說明本發(fā)明的技術構思及特點,其目的在于讓熟悉此項技術的人士能夠了解本發(fā)明的內容并據以實施,并不能以此限制本發(fā)明的保護范圍。凡根據本發(fā)明精神實質所作的等效變化或修飾,都應涵蓋在本發(fā)明的保護范圍之內。