施例中,計(jì)數(shù)器架構(gòu)進(jìn)一步包括鏡像的移位邏輯,以將P個(gè)計(jì)數(shù)器擴(kuò)展到全寬度使得移位的全范圍被減小。
[0029]在一些實(shí)施例中,計(jì)數(shù)器架構(gòu)被配置為更新計(jì)數(shù)器。該計(jì)數(shù)器架構(gòu)被配置為確定級(jí)別的層級(jí)中的當(dāng)前級(jí)別中的計(jì)數(shù)器的對(duì)應(yīng)行是否溢出。
[0030]該計(jì)數(shù)器架構(gòu)被配置為,基于確定當(dāng)前級(jí)別中的對(duì)應(yīng)行沒有溢出,通過使用第一例程來(lái)處理當(dāng)前級(jí)別以下的每個(gè)級(jí)別,并且通過使用第二例程來(lái)處理當(dāng)前級(jí)別。在一些實(shí)施例中,第一例程包括遞增對(duì)應(yīng)級(jí)別中的計(jì)數(shù)器以及收縮對(duì)應(yīng)級(jí)別中的計(jì)數(shù)器。在一些實(shí)施例中,第二例程包括遞增對(duì)應(yīng)級(jí)別中的計(jì)數(shù)器,其中如果必要?jiǎng)t擴(kuò)展對(duì)應(yīng)級(jí)別中的計(jì)數(shù)器的大小。
[0031]該計(jì)數(shù)器架構(gòu)被配置為,基于確定當(dāng)前級(jí)別中的對(duì)應(yīng)行確實(shí)溢出,確定上面的下一級(jí)別中的計(jì)數(shù)器的對(duì)應(yīng)行是否溢出。
[0032]該計(jì)數(shù)器架構(gòu)被配置為,基于確定上面的下一級(jí)別中的計(jì)數(shù)器的對(duì)應(yīng)行沒有溢出,通過使用第一例程來(lái)處理上面的下一級(jí)別以下的每個(gè)級(jí)別并且通過使用第二例程來(lái)處理上面的下一級(jí)別。再次,第一例程包括遞增對(duì)應(yīng)級(jí)別中的計(jì)數(shù)器以及收縮對(duì)應(yīng)級(jí)別中的計(jì)數(shù)器;以及,第二例程包括遞增對(duì)應(yīng)級(jí)別中的計(jì)數(shù)器,其中如果必要?jiǎng)t擴(kuò)展對(duì)應(yīng)級(jí)別中的計(jì)數(shù)器的大小。
[0033]該計(jì)數(shù)器架構(gòu)被配置為,基于確定上面的下一級(jí)別中的計(jì)數(shù)器的對(duì)應(yīng)行溢出,當(dāng)上面的下一級(jí)別不是級(jí)別的層級(jí)中的最高級(jí)別時(shí),返回到確定上面的下一級(jí)別中的計(jì)數(shù)器的對(duì)應(yīng)行是否溢出的步驟;否則,當(dāng)上面的下一級(jí)別是級(jí)別的層級(jí)中的最高級(jí)別時(shí),通過使用第一例程來(lái)處理上面的下一級(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ì)列而被更新。
【附圖說明】
[0034]如附圖中所圖示的,從以下本發(fā)明示例實(shí)施例的更具體的描述中,前述內(nèi)容將是明顯的,在附圖中相同附圖標(biāo)記指代貫穿不同視圖的相同部分。附圖不一定按比例,相反重點(diǎn)在于圖示本發(fā)明的實(shí)施例。
[0035]圖1圖示了根據(jù)本發(fā)明一些實(shí)施例的統(tǒng)計(jì)多路復(fù)用計(jì)數(shù)器的框圖。
[0036]圖2A圖示了根據(jù)本發(fā)明一些實(shí)施例的分級(jí)統(tǒng)計(jì)多路復(fù)用計(jì)數(shù)器的框圖。
[0037]圖2B圖示了根據(jù)本發(fā)明一些實(shí)施例的具有溢出FIFO的分級(jí)統(tǒng)計(jì)多路復(fù)用計(jì)數(shù)器的框圖。
[0038]圖3A和圖3B圖示了根據(jù)本發(fā)明一些實(shí)施例的更新計(jì)數(shù)器的流程圖。
[0039]圖4圖示了根據(jù)本發(fā)明一些實(shí)施例的計(jì)數(shù)器更新示例。
[0040]圖5圖示了根據(jù)本發(fā)明一些實(shí)施例的將子計(jì)數(shù)器映射到基礎(chǔ)計(jì)數(shù)器的示例。
[0041]圖6圖示了根據(jù)本發(fā)明一些實(shí)施例的更新計(jì)數(shù)器架構(gòu)中的計(jì)數(shù)器的方法。
[0042]圖7圖示了根據(jù)本發(fā)明一些實(shí)施例的更新計(jì)數(shù)器架構(gòu)中的計(jì)數(shù)器的另一方法。
【具體實(shí)施方式】
[0043]在以下描述中,出于解釋的目的闡述了許多細(xì)節(jié)。然而,本領(lǐng)域普通技術(shù)人員將意識(shí)到,可以在不使用這些特定細(xì)節(jié)的情況下實(shí)踐本發(fā)明。因此,本發(fā)明不旨在被限制于所示的實(shí)施例,而是將被賦予與本文所描述的原理和特征相一致的最寬范圍。
[0044]本發(fā)明的實(shí)施例涉及一種架構(gòu),該架構(gòu)使用分級(jí)統(tǒng)計(jì)多路復(fù)用計(jì)數(shù)器來(lái)將計(jì)數(shù)器壽命延長(zhǎng)多個(gè)數(shù)量級(jí)。每個(gè)級(jí)別都包括統(tǒng)計(jì)多路復(fù)用計(jì)數(shù)器。該統(tǒng)計(jì)多路復(fù)用計(jì)數(shù)器包括P個(gè)基礎(chǔ)計(jì)數(shù)器和S個(gè)子計(jì)數(shù)器,其中S個(gè)子計(jì)數(shù)器與P個(gè)基礎(chǔ)計(jì)數(shù)器動(dòng)態(tài)地級(jí)聯(lián)。當(dāng)一個(gè)級(jí)別中的行溢出發(fā)生時(shí),上面的下一級(jí)別中的計(jì)數(shù)器被用來(lái)延長(zhǎng)計(jì)數(shù)器壽命。分級(jí)統(tǒng)計(jì)多路復(fù)用計(jì)數(shù)器可以與溢出FIFO —起使用以進(jìn)一步延長(zhǎng)計(jì)數(shù)器壽命。
[0045]圖1圖示了根據(jù)本發(fā)明一些實(shí)施例的統(tǒng)計(jì)多路復(fù)用計(jì)數(shù)器的框圖。在一些實(shí)施例中,計(jì)數(shù)器被布置在N/P行中,其中N是全部計(jì)數(shù)器的數(shù)量并且P是每一行中的基礎(chǔ)計(jì)數(shù)器的數(shù)量。在圖1中,基礎(chǔ)計(jì)數(shù)器被標(biāo)識(shí)為ctr_n。通常,N個(gè)計(jì)數(shù)器中的每個(gè)計(jì)數(shù)器與唯一的計(jì)數(shù)器標(biāo)識(shí)符相關(guān)聯(lián)。為了最佳實(shí)施,P通常被選擇為2的冪。
[0046]每一行包括P個(gè)基礎(chǔ)計(jì)數(shù)器105、S個(gè)子計(jì)數(shù)器(或程序塊(brick)) 110和開銷(overhead) 115。開銷是S個(gè)子計(jì)數(shù)器到P個(gè)基礎(chǔ)計(jì)數(shù)器的S位映射115。當(dāng)計(jì)數(shù)器被擴(kuò)展或被收縮時(shí)更新S位映射115。下面討論了計(jì)數(shù)器擴(kuò)展和收縮。術(shù)語(yǔ)子計(jì)數(shù)器和程序塊(brick)可以在本文被可交換地使用。
[0047]每一行中的P個(gè)基礎(chǔ)計(jì)數(shù)器105共享一組存儲(chǔ)器比特,該組存儲(chǔ)器比特在P個(gè)基礎(chǔ)計(jì)數(shù)器105之間被均勻地共享。這些P個(gè)基礎(chǔ)計(jì)數(shù)器105中的每個(gè)基礎(chǔ)計(jì)數(shù)器是固定的大小。類似地,每一行中的S個(gè)子計(jì)數(shù)器110共享一組存儲(chǔ)器位,該組存儲(chǔ)器比特在S個(gè)子計(jì)數(shù)器110之間均勻地共享。這些S個(gè)子計(jì)數(shù)器110中的每個(gè)子計(jì)數(shù)器是固定的大小。每個(gè)基礎(chǔ)計(jì)數(shù)器與至少一個(gè)子計(jì)數(shù)器級(jí)聯(lián)。如所需要的,P個(gè)基礎(chǔ)計(jì)數(shù)器105中的任何基礎(chǔ)計(jì)數(shù)器能夠與對(duì)應(yīng)的S個(gè)子計(jì)數(shù)器110中的一個(gè)或多個(gè)子計(jì)數(shù)器動(dòng)態(tài)地級(jí)聯(lián)以靈活地?cái)U(kuò)展計(jì)數(shù)容量。例如,兩位計(jì)數(shù)器可以計(jì)數(shù)4個(gè)值。通過向計(jì)數(shù)器添加附加位,現(xiàn)在為三位計(jì)數(shù)器的計(jì)數(shù)器可以計(jì)數(shù)8個(gè)值,使計(jì)數(shù)容量加倍。因此,計(jì)數(shù)器可以通過將一個(gè)或多個(gè)子計(jì)數(shù)器級(jí)聯(lián)至基礎(chǔ)計(jì)數(shù)器而被擴(kuò)展。并且簡(jiǎn)而言之,計(jì)數(shù)器可以通過移除一個(gè)或多個(gè)子計(jì)數(shù)器而被收縮。
[0048]在圖1中,在每一行中P = 4且S = 8,盡管其他值也是可能的。在一些實(shí)施例中,P個(gè)基礎(chǔ)計(jì)數(shù)器105中的每個(gè)基礎(chǔ)計(jì)數(shù)器都初始地使用一個(gè)子計(jì)數(shù)器110。因此,在每一行中存在四個(gè)程序塊110,這四個(gè)程序塊110是初始地空閑的或者未分配的。隨著基礎(chǔ)計(jì)數(shù)器105的生長(zhǎng),四個(gè)剩余的空閑程序塊110被動(dòng)態(tài)地分配給P個(gè)基礎(chǔ)計(jì)數(shù)器105中需要擴(kuò)展其計(jì)數(shù)容量的任何基礎(chǔ)計(jì)數(shù)器。
[0049]當(dāng)一行中的P個(gè)計(jì)數(shù)器中的一個(gè)計(jì)數(shù)器被遞增時(shí)行溢出發(fā)生,要求程序塊擴(kuò)展以避免計(jì)數(shù)器溢出,但是不再有任何可用的程序塊被用來(lái)擴(kuò)展。
[0050]通過大數(shù)定律,當(dāng)P足夠大時(shí),P個(gè)基礎(chǔ)計(jì)數(shù)器105的期望的總寬度將相當(dāng)接近log2(EPS*T/N)*P,其中EPS是每秒的事件以及T是定時(shí)間隔。具體地,EPS*T是T期間的期望的總事件計(jì)數(shù),以及EPS*T/N是每計(jì)數(shù)器的平均載荷。在一些實(shí)施例中,EPS是每秒的分組。在一些實(shí)施例中,EPS是每秒的字節(jié)。
[0051]然而,使P統(tǒng)計(jì)上足夠大對(duì)于在硬件中實(shí)施來(lái)說是巨大的挑戰(zhàn)。分級(jí)統(tǒng)計(jì)多路復(fù)用計(jì)數(shù)器的架構(gòu)解決了該問題。
[0052]圖2A圖示了根據(jù)本發(fā)明一些實(shí)施例的分級(jí)統(tǒng)計(jì)多路復(fù)用計(jì)數(shù)器200的框圖。分級(jí)統(tǒng)計(jì)多路復(fù)用計(jì)數(shù)器200包括統(tǒng)計(jì)多路復(fù)用計(jì)數(shù)器的多個(gè)級(jí)別205a、205b (統(tǒng)稱為205)。統(tǒng)計(jì)多路復(fù)用計(jì)數(shù)器205的多個(gè)級(jí)別中的每個(gè)級(jí)別都如上述統(tǒng)計(jì)多路復(fù)用計(jì)數(shù)器100那樣被類似地配置。
[0053]在圖2A中,分級(jí)統(tǒng)計(jì)多路復(fù)用計(jì)數(shù)器200包括兩個(gè)級(jí)別:級(jí)別1計(jì)數(shù)器205a和級(jí)別2計(jì)數(shù)器205b。分級(jí)統(tǒng)計(jì)多路復(fù)用計(jì)數(shù)器200可以包括多于兩個(gè)級(jí)別,但是每個(gè)級(jí)別增加了映射比特的開銷。
[0054]在每個(gè)級(jí)別205上可以存在相同或不同數(shù)量的計(jì)數(shù)器。在每個(gè)級(jí)別205內(nèi),每個(gè)子計(jì)數(shù)器的寬度是相同的并且每個(gè)基礎(chǔ)計(jì)數(shù)器的寬度是相同的。然而,跨越級(jí)別205的子計(jì)數(shù)器的寬度可以是相同的或不同的。類似地,跨越級(jí)別205的基礎(chǔ)計(jì)數(shù)器的寬度可以是相同的或不同的。在圖2中,每個(gè)級(jí)別1基礎(chǔ)計(jì)數(shù)器是rl個(gè)比特寬,每個(gè)級(jí)別1子計(jì)數(shù)器是kl個(gè)比特寬,每個(gè)級(jí)別2基礎(chǔ)計(jì)數(shù)器是r2個(gè)比特寬,以及每個(gè)級(jí)別2子計(jì)數(shù)器是k2個(gè)比特寬。
[0055]當(dāng)行溢出發(fā)生在級(jí)別1中時(shí),使用級(jí)別2中的計(jì)數(shù)器。例如,事件進(jìn)入級(jí)別1計(jì)數(shù)器C。假設(shè)級(jí)別1計(jì)數(shù)器C溢出,除非另一程序塊被分配給級(jí)別1計(jì)數(shù)器C。然而,如果在對(duì)應(yīng)行中不存在可用的程序塊,則級(jí)別1計(jì)數(shù)器C將環(huán)繞,并且計(jì)數(shù)被添加到級(jí)別2計(jì)數(shù)器C。
[0056]如圖2A所示,在一些實(shí)施例中,級(jí)別1中的相同行中的計(jì)數(shù)器被置亂(shuffle)到級(jí)別2中的不同行中。在一些實(shí)施例中,P1*P2個(gè)計(jì)數(shù)器被統(tǒng)計(jì)地多路復(fù)用。置亂的隨機(jī)化可以是計(jì)數(shù)器的計(jì)數(shù)器標(biāo)識(shí)符的比特倒序。備選地,置亂的隨機(jī)化可以基于哈希函數(shù)。備選地,置亂的隨機(jī)化是按另一順序的比特排列。假設(shè)在級(jí)別2中沒有行溢出發(fā)生,用于計(jì)數(shù)器 C 的總計(jì)數(shù)是 level_2_ctr*2(rl+kl)+level_l_ctr,其中 level_l_ctr 和 level_2_ctr 分別是級(jí)別1計(jì)數(shù)器C和級(jí)別2計(jì)數(shù)器C的值。
[0057]如圖2B所示,分級(jí)統(tǒng)計(jì)多路復(fù)用計(jì)數(shù)器200可以與溢出FIF0210—同使用。在[date]提交的名稱為“Counter with Overflow FIFO and