国产精品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>

      可配置微處理器和將多個(gè)小核組合為單微處理器核的方法

      文檔序號(hào):6461410閱讀:168來源:國知局
      專利名稱:可配置微處理器和將多個(gè)小核組合為單微處理器核的方法
      技術(shù)領(lǐng)域
      本發(fā)明總體上涉及改進(jìn)的數(shù)據(jù)處理系統(tǒng),并且具體涉及用于處理數(shù)據(jù)的 方法和設(shè)備。更具體地說,本發(fā)明涉及可配置微處理器,它通過將單處理器核劃分為多個(gè)較小的小核(corelet)來處理低計(jì)算強(qiáng)度的工作負(fù)載,并在需要時(shí) 將多個(gè)小核組合成為單微處理器核來處理高計(jì)算強(qiáng)度的工作負(fù)載。
      背景技術(shù)
      在微處理器設(shè)計(jì)中,在給微處理器設(shè)計(jì)增添更多的功能以增加性能時(shí), 隨著功耗增加,硅的有效使用變得至關(guān)重要。 一種增加微處理器的性能的方 法是增加安裝在同一處理器芯片上的處理器核的數(shù)量。例如,單處理器芯片 只需要一個(gè)處理器核。相反,雙處理器核芯片需要在芯片上有兩個(gè)處理器核。 一般地,設(shè)計(jì)每個(gè)處理器核,以能夠單獨(dú)提供高性能。然而,為了使得芯片 上的每個(gè)處理器核能夠處理高性能的工作負(fù)載,每個(gè)處理器核就需要許多硬 件資源。換句話說,每個(gè)處理器核需要大量的硅。因此,為了增加性能而不 管芯片上的每個(gè)處理器核單獨(dú)運(yùn)行的工作負(fù)載的類型(例如,高計(jì)算強(qiáng)度工 作負(fù)載、低計(jì)算強(qiáng)度工作負(fù)載),添加到芯片上的處理器核的數(shù)量可能大大增 加功耗。如果芯片上的兩個(gè)處理器核都運(yùn)行低性能負(fù)載,那么會(huì)浪費(fèi)提供來 處理高性能的額外的硅,并會(huì)不必要地消耗功率。發(fā)明內(nèi)容說明性的實(shí)施例提供了可配置微處理器,它將多個(gè)小核組合為單微處理 器核,以處理高計(jì)算強(qiáng)度的工作負(fù)載。該處理首先在多個(gè)小核中選擇兩個(gè)或 更多個(gè)小核。該處理組合兩個(gè)或更多個(gè)小核資源以形成組合資源,其中,每 個(gè)組合資源包括更大量的、每個(gè)單獨(dú)的小核可利用的資源。然后,通過將組 合資源分配給單微處理器核來從兩個(gè)或更多個(gè)小核形成單微處理器核,其中 組合資源專用于單微處理器核,并且其中單微處理器核利用組合資源來處理 指令。


      在所附權(quán)利要求中闡述了說明性實(shí)施例的相信具有新穎性特征的特性。 然而,參照以下對(duì)說明性實(shí)施例的詳細(xì)描述同時(shí)結(jié)合附圖閱讀,該說明性實(shí)施例本身及其優(yōu)選應(yīng)用模式、其它目的和優(yōu)點(diǎn)將得到最佳的理解,附圖中 圖1繪出了可實(shí)現(xiàn)說明性實(shí)施例的計(jì)算系統(tǒng)的圖示; 圖2是可實(shí)現(xiàn)說明性實(shí)施例的數(shù)據(jù)處理系統(tǒng)的方框圖; 圖3是根據(jù)說明性實(shí)施例的分處理器核或小核的方框圖; 圖4是根據(jù)說明性實(shí)施例形成超核(supercore)的同 一微處理器上的兩個(gè)'J、核的示例性組合的方框圖;圖5是根據(jù)說明:性實(shí)施例形成超核的同一微處理器上的兩個(gè)小核的另一示例性組合的方框圖;圖6是用于根據(jù)說明性實(shí)施例將可配置微處理器劃分為小核的示例性處理的流程圖;圖7是用于根據(jù)說明性實(shí)施例將可配置微處理器中的小核組合成超核的 示例性處理的流程圖;以及圖8是用于根據(jù)說明性實(shí)施例將可配置微處理器中的小核組合成超核的 另 一示例性處理的流程圖。
      具體實(shí)施方式
      以下,參照附圖,并具體參照?qǐng)D1,示出了可實(shí)現(xiàn)說明性實(shí)施例的數(shù)據(jù) 處理系統(tǒng)的圖示。計(jì)算機(jī)100包括系統(tǒng)單元102、視頻顯示終端]04、鍵盤 106、存儲(chǔ)裝置108 ('其可包括軟盤驅(qū)動(dòng)器和其它類型的永久性的和可拆卸的 存儲(chǔ)介質(zhì))、以及鼠標(biāo)110。可通過個(gè)人計(jì)算機(jī)100包括其它輸入裝置。其它 輸入裝置的例子包括控制桿、觸摸板、觸摸屏、跟蹤球、麥克風(fēng)等。計(jì)算機(jī)100可以是任何適合的計(jì)算機(jī),如作為位于紐約阿芒克的國際商 業(yè)公司的產(chǎn)品的IBM eServerTM計(jì)算機(jī)或IntelliStation 計(jì)算機(jī)。盡管所繪 圖示示出了個(gè)人計(jì)算機(jī),但是,可在其它類型的數(shù)據(jù)處理系統(tǒng)中實(shí)現(xiàn)其它實(shí) 施例。例如,可以在網(wǎng)絡(luò)計(jì)算機(jī)中實(shí)現(xiàn)其它實(shí)施例。計(jì)算機(jī)100優(yōu)選地還包 括圖形用戶界面(GUI),可通過在計(jì)算機(jī)100中進(jìn)行操作的計(jì)算機(jī)可讀介質(zhì)中 駐留的系統(tǒng)軟件來實(shí)現(xiàn)該圖形用戶界面。接著,圖2繪出了可實(shí)現(xiàn)說明性實(shí)施例的數(shù)據(jù)處理系統(tǒng)的方框圖。數(shù)據(jù)處理系統(tǒng)200是諸如圖1中的計(jì)算機(jī)100的計(jì)算機(jī)的例子,其中可以有實(shí)現(xiàn) 說明性實(shí)施例的處理的代碼和指令。在所繪出的例子中,數(shù)據(jù)處理系統(tǒng)200使用了集線器結(jié)構(gòu),此結(jié)構(gòu)包括 北橋和存儲(chǔ)器控制器集線器(MCH) 202以及南橋和輸入/輸出(I/O)控制器 集線器(ICH)204。處理單元206、主存儲(chǔ)器208和圖形處理器210耦連到北 橋和存儲(chǔ)器控制器集線器202。處理單元206可以包含一個(gè)或多個(gè)處理器, 甚至可以使用一個(gè)或多個(gè)異構(gòu)處理器系統(tǒng)來實(shí)現(xiàn)。圖形處理器210可以通過 加速圖形端口 (AGP)而耦連到MCH。在所繪出的例子中,局域網(wǎng)(LAN)適配器212耦連到南橋和I/O控制器集 線器204、音頻適配器216、鍵盤和鼠標(biāo)適配器220、調(diào)制解調(diào)器222、只讀 存儲(chǔ)器(ROM)224、通用串行總線(USB)端口 ,以及其它通信端口 232。PCI/PCIe 裝置234通過總線238耦連到南橋和I/O控制器集線器204。硬盤驅(qū)動(dòng)器 (HDD)226和CD-ROM驅(qū)動(dòng)器230通過總線240耦連到南橋和I/O控制器集 線器204。例如,PCI/PCIe裝置可包括以太網(wǎng)適配器、附加卡、以及用于筆記本計(jì) 算機(jī)的PC卡。PCI使用卡總線控制器,而PCIe則不用。ROM224可以是閃 速二進(jìn)制輸入輸出系統(tǒng)(BIOS)。例如,硬盤驅(qū)動(dòng)器(HDD)226和CD-ROM驅(qū) 動(dòng)器230可以使用集成驅(qū)動(dòng)電子裝置(IDE)或串行高級(jí)技術(shù)附連(SATA)接口 。 超級(jí)I/0(SIO)裝置236可耦連到南橋和I/O控制器集線器204。操作系統(tǒng)在處理單元206上運(yùn)行。該操作系統(tǒng)和圖2的數(shù)據(jù)處理系統(tǒng)200 中的各種組件配合并控制它們。操作系統(tǒng)可以是市售的操作系統(tǒng),例如, Microsoft Windows XP (Microsoft Windows XP⑧是微軟公司在美國或其它 國家的注冊(cè)商標(biāo))。例如Java 編程系統(tǒng)的面向?qū)ο蟮木幊滔到y(tǒng)可以結(jié)合操 作系統(tǒng)運(yùn)行,并可提供從在數(shù)據(jù)處理系統(tǒng)200上執(zhí)行的JavaTM程序或應(yīng)用程 序到操作系統(tǒng)的調(diào)用。JavaTM和所有的基于Java的商標(biāo)是Sun Microsystems 公司在美國和其它國家的注冊(cè)商標(biāo)。用于操作系統(tǒng)、面向?qū)ο蟮木幊滔到y(tǒng)、應(yīng)用或其它計(jì)算機(jī)程序的指令位 于存儲(chǔ)裝置上,如硬盤驅(qū)動(dòng)器226。這些指令也可以裝載到主存儲(chǔ)器208中, 以便由處理單元206執(zhí)行??梢杂商幚韱卧?06用計(jì)算機(jī)實(shí)現(xiàn)的指令(其可 位于存儲(chǔ)器中)來進(jìn)行說明性實(shí)施例的處理。存儲(chǔ)器的例子是主存儲(chǔ)器208、只讀存儲(chǔ)器224、或者一個(gè)或多個(gè)外設(shè)。圖1和圖2中的硬件可以根據(jù)說明性實(shí)施例的實(shí)現(xiàn)方式而改變。除圖1 和圖2所繪出的硬件之外,或者替代這些硬件,也可使用其它內(nèi)部硬件或外 設(shè)裝置(例如,閃存、等效非易失性存儲(chǔ)器或光盤驅(qū)動(dòng)器等)。此外,說明性實(shí) 施例的處理可應(yīng)用于多處理器數(shù)據(jù)處理系統(tǒng)。圖2所示的系統(tǒng)和組件可以隨所示的說明性例子而改變。在某些說明性 例子中,數(shù)字系統(tǒng)200可以是個(gè)人數(shù)字助理(PDA)。個(gè)人數(shù)字助理通常配有閃 存,以提供用于存儲(chǔ)操作系統(tǒng)文件和/或用戶產(chǎn)生的數(shù)據(jù)的非易失性存儲(chǔ)器。 此外,數(shù)據(jù)處理系統(tǒng)200可以是平板式計(jì)算機(jī)、膝上型計(jì)算機(jī)或電話裝置。圖2所示的其它組件可以隨所示的說明性例子而改變。例如,總線系統(tǒng) 可以由一個(gè)或多個(gè)總線組成,如系統(tǒng)總線、1/0總線和PCI總線。當(dāng)然,總線 系統(tǒng)可以用任何適當(dāng)類型的通信結(jié)構(gòu)或體系來實(shí)現(xiàn),其用來在附加于該結(jié)構(gòu) 或體系的不同組件或裝置之間傳送數(shù)據(jù)。此外,通信單元可包括一個(gè)或多個(gè) 用于發(fā)送和接收數(shù)據(jù)的裝置,如調(diào)制解調(diào)器或網(wǎng)絡(luò)適配器。此外,例如,存 儲(chǔ)器可以是主存儲(chǔ)器208或北橋和存儲(chǔ)器控制器集線器202中的高速緩沖存 儲(chǔ)器。此外,處理單元可包括一個(gè)或多個(gè)處理器或CPU。圖和圖2中所繪出的例子并不意味著暗示體系限制。此外,說明性實(shí) 施例提供了計(jì)算機(jī)實(shí)現(xiàn)方法、設(shè)備和計(jì)算機(jī)可用程序代碼,以編譯源代碼和 執(zhí)行代碼。可在例如圖1所示的數(shù)據(jù)處理系統(tǒng)100或圖2所示的數(shù)據(jù)處理系 統(tǒng)200的數(shù)據(jù)處理系統(tǒng)中執(zhí)行參照所繪出的實(shí)施例描述的方法。說明性實(shí)施例提供了可配置單處理器核,其通過劃分單處理器核來處理 低計(jì)算強(qiáng)度的工作負(fù)載。具體地,說明性實(shí)施例將可配置處理器核劃分成兩 個(gè)或更多個(gè)稱為小核的較小的核,以向處理器軟件提供兩個(gè)專用的較小的核, 從而獨(dú)立地處理低性能工作負(fù)荷。如果微處理器需要較高的性能,則軟件可 將各個(gè)小核組合成單核(稱為超核),以允許處理高計(jì)算強(qiáng)度的工作負(fù)荷。說明性實(shí)施例中的可配置微處理器向處理器軟件提供了控制處理器資源 的靈活手段。此外,可配置微處理器幫助處理軟件更有效地調(diào)度工作負(fù)荷。 例如,處理軟件可以按小核模式來調(diào)度幾個(gè)低計(jì)算強(qiáng)度的工作負(fù)載??商鎿Q 地,為顯著增加處理性能,處理軟件可按超核模式來調(diào)度高計(jì)算強(qiáng)度的工作 負(fù)載,其中,微處理器中的所有資源可用于單個(gè)工作負(fù)載。圖3根據(jù)說明性實(shí)施例示出了分處理器核或小核的方框圖。在這些說明性例子中,小核300可被實(shí)現(xiàn)為圖2中的處理單元202,并且也可以根據(jù)精 簡指令集計(jì)算機(jī)(RISC)技術(shù)來操作。小核300包括各種單元、寄存器、緩沖器、存儲(chǔ)器和其它部分,它們?nèi)?都由集成電路構(gòu)成。當(dāng)處理器軟件設(shè)置用來將單微處理器核劃分成兩個(gè)或更 多個(gè)小核以使得小核處理低性能工作負(fù)載的位(bit)時(shí),創(chuàng)建小核300。兩個(gè)或 更多個(gè)小核彼此獨(dú)立地工作。所創(chuàng)建的每個(gè)小核將包含單微處理器核可利用 的資源(例如,數(shù)據(jù)高速緩存(DCache)、指令高速緩存(ICache)、指令緩沖器 (IBUF)、鏈接/計(jì)數(shù)堆棧、完成表等),但每個(gè)小核中的每個(gè)資源的大小將是 單微處理器核中的資源的大小的一部分。從單微處理器核創(chuàng)建小核還包括將 微處理器的所有其它非結(jié)構(gòu)性資源(如,重命名、指令隊(duì)列、加載/存儲(chǔ)隊(duì)列) 劃分為較小的量。例如,如果將單微處理器核分為兩個(gè)小核,則每個(gè)資源的 一半可以支持一個(gè)小核,而每個(gè)資源的另一半可以支持另一小核。還應(yīng)當(dāng)注 意,說明性實(shí)施例可以不均等地劃分資源,使得在同一微處理器中,可以為 需要較高處理性能的小核提供比其它小核更多的資源。小核300是從單微處理器核創(chuàng)建的多個(gè)小核之一的例子。在該說明性例 子中,小核300包括指令高速緩存(ICache)302、指令緩沖器(IBUF)304和數(shù)據(jù) 高速緩存(DCache)306。小核300還包含多個(gè)執(zhí)行單元,包括分支單元 (BRU0)308、定點(diǎn)單元(FXU0)310、浮點(diǎn)單元(FPU0)312和加載/存儲(chǔ)單元 (LSU0)314。小核300還包括通用寄存器(GPR)316和浮點(diǎn)寄存器(FPR)318。 如前所述,由于同一微處理器中的每個(gè)小核可以彼此獨(dú)立地工作,所以小核 300中的資源302-318僅僅專用于小核300。指令高速緩存302保存用于執(zhí)行的多個(gè)程序(線程)的指令。小核300中 的這些指令獨(dú)立于同一微處理器中的其它小核來加以處理和完成。指令高速 緩存302向指令緩沖器304輸出指令。指令緩沖器304存儲(chǔ)指令,使得處理 器一就緒時(shí)下一個(gè)指令就可用。分派(dispatch)單元(未示出)可以為各個(gè)執(zhí)行單 元分派指令。例如,小核300可以通過BRUO鎖存器320為分支單元(BRUO Exec) 308分派指令、通過FXUO鎖存器322為定點(diǎn)單元(FXUO Exec) 310分 派指令、通過FPU0鎖存器324為浮點(diǎn)單元(FPUO Exec) 312分派指令、通過 LSUO鎖存器326為加載/存儲(chǔ)單元(LSUO Exec) 314分派指令。執(zhí)行單元308 - 314執(zhí)行特定類別的指令中的一個(gè)或多個(gè)指令。例如,定 點(diǎn)單元30對(duì)寄存器源操作數(shù)(operand)執(zhí)行定點(diǎn)數(shù)學(xué)運(yùn)算,例如,力。、減、邏輯和(AND)、邏輯或(OR)以及異或(OR)。浮點(diǎn)單元312對(duì)寄存器源操作數(shù) 執(zhí)行浮點(diǎn)數(shù)學(xué)運(yùn)算,例如,浮點(diǎn)乘和除。加載/存儲(chǔ)單元314執(zhí)行加載和存儲(chǔ) 指令,其將數(shù)據(jù)移動(dòng)到不同的存儲(chǔ)位置。加載/存儲(chǔ)單元314可以存取它自己 的DCache 306分區(qū)(partition),以獲得加載/存儲(chǔ)數(shù)據(jù)。分支單元308 #1行它 自己的分支指令,其條件性地改變通過程序的執(zhí)行流,并從指令緩沖器304 中提取它自己的指令流。GPR 314和FPR 318是不同執(zhí)行單元用來完成所請(qǐng)求的任務(wù)的數(shù)據(jù)的存 儲(chǔ)區(qū)。存儲(chǔ)在這些寄存器中的數(shù)據(jù)可來自不同的源,如數(shù)據(jù)高速緩存器、存 儲(chǔ)器單元或處理器核中的一些其它單元。這些寄存器為小核300中的不同執(zhí) 行單元提供快速而有效的數(shù)據(jù)檢索。圖4是根據(jù)說明性實(shí)施例形成超核的同一微處理器上的兩個(gè)小核的示例 性組合的方框圖。在這些說明性實(shí)施例中,超核400可被實(shí)現(xiàn)為圖2中的處 理單元202,并可以根據(jù)精筒指令集計(jì)算機(jī)(RISC)技術(shù)來操作。超核的建立可在處理器軟件設(shè)置用來將兩個(gè)或多個(gè)小核組合為單核或超 核的位(bit)時(shí)進(jìn)行,以允許處理高計(jì)算強(qiáng)度的工作負(fù)載。該處理可包括組合 微處理器中的所有可用小核或僅僅一部分的可用小核。組合小核包括組合來 自各個(gè)小核的指令高速緩存以形成較大的組合指令高速緩存,組合來自各個(gè) 小核的數(shù)據(jù)高速緩存以形成較大的組合數(shù)據(jù)高速緩存,組合來自各個(gè)小核的 指令緩沖器以形成較大的組合指令緩沖器。所有其它非結(jié)構(gòu)性硬件資源,如 指令隊(duì)列、重命名資源、加載/存儲(chǔ)隊(duì)列、鏈接/計(jì)數(shù)堆棧和完成表,也組合為 較大的資源,以便饋送超核。盡管說明性實(shí)施例重新組合小核的指令高速緩 存、指令緩沖器和數(shù)據(jù)高速緩存以允許超核存取更大量的資源,但組合指令 高速緩存、組合指令緩沖器、組合數(shù)據(jù)高速緩存仍然包括多個(gè)分區(qū),以允許 指令獨(dú)立于超核中的其它指令而流動(dòng)。在如圖4所說明的例子中的兩個(gè)小核的組合中,超核400包含組合指令 高速緩存402、組合指令緩沖器404和組合數(shù)據(jù)高速緩存406,它們由兩個(gè)小 核的指令高速緩存、指令緩沖器和數(shù)據(jù)高速緩存形成。如前面圖3所示,微 處理器中的小核可包括一個(gè)加載/存儲(chǔ)單元、 一個(gè)定點(diǎn)單元、 一個(gè)浮點(diǎn)單元和 一個(gè)分支單元。在此例中,通過組合微處理器中的兩個(gè)小核,則所得的超核 400可包括兩個(gè)加載/存儲(chǔ)單元0(408)和1(410)、兩個(gè)定點(diǎn)單元0(412)和1(414)、 兩個(gè)浮點(diǎn)單元Q(416)和1(418)以及兩個(gè)分支單元0(420)和1(422)。按照相似的方式,將三個(gè)小核組合為超核將允許超核包含三個(gè)加載/存儲(chǔ)單元、三個(gè)定點(diǎn) 單元等等。超核400將指令分派給兩個(gè)加載/存儲(chǔ)單元0(408)和1(410)、兩個(gè)定點(diǎn)單 元0(412)和1(414)、兩個(gè)浮點(diǎn)單元0(416)和1(418)以及一個(gè)分支單元0(420)。 分支單元0(420)可執(zhí)行一個(gè)分支指令,同時(shí),附加分支單元1(422)可處理分 支的替代分支路徑,以減少分支錯(cuò)誤預(yù)測的不利結(jié)果。例如,附加分支單元 1(422)可計(jì)算和提取替代分支路徑,使指令保持就緒(ready)。在出現(xiàn)分支錯(cuò)誤 預(yù)測時(shí),所提取的指令準(zhǔn)備好發(fā)送到組合指令緩沖器404以恢復(fù)分派。組合為超核400的兩個(gè)小核保留它們各自的大部分?jǐn)?shù)據(jù)流特性。在此實(shí) 施例中,超核400將偶(even)指令分派給組合指令緩沖器404的"小核0"部 分并將奇(odd)指令分派給組合指令緩沖器404的"小核l"部分。偶指令是從 組合指令高速緩存402中提取的指令O、 2、 4、 8等。奇指令是從組合指令高 速緩存402中提取的指令1、 3、 5、 7等。超核400將偶指令分派給"小核0" 執(zhí)行單元,其包括加載/存儲(chǔ)單元O(LSUO Exec) 408、定點(diǎn)單元O(FPUO Exec) 412、浮點(diǎn)單元O(FXUO Exec) 416和分支單元O(BRUO Exec) 420。超核400 將奇指令分派給"小核1"執(zhí)行單元,其包括加載/存儲(chǔ)單元l(LSUl Exec) 410、定點(diǎn)單元l(FPUl Exec) 414、浮點(diǎn)單元l(FXUl Exec) 418和分支單元 l(BRUl Exec) 422。加載/存儲(chǔ)單元0(408)和1(410)可存取組合數(shù)據(jù)高速緩存406以獲得加載 /存儲(chǔ)數(shù)據(jù)。來自每個(gè)定點(diǎn)單元0(412)和1(414)以及每個(gè)加載/存儲(chǔ)單元0(408) 和1(410)的結(jié)果可以寫到GPR 424和426這兩者之中。來自每個(gè)浮點(diǎn)單元 0(416)和1(418)的結(jié)果可以寫到FPR428和430這兩者之中。執(zhí)行單元408 -422可以使用超核的組合完成功能(facility)來完成指令。圖5是根據(jù)說明性實(shí)施例形成超核的同一微處理器上的兩個(gè)小核的另一 示例性組合的方框圖。在這些說明性例子中,超核500可被實(shí)現(xiàn)為圖2中的 處理單元202,并且可以根據(jù)精簡指令集計(jì)算機(jī)(RISC)技術(shù)來操作??梢园凑疹愃朴趫D4中的超核400的方式來創(chuàng)建超核500。處理器軟件 設(shè)置用來將兩個(gè)或多個(gè)小核組合為單核的位,并且來自各個(gè)小核的指令高速 緩存、數(shù)據(jù)高速緩存和指令緩沖器組合以形成超核500中的更大的組合指令 高速緩存502、指令緩沖器504和數(shù)據(jù)高速緩存506。其它非結(jié)構(gòu)性硬件資源 也組合為更大的資源,以饋給超核。然而,在此實(shí)施例中,組合的指令高速緩存、組合的指令緩沖器、組合的數(shù)據(jù)高速緩存都是真正組合的(即,指令高 速緩存、指令緩沖器、數(shù)據(jù)高速緩存不包含如圖4中的分區(qū)),這允許將指令 順序地發(fā)送給超核中的所有執(zhí)行單元。在此說明性例子中,處理器軟件組合兩個(gè)小核以形成超核500。類似圖4 中的超核400,超核500可將指令分派給兩個(gè)加載/存儲(chǔ)單元O(LSUO Exec) 508 和(LSU1 Exec) 510、 兩個(gè)定點(diǎn)單元O(FXUO Exec) 512和l(FXUl Exec) 514、兩個(gè)浮點(diǎn)單元0 (FPU0 Exec) 516和l(FPUl Exec) 518以及一個(gè)分支單 元O(BRUO Exec) 520。分支單元0(520)可執(zhí)行一個(gè)分支指令,而附加分支單 元l(BRUl Exec) 522可處理所預(yù)測的分支所采用的路徑,以減少分支錯(cuò)誤預(yù) 計(jì)的不利結(jié)果。在此超核實(shí)施例中,所有指令從組合指令高速緩存502通過組合指令緩 沖器504而流動(dòng)。組合指令緩沖器504按順序方式存儲(chǔ)指令。從組合指令緩 沖器504中順序地讀取指令,并將指令分派給所有執(zhí)行單元。例如,超核500 將順序指令分派給來自一個(gè)小核的執(zhí)行單元508、 512、 516和520,以及通 過一組分派復(fù)用器(mux ),即FXU1分派復(fù)用器532、 LSU1分派復(fù)用器534、 FPU1分派復(fù)用器536和BRU1分派復(fù)用器538,分派給執(zhí)行單元510、 514、 518和522。加載/存儲(chǔ)單元0(508)和1(510)可以存取組合數(shù)據(jù)高速緩存506 以得到加載/存儲(chǔ)數(shù)據(jù)。由每個(gè)定點(diǎn)單元0(512)和1(514)以及每個(gè)加載/存儲(chǔ)單 元0(508)和1(50)產(chǎn)生的結(jié)果可以寫到GPR 524和526這兩者。由每個(gè)浮點(diǎn) 單元0(516)和1(518)產(chǎn)生的結(jié)果可以寫到FPR 528和530這兩者。所有執(zhí)行 單元508 - 522都可以利用超核的組合完成功能來完成指令。圖6是用于根據(jù)說明性實(shí)施例將可配置微處理器分為若干小核的示例性 處理的流程圖。該處理開始于處理器軟件設(shè)置用來將單微處理器核劃分為兩 個(gè)或更多個(gè)小核的位(步驟602)。為形成小核,該處理劃分微處理器核的(結(jié) 構(gòu)性和非結(jié)構(gòu)性)資源,以形成用于各個(gè)小核的分資源(步驟604)。結(jié)果,每 個(gè)小核獨(dú)立于其它的小核而工作,并且,分派給每個(gè)小核的每個(gè)分資源是單 微處理器核的資源的一部分。例如,每個(gè)小核具有比單微處理器核更小的數(shù) 據(jù)高速緩存、指令高速緩存和指令緩沖器。劃分處理還為每個(gè)小核將非結(jié)構(gòu) 性資源(如重命名資源、指令隊(duì)列、加載/存儲(chǔ)隊(duì)列、鏈接/計(jì)數(shù)堆棧和完成表) 劃分為較小的資源。將分資源分派給小核的處理將那些資源專用于僅僅特定 的小核。一旦形成了小核,每個(gè)小核通過接收專用于該小核的指令高速緩存分區(qū)中的指令來操作(步驟606)。指令高速緩存向?qū)S糜谛『说闹噶罹彌_器分區(qū)提 供指令(步驟608)。專用于小核的執(zhí)行單元讀取指令緩沖器中的指令并執(zhí)行該 指令(步驟610)。例如,每個(gè)小核可將指令分派給專用于小核的加載/存儲(chǔ)單元 分區(qū)、定點(diǎn)單元分區(qū)、浮點(diǎn)單元分區(qū)或分支單元分區(qū)。而且,分支單元分區(qū) 可以執(zhí)行它自己的分支指令并提取它自己的指令流。加載/存儲(chǔ)單元分區(qū)可以 針對(duì)其加載/存儲(chǔ)數(shù)據(jù)而存取它自己的數(shù)據(jù)高速緩存分區(qū)。在執(zhí)行指令之后,小核完成該指令(步驟612),隨后終止處理。圖7是用于根據(jù)說明性實(shí)施例將可配置微處理器中的小核組合為超核的 示例性處理的流程圖。該處理開始于由處理器軟件設(shè)置用來將兩個(gè)或更多個(gè) 小核組合為超核的位(步驟702)。為形成超核,該處理組合所選擇小核的分資 源,以形成用于超核的組合(且更大的)資源(步驟704)。例如,該處理組合每 個(gè)小核的指令高速緩存分區(qū),以形成組合指令高速緩存,并組合每個(gè)小核的 數(shù)據(jù)高速緩存分區(qū),以形成組合數(shù)據(jù)高速緩存,并組合每個(gè)小核的指令緩沖 器分區(qū),以形成組合指令緩沖器。組合處理還將其它所有的非結(jié)構(gòu)性硬件資 源(如,指令隊(duì)列、重命名資源、加載/存儲(chǔ)隊(duì)列和鏈接/計(jì)數(shù)堆棧)組合為更大 的資源,以饋給超核。一旦形成超核,超核就通過接收組合指令高速緩存分區(qū)中的指令來操作 (步驟706)。指令高速緩存向組合指令緩沖器中的一個(gè)小核分區(qū)(例如,"小核 O")提供偶指令(例如,0、 2、 4、 6等),并向組合指令緩沖器中的一個(gè)小核分 區(qū)("小核l")提供奇指令(例如,1、 3、 5、 7等)(步驟708)。先前分配給小核 O的執(zhí)行單元(例如,LSUO、 FXUO、 FPUO或BRUO)從組合指令緩沖器中讀取 偶指令并執(zhí)行該指令,并且,先前分配給小核1的執(zhí)行單元(例如,LSU1、 FXU1、 FPU1或BRU1)從組合指令緩沖器中讀取奇指令(步驟710)。 一個(gè)分支 單元(例如BRUO)可執(zhí)行一個(gè)分支指令,同時(shí),可用其它分支單元(BRU1)來處 理替代分支路徑,以減少分支錯(cuò)誤預(yù)測的不利結(jié)果。在超核中,每個(gè)加載/存 儲(chǔ)單元可存取組合數(shù)據(jù)高速緩存,以得到加載/存儲(chǔ)數(shù)據(jù),加載/存儲(chǔ)單元和定 點(diǎn)單元可將它們的結(jié)果寫到兩個(gè)GPR。在執(zhí)行指令之后,超核利用組合完成 功能來完成指令(步驟712),然后結(jié)束處理。圖8是用于根據(jù)說明性實(shí)施例將可配置微處理器中的小核組合為超核的 另 一示例性處理的流程圖。該處理開始于由處理器軟件設(shè)置用來將兩個(gè)或更多個(gè)小核組合為超核的位(步驟802)。為形成超核,該處理組合所選擇的小核的分資源,以形成用于 超核的組合資源(步驟804)。例如,該處理組合每個(gè)小核的指令高速緩存分區(qū), 以形成組合指令高速緩存,組合每個(gè)小核的數(shù)據(jù)高速緩存分區(qū),以形成組合 數(shù)據(jù)高速緩存,并組合每個(gè)小核的指令緩沖器分區(qū),以形成組合指令緩沖器。 組合處理還將其它所有非結(jié)構(gòu)性硬件資源(如,指令隊(duì)列、重命名資源、加載 /存儲(chǔ)隊(duì)列和鏈接/計(jì)數(shù)堆棧)組合為更大的資源,以饋給超核。一旦形成超核,超核就通過接收組合指令高速緩存中的指令來操作(步 驟806)。組合指令高速緩存向組合指令緩沖器順序地提供指令(步驟808)。所 有對(duì)丸4亍單元(侈'J^口, LSUO、 LSU1、 FXUO、 FXU1、 FPUO、 FPU1、 BRUO、 BRU1) 從組合指令緩沖器中順序地讀取指令并執(zhí)行該指令(步驟810)。 一個(gè)分支單元 (例如BRUO)可執(zhí)行一個(gè)分支指令,同時(shí)可用其它分支單元(BRU1)來處理分支 的替代分支路徑,以減少分支錯(cuò)誤預(yù)測的不利結(jié)果。在超核中,每個(gè)加載/存 儲(chǔ)單元可以存取組合數(shù)據(jù)高速緩存,以得到加載/存儲(chǔ)數(shù)據(jù),并且加載/存儲(chǔ)單 元和定點(diǎn)單元可將它們的結(jié)果寫到兩個(gè)GPR中。每個(gè)浮點(diǎn)單元可寫到兩個(gè) FPR中。在執(zhí)行指令之后,超核利用組合完成功能來完成指令(步驟812),然 后結(jié)束處理。說明性實(shí)施例能夠采用整體硬件實(shí)施例、整體軟件實(shí)施例或包含硬件和 軟件元素的實(shí)施例的形式。以包括但不限于固件、駐留軟件、微代碼等的軟 件來實(shí)現(xiàn)說明性實(shí)施例。此外,說明性實(shí)施例可采用可從提供由或結(jié)合計(jì)算機(jī)或任何指令執(zhí)行系 統(tǒng)使用的程序代碼的計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)中存取的計(jì)算機(jī)程序產(chǎn)品 的形式。為了此描述的目的,計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可以是任何有形 設(shè)備,其可包含、存儲(chǔ)、傳輸、傳播或傳送程序,以由或結(jié)合指令執(zhí)行系統(tǒng)、 設(shè)備或裝置來使用。該介質(zhì)可以是電子、磁、光、電磁、紅外或半導(dǎo)體系統(tǒng)(或設(shè)備或裝置) 或者傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的例子包括半導(dǎo)體或固態(tài)存儲(chǔ)器、磁帶、可 拆卸計(jì)算機(jī)盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、硬磁盤和光盤。 光盤的目前的例子包括緊致盤-只讀存儲(chǔ)器(CD-ROM)、緊致盤-讀/寫(CD-R/W) 和DVD。適合存儲(chǔ)和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)將包括通過系統(tǒng)總線直接或間接耦連到存儲(chǔ)器單元的至少一個(gè)處理器。該存儲(chǔ)器單元可以包括在實(shí)際 執(zhí)行程序代碼期間使用的本地存儲(chǔ)器、大容量存儲(chǔ)器以及用于臨時(shí)存儲(chǔ)某些 程序代碼以便減少在執(zhí)行期間必須從大容量存儲(chǔ)器檢索代碼的次數(shù)的高速緩 存存儲(chǔ)器。輸入/輸出或I/O裝置(包括但不限于鍵盤、顯示器、指針裝置等)直接或通過中間1/0控制器而耦連到系統(tǒng)。還可將網(wǎng)絡(luò)適配器耦連到系統(tǒng),以使得數(shù)據(jù)處理系統(tǒng)能夠通過中間私有 或公眾網(wǎng)絡(luò)而耦連到其它數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲(chǔ)裝置。調(diào)制解調(diào) 器、有線調(diào)制解調(diào)器和以太網(wǎng)卡正是當(dāng)前可用的一些網(wǎng)絡(luò)適配器類型。已經(jīng)為了說明和描述的目的而提供了說明性實(shí)施例的描述,但不意圖是 排他性或限制于所公開形式的說明性實(shí)施例。本領(lǐng)域技術(shù)人員將清楚許多變 形和修改。選擇和描述了實(shí)施例以便最好地解釋說明性實(shí)施例的原理和實(shí)際 應(yīng)用,并使本領(lǐng)域技術(shù)人員能夠?qū)τ诰哂羞m合于所預(yù)期的特定用途的各種修 改的各種實(shí)施例而理解說明性實(shí)施例。
      權(quán)利要求
      1.一種用于將多個(gè)小核組合為單微處理器核的計(jì)算機(jī)實(shí)現(xiàn)方法,該計(jì)算機(jī)實(shí)現(xiàn)方法包括在多個(gè)小核中選擇兩個(gè)或更多個(gè)小核;組合所述兩個(gè)或更多個(gè)小核的資源,以形成組合資源,其中每個(gè)組合資源包括更大量的、每個(gè)單獨(dú)的小核可利用的資源;以及通過將所述組合資源分配給單微處理器核來從所述兩個(gè)或更多個(gè)小核形成所述單微處理器核,其中所述組合資源專用于所述單微處理器核,并且其中所述單微處理器核利用所述組合資源來處理指令。
      2. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其中,在微處理器軟件設(shè)置用 來組合所述兩個(gè)或更多個(gè)小核的位時(shí)執(zhí)行所述組合步驟。
      3. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其中,所述兩個(gè)或更多個(gè)小核 的所述資源包括結(jié)構(gòu)'性資源和非結(jié)構(gòu)'性資源。
      4. 如權(quán)利要求3所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其中,所述結(jié)構(gòu)性資源包括數(shù) 據(jù)高速緩存、指令高速緩存和指令緩沖器。
      5. 如權(quán)利要求3所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其中,所述非結(jié)構(gòu)性資源包括 重命名資源、指令隊(duì)列、加載/存儲(chǔ)隊(duì)列、鏈接/計(jì)數(shù)堆棧和完成表。
      6. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)方法,還包括 響應(yīng)于所述單微處理器核接收到專用于所述單微處理器核的組合指令高速緩存中的指令,將所述指令提供給所述單微處理器核中的組合指令緩沖器; 將所述指令從所述組合指令緩沖器分派給所述單微處理器核中的執(zhí)行單元;執(zhí)行所述指令;以及 完成所述指令。
      7. 如權(quán)利要求6所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其中,將偶指令從所述組合指 令高速緩存中的第一小核分區(qū)提供給所述組合指令緩沖器并分派給先前專用 于所述第一小核分區(qū)的執(zhí)行單元以供執(zhí)行,以及其中,將奇指令從所述組合 指令高速緩存中的第二小核分區(qū)提供給所述組合指令緩沖器并分派給先前專 用于所述第二小核分區(qū)的執(zhí)行單元以供執(zhí)行。
      8. 如權(quán)利要求6所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其中,將指令從所述組合指令 高速緩存順序提供給所述組合指令緩沖器,并分派給所述單微處理器核中的 所有才丸ff單元。
      9. 如權(quán)利要求6所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其中,所述執(zhí)行單元包括加載 /存儲(chǔ)單元、定點(diǎn)單元、浮點(diǎn)單元和分支單元。
      10. 如權(quán)利要求9所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其中,所述分支單元包括 一個(gè)分支單元,其執(zhí)行分支指令;以及第二分支單元,其處理所述分支指令 的替代分支路徑以減少分支錯(cuò)誤預(yù)測的不利結(jié)果。
      11. 如權(quán)利要求9所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其中,每個(gè)加載/存儲(chǔ)單元存 取組合數(shù)據(jù)高速緩存,以獲得獨(dú)立于其它小核的加載/存儲(chǔ)數(shù)據(jù)。
      12. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其中,從所述兩個(gè)或更多個(gè) 小核形成所述單微處理器核,以處理高計(jì)算強(qiáng)度的工作負(fù)載。
      13. 如權(quán)利要求所述的計(jì)算機(jī)實(shí)現(xiàn)方法,其中,更大量的、每個(gè)單獨(dú) 的小核可利用的資源是原始資源量的兩倍。
      14. 一種可配置微處理器,包括處理單元,該處理單元包括通過以下而形成的單微處理器核在多個(gè)小 核中選擇兩個(gè)或更多個(gè)小核,組合所述兩個(gè)或更多個(gè)小核的資源,以形成組 合資源,其中每個(gè)組合資源包括更大量的、每個(gè)單獨(dú)的小核可利用的資源, 以及將所述組合資源分配給所述單微處理器核,其中所述組合資源專用于所 述單微處理器核,并且其中所述單微處理器核利用所述組合資源來處理指令。
      15. 如權(quán)利要求14所述的可配置微處理器,其中,在微處理器軟件設(shè)置 用來組合所述兩個(gè)或更多個(gè)小核的位時(shí)執(zhí)行所述組合步驟。
      16. 如權(quán)利要求14所述的可配置微處理器,其中,所述兩個(gè)或更多個(gè)小 核的資源包括結(jié)構(gòu)性資源和非結(jié)構(gòu)性資源,其中所述結(jié)構(gòu)性資源包括數(shù)據(jù)高 速緩存、指令高速緩存和指令緩沖器,以及所述非結(jié)構(gòu)性資源包括重命名資 源、指令隊(duì)列、加載/存儲(chǔ)隊(duì)列、鏈接/計(jì)數(shù)堆棧和完成表。
      17. 如權(quán)利要求14所述的可配置微處理器,還包括 響應(yīng)于所述單微處理器核接收到專用于所述單微處理器核的組合指令高速緩存中的指令,將所述指令提供給所述單微處理器核中的組合指令緩沖器; 將所述指令從所述組合指令緩沖器分派給所述單微處理器核中的執(zhí)行單元;執(zhí)行所述指令;以及完成所述指令。
      18. 如權(quán)利要求14所述的可配置微處理器,其中,從所述兩個(gè)或更多個(gè) 小核形成所述單微處理器核,以處理高計(jì)算強(qiáng)度的工作負(fù)載。
      19. 如權(quán)利要求14所述的可配置微處理器,其中,更大量的、每個(gè)單獨(dú)的小核可利用的資源是原始資源量的兩倍。
      20. —種信息處理系統(tǒng),包括至少有一個(gè)處理單元,包括微處理器核,其中所述微處理器核進(jìn)一步包 括兩個(gè)或更多個(gè)小核的組合資源,其中所述組合資源專用于所述微處理器核, 以及其中所述微處理器核利用所述組合資源來處理指令。
      全文摘要
      一種可配置微處理器,其將多個(gè)小核組合為單微處理器核以處理高計(jì)算強(qiáng)度的工作負(fù)載。該處理首先在多個(gè)小核中選擇兩個(gè)或更多個(gè)小核。該處理組合兩個(gè)或更多個(gè)小核資源以形成組合資源,其中,每個(gè)組合資源包括更大量的、每個(gè)單獨(dú)的小核可利用的資源。然后,通過將組合資源分配給單微處理器核來從兩個(gè)或更多個(gè)小核形成單微處理器核,其中組合資源專用于單微處理器核,并且其中單微處理器核利用組合資源來處理指令。
      文檔編號(hào)G06F9/50GK101266558SQ20081008326
      公開日2008年9月17日 申請(qǐng)日期2008年3月4日 優(yōu)先權(quán)日2007年3月13日
      發(fā)明者唐·Q·古延, 巴拉雷姆·辛哈羅伊, 杭·Q·利 申請(qǐng)人:國際商業(yè)機(jī)器公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1