返回列表 回復 發帖

CPU知識全面學習-2

10.指令集
  (1)CISC指令集
  CISC指令集,也稱為複雜指令集,英文名是CISC,(Complex
Instruction Set
Computer的縮寫)。在CISC微處理器中,程式的各條指令是按順序串行執行的,每條指令中的各個**作也是按順序串行執行的。順序執行的優點是控制簡單,但電腦各部分的利用率不高,執行速度慢。其實它是英特爾生產的x86系列(也就是IA-32架構)CPU及其相容CPU,如AMD、VIA的。即使是現在新起的X86-64(也被成AMD64)都是屬於CISC的範疇。
  要知道什麼是指令集還要從當今的X86架構的CPU說起。X86指令集是Intel為其第一塊16位CPU(i8086)專門開發的,IBM1981
年推出的世界第一臺PC機中的CPU—i8088(i8086簡化版)使用的也是X86指令,同時電腦中為提高浮點數據處理能力而增加了X87晶片,以後就將X86指令集和X87指令集統稱為X86指令集。
雖然隨著CPU技術的不斷發展,Intel陸續研製出更新型的i80386、i80486直到過去的PII至強、PIII至強、
Pentium 3,最後到今天的Pentium
4系列、至強(不包括至強Nocona),但為了保證電腦能繼續運行以往開發的各類應用程式以保護和繼承豐富的軟體資源,所以Intel公司所生產的所有
CPU仍然繼續使用X86指令集,所以它的CPU仍屬於X86系列。由於Intel X86系列及其相容CPU(如AMD Athlon
MP、)都使用X86指令集,所以就形成了今天龐大的X86系列及相容CPU陣容。x86CPU目前主要有intel的伺服器CPU和AMD的伺服器
CPU兩類。
  (2)RISC指令集
  RISC是英文“Reduced Instruction Set Computing ”
的縮寫,中文意思是“精簡指令集”。它是在CISC指令系統基礎上發展起來的,有人對CISC機進行測試表明,各種指令的使用頻度相當懸殊,最常使用的是一些比較簡單的指令,它們僅占指令總數的20%,但在程式中出現的頻度卻占80%。複雜的指令系統必然增加微處理器的複雜性,使處理器的研製時間長,成本高。並且複雜指令需要複雜的**作,必然會降低電腦的速度。基於上述原因,20世紀80年代RISC型CPU誕生了,相對於CISC型CPU
,RISC型CPU不僅精簡了指令系統,還採用了一種叫做“超標量和超流水線結構”,大大增加了並行處理能力。RISC指令集是高性能CPU的發展方向。它與傳統的CISC(複雜指令集)相對。相比而言,RISC的指令格式統一,種類比較少,尋址方式也比複雜指令集少。當然處理速度就提高很多了。目前在中高檔伺服器中普遍採用這一指令系統的CPU,特別是高檔伺服器全都採用RISC指令系統的CPU。RISC指令系統更加適合高檔伺服器的**作系統
UNIX,現在Linux也屬於類似UNIX的**作系統。RISC型CPU與Intel和AMD的CPU在軟體和硬體上都不相容。
  目前,在中高檔伺服器中採用RISC指令的CPU主要有以下幾類:PowerPC處理器、SPARC處理器、PA-RISC處理器、MIPS處理器、Alpha處理器。
  (3)IA-64
  EPIC(Explicitly
Parallel Instruction
Computers,精確並行指令電腦)是否是RISC和CISC體系的繼承者的爭論已經有很多,單以EPIC體系來說,它更像Intel的處理器邁向
RISC體系的重要步驟。從理論上說,EPIC體系設計的CPU,在相同的主機配置下,處理Windows的應用軟體比基於Unix下的應用軟體要好得多。
  Intel採用EPIC技術的伺服器CPU是安騰Itanium(開發代號即Merced)。它是64位處理器,也是IA-64系列中的第一款。微軟也已開發了代號為Win64的**作系統,在軟體上加以支持。在Intel採用了X86指令集之後,它又轉而尋求更先進的64-bit微處理器,Intel
這樣做的原因是,它們想擺脫容量巨大的x86架構,從而引入精力充沛而又功能強大的指令集,於是採用EPIC指令集的IA-64架構便誕生了。IA-64
在很多方面來說,都比x86有了長足的進步。突破了傳統IA32架構的許多**,在數據的處理能力,系統的穩定性、安全性、可用性、可觀理性等方面獲得了突破性的提高。
  IA-64微處理器最大的缺陷是它們缺乏與x86的相容,而Intel為了IA-64處理器能夠更好地運行兩個朝代的軟體,它在IA-64處理器上(Itanium、Itanium2
……)引入了x86-to-IA-64的解碼器,這樣就能夠把x86指令翻譯為IA-64指令。這個解碼器並不是最有效率的解碼器,也不是運行x86代碼的最好途徑(最好的途徑是直接在x86處理器上運行x86代碼),因此Itanium
和Itanium2在運行x86應用程式時候的性能非常糟糕。這也成為X86-64產生的根本原因。
  (4)X86-64 (AMD64 /
EM64T)
AMD公司設計,可以在同一時間內處理64位的整數運算,並相容於X86-32架構。其中支持64位邏輯定址,同時提供轉換為32位定址選項;但數據**作指令默認為32位和8位,提供轉換成64位和16位的選項;支持常規用途寄存器,如果是32位運算**作,就要將結果擴展成完整的64位。這樣,指令中有“直接執行”
和“轉換執行”的區別,其指令字段是8位或32位,可以避免字段過長。  
  x86-64(也叫AMD64)的產生也並非空穴來風,x86處理器的32bit尋址空間**在4GB記憶體,而IA-64的處理器又不能相容x86。
AMD充分考慮顧客的需求,加強x86指令集的功能,使這套指令集可同時支持64位的運算模式,因此AMD把它們的結構稱之為x86-64。在技術上
AMD在x86-64架構中為了進行64位運算,AMD為其引入了新增了R8-R15通用寄存器作為原有X86處理器寄存器的擴充,但在而在32位環境下並不完全使用到這些寄存器。原來的寄存器諸如EAX、EBX也由32位擴張至64位。在SSE單元中新加入了8個新寄存器以提供對SSE2的支持。寄存器數量的增加將帶來性能的提升。與此同時,為了同時支持32和64位代碼及寄存器,x86-64架構允許處理器工作在以下兩種模式:Long
Mode(長模式)和Legacy Mode(遺傳模式),Long模式又分為兩種子模式(64bit模式和Compatibility
mode相容模式)。該標準已經被引進在AMD伺服器處理器中的Opteron處理器  
  而今年也推出了支持64位的EM64T技術,再還沒被正式命為EM64T之前是IA32E,這是英特爾64位擴展技術的名字,用來區別X86指令集。
Intel的EM64T支持64位sub-mode,和AMD的X86-64技術類似,採用64位的線性平面尋址,加入8個新的通用寄存器(GPRs),還增加8個寄存器支持SSE指令。與AMD相類似,Intel的64位技術將相容IA32和IA32E,只有在運行64位**作系統下的時候,才將會採用
IA32E。IA32E將由2個sub-mode組成:64位sub-mode和32位sub-mode,同AMD64一樣是向下相容的。Intel的
EM64T將完全相容AMD的X86-64技術。現在Nocona處理器已經加入了一些64位技術,Intel的Pentium
4E處理器也支持64位技術。
  應該說,這兩者都是相容x86指令集的64位微處理器架構,但EM64T與AMD64還是有一些不一樣的地方,AMD64處理器中的NX位在Intel的處理器中將沒有提供。
  11.超流水線與超標量
  在解釋超流水線與超標量前,先瞭解流水線(pipeline)。流水線是Intel首次在486晶片中開始使用的。流水線的工作方式就象工業生產上的裝配流水線。在CPU中由5—6個不同功能的電路單元組成一條指令處理流水線,然後將一條X86指令分成5—6步後再由這些電路單元分別執行,這樣就能實現在一個CPU時鐘週期完成一條指令,因此提高CPU的運算速度。經典奔騰每條整數流水線都分為四級流水,即指令預取、解碼、執行、寫回結果,浮點流水又分為八級流水。
  超標量是通過內置多條流水線來同時執行多個處理器,其實質是以空間換取時間。而超流水線是通過細化流水、提高主頻,使得在一個機器週期內完成一個甚至多個**作,其實質是以時間換取空間。例如Pentium
4的流水線就長達20級。將流水線設計的步(級)越長,其完成一條指令的速度越快,因此才能適應工作主頻更高的CPU。但是流水線過長也帶來了一定副作用,很可能會出現主頻較高的CPU實際運算速度較低的現象,Intel的奔騰4就出現了這種情況,雖然它的主頻可以高達1.4G以上,但其運算性能卻遠遠比不上AMD
1.2G的速龍甚至奔騰III。
  12.封裝形式
CPU封裝是採用特定的材料將CPU晶片或CPU模組固化在其中以防損壞的保護措施,一般必須在封裝後CPU才能交付用戶使用。CPU的封裝方式取決於 CPU安裝形式和器件集成設計,從大的分類來看通常採用Socket插座進行安裝的CPU使用PGA(柵格陣列)方式封裝,而採用Slot
x槽安裝的CPU則全部採用SEC(單邊接插盒)的形式封裝。現在還有PLGA(Plastic Land Grid Array)、OLGA(Organic Land
Grid
Array)等封裝技術。由於市場競爭**益激烈,目前CPU封裝技術的發展方向以節約成本為主。
  13、多線程 
  同時多線程Simultaneous
multithreading,簡稱SMT。SMT可通過複製處理器上的結構狀態,讓同一個處理器上的多個線程同步執行並共用處理器的執行資源,可最大限度地實現寬發射、亂序的超標量處理,提高處理器運算部件的利用率,緩和由於數據相關或Cache未命中帶來的訪問記憶體延時。當沒有多個線程可用時,SMT
處理器幾乎和傳統的寬發射超標量處理器一樣。SMT最具吸引力的是只需小規模改變處理器核心的設計,幾乎不用增加額外的成本就可以顯著地提升效能。多線程技術則可以為高速的運算核心準備更多的待處理數據,減少運算核心的閒置時間。這對於桌面低端系統來說無疑十分具有吸引力。Intel從3.06GHz
Pentium 4開始,所有處理器都將支持SMT技術。
返回列表