當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > Linux閱碼場(chǎng)
[導(dǎo)讀]?作者簡(jiǎn)介甄建勇,高級(jí)架構(gòu)師(某國(guó)際大廠),十年以上半導(dǎo)體從業(yè)經(jīng)驗(yàn)。主要研究領(lǐng)域:CPU/GPU/NPU架構(gòu)與微架構(gòu)設(shè)計(jì)。感興趣領(lǐng)域:經(jīng)濟(jì)學(xué)、心理學(xué)、哲學(xué)。?并行技術(shù)在計(jì)算機(jī)體系結(jié)構(gòu)的發(fā)展中,并行技術(shù)無(wú)疑是濃墨重彩的一筆。正是采用的各種各樣的并行技術(shù),才使計(jì)算機(jī)的性能得到了翻天覆...

作者簡(jiǎn)介


甄建勇,高級(jí)架構(gòu)師(某國(guó)際大廠),十年以上半導(dǎo)體從業(yè)經(jīng)驗(yàn)。主要研究領(lǐng)域:CPU/GPU/NPU架構(gòu)與微架構(gòu)設(shè)計(jì)。感興趣領(lǐng)域:經(jīng)濟(jì)學(xué)、心理學(xué)、哲學(xué)。




并行技術(shù)



計(jì)算機(jī)體系結(jié)構(gòu)的發(fā)展中,并行技術(shù)無(wú)疑是濃墨重彩的一筆。正是采用的各種各樣的并行技術(shù),才使計(jì)算機(jī)的性能得到了翻天覆地的變化,本小節(jié)就介紹一下計(jì)算機(jī)體系結(jié)構(gòu)設(shè)計(jì)中常用的并行技術(shù)。

流水線


并行技術(shù),大體可分為指令級(jí)并行,數(shù)據(jù)級(jí)并行,任務(wù)級(jí)并行三個(gè)層次。而流水線技術(shù)就是指令級(jí)并行技術(shù)中最早也是最成熟的技術(shù)。流水線,這個(gè)概念最早并不是出現(xiàn)在計(jì)算機(jī)領(lǐng)域,而是在陶瓷工廠里。1769年,英國(guó)人喬賽亞·韋奇伍德開辦埃特魯利亞陶瓷工廠,在場(chǎng)內(nèi)實(shí)行精細(xì)的勞動(dòng)分工,他把原來(lái)由一個(gè)人從頭到尾完成的制陶流程分成幾十道專門工序,分別由專人完成。這樣一來(lái),原來(lái)意義上的“制陶工”就不復(fù)存在了,存在的只是挖泥工、運(yùn)泥工、扮土工、制坯工等等制陶工匠變成了制陶工場(chǎng)的工人,他們必須按固定的工作節(jié)奏勞動(dòng),服從統(tǒng)一的勞動(dòng)管理。根據(jù)上述資料可以明確看出韋奇伍德的這種工作方法已經(jīng)完全可以定義成為“流水線”。另一說(shuō)法是亨利·福特發(fā)明了流水線裝配工藝,這一說(shuō)法顯然不夠嚴(yán)謹(jǐn),但亨利·福特的確在流水線在工業(yè)生產(chǎn)中的應(yīng)用發(fā)揮了巨大作用。計(jì)算機(jī)流水線是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í)或五級(jí),即指令預(yù)取、譯碼、執(zhí)行(訪存)、寫回結(jié)果。浮點(diǎn)流水線則一般會(huì)分為八級(jí)。計(jì)算機(jī)流水線(Pipeline)技術(shù)是廣泛應(yīng)用于微處理芯片(CPU)中的一項(xiàng)關(guān)鍵技術(shù),計(jì)算機(jī)流水線技術(shù)指的是對(duì)CPU內(nèi)部的各條指令的執(zhí)行方式的一種形容,要了解它,就必須先了解指令及其執(zhí)行過(guò)程。
(1)計(jì)算機(jī)指令
計(jì)算機(jī)指令,就是告訴CPU要做什么事的一組特定的二進(jìn)制集合。如果我們將CPU比喻成一個(gè)加工廠,那么,一條指令就好比一張訂單,它引發(fā)了CPU加工廠的一系列動(dòng)作,最后分別得到了運(yùn)算結(jié)果和產(chǎn)品。那么,它們到底是怎樣工作的呢?首先,要有一個(gè)接收訂單的部門——CPU的取指令機(jī)構(gòu);其次,還要有完成訂單的車間——CPU的執(zhí)行指令機(jī)構(gòu)。在工廠中,一張訂單上的產(chǎn)品被分成了許多道工序,而指令亦在CPU中轉(zhuǎn)換成了許多條對(duì)應(yīng)的微操作,依次完成它們,就執(zhí)行完了整條指令。
(2)執(zhí)行指令
在低檔的CPU中,指令的執(zhí)行是串行的,簡(jiǎn)單地說(shuō),就是執(zhí)行完了一條指令后、再執(zhí)行下一條指令,好比我們上面提到的那個(gè)加工廠在創(chuàng)業(yè)之初,只有一間小車間及孤軍奮戰(zhàn)的老板,那么,當(dāng)他接到一張訂單之后,他必然忙于完成第1張訂單,而沒(méi)有能力去接第2張訂單。這樣接訂單→完成訂單→接訂單→……取指令→執(zhí)行指令→取指令→……是一個(gè)串行的過(guò)程。后來(lái),老板發(fā)現(xiàn)接受訂單不費(fèi)太多時(shí)間,而且他還有了一個(gè)幫工,他們可以相互獨(dú)立地工作,這樣,老板就在完成上張訂單產(chǎn)品的同時(shí),接受下一張訂單的訂貨。這表現(xiàn)在CPU上就是取指令機(jī)構(gòu)與執(zhí)行指令機(jī)構(gòu)的分開,這樣從CPU整體來(lái)看,CPU在執(zhí)行上條指令的同時(shí),又在并行地取下條指令。這在CPU技術(shù)上是一個(gè)質(zhì)的飛躍,它使得CPU從串行工作變?yōu)椴⑿泄ぷ鳎瑥亩哂辛肆魉€的雛型。CPU在完成了上面這一步之后,剩下的就是如何提高并行處理能力的問(wèn)題了,CPU的設(shè)計(jì)者們從加工廠的裝配線得到啟發(fā),將一條指令的執(zhí)行分解成了許多各不相同的多個(gè)工序-微指令,從而極大地簡(jiǎn)化了指令的復(fù)雜度,簡(jiǎn)化了邏輯設(shè)計(jì),提高了速度。在具有流水線技術(shù)的CPU中,上條指令剛執(zhí)行完第一道“工序”,馬上第二條指令就加入了流水線中,開始執(zhí)行。很明顯,這種流水線技術(shù)要求有多個(gè)執(zhí)行單元,這在X86芯片中均得到了實(shí)現(xiàn)。通過(guò)上面的介紹,我們已經(jīng)了解到什么是流水線技術(shù),這雖不是一種創(chuàng)新,但在技術(shù)的實(shí)現(xiàn)上則是一大難關(guān),是CPU設(shè)計(jì)者對(duì)計(jì)算機(jī)發(fā)展的一大貢獻(xiàn)。除了剛剛介紹的流水線,后來(lái)還出現(xiàn)了流水線的升級(jí)版-超流水線。那么,超流水線又是怎么回事呢?超流水線(Super Pipeline)在本質(zhì)上仍為一種流水線技術(shù),但它做了以下的改進(jìn)。A.流水線條數(shù)從奔騰的兩條增至三條,還有十一個(gè)獨(dú)立的執(zhí)行單元并行支持。B.在執(zhí)行中采取了無(wú)序執(zhí)行(out-of-orderprocessing)技術(shù)。即當(dāng)某條指令需要一些數(shù)據(jù)而未能立即執(zhí)行完畢時(shí),它將被剔出流水線并等待數(shù)據(jù),CPU則馬上執(zhí)行下條指令,就好比在裝配線上發(fā)現(xiàn)某件產(chǎn)品不太合格,而被淘汰,等待返工一個(gè)道理。這樣,可以防止一條指令不能執(zhí)行而影響了整個(gè)流水線的效率。C.將指令劃分成了更細(xì)的階段,從而使邏輯設(shè)計(jì)、工序等等更為簡(jiǎn)化,提高了速度。在486芯片中,一條指令一般被劃分為五個(gè)標(biāo)準(zhǔn)的部分,奔騰亦是如此。而在P6中,由于采用了近似于RISC的技術(shù),一條指令被劃分成了創(chuàng)紀(jì)錄的十四個(gè)階段。這極大地提高了流水線的速度。

亂序


一切藝術(shù)都來(lái)源于生活,計(jì)算機(jī)體系結(jié)構(gòu)也不例外。所以,我們就舉一個(gè)例子來(lái)說(shuō)明亂序執(zhí)行的產(chǎn)生原因和過(guò)程。在生活中,我們經(jīng)常遇到這樣的事情。在餐廳吃早點(diǎn)時(shí),會(huì)排很長(zhǎng)的隊(duì),有的人買豆?jié){,有的人買米粥。如果豆?jié){是現(xiàn)成的還好,如果是“現(xiàn)磨豆?jié){”,如果嚴(yán)格采用上面的流水線技術(shù),那就麻煩了,明明有很多人根本就不買“現(xiàn)磨豆?jié){”,也必須要等前面買的人買完才行。很顯然,這種流水線就顯得很愚笨,能不能讓排在后面的不買“現(xiàn)磨豆?jié){”的人先買別的呢?如果允許,“亂序”就產(chǎn)生了。對(duì)于CPU也是一樣,如果把排隊(duì)買早點(diǎn)的人比作一條一條的指令,把買米粥的人比作加法指令(單周期),把買“現(xiàn)磨豆?jié){”的人比作乘法指令或者更復(fù)雜的指令(多周期)。如果這兩條指令不相關(guān),那么完全可以讓排在后面的加法指令先執(zhí)行,以提高性能。

向量機(jī)SIMD


SIMD(SingleInstruction Multiple Data,單指令多數(shù)據(jù)流)是指,采用這種架構(gòu)而設(shè)計(jì)的計(jì)算機(jī),其指令能夠復(fù)制多個(gè)操作數(shù),并把這些操作數(shù)打包到大型寄存器中,各個(gè)執(zhí)行單元以同步方式,在同一時(shí)間內(nèi)執(zhí)行同一條指令。SIMD在性能上有其特有的優(yōu)勢(shì)。以加法指令為例,單指令單數(shù)據(jù)(SISD)的CPU對(duì)加法指令譯碼后,執(zhí)行部件先訪問(wèn)內(nèi)存,取得第一個(gè)操作數(shù);之后再一次訪問(wèn)內(nèi)存,取得第二個(gè)操作數(shù);隨后才能進(jìn)行求和運(yùn)算。而在SIMD型的CPU中,指令譯碼后幾個(gè)執(zhí)行部件同時(shí)訪問(wèn)內(nèi)存,一次性獲得所有操作數(shù)進(jìn)行運(yùn)算。這個(gè)特點(diǎn)使SIMD特別適合于多媒體應(yīng)用等數(shù)據(jù)密集型運(yùn)算。

同時(shí)多線程


SMT(同時(shí)多線程)技術(shù)是一種在多流出、動(dòng)態(tài)調(diào)度的處理器上同時(shí)開發(fā)線程級(jí)并行和指令級(jí)并行的技術(shù)。SMT的出現(xiàn)是有其背景的。首先,在微處理器中開發(fā)的指令級(jí)并行不斷提高,進(jìn)一步開發(fā)出更多的ILP越來(lái)越難。其次,在有些程序中可能開發(fā)ILP本來(lái)就很難。還有,程序中可能有很多自然存在的更高一級(jí)的并行(在線事務(wù)處理系統(tǒng)、科學(xué)計(jì)算)。有了SMT的出現(xiàn)背景,要實(shí)現(xiàn)多線程還要有關(guān)鍵原理性基礎(chǔ)。線程切換只需要幾個(gè)時(shí)鐘周期,最快可以每個(gè)時(shí)鐘周期切換一次。而進(jìn)程的切換一般需要成百上千個(gè)處理器時(shí)鐘。現(xiàn)代多流出處理器通常含有多個(gè)并行的功能單元,而單個(gè)線程不能有效利用這些功能單元。通過(guò)寄存器重命名和動(dòng)態(tài)調(diào)度機(jī)制,來(lái)自各個(gè)獨(dú)立線程的多條指令可以同時(shí)流出,而不用考慮它們之間的相互依賴關(guān)系,其相互依賴關(guān)系通過(guò)動(dòng)態(tài)調(diào)度機(jī)制得以解決。SMT一般可分為兩類,細(xì)粒度多線程和粗粒度多線程細(xì)粒度多線程的特點(diǎn)是,在沒(méi)條指令之間都能進(jìn)行線程的切換,從而使多個(gè)線程可以交替執(zhí)行。通常以時(shí)間片輪轉(zhuǎn)的方法實(shí)現(xiàn)這樣的交替執(zhí)行,輪轉(zhuǎn)中跳過(guò)處于停頓的線程。CPU在每個(gè)時(shí)鐘周期都能進(jìn)行線程的切換。優(yōu)點(diǎn)是,能夠隱藏長(zhǎng)時(shí)間和段時(shí)間停頓帶來(lái)的損失。缺點(diǎn)是,減慢了每個(gè)獨(dú)立線程的執(zhí)行。粗粒度多線程的特點(diǎn)是,切換至發(fā)生在時(shí)間較長(zhǎng)的停頓出現(xiàn)時(shí)(如:第二級(jí)Cache失效)。優(yōu)點(diǎn)是,減少了切換次數(shù),也不會(huì)降低單個(gè)線程的執(zhí)行速度。缺點(diǎn)是,減少吞吐率的能力有限,特別是對(duì)于較短的停頓來(lái)說(shuō)更是如此。任何事物都具有兩面性,SMT在提高性能的同時(shí)也會(huì)帶來(lái)一些問(wèn)題。對(duì)于粗粒度多線程,其流水線建立時(shí)間的開銷較大。粗粒度多線程的CPU只執(zhí)行單個(gè)線程的指令,因此當(dāng)發(fā)生停頓時(shí),流水線必須排空或暫停。停頓后切換的新的線程在第一條指令執(zhí)行完畢之前必須先填滿整個(gè)流水線。此外,SMT也面臨一些挑戰(zhàn),首先,保存多線程的現(xiàn)場(chǎng)需要設(shè)置更大的寄存器組,其次,SMT技術(shù)的采用不能影響時(shí)鐘周期,特別是在關(guān)鍵路徑上。SMT還需要保證由于并發(fā)執(zhí)行多個(gè)線程帶來(lái)的Cache沖突和TLB沖突不會(huì)導(dǎo)致明顯的性能下降。

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)超過(guò)了門延遲,要求微處理器的設(shè)計(jì)通過(guò)劃分許多規(guī)模更小、局部性更好的基本單元結(jié)構(gòu)來(lái)進(jìn)行。相比之下,由于CMP結(jié)構(gòu)已經(jīng)被劃分成多個(gè)處理器核來(lái)設(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ù)雜度。未來(lái)的主流應(yīng)用需要處理器具備同時(shí)執(zhí)行更多條指令的能力,但是從單一線程中已經(jīng)不太可能提取更多的并行性,主要有以下兩個(gè)方面的原因:一是不斷增加的芯片面積提高了生產(chǎn)成本;二是設(shè)計(jì)和驗(yàn)證所花費(fèi)的時(shí)間變得更長(zhǎng)。在處理器結(jié)構(gòu)上,更復(fù)雜化的設(shè)計(jì)也只能得到有限的性能提高。對(duì)單一控制線程的依賴限制了多數(shù)應(yīng)用可提取的并行性,而主流商業(yè)應(yīng)用,如在線數(shù)據(jù)庫(kù)事務(wù)處理(Online Database Transaction)與網(wǎng)絡(luò)服務(wù)(如Web服務(wù)器)等,一般都具有較高的線程級(jí)并行性(TLP,Thread Level Parallelism)。為此,研究人員提出了兩種新型體系結(jié)構(gòu):單芯片多處理器(CMP)與同時(shí)多線程處理器(Simultaneous Multithreading,SMT),這兩種體系結(jié)構(gòu)可以充分利用這些應(yīng)用的指令級(jí)并行性和線程級(jí)并行性,從而顯著提高了這些應(yīng)用的性能。從體系結(jié)構(gòu)的角度看,SMT比CMP對(duì)處理器資源利用率要高,在克服線延遲影響方面更具優(yōu)勢(shì)。CMP相對(duì)SMT的最大優(yōu)勢(shì)還在于其模塊化設(shè)計(jì)的簡(jiǎn)潔性。復(fù)制簡(jiǎn)單設(shè)計(jì)非常容易,指令調(diào)度也更加簡(jiǎn)單。同時(shí)SMT中多個(gè)線程對(duì)共享資源的爭(zhēng)用也會(huì)影響其性能,而CMP對(duì)共享資源的爭(zhēng)用要少得多,因此當(dāng)應(yīng)用的線程級(jí)并行性較高時(shí),CMP性能一般要優(yōu)于SMT。此外在設(shè)計(jì)上,更短的芯片連線使CMP比長(zhǎng)導(dǎo)線集中式設(shè)計(jì)的SMT更容易提高芯片的運(yùn)行頻率,從而在一定程度上起到性能優(yōu)化的效果。總之,單芯片多處理器通過(guò)在一個(gè)芯片上集成多個(gè)微處理器核心來(lái)提高程序的并行性。每個(gè)微處理器核心實(shí)質(zhì)上都是一個(gè)相對(duì)簡(jiǎn)單的單線程微處理器或者比較簡(jiǎn)單的多線程微處理器,這樣多個(gè)微處理器核心就可以并行地執(zhí)行程序代碼,因而具有了較高的線程級(jí)并行性。由于CMP采用了相對(duì)簡(jiǎn)單的微處理器作為處理器核心,使得CMP具有高主頻、設(shè)計(jì)和驗(yàn)證周期短、控制邏輯簡(jiǎn)單、擴(kuò)展性好、易于實(shí)現(xiàn)、功耗低、通信延遲低等優(yōu)點(diǎn)。此外,CMP還能充分利用不同應(yīng)用的指令級(jí)并行和線程級(jí)并行,具有較高線程級(jí)并行性的應(yīng)用如商業(yè)應(yīng)用等可以很好地利用這種結(jié)構(gòu)來(lái)提高性能。單芯片多處理器已經(jīng)成為處理器體系結(jié)構(gòu)發(fā)展的一個(gè)重要趨勢(shì)。2000年IBM、HP、Sun 推出了用于RISC的多核概念,并且成功推出了擁有雙內(nèi)核的HP PA8800和IBM Power4處理器。此類處理器已經(jīng)成功應(yīng)用不同領(lǐng)域的服務(wù)器產(chǎn)品中,像IBM eServer pSeries 690或HP 9000此類服務(wù)器上仍可以看到它們的身影。由于它們相當(dāng)昂貴的,因此從來(lái)沒(méi)得到廣泛應(yīng)用2005年4月,Intel推出了第一款供個(gè)人使用的雙核處理器,打開了處理器歷史新的一頁(yè),從那之后,多核與眾核處理器紛紛登場(chǎng)。

SMP


SMP(對(duì)稱多處,Symmetrical Multi-Processing),是指在一個(gè)計(jì)算機(jī)上匯集了一組處理器(多CPU),各CPU之間共享內(nèi)存子系統(tǒng)以及總線結(jié)構(gòu)。它是相對(duì)非對(duì)稱多處理技術(shù)而言的、應(yīng)用十分廣泛的并行技術(shù)。在這種架構(gòu)中,一臺(tái)電腦不再由單個(gè)CPU組成,而同時(shí)由多個(gè)處理器運(yùn)行操作系統(tǒng)的單一復(fù)本,并共享內(nèi)存和一臺(tái)計(jì)算機(jī)的其他資源。雖然同時(shí)使用多個(gè)CPU,但是從管理的角度來(lái)看,它們的表現(xiàn)就像一臺(tái)單機(jī)一樣。系統(tǒng)將任務(wù)隊(duì)列對(duì)稱地分布于多個(gè)CPU之上,從而極大地提高了整個(gè)系統(tǒng)的數(shù)據(jù)處理能力。所有的處理器都可以平等地訪問(wèn)內(nèi)存、I/O和外部中斷。在對(duì)稱多處理系統(tǒng)中,系統(tǒng)資源被系統(tǒng)中所有CPU共享,工作負(fù)載能夠均勻地分配到所有可用處理器之上。我們平時(shí)所說(shuō)的雙CPU系統(tǒng),實(shí)際上是對(duì)稱多處理系統(tǒng)中最常見的一種,通常稱為"2路對(duì)稱多處理",它在普通的商業(yè)、家庭應(yīng)用之中并沒(méi)有太多實(shí)際用途,但在專業(yè)制作,如3DMax Studio、Photoshop等軟件應(yīng)用中獲得了非常良好的性能表現(xiàn),是組建廉價(jià)工作站的良好伙伴。隨著用戶應(yīng)用水平的提高,只使用單個(gè)的處理器確實(shí)已經(jīng)很難滿足實(shí)際應(yīng)用的需求,因而各服務(wù)器廠商紛紛通過(guò)采用對(duì)稱多處理系統(tǒng)來(lái)解決這一矛盾。在國(guó)內(nèi)市場(chǎng)上這類機(jī)型的處理器一般以4個(gè)或8個(gè)為主,有少數(shù)是16個(gè)處理器。但是一般來(lái)講,SMP結(jié)構(gòu)的機(jī)器可擴(kuò)展性較差,很難做到100個(gè)以上多處理器,常規(guī)的一般是8個(gè)到16個(gè),不過(guò)這對(duì)于多數(shù)的用戶來(lái)說(shuō)已經(jīng)夠用了。這種機(jī)器的好處在于它的使用方式和微機(jī)或工作站的區(qū)別不大,編程的變化相對(duì)來(lái)說(shuō)比較小,原來(lái)用微機(jī)工作站編寫的程序如果要移植到SMP機(jī)器上使用,改動(dòng)起來(lái)也相對(duì)比較容易。SMP結(jié)構(gòu)的機(jī)型可用性比較差。因?yàn)?個(gè)或8個(gè)處理器共享一個(gè)操作系統(tǒng)和一個(gè)存儲(chǔ)器,一旦操作系統(tǒng)出現(xiàn)了問(wèn)題,整個(gè)機(jī)器就完全癱瘓掉了。而且由于這個(gè)機(jī)器的可擴(kuò)展性較差,不容易保護(hù)用戶的投資。但是這類機(jī)型技術(shù)比較成熟,相應(yīng)的軟件也比較多,因此現(xiàn)在國(guó)內(nèi)市場(chǎng)上推出的并行機(jī)大量都是這一種。PC服務(wù)器中最常見的對(duì)稱多處理系統(tǒng)通常采用2路、4路、6路或8路處理器。目前UNIX服務(wù)器可支持最多64個(gè)CPU的系統(tǒng),如Sun公司的產(chǎn)品Enterprise 10000。SMP系統(tǒng)中最關(guān)鍵的技術(shù)是如何更好地解決多個(gè)處理器的相互通訊和協(xié)調(diào)問(wèn)題。

局部性原理



局部性原理是除并行技術(shù)之外在計(jì)算機(jī)體系結(jié)構(gòu)設(shè)計(jì)領(lǐng)域使用的最廣泛的技術(shù)之一??梢赃@么說(shuō),在計(jì)算機(jī)系統(tǒng)中,局部性原理幾乎無(wú)處不在。那么,什么事局部性原理呢?在回答這個(gè)問(wèn)題之前,我們先看一個(gè)例子。 圖1  局部性原理舉例 假設(shè)你就是我,正在寫一本關(guān)于計(jì)算機(jī)體系結(jié)構(gòu)方面的書。臺(tái)上一分鐘,臺(tái)下十年功。寫書也不例外,要想寫一本書,起碼要先閱讀上百本書或論文。這么多資料,你不可能實(shí)現(xiàn)把所有的資料都放在你面前,也不會(huì)每次只借一本書。實(shí)際的情況是,先去圖書館借你認(rèn)為參考價(jià)值最大的一些資料,這些資料里面包含了你當(dāng)前階段可能需要參考的的部分內(nèi)容,放在你的書桌上。這樣在寫書的過(guò)程中一旦需要什么查閱一些參考資料,首先會(huì)確認(rèn)一下,你想要查閱的資料有沒(méi)有在你借的資料里面,如果有的話,就不用去圖書館了。如果你開始了新的一章內(nèi)容的編寫,想查閱資料時(shí),發(fā)現(xiàn)你之前借的那些資料里面沒(méi)有相關(guān)內(nèi)容,這時(shí),你就必須去圖書館了。在上面的例子中,如果把圖書館比作整個(gè)內(nèi)存的話,那么,起到緩沖區(qū)作用的,你的書桌,也就相當(dāng)于cache。顯然,采用事先借一部分書的方法能顯著減少你去圖書館的次數(shù),當(dāng)然,也不用把整個(gè)圖書館的書都借回來(lái)了。這里面內(nèi)含的道理,就是所謂的局部性原理。局部性原理(principle of locality),一般可分成兩個(gè)方面,即時(shí)間局部性(temporal locality)和空間局部性(spatiallocality)。通俗的說(shuō),時(shí)間局部性指的是,如果一個(gè)數(shù)據(jù)被使用,那么這個(gè)數(shù)據(jù)在不久的一段時(shí)間里也很可能被使用。針對(duì)于上面的例子來(lái)說(shuō)就是,如果你剛剛參考了一本書的話,那么這本書很可能在最近幾天都會(huì)被你參考。空間吧局部性指的是,如果一個(gè)數(shù)據(jù)被使用,那么與這個(gè)數(shù)據(jù)地址相鄰數(shù)據(jù)很有可能會(huì)很快被使用。針對(duì)于上面的例子來(lái)說(shuō)就是,如果你借的一本書是在圖書館的某一個(gè)書架上,那么這個(gè)書架上與這本書相鄰的書也很可能被你借走。其實(shí),局部性原理在計(jì)算機(jī)體系結(jié)構(gòu)設(shè)計(jì)中應(yīng)用很廣泛。比如內(nèi)存就可以看做是硬盤的緩沖區(qū),cache就可以看做是內(nèi)存的緩沖區(qū),而CPU內(nèi)部的通用寄存器又可以看做是cache的緩沖區(qū)。大家所熟知的MMU中的TLB也可以看做是緩沖頁(yè)表項(xiàng)的緩沖區(qū)。實(shí)質(zhì)上,局部性原理可以認(rèn)為是存儲(chǔ)空間和存儲(chǔ)訪問(wèn)速度之間的一種平衡機(jī)制。

計(jì)算機(jī)的評(píng)價(jià)



如何衡量一臺(tái)計(jì)算機(jī)的優(yōu)劣呢?一般包括三個(gè)主要方面,運(yùn)算速度,成本,功耗。首先,判斷一臺(tái)計(jì)算機(jī)優(yōu)劣的第一個(gè)指標(biāo)是其運(yùn)算速度。有時(shí)候,超級(jí)計(jì)算機(jī)的運(yùn)算速度是一個(gè)國(guó)家科技進(jìn)步程度的重要標(biāo)志。這或許也是我們國(guó)家花大力氣搞超級(jí)計(jì)算機(jī)的原因吧,最近,我國(guó)研發(fā)的天河II號(hào)超級(jí)計(jì)算機(jī)摘得了世界上最快計(jì)算機(jī)的稱號(hào)。此外,在需要大量計(jì)算的情況下,如果計(jì)算機(jī)的計(jì)算速度跟不上的話,就有可能失去意義。比如,天氣預(yù)報(bào)工作,需要大量的復(fù)雜的計(jì)算,如果計(jì)算機(jī)太慢,等天氣預(yù)報(bào)結(jié)果需要好幾天才出來(lái),那就叫天氣后報(bào)了。所以,運(yùn)算速度是衡量計(jì)算機(jī)優(yōu)劣的一個(gè)重要指標(biāo),然而,影響計(jì)算機(jī)運(yùn)算速度的因素有很多,既有體系結(jié)構(gòu),CPU主頻,方面的因素,還有軟件算法,編譯系統(tǒng)等。其次,成本是衡量計(jì)算機(jī)優(yōu)劣的另外一個(gè)重要指標(biāo)。隨著計(jì)算機(jī)的不斷普及,在滿足一般性能需求的情況下,人們?cè)絹?lái)越關(guān)注計(jì)算機(jī)的價(jià)格。最后,衡量一臺(tái)計(jì)算機(jī)優(yōu)劣的指標(biāo)就是功耗。尤其是現(xiàn)在智能手機(jī)的大量普及,正是說(shuō)明了這一點(diǎn)。試想,無(wú)論一個(gè)手機(jī)的性能有多好,配置有多高,如果這個(gè)手機(jī)的電池僅能使用10分鐘,恐怕也沒(méi)人會(huì)買。其實(shí),除了上述三個(gè)衡量計(jì)算機(jī)優(yōu)劣的指標(biāo)之外,在一些特殊情況下,還要考慮計(jì)算機(jī)的其它指標(biāo),比如使用壽命,安全性,可靠性等。以手機(jī)可靠性為例,咱們普通大眾可以不用過(guò)于擔(dān)心,如果某天咱們的手機(jī)壞了,大不了明天再買一個(gè)新的就是了。但是對(duì)于obama來(lái)說(shuō),手機(jī)的可靠性可是需要特別考慮了。以手機(jī)的安全性為例,默克爾的手機(jī),可能就是對(duì)安全性考慮不周,才被美國(guó)監(jiān)控的吧。上面所述對(duì)計(jì)算機(jī)優(yōu)劣的衡量只是一個(gè)定性的考量,其實(shí),計(jì)算速度,成本,功耗,這三個(gè)方面都是有具體的量化標(biāo)準(zhǔn)的,相關(guān)的計(jì)算公式在“常用公式和定律”中可以找到。






本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

電感是導(dǎo)線內(nèi)通過(guò)交流電流時(shí),在導(dǎo)線的內(nèi)部及其周圍產(chǎn)生交變磁通,導(dǎo)線的磁通量與生產(chǎn)此磁通的電流之比。電感器也叫電感線圈,是利用電磁感應(yīng)原理制成的,由導(dǎo)線在絕緣管上單層或多層繞制而成的,導(dǎo)線彼此互相絕緣,而絕緣管可以是空心的...

關(guān)鍵字: 電感 磁通量 電感器

根據(jù)交通運(yùn)輸部水運(yùn)科學(xué)研究院提出的智慧港口的概念,智慧港口是利用新一代信息技術(shù),將港口相關(guān)業(yè)務(wù)和管理創(chuàng)新深度融合,使港口更加集約、高效、便捷、安全、綠色,創(chuàng)新港口發(fā)展模式,實(shí)現(xiàn)港口科學(xué)可持續(xù)發(fā)展。

關(guān)鍵字: 智慧港口 信息技術(shù) 業(yè)務(wù)

近年來(lái),世界主要汽車大國(guó)紛紛加強(qiáng)新能源汽車戰(zhàn)略謀劃、強(qiáng)化政策支持、完善產(chǎn)業(yè)布局,新能源汽車已成為全球汽車產(chǎn)業(yè)轉(zhuǎn)型發(fā)展的主要方向和促進(jìn)世界經(jīng)濟(jì)持續(xù)增長(zhǎng)的重要引擎。2021年,全國(guó)新能源汽車實(shí)現(xiàn)產(chǎn)量354.5萬(wàn)輛,銷量352...

關(guān)鍵字: 新能源 汽車 引擎

2007-2021年,全球針狀焦行業(yè)專利申請(qǐng)人數(shù)量及專利申請(qǐng)量總體呈現(xiàn)增長(zhǎng)態(tài)勢(shì)。雖然2021年全球針狀焦行業(yè)專利申請(qǐng)人數(shù)量及專利申請(qǐng)量有所下降,但是這兩大指標(biāo)數(shù)量仍較多。整體來(lái)看,全球針狀焦技術(shù)處于成長(zhǎng)期。

關(guān)鍵字: 針狀焦行業(yè) 專利申請(qǐng)人 增長(zhǎng)態(tài)勢(shì)

按企業(yè)主營(yíng)業(yè)務(wù)類型分,我國(guó)智能家居行業(yè)競(jìng)爭(zhēng)派系可分為傳統(tǒng)家電企業(yè)、互聯(lián)網(wǎng)企業(yè)以及其他企業(yè)三派。傳統(tǒng)家電企業(yè)代表有海爾智家、美的集團(tuán)、格力電器等,具有供應(yīng)鏈和銷售渠道,制造能力和品牌優(yōu)勢(shì)突出;互聯(lián)網(wǎng)企業(yè)代表有小米集團(tuán)、百度...

關(guān)鍵字: 智能家居 互聯(lián)網(wǎng)企業(yè) 供應(yīng)鏈

軍工電子是集紅外技術(shù)、激光技術(shù)、半導(dǎo)體及嵌入式技術(shù)與虛擬仿真技術(shù)為一體的綜合性軍工技術(shù)體系,是國(guó)防信息化建設(shè)的基石。軍工電子行業(yè)包含在軍工行業(yè)內(nèi),專注于軍工行業(yè)電子產(chǎn)品布局。根據(jù)其軍工產(chǎn)品的不同可分為衛(wèi)星導(dǎo)航、通信指揮、...

關(guān)鍵字: 軍工電子 嵌入式技術(shù) 信息化建設(shè)

我國(guó)汽車零配件行業(yè)細(xì)分種類眾多,從汽車零配件主要產(chǎn)品來(lái)看,發(fā)動(dòng)機(jī)系統(tǒng)行業(yè)內(nèi)有濰柴動(dòng)力、華域汽車等主要從業(yè)企業(yè);在車身零部件領(lǐng)域內(nèi),福耀玻璃、中策橡膠具有一定的規(guī)模優(yōu)勢(shì);行駛系統(tǒng)領(lǐng)域內(nèi)有中策橡膠提供的輪胎以及華為等企業(yè)提供...

關(guān)鍵字: 汽車零配件 發(fā)動(dòng)機(jī) 行駛系統(tǒng)

茶飲料是指以茶葉或茶葉的水提取液、濃縮液、茶粉(包括速溶茶粉、研磨茶粉)或直接以茶的鮮葉為原料添加或不添加食品原輔料和(或)食品添加劑,經(jīng)加工制成的液體飲料。根據(jù)國(guó)家標(biāo)準(zhǔn)《茶飲料(GB/T 21733-2008)》的規(guī)定...

關(guān)鍵字: 茶飲料 茶葉的水 食品添加劑

全球液壓行業(yè)專利技術(shù)在21世紀(jì)初得到初步發(fā)展,這一時(shí)期液壓專利申請(qǐng)人數(shù)量和申請(qǐng)量處于較低水平。2011-2012年,液壓行業(yè)專利技術(shù)的發(fā)展總體處于成長(zhǎng)期,2012年以后中全球液壓行業(yè)專利技術(shù)申請(qǐng)量或申請(qǐng)人數(shù)量整體處于波動(dòng)...

關(guān)鍵字: 液壓行業(yè) 專利授權(quán) 技術(shù)類型

從上市企業(yè)的總市值情況來(lái)看,2022年7月28日,中芯國(guó)際、紫光國(guó)微和韋爾股份總市值遙遙領(lǐng)先,中芯國(guó)際總市值達(dá)到3238.21億元,紫光國(guó)微總市值達(dá)到1358.77億元,韋爾股份總市值達(dá)到1277.07億元;其次是兆易創(chuàng)...

關(guān)鍵字: 上市企業(yè) 集成電路 行業(yè)

Linux閱碼場(chǎng)

174 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉