中文字幕无码日韩视频无码三区

異構處理器裝置和方法

文檔(dang)序號(hao):9383059閱讀:373來源:國知局
異構處理器裝置和方法
【技術領域】
[0001] 本發明總體涉及計算機處理器的領域。更具體地說,本發明涉及異構處理器裝置 和方法。
[0002] 相關摶術的描沐
[0003] 異構計算架構提供相比同構架構的獨特優勢,因為多于一種類型的計算元件可用 于執行計算任務。不同的計算元件(也被稱為"處理元件"或"功能單元")比其他元件更 適用于不同的任務。例如,計算元件A在運行任務X時比計算元件B快,但是該計算元件A 在運行任務V時可能比計算元件B慢。因此,包含計算元件A和B兩者的硬件在運行任務 X和V的組合時比僅包含類型A或類型B的計算元件的硬件更高效。
[0004] 盡管異構計算架構具有公知的優勢,但現實世界中用于CPU核的異構計算的示例 卻很少。這些架構要求軟件知曉如何將多個任務適當地調度到每一種CPU核類型(在這種 情況下,計算元件是CPU核)。隨著硬件演進以及核類型變化,讓軟件(例如,操作系統)跟 蹤可用的不同類型的CPU核以及如何高效地利用異構性是非常困難的。出于這個原因,在 諸如Windows?和Linux之類的主流操作系統中沒有核異構性支持,并且在不久的將來也不 大可能有針對該功能的廣泛的支持。
【附圖說明】
[0005] 結合以下附圖,從以下【具體實施方式】中可獲得對本發明更好的理解,其中:
[0006] 圖IA是示出根據本發明的多個實施例的示例性有序流水線和示例性的寄存器重 命名的無序發布/執行流水線的框圖;
[0007] 圖IB是示出根據本發明的多個實施例的要包括在處理器中的有序架構核的示例 性實施例和示例性的寄存器重命名的無序發布/執行架構核的框圖;
[0008] 圖2是根據本發明的多個實施例的具有集成的存儲器控制器和圖形器件的單核 處理器和多核處理器的框圖。
[0009] 圖3示出根據本發明的一個實施例的系統的框圖;
[0010] 圖4示出根據本發明的實施例的第二系統的框圖;
[0011] 圖5示出根據本發明的實施例的第三系統的框圖;
[0012] 圖6示出根據本發明的實施例的芯片上系統(SoC)的框圖;
[0013] 圖7示出根據本發明的多個實施例的、對照使用軟件指令轉換器將源指令集中的 二進制指令轉換成目標指令集中的二進制指令的框圖;
[0014] 圖8示出異構處理器架構的一個實施例。
[0015] 圖9a和9b分別示出包括被隱藏的大型核和被隱藏的小型核的實施例。
[0016] 圖10示出用于將虛擬核映射至物理核的方法的一個實施例。
[0017] 圖lla-b示出具有被隱藏的大型核和多個可見的小型核的系統的一個實施例。
[0018] 圖12示出用于將虛擬核映射至物理核的方法的一個實施例。
[0019] 圖13a_c示出具有被隱藏的小型核和多個可見的大型核的系統的一個實施例。
[0020] 圖13d示出用于不同類型的線程的核分配。
[0021] 圖14a_b示出用于智能地向異構處理器組件分配功率的本發明的多個實施例。
[0022] 圖15a_b是示出根據本發明的多個實施例的通用向量友好指令格式及其指令模 板的框圖;
[0023] 圖16a_d是根據本發明的多個實施例的示例性專用向量友好指令格式的框圖;以 及
[0024] 圖17是根據本發明的一個實施例的寄存器架構的框圖。
【具體實施方式】
[0025] 在下面的描述中,為了進行解釋,闡述了眾多具體細節以便提供對以下描述的本 發明的多個實施例的透徹理解。然而,對本領域技術人員顯而易見的是,可以在沒有這些具 體細節中的一些細節的情況下實施本發明的各實施例。在其他實例中,公知的結構和設備 以框圖形式示出,以避免使本發明的多個實施例的基本原理模糊。
[0026] 示例件處理器架構和數據類銦
[0027] 圖IA是示出根據本發明的多個實施例的示例性有序流水線和示例性的寄存器重 命名的無序發布/執行流水線的框圖。圖IB是示出根據本發明的多個實施例的要包括在 處理器中的有序架構核的示例性實施例和示例性的寄存器重命名的無序發布/執行架構 核的框圖。圖IA-B中的實線框示出了有序流水線和有序核,而可選增加的虛線框示出了寄 存器重命名的、無序發布/執行流水線和核。考慮到有序方面是無序方面的子集,將描述無 序方面。
[0028] 在圖IA中,處理器流水線100包括取出級102、長度解碼級104、解碼級106、分配 級108、重命名級110、調度(也被稱為分派或發布)級112、寄存器讀取/存儲器讀取級 114、執行級116、寫回/存儲器寫入級118、異常處理級122和提交級124。
[0029] 圖IB示出處理器核190,其包括耦合到執行引擎單元150的前端單元130,且執行 引擎單元和前端單元兩者都耦合到存儲器單元170。核190可以是精簡指令集計算(RISC) 核、復雜指令集計算(CISC)核、超長指令字(VLIW)核或混合或替代核類型。作為又一選項, 核190可以是專用核,諸如例如,網絡或通信核、壓縮引擎、協處理器核、通用計算圖形處理 單元(GPGPU)核、圖形核等。
[0030] 前端單元130包括親合到指令高速緩存單元134的分支預測單元132,該指令高 速緩存單元耦合到指令轉換后備緩沖器(TLB) 136,該指令轉換后備緩沖器耦合到指令取出 單元138,指令取出單元耦合到解碼單元140。解碼單元140 (或解碼器)可解碼指令,并生 成從原始指令解碼出的、或以其他方式反映原始指令的、或從原始指令導出的一個或多個 微操作、微代碼進入點、微指令、其他指令或其他控制信號作為輸出。解碼單元140可使用 各種不同的機制來實現。合適機制的示例包括但不僅限于,查找表、硬件實現、可編程邏輯 陣列(PLA)、微代碼只讀存儲器(ROM)等。在一個實施例中,核190包括微代碼ROM或存儲 用于某些宏指令的微代碼的其他介質(例如,在解碼單元140中或以其他方式在前端單元 130內)。解碼單元140耦合至執行引擎單元150中的重命名/分配器單元152。
[0031] 執行引擎單元150包括耦合到引退單元154和一個或多個調度器單元的集合156 的重命名/分配器單元152。調度器單元156表示任意數量的不同調度器,包括預留站、中 央指令窗等。調度器單元156耦合到物理寄存器組單元158。物理寄存器組單元158中的 每一個表示一個或多個物理寄存器組,其中不同的物理寄存器組存儲一個或多個不同的數 據類型,例如,標量整數、標量浮點、緊縮整數、緊縮浮點、向量整數、向量浮點,狀態(例如, 作為要被執行的下一條指令的地址的指令指針)等。在一個實施例中,物理寄存器組單元 158包括向量寄存器單元、寫掩碼寄存器單元和標量寄存器單元。這些寄存器單元可以提供 架構向量寄存器、向量掩碼寄存器、和通用寄存器。物理寄存器組單元158被引退單元154 覆蓋,以示出可實現寄存器重命名和無序執行的各種方式(例如,使用重排序緩沖器和引 退寄存器組;使用未來文件(future file)、歷史緩沖器、引退寄存器組;使用寄存器映射 和寄存器池等)。引退單元154和物理寄存器組單元158耦合至執行群集160。執行群集 160包括一個或多個執行單元的集合162以及一個或多個存儲器訪問單元的集合164。執行 單元162可執行多種操作(例如,移位、加法、減法、乘法),并且可對多種數據類型(例如, 標量浮點、緊縮整數、緊縮浮點、向量整數、向量浮點)執行操作。盡管一些實施例可以包括 專用于特定功能或功能集的多個執行單元,但其他實施例可包括全部執行所有功能的僅一 個執行單元或多個執行單元。調度器單元156、物理寄存器組單元158、執行群集160被示 出為可能是復數個,因為某些實施例為某些數據/操作類型創建了諸個單獨流水線(例如, 均具有各自調度器單元、物理寄存器組單元和/或執行群集的標量整數流水線、標量浮點/ 緊縮整數/緊縮浮點/向量整數/向量浮點流水線、和/或存儲器訪問流水線,以及在單獨 的存儲器訪問流水線的情況下特定實施例被實現為僅僅該流水線的執行群集具有存儲器 訪問單元164)。還應當理解,在使用分開的流水線的情況下,這些流水線中的一個或多個可 以是無序發布/執行的,并且其余流水線可以是有序發布/執行的。
[0032] 存儲器訪問單元的集合164親合到存儲器單元170,該存儲器單元包括親合到數 據高速緩存單元174的數據TLB單元172,其中,數據高速緩存單元耦合到第二級(L2)高速 緩存單元176。在一個示例性實施例中,存儲器訪問單元164可包括加載單元、存儲地址單 元和存儲數據單元,其中的每一個均親合至存儲器單元170中的數據TLB單元172。指令高 速緩存單元134還耦合到存儲器單元170中的第二級(L2)高速緩存單元176。L2高速緩 存單元176耦合到一個或多個其他級的高速緩存,并最終耦合到主存儲器。
[0033] 作為示例,示例性的寄存器重命名的、無序發布/執行核架構可按如下方式實現 流水線100 :1)指令取出138執行取出和長度解碼級102和104 ;2)解碼單元140執行解 碼級106 ;3)重命名/分配器單元152執行分配級108和重命名級110 ;4)調度器單元156 執行調度級112 ;5)物理寄存器組單元158和存儲器單元170執行寄存器讀取/存儲器讀 取級114 ;執行群集160執行執行級116 ;6)存儲器單元170和物理寄存器組單元158執行 寫回/存儲器寫入級118 ;7)各單元可牽涉到異常處理級122 ;以及8)引退單元154和物 理寄存器組單元158執行提交級124。
[0034] 核190可支持一個或多個指令集(例如,x86指令集(在更新的版本中加入了一 些擴展);加利福尼亞州桑尼維爾市的MIPS技術公司的MIPS指令集;加利福尼州桑尼維爾 市的ARM控股公司的ARM指令集(具有諸如NEON之類的可選附加擴展)),其中包括本文中 描述的各指令。在一個實施例中,核190包括用于支持緊縮數據指令集擴展(例如,AVX1、 AVX2和/或先前描述的一些形式的一般向量友好指令格式(U = 0和/或U = 1))的邏輯, 從而允許由許多多媒體應用使用的操作能夠使用緊縮數據來執行。
[0035] 應當理解,核可支持多線程操作(執行兩個或更多個并行的操作或線程的集合), 并且可以按各種方式來完成該多線程操作,各種方式包括時分多線程操作、同步多線程操 作(其中,單個物理核為物理核正在同步進行多線程操作的多個線程中的每一個線程提供 邏輯核)或其組合(例如,時分取出和解碼以及此后諸如利用】ntel?超線程技術的同步多 線程操作)。
[0036] 盡管在無序執行的上下文中描述了寄存器重命名,但應當理解,可在有序架構中 使用寄存器重命名。盡管所示出的處理器的實施例還包括分開的指令和數據高速緩存單元 134/174以及共享L2高速緩存單元176,但替代實施例可以具有用于指令和數據兩者的單 個內部高速緩存,諸如例如一級(LI)內部高速緩存或多個級別的內部高速緩存。在一些實 施例中,該系統可包括內部高速緩存和在核和/或處理器外部的外部的高速緩存的組合。 或者,所有高速緩存都可在核和/或處理器的外部。
[0037] 圖2是根據本發明的多個實施例的、可能具有多于一個的核、可能具有集成存儲 器控制器、并且可能具有集成圖形器件的處理器200的框圖。圖2中的實線框示出具有單 個核202A、系統代理210、一個或多個總線控制器單元216的集合的處理器200,而虛線框的 可選附加示出具有多個核202A-N、系統代理單元210中的一個或多個集成存儲器控制器單 元214的集合以及專用邏輯208的替代處理器200。
[0038] 因此,處理器200的不同實現可包括:1) CPU,其中專用邏輯208是集成圖形和/或 科學(吞吐量)邏輯(其可包括一個或多個核),并且核202A-N是一個或多個通用核(例 如,通用有序核、通用無序核、這兩者的組合);2)協處理器,其中核202A-N是旨在主要用于 圖形和/或科學(吞吐量)的大量專用核;以及3)協處理器,其中核202A-N是大量通用有 序核。因此,處理器200可以是通用處理器、協處理器或專用處理器,該專用處理器諸如例 如,網絡或通信處理器、壓縮引擎、圖形處理器、GPGPU (通用圖形處理單元)、高吞吐量的集 成眾核(MIC)協處理器(包括30個或更多核)、嵌入式處理器等。該處理器可以被實現在 一個或多個芯片上。處理器200可以是一個或多個基板的一部分,并且/或者可使用多種 工藝技術(諸如,BiCMOS、CMOS、或NM0S)中的任意技術被實現在一個或多個基板上。
[0039] 存儲器層次結構包括核內的一個或多個層級的高速緩存、一組或一個或多個共享 高速緩存單元206以及耦合至集成存儲器控制器單元的集合214的外部存儲器(未示出)。 共享高速緩存單元的集合206可包括一個或多個中級高速緩存,諸如,第二級(L2)、第三級 (L3)、第四級(L4)或其他層級的高速緩存、末級高速緩存(LLC)和/或以上的組合。盡管在 一個實施例中,基于環的互連單元212將集成圖形邏輯208、共享高速緩存單元的集合206 以及系統代理單元210/集成存儲器控制器單元214互連,但替代實施例可使用任何數量的 公知技術來將此類單元互連。在一個實施例中,可維護一個或多個高速緩存單元206和核 202A-N 之間的一致性(coherency)。
[0040] 在一些實施例中,一個或多個核202A-N能夠進行多線程操作。系統代理210包括 協調和操作核202A-N的那些組件。系統代理單元210可包括例如功率控制單元(P⑶)和 顯示單元。PCU可以是或可包括調節核202A-N和集成圖形邏輯208的功率狀態所需的邏輯 和組件。顯示單元用于驅動一個或多個外部連接的顯示器。
[0041] 核202A-N在架構指令集方面可以是同構的或異構的;也就是說,這些核202A-N中 的兩個或更多個核可能能夠執行相同的指令集,而其他核可能能夠執行該指令集的僅僅子 集或不同的指令集。在一個實施例中,核202A-N是異構的并且包括下述"小型"核和"大 型"核兩者。
[0042] 圖3-6是示例性計算機架構的框圖。本領域已知的對膝上型計算機、臺式機、手持 PC、個人數字助理、工程工作站、服務器、網絡設備、網絡集線器、交換機、嵌入式處理器、數 字信號處理器(DSP)、圖形設備、視頻游戲設備、機頂盒、微控制器、蜂窩電話、便攜式媒體播 放器、手持設備以及各種其他電子設備的其他系統設計和配置也是合適的。一般地,能夠包 含本文中所公開的處理器和/或其他執行邏輯的多個系統和電子設備通常都是合適的。
[0043] 現在參考圖3,所示出的是根據本發明一個實施例的系統300的框圖。系統300可 包括一個或多個處理器310、315,這些處理器耦合到控制器中樞320。處理器310、315中的 每一個可包括下文中參照圖8-14所描述的多個虛擬核。在一個實施例中,控制器中樞320 包括圖形存儲器控制器中樞(GMCH) 390和輸入/輸出中樞(IOH) 350 (其可在分開的芯片 上);GMCH 390包括存儲器和圖形控制器,存儲器340和協處理器345耦合到該存儲器和圖 形控制器;IOH 350將輸入/輸出(I/O)設備360耦合到GMCH 390。或者,存儲器和圖形控 制器中的一個或兩者可以被集成在處理器內(如本文中所描述的),存儲器340和協處理 器345直接耦合到處理器310以及控制器中樞320,該控制器中樞與IOH 350處于單個芯片 中。
[0044] 附加的處理器315的可選性質在圖3中通過虛線來表示。每個處理器310、315可 包括本文中描述的處理核中的一個或多個,并且可以是處理器200的某一版本。
[0045] 存儲器340可以是例如動態隨機存取存儲器(DRAM)、相變存儲器(PCM)或這兩者 的組合。對于至少一個實施例,控制器中樞320經由諸如前端總線(FSB)之類的多分支總 線、諸如快速通道互連(QPI)之類的點對點接口、或者類似的連接395與處理器310、315進 行通信。
[0046] 在一個實施例中,協處理器345是專用處理器,諸如例如,高吞吐量MIC處理器、網 絡或通信處理器、壓縮引擎、圖形處理器、GPGPU、嵌入式處理器等。在一個實施例中,控制器 中樞320可以包括集成圖形加速器。
[0047] 在物理資源310、315之間可以存在包括架構、微架構、熱、和功耗特征等的一系列 品質度量方面的各種差異。
[0048] 在一個實施例中,處理器310執行控制一般類型的數據處理操作的指令。協處理 器指令可嵌入在這些指令中。處理器310將這些協處理器指令識別為應當由附連的協處理 器345執行的類型。因此,處理器310在協處理器總線或者其他互連上將這些協處理器指
當前第1頁1 2 3 4 5 6 
網(wang)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1