微架構(gòu)
和指令集架構(gòu)的關(guān)系
指令集架構(gòu)是指在處理器內(nèi)被處理的程式,指令集架構(gòu)為組合語言的設(shè)計師和編譯器所見。指令集架構(gòu)包含execution model,暫存器,地址以及資料格式。微架構(gòu)包含處理器內(nèi)部的構(gòu)成以及這些構(gòu)成起來的部分如何執(zhí)行指令集架構(gòu)。微架構(gòu)通常被表示成流程圖,以描述機器內(nèi)部元件的連結(jié)狀況,從一個閘或是暫存器,到算術(shù)邏輯單元(ALU)。圖上分布著資料路徑(可以顯示資料在微架構(gòu)的位置)以及控制路徑(顯示資料該被什么指令所處理)。
每個微架構(gòu)的的元件都被表示成藉數(shù)個邏輯門所建構(gòu)而成的工具。每個邏輯門都被表示成藉晶體管建構(gòu)成的零件。擁有不同微架構(gòu)的機器可能擁有相同的指令集架構(gòu),因此可以執(zhí)行相同的程式。由于半導體科技的進步,新型的處理器可以以較快的速度執(zhí)行相同的指令集架構(gòu)。
微架構(gòu)的概念
Intel 80286微架構(gòu)
在今日,管線資料路徑是微架構(gòu)中最常被使用的資料路徑。這種作法也被普遍的用于微處理器,微控制器,以及數(shù)字信號處理器。管線化的結(jié)構(gòu)允許多個指令在同一時間執(zhí)行,不同的指令在微架構(gòu)不同的位置執(zhí)行。管線分有好幾個不同的階段(stage),這些階段是微架構(gòu)的基礎(chǔ)。這些階段包含擷取指令,指令解碼,執(zhí)行指令,以及將資料寫回。一些結(jié)構(gòu)還包含其他階段,像是對內(nèi)存做存取的動作。管線是微架構(gòu)其中一項主要的工作。執(zhí)行單元也是微架構(gòu)的基本元件。執(zhí)行單元包含算術(shù)邏輯單元(ALU),浮點運算器(FPU),load/store單元,分支預測,以及SIMD。這些單元在處理器內(nèi)進行計算。執(zhí)行單元的數(shù)量,他們的latency(內(nèi)存存取資料的時間)及throughput(將資料存到或是讀取出內(nèi)存的速度)影響微架構(gòu)的效能。
指令周期
所有的中央處理器,微處理器借由以下的步驟來執(zhí)行程式:
讀取指令并將其解碼
找到需要用到的資料以執(zhí)行指令
執(zhí)行指令
將結(jié)果寫回
指令周期將會不斷循環(huán),直到電力用盡。
執(zhí)行速度
上面的步驟看起來簡單,但階層內(nèi)存使這些步驟變得復雜,階層內(nèi)存包含快取,主內(nèi)存,以及非揮發(fā)性的內(nèi)存,例如硬盤(這是指令和資料儲存的地方),總是比處理器處理資料的速度慢。步驟(2)常常導致lengthy(在CPU內(nèi))delay,這種延遲是在資料通過總線時產(chǎn)生。一直以來,一個不變的目標是在同一時間內(nèi)執(zhí)行更多指令,以提升程式執(zhí)行的效率。這導致邏輯和電路設(shè)計變得更復雜。一開始,只有大型電腦和超級電腦使用這種技術(shù),因為這種技術(shù)需要大量的電路。當半導體產(chǎn)業(yè)發(fā)展起來后,這樣的技術(shù)被加裝在單一的半導體芯片上。詳見摩爾定律(集成電路可容納的晶體管數(shù)量,每二年增加一倍)。
指令集的選擇
指令集從過去以來不斷的變化,從一開始的簡單到后來的復雜。最近,load-store結(jié)構(gòu),VLIW以及EPIC是最普遍的指令集。結(jié)構(gòu)處理data parallelism的方法包括SIMD以及向量。一些指令集,例如CISC;多早期的裝置使用"CISC"。
然而,對指令集架構(gòu)的選擇可能會對實作高效能的機器產(chǎn)生大的影響。發(fā)展RISC處理器是一個好的策略,可以將指令給簡化。這樣的指令容易在管線內(nèi)被擷取,解碼與執(zhí)行,由于指令頻繁的被使用,快取便被頻繁的使用,這樣就使內(nèi)存存取的時間降低。
流水線(pipeline)
在目前,能夠最有效的提升效能的方法就是流水線。早期的處理器是等一個指令執(zhí)行完所有步驟后,然后才輪到下一個指令執(zhí)行。大部分的電路在某一個步驟結(jié)束后就處在閑置的狀態(tài),例如,對指令進行解碼的電路在指令進入執(zhí)行階段后就處于閑置狀態(tài)。
流水線化的電路借由允許多個指令在同一時間,在電路上不同的位置進行不同的工作。例如,處理器可以在最后一個指令等待結(jié)果寫回時對另一個指令解碼。這使得處理器在同一時間可以處理四個指令,使處理器的效能增加了四倍。
RISC借由將每個階段分割清楚并讓每個階段都花費一樣的時間執(zhí)行來讓管線變小和變得容易建構(gòu)—每個階段花費1個cycle的時間。處理器使用了有如工廠裝配線的設(shè)計,當指令由一邊進來的同時就有另一個指令從另一邊出去。由于RISC流水線是降低復雜度的設(shè)計,使得流水線核心跟指令快取可以被裝置在同一個芯片內(nèi),這是精簡指令集較為快速的原因。早期的裝置,例如SPARC和MIPS比Intel和Motorola的CISC還快10倍。
與指令集架構(gòu)的關(guān)系
指令集架構(gòu)大致上和處理器的程式設(shè)計模型(programming model)一樣。指令集架構(gòu)包括執(zhí)行模型(execution model),暫存器(Processor register),位址和數(shù)據(jù)格式等。微架構(gòu)包括處理器的組成部分和對指令集架構(gòu)的連接和操作。一個系統(tǒng)的微架構(gòu)通常以描述不同微架構(gòu)組成部分如何互相連接的平面圖代表,而這些微架構(gòu)組成部分可以是簡單的邏輯門(Logic gates),電阻,或是算術(shù)邏輯單元(Arithmetic logic unit ,ALU)等大型元件。這些平面圖通常把數(shù)據(jù)路徑(Data path)和控制路徑(control path)分開。每個組成部分會以示意圖表達他們和執(zhí)行他們的邏輯門之間的連系。
幾種典型的微架構(gòu)
INTEL
Larrabee
P5
P6
NetBurst
Core/Penryn
Bonnell/Saltwell
Nehalem/Westmere
Sandy Bridge/Ivy Bridge
Haswell/Broadwell
Skylake/Skymont
AMD
K5 - AMD的首個原創(chuàng)微架構(gòu)。K5基于Am29000的微架構(gòu),并且添加了一個x86的解碼器。即使這個設(shè)計的原理和Pentium Pro相同,而實際性能更像是Pentium。
K6微架構(gòu)
K6 - K6并非基于K5,而是基于當時已經(jīng)被AMD所收購了的NexGen所設(shè)計的Nx686處理器,K6的針腳兼容Intel Pentium。
K7微架構(gòu)
K7 - 是AMD Athlon和Athlon XP的微架構(gòu)。
K8 AMD的內(nèi)部代號為Hammer或者SledgeHammer。K8的CPU基于K7,而計算機字增加到了64位,添加了一個集成存儲器控制器(integrated memory controller),采用超線程通信結(jié)構(gòu)(HyperTransport communication fabric),二級緩存L2增加到了1MB(1128 KB),增加了SSE指令集。后期的K8增加了SSE3。K8是首個兼容64位Windows的微處理器,在2003年4月22日上市。超線程通信結(jié)構(gòu)(HyperTransport communication fabric)取代了傳統(tǒng)的前端總線(Font-side bus),讓CUP直接和主存(main memory)鏈接,
Dual core K8 - 雙核心的 Athlon 64 X2在K9被宣布取消后,被錯誤地稱為K9。
被取消。
K10微架構(gòu) - 代號為Barcelona ,是AMD系列的第十代微架構(gòu),內(nèi)置四個核心,共享Level 3 Cache第三級緩存,128位浮點單元,AMD-V Nested Paging virtualization和HyperTransport 3.0。
Griffin處理器核心 - Griffin的設(shè)計只是用于移動平臺(AMD mobile platform),應用于Turion 64處理器。Griffin在2008年發(fā)布于Puma平臺(Puma platform英語)。Griffin基于65nm制程的K8版本G(K8 revision G),特別對移動市場的需求使用了能源最優(yōu)化技術(shù)(power optimization technologies)。事實上,Griffin的能源最優(yōu)化技術(shù)超越了其他AMD系列第十代微架構(gòu)。
Bulldozer - 是繼K10之后,使用AMD M-SPACE模塊化設(shè)計方法(modular design methodology)的下一代微架構(gòu)。Bulldozer是為功耗在10W至100W類別的處理器而設(shè)計,應用了XOP(英語), FMA4(英語)和 CVT16(英語)指令集,并且能結(jié)合GPU核心(AMD Fusion)。
Bobcat處理器核心 - Bobcat是AMD Bulldozer能源功耗在1W至10W的版本,這個微處理器核心是一個非常精簡的x86核心。和Bulldozer相同,Bobcat屬于“AMD融合項目”(the AMD Fusion project),能夠和GPU組合使用。
微架構(gòu)的發(fā)展方向
這是一個未完成列表。歡迎您擴充內(nèi)容。
參考文獻
《計算機科學技術(shù)百科全書》(第二版). 作者:張效祥. 出版社:清華大學出版社,2005年. ISBN:7302105944, 9787302105947
參見
AMD CPU微架構(gòu)列表
指令集架構(gòu)
免責聲明:以上內(nèi)容版權(quán)歸原作者所有,如有侵犯您的原創(chuàng)版權(quán)請告知,我們將盡快刪除相關(guān)內(nèi)容。感謝每一位辛勤著寫的作者,感謝每一位的分享。
- 有價值
- 一般般
- 沒價值
{{item.userName}} 舉報
{{item.time}} {{item.replyListShow ? '收起' : '展開'}}評論 {{curReplyId == item.id ? '取消回復' : '回復'}}
{{_reply.userName}} 舉報
{{_reply.time}}