在一個(gè)實(shí)施例中,本發(fā)明專利技術(shù)介紹一種推測(cè)引擎,用于通過從串行指令創(chuàng)建獨(dú)立的線程并插入處理器指令,以在依賴源之前設(shè)置同步位,并在依賴源之后清除同步位來使串行指令并行化,其中該同步位被設(shè)計(jì)成停止依賴接收端在獨(dú)立核上運(yùn)行的線程。描述并要求保護(hù)其他的實(shí)施例。
【技術(shù)實(shí)現(xiàn)步驟摘要】
【國外來華專利技術(shù)】線程級(jí)推測(cè)中的動(dòng)態(tài)數(shù)據(jù)同步
技術(shù)介紹
在現(xiàn)代處理器中,通常具有多個(gè)能夠并行執(zhí)行的計(jì)算核。然而,很多順序或串行的應(yīng)用和程序不能有效地利用并行架構(gòu)。線程級(jí)推測(cè)(Thread-levelspeculation TLS)是一種使順序程序并行化的有希望的技術(shù),其利用靜態(tài)或動(dòng)態(tài)編譯器和硬件以便在錯(cuò)誤推測(cè)發(fā)生時(shí)恢復(fù)。然而在依賴加載和存儲(chǔ)指令之間沒有適當(dāng)同步的情況下,例如,加載可在存儲(chǔ)之前執(zhí)行并導(dǎo)致數(shù)據(jù)違背,這破壞推測(cè)線程并且需要對(duì)于重新加載的數(shù)據(jù)的重新執(zhí)行。附圖簡(jiǎn)述附圖說明圖1是根據(jù)本專利技術(shù)一個(gè)實(shí)施例的示例系統(tǒng)的框圖。圖2是根據(jù)本專利技術(shù)一實(shí)施例的示例推測(cè)引擎的框圖。圖3A和3B是根據(jù)本專利技術(shù)一實(shí)施例的示例軟件代碼的框圖。圖4是根據(jù)本專利技術(shù)的一實(shí)施例的線程級(jí)推測(cè)中的動(dòng)態(tài)數(shù)據(jù)同步的流程圖。圖5是根據(jù)本專利技術(shù)實(shí)施例的系統(tǒng)的框圖。詳細(xì)描述在各實(shí)施例中,引入具有推測(cè)高速緩存的處理器,該推測(cè)高速緩存具有同步位,該同步位被設(shè)置時(shí)可使高速緩存線或字的讀取停止。本領(lǐng)域的技術(shù)人員將意識(shí)到這可防止錯(cuò)誤的推測(cè)和相關(guān)的被破化線程的無效。還介紹了設(shè)置和清除同步位的處理器指令。編譯器可利用這些指令來同步數(shù)據(jù)依賴性。本專利技術(shù)旨在實(shí)施在可包括附加并行和/或線程推測(cè)特征的處理器和系統(tǒng)中。現(xiàn)在參見圖1,所示為根據(jù)本專利技術(shù)的一個(gè)實(shí)施例的示例系統(tǒng)的框圖。如圖1所示,系統(tǒng)100可包括處理器102和存儲(chǔ)器104,諸如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)。處理器102可包括核106-110、推測(cè)高速緩存112和推測(cè)引擎118。核106-110能夠彼此獨(dú)立地執(zhí)行指令且可包括任意類型的架構(gòu)。盡管被示為包括三個(gè)核,然而處理器102可具有任意數(shù)量的核且可包括未示出的其它組件或控制器。在一個(gè)實(shí)施例中,處理器102是芯片上系統(tǒng)(S0C)。推測(cè)高速緩存112可包括任意數(shù)量的獨(dú)立高速緩存且可包含任意數(shù)量的實(shí)體。盡管期望作為低等待時(shí)間一級(jí)高速緩存,然而推測(cè)高速緩存112可在任意架構(gòu)級(jí)下以任意存儲(chǔ)器技術(shù)來實(shí)現(xiàn)。推測(cè)高速緩存112包括與高速緩存線或字116相關(guān)聯(lián)的同步位114。當(dāng)同步位114被設(shè)置時(shí),如下文更詳細(xì)描述的,線或字116可能不能被核加載,因?yàn)槔缌硪粋€(gè)核可能要執(zhí)行加載依賴的存儲(chǔ)。在一個(gè)實(shí)施例中,當(dāng)同步位114被設(shè)置時(shí)試圖從高速緩存線或字116加載的核將停止直到同步位114被清除。推測(cè)引擎118可實(shí)現(xiàn)用于線程級(jí)推測(cè)中的動(dòng)態(tài)數(shù)據(jù)同步的方法,例如參考圖4描述的,且可具有參考圖2描述的架構(gòu)。推測(cè)引擎118可與處理器102分離且可被實(shí)現(xiàn)為硬件、軟件或硬件和軟件的組合。現(xiàn)在參見圖2,所示為根據(jù)本專利技術(shù)的一實(shí)施例的示例推測(cè)引擎的框圖。如圖2所示,推測(cè)引擎118可包括并行化服務(wù)202、并行輸出代碼204和串行輸入代碼206。并行化服務(wù)202可提供推測(cè)引擎118,具有使串行指令并行化并在線程級(jí)推測(cè)中增加動(dòng)態(tài)數(shù)據(jù)同步的能力。并行化服務(wù)202可包括線程服務(wù)208、同步集服務(wù)210和同步清除服務(wù)212,其可分別從串行指令創(chuàng)建并行線程、插入處理器指令以在依賴源之前設(shè)置同步位、并插入處理器指令以在依賴源之后清除同步位。并行化服務(wù)202可從串行輸入代碼206 (例如如圖3A所示)創(chuàng)建并行輸出代碼204 (例如如圖3B所示)。現(xiàn)在參考圖3A和3B,示出的是根據(jù)本專利技術(shù)一實(shí)施例的示例軟件代碼的框圖。如圖3A所示,順序指令300包括串行前進(jìn)的各種加載和存儲(chǔ),且旨在由處理器的單個(gè)核執(zhí)行。順序指令300可用作推測(cè)引擎118的串行輸入代碼206。如圖3B所示,并行指令302可表示推測(cè)引擎118的并行輸出代碼204。線程304-308能夠由核106-110單獨(dú)地執(zhí)行。線程304-308可各自包括處理器指令(例如,標(biāo)記_通信_(tái)地址mark_comm_addr ),該指令在被執(zhí)行時(shí)在諸如存儲(chǔ)指令之類的依賴源之前設(shè)置關(guān)于特定高速緩存線或字116的同步位114。線程304-308還可各自包括對(duì)應(yīng)的處理器指令(例如,清除_通信_(tái)地址clear_comm_add;r),該指令在被執(zhí)行時(shí)在依賴源之后清除同步位114。可在線程304和308中看到數(shù)據(jù)依賴的示例,其中依賴接收端(dependence sink)將要等待依賴源完成并清除同步位。在這種情況下,加載310將停止線程308的前進(jìn)直到存儲(chǔ)312完成且線程304清除相關(guān)聯(lián)的同步位。現(xiàn)在參考圖4,示出根據(jù)本專利技術(shù)的一實(shí)施例的線程級(jí)推測(cè)中的動(dòng)態(tài)數(shù)據(jù)同步的流程圖。如圖4所示,方法開始于從串行指令創(chuàng)建(402)并行線程。在一個(gè)實(shí)施例中,線程服務(wù)208被調(diào)用以從順序指令300生成并行指令302。在另一個(gè)實(shí)施例中,所生成的線程(304-308)的數(shù)量至少部分地基于處理器中核(106-110)的數(shù)量。該方法繼續(xù),插入(404)處理器指令以設(shè)置和清除同步位。在一個(gè)實(shí)施例中,當(dāng)生成地址時(shí),同步設(shè)置服務(wù)210在依賴源或潛在的依賴源之前的早期點(diǎn)將指令(標(biāo)記_通信_(tái)地址)插入線程304-308。在另一個(gè)實(shí)施例中,同步清除服務(wù)212在依賴源或潛在的依賴源之后將指令(清除_通信_(tái)地址)插入線程304-308。該方法以在多核處理器的核上執(zhí)行(406)并行線程結(jié)束。在一個(gè)實(shí)施例中,線程304-308分別在核106-110上執(zhí)行。在一個(gè)實(shí)施例中,核110的執(zhí)行可停止在加載310上,直到同步位114被核106上執(zhí)行的線程304清除為止。各實(shí)施例可在許多不同的系統(tǒng)類型中實(shí)現(xiàn)。現(xiàn)在參見圖5,所示為根據(jù)本專利技術(shù)實(shí)施例的系統(tǒng)的框圖。如圖5所示,多處理器系統(tǒng)500是點(diǎn)對(duì)點(diǎn)互連系統(tǒng),并且包括經(jīng)由點(diǎn)對(duì)點(diǎn)互連550耦合的第一處理器570和第二處理器580。如圖5所示,處理器570和580中的每一個(gè)都可以是多核處理器,包括第一和第二處理器核(即,處理器核574a與574b以及處理器核584a與584b )。每個(gè)處理器可包括根據(jù)本專利技術(shù)的實(shí)施例的動(dòng)態(tài)數(shù)據(jù)同步線程級(jí)推測(cè)硬件、軟件和固件。仍參考圖5,第一處理器570還包括存儲(chǔ)器控制器中樞(MCH) 572與點(diǎn)對(duì)點(diǎn)(P_P)接口 576和578。類似地,第二處理器580包括MCH 582與P-P接口 586和588。如圖5所示,MCH 572和582將各處理器耦合到相應(yīng)的存儲(chǔ)器,即存儲(chǔ)器532和存儲(chǔ)器534,這些存儲(chǔ)器可以是主存儲(chǔ)器(例如,動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM))的本地附連到相應(yīng)處理器的部分,其中的每一個(gè)可包括根據(jù)本專利技術(shù)的一個(gè)實(shí)施例的擴(kuò)展頁表。第一處理器570和第二處理器580可分別經(jīng)由P-P互連552和554耦合到芯片組590。如圖5所示,芯片組590包括P-P接口 594 和 598。此外,芯片組590包括將芯片組592與高性能圖形引擎538耦合的接口 590。接著,芯片組590可經(jīng)由接口 596耦合到第一總線516。如圖5所示,各種I/O設(shè)備514可連同總線橋518 —起稱合到第一總線516,總線橋518將第一總線516稱合到第二總線520。各種設(shè)備可被耦合到第二總線520,這些設(shè)備包括例如鍵盤/鼠標(biāo)522、通信設(shè)備526以及諸如磁盤驅(qū)動(dòng)器或其它大容量存儲(chǔ)設(shè)備之類的數(shù)據(jù)儲(chǔ)存器單元528,在一個(gè)實(shí)施例中該數(shù)據(jù)儲(chǔ)存器單元可包括代碼530。此外,音頻I/O 524可耦合到第二總線520。各實(shí)施例可以用代碼實(shí)現(xiàn),并可存儲(chǔ)在其上存儲(chǔ)有指令的存儲(chǔ)介質(zhì)上,這些指令可用來對(duì)系統(tǒng)編程以執(zhí)行這些指令。存儲(chǔ)介質(zhì)可本文檔來自技高網(wǎng)...

【技術(shù)保護(hù)點(diǎn)】
【技術(shù)特征摘要】
【國外來華專利技術(shù)】2010.06.29 US 12/826,2871.一種包括內(nèi)容的存儲(chǔ)介質(zhì),所述內(nèi)容在被訪問機(jī)器執(zhí)行時(shí)導(dǎo)致所述訪問機(jī)器 執(zhí)行多核處理器的第一核中的指令;確定推測(cè)高速緩存中數(shù)據(jù)的地址作為依賴接收端的一部分;以及如果與所述數(shù)據(jù)相關(guān)聯(lián)的同步位已經(jīng)被第二核中的依賴源設(shè)置,則等待訪問所述數(shù)據(jù)。2.如權(quán)利要求1所述的存儲(chǔ)介質(zhì),其特征在于,還包括在被訪問機(jī)器執(zhí)行時(shí)導(dǎo)致所述訪問機(jī)器通過執(zhí)行處理器指令設(shè)置同步位的內(nèi)容。3.如權(quán)利要求2所述的存儲(chǔ)介質(zhì),其特征在于,還包括在被訪問機(jī)器執(zhí)行時(shí)導(dǎo)致所述訪問機(jī)器通過執(zhí)行處理器指令清除同步位的內(nèi)容。4.如權(quán)利要求3所述的存儲(chǔ)介質(zhì),其特征在于,所述依賴接收端包括加載指令。5.如權(quán)利要求3所述的存儲(chǔ)介質(zhì),其特征在于,所述依賴接收端包括存儲(chǔ)指令。6.如權(quán)利要求3所述的存儲(chǔ)介質(zhì),其特征在于,與所述數(shù)據(jù)相關(guān)聯(lián)的所述同步位包括高速緩存線位。7.如權(quán)利要求3所述的存儲(chǔ)介質(zhì),其特征在于,與所述數(shù)據(jù)相關(guān)聯(lián)的所述同步位包括高速緩存字位。8.如權(quán)利要求3所述的存儲(chǔ)介質(zhì),其特征在于,用于通過執(zhí)行處理器指令設(shè)置同步位的內(nèi)容包括用于在生成依賴源地址時(shí)設(shè)置同步位的內(nèi)容。9.一種系統(tǒng),包括處理器,其包括用于執(zhí)行指令的第一核和第二核;·推測(cè)高速緩存,用于存儲(chǔ)用于所述處理器的數(shù)據(jù)和指令,所述推測(cè)高速緩存包括同步位以指示相關(guān)聯(lián)的數(shù)據(jù)是否遭受依賴源,并且當(dāng)同步位被設(shè)置時(shí)停止依賴接收端的操作; 耦...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:W·劉,吳友峰,
申請(qǐng)(專利權(quán))人:英特爾公司,
類型:
國別省市:
還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。