❶ CPU的問題 高手來看看
這18條背下來,沒人敢和你忽悠CPU
1.主頻
主頻也叫時鍾頻率,單位是MHz,用來表示CPU的運算速度。CPU的主頻=外頻×倍頻系數。很多人認為主頻就決定著CPU的運行速度,這不僅是個片面的,而且對於伺服器來講,這個認識也出現了偏差。至今,沒有一條確定的公式能夠實現主頻和實際的運算速度兩者之間的數值關系,即使是兩大處理器廠家Intel和AMD,在這點上也存在著很塵慶大的爭議,我們從Intel的產品的發展趨勢,可以看出Intel很注重加強自身主頻的發展。像其他的處理器廠家,有人曾經拿過一快1G的全美達來做磨卜比較,它的運行效率相當於2G的Intel處理器。
所以,CPU的主頻與CPU實際的運算能力是沒有直接關系的,主頻表示在CPU內數字脈沖信號震盪的速度。在Intel的處理器產品中,我們也可以看到這樣的例子:1 GHz Itanium晶元能夠表現得差不多跟2.66 GHz Xeon/Opteron一樣快,或是1.5 GHz Itanium 2大約跟4 GHz Xeon/Opteron一樣快。CPU的運算速度還要看CPU的流水線的各方面的性能指標。
當然,主頻和實際的運算速度是有關的,只能說主頻僅派游握僅是CPU性能表現的一個方面,而不代表CPU的整體性能。
2.外頻
外頻是CPU的基準頻率,單位也是MHz。CPU的外頻決定著整塊主板的運行速度。說白了,在台式機中,我們所說的超頻,都是超CPU的外頻(當然一般情況下,CPU的倍頻都是被鎖住的)相信這點是很好理解的。但對於伺服器CPU來講,超頻是絕對不允許的。前面說到CPU決定著主板的運行速度,兩者是同步運行的,如果把伺服器CPU超頻了,改變了外頻,會產生非同步運行,(台式機很多主板都支持非同步運行)這樣會造成整個伺服器系統的不穩定。
目前的絕大部分電腦系統中外頻也是內存與主板之間的同步運行的速度,在這種方式下,可以理解為CPU的外頻直接與內存相連通,實現兩者間的同步運行狀態。外頻與前端匯流排(FS B)頻率很容易被混為一談,下面的前端匯流排介紹我們談談兩者的區別
3.前端匯流排(FS B)頻率
前端匯流排(FS B)頻率(即匯流排頻率)是直接影響CPU與內存直接數據交換速度。有一條公式可以計算,即數據帶寬=(匯流排頻率×數據帶寬)/8,數據傳輸最大帶寬取決於所有同時傳輸的數據的寬度和傳輸頻率。比方,現在的支持 6 4 位的至強Nocona,前端匯流排是800MHz,按照公式,它的數據傳輸最大帶寬是6 . 4GB/秒。
外頻與前端匯流排(FS B)頻率的區別:前端匯流排的速度指的是數據傳輸的速度,外頻是CPU與主板之間同步運行的速度。也就是說,100MHz外頻特指數字脈沖信號在每秒鍾震盪一千萬次;而100MHz前端匯流排指的是每秒鍾CPU可接受的數據傳輸量是100MHz×64bit÷8Byte/bit=800M B/s。
其實現在「HyperTransport」構架的出現,讓這種實際意義上的前端匯流排(FS B)頻率發生了變化。之前我們知道IA-32架構必須有三大重要的構件:內存控制器Hub (MCH) ,I/O控制器Hub和PCI Hub,像Intel很典型的晶元組 Intel 7501、Intel7505晶元組,為雙至強處理器量身定做的,它們所包含的MCH為CPU提供了頻率為533MHz的前端匯流排,配合DDR內存,前端匯流排帶寬可達到4.3GB/秒。但隨著處理器性能不斷提高同時給系統架構帶來了很多問題。而「HyperTransport」構架不但解決了問題,而且更有效地提高了匯流排帶寬,比方AMD Opteron處理器,靈活的HyperTransport I/O匯流排體系結構讓它整合了內存控制器,使處理器不通過系統匯流排傳給晶元組而直接和內存交換數據。這樣的話,前端匯流排(FS B)頻率在AMD Opteron處理器就不知道從何談起了。
4、CPU的位和字長
位:在數字電路和電腦技術中採用二進制,代碼只有「0」和「1」,其中無論是 「0」或是「1」在CPU中都是 一「位」。
字長:電腦技術中對CPU在單位時間內(同一時間)能一次處理的二進制數的位數叫字長。所以能處理字長為8位數據的CPU通常就叫8位的CPU。同理32位的CPU就能在單位時間內處理字長為32位的二進制數據。位元組和字長的區別:由於常用的英文字元用8位二進制就可以表示,所以通常就將8位稱為一個位元組。字長的長度是不固定的,對於不同的CPU、字長的長度也不一樣。8位的CPU一次只能處理一個位元組,而32位的CPU一次就能處理4個位元組,同理字長為6 4位的CPU一次可以處理8個位元組。 .倍頻系數
倍頻系數是指CPU主頻與外頻之間的相對比例關系。在相同的外頻下,倍頻越高CPU的頻率也越高。但實際上,在相同外頻的前提下,高倍頻的CPU本身意義並不大。這是因為CPU與系統之間數據傳輸速度是有限的,一味追求高倍頻而得到高主頻的CPU就會出現明顯的「瓶頸」效應—CPU從系統中得到數據的極限速度不能夠滿足CPU運算的速度。一般除了工程樣版的Intel的CPU都是鎖了倍頻的,而AMD之前都沒有鎖。
6.緩存
緩存大小也是CPU的重要指標之一,而且緩存的結構和大小對CPU速度的影響非常大,CPU內緩存的運行頻率極高,一般是和處理器同頻運作,工作效率遠遠大於系統內存和硬碟。實際工作時,CPU往往需要重復讀取同樣的數據塊,而緩存容量的增大,可以大幅度提升CPU內部讀取數據的命中率,而不用再到內存或者硬碟上尋找,以此提高系統性能。但是由於CPU晶元面積和成本的因素來考慮,緩存都很小。
L1 Cache(一級緩存)是CPU第一層高速緩存,分為數據緩存和指令緩存。內置的L1高速緩存的容量和結構對CPU的性能影響較大,不過高速緩沖存儲器均由靜態RAM組成,結構較復雜,在CPU管芯面積不能太大的情況下,L1級高速緩存的容量不可能做得太大。一般伺服器CPU的L1緩存的容量通常在32—256KB。
L2 Cache(二級緩存)是CPU的第二層高速緩存,分內部和外部兩種晶元。內部的晶元二級緩存運行速度與主頻相同,而外部的二級緩存則只有主頻的一半。L2高速緩存容量也會影響CPU的性能,原則是越大越好,現在家庭用CPU容量最大的是512KB,而伺服器和工作站上用CPU的L2高速緩存更高達256-1MB,有的高達2MB或者3MB。
L3 Cache(三級緩存),分為兩種,早期的是外置,現在的都是內置的。而它的實際作用即是,L3緩存的應用可以進一步降低內存延遲,同時提升大數據量計算時處理器的性能。降低內存延遲和提升大數據量計算能力對游戲都很有幫助。而在伺服器領域增加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中,可以擁有密度更高、功能更復雜的電路設計。現在主要的180nm、130nm、90nm。最近官方已經表示有65nm的製造工藝了。
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)
AMD公司設計,可以在同一時間內處理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。
12.封裝形式
CPU封裝是採用特定的材料將CPU晶元或CPU模塊固化在其中以防損壞的保護措施,一般必須在封裝後CPU才能交付用戶使用。CPU的封裝方式取決於CPU安裝形式和器件集成設計,從大的分類來看通常採用Socket插座進行安裝的CPU使用PGA(柵格陣列)方式封裝,而採用Slot x槽安裝的CPU則全部採用SEC(單邊接插盒)的形式封裝。現在還有PLGA(Plastic Land Grid Array)、OLGA(Organic Land Grid Array)等封裝技術。由於市場競爭日益激烈,目前CPU封裝技術的發展方向以節約成本為主。
13、多線程
同時多線程Simultaneous multithreading,簡稱SMT。SMT可通過復制處理器上的結構狀態,讓同一個處理器上的多個線程同步執行並共享處理器的執行資源,可最大限度地實現寬發射、亂序的超標量處理,提高處理器運算部件的利用率,緩和由於數據相關或Cache未命中帶來的訪問內存延時。當沒有多個線程可用時,SMT處理器幾乎和傳統的寬發射超標量處理器一樣。SMT最具吸引力的是只需小規模改變處理器核心的設計,幾乎不用增加額外的成本就可以顯著地提升效能。多線程技術則可以為高速的運算核心准備更多的待處理數據,減少運算核心的閑置時間。這對於桌面低端系統來說無疑十分具有吸引力。Intel從3.06GHz Pentium 4開始,所有處理器都將支持SMT技術。
14、多核心
多核心,也指單晶元多處理器(Chip multiprocessors,簡稱CMP)。CMP是由美國斯坦福大學提出的,其思想是將大規模並行處理器中的SMP(對稱多處理器)集成到同一晶元內,各個處理器並行執行不同的進程。與CMP比較, SMT處理器結構的靈活性比較突出。但是,當半導體工藝進入0.18微米以後,線延時已經超過了門延遲,要求微處理器的設計通過劃分許多規模更小、局部性更好的基本單元結構來進行。相比之下,由於CMP結構已經被劃分成多個處理器核來設計,每個核都比較簡單,有利於優化設計,因此更有發展前途。目前,IBM 的Power 4晶元和Sun的 MAJC5200晶元都採用了CMP結構。多核處理器可以在處理器內部共享緩存,提高緩存利用率,同時簡化多處理器系統設計的復雜度。
2005年下半年,Intel和AMD的新型處理器也將融入CMP結構。新安騰處理器開發代碼為Montecito,採用雙核心設計,擁有最少18MB片內緩存,採取90nm工藝製造,它的設計絕對稱得上是對當今晶元業的挑戰。它的每個單獨的核心都擁有獨立的L1,L2和L3 cache,包含大約10億支晶體管。
15、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負擔過高,而另一顆負擔很少的情況,無法發揮最大性能,更糟糕的是可能導致死機。
16、NUMA技術
NUMA即非一致訪問分布共享存儲技術,它是由若干通過高速專用網路連接起來的獨立節點構成的系統,各個節點可以是單個的CPU或是SMP系統。在NUMA中,Cache 的一致性有多種解決方案,需要操作系統和特殊軟體的支持。圖2中是Sequent公司NUMA系統的例子。這里有3個SMP模塊用高速專用網路聯起來,組成一個節點,每個節點可以有12個CPU。像Sequent的系統最多可以達到64個CPU甚至256個CPU。顯然,這是在SMP的基礎上,再用NUMA的技術加以擴展,是這兩種技術的結合。
17、亂序執行技術
亂序執行(out-of-orderexecution),是指CPU允許將多條指令不按程序規定的順序分開發送給各相應電路單元處理的技術。這樣將根據個電路單元的狀態和各指令能否提前執行的具體情況分析後,將能提前執行的指令立即發送給相應電路單元執行,在這期間不按規定順序執行指令,然後由重新排列單元將各執行單元結果按指令順序重新排列。採用亂序執行技術的目的是為了使CPU內部電路滿負荷運轉並相應提高了CPU的運行程序的速度。分枝技術:(branch)指令進行運算時需要等待結果,一般無條件分枝只需要按指令順序執行,而條件分枝必須根據處理後的結果,再決定是否按原先順序進行。
18、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內存控制器的延遲相比來說,是要低很多的。英特爾也按照計劃的那樣在處理器內部整合內存控制器,這樣導致北橋晶元將變得不那麼重要。但改變了處理器訪問主存的方式,有助於提高帶寬、降低內存延時和提升處理器性能
也是網上找的。
❷ 哪位高手能幫小弟解釋一下"二級緩存,前端匯流排,核心的製造工藝"這些CPU的專業名詞啊
二級緩存:CPU緩存(Cache Memory)位於CPU與內存之間的臨時存儲器,它的容量比內存小但交換速度快。在緩存中的數據是內存中的一小部分,但這一小部分是短時間內CPU即將訪問的,當CPU調用大量數據時,就可避開內存直接從緩存中調用,從而加快讀取速度。由此可見,在CPU中加入緩存是一種高效的解決方案,這樣整個內存儲器(緩存+內存)就變成了既有緩存的高速度,又有內存的大容量的存儲系統了。緩存對CPU的性能影響很大,主要是因為CPU的數據交換順序和CPU與緩存間的帶寬引起的。
緩存的工作原理是當CPU要讀取一個數據時,首先從緩存中查找,如旦鄭果找到就立即讀取並送給CPU處理;如果沒有找到,就用相對慢的速度從內存中讀取並送給CPU處理,同時把這個數據所在的數據塊調入緩存中,可以使得以後對整塊數據的讀取都從緩存中進行,不必再調用內存。
正是這樣的讀取機制使CPU讀取緩存的命中率非常高(大多數CPU可達90%左右),也就是說CPU下一次要讀取的數據90%都在緩存中,只有大約10%需要從內存讀取。這大大節省了CPU直接讀取內存的時間,也使CPU讀取數據時基本無需等待。總的來說,CPU讀取數據的順序是先緩存後內存。
最早先的CPU緩存是個整體的,而且容量很低,英特爾公司從Pentium時代開始把緩存進行了分類。當時集成在CPU內核中的緩存已不足以滿足CPU的需求,而製造工藝上的限制又不能大幅度提高緩存的容量。因此出現了集成在與CPU同一塊電路板上或主板上的緩存,此模稿頌時就把 CPU內核集成的緩存稱為一級緩存,而外部的稱為二級緩存。一級緩存中還分數據緩存(Data Cache,D-Cache)和指令緩存(Instruction Cache,I-Cache)。二者分別用來存放數據和執行這些數據的指令,而且兩者可以同時被CPU訪問,減少了爭用Cache所造成的沖突,提高了處理器效能。英特爾公司在推出Pentium 4處理器時,用新增的一種一級追蹤緩存替代指令緩存,容量為12KμOps,表示能存儲12K條微指令。
隨著CPU製造工藝的發展,二級緩存也能輕易的集成在CPU內核中,容量也在逐年提升。現在再用集成在CPU內部與否來定義一、二級緩存,已不確切。而且隨著二級緩存被集成入CPU內核中,以往二級緩存與CPU大差距分頻的情況也被改變,此時其以相同於主頻的速度工作,可以為CPU提供更高的傳輸速度。
二級緩存是CPU性能表現的關鍵之一,在CPU核心不變化的情況下,增加二級緩存容量能使性能大幅度提高。而同一核心的CPU高低端之分往往也是在二級緩存上有差異,由此可見二級緩存對於CPU的重要性。
CPU在緩存中找到有用的數據被稱為命中,當緩存中沒有CPU所需的數據時(這時稱為未命中),CPU才訪問內存。從理論上講,在一顆擁有二級緩存的CPU中,讀取一級緩存的命中率為80%。也就是說CPU一級緩存中找到的有用數據占數據總量的80%,剩下的20%從二級緩存中讀取。由於不能准確預測將要執行的數據,讀取二級緩存的命中率也在80%左右(從二級緩存讀到有用的數據占總數據的16%)。那麼還有的數據就不得不從內存調用,但這已經是一個相當小的比例了。目前的較高端的CPU中,還會帶有三級緩存,它是為讀取二級緩存後未命中的數據設計的—種緩存,在擁有三級緩存的CPU中,只有約5%的數據需要從內存中調用,這進一步提高了CPU的效率。
為了保證CPU訪問時有較高的命中率,緩存中的內容應該按一定的演算法替換。一種較常用的演算法是「最近最少使用演算法」(LRU演算法),敬則它是將最近一段時間內最少被訪問過的行淘汰出局。因此需要為每行設置一個計數器,LRU演算法是把命中行的計數器清零,其他各行計數器加1。當需要替換時淘汰行計數器計數值最大的數據行出局。這是一種高效、科學的演算法,其計數器清零過程可以把一些頻繁調用後再不需要的數據淘汰出緩存,提高緩存的利用率。
CPU產品中,一級緩存的容量基本在4KB到64KB之間,二級緩存的容量則分為128KB、256KB、512KB、1MB、2MB等。一級緩存容量各產品之間相差不大,而二級緩存容量則是提高CPU性能的關鍵。二級緩存容量的提升是由CPU製造工藝所決定的,容量增大必然導致CPU內部晶體管數的增加,要在有限的CPU面積上集成更大的緩存,對製造工藝的要求也就越高
前端匯流排:匯流排是將信息以一個或多個源部件傳送到一個或多個目的部件的一組傳輸線。通俗的說,就是多個部件間的公共連線,用於在各個部件之間傳輸信息。人們常常以MHz表示的速度來描述匯流排頻率。匯流排的種類很多,前端匯流排的英文名字是Front Side Bus,通常用FSB表示,是將CPU連接到北橋晶元的匯流排。計算機的前端匯流排頻率是由CPU和北橋晶元共同決定的。
北橋晶元負責聯系內存、顯卡等數據吞吐量最大的部件,並和南橋晶元連接。CPU就是通過前端匯流排(FSB)連接到北橋晶元,進而通過北橋晶元和內存、顯卡交換數據。前端匯流排是CPU和外界交換數據的最主要通道,因此前端匯流排的數據傳輸能力對計算機整體性能作用很大,如果沒足夠快的前端匯流排,再強的CPU也不能明顯提高計算機整體速度。數據傳輸最大帶寬取決於所有同時傳輸的數據的寬度和傳輸頻率,即數據帶寬=(匯流排頻率×數據位寬)÷8。目前PC機上所能達到的前端匯流排頻率有266MHz、333MHz、400MHz、533MHz、800MHz幾種,前端匯流排頻率越大,代表著CPU與北橋晶元之間的數據傳輸能力越大,更能充分發揮出CPU的功能。現在的CPU技術發展很快,運算速度提高很快,而足夠大的前端匯流排可以保障有足夠的數據供給給CPU,較低的前端匯流排將無法供給足夠的數據給CPU,這樣就限制了CPU性能得發揮,成為系統瓶頸。
外頻與前端匯流排頻率的區別:前端匯流排的速度指的是CPU和北橋晶元間匯流排的速度,更實質性的表示了CPU和外界數據傳輸的速度。而外頻的概念是建立在數字脈沖信號震盪速度基礎之上的,也就是說,100MHz外頻特指數字脈沖信號在每秒鍾震盪一萬萬次,它更多的影響了PCI及其他匯流排的頻率。之所以前端匯流排與外頻這兩個概念容易混淆,主要的原因是在以前的很長一段時間里(主要是在Pentium 4出現之前和剛出現Pentium 4時),前端匯流排頻率與外頻是相同的,因此往往直接稱前端匯流排為外頻,最終造成這樣的誤會。隨著計算機技術的發展,人們發現前端匯流排頻率需要高於外頻,因此採用了QDR(Quad Date Rate)技術,或者其他類似的技術實現這個目的。這些技術的原理類似於AGP的2X或者4X,它們使得前端匯流排的頻率成為外頻的2倍、4倍甚至更高,從此之後前端匯流排和外頻的區別才開始被人們重視起來
CPU的製造工藝和流程
CPU 發展至今已經有二十多年的歷史,其中製造 CPU 的工藝技術也經過了長足的發展,以前的製造工藝比較粗糙,而且對於讀者了解最新的技術也沒有多大幫助,所以我們舍之不談,用今天比較新的製造工藝來向大家闡述。
許多對電腦知識略知一二的朋友大多會知道 CPU 裡面最重要的東西就是晶體管了,提高 CPU 的速度,最重要的一點說白了就是如何在相同的CPU面積裡面放進去更加多的晶體管。由於 CPU 實在太小,太精密,裡面組成了數目相當多的晶體管,所以人手是絕對不可能完成的(笑),只能夠通過光刻工藝來進行加工的。這就是為什麼一塊 CPU 裡面為什麼可以數量如此之多的晶體管。晶體管其實就是一個雙位的開關:即開和關。如果您回憶起基本計算的時代,那就是一台計算機需要進行工作的全部。兩種選擇,開和關,對於機器來說即0和1。那麼如何製作一個CPU 呢? 以下我們用英特爾為例子告訴大家。
首先:取出一張利用激光器剛剛從類似干香腸一樣的硅柱上切割下來的矽片,它的直徑約為 20cm。除了 CPU 之外,英特爾還可以在每一矽片上製作數百個微處理器。每一個微處理器都不足一平方厘米。
接著就是矽片鍍膜了。相信學過化學的朋友都知道硅(Si)這個絕佳的半導體材料,它可以電腦裡面最最重要的元素啊!在矽片表面增加一層由我們的老朋友二氧化硅(SiO2)構成的絕緣層。這是通過 CPU 能夠導電的基礎。其次就輪到光刻膠了,在矽片上面增加了二氧化硅之後,隨後在其上鍍上一種稱為「光刻膠」的材料。這種材料在經過紫外線照射後會變軟、變粘。然後就是光刻掩膜,在我們考慮製造工藝前很久,就早有一非常聰明的美國人在腦子裡面設計出了 CPU,並且想盡方法使其按他們的設計意圖工作。CPU 電路設計的照相掩膜貼放在光刻膠的上方。照相字後自然要曝光「沖曬」了,我們將於是將掩膜和矽片曝光於紫外線。這就象是放大機中的一張底片。該掩膜允許光線照射到矽片上的某區域而不能照射到另一區域,這就形成了該設計的潛在映像。
一切都辦妥了之後,就要到相當重要的刻蝕工藝出場了。我們採用一種溶液將光線照射後完全變軟變粘的光刻膠「塊」除去,這就露出了其下的二氧化硅。本工藝的最後部分是除去曝露的二氧化硅以及殘余的光刻膠。對每層電路都要重復該光刻掩膜和刻蝕工藝,這得由所生產的 CPU 的復雜程度來確定。盡管所有這些聽起來象來自「星球大戰」的高科技,但刻蝕實際上是一種非常古老的工藝。幾個世紀以前,該工藝最初是被藝術家們用來在紙上、紡織品上甚至在樹木上創作精彩繪畫的。在微處理器的生產過程中,該照相刻蝕工藝可以依照電路圖形刻蝕成導電細條,其厚度比人的一根頭發絲還細許多倍。
接下來就是摻雜工藝。現在我們從矽片上已曝露的區域開始,首先倒入一化學離子混合液中。這一工藝改變摻雜區的導電方式,使得每個晶體管可以通、斷、或攜帶數據。將此工藝一次又一次地重復,以製成該 CPU 的許多層。不同層可通過開啟窗口聯接起來。電子以高達 400MHz 或更高的速度在不同的層面間流上流下,窗口是通過使用掩膜重復掩膜、刻蝕步驟開啟的。窗口開啟後就可以填充他們了。窗口中填充的是種最普通的金屬-鋁。終於接近尾聲了,我們把完工的晶體管接入自動測試設備中,這個設備每秒可作一萬次檢測,以確保它能正常工作。在通過所有的測試後必須將其封入一個陶瓷的或塑料的封殼中,這樣它就可以很容易地裝在一塊電路板上了。
目前,單單 Intel 具有 14 家晶元製造廠。盡管微處理器的基本原料是沙子(提煉硅),但工廠內空氣中的一粒灰塵就可能毀掉成千上萬的晶元。因此生產 CPU 的環境需非常干凈。事實上,工廠中生產晶元的超凈化室比醫院內的手術室還要潔凈1萬倍。「一級」的超凈化室最為潔凈,每平方英尺只有一粒灰塵。為達到如此一個無菌的環境而採用的技術多令人難以置信。在每一個超凈化室里,空氣每分鍾要徹底更換一次。空氣從天花板壓入,從地板吸出。凈化室內部的氣壓稍高於外部氣壓。這樣,如果凈化室中出現裂縫,那麼內部的潔凈空氣也會通過裂縫溜走-防止受污染的空氣流入。 但這只是事情一半。在晶元製造廠里,Intel 有上千名員工。他們都穿著特殊的稱為「兔裝」的工作服。兔裝是由一種特殊的非棉絨、抗靜電纖維製成的,它可以防止灰塵、臟物和其它污染損壞生產中的計算機晶元。這兔裝有適合每一個人的各種尺寸以及一系列顏色,甚至於白色。員工可以將兔裝穿在在普通衣服的外面,但必須經過含有 54 個單獨步驟的嚴格著裝程序。而且每一次進入和離開超凈化室都必須重復這個程序。因此,進入凈化室之後就會停留一陣。在製造車間里,英特爾的技術專家們切割矽片,並准備印刻電路模板等一系列復雜程序。這個步驟將矽片變成了一個半導體,它可以象晶體管一樣有打開和關閉兩種狀態。這些打開和關閉的狀態對應於數字電碼。把成千上萬個晶體管集成在英特爾的微處理器上,能表示成千上萬個電碼,這樣您的電腦就能處理一些非常復雜的軟體公式了。
❸ 高速緩沖存儲器包括一級緩存和二級緩存嗎
CPU里也有高速緩存的,硬碟里也有緩存的.都只是起一個暫儲數據的作用,而ROM是把東西寫好了,存在裡面的東西,一般是掉電了裡面的內容也不會掉的,而RAM是掉電了裡面的數據就全部丟失的.高速緩沖存儲器包括一級緩存和二級緩存,CPU在運行時首先從一級緩存讀取數據,然後從二級緩存讀取數據,然後從內存和虛擬內存讀取數據,因此高速緩存的容量和速度直接影響到CPU的工作性能。
一級緩存都內置在CPU內部並與CPU同速運行,可以有效的提高CPU的運行效率。
❹ ibM筆記本中3M和6M的二級緩存問題
我先告訴你評價CPU的主要參數吧
首先最重要的是內核舉納念結構,就是說你會看到60nm 或45nm之類的,越小越好,不過現在就60nm和45nm。其次再是主頻,主頻越高越好。然後再是二級緩存,越高越好,然後再是前端匯流排,越大越好。
3M的二級緩存和6M的二級緩存當然是6M二級緩存好,但是實際用的時候你根本感覺不到,也正困就是說用起來差不多,茄態感覺不出特別大優勢
❺ 一級緩存和二級緩存是什麼意思
一級緩存(Level
1
Cache)簡稱L1
Cache,位於CPU內核的旁邊,是與CPU結合最為緊密的CPU緩存,也是歷史上最早出現的CPU緩存。由於一級緩存的技術難度和製造成本最高,提高容量所帶來的技術難度增加和成本增加非常大,所帶來的性能提升卻不明顯,性價比很低,而且現有的一級緩存的命中率已經很高,所以一級緩存是所有緩存中容量最小的,比二級緩存要小得多。
一般來說,一級緩存可以分為一級數據緩存(Data
Cache,D-Cache)和一級指令緩存(Instruction
Cache,I-Cache)。二者分別用來存放數據以及對執行這些數據的指令進行即時解碼,而且兩者可以同時被CPU訪問,減少了爭用Cache所造成的沖突,提高了處理器效能。目前大多數CPU的一級數據緩存和一級指令緩存具有相同的容量,例如AMD的Athlon
XP就具有64KB的一級數據緩存和64KB的一級指令緩存,其一級緩存就以64KB+64KB來表示,其餘的CPU的一級緩存表示方法以此類推。
二級緩存是CPU性能表現的關鍵之一,在CPU核心不變化的情況下,增加二級緩存容量能使性能大幅度提高。而同一核心的CPU高低端之分往往也是在二級緩存上有差異,由此可見二級緩存對於CPU的重要性。
❻ 一級緩存,二級緩存,內存的問題
由於L1級高速緩存容量的限制,為了再次提高CPU的運算速度,在CPU外部放置一高速存儲器,即二級緩存。工作主頻比較靈活,可與CPU同頻,也可不同。CPU在讀取數據時,先在L1中尋找,再從L2尋找,然後是內存,在後是外存譽廳儲器。所以L2對系統的影響也不容忽視。
二級緩存又叫L2 CACHE,它是處理器內部的一些緩沖存儲器,其作用跟內存一樣。 它是怎麼出現的呢? 要上溯到上個世紀80年代,由於處理器的運行速度越來越快,慢慢地,處理器需要從內存中讀取數據的速度需求就越來越高了。然而內存的速度提升速度卻很緩慢,而能高速讀寫數據的內存價格又非常高昂,不能大量採用。從性能價格比的角度出發,英特爾等處理器設計生產公司想到一個辦法,就是用少量的高速內存和大量的低速內存結合使用,共同為處理器提供數據。這樣就兼顧了性能和使用成本的最優。而那些高速的內存因為是處於CPU和內存之間的位置,又是臨時存放數據的地方,所以就叫做緩沖存儲器了,簡稱「緩存」。它的作用就像倉庫中臨時堆放貨物的地方一樣,貨物從運輸車輛上放下時臨時堆放在緩存區中,然後再搬到內部存儲區中長時間存放。貨物在這段區域中存放的時間很短,就是一個臨時貨場。 最初緩存只有一級,後來處理器速度又提升了,一級緩存不夠用了,於是就添加了二級緩存。二級緩存是比一級緩存速度更慢,容量更大的內存,主要就是做一級緩存和內存之間數據臨時交換的地方用遲坦。現在,為了適應速度更快的處理器P4EE,已經出現了三級緩存了,它的容量更大,速度相對二級緩存也要慢一些,但是比內存可快多了。 緩存的出現使得CPU處理器的運行效率得到了大幅度的提升,這個區域中存放的都是CPU頻繁要使用的數據,所以緩存越大處理器效率就越高,同時由於緩存的物理結構比內存復雜很多,所以其成本也很高。
大量使用二級緩存帶來的結果是處理器運行效率的提升和成本價格的大幅度不等比提升。舉個例子,伺服器上用的至強處理器和普通的P4處理器其內核基本上是一樣的,就是二級緩存不同。至強的二級緩存是2MB~16MB,P4的二級緩存是512KB,於是最便宜的至強也比最貴的P4貴,原因就在二級緩存不同。
__________________________________________________________
內存
在計算機的組成結構中,有一個很重要的部分,就是存儲器。存儲器是用來存儲程序和數據的部件,對於計算機來說,有了存儲器,才有記憶功能,才能保證正常工作。存儲器的種類很多,按其用途可分為主存儲器和輔助存儲器,主存儲器又稱內存儲器(簡稱內存).內存在電腦中起著舉足輕重的作用。內存一般採用半導體存儲單元,包括隨機存儲器(RAM),只讀存儲器(ROM),以及高速慶旦隱緩存(CACHE)。只不過因為RAM是其中最重要的存儲器。S(SYSNECRONOUS)DRAM 同步動態隨機存取存儲器:SDRAM為168腳,這是目前PENTIUM及以上機型使用的內存。SDRAM將CPU與RAM通過一個相同的時鍾鎖在一起,使CPU和RAM能夠共享一個時鍾周期,以相同的速度同步工作,每一個時鍾脈沖的上升沿便開始傳遞數據,速度比EDO內存提高50%。DDR(DOUBLE DATA RAGE)RAM :SDRAM的更新換代產品,他允許在時鍾脈沖的上升沿和下降沿傳輸數據,這樣不需要提高時鍾的頻率就能加倍提高SDRAM的速度。
●內存
內存就是存儲程序以及數據的地方,比如當我們在使用WPS處理文稿時,當你在鍵盤上敲入字元時,它就被存入內存中,當你選擇存檔時,內存中的數據才會被存入硬(磁)盤。在進一步理解它之前,還應認識一下它的物理概念。
●只讀存儲器(ROM)
ROM表示只讀存儲器(Read Only Memory),在製造ROM的時候,信息(數據或程序)就被存入並永久保存。這些信息只能讀出,一般不能寫入,即使機器掉電,這些數據也不會丟失。ROM一般用於存放計算機的基本程序和數據,如BIOS ROM。其物理外形一般是雙列直插式(DIP)的集成塊。
●隨機存儲器(RAM)
隨機存儲器(Random Access Memory)表示既可以從中讀取數據,也可以寫入數據。當機器電源關閉時,存於其中的數據就會丟失。我們通常購買或升級的內存條就是用作電腦的內存,內存條(SIMM)就是將RAM集成塊集中在一起的一小塊電路板,它插在計算機中的內存插槽上,以減少RAM集成塊佔用的空間。目前市場上常見的內存條有128M/條、256M/條、512M/條等。
●高速緩沖存儲器(Cache)
Cache也是我們經常遇到的概念,它位於CPU與內存之間,是一個讀寫速度比內存更快的存儲器。當CPU向內存中寫入或讀出數據時,這個數據也被存儲進高速緩沖存儲器中。當CPU再次需要這些數據時,CPU就從高速緩沖存儲器讀取數據,而不是訪問較慢的內存,當然,如需要的數據在Cache中沒有,CPU會再去讀取內存中的數據。
當你理解了上述概念後,也許你會問,內存就是內存,為什麼又會出現各種內存名詞,這到底又是怎麼回事呢?
在回答這個問題之前,我們再來看看下面這一段。
物理存儲器和地址空間
物理存儲器和存儲地址空間是兩個不同的概念。但是由於這兩者有十分密切的關系,而且兩者都用B、KB、MB、GB來度量其容量大小,因此容易產生認識上的混淆。初學者弄清這兩個不同的概念,有助於進一步認識內存儲器和用好內存儲器。
物理存儲器是指實際存在的具體存儲器晶元。如主板上裝插的內存條和裝載有系統的BIOS的ROM晶元,顯示卡上的顯示RAM晶元和裝載顯示BIOS的ROM晶元,以及各種適配卡上的RAM晶元和ROM晶元都是物理存儲器。
存儲地址空間是指對存儲器編碼(編碼地址)的范圍。所謂編碼就是對每一個物理存儲單元(一個位元組)分配一個號碼,通常叫作「編址」。分配一個號碼給一個存儲單元的目的是為了便於找到它,完成數據的讀寫,這就是所謂的「定址」(所以,有人也把地址空間稱為定址空間)。
地址空間的大小和物理存儲器的大小並不一定相等。舉個例子來說明這個問題:某層樓共有17個房間,其編號為801~817。這17個房間是物理的,而其地址空間採用了三位編碼,其范圍是800~899共100個地址,可見地址空間是大於實際房間數量的。
對於386以上檔次的微機,其地址匯流排為32位,因此地址空間可達232即4GB。但實際上我們所配置的物理存儲器通常只有1MB、2MB、4MB、8MB、16MB、32MB等,遠小於地址空間所允許的范圍。
好了,現在可以解釋為什麼會產生諸如:常規內存、保留內存、上位內存、高端內存、擴充內存和擴展內存等不同內存類型。
各種內存概念
這里需要明確的是,我們討論的不同內存的概念是建立在定址空間上的。
IBM推出的第一台PC機採用的CPU是8088晶元,它只有20根地址線,也就是說,它的地址空間是1MB。
PC機的設計師將1MB中的低端640KB用作RAM,供DOS及應用程序使用,高端的384KB則保留給ROM、視頻適配卡等系統使用。從此,這個界限便被確定了下來並且沿用至今。低端的640KB就被稱為常規內存即PC機的基本RAM區。保留內存中的低128KB是顯示緩沖區,高64KB是系統BIOS(基本輸入/輸出系統)空間,其餘192KB空間留用。從對應的物理存儲器來看,基本內存區只使用了512KB晶元,佔用0000至80000這512KB地址。顯示內存區雖有128KB空間,但對單色顯示器(MDA卡)只需4KB就足夠了,因此只安裝4KB的物理存儲器晶元,佔用了B0000至B10000這4KB的空間,如果使用彩色顯示器(CGA卡)需要安裝16KB的物理存儲器,佔用B8000至BC000這16KB的空間,可見實際使用的地址范圍都小於允許使用的地址空間。
在當時(1980年末至1981年初)這么「大」容量的內存對PC機使用者來說似乎已經足夠了,但是隨著程序的不斷增大,圖象和聲音的不斷豐富,以及能訪問更大內存空間的新型CPU相繼出現,最初的PC機和MS-DOS設計的局限性變得越來越明顯。
1.什麼是擴充內存?
EMS工作原理
到1984年,即286被普遍接受不久,人們越來越認識到640KB的限制已成為大型程序的障礙,這時,Intel和Lotus,這兩家硬、軟體的傑出代表,聯手制定了一個由硬體和軟體相結合的方案,此方法使所有PC機存取640KB以上RAM成為可能。而Microsoft剛推出Windows不久,對內存空間的要求也很高,因此它也及時加入了該行列。
在1985年初,Lotus、Intel和Microsoft三家共同定義了LIM-EMS,即擴充內存規范,通常稱EMS為擴充內存。當時,EMS需要一個安裝在I/O槽口的內存擴充卡和一個稱為EMS的擴充內存管理程序方可使用。但是I/O插槽的地址線只有24位(ISA匯流排),這對於386以上檔次的32位機是不能適應的。所以,現在已很少使用內存擴充卡。現在微機中的擴充內存通常是用軟體如DOS中的EMM386把擴展內存模擬或擴充內存來使用。所以,擴充內存和擴展內存的區別並不在於其物理存儲器的位置,而在於使用什麼方法來讀寫它。下面將作進一步介紹。
前面已經說過擴充存儲器也可以由擴展存儲器模擬轉換而成。EMS的原理和XMS不同,它採用了頁幀方式。頁幀是在1MB空間中指定一塊64KB空間(通常在保留內存區內,但其物理存儲器來自擴展存儲器),分為4頁,每頁16KB。EMS存儲器也按16KB分頁,每次可交換4頁內容,以此方式可訪問全部EMS存儲器。符合EMS的驅動程序很多,常用的有EMM386.EXE、QEMM、TurboEMS、386MAX等。DOS和Windows中都提供了EMM386.EXE。
2.什麼是擴展內存?
我們知道,286有24位地址線,它可定址16MB的地址空間,而386有32位地址線,它可定址高達4GB的地址空間,為了區別起見,我們把1MB以上的地址空間稱為擴展內存XMS(eXtend memory)。
在386以上檔次的微機中,有兩種存儲器工作方式,一種稱為實地址方式或實方式,另一種稱為保護方式。在實方式下,物理地址仍使用20位,所以最大定址空間為1MB,以便與8086兼容。保護方式採用32位物理地址,定址范圍可達4GB。DOS系統在實方式下工作,它管理的內存空間仍為1MB,因此它不能直接使用擴展存儲器。為此,Lotus、Intel、AST及Microsoft公司建立了MS-DOS下擴展內存的使用標准,即擴展內存規范XMS。我們常在Config.sys文件中看到的Himem.sys就是管理擴展內存的驅動程序。
擴展內存管理規范的出現遲於擴充內存管理規范。
3.什麼是高端內存區?
在實方式下,內存單元的地址可記為:
段地址:段內偏移
通常用十六進制寫為XXXX:XXXX。實際的物理地址由段地址左移4位再和段內偏移相加而成。若地址各位均為1時,即為FFFF:FFFF。其實際物理地址為:FFF0+FFFF=10FFEF,約為1088KB(少16位元組),這已超過1MB范圍進入擴展內存了。這個進入擴展內存的區域約為64KB,是1MB以上空間的第一個64KB。我們把它稱為高端內存區HMA(High Memory Area)。HMA的物理存儲器是由擴展存儲器取得的。因此要使用HMA,必須要有物理的擴展存儲器存在。此外HMA的建立和使用還需要XMS驅動程序HIMEM.SYS的支持,因此只有裝入了HIMEM.SYS之後才能使用HMA。
4.什麼是上位內存?
為了解釋上位內存的概念,我們還得回過頭看看保留內存區。保留內存區是指640KB~1024KB(共384KB)區域。這部分區域在PC誕生之初就明確是保留給系統使用的,用戶程序無法插足。但這部分空間並沒有充分使用,因此大家都想對剩餘的部分打主意,分一塊地址空間(注意:是地址空間,而不是物理存儲器)來使用。於是就得到了又一塊內存區域UMB。
UMB(Upper Memory Blocks)稱為上位內存或上位內存塊。它是由擠占保留內存中剩餘未用的空間而產生的,它的物理存儲器仍然取自物理的擴展存儲器,它的管理驅動程序是EMS驅動程序。
5.什麼是SHADOW(影子)內存?
對於細心的讀者,可能還會發現一個問題:即是對於裝有1MB或1MB以上物理存儲器的機器,其640KB~1024KB這部分物理存儲器如何使用的問題。由於這部分地址空間已分配為系統使用,所以不能再重復使用。為了利用這部分物理存儲器,在某些386系統中,提供了一個重定位功能,即把這部分物理存儲器的地址重定位為1024KB~1408KB。這樣,這部分物理存儲器就變成了擴展存儲器,當然可以使用了。但這種重定位功能在當今高檔機器中不再使用,而把這部分物理存儲器保留作為Shadow存儲器。Shadow存儲器可以占據的地址空間與對應的ROM是相同的。Shadow由RAM組成,其速度大大高於ROM。當把ROM中的內容(各種BIOS程序)裝入相同地址的Shadow RAM中,就可以從RAM中訪問BIOS,而不必再訪問ROM。這樣將大大提高系統性能。因此在設置CMOS參數時,應將相應的Shadow區設為允許使用(Enabled)。
6、什麼是奇/偶校驗?
奇/偶校驗(ECC)是數據傳送時採用的一種校正數據錯誤的一種方式,分為奇校驗和偶校驗兩種。
如果是採用奇校驗,在傳送每一個位元組的時候另外附加一位作為校驗位,當實際數據中「1」的個數為偶數的時候,這個校驗位就是「1」,否則這個校驗位就是「0」,這樣就可以保證傳送數據滿足奇校驗的要求。在接收方收到數據時,將按照奇校驗的要求檢測數據中「1」的個數,如果是奇數,表示傳送正確,否則表示傳送錯誤。
同理偶校驗的過程和奇校驗的過程一樣,只是檢測數據中「1」的個數為偶數。
總 結
經過上面分析,內存儲器的劃分可歸納如下:
●基本內存 占據0~640KB地址空間。
●保留內存 占據640KB~1024KB地址空間。分配給顯示緩沖存儲器、各適配卡上的ROM和系統ROM BIOS,剩餘空間可作上位內存UMB。UMB的物理存儲器取自物理擴展存儲器。此范圍的物理RAM可作為Shadow RAM使用。
●上位內存(UMB) 利用保留內存中未分配使用的地址空間建立,其物理存儲器由物理擴展存儲器取得。UMB由EMS管理,其大小可由EMS驅動程序設定。
●高端內存(HMA) 擴展內存中的第一個64KB區域(1024KB~1088KB)。由HIMEM.SYS建立和管理。
●XMS內存 符合XMS規范管理的擴展內存區。其驅動程序為HIMEM.SYS。
●EMS內存 符合EMS規范管理的擴充內存區。其驅動程序為EMM386.EXE等。
❼ 怎麼修改cpu的二級緩存
對於處理器(CPU)二級緩存(L2 Cache)的作用,想必大家都多多少少有一定了解,即使不完全明白其中道理,至少也可以從Pentium 4和Celeron的差價判斷出其重要性,256KB二級緩存的Celeron D 2.4GHz比512KB二級緩存的Pentium 4 2.4C便宜近一半。如果這時候有人說Windows XP操作系統並沒有充分利用CPU的二級緩存,你會怎麼想?這簡直就是在浪費用戶的投資嘛!
事實上,有一種廣為流傳的說法是Windows XP沒有對CPU進行優化,理由就是它默認狀態下並沒有打開CPU的二級緩存。如果你打開注冊表編輯器,找到「HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Control\Session Manager\Memory Management」,在其中可以看到一個名為「SecondLevelDataCache」的項,它的默認值為「0」。再明顯不過了,「SecondLevelDataCache」就是二級數據緩存的意思,既然被設置為「0」,那就是關閉了二級緩存。
正是基於以上論斷,才出現了優化二級緩存的技巧,也就是把「SecondLevelDataCache」的值設置為CPU的二級緩存容量(單位KB)。在眾多的優化軟體中也包含了優化CPU二級緩存的設置。
事實上,修改「SecondLevel DataCache」的值沒有任何優化作用,這是為什麼呢?
我們在微軟的知識庫中找到了如下的內容:「HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management」中的SecondLevelDataCache鍵的值只有在Windows XP系統從硬體抽象層(Hardware Abstraction Layer )讀取CPU二級緩存(L2)失敗時才會讀取SecondLevelDataCache鍵的數據。而且SecondLevelDataCache鍵值=0的意義是二級緩存為256KB。
在一篇知識庫文章中我們還找到了「Do not change the SecondLevelDataCache entry 」這樣的話,在文章中指出一些第三方資料宣稱修改SecondLevelDataCache鍵的值可以提高系統性能是不正確的。二級緩存的數值是由操作系統檢測並且完全不受SecondLevelDataCache值的影響。
從微軟知識庫的文章中我們可以看到,所謂的Windows用戶需要用戶手動打開二級緩存這種說法是錯誤的。Windows系統是根據硬體抽象層讀取CPU的二級緩存數值。只有在讀取失敗時才會讀取SecondLevelDataCache的值,而且SecondLevelDataCache的默認數值0所代表的意義就是二級緩存為256KB,而不是表示關閉。所以CPU的二級緩存在任何時候都是開啟的,用戶沒有必要再自行修改。
因此,無論是WindowsXP還是Vista都無需對此項進行優化,純粹是自欺欺人。
❽ 關於一級緩存和二級緩存的作用
Pentium D和Pentium EE的二級緩存都是CPU內部兩個仿游內核具有互相獨立的二級緩存,其中,弊大襪8xx系列的Smithfield核心CPU為每核心1MB,而9xx系列的 Presler核心CPU為每核心2MB。這種CPU內部租激的兩個內核之間的緩存數據同步是依靠位於主板北橋晶元上的仲裁單元通過前端匯流排在兩個核心之間傳輸來實現的,所以其數據延遲問題比較嚴重,性能並不盡如人意。
Core Duo使用的核心為Yonah,它的二級緩存則是兩個核心共享2MB的二級緩存,共享式的二級緩存配合Intel的「Smart cache」共享緩存技術,實現了真正意義上的緩存數據同步,大幅度降低了數據延遲,減少了對前端匯流排的佔用,性能表現不錯,是目前雙核心處理器上最先進的二級緩存架構。
有不明白的看看這個帖子http://..com/question/18383277.html?si=8
❾ 高速緩存可以看作主存的延伸,與主存統一編址,接受CPU的訪問,但其速度要比主存高得多
一級高速緩存是性能最好緩存類型,與解釋指令和執行算術運算的處理單元一到構成CPU的核心。CPU可以在全速運行的狀態下讀取存放在一級高速緩存中的指令或數據。Intel的處理器產品一般都會具有32K的一級緩存,而象AMD或Via這種競爭對手的產品則會使用更多的一級緩存。
如果在一級緩存中沒有找到所需要的指令或數據,處理器會查看容量更大的二級緩存。二級緩存既可以被集成到CPU晶元內部,也可以作為外部緩存。Pentium II處理器具有512K的二級緩存,工作速度相當於CPU速度的一半。Celeron以及更新的Pentium III晶元則分別具有128K和256K的在片二級緩存,能夠在處理器全速下運行對於存放在速度較慎鏈慢的二級緩存中的指令或數據,處理器往往需要等待2到4個時鍾周期。為了充分利用計算資源,CPU可以在塌宏這段時間內查看和執行其它正在等候處理,但不需要使用額外數據的指令,從而提高寬衫孫整個系統的速度,把空閑時間降低到最低程度.所以--------「但其速度要比主存高得多」錯了明白了嗎?~