erse_rank (i)是高位中從最高有效位開始的1的數(shù)量,以及reverse_dist(i)是從來自高位的1的最后一位以后0的數(shù)量。例如,子計(jì)數(shù)器3被映射到base ctr_2 (4*1+1_4 = 1,其對(duì)應(yīng)于基礎(chǔ)計(jì)數(shù)器2的擴(kuò)展),子計(jì)數(shù)器4被映射到base ctr_2 (4*1+0_3 = 1,其對(duì)應(yīng)于基礎(chǔ)計(jì)數(shù)器2的擴(kuò)展),子計(jì)數(shù)器5被映射到base ctr_3 (4*0+2_2 = 0,其對(duì)應(yīng)于基礎(chǔ)計(jì)數(shù)器3的擴(kuò)展),子計(jì)數(shù)器6被映射到base ctr_3 (4*0+1_1 = 0,其對(duì)應(yīng)于基礎(chǔ)計(jì)數(shù)器3的擴(kuò)展),以及子計(jì)數(shù)器7被映射到basectr_3 (4*0+0-0 = 0,其對(duì)應(yīng)于基礎(chǔ)計(jì)數(shù)器3的擴(kuò)展)。注意,上移網(wǎng)絡(luò)鏡像子計(jì)數(shù)器對(duì)下移網(wǎng)絡(luò)的重要性。在該實(shí)例中,子計(jì)數(shù)器_7被應(yīng)用于所有計(jì)數(shù)器3的擴(kuò)展的最低有效位置,以及子計(jì)數(shù)器_5被應(yīng)用于所有計(jì)數(shù)器3的擴(kuò)展的最高有效位置。
[0076]如圖5所示,在沒有“纏繞(twisting) ”的情況下,硬件更加復(fù)雜。通過纏繞,偏移減半。在一些實(shí)施例中,消除了移位的至少一層。通過在兩端處對(duì)齊并朝向中心擴(kuò)展來改進(jìn)硬件移位。此外,如圖5所示,虛線總是不活躍的并且可以被進(jìn)一步地優(yōu)化,從而降低硬件實(shí)施成本。
[0077]通過以存儲(chǔ)空間的平均D位來分配每個(gè)計(jì)數(shù)器,除去映射的開銷,每個(gè)計(jì)數(shù)器的期望的載荷為EPS*T/N = 2D,其中EPS是每秒的事件。期望的CPU讀取間隔為T = 2D*N/EPS ο為了數(shù)值比較,假設(shè)EPS為654.8MPPS,使用兩個(gè)存儲(chǔ)器組塊,N = 16k個(gè)計(jì)數(shù)器被存儲(chǔ)在片上SRAM存儲(chǔ)器中,其中每個(gè)分析組塊具有17KB存儲(chǔ)器。進(jìn)一步假設(shè)PI = P2 = 16且SI = S2 = 24?;谶@些假設(shè),(情況1)使用不具有溢出FIFO的17位固定寬度計(jì)數(shù)器,CPU讀取間隔為0.2ms-lms ;(情況2)使用具有16深度的溢出FIFO的17位固定寬度計(jì)數(shù)器,CPU讀取間隔為3.2ms,這比情況1好了多于一個(gè)數(shù)量級(jí);以及(情況3)使用統(tǒng)計(jì)多路復(fù)用計(jì)數(shù)器,不考慮溢出FIFO的效果,CPU讀取間隔為?0.41秒,這比情況2好了多于兩個(gè)數(shù)量級(jí)。
[0078]為了使用具有三級(jí)統(tǒng)計(jì)多路復(fù)用計(jì)數(shù)器的32個(gè)存儲(chǔ)器組塊來實(shí)施256K分組計(jì)數(shù)器,CPU讀取間隔為?2.32秒。將三級(jí)統(tǒng)計(jì)多路復(fù)用計(jì)數(shù)器與溢出FIFO耦合,CPU讀取間隔在一分鐘的級(jí)別上。
[0079]圖6圖示了根據(jù)本發(fā)明一些實(shí)施例的更新計(jì)數(shù)器架構(gòu)600中的計(jì)數(shù)器的方法。計(jì)數(shù)器架構(gòu)包括統(tǒng)計(jì)多路復(fù)用計(jì)數(shù)器的級(jí)別的層級(jí)。在步驟605處,確定級(jí)別的層級(jí)中的當(dāng)前級(jí)別中的計(jì)數(shù)器的對(duì)應(yīng)行是否溢出。在一些實(shí)施例中,當(dāng)前級(jí)別是層級(jí)中的最低級(jí)別。
[0080]在步驟610處,基于確定當(dāng)前級(jí)別中的對(duì)應(yīng)行沒有溢出,通過使用第一例程來處理當(dāng)前級(jí)別以下的每個(gè)級(jí)別并且通過使用第二例程來處理當(dāng)前級(jí)別。在一些實(shí)施例中,第一例程包括遞增對(duì)應(yīng)級(jí)別中的計(jì)數(shù)器并且收縮對(duì)應(yīng)級(jí)別中的計(jì)數(shù)器。在一些實(shí)施例中,第二例程包括遞增對(duì)應(yīng)級(jí)別中的計(jì)數(shù)器,其中如果必要,則擴(kuò)展對(duì)應(yīng)級(jí)別中的計(jì)數(shù)器的大小。
[0081]在步驟615處,基于確定當(dāng)前級(jí)別中的對(duì)應(yīng)行確實(shí)發(fā)生溢出,確定上面的下一級(jí)別中的計(jì)數(shù)器的對(duì)應(yīng)行是否溢出。
[0082]在步驟620處,基于確定上面的下一級(jí)別中的計(jì)數(shù)器的對(duì)應(yīng)行沒有溢出,通過使用第一例程來處理上面的下一級(jí)別以下的每個(gè)級(jí)別以及通過使用第二例程來處理上面的下一級(jí)別。再次,第一例程包括遞增對(duì)應(yīng)級(jí)別中的計(jì)數(shù)器并且收縮對(duì)應(yīng)級(jí)別中的計(jì)數(shù)器,以及第二例程包括遞增對(duì)應(yīng)級(jí)別中的計(jì)數(shù)器,其中如果必要,則擴(kuò)展對(duì)應(yīng)級(jí)別中的計(jì)數(shù)器的大小。
[0083]在步驟625處,基于確定上面的下一級(jí)別中的計(jì)數(shù)器的對(duì)應(yīng)行確實(shí)溢出,當(dāng)上面的下一級(jí)別不是級(jí)別的層級(jí)中的最高級(jí)別時(shí),重復(fù)從步驟615開始的步驟;否則,當(dāng)上面的下一級(jí)別是級(jí)別的層級(jí)中的最高級(jí)別時(shí),通過使用第一例程來處理上面的下一級(jí)別以及上面的下一級(jí)別以下的每個(gè)級(jí)別,并且更新溢出隊(duì)列。再次,第一例程包括遞增對(duì)應(yīng)級(jí)別中的計(jì)數(shù)器并且收縮對(duì)應(yīng)級(jí)別中的計(jì)數(shù)器。在一些實(shí)施例中,溢出隊(duì)列通過將計(jì)數(shù)器的計(jì)數(shù)器標(biāo)識(shí)符和溢出寬度推入溢出隊(duì)列而被更新。
[0084]中斷被發(fā)送至CPU以讀取溢出隊(duì)列中的數(shù)據(jù)用于處理。通過溢出隊(duì)列中的數(shù)據(jù)來標(biāo)識(shí)環(huán)繞計(jì)數(shù)器。讀取并清除每個(gè)級(jí)別中的經(jīng)標(biāo)識(shí)的計(jì)數(shù)器的存儲(chǔ)值。基于這些值,可以計(jì)算最終的計(jì)數(shù)器值。
[0085]圖7圖示了根據(jù)本發(fā)明一些實(shí)施例的更新計(jì)數(shù)器架構(gòu)700中的計(jì)數(shù)器的另一方法。在步驟705處,在發(fā)生第一事件時(shí),通過使用第一例程來連續(xù)地處理層級(jí)中的最高級(jí)別以下的每個(gè)級(jí)別并且通過使用第二例程來處理層級(jí)中的最高級(jí)別。在一些實(shí)施例中,第一事件是在層級(jí)中的最高級(jí)別以下的每個(gè)級(jí)別中存在行溢出但是在層級(jí)中的最高級(jí)別中不存在行溢出。
[0086]在一些實(shí)施例中,第一例程包括遞增對(duì)應(yīng)級(jí)別中的計(jì)數(shù)器以及收縮對(duì)應(yīng)級(jí)別中的計(jì)數(shù)器。在一些實(shí)施例中,第二例程包括遞增對(duì)應(yīng)級(jí)別中的計(jì)數(shù)器。在一些實(shí)施例中,遞增計(jì)數(shù)器包括擴(kuò)展對(duì)應(yīng)級(jí)別中的計(jì)數(shù)器的大小。
[0087]在步驟710中,在發(fā)生第二事件時(shí),由第一例程連續(xù)地處理包括層級(jí)中的最高級(jí)別和層級(jí)中的最高級(jí)別以下的每個(gè)級(jí)別,并且更新溢出隊(duì)列。在一些實(shí)施例中,第二事件是在包括層級(jí)中的最高級(jí)別和層級(jí)中的最高級(jí)別以下的每個(gè)級(jí)別中存在行溢出。再次,第一例程包括遞增對(duì)應(yīng)級(jí)別中的計(jì)數(shù)器以及收縮對(duì)應(yīng)級(jí)別中的計(jì)數(shù)器。在一些實(shí)施例中,溢出隊(duì)列通過將計(jì)數(shù)器的計(jì)數(shù)器標(biāo)識(shí)符和溢出寬度推入溢出隊(duì)列而被更新。
[0088]計(jì)數(shù)器架構(gòu)通常被實(shí)施在高速網(wǎng)絡(luò)設(shè)備中,諸如網(wǎng)絡(luò)交換機(jī),該計(jì)數(shù)器架構(gòu)包括分級(jí)統(tǒng)計(jì)多路復(fù)用計(jì)數(shù)器和溢出FIFO。在一些實(shí)施例中,使用存儲(chǔ)器的兩個(gè)組塊,計(jì)數(shù)器被存儲(chǔ)在片上SRAM存儲(chǔ)器中。示例性計(jì)數(shù)器和存儲(chǔ)器組塊在于2014年5月28日提交的名稱為“Method and Apparatus for Flexible and Efficient Analytics in a NetworkSwitch”的美國(guó)專利申請(qǐng)第14/289,533號(hào)中被討論,其內(nèi)容通過引用以其整體被并入于此。如以上比較中所示,該計(jì)數(shù)器架構(gòu)能夠有利地將計(jì)數(shù)器壽命延長(zhǎng)多個(gè)數(shù)量級(jí)。
[0089]本領(lǐng)域普通技術(shù)人員將意識(shí)到也存在其他用途和優(yōu)點(diǎn)。盡管已經(jīng)參考大量具體細(xì)節(jié)描述了本發(fā)明,本領(lǐng)域普通技術(shù)人員將認(rèn)識(shí)到,本發(fā)明可以在不偏離本發(fā)明的精神的情況下以其他具體形式來體現(xiàn)。因此,本領(lǐng)域普遍技術(shù)人員將理解本發(fā)明不由前述說明的細(xì)節(jié)來限制,而更確切地要由所附權(quán)利要求來限定。
【主權(quán)項(xiàng)】
1.一種計(jì)數(shù)器架構(gòu),所述計(jì)數(shù)器架構(gòu)被實(shí)施在網(wǎng)絡(luò)設(shè)備中,所述計(jì)數(shù)器架構(gòu)包括統(tǒng)計(jì)多路復(fù)用計(jì)數(shù)器的多個(gè)級(jí)別,其中統(tǒng)計(jì)多路復(fù)用計(jì)數(shù)器的所述級(jí)別中的每個(gè)級(jí)別包括N個(gè)計(jì)數(shù)器,所述N個(gè)計(jì)數(shù)器被布置在N/P行中,其中所述N/P行中的每一行包括P個(gè)基礎(chǔ)計(jì)數(shù)器和S個(gè)子計(jì)數(shù)器,其中所述P個(gè)基礎(chǔ)計(jì)數(shù)器中的任何基礎(chǔ)計(jì)數(shù)器能夠與所述S個(gè)子計(jì)數(shù)器中的一個(gè)或多個(gè)子計(jì)數(shù)器動(dòng)態(tài)地級(jí)聯(lián)以靈活地?cái)U(kuò)展計(jì)數(shù)容量。2.根據(jù)權(quán)利要求1所述的計(jì)數(shù)器架構(gòu),其中所述N個(gè)計(jì)數(shù)器是環(huán)繞式的。3.根據(jù)權(quán)利要求1所述的計(jì)數(shù)器架構(gòu),其中所述P個(gè)基礎(chǔ)計(jì)數(shù)器中的每個(gè)基礎(chǔ)計(jì)數(shù)器都初始地使用所述S個(gè)子計(jì)數(shù)器中的一個(gè)子計(jì)數(shù)器。4.根據(jù)權(quán)利要求1所述的計(jì)數(shù)器架構(gòu),其中所述多個(gè)級(jí)別包括至少兩個(gè)級(jí)別。5.根據(jù)權(quán)利要求1所述的計(jì)數(shù)器架構(gòu),其中所述多個(gè)級(jí)別包括至少三個(gè)級(jí)別。6.根據(jù)權(quán)利要求1所述的計(jì)數(shù)器架構(gòu),其中所述N/P行中的每一行還包括開銷,其中所述開銷是所述S個(gè)子計(jì)數(shù)器到所述P個(gè)基礎(chǔ)計(jì)數(shù)器的S位映射。7.根據(jù)權(quán)利要求6所述的計(jì)數(shù)器架構(gòu),其中在計(jì)數(shù)器擴(kuò)展時(shí)以及在計(jì)數(shù)器收縮時(shí)更新所述映射。8.根據(jù)權(quán)利要求1所述的計(jì)數(shù)器架構(gòu),其中所述多個(gè)級(jí)別中的第一級(jí)別中的相同行中的計(jì)數(shù)器被置亂到所述多個(gè)級(jí)別中的第二級(jí)別中的不同行中。9.根據(jù)權(quán)利要求8所述的計(jì)數(shù)器架構(gòu),其中所述置亂的隨機(jī)化是計(jì)數(shù)器的計(jì)數(shù)器標(biāo)識(shí)符的比特倒序、哈希函數(shù)、或者按另一順序的比特排列。10.根據(jù)權(quán)利要求1所述的計(jì)數(shù)器架構(gòu),其中所述計(jì)數(shù)器架構(gòu)實(shí)施鏡像的移位邏輯,其中所述鏡像的移位邏輯包括下移邏輯和上移邏輯,所述上移邏輯是所述下移邏輯的鏡像。11.根據(jù)權(quán)利要求10所述的計(jì)數(shù)器架構(gòu),其中具有排名〈P/2的子計(jì)數(shù)器與所述下移邏輯相關(guān)聯(lián),其中所述下移邏輯將所述子計(jì)數(shù)器向上移位。12.根據(jù)權(quán)利要求10所述的計(jì)數(shù)器架構(gòu),其中具有排名多P/2的子計(jì)數(shù)器與所述上移邏輯相關(guān)聯(lián),其中所述上移邏輯將所述子計(jì)數(shù)器向下移位。13.根據(jù)權(quán)利要求1所述的計(jì)數(shù)器架構(gòu),進(jìn)一步包括溢出FIFO,所述溢出FIFO由所述多個(gè)級(jí)別中的最高級(jí)別中的所述N個(gè)計(jì)數(shù)器使用和共享,其中所述溢出FIFO存儲(chǔ)正在溢出的所有計(jì)數(shù)器的相關(guān)聯(lián)的計(jì)數(shù)器標(biāo)