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

任選地將i/o數(shù)據(jù)推入處理器高速緩存的制作方法

文檔序號(hào):6553551閱讀:162來源:國(guó)知局
專利名稱:任選地將i/o數(shù)據(jù)推入處理器高速緩存的制作方法
任選地將I/O數(shù)據(jù)推入處理器高速緩存
背景信息
在例如因特網(wǎng)服務(wù)的計(jì)算系統(tǒng)中使用的處理器極為快速地處理數(shù)據(jù)并且需要 恒定的數(shù)據(jù)供應(yīng)以高效工作。如果處理器需要從不在該處理器的內(nèi)部高速緩存中的 存儲(chǔ)器中獲得數(shù)據(jù),則會(huì)導(dǎo)致在檢索數(shù)據(jù)的同時(shí)許多空閑的處理器時(shí)鐘周期。某些 嘗試改善處理器效率的現(xiàn)有技術(shù)的高速緩存方案涉及在數(shù)據(jù)一寫入存儲(chǔ)器就將其 推入高速緩存。這些現(xiàn)有技術(shù)方案的一個(gè)問題是如果是直到一段時(shí)間以后才需要該 數(shù)據(jù),則該數(shù)據(jù)可能被蓋寫并且需要再次從存儲(chǔ)器中取出,從而浪費(fèi)了互連帶寬。 這些現(xiàn)有技術(shù)方案的另一問題是在多處理器系統(tǒng)中并不總是能夠確定哪個(gè)處理器 將需要該數(shù)據(jù)。
附圖簡(jiǎn)述
本發(fā)明的各特征將從在附圖中示出的較佳實(shí)施例的如下描述中顯見,在各附 圖中相同的標(biāo)號(hào)通常指代相同的部分。各圖沒有必要按比例繪出,而是對(duì)示出本發(fā) 明原理的部分有所強(qiáng)調(diào)。


圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的用于實(shí)現(xiàn)高速緩存推入的示例性計(jì)算系統(tǒng)的 框圖。
圖2是由圖1的計(jì)算系統(tǒng)執(zhí)行的用以任選地將I/0數(shù)據(jù)推入處理器高速緩存的 示例性方法的流程圖。
圖3是由圖l的計(jì)算系統(tǒng)執(zhí)行的用以任選地將I/0數(shù)據(jù)從處理器高速緩存中丟 棄的示例性方法的流程圖。
圖4是包括在由設(shè)備訪問時(shí)使該設(shè)備實(shí)現(xiàn)本發(fā)明一個(gè)或多個(gè)實(shí)施例的一個(gè)或 多個(gè)方面的內(nèi)容的示例性制品的框圖。
詳細(xì)描述
在隨后的描述中,將出于解釋性而非限制性的目的闡述諸如特定結(jié)構(gòu)、架構(gòu)、 接口、技術(shù)等的具體細(xì)節(jié)以提供對(duì)本發(fā)明各方面的全面理解。然而,對(duì)已從本專利
公開中獲益的本領(lǐng)域普通技術(shù)人員顯而易見的是可以用不合這些具體細(xì)節(jié)的其他 示例來實(shí)現(xiàn)本發(fā)明的各方面。在某些情況中,省略了對(duì)公知設(shè)備、電路和方法的描 述以免用不必要的細(xì)節(jié)淡化對(duì)本發(fā)明的描述。
本發(fā)明的實(shí)施例一般涉及一種用于計(jì)算系統(tǒng)實(shí)現(xiàn)被稱為高速緩存推入的技術(shù) 的方法、裝置和系統(tǒng)。該高速緩存推入技術(shù)用任選地將數(shù)據(jù)推入另一個(gè)處理器的高 速緩存而不改變存儲(chǔ)器一致性模型的能力來增強(qiáng)單個(gè)寫入器無效協(xié)議。該存儲(chǔ)器一 致性模型可以是順序一致性排序模型。順序一致性模型是要求不同處理器上的程序 執(zhí)行看上去應(yīng)該像是在一個(gè)處理器內(nèi)的程序執(zhí)行的某種交錯(cuò)的存儲(chǔ)器訪問排序模 型。順序一致性訪問模型在對(duì)每個(gè)處理器都沒有相對(duì)于來自同一處理器的先前的讀 或?qū)憗碇匦屡判蜃x或?qū)懙那闆r下可以得到滿足。
通過在不改變一致性模型的情況下使該高速緩存推入技術(shù)無縫集成,避免了 對(duì)該計(jì)算系統(tǒng)任意其他部分或?qū)τ糜谠摍C(jī)器的編程模型的改變。此外,高速緩存推
入可以在推入(或發(fā)生器)高速緩存或設(shè)備的控制下,因此可以被優(yōu)化以避免對(duì)互 連帶寬的浪費(fèi)。此外,在適當(dāng)時(shí)間將數(shù)據(jù)推入另一個(gè)處理器的高速緩存具有通過在 需要時(shí)將數(shù)據(jù)移動(dòng)得離處理器更近來改善性能的優(yōu)點(diǎn)。
圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的適用于實(shí)現(xiàn)高速緩存推入的示例性計(jì)算系統(tǒng)
的框圖。計(jì)算系統(tǒng)100旨在表示各種各樣的傳統(tǒng)和非傳統(tǒng)計(jì)算系統(tǒng)、服務(wù)器、網(wǎng)絡(luò)
交換機(jī)、網(wǎng)絡(luò)路由器、無線通信用戶單元、無線通信電話基礎(chǔ)元件、個(gè)人數(shù)字助理、 機(jī)頂盒,或者可從本發(fā)明教示中獲益的任何電子設(shè)備中的任一種。根據(jù)示出的實(shí)施
例,計(jì)算系統(tǒng)100可以包括一個(gè)或多個(gè)處理器102、 104、 106;高速緩存108、 110、 112;總線116;存儲(chǔ)器118和1/0控制器120。
處理器102、 104、 106可以表示各種各樣的控制邏輯中的任一種,包括但不 限于微處理器、可編程邏輯器件(PLD)、可編程邏輯陣列(PLA)、專用集成電 路(ASIC)、微控制器等中的一個(gè)或多個(gè),雖然本發(fā)明在這一方面不受限制。在 一個(gè)實(shí)施例中,計(jì)算系統(tǒng)100可以是web服務(wù)器,而處理器可以是一個(gè)或多個(gè)Intel Itanium 2處理器。
在另一個(gè)實(shí)施例中,計(jì)算系統(tǒng)100可以是多芯片卡、板等等,或者是多處理 器部件,諸如芯片多處理器或多個(gè)芯片模塊。芯片多處理器是含有多個(gè)處理核的單 個(gè)集成電路,其中每個(gè)處理核都是能夠執(zhí)行指令的處理裝置。
高速緩存108、 110、 112分別耦合至處理器102、 104、 106。各處理器可以具 有用于對(duì)數(shù)據(jù)和指令的低等待時(shí)間訪問的內(nèi)部高速緩沖存儲(chǔ)器。當(dāng)處理器執(zhí)行所需
的數(shù)據(jù)或指令不位于內(nèi)部高速緩存中時(shí),各處理器會(huì)嘗試從存儲(chǔ)器118中讀取數(shù)據(jù)
或指令。高速緩存108、 110、 112耦合至也與存儲(chǔ)器118相耦合的總線116。
總線116可以是點(diǎn)對(duì)點(diǎn)互連或者在其它實(shí)施例中可以是兩點(diǎn)或多躍點(diǎn)總線。
可以利用各種已知的或其他可用的總線、互連或其他通信協(xié)議以允許與諸如存儲(chǔ)
器、其他處理器、1/0部件、橋之類的其他外部部件通信。
圖1的計(jì)算系統(tǒng)的實(shí)施例可以包括多個(gè)處理器和多個(gè)高速緩存。這些處理器
和高速緩存包括在其中通過高速緩存一致性機(jī)制保持各高速緩存彼此一致的多處
理器系統(tǒng)??梢栽谔幚砥鞲咚倬彺婧痛鎯?chǔ)器互連中實(shí)現(xiàn)高速緩存一致性協(xié)議以保持
各高速緩存一致性。該高速緩存一致性機(jī)制可以包括總線116內(nèi)的額外的高速緩存
一致性控制線。
存儲(chǔ)器118可以表示用于存儲(chǔ)已被或?qū)⒈淮鎯?chǔ)器使用的數(shù)據(jù)和指令的任何種 類的存儲(chǔ)器設(shè)備。雖然本發(fā)明在這一方面不受限制,但是存儲(chǔ)器118通常由動(dòng)態(tài)隨 機(jī)存取存儲(chǔ)器(DRAM)構(gòu)成。在另一個(gè)實(shí)施例中,存儲(chǔ)器118可以包括半導(dǎo)體存 儲(chǔ)器。在又一個(gè)實(shí)施例中,存儲(chǔ)器118可以包括諸如磁盤驅(qū)動(dòng)器等磁性存儲(chǔ)設(shè)備。 然而本發(fā)明不限于在此提及的各存儲(chǔ)器示例。
I/O控制器120耦合至總線116。 I/O控制器120可以表示將I/O設(shè)備122與計(jì) 算系統(tǒng)110的其他部件接口的任何種類的芯片組或控制邏輯。 一個(gè)或多個(gè)I/0設(shè)備 122可以表示為計(jì)算系統(tǒng)100提供輸入或處理計(jì)算系統(tǒng)100的輸出的任何種類的設(shè) 備、外圍設(shè)備或部件。在一個(gè)實(shí)施例中,雖然本發(fā)明不限于此,但是至少一個(gè)I/0 設(shè)備122可以是能夠執(zhí)行直接存儲(chǔ)器訪問(DMA)操作以將數(shù)據(jù)復(fù)制到存儲(chǔ)器118 中的網(wǎng)絡(luò)接口控制器。在此方面,可以存在作為在接收到互聯(lián)網(wǎng)協(xié)議(TCP/IP)分 組時(shí)由I/O設(shè)備122執(zhí)行DMA的結(jié)果而由處理器102、 104、 106執(zhí)行的帶TCP/IP 棧的軟件傳輸控制協(xié)議。然而,特別是I/0設(shè)備122,以及一般地本發(fā)明不限于網(wǎng) 絡(luò)接口控制器。在其它實(shí)施例中,至少一個(gè)I/0設(shè)備122可以是圖形控制器或磁盤 控制器,或者是可從本發(fā)明的教示中獲益的另一個(gè)控制器。
圖2示出了由圖1的計(jì)算系統(tǒng)執(zhí)行的示例性方法的流程圖。對(duì)本領(lǐng)域普通技 術(shù)人員顯而易見的是雖然以下各操作被描述為順序過程,但是許多操作實(shí)際上可以 并行或同時(shí)執(zhí)行。此外還可以重新安排這些操作的次序而不背離本發(fā)明各實(shí)施例的 精神。
根據(jù)一種實(shí)現(xiàn),圖2的方法200可以從計(jì)算系統(tǒng)100檢測(cè)要由I/O設(shè)備122 之一寫入存儲(chǔ)器118的分組(205)開始。在一個(gè)實(shí)施例中,I/O設(shè)備發(fā)送一個(gè)指
示該分組的細(xì)節(jié)的通信給計(jì)算系統(tǒng)100。在另一個(gè)實(shí)施例中,計(jì)算系統(tǒng)100可以通
過監(jiān)視對(duì)存儲(chǔ)器的入站寫入來檢測(cè)分組。
接著,將一中斷發(fā)送至一特定處理器以通知該處理器訪問該數(shù)據(jù)(210)。此 時(shí)該處理器不知道數(shù)據(jù)分組是在高速緩存內(nèi)還是在1/0設(shè)備內(nèi)。然后,與此同時(shí)(在 中斷的影響下),I/O設(shè)備122可以將該分組直接推入處理器的高速緩存中(215)。 通過將分組直接推入高速緩存中,計(jì)算系統(tǒng)100能夠避免由處理器從I/0設(shè)備中讀 取分組而引起的額外的等待時(shí)間。這對(duì)于用作從一個(gè)網(wǎng)絡(luò)接口讀取分組并將這些分 組重新定向至另一個(gè)網(wǎng)絡(luò)接口的高性能路由器的計(jì)算系統(tǒng)來說尤為關(guān)鍵。
一旦外部分組到達(dá)該處理器的高速緩存,該分組就造成死鎖(220)。死鎖220 可以出現(xiàn)在將在圖4中進(jìn)一步討論的存儲(chǔ)介質(zhì)中。如果沒有死鎖,則硬件可以任選 地將數(shù)據(jù)推入高速緩存中。其后,處理器可以從直接從它的高速緩存中訪問被推入 的數(shù)據(jù)(235)。但如果存在死鎖(220),則處理器在其沒有空間的情況下可以選 擇丟棄數(shù)據(jù)(225),由此避免死鎖。處理器始終可以在隨后從存儲(chǔ)器中讀取數(shù)據(jù) (230)。
圖3是當(dāng)系統(tǒng)決定任選地丟棄數(shù)據(jù)時(shí)由圖1的計(jì)算系統(tǒng)執(zhí)行的示例性方法的 流程圖。顯然可以重新安排這些操作的次序而不背離本發(fā)明實(shí)施例的精神。
根據(jù)一個(gè)實(shí)現(xiàn),圖3的方法300可以從計(jì)算系統(tǒng)10檢測(cè)到一外部分組到達(dá)高 速緩存(305)開始。然而,該高速緩存可能沒有為該數(shù)據(jù)分配的塊(310)。如果 高速緩存沒有為該數(shù)據(jù)分配的塊,則該高速緩存必須找出首先要驅(qū)逐的塊(315)。 如果要驅(qū)逐的塊是臟的/已修改的并且該高速緩存可通過其將數(shù)據(jù)寫回存儲(chǔ)器的通 道(例如,至存儲(chǔ)器互連的輸出緩沖器)忙碌,則系統(tǒng)可能死鎖(320)。
如果該高速緩存可通過其將數(shù)據(jù)寫回存儲(chǔ)器的通道不忙碌,則數(shù)據(jù)分組被推 入塊(340)并且該數(shù)據(jù)被標(biāo)記為已修改(345)。通過將塊標(biāo)注為已修改,高速緩 存就能夠得知該數(shù)據(jù)未保存在存儲(chǔ)器中。
然而,如果該高速緩存可通過其將數(shù)據(jù)寫回存儲(chǔ)器的通道忙碌,則將一顯式 確認(rèn)消息發(fā)送給I/0控制器(325) 。 1/0控制器可以翻譯該消息以確定該數(shù)據(jù)分組 來自何方(330)。該數(shù)據(jù)可以由上述1/0設(shè)備中的任何一個(gè)發(fā)送。該數(shù)據(jù)分組隨 后被發(fā)送給處理器可以從中檢索該數(shù)據(jù)的存儲(chǔ)器(335)。
至少出于以下原因,可以使任選地將推入的數(shù)據(jù)丟棄的情況很少發(fā)生。首先, 如果已經(jīng)在高速緩存中分配了無效塊,則處理器可以簡(jiǎn)單地將該塊標(biāo)記為有效并將 傳入分組放入其中。這可以不要求被修改數(shù)據(jù)的任何寫回。其次,只讀數(shù)據(jù)通常存在于高速緩存中并且可以在沒有任何寫回的情況下被新的傳入分組蓋寫。第三,可
以恰當(dāng)設(shè)置至存儲(chǔ)器互連的輸出緩沖器的大小以緩沖足夠的飛行中(in-flight)分 組來降低緩沖器填滿從而引發(fā)死鎖的可能性。
在諸如總線或環(huán)等基于廣播的互連中,高速緩存可對(duì)經(jīng)過的數(shù)據(jù)進(jìn)行監(jiān)聽并 將該數(shù)據(jù)吸收到其自己的高速緩存中。然而在基于目錄的協(xié)議中,發(fā)生器(諸如, 1/0設(shè)備或處理器高速緩存)可直接將該數(shù)據(jù)定向到特定消費(fèi)處理器的高速緩存中。
因此,本發(fā)明的高速緩存推入技術(shù)在不改變存儲(chǔ)器一致性模型或浪費(fèi)過多存 儲(chǔ)器互連帶寬的情況下改善了帶有I/0設(shè)備的多處理器系統(tǒng)的性能。'
圖4示出了包括內(nèi)容405的示例性存儲(chǔ)介質(zhì)400的框圖,該內(nèi)容在被訪問時(shí) 使電子設(shè)備實(shí)現(xiàn)本發(fā)明和/或相關(guān)聯(lián)方法200、 300的一個(gè)或多個(gè)方面。在此方面, 存儲(chǔ)介質(zhì)400包括當(dāng)被執(zhí)行使機(jī)器實(shí)現(xiàn)上述高速緩存推入的一個(gè)或多個(gè)方面的內(nèi) 容405 (例如,指令、數(shù)據(jù)或其任意組合)。該機(jī)器可讀(存儲(chǔ))介質(zhì)300可以包 括但不限于軟磁盤、光盤、CD-ROM、以及磁光盤、ROM、RAM、EPROM、EEPROM、 磁卡或光卡、閃存,或者適用于存儲(chǔ)電子指令的其他種類的媒體/機(jī)器可讀介質(zhì)。
在隨后的描述中,將出于解釋性而非限制性的目的闡述諸如特定結(jié)構(gòu)、架構(gòu)、 接口、技術(shù)等的具體細(xì)節(jié)以提供對(duì)本發(fā)明各方面的全面理解。然而,對(duì)已從本專利 公開中獲益的本領(lǐng)域普通技術(shù)人員顯而易見的是可以用不合這些具體細(xì)節(jié)的其他 示例來實(shí)現(xiàn)本發(fā)明的各方面。在某些情況中,省略了對(duì)公知設(shè)備、電路和方法的描 述以免用不必要的細(xì)節(jié)淡化對(duì)本發(fā)明的描述。
權(quán)利要求
1.一種方法,包括響應(yīng)于檢測(cè)到傳入數(shù)據(jù)而將來自輸入/輸出(I/O)設(shè)備的數(shù)據(jù)直接推入處理器的高速緩存中;以及如果發(fā)生死鎖則任選地丟棄所述數(shù)據(jù)。
2. 如權(quán)利要求1所述的方法,其特征在于,還包括 檢測(cè)要寫入存儲(chǔ)器的數(shù)據(jù);以及發(fā)送一中斷。
3. 如權(quán)利要求2所述的方法,其特征在于,所述檢測(cè)數(shù)據(jù)是通過監(jiān)視對(duì)所述存儲(chǔ)器的入站寫入來進(jìn)行的。
4. 如權(quán)利要求2所述的方法,其特征在于,所述檢測(cè)數(shù)據(jù)是通過發(fā)送所述數(shù) 據(jù)的細(xì)節(jié)給計(jì)算系統(tǒng)來進(jìn)行的。
5. 如權(quán)利要求2所述的方法,其特征在于,還包括檢測(cè)所述死鎖。
6. 如權(quán)利要求5所述的方法,其特征在于,還包括如果未檢測(cè)到死鎖則繼續(xù)將數(shù)據(jù)推入所述處理器的高速緩存中。
7. 如權(quán)利要求6所述的方法,其特征在于,還包括直接從所述處理器的高速緩存訪問所述推入的數(shù)據(jù)。
8. 如權(quán)利要求5所述的方法,其特征在于,還包括 如果檢測(cè)到死鎖則把關(guān)于丟棄所述數(shù)據(jù)的消息發(fā)送給一設(shè)備;以及翻譯所述消息。
9. 如權(quán)利要求8所述的方法,其特征在于,還包括如果檢測(cè)到死鎖則從存儲(chǔ)器中讀取所述數(shù)據(jù)。
10. 如權(quán)利要求8所述的方法,其特征在于,還包括如果檢測(cè)到死鎖則從所述I/O設(shè)備訪問所述數(shù)據(jù)。
11. 一種系統(tǒng),包括 輸入/輸出(I/O)設(shè)備;耦合至至少一個(gè)高速緩存的至少一個(gè)處理器;以及稱合至所述I/0設(shè)備和所述至少一個(gè)處理器用以存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器設(shè)備; 其中所述I/O設(shè)備響應(yīng)于檢測(cè)到傳入數(shù)據(jù)而將數(shù)據(jù)直接推入所述處理器的高 速緩存中。
12. 如權(quán)利要求ll所述的系統(tǒng),其特征在于,所述I/0設(shè)備是網(wǎng)絡(luò)控制器。
13. 如權(quán)利要求12所述的系統(tǒng),其特征在于,所述網(wǎng)絡(luò)控制器執(zhí)行直接存儲(chǔ) 器訪問(DMA)操作。
14. 如權(quán)利要求ll所述的系統(tǒng),其特征在于,所述I/0設(shè)備發(fā)送一中斷給所 述處理器以通知所述處理器訪問所述數(shù)據(jù)。
15. 如權(quán)利要求14所述的系統(tǒng),其特征在于,所述系統(tǒng)檢測(cè)死鎖。
16. 如權(quán)利要求15所述的系統(tǒng),其特征在于,如果未檢測(cè)到死鎖,則所述I/0 設(shè)備將所述數(shù)據(jù)推入所述處理器的高速緩存中。
17. 如權(quán)利要求16所述的系統(tǒng),其特征在于,所述處理器直接從其高速緩存 中訪問所述數(shù)據(jù)。
18. 如權(quán)利要求15所述的系統(tǒng),其特征在于,如果檢測(cè)到死鎖,則所述處理 器丟棄數(shù)據(jù)。
19. 如權(quán)利要求15所述的系統(tǒng),其特征在于,如果檢測(cè)到死鎖,則所述處理 器從所述存儲(chǔ)器設(shè)備中讀取所述數(shù)據(jù)。
20. —種存儲(chǔ)介質(zhì),其內(nèi)容在被一機(jī)器執(zhí)行時(shí)使得所述機(jī)器響應(yīng)于一處理器 的存儲(chǔ)器讀取將內(nèi)容直接推入所述處理器的高速緩存中。
21. 如權(quán)利要求20所述的存儲(chǔ)介質(zhì),其特征在于,還包括在被所述機(jī)器執(zhí)行 時(shí)使得所述機(jī)器發(fā)送一 中斷給所述處理器的內(nèi)容。
22. 如權(quán)利要求21所述的存儲(chǔ)介質(zhì),其特征在于,還包括在被所述機(jī)器執(zhí)行 時(shí)使得所述機(jī)器死鎖的內(nèi)容。
23. 如權(quán)利要求22所述的存儲(chǔ)介質(zhì),其特征在于,還包括在被所述機(jī)器執(zhí)行 時(shí)使得所述機(jī)器在檢測(cè)到死鎖時(shí)丟棄所述內(nèi)容的內(nèi)容。
24. 如權(quán)利要求22所述的存儲(chǔ)介質(zhì),其特征在于,還包括在被所述機(jī)器執(zhí)行 時(shí)使得所述機(jī)器在未檢測(cè)到死鎖時(shí)將內(nèi)容直接推入所述處理器的高速緩存的內(nèi)容。
全文摘要
本發(fā)明的實(shí)施例一般地涉及一種用于計(jì)算系統(tǒng)實(shí)現(xiàn)一種被稱為高速緩存推入的技術(shù)的方法、裝置和系統(tǒng)。該高速緩存推入技術(shù)用任選地將數(shù)據(jù)推入另一個(gè)處理器的高速緩存而不改變存儲(chǔ)器一致性模型的能力來增強(qiáng)單個(gè)寫入器無效協(xié)議。
文檔編號(hào)G06F12/08GK101099137SQ200580046262
公開日2008年1月2日 申請(qǐng)日期2005年12月1日 優(yōu)先權(quán)日2004年12月6日
發(fā)明者S·慕克吉 申請(qǐng)人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
隆回县| 太原市| 武威市| 天柱县| 米易县| 镇原县| 碌曲县| 文山县| 郑州市| 中超| 平和县| 平利县| 仙居县| 京山县| 剑阁县| 五峰| 页游| 高清| 玉林市| 龙口市| 额济纳旗| 泌阳县| 营口市| 马龙县| 墨竹工卡县| 岢岚县| 惠来县| 栾川县| 关岭| 泰兴市| 合川市| 墨玉县| 锡林浩特市| 永春县| 滨州市| 济阳县| 宜兰市| 天峻县| 沅陵县| 万荣县| 荆门市|