1. 關於CPU的一些知識
CPU又叫中央處理器,是英文單詞Central Processing Unit的縮寫,負責對信息和數據進行運算和處理,並實現本身運行過程的自動化。在早期的計算機當中,CPU被分成了運算器和控 制器兩個部分,後來由於電路集成度的提高,在微處理器問世時,就將它們都集成在一個晶元中了。需要智能控制、大量信息處理的地方就會 用到CPU。
CPU有通用CPU和嵌入式CPU,通用和嵌入式的分別,主要是根據應用模式的不同而劃分的。通用CPU晶元的功能一般比較強,能運 行復雜的操作系統和大型應用軟體。嵌入式CPU在功能和性能上有很大的變化范圍。隨著集成度的提高,在嵌入式應用中,人們傾向於把CPU、 存儲器和一些外圍電路集成到一個晶元上,構成所謂的系統晶元(簡稱為SOC),而把SOC上的那個CPU成為CPU芯核。
現在,指令系統的優化設計有兩個截然相反的方向。一個是增強指令的功能,設置一些功能復雜的指令,把一些原來有軟體實現的常用功能 改用硬體的指令系統來實現,這種計算機成為復雜指令系統計算機。早期Intel的X86指令體系就是一種CISC指令結構。
RISC是Reced Instruction Set Computer的縮寫中文翻譯成精簡指令系統計算機,是八十年代發展起來的,盡量簡化指令功能,只保留那些功能簡單,能在 一個節拍內執行完成的指令,較復雜的功能用一段子程序來實現,這種計算機系統成為精簡指令系統計算機。目前採用RISC體系結構的處理器 的晶元廠商有SUN、SGI、IBM的Power PC系列、DEC公司的Alpha系列、Motorola公司的龍珠和Power PC等等。
介紹一下 MIPS體系。
MIPS是世界上很流行的一種RISC處理器。MIPS的意思是"無內部互鎖流水級的微處理器"(Microprocessor without interlocked piped stages),其機制是盡量利用軟體辦法避免流水線中的數據相關問題。他最早是在80年代初期由斯坦福(Stanford)大學 Hennessy教授領導的研究小組研製出來的。MIPS公司的R系列就是在此基礎上開發的RISC工業產品的微處理器。這些系列產品以為很多打計算機 公司採用構成各種工作站和計算機系統。
指令系統
要講CPU,就必須先講一下指令系統。 指令系統指的是一個CPU所能夠處理的全部指
令的集合,是一個CPU的根本屬性。比如我們現在所用的CPU都是採用x86指令集的,他們都是 同一類型的CPU,不管是PIII、Athlon或Joshua。我們也知道,世界上還有比PIII和Athlon快得多的CPU,比如Alpha,但它們不是用x86指令集 ,不能使用數量龐大的基於x86指令集的程序,如Windows98。之所以說指令系統是一個CPU的根本屬性,是因為指令系統決定了一個CPU能夠運 行什麼樣的程序。
所有採用高級語言編出的程序,都需要翻譯(編譯或解釋)成為機器語言後才能運行,這些機器語言中 所包含的就是一條條的指令。
1、 指令的格式
一條指令一般包括兩個部分:操作碼和地址碼。操 作碼其實就是指令序列號,用來告訴CPU需要執行的是那一條指令。地址碼則復雜一些,主要包括源操作數地址、目的地址和下一條指令的地址 。在某些指令中,地址碼可以部分或全部省略,比如一條空指令就只有操作碼而沒有地址碼。
舉個例子吧,某個指令系統 的指令長度為32位,操作碼長度為8位,地址長度也為8位,且第一條指令是加,第二條指令是減。當它收到一個 「」的指令時,先取出它的前8位操作碼,即00000010,分析得出這是一個減法操作,有3個地址,分別是 兩個源操作數地址和一個目的地址。於是,CPU就到內存地址00000100處取出被減數,到00000001處取出減數,送到ALU中進行減法運算,然後 把結果送到00000110處。
這只是一個相當簡單化的例子,實際情況要復雜的多
2、 指令的分類與定址 方式
一般說來,現在的指令系統有以下幾種類型的指令:
(1)算術邏輯運算指令
算術邏輯運算 指令包括加減乘除等算術運算指令,以及與或非異或等邏輯運算指令。現在的指令系統還加入了一些十進制運算指令以及字元串運算指令等。
(2)浮點運算指令
用於對浮點數進行運算。浮點運算要大大復雜於整數運算,所以CPU中一般還會有專門負責浮點運 算的浮點運算單元。現在的浮點指令中一般還加入了向量指令,用於直接對矩陣進行運算,對於現在的多媒體和3D處理很有用。
(3)位 操作指令
學過C的人應該都知道C語言中有一組位操作語句,相對應的,指令系統中也有一組位操作指令,如左移一位右移 一位等。對於計算機內部以二進制不碼表示的數據來說,這種操作是非常簡單快捷的。
(4)其他指令
上面三種都是 運算型指令,除此之外還有許多非運算的其他指令。這些指令包括:數據傳送指令、堆棧操作指令、轉移類指令、輸入輸出指令和一些比較特 殊的指令,如特權指令、多處理器控制指令和等待、停機、空操作等指令。
對於指令中的地址碼,也會有許多不同的定址 (編址)方式,主要有直接定址,間接定址,寄存器定址,基址定址,變址定址等,某些復雜的指令系統會有幾十種甚至更多的定址方式。
3、 CISC與RISC
CISC,Complex Instruction Set Computer,復雜指令系統計算機。RISC,Reced Instruction Set Computer,精簡指令系統計算機。雖然這兩個名詞是針對計算機的,但下文我們仍然只對指令集進行研究。
(1)CISC 的產生、發展和現狀
一開始,計算機的指令系統只有很少一些基本指令,而其他的復雜指令全靠軟體編譯時通過簡單指令 的組合來實現。舉個最簡單的例子,一個a乘以b的操作就可以轉換為a個b相加來做,這樣就用不著乘法指令了。當然,最早的指令系統就已經 有乘法指令了,這是為什麼呢?因為用硬體實現乘法比加法組合來得快得多。
由於那時的計算機部件相當昂貴,而且速度 很慢,為了提高速度,越來越多的復雜指令被加入了指令系統中。但是,很快又有一個問題:一個指令系統的指令數是受指令操作碼的位數所 限制的,如果操作碼為8位,那麼指令數最多為256條(2的8次方)。
那麼怎麼辦呢?指令的寬度是很難增加的,聰明的設計師們又想出了 一種方案:操作碼擴展。前面說過,操作碼的後面跟的是地址碼,而有些指令是用不著地址碼或只用少量的地址碼的。那麼,就可以把操作碼 擴展到這些位置。
舉個簡單的例子,如果一個指令系統的操作碼為2位,那麼可以有00、01、10、11四條不同的指令。現在 把11作為保留,把操作碼擴展到4位,那麼就可以有00、01、10、1100、1101、1110、1111七條指令。其中1100、1101、1110、1111這四條指令 的地址碼必須少兩位。
然後,為了達到操作碼擴展的先決條件:減少地址碼,設計師們又動足了腦筋,發明了各種各樣的定址方式,如基 址定址、相對定址等,用以最大限度的壓縮地址碼長度,為操作碼留出空間。
就這樣,慢慢地,CISC指令系統就形成了, 大量的復雜指令、可變的指令長度、多種的定址方式是CISC的特點,也是CISC的缺點:因為這些都大大增加了解碼的難度,而在現在的高速硬 件發展下,復雜指令所帶來的速度提升早已不及在解碼上浪費點的時間。除了個人PC市場還在用x86指令集外,伺服器以及更大的系統都早已不 用CISC了。x86仍然存在的唯一理由就是為了兼容大量的x86平台上的軟體。
]:(2)RISC的產生、發展和現狀
1975年,IBM的設計師John Cocke研究了當時的IBM370CISC系統,發現其中占總指令數僅20%的簡單指令卻在程序調用中佔了80% ,而占指令數80%的復雜指令卻只有20%的機會用到。由此,他提出了RISC的概念。
事實證明,RISC是成功的。80年代末,各公司的RISC CPU如雨後春筍般大量出現,占據了大量的市場。到了90年代,x86的CPU如pentium和k5也開始使用先進的RISC核心。
RISC 的最大特點是指令長度固定,指令格式種類少,定址方式種類少,大多數是簡單指令且都能在一個時鍾周期內完成,易於設計超標量與流水線 ,寄存器數量多,大量操作在寄存器之間進行。由於下文所講的CPU核心大部分是講RISC核心,所以這里就不多介紹了,對於RISC核心的設計下 面會詳細談到。
RISC目前正如日中天,Intel的Itanium也將最終拋棄x86而轉向RISC結構。
二、CPU內核結構
好吧 ,下面來看看CPU。CPU內核主要分為兩部分:運算器和控制器。
(一) 運算器
1、 算術邏輯運算單元ALU(Arithmetic and Logic Unit)
ALU主要完成對二進制數據的定點算術運算(加減乘除)、邏輯運算(與或非異或)以及移位操作。在某些CPU中還 有專門用於處理移位操作的移位器。
通常ALU由兩個輸入端和一個輸出端。整數單元有時也稱為IEU(Integer Execution Unit)。我們通常所說的「CPU是XX位的」就是指ALU所能處理的數據的位數。
2、 浮點運算單元FPU(Floating Point Unit)
FPU主要負責浮點運算和高精度整數運算。有些FPU還具有向量運算的功能,另外一些則有專門的向量處理單元。
3、通用寄存器組
通用寄存器組是一組最快的存儲器,用來保存參加運算的操作數和中間結果。
在通用寄存器的設計上,RISC與CISC有 著很大的不同。CISC的寄存器通常很少,主要是受了當時硬體成本所限。比如x86指令集只有8個通用寄存器。所以,CISC的CPU執行是大多數時 間是在訪問存儲器中的數據,而不是寄存器中的。這就拖慢了整個系統的速度。而RISC系統往往具有非常多的通用寄存器,並採用了重疊寄存 器窗口和寄存器堆等技術使寄存器資源得到充分的利用。
對於x86指令集只支持8個通用寄存器的缺點,Intel和AMD的最新 CPU都採用了一種叫做「寄存器重命名」的技術,這種技術使x86CPU的寄存器可以突破8個的限制,達到32個甚至更多。不過,相對於RISC來說 ,這種技術的寄存器操作要多出一個時鍾周期,用來對寄存器進行重命名。
4、 專用寄存器
專用寄存器通常是一些狀 態寄存器,不能通過程序改變,由CPU自己控制,表明某種狀態。
(二) 控制器
運算器只能完成運算,而控 制器用於控制著整個CPU的工作。
1、 指令控制器
指令控制器是控制器中相當重要的部分,它要完成取指令、分析指令等操作,然 後交給執行單元(ALU或FPU)來執行,同時還要形成下一條指令的地址。
2、 時序控制器
時序控制器的作用是為每條 指令按時間順序提供控制信號。時序控制器包括時鍾發生器和倍頻定義單元,其中時鍾發生器由石英晶體振盪器發出非常穩定的脈沖信號,就 是CPU的主頻;而倍頻定義單元則定義了CPU主頻是存儲器頻率(匯流排頻率)的幾倍。
3、 匯流排控制器
匯流排控制器主要用於控制CPU 的內外部匯流排,包括地址匯流排、數據匯流排、控制匯流排等等。
4、中斷控制器
中斷控制器用於控制各種各樣的中斷請求,並根據優先 級的高低對中斷請求進行排隊,逐個交給CPU處理。
(三) CPU核心的設計
CPU的性能是由什麼決定的呢?單純的一個ALU速度在一個CPU中並不起決定性作用,因為ALU的速度都差不多。而一個CPU的性能表現的決 定性因素就在於CPU內核的設計。
1、超標量(Superscalar)
既然無法大幅提高ALU的速度,有什麼替代的方法呢?並行處理的方 法又一次產生了強大的作用。所謂的超標量CPU,就是只集成了多個ALU、多個FPU、多個解碼器和多條流水線的CPU,以並行處理的方式來提高 性能。
超標量技術應該是很容易理解的,不過有一點需要注意,就是不要去管「超標量」之前的那個數字,比如「9路超標量」,不同 的廠商對於這個數字有著不同的定義,更多的這只是一種商業上的宣傳手段。
2、流水線(Pipeline)
流水線是現代RISC核心的一 個重要設計,它極大地提高了性能。
對於一條具體的指令執行過程,通常可以分為五個部分:取指令,指令解碼,取操作數,運算 (ALU),寫結果。其中前三步一般由指令控制器完成,後兩步則由運算器完成。按照傳統的方式,所有指令順序執行,那麼先是指令控制器工 作,完成第一條指令的前三步,然後運算器工作,完成後兩步,在指令控制器工作,完成第二條指令的前三步,在是運算器,完成第二條指令 的後兩部……很明顯,當指令控制器工作是運算器基本上在休息,而當運算器在工作時指令控制器卻在休息,造成了相當大的資源浪費。解決 方法很容易想到,當指令控制器完成了第一條指令的前三步後,直接開始第二條指令的操作,運算單元也是。這樣就形成了流水線系統,這是 一條2級流水線。
如果是一個超標量系統,假設有三個指令控制單元和兩個運算單元,那麼就可以在完成了第一條指令的取址工作後直 接開始第二條指令的取址,這時第一條指令在進行解碼,然後第三條指令取址,第二條指令解碼,第一條指令取操作數……這樣就是一個5級流 水線。很顯然,5級流水線的平均理論速度是不用流水線的4倍。
流水線系統最大限度地利用了CPU資源,使每個部件在每個時鍾周期都 工作,大大提高了效率。但是,流水線有兩個非常大的問題:相關和轉移。
在一個流水線系統中,如果第二條指令需要用到第一條指 令的結果,這種情況叫做相關。以上面哪個5級流水線為例,當第二條指令需要取操作數時,第一條指令的運算還沒有完成,如果這時第二條指 令就去取操作數,就會得到錯誤的結果。所以,這時整條流水線不得不停頓下來,等待第一條指令的完成。這是很討厭的問題,特別是對於比 較長的流水線,比如20級,這種停頓通常要損失十幾個時鍾周期。目前解決這個問題的方法是亂序執行。亂序執行的原理是在兩條相關指令中 插入不相關的指令,使整條流水線順暢。比如上面的例子中,開始執行第一條指令後直接開始執行第三條指令(假設第三條指令不相關),然 後才開始執行第二條指令,這樣當第二條指令需要取操作數時第一條指令剛好完成,而且第三條指令也快要完成了,整條流水線不會停頓。當 然,流水線的阻塞現象還是不能完全避免的,尤其是當相關指令非常多的時候。
另一個大問題是條件轉移。在上面的例子中,如果第 一條指令是一個條件轉移指令,那麼系統就會不清楚下面應該執行那一條指令?這時就必須等第一條指令的判斷結果出來才能執行第二條指令 。條件轉移所造成的流水線停頓甚至比相關還要嚴重的多。所以,現在採用分支預測技術來處理轉移問題。雖然我們的程序中充滿著分支,而 且哪一條分支都是有可能的,但大多數情況下總是選擇某一分支。比如一個循環的末尾是一個分支,除了最後一次我們需要跳出循環外,其他 的時候我們總是選擇繼續循環這條分支。根據這些原理,分支預測技術可以在沒有得到結果之前預測下一條指令是什麼,並執行它。現在的分 支預測技術能夠達到90%以上的正確率,但是,一旦預測錯誤,CPU仍然不得不清理整條流水線並回到分支點。這將損失大量的時鍾周期。所以 ,進一步提高分支預測的准確率也是正在研究的一個課題。
越是長的流水線,相關和轉移兩大問題也越嚴重,所以,流水線並不是越 長越好,超標量也不是越多越好,找到一個速度與效率的平衡點才是最重要的。
1、解碼器(Decode Unit)
這是x86CPU才有的東西,它的作用是把長度不定的x86指令轉換為長度固定的類似於RISC的指令,並交給RISC內核。解碼分為硬體解碼和微解碼 ,對於簡單的x86指令只要硬體解碼即可,速度較快,而遇到復雜的x86指令則需要進行微解碼,並把它分成若干條簡單指令,速度較慢且很復 雜。好在這些復雜指令很少會用到。
Athlon也好,PIII也好,老式的CISC的x86指令集嚴重製約了他們的性能表現。
2、一級緩存 和二級緩存(Cache)
以及緩存和二級緩存是為了緩解較快的CPU與較慢的存儲器之間的矛盾而產生的,以及緩存通常集成在CPU內核, 而二級緩存則是以OnDie或OnBoard的方式以較快於存儲器的速度運行。對於一些大數據交換量的工作,CPU的Cache顯得尤為重要。
2. 求基於pc機的硬體高速緩沖存儲器cache的性能分析與優化論文。迫切的求。或者有相關資料也行。越多越好。
高速緩沖存儲器Cache設計的關鍵技術分析
摘要:高速緩沖存儲器(Cache)技術是現代處理器設計中的核心技術之一。本文詳細討論了Cache設計中的重要內容,包括Cache設計的基本問題,Cache性能分析,Cache失效原因的分析以及Cache設計中一些折衷的考慮。
關鍵詞:高速緩沖存儲器;Cache;處理器;存儲體系
引言
在現代處理器設計中,Cache有效地解決了處理速度和存儲速度之間的匹配問題,從而成為RISC技術成功的一項重要的支撐技術。現代計算機幾乎沒有不含Cache的。在很多機器中,還採用了多級Cache結構。可以說,Cache和流水線共同構成了RISC成功的兩大支柱。本文將詳細討論Cache設計中的一些重要問題。
Cache設計中的四大基本問題
映射方式
相對於主存來說,Cache是一個小存儲器。因此主存的塊到Cache的行的映射是一種多到一映射。通常有三種映射策略:
a)直接映射
主存的一個塊只能對應Cache的某一特定行。該方案中Cache被分為若干行,主存塊號i對應的Cache行號為i對Cache行數的模。
b)全相連映射
主存的一個塊可以存放在Cache中的任何行。
c)組相連映射
Cache行被分為M組,每組包含N行。主存的一個塊和一個特定的組相對應,可存放在該組的任何一行。主存塊號I映射成Cache的組號為I對Cache組數M的模。其中每組的行數N常被稱為Cache的路數。
不難看到,直接映射和全相聯可以看作是組相聯方案的特殊形式。全相聯命中率最高,但實現最復雜;直接映射實現最簡單,但命中率較低。採用組相聯是一種折衷方式,在總容量一定後,考慮組數M,路數N,及行中位元組數L之間的配合關系。
映射機構
這是映射方式的實現問題。在Cache中為每個行設置了一個標志以指明該行對應的主存塊地址。每個Cache行的標志中可包含一些特定信息,根據這些特定信息可以檢測它們是否和來自CPU的塊地址相匹配。由於速度對Cache至關重要,所以應該對所有可能的標志行並行查找。
另外,我們必需判斷出Cache中的塊中是否存放著有效信息。通用解決方法是在標志上增加一個有效位,以指明該標志是否包含有效地址。若有效位未設置,則不能對其進行匹配。由於每個Cache行都需要一個標志,所以增大行的大小對減小標志存儲器佔Cache總成本的比例是有益的。
替換策略
對於直接映射方式,在失效時只能對一個塊進行替換,是最為簡單的。但是對全相聯和組相聯方式,出現失效時需要在多個塊中進行選擇。這是我們有如下三種基本替換策略:
a)隨機替換策略
這種策略就是隨機的在候選塊中選擇一個進行替換。由於純粹的隨機選擇會給硬體調試帶來很大的困難,所以在一些系統中實際採用一種具有可再現能力的偽隨機策略。
b)最近最少使用策略(LRU)
為了減少替換出最近可能使用的信息的機會,可以對塊的訪問情況進行記錄。在發生Cache失效時,利用訪問的時間局部性現象,替換出候選塊中最近最少被訪問的存儲塊。
c)先進先出策略(FIFO)
這種策略在Cache失效時,替換掉存放在Cache中時間最長的候選存儲塊。
試驗數據證明隨機替換策略一般比先進先出策略性能要好,而實現也更簡單。所以我們只對隨機替換策略和LRU策略進行比較分析。隨機策略的一個重要性質就是易於硬體實現。隨著可記錄塊數的增多,LRU策略的實現成本迅速增加,而性能改進一般並不十分明顯。表1顯示了LRU策略和隨機策略在實效率方面的一些情況。可以看出,LRU在較小的Cache中比在較大的Cache中起著更重要的作用。
存儲器的寫策略
對Cache主要進行的是讀操作,統計數據表明通常程序的讀操作至少是寫操作的兩倍。但Amdahl定律提醒我們面向高性能的設計絕不能忽視寫操作的速度。對於寫命中情況,有兩種基本的寫策略:
a)寫透策略
信息將被同時寫到Cache行和低級存儲器的相應存儲塊中。
b)寫回策略
信息僅被寫到Cache的相應行中,當被改變的行被替換出Cache時,其內容才被寫回到主存相應的塊。
這兩種寫策略各有利弊。對於寫回策略,寫操作能以Cache的速度來進行,而且在一個塊內進行多次寫操作僅需要一次對低級存儲器的寫動作,有益於降低對存儲器的帶寬要求,使其在多處理器系統中備受重視。對於寫透策略,讀失效不會導致必須對低級存儲器進行寫操作,而且寫透操作更容易實現。寫透策略的另一優點是主存中總是保存著最新數據,這對於多處理器系統和I/O設計都是非常重要的。
對於寫失效情況,也有兩種選擇:
a)裝入寫
將塊裝入Cache,接著進行和命中情況相同的操作。
b)繞寫
對低級存儲器的相應內容進行改寫,但不裝入Cache。
上述兩種寫失效策略對寫透和寫回策略都適用,但對於寫回方式,一般採用裝入寫策略,便於該存儲塊能被Cache繼續利用;對於寫透方式,由於後續對該存儲塊的寫操作仍需寫到主存中,故以繞寫策略為好。
Cache的性能分析
之前本文介紹的各種技術的目的是減少平均訪存時間。但是,設計Cache的最終目的是減少CPU的執行時間。CPU時間可以分為CPU執行時間和訪存等待時間,即:
CPU時間=(CPU執行時鍾數+訪存等待時鍾數)×時鍾周期
由於Cache失效是訪存等待的最重要原因,我們假設訪存等待都是有Cache失
效產生的,以簡化分析。
訪存等待時鍾數=(存儲器訪問數/程序)×失效率×失效損失
將指令總數IC提取出來單獨考慮,可得:
CPU時間=IC×(CPI執行+(訪存數/指令)×失效率×失效損失)×時鍾周期長度
可見,對於越小CPI的處理器,設置Cache對CPI的影響程度越大。由於計算CPI時,Cache失效的損失以CPU時鍾周期為單位進行衡量,所以較高的CPU時鍾頻率將導致較大的失效損失。
根據CPU時間公式,可得採用Cache會增大處理器的CPI,但它可以有效減少平均訪存等待的周期數,所以它是有益於提高CPU性能的。對於CPI較小,特別是RISC處理器,Cache失效對CPI的影響很嚴重,在設計這種處理器的時候,必須降低Cache的失效率。
Cache失效原因的分析
導致Cache失效的主要原因有以下三種:
a)突發失效
對某存儲塊進行第一次訪問時,由於該塊不在Cache中,所以必須首先將存儲塊取到Cache中。這種情況又稱為冷啟失效。
b)容量失效
如果Cache不能容納某一程序執行過程中的所有存儲塊,那麼當程序又需使用某一曾在Cache中,但現在已替換出的存儲塊時,就會出現容量失效。
c)沖突失效
在採用組相聯或直接映射替換策略的Cache中,許多塊都必須映射到Cache中的某一塊中,由於這種原因使得當程序又需要使用某一曾在Cache中,但現在已被替換出的存儲塊時,就會出現沖突失效。
全相聯Cache中沒有沖突失效,但增加相聯度在意味著增加成本,而且可能延長訪問時間,這樣就會降低處理器的整體性能。要減少容量失效,就要增加Cache的容量。上層存儲器容量太小,就會頻繁產生抖動現象,這意味著機器將以接近低級存儲器的速度運行。增加存儲塊的大小可以減小突發失效的數目,但這又會增加沖突失效的可能。這就需要在Cache的設計工作中,綜合考慮三種失效情況,確定折衷的設計方案。
結束語
在現代處理器設計中,Cache有效地解決了處理速度和存儲速度之間的匹配問題,從而成為現代處理器不可缺少的核心技術之一。在設計中應充分考慮各種條件的制約,權衡各種因素,才能充分提高系統的性能。
3. CPU專業名詞詳解
有很多朋友都想DIY自己的電腦,而最重要的部分-電腦處理器卻了解不深。電腦處理器簡稱CPU,它決定了電腦的大部分運行速度和性能。在購買電腦時,CPU也是衡量電腦價格的重要指標。為了方便廣大網友對CPU的認識,我特此進行電腦處理器科普,給大家收集史上最全的CPU專業名詞詳解。
1、 主頻
主頻也叫時鍾頻率,單位是兆赫(MHz)或千兆赫(GHz),用來表示CPU的運算、處理數據的速度。通常,主頻越高,CPU處理數據的速度就越快。
CPU的主頻=外頻×倍頻系數。主頻和實際的運算速度存在一定的關系,但並不是一個簡單的線性關系。所以,CPU的主頻與CPU實際的運算能力是沒有直接關系的,主頻表示在CPU內數字脈沖信號震盪的速度。在Intel的處理器產品中,也可以看到這樣的例子:1 GHz Itanium晶元能夠表現得差不多跟2.66 GHz至強(Xeon)/Opteron一樣快,或是1.5 GHz Itanium 2大約跟4 GHz Xeon/Opteron一樣快。CPU的運算速度還要看CPU的流水線、匯流排等各方面的性能指標。
2、 外頻
外頻是CPU的基準頻率,單位是MHz。CPU的外頻決定著整塊主板的運行速度。通俗地說,在台式機中,所說的超頻,都是超CPU的外頻(當然一般情況下,CPU的倍頻都是被鎖住的)相信這點是很好理解的。但對於伺服器CPU來講,超頻是絕對不允許的。前面說到CPU決定著主板的運行速度,兩者是同步運行的,如果把伺服器CPU超頻了,改變了外頻,會產生非同步運行,(台式機很多主板都支持非同步運行)這樣會造成整個伺服器系統的不穩定。
絕大部分電腦系統中外頻與主板前端匯流排不是同步速度的,而外頻與前端匯流排(FSB)頻率又很容易被混為一談。
3、 匯流排頻率
前端匯流排(FSB)是將CPU連接到北橋晶元的匯流排。前端匯流排(FSB)頻率(即匯流排頻率)是直接影響CPU與內存直接數據交換速度。有一條公式可以計算,即數據帶寬=(匯流排頻率×數據位寬)/8,數據傳輸最大帶寬取決於所有同時傳輸的數據的寬度和傳輸頻率。比方,支持64位的至強Nocona,前端匯流排是800MHz,按照公式,它的數據傳輸最大帶寬是6.4GB/秒。
外頻與前端匯流排(FSB)頻率的區別:前端匯流排的速度指的是數據傳輸的速度,外頻是CPU與主板之間同步運行的速度。也就是說,100MHz外頻特指數字脈沖信號在每秒鍾震盪一億次;而100MHz前端匯流排指的是每秒鍾CPU可接受的數據傳輸量是100MHz×64bit÷8bit/Byte=800MB/s。
4、 倍頻系數
倍頻系數是指CPU主頻與外頻之間的相對比例關系。在相同的外頻下,倍頻越高CPU的頻率也越高。但實際上,在相同外頻的前提下,高倍頻的CPU本身意義並不大。這是因為CPU與系統之間數據傳輸速度是有限的,一味追求高主頻而得到高倍頻的CPU就會出現明顯的“瓶頸”效應-CPU從系統中得到數據的極限速度不能夠滿足CPU運算的速度。一般除了工程樣版的Intel的CPU都是鎖了倍頻的,少量的如Intel酷睿2核心的奔騰雙核E6500K和一些至尊版的CPU不鎖倍頻,而AMD之前都沒有鎖,AMD推出了黑盒版CPU(即不鎖倍頻版本,用戶可以自由調節倍頻,調節倍頻的超頻方式比調節外頻穩定得多)。
5、 CPU的位和字長
位:在數字電路和電腦技術中採用二進制,代碼只有“0”和“1”,其中無論是“0”或是“1”在CPU中都是一“位”。
字長:電腦技術中對CPU在單位時間內(同一時間)能一次處理的二進制數的位數叫字長。所以能處理字長為8位數據的CPU通常就叫8位的CPU。同理32位的CPU就能在單位時間內處理字長為32位的二進制數據。位元組和字長的區別:由於常用的英文字元用8位二進制就可以表示,所以通常就將8位稱為一個位元組。字長的長度是不固定的,對於不同的CPU、字長的長度也不一樣。8位的CPU一次只能處理一個位元組,而32位的CPU一次就能處理4個位元組,同理字長為64位的CPU一次可以處理8個位元組。
6、 緩存
緩存大小也是CPU的重要指標之一,而且緩存的結構和大小對CPU速度的影響非常大,CPU內緩存的運行頻率極高,一般是和處理器同頻運作,工作效率遠遠大於系統內存和硬碟。實際工作時,CPU往往需要重復讀取同樣的數據塊,而緩存容量的增大,可以大幅度提升CPU內部讀取數據的命中率,而不用再到內存或者硬碟上尋找,以此提高系統性能。但是由於CPU晶元面積和成本的因素來考慮,緩存都很小。
L1Cache(一級緩存) 是CPU第一層高速緩存,分為數據緩存和指令緩存。內置的L1高速緩存的容量和結構對CPU的性能影響較大,不過高速緩沖存儲器均由靜態RAM組成,結構較復雜,在CPU管芯面積不能太大的情況下,L1級高速緩存的容量不可能做得太大。一般伺服器CPU的L1緩存的容量通常在32-256KB。
L2Cache(二級緩存) 是CPU的第二層高速緩存,分內部和外部兩種晶元。內部的晶元二級緩存運行速度與主頻相同,而外部的二級緩存則只有主頻的一半。L2高速緩存容量也會影響CPU的性能,原則是越大越好,以前家庭用CPU容量最大的是512KB,筆記本電腦中也可以達到2M,而伺服器和工作站上用CPU的L2高速緩存更高,可以達到8M以上。
L3Cache(三級緩存) ,分為兩種,早期的是外置,內存延遲,同時提升大數據量計算時處理器的性能。降低內存延遲和提升大數據量計算能力對游戲都很有幫助。而在伺服器領域增加L3緩存在性能方面仍然有顯著的提升。比方具有較大L3緩存的配置利用物理內存會更有效,故它比較慢的磁碟I/O子系統可以處理更多的數據請求。具有較大L3緩存的處理器提供更有效的文件系統緩存行為及較短消息和處理器隊列長度。
其實最早的L3緩存被應用在AMD發布的K6-III處理器上,當時的L3緩存受限於製造工藝,並沒有被集成進晶元內部,而是集成在主板上。在只能夠和系統匯流排頻率同步的L3緩存同主內存其實差不了多少。後來使用L3緩存的是英特爾為伺服器市場所推出的Itanium處理器。接著就是P4EE和至強MP。Intel還打算推出一款9MB L3緩存的Itanium2處理器,和以後24MB L3緩存的雙核心Itanium2處理器。
但基本上L3緩存對處理器的性能提高顯得不是很重要,比方配備1MB L3緩存的Xeon MP處理器卻仍然不是Opteron的對手,由此可見前端匯流排的增加,要比緩存增加帶來更有效的性能提升。
7. CPU擴展指令集
CPU依靠指令來計算和控制系統,每款CPU在設計時就規定了一系列與其硬體電路相配合的指令系統。指令的強弱也是CPU的重要指標,指令集是提高微處理器效率的最有效工具之一。從現階段的主流體系結構講,指令集可分為復雜指令集和精簡指令集兩部分,而從具體運用看,如Intel的MMX(Multi Media Extended)、SSE、 SSE2(Streaming-Single instruction multiple data-Extensions 2)、SEE3和AMD的3DNow!等都是CPU的擴展指令集,分別增強了CPU的多媒體、圖形圖象和Internet等的處理能力。我們通常會把CPU的擴展指令集稱為"CPU的指令集"。SSE3指令集也是目前規模最小的指令集,此前MMX包含有57條命令,SSE包含有50條命令,SSE2包含有144條命令,SSE3包含有13條命令。目前SSE3也是最先進的指令集,英特爾Prescott處理器已經支持SSE3指令集,AMD會在未來雙核心處理器當中加入對SSE3指令集的支持,全美達的處理器也將支持這一指令集。
8. CPU內核和I/O工作電壓
從586CPU開始,CPU的工作電壓分為內核電壓和I/O電壓兩種,通常CPU的核心電壓小於等於I/O電壓。其中內核電壓的大小是根據CPU的生產工藝而定,一般製作工藝越小,內核工作電壓越低;I/O電壓一般都在1.6~5V。低電壓能解決耗電過大和發熱過高的問題。
9. 製造工藝
製造工藝的微米是指IC內電路與電路之間的距離。製造工藝的趨勢是向密集度愈高的方向發展。密度愈高的IC電路設計,意味著在同樣大小面積的IC中,可以擁有密度更高、功能更復雜的電路設計。最近官方已經表示有 32nm 的製造工藝了。
10. 指令集
(1) CISC指令集
CISC指令集,也稱為復雜指令集,英文名是CISC,(Complex Instruction Set Computer的縮寫)。在CISC微處理器中,程序的各條指令是按順序串列執行的,每條指令中的各個操作也是按順序串列執行的。順序執行的優點是控制簡單,但計算機各部分的利用率不高,執行速度慢。其實它是英特爾生產的x86系列(也就是IA-32架構)CPU及其兼容CPU,如AMD、VIA的。即使是現在新起的X86-64(也被成AMD64)都是屬於CISC的范疇。
要知道什麼是指令集還要從當今的X86架構的CPU說起。X86指令集是Intel為其第一塊16位CPU(i8086)專門開發的,IBM1981年推出的世界第一台PC機中的CPU―i8088(i8086簡化版)使用的也是X86指令,同時電腦中為提高浮點數據處理能力而增加了X87晶元,以後就將X86指令集和X87指令集統稱為X86指令集。
雖然隨著CPU技術的不斷發展,Intel陸續研製出更新型的i80386、i80486直到過去的PII至強、PIII至強、Pentium 3,最後到今天的Pentium 4系列、至強(不包括至強Nocona),但為了保證電腦能繼續運行以往開發的各類應用程序以保護和繼承豐富的軟體資源,所以Intel公司所生產的所有CPU仍然繼續使用X86指令集,所以它的CPU仍屬於X86系列。由於Intel X86系列及其兼容CPU(如AMD Athlon MP、)都使用X86指令集,所以就形成了今天龐大的X86系列及兼容CPU陣容。x86CPU目前主要有intel的伺服器CPU和AMD的伺服器CPU兩類。
(2) RISC指令集
RISC是英文“Reced Instruction Set Computing ”的縮寫,中文意思是“精簡指令集”。它是在CISC指令系統基礎上發展起來的,有人對CISC機進行測試表明,各種指令的使用頻度相當懸殊,最常使用的是一些比較簡單的指令,它們僅占指令總數的20%,但在程序中出現的頻度卻佔80%。復雜的指令系統必然增加微處理器的復雜性,使處理器的研製時間長,成本高。並且復雜指令需要復雜的操作,必然會降低計算機的速度。基於上述原因,20世紀80年代RISC型CPU誕生了,相對於CISC型CPU ,RISC型CPU不僅精簡了指令系統,還採用了一種叫做“超標量和超流水線結構”,大大增加了並行處理能力。RISC指令集是高性能CPU的發展方向。它與傳統的CISC(復雜指令集)相對。相比而言,RISC的指令格式統一,種類比較少,定址方式也比復雜指令集少。當然處理速度就提高很多了。目前在中高檔伺服器中普遍採用這一指令系統的CPU,特別是高檔伺服器全都採用RISC指令系統的CPU。RISC指令系統更加適合高檔伺服器的操作系統UNIX,現在Linux也屬於類似UNIX的操作系統。RISC型CPU與Intel和AMD的CPU在軟體和硬體上都不兼容。
目前,在中高檔伺服器中採用RISC指令的CPU主要有以下幾類:PowerPC處理器、SPARC處理器、PA-RISC處理器、MIPS處理器、Alpha處理器。
(3) IA-64
EPIC(Explicitly Parallel Instruction Computers,精確並行指令計算機)是否是RISC和CISC體系的繼承者的爭論已經有很多,單以EPIC體系來說,它更像Intel的處理器邁向RISC體系的重要步驟。從理論上說,EPIC體系設計的CPU,在相同的主機配置下,處理Windows的應用軟體比基於Unix下的應用軟體要好得多。
Intel採用EPIC技術的伺服器CPU是安騰Itanium(開發代號即Merced)。它是64位處理器,也是IA-64系列中的第一款。微軟也已開發了代號為Win64的操作系統,在軟體上加以支持。在Intel採用了X86指令集之後,它又轉而尋求更先進的64-bit微處理器,Intel這樣做的原因是,它們想擺脫容量巨大的x86架構,從而引入精力充沛而又功能強大的指令集,於是採用EPIC指令集的IA-64架構便誕生了。IA-64 在很多方面來說,都比x86有了長足的進步。突破了傳統IA32架構的許多限制,在數據的處理能力,系統的穩定性、安全性、可用性、可觀理性等方面獲得了突破性的提高。
IA-64微處理器最大的缺陷是它們缺乏與x86的兼容,而Intel為了IA-64處理器能夠更好地運行兩個朝代的軟體,它在IA-64處理器上(Itanium、Itanium2 ……)引入了x86-to-IA-64的解碼器,這樣就能夠把x86指令翻譯為IA-64指令。這個解碼器並不是最有效率的解碼器,也不是運行x86代碼的最好途徑(最好的途徑是直接在x86處理器上運行x86代碼),因此Itanium 和Itanium2在運行x86應用程序時候的性能非常糟糕。這也成為X86-64產生的根本原因。
(4) X86-64 (AMD64 / EM64T)
HAMD公司設計,可以在同一時間內處理64位的整數運算,並兼容於X86-32架構。其中支持64位邏輯定址,同時提供轉換為32位定址選項;但數據操作指令默認為32位和8位,提供轉換成64位和16位的選項;支持常規用途寄存器,如果是32位運算操作,就要將結果擴展成完整的64位。這樣,指令中有“直接執行”和“轉換執行”的區別,其指令欄位是8位或32位,可以避免欄位過長。
x86-64(也叫AMD64)的產生也並非空穴來風,x86處理器的32bit定址空間限制在4GB內存,而IA-64的處理器又不能兼容x86。AMD充分考慮顧客的需求,加強x86指令集的功能,使這套指令集可同時支持64位的運算模式,因此AMD把它們的結構稱之為x86-64。在技術上AMD在x86-64架構中為了進行64位運算,AMD為其引入了新增了R8-R15通用寄存器作為原有X86處理器寄存器的擴充,但在而在32位環境下並不完全使用到這些寄存器。原來的寄存器諸如EAX、EBX也由32位擴張至64位。在SSE單元中新加入了8個新寄存器以提供對SSE2的支持。寄存器數量的增加將帶來性能的提升。與此同時,為了同時支持32和64位代碼及寄存器,x86-64架構允許處理器工作在以下兩種模式:Long Mode(長模式)和Legacy Mode(遺傳模式),Long模式又分為兩種子模式(64bit模式和Compatibility mode兼容模式)。該標准已經被引進在AMD伺服器處理器中的Opteron處理器。
而今年也推出了支持64位的EM64T技術,再還沒被正式命為EM64T之前是IA32E,這是英特爾64位擴展技術的名字,用來區別X86指令集。Intel的EM64T支持64位sub-mode,和AMD的X86-64技術類似,採用64位的線性平面定址,加入8個新的通用寄存器(GPRs),還增加8個寄存器支持SSE指令。與AMD相類似,Intel的64位技術將兼容IA32和IA32E,只有在運行64位操作系統下的時候,才將會採用IA32E。IA32E將由2個sub-mode組成:64位sub-mode和32位sub-mode,同AMD64一樣是向下兼容的。Intel的EM64T將完全兼容AMD的X86-64技術。現在Nocona處理器已經加入了一些64位技術,Intel的Pentium 4E處理器也支持64位技術。
應該說,這兩者都是兼容x86指令集的64位微處理器架構,但EM64T與AMD64還是有一些不一樣的地方,AMD64處理器中的NX位在Intel的處理器中將沒有提供。
11. 超流水線與超標量
在解釋超流水線與超標量前,先了解流水線(pipeline)。流水線是Intel首次在486晶元中開始使用的。流水線的工作方式就象工業生產上的裝配流水線。在CPU中由5―6個不同功能的電路單元組成一條指令處理流水線,然後將一條X86指令分成5―6步後再由這些電路單元分別執行,這樣就能實現在一個CPU時鍾周期完成一條指令,因此提高CPU的運算速度。經典奔騰每條整數流水線都分為四級流水,即指令預取、解碼、執行、寫回結果,浮點流水又分為八級流水。
超標量是通過內置多條流水線來同時執行多個處理器,其實質是以空間換取時間。而超流水線是通過細化流水、提高主頻,使得在一個機器周期內完成一個甚至多個操作,其實質是以時間換取空間。例如Pentium 4的流水線就長達20級。將流水線設計的步(級)越長,其完成一條指令的速度越快,因此才能適應工作主頻更高的CPU。但是流水線過長也帶來了一定副作用,很可能會出現主頻較高的CPU實際運算速度較低的現象,Intel的奔騰4就出現了這種情況,雖然它的主頻可以高達1.4G以上,但其運算性能卻遠遠比不上AMD 1.2G的速龍甚至奔騰III。
CPU封裝是採用特定的材料將CPU晶元或CPU模塊固化在其中以防損壞的保護措施,一般必須在封裝後CPU才能交付用戶使用。CPU的封裝方式取決於CPU安裝形式和器件集成設計,從大的分類來看通常採用Socket插座進行安裝的CPU使用PGA(柵格陣列)方式封裝,而採用Slot x槽安裝的CPU則全部採用SEC(單邊接插盒)的形式封裝。現在還有PLGA(Plastic Land Grid Array)、OLGA(Organic Land Grid Array)等封裝技術。由於市場競爭日益激烈,目前CPU封裝技術的發展方向以節約成本為主。
12、 多線程
多線程Simultaneous multithreading,簡稱SMT。SMT可通過復制處理器上的結構狀態,讓同一個處理器上的多個線程同步執行並共享處理器的執行資源,可最大限度地實現寬發射、亂序的超標量處理,提高處理器運算部件的利用率,緩和由於數據相關或Cache未命中帶來的訪問內存延時。當沒有多個線程可用時,SMT處理器幾乎和傳統的寬發射超標量處理器一樣。SMT最具吸引力的是只需小規模改變處理器核心的設計,幾乎不用增加額外的成本就可以顯著地提升效能。多線程技術則可以為高速的運算核心准備更多的待處理數據,減少運算核心的閑置時間。這對於桌面低端系統來說無疑十分具有吸引力。Intel從3.06GHz Pentium 4開始,所有處理器都將支持SMT技術。
13、 多核心
多核心,也指單晶元多處理器(Chip multiprocessors,簡稱CMP)。CMP是由美國斯坦福大學提出的,其思想是將大規模並行處理器中的SMP(對稱多處理器)集成到同一晶元內,各個處理器並行執行不同的進程。與CMP比較, SMT處理器結構的靈活性比較突出。但是,當半導體工藝進入0.18微米以後,線延時已經超過了門延遲,要求微處理器的設計通過劃分許多規模更小、局部性更好的基本單元結構來進行。相比之下,由於CMP結構已經被劃分成多個處理器核來設計,每個核都比較簡單,有利於優化設計,因此更有發展前途。
14、 SMP
SMP(Symmetric Multi-Processing),對稱多處理結構的簡稱,是指在一個計算機上匯集了一組處理器(多CPU),各CPU之間共享內存子系統以及匯流排結構。在這種技術的支持下,一個伺服器系統可以同時運行多個處理器,並共享內存和其他的主機資源。像雙至強,也就是我們所說的二路,這是在對稱處理器系統中最常見的一種(至強MP可以支持到四路,AMD Opteron可以支持1-8路)。也有少數是16路的。但是一般來講,SMP結構的機器可擴展性較差,很難做到100個以上多處理器,常規的一般是8個到16個,不過這對於多數的用戶來說已經夠用了。在高性能伺服器和工作站級主板架構中最為常見,像UNIX伺服器可支持最多256個CPU的系統。
構建一套SMP系統的必要條件是:支持SMP的硬體包括主板和CPU;支持SMP的系統平台,再就是支持SMP的應用軟體。
為了能夠使得SMP系統發揮高效的性能,操作系統必須支持SMP系統,如WINNT、LINUX、以及UNIX等等32位操作系統。即能夠進行多任務和多線程處理。多任務是指操作系統能夠在同一時間讓不同的CPU完成不同的任務;多線程是指操作系統能夠使得不同的CPU並行的完成同一個任務。
要組建SMP系統,對所選的CPU有很高的要求,首先、CPU內部必須內置APIC(Advanced Programmable Interrupt Controllers)單元。Intel 多處理規范的核心就是高級可編程中斷控制器(Advanced Programmable Interrupt Controllers--APICs)的使用;再次,相同的產品型號,同樣類型的CPU核心,完全相同的運行頻率;最後,盡可能保持相同的產品序列編號,因為兩個生產批次的CPU作為雙處理器運行的時候,有可能會發生一顆CPU負擔過高,而另一顆負擔很少的情況,無法發揮最大性能,更糟糕的是可能導致死機。
15、 NUMA技術
NUMA即非一致訪問分布共享存儲技術,它是由若干通過高速專用網路連接起來的獨立節點構成的系統,各個節點可以是單個的CPU或是SMP系統。在NUMA中,Cache 的一致性有多種解決方案,需要操作系統和特殊軟體的支持。圖2中是Sequent公司NUMA系統的例子。這里有3個SMP模塊用高速專用網路聯起來,組成一個節點,每個節點可以有12個CPU。像Sequent的系統最多可以達到64個CPU甚至256個CPU。顯然,這是在SMP的基礎上,再用NUMA的技術加以擴展,是這兩種技術的結合。
16、 亂序執行技術
亂序執行(out-of-orderexecution),是指CPU允許將多條指令不按程序規定的順序分開發送給各相應電路單元處理的技術。這樣將根據個電路單元的狀態和各指令能否提前執行的具體情況分析後,將能提前執行的指令立即發送給相應電路單元執行,在這期間不按規定順序執行指令,然後由重新排列單元將各執行單元結果按指令順序重新排列。採用亂序執行技術的目的是為了使CPU內部電路滿負荷運轉並相應提高了CPU的運行程序的速度。分枝技術:(branch)指令進行運算時需要等待結果,一般無條件分枝只需要按指令順序執行,而條件分枝必須根據處理後的結果,再決定是否按原先順序進行。
17、 CPU內部的內存控制器
許多應用程序擁有更為復雜的讀取模式(幾乎是隨機地,特別是當cache hit不可預測的時候),並且沒有有效地利用帶寬。典型的這類應用程序就是業務處理軟體,即使擁有如亂序執行(out of order execution)這樣的CPU特性,也會受內存延遲的限制。這樣CPU必須得等到運算所需數據被除數裝載完成才能執行指令(無論這些數據來自CPU cache還是主內存系統)。當前低段系統的內存延遲大約是120-150ns,而CPU速度則達到了3GHz以上,一次單獨的內存請求可能會浪費200-300次CPU循環。即使在緩存命中率(cache hit rate)達到99%的情況下,CPU也可能會花50%的時間來等待內存請求的結束-比如因為內存延遲的緣故。
你可以看到Opteron整合的內存控制器,它的延遲,與晶元組支持雙通道DDR內存控制器的延遲相比來說,是要低很多的。英特爾也按照計劃的那樣在處理器內部整合內存控制器,這樣導致北橋晶元將變得不那麼重要。但改變了處理器訪問主存的方式,有助於提高帶寬、降低內存延時和提升處理器性能。
4. 內存儲器的發展歷程
對於用過386機器的人來說,30pin的內存,我想在很多人的腦海里,一定或多或少的還留有一絲印象,這一次我們特意收集的7根30pin的內存條,並拍成圖片,怎麼樣看了以後,是不是有一種久違的感覺呀!
30pin 反面 30pin 正面
下面是一些常見內存參數的介紹:
bit 比特,內存中最小單位,也叫「位」。它只有兩個狀態分別以0和1表示
byte位元組,8個連續的比特叫做一個位元組。
ns(nanosecond)
納秒,是一秒的10億分之一。內存讀寫速度的單位,其前面數字越小表示速度越快。
72pin正面 72pin反面
72pin的內存,可以說是計算機發展史的一個經典,也正因為它的廉價,以及速度上大幅度的提升,為電腦的普及,提供了堅實的基礎。由於用的人比較多,目前在市場上還可以買得到。
SIMM(Single In-line Memory Moles)
單邊接觸內存模組。是5X86及其較早的PC中常採用的內存介面方式。在486以前,多採用30針的SIMM介面,而在Pentuim中更多的是72針的SIMM介面,或者與DIMM介面類型並存。人們通常把72線的SIMM類型內存模組直接稱為72線內存。
ECC(Error Checking and Correcting)
錯誤檢查和糾正。與奇偶校驗類似,它不但能檢測到錯誤的地方,還可以糾正絕大多數錯誤。它也是在原來的數據位上外加位來實現的,這些額外的位是用來重建錯誤數據的。只有經過內存的糾錯後,計算機操作指令才可以繼續執行。當然在糾錯是系統的性能有著明顯的降低。
EDO DRAM(Extended Data Output RAM)
擴展數據輸出內存。是Micron公司的專利技術。有72線和168線之分、5V電壓、帶寬32bit、基本速度40ns以上。傳統的DRAM和FPM DRAM在存取每一bit數據時必須輸出行地址和列地址並使其穩定一段時間後,然後才能讀寫有效的數據,而下一個bit的地址必須等待這次讀寫操作完成才能輸出。EDO DRAM不必等待資料的讀寫操作是否完成,只要規定的有效時間一到就可以准備輸出下一個地址,由此縮短了存取時間,效率比FPM DRAM高20%—30%。具有較高的性/價比,因為它的存取速度比FPM DRAM快15%,而價格才高出5%。因此,成為中、低檔Pentium級別主板的標准內存。
DIMM(Dual In-line Memory Moles)
雙邊接觸內存模組。也就是說這種類型介面內存的插板兩邊都有數據介面觸片,這種介面模式的內存廣泛應用於現在的計算機中,通常為84針,由於是雙邊的,所以共有84×2=168線接觸,所以人們常把這種內存稱為168線內存。
PC133
SDRAM(Synchronous Burst RAM)
同步突發內存。是168線、3.3V電壓、帶寬64bit、速度可達6ns。是雙存儲體結構,也就是有兩個儲存陣列,一個被CPU讀取數據的時候,另一個已經做好被讀取數據的准備,兩者相互自動切換,使得存取效率成倍提高。並且將RAM與CPU以相同時鍾頻率控制,使RAM與CPU外頻同步,取消等待時間,所以其傳輸速率比EDO DRAM快了13%。SDRAM採用了多體(Bank)存儲器結構和突發模式,能傳輸一整數據而不是一段數據。
SDRAM ECC 伺服器專用內存
RDRAM(Rambus DRAM)
是美國RAMBUS公司在RAMBUSCHANNEL技術基礎上研製的一種存儲器。用於數據存儲的字長為16位,傳輸率極速指標有望達到600MHz。以管道存儲結構支持交叉存取同時執行四條指令,單從封裝形式上看,與DRAM沒有什麼不同,但在發熱量方面與100MHz的SDRAM大致相當。因為它的圖形加速性能是EDO DRAM的3-10倍,所以目前主要應用於高檔顯卡上做顯示內存。
Direct RDRAM
是RDRAM的擴展,它使用了同樣的RSL,但介面寬度達到16位,頻率達到800MHz,效率更高。單個傳輸率可達到1.6GB/s,兩個的傳輸率可達到3.2GB/s。
點評:
30pin和72pin的內存,早已退出市場,現在市場上主流的內存,是SDRAM,而SDRAM的價格越降越底,對於商家和廠家而言,利潤空間已縮到了極限,賠錢的買賣,有誰願意去做了?再者也沒有必要,畢竟廠家或商家們總是在朝著向「錢」的方向發展。
隨著 INTEL和 AMD兩大公司 CPU生產飛速發展,以及各大板卡廠家的支持,RAMBUS 和 DDRAM 也得到了更快的發展和普及,究竟哪一款會成為主流,哪一款更適合用戶,市場終究會證明這一切的。
機存取存儲器是電腦的記憶部件,也被認為是反映集成電路工藝水平的部件。各種存儲器中以動態存儲器(DRAM)的存儲容量為最大,使用最為普及,幾十年間它的存儲量擴大了幾千倍,存取數據的速度提高40多倍。存儲器的集成度的提高是靠不斷縮小器件尺寸達到的。尺寸的縮小,對集成電路的設計和製造技術提出了極為苛刻的要求,可以說是只有一代新工藝的突破,才有一代集成電路。
動態讀寫存儲器DRAM(Dynamic Random Access MeMory)是利用MOS存儲單元分布電容上的電荷來存儲數據位,由於電容電荷會泄漏,為了保持信息不丟失,DRAM需要不斷周期性地對其刷新。由於這種結構的存儲單元所需要的MOS管較少,因此DRAM的集成度高、功耗也小,同時每位的價格最低。DRAM一般都用於大容量系統中。DRAM的發展方向有兩個,一是高集成度、大容量、低成本,二是高速度、專用化。
從1970年Intel公司推出第一塊1K DRAM晶元後,其存儲容量基本上是按每三年翻兩番的速度發展。1995年12月韓國三星公司率先宣布利用0.16μm工藝研製成功集成度達10億以上的1000M位的高速(3lns)同步DRAM。這個領域的競爭非常激烈,為了解決巨額投資和共擔市場風險問題,世界范圍內的各大半導體廠商紛紛聯合,已形成若干合作開發的集團格局。
1996年市場上主推的是4M位和16M位DRAM晶元,1997年以16M位為主,1998年64M位大量上市。64M DRAM的市場佔有率達52%;16M DRAM的市場佔有率為45%。1999年64M DRAM市場佔有率已提高到78%,16M DRAM佔1%。128M DRAM已經普及,明年將出現256M DRAM。
高性能RISC微處理器的時鍾已達到100MHz~700MHz,這種情況下,處理器對存儲器的帶寬要求越來越高。為了適應高速CPU構成高性能系統的需要,DRAM技術在不斷發展。在市場需求的驅動下,出現了一系列新型結構的高速DRAM。例如EDRAM、CDRAM、SDRAM、RDRAM、SLDRAM、DDR DRAM、DRDRAM等。為了提高動態讀寫存儲器訪問速度而採用不同技術實現的DRAM有:
(1) 快速頁面方式FPM DRAM
快速頁面方式FPM(Fast Page Mode)DRAM已經成為一種標准形式。一般DRAM存儲單元的讀寫是先選擇行地址,再選擇列地址,事實上,在大多數情況下,下一個所需要的數據在當前所讀取數據的下一個單元,即其地址是在同一行的下一列,FPM DRAM可以通過保持同一個行地址來選擇不同的列地址實現存儲器的連續訪問。減少了建立行地址的延時時間從而提高連續數據訪問的速度。但是當時鍾頻率高於33MHz時,由於沒有足夠的充電保持時間,將會使讀出的數據不可靠。
(2) 擴展數據輸出動態讀寫存儲器EDO DRAM
在FPM技術的基礎上發展起來的擴展數據輸出動態讀寫存儲器EDODRAM(Extended Data Out DRAM),是在RAM的輸出端加一組鎖存器構成二級內存輸出緩沖單元,用以存儲數據並一直保持到數據被可靠地讀取時為止,這樣就擴展了數據輸出的有效時間。EDODRAM可以在50MHz時鍾下穩定地工作。
由於只要在原DRAM的基礎上集成成本提高並不多的EDO邏輯電路,就可以比較有效地提高動態讀寫存儲器的性能,所以在此之前,EDO DRAM曾成為動態讀寫存儲器設計的主流技術和基本形式。
(3) 突發方式EDO DRAM
在EDO DRAM存儲器的基礎上,又發展了一種可以提供更高有效帶寬的動態讀寫存儲器突發方式EDO DRAM(Burst EDO DRAM)。這種存儲器可以對可能所需的4個數據地址進行預測並自動地預先形成,它把可以穩定工作的頻率提高到66MHz。
(4) 同步動態讀寫存儲器SDRAM
SDRAM(Synchronous DRAM)是通過同步時鍾對控制介面的操作和安排片內隔行突發方式地址發生器來提高存儲器的性能。它僅需要一個首地址就可以對一個存儲塊進行訪問。所有的輸入采樣如輸出有效都在同一個系統時鍾的上升沿。所使用的與CPU同步的時鍾頻率可以高達66MHz~100MHz。它比一般DRAM增加一個可編程方式寄存器。採用SDRAM可大大改善內存條的速度和性能,系統設計者可根據處理器要求,靈活地採用交錯或順序脈沖。
Infineon Technologies(原Siemens半導體)今年已批量供應256Mit SDRAM。其SDRAM用0.2μm技術生產,在100MHz的時鍾頻率下輸出時間為10ns。
(5) 帶有高速緩存的動態讀寫存儲器CDRAM
CDRAM(Cached DRAM)是日本三菱電氣公司開發的專有技術,1992年推出樣品,是通過在DRAM晶元,集成一定數量的高速SRAM作為高速緩沖存儲器Cache和同步控制介面,來提高存儲器的性能。這種晶元用單一+3.3V電源,低壓TTL輸入輸出電平。目前三菱公司可以提供的CDRAM為4Mb和16Mb,其片內Cache為16KB,與128位內部匯流排配合工作,可以實現100MHz的數據訪問。流水線式存取時間為7ns。
(6) 增強型動態讀寫存儲器EDRAM(Enhanced DRAM)
由Ramtron跨國公司推出的帶有高速緩沖存儲器的DRAM產品稱作增強型動態讀寫存儲器EDRAM(Enhanced DRAM),它採用非同步操作方式,單一+5V工作電源,CMOS或TTL輸入輸出電平。由於採用一種改進的DRAM 0.76μm CMOS工藝和可以減小寄生電容和提高晶體管增益的結構技術,其性能大大提高,行訪問時間為35ns,讀/寫訪問時間可以提高到65ns,頁面寫入周期時間為15ns。EDRAM還在片內DRAM存儲矩陣的列解碼器上集成了2K位15ns的靜態RAM高速緩沖存儲器Cache,和後寫寄存器以及另外的控制線,並允許SRAM Cache和DRAM獨立操作。每次可以對一行數據進行高速緩沖。它可以象標準的DRAM對任一個存儲單元用頁面或靜態列訪問模式進行操作,訪問時間只有15ns。當Cache未命中時,EDRAM就把新的一行載入到Cache中,並把選擇的存儲單元數據輸出,這需要花35ns。這種存儲器的突發數據率可以達到267Mbytes/s。
(7) RDRAM(Rambus DRAM)
Rambus DRAM是Rambus公司利用本身研製的一種獨特的介面技術代替頁面方式結構的一種新型動態讀寫存儲器。這種介面在處理機與DRAM之間使用了一種特殊的9位低壓負載發送線,用250MHz同步時鍾工作,位元組寬度地址與數據復用的串列匯流排介面。這種介面又稱作Rambus通道,這種通道嵌入到DRAM中就構成Rambus DRAM,它還可以嵌入到用戶定製的邏輯晶元或微處理機中。它通過使用250MHz時鍾的兩個邊沿可以使突發數據傳輸率達到500MHz。在採用Rambus通道的系統中每個晶元內部都有它自己的控制器,用來處理地址解碼和面頁高速緩存管理。由此一片存儲器子系統的容量可達512K位元組,並含有一個匯流排控制器。不同容量的存儲器有相同的引腳並連接在同一組匯流排上。Rambus公司開發了這種新型結構的DRAM,但是它本身並不生產,而是通過發放許可證的方式轉讓它的技術,已經得到生產許可的半導體公司有NEC、Fujitsu、Toshiba、Hitachi和LG等。
被業界看好的下一代新型DRAM有三種:雙數據傳輸率同步動態讀寫存儲器(DDR SDRAM)、同步鏈動態讀寫存儲器(SLDRAM)和Rambus介面DRAM(RDRAM)。
(1) DDR DRAM(Double Data Rate DRAM)
在同步動態讀寫存儲器SDRAM的基礎上,採用延時鎖定環(Delay-locked Loop)技術提供數據選通信號對數據進行精確定位,在時鍾脈沖的上升沿和下降沿都可傳輸數據(而不是第一代SDRAM僅在時鍾脈沖的下降沿傳輸數據),這樣就在不提高時鍾頻率的情況下,使數據傳輸率提高一倍,故稱作雙數據傳輸率(DDR)DRAM,它實際上是第二代SDRAM。由於DDR DRAM需要新的高速時鍾同步電路和符合JEDEC標準的存儲器模塊,所以主板和晶元組的成本較高,一般只能用於高檔伺服器和工作站上,其價格在中低檔PC機上可能難以接受。
(2) SLDRAM(Synchnonous Link DRAM)
這是由IBM、HP、Apple、NEC、Fujitsu、Hyundai、Micron、TI、Toshiba、Sansung和Siemens等業界大公司聯合制定的一個開放性標准,委託Mosaid Technologies公司設計,所以SLDRAM是一種原本最有希望成為高速DRAM開放性工業標準的動態讀寫存儲器。它是一種在原DDR DRAM基礎上發展的一種高速動態讀寫存儲器。它具有與DRDRAM相同的高數據傳輸率,但是它比其工作頻率要低;另外生產這種存儲器不需要支付專利使用費,使得製造成本較低,所以這種存儲器應該具有市場競爭優勢。但是由於SLDRAM聯盟是一個鬆散的聯合體,眾多成員之間難以協調一致,在研究經費投入上不能達成一致意見,加上Intel公司不支持這種標准,所以這種動態存儲器反而難以形成氣候,敵不過Intel公司鼎立支持的Rambus公司的DRDRAM。SLDRAM可用於通信和消費類電子產品,高檔PC和伺服器。
(3) DRDRAM(Direct Rambus DRAM)
從1996年開始,Rambus公司就在Intel公司的支持下制定新一代RDRAM標准,這就是DRDRAM(Direct RDRAM)。這是一種基於協議的DRAM,與傳統DRAM不同的是其引腳定義會隨命令而變,同一組引腳線可以被定義成地址,也可以被定義成控制線。其引腳數僅為正常DRAM的三分之一。當需要擴展晶元容量時,只需要改變命令,不需要增加硬體引腳。這種晶元可以支持400MHz外頻,再利用上升沿和下降沿兩次傳輸數據,可以使數據傳輸率達到800MHz。同時通過把數據輸出通道從8位擴展成16位,這樣在100MHz時就可以使最大數據輸出率達1.6Gb/s。東芝公司在購買了Rambus公司的高速傳輸介面技術專利後,於1998年9月首先推出72Mb的RDRAM,其中64Mb是數據存儲器,另外8Mb用於糾錯校驗,由此大大提高了數據讀寫可靠性。
Intel公司辦排眾議,堅定地推舉DRDRAM作為下一代高速內存的標准,目前在Intel公司對Micro、Toshiba和Samsung等公司組建DRDRAM的生產線和測試線投入資金。其他眾多廠商也在努力與其抗爭,最近AMD宣布至少今年推出的K7微處理器都不打算採用Rambus DRAM;據說IBM正在考慮放棄對Rambus的支持。當前市場上同樣是64Mb的DRAM,RDRAM就要比其他標準的貴45美元。
由此可見存儲器的發展動向是:大容量化,高速化, 多品種、多功能化,低電壓、低功耗化。
存儲器的工藝發展中有以下趨勢:CHMOS工藝代替NMOS工藝以降低功耗;縮小器件尺寸,外圍電路仍採用ECL結構以提高存取速度同時提高集成度;存儲電容從平面HI-C改為深溝式,保證尺寸減少後的電荷存儲量,以提高可靠性;電路設計中簡化外圍電路結構,注意降低雜訊,運用冗餘技術以提高質量和成品率;工藝中採用了多種新技術;使DRAM的存儲容量穩步上升,為今後繼續開發大容量的新電路奠定基礎。
從電子計算機中的處理器和存儲器可以看出ULSI前進的步伐和幾十年間的巨大變化。