專利名稱:存儲在快和慢存儲器中的統(tǒng)計(jì)計(jì)數(shù)器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實(shí)施例通常涉及高速數(shù)字計(jì)數(shù)器領(lǐng)域;并且更特別地,涉及將數(shù)字計(jì)數(shù)器分段在短訪問時間(access time)存儲器和長訪問時間存儲器中。
背景技術(shù):
有許多計(jì)算應(yīng)用需要高速數(shù)字計(jì)數(shù)器。例如,在電信領(lǐng)域中,有用于許多統(tǒng)計(jì)的數(shù)字計(jì)數(shù)器。特別地,許多網(wǎng)絡(luò)元件保持計(jì)數(shù)器用于統(tǒng)計(jì)例如進(jìn)來的分組、外出的分組、以及落入特別類別的分組。特別重要的是由于事件需要計(jì)數(shù)非??斓匕l(fā)生,所以這些計(jì)數(shù)器能夠以非常高的速率遞增來保持準(zhǔn)確的統(tǒng)計(jì)。例如,在利用基于分組的通信的網(wǎng)絡(luò)元件的一些電信應(yīng)用中,有必要計(jì)數(shù)進(jìn)來的分組的數(shù)量。隨著每個分組在網(wǎng)絡(luò)元件中的線路卡上到達(dá),進(jìn)來的分組的計(jì)數(shù)器遞增來記錄進(jìn)來的分組的數(shù)量。隨著電信的速度增加,分組到達(dá)網(wǎng)絡(luò)元件的速率也增加。因此,必須相應(yīng)地增加計(jì)數(shù)器遞增的速度。此外,必須保持的同步計(jì)數(shù)器的數(shù)量可以是數(shù)十萬個或百萬個,并且保持計(jì)數(shù)器狀態(tài)來跟上計(jì)數(shù)速率是困難和昂貴的。快速存儲器帶來尺寸、功率或成本的增加。例如,在給定技術(shù)點(diǎn)中,外部RL-DRAM部件比等效DDR-DRAM部件大約快4倍、小4/5、以及貴16倍。因此存在對具有較慢存儲器的尺寸和成本以及較快存儲器的性能的希望。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例包含一種在存儲器控制器中執(zhí)行的用于保持分段式計(jì)數(shù)器的方法。存儲器控制器耦合到主存儲器和輔助存儲器。在本實(shí)施例中,主存儲器具有比輔助存儲器更短的訪問時間。在處理期間,發(fā)生需要更新分段式計(jì)數(shù)器中的一個的事件。存儲器控制器通過立即更新分段式計(jì)數(shù)器的初級部分來響應(yīng)這些事件。初級部分包含較低階的比特并且存儲在主存儲器中。此外,每次分段式計(jì)數(shù)器的初級部分翻轉(zhuǎn)時,存儲器控制器確定應(yīng)該更新分段式計(jì)數(shù)器的次級部分。次級部分至少包含分段式計(jì)數(shù)器的所有未包括在初級部分中的比特并且存儲在輔助存儲器中。此外,存儲器控制器周期性地并且獨(dú)立于需要更新的事件地確定應(yīng)該機(jī)遇式更新分段式計(jì)數(shù)器的次級部分。每次確定要更新分段式計(jì)數(shù)器的次級部分時(無論是機(jī)遇式還是由于事件),必須更新分段式計(jì)數(shù)器的次級部分和初級部分兩者。機(jī)遇式更新基于概率函數(shù)和當(dāng)前至少偽隨機(jī)數(shù),以使分段式計(jì)數(shù)器的次級部分的更新在時間上概率性地分布。本發(fā)明的實(shí)施例還包含一種配置為保持分段式計(jì)數(shù)器的存儲器控制器。存儲器控制器耦合到主存儲器和輔助存儲器。在本實(shí)施例中,主存儲器具有比輔助存儲器更短的訪問時間。存儲器控制器包括統(tǒng)計(jì)模塊和輔助存儲器訪問隊(duì)列。輔助存儲器訪問隊(duì)列耦合在輔助存儲器與統(tǒng)計(jì)模塊之間。統(tǒng)計(jì)模塊配置為發(fā)起分段式計(jì)數(shù)器的更新。每個分段式計(jì)數(shù)器包括存儲在主存儲器中的初級部分以及存儲在輔助存儲器中的次級部分。初級部分包含較低階的比特而次級部分至少包含分段式計(jì)數(shù)器的所有未包括在初級部分中的比特。統(tǒng)計(jì)模塊包括機(jī)遇式更新模塊和強(qiáng)制更新模塊。機(jī)遇式更新模塊配置為確定對應(yīng)于每個分段式計(jì)數(shù)器的概率函數(shù)并且基于所確定的概率函數(shù)來概率性地發(fā)起次級部分的一個或多個機(jī)遇式更新。強(qiáng)制更新模塊配置為發(fā)起次級部分的一個或多個強(qiáng)制更新。輔助存儲器訪問隊(duì)列配置為存儲一個或多個輔助存儲器訪問請求,該輔助存儲器訪問請求中的至少一個是對更新次級部分中的一個的請求。輔助存儲器訪問隊(duì)列還配置為執(zhí)行一個或多個輔助存儲器訪問請求。以此方式,次級部分的更新在時間上概率性地分布。本發(fā)明的實(shí)施例包含一種配置為保持分段式計(jì)數(shù)器的線路卡,每個計(jì)數(shù)器包括初級部分和次級部分。初級部分包含較低階的比特,而次級部分至少包含分段式計(jì)數(shù)器的所有未包括在初級部分中的比特。線路卡包括一個或多個分組處理器核、主存儲器、輔助存儲器以及存儲器控制器。分組處理器核配置為傳送指令,其中該指令中的至少一個指示應(yīng)該更新分段式計(jì)數(shù)器中的一個并且該指令中的至少一個指示對于分段式計(jì)數(shù)器中的一個的狀態(tài)的請求。主存儲器配置為存儲分段式計(jì)數(shù)器的初級部分,并且輔助存儲器配置為存儲分段式計(jì)數(shù)器的次級部分。在本實(shí)施例中,主存儲器具有比輔助存儲器更短的訪問時間。存儲器控制器耦合在一個或多個分組處理器核、主存儲器以及輔助存儲器之間。存儲器控制器配置為從一個或多個分組處理器核接收指令并且包括機(jī)遇式更新模塊和強(qiáng)制更新模塊。機(jī)遇式更新模塊配置為基于概率函數(shù)和至少偽隨機(jī)數(shù)來為分段式計(jì)數(shù)器中的每個周期性地確定是否要機(jī)遇式更新次級部分。在本實(shí)施例中,次級部分的更新引起初級部分的復(fù)位。強(qiáng)制更新模塊配置為基于所接收的指令來確定要更新與所接收的指令關(guān)聯(lián)的分段式計(jì)數(shù)器的次級部分。強(qiáng)制更新模塊還配置為基于在沒有次級部分的更新的情況下翻轉(zhuǎn)分段式計(jì)數(shù)器的初級部分的避免來確定對次級部分的強(qiáng)制更新,以使避免機(jī)遇式更新模塊機(jī)遇式更新次級部分并且在翻轉(zhuǎn)之前復(fù)位初級部分的失敗。以此方式,次級部分的更新在時間上概率性地分布。
以示例的方式而不以限制的方式在附圖的圖中圖示本發(fā)明,其中相似的參考指示類似元件。通過參考下文描述和附圖可以最佳地理解本發(fā)明,附圖用來圖示本發(fā)明的實(shí)施例。在圖中:
圖1是圖示根據(jù)本發(fā)明的實(shí)施例的用于保持多個分段式計(jì)數(shù)器的方法的流程圖。圖2是圖示根據(jù)本發(fā)明的實(shí)施例的多個分段式計(jì)數(shù)器的保持的數(shù)據(jù)流圖。圖3是圖示根據(jù)本發(fā)明的第一實(shí)施例的在其中保持多個分段式計(jì)數(shù)器的包含存儲器控制器、主存儲器以及輔助存儲器的網(wǎng)絡(luò)元件的線路卡的框圖。圖4是圖示根據(jù)本發(fā)明的實(shí)施例的多個分段式計(jì)數(shù)器的保持的數(shù)據(jù)流圖。圖5是圖示根據(jù)本發(fā)明的第二實(shí)施例的在其中保持多個分段式計(jì)數(shù)器的包含存儲器控制器、主存儲器以及輔助存儲器的網(wǎng)絡(luò)元件的線路卡的框圖。
具體實(shí)施例方式在下文描述中,為了提供本發(fā)明的更深入理解,闡述了許多具體細(xì)節(jié),例如邏輯實(shí)現(xiàn)、操作碼、規(guī)定操作數(shù)的手段、資源劃分/共享/復(fù)制實(shí)現(xiàn)、系統(tǒng)部件的類型和相互關(guān)系、以及邏輯劃分/集成選擇。然而,本領(lǐng)域的技術(shù)人員將意識到可以實(shí)踐本發(fā)明而沒有這樣的具體細(xì)節(jié)。在其它實(shí)例中,為了不模糊本發(fā)明,不詳細(xì)地示出控制結(jié)構(gòu)、門級電路、以及全軟件指令序列。利用所包含的描述,本領(lǐng)域的普通技術(shù)人員將能夠?qū)崿F(xiàn)適當(dāng)?shù)墓δ苄远鴽]有過度的實(shí)驗(yàn)。說明書中對“ 一個實(shí)施例”、“實(shí)施例”、“示例實(shí)施例”等的提及指示所描述的實(shí)施例可包含特定特征、結(jié)構(gòu)或特性,但每個實(shí)施例可以不一定包含該特定特征、結(jié)構(gòu)或特性。此外,這樣的短語不一定提及相同的實(shí)施例。另外,當(dāng)結(jié)合實(shí)施例描述特定特征、結(jié)構(gòu)或特性時,被認(rèn)為結(jié)合其它實(shí)施例(無論是否清楚地描述)而實(shí)施這樣的特征、結(jié)構(gòu)或特性是在本領(lǐng)域的技術(shù)人員的認(rèn)知內(nèi)的。在下文描述和權(quán)利要求中,可使用術(shù)語“耦合”和“連接”以及它們的派生詞。應(yīng)該理解這些術(shù)語不旨在作為彼此的同義詞。“耦合”用于指示兩個或者更多元件(可以或可以不彼此直接物理或電接觸)合作或彼此交互。“連接”用于指示彼此耦合的兩個或者更多元件之間的通信的建立。以示例的方式,本發(fā)明的實(shí)施例包含電信設(shè)備中的分段式計(jì)數(shù)器的實(shí)現(xiàn)來提供保持準(zhǔn)確的網(wǎng)絡(luò)統(tǒng)計(jì)的高速計(jì)數(shù)器。具體地,許多件網(wǎng)絡(luò)設(shè)備(例如網(wǎng)絡(luò)元件)保持用來記錄許多數(shù)據(jù)點(diǎn)(例如個別消費(fèi)者或裝置的網(wǎng)絡(luò)信道使用、帶寬可用性、資源使用)的許多實(shí)時統(tǒng)計(jì)。這些統(tǒng)計(jì)用在一些位置中(用于計(jì)費(fèi)目的)以及其它位置中(用于網(wǎng)絡(luò)維護(hù)和服務(wù)質(zhì)量保障)。另一些位置可以利用統(tǒng)計(jì)來追蹤設(shè)備需要或優(yōu)先處理設(shè)備升級。因此,重要的是計(jì)數(shù)器是準(zhǔn)確的以使計(jì)數(shù)器表示的統(tǒng)計(jì)也是準(zhǔn)確的。盡管本發(fā)明的實(shí)施例是在網(wǎng)絡(luò)技術(shù)方面描述的,但本發(fā)明的備選實(shí)施例可以在需要高速計(jì)數(shù)器的任何地方實(shí)現(xiàn)分段式計(jì)數(shù)器。每當(dāng)以非常高的速率發(fā)生需要計(jì)數(shù)的事件(“可數(shù)事件”)、計(jì)數(shù)值充分大、以及計(jì)數(shù)器的基數(shù)足夠大以使主存儲器太有限或太貴而不能以常規(guī)的方式實(shí)現(xiàn)計(jì)數(shù)器時,分段式計(jì)數(shù)器是特別期望的。所描述的方法和器件用于保持多個分段式計(jì)數(shù)器。每個分段式計(jì)數(shù)器包含分別存儲在主存儲器和輔助存儲器中的初級部分和次級部分,其中初級部分包含較低階的比特并且次級部分至少包含分段式計(jì)數(shù)器的未包括在初級部分中的所有比特(例如更高階的比特)。每當(dāng)可數(shù)事件發(fā)生時,更新給定分段式計(jì)數(shù)器的初級部分。每當(dāng)初級部分翻轉(zhuǎn)時,必須更新次級部分。當(dāng)需要同時更新非常大量的次級部分時(例如,最糟的情況場景是其中需要同時更新所有的次級部分),這可能導(dǎo)致輔助存儲器難以承受。在避免該情況的努力中,基于概率和至少偽隨機(jī)數(shù)來機(jī)遇式更新次級部分,并且每個這樣的機(jī)遇式更新引起以使初級部分遠(yuǎn)離其翻轉(zhuǎn)點(diǎn)的方式來更新對應(yīng)初級部分。以此方式,存儲在較慢的輔助存儲器中的次級部分的更新在時間上概率性地分布,從而避免輔助存儲器處的瓶頸。圖1是圖示根據(jù)本發(fā)明的實(shí)施例的用于保持多個分段式計(jì)數(shù)器的方法的流程圖。此流程圖示出用于確保對次級部分的更新在時間上擴(kuò)展的一個實(shí)施例。該圖將方法的一系列步驟圖示為個別框。取決于特定實(shí)施例,一些步驟是可選的并且以虛線標(biāo)記示出以指示步驟可以或可以不出現(xiàn)在每個實(shí)施例中。圖1開始于頂部的框105,框105指示系統(tǒng)檢查是否機(jī)遇式更新分段式計(jì)數(shù)器A的次級部分時的處理期間的點(diǎn)。如以上所論述的,每當(dāng)可數(shù)事件發(fā)生時,每個分段式計(jì)數(shù)器的初級部分遞增。獨(dú)立于該遞增,可以確定的是應(yīng)該機(jī)遇式更新分段式計(jì)數(shù)器的次級部分(即,在初級部分到達(dá)閾值之前,該閾值指示要調(diào)整以防止初級部分翻轉(zhuǎn)它的極限的需要)。在本發(fā)明的一個實(shí)施例中,首先檢查機(jī)遇式比率限制器(opportunistic ratelimiter)是否活動110 —描繪為虛線框,其經(jīng)由從105到110的箭頭連接到框105的下面。機(jī)遇式比率限制器抑制機(jī)遇式更新的數(shù)量以使避免到輔助存儲器的擁塞。如果機(jī)遇式比率限制器活動,則系統(tǒng)繼續(xù)到它的處理190 —描繪在框110的右邊并且經(jīng)由從110到190的箭頭連接。如果機(jī)遇式比率限制器不活動,則系統(tǒng)繼續(xù)確定是否應(yīng)該執(zhí)行機(jī)遇式更新120。參考以后的圖來進(jìn)一步描述機(jī)遇式比率限制器的細(xì)節(jié)。備選實(shí)施例以相反的次序來執(zhí)行檢查110和120,首先檢查是否應(yīng)該執(zhí)行機(jī)遇式更新120并且其次檢查機(jī)遇式比率限制器是否活動110。其它實(shí)施例以并行的方式來執(zhí)行檢查110和120。然后確定是否應(yīng)該發(fā)生分段式計(jì)數(shù)器A的機(jī)遇式更新120 —描繪為決定框,其在活動的機(jī)遇式比率限制器的可選檢查110的下面并且經(jīng)由從110到120的箭頭連接。如果確定不應(yīng)該發(fā)生機(jī)遇式更新,則系統(tǒng)繼續(xù)到它的處理190 —其被示出為從120到190的箭頭。如果確定應(yīng)該發(fā)生機(jī)遇式更新,則流程下移到更新計(jì)數(shù)器A的存儲在輔助存儲器中的次級部分170。在不同實(shí)施例中可以不同地實(shí)現(xiàn)是否運(yùn)行分段式計(jì)數(shù)器的機(jī)遇式更新的確定。例如,在一個實(shí)施例中,將概率函數(shù)指派給每個分段式計(jì)數(shù)器。每次需要做出是否機(jī)遇式更新計(jì)數(shù)器的確定時,與概率函數(shù)一起使用隨機(jī)數(shù)一偽隨機(jī)數(shù)或真實(shí)的隨機(jī)數(shù)(術(shù)語“至少偽隨機(jī)數(shù)”用于提及兩者)一來做出概率性確定。在另一實(shí)施例中,比較隨機(jī)數(shù)與存儲在分段式計(jì)數(shù)器的初級部分中的當(dāng)前值并且該比較的結(jié)果用于確定是否執(zhí)行更新。在又一實(shí)施例中,概率函數(shù)的選擇至少部分基于存儲在分段式計(jì)數(shù)器的初級部分中的當(dāng)前值和該初級部分的極限。以此方式,更接近于它們的極限的初級部分具有比遠(yuǎn)離它們的極限的初級部分更高的生成機(jī)遇式更新的概率。圖1接著是更新存儲在輔助存儲器中的計(jì)數(shù)器A的次級部分的步驟170 —描繪為經(jīng)由從120到170的箭頭連接到框120的下面的框170。接在此步驟之后的是將計(jì)數(shù)器A的初級部分更新到遠(yuǎn)離它的極限的值(例如,將它復(fù)位到零)180 —描繪為經(jīng)由從170到180的箭頭連接到框170的下面的框。參考以下圖來描述分段式計(jì)數(shù)器的次級部分和初級部分的更新。在分段式計(jì)數(shù)器A的初級部分的更新之后,系統(tǒng)繼續(xù)它的處理190 (如從180到190的箭頭所示的)。備選實(shí)施例以相反的次序來執(zhí)行更新170和180,首先更新初級部分180并且其次更新次級部分170。其它實(shí)施例以并行的方式來執(zhí)行更新170和180。如以上所描述的,期望響應(yīng)于機(jī)遇式更新來發(fā)生計(jì)數(shù)器A的次級部分的更新170,然而當(dāng)必要時也強(qiáng)制更新。換句話說,由于不保證足夠頻繁地發(fā)生機(jī)遇式更新以防止初級部分翻轉(zhuǎn),所以希望允許設(shè)置閾值以使當(dāng)分段式計(jì)數(shù)器A的初級部分到達(dá)該閾值時150,可以發(fā)生強(qiáng)制更新160。在圖1中經(jīng)由框160描繪的強(qiáng)制更新160 (在框180的左邊并且經(jīng)由從160到180的箭頭連接)是以與框170相同的方式發(fā)生的。此外,在至少一個實(shí)施例中,系統(tǒng)可接收需要分段式計(jì)數(shù)器A的次級部分的強(qiáng)制更新的指令一描繪為經(jīng)由從140到160的箭頭連接到框160的虛線框。例如,在本發(fā)明的一些實(shí)施例中,響應(yīng)于讀取分段式計(jì)數(shù)器A的值的指令,需要這樣的強(qiáng)制更新(在可以返回分段式計(jì)數(shù)器A的值之前,必須更新分段式計(jì)數(shù)器A的次級部分來包含存儲在計(jì)數(shù)器的初級部分中的值)。圖2和圖3圖示保持分段式計(jì)數(shù)器的一個示范性方式,而圖4和圖5圖示備選示范性方式。圖2是圖示根據(jù)本發(fā)明的實(shí)施例的多個分段式計(jì)數(shù)器的保持的數(shù)據(jù)流圖。沿著左邊是垂直線,其貫穿圖的長度并且用指向底部的箭頭終止,其描繪時間的進(jìn)展。沿著頂部是三個垂直欄的三個標(biāo)題:“處理期間的離散事件”、“計(jì)數(shù)器A的初級部分中的值”、以及“計(jì)數(shù)器A的次級部分中的值”。計(jì)數(shù)器A的初級部分和次級部分的值的標(biāo)題被以虛線框圍住并且標(biāo)出分段式計(jì)數(shù)器A來示出那兩個部分在邏輯上耦合來形成分段式計(jì)數(shù)器A。在初級部分標(biāo)題和次級部分標(biāo)題的下面是指示存儲在計(jì)數(shù)器A的初級部分和次級部分中的示范性比特?cái)?shù)量的標(biāo)簽。具體地,圖2圖示具有16個總比特的分段式計(jì)數(shù)器,其中它的初級部分具有8個比特并且它的次級部分具有16個比特。順著圖往下,在第一欄中標(biāo)出八個離散行(a) - (h)并且在第二欄和第三欄中分別指示存儲在計(jì)數(shù)器A的初級部分和次級部分中的對應(yīng)值。示出為(a)的第一離散行是在系統(tǒng)的正常處理期間的一些點(diǎn)。在處理中的此特定點(diǎn)處,分段式計(jì)數(shù)器A的值是1403,其中存儲在計(jì)數(shù)器A的次級部分中的是1279并且存儲在計(jì)數(shù)器A的初級部分中的是124。在離散行(b),分段式計(jì)數(shù)器A遞增,使總值為1404,其中有初級部分中的125和次級部分中的1279。在離散行(C),確定應(yīng)該發(fā)生分段式計(jì)數(shù)器A的次級部分的機(jī)遇式更新。如參考圖1所描述的來發(fā)生此確定。此時,示出從初級部分到次級部分的虛線箭頭來指示將初級部分中的值加到次級部分。次級部分從1279轉(zhuǎn)變到1404 (1279加上125)。初級部分從125轉(zhuǎn)變到0,示出初級部分已經(jīng)復(fù)位(B卩,更新到遠(yuǎn)離它的翻轉(zhuǎn)點(diǎn)的值)。離散行(d)指示分段式計(jì)數(shù)器A的一系列遞增已經(jīng)發(fā)生,從而將初級部分的值從O遞增到254 ;此時,在次級部分中存儲的值仍然是1404。盡管遞增是示為每次對初級部分加1,而備選實(shí)施例也可以用大于I的數(shù)量來遞增初級部分。在離散行(e),再次遞增分段式計(jì)數(shù)器A(將初級部分中的值提高到255),255是給定8個比特的初級部分的閾值極限。離散行(f)示出分段式計(jì)數(shù)器A的強(qiáng)制更新。示出從初級部分到次級部分的虛線箭頭來指示將值255從初級部分加到次級部分。示出初級部分從255轉(zhuǎn)變到O并且示出次級部分從1404轉(zhuǎn)變到1659 (1404加上255)。在另一實(shí)施例中,分段式計(jì)數(shù)器A的強(qiáng)制更新響應(yīng)于初級部分從255翻轉(zhuǎn)到O以及設(shè)置為指示翻轉(zhuǎn)的進(jìn)位標(biāo)記。在本實(shí)施例中,強(qiáng)制更新會使256加到分段式計(jì)數(shù)器A的次級部分。離散行(g)指示分段式計(jì)數(shù)器A的一系列遞增已經(jīng)發(fā)生,從而將初級部分的值從O遞增到123 ;此時,在次級部分中存儲的值仍然是1659。離散行(h)示出響應(yīng)于接收需要強(qiáng)制更新的指令而發(fā)生的強(qiáng)制更新,如參考圖1所描述的。示出從初級部分到次級部分的虛線箭頭來指示將值123從初級部分加到次級部分。示出初級部分從123轉(zhuǎn)變到O并且示出次級部分從1659轉(zhuǎn)變到1782( 1659加上123)。因此,圖2示出根據(jù)本發(fā)明的一個實(shí)施例的分段式計(jì)數(shù)器的初級部分與次級部分之間的相
互關(guān)系。圖3是圖示根據(jù)本發(fā)明的第一實(shí)施例的在其中保持多個分段式計(jì)數(shù)器的包含存儲器控制器、主存儲器以及輔助存儲器的網(wǎng)絡(luò)元件的線路卡的框圖。線路卡301包含存儲器控制器305、主存儲器340、以及輔助存儲器345,在其中保持根據(jù)本發(fā)明的實(shí)施例的多個分段式計(jì)數(shù)器。
如本文所使用的,網(wǎng)絡(luò)元件(例如,路由器、交換機(jī)、網(wǎng)橋)是一件連網(wǎng)設(shè)備,該連網(wǎng)設(shè)備包含硬件和軟件,其在通信上與網(wǎng)絡(luò)上的其它設(shè)備(例如,其它網(wǎng)絡(luò)元件、終端站)互連。一些網(wǎng)絡(luò)元件是“多服務(wù)網(wǎng)絡(luò)元件”,其提供對于多個連網(wǎng)功能(例如,路由、橋連、交換、層2聚合、會話邊界控制、服務(wù)質(zhì)量、和/或訂購者管理)的支持,和/或提供對于多個應(yīng)用服務(wù)(例如,數(shù)據(jù)、語音、以及視頻)的支持。訂購者終端站(例如,服務(wù)器、工作站、膝上型計(jì)算機(jī)、上網(wǎng)本、掌上電腦、移動電話、智能電話、多媒體電話、因特網(wǎng)語音協(xié)議(VOIP)電話、用戶設(shè)備、終端、便攜式媒體播放器、GPS單元、游戲系統(tǒng)、機(jī)頂盒)訪問通過因特網(wǎng)提供的內(nèi)容/服務(wù)和/或在虛擬專用網(wǎng)(VPN)(在因特網(wǎng)上覆蓋(例如,隧穿))上提供的內(nèi)容/服務(wù)。典型地由屬于參與到對等服務(wù)中的服務(wù)或內(nèi)容提供商或終端站的一個或多個終端站(例如,服務(wù)器終端站)來提供該內(nèi)容和/或服務(wù),并且,例如,該內(nèi)容和/或服務(wù)可包含公共網(wǎng)頁(例如,免費(fèi)內(nèi)容、店面、搜索服務(wù))、私有網(wǎng)頁(例如,提供電子郵件服務(wù)的憑用戶名/密碼訪問的網(wǎng)頁),和/或在VPN之上的企業(yè)網(wǎng)絡(luò)。典型地,將訂購者終端站耦合(例如,通過耦合(有線或無線地)到接入網(wǎng)絡(luò)的消費(fèi)者端設(shè)備)到邊緣網(wǎng)絡(luò)元件,該邊緣網(wǎng)絡(luò)元件耦合(例如,通過一個或多個核心網(wǎng)絡(luò)元件)到其它邊緣網(wǎng)絡(luò)元件,該其它邊緣網(wǎng)絡(luò)元件耦合到其它終端站(例如,服務(wù)器終端站)。網(wǎng)絡(luò)元件通常分為控制平面和數(shù)據(jù)平面(有時被稱作轉(zhuǎn)發(fā)平面或媒體平面)。在網(wǎng)絡(luò)元件是路由器(或?qū)崿F(xiàn)路由功能性)的情況下,控制平面典型地確定如何路由數(shù)據(jù)(例如,分組)(例如,確定數(shù)據(jù)的下一跳和該數(shù)據(jù)的輸出端口),并且數(shù)據(jù)平面負(fù)責(zé)轉(zhuǎn)發(fā)該數(shù)據(jù)。例如,控制平面典型地包含一個或多個路由協(xié)議(例如,邊界網(wǎng)關(guān)協(xié)議(BGP)、內(nèi)部網(wǎng)關(guān)協(xié)議(IGP)(例如,開放最短路徑優(yōu)先(0SPF)、路由信息協(xié)議(RIP)、中間系統(tǒng)到中間系統(tǒng)(IS-1S))、標(biāo)簽分配協(xié)議(LDP)、資源保留協(xié)議(RSVP)),該路由協(xié)議與其它網(wǎng)絡(luò)元件通信來基于一個或多個路由度量而交換路線并且選擇那些路線。路線和鄰接存儲在控制平面上的一個或多個路由結(jié)構(gòu)(例如,路由信息庫(RIB)、標(biāo)簽信息庫(LIB)、一個或多個鄰接結(jié)構(gòu))中??刂破矫婊诼酚山Y(jié)構(gòu)用信息(例如,鄰接和路線信息)來編程數(shù)據(jù)平面。例如,控制平面將鄰接和路線信息編程為數(shù)據(jù)平面上的一個或多個轉(zhuǎn)發(fā)結(jié)構(gòu)(例如,轉(zhuǎn)發(fā)信息庫(FIB)、標(biāo)簽轉(zhuǎn)發(fā)信息庫(LFIB)、以及一個或多個鄰接結(jié)構(gòu))。當(dāng)轉(zhuǎn)發(fā)業(yè)務(wù)時,數(shù)據(jù)平面使用這些轉(zhuǎn)發(fā)和鄰接結(jié)構(gòu)。在一個實(shí)施例中,網(wǎng)絡(luò)元件包含一組一個或多個線路卡、一組一個或多個控制卡、以及可選地一組一個或多個服務(wù)卡(有時被稱作資源卡)。這些卡通過一個或多個機(jī)制(例如,耦合線路卡的第一全網(wǎng)格和耦合所有卡的第二全網(wǎng)格)而耦合在一起。這組線路卡組成數(shù)據(jù)平面,而這組控制卡通過線路卡利用外部網(wǎng)絡(luò)元件來提供控制平面并交換分組。這組服務(wù)卡可以提供專業(yè)處理(例如,層4到層7服務(wù)(例如,防火墻、IPsec, IDS、P2P)、VoIP會話邊界控制器、移動無線網(wǎng)關(guān)(GGSN,演進(jìn)分組系統(tǒng)(EPS)網(wǎng)關(guān)))。以示例的方式,服務(wù)卡可用于終止IPsec隧道并且執(zhí)行服務(wù)人員認(rèn)證和加密算法。備選實(shí)施例可以使用不同的網(wǎng)絡(luò)元件架構(gòu)(例如,其中沒有線路卡和控制卡的分開)。在圖3中圖示的線路卡301以如圖1和圖2所描述的方式來操作。此圖包含取決于具體實(shí)現(xiàn)為可選的并且以虛線框示出的模塊。在圖3中,存儲器控制器305耦合在一個或多個處理器核302、主存儲器340、以及輔助存儲器345之間,其中主存儲器具有比輔助存儲器更短的訪問時間。
不同實(shí)施例可以用不同集成方式來實(shí)現(xiàn)處理器核302、存儲器控制器305、主存儲器340、以及輔助存儲器345 (例如,它們中的每個都可以是單獨(dú)的封裝中的單獨(dú)專用集成電路(ASICS);處理器核302、存儲器控制器305、以及主存儲器340可以在一個ASIC上,而輔助存儲器345在另一 ASIC上(并且它們可以共享封裝或具有單獨(dú)的封裝);主存儲器340可以在一個ASIC上并且受控于第一存儲器控制器305,該第一存儲器控制器305與第二存儲器控制器305 (耦合到第二 ASIC上的輔助存儲器345)通信;可以存在具有處理器核302的第一裸芯片、具有存儲器控制器305和主存儲器340的第二裸芯片、以及具有輔助存儲器345的第三裸芯片(并且它們可以共享封裝或具有單獨(dú)的封裝);以及任何其它可行組合)。盡管在一個實(shí)施例中主存儲器是RL-DRAM (減少延遲時間的動態(tài)隨機(jī)存取存儲器),而備選實(shí)施例可以使用其它類型的存儲器(例如,eDRAM (嵌入式動態(tài)隨機(jī)存取存儲器))。關(guān)于輔助存儲器,盡管一個實(shí)施例利用DDR-DRAM(雙倍數(shù)據(jù)率動態(tài)隨機(jī)存取存儲器),而備選實(shí)施例可以利用其它類型的存儲器(例如,SDR-DRAM (單倍數(shù)據(jù)率動態(tài)隨機(jī)存取存儲器))。存儲器控制器305包括保持多個分段式計(jì)數(shù)器的統(tǒng)計(jì)模塊310。每個分段式計(jì)數(shù)器包括存儲在主存儲器340中的初級部分和存儲在輔助存儲器345中的次級部分。在本實(shí)施例中,初級部分包含低階比特位置而次級部分包含分段式計(jì)數(shù)器的低階和高階比特位置。例如,初級部分包含N個比特,示為比特位置O至M (N減1),而次級部分包含Z個比特,示為比特位置O至Y (Z減I)。次級部分包含比特位置O至M (換句話說,分段式計(jì)數(shù)器具有Z個比特并且次級部分也具有Z個比特,但當(dāng)初級部分的值等于O時,次級部分的值僅反映分段式計(jì)數(shù)器的值)。參考圖2,N可以是8而Z可以是16。在圖3中,關(guān)于彎曲的虛線(在每個端點(diǎn)用箭頭結(jié)束)而示出每個分段式計(jì)數(shù)器的初級部分和次級部分。這條線用來指示兩個部分在邏輯上耦合來組成分段式計(jì)數(shù)器。本發(fā)明的不同實(shí)施例可以實(shí)現(xiàn)具有不同大小的初級部分(N個比特)的不同大小的分段式計(jì)數(shù)器(Z個比特)。例如,在本發(fā)明的一個實(shí)施例中,一個分段式計(jì)數(shù)器是16比特寬,能夠存儲O至65535的無符號值,并且16比特分段式計(jì)數(shù)器的初級部分是8比特寬,能夠存儲O至255的無符號值。在另一實(shí)施例中,一個分段式計(jì)數(shù)器是64比特寬,O至
1.84xl019,并且64比特計(jì)數(shù)器的初級部分是32比特寬,O至4.29xl09。因此,分段式計(jì)數(shù)器能夠存儲比單獨(dú)的分段式計(jì)數(shù)器的初級部分更大的值。隨著計(jì)數(shù)器遞增,分段式計(jì)數(shù)器的初級部分將接近初級部分的極限(即,翻轉(zhuǎn)點(diǎn));在8比特初級部分的情況下,極限會是255。由于接近此極限,變得有必要基于更新方法來更新分段式計(jì)數(shù)器的次級部分并且將初級部分減少回到小于極限的值。統(tǒng)計(jì)模塊310耦合在主存儲器340與輔助存儲器345之間。隨著每個可數(shù)事件發(fā)生,在主存儲器340中關(guān)聯(lián)的分段式計(jì)數(shù)器的初級部分遞增。統(tǒng)計(jì)模塊310包括機(jī)遇式更新模塊320和強(qiáng)制更新模塊330。機(jī)遇式更新模塊320用如來自圖1的步驟105 (可選地110)和120所描述的方式工作。因此,機(jī)遇式更新模塊320使分段式計(jì)數(shù)器進(jìn)行機(jī)遇式更新。在利用概率函數(shù)的實(shí)施例中,機(jī)遇式更新模塊320保持與多個分段式計(jì)數(shù)器關(guān)聯(lián)的一組一個或多個概率函數(shù)326。在一個實(shí)施例中,存在著用于所有分段式計(jì)數(shù)器的公共概率函數(shù)。備選實(shí)施例可以使用分段式計(jì)數(shù)器的多個概率函數(shù)。為做出確定120,機(jī)遇式更新模塊包含生成至少偽隨機(jī)數(shù)的機(jī)制。在一個實(shí)施例中,機(jī)遇式更新模塊320包含線性反饋移位寄存器327,其使用種子值來生成偽隨機(jī)數(shù)算術(shù)序列。在另一實(shí)施例中,機(jī)遇式更新模塊320包含真實(shí)隨機(jī)數(shù)生成器,其利用不可預(yù)知的自然過程來生成真實(shí)的隨機(jī)數(shù)。更進(jìn)一步,每當(dāng)強(qiáng)制更新模塊330確定強(qiáng)制更新必須發(fā)生140和150時,強(qiáng)制更新模塊引起分段式計(jì)數(shù)器中的一個的次級部分的更新160。例如,無論何時接收到從分段式計(jì)數(shù)器中的一個讀取值的指令時140,強(qiáng)制更新模塊引起該更新。響應(yīng)于確定應(yīng)該發(fā)生分段式計(jì)數(shù)器的次級部分的更新170,統(tǒng)計(jì)模塊310發(fā)起存儲在輔助存儲器345中的次級部分的更新。統(tǒng)計(jì)模塊310從存儲分段式計(jì)數(shù)器的對應(yīng)初級部分的主存儲器340檢索值。將此值加到存儲在次級部分中的值并且將此總和存儲回到輔助存儲器345中的次級部分。隨著統(tǒng)計(jì)模塊310從輔助存儲器345讀取值并且發(fā)起到輔助存儲器345的寫入,以輔助存儲器訪問請求355和輔助存儲器訪問響應(yīng)357的形式發(fā)起訪問。在至少一個實(shí)施例中,存儲器控制器305還包括輔助存儲器訪問隊(duì)列350,其耦合在統(tǒng)計(jì)模塊310與輔助存儲器345之間。每個輔助存儲器訪問請求355被放入輔助存儲器訪問隊(duì)列350,當(dāng)每個輔助存儲器訪問完成時,其被發(fā)起。在一個實(shí)施例中,輔助存儲器訪問隊(duì)列350可以將隊(duì)列中的請求數(shù)量作為隊(duì)列深度370報(bào)告回給統(tǒng)計(jì)模塊310。然后機(jī)遇式更新模塊320可以使用隊(duì)列深度370作為是否發(fā)起機(jī)遇式更新120的確定的部分。在本發(fā)明的一個實(shí)施例中,隊(duì)列深度370可用于改變在確定步驟120期間選擇的概率函數(shù)。在本發(fā)明的另一實(shí)施例中,當(dāng)輔助存儲器訪問隊(duì)列350滿時,隊(duì)列深度370可用于停止所有機(jī)遇式更新。在利用機(jī)遇式比率限制器325的實(shí)施例中,如參考步驟110所描述的,機(jī)遇式更新模塊320檢查機(jī)遇式比率限制器325是否活動。機(jī)遇式比率限制器325的優(yōu)勢是避免不太可能的發(fā)生在時間上接近地發(fā)生一系列機(jī)遇式更新并且呈現(xiàn)到輔助存儲器345的擁塞,輔助存儲器345具有比主存儲器340更長的訪問時間。在一個實(shí)施例中,每次機(jī)遇式更新發(fā)生時,機(jī)遇式比率限制器325啟動定時器并且在該定時器的持續(xù)時間內(nèi)保持活動。在另一實(shí)施例中,機(jī)遇式比率限制器325保持一組信號量;每個信號量用于追蹤每個顯著的機(jī)遇式更新。當(dāng)所有信號量當(dāng)前正在使用時,機(jī)遇式比率限制器325變?yōu)榛顒?。在又一?shí)施例中,機(jī)遇式比率限制器325可以響應(yīng)于到輔助存儲器的擁塞的測量而激活。以此方式,機(jī)遇式比率限制器325將機(jī)遇式更新的最大比率強(qiáng)加到輔助存儲器345。盡管已經(jīng)具體參考包含處理器核、存儲器控制器、主存儲器、以及輔助存儲器的線路卡描述了以前的實(shí)施例。包含線路卡的其它實(shí)施例,該線路卡具有一組一個或多個離散部件、一組一個或多個網(wǎng)絡(luò)處理聯(lián)合體、一組一個或多個網(wǎng)絡(luò)接口、以及可選地一組一個或多個構(gòu)建界面(有時需要一起連接多個線路卡到系統(tǒng)中的其它線路卡和控制卡)。這些部件通過一個或多個機(jī)制(例如,通過點(diǎn)到點(diǎn)電連接、通過點(diǎn)到多點(diǎn)電連接、通過光學(xué)到光學(xué)連接)耦合在一起。這組離散部件可以包含RAM裝置、FPGA裝置、微處理器裝置、網(wǎng)橋裝置、媒體適配部件、以及專用特殊功能的裝置(稱為ASIC)。這樣的ASIC通常是專用的和在機(jī)構(gòu)內(nèi)設(shè)計(jì)的。以示例的方式,專用ASIC可以耦合到各種RAM裝置,例如RL-DRAM和DDR-RAM,并且耦合到其它裝置(例如媒體適配部件、構(gòu)建界面(構(gòu)建訪問處理器)、以及本地線路卡處理器)。專用ASIC還可包含如參考圖3所描述的存儲器控制器305、主存儲器340、以及輔助存儲器345。具體ASIC的另外實(shí)施例可包含更少或者更多的部件(例如可包含處理器核302和存儲器控制器305但不包含主存儲器340或輔助存儲器345)。此外,取決于確定如何劃分解決方案的物理約束和折衷,可以在單個或若干個ASIC中實(shí)現(xiàn)不同實(shí)施例。并且特別地,單個ASIC裸芯片可以包含主存儲器控制器和輔助存儲器控制器兩者。或者在其它實(shí)施例中,主存儲器控制器可以在一個ASIC中而輔助存儲器控制器可以在分開的ASIC中,兩個ASIC之間具有通信路徑。圖4是圖示根據(jù)本發(fā)明的實(shí)施例的多個分段式計(jì)數(shù)器的保持的數(shù)據(jù)流圖。沿著左邊是垂直線,其貫穿圖的長度并且用指向底部的箭頭終止,其描繪時間的進(jìn)展。沿著頂部是三個垂直欄的三個標(biāo)題:“處理期間的離散事件”、“計(jì)數(shù)器A的初級部分中的值”、以及“計(jì)數(shù)器A的次級部分中的值”。計(jì)數(shù)器A的初級部分和次級部分的值的標(biāo)題被用虛線框圍住并且標(biāo)出分段式計(jì)數(shù)器A來示出那兩個部分在邏輯上耦合來形成分段式計(jì)數(shù)器A。在初級部分標(biāo)題和次級部分標(biāo)題的下面是指示存儲在計(jì)數(shù)器A的初級部分和次級部分中的示范性比特?cái)?shù)量的標(biāo)簽。具體地,圖4圖示有16個總比特的分段式計(jì)數(shù)器,其中它的初級部分具有8個比特并且它的次級部分具有8個比特。在本實(shí)施例中,計(jì)數(shù)器A的次級部分表示計(jì)數(shù)器的較高比特而初級部分表示計(jì)數(shù)器的較低部分。盡管在分段式計(jì)數(shù)器的部分中組合了 16個比特,而計(jì)數(shù)器僅具有15個比特的寬度,這是因?yàn)榇渭壊糠值淖畹捅忍嘏c初級部分的最高比特重疊。在這個意義上,初級部分的比特7 (O為低階比特)可以表示27的值(128),但次級部分的比特O也可以表示分段式計(jì)數(shù)器中的27的值。在本實(shí)施例中,通過將次級部分向左二進(jìn)制移位(在此示例中為7比特)而發(fā)現(xiàn)分段式計(jì)數(shù)器的總值,并且確定初級部分和二進(jìn)制移位的次級部分的總和。因此分段式計(jì)數(shù)器(給定16比特)可以存儲值0-32767 ;15個比特用于存儲。應(yīng)該理解盡管本實(shí)施例預(yù)期I比特的重疊,但其它實(shí)施例可以利用多個重疊比特。順著圖往下,在第一欄中標(biāo)出八個離散行(a)_ (h)并且在第二欄和第三欄中分別指示存儲在計(jì)數(shù)器的初級部分和次級部分中的值。第一離散行(a)是在系統(tǒng)中的正常處理期間的一些點(diǎn)。分段式計(jì)數(shù)器A的值是1282,其中值130存儲在初級部分中并且值9存儲在次級部分中。次級部分中的值9表示分段式計(jì)數(shù)器中的1152 (在向左二進(jìn)制移位7比特的位置之后)。例如,9的二進(jìn)制表示是1001并且向左二進(jìn)制移位7比特到10010000000。將二進(jìn)制值10010000000加到130的二進(jìn)制表示(10000010),給出總和iomoooooio (十進(jìn)制表示為1282)。在以前的文本和圖4中,將重疊比特加下劃線。在離散行(b),通過對初級部分加一來遞增分段式計(jì)數(shù)器A,使總和為1283,其中初級部分中為131并且次級部分中為9。在離散行(C),確定應(yīng)該發(fā)生分段式計(jì)數(shù)器A的次級部分的機(jī)遇式更新。盡管額外的檢查發(fā)生以使當(dāng)存儲在初級部分中的值小于128時不做出更新(由于對于值0-127無需改變次級部分),如參考圖1所描述的來發(fā)生此機(jī)遇式更新確定。此時,示出從初級部分到次級部分的虛線箭頭來指示對次級部分加I。加I是因?yàn)槌跫壊糠种械闹丿B比特(比特位置7)的值設(shè)為I并且在初級部分中相當(dāng)于128的此比特在次級部分中相當(dāng)于I。在離散行(C),次級部分轉(zhuǎn)變成10而初級部分轉(zhuǎn)變成3,其小于它的以前值的128 (即,更新到遠(yuǎn)離它的翻轉(zhuǎn)點(diǎn)的值)?,F(xiàn)在分段式計(jì)數(shù)器具有初級部分中的00000011 (3)和次級部分中的OOOOlOliQ (10,或在二進(jìn)制移位之后的1278)。在如以前所描述的二進(jìn)制移位和相加之后,分段式計(jì)數(shù)器的總值是ooooiomoooooil (1283)。離散行(d)指示對分段式計(jì)數(shù)器A的一系列遞增已經(jīng)發(fā)生,從而將分段式計(jì)數(shù)器的值遞增到1535 ;此時,在次級部分中存儲的值仍然是10。初級部分處于它的極限255,所有比特設(shè)為I。由于當(dāng)分段式計(jì)數(shù)器從離散行(c)遞增到離散行(d)時沒有中間的機(jī)遇式更新,所以初級部分到達(dá)它的極限。由于在每次檢查沒有更新時可以提出機(jī)遇式更新確定或者由于存在著到輔助存儲器的擁塞(當(dāng)嘗試使它們失敗的以前的機(jī)遇式更新時),機(jī)遇式更新可以不發(fā)生。離散行(e)指示對分段式計(jì)數(shù)器的另一遞增,其使初級部分從255翻轉(zhuǎn)到O并且設(shè)置進(jìn)位標(biāo)記(指示翻轉(zhuǎn)狀況)。在此情況下,分段式計(jì)數(shù)器的次級部分需要在初級部分遞增到255之前再次更新,以使沒有在計(jì)數(shù)器的總值中丟失以前的256次遞增。在離散行(f),由于到達(dá)初級部分閾值(由進(jìn)位標(biāo)記來指示)而發(fā)起強(qiáng)制更新。此時,初級部分存儲值“O”(但也有從翻轉(zhuǎn)設(shè)置的進(jìn)位標(biāo)記)并且次級部分存儲值“10”。示出虛線箭頭來指示對次級部分加2,這是因?yàn)檫M(jìn)位標(biāo)記相對于256,它是次級部分的比特位置I中的I。在強(qiáng)制更新之后,可以復(fù)位進(jìn)位標(biāo)記并且次級部分存儲12(在向左二進(jìn)制移位7次之后,它的值為1536)。離散行(g)指示分段式計(jì)數(shù)器A的一系列遞增已經(jīng)將初級部分的值從O增加到154。此時,次級部分仍然設(shè)置為12,使得總值為1690 (在如以上所描述的二進(jìn)制移位并且相加之后)。離散行(h)示出響應(yīng)于接收需要強(qiáng)制更新的指令而發(fā)生的強(qiáng)制更新,如參考圖1所描述的。示出從初級部分到次級部分的虛線箭頭來指示將值I加到次級部分(由于初級部分中的值大于127)。示出初級部分減去128,或清空比特位置7,而現(xiàn)在將次級部分設(shè)置為13。在離散行(h)的實(shí)線框中圖示二進(jìn)制移位和遞增。初級部分(現(xiàn)在設(shè)置為卯011010
(26))用于低階比特而次級部分的移位的比特000011010000000 (移位之前為13并且移位之后為1664)用來生成分段式計(jì)數(shù)器的總值1690。圖5是圖示根據(jù)本發(fā)明的第二實(shí)施例在其中保持多個分段式計(jì)數(shù)器的包含存儲器控制器、主存儲器、以及輔助存儲器的網(wǎng)絡(luò)元件的線路卡的框圖。除了統(tǒng)計(jì)模塊510和存儲在輔助存儲器345中的分段式計(jì)數(shù)器的次級部分之外,圖5中的線路卡501類似于圖3的線路卡301并且以相同方式操作。統(tǒng)計(jì)模塊510以類似于統(tǒng)計(jì)模塊310的方式操作,除了:1)執(zhí)行分段式計(jì)數(shù)器的次級部分和初級部分的更新的方式;2)在執(zhí)行(機(jī)遇式或強(qiáng)制的)更新之前它所執(zhí)行的附加的檢查;以及3)它返回分段式計(jì)數(shù)器的讀取的方式。關(guān)于統(tǒng)計(jì)模塊510更新分段式計(jì)數(shù)器的次級部分和初級部分的方式,統(tǒng)計(jì)模塊510取初級部分A中的該組一個或多個重疊比特并且將它們向右二進(jìn)制移位以使初級部分的最低階重疊比特與次級部分的最低階重疊比特排成一行,它會是次級部分的比特O。例如,使用如圖4中所描述的兩個8比特部分(和一個重疊比特),則存儲在初級部分的第7比特位置中的值會被向右移動7個位置并且加到次級部分的比特位置O。在使用3個重疊比特的另一實(shí)施例中,初級部分的比特5-7會二進(jìn)制移位來與比特0-2排成一行并且加到分段式計(jì)數(shù)器的次級部分。在利用進(jìn)位標(biāo)記的另一實(shí)施例中,由于進(jìn)位標(biāo)記會表示不只是重疊需要加到次級部分,所以次級部分的更新也會包含將進(jìn)位標(biāo)記加到在次級部分中沒有重疊的最低階比特。在所有這些實(shí)施例中,在對次級部分更新(即,更新到遠(yuǎn)離它的翻轉(zhuǎn)點(diǎn)的值)之后,初級部分中的重疊比特和進(jìn)位標(biāo)記應(yīng)該設(shè)置為O。每當(dāng)確定應(yīng)該發(fā)生對分段式計(jì)數(shù)器的次級部分的更新時,在執(zhí)行更新之前執(zhí)行附加的檢查。在本實(shí)施例中,在初級部分執(zhí)行更新之前,統(tǒng)計(jì)模塊510首先確保將一個或多個重疊比特中的至少一個(或進(jìn)位標(biāo)記)設(shè)置為I。如果初級部分中的重疊比特或進(jìn)位標(biāo)記沒有任一個被設(shè)置為1,則不需要更新并且統(tǒng)計(jì)模塊510繼續(xù)處理。如果需要更新,則統(tǒng)計(jì)模塊510如以上所描述地執(zhí)行對次級部分的更新并且繼續(xù)處理。本發(fā)明的本實(shí)施例具有優(yōu)勢:在分段式計(jì)數(shù)器的讀取期間,在讀取值之前,不需要更新該分段式計(jì)數(shù)器的次級部分。反而,在一個實(shí)施例中,存儲器控制器讀取分段式計(jì)數(shù)器的初級部分和次級部分;向左移位次級部分以使初級部分中的最高階重疊比特與次級部分的最高階重疊比特排成一行;將兩個值加在一起來形成分段式計(jì)數(shù)器的總值;并且將此值返回來作為分段式計(jì)數(shù)器的值。盡管在一個實(shí)施例中,在存儲器控制器返回初級部分和次級部分之后,在處理器核中完成移位和相加。本發(fā)明的備選實(shí)施例留下這些任務(wù)中的一個或兩個待執(zhí)行(例如,軟件可以接收兩個數(shù)并且負(fù)責(zé)相加或移位并且將它們相加)。在本實(shí)施例中,存儲在輔助存儲器345中的每個分段式計(jì)數(shù)器的次級部分包括未存儲在初級部分中的分段式計(jì)數(shù)器的所有比特以及至少一個重疊比特。在圖5中,關(guān)于彎曲的虛線(在每個端點(diǎn)上以箭頭結(jié)束)示出每個分段式計(jì)數(shù)器的初級部分和次級部分。這條線用來指示兩個部分在邏輯上耦合來組成分段式計(jì)數(shù)器。如在圖3中那樣,圖5示出主存儲器340存儲初級部分中的低階比特位置O至M的N個比特。然而,不同于圖3,圖5存儲用于高階比特位置的輔助存儲器中的V個比特。在具有一個重疊比特的一個實(shí)施例中,輔助存儲器345存儲分段式計(jì)數(shù)器的次級部分中的高階比特位置M至U,從而給分段式計(jì)數(shù)器(N+V-1)的寬度。在具有D個重疊比特的另一實(shí)施例中,輔助存儲器345存儲比特位置K至S,從而給分段式計(jì)數(shù)器(N+V-D)的寬度。因此,參考對于每個部分使用8個比特(例如,N=8和V=8)和I個重疊比特的圖4,分段式計(jì)數(shù)器為15比特寬并且能夠存儲0-32767的無符號值。初級部分會保留比特位置O至7 (用于N的8個比特)并且次級部分會保留比特位置7至14 (具有I個重疊比特的用于V的8個比特)。利用3個重疊比特的相同圖會具有初級部分中的比特位置O至7 (用于N的8個比特)和次級部分中的比特位置5至12 (具有3個重疊比特的用于V的8個比特);總共是13比特寬并且能夠存儲O至8191的值。圖5中的分段式計(jì)數(shù)器的初級部分和次級部分的更新用圖4中所描述的方式來操作。各詵實(shí)施例
盡管已經(jīng)結(jié)合具有比輔助存儲器更快的訪問時間的主存儲器來描述本發(fā)明的實(shí)施例,但其它實(shí)施例可以利用具有不同功耗特性的存儲器。因此,本發(fā)明的實(shí)施例不限于具有不同訪問時間特性的兩個存儲器。此外,盡管已經(jīng)結(jié)合將計(jì)數(shù)器分段為兩個存儲器中的兩個部分來描述本發(fā)明的實(shí)施例,但可以實(shí)現(xiàn)備選實(shí)施例以使計(jì)數(shù)器分段成多于兩個部分并且因此存儲在多于兩個存儲器中??梢酝ㄟ^具有初級部分、次級部分、以及第三部分來實(shí)現(xiàn)這樣的實(shí)施例。因此,來自初級部分的翻轉(zhuǎn)會更新次級部分并且來自次級部分的翻轉(zhuǎn)會更新第三部分。此外,盡管圖中的流程圖示出本發(fā)明的某些實(shí)施例所執(zhí)行的操作的特定次序,但應(yīng)該理解這樣的次序是示范性的(例如,備選實(shí)施例可以用不同次序來執(zhí)行操作、組合某些操作、重疊某些操作等)。盡管已經(jīng)依據(jù)若干實(shí)施例來描述本發(fā)明,但本領(lǐng)域技術(shù)人員將意識到本發(fā)明不限于所描述的實(shí)施例,并且可以用所附的權(quán)利要求的精神和范圍內(nèi)的修改和變更來實(shí)踐。因此本描述視為說明性的而不是限制性的。
權(quán)利要求
1.一種在存儲器控制器中執(zhí)行的用于保持多個分段式計(jì)數(shù)器的方法,其中所述存儲器控制器耦合到主存儲器和輔助存儲器,其中所述主存儲器具有比所述輔助存儲器更短的訪問時間,所述方法包含步驟: 響應(yīng)于需要所述多個分段式計(jì)數(shù)器中的一個的更新的每個事件,立即更新存儲在所述主存儲器中的所述分段式計(jì)數(shù)器的初級部分,其中所述初級部分包含所述多個分段式計(jì)數(shù)器的低階比特位置; 響應(yīng)于每次所述初級部分中的一個翻轉(zhuǎn),確定更新存儲在所述輔助存儲器中的所述分段式計(jì)數(shù)器的次級部分,其中所述次級部分至少包括所述多個分段式計(jì)數(shù)器的未包含在所述初級部分中的所有比特位置; 基于當(dāng)前概率函數(shù)和當(dāng)前至少偽隨機(jī)數(shù)而周期性地并且獨(dú)立于所述事件地為所述多個分段式計(jì)數(shù)器中的每個確定是否機(jī)遇式更新存儲在所述輔助存儲器中的所述分段式計(jì)數(shù)器的所述次級部分; 每次確定更新所述多個分段式計(jì)數(shù)器中的一個的所述次級部分時,執(zhí)行步驟: 更新所述分段式計(jì)數(shù)器的所述次級部分;以及 更新所述分段式計(jì)數(shù)器的所述初級部分,由此所述次級部分的更新在時間上概率性地分布。
2.如權(quán)利要求1所述的方法,其中更新所述分段式計(jì)數(shù)器的所述初級部分的步驟包含復(fù)位所述分段式計(jì)數(shù)器的所述初級部分。
3.如權(quán)利要求1所述的方法,其中周期性地確定的步驟還包括步驟: 確定機(jī)遇式比率限制器是否活動,其中當(dāng)所述比率限制器活動時,確定不機(jī)遇式更新所述分段式計(jì)數(shù)器的所述次級部分。
4.如權(quán)利要求1所述的方法,還包括步驟: 接收與所述多個分段式計(jì)數(shù)器中的一個關(guān)聯(lián)的指令;以及 基于所述指令來確定是否對所述分段式計(jì)數(shù)器的所述次級部分強(qiáng)制更新。
5.如權(quán)利要求1所述的方法,其中: 所述次級部分包含所述多個分段式計(jì)數(shù)器的所有比特位置,其中更新所述次級部分的步驟包含步驟: 從所述輔助存儲器讀取所述分段式計(jì)數(shù)器的所述次級部分; 將所述分段式計(jì)數(shù)器的所述初級部分加到所述分段式計(jì)數(shù)器的所述次級部分;以及 將所述相加步驟的結(jié)果存儲為所述分段式計(jì)數(shù)器的所述次級部分。
6.如權(quán)利要求5所述的方法,其中更新所述分段式計(jì)數(shù)器的所述次級部分的步驟包含步驟: 基于所述分段式計(jì)數(shù)器的所述初級部分與閾值的比較來確定是否對所述分段式計(jì)數(shù)器的所述次級部分強(qiáng)制更新,其中所述閾值表示所述分段式計(jì)數(shù)器的所述初級部分正在翻轉(zhuǎn)或即將翻轉(zhuǎn)。
7.如權(quán)利要求5所述的方法,其中周期性地確定的步驟包含步驟: 基于輔助存儲器訪問隊(duì)列的隊(duì)列深度并且基于所述分段式計(jì)數(shù)器的所述初級部分與閾值的比較來確定要應(yīng)用的所述當(dāng)前概率函數(shù),其中所述閾值表示所述分段式計(jì)數(shù)器的所述初級部分即將翻轉(zhuǎn),并且其中所述讀取步驟包含將對訪問所述輔助存儲器中的所述分段式計(jì)數(shù)器的所述次級部分的請求放入所述輔助存儲器訪問隊(duì)列的步驟。
8.一種存儲器控制器,耦合到主存儲器和輔助存儲器,用于保持多個分段式計(jì)數(shù)器,其中所述主存儲器具有比所述輔助存儲器更短的訪問時間并且所述存儲器控制器包括: 統(tǒng)計(jì)模塊,配置為發(fā)起所述多個分段式計(jì)數(shù)器的更新,每個分段式計(jì)數(shù)器包括存儲在所述主存儲器中的初級部分以及存儲在所述輔助存儲器中的次級部分,其中所述初級部分包含所述多個分段式計(jì)數(shù)器的低階比特位置,并且所述次級部分至少包含所述多個分段式計(jì)數(shù)器的未包括在所述初級部分中的所有比特位置,所述統(tǒng)計(jì)模塊包含: 機(jī)遇式更新模塊,配置為: 確定對應(yīng)于所述多個分段式計(jì)數(shù)器中的每個的概率函數(shù),以及 基于所確定的概率函數(shù),概率性地發(fā)起所述次級部分的一個或多個機(jī)遇式更新,以及 強(qiáng)制更新模塊,配置為發(fā)起所述次級部分的一個或多個強(qiáng)制更新;以及 輔助存儲器訪問隊(duì)列,耦合在所述輔助存儲器與所述統(tǒng)計(jì)模塊之間,配置為: 存儲一個或多個輔助存儲器訪問請求,其中所述輔助存儲器訪問請求中的一個或多個要請求所述次級部分中的一個的更新,以及 執(zhí)行所述一個或多個輔助存儲器訪問請求,由此所述次級部分的更新在時間上概率性地分布。
9.如權(quán)利要求8所述的存儲器控制器,其中基于所述輔助存儲器訪問隊(duì)列的隊(duì)列深度的指示并且基于所述分段式計(jì)數(shù)器的所述初級部分與閾值的比較來確定要應(yīng)用的所述概率函數(shù),其中所述閾值指示所述分段式計(jì)數(shù)器的所述初級部分何時將接近翻轉(zhuǎn)點(diǎn)。
10.如權(quán)利要求8所述的存儲器控制器,其中所述次級部分包含所述多個分段式計(jì)數(shù)器的所有比特位置并且其中所述統(tǒng)計(jì)模塊還配置為: 從所述輔助存儲器讀取所述次級部分; 將所述初級部分加到所述次級部分; 復(fù)位所述初級部分;以及 將所述相加的結(jié)果存儲為所述次級部分。
11.如權(quán)利要求8所述的存儲器控制器,其中所述統(tǒng)計(jì)模塊還包括: 機(jī)遇式比率限制器,配置為當(dāng)所述機(jī)遇式比率限制器活動時,防止一個或多個機(jī)遇式更新。
12.如權(quán)利要求11所述的存儲器控制器,其中所述機(jī)遇式比率限制器還配置為: 在每個機(jī)遇式更新之后啟動定時器;以及 響應(yīng)于所述定時器的啟動來激活以防止一個或多個附加的機(jī)遇式更新,由此所述機(jī)遇式比率限制器能夠防止所述多個機(jī)遇式更新的快速連續(xù)。
13.如權(quán)利要求11所述的存儲器控制器,其中所述機(jī)遇式比率限制器還配置為: 接收所述輔助存儲器訪問隊(duì)列的隊(duì)列深度的指示;以及 響應(yīng)于所述指示來激活以防止一個或多個附加的機(jī)遇式更新,由此所述機(jī)遇式比率限制器能夠最小化所述輔助存儲器訪問隊(duì)列中的存儲器訪問請求的數(shù)量。
14.一種線路卡,用來保持多個分段式計(jì)數(shù)器,每個分段式計(jì)數(shù)器包括初級部分和次級部分,其中所述初級部分包含所述多個分段式計(jì)數(shù)器的低階比特位置并且所述次級部分至少包括所述多個分段式計(jì)數(shù)器的未包含在所述初級部分中的所有比特位置,所述線路卡包括: 一個或多個處理器核,配置為: 傳送指令,所述指令中的至少一個指示應(yīng)該更新所述多個分段式計(jì)數(shù)器中的一個并且所述指令中的至少一個指示對于所述多個分段式計(jì)數(shù)器中的一個的狀態(tài)的請求; 主存儲器,用來存儲所述初級部分; 輔助存儲器,用來存儲所述次級部分,其中所述輔助存儲器具有比所述主存儲器更長的訪問時間;以及 存儲器控制器,耦合在所述一個或多個分組處理器核、所述主存儲器以及所述輔助存儲器之間,所述存儲器控制器配置為從所述一個或多個分組處理器核接收指令,所述存儲器控制器包括: 機(jī)遇式更新模塊,配置為基于概率函數(shù)和至少偽隨機(jī)數(shù)來為所述多個分段式計(jì)數(shù)器中的每個周期性地確定是否機(jī)遇式更新所述次級部分,其中所述次級部分的更新引起所述初級部分的復(fù)位,由此所述次級部分的機(jī)遇式更新在時間上概率性地分布,以及強(qiáng)制更新模塊,配置為: 基于所接收的指令來確定要更新與所接收的指令關(guān)聯(lián)的所述多個分段式計(jì)數(shù)器中的一個的所述次級部分,以及 基于沒有所述分段式計(jì)數(shù)器的所述次級部分的更新的情況下所述分段式計(jì)數(shù)器的所述初級部分翻轉(zhuǎn)的避免來確定對所述次級部分強(qiáng)制更新,由此避免所述機(jī)遇式更新模塊機(jī)遇式更新所述次級部分并且在翻轉(zhuǎn)之前復(fù)位所述初級部分的失敗。
15.如權(quán)利要求14所述的線路卡,其中所述存儲器控制器還配置為: 從所述輔助存儲器讀取所述次級部分; 將所述初級部分加到所述次級部分; 復(fù)位所述初級部分;以及 將所述相加的結(jié)果存儲為所述次級部分。
16.如權(quán)利要求14所述的線路卡,其中所述存儲器控制器還包括: 輔助存儲器訪問隊(duì)列,耦合在所述存儲器控制器和所述輔助存儲器之間,配置為: 存儲一個或多個輔助存儲器訪問請求,以及 執(zhí)行所述一個或多個輔助存儲器訪問請求。
17.如權(quán)利要求14所述的線路卡,其中所述機(jī)遇式更新模塊還包括: 機(jī)遇式比率限制器,配置為當(dāng)所述機(jī)遇式比率限制器活動時,防止一個或多個機(jī)遇式更新。
18.如權(quán)利要求17所述的線路卡,還包括線性反饋移位寄存器(LFSR),耦合到所述機(jī)遇式更新模塊,用于生成所述至少偽隨機(jī)數(shù)。
19.如權(quán)利要求17所述的線路卡,其中所述機(jī)遇式比率限制器還配置為: 在每個機(jī)遇式更新之后啟動定時器;以及 響應(yīng)于所述定時器的啟動來激活以防止激活時的一個或多個附加的機(jī)遇式更新,由此所述機(jī)遇式比率限制器能夠防止多個機(jī)遇式更新的快速連續(xù)。
20.如權(quán)利要求17所述的線路卡,其中所述機(jī)遇式比率限制器還配置為: 接收所述輔助存儲器訪問隊(duì)列的隊(duì)列深度的指示;以及響應(yīng)于所述指示來激活以防止一個或多個附加的機(jī)遇式更新,由此所述機(jī)遇式比率限制器能夠最小化所 述輔助存儲器訪問隊(duì)列中的存儲器訪問請求的數(shù)量。
全文摘要
一種在存儲器控制器中執(zhí)行的用于保持分段式計(jì)數(shù)器的方法,該分段式計(jì)數(shù)器分在主存儲器和輔助存儲器中,主存儲器更快。需要遞增分段式計(jì)數(shù)器中的一個的事件發(fā)生并且存儲器控制器通過遞增主存儲器中的對應(yīng)初級部分來進(jìn)行響應(yīng)。每次初級部分翻轉(zhuǎn)時,存儲器控制器確定應(yīng)該更新次級部分。而且,存儲器控制器周期性地確定應(yīng)該機(jī)遇式更新分段式計(jì)數(shù)器的次級部分。機(jī)遇式更新基于概率函數(shù)和隨機(jī)數(shù)。次級部分至少包含分段式計(jì)數(shù)器的未包括在初級部分中的所有比特并且存儲在輔助存儲器中。每次發(fā)生對次級部分的更新時,必須更新分段式計(jì)數(shù)器的次級部分和初級部分兩者。
文檔編號H04L12/24GK103181120SQ201180046118
公開日2013年6月26日 申請日期2011年9月19日 優(yōu)先權(quán)日2010年9月24日
發(fā)明者陳振宇, B.阿利恩, R.哈薩維, R.J.羅扎里奧, T.巴索 申請人:瑞典愛立信有限公司