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