新四季網

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

2023-05-28 06:43:01

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


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

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀