CPU在緩存中找到有用的數(shù)據(jù)被稱為命中,當(dāng)緩存中沒有CPU所需的數(shù)據(jù)時(這時稱為未命中),CPU才訪問內(nèi)存。從理論上講,在一顆擁有二級緩存的CPU中,讀取一級緩存的命中率為80%。也就是說CPU一級緩存中找到的有用數(shù)據(jù)占數(shù)據(jù)總量的80%,剩下的20%從二級緩存中讀取。由于不能準(zhǔn)確預(yù)測將要執(zhí)行的數(shù)據(jù),讀取二級緩存的命中率也在80%左右(從二級緩存讀到有用的數(shù)據(jù)占總數(shù)據(jù)的16%)。那么還有的數(shù)據(jù)就不得不從內(nèi)存調(diào)用,但這已經(jīng)是一個相當(dāng)小的比例了。較高端的CPU中,還會帶有三級緩存,它是為讀取二級緩存后未命中的數(shù)據(jù)設(shè)計的—種緩存,在擁有三級緩存的CPU中,只有約5%的數(shù)據(jù)需要從內(nèi)存中調(diào)用,這進一步提高了CPU的效率。
為了保證CPU訪問時有較高的命中率,緩存中的內(nèi)容應(yīng)該按一定的算法替換。一種較常用的算法是“最近最少使用算法”(LRU算法),它是將最近一段時間內(nèi)最少被訪問過的行淘汰出局。因此需要為每行設(shè)置一個計數(shù)器,LRU算法是把命中行的計數(shù)器清零,其他各行計數(shù)器加1。當(dāng)需要替換時淘汰行計數(shù)器計數(shù)值最大的數(shù)據(jù)行出局。這是一種高效、科學(xué)的算法,其計數(shù)器清零過程可以把一些頻繁調(diào)用后再不需要的數(shù)據(jù)淘汰出緩存,提高緩存的利用率。
CPU產(chǎn)品中,一級緩存的容量基本在4KB到64KB之間,二級緩存的容量則分為128KB、256KB、512KB、1MB、2MB等。一級緩存容量各產(chǎn)品之間相差不大,而二級緩存容量則是提高CPU性能的關(guān)鍵。二級緩存容量的提升是由CPU制造工藝所決定的,容量增大必然導(dǎo)致CPU內(nèi)部晶體管數(shù)的增加,要在有限的CPU面積上集成更大的緩存,對制造工藝的要求也就越高。
雙核心CPU的二級緩存比較特殊,和以前的單核心CPU相比,最重要的就是兩個內(nèi)核的緩存所保存的數(shù)據(jù)要保持一致,否則就會出現(xiàn)錯誤,為了解決這個問題不同的CPU使用了不同的辦法:
最早先的CPU緩存是個整體的,而且容量很低,英特爾公司從Pentium時代開始把緩存進行了分類。當(dāng)時集成在CPU內(nèi)核中的緩存已不足以滿足CPU的需求,而制造工藝上的限制又不能大幅度提高緩存的容量。因此出現(xiàn)了集成在與CPU同一塊電路板上或主板上的緩存,此時就把 CPU內(nèi)核集成的緩存稱為一級緩存,而外部的稱為二級緩存。一級緩存中還分?jǐn)?shù)據(jù)緩存(Data Cache,D-Cache)和指令緩存(Instruction Cache,I-Cache)。二者分別用來存放數(shù)據(jù)和執(zhí)行這些數(shù)據(jù)的指令,而且兩者可以同時被CPU訪問,減少了爭用Cache所造成的沖突,提高了處理器效能。英特爾公司在推出Pentium 4處理器時,用新增的一種一級追蹤緩存替代指令緩存,容量為12KμOps,表示能存儲12K條微指令。
隨著CPU制造工藝的發(fā)展,二級緩存也能輕易的集成在CPU內(nèi)核中,容量也在逐年提升。再用集成在CPU內(nèi)部與否來定義一、二級緩存,已不確切。而且隨著二級緩存被集成入CPU內(nèi)核中,以往二級緩存與CPU大差距分頻的情況也被改變,此時其以相同于主頻的速度工作,可以為CPU提供更高的傳輸速度。
當(dāng)CPU要讀取一個數(shù)據(jù)時,首先從緩存中查找,如果找到就立即讀取并送給CPU處理;如果沒有找到,就用相對慢的速度從內(nèi)存中讀取并送給CPU處理,同時把這個數(shù)據(jù)所在的數(shù)據(jù)塊調(diào)入緩存中,可以使得以后對整塊數(shù)據(jù)的讀取都從緩存中進行,不必再調(diào)用內(nèi)存。
正是這樣的讀取機制使CPU讀取緩存的命中率非常高(大多數(shù)CPU可達90%左右),也就是說CPU下一次要讀取的數(shù)據(jù)90%都在緩存中,只有大約10%需要從內(nèi)存讀取。這大大節(jié)省了CPU直接讀取內(nèi)存的時間,也使CPU讀取數(shù)據(jù)時基本無需等待??偟膩碚f,CPU讀取數(shù)據(jù)的順序是先緩存后內(nèi)存。
二級緩存并不是越大越好,假如我們將CPU比作1個工廠,那CPU核心就是生產(chǎn)車間,緩存就是原料和半成品倉庫,當(dāng)生產(chǎn)需時,原料先從近來的一級緩存中尋找,當(dāng)找不到時再到二級緩存中找。而內(nèi)存就可能原料產(chǎn)地,直...
首先你要知道硬盤緩存的作用:1、預(yù)讀取,舉例來說(不是完全準(zhǔn)確的)就是讀取硬盤數(shù)據(jù)的時候,你所需的數(shù)據(jù)在N簇,會讀取硬盤上N-1簇、N簇、N+1簇的數(shù)據(jù)到緩存中去,如果你在讀完N簇數(shù)據(jù)后需要再讀取N+...
對上部結(jié)構(gòu)地震影響;基礎(chǔ)選型影響進度和造價;變形影響建筑壽命。
CPU緩存(Cache Memory)位于CPU與內(nèi)存之間的臨時存儲器,它的容量比內(nèi)存小但交換速度快。在緩存中的數(shù)據(jù)是內(nèi)存中的一小部分,但這一小部分是短時間內(nèi)CPU即將訪問的,當(dāng)CPU調(diào)用大量數(shù)據(jù)時,就可避開內(nèi)存直接從緩存中調(diào)用,從而加快讀取速度。由此可見,在CPU中加入緩存是一種高效的解決方案,這樣整個內(nèi)存儲器(緩存 內(nèi)存)就變成了既有緩存的高速度,又有內(nèi)存的大容量的存儲系統(tǒng)了。緩存對CPU的性能影響很大,主要是因為CPU的數(shù)據(jù)交換順序和CPU與緩存間的帶寬引起的。
L1和L2都是計算機中緩存(cache memory)的等級。如果計算機的處理器可以在緩存中找到他下個運算所需的數(shù)據(jù),它將省去了到隨機存儲器(RAM)中尋找這個數(shù)據(jù)的時間。L1是一級緩存,通常內(nèi)建于微處理芯片(Chip)中。比如,IntelMMX微處理器(microprocessor)本身是帶有一個有32Kb的一級緩存。
L2(就是二級)緩存是在獨立芯片(有可能是在一個擴展卡上),它的訪問速度能比大的主存要快得多。通常一個二級緩存的大小為1024Kb(1Mb)。
Intel的雙核心CPU主要有Pentium D、Pentium EE、Core Duo三種,其中Pentium D、Pentium EE的二級緩存方式完全相同。Pentium D和Pentium EE的二級緩存都是CPU內(nèi)部兩個內(nèi)核具有互相獨立的二級緩存,其中,8xx系列的Smithfield核心CPU為每核心1MB,而9xx系列的Presler核心CPU為每核心2MB。這種CPU內(nèi)部的兩個內(nèi)核之間的緩存數(shù)據(jù)同步是依靠位于主板北橋芯片上的仲裁單元通過前端總線在兩個核心之間傳輸來實現(xiàn)的,所以其數(shù)據(jù)延遲問題比較嚴(yán)重,性能并不盡如人意。
Core Duo使用的核心為Yonah,它的二級緩存則是兩個核心共享2MB的二級緩存,共享式的二級緩存配合Intel的“Smart cache”共享緩存技術(shù),實現(xiàn)了真正意義上的緩存數(shù)據(jù)同步,大幅度降低了數(shù)據(jù)延遲,減少了對前端總線的占用,性能表現(xiàn)不錯,是雙核心處理器上最先進的二級緩存架構(gòu)。今后Intel的雙核心處理器的二級緩存都會采用這種兩個內(nèi)核共享二級緩存的“Smart cache”共享緩存技術(shù)。
Athlon 64 X2 CPU的核心主要有Manchester和Toledo兩種,他們的二級緩存都是CPU內(nèi)部兩個內(nèi)核具有互相獨立的二級緩存,其中,Manchester核心為每核心512KB,而Toledo核心為每核心1MB。處理器內(nèi)部的兩個內(nèi)核之間的緩存數(shù)據(jù)同步是依靠CPU內(nèi)置的System Request Interface(系統(tǒng)請求接口,SRI)控制,傳輸在CPU內(nèi)部即可實現(xiàn)。這樣一來,不但CPU資源占用很小,而且不必占用內(nèi)存總線資源,數(shù)據(jù)延遲也比Intel的Smithfield核心和Presler核心大為減少,協(xié)作效率明顯勝過這兩種核心。不過,由于這種方式仍然是兩個內(nèi)核的緩存相互獨立,從架構(gòu)上來看也明顯不如以Yonah核心為代表的Intel的共享緩存技術(shù)Smart Cache。2100433B
格式:pdf
大小:80KB
頁數(shù): 38頁
評分: 4.7
圍繞中心論點, 從不同角度進行論證, 形成若干分論點, 最后合成論點。 人常說“柴米油鹽”這就是生活的必須,基礎(chǔ)是柴,有 了柴才有了人們生活必須的吃喝玩樂。柴,追溯到遠(yuǎn)古時代 “鉆木生火”野外生活的時候,都是靠著野火,柴火, 共同點是給人們以照明和溫暖,帶來生活的便利和幸福, 促進了社會的進步。 轉(zhuǎn)換成電的這個過程中,帶來生活種種便利,如今電已 成為不可或缺的,已成為人們的柴,科技進步的最好證明。 發(fā)明了電 電的逐步應(yīng)用 成為生活中必需品 答:( 1)辨別一次能源與二次能源的依據(jù). 一次能源是從自然界中直接獲得的天然能源. 一次能源經(jīng)過加轉(zhuǎn)換成人們需要的 另一種形式的能源叫做二次能源,如電力、蒸汽、焦炭、煤氣等. (2)常規(guī)能源和新能源的劃分是相對的. “常規(guī)”是通常使用的意思. “新”的含義有兩層:一是 20 世紀(jì)中葉以來才被利用; 二是以前利用過,現(xiàn)在又有新的利用方式. 它們本質(zhì)的區(qū)別
格式:pdf
大?。?span id="qeb47nz" class="single-tag-height">80KB
頁數(shù): 6頁
評分: 4.5
精心整理 有人說:“聲音是靈魂的音樂。 ”是的,有時候,光是聽一個人的聲音, 就構(gòu)成了足夠的誘惑力。 而有的人,卻不那么幸運,不說話還好,一張口,就讓人厭煩。聲音是一種謎。 ? 35歲的艾藍說:“我不喜歡自己的聲音, 不夠甜美、性感?!彼M约旱穆曇粝窭铉洌?“以 前聽過她唱歌,覺得她聲音一般。 后來在美國電視里聽到她說中文的廣告, 很震驚!她的聲音很性 感,比較高但又不尖,很女人。 ”? 艾藍是一個優(yōu)雅的女人,聲音柔美而不失醇厚。她還記得第一次聽到自己的錄音, “是大學(xué) 時上外語課,從錄音聽著覺得不好聽,太成熟。 ”? 第一次聽到自己的錄音,或者第一次聽到答錄機上自己的聲音,有誰沒有覺得怪異?似乎一 種不和諧突然出現(xiàn):那個所謂的自己的聲音,與我們對自己的印象相距遙遠(yuǎn)! ? “在 90%的情況下,人們不喜歡錄下來自己的聲音, 他們覺得不像自己。 因為人是通過骨頭聽 到自己的聲音,
CPU在Cache中找到有用的數(shù)據(jù)被稱為命中,當(dāng)Cache中沒有CPU所需的數(shù)據(jù)時(這時稱為未命中),CPU才訪問內(nèi)存。從理論上講,在一顆擁有2級Cache的CPU中,讀取L1Cache的命中率為80%。也就是說CPU從L1Cache中找到的有用數(shù)據(jù)占數(shù)據(jù)總量的80%,剩下的20%從L2Cache讀取。由于不能準(zhǔn)確預(yù)測將要執(zhí)行的數(shù)據(jù),讀取L2的命中率也在80%左右(從L2讀到有用的數(shù)據(jù)占總數(shù)據(jù)的16%)。那么還有的數(shù)據(jù)就不得不從內(nèi)存調(diào)用,但這已經(jīng)是一個相當(dāng)小的比例了。在一些高端領(lǐng)域的CPU中,我們常聽到L3Cache,它是為讀取L2Cache后未命中的數(shù)據(jù)設(shè)計的-種Cache,在擁有L3Cache的CPU中,只有約5%的數(shù)據(jù)需要從內(nèi)存中調(diào)用,這進一步提高了CPU的效率。
為了保證CPU訪問時有較高的命中率,Cache中的內(nèi)容應(yīng)該按一定的算法替換。一種較常用的算法是"最近最少使用算法"(LRU算法),它是將最近一段時間內(nèi)最少被訪問過的行淘汰出局。因此需要為每行設(shè)置一個計數(shù)器,LRU算法是把命中行的計數(shù)器清零,其他各行計數(shù)器加1。當(dāng)需要替換時淘汰行計數(shù)器計數(shù)值最大的數(shù)據(jù)行出局。這是一種高效、科學(xué)的算法,其計數(shù)器清零過程可以把一些頻繁調(diào)用后再不需要的數(shù)據(jù)淘汰出Cache,提高Cache的利用率。
Cache的替換算法對命中率的影響。 當(dāng)新的主存塊需要調(diào)入Cache并且它的可用空間位置又被占滿時,需要替換掉Cache的數(shù)據(jù),這就產(chǎn)生了替換策略(算法)問題。根據(jù)程序局部性規(guī)律可知:程序在運行中,總是頻繁地使用那些最近被使用過的指令和數(shù)據(jù)。這就提供了替換策略的理論依據(jù)。 替換算法目標(biāo)就是使Cache獲得最高的命中率。Cache替換算法是影響代理緩存系統(tǒng)性能的一個重要因素,一個好的Cache替換算法可以產(chǎn)生較高的命中率。常用算法如下:
(1)隨機法(RAND法) 隨機替換算法就是用隨機數(shù)發(fā)生器產(chǎn)生一個要替換的塊號,將該塊替換出去,此算法簡單、易于實現(xiàn),而且它不考慮Cache塊過去、現(xiàn)在及將來的使用情況,但是沒有利用上層存儲器使用的"歷史信息"、沒有根據(jù)訪存的局部性原理,故不能提高Cache的命中率,命中率較低。
(2)先進先出法(FIFO法) 先進先出(First-In-First-Out,F(xiàn)IFO)算法。就是將最先進入Cache的信息塊替換出去。FIFO算法按調(diào)入Cache的先后決定淘汰的順序,選擇最早調(diào)入Cache的字塊進行替換,它不需要記錄各字塊的使用情況,比較容易實現(xiàn),系統(tǒng)開銷小,其缺點是可能會把一些需要經(jīng)常使用的程序塊(如循環(huán)程序)也作為最早進入Cache的塊替換掉,而且沒有根據(jù)訪存的局部性原理,故不能提高Cache的命中率。因為最早調(diào)入的信息可能以后還要用到,或者經(jīng)常要用到,如循環(huán)程序。此法簡單、方便,利用了主存的"歷史信息", 但并不能說最先進入的就不經(jīng)常使用,其缺點是不能正確反映程序局部性原理,命中率不高,可能出現(xiàn)一種異?,F(xiàn)象。
(3)近期最少使用法(LRU法) 近期最少使用(Least Recently Used,LRU)算法。這種方法是將近期最少使用的Cache中的信息塊替換出去。該算法較先進先出算法要好一些。但此法也不能保證過去不常用將來也不常用。 LRU法是依據(jù)各塊使用的情況,總是選擇那個最近最少使用的塊被替換。這種方法雖然比較好地反映了程序局部性規(guī)律,但是這種替換方法需要隨時記錄Cache中各塊的使用情況,以便確定哪個塊是近期最少使用的塊。LRU算法相對合理,但實現(xiàn)起來比較復(fù)雜,系統(tǒng)開銷較大。通常需要對每一塊設(shè)置一個稱為計數(shù)器的硬件或軟件模塊,用以記錄其被使用的情況。