調(diào)度器,包括預(yù)留站、中央 指令窗等。調(diào)度器單元856禪合到物理寄存器組單元858。物理寄存器組單元858中的每一個(gè) 都表示一個(gè)或多個(gè)物理寄存器組,運(yùn)些物理寄存器組中的不同的物理寄存器組存儲一種或 多種不同的數(shù)據(jù)類型,諸如,標(biāo)量整數(shù)、標(biāo)量浮點(diǎn)、緊縮整數(shù)、緊縮浮點(diǎn)、向量整數(shù)、向量浮 點(diǎn),狀態(tài)(例如,作為要執(zhí)行的下一條指令的地址的指令指針)等等。在一個(gè)實(shí)施例中,物理 寄存器組單元858包括向量寄存器單元、寫掩碼寄存器單元和標(biāo)量寄存器單元。運(yùn)些寄存器 單元可W提供架構(gòu)向量寄存器、向量掩碼寄存器和通用寄存器。物理寄存器組單元858由引 退單元854重疊 W示出可實(shí)現(xiàn)寄存器重命名和無序執(zhí)行的各種方式(例如,使用重新排序緩 沖器和引退寄存器組;使用未來文件(future file)、歷史緩沖器和引退寄存器組;使用寄 存器映射和寄存器池,等等)。引退單元854和物理寄存器組單元858禪合到執(zhí)行群集860。執(zhí) 行群集860包括一個(gè)或多個(gè)執(zhí)行單元的集合862和一個(gè)或多個(gè)存儲器訪問單元的集合864。 執(zhí)行單元862可W執(zhí)行各種操作(例如,移位、加法、減法、乘法),并且可對各種類型的數(shù)據(jù) (例如,標(biāo)量浮點(diǎn)、緊縮整數(shù)、緊縮浮點(diǎn)、向量整數(shù)、向量浮點(diǎn))來執(zhí)行各種。盡管一些實(shí)施例 可W包括專用于特定功能或功能集的數(shù)個(gè)執(zhí)行單元,但是其他實(shí)施例可W僅包括一個(gè)執(zhí)行 單元或全都執(zhí)行所有功能的多個(gè)執(zhí)行單元。調(diào)度器單元856、物理寄存器組單元858和執(zhí)行 群集860示出為可能是多個(gè),因?yàn)槟承?shí)施例對于某些類型的數(shù)據(jù)/操作創(chuàng)建單獨(dú)的流水線 (例如,各自具有它們自身的調(diào)度器單元、物理寄存器組單元和/或執(zhí)行群集的標(biāo)量整數(shù)流 水線、標(biāo)量浮點(diǎn)/緊縮整數(shù)/緊縮浮點(diǎn)/向量整數(shù)/向量浮點(diǎn)流水線和/或存儲器訪問流水 線一一并且在單獨(dú)的存儲器訪問流水線的情況下,實(shí)現(xiàn)了其中僅僅該流水線的執(zhí)行群集具 有存儲器訪問單元864的某些實(shí)施例)。還應(yīng)當(dāng)理解,在使用單獨(dú)的流水線的情況下,運(yùn)些流 水線中的一個(gè)或多個(gè)可W是無序發(fā)布/執(zhí)行的,而其余的是有序的。
[0082] 存儲器訪問單元的集合864禪合到存儲器單元870,該存儲器單元870包括禪合到 數(shù)據(jù)高速緩存單元874的數(shù)據(jù)化B單元872,數(shù)據(jù)高速緩存單元874禪合到第2級化2)高速緩 存單元876。在一個(gè)示例性實(shí)施例中,存儲器訪問單元864可W包括加載單元、存儲地址單元 W及存儲數(shù)據(jù)單元,其中的每一個(gè)都禪合到存儲器單元870中的數(shù)據(jù)TLB單元872。指令高速 緩存單元834進(jìn)一步禪合到存儲器單元870中的第2級化2)高速緩存單元876。L2高速緩存單 元876禪合到一個(gè)或多個(gè)其他層級的高速緩存,并最終禪合到主存儲器。
[0083] 作為示例,示例性寄存器重命名的、無序發(fā)布/執(zhí)行核架構(gòu)可按如下方式來實(shí)現(xiàn)流 水線800:1)指令取出838執(zhí)行取出和長度解碼級802和804; 2)解碼單元840執(zhí)行解碼級806; 3)重命名/分配器單元852執(zhí)行分配級808和重命名級810;4)調(diào)度器單元856執(zhí)行調(diào)度級 812;5)物理寄存器組單元858和存儲器單元870執(zhí)行寄存器讀取/存儲器讀取級814;執(zhí)行群 集860執(zhí)行執(zhí)行級816;6)存儲器單元870和物理寄存器組單元858執(zhí)行寫回/存儲器寫入級 818;7)各單元可牽設(shè)到異常處理級822; W及8)引退單元854和物理寄存器組單元858執(zhí)行 提交級824。
[0084] 核890可支持一個(gè)或多個(gè)指令集(例如,x86指令集(具有與較新版本一起添加的一 些擴(kuò)展);加利福尼亞州桑尼維爾市的MIPS技術(shù)公司的MIPS指令集;加利福尼州桑尼維爾市 的ARM控股公司的ARM指令集(具有諸如NEON之類的可選附加擴(kuò)展)),其中包括本文中描述 的各指令。在一個(gè)實(shí)施例中,核890包括用于支持緊縮數(shù)據(jù)指令集合擴(kuò)展(例如,AVXUAVX2) 的邏輯,進(jìn)而允許將使用緊縮數(shù)據(jù)來執(zhí)行由許多的多媒體應(yīng)用使用的操作。
[0085] 應(yīng)當(dāng)理解,核可支持多線程操作(執(zhí)行兩個(gè)或更多個(gè)并行的操作或線程的集合), 并且可W按各種方式來完成該多線程操作,各種方式包括時(shí)分多線程操作、同步多線程操 作(其中,單個(gè)物理核為物理核正在同步進(jìn)行多線程操作的多個(gè)線程中的每一個(gè)線程提供 邏輯核)或其組合(例如,時(shí)分取出和解碼W及此后諸如利用iMe陸陋線程技術(shù)中的同步多 線程操作)。
[0086] 盡管寄存器重命名是在無序執(zhí)行的上下文中描述的,但是應(yīng)當(dāng)理解,寄存器重命 名可W用于有序架構(gòu)中。盡管所示出的處理器的實(shí)施例還包括分開的指令和數(shù)據(jù)高速緩存 單元834/874W及共享L2高速緩存單元876,但替代實(shí)施例可W具有用于指令和數(shù)據(jù)兩者的 單個(gè)內(nèi)部高速緩存,諸如例如,第一級化1)內(nèi)部高速緩存或多個(gè)層級的內(nèi)部高速緩存。在某 些實(shí)施例中,系統(tǒng)可W包括內(nèi)部高速緩存W及核和/或處理器外部的外部高速緩存的組合。 或者,所有的高速緩存都可W在核和/或處理器的外部。
[0087] 特定的示例性有序核架構(gòu)
[0088] 圖9A-B示出更具體的示例性有序核架構(gòu)的框圖,在該有序核架構(gòu)中,核將是忍片 中的多個(gè)邏輯塊(包括相同類型和/或不同類型的其他核)中的一個(gè)。依賴于應(yīng)用,運(yùn)些邏輯 塊通過高帶寬互連網(wǎng)絡(luò)(例如,環(huán)形網(wǎng)絡(luò))與一些固定功能邏輯、存儲器I/O接口和其他必要 的I/O邏輯進(jìn)行通信。
[0089] 圖9A是根據(jù)本發(fā)明的各實(shí)施例的單個(gè)處理器核W及它到管忍上互連網(wǎng)絡(luò)902的連 接W及其第2級化2)高速緩存的本地子集904的框圖。在一個(gè)實(shí)施例中,指令解碼器900支持 具有緊縮數(shù)據(jù)指令集擴(kuò)展的x86指令集。L1高速緩存906允許對進(jìn)入標(biāo)量和向量單元的高速 緩存存儲器的低等待時(shí)間訪問。盡管在一個(gè)實(shí)施例中(為了簡化設(shè)計(jì)),標(biāo)量單元908和向量 單元910使用分開的寄存器集合(分別為標(biāo)量寄存器912和向量寄存器914),并且在運(yùn)些寄 存器之間轉(zhuǎn)移的數(shù)據(jù)被寫入到存儲器并隨后從第一級化1)高速緩存906讀回,但是本發(fā)明 的替代實(shí)施例可W使用不同的方法(例如,使用單個(gè)寄存器集合,或包括允許數(shù)據(jù)在運(yùn)兩個(gè) 寄存器組之間傳輸而無需被寫入和讀回的通信路徑)。
[0090] L2緩存的本地子集904是全局L2高速緩存的部分,該全局L2高速緩存被劃分成多 個(gè)分開的本地子集,即每個(gè)處理器核一個(gè)本地子集。每個(gè)處理器核具有到其自身的L2高速 緩存的本地子集904的直接訪問路徑。由處理器核讀取的數(shù)據(jù)被存儲在其L2高速緩存的子 集904中,并且可W與其他處理器核訪問那些處理器核自身的本地L2高速緩存的子集并行 地被快速訪問。如有必要,將由處理器核寫入的數(shù)據(jù)存儲在其自身的L2高速緩存的子集904 中,并且從其他子集轉(zhuǎn)儲清除(flush)。環(huán)形網(wǎng)絡(luò)確保共享數(shù)據(jù)的一致性。環(huán)形網(wǎng)絡(luò)是雙向 的,W允許諸如處理器核、L2高速緩存和其他邏輯塊之類的代理在忍片內(nèi)彼此通信。每個(gè)環(huán) 形的數(shù)據(jù)路徑為每個(gè)方向上1012位寬。
[0091] 圖9B是根據(jù)本發(fā)明的實(shí)施例的圖9A中的處理器核的部分的展開圖。圖9B包括L1高 速緩存904的LI數(shù)據(jù)高速緩存906A部分,W及關(guān)于向量單元910和向量寄存器914的更多細(xì) 節(jié)。具體地說,向量單元910是16寬向量處理單元(VPU)(見16寬ALU 928),該單元執(zhí)行整數(shù)、 單精度浮點(diǎn)W及雙精度浮點(diǎn)指令中的一個(gè)或多個(gè)。該VPU支持利用混合單元920來混合寄存 器輸入、利用數(shù)值轉(zhuǎn)換單元922A-B進(jìn)行數(shù)值轉(zhuǎn)換、并利用復(fù)制單元924來復(fù)制存儲器輸入。 寫掩碼寄存器926允許預(yù)測所產(chǎn)生的向量寫入。
[0092] 具有集成存儲器控制器和圖形器件的處理器
[0093] 圖10是根據(jù)本發(fā)明的各實(shí)施例的可具有多于一個(gè)的核、可具有集成存儲器控制 器、并且可具有集成圖形器件的處理器1000的框圖。圖10中的實(shí)線框示出具有單個(gè)核 1002A、系統(tǒng)代理1010、一個(gè)或多個(gè)總線控制器單元的集合1016的處理器1000,而虛線框的 可選附加示出具有多個(gè)核1002A-N、系統(tǒng)代理單元1010中的一個(gè)或多個(gè)集成存儲器控制器 單元的集合1014W及專用邏輯1008的處理器1000。
[0094] 因此,處理器1000的不同實(shí)現(xiàn)可包括:1)CPU,其中,專用邏輯1008是集成圖形和/ 或科學(xué)(吞吐量)邏輯(其可包括一個(gè)或多個(gè)核),并且核1002A-N是一個(gè)或多個(gè)通用核(例 如,通用有序核、通用無序核、運(yùn)兩者的組合);2)協(xié)處理器,其中,核1002A-N是旨在主要用 于圖形和/或科學(xué)(吞吐量)的大量專用核;W及3)協(xié)處理器,其中,核1002A-N是大量通用有 序核。因此,處理器1000可W是通用處理器、協(xié)處理器或?qū)S锰幚砥?,諸如例如,網(wǎng)絡(luò)或通信 處理器、壓縮引擎、圖形處理器、GPGPU(通用圖形處理單元)、高吞吐量的集成眾核(MIC)協(xié) 處理器(包括30個(gè)或更多核)、或嵌入式處理器等。該處理器可W實(shí)現(xiàn)在一個(gè)或多個(gè)忍片上。 處理器1000可W是一個(gè)或多個(gè)基板的部分,和/或可使用諸如例如BiCM0S、CM0S或NM0S之類 的多個(gè)工藝技術(shù)中的任何一中技術(shù)將處理器1000實(shí)現(xiàn)在一個(gè)或多個(gè)基板上。
[0095] 存儲器層次結(jié)構(gòu)包括核內(nèi)的一級或多級的高速緩存,一組或一個(gè)或多個(gè)共享高速 緩存器單元1006, W及禪合到集成的存儲器控制器單元的集合1014的外部存儲器(未示 出)。共享高速緩存器單元的集合1006可W包括一個(gè)或多個(gè)中級高速緩存,諸如,第2級 化2)、第3級化3)、第4級化4),或其他層級的高速緩存,末級高速緩存(化〇,和/或上述各項(xiàng) 的組合。盡管在一個(gè)實(shí)施例中,基于環(huán)的互連單元1012將集成圖形邏輯1008、共享高速緩存 單元的集合1006W及系統(tǒng)代理單元1010/集成存儲器控制器單元1014互連,但替代實(shí)施例 可使用任何數(shù)量的公知技術(shù)來將此類單元互連。在一個(gè)實(shí)施例中,在一個(gè)或多個(gè)高速緩存 單元1006與核1002-A-N之間維持一致性(coheren巧)。
[0096] 在某些實(shí)施例中,核1002A-N中的一個(gè)或多個(gè)能夠進(jìn)行多線程操作。系統(tǒng)代理1010 包括協(xié)調(diào)并操作核1002A-N的那些組件。系統(tǒng)代理單元1010可包括例如功率控制單元(PCU) 和顯示單元。PCU可W是或可包括調(diào)節(jié)核1002A-N和集成圖形邏輯1008的功率狀態(tài)所需的邏 輯和組件。顯示單元用于驅(qū)動一個(gè)或多個(gè)從外部連接的顯示器。
[0097] 核1002A-N在架構(gòu)指令集方面可W是同構(gòu)的或異構(gòu)的;也就是說,運(yùn)些核1002A-N 中的兩個(gè)或更多個(gè)核可能能夠執(zhí)行相同的指令集,而其他核可能能夠執(zhí)行該指令集的僅僅 子集或不同的指令集。
[0098] 示例性計(jì)算機(jī)架構(gòu)
[0099] 圖11-14是示例性計(jì)算機(jī)架構(gòu)的框圖。本領(lǐng)域已知的、用于膝上型計(jì)算機(jī)、臺式計(jì) 算機(jī)、手持PC、個(gè)人數(shù)字助理、工程工作站、服務(wù)器、網(wǎng)絡(luò)設(shè)備、網(wǎng)絡(luò)集線器、交換機(jī)、嵌入式 處理器、數(shù)字信號處理器(DSP)、圖形設(shè)備、視頻游戲設(shè)備、機(jī)頂盒、微控制器、蜂窩電話、便 攜式媒體播放器、手持設(shè)備w及各種其他電子設(shè)備的其他系統(tǒng)設(shè)計(jì)和配置也是合適的。一 般地,能夠包含本文中所公開的處理器和/或其他執(zhí)行邏輯的大量種類的系統(tǒng)或電子設(shè)備 通常都是合適的。
[0100] 現(xiàn)在參見圖11,所示是根據(jù)本發(fā)明的一個(gè)實(shí)施例的系統(tǒng)1100的框圖。系統(tǒng)1100可 W包括禪合到控制器中樞1120的一個(gè)或多個(gè)處理器1110、1115。在一個(gè)實(shí)施例中,控制器中 樞1120包括圖形存儲器控制器中樞(GMCHH190和輸入/輸出中樞(I0H)1150(其可W在分開 的忍片上);GMCH 1190包括存儲器和圖形控制器,存儲器1140和協(xié)處理器1145禪合到該存 儲器和圖形控制器;I0H 1150將輸入/輸出(I/O)設(shè)備1160禪合到GMCH 1190?;蛘?,存儲器 和圖形控制器中的一者或兩者都集成在處理器內(nèi)(如本文中所描述),存儲器1140和協(xié)處理 器1145處理器1110和單個(gè)忍片中的控制器中樞1120,該控制器中樞1120與I0H 1150處于單 個(gè)忍片中。
[0101] 在圖11中W虛線表示附加處理器1115的可任選的本質(zhì)。每一個(gè)處理器1110、1115 可包括本文中描述的處理核中的一個(gè)或多個(gè),并且可W是處理器1000的某一版本。
[0102] 存儲器1140可W是例如動態(tài)隨機(jī)存取存儲器(DRAM)、相變存儲器(PCM)或運(yùn)兩者 的組合。對于至少一個(gè)實(shí)施例,控制器中樞1120經(jīng)由諸如前端總線(FSB)之類的多分支總 線、諸如快速路徑互連(QPI)之類的點(diǎn)對點(diǎn)接口、或者類似的連接1195與處理器1110、1115 進(jìn)行通信。
[0103] 在一個(gè)實(shí)施例中,協(xié)處理器1145是專用處理器,諸如例如,高吞吐量MIC處理器、網(wǎng) 絡(luò)或通信處理器、壓縮引擎、圖形處理器、GPGPU、或嵌入式處理器,等等。在一個(gè)實(shí)施例中, 控制器中樞1120可W包括集成圖形加速器。
[0104] 就包括架構(gòu)、微架構(gòu)、熱、功耗特性等的一系列優(yōu)點(diǎn)度量方面而言,在物理資源 1110、1115之間可能會有各種差異。
[0105] 在一個(gè)實(shí)施例中,處理器1110執(zhí)行控制通用類型的數(shù)據(jù)處理操作的指令。嵌入在 運(yùn)些指令中的可W是協(xié)處理器指令。處理器1110將運(yùn)些協(xié)處理器指令識別為應(yīng)當(dāng)由附連的 協(xié)處理器1145執(zhí)行的類型。因此,處理器1110在協(xié)處理器總線或者其他互連上將運(yùn)些協(xié)處 理器指令(或者表示協(xié)處理器指令的控制信號)發(fā)布給協(xié)處理器1145。協(xié)處理器1145接受并 執(zhí)行所接收的協(xié)處理器指令。
[0106] 現(xiàn)在參見圖12,所示是根據(jù)本發(fā)明的一個(gè)實(shí)施例的第一更具體的示例性系統(tǒng)1200 的框圖。如圖12所示,多處理器系統(tǒng)1200是點(diǎn)對點(diǎn)互連系統(tǒng),并包括經(jīng)由點(diǎn)對點(diǎn)互連1250禪 合的第一處理器1270和第二處理器1280。處理器1270和1280中的每一個(gè)處理器都可W是處 理器1000的某一版本。在本發(fā)明的一個(gè)實(shí)施例中,處理器1270和1280分別是處理器1110和 1115,而協(xié)處理器1238是協(xié)處理器1145。在另一實(shí)施例中,處理器1270和1280分別是處理器 1110和協(xié)處理器1145。
[0107] 處理器1270和1280示出為分別包括集成存儲器控制器(IMC)單元1272和1282。處 理器1270還包括點(diǎn)對點(diǎn)(P-P)接口 1276和1278作為其總線控制器單元的部分;類似地,第二 處理器1280包括P-P接口 1286和1288。處理器1270、1280可W經(jīng)由使用點(diǎn)對點(diǎn)(P-P)接口電 路1278、1288的P-P接口 1250來交換信息。如圖12所示,IMC 1272和1282將處理器禪合到相 應(yīng)的存儲器,即,存儲器1232和存儲器1234,它們可W是本地附連到相應(yīng)的處理器的主存儲 器的部分。
[010引處理器1270、1280可各自經(jīng)由使用點(diǎn)對點(diǎn)接口電路1276、1294、1286、1298的單獨(dú) 的P-P接口 1252、1254來與忍片組1290交換信息。忍片組1290可W可選地經(jīng)由高性能接口 1239與協(xié)處理器1238交換信息。在一個(gè)實(shí)施例中,協(xié)處理器1238是專用處理器,諸如例如, 高吞吐量MIC處理器、網(wǎng)絡(luò)或通信處理器、壓縮引擎、圖形處理器、GPGPU、或嵌入式處理器, AfrAfr 寸寸0
[0109] 共享高速緩存(未示出)可W被包括在任一處理器之內(nèi),或被包括在兩個(gè)處理器外 部但仍經(jīng)由P-P互連與運(yùn)些處理器連接,使得如果將某處理器置于低功率模式時(shí),可將任一 處理器或兩個(gè)處理器的本地高速緩存信息存儲在該共享高速緩存中。
[0110] 忍片組1290可經(jīng)由接口 1296禪合至第一總線1216。在一個(gè)實(shí)施例中,第一總線 1216可W是外圍組件互連(PCI)總線,或諸如PCI快速(PCI E邱ress)之類的總線或另一第 Ξ代I/O互連總線,但本發(fā)明的范圍并不受此限制。
[0111] 如圖12所示,各種I/O設(shè)備1214連同第一總線1216-起可W禪合到第一總線1220, 總線橋1216將第一總線1216禪合到第二總線1220。