欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

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

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


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