專利名稱:用于在多處理器系統(tǒng)中執(zhí)行數(shù)據(jù)預(yù)取的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及數(shù)據(jù)預(yù)取,本發(fā)明尤其涉及一種用于執(zhí)行數(shù)據(jù)預(yù)取的方法和設(shè)備。本發(fā)明更特別地涉及一種在多處理器系統(tǒng)內(nèi)執(zhí)行數(shù)據(jù)預(yù)取的方法和設(shè)備。
背景技術(shù):
處理器通常包括用于存儲(chǔ)最近被處理器訪問的數(shù)據(jù)的高速緩沖存儲(chǔ)器。在處理器要求從系統(tǒng)存儲(chǔ)器獲取數(shù)據(jù)時(shí),該處理器首先檢驗(yàn)其高速緩沖存儲(chǔ)器,以確定該數(shù)據(jù)是否在局部可用。如果高速緩沖存儲(chǔ)器內(nèi)存在該數(shù)據(jù)而且該數(shù)據(jù)有效,則該處理器可以立即使用來自該高速緩沖存儲(chǔ)器的數(shù)據(jù)。然而,如果高速緩沖存儲(chǔ)器內(nèi)不存在該數(shù)據(jù),或者該數(shù)據(jù)無效,則該處理器必須訪問系統(tǒng)存儲(chǔ)器,以檢索該數(shù)據(jù)。
利用預(yù)取技術(shù),高速緩沖存儲(chǔ)器可以在處理器請(qǐng)求該數(shù)據(jù)之前,從系統(tǒng)存儲(chǔ)器請(qǐng)求該數(shù)據(jù)。換句話說,在該處理器獲取該數(shù)據(jù)之前,可以在系統(tǒng)存儲(chǔ)器內(nèi)檢索該處理器所需的數(shù)據(jù)。通過在該處理器占用該數(shù)據(jù)之前預(yù)取該數(shù)據(jù),可以不間斷地連續(xù)將該數(shù)據(jù)送到該處理器。在預(yù)計(jì)處理器請(qǐng)求即將到來時(shí),預(yù)取(prefetch)操作可以使系統(tǒng)存儲(chǔ)器有更多的時(shí)間存取數(shù)據(jù)和提供數(shù)據(jù),由此增強(qiáng)了整個(gè)系統(tǒng)的性能。
處理器訪問系統(tǒng)存儲(chǔ)器所需的時(shí)間量被稱為存儲(chǔ)器等待時(shí)間。為了將處理器的效率提高到最高,利用相對(duì)于等待時(shí)間的處理器的速度可以確定需要預(yù)取的數(shù)據(jù)量。較快的處理器能夠從預(yù)取的較大量數(shù)據(jù)受益,特別是在存儲(chǔ)器等待時(shí)間長(zhǎng)時(shí)。
然而,預(yù)取操作也有缺點(diǎn)。預(yù)取操作本質(zhì)上是推測(cè)性的(speculative),因此,如果預(yù)取數(shù)據(jù)最終沒被該處理器使用,則浪費(fèi)了時(shí)間和輸入/輸出資源。此外,預(yù)取活動(dòng)占用了可以很好地用于取處理器實(shí)際請(qǐng)求的其他數(shù)據(jù)的總線帶寬。
本說明書提供了一種在多處理器系統(tǒng)中執(zhí)行數(shù)據(jù)預(yù)取的改進(jìn)型方法和設(shè)備。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的優(yōu)選實(shí)施例,多處理器系統(tǒng)包括多個(gè)處理器,每個(gè)處理器具有高速緩沖存儲(chǔ)器。該高速緩沖存儲(chǔ)器被細(xì)分為多個(gè)片。多處理器系統(tǒng)內(nèi)的請(qǐng)求處理器首先發(fā)出一組預(yù)取請(qǐng)求。每個(gè)預(yù)取請(qǐng)求用于請(qǐng)求處理器的高速緩沖存儲(chǔ)器的各片之一。響應(yīng)預(yù)取請(qǐng)求未擊中請(qǐng)求處理器的高速緩沖存儲(chǔ)器,將該預(yù)取請(qǐng)求合并為一個(gè)組合預(yù)取請(qǐng)求。然后,將組合預(yù)取請(qǐng)求發(fā)送到多處理器系統(tǒng)內(nèi)的所有未請(qǐng)求處理器的各高速緩沖存儲(chǔ)器。響應(yīng)未請(qǐng)求處理器的各高速緩沖存儲(chǔ)器發(fā)出的組合清除請(qǐng)求,從系統(tǒng)存儲(chǔ)器獲得組合預(yù)取請(qǐng)求的數(shù)據(jù)。然后,將該數(shù)據(jù)送回相應(yīng)請(qǐng)求處理器的高速緩沖存儲(chǔ)器的每個(gè)片。
根據(jù)下面的詳細(xì)書面說明,本發(fā)明的所有特征和優(yōu)點(diǎn)顯而易見。
在結(jié)合附圖閱讀時(shí),根據(jù)下面對(duì)說明性實(shí)施例所做的詳細(xì)說明,可以最佳理解本發(fā)明本身以及其最佳使用方式、其他特征和優(yōu)點(diǎn),其中圖1是可以實(shí)現(xiàn)本發(fā)明的優(yōu)選實(shí)施例的多處理器系統(tǒng)的方框圖;圖2a-2g示出根據(jù)本發(fā)明優(yōu)選實(shí)施例在圖1所示多處理器系統(tǒng)內(nèi)執(zhí)行數(shù)據(jù)預(yù)取的方法的示意圖;以及圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施例的預(yù)取請(qǐng)求的方框圖。
具體實(shí)施例方式
現(xiàn)在參看附圖,特別是圖1,圖1示出可以實(shí)現(xiàn)本發(fā)明的優(yōu)選實(shí)施例的多處理器系統(tǒng)的方框圖。如圖所示,多處理器系統(tǒng)10包括處理器11a-11n。每個(gè)處理器11a-11n分別包括1級(jí)(L1)高速緩沖存儲(chǔ)器(未示出)。每個(gè)處理器11a-11n分別與2級(jí)(L2)高速緩沖存儲(chǔ)器12a-12n之一相關(guān)聯(lián)。對(duì)于本實(shí)施例,將L2高速緩沖存儲(chǔ)器12a-12n分別組織為兩片(slice),即,偶數(shù)片和奇數(shù)片。通過系統(tǒng)總線接口13a-13n中的相應(yīng)一個(gè),L2高速緩沖存儲(chǔ)器12a-12n連接到內(nèi)部連線(interconnect)14。存儲(chǔ)控制器15和系統(tǒng)存儲(chǔ)器16也連接到內(nèi)部連線14。
在其相關(guān)處理器11a-11n之一請(qǐng)求該數(shù)據(jù)時(shí),每一L2高速緩沖存儲(chǔ)器12a-12n可以從系統(tǒng)存儲(chǔ)器16預(yù)取數(shù)據(jù)。如果數(shù)據(jù)預(yù)取操作成功,則可以不中斷地將數(shù)據(jù)連續(xù)送到處理器11a-11n。
現(xiàn)在,參考圖2a-2g,圖2a-2g示出根據(jù)本發(fā)明優(yōu)選實(shí)施例在圖1所示多處理器系統(tǒng)10內(nèi)執(zhí)行數(shù)據(jù)預(yù)取的方法的示意圖。首先,處理器11a-11n之一對(duì)其相關(guān)L2高速緩沖存儲(chǔ)器產(chǎn)生數(shù)據(jù)預(yù)取請(qǐng)求,優(yōu)選每一高速緩存線(cache line)一個(gè)預(yù)取請(qǐng)求。例如,由于L2高速緩沖存儲(chǔ)器12a有兩片(即,兩條獨(dú)立高速緩存線),所以當(dāng)處理器11a對(duì)L2高速緩沖存儲(chǔ)器12a產(chǎn)生預(yù)取請(qǐng)求時(shí),處理器11a必須產(chǎn)生兩個(gè)單獨(dú)預(yù)取請(qǐng)求,其中每個(gè)預(yù)取請(qǐng)求用于兩條高速緩存線之一。處理器11a保證成對(duì)發(fā)出兩個(gè)預(yù)取請(qǐng)求,其中第一預(yù)取請(qǐng)求用于偶數(shù)片,如圖2a所示,而第二預(yù)取請(qǐng)求用于奇數(shù)片,如圖2b所示。
如果來自處理器11a的兩個(gè)預(yù)取請(qǐng)求均未擊中(miss)L2高速緩沖存儲(chǔ)器12(即,L2高速緩沖存儲(chǔ)器12a沒有用于這兩個(gè)預(yù)取請(qǐng)求之任一的數(shù)據(jù)),則將這兩個(gè)預(yù)取請(qǐng)求合并為一個(gè)單獨(dú)數(shù)據(jù)預(yù)取請(qǐng)求。例如,如果偶數(shù)高速緩存線預(yù)取請(qǐng)求和相應(yīng)奇數(shù)高速緩存線預(yù)取請(qǐng)求未擊中L2高速緩沖存儲(chǔ)器12a,則系統(tǒng)總線接口13a將這兩個(gè)預(yù)取請(qǐng)求合并為一個(gè)單獨(dú)預(yù)取請(qǐng)求。然后,系統(tǒng)總線接口13a將組合的預(yù)取請(qǐng)求發(fā)送到系統(tǒng)內(nèi)部連線14,如圖2d所示。
未請(qǐng)求處理器窺探(snoop)系統(tǒng)內(nèi)部連線14上到其相應(yīng)高速緩沖存儲(chǔ)器的組合預(yù)取請(qǐng)求。例如,未發(fā)出請(qǐng)求的處理器11b-11n窺探從系統(tǒng)內(nèi)部連線14到其相應(yīng)高速緩沖存儲(chǔ)器12b-12n之一的組合預(yù)取請(qǐng)求,如圖2e所示。
由于每一高速緩沖存儲(chǔ)器12b-12n也具有兩個(gè)片配置,所以將組合預(yù)取請(qǐng)求的每一部分送到高速緩沖存儲(chǔ)器的各片。如果對(duì)于組合預(yù)取請(qǐng)求,高速緩沖存儲(chǔ)器12b-12n之任一存在該數(shù)據(jù)的沖突拷貝(conflict copy),則對(duì)窺探響應(yīng)設(shè)置足夠多的粒度(granularity),以指示存儲(chǔ)控制器15哪個(gè)預(yù)取請(qǐng)求通過高速緩沖存儲(chǔ)器干預(yù)(cacheintervention)從高速緩沖存儲(chǔ)器12a-12n之一獲取數(shù)據(jù),以及哪個(gè)預(yù)取請(qǐng)求從系統(tǒng)存儲(chǔ)器16獲得數(shù)據(jù)。作為一種選擇,提供被稱為“retry_split”的特殊窺探響應(yīng),以使處理器11a重新發(fā)出整個(gè)預(yù)取請(qǐng)求,作為多個(gè)單獨(dú)預(yù)取請(qǐng)求。
否則,如果高速緩沖存儲(chǔ)器12b-12n均沒有用于組合預(yù)取請(qǐng)求的數(shù)據(jù),則在每一高速緩沖存儲(chǔ)器12b-12n內(nèi)合并了來自這兩片的響應(yīng)后,每一高速緩沖存儲(chǔ)器12b-12n將對(duì)系統(tǒng)內(nèi)部連線14發(fā)出清除(clean)響應(yīng)。收到每個(gè)高速緩沖存儲(chǔ)器12b-12n發(fā)出的合并清除響應(yīng)后,系統(tǒng)總線接口13a可以將該組合清除響應(yīng)發(fā)送到存儲(chǔ)控制器15,以使存儲(chǔ)控制器15從系統(tǒng)存儲(chǔ)器16獲得請(qǐng)求數(shù)據(jù),如圖2f所示。
然后,存儲(chǔ)控制器15對(duì)系統(tǒng)存儲(chǔ)器16執(zhí)行讀操作。利用頁(page)模式存取,存儲(chǔ)控制器15優(yōu)選從系統(tǒng)存儲(chǔ)器16讀取兩個(gè)高速緩存線有用的數(shù)據(jù)(worth of data),因?yàn)榕c順序非頁模式存取相比,頁模式存取節(jié)省功率。優(yōu)選組織系統(tǒng)存儲(chǔ)器16,以在讀取了第一高速緩存線的數(shù)據(jù)后,以頁模式讀取第二高速緩存線的數(shù)據(jù),同時(shí)該頁仍開放。因此,降低了系統(tǒng)存儲(chǔ)器16的功率消耗。
存儲(chǔ)控制器15將這兩條高速緩存線的請(qǐng)求數(shù)據(jù)順序傳送到系統(tǒng)總線接口13a。接著,將這兩條高速緩存線的請(qǐng)求數(shù)據(jù)送到L2高速緩沖存儲(chǔ)器12a的相應(yīng)片,如圖2g所示。
現(xiàn)在,參考圖3,圖3示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的預(yù)取請(qǐng)求的方框圖。如圖所示,預(yù)取請(qǐng)求30包括預(yù)取操作碼字段31、地址字段32、跨度(stride)字段33以及長(zhǎng)度字段34。預(yù)取操作數(shù)字段31將該請(qǐng)求定義為數(shù)據(jù)預(yù)取請(qǐng)求。地址字段32含有其中存儲(chǔ)了預(yù)取數(shù)據(jù)的系統(tǒng)存儲(chǔ)器16(圖1中的)的地址。
跨度字段33和長(zhǎng)度字段34是任選字段??缍茸侄?3和長(zhǎng)度字段34使跨數(shù)和長(zhǎng)度分別與預(yù)取數(shù)據(jù)地址相關(guān),例如,可以同時(shí)取多組數(shù)據(jù),而無需進(jìn)行附加請(qǐng)求。
如上所述,本發(fā)明提供了一種在多處理器系統(tǒng)內(nèi)執(zhí)行數(shù)據(jù)預(yù)取請(qǐng)求的改進(jìn)型方法和設(shè)備。盡管利用兩條高速緩存線的多線數(shù)據(jù)預(yù)取請(qǐng)求對(duì)本發(fā)明進(jìn)行了說明,但是本技術(shù)領(lǐng)域內(nèi)的技術(shù)人員明白,本發(fā)明的多線數(shù)據(jù)預(yù)取請(qǐng)求可以擴(kuò)展到兩條高速緩存線以上,例如,4條或者更多條高速緩存線。
對(duì)于兩條以上的高速緩存線,最簡(jiǎn)單的設(shè)計(jì)是允許每一高速緩沖存儲(chǔ)器具有與多線預(yù)取請(qǐng)求中的高速緩存線同樣多的多少地址交錯(cuò)片,就像窺探單線預(yù)取請(qǐng)求。
處理器不必保證送到L1高速緩沖存儲(chǔ)器的片的預(yù)取請(qǐng)求具有任意預(yù)定數(shù)量。處理器可以產(chǎn)生L2高速緩沖存儲(chǔ)器片將其轉(zhuǎn)發(fā)到總線接口控制器的單線預(yù)取請(qǐng)求。如果時(shí)間足夠靠近收到多個(gè)L2高速緩沖存儲(chǔ)器片發(fā)出的兼容請(qǐng)求,則在系統(tǒng)內(nèi)部連線總線上將兼容請(qǐng)求合并為一個(gè)預(yù)取請(qǐng)求。
此外,重要的是請(qǐng)注意,盡管根據(jù)完全功能計(jì)算機(jī)系統(tǒng)對(duì)本發(fā)明進(jìn)行了說明,但是本技術(shù)領(lǐng)域內(nèi)的技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明的方法(mechanism)可以作為各種形式的程序產(chǎn)品被分發(fā),而且與用于實(shí)際執(zhí)行分發(fā)的信號(hào)承載媒體的特定類型無關(guān),可以同樣應(yīng)用本發(fā)明。信號(hào)承載媒體的例子包括,但是并不局限于諸如軟盤或者CD ROM的可記錄型媒體以及諸如模擬或者數(shù)字通信鏈路的傳輸型媒體。
盡管參考優(yōu)選實(shí)施例對(duì)本發(fā)明進(jìn)行了具體描述和說明,但是,本技術(shù)領(lǐng)域內(nèi)的技術(shù)人員明白,在不脫離本發(fā)明實(shí)質(zhì)范圍的情況下,可以在形式和細(xì)節(jié)方面進(jìn)行各種變化。
權(quán)利要求
1.一種用于在多處理器系統(tǒng)內(nèi)執(zhí)行數(shù)據(jù)預(yù)取的方法,其中所述多處理器系統(tǒng)包括多個(gè)處理器,每個(gè)處理器具有高速緩沖存儲(chǔ)器,所述方法包括請(qǐng)求處理器發(fā)出多個(gè)預(yù)取請(qǐng)求;響應(yīng)所述多個(gè)預(yù)取請(qǐng)求未擊中所述請(qǐng)求處理器的高速緩沖存儲(chǔ)器,將所述多個(gè)預(yù)取請(qǐng)求合并為組合預(yù)取請(qǐng)求;將所述組合預(yù)取請(qǐng)求發(fā)送到所有未請(qǐng)求處理器的高速緩沖存儲(chǔ)器;以及響應(yīng)來自所有未請(qǐng)求處理器的高速緩沖存儲(chǔ)器的組合清除響應(yīng),從系統(tǒng)存儲(chǔ)器獲得所述組合預(yù)取請(qǐng)求的數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其中所述請(qǐng)求處理器的所述高速緩沖存儲(chǔ)器包括多個(gè)片。
3.根據(jù)權(quán)利要求2所述的方法,其中所述方法進(jìn)一步包括將來自所述系統(tǒng)存儲(chǔ)器的所述數(shù)據(jù)發(fā)送到所述請(qǐng)求處理器的所述高速緩沖存儲(chǔ)器的各片。
4.根據(jù)權(quán)利要求1所述的方法,其中所述方法進(jìn)一步包括響應(yīng)所述未請(qǐng)求處理器之任一的高速緩沖存儲(chǔ)器具有所述組合預(yù)取請(qǐng)求的數(shù)據(jù)的沖突拷貝,將窺探響應(yīng)發(fā)送到存儲(chǔ)控制器,以指出所述組合預(yù)取請(qǐng)求的一部分正從所述未請(qǐng)求處理器之一的高速緩沖存儲(chǔ)器獲取數(shù)據(jù),而所述組合預(yù)取請(qǐng)求的另一部分正從所述系統(tǒng)存儲(chǔ)器獲取數(shù)據(jù)。
5.根據(jù)權(quán)利要求4所述的方法,其中所述組合預(yù)取請(qǐng)求的所述一部分正通過高速緩存干預(yù)處理從所述未請(qǐng)求處理器之一的高速緩沖存儲(chǔ)器獲取數(shù)據(jù)。
6.一種用于在多處理器系統(tǒng)內(nèi)執(zhí)行數(shù)據(jù)預(yù)取的設(shè)備,其中所述多處理器系統(tǒng)包括多個(gè)處理器,每個(gè)處理器具有高速緩沖存儲(chǔ)器,所述設(shè)備包括用于使請(qǐng)求處理器發(fā)出多個(gè)預(yù)取請(qǐng)求的裝置;響應(yīng)所述多個(gè)預(yù)取請(qǐng)求未擊中所述請(qǐng)求處理器的高速緩沖存儲(chǔ)器,用于將所述多個(gè)預(yù)取請(qǐng)求合并為組合預(yù)取請(qǐng)求的裝置;用于將所述組合預(yù)取請(qǐng)求發(fā)送到所有未請(qǐng)求處理器的高速緩沖存儲(chǔ)器的裝置;以及響應(yīng)來自所有未請(qǐng)求處理器的高速緩沖存儲(chǔ)器的組合清除響應(yīng),用于從系統(tǒng)存儲(chǔ)器獲得所述組合預(yù)取請(qǐng)求的數(shù)據(jù)的裝置。
7.根據(jù)權(quán)利要求6所述的設(shè)備,其中所述請(qǐng)求處理器的所述高速緩沖存儲(chǔ)器包括多個(gè)片。
8.根據(jù)權(quán)利要求7所述的設(shè)備,其中所述設(shè)備進(jìn)一步包括用于將來自所述系統(tǒng)存儲(chǔ)器的所述數(shù)據(jù)發(fā)送到所述請(qǐng)求處理器的所述高速緩沖存儲(chǔ)器的各片的裝置。
9.根據(jù)權(quán)利要求6所述的設(shè)備,其中所述設(shè)備進(jìn)一步包括響應(yīng)所述未請(qǐng)求處理器之任一的高速緩沖存儲(chǔ)器具有所述組合預(yù)取請(qǐng)求的數(shù)據(jù)的沖突拷貝,用于將窺探響應(yīng)發(fā)送到存儲(chǔ)控制器,以指出所述組合預(yù)取請(qǐng)求的一部分正從所述未請(qǐng)求處理器之一的高速緩沖存儲(chǔ)器獲取數(shù)據(jù),而所述組合預(yù)取請(qǐng)求的另一部分正從所述系統(tǒng)存儲(chǔ)器獲取數(shù)據(jù)的裝置。
10.根據(jù)權(quán)利要求9所述的設(shè)備,其中所述組合預(yù)取請(qǐng)求的所述一部分正通過高速緩存干預(yù)處理從所述未請(qǐng)求處理器之一的高速緩沖存儲(chǔ)器獲取數(shù)據(jù)。
11.一種駐留在計(jì)算機(jī)可用介質(zhì)上、用于在多處理器系統(tǒng)內(nèi)執(zhí)行數(shù)據(jù)預(yù)取的計(jì)算機(jī)程序產(chǎn)品,其中所述多處理器系統(tǒng)包括多個(gè)處理器,每個(gè)處理器具有高速緩沖存儲(chǔ)器,所述計(jì)算機(jī)程序產(chǎn)品包括用于實(shí)現(xiàn)上述方法權(quán)利要求中的任意方法的程序代碼裝置。
全文摘要
本發(fā)明公開了一種在多處理器系統(tǒng)內(nèi)執(zhí)行數(shù)據(jù)預(yù)取的方法和設(shè)備。該多處理器系統(tǒng)包括多個(gè)處理器,每個(gè)處理器具有高速緩沖存儲(chǔ)器。該高速緩沖存儲(chǔ)器被細(xì)分為多個(gè)片。多處理器系統(tǒng)內(nèi)的請(qǐng)求處理器首先發(fā)出一組預(yù)取請(qǐng)求。每個(gè)預(yù)取請(qǐng)求用于請(qǐng)求處理器的高速緩沖存儲(chǔ)器的各片之一。響應(yīng)預(yù)取請(qǐng)求未擊中請(qǐng)求處理器的高速緩沖存儲(chǔ)器,將該預(yù)取請(qǐng)求合并為一個(gè)組合預(yù)取請(qǐng)求。然后,將組合預(yù)取請(qǐng)求發(fā)送到多處理器系統(tǒng)內(nèi)的所有未請(qǐng)求處理器的各高速緩沖存儲(chǔ)器。響應(yīng)未請(qǐng)求處理器的各高速緩沖存儲(chǔ)器發(fā)出的組合清除請(qǐng)求,從系統(tǒng)存儲(chǔ)器獲得組合預(yù)取請(qǐng)求的數(shù)據(jù)。
文檔編號(hào)G06F9/38GK1818855SQ20061000663
公開日2006年8月16日 申請(qǐng)日期2006年1月27日 優(yōu)先權(quán)日2005年2月9日
發(fā)明者小詹姆斯·S·菲爾茲, 本吉曼·L·古德曼, 古伊·L·古斯雷, 杰弗里·A·斯圖切里 申請(qǐng)人:國際商業(yè)機(jī)器公司