国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于引導(dǎo)異構(gòu)系統(tǒng)并呈現(xiàn)對(duì)稱核視圖的方法

      文檔序號(hào):6540787閱讀:143來(lái)源:國(guó)知局
      用于引導(dǎo)異構(gòu)系統(tǒng)并呈現(xiàn)對(duì)稱核視圖的方法
      【專利摘要】描述了一組異構(gòu)處理器架構(gòu)和一種引導(dǎo)異構(gòu)處理器的方法。根據(jù)一個(gè)實(shí)施例的處理器包括:一組大型物理處理器核;一組小型物理處理器核,相對(duì)于所示大型物理處理器核,該小型物理處理器核具有相對(duì)較低性能的處理能力和相對(duì)較低的功率使用;以及封裝單元,用于啟用自舉處理器。自舉處理器初始化同構(gòu)物理處理器核,而異構(gòu)處理器向系統(tǒng)固件接口呈現(xiàn)同構(gòu)處理器的外觀。
      【專利說(shuō)明】用于引導(dǎo)異構(gòu)系統(tǒng)并呈現(xiàn)對(duì)稱核視圖的方法
      [0001] 香叉引用
      [0002] 本申請(qǐng)?jiān)O(shè)及并要求2013年3月15日提交的臨時(shí)申請(qǐng)序列號(hào)61/801615的權(quán)益, 該臨時(shí)申請(qǐng)通過(guò)引用納入于此。 發(fā)明領(lǐng)域
      [0003] 本發(fā)明一般設(shè)及計(jì)算機(jī)處理器領(lǐng)域。更具體地,本發(fā)明設(shè)及用于初始化并引導(dǎo)異 構(gòu)處理器的裝置和方法。
      [0004] 相關(guān)技術(shù)描述
      [0005] 現(xiàn)代手持式設(shè)備由于其小尺寸而既具有功耗也具有散熱約束,但消費(fèi)者正期望要 求日益進(jìn)步的計(jì)算功率的日益進(jìn)步的功能。為了既提供降低的功耗又提供增加的計(jì)算資 源,可W采用異構(gòu)處理器。異構(gòu)計(jì)算架構(gòu)提供優(yōu)于同構(gòu)架構(gòu)的獨(dú)特優(yōu)點(diǎn),因?yàn)橐环NW上類型 的計(jì)算元件可用于執(zhí)行計(jì)算任務(wù),該允許較低強(qiáng)度的計(jì)算任務(wù)由功率高效的計(jì)算元件來(lái)執(zhí) 行,而較高強(qiáng)度的計(jì)算任務(wù)在更強(qiáng)大的計(jì)算元件上執(zhí)行。
      [0006] 盡管異構(gòu)計(jì)算架構(gòu)的公知優(yōu)點(diǎn),但現(xiàn)實(shí)世界中存在用于CPU核的異構(gòu)計(jì)算的很少 示例。該些架構(gòu)要求軟件知道如何適當(dāng)?shù)卣{(diào)度任務(wù)到每一 CPU核類型(在該種情況下,計(jì) 算元件是CPU核)。隨著硬件演進(jìn)W及核類型變化,軟件(例如,操作系統(tǒng))非常難W跟蹤 可用的不同類型的CPU核W及如何高效地利用異構(gòu)性。

      【專利附圖】

      【附圖說(shuō)明】
      [0007] 可結(jié)合附圖從W下詳細(xì)描述中獲得對(duì)本發(fā)明的更好理解,其中:
      [000引圖1A是示出根據(jù)本發(fā)明的實(shí)施例的示例性有序流水線W及示例性寄存器重命名 的無(wú)序發(fā)布/執(zhí)行流水線兩者的框圖;
      [0009] 圖1B是示出根據(jù)本發(fā)明的實(shí)施例的有序架構(gòu)核的示例性實(shí)施例W及包括在處理 器中的示例性寄存器重命名的無(wú)序發(fā)布/執(zhí)行架構(gòu)核兩者的框圖;
      [0010] 圖2是根據(jù)本發(fā)明的實(shí)施例的單核處理器和多核處理器的框圖,具有集成的存儲(chǔ) 器控制器和圖形器件;
      [0011] 圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的系統(tǒng)的框圖;
      [0012] 圖4示出了根據(jù)本發(fā)明的實(shí)施例的第二系統(tǒng)的框圖;
      [0013] 圖5示出了根據(jù)本發(fā)明的實(shí)施例的第S系統(tǒng)的框圖;
      [0014] 圖6示出了根據(jù)本發(fā)明的實(shí)施例的片上系統(tǒng)(SoC)的框圖;
      [0015] 圖7示出了對(duì)比根據(jù)本發(fā)明實(shí)施例的使用軟件指令轉(zhuǎn)換器將源指令集中的二進(jìn) 制指令轉(zhuǎn)換為目標(biāo)指令集中的二進(jìn)制指令的框圖;
      [0016] 圖8示出了異構(gòu)核計(jì)算架構(gòu)的一個(gè)實(shí)施例。
      [0017] 圖9A和9B是根據(jù)一實(shí)施例的系統(tǒng)引導(dǎo)流程的概覽的流程圖。
      [001引圖10是示出根據(jù)一實(shí)施例的在固件和微代碼元件之間傳遞的數(shù)據(jù)和消息的時(shí)序 圖。
      [0019] 圖IIA-IIB示出了具有隱藏的大型核和多個(gè)可見(jiàn)小型核的系統(tǒng)的一個(gè)實(shí)施例。

      【具體實(shí)施方式】
      [0020] 在下面的描述中,出于說(shuō)明目的,闡述了眾多具體細(xì)節(jié)W便提供對(duì)W下描述的本 發(fā)明的實(shí)施例的全面理解。然而,對(duì)本領(lǐng)域技術(shù)人員將顯而易見(jiàn)的是,沒(méi)有該些具體細(xì)節(jié)中 的一些也可實(shí)施本發(fā)明的諸實(shí)施例。在其他實(shí)例中,眾所周知的結(jié)構(gòu)和設(shè)備W框圖形式示 出,W避免淡化本發(fā)明的實(shí)施例的底層原理。
      [002。 示例忡化理器架構(gòu)巧撒據(jù)類巧
      [0022] 圖1A是示出根據(jù)本發(fā)明的實(shí)施例的示例性有序流水線W及示例性寄存器重命 名、無(wú)序發(fā)布/執(zhí)行流水線的框圖。圖1B是示出根據(jù)本發(fā)明的實(shí)施例的要包括在處理器中 的有序架構(gòu)核示例性實(shí)施例W及示例性寄存器重命名、無(wú)序發(fā)布/執(zhí)行架構(gòu)核的框圖。圖 1A-B中的實(shí)線框示出有序流水線和有序核,而任選增加的虛線框示出寄存器重命名的無(wú)序 發(fā)布/執(zhí)行流水線和核。假設(shè)有序方面是無(wú)序方面的子集,將描述無(wú)序方面。
      [0023] 在圖1A中,處理器流水線100包括提取級(jí)102、長(zhǎng)度解碼級(jí)104、解碼級(jí)106、分配 級(jí)108、重命名級(jí)110、調(diào)度(也稱為分派或發(fā)布)級(jí)112、寄存器讀取/存儲(chǔ)器讀取級(jí)114、 執(zhí)行級(jí)116、回寫(xiě)/存儲(chǔ)器撰寫(xiě)級(jí)118、異常處理級(jí)122、W及提交級(jí)124。
      [0024] 圖1B示出處理器核190,該核190包括禪合到執(zhí)行引擎單元150的前端單元130, 并且兩者禪合到存儲(chǔ)器單元170。核190可W是精簡(jiǎn)指令集計(jì)算化ISC)核、復(fù)雜指令集 計(jì)算(CISC)核、超長(zhǎng)指令字(VLIW)核、或者混合或替代核類型。作為另一選項(xiàng),核190可 W是專用核,諸如舉例而言,網(wǎng)絡(luò)或通信核、壓縮引擎、協(xié)處理器核、通用計(jì)算圖形處理單元 佑PGPU)核、圖形核等。
      [0025] 前端單元130包括禪合到指令高速緩存單元134的分支預(yù)測(cè)單元132,該指令高 速緩存單元134禪合到指令翻譯后備緩沖器(TLB) 136,該指令TLB136禪合到指令提取單 元138,該指令提取單元138禪合到解碼單元140。解碼單元140 (或解碼器)可對(duì)指令進(jìn) 行解碼,并且生成一個(gè)或多個(gè)微操作、微代碼輸入點(diǎn)、微指令、其他指令、或者從原始指令解 碼、或W其他方式反映原始指令、或從原始指令派生的其他控制信號(hào)作為輸出。解碼單元 140可使用各種不同的機(jī)構(gòu)來(lái)實(shí)現(xiàn)。合適機(jī)構(gòu)的示例包括但不限于,查找表、硬件實(shí)現(xiàn)、可編 程邏輯陣列(PLA)、微代碼只讀存儲(chǔ)器(ROM)等。在一個(gè)實(shí)施例中,核190包括微代碼ROM 或者存儲(chǔ)用于特定宏指令的微代碼(例如,在解碼單元140中或者在前端單元130內(nèi))的 其他介質(zhì)。解碼單元140禪合至執(zhí)行引擎單元150中的重命名/分配器單元152。
      [0026] 執(zhí)行引擎單元150包括禪合到退役單元154的重命名/分配器單元152、W及一組 一個(gè)或多個(gè)調(diào)度器單元156。調(diào)度器單元156表示任何數(shù)量的不同調(diào)度器,包括:預(yù)約站、 中央指令窗口等等。調(diào)度器單元156禪合至物理寄存器文件單元158。每一物理寄存器文 件單元158表示一個(gè)或多個(gè)物理寄存器文件,其中不同的物理寄存器文件存儲(chǔ)一種或多種 不同的數(shù)據(jù)類型,諸如標(biāo)量整數(shù)、標(biāo)量浮點(diǎn)、打包整數(shù)、打包浮點(diǎn)、矢量整數(shù)、矢量浮點(diǎn)、狀態(tài) (例如,作為要執(zhí)行的下一指令的地址的指令指針)等。在一個(gè)實(shí)施例中,物理寄存器文件 單元158包括矢量寄存器單元、寫(xiě)掩碼寄存器單元、W及標(biāo)量寄存器單元。該些寄存器單元 可提供架構(gòu)矢量寄存器,矢量掩碼寄存器W及通用寄存器。物理寄存器文件單元158與退 役單元154重疊,W示出其中可實(shí)現(xiàn)寄存器重命名和無(wú)序執(zhí)行(例如,使用重排序緩沖器和 退役寄存器文件;使用未來(lái)文件、歷史緩沖器、w及退役寄存器文件;使用寄存器映射和寄 存器池等)的各種方式。退役單元154和物理寄存器文件單元158禪合到執(zhí)行集群160。 執(zhí)行集群160包括一組一個(gè)或多個(gè)執(zhí)行單元162 W及一組一個(gè)或多個(gè)存儲(chǔ)器存取單元164。 執(zhí)行單元162可執(zhí)行各種操作(例如,位移、加法、減法、乘法),并且對(duì)各種類型的數(shù)據(jù)(例 如,標(biāo)量浮點(diǎn)、打包整數(shù)、打包浮點(diǎn)、矢量整數(shù)、矢量浮點(diǎn))執(zhí)行。盡管一些實(shí)施例可包括專 屬于專用功能或功能集的大量執(zhí)行單元,但是其他實(shí)施例可包括全部都執(zhí)行所有功能的僅 一個(gè)執(zhí)行單元或者多個(gè)執(zhí)行單元。調(diào)度器單元156、物理寄存器文件單元158、W及執(zhí)行集 群160被示為可能是多個(gè)單元,因?yàn)樘囟▽?shí)施例為特定類型的數(shù)據(jù)/操作創(chuàng)建分離的流水 線(例如,標(biāo)量整數(shù)流水線、標(biāo)量浮點(diǎn)/打包整數(shù)/打包浮點(diǎn)/矢量整數(shù)/矢量浮點(diǎn)流水 線、和/或各自具有其自己的調(diào)度器單元、物理寄存器文件單元和/或執(zhí)行集群的存儲(chǔ)器 存取流水線-并且在單獨(dú)的寄存器存取流水線的情況下,實(shí)現(xiàn)其中僅該流水線的執(zhí)行集群 具有存儲(chǔ)器存取單元164的特定實(shí)施例)。還應(yīng)當(dāng)理解,在使用分離的流水線的情況下,該 些流水線中的一個(gè)或多個(gè)可W是無(wú)序發(fā)布/執(zhí)行,而其他流水線可W是有序的。
      [0027] 一組存儲(chǔ)器存取單元164禪合到存儲(chǔ)器單元170,該存儲(chǔ)器單元170包括禪合到數(shù) 據(jù)高速緩存單元174的數(shù)據(jù)TLB單元172,該數(shù)據(jù)高速緩存單元174禪合到第二級(jí)(L2)高 速緩存單元176。在一個(gè)示例性實(shí)施例中,存儲(chǔ)器訪問(wèn)單元164可包括加載單元、存儲(chǔ)地址 單元和存儲(chǔ)數(shù)據(jù)單元,其中的每一個(gè)均禪合至存儲(chǔ)器單元170中的數(shù)據(jù)TLB單元172。指令 高速緩存單元134還禪合到存儲(chǔ)器單元170中的第二級(jí)(L2)高速緩存單元176。L2高速 緩存單元176禪合到一種或多種其他級(jí)別的高速緩存,并且最終禪合到主存儲(chǔ)器。
      [002引作為示例,示例性寄存器重命名、無(wú)序發(fā)布/執(zhí)行核架構(gòu)可如下地實(shí)現(xiàn)流水線 100 ;1)指令提取138執(zhí)行提取和長(zhǎng)度解碼級(jí)102和104 ;2)解碼單元140執(zhí)行解碼級(jí)106 ; 3)重命名/分配器單元152執(zhí)行分配級(jí)108和重命名級(jí)110 ;4)調(diào)度器單元156執(zhí)行調(diào) 度級(jí)112 ;5)物理寄存器文件單元158和存儲(chǔ)器單元170執(zhí)行寄存器讀取/存儲(chǔ)器讀取級(jí) 114 ;執(zhí)行集群160執(zhí)行執(zhí)行級(jí)116 ;6)存儲(chǔ)器單元170和物理寄存器文件單元158執(zhí)行回 寫(xiě)/存儲(chǔ)器寫(xiě)入級(jí)118 ;7)各個(gè)單元可在異常處理級(jí)122中設(shè)及;W及8)退役單元154和 物理寄存器文件單元158執(zhí)行提交級(jí)124。
      [0029] 核190可支持一個(gè)或多個(gè)指令集(例如,x86指令集(具有已經(jīng)使用較新版本增 加的一些擴(kuò)展)、加利福巧亞州森巧維耳市MIPS Technologies的MIPS指令集、加利福巧亞 州森巧維耳市的ARM holding的ARM指令集(具有諸如肥ON之類的任選的附加擴(kuò)展)), 包括本文中所描述的指令。在一個(gè)實(shí)施例中,核190包括支持打包數(shù)據(jù)指令集擴(kuò)展(例如, AVX1、AVX2和/或W下描述的一些形式的一般矢量友好指令格式扣=0和/或U=l))的邏 輯,從而允許很多多媒體應(yīng)用使用的操作能夠使用打包數(shù)據(jù)來(lái)執(zhí)行。
      [0030] 應(yīng)當(dāng)理解,該核可支持多線程(執(zhí)行兩組或兩組W上的平行操作或線程),并且可 W包括分時(shí)多線程、同時(shí)多線程(其中單一物理核為每一線程提供物理核是同時(shí)多線程的 邏輯核)、或者其組合(例如,分時(shí)提取和解碼W及此后諸如在]Mel⑩Hypedhreading技術(shù) 中的同時(shí)多線程)的各種方式該樣做。
      [0031] 盡管在無(wú)序執(zhí)行的上下文中描述了寄存器重命名,但是應(yīng)當(dāng)理解寄存器重命名 可在有序架構(gòu)中使用。盡管處理器的所示實(shí)施例還包括單獨(dú)的指令和數(shù)據(jù)高速緩存單元 134 / 174 W及共享的L2高速緩存單元176,但是替代實(shí)施例可具有用于指令和數(shù)據(jù)兩者 的單一內(nèi)部高速緩存,諸如舉例而言,第一級(jí)(LI)內(nèi)部高速緩存、或多級(jí)內(nèi)部高速緩存。在 一些實(shí)施例中,該系統(tǒng)可包括內(nèi)部高速緩存和外部高速緩存的組合,該外部高速緩存在核 和/或處理器外部。替代地,所有高速緩存可在核和/或處理器外部。
      [0032] 圖2是根據(jù)本發(fā)明的實(shí)施例的可具有一個(gè)W上核、可具有集成存儲(chǔ)器控制器、并 且可具有集成圖形的處理器200的框圖。圖2的實(shí)線框示出了處理器200,處理器200具有 單個(gè)核202A、系統(tǒng)代理210、一組一個(gè)或多個(gè)總線控制器單元216,而可選附加的虛線框示 出了替代的處理器200,具有多個(gè)核202A-N、系統(tǒng)代理單元210中的一組一個(gè)或多個(gè)集成存 儲(chǔ)器控制器單元214 W及專用邏輯208。
      [0033] 由此,處理器200的不同實(shí)現(xiàn)可包括;1)具有作為集成圖形和/或科學(xué)(吞吐量) 邏輯(該邏輯可包括一個(gè)或多個(gè)核)的專用邏輯208、W及作為一個(gè)或多個(gè)通用核(例如, 通用有序核、通用無(wú)序核、兩者的組合)的核202A-N的CPU ;2)具有作為期望主要用于圖 形和/或科學(xué)(吞吐量)的大量專用核的核202A-N的協(xié)處理器;W及3)具有作為大量通 用有序核的核202A-N的協(xié)處理器。由此,處理器200可W是通用處理器、協(xié)處理器、或?qū)S?處理器,諸如舉例而言,網(wǎng)絡(luò)或通信處理器、壓縮引擎、圖形處理器、GPGPU (通用圖形處理單 元)、高吞吐量許多集成核0OC)協(xié)處理器(包括30個(gè)或30個(gè)W上的核)、嵌入式處理器 等。處理器可在一個(gè)或多個(gè)巧片上實(shí)現(xiàn)。處理器200可W是一個(gè)或多個(gè)基板的一部分,和/ 或在一個(gè)或多個(gè)基板上使用大量處理技術(shù)(諸如舉例而言,BiCMOS、CMOS、或NMO巧中的任 一種技術(shù)實(shí)現(xiàn)。
      [0034] 存儲(chǔ)器等級(jí)(hierarchy)包括核內(nèi)的一級(jí)或多級(jí)高速緩存、一組或者一個(gè)或多個(gè) 共享高速緩存單元206、W及禪合到一組集成存儲(chǔ)器控制器單元214的外部存儲(chǔ)器(未示 出)。一組共享高速緩存單元206可包括一個(gè)或多個(gè)中級(jí)高速緩存(諸如第二級(jí)(L2)、第 S級(jí)(L3)、第四級(jí)(L4))或其他級(jí)高速緩存、最后一級(jí)高速緩存(LLC)、和/或其組合。盡 管在一個(gè)實(shí)施例中,基于環(huán)形的互連單元212使集成圖形邏輯208、一組共享高速緩存單元 206、W及系統(tǒng)代理單元210 /集成存儲(chǔ)器控制器單元214互連,但是替代實(shí)施例可使用任 意數(shù)量的公知技術(shù)來(lái)互連該些單元。在一個(gè)實(shí)施例中,在一個(gè)或多個(gè)高速緩存單元206與 核202A-N之間維持相干性。
      [0035] 在一些實(shí)施例中,核202A-H中的一個(gè)或多個(gè)核能夠多線程。系統(tǒng)代理210包括協(xié) 調(diào)和操作核202A-N的那些組件。系統(tǒng)代理單元210可包括例如功率控制單元(PCU)和顯 示單元。PCU可W是或者包括調(diào)整核202A-N的功率狀態(tài)必需的的邏輯和組件、W及集成圖 形邏輯208。顯示單元用于驅(qū)動(dòng)一個(gè)或多個(gè)外部連接的顯示器。
      [0036] 核202A-N在架構(gòu)指令集方面可W是同質(zhì)的或者異質(zhì)的,即核202A-N中的兩個(gè)或 兩個(gè)W上核能夠執(zhí)行相同的指令集,而其他核可W能夠只執(zhí)行該指令集的子集或者不同的 指令集。在一個(gè)實(shí)施例中,核202A-N是異構(gòu)的并且包括下述"小型"核和"大型"核。
      [0037] 圖3-6是示例性計(jì)算機(jī)架構(gòu)的框圖。在本領(lǐng)域中已知的用于膝上型個(gè)人計(jì)算機(jī)、 臺(tái)式個(gè)人計(jì)算機(jī)、手持個(gè)人計(jì)算機(jī)(PC)、個(gè)人數(shù)字助理、工程工作站、服務(wù)器、網(wǎng)絡(luò)設(shè)備、網(wǎng) 絡(luò)中樞、交換機(jī)、嵌入式處理器、數(shù)字信號(hào)處理器值SP)、圖形設(shè)備、視頻游戲設(shè)備、機(jī)頂盒、 微控制器、蜂窩電話、便攜式媒體播放器、手持設(shè)備、W及各種其他電子設(shè)備的其他系統(tǒng)設(shè) 計(jì)和配置也是合適的。一般而言,能夠結(jié)合本文中公開(kāi)的處理器和/或其他執(zhí)行邏輯的各 種各樣系統(tǒng)或電子設(shè)備通常是合適的。
      [003引現(xiàn)在參考圖3,所示出的是根據(jù)本發(fā)明一實(shí)施例的系統(tǒng)300的框圖。系統(tǒng)300可包 括一個(gè)或多個(gè)處理器310、315,該些處理器禪合到控制器中樞320。在一個(gè)實(shí)施例中,控制 器中樞320包括圖形存儲(chǔ)器控制器中樞佑MCH) 390和輸入/輸出中樞(IOH) 350 (它們可在 分離的巧片上);GMC冊(cè)90包括禪合到存儲(chǔ)器340和協(xié)處理器345的存儲(chǔ)器和圖形控制器; 10冊(cè)50使輸入/輸出(I / 0)設(shè)備360禪合到GMC冊(cè)90。替代地,存儲(chǔ)器和圖形控制器中 的一個(gè)或兩個(gè)在處理器(如本文中所描述的)內(nèi)集成,存儲(chǔ)器340和協(xié)處理器345直接禪 合到處理器310、化及單一巧片中的具有10冊(cè)50的控制器中樞320。
      [0039] 附加處理器315的任選本質(zhì)在圖3中用虛線指示。每一處理器310、315可包括本 文中所描述的處理核中的一個(gè)或多個(gè),并且可W是一些版本的處理器200。
      [0040] 存儲(chǔ)器340可W是例如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器值RAM)、相變存儲(chǔ)器(PCM)或者兩者 的組合。對(duì)于至少一個(gè)實(shí)施例,控制器中樞320經(jīng)由諸如前側(cè)總線(FSB)之類的多點(diǎn)總線 (multi-化op bus)、諸如快速通道互連(QPI)之類的點(diǎn)對(duì)點(diǎn)接口、或者類似的連接395與處 理器310、315進(jìn)行通信。
      [0041] 在一個(gè)實(shí)施例中,協(xié)處理器345是專用處理器,諸如高吞吐量MIC處理器、網(wǎng)絡(luò)或 通信處理器、壓縮引擎、圖形處理器、GPGPU、嵌入式處理器等。在一個(gè)實(shí)施例中,控制器中樞 320可包括集成圖形加速器。
      [0042] 按照包括架構(gòu)、微架構(gòu)、熱、功耗特征等等優(yōu)點(diǎn)的度量譜,物理資源310、315之間 存在各種差別。
      [0043] 在一個(gè)實(shí)施例中,處理器310執(zhí)行控制具有通用類型的數(shù)據(jù)處理操作的指令。協(xié) 處理器指令可被嵌入該些指令內(nèi)。處理器310識(shí)別如具有應(yīng)當(dāng)由附連的協(xié)處理器345執(zhí)行 的類型的該些協(xié)處理器指令。因此,處理器310在協(xié)處理器總線或者其他互連上將該些協(xié) 處理器指令(或者表示協(xié)處理器指令的控制信號(hào))發(fā)布到協(xié)處理器345。協(xié)處理器345接 受和執(zhí)行接收到的協(xié)處理器指令。
      [0044] 現(xiàn)在參考圖4,示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的第一更專用的示例性系統(tǒng)400 的框圖。如圖4所示,多處理器系統(tǒng)400是點(diǎn)對(duì)點(diǎn)互連系統(tǒng),并且包括經(jīng)由點(diǎn)對(duì)點(diǎn)互連450 禪合的第一處理器470和第二處理器480。處理器470和480中的每一個(gè)可W是某個(gè)版本 的處理器200。在本發(fā)明的一個(gè)實(shí)施例中,處理器470和480分別是處理器310和315,而 協(xié)處理器438是協(xié)處理器345。在另一實(shí)施例中,處理器470和480分別是處理器310和協(xié) 處理器%5。
      [0045] 處理器470和480分別被示為包括集成存儲(chǔ)器控制器(IMC)單元472和482。處 理器470還包括點(diǎn)對(duì)點(diǎn)(P-巧接口 476和478作為其總線控制器單元的一部分;類似地,第 二處理器480包括P-P接口 486和488。處理器470、480可使用P-P接口電路478、488經(jīng) 由點(diǎn)對(duì)點(diǎn)(P-P)接口 450交換信息。如圖4所示,IMC472和482使處理器禪合到相應(yīng)的存 儲(chǔ)器,即存儲(chǔ)器432和存儲(chǔ)器434,該些存儲(chǔ)器可W是在本地附連到各個(gè)處理器的主存儲(chǔ)器 的部分。
      [0046] 處理器470、480可各自使用點(diǎn)對(duì)點(diǎn)接口電路476、494、486、498經(jīng)由各個(gè)P-P接口 452、454與巧片組490交換信息。巧片組490可任選地經(jīng)由高性能接口 439與協(xié)處理器438 交換信息。在一個(gè)實(shí)施例中,協(xié)處理器438是專用處理器,諸如高吞吐量MIC處理器、網(wǎng)絡(luò) 或通信處理器、壓縮引擎、圖形處理器、GPGPU、嵌入式處理器等。
      [0047] 共享高速緩存(未示出)可被包括在任一處理器中或者在兩個(gè)處理器外部,但是 經(jīng)由P-P互連與處理器連接,由此如果處理器置于低功率模式中,則任一或兩個(gè)處理器的 本地高速緩存信息可被存儲(chǔ)在共享高速緩存中。
      [0048] 巧片組490可經(jīng)由接口 496禪合到第一總線416。在一個(gè)實(shí)施例中,第一總線416 可W是外圍組件互連(PCI)總線、或者諸如PCI Express總線或另一第S代I / 0互連總 線之類的總線,但是本發(fā)明的范圍不限于此。
      [0049] 如圖4所示,各種I / 0設(shè)備414可連同總線橋418 -起禪合到第一總線416,總 線橋418將第一總線416禪合到第二總線420。在一個(gè)實(shí)施例中,諸如協(xié)處理器、高吞吐量 MIC處理器、GPGPU的加速器(諸如舉例而言,圖形加速器或數(shù)字信號(hào)處理值S巧單元)、現(xiàn) 場(chǎng)可編程口陣列、或者任何其他處理器之類的一個(gè)或多個(gè)附加處理器415禪合到第一總線 416。在一個(gè)實(shí)施例中,第二總線420可W是低引腳數(shù)(LPC)總線。在一個(gè)實(shí)施例中,多個(gè) 設(shè)備可W禪合到第二總線420,包括例如鍵盤(pán)和/或鼠標(biāo)422、通信設(shè)備427 W及可W包括 指令/代碼和數(shù)據(jù)430的存儲(chǔ)單元428 (諸如盤(pán)驅(qū)動(dòng)器或其它海量存儲(chǔ)設(shè)備)。此外,音頻 I / 0424可禪合到第二總線420。注意,其他架構(gòu)是可能的。例如,代替圖4的點(diǎn)對(duì)點(diǎn)架構(gòu), 系統(tǒng)可實(shí)現(xiàn)多點(diǎn)總線或者其他此類架構(gòu)。
      [0050] 現(xiàn)在參考圖5,示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的第二更專用的示例性系統(tǒng)500 的框圖。圖4和5中的類似元件使用類似附圖標(biāo)記,且在圖5中省略了圖4的某些方面W 避免混淆圖5的其它方面。
      [0化1] 圖5示出處理器470、480可分別包括集成存儲(chǔ)器和I / 0控制邏輯("化")472 和482。因此,CL472和482包括集成存儲(chǔ)器控制器單元且包括I / 0控制邏輯。圖5示出 不僅存儲(chǔ)器432、434禪合到CL472、482,而且I / 0設(shè)備514也禪合到控制邏輯472、482。 傳統(tǒng)I / 0設(shè)備515禪合到巧片組490。
      [0052] 圖6示出根據(jù)本發(fā)明的實(shí)施例的SOC600的框圖。圖2中的類似元件具有相似的 附圖標(biāo)記。同樣,虛線框是更多高級(jí)SoC上的任選的特征。在圖6中,互連單元602禪合 至IJ ;包括一組一個(gè)或多個(gè)核202A-N和共享高速緩存單元206的應(yīng)用處理器610 ;系統(tǒng)代理 單元210 ;總線控制器單元216 ;集成存儲(chǔ)器控制器單元214 ;可包括集成圖形邏輯、圖形處 理器、音頻處理器W及視頻處理器的一組或者一個(gè)或多個(gè)協(xié)處理器620 ;靜態(tài)隨機(jī)存取存 儲(chǔ)器(SRAM)單元630 ;直接存儲(chǔ)器存取值MA)單元632 及用于禪合到一個(gè)或多個(gè)外部顯 示器的顯示單元640。在一個(gè)實(shí)施例中,協(xié)處理器620包括專用處理器,諸如舉例而言,網(wǎng)絡(luò) 或通信處理器、壓縮引擎、GPGPU、高吞吐量MIC處理器、嵌入式處理器等。
      [0化3] 本文中所公開(kāi)的機(jī)構(gòu)的實(shí)施例可W硬件、軟件、固件、或者該些實(shí)現(xiàn)方法的組合來(lái) 實(shí)現(xiàn)。本發(fā)明的實(shí)施例可被實(shí)現(xiàn)為在可編程系統(tǒng)上執(zhí)行的計(jì)算機(jī)程序或程序代碼,該些可 編程系統(tǒng)包括至少一個(gè)處理器、存儲(chǔ)系統(tǒng)(包括易失性和非易失性存儲(chǔ)器和/或存儲(chǔ)元 件)、至少一個(gè)輸入設(shè)備W及至少一個(gè)輸出設(shè)備。
      [0054] 諸如圖4所示的代碼430之類的程序代碼可應(yīng)用于輸入指令,W執(zhí)行本文中所描 述的功能并生成輸出信息。輸出信息可W已知的方式應(yīng)用于一個(gè)或多個(gè)輸出設(shè)備。出于本 申請(qǐng)的目的,處理系統(tǒng)包括具有處理器(諸如舉例而言,數(shù)字信號(hào)處理器值SP)、微控制器、 專用集成電路(ASIC)、或微處理器)的任何系統(tǒng)。
      [0化5] 程序代碼可W高級(jí)過(guò)程或面向?qū)ο缶幊陶Z(yǔ)言實(shí)現(xiàn),W與處理系統(tǒng)進(jìn)行通信。如果 期望,程序代碼則還可w匯編或機(jī)器語(yǔ)言實(shí)現(xiàn)。實(shí)際上,本文中所描述的機(jī)構(gòu)在范圍上不限 于任何特定編程語(yǔ)言。在任何情況下,該語(yǔ)言可W是編譯或解釋語(yǔ)言。
      [0化6] 至少一個(gè)實(shí)施例的一個(gè)或多個(gè)方面可通過(guò)存儲(chǔ)在機(jī)器可讀介質(zhì)上的代表性指令 來(lái)實(shí)現(xiàn),該機(jī)器可讀介質(zhì)表示處理器內(nèi)的各種邏輯,該些指令在由機(jī)器讀取時(shí)使得該機(jī)器 制備邏輯W執(zhí)行本文中所描述的技術(shù)。稱為"IP核的該些表示可被存儲(chǔ)在有形的機(jī)器可讀 介質(zhì)上且供應(yīng)給各種客戶或制造設(shè)施W加載到實(shí)際上制作邏輯或處理器的制備機(jī)器。" [0化7] 該種機(jī)器可讀存儲(chǔ)介質(zhì)可包括但不限于,由機(jī)器或設(shè)備制造或形成的制品的非 瞬態(tài)有形排列,該些非瞬態(tài)有形排列包括:諸如硬盤(pán),包括軟盤(pán)、光盤(pán)、壓縮盤(pán)只讀存儲(chǔ)器 (CD-ROM)、壓縮盤(pán)可重寫(xiě)(CD-RW)存儲(chǔ)器、W及磁電-光盤(pán)的任何其他類型的盤(pán)之類的存儲(chǔ) 介質(zhì);諸如只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)(諸如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器值RAM)、靜 態(tài)隨機(jī)存取存儲(chǔ)器(SRAM))、可擦除可編程只讀存儲(chǔ)器巧PROM)、閃存、電可擦除可編程只 讀存儲(chǔ)器巧EPROM)、相變存儲(chǔ)器(PCM)之類的半導(dǎo)體器件;磁或光卡;或者適于存儲(chǔ)電子指 令的任何其他類型的介質(zhì)。
      [005引因此,本發(fā)明的實(shí)施例還包括包含指令或者包含設(shè)計(jì)數(shù)據(jù)的諸如硬件描述語(yǔ)言 (皿L)之類的非瞬態(tài)有形機(jī)器可讀介質(zhì),該非瞬態(tài)有形機(jī)器可讀介質(zhì)定義本文中所描述的 結(jié)構(gòu)、電路、裝置、處理器和/或系統(tǒng)特征。該些實(shí)施例還可被稱為程序產(chǎn)品。
      [0化9] 在一些情況下,指令轉(zhuǎn)換器可用于將來(lái)自源指令集的指令轉(zhuǎn)換成目的地指令集。 例如,指令轉(zhuǎn)換器可將指令翻譯(例如,使用靜態(tài)二進(jìn)制翻譯、包括動(dòng)態(tài)編譯的動(dòng)態(tài)二進(jìn)制 翻譯)、變形、仿真、或者W其他方式轉(zhuǎn)換成由核處理的一個(gè)或多個(gè)其他指令。指令轉(zhuǎn)換器可 W軟件、硬件、固件、或者其組合實(shí)現(xiàn)。指令轉(zhuǎn)換器可在處理器上、在處理器W外、或者部分 在處理器上且部分在處理器W外。
      [0060]圖7是對(duì)比根據(jù)本發(fā)明實(shí)施例的使用軟件指令轉(zhuǎn)換器將源指令集中的二進(jìn)制指 令轉(zhuǎn)換為目標(biāo)指令集中的二進(jìn)制指令的框圖。在所示的實(shí)施例中,指令轉(zhuǎn)換器是軟件指令 轉(zhuǎn)換器,但是替代的指令轉(zhuǎn)換器可W軟件、固件、硬件、或者其各種組合實(shí)現(xiàn)。圖7示出用高 級(jí)語(yǔ)言702編寫(xiě)的程序可使用x86編譯器704進(jìn)行編譯W生成x86二進(jìn)制代碼706,該x86 二進(jìn)制代碼706可由具有至少一個(gè)x86指令集核716的處理器在本機(jī)上執(zhí)行。具有至少一 個(gè)x86指令集核716的處理器表示可通過(guò)兼容地執(zhí)行或者W其他方式處理(1)因特爾x86 指令集核的指令集的實(shí)質(zhì)部分或者(2) W在具有至少一個(gè)x86指令集核的因特爾處理器上 運(yùn)行為目標(biāo)的對(duì)象代碼版本的應(yīng)用或其他軟件來(lái)執(zhí)行與具有至少一個(gè)X86指令集核的因 特爾處理器基本相同的功能W實(shí)現(xiàn)與具有至少一個(gè)x86指令集核的因特爾處理器基本相 同的結(jié)果的任何處理器。x86編譯器704表示可操作用于生成在具有或者沒(méi)有附加鏈接處 理的情況下可在具有至少一個(gè)x86指令集核716的處理器上執(zhí)行的x86二進(jìn)制代碼706 (例 如,對(duì)象代碼)的編譯器。類似地,圖7 W高級(jí)語(yǔ)言702示出了程序,該程序可使用替代指 令集編譯器708來(lái)編譯W生成替代指令集二級(jí)制代碼710,替代指令集二級(jí)制代碼714可 由不具有至少一個(gè)x86指令集核的處理器(諸如,具有執(zhí)行加利福巧亞州桑巧威爾的MIPS 技術(shù)公司的MIPS指令集的處理器和/或執(zhí)行英國(guó)劍橋的ARM控股公司的ARM指令集的處 理器)來(lái)天然地執(zhí)行。指令轉(zhuǎn)換器712用于將x86二進(jìn)制代碼706轉(zhuǎn)換成可由不具有x86 指令集核714的處理器在本機(jī)上執(zhí)行的代碼。該經(jīng)轉(zhuǎn)換的代碼不可能與替代指令集二進(jìn)制 代碼710相同,因?yàn)殡yW制作能夠該樣做的指令轉(zhuǎn)換器;然而,經(jīng)轉(zhuǎn)換的代碼將完成一般操 作并且由來(lái)自替代指令集的指令構(gòu)成。由此,指令轉(zhuǎn)換器712表示通過(guò)仿真、模擬、或者任 何其他處理允許不具有x86指令集處理器或核的處理器或者其他電子設(shè)備執(zhí)行x86二進(jìn)制 代碼706的軟件、固件、硬件、或者其組合。
      [00川 系統(tǒng)誘巧的擇構(gòu)計(jì)算
      [0062] 下文描述的本發(fā)明的各實(shí)施例通過(guò)向系統(tǒng)完全隱藏異構(gòu)性并將所有異構(gòu)性知曉 邏輯和試探法集成在處理器內(nèi),克服了系統(tǒng)固件接口和操作系統(tǒng)(0巧中缺少對(duì)異構(gòu)性的 支持。然而,在常規(guī)CPU中,任務(wù)到各個(gè)核的分配是完全由軟件(通常由0巧來(lái)完成的,在 本發(fā)明的一個(gè)實(shí)施例中,該一分配被分解成兩部分。軟件繼續(xù)將軟件進(jìn)程調(diào)度到所暴露的 同構(gòu)核,同時(shí)硬件在所暴露的核W及隱藏的異構(gòu)核之間動(dòng)態(tài)地交換線程。
      [0063] 通過(guò)只向系統(tǒng)暴露同構(gòu)計(jì)算元件,硬件的異構(gòu)本質(zhì)完全向軟件隱藏,包括系統(tǒng)固 件接口(例如,BI0S、EFI、或UEFI)和0S化及幾乎所有可能的應(yīng)用級(jí)軟件。該系統(tǒng)因而如 同它在只具有同構(gòu)核的處理器上運(yùn)行那樣引導(dǎo)和操作。該一實(shí)施例的處理器硬件包括用于 將暴露給軟件的計(jì)算元件中的每一個(gè)動(dòng)態(tài)地映射到可用的隱藏物理計(jì)算元件中的一個(gè)或 多個(gè)的邏輯。另外,該邏輯維護(hù)每一類型的處理器中的操作的一致性W及在各核類型之間 轉(zhuǎn)移工作的能力。硬件動(dòng)態(tài)地選擇物理計(jì)算元件的特定機(jī)制對(duì)該系統(tǒng)而言是透明的。
      [0064] 通過(guò)包括計(jì)算元件的異構(gòu)選擇,處理器硬件總是可W在具有非常不同類型的計(jì)算 任務(wù)的非常不同的操作條件下非常高效地操作。例如,包含小型的功率高效的核W及大型 的高性能核兩者的CPU可被用來(lái)在功率有限(并且性能不是關(guān)鍵)的時(shí)候W及也在需要高 性能(但功率不受限)的其他時(shí)候高效地運(yùn)行軟件。硬件內(nèi)的計(jì)算元件的不同組合的選擇 基于哪些類型的任務(wù)需要在該系統(tǒng)上運(yùn)行W及在哪些條件下運(yùn)行的設(shè)計(jì)要求。
      [00化]異構(gòu)系統(tǒng)可W包含不同類型的計(jì)算元件,如處理器核、圖形處理器單元(GPU)、W 及固定功能加速器(用于加速諸如排序和循環(huán)等常見(jiàn)功能)。在W下闡明的本發(fā)明的各實(shí) 施例中,異構(gòu)系統(tǒng)可具有不同類型的處理器核一一即,少量高性能核W及較大數(shù)量的小型 的功率高效的核。然而,本發(fā)明的底層原理可被用于其他類型的計(jì)算元件。
      [0066] 圖8示出了異構(gòu)核計(jì)算架構(gòu)的一個(gè)實(shí)施例,在此稱為"Heter〇-UP"800。在 化ter〇-UP800配置中,小型的功率高效的核802被暴露給軟件。在應(yīng)用806需要附加性能 時(shí),并且在足夠的功率預(yù)算可用時(shí),虛擬到物理核映射可將線程從小型的功率高效的核802 透明地切換到高性能的大型物理核804 W代替該小型核來(lái)運(yùn)行。在一個(gè)實(shí)施例中,封裝單 元805管理該組異構(gòu)處理器核,W基于功率簡(jiǎn)檔和計(jì)算吞吐量要求確定哪些處理器核被啟 用和禁用。出于描述W下異構(gòu)核計(jì)算實(shí)現(xiàn)的引導(dǎo)過(guò)程的目的,該Heter〇-UP800實(shí)施例將被 示為示例性的而非限制性的示例。
      [0067] 對(duì)于該化ter〇-UP800實(shí)施例,固件接口將只能夠?qū)⑵脚_(tái)處理器作為小型核來(lái)枚 舉。大型核將向軟件隱藏,并且不能夠被用常規(guī)枚舉方法(如CPUID)枚舉。然而,應(yīng)當(dāng)注 意,異構(gòu)核計(jì)算實(shí)現(xiàn)的其他實(shí)施例是可能的,如化tero-Down配置,在該配置中,高性能大 型物理核804是可見(jiàn)的,而小型的功率高效的核802是隱藏的。在該種情況下,固件接口將 枚舉大型核處理器。
      [0068] 在一個(gè)實(shí)施例中,專用軟件工具,如處理器調(diào)試工具,能夠標(biāo)識(shí)可用物理核的類 型,即使固件接口和0S不知道異構(gòu)處理系統(tǒng)。該專用軟件工具能夠禁用或啟用在各核之間 切換的能力,并且可W執(zhí)行諸如促使將線程從一個(gè)核類型切換到不同的核類型等動(dòng)作。
      [0069] 盡管透明的異構(gòu)計(jì)算造成處理器硬件的設(shè)計(jì)和開(kāi)發(fā)的復(fù)雜度的增加,但它向固件 接口和OS開(kāi)發(fā)人員提供了多個(gè)優(yōu)點(diǎn)。首先,固件接口、OS或應(yīng)用軟件不必知道CPU具有異 構(gòu)核(或其他計(jì)算元件),該意味著傳統(tǒng)軟件(包括操作系統(tǒng))將繼續(xù)與所描述的硬件一起 工作。類似地,將來(lái)操作系統(tǒng)和軟件應(yīng)用將不必不斷地更新來(lái)反映硬件的每一版本上的異 構(gòu)性的類型。
      [0070] 其次,虛擬到物理核映射邏輯所實(shí)現(xiàn)的所有試探法被包含在該硬件內(nèi),或包含在 與該硬件綁在一起的軟件或固件內(nèi),或由處理器供應(yīng)商W其他方式提供。因此,將來(lái)的硬件 設(shè)計(jì)可W創(chuàng)建更積極且新穎的計(jì)算元件選擇,因?yàn)樗懈淖兪菍?duì)軟件隱藏的并且不要求軟 件更新。
      [007。 誘巧擇構(gòu)計(jì)算的引導(dǎo)流巧
      [0072] 當(dāng)前異構(gòu)計(jì)算解決方案可能要求固件接口和操作系統(tǒng)(0巧兩者都知曉具有相關(guān) 聯(lián)的軟件復(fù)雜性的異構(gòu)核。然而,呈現(xiàn)處理器接口使得固件接口和0S如同它們?cè)趩畏N類型 的核上執(zhí)行那樣來(lái)操作是可能的,而它們實(shí)際上在一個(gè)或多個(gè)異構(gòu)核上執(zhí)行。一種方法使 用微代碼層來(lái)"枚舉"其他類型的核的行為。一種附加方法利用特殊微代碼和封裝級(jí)硬件 幫助將正在執(zhí)行的線程轉(zhuǎn)移到正確的執(zhí)行核(例如,低功率或高性能)。
      [0073] 在系統(tǒng)啟動(dòng)時(shí),暴露給該系統(tǒng)的那一類型的核確定由固件接口執(zhí)行的引導(dǎo)流程。 在固件接口初始化期間,隱藏的核是睡眠的,并且不能被該系統(tǒng)使用,除非使用專用微代碼 例程。一旦OS被初始化,其他核類型可被用來(lái)執(zhí)行必要的初始化流程。如果OS是知曉異 構(gòu)處理系統(tǒng)的,則使得異構(gòu)處理器核對(duì)OS可見(jiàn),OS可在不同的處理器核類型中的每一個(gè)上 直接調(diào)度任務(wù)。在一個(gè)實(shí)施例中,知曉異構(gòu)的OS經(jīng)由枚舉或虛擬處理器(它們向正在執(zhí)行 的軟件提供同構(gòu)抽象層)將處理器的異構(gòu)本質(zhì)抽象到在該OS上運(yùn)行的軟件。
      [0074] 如果OS不是知曉異構(gòu)處理系統(tǒng)的,則可W使用動(dòng)態(tài)核切換功能來(lái)利用隱藏的核, 該功能允許異構(gòu)處理器在各核之間動(dòng)態(tài)地切換正在執(zhí)行的線程。使用該方法,軟件相信它 在該軟件可見(jiàn)的那一類型的核上執(zhí)行,而不管該軟件實(shí)際上在哪一核上執(zhí)行。為了進(jìn)一步 促進(jìn)系統(tǒng)透明性,提供新的"經(jīng)掩碼的C6 (Masked C6)"處理器狀態(tài),在該狀態(tài)中,處理器核 被置于低功率狀態(tài),其中處理器核消耗近乎零功率,并且其中使得處理器核對(duì)系統(tǒng)軟件不 可見(jiàn)。處于經(jīng)掩碼的C6狀態(tài)中的處理器核不能被標(biāo)準(zhǔn)系統(tǒng)觸發(fā)器訪問(wèn),而是改為可經(jīng)由專 用微代碼例程來(lái)訪問(wèn)。
      [0075] 為了簡(jiǎn)化W下解釋,化ter〇-UP800系統(tǒng)被用來(lái)描述示例性引導(dǎo)流程,并且該系統(tǒng) 可見(jiàn)的核是功率高效的小型核802,小型核802實(shí)現(xiàn)高性能大型物理核804的子集并消耗較 少功率。然而,應(yīng)當(dāng)明白,各實(shí)施例不限于此,因?yàn)閃下描述對(duì)核類型、它們中有多少存在于 處理器上、W及哪一類型對(duì)固件接口和OS可見(jiàn)是不可知的。
      [0076] 圖9A和9B是根據(jù)一實(shí)施例的化tero-UP配置上的系統(tǒng)引導(dǎo)流程的概覽的流程 圖。在圖9a中開(kāi)始,在901處,平臺(tái)控制器中樞(PCH)通過(guò)將固件接口代碼復(fù)制到微代碼可 訪問(wèn)的存儲(chǔ)器空間(如,通用閃存扣F巧)或某一其他處理器可執(zhí)行的存儲(chǔ)器空間中來(lái)準(zhǔn)備 系統(tǒng)引導(dǎo)。在902,封裝硬件單元(例如,圖8的封裝單元805)使所有小型核除去復(fù)位,使得 每一小型核對(duì)系統(tǒng)固件接口可見(jiàn),并選擇功率高效的小型核之一來(lái)變成自舉處理器炬SP)。 在904,被選擇變成BSP的小型核處理器更新并執(zhí)行其微代碼。BSP微代碼包括啟用將被用 作應(yīng)用處理器的附加小型核處理器指令。
      [0077] BSP微代碼可包括固件接口啟動(dòng)模塊,BSP在第一引導(dǎo)步驟期間加載該模塊。BSP 經(jīng)由使用處理器間中斷(IPI)與其他處理器通信??扇芜x地,在910a、91化和910c,BSP使 用處理器間中斷(IPI)來(lái)觸發(fā)每一小型核AP加載任何可用的預(yù)引導(dǎo)微代碼。如在912a、 91化W及912c處所示,每一小型核AP執(zhí)行它們相應(yīng)的應(yīng)用處理器預(yù)引導(dǎo)微代碼,該包括 初始化機(jī)器檢查支持。在一個(gè)實(shí)施例中,小型核AP沒(méi)有處理的先前機(jī)器檢查事件被記入日 志,并且一旦啟用了機(jī)器檢查支持則新的機(jī)器檢查事件被處理。在914a、914b W及914c處, 每一小型核AP進(jìn)入空閑狀態(tài),等待來(lái)自BSP的啟動(dòng)IPI(SIPI)。
      [007引與小型核應(yīng)用處理器初始化同時(shí)地,具有小型核應(yīng)用處理器的超集的大型核應(yīng)用 處理器被封裝單元啟用和初始化,如在908處所示。在一個(gè)實(shí)施例中,一個(gè)或多個(gè)大型核在 硬件中是可用的,但經(jīng)由內(nèi)部融斷被禁用,在該種情況下,大型核不被初始化。
      [0079] 在916,BSP準(zhǔn)備啟動(dòng)高性能大型核AP,該包括可任選地加載該大型核預(yù)引導(dǎo)微代 碼的更新補(bǔ)了。在918,大型核執(zhí)行預(yù)引導(dǎo)微代碼W使該核準(zhǔn)備好用于指令執(zhí)行。在920, 大型核處理器完成預(yù)引導(dǎo)序列,并保存已準(zhǔn)備好的處理器上下文。在928,大型核向BSP通 知大型核初始化序列完成,并進(jìn)入經(jīng)掩碼的C6狀態(tài)。此時(shí),BSC結(jié)束固件接口引導(dǎo)并準(zhǔn)備 OS啟動(dòng),如在框930所示,并在圖9b中進(jìn)一步示出。
      [0080] 參考圖%,一旦在BSP上執(zhí)行的系統(tǒng)固件接口模塊完成,則BSP等待尚未完成的 任何小型核AP加載它們的微代碼更新,如在934處所示。在936, BSP向小型核AP中的每 一個(gè)發(fā)送SIPI事件。在938,每一小型核AP完成它們的復(fù)位周期并進(jìn)入標(biāo)準(zhǔn)C6狀態(tài)。此 時(shí),小型核自舉處理器W及小型核應(yīng)用處理器是可用的,每一個(gè)都對(duì)系統(tǒng)可見(jiàn),而大型核保 持處于經(jīng)掩碼的C6狀態(tài)。在940, BSP將封裝單元設(shè)置成啟用異構(gòu)的模式,該允許處理器將 線程動(dòng)態(tài)地切換到隱藏的異構(gòu)核。
      [0081] 一旦固件接口的初始化完成,OS初始化例程就可W開(kāi)始。如果OS不支持異構(gòu)處 理器系統(tǒng),則OS可W在小型核AP上調(diào)度任務(wù),并且處理器硬件可W將任務(wù)從小型核AP之 一自動(dòng)切換到大型核AP。從軟件的觀點(diǎn)看,該系統(tǒng)在完全同構(gòu)的狀態(tài)中運(yùn)行。隱藏的大型 核是經(jīng)掩碼的,并且沒(méi)有在該系統(tǒng)上暴露軟件可見(jiàn)狀態(tài)。例如,在不支持異構(gòu)處理器系統(tǒng)的 OS上,隱藏的大型核不具有可見(jiàn)的高級(jí)可編程中斷控制器ID,不接受軟件發(fā)起的直接處理 器間中斷,并且不作為大型核處理機(jī)器檢事件。在一個(gè)實(shí)施例中,通過(guò)枚舉可見(jiàn)的同構(gòu)核的 指令集,異構(gòu)處理系統(tǒng)的一個(gè)或多個(gè)隱藏的核被暴露給非知曉異構(gòu)的OS。如果OS支持異構(gòu) 處理器系統(tǒng),則該OS可W將各核類型中的每一個(gè)暴露給軟件,并且可W在各核類型上調(diào)度 軟件任務(wù)。另外,知曉異構(gòu)的OS可W控制用于在各核之間切換線程的硬件機(jī)制。
      [0082] 圖10是示出異構(gòu)處理系統(tǒng)引導(dǎo)序列的一個(gè)實(shí)施例的在固件和微代碼元素之間傳 遞的數(shù)據(jù)和消息的時(shí)序圖。在一個(gè)實(shí)施例中,如在1002處所示,由封裝單元固件1000執(zhí)行 的一組固件接口指令向被選擇變成自舉處理器炬SP) 1020的小型核處理器發(fā)送初始化BSP 消息。封裝單元1000觸發(fā)微代碼更新并加載1004BSP1020的觸發(fā)器,其隨后進(jìn)行來(lái)啟用將 對(duì)該系統(tǒng)可見(jiàn)的其余的小型核應(yīng)用處理器1040。包括微代碼更新的初始化會(huì)合序列1024 被發(fā)送給對(duì)該系統(tǒng)可見(jiàn)的每一小型核應(yīng)用處理器1040,該使得每一小型核AP進(jìn)入會(huì)合狀 態(tài)。
      [0083] 在會(huì)合狀態(tài)中,多核或多處理器系統(tǒng)的每一處理器核將控制讓出給單個(gè)核或處理 器,該單個(gè)核或處理器可管理初始化、或?yàn)樵撓到y(tǒng)中的所有處理器執(zhí)行出錯(cuò)處理。響應(yīng)于從 BSP1020接收到初始化會(huì)合序列2024,可見(jiàn)的小型核應(yīng)用處理器1040進(jìn)入微代碼更新會(huì) 合序列1046, W加載并執(zhí)行每一處理器的微代碼。一旦被初始化,每一小型核AP1040就向 BSP1020發(fā)送確認(rèn)消息1035,并隨后進(jìn)入系統(tǒng)可見(jiàn)的空閑狀態(tài)1048 (例如,標(biāo)準(zhǔn)C6模式)。
      [0084] 與小型核應(yīng)用處理器的初始化同時(shí)地,BSP1020向一個(gè)或多個(gè)隱藏的大型核應(yīng)用 處理器1060發(fā)送初始化會(huì)合序列1026。該一個(gè)或多個(gè)大型核應(yīng)用處理器1060進(jìn)入微代碼 更新會(huì)合狀態(tài)1068, W加載每一大型核1060的微代碼。該一個(gè)或多個(gè)大型核應(yīng)用處理器 1060在完成時(shí)向BSP1020發(fā)送確認(rèn)消息1055,并進(jìn)入經(jīng)掩碼的C6空閑狀態(tài)1070,在該狀態(tài) 中,大型核應(yīng)用處理器1060對(duì)固件接口和OS不可見(jiàn)。一旦所有核被初始化,BSP1020將向 封裝單元1000通知所有核被初始化1010,并且該系統(tǒng)準(zhǔn)備好加載OS。在一個(gè)實(shí)施例中,OS 是知曉異構(gòu)處理系統(tǒng)的,并且在OS初始化時(shí),大型核應(yīng)用處理器1060變得對(duì)OS可見(jiàn),并且 可用于連同小型核應(yīng)用處理器一起的核切換操作。在一個(gè)實(shí)施例中,OS是不知曉異構(gòu)處理 系統(tǒng)的,并且該異構(gòu)處理系統(tǒng)透明地啟用大型核應(yīng)用處理器利用,而無(wú)需OS的指導(dǎo)。
      [0085] 圖11A-B示出了本發(fā)明的一個(gè)實(shí)施例在需要時(shí)如何透明地切換小型核與大型核。 在一個(gè)實(shí)施例中,向系統(tǒng)固件接口隱藏異構(gòu)性并將所有知曉異構(gòu)性的邏輯和試探法集成在 處理器內(nèi)啟用了對(duì)異構(gòu)性的透明支持。在常規(guī)CPU中,將任務(wù)分配給核是由軟件(通常由 0巧獨(dú)占地完成的。然而,在一個(gè)實(shí)施例中,該一分配被分解成兩部分。軟件繼續(xù)將軟件進(jìn) 程調(diào)度到處理器所暴露的同構(gòu)"虛擬核",而硬件動(dòng)態(tài)地選擇哪一物理核類型來(lái)實(shí)現(xiàn)給定虛 擬核。旨在最大化吞吐量、性能、或其他度量的軟件調(diào)度算法繼續(xù)工作,同時(shí)硬件執(zhí)行另一 (透明的)優(yōu)化層,其中在每一虛擬核上運(yùn)行的進(jìn)程/線程被定向到最適于在該虛擬核上 運(yùn)行的工作負(fù)荷類型的任一物理核。
      [0086] 如在圖11A中所示,處理器硬件包含多個(gè)異構(gòu)物理核PC0-PC41150,它們包括一組 小型核PC0-PC3和一個(gè)大型核PC4。在該一實(shí)施例中,同構(gòu)虛擬核VC0-VC31106被暴露給軟 件。雖然該系統(tǒng)內(nèi)存在各物理核類型,但虛擬核各自被呈現(xiàn)為單種類型的核,在該種情況下 是小型核類型。因此,基于軟件的調(diào)度器111〇(它可W是OS的一部分)調(diào)度線程1101 W 在所暴露的同構(gòu)虛擬核1106中的每一個(gè)上執(zhí)行,如同它在真實(shí)的同構(gòu)多核處理器或多處 理器系統(tǒng)中一樣。虛擬到物理(V-巧映射邏輯1130根據(jù)一組映射規(guī)則1140并基于當(dāng)前檢 測(cè)到的條件1141將每一虛擬核1120映射到一個(gè)或多個(gè)適當(dāng)?shù)奈锢砗?150。如上所述,映 射決策可W由映射決策邏輯1109執(zhí)行,該邏輯可W用軟件、硬件、固件、或其任何組合來(lái)實(shí) 現(xiàn)。
      [0087] 在一個(gè)實(shí)施例中,存在虛擬核1106和小型核PC0-PC3之間的默認(rèn)1 : 1映射。因 此,小型核PC0-PC3實(shí)際上對(duì)基于軟件的調(diào)度器是可見(jiàn)的。在一個(gè)實(shí)施例中,在系統(tǒng)具有低 利用率(低于指定闊值)和/或在大多數(shù)小型核很忙(例如,具有指定闊值之上的高處理 負(fù)載)時(shí),該一默認(rèn)映射被維護(hù)。例如,在一個(gè)實(shí)施例中,在該系統(tǒng)具有低利用率(例如,沒(méi) 有核超過(guò)60%活動(dòng))或在大多數(shù)小型核很忙(例如,總可用核的75% W上是超過(guò)60%活動(dòng) 的)時(shí),該一默認(rèn)映射被維護(hù)。
      [008引然而,在一個(gè)實(shí)施例中,在該系統(tǒng)具有大量空閑核(例如,所有可用核的50% W 上)W及很少(一個(gè)或多個(gè))負(fù)載很重、非?;钴S的核時(shí),映射決策邏輯1109所實(shí)現(xiàn)的試 探法自動(dòng)改變?cè)撚成?,如?1B所示。在此,只有兩個(gè)線程1101被調(diào)度器1110調(diào)度到虛擬 核VC1和VC2,并且該些虛擬核中的至少一個(gè)(在該示例中是VC2)具有高于指定闊值的活 動(dòng)。因此,在該示例中,響應(yīng)于映射決策邏輯1109所呈現(xiàn)的映射決策,V-P核映射邏輯1130 將虛擬核VC2從小型物理核PC2重新映射到大型物理核PC4。
      [0089] 如在此所述的,指令可W指硬件的具體配置,如被配置成執(zhí)行特定操作或具有預(yù) 定功能的專用集成電路(ASIC)或者存儲(chǔ)在嵌入非暫態(tài)計(jì)算機(jī)可讀介質(zhì)中的存儲(chǔ)器中的軟 件指令。因而,附圖中示出的技術(shù)可W使用存儲(chǔ)在一個(gè)或多個(gè)電子設(shè)備(例如,終端站、網(wǎng) 絡(luò)元件等等)并在其上執(zhí)行的代碼和數(shù)據(jù)來(lái)實(shí)現(xiàn)。此類電子設(shè)備通過(guò)使用諸如非暫態(tài)計(jì)算 機(jī)機(jī)器可讀存儲(chǔ)介質(zhì)(例如,磁盤(pán);光盤(pán);隨機(jī)存取存儲(chǔ)器;只讀存儲(chǔ)器;閃存設(shè)備;相變存 儲(chǔ)器)之類的計(jì)算機(jī)機(jī)器可讀介質(zhì)和暫態(tài)計(jì)算機(jī)機(jī)器可讀通信介質(zhì)(例如,電、光、聲或其 它形式的傳播信號(hào)一一諸如載波、紅外信號(hào)、數(shù)字信號(hào)等)來(lái)(內(nèi)部地和/或通過(guò)網(wǎng)絡(luò)與其 他電子設(shè)備)存儲(chǔ)和傳遞代碼和數(shù)據(jù)。
      [0090] 另外,該類電子設(shè)備一般包括與一個(gè)或多個(gè)其它組件禪合的一組一個(gè)或多個(gè)處理 器,所述一個(gè)或多個(gè)其它組件例如是一個(gè)或多個(gè)存儲(chǔ)設(shè)備(非暫態(tài)機(jī)器可讀存儲(chǔ)介質(zhì))、用 戶輸入/輸出設(shè)備(例如鍵盤(pán)、觸摸屏和/或顯示器)W及網(wǎng)絡(luò)連接。該組處理器和其它 組件的禪合一般是通過(guò)一個(gè)或多個(gè)總線和橋(也稱總線控制器)達(dá)成的。存儲(chǔ)設(shè)備和攜帶 網(wǎng)絡(luò)流量的信號(hào)分別表示一個(gè)或多個(gè)機(jī)器可讀存儲(chǔ)介質(zhì)W及機(jī)器可讀通信介質(zhì)。
      [0091] 因此,給定電子設(shè)備的存儲(chǔ)設(shè)備通常存儲(chǔ)代碼和/或數(shù)據(jù)W供在該電子設(shè)備的一 個(gè)或多個(gè)處理器上執(zhí)行。當(dāng)然,本發(fā)明的實(shí)施例的一個(gè)或多個(gè)部分可使用軟件、固件和/或 硬件的不同組合來(lái)實(shí)現(xiàn)。貫穿此詳細(xì)描述,為解釋起見(jiàn),闡明了眾多具體細(xì)節(jié)W提供對(duì)本發(fā) 明的全面理解。然而,對(duì)本領(lǐng)域技術(shù)人員將顯而易見(jiàn)的是,沒(méi)有該些具體細(xì)節(jié)也可實(shí)踐本發(fā) 明。在某些實(shí)例中,并不詳細(xì)描述眾所周知的結(jié)構(gòu)和功能W免淡化本發(fā)明的主題。因此,本 發(fā)明的范圍和精神應(yīng)根據(jù)所附權(quán)利要求書(shū)來(lái)判斷。
      【權(quán)利要求】
      1. 一種處理器,包括: 具有第一指令集和第一功耗水平的第一物理核,用于以第一性能水平執(zhí)行線程; 具有第二指令集和第二功耗水平的第二物理核,用于以第二性能水平執(zhí)行線程,所述 第一和第二核處于動(dòng)態(tài)的多核單元中;以及 耦合到所述第一和第二物理核的虛擬到物理(V-P)映射電路,用于經(jīng)由虛擬核將所述 第一物理核映射到系統(tǒng)固件接口并用于向所述系統(tǒng)固件接口隱藏所述第二物理核。
      2. 如權(quán)利要求1所述的處理器,其特征在于,還包括具有所述第一指令集和所述第一 功耗水平的第三物理核,其中所述V-P映射電路用于將第一虛擬核映射到所述第一物理核 并用于將第二虛擬核映射到所述第三物理核,以允許一組線程跨所述第一和第三物理核并 行執(zhí)行。
      3. 如權(quán)利要求2所述的處理器,其特征在于,所述V-P映射電路用于響應(yīng)于檢測(cè)到的與 被執(zhí)行的所述一組線程相關(guān)聯(lián)的特性,對(duì)所述固件接口而言透明地將所述第二虛擬核映射 到所述第二物理核。
      4. 如權(quán)利要求3所述的處理器,其特征在于,所述第一功耗水平低于所述第二功耗水 平。
      5. 如權(quán)利要求4所述的處理器,其特征在于,所述第二性能水平高于所述第一性能水 平。
      6. 如權(quán)利要求5所述的處理器,其特征在于,所述V-P映射電路通過(guò)將所述虛擬核中的 一個(gè)或多個(gè)映射到所述第二物理核來(lái)使得所述第二物理核能由軟件訪問(wèn)。
      7. 如權(quán)利要求1-6中的任一項(xiàng)所述的處理器,其特征在于,單個(gè)物理核用于擔(dān)當(dāng)自舉 處理器。
      8. 如權(quán)利要求7所述的處理器,其特征在于,所述第一物理核用于擔(dān)當(dāng)所述自舉處理 器。
      9. 如權(quán)利要求8所述的處理器,其特征在于,所述自舉處理器初始化所述第二物理核。
      10. -種方法,包括: 提供一組一個(gè)或多個(gè)小型物理處理器核; 提供相對(duì)于所述小型物理處理器核而言具有相對(duì)較高性能的處理能力和相對(duì)較高的 功率使用的至少一個(gè)大型物理處理器核; 將一組兩個(gè)或更多個(gè)小型物理處理器核暴露給系統(tǒng)固件接口;以及 向所述系統(tǒng)固件接口隱藏所述至少一個(gè)大型物理處理器核。
      11. 如權(quán)利要求10所述的方法,其特征在于,還包括將線程從第一小型物理處理器核 動(dòng)態(tài)地切換到大型物理處理器核,以允許所述線程在所述大型物理處理器核上執(zhí)行,其中 所述切換對(duì)所述線程而言是透明的。
      12. 如權(quán)利要求10所述的方法,其特征在于,還包括: 將來(lái)自所述一組小型物理處理器核的小型物理處理器核任命為自舉處理器; 由所述自舉處理器初始化所述一組小型物理核中的每一個(gè)處理器;以及 由所述自舉處理器初始化所述至少一個(gè)大型物理核。
      13. 如權(quán)利要求12所述的方法,其特征在于,所述小型物理處理器核通過(guò)虛擬處理器 與小型物理處理器核之間的默認(rèn)映射被暴露給軟件。
      14. 如權(quán)利要求13所述的方法,其特征在于,所述至少一個(gè)大型物理處理器核向所述 系統(tǒng)固件接口隱藏,并且通過(guò)將一個(gè)或多個(gè)虛擬核透明地映射到所述大型物理處理器核而 被使得能由操作系統(tǒng)訪問(wèn)。
      15. 如權(quán)利要求14所述的方法,其特征在于,所述大型物理處理器對(duì)支持具有多個(gè)指 令集的處理器核的操作系統(tǒng)是可見(jiàn)的。
      16. -種系統(tǒng),包括: 一組小型物理處理器核; 相對(duì)于所述小型物理處理器核而言具有相對(duì)較高性能的處理能力和相對(duì)較高的功率 使用的一個(gè)或多個(gè)大型物理處理器核; 用于通過(guò)對(duì)應(yīng)的一組虛擬核將所述一組小型物理處理器核暴露給系統(tǒng)固件接口并用 于向所述系統(tǒng)固件接口隱藏所述至少一個(gè)大型物理處理器核的虛擬到物理(V-P)映射邏 輯;以及 封裝單元,用于任命并初始化從所述一組小型物理處理器核選擇的自舉處理器。
      17. 如權(quán)利要求16所述的系統(tǒng),其特征在于,所述V-P映射電路用于將每一虛擬核映射 到所述一組小型物理處理器核內(nèi)的一物理核,以允許第一組線程跨所述小型物理處理器核 并行執(zhí)行。
      18. 如權(quán)利要求17所述的系統(tǒng),其特征在于,還包括從所述物理處理器核之一選擇的 自舉處理器,其中所述自舉處理器: 初始化所述一組小型物理核中的每一處理器;以及 初始化所述至少一個(gè)大型物理核。
      19. 如權(quán)利要求18所述的系統(tǒng),其特征在于,所述至少一個(gè)大型物理核包括經(jīng)掩碼的 空閑狀態(tài),其中當(dāng)所述至少一個(gè)大型物理核在該經(jīng)掩碼的空閑狀態(tài)中時(shí),所述至少一個(gè)大 型物理核不被映射到虛擬核。
      20. -種處理器,包括: 具有第一指令集和第一功耗水平的第一物理核,用于以第一性能水平執(zhí)行線程; 具有第二指令集和第二功耗水平的第二物理核,用于以第二性能水平執(zhí)行線程; 具有所述第一指令集和所述第一功耗水平的第三物理核,用于以所述第一性能水平執(zhí) 行線程,所述第一、第二以及第三物理核處于動(dòng)態(tài)的多核單元中;以及 耦合到所述第一、第二、以及第三物理核的虛擬到物理(V-P)映射電路,所述電路用 于: 經(jīng)由第一虛擬核將所述第一物理核映射到系統(tǒng)固件接口; 向所述系統(tǒng)固件接口隱藏所述第二物理核; 經(jīng)由第二虛擬核將所述第三物理核映射到所述系統(tǒng)固件接口,以允許一組線程跨所述 第一和第三物理核并行執(zhí)行;以及 響應(yīng)于檢測(cè)到的與被執(zhí)行的所述一組線程相關(guān)聯(lián)的特性,對(duì)所述系統(tǒng)固件接口而言透 明地將所述第二虛擬核映射到所述第二物理核。
      21. 如權(quán)利要求22所述的處理器,其特征在于,所述第一功耗水平低于所述第二功耗 水平,并且所述第二性能水平高于所述低于性能水平。
      22. 如權(quán)利要求22所述的處理器,其特征在于,所述V-P映射電路通過(guò)將所述虛擬核中 的一個(gè)或多個(gè)映射到所述第二物理核來(lái)使得所述第二物理核能由軟件訪問(wèn)。
      23. 如權(quán)利要求22所述的處理器,其特征在于,所述處理器的單個(gè)物理核用于擔(dān)當(dāng)自 舉處理器。
      24. 如權(quán)利要求23所述的系統(tǒng),其特征在于,所述第一物理核用于擔(dān)當(dāng)所述自舉處理 器。
      【文檔編號(hào)】G06F9/50GK104503830SQ201410098271
      【公開(kāi)日】2015年4月8日 申請(qǐng)日期:2014年3月17日 優(yōu)先權(quán)日:2013年3月15日
      【發(fā)明者】E·威斯曼, R·拉波波特, M·米謝利, H·沙菲, O·倫茨, J·W·布蘭德特, S·A·費(fèi)舍爾, B·L·托爾, I·M·索迪, A·納韋, G·N·斯里尼瓦薩, A·V·喬保爾, S·D·哈恩, D·A·考法蒂, R·J·芬格, G·康納, E·高巴托夫, M·奈克, A·J·赫德瑞奇, A·帕拉哈卡蘭, S·S·加哈吉達(dá), P·布萊特, P·納凡茲, A·D·亨羅伊德, D·R·薩巴瑞迪 申請(qǐng)人:英特爾公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1