❶ 一級Cache與二級Cache的主要區別是什麼
一級Cache與二級Cache都是CPU緩存,他們的主要區別:
1、所在位置不同
一級Cache是一級緩存,位於CPU內部;
二級Cache是二級緩存,位於CPU和主存儲器DRAM(Dynamic RAM)之間。
2、讀取數據的順序不同
當CPU要讀取一個數據時,首先從一級緩存中查找,如果沒有找到再從二級緩存中查找,如果還是沒有就從三級緩存或內存中查找。一般來說,每級緩存的命中率大概都在80%左右,也就是說全部數據量的80%都可以在一級緩存中找到,只剩下20%的總數據量才需要從二級緩存、三級緩存或內存中讀取,由此可見一級緩存是整個CPU緩存架構中最為重要的部分。
3、作用不同
一級緩存可分為一級指令緩存和一級數據緩存。一級指令緩存用於暫時存儲並向CPU遞送各類運算指令;一級數據緩存用於暫時存儲並向CPU遞送運算所需數據,這就是一級緩存的作用。
二級緩存是一級緩存的緩沖器:一級緩存製造成本很高因此它的容量有限,二級緩存的作用就是存儲那些CPU處理時需要用到、一級緩存又無法存儲的數據。
❷ 內存的一個區域可以同時用於緩存和緩沖嗎
緩沖區(Buffer)定義
緩沖區(Buffer),它是內存空間的一部分。也就是說,在內存空間中預留了一定的存儲空間,這些存儲空間用來緩沖輸入或輸出的數據,這部分預留的空間就叫做緩沖區,顯然緩沖區是具有一定大小的。
有時候,從鍵盤輸入的內容,或者將要輸出到顯示器上的內容,會暫時進入緩沖區,待時機成熟,再一股腦將緩沖區中的所有內容「倒出」,我們才能看到變數的值被刷新,或者屏幕產生變化。
有時候,用戶希望得到最及時的反饋,輸入輸出的內容就不能進入緩沖區。
為什麼要引入緩沖區?
首先,緩沖區可以使低速的輸入輸出設備和高速運行的程序能夠協調工作。一般來說程序在CPU上運行,其速度必定遠超過一般硬體運行速度。例如,硬碟的速度要遠低於 CPU,它們之間有好幾個數量級的差距,當向硬碟寫入數據時,程序需要等待,不能做任何事情,就好像卡頓了一樣,用戶體驗非常差。計算機上絕鬧殲大多數應用程序都需要和硬體打交道,例如讀寫硬碟、向顯示器輸出、從鍵盤輸入等,如果每個程序都等待硬體,那麼整台計算機也將變得卡頓。但是有了緩沖區,就可以將數據先放入緩沖區中(內存的讀寫速度也遠高於硬碟),然後程序可以繼續往下執行,等所有的數據都准備好了,再將緩沖區中的所有數據一次性地寫入硬碟,這樣程序就減少了等待的次數,變得流暢起來。
其次,緩沖區可以有效減少硬體設備的讀寫次數。如果每次輸入輸出操作只傳輸少量數據,就需要傳送很多次,這樣會浪費很多時間,因為開始讀寫與終止讀寫所需要的時間很長,如果將數據送往緩沖區,待緩沖區滿後再進行傳送會大大減少讀寫次數,這樣就可以節省很多時間。例如,我們想將數據寫入到磁碟中,不是立馬將數據寫到磁碟中,而是先輸入緩沖區中,當緩沖區滿了以後,再將數據寫入到磁碟中,這樣就可以減少磁碟的讀寫次數,不然磁碟很容易壞掉。
簡單來說,緩沖區就是一塊內存區,它用在輸入輸出設備和CPU之間,用來存儲數據。它使得低速的輸入輸出設備和高速的CPU能夠協調工作,避免低速的輸入輸出設備佔用CPU,解放出CPU,使其能夠高效率工作,同時減少操作硬體的次數。
緩沖區的類型
緩沖區分為三種類型:全緩沖、行緩沖和不帶緩沖。
1、全緩沖在這種情況下,當填滿標准I/O緩存後才進行實際I/O操作,即一定大小的緩沖區填滿後。全緩沖的典型代表是對磁碟文件的讀寫。
2、行緩沖在這種情況下,當在輸入和輸出中遇到換行符時,執行真正的I/O操作。這時,我們輸入的字元先存放在緩沖區,等按下回車鍵換行時才進行實際的I/O操作。行緩沖的典型代表就是標准輸入設備(也即鍵盤)和標准輸出設備(也即顯示器)。
比如:對以下語句進行執行,
執行時將會看到在Windows 平台下,會先輸出 key0 語句,過5s後才會輸出 key1 語句。這好像與理論矛盾,其實這只是因為在Windows 平台下,輸出設備認為是不帶緩沖區的;在Linux 和 Mac OS 平台下,輸出設備帶有行緩沖區。這時就會等5s後 key0key1 一起輸出。
而對於輸入設備,沒有緩沖區將導致非常奇怪的行為,因此Windows、Linux、Mac OS 在實現時都給輸入設備帶上了行緩沖,所以 scanf()、getchar()、gets() 等輸入函數在每個平台下的表現都一致。
當然,考慮到有些特殊情況希望輸入不帶有行緩沖,這時有Windows 下特有的 getche() 和 getch() 函數滿足這種特殊需求,它們都不帶緩沖區。
3、不帶緩沖也就是不進行緩沖處理,例如C語言中的getch和getche即是如此。
緩沖區的刷新條件
不管是行緩沖還是全緩沖,緩沖區滿時會自動刷新;行緩沖遇到換行符n時會刷新;關閉文件時會刷新緩沖區;程序關閉時一般也會刷新緩沖區,這個是由標准庫來保障的;
當緩沖區刷新時,就會進行真正的I/O操作。
緩存(Cache)定義
廣義的液早沖cache包含很多含義:一、CPU的Cache,它中文名稱是高速緩沖存儲器,讀寫速度很快,幾乎與CPU一樣。由於CPU的運算速度太快,內存的數據存取速度無法跟上CPU的速度,所以在CPU與內存間設置了Cache為CPU的數據快取區。當計算機執行程序時,數據與地址管理部件會預測可能要用到的數據和指令,並將這些數據和睜冊指令預先從內存中讀出送到Cache。一旦需要時,先檢查Cache,若有就從Cache中讀取,若無再訪問內存,現在的CPU還有一級Cache,二級Cache。簡單來說,Cache就是用來解決CPU與內存之間速度不匹配的問題,避免內存與輔助內存頻繁存取數據,這樣就提高了系統的執行效率。
二、磁碟也有Cache,硬碟的Cache作用就類似於CPU的Cache,它解決了匯流排介面的高速需求和讀寫硬碟的矛盾以及對某些扇區的反復讀取。
三、瀏覽器緩存(Browser Caching)是為了節約網路的資源加速瀏覽,瀏覽器在用戶磁碟上對最近請求過的文檔進行存儲,當訪問者再次請求這個頁面時,瀏覽器就可以從本地磁碟顯示文檔,這樣就可以加速頁面的閱覽,並且可以減少伺服器的壓力。這個過程與下載非常類似,不過下載是用戶的主動過程,並且下載的數據一般是長時間保存,游覽器的緩存的數據只是短時間保存,可以人為的清空。
同樣Cache也有大小,例如現在市面上購買的CPU的cache越大,級數越多,CPU的訪問速度越快。cache在很多方面都有應用,就不一一列舉了。
緩存(Cache)與緩沖區(Buffer)的主要區別
Buffer的核心作用是用來緩沖,緩和沖擊。比如你每秒要寫100次硬碟,對系統沖擊很大,浪費了大量時間在忙著處理開始寫和結束寫這兩件事嘛。用個buffer暫存起來,變成每10秒寫一次硬碟,對系統的沖擊就很小,寫入效率就高了,並極大緩和了沖擊。
Cache的核心作用是加快取用的速度。比如你一個很復雜的計算做完了,下次還要用結果,就把結果放手邊一個好拿的地方存著,下次不用再算了。加快了數據取用的速度。
簡單來說,就是Buffer偏重於輸出操作,而Cache偏重於輸入操作。
❸ cpu幾級緩存是什麼意思!詳細點謝謝
緩存就是數據交換的緩沖區(稱作Cache),當某一硬體要讀取數據時,會首先從緩存中查找需要的數據,如果找到了則直接執行,找不到的話則從內存中找。
由於緩存的運行速度比內存快得多,故緩存的作用就是幫助硬體更快地運行。
一級緩存(L1):
一級緩存(Level 1 Cache)簡稱L1 Cache,位於CPU內核的旁邊,是與CPU結合最為緊密的CPU緩存,也是歷史上最早出現的CPU緩存。
由於一級緩存的技術難度和製造成本最高,提高容量所帶來的技術難度增加和成本增加非常大,所帶來的性能提升卻不明顯,性價比很低,而且現有的一級緩存的命中率已經很高,所以一級緩存是所有緩存中容量最小的,比二級緩存要小得多。
二級緩存(L2):
二級緩存(Level2cache),是處理器內部的一些緩沖存儲器,其作用跟內存一樣。
二級緩存是比一級緩存速率更慢,容量更大的內存,主要就是做一級緩存和內存之間數據臨時交換的地方用。
三級緩存(L3):
L3 Cache(三級緩存),分為兩種,早期的是外置,現在的都是內置的。
實際作用即是,L3緩存的應用可以進一步降低內存延遲,同時提升大數據量計算時處理器的性能。降低內存延遲和提升大數據量計算能力對游戲都很有幫助。
❹ 緩沖區(或緩存)是不是指內存啊
分類: 電腦/網路 >> 軟體
問題描述:
使用快車下載東西時,聽說會先放在緩沖區里(好象是緩存,我也記不大清楚了),這里的緩沖區(或緩存)是不是就是指內存?誰幫我解釋一下!
解析:
1,高速緩存(者渣Cache),全稱「高速緩沖存儲器」。
2,例如:當CPU處理數據時,它會先到高速緩存中去尋找,如果數據因之前的操作已經讀取而被暫存其中,就不需要再從主內存中讀取數據——由於CPU的運行速度一般比主內存快,因此若要經常存取主內存的話,就必須等待數個CPU周期從而造成浪費。
3,提供「高速緩存」的目的是為了讓數據存取的速度適應CPU的處理速度,其基於的原理是內存中「程序執行與數據訪問的局域性行為」。
4,現在Cache的概念已經被擴充了:不僅在CPU和主內存之間有Cache,而且在內存和硬碟之間也有Cache(磁碟高速緩存),乃至在硬碟與網路之間也有某種意義上的「Cache」(Inter臨時文件夾)。
5,凡是位於速度相差較大的兩種硬體之間的,用於協調兩者數據傳輸速度差異的結構,均可稱之為Cache。
6,所以硬碟和內存之間隱嫌瞎的Cache就叫做磁碟高速緩存。它是在內存中開辟一塊位置,來臨時存取硬碟中的數據。這項技術可使計算機讀寫時的存儲系統平均數據傳輸率提高5-10倍,適應了當前激增的海量數據存儲需求。
7,在DOS時代,我們用:
*** artdrv 內存容量
命令來載入硬碟高速緩存。自從有了Windows後,我們就不需要載入硬碟高速緩存了,因為Windows本身有自己的高速緩存管理單元,如果強行使用 *** artdrv命令載入,反而會影響Windows的性能。
8,我們在用硬碟安裝Win2000/XP時候,系統會提示載入高速緩存,這是因為在安裝的初期還是DOS操作,所以為了達到讀存的速度灶空,安裝程序要求載入高速緩存。
❺ 高速緩存區也是屬於ram的一部分嗎
屬於RAM,但不是內存條的一部分。
高速緩沖區是CPU自帶的,CPU的一二三級緩存就是高速緩存。
與高速緩存相比,內存條只是下一級的低速緩存。
❻ 緩沖區(或緩存)是不是指內存啊
到不是指內存。
你在線看過東西或聽過歌沒有?播放器播放網上的歌曲時不是直接就可以播放,鏈慎而是需要先將網路上的內容「下載」到你的電腦上才可以進行播放。當然這個「下載」不是平時說的,這個「下載」可以是只下整首歌的部分,比如下了10%,然後開始播放歌曲,在播放過程中,播放器一直繼續「圓羨下載」著後面的部分,這些內容在重起電腦只有就沒有用了,是臨時文件。
那之前下的10%,以及由來繼續下載的內容放在哪呢?通常軟體都有個專門存放臨時文件用於在線播放的文件夾,那裡面就是你要問的緩沖區了。棚腔敬
你問的快車的緩存是指你在下載一個東西時,並不是直接放到硬碟上,而是先放到它的一個暫時存放區(就是緩存)整理,然後在按規則放到硬碟上。因為它是分段下載的,並不是連續的文件形式,所以需要整理成正常能夠識別的形式再放的硬碟上。
❼ 網路中的緩存是什麼
CPU緩存(Cache Memory)位於CPU與內存之間的臨時存儲器,它的容量比內存小但交換速度快。在緩存中的數據是內存中的一小部分,但這一小部分是短時間內CPU即將訪問的,當CPU調用大量數據時,就可避開內存直接從緩存中調用,從而加快讀取速度。由此可見,在CPU中加入緩存是一種高效的解決方案,這樣整個內存儲器(緩存+內存)就變成了既有緩存的高速度,又有內存的大容量的存儲系統了。緩存對CPU的性能影響很大,主要是因為CPU的數據交換順序和CPU與緩存間的帶寬引起的。
緩存是為了解決CPU速度和內存速度的速度差異問題。內存中被CPU訪問最頻繁的數據和指令被復制入CPU中的緩存,這樣CPU就可以不經常到象「蝸牛」一樣慢的內存中去取數據了,CPU只要到緩存中去取就行了,而緩存的速度要比內存快很多。
這里要特別指出的是:
1.因為緩存只是內存中少部分數據的復製品,所以CPU到緩存中尋找數據時,也會出現找不到的情況(因為這些數據沒有從內存復制到緩存中去),這時CPU還是會到內存中去找數據,這樣系統的速度就慢下來了,不過CPU會把這些數據復制到緩存中去,以便下一次不要再到內存中去取。
2.因為隨著時間的變化,被訪問得最頻繁的數據不是一成不變的,也就是說,剛才還不頻繁的數據,此時已經需要被頻繁的訪問,剛才還是最頻繁的數據,現在又不頻繁了,所以說緩存中的數據要經常按照一定的演算法來更換,這樣才能保證緩存中的數據是被訪問最頻繁的。
緩存的工作原理
[編輯本段]
緩存的工作原理是當CPU要讀取一個數據時,首先從緩存中查找,如果找到就立即讀取並送給CPU處理;如果沒有找到,就用相對慢的速度從內存中讀取並送給CPU處理,同時把這個數據所在的數據塊調入緩存中,可以使得以後對整塊數據的讀取都從緩存中進行,不必再調用內存。
正是這樣的讀取機制使CPU讀取緩存的命中率非常高(大多數CPU可達90%左右),也就是說CPU下一次要讀取的數據90%都在緩存中,只有大約10%需要從內存讀取。這大大節省了CPU直接讀取內存的時間,也使CPU讀取數據時基本無需等待。總的來說,CPU讀取數據的順序是先緩存後內存。
一級緩存和二級緩存
[編輯本段]
為了分清這兩個概念,我們先了解一下RAM 。RAM和ROM相對的,RAM是掉電以後,其中的信息就消失那一種,ROM在掉電以後信息也不會消失那一種。
RAM又分兩種,一種是靜態RAM,SRAM;一種是動態RAM,DRAM。前者的存儲速度要比後者快得多,我們現在使用的內存一般都是動態RAM。
有的菜鳥就說了,為了增加系統的速度,把緩存擴大不就行了嗎,擴大的越大,緩存的數據越多,系統不就越快了嗎?緩存通常都是靜態RAM,速度是非常的快, 但是靜態RAM集成度低(存儲相同的數據,靜態RAM的體積是動態RAM的6倍), 價格高(同容量的靜態RAM是動態RAM的四倍), 由此可見,擴大靜態RAM作為緩存是一個非常愚蠢的行為, 但是為了提高系統的性能和速度,我們必須要擴大緩存, 這樣就有了一個折中的方法,不擴大原來的靜態RAM緩存,而是增加一些高速動態RAM做為緩存, 這些高速動態RAM速度要比常規動態RAM快,但比原來的靜態RAM緩存慢, 我們把原來的靜態ram緩存叫一級緩存,而把後來增加的動態RAM叫二級緩存。
一級緩存和二級緩存中的內容都是內存中訪問頻率高的數據的復製品(映射),它們的存在都是為了減少高速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、4MB等。一級緩存容量各產品之間相差不大,而二級緩存容量則是提高CPU性能的關鍵。二級緩存容量的提升是由CPU製造工藝所決定的,容量增大必然導致CPU內部晶體管數的增加,要在有限的CPU面積上集成更大的緩存,對製造工藝的要求也就越高。
現在主流的CPU二級緩存都在2MB左右,其中英特爾公司07年相繼推出了台式機用的4MB、6MB二級緩存的高性能CPU,不過價格也是相對比較高的,對於對配置要求不是太高的朋友,一般的2MB二級緩存的雙核CPU基本也可以滿足日常上網需要了。
❽ 緩沖區在內存裡面還是硬碟上
如果你所謂的緩沖區是指的緩存,那麼就是在硬碟內。每個硬碟里又會有一定容量的緩存,現在一般是32M或者64M。緩存是為了提高數據交換效率而產生的。
內存本身就是CPU直接訪問的存儲空間,所以不存在緩沖區的說法。
實際上,CPU裡面也有緩存,分別是一級、二級和三級緩存,容量依次變大,但速度依次變慢。
❾ CPU的一、二、三級緩存分別有什麼用
L1 Cache(一級緩存):
Cache(一級緩存)是CPU第一層高速緩存,分為數據緩存和指令緩存。內置的L1高速緩存的容量和結構對CPU的性能影響較大,不過高速緩沖存儲器均由靜態RAM組成,結構較復雜,在CPU管芯面積不能太大的情況下,L1級高速緩存的容量不可能做得太大。一般伺服器CPU的L1緩存的容量通常在32-256KB。
L2 Cache(二級緩存):
L2 Cache(二級緩存)是CPU的第二層高速緩存,分內部和外部兩種晶元。內部的晶元二級緩存運行速度與主頻相同,而外部的二級緩存則只有主頻的一半。L2高速緩存容量也會影響CPU的性能,原則是越大越好,現在家庭用CPU容量最大的是4MB,而伺服器和工作站上用CPU的L2高速緩存更高跡拿型達2MB-4MB,有的高達8MB或者19MB。
L3 Cache(三級緩存):
ache(三級緩存),分為兩種,早期的是外置,現在的都是內敏岩置的。而它的實際作用即是,L3緩存的應用可以進一步降低內存延遲,同時提升大數據量計算時處理器的性能。降低內存延遲和提升大數據量計算能力對游戲都很有幫助。
而在伺服器領域增加L3緩存在性能方面仍然有顯著的提升。比方具有較大L3緩存的配置利用物理內存會更有效,故它比較慢的磁碟I/O子系統可以處理更多的數據請求。具有較大L3緩存的處理器提供更有效的文件系統緩存行為及較短姿猜消息和處理器隊列長度。