一種方法,包括:接收訪問(wèn)高速緩存行的多個(gè)本地請(qǐng)求;將與多個(gè)本地請(qǐng)求對(duì)應(yīng)的多個(gè)條目插入地址鏈中;標(biāo)識(shí)在地址鏈的頭部的第一條目;響應(yīng)標(biāo)識(shí)出第一條目,并且響應(yīng)所述第一條目對(duì)應(yīng)于擁有高速緩存行的請(qǐng)求,開(kāi)始地址鏈的遍歷;在地址鏈的遍歷期間,設(shè)定在第二條目中標(biāo)識(shí)的狀態(tài)元素;接收訪問(wèn)高速緩存行的外部請(qǐng)求;響應(yīng)設(shè)定所述狀態(tài)元素,將對(duì)應(yīng)于所述外部請(qǐng)求的第三條目插入地址鏈中第二條目之后;和響應(yīng)在地址鏈中的第二條目之后插入第三條目,在執(zhí)行多個(gè)本地請(qǐng)求之后,將高速緩存行讓給外部線程。
【技術(shù)實(shí)現(xiàn)步驟摘要】
【國(guó)外來(lái)華專利技術(shù)】在多插槽系統(tǒng)中請(qǐng)求擁有鏈
技術(shù)介紹
線程是可被調(diào)度用于執(zhí)行的最小處理單元。因而,線程可被視為一系列的指令,包括訪問(wèn)(即,讀取和/或?qū)懭?高速緩存行的指令。許多計(jì)算機(jī)系統(tǒng)具有并行執(zhí)行多個(gè)線程的兩個(gè)或者更多的多線程處理器。盡管通常通過(guò)具有多個(gè)多線程處理器,改善了計(jì)算機(jī)系統(tǒng)的性能,不過(guò)取決于線程被準(zhǔn)予訪問(wèn)的順序,多個(gè)線程之間訪問(wèn)相同的高速緩存行的并行嘗試可能造成性能問(wèn)題。這由與插槽(socket)間高速緩存行轉(zhuǎn)移相關(guān)的較長(zhǎng)等待時(shí)間引起。盡管存在這種插槽間高速緩存行轉(zhuǎn)移等待時(shí)間,不過(guò)具有多個(gè)多線程處理器的計(jì)算機(jī)系統(tǒng)架構(gòu)仍然被廣泛使用。
技術(shù)實(shí)現(xiàn)思路
在一個(gè)方面,本專利技術(shù)涉及一種管理高速緩存行的方法。所述方法包括:從在本地多線程處理器上執(zhí)行的多個(gè)本地線程接收訪問(wèn)高速緩存行的多個(gè)本地請(qǐng)求;將與多個(gè)本地請(qǐng)求對(duì)應(yīng)的多個(gè)條目插入與高速緩存行相關(guān)的地址鏈中;標(biāo)識(shí)所述多個(gè)條目中在地址鏈的頭部的第一條目;響應(yīng)標(biāo)識(shí)在頭部的第一條目并且響應(yīng)所述第一條目對(duì)應(yīng)于擁有高速緩存行的請(qǐng)求(RT0),開(kāi)始地址鏈的遍歷;在地址鏈的遍歷期間,設(shè)定在所述多個(gè)條目中的第二條目中標(biāo)識(shí)的狀態(tài)元素,其中所述狀態(tài)元素對(duì)應(yīng)于來(lái)自中央排序單元的對(duì)于與所述第二條目對(duì)應(yīng)的本地請(qǐng)求的串行化確認(rèn);從在外部多線程處理器上執(zhí)行的外部線程接收訪問(wèn)高速緩存行的外部請(qǐng)求;響應(yīng)設(shè)定所述狀態(tài)元素,將對(duì)應(yīng)于所述外部請(qǐng)求的第三條目插入地址鏈中第二條目之后;和響應(yīng)在地址鏈中的第二條目之后插入所述第三條目,在執(zhí)行所述多個(gè)本地請(qǐng)求之后,將高速緩存行讓給外部線程。在一個(gè)方面,本專利技術(shù)涉及一種保存管理高速緩存行的指令的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。所述指令包括以下功能:從在本地多線程處理器上執(zhí)行的多個(gè)本地線程接收訪問(wèn)高速緩存行的多個(gè)本地請(qǐng)求;將與多個(gè)本地請(qǐng)求對(duì)應(yīng)的多個(gè)條目插入與高速緩存行相關(guān)的地址鏈中;標(biāo)識(shí)所述多個(gè)條目中在地址鏈的頭部的第一條目;響應(yīng)第一條目在頭部被標(biāo)識(shí)并且響應(yīng)所述第一條目對(duì)應(yīng)于擁有高速緩存行的請(qǐng)求(RT0),開(kāi)始地址鏈的遍歷;在地址鏈的遍歷期間,設(shè)定在所述多個(gè)條目中的第二條目中標(biāo)識(shí)的狀態(tài)元素,其中所述狀態(tài)元素對(duì)應(yīng)于來(lái)自中央排序單元的對(duì)于與所述第二條目對(duì)應(yīng)的本地線程的串行化確認(rèn);從在外部多線程處理器上執(zhí)行的外部線程接收訪問(wèn)高速緩存行的外部請(qǐng)求;響應(yīng)所述狀態(tài)元素被設(shè)定,將對(duì)應(yīng)于所述外部請(qǐng)求的第三條目插入地址鏈中第二條目之后;和響應(yīng)所述第三條目被插入在地址鏈中的第二條目之后,在執(zhí)行所述多個(gè)本地請(qǐng)求之后,將高速緩存行讓給外部線程。在一個(gè)方面,本專利技術(shù)涉及一種管理高速緩存行的系統(tǒng)。所述系統(tǒng)包括:在本地多線程處理器上執(zhí)行并且發(fā)出訪問(wèn)高速緩存行的多個(gè)本地請(qǐng)求的多個(gè)本地線程;在外部多線程處理器上執(zhí)行,并且發(fā)出訪問(wèn)高速緩存行的外部請(qǐng)求的外部線程;和保存高速緩存行,并且包含保存對(duì)應(yīng)于多個(gè)本地請(qǐng)求的多個(gè)本地條目和對(duì)應(yīng)于外部請(qǐng)求的外部條目的地址鏈的本地高速緩沖存儲(chǔ)器,其中本地高速緩沖存儲(chǔ)器被配置成在地址鏈的遍歷期間,設(shè)定在多個(gè)本地條目中標(biāo)識(shí)并且對(duì)應(yīng)于來(lái)自中央排序單元的串行化確認(rèn)的狀態(tài)元素,其中響應(yīng)所述狀態(tài)元素被設(shè)定,將所述外部條目插入地址鏈中所述多個(gè)本地條目之后,并且其中響應(yīng)所述外部條目被插入地址鏈中所述多個(gè)本地條目之后,在執(zhí)行所述多個(gè)本地請(qǐng)求之后,將高速緩存行讓給外部線程。根據(jù)以下說(shuō)明和附加權(quán)利要求,本專利技術(shù)的其它方面將是顯而易見(jiàn)的。附圖說(shuō)明圖1表示按照本專利技術(shù)的一個(gè)或多個(gè)實(shí)施例的系統(tǒng)。圖2表示按照本專利技術(shù)的一個(gè)或多個(gè)實(shí)施例的高速緩存行。圖3表示按照本專利技術(shù)的一個(gè)或多個(gè)實(shí)施例的地址鏈。圖4表示按照本專利技術(shù)的一個(gè)或多個(gè)實(shí)施例的流程圖。圖5表示按照本專利技術(shù)的一個(gè)或多個(gè)實(shí)施例的例子。圖6表示按照本專利技術(shù)的一個(gè)或多個(gè)實(shí)施例的計(jì)算機(jī)系統(tǒng)。具體實(shí)施例方式下面參考附圖,詳細(xì)說(shuō)明本專利技術(shù)的具體實(shí)施例。考慮到一致性,各個(gè)圖中的相同元件用相同的附圖標(biāo)記表示。在本專利技術(shù)的實(shí)施例的以下詳細(xì)說(shuō)明中,記載了眾多的具體細(xì)節(jié),以便更透徹地理解本專利技術(shù)。不過(guò),對(duì)本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),顯然可在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐本專利技術(shù)。在其它情況下,沒(méi)有詳細(xì)說(shuō)明公知的特征,以避免不必要地使說(shuō)明變復(fù)雜。一般來(lái)說(shuō),本專利技術(shù)的實(shí)施例提供管理高速緩存行的系統(tǒng)和方法。具體地說(shuō),高速緩存行被保持在本地多線程處理器的高速緩沖存儲(chǔ)器中,直到所有本地請(qǐng)求(即,由在本地多線程處理器上執(zhí)行的線程發(fā)出的請(qǐng)求)都被處理為止。只有在處理了本地請(qǐng)求之后,高速緩存行才被讓給由在外部處理器上執(zhí)行的外部線程發(fā)出的外部請(qǐng)求。在本專利技術(shù)的一個(gè)或多個(gè)實(shí)施例中,本地多線程處理器包括對(duì)應(yīng)于高速緩存行并且保存對(duì)應(yīng)于本地請(qǐng)求的本地條目的地址鏈。慎重地設(shè)定由各個(gè)本地條目標(biāo)識(shí)的狀態(tài)元素,以迫使對(duì)應(yīng)于外部請(qǐng)求的條目被插入在地址鏈的末端(即,尾部),從而在本地請(qǐng)求被處理之后才被處理。圖1表示按照本專利技術(shù)的一個(gè)或多個(gè)實(shí)施例的多插槽系統(tǒng)(100)。如圖1中所示,多插槽系統(tǒng)(100)具有多個(gè)組件,包括中央排序單元(102)、存儲(chǔ)器(142),和執(zhí)行一個(gè)或多個(gè)線程(即,線程Al (107)、線程AN (109)、線程BI (127)、線程BN (129))的一個(gè)或多個(gè)多線程處理器(即,多線程處理器A (105)、多線程處理器B (125))。此外,每個(gè)多線程處理器(105,205)包括保存一個(gè)或多個(gè)高速緩存行(S卩,高速緩存行A (113)、高速緩存行B (133))和一個(gè)或多個(gè)地址鏈(即,地址鏈A (115)、地址鏈B (135))的高速緩沖存儲(chǔ)器(即,高速緩沖存儲(chǔ)器A (111)、高速緩沖存儲(chǔ)器B (131))。在本專利技術(shù)的一個(gè)或多個(gè)實(shí)施例中,線程(107,109,127,129)包括訪問(wèn)(B卩,讀取和/或?qū)懭?存儲(chǔ)器(142)中的一個(gè)或多個(gè)位置的指令(即,請(qǐng)求)。這些存儲(chǔ)器位置可保存多個(gè)線程都能訪問(wèn)的共享資源(例如,鎖、全局變量等),和/或只有特定線程才能訪問(wèn)的專有變量。為了加速這些指令的執(zhí)行,這些存儲(chǔ)器地址的內(nèi)容可被本地保存在訪問(wèn)時(shí)間比存儲(chǔ)器(142 )快的高速緩沖存儲(chǔ)器(111,131)中。具體地說(shuō),每個(gè)高速緩存行(113,133 )對(duì)應(yīng)于存儲(chǔ)器(142)中的一塊位置,是該塊位置中的內(nèi)容(S卩,共享資源、專有變量等)的本地副本。在本專利技術(shù)的一個(gè)或多個(gè)實(shí)施例中,如果本地高速緩沖存儲(chǔ)器(即,高速緩沖存儲(chǔ)器A (111))未保存本地線程(例如,線程Al (107))請(qǐng)求的存儲(chǔ)器地址的內(nèi)容,那么從保存相應(yīng)的高速緩存行的外部高速緩沖存儲(chǔ)器(即,高速緩沖存儲(chǔ)器B (131))轉(zhuǎn)移該相應(yīng)的高速緩存行(即,該外部線程讓出該高速緩存行)。不過(guò),如果沒(méi)有外部高速緩沖存儲(chǔ)器保存該高速緩存行,那么從存儲(chǔ)器(142 )取回該高速緩存行。在本專利技術(shù)的一個(gè)或多個(gè)實(shí)施例中,取決于線程被準(zhǔn)予訪問(wèn)的順序,在線程(107,109,127,129)之間訪問(wèn)相同的高速緩存行的并行嘗試可能造成性能問(wèn)題。這由與插槽間高速緩存行轉(zhuǎn)移(即,來(lái)往于外部高速緩沖存儲(chǔ)器和本地高速緩沖存儲(chǔ)器之間的轉(zhuǎn)移)相關(guān)的較長(zhǎng)等待時(shí)間引起。例如,假定線程Al (107)具有對(duì)包含全局變量的高速緩存行A (113)的寫(xiě)訪問(wèn),而線程AN (109)具有保存到相同全局變量的指令。線程AN (109)從線程Al (107)獲得所述寫(xiě)訪問(wèn)需要10ns-20ns。不過(guò),如果線程BI (127)具有保存到相同全局本文檔來(lái)自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
【技術(shù)特征摘要】
【國(guó)外來(lái)華專利技術(shù)】2011.05.13 US 61/486,197;2011.08.29 US 13/220,2861.一種管理高速緩存行的方法,包括: 從在本地多線程處理器上執(zhí)行的多個(gè)本地線程接收所述訪問(wèn)高速緩存行的多個(gè)本地請(qǐng)求; 將與所述多個(gè)本地請(qǐng)求對(duì)應(yīng)的多個(gè)條目插入與所述高速緩存行相關(guān)的地址鏈中; 標(biāo)識(shí)在地址鏈的頭部的所述多個(gè)條目中的第一條目; 響應(yīng)標(biāo)識(shí)在頭部的第一條目,并且響應(yīng)所述第一條目對(duì)應(yīng)于擁有所述高速緩存行的請(qǐng)求RTO,開(kāi)始所述地址鏈的遍歷; 在所述地址鏈的遍歷期間,設(shè)定在所述多個(gè)條目中的第二條目中標(biāo)識(shí)的狀態(tài)元素,其中所述狀態(tài)元素對(duì)應(yīng)于來(lái)自中央排序單元的對(duì)于與所述第二條目對(duì)應(yīng)的本地請(qǐng)求的串行化確認(rèn); 從在外部多線程處理器上執(zhí)行的外部線程接收訪問(wèn)所述高速緩存行的外部請(qǐng)求; 響應(yīng)設(shè)定所述狀態(tài)元素,將對(duì)應(yīng)于所述外部請(qǐng)求的第三條目插入地址鏈中第二條目之后;和 響應(yīng)將第三條目插入在地址鏈中第二條目之后,在執(zhí)行所述多個(gè)本地請(qǐng)求之后,將所述高速緩存行讓給外部線程。2.按照權(quán)利要求1所述的方法,還包括: 響應(yīng)收到所述多個(gè) 本地請(qǐng)求中的至少一個(gè),從操作上連接到所述本地多線程處理器的存儲(chǔ)器取回所述高速緩存行;和 將所述高速緩存行保存在所述本地多線程處理器的高速緩沖存儲(chǔ)器中, 其中所述高速緩存行包含用于所述多個(gè)本地線程和所述外部線程的全局變量。3.按照權(quán)利要求1所述的方法,其中所述高速緩存行包含用于所述多個(gè)本地線程的多個(gè)專有變量。4.按照權(quán)利要求1所述的方法,還包括: 在開(kāi)始所述遍歷之后,從中央排序單元接收對(duì)于與地址鏈中的第一條目對(duì)應(yīng)的本地請(qǐng)求的串行化確認(rèn)。5.按照權(quán)利要求1所述的方法,其中外部請(qǐng)求對(duì)應(yīng)于存儲(chǔ)操作。6.按照權(quán)利要求1所述的方法,其中所述RTO是交換操作。7.按照權(quán)利要求1所述的方法,其中將高速緩存行讓給外部線程包括將所述高速緩存行保存在外部多線程處理器的高速緩沖存儲(chǔ)器中。8.一種保存管理高速緩存行的指令的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述指令包括以下功能: 從在本地多線程處理器上執(zhí)行的多個(gè)本地線程接收所述訪問(wèn)高速緩存行的多個(gè)本地請(qǐng)求; 將與所述多個(gè)本地請(qǐng)求對(duì)應(yīng)的多個(gè)條目插入與所述高速緩存行相關(guān)的地址鏈中; 標(biāo)識(shí)在地址鏈的頭部的所述多個(gè)條目中的第一條目; 響應(yīng)在頭部標(biāo)識(shí)出第一條目,并且響應(yīng)所述第一條目對(duì)應(yīng)于擁有所述高速緩存行的請(qǐng)求RT0,開(kāi)始所述地址鏈的遍歷; 在所述地址鏈的遍歷期間,設(shè)定在所述多個(gè)條目中的第二條目中標(biāo)識(shí)的狀態(tài)元素,其中所述狀態(tài)元素對(duì)應(yīng)于來(lái)自中央排序單元的對(duì)于與所述第二條目對(duì)應(yīng)的本地請(qǐng)求的串行化確認(rèn); 從在外部多線程處理器上執(zhí)行的外部線程接收訪問(wèn)所述高速緩存行的外部請(qǐng)求; 響應(yīng)設(shè)定所述狀態(tài)元素,將對(duì)應(yīng)于所述外...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:C·W·M·陳,M·坎達(dá)潘尼,J·Y·拉姆,R·斯維拉馬克瑞斯南,
申請(qǐng)(專利權(quán))人:甲骨文國(guó)際公司,
類型:
國(guó)別省市:
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。