背景技術(shù):
1、今天,許多處理器被優(yōu)化以用于運(yùn)行單線程應(yīng)用。這包括緩存層次體系中作出的策略和設(shè)計(jì)決策。當(dāng)線程執(zhí)行加載或存儲(chǔ)時(shí),硬件常常假定被觸及的數(shù)據(jù)將對(duì)該線程是私有的。例如,在一些服務(wù)器處理器中,當(dāng)進(jìn)行在所有緩存中均未命中的加載時(shí),數(shù)據(jù)按排他狀態(tài)被裝入請(qǐng)求方核心的l2緩存,而并非被裝入共享llc緩存。
2、加載和存儲(chǔ)指令是訪問處理器的存儲(chǔ)器系統(tǒng)的主要機(jī)制。每個(gè)加載/存儲(chǔ)指令指示存儲(chǔ)器中用于讀取/寫入對(duì)應(yīng)數(shù)據(jù)的地址。已經(jīng)開發(fā)了緩存、預(yù)取器和其他硬件結(jié)構(gòu),部分地用于將來自軟件的讀取/寫入訪問流轉(zhuǎn)換成軟件未來將執(zhí)行何種訪問的預(yù)測(cè)的集合,以使性能最大化。這些結(jié)構(gòu)依賴于被調(diào)節(jié)以用于最常見的情況的啟發(fā)法的集合,例如,掃過數(shù)組中連續(xù)或跨步式的位置。當(dāng)軟件偏離于最常見的訪問模式時(shí),性能可能受到影響。
技術(shù)實(shí)現(xiàn)思路
1.一種處理器,包括:
2.如權(quán)利要求1所述的處理器,其中使用所述共享數(shù)據(jù)提示發(fā)出所述一個(gè)或多個(gè)預(yù)取操作包括從存儲(chǔ)器加載數(shù)據(jù)以及將所述數(shù)據(jù)以共享狀態(tài)存儲(chǔ)在所述第一核心的緩存中。
3.如權(quán)利要求2所述的處理器,進(jìn)一步包括:
4.如權(quán)利要求1至3中任一項(xiàng)所述的處理器,其中,所述跟蹤數(shù)據(jù)結(jié)構(gòu)包括多個(gè)條目,每個(gè)條目用于存儲(chǔ)針對(duì)存儲(chǔ)器的單個(gè)頁內(nèi)的單個(gè)地址流的信息。
5.如權(quán)利要求1至4中任一項(xiàng)所述的處理器,其中,所述跟蹤數(shù)據(jù)的、與所述第一類型的加載操作相關(guān)聯(lián)的部分包括每個(gè)條目的、用于指示共享數(shù)據(jù)提示的第一字段。
6.如權(quán)利要求5所述的處理器,其中,所述第一字段用于存儲(chǔ)指示共享數(shù)據(jù)提示的第一值并且用于存儲(chǔ)指示沒有共享數(shù)據(jù)提示的第二值。
7.如權(quán)利要求4至6中任一項(xiàng)所述的處理器,其中,所述跟蹤數(shù)據(jù)結(jié)構(gòu)的每個(gè)條目進(jìn)一步包括指示與每個(gè)對(duì)應(yīng)條目相關(guān)聯(lián)的地址序列的置信度水平的一個(gè)或多個(gè)置信度計(jì)數(shù)器字段。
8.如權(quán)利要求7所述的處理器,其中,所述一個(gè)或多個(gè)置信度計(jì)數(shù)器字段包括用于存儲(chǔ)提示置信度計(jì)數(shù)器值的提示置信度計(jì)數(shù)器字段,所述提示置信度計(jì)數(shù)器值要響應(yīng)于所述第一類型的加載操作訪問對(duì)應(yīng)的存儲(chǔ)器頁而被遞增,并且響應(yīng)于所述第二類型的加載操作訪問所述對(duì)應(yīng)的存儲(chǔ)器頁而被遞減。
9.如權(quán)利要求7所述的處理器,其中,所述一個(gè)或多個(gè)置信度計(jì)數(shù)器字段包括提示預(yù)測(cè)器向量字段,所述提示預(yù)測(cè)器向量字段包括每個(gè)條目中的、允許多個(gè)交錯(cuò)的流用不同類型的提示值來訪問對(duì)應(yīng)的頁的多個(gè)提示預(yù)測(cè)器值。
10.一種非暫態(tài)機(jī)器可讀介質(zhì),具有存儲(chǔ)于其上的指令,所述指令在由機(jī)器處理時(shí)使所述機(jī)器執(zhí)行操作,所述操作包括:
11.如權(quán)利要求10所述的非暫態(tài)機(jī)器可讀介質(zhì),其中使用所述共享數(shù)據(jù)提示發(fā)出所述一個(gè)或多個(gè)預(yù)取操作包括從存儲(chǔ)器加載數(shù)據(jù)以及將所述數(shù)據(jù)以共享狀態(tài)存儲(chǔ)在所述第一核心的緩存中。
12.如權(quán)利要求11所述的非暫態(tài)機(jī)器可讀介質(zhì),進(jìn)一步包括存儲(chǔ)于其上的、使得所述機(jī)器執(zhí)行附加操作的指令,所述附加操作包括:
13.如權(quán)利要求10至12中任一項(xiàng)所述的非暫態(tài)機(jī)器可讀介質(zhì),其中,所述跟蹤數(shù)據(jù)結(jié)構(gòu)包括多個(gè)條目,每個(gè)條目用于存儲(chǔ)針對(duì)存儲(chǔ)器的單個(gè)頁內(nèi)的單個(gè)地址流的信息。
14.如權(quán)利要求10至13中任一項(xiàng)所述的非暫態(tài)機(jī)器可讀介質(zhì),其中,所述跟蹤數(shù)據(jù)的、與所述第一類型的加載操作相關(guān)聯(lián)的部分包括每個(gè)條目的、用于指示共享數(shù)據(jù)提示的第一字段。
15.如權(quán)利要求14所述的非暫態(tài)機(jī)器可讀介質(zhì),其中,所述第一字段用于存儲(chǔ)指示共享數(shù)據(jù)提示的第一值并且用于存儲(chǔ)指示沒有共享數(shù)據(jù)提示的第二值。
16.如權(quán)利要求13至15中任一項(xiàng)所述的非暫態(tài)機(jī)器可讀介質(zhì),其中,所述跟蹤數(shù)據(jù)結(jié)構(gòu)的每個(gè)條目進(jìn)一步包括指示與每個(gè)對(duì)應(yīng)條目相關(guān)聯(lián)的地址序列的置信度水平的一個(gè)或多個(gè)置信度計(jì)數(shù)器字段。
17.一種方法,包括:
18.如權(quán)利要求17所述的方法,其中使用所述共享數(shù)據(jù)提示發(fā)出所述一個(gè)或多個(gè)預(yù)取操作包括從存儲(chǔ)器加載數(shù)據(jù)以及將所述數(shù)據(jù)以共享狀態(tài)存儲(chǔ)在所述第一核心的緩存中。
19.如權(quán)利要求18所述的方法,進(jìn)一步包括:
20.如權(quán)利要求17至19中任一項(xiàng)所述的方法,其中,所述跟蹤數(shù)據(jù)結(jié)構(gòu)包括多個(gè)條目,每個(gè)條目用于存儲(chǔ)針對(duì)存儲(chǔ)器的單個(gè)頁內(nèi)的單個(gè)地址流的信息。