用以改善在處理器中重新執(zhí)行加載的裝置與方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明主要涉及一微電子領(lǐng)域的技術(shù),特別涉及改善在一亂序(out-of-order)處理器中重新執(zhí)行加載的一節(jié)能機(jī)制。
【背景技術(shù)】
[0002]機(jī)體裝置技術(shù)在過去四十年迅速地發(fā)展。尤其在微處理器的發(fā)展,從4位、單一指令、10微米裝置開始,隨著半導(dǎo)體生產(chǎn)技術(shù)的進(jìn)步,使得設(shè)計(jì)者能夠設(shè)計(jì)出在架構(gòu)和密度越來越復(fù)雜的裝置。在80和90年代所謂的管線(流水線)微處理器(pipe linemicroprocessor)和超標(biāo)量處理器(superscalar),發(fā)展成可在單一芯片上包含百萬顆晶體管。20年后的現(xiàn)今,64位、32-納米裝置已被量產(chǎn),其在單一芯片上具有十億顆晶體管,且包含多個(gè)微處理器內(nèi)核(microprocessor core)來處理數(shù)據(jù)。
[0003]除了指令并行應(yīng)用在現(xiàn)今的多內(nèi)核處理器(mult1-coreprocessor),亂序執(zhí)行(out-of-order execut1n)機(jī)制也被廣泛的使用。根據(jù)亂序執(zhí)行規(guī)則,指令以隊(duì)列的方式存儲在保留站(reservat1n stat1n)以供執(zhí)行單元來執(zhí)行,且只有因?yàn)槭桥f指令(olderinstruct1n)的執(zhí)行,而在等候操作數(shù)(operand)的那些指令,才會被攔截到保留站,沒有在等候操作數(shù)的指令則會直接被派送去執(zhí)行。接下來,執(zhí)行的結(jié)果會被依適當(dāng)?shù)捻樞蛞躁?duì)列的方式排列并放回寄存器。傳統(tǒng)上在處理器階段(processor stage),會被稱為收回狀態(tài)(retire state)。因此,指令并未依照原先程序的順序來執(zhí)行。
[0004]因?yàn)槌嗽陂e置的狀態(tài),執(zhí)行單元可用以當(dāng)舊的指令在等候其操作數(shù)時(shí),執(zhí)行新的指令(younger instruct1n),因此亂序執(zhí)行改善了龐大流量的問題。如同本領(lǐng)域技術(shù)人員所了解的,指令不會總是成功地執(zhí)行,因此當(dāng)給定的指令無法成功地執(zhí)行時(shí),那個(gè)指令和其它新的指令就必須被重新執(zhí)行。因?yàn)槟壳暗臋C(jī)制,處理器會停止目前的執(zhí)行,退回機(jī)器狀態(tài)(machine state)至無法成功執(zhí)行指令之前的時(shí)間點(diǎn),且重新執(zhí)行未成功執(zhí)行的指令和在未成功執(zhí)行的指令被派送前已派送或未派送的所有新的指令,因此這樣的概念被稱為“重新執(zhí)行(replay)”。
[0005]然而,重新執(zhí)行是一異常情況(except1nal case),且重新執(zhí)行的性能影響通常是可忽略的。然而,緩存在保留站直到獲得其操作數(shù)的緩存指令的性能影響則很大,微處理器的設(shè)計(jì)者已發(fā)展了加速技術(shù),以允許當(dāng)在執(zhí)行前,有很高的可能性可取得指令的操作數(shù)時(shí),特定的指令會先被派送。不僅特定的指令會被派送,運(yùn)行的機(jī)制可適當(dāng)?shù)丶皶r(shí)提供這些指令所需的操作數(shù)。
[0006]在這應(yīng)用中提出了一種加速技術(shù),在此加速技術(shù)中,在其執(zhí)行會導(dǎo)致從高速緩存查詢操作數(shù)的加載指令被派送后,需要被假設(shè)有很高的機(jī)率存在在內(nèi)核(全文中的“內(nèi)核”又稱之為“核心”)上的高速緩存的操作數(shù)的新的指令,會根據(jù)規(guī)定的數(shù)量的時(shí)鐘周期被派送。因此,當(dāng)加載指令被派送時(shí),多個(gè)在等待操作數(shù)的新指令會被安置在各自的保留站中,直到所規(guī)定的數(shù)量的時(shí)鐘周期結(jié)束,然后新指令會被派送,以進(jìn)行具有高確定性的執(zhí)行,也就是新指令將可取得其所需的操作數(shù)。
[0007]使用上述所提到的加速技術(shù)所產(chǎn)生的性能改善是顯著的,所以微處理器的設(shè)計(jì)者傳統(tǒng)上會全面地應(yīng)用此技術(shù)在所有加載指令(例如:來自輸入/輸出的加載、不可高速緩存的加載(uncacheable loads)、來自中斷寄存器(interrupt register)的加載、特定加載(special loads)等),盡管當(dāng)有許多加載指令時(shí)確實(shí)會花費(fèi)比制訂周期還要長的時(shí)間來取得其操作數(shù),因此在預(yù)期可獲得操作數(shù)的情況下,需要重新執(zhí)行所有被派送的新指令。使用上述的加速技術(shù)所產(chǎn)生的性能改善大大補(bǔ)償了,不常發(fā)生的重新執(zhí)行所導(dǎo)致的性能損失。
[0008]但是隨著多內(nèi)核處理器技術(shù)持續(xù)的進(jìn)步,設(shè)計(jì)者發(fā)現(xiàn)了很少被存取的特定處理器資源,例如:層級2高速緩存(level 2(L2)cache)、中斷控制器(interrupt controller)、恪絲陣列(fuse array)等,比較適合配置在多內(nèi)核處理器芯片上共有的區(qū)域,而不是復(fù)制(replicate)到每一內(nèi)核中。因此,像是上面所提到的資源,會被處理器內(nèi)核所共享。如同本領(lǐng)域技術(shù)人員所了解的,從不在內(nèi)核的資源(off-core resource)(例如:恪絲陣列)中加載操作數(shù)所花費(fèi)的時(shí)間會比從在內(nèi)核的資源(on-core resource)(例如:層級I高速緩存(Llcache))中加載還要長。此外,縱使根據(jù)上述加速技術(shù)需要重新執(zhí)行被派送的新指令所導(dǎo)致的性能損失并不大,但目前的發(fā)明人員發(fā)現(xiàn)到,其對電源使用的影響是值得注意的,對于龐大數(shù)量的指令在上述條件下被執(zhí)行時(shí),指令幾乎都會被重新執(zhí)行。此外,這些指令的起始執(zhí)行(initial execut1n)本質(zhì)上其實(shí)是浪費(fèi)電源的,因此,這樣的情況對于電池壽命(battery life)、熱輪廓(thermal profile)和可靠度(reliability)而言是不利的。
[0009]因此,能夠經(jīng)由改善重新執(zhí)行的所需次數(shù)以節(jié)省處理器操作時(shí)所花費(fèi)的電源的設(shè)備和方法是需要的。
[0010]此外,在一亂序處理器中,為了節(jié)省處理器的電源,降低附載重新加載的機(jī)制是需要的。
【發(fā)明內(nèi)容】
[0011]有鑒于上述現(xiàn)有技術(shù)的問題、缺點(diǎn)和限制,本發(fā)明提供了用以改善在一處理器重新執(zhí)行加載的裝置和方法。
[0012]根據(jù)本發(fā)明的一實(shí)施例提供了一種用以改善在亂序處理器重新執(zhí)行加載的裝置。上述裝置包括第一保留站以及第二保留站。所述第一保留站用以派送第一加載微指令,以及若所述第一加載微指令是指示從規(guī)定的資源而非從內(nèi)核上的高速緩存上提取操作數(shù)的規(guī)定的加載微指令,用以在保留總線進(jìn)行檢測和指示。所述第二保留站耦接至所述保留總線,且在所述第一加載微指令派送后的第一數(shù)量的時(shí)鐘周期之后,用以派送和所述第一加載微指令相依的一或多個(gè)新的微指令以進(jìn)行執(zhí)行,以及若在所述保留總線上指示了,所述第一加載微指令是所述規(guī)定的加載微指令,所述第二保留站用以緩存所述一或多個(gè)新的微指令的派送,直到所述第一加載微指令取得所述操作數(shù)。
[0013]根據(jù)本發(fā)明的另一實(shí)施例提供一種用以改善重新執(zhí)行加載的裝置。所述裝置包括具有多個(gè)內(nèi)核的多內(nèi)核處理器。每一所述多個(gè)內(nèi)核包括第一保留站,以及第二保留站。所述第一保留站用以派送第一加載微指令,以及若所述第一加載微指令是指示從規(guī)定的資源而非從內(nèi)核上的高速緩存上提取一操作數(shù)的規(guī)定的加載微指令,用以在保留總線進(jìn)行檢測和指示。所述第二保留站耦接至所述保留總線,且在所述第一加載微指令派送后的第一數(shù)量的時(shí)鐘周期之后,用以派送和所述第一加載微指令相依的一或多個(gè)新的微指令以進(jìn)行執(zhí)行,以及若在所述保留總線上指示了,所述第一加載微指令是所述規(guī)定的加載微指令,所述第二保留站用以緩存所述一或多個(gè)新的微指令的派送,直到所述第一加載微指令取得所述操作數(shù)。
[0014]根據(jù)本發(fā)明的另一實(shí)施例提供了一種用以改善在亂序處理器重新執(zhí)行加載的方法。所述方法的步驟包括:經(jīng)由第一保留站派送第一加載微指令,以及若所述第一加載微指令是指示從規(guī)定的資源而非從內(nèi)核上的高速緩存上提取操作數(shù)的規(guī)定的加載微指令,在保留總線進(jìn)行檢測和指示;以及經(jīng)由耦接至所述保留總線的第二保留站,在所述第一加載微指令派送后的第一數(shù)量的時(shí)鐘周期之后,用以派送和所述第一加載微指令相依的一或多個(gè)新的微指令以進(jìn)行執(zhí)行,以及若在所述保留總線上指示了,所述第一加載微指令是所述規(guī)定的加載微指令,所述第二保留站用以緩存所述一或多個(gè)新的微指令的派送,直到所述第一加載微指令取得所述操作數(shù)。
[0015]關(guān)于本發(fā)明其它附加的特征與優(yōu)點(diǎn),本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可根據(jù)本申請實(shí)施方法中所公開的執(zhí)行聯(lián)系程序的用戶裝置、系統(tǒng)、以及方法,做些許的更動與潤飾而得到。關(guān)于產(chǎn)業(yè)利用性,本發(fā)明可應(yīng)用在一般目的或特別目的的運(yùn)算裝置中使用的微處理器。
【附圖說明】
[0016]圖1為顯示目前使用配置在每一內(nèi)核101外部的共享資源的多內(nèi)核處理器的方塊圖 100;
[0017]圖2為顯示在圖1中每一當(dāng)前的內(nèi)核101中例示性的核層(corestage)的方塊圖200;
[0018]圖3為顯示根據(jù)本發(fā)明的實(shí)施例所述的對于來自非內(nèi)核資源的加載具有一節(jié)能機(jī)制的多內(nèi)核處理器的區(qū)塊圖300;
[0019]圖4為顯示在圖3中每一內(nèi)核301中例示性的核層(corestage)的方塊圖400;
[0020]圖5為根據(jù)本發(fā)明的實(shí)施例所述的圖4的非內(nèi)核緩存組件461的區(qū)塊圖500;
[0021]圖6為根據(jù)本發(fā)明的實(shí)施例所述的圖4的每一保留站RSl-RSN的方塊圖600;
[0022]圖7為根據(jù)本發(fā)明的實(shí)施例所述的圖4的非內(nèi)核未命中組件462的方塊圖700。
【具體實(shí)施方式】
[0023]以下描述本發(fā)明的示例性和說明性的實(shí)施例。為了清楚起見,在該說明書中沒有對實(shí)際實(shí)現(xiàn)的所有功能進(jìn)行描述,對于本領(lǐng)域技術(shù)人員而言將會理解的是,在對于任何該實(shí)際實(shí)現(xiàn)的開發(fā)中,可以進(jìn)行許多實(shí)施方案特定的決定,以實(shí)現(xiàn)特定目標(biāo),諸如符合系統(tǒng)相關(guān)和業(yè)務(wù)相關(guān)的約束,其可以根據(jù)實(shí)現(xiàn)方案而不同。此外,應(yīng)該理解的是,該開發(fā)工作可能是復(fù)雜和耗時(shí)的,但是對于受益于本公開的本領(lǐng)域技術(shù)人員而言其仍然是例行的任務(wù)。優(yōu)選實(shí)施例的各種修改對于本領(lǐng)域技術(shù)人員而言將是顯而易見的,并且本文中所界定的一般原理可應(yīng)用于其它實(shí)施例。因此,本發(fā)明并不限于這里示出和描述的具體實(shí)施例,而是應(yīng)被賦予與這里所公開的原理和新穎特征相一致的最廣范圍。
[0024]本發(fā)明將參考附圖進(jìn)行說明。在附圖中示意性地示出的各種結(jié)構(gòu)、系統(tǒng)、和設(shè)備僅僅是出于解釋的目的,以便使其不以本領(lǐng)域技術(shù)人員所公知的細(xì)節(jié)來模糊了本發(fā)明。然而,包括附圖來描述和解釋本發(fā)明的說明性示例。應(yīng)該理解的是,在此所用的字匯和詞組應(yīng)該被理解和解釋為具有與現(xiàn)有技術(shù)的本領(lǐng)域技術(shù)人員對于這些字匯和詞組的理解一致的含義。在此,術(shù)語或者短語的特定定義,(即不同于本領(lǐng)域技術(shù)人員所理解的常規(guī)和習(xí)慣意思的定義)沒有通過術(shù)語或者短語的一貫的使用來暗示。對于用以具有特定含義(即具有不同于本領(lǐng)域技術(shù)人員所理解的含義)的術(shù)語或短語,將以直接和毫不含糊地提供用于對于術(shù)語或短語的特定定義的定義方式來在說明書中清楚地闡明該特定的定義。
[0025]集成電路(Integra