亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于有效使用高速緩存及存儲器的指令輔助高速緩存管理的制作方法

文檔序號:6557424閱讀:211來源:國知局
專利名稱:用于有效使用高速緩存及存儲器的指令輔助高速緩存管理的制作方法
技術(shù)領(lǐng)域
本發(fā)明領(lǐng)域一般涉及存儲器的高速緩存,尤其涉及但不專門涉及利用由指令提示(hint)標識的高速緩沖存儲器策略來管理高速緩沖存儲器的技術(shù)。
背景技術(shù)
處理網(wǎng)絡(luò)業(yè)務(wù)中最重要的考慮因素之一是分組的吞吐量(即帶寬)。網(wǎng)絡(luò)處理器以及類似的裝置被設(shè)計為每秒鐘高效處理大量的分組。為了處理分組,網(wǎng)絡(luò)處理器(和/或使用網(wǎng)絡(luò)處理器的交換設(shè)備)需要從能指示分組目的地、服務(wù)類別等的分組報頭提取數(shù)據(jù),還需要在存儲器中存儲有效負載數(shù)據(jù),執(zhí)行各種系統(tǒng)開銷功能,等。
通常,上述分組處理操作需要多次存儲器存取。結(jié)果,分組的吞吐量固有地和存儲器(存取)等待時間有關(guān)。理想地,所有的存儲器存取都經(jīng)由可能的最快方案。例如,新式的片上(即在處理器管芯上)靜態(tài)隨機存取存儲器(SRAM)提供的存取速度是10納秒或更少。然而,這種類型的存儲器非常昂貴(從芯片實際的等級和芯片產(chǎn)量來看),因此典型地片上靜態(tài)隨機存取存儲器的數(shù)量非常小。典型的新式網(wǎng)絡(luò)處理器利用少量的片上靜態(tài)隨機存取存儲器作為擦除存儲器等。
第二快的存儲器類型是芯片外(即外部的)靜態(tài)隨機存取存儲器。因為這種存儲器是芯片外的,(相比于片上存儲器)存儲較慢,因為它必須經(jīng)由網(wǎng)絡(luò)處理器與靜態(tài)隨機存取存儲器存儲之間的接口來存取,其中該接口要引入自身的等待時間。芯片外靜態(tài)隨機存取存儲器通常被新式的網(wǎng)絡(luò)處理器用來存儲和處理分組元數(shù)據(jù),以及存儲其它的臨時處理相關(guān)的信息。
典型地,各種類型的芯片外動態(tài)隨機存取存儲器(DRAM)被用作“大容量(bulk)”存儲器。動態(tài)隨機存取存儲器比靜態(tài)隨機存取存儲器慢(因為DRAM和SRAM單元之間在設(shè)計上和操作上的物理區(qū)別),且必須每幾個時鐘周期刷新,占據(jù)了額外的系統(tǒng)開銷。如前所述,因為它是芯片外的,所以它也需要接口(例如專用的或共享的總線)來存取它。大多數(shù)現(xiàn)在的網(wǎng)絡(luò)處理器設(shè)計中,使用性能增強的DRAM存儲器存儲設(shè)備,包括RDRAM(RambusDRAM)或DDR DRAM(雙倍數(shù)據(jù)速率),RLDRAM(減少等待時間的RAM)等。
通常,DRAM存儲器存取產(chǎn)生與許多其他處理活動例如數(shù)字計算相關(guān)的更顯著的處理等待時間。為了解決這個問題,利用各種存儲器高速緩存模式。高速緩存模式的基本觀點是在具有比更大的經(jīng)常存儲數(shù)據(jù)的存儲設(shè)備(時間局部性)更快的存取速度的較小存儲器設(shè)備中高速緩存最近的存儲器存取(或基于預(yù)定義高速緩存策略的其它數(shù)據(jù))。同樣,高速緩存策略也高速緩存物理上接近所需的高速緩存線路的數(shù)據(jù),因為那個數(shù)據(jù)會在不遠的將來用到(空間局部性)。
高速緩存的另一個方面涉及存儲器一致性。在一致的存儲器體系結(jié)構(gòu)下,計算系統(tǒng)或裝置中的所有部件都被確保存取相同的數(shù)據(jù)值。存儲器一致性確保當處理器或存取共享的存儲器資源的其他部件存取時,移入或移出存儲器的數(shù)據(jù)不會出現(xiàn)不同的值。在最簡單的方法中,整個系統(tǒng)中在任何時候僅有任何特定數(shù)據(jù)的一種副本,且一次僅有一個部件可以存取那個數(shù)據(jù)。雖然這種模式保證了存儲器一致性,但是其并不允許存儲器高速緩存。因為存儲器高速緩存包括使至少一個數(shù)據(jù)副本存儲在共享的內(nèi)存空間中且接著允許該副本在共享內(nèi)存空間的外部被修改,因此需要一種機制來確保只可以存取給定數(shù)據(jù)的有效(最近值)版本。這個問題典型地通過利用多個公知存儲器和高速緩存一致性模式中的一種來解決,該高速緩存一致性模式由處理器和/或存儲控制器來管理,例如通過使用存儲器回寫模式來管理。


當結(jié)合附圖,本發(fā)明如前所述的方面以及許多附帶的優(yōu)點將通過參照下面的詳細描述而變得更容易想到且更容易理解,其中在各視圖中除非另外指定,相同的附圖標記表示相同的部件圖1是借助在此可實施的實施例的示范性執(zhí)行環(huán)境的示意圖;圖2是圖示在處理由入口設(shè)備接收的分組期間執(zhí)行的各操作的流程圖;圖3a是圖示根據(jù)一個實施例的存儲器寫期間執(zhí)行的操作與邏輯流程圖,在該實施例中,不使用對于剩余高速緩沖存儲器線的存儲器讀和存儲器填充來向部分高速緩沖存儲器線寫入臨時數(shù)據(jù);
圖3b是圖示圖3a過程的擴展的流程圖,進一步包括高速緩沖存儲器線軟鎖狀態(tài)的使用;圖4a是圖示根據(jù)一個實施例的存儲器讀期間執(zhí)行的操作與邏輯流程圖,在該實施例中,在高速緩沖存儲器未命中的情況下沒有分配高速緩沖存儲器線就從存儲器直接讀取數(shù)據(jù);圖4b是圖示圖4a的過程的擴展的流程圖,進一步包括高速緩沖存儲器線軟鎖狀態(tài)的使用;圖5是圖示由程序員執(zhí)行的操作以形成包含實現(xiàn)臨時數(shù)據(jù)高速緩存策略的提示的指令的流程圖;圖6是一種圖示示范性注記語句的偽碼列表,用以使編譯器來代替包含實現(xiàn)臨時數(shù)據(jù)高速緩存策略的提示的修改指令;圖7是圖示實現(xiàn)臨時數(shù)據(jù)高速緩存策略的一個實施例的高速緩沖存儲器體系結(jié)構(gòu)的示意圖;圖8是一種網(wǎng)絡(luò)處理單元和線路卡的示意圖,進一步示出了圖1所示執(zhí)行環(huán)境的細節(jié)。
具體實施例方式
這里描述了用于為有效利用高速緩沖存儲器及存儲器而使用指令輔助高速緩沖存儲器管理的方法和裝置的實施例。在下面的說明中,提出許多特定細節(jié)來幫助徹底了解本發(fā)明實施例。但是,相關(guān)領(lǐng)域的技術(shù)人員可以想到,缺少一個或多個這些特定的細節(jié),或利用其他方法、組件、材料等,本發(fā)明也可以實施。在其他的例子中,未示出或未詳細描述熟知的結(jié)構(gòu)、材料、或操作以避免模糊本發(fā)明的方面。
全文中提及的描述“一個實施例”或“一實施例”指的是結(jié)合本發(fā)明的一個實施例描述的特殊的特征、結(jié)構(gòu)、或特性特征包含在本發(fā)明的至少一個實施例中。因此,全文中各處存在的詞組“在一個實施例中”或“在一實施例中”未必都指的是相同的實施例。而且,特殊的特征、結(jié)構(gòu)、或特性可以采用任何恰當?shù)姆绞浇M合在一個或多個實施例中。
現(xiàn)在,根據(jù)實施例描述的方面,公開一種經(jīng)由指令輔助的高速緩沖存儲器管理來支持有效利用高速緩沖存儲器和存儲器的技術(shù)。該技術(shù)減少了存儲器的帶寬消耗(通過消除大量典型地結(jié)合傳統(tǒng)的高速緩存策略執(zhí)行的存儲器讀和存儲器寫),以及增加高速緩沖存儲器的有效性。此外,該技術(shù)以程序員能夠基于各種使用情況剪裁高速緩沖存儲器行為的方式,實現(xiàn)高速緩沖存儲器使用和高速緩沖存儲器線分配的計劃性控制。
作為例子,示出了可以借助其來實施指令輔助的高速緩沖存儲器管理技術(shù)各方面的示范性執(zhí)行環(huán)境100。環(huán)境100包括由入口線路卡104駐留的網(wǎng)絡(luò)處理器單元(NPU)102。出于清楚的目的,圖1僅示出了NPU部件及功能單元的選擇性部分;下面將在圖8中進一步詳細介紹NPU/線路卡體系結(jié)構(gòu)的一個實施例的細節(jié)。圖示的部件包括SRAM接口單元106,處理器群108,其包括多個計算引擎(例如,IntelIXP NPU體系結(jié)構(gòu)下的微引擎(ME))110,高速緩沖存儲器控制器112,包括多重高速緩沖存儲器線115的高速緩沖存儲器114,DRAM接口單元116,以及包括接收(Rx)緩沖器120組和發(fā)送(Tx)緩沖器122組的緩沖器管理單元118。SRAM接口單元106提供對由入口線路卡104駐留的外部(相對于NPU102)SRAM124的訪問。類似地,DRAM接口單元116提供對外部DRAM126的訪問,該外部DRAM126包括多存儲器塊127。
在許多現(xiàn)代的網(wǎng)絡(luò)設(shè)備(例如,路由器,交換機等)體系結(jié)構(gòu)下,多個板(統(tǒng)稱為線路卡)被集成在公共機座(chassis)上并經(jīng)由一共享的底板或中間板來通信耦合。例如,這種線路卡可以在標準的模塊體系結(jié)構(gòu)例如ATCA(高級電信計算體系結(jié)構(gòu))中實現(xiàn)或在一種利用標準刀片的刀片式服務(wù)器環(huán)境中實現(xiàn)??蛇x地,可以使用一種專用的板結(jié)構(gòu)和機座(例如,Cisco,Nortel,3Com,等)。這種模塊體系結(jié)構(gòu)典型地包括為特定目的而設(shè)計的卡,例如入口線路卡,出口線路卡,成幀器,以及交換結(jié)構(gòu)(SF)卡。入口線路卡104是在這種模塊體系結(jié)構(gòu)下使用的入口線路卡的示意。然而,要注意這里對入口線路卡104描述的操作也可以使用其他類型的體系結(jié)構(gòu)來實現(xiàn),包括但不限于提供組合功能的板,例如入口和出口功能。
在典型的使用情況下,入口線路卡由網(wǎng)絡(luò)設(shè)備或類似的裝置使用來對在網(wǎng)絡(luò)設(shè)備接收的網(wǎng)絡(luò)分組執(zhí)行初始分組處理。這在圖1中用分組A1,A2……來描述,這些分組在入口線路卡104的輸入/輸出(I/O)端口接收且臨時緩沖在Rx緩沖器120中。這種初始分組處理操作剛一完成,各種分組可以通過交換結(jié)構(gòu)被發(fā)送到網(wǎng)絡(luò)設(shè)備的其他線路卡中用以進一步的處理和/或被傳輸?shù)骄W(wǎng)絡(luò)中的另一個網(wǎng)絡(luò)設(shè)備中(即出網(wǎng)傳輸)。這通過把分組A1和A2從Tx緩沖器122轉(zhuǎn)送到該交換結(jié)構(gòu)來說明。
典型的入口操作包括分組(流)分類,其中利用如由存取控制列表(ACL)規(guī)則集合等等定義的預(yù)定義分組分類模式,將分組分配給各種具有共同屬性(例如,目標地址,QoS標準,安全度量,等)的流。許多分組分類規(guī)則集合利用一種N-元組分類模式,其中匹配分組報頭中的N個字段(或地址前綴情況中的部分字段)的最高優(yōu)先級ACL規(guī)則被用作分類規(guī)則。因此,在這種分組分類模式期間僅分組報頭數(shù)據(jù)需要被存取。在其他的例子中,為了執(zhí)行一些分組的分類可能還需要深度分組檢查(例如,除報頭之外還檢查分組內(nèi)容)。
在進一步的詳述中,典型的傳統(tǒng)入口分組處理過程如下所述進行。一接收到分組,就將該分組臨時緩沖在Rx緩沖器中,分配DRAM中的緩沖器,且將該分組從Rx緩沖器復(fù)制到DRAM緩沖器。結(jié)合這些操作,隊列描述符被寫入到SRAM中的隊列元素陣列中,其中隊列描述符標識與該分組相關(guān)聯(lián)的DRAM緩沖器的位置。在例如分類的分組處理操作期間,分組報頭數(shù)據(jù)從DRAM緩沖器讀出并寫入到芯片上SRAM高速暫時存儲器和/或芯片外SRAM中(或另外經(jīng)由芯片上SRAM存取)。接著利用分組N-元組分組報頭值,結(jié)合在SRAM和/或DRAM存儲的規(guī)則表/數(shù)據(jù)庫中的一次或多次查找以及由NPU執(zhí)行的其他操作(例如形成一個散列索引到查找表中)來執(zhí)行分組分類。分類剛一完成,分組被分配給流,其中對應(yīng)的目標流隊列位于出口線路卡上。因此,通過從DRAM讀取分組到Tx緩沖器,、接著經(jīng)由交換結(jié)構(gòu)傳輸該數(shù)據(jù)到流隊列,將該分組轉(zhuǎn)送到流隊列。
如上所述,最小的存儲器等待時間是由芯片上SRAM提供的,然后是由芯片外SRAM提供的,接著是由芯片外DRAM提供的,其明顯低于芯片外SRAM。因此,對DRAM的每次存取就相當大地加重了等待時間。與此同時,對于NPU體系結(jié)構(gòu)的DRAM緩沖器的芯片上高速緩存一般局限于芯片上SRAM高速暫時存儲器,如果使用的話。這一部分是因為芯片上存儲器的費用(就成本,產(chǎn)量,以及芯片實際的等級(real-estate)而言)等原因造成的。
發(fā)明人已經(jīng)認識到涉及分組數(shù)據(jù)本身的由入口元件(例如,入口線路卡或在包括入口和出口元件的線路卡上作為入口處理器使用的NPU)執(zhí)行的大部分處理在性質(zhì)上是臨時的,并且這些處理不需要重復(fù)的存儲器存取和/或重復(fù)的數(shù)據(jù)修改。此外,盡管芯片外DRAM典型地被應(yīng)用于存儲更多的數(shù)據(jù),但是大部分這種數(shù)據(jù),例如ACL數(shù)據(jù)庫和路由表,基本上是不變的(即,非暫時的)。因此,也認識到利用具有有助于臨時分組數(shù)據(jù)的高速緩存的優(yōu)選高速緩沖存儲器策略的芯片上高速緩沖存儲器會非常便利。這種模式如圖1中所示。
參考圖2的流程圖,入口分組處理實現(xiàn)體系結(jié)構(gòu)100如下運行。在塊200中,經(jīng)由輸入端口接收數(shù)據(jù)(或另外經(jīng)由交換結(jié)構(gòu)提供給入口線路卡104)并臨時性地存儲在Rx緩沖器120中。在塊202中,在DRAM126中分配DRAM緩沖器,以及相應(yīng)的隊列描述符被寫入到SRAM124中。接著在塊204,分組數(shù)據(jù)被(邏輯地)寫入到塊202中分配的緩沖器中。可是,不是將分組數(shù)據(jù)寫入到DRAM,而是在高速緩沖存儲器114中分配一個或多個高速緩沖存儲器線115(根據(jù)情況),且將數(shù)據(jù)寫入到這個/這些高速緩沖存儲器線中,如下面將進一步描述的。
繼續(xù)在塊206,接著執(zhí)行各種分組處理操作,例如分類,計量,等。一完成這些操作,就在塊208從緩沖器讀取分組數(shù)據(jù)。如下討論的,在高速緩沖存儲器命中事件中,從高速緩沖存儲器114而不是從DRAM126讀取分組數(shù)據(jù)。接著在塊210,該讀取的數(shù)據(jù)被復(fù)制到Tx緩沖器122,且被傳輸?shù)浇粨Q結(jié)構(gòu)中。在塊212接著取消對DRAM緩沖器和一個或者多個高速緩沖存儲器線的分配。
圖3a示出在一個實施例中進一步圖示DRAM存儲器寫入過程細節(jié)的操作和邏輯。該過程在塊300開始于要存取引用DRAM126部分的DRAM寫指令(例如,可應(yīng)用的存儲器塊和偏移量的地址)。在判定塊302,確定該存儲器寫是否導(dǎo)致高速緩沖存儲器命中。如果高速緩沖存儲器114中存在對應(yīng)于所引用的存儲器模塊的高速緩沖存儲器線115,則產(chǎn)生高速緩沖存儲器命中。從而在塊304中,數(shù)據(jù)被寫入到該高速緩沖存儲器線中而且將該線標記為已修改。
如果結(jié)果是高速緩沖存儲器未命中,那么該邏輯進行到塊306來確定存儲需求是否填充整個高速緩沖存儲器線。例如,對接收的分組進行初始處理之后,當處理塊204的寫操作時,對應(yīng)的數(shù)據(jù)也必須被高速緩存,從而導(dǎo)致高速緩沖存儲器未命中。關(guān)于判定塊306中進行的判斷,在高速緩沖存儲器線基礎(chǔ)上分配高速緩沖存儲器空間,其中高速緩沖存儲器線的尺寸是固定的且典型地(但不必要)匹配DRAM126中的存儲器模塊127的尺寸,以支持高速緩沖存儲器線和存儲器塊之間1∶1的關(guān)系。與此同時,分組的尺寸是可變的。在分組尺寸大于但不是高速緩沖存儲器線尺寸的整數(shù)倍的情況下,為分組數(shù)據(jù)分配的最后的高速緩沖存儲器線將不被分組數(shù)據(jù)“填充”。對于具有小于高速緩沖存儲器線尺寸如最小化分組尺寸的分組來說同樣如此。
對于將占據(jù)整個高速緩沖存儲器線的數(shù)據(jù)的每一部分而言,邏輯進行到塊308,其中數(shù)據(jù)被寫入到高速緩沖存儲器線,且該線被標記為已修改。此外,這里不執(zhí)行DRAM讀或?qū)懖僮?。與使用傳統(tǒng)的回寫高速緩沖存儲器策略一樣,結(jié)合清空(flush)高速緩沖存儲器線(即,使高速緩沖存儲器線可用于再分配),高速緩沖存儲器線中的數(shù)據(jù)將被寫到對應(yīng)的存儲器塊128。結(jié)果,在這里,不再需要將數(shù)據(jù)存儲(寫)到DRAM中。
對于不完全占據(jù)高速緩沖存儲器線的分組數(shù)據(jù)的每一部分而言,該邏輯進行到判定塊310,其中確定寫指令是否包括“分組-數(shù)據(jù)”修改符。例如,在一個實施例中,單獨的一條存儲器寫指令被用于這種目的,例如“WRITEP”??蛇x地,可以修改傳統(tǒng)的存儲器寫指令的位圖以實現(xiàn)“分組-數(shù)據(jù)”修改符。通常,寫指令將包含指示將要發(fā)生作用的高速緩沖存儲器策略對應(yīng)于和臨時數(shù)據(jù)相一致的單獨策略的某個標記,該臨時數(shù)據(jù)例如是這里用于舉例說明高速緩存技術(shù)的分組數(shù)據(jù)。
在進一步的詳述中,“分組-數(shù)據(jù)”修改符用于區(qū)別分組數(shù)據(jù)(例如臨時數(shù)據(jù))與存儲在DRAM中的其他數(shù)據(jù)。通過這種修改符的使用,可以提供一種提示來指示高速緩沖存儲器控制器112數(shù)據(jù)是如何被高速緩存的。根據(jù)一個實施例,如果“分組-數(shù)據(jù)”修改符存在,在塊312數(shù)據(jù)被寫入到部分高速緩沖存儲器線,并且高速緩沖存儲器線被標記為已修改。正如和使用塊308一樣,沒有DRAM讀或?qū)懖僮?。相反,如果“分組-數(shù)據(jù)”修改符不存在,則在塊314執(zhí)行傳統(tǒng)的局部高速緩沖存儲器線寫操作。在傳統(tǒng)的方法下,利用提供的寫數(shù)據(jù)來寫高速緩沖存儲器線的局部部分。但是,為了填充高速緩沖存儲器線,對對應(yīng)的存儲器塊127進行DRAM讀取以復(fù)制存儲器塊的剩余部分(對應(yīng)于映射到高速緩沖存儲器線未填充部分的占用地址的數(shù)據(jù))到高速緩沖存儲器線。如前所述,該高速緩沖存儲器線也標記為已修改。
圖4a在一個實施例中進一步圖示了DRAM存儲器讀過程細節(jié)的操作和邏輯。該過程開始于塊400,其中由處理元件(例如,計算機引擎110)接收DRAM存儲器讀指令以用于執(zhí)行的,引用將要存取的存儲器塊的地址。響應(yīng)于讀指令的執(zhí)行,在判定塊402確定讀指令是否包括“分組-數(shù)據(jù)”修改符。以一種類似于上面討論的寫指令使用的方法,可以通過一種特定指令(例如,READP)來實現(xiàn)該修改符,或者可以修改現(xiàn)有讀指令的位圖以產(chǎn)生類似的結(jié)果。
通常,在最后一次存取數(shù)據(jù)時執(zhí)行具有“分組-數(shù)據(jù)”修改符的讀指令;否則,將典型地使用傳統(tǒng)的讀指令。這樣做的原因涉及高速緩沖存儲器如何處理讀取的命中以及未命中。如果數(shù)據(jù)不再被存取,則不需要保留數(shù)據(jù)到高速緩沖存儲器(命中時),或不需要使數(shù)據(jù)高速緩存(未命中時)。因此,需要一種特殊的指令用于這樣的存取。但是,需要注意的是“分組-數(shù)據(jù)”修改符不需要(實際上不應(yīng)該)被用于對分組數(shù)據(jù)的所有存取。例如,當想要讀取分組報頭時,推薦使用傳統(tǒng)的讀指令。這樣做的原因?qū)⒃谙旅娴母咚倬彌_存儲器策略的概念中變得清晰。
如果讀指令不包含“分組-數(shù)據(jù)”修改符,則執(zhí)行傳統(tǒng)的高速緩存操作。首先,檢查高速緩沖存儲器114以了解讀指令所引用的存儲器塊是否被高速緩存,結(jié)果由命中或未命中判斷塊404描述。如果命中,邏輯進行到塊406從高速緩沖存儲器線找回數(shù)據(jù)。如果未命中,從DRAM126讀取數(shù)據(jù),以及在高速緩沖存儲器114中分配高速緩沖存儲器線115,數(shù)據(jù)被寫到高速緩沖存儲器線,且該線被標記為“使用中”。這些操作在塊408中示出。
如果存在“分組-數(shù)據(jù)”修改符,邏輯進行到命中或未命中判定塊410以確定數(shù)據(jù)是否存在于高速緩沖存儲器中。如果是,從高速緩沖存儲器中找回數(shù)據(jù),并標記該高速緩沖存儲器線為無效的,如塊412中描述的。標記該高速緩沖存儲器線為無效的原因是用“分組-數(shù)據(jù)”修改符的分組數(shù)據(jù)讀取典型地對應(yīng)于圖2中塊204的讀取操作,其被用于在傳輸之前復(fù)制分組到Tx緩沖器。結(jié)果,沒有針對分組數(shù)據(jù)的后續(xù)DRAM存取,因此不需要將數(shù)據(jù)保留在DRAM或高速緩沖存儲器中。標記高速緩沖存儲器線為無效的進一步使該高速緩沖存儲器線能被重新分配以便以后使用。
類似的流程被用于高速緩存未命中。如塊414中描述的,響應(yīng)于高速緩存未命中直接從DRAM126讀取數(shù)據(jù)。但是,在高速緩沖存儲器114中沒有分配高速緩沖存儲器線,也沒有寫入高速緩沖存儲器的數(shù)據(jù)副本。此外,這樣做的原因是由于以后不需要使用數(shù)據(jù),也就不需要高速緩存該數(shù)據(jù)了。
一些實施例的另一個方面是可以有計劃地定義高速緩沖存儲器線的“軟”鎖。在“軟鎖”方案中,選擇的高速緩沖存儲器線可以被軟鎖定,意味著這些高速緩沖存儲器線具有比其他高速緩沖存儲器線更高的優(yōu)先級,因此不會被替換,除非不能其他高速緩沖存儲器線都是不可用的。在一個實施例中,用于讀或?qū)懼噶畹摹胺纸M-數(shù)據(jù)”修改符的存在引起高速緩沖存儲器線的軟鎖狀態(tài)位被設(shè)置(用于寫)或被清除(用于讀)。該狀態(tài)位常用于給高速緩沖存儲器控制器提供一種提示對應(yīng)的高速緩沖存儲器線不應(yīng)當被選擇以重新分配。例如,下面用于選擇高速緩沖存儲器線以分配的示范性算法則可以利用“軟鎖”狀態(tài)位來應(yīng)用選擇一條高速緩沖存儲器線以高速緩存器未命中時替換的優(yōu)先級1.任何無效線。如果沒有線滿足這種情況,則2.任何沒有軟鎖定的線。如果沒有線滿足這種情況,則3.任何線。
前述的優(yōu)先級規(guī)則偏向于利用程序控制的提示來選擇優(yōu)于軟鎖定的線的已使用過的線。這優(yōu)于傳統(tǒng)的高速緩存策略-例如像最近最少使用(LRU),因為不久將再次讀取線的程序員知識比其最近被使用的事實更具有啟發(fā)性。但是,這不暗示著這里描述的技術(shù)必須使用以代替那些傳統(tǒng)的高速緩存策略,而更寧愿將這些技術(shù)與傳統(tǒng)高速緩存策略進行組合。例如,下面將軟鎖與傳統(tǒng)LRU策略相組合,該傳統(tǒng)策略將已使用位在設(shè)置中標記高速緩沖存儲器線為最近使用過1.任何無效線。如果沒有線滿足這種情況,則2.任何沒有軟鎖定且沒有使用過的位設(shè)置的線。如果沒有線滿足這種情況則3.任何沒有軟鎖定的線。如果沒有線滿足這種情況則4.任何線。
圖3b示出了利用“軟鎖”方案處理DRAM存儲器寫指令處理期間執(zhí)行的操作和邏輯的實施例,其中與圖3a中示出的以及上述討論的塊具有相似附圖標記的塊執(zhí)行類似操作。因此,下面只針對兩個流程之間的不同之處。
響應(yīng)于塊306的完全高速緩沖存儲器線確定,在判定塊316中確定“分組-數(shù)據(jù)”修改符是否存在。如果不存在,塊308B的操作參照與圖3a流程中塊308的上述描述相似的方法來執(zhí)行。但是,如果“分組-數(shù)據(jù)”修改符存在,除了塊308A的寫入數(shù)據(jù)到整個高速緩沖存儲器線以及將該線標記為已修改之外,在塊309設(shè)置“軟鎖”位。
如果高速緩沖存儲器線不被填充且“分組-數(shù)據(jù)”修改符存在,則邏輯進行到塊312以寫入數(shù)據(jù)到局部高速緩沖存儲器線并將該線標記為已修改。此外,在塊313設(shè)置“軟鎖”狀態(tài)位。
圖4b示出了利用“軟鎖”方案在DRAM存儲器讀取指令處理期間執(zhí)行的邏輯操作的一個例子,其中具有與上述討論的圖4a中相似的標記數(shù)字的塊執(zhí)行相似的操作。在這種情況下,附加操作屬于塊407,附加操作當存在“分組-數(shù)據(jù)”修改符且產(chǎn)生高速緩沖存儲器命中的時候會碰到。因此,從該高速緩沖存儲器找回數(shù)據(jù),該高速緩沖存儲器線被標記為無效,并且清除“軟鎖”狀態(tài)位。這樣可以使高速緩沖存儲器線能被立即再分配。因為不再需要數(shù)據(jù),所以同樣也不需要將數(shù)據(jù)保留在高速緩沖存儲器線中,因此可以釋放該高速緩沖存儲器線。
通常,可以利用多種技術(shù)來實現(xiàn)“分組-數(shù)據(jù)”修改符以及可選的相關(guān)聯(lián)的“軟鎖”高速緩沖存儲器線機制。但是最后,高速緩存策略標記被編碼為適用于在目標處理器上運行的機器級代碼,因為處理器不執(zhí)行源級代碼。如下面進一步詳細描述的,在一個實施例中特殊的操作代碼被添加到處理器指令集,以指示處理器利用置為有效的“分組-數(shù)據(jù)”修改符實現(xiàn)讀和寫操作。
在一個實施例中,在源代碼等級中嵌入標記,結(jié)果在機器代碼中形成對應(yīng)的高速緩存策略提示。參照圖5,該操作開始于塊500,其中標記被插入到高級源代碼來描繪用于不同代碼部分的高速緩存策略。在一個實施例中,高級代碼包括用C或C++語言編寫的程序代碼,且通過對應(yīng)的注記語句來實現(xiàn)標記(marker)。圖6示出了圖示一組示范性注記語句來實現(xiàn)分組-數(shù)據(jù)打開/關(guān)高速緩存策略的偽代碼。在這個實施例中,有兩個高速緩存策略打開,表示“分組-數(shù)據(jù)”修改符策略在起作用;以及關(guān)閉,缺省策略,表示“分組-數(shù)據(jù)”修改符策略沒有起作用。注記語句“高速緩存分組數(shù)據(jù)打開”被用于標記代碼部分的開始,其中讀和寫指令使“分組-數(shù)據(jù)”修改符被置為有效,同時“高速緩存分組數(shù)據(jù)關(guān)閉”注記語句用于標記代碼部分的結(jié)尾。
在另一個實施例中,特殊的指令被添加到傳統(tǒng)的高級語言和關(guān)聯(lián)的編譯器中,使程序員能明確地實現(xiàn)對應(yīng)于高級代碼的“分組-數(shù)據(jù)”修改符。例如,像讀分組數(shù)據(jù)指令,寫分組數(shù)據(jù)指令等可以被包括在源等級代碼中。
圖6中的注記語句或顯式源等級指令指示編譯器形成機器代碼,其包括指示處理器和/或高速緩沖存儲器控制器如何執(zhí)行高速緩沖存儲器使用以及逐出策略的嵌入提示。在一個實施例中,通過用新的操作代碼來代替?zhèn)鹘y(tǒng)的存儲器存取操作代碼實現(xiàn)上述策略,該新操作代碼提供一種用于通知處理器和/或高速緩沖存儲器控制器“分組-數(shù)據(jù)”修改符和/或“軟鎖”機制是否在起作用的手段,如塊502所示。
在一個實施例中,一種顯式操作代碼被提供給每個存儲器存取指令。例如,在一個公共指令集下,讀指令用于在存儲器和寄存器之間移動數(shù)據(jù)。為了實現(xiàn)“分組-數(shù)據(jù)”修改符,READP(讀分組)匯編級指令可能被添加到助記指令集中。類似地,可以添加WRITEP(寫分組)匯編級指令。這種方法進一步使程序員能夠在匯編級上寫代碼和/或優(yōu)化從已編譯的源級代碼中導(dǎo)出的匯編級代碼部分。
在另一個實施例中,指令被用于明確地設(shè)置以及清除軟鎖標志。在這種方法下,結(jié)合解碼選中的存儲器存取指令來檢查對應(yīng)的標志寄存器,其中該標志標識對應(yīng)的高速緩沖存儲器線是否被軟鎖定了。
如塊504中所示,在運行時,通過包含在執(zhí)行的機器代碼中的方向提示(特殊的操作代碼和可選的操作數(shù))來管理高速緩沖存儲器使用情況。下面討論了用于實現(xiàn)高速緩沖存儲器逐出策略的硬件實施技術(shù)。
通常,可以對這里所描述的高速緩存技術(shù)采用不同類型的整體高速緩存方案(具有用于實施每個方案的各種不同技術(shù))。這些包括全相聯(lián)高速緩存,以及n路組相聯(lián)高速緩存。(在特定的實施中,也可以利用直接映射的高速緩存器—然而直接映射的高速緩存器的命中率比其他設(shè)計弱,因為它的不靈活性)。在全相聯(lián)高速緩存器中,任何存儲器位置可以被高速緩存在任何高速緩沖存儲器線中。這是最復(fù)雜的技術(shù)且當檢查命中時需要更高級搜索算法。因為這一點會導(dǎo)致整個高速緩存變慢,但是它表現(xiàn)出最佳的理論命中率,因為有如此多的用于高速緩存任何存儲器地址的選項。N路組相聯(lián)高速緩存器結(jié)合直接映射高速緩存器和全相聯(lián)高速緩存器的各方面。在這個方法下,高速緩存器被分為n條線的集合(例如,n=2,4,8,等),且任何存儲器地址可以被高速緩存在選中集合的那些n條線路中。實際上,這些高速緩沖存儲器線集合被邏輯地分為n組。這相對于直接映射高速緩存器來說提高了命中率,而不會導(dǎo)致嚴重的搜索加重(因為n被保持得很小)。
圖7示出一種用于執(zhí)行全相聯(lián)高速緩存方案來支持高速緩存使用率以及逐出策略的有計劃控制的高速緩沖存儲器體系結(jié)構(gòu)700的范例。通常,這個實施例中公開的原理可以在各種不同類型的公知高速緩沖存儲器體系結(jié)構(gòu)上實現(xiàn),包括n路組相聯(lián)高速緩沖存儲器體系結(jié)構(gòu)以及全相聯(lián)高速緩沖存儲器體系結(jié)構(gòu)。還要注意其他高速緩沖存儲器部件的細節(jié),例如多路復(fù)用器,譯碼邏輯,數(shù)據(jù)端口等為了清楚起見而沒有示出在圖7中。本領(lǐng)域技術(shù)人員可以理解這些部件可以存在于實際體系結(jié)構(gòu)實現(xiàn)方式中。該體系結(jié)構(gòu)的主要部件包括處理器702,各種高速緩存控制元件(下面描述具體細節(jié)),它們被統(tǒng)稱為高速緩沖存儲器控制器,以及它的實際高速緩沖存儲器存儲空間本身,其由用于存儲標簽陣列的存儲器以及高速緩沖存儲器線組成,也統(tǒng)稱為塊。
高速緩沖存儲器體系結(jié)構(gòu)700的一般操作與傳統(tǒng)的全相聯(lián)高速緩沖存儲器相似,除了“分組-數(shù)據(jù)”修改符和軟鎖機制的擴展之外。響應(yīng)于存儲器訪問請求(通過執(zhí)行對應(yīng)的指令或指令序列產(chǎn)生),該請求所引用的地址被轉(zhuǎn)發(fā)給高速緩沖存儲器控制器。地址字段被分割為TAG(標簽)704,和塊OFFSET(偏移量)706。標簽704通常稱為塊(或高速緩沖存儲器線)地址。塊偏移量706通常稱為字節(jié)選擇或字選擇字段。字節(jié)/字選擇或塊偏移量的目的是為了從高速緩沖存儲器線中的多個字或字節(jié)中選擇所請求的字(典型地)或字節(jié)。例如,典型的高速緩沖存儲器線尺寸的范圍是8-128字節(jié)。因為高速緩沖存儲器線是可以在高速緩沖存儲器中存取的最小單元,所以有必要提供信息以便進一步解析該高速緩沖存儲器線來返回所請求的數(shù)據(jù)。想要的字或字節(jié)的位置從該高速緩沖存儲器線的基地起偏移,所以命名塊“偏移量”。字的選擇通過字選擇多路復(fù)用器(mux)708實現(xiàn)。
典型地,l個最低有效位被用于塊偏移量,其中高速緩沖存儲器線寬度或塊的寬度是2l字節(jié)寬。下一個n個(最高有效)位集合包括TAG 704。這些n位被用于在每個標簽陣列查找對應(yīng)的標簽。此外,每個高速緩沖存儲器線包括一個“有效”位。
除了這些元件之外,高速緩沖存儲器體系結(jié)構(gòu)700利用一個軟鎖位710。該軟鎖位被用于為關(guān)聯(lián)的高速緩沖存儲器線設(shè)置或清除軟鎖。在一個實施例中,軟鎖位被存儲在一個1位寄存器中,而地址被存儲在另一個w位寄存器中,其中w是地址的寬度。在另一個實施例中,軟鎖位和地址的組合被存儲在w+1寬度的寄存器中。在高速緩沖存儲器體系結(jié)構(gòu)700下,高速緩沖存儲器線被分成一個標簽陣列712和一個高速緩沖存儲器線陣列714。
響應(yīng)于存儲器存取請求,高速緩沖存儲器體系結(jié)構(gòu)700的操作如下執(zhí)行。在圖示的實施例中,處理器702接收引用存儲器地址的READP指令716。如上所述,在一個實施例中,READP指令指示處理器/高速緩沖存儲器控制器來實現(xiàn)與具有激活的(設(shè)置的)“數(shù)據(jù)-分組”修改符的讀指令相關(guān)聯(lián)的動作。
響應(yīng)于高速緩存未命中,高速緩沖存儲器控制器通過選擇一個要被替換的現(xiàn)有高速緩沖存儲器線來分配一個新的高速緩沖存儲器線。在圖示的實施例中,上述軟鎖定高速緩沖存儲器線鎖定策略利用軟鎖定高速緩沖存儲器分配策略邏輯718來實現(xiàn)。
結(jié)合高速緩沖存儲器線分配執(zhí)行的另一個操作是從DRAM126獲取所請求的數(shù)據(jù)。用于實現(xiàn)對應(yīng)存儲器讀或?qū)懖呗缘倪壿嬐ㄟ^高速緩沖存儲器使用策略邏輯720來實現(xiàn)。例如,對于不使用高速緩沖存儲器線的軟鎖的實施例,高速緩沖存儲器使用策略720利用圖3a和4a中流程圖所示的邏輯,同時它為實現(xiàn)使用軟鎖的實現(xiàn)方式實現(xiàn)圖3b和4b中流程圖所示的邏輯。
請求的數(shù)據(jù)返回到高速緩沖存儲器控制器之后,數(shù)據(jù)被復(fù)制到分配的高速緩沖存儲器線,且在標簽陣列712中更新對應(yīng)的標簽和有效位。不是返回請求的數(shù)據(jù),而是返回大量接近于并包括請求數(shù)據(jù)的連續(xù)數(shù)據(jù)字節(jié),其中字節(jié)數(shù)等于高速緩沖存儲器線的寬度。例如,對于32字節(jié)寬度的高速緩沖存儲器線,返回32字節(jié)的數(shù)據(jù)。接著在字選擇mux708的幫助下,包含在新的高速緩沖存儲器線中的字(對應(yīng)于初始請求)被從高速緩沖存儲器讀取到處理器702的輸入寄存器726。
以類似于傳統(tǒng)方法的方式來執(zhí)行為高速緩沖存儲器體系結(jié)構(gòu)700寫入對應(yīng)于未高速緩存地址的值并更新存儲在高速緩沖存儲器線內(nèi)的值,除了進一步利用“分組-數(shù)據(jù)”修改符和軟鎖位之外。對于非分組數(shù)據(jù),這包括一個高速緩沖存儲器回寫,基于高速緩沖存儲器回寫,存儲在輸出寄存器724中的數(shù)據(jù)被寫到系統(tǒng)存儲器中(最后)。首先通過適當?shù)母咚倬彌_存儲器查找算法來搜索適當?shù)母咚倬彌_存儲器線(應(yīng)當是當前存在的)。如果找到,高速緩沖存儲器線用輸出寄存器724中的數(shù)據(jù)來更新,且給對應(yīng)的修改位(未示出)加上標志。隨后通過公知的回寫操作用新值更新系統(tǒng)存儲器(如果需要,考慮到適用的高速緩沖存儲器策略)。如果要被更新的數(shù)據(jù)沒有在高速緩沖存儲器中找到,則在一個實施例中,以一種與讀請求的上述方法類似的方式來分配高速緩沖存儲器線,且數(shù)據(jù)被寫到高速緩沖存儲器線,并且在適當?shù)腡AG陣列中更新對應(yīng)的標簽和有效位值。
除了圖7所示的高速緩沖存儲器體系結(jié)構(gòu)之外,高速緩沖存儲器體系結(jié)構(gòu)的其他類型也可以以類似的方式來實現(xiàn)。例如,可以實現(xiàn)組相聯(lián)高速緩沖存儲器體系結(jié)構(gòu)。通常,組相聯(lián)體系結(jié)構(gòu)和全相聯(lián)體系結(jié)構(gòu)的主要部件是相似的,除了標簽陣列元素和關(guān)聯(lián)的高速緩沖存儲器線被按照集合分組之外,并且每一個標簽項還包括用于索引到可用集合的INDEX(索引)字段。另外,提供適用的邏輯來執(zhí)行索引方案以及組相聯(lián)高速緩沖存儲器操作的其他元素;這樣的邏輯和體系結(jié)構(gòu)元素在本領(lǐng)域是熟知的。
圖8進一步示出了NPU102和入口線路卡104的細節(jié)。在該實施例中,入口線路卡104包括配置為耦合到ATCA機座中的共用底板的ATCA板,該ATCA機座可以進一步包括其他ATCA模塊板。因此線路卡包括一組連接器,用以與底板上的配合連接器相吻合,如圖示的通過底板接口800(為了清楚突顯入口線路卡102)。通常,底板接口800支持各種輸入/輸出(I/O)通信通道,也提供功率給線路卡104。為了簡單起見,圖8中僅示出了選定的I/O接口,不過可以理解其他I/O和功率輸入接口也存在。在一個實施例中,I/O接口支持高級交換(AS)環(huán)境中的使用,如ASI(高級交換互連)SIG高級交換V1規(guī)范中定義的。
NPU102包括n個微型引擎110。在一個實施例中,n=8,而在其他實施例中,n=16,24,或32。也可以使用其他數(shù)量的微型引擎1001。在一個實施例中,16個微型引擎110被分為每8個微型引擎一組的兩個群,包括ME群0和ME群1(為了清楚起見后面的未示出)。
在圖示的實施例中,每個微型引擎110執(zhí)行存儲在局部控制存儲器802中的指令(例如微碼)。在用于一個或多個微型引擎的指令中包括的是分組處理以及隊列管理指令,使用它們來有助于這里描述的各種分組處理以及隊列管理操作。在一個實施例中,以微碼的形式—宏來寫這些指令。
每個微型引擎110通過被稱為處理器“機座”的總線組和控制線連接到其他的網(wǎng)絡(luò)處理器部件。為了清楚起見,這些總線組以及控制線被描述為內(nèi)部互連804。也連接到內(nèi)部互連的是SRAM接口單元106,DRAM控制器806,通用處理器808,媒介交換結(jié)構(gòu)接口810,PCI(外設(shè)部件互連)控制器812,以及散列單元814??梢杂蒒PU102提供的其他沒有示出的部件,包括但不限于,加密單元,CAP(控制狀態(tài)寄存器存取代理)單元,高速暫時存儲器,以及性能監(jiān)控器。
如所描述的,DRAM控制器806一起來提供高速緩沖存儲器控制器112、高速緩沖存儲器114、以及DRAM接口單元116的功能。在一個實施例中,DRAM126利用DDR(雙數(shù)據(jù)速率)DRAM。在其他實施例中DRAM126可以使用Rambus DRAM(RDRAM)或等待時間減小的DRAM(RLDRAM)。也支持其他類型的DRAM。
通用處理器808可以用于各種網(wǎng)絡(luò)處理器操作。在一個實施例中,通過在通用處理器808上執(zhí)行的軟件來便利控制面板操作,而數(shù)據(jù)面板操作主要通過在微型引擎110上執(zhí)行的指令線程來便利。
媒介交換體系結(jié)構(gòu)接口810用于對接安裝了線路卡的網(wǎng)絡(luò)設(shè)備的媒介設(shè)備或交換結(jié)構(gòu)。在一個實施例中,媒介交換結(jié)構(gòu)接口810使用系統(tǒng)分組級接口4狀態(tài)2(SPI4-2)接口816??蛇x地,媒介交換結(jié)構(gòu)接口816可以支持CSIX,NPSI和/或ASI接口。通常,實際的交換結(jié)構(gòu)可以由一個或多個獨立的線路卡駐留,或可以內(nèi)置到機座底板上(例如,作為無源交換結(jié)構(gòu))。這兩種配置由交換結(jié)構(gòu)818表示。在一個實施例中(未圖示),媒介交換結(jié)構(gòu)接口包括Rx緩沖器120和Tx緩沖器122,且提供實現(xiàn)這里描述的接收和傳輸緩沖器管理操作的邏輯。
PCI控制器812使網(wǎng)絡(luò)處理器對接一個或多個PCI設(shè)備,該PCI設(shè)備通過PCI接口820耦合到底板接口800。在一個實施例中,PCI接口820包括PCI快速接口。
初始化期間,便利各分組處理以及其他操作的編碼指令(例如微碼)被載入控制存儲器802中。在一個實施例中,該指令從由入口線路卡104所駐留的非易失性存儲器822-例如閃存設(shè)備中載入。非易失性存儲器的其他例子包括只讀存儲器(ROM),可編程只讀存儲器(PROM),以及電可擦除只讀存儲器(EEPROM)。在一個實施例中,非易失性存儲器822由通用處理器808經(jīng)由接口824來存取。在另一個實施例中,非易失性存儲器822可以經(jīng)由耦合到內(nèi)部互連804的接口(未示出)存取。
除了從本地(相對線路卡104)存儲器載入指令之外,指令還可以從外部源載入。例如,在一個實施例中,這些指令存儲在由另一個線路卡(未示出)所駐留的或另外由安裝了線路卡104的網(wǎng)絡(luò)設(shè)備提供的盤驅(qū)動器826上。然而在另一個實施例中,經(jīng)由網(wǎng)絡(luò)828從遠程服務(wù)器等上下載作為載波的指令。
通常,圖中所示的以及這里討論的每個功能塊可以經(jīng)由在一個或多個計算引擎上執(zhí)行對應(yīng)線程而利用硬件中的可編程邏輯,固件/軟件中的可編程邏輯,或二者的組合來實現(xiàn)。例如,各分組處理操作,包括分類和隊列管理操作,可以通過在一個或多個計算機引擎110上執(zhí)行對應(yīng)的指令線程來實現(xiàn)。可選地,由這里討論的功能塊提供的所有或部分操作可以通過嵌入在NPU或類似設(shè)備上的適當編程的邏輯來執(zhí)行。
因此,本發(fā)明的實施例可以用作或支持固件/軟件模塊和/或在某種形式的處理核心上執(zhí)行或另外在機器可讀介質(zhì)上或內(nèi)部實現(xiàn)或?qū)嵤┑某绦?。機器可讀介質(zhì)包括用于存儲或傳輸機器(例如計算機)可讀形式的信息的任何機制。例如,機器可讀介質(zhì)可以包括像只讀存儲器(ROM);隨機存取存儲器(RAM);磁盤存儲介質(zhì);光學(xué)存儲介質(zhì);以及閃存設(shè)備等。另外,機器可讀介質(zhì)可以包括傳播的信號,例如電子的,光學(xué)的,聲學(xué)的或其他形式傳播的信號(例如,載波,紅外信號,數(shù)字信號,等)。
上述發(fā)明的圖示實施例,包括摘要中描述的,不意味著是對本發(fā)明所公開的精確形式的窮盡或者限制到本發(fā)明所公開的精確形式。對于本領(lǐng)域技術(shù)人員而言,盡管本發(fā)明的特定實施例和例子在此是為了說明性的目的而加以描述的,但是各種等價的修改包括在發(fā)明的范圍之內(nèi)也是可能的。
可以根據(jù)上述細節(jié)描述對發(fā)明進行這些修改。權(quán)利要求中用到的術(shù)語不應(yīng)當被解釋為將本發(fā)明限制到在說明書和圖中公開的特定實施例。而是,通過權(quán)利要求來完全確定本發(fā)明的范圍,其應(yīng)該根據(jù)權(quán)利要求的解釋所確立的原理來加以理解。
權(quán)利要求
1.一種方法,包括接收存儲器存取指令;確定該指令是否包含標識將使用針對臨時數(shù)據(jù)的高速緩存策略的標記;以及如果包括,則使用針對臨時數(shù)據(jù)的高速緩存策略;否則,使用缺省高速緩存策略。
2.權(quán)利要求1的方法,其中所述臨時分組括網(wǎng)絡(luò)分組數(shù)據(jù),以及所述標記包括分組數(shù)據(jù)修改符。
3.權(quán)利要求2的方法,其中所述指令包括存儲器寫指令,該指令包含用于標識該存儲器寫是在緩沖器中存儲臨時分組數(shù)據(jù)的分組數(shù)據(jù)修改符,該方法進一步包括,確定存在對應(yīng)于該存儲器寫的高速緩存未命中;分配至少一個提供足夠的存儲空間用以存儲分組數(shù)據(jù)的高速緩沖存儲器線;確定所有或部分分組數(shù)據(jù)是否將填充分配的給定高速緩沖存儲器線;以及如果是,則將所述所有或部分分組數(shù)據(jù)寫到該高速緩沖存儲器線;否則將所述所有或部分分組數(shù)據(jù)寫到該高速緩沖存儲器線的局部部分中,而不需要修改高速緩沖存儲器線剩余部分中現(xiàn)存的數(shù)據(jù)。
4.權(quán)利要求3的方法,進一步包括接收不包含分組數(shù)據(jù)修改符的第二存儲器寫指令,第二存儲器寫指令引用將被寫入存儲器的數(shù)據(jù);確定存在對應(yīng)于該存儲器寫的高速緩存未命中;分配一個或多個提供足夠的存儲空間用于存儲數(shù)據(jù)的高速緩沖存儲器線;確定所有或部分分組數(shù)據(jù)是否將填充給定的高速緩沖存儲器線;以及如果是,則將所述所有或部分數(shù)據(jù)寫到高速緩沖存儲器線;否則將所述所有或部分數(shù)據(jù)寫到該高速緩沖存儲器線的局部部分中;從對應(yīng)于高速緩沖存儲器線剩余部分的存儲器塊部分讀取數(shù)據(jù),且將讀取的數(shù)據(jù)寫到該高速緩沖存儲器線的剩余部分。
5.權(quán)利要求2的方法,其中所述指令包括存儲器讀指令,該指令包含用于標識該存儲器讀是從存儲器緩沖器中讀取臨時分組數(shù)據(jù)的分組數(shù)據(jù)修改符,該方法進一步包括,確定該分組數(shù)據(jù)是否存在于高速緩沖存儲器中;以及如果不存在,則從存儲器緩沖器中讀取該分組數(shù)據(jù),而不在高速緩沖存儲器中分配高速緩沖存儲器線以高速緩存該分組數(shù)據(jù)。
6.權(quán)利要求2的方法,其中所述指令包括存儲器讀指令,該指令包含用于標識該存儲器讀是從存儲器緩沖器中讀取臨時分組數(shù)據(jù)的分組數(shù)據(jù)修改符,該方法進一步包括,確定該分組數(shù)據(jù)是否存在于高速緩沖存儲器中;以及如果存在,則從一個或多個高速緩存該分組數(shù)據(jù)的高速緩沖存儲器線中讀取該分組數(shù)據(jù);以及標記該一個或多個高速緩沖存儲器線為無效。
7.權(quán)利要求2的方法,進一步包括接收分組;分配存儲器緩沖器;分配一個或多個對應(yīng)于該存儲器緩沖器的高速緩沖存儲器線;將該分組數(shù)據(jù)寫入該一個或多個高速緩沖存儲器線;執(zhí)行使用該分組數(shù)據(jù)的分組處理操作;從該一個或多個高速緩沖存儲器線中讀取分組數(shù)據(jù);將該分組數(shù)據(jù)傳輸?shù)侥繕四康牡?;以及解除該DRAM緩沖器及一個或多個高速緩沖存儲器線的分配,其中至少一部分存儲器存取使用包含了標識該存儲器存取對應(yīng)于臨時分組數(shù)據(jù)的分組數(shù)據(jù)修改符的存儲器讀和存儲器寫指令。
8.權(quán)利要求7的方法,其中所述分組由入口線路卡接收,其包括至少一個網(wǎng)絡(luò)處理器并駐留網(wǎng)絡(luò)處理器外部的DRAM(動態(tài)隨機存取存儲器),并且該存儲器緩沖器包括DRAM緩沖器。
9.權(quán)利要求8的方法,其中傳輸分組數(shù)據(jù)到目標目的地包括將目標數(shù)據(jù)傳輸?shù)浇粨Q結(jié)構(gòu)以由另一個線路卡接收。
10.權(quán)利要求1的方法,進一步包括執(zhí)行包括軟鎖機制的高速緩沖存儲器線分配方案,該機制實現(xiàn)對保持具有軟鎖的高速緩沖存儲器線的優(yōu)先選擇;以及為包含標識所述存儲器存取涉及臨時數(shù)據(jù)的標記的存儲器存取指令使用軟鎖機制。
11.權(quán)利要求10的方法,進一步包括實現(xiàn)具有以下邏輯的高速緩沖存儲器線的分配策略(1)分配任何無效的高速緩沖存儲器線;如果沒有這種高速緩沖存儲器線,那么,(2)分配任何未軟鎖定的高速緩沖存儲器線;如果沒有這種高速緩沖存儲器線,那么,(3)分配任何高速緩沖存儲器線。
12.權(quán)利要求10的方法,進一步包括利用與各自的高速緩沖存儲器線相關(guān)聯(lián)的軟鎖狀態(tài)位來實施軟鎖機制。
13.一種處理器,包括處理器核心;存儲器接口單元,耦合到該處理器核心;高速緩沖存儲器控制器,耦合到該處理器核心;以及高速緩沖存儲器,由高速緩沖存儲器控制器控制,可操作地耦合來從處理器核心接收數(shù)據(jù)和把數(shù)據(jù)提供給處理器核心,其中該高速緩沖存儲器控制器被配置為實現(xiàn)高速緩沖存儲器策略,該策略包括缺省高速緩沖存儲策略和臨時數(shù)據(jù)高速緩存策略,其中臨時數(shù)據(jù)高速緩存策略響應(yīng)于對存儲器存取指令的處理來執(zhí)行,該指令包括標識臨時數(shù)據(jù)高速緩存策略要被使用的標記。
14.權(quán)利要求13的處理器,其中一條存儲器存取指令包括存儲器寫指令,其包含用于標識該存儲器寫是在存儲器緩沖器中存儲臨時分組數(shù)據(jù)的分組數(shù)據(jù)修改符,以及其中響應(yīng)于對應(yīng)該存儲器寫的高速緩存未命中,臨時數(shù)據(jù)高速緩存策略包括分配一個或多個提供足夠存儲空間用于存儲分組數(shù)據(jù)的高速緩沖存儲器線;確定所有或部分分組數(shù)據(jù)是否將填充給定的高速緩沖存儲器線;以及如果是,則將所述所有或部分分組數(shù)據(jù)寫到該高速緩沖存儲器線;否則將所述所有或部分分組數(shù)據(jù)寫到該高速緩沖存儲器線的局部部分,而不修改該高速緩沖存儲器線的剩余部分中現(xiàn)存的數(shù)據(jù)。
15.權(quán)利要求13的處理器,其中所述存儲器存取指令包括存儲器讀指令,其包含用于標識該存儲器讀是從存儲器緩沖器讀取臨時分組數(shù)據(jù)的分組數(shù)據(jù)修改符,其中響應(yīng)于對應(yīng)存儲器讀的高速緩存未命中,臨時數(shù)據(jù)高速緩存策略包括從存儲器緩沖器讀該分組數(shù)據(jù),而不在高速緩沖存儲器中分配高速緩沖存儲器線以高速緩存該分組數(shù)據(jù)。
16.權(quán)利要求13的處理器,其中一條存儲器存取指令包括存儲器讀指令,其包含用于標識該存儲器讀是從存儲器緩沖器讀取臨時分組數(shù)據(jù)的分組數(shù)據(jù)修改符,其中響應(yīng)于對應(yīng)該存儲器讀的高速緩存命中,臨時數(shù)據(jù)高速緩存策略包括從一個或多個高速緩存分組數(shù)據(jù)的高速緩沖存儲器線中讀取分組數(shù)據(jù);以及標記該一個或多個高速緩沖存儲器線為無效。
17.權(quán)利要求13的處理器,其中所述高速緩沖存儲器控制器進一步包括高速緩沖存儲器線分配邏輯,用以實現(xiàn)軟鎖機制,包括為高速緩沖存儲器線替換給出優(yōu)先次序,使得具有軟鎖的高速緩沖存儲器線被分配一個保持比不具有軟鎖的高速緩沖存儲器線更高的優(yōu)先級;以及為包含標識存儲器存取涉及臨時數(shù)據(jù)的標記的存儲器存取指令使用軟鎖機制。
18.權(quán)利要求17的處理器,其中所述高速緩沖存儲器線分配邏輯包括(1)分配任何標記為無效的高速緩沖存儲器線;如果沒有這種高速緩沖存儲器線,那么,(2)分配任何未軟鎖定且沒有標記為使用中的高速緩沖存儲器線;如果沒有這種高速緩沖存儲器線,那么,(3)分配任何未軟鎖定的高速緩沖存儲器線;如果沒有這種高速緩沖存儲器線,那么,(4)分配任何高速緩沖存儲器線。
19.一種網(wǎng)絡(luò)線路卡,包括印刷電路板(PCB),具有包括對應(yīng)于媒介交換結(jié)構(gòu)接口的信號線路的底板接口;基于SRAM-(靜態(tài)隨機存取存儲器)的存儲器,安裝在PCB上;基于DRAM的存儲器,安裝在PCB上;以及網(wǎng)絡(luò)處理器單元(NPU),耦合到PCB,包括,處理器核心;DRAM接口單元,耦合在處理器核心和基于DRAM的存儲器之間;SRAM接口單元,耦合在處理器核心和基于SRAM的存儲器之間;高速緩沖存儲器控制器,耦合到處理器核心和DRAM接口單元;以及高速緩沖存儲器,由高速緩沖存儲器控制器控制且可操作地耦合來從處理器核心接收數(shù)據(jù)且把數(shù)據(jù)提供給處理器核心,其中高速緩沖存儲器控制器被配置為實現(xiàn)高速緩沖存儲器策略,該策略包括缺省高速緩沖存儲策略和臨時分組數(shù)據(jù)高速緩存策略,其中臨時分組數(shù)據(jù)高速緩存策略響應(yīng)于對存儲器存取指令的處理來執(zhí)行,該指令包括標識臨時分組數(shù)據(jù)高速緩存策略要被使用的分組數(shù)據(jù)修改符。
20.權(quán)利要求19的網(wǎng)絡(luò)線路卡,其中一條存儲器存取指令包括存儲器寫指令,其包含用于標識該存儲器寫是在存儲器緩沖器中存儲臨時分組數(shù)據(jù)的分組數(shù)據(jù)修改符,其中響應(yīng)于對應(yīng)存儲器寫的高速緩存未命中,臨時數(shù)據(jù)高速緩存策略包括,分配一個或多個提供足夠存儲空間用以存儲分組數(shù)據(jù)的高速緩沖存儲器線;確定所有或部分分組數(shù)據(jù)是否將填充給定的高速緩沖存儲器線;以及如果是,則將所述所有或部分分組數(shù)據(jù)寫到該高速緩沖存儲器線;否則將所述所有或部分分組數(shù)據(jù)寫到該高速緩沖存儲器線的局部部分,而不修改該高速緩沖存儲器線的剩余部分中現(xiàn)存的數(shù)據(jù)。
21.權(quán)利要求20的網(wǎng)絡(luò)線路卡,其中一條存儲器存取指令包括存儲器讀指令,其包含用于標識該存儲器讀是從基于DRAM存儲器的存儲器緩沖器中讀取臨時分組數(shù)據(jù)的分組數(shù)據(jù)修改符,其中響應(yīng)于對應(yīng)該存儲器讀的高速緩存未命中,臨時數(shù)據(jù)高速緩存策略包括,從該存儲器緩沖器讀取分組數(shù)據(jù),而不在高速緩沖存儲器中分配高速緩沖存儲器線以高速緩存該分組數(shù)據(jù)。
22.如權(quán)利要求20的網(wǎng)絡(luò)線路卡,進一步包括可操作地耦合到PCB的非易失性存儲器,該存儲器包括用于在處理器核心上執(zhí)行的指令以執(zhí)行以下操作,包括對在底板接口的輸入/輸出端接收的分組執(zhí)行初始處理,該初始處理包括,在基于DRAM的存儲器中分配存儲器緩沖器;分配對應(yīng)于該存儲器緩沖器的一個或多個高速緩沖存儲器線;將分組數(shù)據(jù)寫入該一個或多個高速緩沖存儲器線;將分組元數(shù)據(jù)寫入基于SRAM的存儲器;使用至少一個分組元數(shù)據(jù)和分組數(shù)據(jù)來執(zhí)行分組分類操作,以將該分組分配給流;從一個或多個高速緩沖存儲器線讀取分組數(shù)據(jù);經(jīng)由媒介交換結(jié)構(gòu)接口將分組數(shù)據(jù)傳送到換結(jié)構(gòu)以對應(yīng)于該流的目標目的地;以及解除DRAM緩沖器及一個或多個高速緩沖存儲器線的分配,其中至少一部分存儲器存取使用存儲器讀和存儲器寫指令,該指令包括用于標識該存儲器存取對應(yīng)于臨時分組數(shù)據(jù)的分組數(shù)據(jù)修改符,且對應(yīng)的高速緩沖存儲器策略為這種存儲器存取指令而實施。
全文摘要
用于有效利用高速緩沖存儲器和存儲器的指令輔助高速緩沖存儲器管理。提示(例如修改符)被添加到讀和寫存儲器存取指令來標識該存儲器存取是針對臨時數(shù)據(jù)的。通過這樣的提示,執(zhí)行交替的高速緩沖存儲器策略和分配策略來最小化高速緩沖存儲器和存儲器存取。在一個策略下,寫高速緩存未命中會導(dǎo)致將數(shù)據(jù)寫到高速緩沖存儲器線的局部中,而沒有存儲器讀/寫周期來填充該線的剩余部分。在另一個策略下,讀高速緩存未命中會導(dǎo)致從存儲器讀,而沒有分配或?qū)懽x取的數(shù)據(jù)到高速緩沖存儲器線。還公開了高速緩沖存儲器線軟鎖機制,其中高速緩沖存儲器線可以被選擇性地軟鎖定來指示保持那些高速緩沖存儲器線比非鎖定高速緩沖存儲器線優(yōu)先。
文檔編號G06F12/08GK1991792SQ200610064058
公開日2007年7月4日 申請日期2006年9月29日 優(yōu)先權(quán)日2005年9月30日
發(fā)明者S·拉克什馬納穆爾蒂, M·羅森布盧思 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1