cache在計算機中的作用是什麼

2022-01-11 02:40:54 字數 6331 閱讀 7191

1樓:河傳楊穎

高速緩衝儲存器是存在於主存與cpu之間的一級儲存器,具體作用如下:

在計算機技術發展過程中,主儲存器存取速度一直比**處理器操作速度慢得多,使**處理器的高速處理能力不能充分發揮,整個計算機系統的工作效率受到影響。

有很多方法可用來緩和**處理器和主儲存器之間速度不匹配的矛盾,如採用多個通用暫存器、多儲存體交叉存取等,在儲存層次上採用高速緩衝儲存器也是常用的方法之一。很多大、中型計算機以及新近的一些小型機、微型機也都採用高速緩衝儲存器。

cache組成部分

主要由三大部分組成:

cache儲存體:存放由主存調入的指令與資料塊。

2樓:開心時刻樂園

高速緩衝儲存器(cache)實際上是為了把由dram組成的大容量記憶體儲器都看做是高速儲存器而設定的小容量區域性儲存器,一般由高速sram構成。這種區域性儲存器是面向cpu的,引入它是為減小或消除cpu與記憶體之間的速度差異對系統效能帶來的影響。cache 通常儲存著一份記憶體儲器中部分內容的副本(拷貝),該內容副本是最近曾被cpu使用過的資料和程式**。

cache的有效性是利用了程式對儲存器的訪問在時間上和空間上所具有的區域性區域性,即對大多數程式來說,在某個時間片內會集中重複地訪問某一個特定的區域。如push/pop指令的操作都是在棧頂順序執行,變數會重複使用,以及子程式會反覆呼叫等,就是這種區域性區域性的實際例證。因此,如果針對某個特定的時間片,用連線在區域性匯流排上的cache代替低速大容量的記憶體儲器,作為cpu集中重複訪問的區域,系統的效能就會明顯提高。

系統開機或復位時,cache 中無任何內容。當cpu送出一組地址去訪問記憶體儲器時,訪問的儲存器的內容才被同時「拷貝」到cache中。此後,每當cpu訪問儲存器時,cache 控制器要檢查cpu送出的地址,判斷cpu要訪問的地址單元是否在cache 中。

若在,稱為cache 命中,cpu可用極快的速度對它進行讀/寫操作;若不在,則稱為cache未命中,這時就需要從記憶體中訪問,並把與本次訪問相鄰近的儲存區內容複製到 cache 中。未命中時對記憶體訪問可能比訪問無cache 的記憶體要插入更多的等待週期,反而會降低系統的效率。而程式中的呼叫和跳轉等指令,會造成非區域性操作,則會使命中率降低。

因此,提高命中率是cache 設計的主要目標。

3樓:匿名使用者

作為一種快取。比如你的密碼啊,瀏覽記錄啊

4樓:匿名使用者

解決cpu和主存之間速度不匹配的問題

5樓:

這可感受到那客服呢撒

計算機中cache是什麼意思?

6樓:匿名使用者

cache是一種特殊的儲存器,它由cache 儲存部件和cache控制部件組成。cache 儲存部件一般採用與cpu同型別的半導體儲存器件,存取速度比記憶體快幾倍甚至十幾倍。而cache 控制器部件包括主存地址暫存器、cache 地址暫存器,主存—cache地址變換部件及替換控制部件等。

至於它們各自又是怎樣工作的、有何作用等等,我想我們就沒有必要做進一步的研究,知道一般cache分為l1 cache(其中又分為資料cache、**cache)、l2 cache就行了

什麼是cache?作用是什麼?說明其在微處理機中的位置? 5

7樓:

前言 雖然cpu主頻的提升會帶動系統效能的改善,但系統效能的提高不僅僅取決於cpu,還與系統架構、指令結構、資訊在各個部件之間的傳送速度及儲存部件的存取速度等因素有關,特別是與cpu/記憶體之間的存取速度有關。

若cpu工作速度較高,但記憶體存取速度相對較低,則造成cpu等待,降低處理速度,浪費cpu的能力。

如500mhz的pⅲ,一次指令執行時間為2ns,與其相配的記憶體(sdram)存取時間為10ns,比前者慢5倍,cpu和pc的效能怎麼發揮出來?

如何減少cpu與記憶體之間的速度差異?有4種辦法:

一種是在基本匯流排週期中插入等待,但這樣會浪費cpu的能力。

另一種方法是採用存取時間較快的sram作儲存器,這樣雖然解決了cpu與儲存器間速度不匹配的問題,但卻大幅提升了系統成本。

第3種方法是在慢速的dram和快速cpu之間插入一速度較快、容量較小的sram,起到緩衝作用;使cpu既可以以較快速度存取sram中的資料,又不使系統成本上升過高,這就是cache法。

還有一種方法,採用新型儲存器。

目前,一般採用第3種方法。它是pc系統在不大增加成本的前提下,使效能提升的一個非常有效的技術。

本文簡介了cache的概念、原理、結構設計以及在pc及cpu中的實現。

cache的工作原理

cache的工作原理是基於程式訪問的區域性性。

對大量典型程式運**況的分析結果表明,在一個較短的時間間隔內,由程式產生的地址往往集中在儲存器邏輯地址空間的很小範圍內。指令地址的分佈本來就是連續的,再加上迴圈程式段和子程式段要重複執行多次。因此,對這些地址的訪問就自然地具有時間上集中分佈的傾向。

資料分佈的這種集中傾向不如指令明顯,但對陣列的儲存和訪問以及工作單元的選擇都可以使儲存器地址相對集中。這種對區域性範圍的儲存器地址頻繁訪問,而對此範圍以外的地址則訪問甚少的現象,就稱為程式訪問的區域性性。

根據程式的區域性性原理,可以在主存和cpu通用暫存器之間設定一個高速的容量相對較小的儲存器,把正在執行的指令地址附近的一部分指令或資料從主存調入這個儲存器,供cpu在一段時間內使用。這對提高程式的執行速度有很大的作用。這個介於主存和cpu之間的高速小容量儲存器稱作高速緩衝儲存器(cache)。

系統正是依據此原理,不斷地將與當前指令集相關聯的一個不太大的後繼指令集從記憶體讀到cache,然後再與cpu高速傳送,從而達到速度匹配。

cpu對儲存器進行資料請求時,通常先訪問cache。由於區域性性原理不能保證所請求的資料百分之百地在cache中,這裡便存在一個命中率。即cpu在任一時刻從cache中可靠獲取資料的機率。

命中率越高,正確獲取資料的可靠性就越大。一般來說,cache的儲存容量比主存的容量小得多,但不能太小,太小會使命中率太低;也沒有必要過大,過大不僅會增加成本,而且當容量超過一定值後,命中率隨容量的增加將不會有明顯地增長。

只要cache的空間與主存空間在一定範圍內保持適當比例的對映關係,cache的命中率還是相當高的。

一般規定cache與記憶體的空間比為4:1000,即128kb cache可對映32mb記憶體;256kb cache可對映64mb記憶體。在這種情況下,命中率都在90%以上。

至於沒有命中的資料,cpu只好直接從記憶體獲取。獲取的同時,也把它拷進cache,以備下次訪問。

cache的基本結構

cache通常由相聯儲存器實現。相聯儲存器的每一個儲存塊都具有額外的儲存資訊,稱為標籤(tag)。當訪問相聯儲存器時,將地址和每一個標籤同時進行比較,從而對標籤相同的儲存塊進行訪問。

cache的3種基本結構如下:

全相聯cache

在全相聯cache中,儲存的塊與塊之間,以及儲存順序或儲存的儲存器地址之間沒有直接的關係。程式可以訪問很多的子程式、堆疊和段,而它們是位於主儲存器的不同部位上。

因此,cache儲存著很多互不相關的資料塊,cache必須對每個塊和塊自身的地址加以儲存。當請求資料時,cache控制器要把請求地址同所有地址加以比較,進行確認。

這種cache結構的主要優點是,它能夠在給定的時間內去儲存主存器中的不同的塊,命中率高;缺點是每一次請求資料同cache中的地址進行比較需要相當的時間,速度較慢。

直接映像cache

直接映像cache不同於全相聯cache,地址僅需比較一次。

在直接映像cache中,由於每個主儲存器的塊在cache中僅存在一個位置,因而把地址的比較次數減少為一次。其做法是,為cache中的每個塊位置分配一個索引欄位,用tag欄位區分存放在cache位置上的不同的塊。

單路直接映像把主儲存器分成若干頁,主儲存器的每一頁與cache儲存器的大小相同,匹配的主儲存器的偏移量可以直接映像為cache偏移量。cache的tag儲存器(偏移量)儲存著主儲存器的頁地址(頁號)。

以上可以看出,直接映像cache優於全相聯cache,能進行快速查詢,其缺點是當主儲存器的組之間做頻繁呼叫時,cache控制器必須做多次轉換。

組相聯cache

組相聯cache是介於全相聯cache和直接映像cache之間的一種結構。這種型別的cache使用了幾組直接映像的塊,對於某一個給定的索引號,可以允許有幾個塊位置,因而可以增加命中率和系統效率。

cache與dram存取的一致性

在cpu與主存之間增加了cache之後,便存在資料在cpu和cache及主存之間如何存取的問題。讀寫各有2種方式。

貫穿讀出式(look through)

該方式將cache隔在cpu與主存之間,cpu對主存的所有資料請求都首先送到cache,由cache自行在自身查詢。如果命中,則切斷cpu對主存的請求,並將資料送出;不命中,則將資料請求傳給主存。

該方法的優點是降低了cpu對主存的請求次數,缺點是延遲了cpu對主存的訪問時間。

旁路讀出式(look aside)

在這種方式中,cpu發出資料請求時,並不是單通道地穿過cache,而是向cache和主存同時發出請求。由於cache速度更快,如果命中,則cache在將資料回送給cpu的同時,還來得及中斷cpu對主存的請求;不命中,則cache不做任何動作,由cpu直接訪問主存。

它的優點是沒有時間延遲,缺點是每次cpu對主存的訪問都存在,這樣,就佔用了一部分匯流排時間。

寫穿式(write through)

任一從cpu發出的寫訊號送到cache的同時,也寫入主存,以保證主存的資料能同步地更新。

它的優點是操作簡單,但由於主存的慢速,降低了系統的寫速度並佔用了匯流排的時間。

回寫式(copy back)

為了克服貫穿式中每次資料寫入時都要訪問主存,從而導致系統寫速度降低並佔用匯流排時間的弊病,儘量減少對主存的訪問次數,又有了回寫式。

它是這樣工作的:資料一般只寫到cache,這樣有可能出現cache中的資料得到更新而主存中的資料不變(資料陳舊)的情況。但此時可在cache 中設一標誌地址及資料陳舊的資訊,只有當cache中的資料被再次更改時,才將原更新的資料寫入主存相應的單元中,然後再接受再次更新的資料。

這樣保證了cache和主存中的資料不致產生衝突。

cache的分級體系設計

微處理器效能由如下幾種因素估算:

效能=k(fⅹ1/cpi-(1-h)ⅹn)

式中:k為比例常數,f為工作頻率,cpi為執行每條指令需要的週期數,h為cache的命中率,n為儲存週期數。

雖然,為了提高處理器的效能,應提高工作頻率,減少執行每條指令需要的週期數,提高cache的命中率。同時分發多條指令和採用亂序控制,可以減少cpi值;採用轉移**和增加cache容量,可以提高h值。為了減少儲存週期數n,可採用高速的匯流排介面和不分塊的cache方案。

以前提高處理器的效能,主要靠提高工作頻率和提高指令級的並行度,今後則主要靠提高cache的命中率。設計出無阻塞cache分級結構。

cache分級結構的主要優勢在於,對於一個典型的一級快取系統的80%的記憶體申請都發生在cpu內部,只有20%的記憶體申請是與外部記憶體打交道。而這20%的外部記憶體申請中的80%又與二級快取打交道。因此,只有4%的記憶體申請定向到dram中。

cache分級結構的不足在於快取記憶體組數目受限,需要佔用線路板空間和一些支援邏輯電路,會使成本增加。綜合比較結果還是採用分級cache。

l1 cache的設計有在片一級分離和統一設計兩種方案。

intel、amd、原dec等公司將l1 cache設計成指令cache與資料cache分離型。因為這種雙路快取記憶體結構減少了爭用快取記憶體所造成的衝突,改進了處理器效能,以便資料訪問和指令呼叫在同一時鐘週期內進行。

但是,僅依靠增加在片一級cache的容量,並不能使微處理器效能隨之成正比例地提高,還需設定二級cache。

在l1 cache結構方面,一般採用回寫式靜態隨機儲存器(sram)。目前,l1 cache容量有加大的趨勢。

l2 cache的設計分晶片內建和外接兩種設計。

如amd k6-3內建的256kb l2 cache與cpu同步工作。外接l2 cache,一般都要使二級cache與cpu實現緊密耦合,並且與在片一級cache形成無阻塞階層結構。同時還要採用分離的前臺匯流排(外部i/o匯流排)和後臺匯流排(二級cache匯流排)模式。

顯然,將來隨著半導體整合工藝的提高,如果cpu與二級cache整合在單晶片上,則cpu與二級cache的耦合效果可能更佳。

由於l2 cache內建,因此,還可以在原主機板上再外接大容量快取1mb~2mb,它被稱為l3 cache。

pc中的cache技術的實現

pc中cache的發展是以80386為界的。

結語 目前,pc系統的發展趨勢之一是cpu主頻越做越高,系統架構越做越先進,而主存dram的結構和存取時間改進較慢。因此,cache技術愈顯重要,在pc系統中cache越做越大。廣大使用者已把cache做為評價和選購pc系統的一個重要指標。

本文小結了cache的源脈。希望可以給廣大使用者一個較系統的參考。

在計算機中,解釋的意思,計算機中解釋程式什麼意思線上等答案

計算機的解釋來 puter calculation machine 接收 處理自 和提供資料的一種裝置,通常由輸入輸出裝置 儲存器 運算和邏輯部件以及控制器組成,有模擬式 數字式及混合式三種型別 詳細解釋 能進行數 算的機器。有的用機械裝置製成,如手搖計算機 有的用電子元件製成,如電子計算機。詞語分...

計算機中的URL是什麼,計算機中「URL」是指什麼?

url 統一資源定位符 計算機中 url 是指什麼?url是uniform resource locator的英文縮寫。中文意思是 統一資源定位符 在計算機中 url 是指 是用於完整地描述internet上網頁和其他資源的地址的一種標識方法。統一資源定位符,也被稱為網頁地址,是因特網上標準的資源的...

計算機中什麼是程式,計算機中的指令和程式有什麼區別?

計算機中的程式是什麼你們知道嗎?程式是軟體開發人員根據使用者需求開發的,用程式設計語言描述的,適合計算機執行的指令 語句 序列。程式在港澳臺地區被稱為程式。程式都是為了實現特定目標或解決特定問題而設計出來,能讓電子計算機執行一個或多個操作,或執行某一任務。一般可以分為系統程式和應用程式兩大類。程式是...