欧美久久天天综合香蕉伊,h片在线免费观看,九九欧美,欧美1区2区3区,日本在线不卡一区,国产视频久久久,91久久久久久久

2023信創(chuàng)獨(dú)角獸企業(yè)100強(qiáng)
全世界各行各業(yè)聯(lián)合起來,internet一定要實(shí)現(xiàn)!

影響CPU性能的三要素

2004-02-11 eNet&Ciweek

  一、CPU緩存(Cache)
  CPU處理的數(shù)據(jù)是來自于硬盤和內(nèi)存,但隨著CPU技術(shù)的發(fā)展,CPU的處理、運(yùn)算能力已經(jīng)大大超過了存儲(chǔ)系統(tǒng)的供應(yīng)能力,于是出現(xiàn)CPU在存儲(chǔ)系統(tǒng)提供足夠的數(shù)據(jù)前處于等待狀態(tài),而且每當(dāng)CPU的頻率提升這樣的差距就更明顯。那么在CPU等待期時(shí),硬盤、內(nèi)存所提供、準(zhǔn)備供CPU處理的數(shù)據(jù)存放在哪里呢?其實(shí)這些數(shù)據(jù)都暫時(shí)存在CPU的緩存之內(nèi)。

  目前臺(tái)式CPU的緩存分二級(jí):L1(一級(jí)緩存)和L2(二級(jí)緩存),當(dāng)處理器要讀取數(shù)據(jù)時(shí),首先要在L1緩存中查找,然后才在L2緩存中查找,最后才去系統(tǒng)內(nèi)存查找。

  每一級(jí)緩存中的數(shù)據(jù)都是下面一級(jí)數(shù)據(jù)的一部分,即L1緩存中的數(shù)據(jù)在L2緩存、系統(tǒng)內(nèi)存、頁文件中都有。由于CPU首先讀取L1緩存中的數(shù)據(jù),因此內(nèi)置的L1高速緩存的容量和結(jié)構(gòu)對(duì)中央處理器的性能影響較大,容量越大,性能也相對(duì)會(huì)提高不少。這也正是一些公司力爭加大L1級(jí)高速緩存容量的原因。不過高速緩存均由靜態(tài)隨機(jī)存儲(chǔ)器組成,結(jié)構(gòu)較復(fù)雜(L1緩存是采用了速度非常高的SRAM,這種內(nèi)存單晶元使用4到6個(gè)晶體管,比我們常見的內(nèi)存芯片要復(fù)雜多了),受處理器內(nèi)核面積、制造工藝的限制,L1緩存的容量不可能做得太大。而且當(dāng)L1緩存增大到一定程度后性能便難以明顯提高,因?yàn)镃PU等待數(shù)據(jù)期間存在一個(gè)臨界點(diǎn)──在處理器工作時(shí),停滯時(shí)間長短保持為一個(gè)常量。此外,增大L1緩存也會(huì)使生產(chǎn)成本提高不少,在權(quán)衡成本和系統(tǒng)性能提升后,最好的方法應(yīng)該是為L1緩存加附加緩存──即L2緩存。L2緩存位于L1緩存和系統(tǒng)內(nèi)存之間,通常存儲(chǔ)L1緩存中數(shù)據(jù)的擴(kuò)充部分,而L1則主要存放的是CPU最常用的代碼和數(shù)據(jù)(因此L1又分L1指令緩存、L1數(shù)據(jù)緩存),可以這么說,L1緩存是L2緩存的子集。

  總的來說,較大的緩存帶來的好處是可以減少訪問相對(duì)較慢的系統(tǒng)內(nèi)存的需求、改進(jìn)文件系統(tǒng)效率并減少從主內(nèi)存到較慢磁盤子系統(tǒng)的請求數(shù)量、提供更有效的文件系統(tǒng)緩存行為及較短消息和處理器隊(duì)列長度。新一代CPU產(chǎn)品都在往大緩存方向發(fā)展:目前主流臺(tái)式CPU的L2緩存已經(jīng)提升到512KB,而迅馳移動(dòng)處理器、Opteron處理器及未來的Prescott處理器的L2緩存將達(dá)1MB。

  此外,為了進(jìn)一步發(fā)揮緩存的效用、改進(jìn)內(nèi)存性能并使之與CPU發(fā)展同步來維護(hù)系統(tǒng)平衡,CPU生產(chǎn)廠商(如Intel)在CPU中使用了控制緩存的指令。這里有兩類緩存控制指令。一類是數(shù)據(jù)預(yù)存取指令,能夠增加從內(nèi)存到緩存的數(shù)據(jù)流。數(shù)據(jù)預(yù)存取指令允許應(yīng)用識(shí)別出所需的信息,并預(yù)先將它們從主存中取出存入緩存。這樣一來,處理器便可以更快地獲取信息,從而改進(jìn)應(yīng)用性能。另一類是內(nèi)存流優(yōu)化處理指令,能夠增加從處理器到主存的數(shù)據(jù)流。內(nèi)存流優(yōu)化處理指令允許應(yīng)用越過緩存直接訪問內(nèi)存。通常情況下,處理器寫出的數(shù)據(jù)都將暫時(shí)存儲(chǔ)在緩存中以備處理器稍后使用。如果處理器不再使用它們,數(shù)據(jù)最終將被移至內(nèi)存。這兩類指令都賦予了應(yīng)用開發(fā)人員對(duì)緩存內(nèi)容更大的控制能力,使他們能夠控制緩存操作以滿足其應(yīng)用的需求。

  注:鑒于緩存對(duì)CPU性能影響較大,目前緩存大小已經(jīng)成為CPU廠商用來劃分CPU等級(jí)的標(biāo)準(zhǔn)之一。

  二、指令集
  指令集是CPU所能執(zhí)行的所有指令的集合,是提高處理器效率的最有效工具之一。目前隨著新核心、新工藝的應(yīng)用,新一代CPU的時(shí)鐘頻率提升到3GHz以上,但對(duì)于應(yīng)用層面來說,新一代CPU是否能更有效地處理數(shù)據(jù)才是軟件開發(fā)人員所最為關(guān)注的。雖然增加處理器內(nèi)部的高速緩存容量可以提高在讀/寫方面的速度,不過這并不能從根本上解決問題:當(dāng)數(shù)量巨大的數(shù)據(jù)需要處理時(shí),過于冗雜的指令會(huì)嚴(yán)重影響電腦的工作效率。那么此時(shí)CPU中所使用、支持的指令集這時(shí)就起到了至關(guān)重要的作用了。從現(xiàn)階段主流體系結(jié)構(gòu)講,指令集可分為復(fù)雜指令集和精簡指令集兩部分。而從具體運(yùn)用看,多媒體指令集又是其中我們最熟悉、最引人注目的一種。目前多媒體指令集主要有以下幾種:

  MMX指令集
  MMX指令集是Intel在1996年開發(fā)的一項(xiàng)多媒體指令增強(qiáng)技術(shù),其英文名稱可以翻譯為“多媒體擴(kuò)展指令集”。它是為多媒體而建立的擴(kuò)展指令集,使用MMX能夠處理多媒體數(shù)據(jù)、圖像和聲音。支持MMX指令的處理器具有57條多媒體指令、8個(gè)64位的MMX寄存器。但MMX只能夠處理整數(shù)類型,支持1、2、4、8字節(jié)的數(shù)據(jù),也就是說MMX寄存器能夠存儲(chǔ)8組、4組、2組或1組操作數(shù)。被存儲(chǔ)在MMX寄存器中的數(shù)據(jù)能夠進(jìn)行加、減、乘計(jì)算。MMX指令集是Pentium、PentiumⅡ時(shí)代的最主要標(biāo)志之一。

  3D Now!指令集
  3D Now!是AMD推出的指令集,被AMD廣泛應(yīng)用于其K6-2、K6-3以及Athlon系列處理器。3DNow!指令集技術(shù)擁有21條機(jī)器碼的擴(kuò)展指令集,具有8個(gè)新的寄存器,應(yīng)用于浮點(diǎn)數(shù)處理和幾何運(yùn)算,并且支持加法運(yùn)算、乘法運(yùn)算、除法運(yùn)算、求精度平方根等操作方式。與Intel公司的MMX技術(shù)側(cè)重于整數(shù)運(yùn)算有所不同,3DNow!指令集主要針對(duì)三維建模、坐標(biāo)變換和效果渲染等三維應(yīng)用場合,在軟件的配合下,可以大幅度提高3D處理性能。后來針對(duì)Intel的SEE指令集,AMD在Athlon上開發(fā)了Enhanced 3DNow!(也被稱為3DNow!+)。在Enhanced 3DNow!中,AMD融入了一些SSE代碼,指令也增加到52個(gè),這樣使用其CPU可以從針對(duì)SSE做最佳化的軟件中獲得更好的執(zhí)行效能??偟膩碚f,3D Now!指令集也相當(dāng)出色,但由于當(dāng)時(shí)的Intel在市場上具有傳統(tǒng)的強(qiáng)勢地位,因此一直得不到軟件開發(fā)商的廣泛支持。

  
  SEE與SEE2指令集
  SSE指令是Intel在PentiumⅢ處理器中推出的新一代指令集,它有70條指令,其中包含提高3D圖形運(yùn)算效率的50條SIMD浮點(diǎn)運(yùn)算指令、12條MMX整數(shù)運(yùn)算增強(qiáng)指令、8條優(yōu)化內(nèi)存中連續(xù)數(shù)據(jù)塊傳輸指令。理論上這些指令對(duì)圖像處理、浮點(diǎn)運(yùn)算、3D運(yùn)算、視頻處理、音頻處理等諸多多媒體應(yīng)用起到全面優(yōu)化的作用。支持SSE的處理器除了有配備標(biāo)準(zhǔn)的x87寄存器外,還需要有額外的8個(gè)128位寄存器,每個(gè)寄存器存放4個(gè)32位浮點(diǎn)數(shù)。能夠?qū)γ總€(gè)寄存器中的4個(gè)浮點(diǎn)數(shù)進(jìn)行以下算術(shù)操作:兩組浮點(diǎn)數(shù)相加、相減、相乘或相除;也可以反過來對(duì)浮點(diǎn)數(shù)求平方根。寄存器中的內(nèi)存能夠任意轉(zhuǎn)移,但是移動(dòng)數(shù)據(jù)沒有增加數(shù)據(jù)快捷,因此SSE最有效率的方式是封裝好數(shù)據(jù)之后再執(zhí)行。SSE兼容MMX指令,它可以通過SIMD和單時(shí)鐘周期并行處理多個(gè)浮點(diǎn)數(shù)據(jù)來有效地提高浮點(diǎn)運(yùn)算速度。雖然SEE指令與3D Now!指令彼此互不兼容,但SSE包含了3D Now!技術(shù)的絕大部分功能,只是兩者實(shí)現(xiàn)的方法不同而已。鑒于SSE得到了眾多軟件開發(fā)商的支持,AMD在其Athlon XP處理器上推出支持SSE指令集的Enhanced 3DNow!,雖然也能夠使用SSE對(duì)普通的指令進(jìn)行優(yōu)化處理,不過效率要略稍于Pentium Ⅲ/4。

  后來在研發(fā)Pentium 4時(shí),Intel又在SSE的基礎(chǔ)上增加了一套包括144條新建指令的SSE2指令集來提升Pentium 4處理器性能。SSE2是當(dāng)前市場上x86處理器最新的SIMD擴(kuò)展指令集,它由兩個(gè)不同的部分所組成:SSE部分和MMX部分。前者主要負(fù)責(zé)處理浮點(diǎn)數(shù),后者則專門計(jì)算整數(shù)。SSE2寄存器容量是MMX寄存器的兩倍,寄存器存儲(chǔ)數(shù)據(jù)也增加了兩倍,在指令處理速度保持不變的情況下,通過SSE2優(yōu)化后的應(yīng)用軟件運(yùn)行速度也將提高2倍。由于SSE2指令集與MMX相兼容,因此被MMX優(yōu)化過的程序很容易被SSE2再次深層次優(yōu)化。值得一提的是Opteron也兼容了SSE2指令集,AMD在Opteron處理器內(nèi)部增加了對(duì)應(yīng)的16個(gè)128位 SSE2寄存器單元,數(shù)量比Pentium 4還要多出一倍。不過,Opteron的SSE2功能是通過“解釋執(zhí)行”來完成:SSE2指令代碼被識(shí)別后,必須被轉(zhuǎn)換為Opteron可識(shí)別的x86-64中間指令,然后再進(jìn)行處理。所以O(shè)pteron在執(zhí)行SSE2指令時(shí)要比Pentium 4要慢許多。

  三、尋址位寬
  位寬對(duì)處理器性能的影響絕不亞于主頻。位寬是指微處理器一次執(zhí)行指令的數(shù)據(jù)寬, 處理器的尋址位寬增長很快,業(yè)界已使用過4、8、16位尋址再到目前主流的32位,而64位尋址浮點(diǎn)運(yùn)算將成為未來CPU發(fā)展趨勢。受虛擬和實(shí)際內(nèi)存尺寸的限制,目前主流的32位在性能執(zhí)行模式方面存在一個(gè)致命的缺陷:當(dāng)面臨大量的數(shù)據(jù)流時(shí),32位的寄存器和指令集不能及時(shí)進(jìn)行相應(yīng)的處理運(yùn)算。32位處理器一次只能處理32位的數(shù)據(jù),也就是4個(gè)字節(jié)的數(shù)據(jù);而64位處理器一次就能處理64位(即8個(gè)字節(jié))的數(shù)據(jù)。如果我們將總長128位的指令分別按照32位、64位為單位進(jìn)行編輯的話:32位的處理器需要4個(gè)指令,而64位處理器則只要兩個(gè)指令。顯然,在工作頻率相同的情況下,64位處理器的處理速度比32位的更快。

  大家比較一下圖2中的32位與64位處理器,64位的代碼流的數(shù)量沒有改變,其寬度隨著指令代碼的寬度而變化;而數(shù)據(jù)流的寬度則增加了一倍,這是為了在同一時(shí)間內(nèi)傳輸更多的數(shù)據(jù),寄存器和內(nèi)部數(shù)據(jù)通道也必須加倍。此外,在64位處理器中的寄存器位數(shù)是32位處理器中的兩倍,不過正在實(shí)行指令的指令寄存器卻都是一樣的。此外64位處理器的程序計(jì)數(shù)器也加倍了。

  目前64位尋址越來越普及,近年來Intel和AMD公司相繼推出64位處理器便是這種發(fā)展趨勢的表現(xiàn)。不過,64位處理器要與64位操作系統(tǒng)、64位應(yīng)用軟件相結(jié)合才能全面發(fā)揮優(yōu)勢。



相關(guān)頻道: eNews

您對(duì)本文或本站有任何意見,請?jiān)谙路教峤?,謝謝!

投稿信箱:tougao@enet16.com