思的定義)沒有通過術(shù)語或者短語的一貫的使用來暗示。對于用以具有特定含義(即具有不同于本領(lǐng)域技術(shù)人員所理解的含義)的術(shù)語或短語,將以直接和毫不含糊地提供用于對于術(shù)語或短語的特定定義的定義方式來在說明書中清楚地闡明該特定的定義。
[0025]集成電路(Integrated Circuit,IC):組裝在半導(dǎo)體材料上的小部分區(qū)塊(傳統(tǒng)上是硅芯片(si I icon))的電子電路集合。集成電路(IC)也可稱為芯片(chip)、微芯片(microchip),或晶元(die)。
[0026]中央處理單元(Central Processing Unit,CPU):通過對數(shù)據(jù)進行運算(包括算術(shù)運算(arithmetic operat1n)、邏輯運算(logic operat1n),以及輸入/輸出運算(input/output operat1n)),來執(zhí)行計算機程序(也稱為“計算機應(yīng)用”或“應(yīng)用程序”)的指令的電子電路(即硬件)。
[0027]微處理器(Microprocessor):在一單一集成電路上具有如同中央處理單元功能的電子裝置。微處理器接收數(shù)字數(shù)據(jù)作為輸入,根據(jù)從存儲器(在芯片上(on-die)或不在芯片上(off-die))提取的指令來處理數(shù)據(jù),以及將經(jīng)由指令指示的操作產(chǎn)生的結(jié)果作為輸出。一般目的的微處理器會使用在桌上型計算機(desktop)、移動電話(mobile),或平板計算機(tablet computer)中,以及用來進行計算、文字編輯、多媒體播放,以及瀏覽網(wǎng)絡(luò)。微處理器也會被配置在嵌入式系統(tǒng)以控制不同的裝置,這些包括電器用品(appliance)、移動電話、智能型手機(smart phone),以及工業(yè)控制裝置(industrial control device) ο
[0028]多內(nèi)核處理器(Mult1-Core Processor):也可稱作多內(nèi)核微處理器(mult1-coremicroprocessor)。多內(nèi)核處理器表示具有配置在單一集成電路上的多個中央處理單元(內(nèi)核)的微處理器。
[0029]指令集架構(gòu)(Instruct1nSet Architecture,ISA)或指令集(Instruct1nSet):計算機結(jié)構(gòu)中與程序設(shè)計有關(guān)的部分,包含了數(shù)據(jù)類型(data type),指令集,寄存器,尋址模式(addressing mode),存儲器結(jié)構(gòu)(memory architecture),中斷(interrupt),異常處理(except1n handling)以及輸入/輸出(input/output)。指令集架構(gòu)包含運算碼(opcode)(即機器語言指令)集合的設(shè)定,以及由特定中央處理單元執(zhí)行的原生指令(native command)。
[0030]x86_兼容性微處理器(x86_Compatible Microprocessor):能夠執(zhí)行根據(jù)x86指令集架構(gòu)所轉(zhuǎn)譯的計算機應(yīng)用的微處理器。
[0031 ] 微程序代碼(Microcode):用以進行與多個微指令(micro instruct1n)相關(guān)的項目。微指令(也稱作原生指令(native instruct1n)),是在微處理器子單元(sub-unit)層級的指令。例示性的子單元包括整數(shù)單元(integer unit)、浮點單元(floating pointunit)、多媒體單元(multimedia(MMX)unit),以及加載/存儲單元(load/store unit)。舉例來說,會經(jīng)由精簡指令集計算機(reduced instruct1n set computer,RISC)微處理器來直接執(zhí)行微指令。復(fù)雜指令集計算機(complex instruct1n set computer,CISC)微處理器,例如:x86-兼容性微處理器,x86指令會轉(zhuǎn)譯成相關(guān)的微指令,且相關(guān)的微指令會直接經(jīng)由子單元或在復(fù)雜指令集計算機微處理器內(nèi)的子單元來執(zhí)行。
[0032]恪絲(Fuse):導(dǎo)電結(jié)構(gòu),傳統(tǒng)上會以燈絲(filament)來配置,其能夠經(jīng)由讓電壓通過燈絲和/或電流流過燈絲,在所選取的位置被斷開。熔絲會經(jīng)由已知的制作技術(shù)(fabricat1n technology)配置在芯片表面型態(tài)上的特定的區(qū)域,以在所有可能編程的區(qū)域都配置燈絲。熔絲結(jié)構(gòu)會熔斷(或不熔斷)在制作后,可提供配置在芯片上的對應(yīng)裝置所想要的可編程特性。
[0033]根據(jù)上述討論到的多內(nèi)核處理器中加載機制的背景,以及為了從非內(nèi)核(non-core) 資源執(zhí)行加載,使用在目前多內(nèi)核處理器的相關(guān)技術(shù),關(guān)于目前技術(shù)的限制及缺點的討論將通過圖1-圖2來做說明。接著,會通過參考圖3-圖7,來說明本發(fā)明的討論內(nèi)容。
[0034]回到圖1,圖1為顯示目前使用配置在每一內(nèi)核101外部的共享資源的多內(nèi)核處理器的方塊圖100。方塊圖100顯示了裝置芯片110,在裝置芯片110上配置了四個處理器內(nèi)核101。特別說明的是,在此所述的四內(nèi)核(即四個內(nèi)核101)的多內(nèi)核微處理器僅是用以說明,但并非用以限制本發(fā)明。本發(fā)明所提出的原理和技術(shù)特征也可應(yīng)用在具有不同數(shù)目的內(nèi)核101的多內(nèi)核微處理器。
[0035]如同本領(lǐng)域技術(shù)人員所了解的,為了設(shè)計和/或商業(yè)相關(guān)的原因,設(shè)計者會在內(nèi)核101間選擇共享某些處理器資源。以性能為考慮而言,這些共享資源傳統(tǒng)上會如同內(nèi)核101一樣被配置在相同的裝置芯片110上,且內(nèi)核101會經(jīng)由高速總線(high speed busses)111-114來存取這些共享資源。方塊圖100顯示了例式性的共享資源,例如:層級2高速緩存103、隨機存取存儲器(random access memory,RAM) 104、總線單元(bus unit) 105、輸入/輸出單元 106、高階可編程中斷控制器(Advanced Programmable Interrupt Controller,APIC)107,以及熔絲陣列108。整體而言,這些如同內(nèi)核101配置在相同的裝置芯片110上,但卻是配置在在內(nèi)核101外部的共享資源103-108,在之后內(nèi)容將會視為非內(nèi)核資源102。因此,總線BI 111使得內(nèi)核I 101能夠存取非內(nèi)核資源102??偩€B2 112使得內(nèi)核2 101能夠存取非內(nèi)核資源102??偩€B3 113使得內(nèi)核3101能夠存取非內(nèi)核資源102。總線B4 114使得內(nèi)核4 101能夠存取非內(nèi)核資源102。在傳統(tǒng)上的配置,多內(nèi)核處理器會耦接至在裝置芯片110外部的其它組件,例如:系統(tǒng)存儲器(經(jīng)由一存儲器總線MEM進行存取)、輸入/輸出組件(經(jīng)由總線1/0進行存取),以及系統(tǒng)控制組件(經(jīng)由控制總線CTRL進行存取)。上述系統(tǒng)存儲器包括一或多頁表,用以存儲虛擬地址以及物理地址間的一或多映像,并且可進行上述一或多頁表的頁表查找以提取操作數(shù)。在其它實施例中,非內(nèi)核資源、系統(tǒng)存儲器、輸入/輸出組件或系統(tǒng)控制組件可能未和多內(nèi)核處理器被安置在相同的芯片上,而通過總線彼此耦接。
[0036]在操作上,每一內(nèi)核101在操作系統(tǒng)控制下會執(zhí)行從系統(tǒng)存儲器所提取的相關(guān)的指令,以及執(zhí)行對應(yīng)想要執(zhí)行的應(yīng)用的操作數(shù)。一或多個內(nèi)核101可存取一或多非內(nèi)核資源102,且將經(jīng)由對應(yīng)的總線B1-B4以控制的方式來存取一或多非內(nèi)核資源102。舉例來說,在電源初始設(shè)定期間,一或多內(nèi)核101會從熔絲陣列108執(zhí)行加載操作以取得配置參數(shù)(熔絲陣列108存儲對應(yīng)的內(nèi)核的配置數(shù)據(jù)、對應(yīng)的加載微指令),或會從隨機存取存儲器104執(zhí)行加載操作以取得派送信息(例如是:處理器的微程序代碼)。在一般操作時,內(nèi)核101會存取層級2高速緩存103以讀取/寫入不在內(nèi)核上高速緩存(例如層級I高速緩存)的存儲器操作數(shù)。內(nèi)核101會存取總線單元105,以進行讀取/寫入存儲器系統(tǒng)的動作,或者內(nèi)核101會存取輸入/輸出單元106以經(jīng)由輸入/輸出總線執(zhí)行輸入/輸出的操作。內(nèi)核101還會存取高階可編程中斷控制器107以執(zhí)行中斷操作。
[0037]現(xiàn)在來談?wù)搱D2,圖2為顯示在圖1中每一當前的內(nèi)核101中例示性的核層(corestage)的方塊圖200。在圖2中顯示了配置在裝置芯片110的處理器內(nèi)核201。處理器內(nèi)核201包括經(jīng)由總線241親接至轉(zhuǎn)譯層(translator stage)212的提取層(fetch stage)211。轉(zhuǎn)譯層212經(jīng)由總線242耦接至更名層(rename stage)213。更名層213經(jīng)由總線243耦接至重新執(zhí)行多工層(replay mux stage)214。重新執(zhí)行多工層214經(jīng)由總線244親接至多個保留站RSl 221.1-RSN 221.N以及加載保留站RSL 221.L。每一保留站RSl 221.1-RSN 221.N、RSL
221.L經(jīng)由對應(yīng)的派送總線251.1-251.N、251.L,耦接至對應(yīng)的執(zhí)行單元EU1222.1-EUN
222.N、EUL222.L。保留站RSl 221.1-RSN 221.N、RSL 221.L經(jīng)由總線245耦接至緩存數(shù)據(jù)226。每一保留站用以在所對應(yīng)的總線(保留總線)進行檢測和指示。
[0038I 注意地是,除了執(zhí)行單元EUL外,剩余的執(zhí)行單元EUl-EUN會包括典型超標量處理器所包含的單元,例如整數(shù)單元、浮點單元、多媒體單元以及存儲單元。接下來則特別說明執(zhí)行單元EUL,執(zhí)行單元EUL其主要功能是從不同資源加載操作數(shù),不同資源可像是系統(tǒng)存儲器、系統(tǒng)輸入/輸出,以及如同圖1所述的非內(nèi)核資源230。
[0039]此外,執(zhí)行單元EUL通過總線254耦接至層級I高速緩存223,以及通過總線256耦接至非內(nèi)核資源230 ο對于大部分存儲器操作數(shù)而言,加載單元222.L會先存取層級I高速緩存
223。若加載在層級I高速緩存223中未命中MISS,加載單元222.L就必須存取在非內(nèi)核資源230的層級2高速緩存。執(zhí)行單元EU1-EUN、EUL也經(jīng)由總線252耦接至重排緩沖器(reorderbuffer)224。此外,執(zhí)行單元EUL通過對應(yīng)未命中信號MISS的總線253耦接至重排緩沖器
224。重排緩沖器224通過對應(yīng)重新執(zhí)行信號REPLAY的總線258耦接至重新執(zhí)行多工層214,且通過總線257親接至收回單元(retire unit)225。收回單元通過對應(yīng)寫回信號WB(writeback)的總線255耦接至緩存數(shù)據(jù)226。
[0040]注意地是,在圖2所示的核層中,處理器內(nèi)核201僅用以舉例說明現(xiàn)今的超標量處理器,或亂序處理器內(nèi)核,以及僅用以為了說明本發(fā)明,但本發(fā)明并不以此為限。對于本領(lǐng)域技術(shù)人員而言,處理器核層可根據(jù)不同的架構(gòu)以及應(yīng)用而有所變化。
[0041]在操作上,程序指令(未顯示)是提取層(提取單元)211從存儲器所提取。在一x86-兼容性微處理器內(nèi)核201中,這些程序指令和x86指令集架構(gòu)一致。程序指令依序在總