1樓:匿名使用者
許多人認為,「快取」是記憶體的一部分
許多技術文章都是這樣教授的
但是還是有很多人不知道快取在什麼地方,快取是做什麼用的
其實,快取是cpu的一部分,它存在於cpu中
cpu存取資料的速度非常的快,一秒鐘能夠存取、處理十億條指令和資料(術語:cpu主頻1g),而記憶體就慢很多,快的記憶體能夠達到幾十兆就不錯了,可見兩者的速度差異是多麼的大
快取是為了解決cpu速度和記憶體速度的速度差異問題
記憶體中被cpu訪問最頻繁的資料和指令被複制入cpu中的快取,這樣cpu就可以不經常到象「蝸牛」一樣慢的記憶體中去取資料了,cpu只要到快取中去取就行了,而快取的速度要比記憶體快很多
這裡要特別指出的是:
1.因為快取只是記憶體中少部分資料的複製品,所以cpu到快取中尋找資料時,也會出現找不到的情況(因為這些資料沒有從記憶體複製到快取中去),這時cpu還是會到記憶體中去找資料,這樣系統的速度就慢下來了,不過cpu會把這些資料複製到快取中去,以便下一次不要再到記憶體中去取。
2.因為隨著時間的變化,被訪問得最頻繁的資料不是一成不變的,也就是說,剛才還不頻繁的資料,此時已經需要被頻繁的訪問,剛才還是最頻繁的資料,現在又不頻繁了,所以說快取中的資料要經常按照一定的演算法來更換,這樣才能保證快取中的資料是被訪問最頻繁的
3.關於一級快取和二級快取
為了分清這兩個概念,我們先了解一下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找資料或指令的順序是:先到一級快取中找,找不到再到二級快取中找,如果還找不到就只有到記憶體中找了
以上技術文章原創於私人**海市蜃樓
2樓:阿顏
快取(cache memory)是硬碟控制器上的一塊記憶體晶片,具有極快的存取速度,它是硬碟內部儲存和外界介面之間的緩衝器。由於硬碟的內部資料傳輸速度和外界介面傳輸速度不同,快取在其中起到一個緩衝的作用。快取的大小與速度是直接關係到硬碟的傳輸速度的重要因素,能夠大幅度地提高硬碟整體效能。
當硬碟存取零碎資料時需要不斷地在硬碟與記憶體之間交換資料,如果有大快取,則可以將那些零碎資料暫存在快取中,減小外系統的負荷,也提高了資料的傳輸速度。
硬碟快取的作用
主要起三種作用:一是預讀取。當硬碟受到cpu指令控制開始讀取資料時,硬碟上的控制晶片會控制磁頭把正在讀取的簇的下一個或者幾個簇中的資料讀到快取中(由於硬碟上資料儲存時是比較連續的,所以讀取命中率較高),當需要讀取下一個或者幾個簇中的資料的時候,硬碟則不需要再次讀取資料,直接把快取中的資料傳輸到記憶體中就可以了,由於快取的速度遠遠高於磁頭讀寫的速度,所以能夠達到明顯改善效能的目的;二是對寫入動作進行快取。
當硬碟接到寫入資料的指令之後,並不會馬上將資料寫入到碟片上,而是先暫時儲存在快取裡,然後傳送一個「資料已寫入」的訊號給系統,這時系統就會認為資料已經寫入,並繼續執行下面的工作,而硬碟則在空閒(不進行讀取或寫入的時候)時再將快取中的資料寫入到碟片上。雖然對於寫入資料的效能有一定提升,但也不可避免地帶來了安全隱患——如果資料還在快取裡的時候突然掉電,那麼這些資料就會丟失。對於這個問題,硬碟廠商們自然也有解決辦法:
掉電時,磁頭會藉助慣性將快取中的資料寫入零磁軌以外的暫存區域,等到下次啟動時再將這些資料寫入目的地;第三個作用就是臨時儲存最近訪問過的資料。有時候,某些資料是會經常需要訪問的,硬碟內部的快取會將讀取比較頻繁的一些資料儲存在快取中,再次讀取時就可以直接從快取中直接傳輸。
快取容量的大小不同品牌、不同型號的產品各不相同,早期的硬碟快取基本都很小,只有幾百kb,已無法滿足使用者的需求。2mb和8mb快取是現今主流硬碟所採用,而在伺服器或特殊應用領域中還有快取容量更大的產品,甚至達到了16mb、64mb等。
大容量的快取雖然可以在硬碟進行讀寫工作狀態下,讓更多的資料儲存在快取中,以提高硬碟的訪問速度,但並不意味著快取越大就越出眾。快取的應用存在一個演算法的問題,即便快取容量很大,而沒有一個高效率的演算法,那將導致應用中快取資料的命中率偏低,無法有效發揮出大容量快取的優勢。演算法是和快取容量相輔相成,大容量的快取需要更為有效率的演算法,否則效能會大大折扣,從技術角度上說,高容量快取的演算法是直接影響到硬碟效能發揮的重要因素。
更大容量快取是未來硬碟發展的必然趨勢。
3樓:
快取是cpu的一部分,它存在於cpu中 ,cpu存取資料的速度非常的快,一秒鐘能夠存取、處理十億條指令和資料,而記憶體就慢很多,快的記憶體能夠達到幾十兆就不錯了,記憶體中被cpu訪問最頻繁的資料和指令被複制入cpu中的快取,這樣cpu就可以不經常到象「蝸牛」一樣慢的記憶體中去取資料了,cpu只要到快取中去取就行了.
快取造價很高,現在的cpu有一項很重要的引數就是快取,像l2就有128,256,512,1024之分,越大越好。
4樓:全球酷玩指南
由於資料太多~
在處理大量資料之前 把一部分沒法即使處理的資料
儲存在一個東西里面 就是了
什麼叫**快取???
5樓:匿名使用者
快取是指臨時檔案交換區,電腦把最常用的檔案從儲存器裡提出來臨時放在快取裡,就像把工具和材料搬上工作臺一樣,這樣會比用時現去倉庫取更方便。
因為快取往往使用的是ram(斷電即掉的非永久儲存),所以在忙完後還是會把檔案送到硬碟等儲存器裡永久儲存。
電腦裡最大的快取就是記憶體條了,最快的是cpu上鑲的l1和l2快取,顯示卡的視訊記憶體是給gpu用的快取,硬碟上也有16m或者32m的快取。千萬不能把快取理解成一個東西,它是一種處理方式的統稱!
6樓:匿名使用者
安卓系統裡面**的3d相簿,點進去會找到手機所有的**,並縮小顯示出來。那些縮小顯示的**都是快取。。。。如果你把手機**刪了或轉移到其他資料夾,3d相簿會再次生成快取**,而不刪除不用的快取**,所以,手機rom會越來越小,直到系統提示手機儲存空間不足,然後簡訊也收不到了。。。
只能刷機
7樓:在下閣下
那請問,在**可以刪除快取**呢
什麼叫快取?
8樓:mei_陳先生
所謂的快取,就是將程式或系統經常要呼叫的物件存在記憶體中,一遍其使用時可以快速呼叫,不必再去建立新的重複的例項。這樣做可以減少系統開銷,提高系統效率。
1、通過檔案快取;顧名思義檔案快取是指把資料儲存在磁碟上,不管你是以xml格式,序列化檔案dat格式還是其它檔案格式;
3、本地記憶體快取;就是把資料快取在本機的記憶體中。
4、分散式快取機制;可能存在跨程序,跨域訪問快取資料
對於分散式的快取,此時因為快取的資料是放在快取伺服器中的,或者說,此時應用程式需要跨程序的去訪問分散式快取伺服器。
每次,當我們要把一些資料快取起來的時候,快取的api就會把資料首先序列化為位元組的形式,然後把這些位元組傳送給快取伺服器去儲存。
同理,當我們在應用中要再次使用快取的資料的時候,快取伺服器就會將快取的位元組傳送給應用程式,而快取的客戶端類庫接受到這些位元組之後就要進行反序列化的操作了,將之轉換為我們需要的資料物件。
9樓:
快取就是資料交換的緩衝區(稱作cache),當某一硬體要讀取資料時,會首先從快取中查詢需要的資料,如果找到了則直接執行,找不到的話則從記憶體中找。快取是指可以進行高速資料交換的儲存器,它先於記憶體與cpu交換資料,因此速率很快。
因為快取往往使用的是ram(斷電即掉的非永久儲存),所以在用完後還是會把檔案送到硬碟等儲存器裡永久儲存。電腦裡最大的快取就是記憶體條了,最快的是cpu上鑲的l1和l2快取,顯示卡的視訊記憶體是給顯示卡運算晶片用的快取,硬碟上也有16m或者32m的快取。
擴充套件資料
快取的工作原理是當cpu要讀取一個資料時,首先從cpu快取中查詢,找到就立即讀取並送給cpu處理;沒有找到,就從速率相對較慢的記憶體中讀取並送給cpu處理,同時把這個資料所在的資料塊調入快取中,可以使得以後對整塊資料的讀取都從快取中進行,不必再呼叫記憶體。
正是這樣的讀取機制使cpu讀取快取的命中率非常高(大多數cpu可達90%左右),也就是說cpu下一次要讀取的資料90%都在cpu快取中,只有大約10%需要從記憶體讀取。這大大節省了cpu直接讀取記憶體的時間,也使cpu讀取資料時基本無需等待。總的來說,cpu讀取資料的順序是先快取後記憶體。
10樓:江戶川_新一
許多人認為,「快取」是記憶體的一部分
許多技術文章都是這樣教授的
但是還是有很多人不知道快取在什麼地方,快取是做什麼用的
其實,快取是cpu的一部分,它存在於cpu中
cpu存取資料的速度非常的快,一秒鐘能夠存取、處理十億條指令和資料(術語:cpu主頻1g),而記憶體就慢很多,快的記憶體能夠達到幾十兆就不錯了,可見兩者的速度差異是多麼的大
快取是為了解決cpu速度和記憶體速度的速度差異問題
記憶體中被cpu訪問最頻繁的資料和指令被複制入cpu中的快取,這樣cpu就可以不經常到象「蝸牛」一樣慢的記憶體中去取資料了,cpu只要到快取中去取就行了,而快取的速度要比記憶體快很多
這裡要特別指出的是:
1.因為快取只是記憶體中少部分資料的複製品,所以cpu到快取中尋找資料時,也會出現找不到的情況(因為這些資料沒有從記憶體複製到快取中去),這時cpu還是會到記憶體中去找資料,這樣系統的速度就慢下來了,不過cpu會把這些資料複製到快取中去,以便下一次不要再到記憶體中去取。
2.因為隨著時間的變化,被訪問得最頻繁的資料不是一成不變的,也就是說,剛才還不頻繁的資料,此時已經需要被頻繁的訪問,剛才還是最頻繁的資料,現在又不頻繁了,所以說快取中的資料要經常按照一定的演算法來更換,這樣才能保證快取中的資料是被訪問最頻繁的
3.關於一級快取和二級快取
為了分清這兩個概念,我們先了解一下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找資料或指令的順序是:先到一級快取中找,找不到再到二級快取中找,如果還找不到就只有到記憶體中找了
記憶體和快取之間有什麼區別,快取和記憶體有什麼區別
一級快取和二級快取的大,它究竟有多少好處呢?你得告訴我們經銷商,實際上你得用最普通的話跟他講。所 我 電腦各方面都玩,但是都不精通 快取不太清楚,但是我知道記憶體分虛擬記憶體和實體記憶體 前者是電腦從硬碟上虛擬出來作為記憶體的 當實體記憶體不夠時 一般不要太多,否則會讓速度變慢。實體記憶體就是記憶體...
硬碟快取有什麼用,越高越好嗎,硬碟快取有什麼作用?越大越好哦2!
1 並不是這樣的,硬碟的好壞主要在匯流排 快取 快取i o速度 轉速。但是轉速並不影響什麼,不起決定作用,它只是d發熱量的問題。匯流排目前最好的是solo 8gb s。2 只是伺服器硬碟。但是費用不是一般家庭承擔的起。快取的容量越大在寫入或讀取時就可以有更大的吞吐量,但是要注意i o速度必須快,吞吐...
磁碟快取置換演算法作用是什麼,磁碟快取置換演算法作用是什麼
雖然快取的最終目的為了提高效能,但快取寫的技術與快取讀的技術有很大的不同。但如果它帶來的資料丟失危險很大,那麼,就是一個不可接受的方案。因此,安全地將資料儲存在非易失儲存中是很重要的,因為這樣資料就可以長期地儲存。雖然讀快取技術用於讀操作時可以提高系統效能,但當用於新產生資料的寫操作時,卻產生了一些...