CPU百科全書:完全指標篇
一、決定CPU性能技術指標
每個買CPU的消費者,第一時間要過問的就是它的性能,對於一個CPU來說,性能是否強大是它能否在市場上生存下去的第一要素,那麼CPU的性能是由哪些因素決定的咧?下面就列出影響CPU性能的主要技術指標:
1、主頻,也就是CPU的時鐘頻率,簡單地說也就是CPU的工作頻率。一般說來,一個時鐘週期完成的指令數是固定的,所以主頻越高,CPU的速度也就越快了。不過由於各種CPU的內部結構也不盡相同,所以並不能完全用主頻來概括CPU的性能。至於外頻就是系統匯流排的工作頻率;而倍頻則是指CPU外頻與主頻相差的倍數。用公式表示就是:主頻=外頻×倍頻。
2、記憶體總線速度或者叫系統總線速度,一般等同於CPU的外頻。記憶體匯流排的速度對整個系統性能來說很重要,由於記憶體速度的發展滯後於CPU的發展速度,為了緩解記憶體帶來的瓶頸,所以出現了二級緩存,來協調兩者之間的差異,而記憶體總線速度就是指CPU與二級(L2)快取記憶體和記憶體之間的工作頻率。
3、L1快取記憶體,也就是我們經常說的一級快取記憶體。在CPU裏面內置了快取記憶體可以提高CPU的運行效率。內置的L1快取記憶體的容量和結構對CPU的性能影響較大,不過高速緩衝記憶體均由靜態RAM組成,結構較複雜,在CPU管芯面積不能太大的情況下,L1級快取記憶體的容量不可能做得太大。採用回寫(Write Back)結構的快取記憶體。它對讀和寫操作均有可提供緩存。而採用寫通(Write-through)結構的快取記憶體,僅對讀操作有效。在486以上的電腦中基本採用了回寫式快取記憶體。在目前流行的處理器中,奔騰Ⅲ和Celeron處理器擁有32KB的L1快取記憶體,奔騰4為8KB,而AMD的Duron和Athlon處理器的L1快取記憶體高達128KB。
4、L2快取記憶體,指CPU第二層的快取記憶體,第一個採用L2快取記憶體的是奔騰 Pro處理器,它的L2快取記憶體和CPU運行在相同頻率下的,但成本昂貴,市場生命很短,所以其後奔騰 II的L2快取記憶體運行在相當於CPU頻率一半下的。接下來的Celeron處理器又使用了和CPU同速運行的L2快取記憶體,現在流行的CPU,無論是AthlonXP和奔騰4,其L2快取記憶體都是和CPU同速運行的。除了速度以外,L2快取記憶體容量也會影響CPU的性能,原則是越大越好,現在家庭用CPU容量最大的是512KB,而伺服器和工作站上用CPU的L2快取記憶體更高達1MB-3MB。
5、流水線技術、超標量。流水線(pipeline)是 Intel首次在486晶片中開始使用的。流水線的工作方式就象工業生產上的裝配流水線。在CPU中由5~6個不同功能的電路單元組成一條指令處理流水線,然後將一條X86指令分成5~6步後再由這些電路單元分別執行,這樣就能實現在一個CPU時鐘週期完成一條指令,因此提高了CPU的運算速度。超流水線是指某型 CPU內部的流水線超過通常的5~6步以上,例如奔騰 4的流水線就長達20步。將流水線設計的步(級)數越多,其完成一條指令的速度越快,因此才能適應工作主頻更高的CPU。超標量是指在一個時鐘週期內CPU可以執行一條以上的指令。這在486或者以前的CPU上是很難想像的,只有奔騰級以上CPU才具有這種超標量結構;這是因為現代的CPU越來越多的採用了RISC技術,所以才會有超標量的CPU。
6、輔助運算器或者叫數學輔助運算器。在486以前的CPU裏面,是沒有內置輔助運算器的。由於輔助運算器主要的功能就是負責浮點運算,因此386、286、8088等等微機CPU的浮點運算性能都相當落後,自從486以後,CPU一般都內置了輔助運算器,輔助運算器的功能也不再局限于增強浮點運算。現在CPU的浮點單元(輔助運算器)往往對多媒體指令進行了優化。比如Intel的MMX技術,MMX是“多媒體擴展指令集”的縮寫。MMX是Intel公司在1996年為增強奔騰 CPU在音像、圖形和通信應用方面而採取的新技術。為CPU新增加57條MMX指令,把處理多媒體的能力提高了60%左右。現在的CPU已經普遍內置了這些多媒體指令集,例如現在奔騰4內置了SSE2指令集,而AthlonXP則內置增強型的3DNow!指令集。
7、工作電壓。工作電壓指的也就是CPU正常工作所需的電壓。早期CPU(386、486)由於工藝落後,它們的工作電壓一般為5V(奔騰等是3.5V/3.3V/2.8V等),隨著CPU的製造工藝與主頻的提高,CPU的工作電壓有逐步下降的趨勢,Intel最新出品的Tualatin核心Celeron已經採用1.475V的工作電壓了。低電壓能解決耗電過大和發熱過高的問題。這對於筆記本電腦尤其重要。
8、亂序執行和分枝預測,亂序執行是指CPU採用了允許將多條指令不按程式規定的順序分開發送給各相應電路單元處理的技術。分枝是指程式運行時需要改變的節點。分枝有無條件分枝和有條件分枝,其中無條件分枝只需要CPU按指令順序執行,而條件分枝則必須根據處理結果再決定程式運行方向是否改變,因此需要“分枝預測”技術處理的是條件分枝。
9、製造工藝,製造工藝雖然不會直接影響CPU的性能,但它可以可以極大地影響CPU的集成度和工作頻率,製造工藝越精細,CPU可以達到的頻率越高,集成的電晶體就可以更多。第一代奔騰 CPU的製造工藝是0.35微米, 最高達到266Mhz的頻率,PII和賽揚是0.25微米,頻率最高達到450Mhz。銅礦核心的奔騰Ⅲ製造工藝縮小到了0.18微米,最高頻率達到1.13Ghz。最新Northwood核心的奔騰4 CPU製造工藝達到0.13微米,目前頻率已經達到2.4Ghz,估計達到3Ghz也沒有問題。在明年,Intel CPU的製造工藝會達到0.09毫米。
二、CPU技術術語不完全手冊
為了使讀者在日常購買操作電腦時方便查詢,特在本節最後列出和CPU有關的技術術語,安第一個字母的順序排列:
3DNow!(3D no waiting)
AMD公司開發的SIMD指令集,可以增強浮點和多媒體運算的速度,它的指令數為21條。
ALU(Arithmetic Logic Unit,算術邏輯單元)
在處理器之中用於計算的那一部分,與其同級的有資料傳輸單元和分支單元。
BGA(Ball Grid Array,球狀矩陣排列)
一種晶片封裝形式,例:82443BX。
BHT(branch prediction table,分支預測表)
處理器用於決定分支行動方向的數值表。
BPU(Branch Processing Unit,分支處理單元)
CPU中用來做分支處理的那一個區域。
Brach Pediction(分支預測)
從P5時代開始的一種先進的資料處理方法,由CPU來判斷程式分支的進行方向,能夠更快運算速度。
CMOS(Complementary Metal Oxide Semiconductor,互補金屬氧化物半導體)
它是一類特殊的晶片,最常見的用途是主板的BIOS(Basic Input/Output System,基本輸入/輸出系統)。
CISC(Complex Instruction Set Computing,複雜指令集電腦)
相對於RISC而言,它的指令位元數較長,所以稱為複雜指令。如:x86指令長度為87位元。
COB(Cache on board,板上集成緩存)
在處理器卡上集成的緩存,通常指的是二級緩存,例:奔騰II
COD(Cache on Die,晶片內集成緩存)
在處理器晶片內部集成的緩存,通常指的是二級緩存,例:PGA賽揚370
CPGA(Ceramic Pin Grid Array,陶瓷針型柵格陣列)
一種晶片封裝形式。
CPU(Center Processing Unit,中央處理器)
電腦系統的大腦,用於控制和管理整個機器的運作,並執行計算任務。
Data Forwarding(數據前送)
CPU在一個時鐘週期內,把一個單元的輸出值內容拷貝到另一個單元的輸入值中。
Decode(指令解碼)
由於X86指令的長度不一致,必須用一個單元進行“翻譯”,真正的內核按翻譯後要求來工作。
EC(Embedded Controller,嵌入式控制器)
在一組特定系統中,新增到固定位置,完成一定任務的控制裝置就稱為嵌入式控制器。
Embedded Chips(嵌入式)
一種特殊用途的CPU,通常放在非電腦系統,如:家用電器。
EPIC(explicitly parallel instruction code,並行指令代碼)
英代爾的64位元晶片架構,本身不能執行x86指令,但能通過解碼器來相容舊有的x86指令,只是運算速度比真正的32位元晶片有所下降。
FADD(Floationg Point Addition,浮點加)
FCPGA(Flip Chip Pin Grid Array,反轉晶片針腳柵格陣列)
一種晶片封裝形式,例:奔騰III 370。
FDIV(Floationg Point Divide,浮點除)
FEMMS(Fast Entry/Exit Multimedia State,快速進入/退出多媒體狀態)
在多能奔騰之中,MMX和浮點單元是不能同時運行的。新的晶片加快了兩者之間的切換,這就是FEMMS。
FFT(fast Fourier transform,快速熱歐姆轉換)
一種複雜的演算法,可以測試CPU的浮點能力。
FID(FID:Frequency identify,頻率鑒別號碼)
奔騰III通過ID號來檢查CPU頻率的方法,能夠有效防止Remark。
FIFO(First Input First Output,先入先出佇列)
這是一種傳統的按序執行方法,先進入的指令先完成並引退,跟著才執行第二條指令。
FLOP(Floating Point Operations Per Second,浮點操作/秒)
計算CPU浮點能力的一個單位。
FMUL(Floationg Point Multiplication,浮點乘)
FPU(Float Point Unit,浮點運算單元)
FPU是專用於浮點運算的處理器,以前的FPU是一種單獨晶片,在486之後,英代爾把FPU與集成在CPU之內。
FSUB(Floationg Point Subtraction,浮點減)
HL-PBGA(表面黏著、高耐熱、輕薄型塑膠球狀矩陣封裝)
一種晶片封裝形式。
IA(Intel Architecture,英代爾架構)
英代爾公司開發的x86晶片結構。
ID(identify,鑒別號碼)
用於判斷不同晶片的識別代碼。
IMM(Intel Mobile Module, 英代爾移動模組)
英代爾開發用於筆記本電腦的處理器模組,集成了CPU和其他控制設備。
Instructions Cache(指令緩存)
由於系統主記憶體的速度較慢,當CPU讀取指令的時候,會導致CPU停下來等待記憶體傳輸的情況。指令緩存就是在主記憶體與CPU之間增加一個快速的存儲區域,即使CPU未要求到指令,主記憶體也會自動把指令預先送到指令緩存,當CPU要求到指令時,可以直接從指令緩存中讀出,無須再存取主記憶體,減少了CPU的等待時間。
Instruction Coloring(指令分類)
一種製造預測執行指令的技術,一旦預測判斷被相應的指令決定以後,處理器就會相同的指令處理同類的判斷。
Instruction Issue(指令發送)
它是第一個CPU管道,用於接收記憶體送到的指令,並把它發到執行單元。
IPC(Instructions Per Clock Cycle,指令/時鐘週期)
表示在一個時鐘週期用可以完成的指令數目。
KNI(Katmai New Instructions,Katmai新指令集,即SSE)
Latency(潛伏期)
從字面上瞭解其含義是比較困難的,實際上,它表示完全執行一個指令所需的時鐘週期,潛伏期越少越好。嚴格來說,潛伏期包括一個指令從接收到發送的全過程。現今的大多數x86指令都需要約5個時鐘週期,但這些週期之中有部分是與其他指令交迭在一起的(並行處理),因此CPU製造商宣傳的潛伏期要比實際的時間長。
LDT(Lightning Data Transport,閃電資料傳輸匯流排)
K8採用的新型資料匯流排,外頻在200MHz以上。
MMX(MultiMedia Extensions,多媒體擴展指令集)
英代爾開發的最早期SIMD指令集,可以增強浮點和多媒體運算的速度。
MFLOPS(Million Floationg Point/Second,每秒百萬個浮點操作)
計算CPU浮點能力的一個單位,以百萬條指令為基準。
NI(Non-Intel,非英代爾架構)
除了英代爾之外,還有許多其他生產相容x86體系的廠商,由於專利權的問題,它們的產品和英代爾系不一樣,但仍然能運行x86指令。
OLGA(Organic Land Grid Array,基板柵格陣列)
一種晶片封裝形式。
OoO(Out of Order,亂序執行)
Post-RISC晶片的特性之一,能夠不按照程式提供的順序完成計算任務,是一種加快處理器運算速度的架構。
PGA(Pin-Grid Array,引腳網格陣列)
一種晶片封裝形式,缺點是耗電量大。
Post-RISC
一種新型的處理器架構,它的內核是RISC,而週邊是CISC,結合了兩種架構的優點,擁有預測執行、處理器重命名等先進特性,如:Athlon。
PSN(Processor Serial numbers,處理器序列號)
標識處理器特性的一組號碼,包括主頻、生產日期、生產編號等。
PIB(Processor In a Box,盒裝處理器)
CPU廠商正式在市面上發售的產品,通常要比OEM(Original Equipment Manufacturer,原始設備製造商)廠商流通到市場的散裝晶片貴,但只有PIB擁有廠商正式的保修權利。
PPGA(Plastic Pin Grid Array,塑膠針狀矩陣封裝)
一種晶片封裝形式,缺點是耗電量大。
PQFP(Plastic Quad Flat Package,塑膠方塊平面封裝)
一種晶片封裝形式。
RAW(Read after Write,寫後讀)
這是CPU亂序執行造成的錯誤,即在必要條件未成立之前,已經先寫下結論,導致最終結果出錯。
Register Contention(搶佔寄存器)
當寄存器的上一個寫回任務未完成時,另一個指令徵用此寄存器時出現的衝突。
Register Pressure(寄存器不足)
軟體演算法執行時所需的寄存器數目受到限制。對於X86處理器來說,寄存器不足已經成為了它的最大特點,因此AMD才想在下一代晶片K8之中,增加寄存器的數量。
Register Renaming(寄存器重命名)
把一個指令的輸出值重新定位到一個任意的內部寄存器。在x86架構中,這類情況是常常出現的,如:一個fld或fxch或mov指令需要同一個目標寄存器時,就要動用到寄存器重命名。
Remark(晶片頻率重標識)
晶片製造商為了方便自己的產品定級,把大部分CPU都設置為可以自由調節倍頻和外頻,它在同一批CPU中選出好的定為較高的一級,性能不足的定位較低的一級,這些都在工廠內部完成,是合法的頻率定位方法。但出廠以後,經銷商把低檔的CPU超頻後,貼上新的標籤,當成高檔CPU賣的非法頻率定位則稱為Remark。因為生產商有權力改變自己的產品,而經銷商這樣做就是侵犯版權,不要以為只有軟體才有版權,硬體也有版權呢。
Resource contention(資源衝突)
當一個指令需要寄存器或管道時,它們被其他指令所用,處理器不能即時作出回應,這就是資源衝突。
Retirement(指令引退)
當處理器執行過一條指令後,自動把它從調度進程中去掉。如果僅是指令完成,但仍留在調度進程中,亦不算是指令引退。
RISC(Reduced Instruction Set Computing,精簡指令集電腦)
一種指令長度較短的電腦,其運行速度比CISC要快。
SEC(Single Edge Connector,單邊連接器)
一種處理器的模組,如:奔騰II。
SIMD(Single Instruction Multiple Data,單指令多資料流程)
能夠複製多個操作,並把它們打包在大型寄存器的一組指令集,例:3DNow!、SSE。
SiO2F(Fluorided Silicon Oxide,二氧氟化矽)
製造電子元件才需要用到的材料。
SOI(Silicon on insulator,絕緣體矽片)
SONC(System on a chip,系統集成晶片)
在一個處理器中集成多種功能,如:Cyrix MediaGX。
SPEC(System Performance Evaluation Corporation,系統性能評估測試)
測試系統總體性能的Benchmark。
Speculative execution(預測執行)
一個用於執行未明指令流的區域。當分支指令發出之後,傳統處理器在未收到正確的反饋資訊之前,是不能做任何工作的,而具有預測執行能力的新型處理器,可以估計即將執行的指令,採用預先計算的方法來加快整個處理過程。
SQRT(Square Root Calculations,平方根計算)
一種複雜的運算,可以考驗CPU的浮點能力。
SSE(Streaming SIMD Extensions,單一指令多資料流程擴展)
英代爾開發的第二代SIMD指令集,有70條指令,可以增強浮點和多媒體運算的速度。
Superscalar(超標量體系結構)
在同一時鐘週期可以執行多條指令流的處理器架構。
TCP(Tape Carrier Package,薄膜封裝)
一種晶片封裝形式,特點是發熱小。
Throughput(吞吐量)
它包括兩種含義:
第一種:執行一條指令所需的最少時鐘週期數,越少越好。執行的速度越快,下一條指令和它搶佔資源的機率也越少。
第二種:在一定時間內可以執行的最多指令數,當然是越大越好。
TLBs(Translate Look side Buffers,翻譯旁視緩衝器)
用於存儲指令和輸入/輸出數值的區域。
VALU(Vector Arithmetic Logic Unit,向量算術邏輯單元)
在處理器中用於向量運算的部分。
VLIW(Very Long Instruction Word,超長指令字)
一種非常長的指令組合,它把許多條指令連在一起,增加了運算的速度。
VPU(Vector Permutate Unit,向量排列單元)
在處理器中用於排列資料的部分。