BYsan

 找回密碼
 成為會員
搜索
熱搜: 活動 交友 discuz
查看: 986|回復: 0

CPU的基本知識

[複製鏈接]
發表於 2005-8-16 19:56:25 | 顯示全部樓層 |閱讀模式
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技術。
  
  14、多核心
  
  多核心,也指單晶片多處理器(Chip multiprocessors,簡稱CMP)。CMP是由美國史丹佛大學提出的,其思想是將大規模並行處理器中的SMP(對稱多處理器)集成到同一晶片內,各個處理器並行執行不同的進程。與CMP比較, SMT處理器架構的靈活性比較突出。但是,當半導體工藝進入0.18微米以後,線延時已經超過了門延遲,要求微處理器的設計透過劃分許多規模更小、局部性更好的基本單元架構來進行。相比之下,由於CMP架構已經被劃分成多個處理器核來設計,每個核都比較簡單,有利于優化設計,因此更有發展前途。目前,IBM 的Power 4晶片和Sun的 MAJC5200晶片都採用了CMP架構。多核處理器可以在處理器內部共享緩存,提升緩存利用率,同時簡化多處理器系統設計的複雜度。
  
  2005年下半年,Intel和AMD的新型處理器也將融入CMP架構。新安騰處理器開發代碼為Montecito,採用雙核心設計,擁有最少18MB片內緩存,採取90nm工藝製造,它的設計絕對稱得上是對當今晶片業的挑戰。它的每個單獨的核心都擁有獨立的L1,L2和L3 cache,包含大約10億支晶體管。
  
  15、SMP
  
  SMP(Symmetric Multi-Processing),對稱多處理架構的簡稱,是指在一個計算機上匯集了一組處理器(多CPU),各CPU之間共享內存子系統以及匯流排架構。在這種技術的支持下,一個伺服器系統可以同時營運多個處理器,並共享內存和其他的主機資源。像雙至強,也就是我們所說的二路,這是在對稱處理器系統中最常見的一種(至強MP可以支持到四路,AMD Opteron可以支持1-8路)。也有少數是16路的。但是一般來講,SMP架構的機器可擴展性較差,很難做到100個以上多處理器,常規的一般是8個到16個,不過這對于多數的用戶來說已經夠用了。在高性能伺服器和工作站級主板架構中最為常見,像UNIX伺服器可支持最多256個CPU的系統。
  
  構建一套SMP系統的必要條件是︰支持SMP的硬體包括主板和CPU;支持SMP的系統平台,再就是支持SMP的應用軟體。
  
  為了能夠使得SMP系統發揮高效的性能,作業系統必須支持SMP系統,如WINNT、LINUX、以及UNIX等等32位作業系統。即能夠進行多任務和多線程處理。多任務是指作業系統能夠在同一時間讓不同的CPU完成不同的任務;多線程是指作業系統能夠使得不同的CPU並行的完成同一個任務。
  
  要組建SMP系統,對所選的CPU有很高的要求,首先、CPU內部必須內置APIC(Advanced Programmable Interrupt Controllers)單元。Intel 多處理規範的核心就是高級可編程中斷控制單元(Advanced Programmable Interrupt Controllers--APICs)的使用;再次,相同的產品型號,同樣類型的CPU核心,完全相同的營運頻率;最後,儘可能保持相同的產品序列編號,因為兩個生產批次的CPU作為雙處理器營運的時候,有可能會發生一顆CPU負擔過高,而另一顆負擔很少的情況,無法發揮最大性能,更糟糕的是可能導致當機。
  
  16、NUMA技術
  
  NUMA即非一致訪問分佈共享存儲技術,它是由若干透過高速專用網路連接起來的獨立節點構成的系統,各個節點可以是單個的CPU或是SMP系統。在NUMA中,Cache 的一致性有多種解決方案,需要作業系統和特殊軟體的支持。圖2中是Sequent公司NUMA系統的例子。這裡有3個SMP模塊用高速專用網路聯起來,組成一個節點,每個節點可以有12個CPU。像Sequent的系統最多可以達到64個CPU甚至256個CPU。顯然,這是在SMP的基礎上,再用NUMA的技術加以擴展,是這兩種技術的結合。
  
  17、亂序執行技術
  
  亂序執行(out-of-orderexecution),是指CPU允許將多條指令不按程式規定的順序分開發送給各相應電路單元處理的技術。這樣將根據個電路單元的狀態和各指令能否提前執行的具體情況分析后,將能提前執行的指令立即發送給相應電路單元執行,在這期間不按規定順序執行指令,然後由重新排列單元將各執行單元結果按指令順序重新排列。採用亂序執行技術的目的是為了使CPU內部電路滿負荷運轉並相應提升了CPU的營運程式的速度。分枝技術︰(branch)指令進行運算時需要等待結果,一般無條件分枝只需要按指令順序執行,而條件分枝必須根據處理后的結果,再決定是否按原先順序進行。
  
  18、CPU內部的內存控制單元
  
  許多應用程式擁有更為複雜的讀取模式(幾乎是隨機地,特別是當cache hit不可預測的時候),並且沒有有效地利用帶寬。典型的這類應用程式就是業務處理軟體,即使擁有如亂序執行(out of order execution)這樣的CPU特性,也會受內存延遲的限制。這樣CPU必須得等到運算所需數據被除數裝載完成才能執行指令(無論這些數據來自CPU cache還是主內存系統)。當前低段系統的內存延遲大約是120-150ns,而CPU速度則達到了3GHz以上,一次單獨的內存請求可能會浪費200-300次CPU循環。即使在緩存命中率(cache hit rate)達到99%的情況下,CPU也可能會花50%的時間來等待內存請求的結束- 比如因為內存延遲的緣故。
  
  你可以看到Opteron整合的內存控制單元,它的延遲,與晶片組支持雙通道DDR內存控制單元的延遲相比來說,是要低很多的。英特爾也按照計畫的那樣在處理器內部整合內存控制單元,這樣導致北橋晶片將變得不那么重要。但改變了處理器訪問主存的模式,有助于提升帶寬、降低內存延時和提升處理器性能。
您需要登錄後才可以回帖 登錄 | 成為會員

本版積分規則

小黑屋|手機版|Archiver|BYsan

GMT+8, 2024-5-3 09:21 AM , Processed in 0.041937 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回復 返回頂部 返回列表