国产黄色免费网站,人人干人人干人人干,免费大黄网站在线看,国产情侣一区二区三区,99精品国产福利免费一区二区,国产亚洲成归v人片在线观看,伊人88

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

影響CPU性能的三要素

2004-02-11 eNet&Ciweek

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

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

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

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

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

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

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

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

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

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

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

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

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

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



相關(guān)頻道: eNews

您對本文或本站有任何意見,請在下方提交,謝謝!

投稿信箱:tougao@enet16.com