綜合整理的CPU相關理論知識大全(2)
11.超流水線與超標量
在解釋超流水線與超標量前,先了解流水線(pipeline)。流水線是Intel首次在486芯片中開始使用的。流水線的工作方式就象工業(yè)生產上的裝配流水線。在CPU中由5—6個不同功能的電路單元組成一條指令處理流水線,然后將一條X86指令分成5—6步后再由這些電路單元分別執(zhí)行,這樣就能實現在一個CPU時鐘周期完成一條指令,因此提高CPU的運算速度。經典奔騰每條整數流水線都分為四級流水,即指令預取、譯碼、執(zhí)行、寫回結果,浮點流水又分為八級流水。
超標量是通過內置多條流水線來同時執(zhí)行多個處理器,其實質是以空間換取時間。而超流水線是通過細化流水、提高主頻,使得在一個機器周期內完成一個甚至多個操作,其實質是以時間換取空間。例如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(單邊接插盒)的形式封裝?,F在還有PLGA(Plastic Land Grid Array)、OLGA(Organic Land Grid Array)等封裝技術。由于市場競爭日益激烈,
目前CPU封裝技術的發(fā)展方向以節(jié)約成本為主。
13、多線程
同時多線程 Simultaneous multithreading,簡稱SMT。SMT可通過復制處理器上的結構狀態(tài),讓同一個處理器上的多個線程同步執(zhí)行并共享處理器的執(zhí)行資源,可最大限度地實現寬發(fā)射、亂序的超標量處理,提高處理器運算部件的利用率,緩和由于數據相關或Cache未命中帶來的訪問內存延時。當沒有多個線程可用時,SMT 處理器幾乎和傳統的寬發(fā)射超標量處理器一樣。SMT最具吸引力的是只需小規(guī)模改變處理器核心的設計,幾乎不用增加額外的成本就可以顯著地提升效能。多線程技術則可以為高速的運算核心準備更多的待處理數據,減少運算核心的閑置時間。這對于桌面低端系統來說無疑十分具有吸引力。Intel從3.06GHz Pentium 4開始,所有處理器都將支持SMT技術。
14、多核心
多核心,也指單芯片多處理器(Chip multiprocessors,簡稱CMP)。CMP是由美國斯坦福大學提出的,其思想是將大規(guī)模并行處理器中的SMP(對稱多處理器)集成到同一芯片內,各個處理器并行執(zhí)行不同的進程。與CMP比較, SMT處理器結構的靈活性比較突出。但是,當半導體工藝進入0.18微米以后,線延時已經超過了門延遲要求微處理器的設計通過劃分許多規(guī)模更小、局部性更好的基本單元結構來進行。相比之下,由于CMP結構已經被劃分成多個處理器核來設計,每個核都比較簡單,有利于優(yōu)化設計,因此更有發(fā)展前途。目前,IBM 的Power 4芯片和Sun的 MAJC5200芯片都采用了CMP結構。多核處理器可以在處理器內部共享緩存,提高緩存利用率,同時簡化多處理器系統設計的復雜度。
2005年下半年,Intel和AMD的新型處理器也將融入CMP結構。新安騰處理器開發(fā)代碼為Montecito,采用雙核心設計,擁有最少18MB 片內緩存,采取90nm工藝制造,它的設計絕對稱得上是對當今芯片業(yè)的挑戰(zhàn)。它的每個單獨的核心都擁有獨立的L1,L2和L3 cache,包含大約10億支晶體管。
15、SMP
SMP(Symmetric Multi-Processing),對稱多處理結構的簡稱,是指在一個計算機上匯集了一組處理器(多CPU),各CPU之間共享內存子系統以及總線結構。在這種技術的支持下,一個服務器系統可以同時運行多個處理器,并共享內存和其他的主機資源。像雙至強,也就是我們所說的二路,這是在對稱處理器系統中最常見的一種(至強MP可以支持到四路,AMD Opteron可以支持1-8路)。也有少數是16路的。但是一般來講
,SMP結構的機器可擴展性較差,很難做到100個以上多處理器,常規(guī)的一般是8個到16個,不過這對于多數的用戶來說已經夠用了。在高性能服務器和工作站級主板架構中最為常見,像UNIX服務器可支持最多256個CPU的系統。
構建一套SMP系統的必要條件是:支持SMP的硬件包括主板和CPU;支持SMP的系統平臺,再就是支持SMP的應用軟件。
為了能夠使得SMP系統發(fā)揮高效的性能,操作系統必須支持SMP系統,如WINNT、LINUX、以及UNIX等等32位操作系統。即能夠進行多任務和多線程處理。多任務是指操作系統能夠在同一時間讓不同的CPU完成不同的任務;多線程是指操作系統能夠使得不同的CPU并行的完成同一個任務。
要組建SMP系統,對所選的CPU有很高的要求,首先、CPU內部必須內置APIC(Advanced Programmable Interrupt Controllers)單元。Intel 多處理規(guī)范的核心就是高級可編程中斷控制器(Advanced Programmable Interrupt Controllers--APICs)的使用;再次,相同的產品型號,同樣類型的CPU核心,完全相同的運行頻率;最后,盡可能保持相同的產品序列編號,因為兩個生產批次的CPU作為雙處理器運行的時候,有可能會發(fā)生一顆CPU負擔過高,而另一顆負擔很少的情況,無法發(fā)揮最大性能,更糟糕的是可能導致死機。
16、NUMA技術
NUMA即非一致訪問分布共享存儲技術,它是由若干通過高速專用網絡連接起來的獨立節(jié)點構成的系統,各個節(jié)點可以是單個的CPU或是 SMP系統。在NUMA中,Cache 的一致性有多種解決方案,需要操作系統和特殊軟件的支持。圖2中是Sequent公司NUMA系統的例子。這里有3個SMP模塊用高速專用網絡聯起來,組成一個節(jié)點,每個節(jié)點可以有12個CPU。像Sequent的系統最多可以達到64個CPU甚至256個CPU。顯然,這是在SMP的基礎上,再用 NUMA的技術加以擴展,是這兩種技術的結合。
17、亂序執(zhí)行技術
亂序執(zhí)行(out-of- orderexecution),是指CPU允許將多條指令不按程序規(guī)定的順序分開發(fā)送給各相應電路單元處理的技術。這樣將根據個電路單元的狀態(tài)和各指令能否提前執(zhí)行的具體情況分析后,將能提前執(zhí)行的指令立即發(fā)送給相應電路單元執(zhí)行,在這期間不按規(guī)定順序執(zhí)行指令,然后由重新排列單元將各執(zhí)行單元結果按指令順序重新排列。采用亂序執(zhí)行技術的目的是為了使CPU內部電路滿負荷運轉并相應提高了CPU的運行程序的速度。分枝技術:(branch)指令進行運算時需要等待結果,一般無條
件分枝只需要按指令順序執(zhí)行,而條件分枝必須根據處理后的結果,再決定是否按原先順序進行。
18、CPU內部的內存控制器
許多應用程序擁有更為復雜的讀取模式(幾乎是隨機地,特別是當cache hit不可預測的時候),并且沒有有效地利用帶寬。典型的這類應用程序就是業(yè)務處理軟件,即使擁有如亂序執(zhí)行(out of order execution)這樣的CPU特性,也會受內存延遲的限制。這樣CPU必須得等到運算所需數據被除數裝載完成才能執(zhí)行指令(無論這些數據來自CPU cache還是主內存系統)。當前低段系統的內存延遲大約是120-150ns,而CPU速度則達到了3GHz以上,一次單獨的內存請求可能會浪費 200-300次CPU循環(huán)。即使在緩存命中率(cache hit rate)達到99%的情況下,CPU也可能會花50%的時間來等待內存請求的結束- 比如因為內存延遲的緣故。
你可以看到 Opteron整合的內存控制器,它的延遲,與芯片組支持雙通道DDR內存控制器的延遲相比來說,是要低很多的。英特爾也按照計劃的那樣在處理器內部整合內存控制器,這樣導致北橋芯片將變得不那么重要。但改變了處理器訪問主存的方式,有助于提高帶寬、降低內存延時和提升處理器性能。