不管是台式電腦還是筆記本的CPU

2023-01-11 08:18:02 字數 4912 閱讀 7810

不管是台式電腦還是筆記本的cpu,處理器的二/三快取都是極其重要的乙個數量,一方面是被廠家宣傳的重點,另一方面也確實影響著電腦的速度。同時在記憶體不足的電腦裡,增加記憶體對系統的效能提公升往往有著立桿見影的效果。於是玩家不禁要問,為什麼cpu的快取和記憶體對系統的效能影響這麼大呢?

這就得從計算機的儲存系統的工作方式和原理談起。

儲存器是計算機中用於存放指令和資料的部件。計算機在處理資料時,**處理器從儲存器讀出指令,再按照指令中的位址從儲存器中讀出資料,按照指令要求對資料進行操作。**處理器的高速運算要求儲存器要在很短的時間內完成指令和資料的訪問操作。

計算機層次結構儲存器

隨著對計算機效能的要求越來越高,現代計算機對儲存系統有三個基本要求,即:訪問時間短(速度快)、儲存容量大和**成本低。而容量越大訪問的時間就會長,速度越快,**就越高。

為了解決這個問題,便採用了高速緩衝儲存器,主儲存器和輔助儲存器3個部分組成。

計算機各種儲存及其特點

其中暫存器(registe)是用於cpu內部各單元之間的周轉,是cpu內部用來建立和儲存cpu運算結果和其它運算結果的地方,擁有非常高的讀寫速度,裡面的資料是下一步必然會用到的,所以暫存器不屬於層次結構儲存器。cpu內部的暫存器有很多種型別。cpu對儲存器中的資料進行處理時,往往先把資料取到內部暫存器中,而後再作處理。

外部暫存器是計算機中其它一些部件上用於暫存資料的暫存器,它與cpu之間通過「埠」交換資料,外部暫存器具有暫存器和記憶體儲器雙重特點。而通用暫存器的資料寬度決定了處理器一次可以執行的資料量。

64位技術的暫存器變化

x86-64技術就是新增的幾組cpu暫存器將提供更快的執行效率。標準的32位的x86架構包括8個通用暫存器,amd在64 位x86架構中又增加了8組,將暫存器的數目提高到了16組。x86-64暫存器預設位64-bit。

還增加了8組128-bit xmm暫存器,將能給單指令多資料流技術運算提供更多的空間,這些128位的暫存器將提供在向量和標量計算模式下進行128位雙精度處理,為3d建模、向量分析和虛擬實境的實現提供了硬體基礎。通過提供了更多的暫存器,按照x86-64標準生產的cpu可以更有效的處理資料,可以在乙個時鐘週期中傳輸更多的資訊。

高速緩衝儲存器就是我們平常所說的cpu快取,通常包括一級、二級快取,過去的高階產品還會有**快取,現在中低端產品也有l3了,比如amd羿龍ii雙核系列,intel的i3系列。關於快取記憶體,後面會有更詳細的介紹。

主儲存器就是我們常說的記憶體條。高速緩衝儲存器和主儲存器(記憶體條)由於可以直接被cpu讀取,故稱之為記憶體儲器。

輔助儲存器主要是指硬碟,而海量儲存器則是指過去主要用的磁帶機一類的裝置,現在隨便硬碟技術的提公升,輔助儲存器也可以達到「海量」的標準。而且現在的輔助儲存器一般都帶有自身的快取。

介紹完儲存結構後,可能會產生乙個疑問,那就是為什麼層次結構儲存器會加速計算機的速度,或者說層次結構的依據是什麼?

下面就得引入必備的「程式的區域性性原理」知識了。

程式的區域性性原理:是指程式在執行時呈現出區域性性規律,即在一段時間內,整個程式的執行僅限於程式中的某一部分。相應地,執行所訪問的儲存空間也侷限於某個儲存區域。

區域性性原理又表現為:時間區域性性(temporal locality)和空間區域性性(spatial locality)。

程式的呼叫返回行為

時間區域性性是指如果程式中的某條指令一旦執行,則不久之後該指令可能再次被執行;如果某資料被訪問,則不久之後該資料可能再次被訪問。

空間區域性性

空間區域性性是指一旦程式訪問了某個儲存單元,則不久之後。其附近的儲存單元也將被訪問。

空間區域性性和時間區域性性是有區別的。空間區域性性指執行涉及很多簇聚的儲存器單元的趨勢,這反映了處理器順序訪問指令的傾向,同時,也反映了程式順序訪問資料單元的傾向,如處理資料表。時間區域性性指處理器訪問最近使用過的儲存器單元的趨勢,例如,當執行乙個迴圈時,處理器重複執行相同的指令集合。

傳統上,時間區域性性是通過將最近使用的指令和資料值儲存到快取記憶體中並使用快取記憶體的層次結構實現的。空間區域性性通常是使用較大的快取記憶體並將預取機制整合到快取記憶體控制邏輯中實現的。

舉例:當硬碟受到cpu指令控制開始讀取資料時,硬碟上的控制芯會控制磁頭把正在讀取的簇的下乙個或者幾個簇中的資料讀到硬碟的快取中(由於硬碟上資料儲存時是比較連續的,所以讀取命中率較高),當需要讀取下乙個或者幾個簇中的資料的時候,硬碟則不需要再次讀取資料,直接把快取中的資料傳輸到記憶體中就可以了,由於速度遠遠高於磁頭讀寫的速度,所以能夠達到明顯改善能的目的,即根據空間區域性性原理,**下一步所需要的資料,並將其提前寫入記憶體。

為了保證cpu訪問時有較高的命中率,記憶體儲器(包括cpu快取和記憶體)中的內容應該按一定的演算法替換。較常用的演算法是「最近最少使用演算法」(lru演算法),它是將最近一段時間內最少被訪問過的行淘汰出局。因此需要為每行設定乙個計數器,lru演算法是把命中行的計數器清零,其他各行計數器加1。

當需要替換時淘汰行計數器計數值最大的資料行出局。這是一種高效、科學的演算法,其計數器清零過程可以把一些頻繁呼叫後再不需要的資料淘汰出,提高利用率。這樣記憶體儲器中的資料在更新的時候則會根據時間局布性原理把讀取頻率高的及其周圍的相關資料留下,把低匯入虛擬記憶體或者淘汰掉(關於虛擬記憶體後面會有描述)。

在層次儲存結構中的每一級都採用程式區域性分布原理的原理來預讀和更替資料。由於預讀的命中率很高,故續約了時間,這也是採用層次儲存結構的基礎。

現在快取記憶體的概念已被擴充,不僅在cpu和主記憶體之間有快取記憶體而且在記憶體和硬碟之間也有cache(磁碟快取記憶體),乃至在硬碟與網路之間也有某種意義上的 cache(internet 臨時資料夾)——凡是位於速度相差較大的兩種硬體之間的,用於協調兩者資料傳輸速度差異的結構,均可稱之為cache。cache與上下流之間的資料交換都是程式區域性性原理。這次我們主要討論cpu的快取記憶體,前面已經介紹了cpu快取記憶體是記憶體儲器的一種,下面將介紹其產生的原因及演變。

早期計算機的cpu與主存的工作速度較為接近,主記憶體的速度並不影響整機的運算速度。隨著ic設計和半導體製造工藝的發展,cpu的執行速度遠高於主記憶體的速度。這要求系統中主存的訪問速度提高,儲存容量增大。

而主儲存器一般採用dram (動態隨機儲存器) ,其容量的提高是比較快的,但是讀取速度的提高卻很慢,因此在速度上與cpu主頻的提高產生了不相配的情況。為解決高速cpu 與低速記憶體之間的速度差異,最經濟、有效的方法是在兩者之間插入容量不大但操作速度很高的儲存器快取記憶體(cache) ,起到緩衝作用,解決了兩者速度的平衡和匹配問題,對微處理器整體效能有很大提高。

486時代的兩個代表產品486dx和486sx

,這種片內快取記憶體稱為一級(l1)快取,80486還支援主機板上的二級(l2)快取。快取概念由此誕生,並一直延續到今天成為影響cpu效能的重要因素。

四核nehalem架構擁有高達8m的**快取記憶體

隨著cpu製造工藝的發展,二級快取和**快取也能輕易的整合在cpu核心中,容量也在逐年提公升。至今,在中低端產品中整合**快取的cpu也不少見。

當然,有人可能要問,為什麼不直接把記憶體的速度提高到和快取一樣快呢?這涉及到兩個方面,為了得到更高的速度,那訊號的發射頻率必須提公升,而為了得到更大的容量,就必須減少積體電路中訊號傳輸中存在干擾,干擾與傳播速度又正相關,如果頻率提高,干擾就會增強,所以兩者比較難以統一。

構成快取的6t sram電晶體結構圖

另一方面是「經濟」原因,快取記憶體快取通常都是靜態ram (sram),速度是非常的快, 但是靜態ram整合度低,儲存相同的資料,靜態ram的體積是動態ram的6倍,高同容量的靜態ram**是動態ram的四倍。這就限制了靜態ram容量的進一步擴大,同時快取大小也成了cpu級別的乙個重要標誌。

雖然我們知道了快取記憶體可以大幅的提高cpu的速度,那麼,它們工作的具體原理是什麼呢?

當cpu處理資料時,它會先到cache中去尋找,如果資料因之前的操作已經讀取而被暫存其中,就不需要再從記憶體中讀取資料——由於cpu的執行速度一般比主記憶體的讀取速度快,主儲存器週期(訪問主儲存器所需要的時間)為數個時鐘週期。因此若要訪問主記憶體的話,就必須等待數個cpu週期從而造成浪費。

cache 的邏輯結構

cache由控制和儲存器2部分組成,如上圖所示,其中虛線框內為控制部分。cache的儲存器中存放著主存的部分拷貝,其控制部分有3 個功能:

(1) 判斷要訪問的資料是否在cache中,若在,為命中;否則,為未命中。

(2) 命中時,進行cache 的定址。

(3) 未命中時,按替換原則,確定主存中的資訊塊要讀入到cache 中的哪個資訊塊空間。

cpu在快取中找到有用的資料被稱為命中,當快取中沒有cpu所需的資料時(這時稱為未命中),cpu才訪問記憶體。從理論上講,在一顆擁有一級快取的cpu中,讀取一級快取的命中率為80%。也就是說cpu一級快取中找到的有用資料佔資料總量的80%,剩下的20%從二級快取中讀取。

由於不能準確**將要執行的資料並將其預讀到快取中,讀取二級快取的命中率也在80%左右(從二級快取讀到有用的資料佔總資料的16%)。那麼還有的資料就不得不從記憶體呼叫,但這已經是乙個相當小的比例了。較高階的cpu中,還會帶有**快取,它是為讀取二級快取後未命中的資料設計的—種快取,在擁有**快取的cpu中,只有約5%的資料需要從記憶體中呼叫,這進一步提高了cpu的效率。

擁有144mb快取的八路ibm power5處理器

但這個比例也不是絕對的,因為隨著軟體的發展,需要越來越多的快取來預存將要運算的資料,如果快取的容量不隨著軟體的發展而增大,就會出現不夠用的情況。

另外在處理器快取的發展中,intel和amd的處理器一級快取在邏輯結構設計上在core之前並不一樣。amd對一級快取的定位是「實資料讀寫快取」,基於該架構的一級資料快取主要用於儲存cpu最先讀取的資料;而更多的讀取資料則分別儲存在二/**快取和系統記憶體當中。即二級/**快取中的一部分資料都要在一定的規則下搬到一級快取中。

二級快取的容量自然對amd cpu的整體效能影響小些。相對的,amd則總是試圖把一級快取做的更大些。

intel在對core之前一級快取的理解是「資料**指令追蹤快取」,即是說一級快取中儲存的其實只是二級快取中資料的位址,而不是這些資料的複製。由於一級資料快取不再儲存實際資料,因此「資料**指令追蹤快取」設計能夠極大地降cpu對一級資料快取容量的要求,降低處理器的生產難度。但這種設計的弊端在於資料讀取效率較「實資料讀寫快取設計」低,而且對二級快取容量的依賴性非常大。

膝上型電腦和台式電腦在家裡沒有裝網也可以上網

膝上型電腦和台式電腦在家裡沒有裝網也可以上網 教你如何用電腦通過藍芽連線手機上網 現在很多同學買了筆記本,在無聊的大學生活中多了一條打發時間的門路,可是當寒假或是暑假把膝上型電腦帶回家的時候發現這機器只能是看看電影或是玩單機遊戲了,當然有的同學家裡連了網,有的同學家裡富裕也可以買個包月無線上網絡卡過...

平板電腦和筆記本的區別

現在擁有平板電腦和筆記本的人是越來越多了。從外觀上來看,平板電腦和筆記本差不多,讓很多人都不知道該如何去區分。其實簡單來說,筆記本是面向主流人群的,比如學生,商務人士等,而平板電腦更像是上網本的一種,它唯一的好處就是便攜性,是筆記本甚至是上網本所不及的。下面我們就從多方面來分析一下平板電腦和筆記本的...

膝上型電腦鍵盤及電腦的保養方法

膝上型電腦鍵盤的清理 上面說到邊吃邊玩會弄髒筆記本螢幕,其實,除了螢幕以外,零食的殘渣碎屑也容易掉進鍵盤的縫隙中,在加上日常使用不可避免的灰塵積累,不進行清理的話,也會影響鍵盤自身的使用壽命。筆記本鍵盤清理 如今的膝上型電腦多數都採用巧克力鍵盤,相對而言,封閉式的巧克力鍵盤 如聯想的巧克力鍵盤 清理...