當前位置:首頁 » 硬碟大全 » 緩存的靜態存儲
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

緩存的靜態存儲

發布時間: 2022-04-17 23:24:39

A. 比較動態存儲器dram和靜態存儲器sram的異同點

SRAM中文含義為靜態隨機訪問存儲器,它是一種類型的半導體存儲器。「靜態」是指只要不掉電,存儲在SRAM中的數據就不會丟失。這一點與動態RAM(DRAM)不同,DRAM需要進行周期性的刷新操作。然後,我們不應將SRAM與只讀存儲器(ROM)和Flash Memory相混淆,因為SRAM是一種易失性存儲器,它只有在電源保持連續供應的情況下才能夠保持數據。「隨機訪問」是指存儲器的內容可以以任何順序訪問,而不管前一次訪問的是哪一個位置。

SRAM中的每一位均存儲在四個晶體管當中,這四個晶體管組成了兩個交叉耦合反向器。這個存儲單元具有兩個穩定狀態,通常表示為0和1。另外還需要兩個訪問晶體管用於控制讀或寫操作過程中存儲單元的訪問。因此,一個存儲位通常需要六個MOSFET。對稱的電路結構使得SRAM的訪問速度要快於DRAM。SRAM比DRAM訪問速度快的另外一個原因是SRAM可以一次接收所有的地址位,而DRAM則使用行地址和列地址復用的結構。

SRAM不應該與SDRAM相混淆,SDRAM代表的是同步DRAM,這與SRAM是完全不同的。SRAM也不應該與PSRAM相混淆,PSRAM是一種偽裝成SRAM的DRAM。

從晶體管的類型分,SRAM可以分為雙極性與CMOS兩種。從功能上分,SRAM可以分為非同步SRAM和同步SRAM(SSRAM)。非同步SRAM的訪問獨立於時鍾,數據輸入和輸出都由地址的變化控制。同步SRAM的所有訪問都在時鍾的上升/下降沿啟動。地址、數據輸入和其它控制信號均於時鍾信號相關。

DRAM:動態隨機存取存儲器,需要不斷的刷新,才能保存數據。而且是行列地址復用的,許多都有頁模式。

SRAM:靜態的隨機存取存儲器,加電情況下,不需要刷新,數據不會丟失,而且,一般不是行列地址復用的。

SDRAM:同步的DRAM,即數據的讀寫需要時鍾來同步。主要是存儲單元結構不同導致了容量的不同。一個DRAM存儲單元大約需要一個晶體管和一個電容(不包括行讀出放大器等),而一個SRAM存儲單元大約需要六個晶體管。DRAM和SDRAM由於實現工藝問題,容量較SRAM大,但是讀寫速度不如SRAM。一個是靜態的,一個是動態的,靜態的是用的雙穩態觸發器來保存信息,而動態的是用電子,要不時的刷新來保持。 內存(即隨機存貯器RAM)可分為靜態隨機存儲器SRAM,和動態隨機存儲器DRAM兩種。我們經常說的「 內存」是指DRAM。而SRAM大家卻接觸的很少。

SRAM其實是一種非常重要的存儲器,它的用途廣泛。SRAM的速度非常快,在快速讀取和刷新時能夠保 持數據完整性。SRAM內部採用的是雙穩態電路的形式來存儲數據。所以SRAM的電路結構非常復雜。製造相同容量的SRAM比DRAM的成本高的多。正因為如此,才使其發展受到了限制。因此目前SRAM基本上只用於CPU 內部的一級緩存以及內置的二級緩存。僅有少量的網路伺服器以及路由器上能夠使用SRAM

B. 什麼是緩存是不是慢慢保存的意思

許多人認為,「緩存」是內存的一部分

許多技術文章都是這樣教授的

但是還是有很多人不知道緩存在什麼地方,緩存是做什麼用的

其實,緩存是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找數據或指令的順序是:先到一級緩存中找,找不到再到二級緩存中找,如果還找不到就只有到內存中找了

以上技術文章原創於私人網站海市蜃樓

C. 網路中的緩存是什麼

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基本也可以滿足日常上網需要了。

D. 動態存儲區與靜態存儲區的區別

我理解吧,這個動態跟靜態主要是針對指針而言的。而且對於單個變數來說,動態跟靜態的概念體現的不是特別清楚,下面主要介紹數組吧。
如果你聲明一個數組int a[100],那麼這個數組的大小就是100,在內存中的位置也固定,如果後來發現數組不夠大,你就只能重新定義一個更大的數組,而不能直接改變數組a的大小。這就是靜態存儲。
如果你聲明一個指針int *p,一開始你想開辟一個100的數組,就寫p = new int[100],後面發現100不夠大,你可以先delete []p,把原來的空間釋放掉,然後讓p = new int[200],p就會指向一個大小為200的數組,這個數組的大小以及在內存中的位置可以根據需要不斷變化。這就是動態存儲。

E. 什麼是靜態存儲器什麼是動態存儲器

靜態存儲器(SRAM):讀寫速度快,成本高,需要電源才能工作,斷電信息將丟失,多用於容量較小的高速緩沖存儲器.
動態存儲器(DRAM):讀寫速度較慢,集成度高,成本低,要求配置動態刷新電路,多用於容量較大的主存儲器.

F. 什麼是靜態存儲區和動態存儲區啊

1. 全局變數和靜態數據放在靜態存儲區,生命周期為從申請到程序退出。因此局部變數若定義為static,則存儲在靜態存儲區,否則存儲在函數的棧內,生命周期為本函數內。
2 動態存儲放自動變數和局部變數

G. 在C語言中,什麼是動態存儲,什麼是靜態存儲

動態存儲是auto關鍵字,例如我們定義的int
a;
默認就是動態存儲,具體應該是
auto
int
a;一般是用於函數參數,局部變數,超出作用域范圍會失效,變數產生在動態存儲區
靜態存儲時static關鍵字,例如,我們定義一個
static
int
a;
就是存儲在靜態存儲區,相當於一個全局變數
一樓的理解出現了問題

H. 關於緩存的問題

緩存(Cache)大小是CPU的重要指標之一,其結構與大小對CPU速度的影響非常大。簡單地講,緩存就是用來存儲一些常用或即將用到的數據或指令,當需要這些數據或指令的時候直接從緩存中讀取,這樣比到內存甚至硬碟中讀取要快得多,能夠大幅度提升CPU的處理速度。
所謂處理器緩存,通常指的是二級高速緩存,或外部高速緩存。即高速緩沖存儲器,是位於CPU和主存儲器DRAM(Dynamic RAM)之間的規模較小的但速度很高的存儲器,通常由SRAM(靜態隨機存儲器)組成。用來存放那些被CPU頻繁使用的數據,以便使CPU不必依賴於速度較慢的DRAM(動態隨機存儲器)。二級高速緩存一直都屬於速度極快而價格也相當昂貴的一類內存,稱為SRAM(靜態RAM),SRAM(Static RAM)是靜態存儲器的英文縮寫。由於SRAM採用了與製作CPU相同的半導體工藝,因此與動態存儲器DRAM比較,SRAM的存取速度快,但體積較大,價格較高。

I. 靜態存儲器sram是依靠什麼記憶信息

靜態RAM是靠雙穩態觸發器來記憶信息的;動態RAM是靠MOS電路中的柵極電容來記憶信息的。由於電容上的電荷會泄漏,需要定時給與補充,所以動態RAM需要設置刷新電路。但動態RAM比靜態RAM集成度高、功耗低,從而成本也低,適於作大容量存儲器。所以主內存通常採用動態RAM,而高速緩沖存儲器(Cache)則使用靜態RAM。另外,內存還應用於顯卡、音效卡及CMOS等設備中,用於充當設備緩存或保存固定的程序及數據。 RAM可分為動態(Dynamic RAM)和靜態(Static RAM)兩大類。所謂動態隨機存儲器DRAM是用MOS電路和電容來作存儲元件的。由於電容會放電,所以需要定時充電以維持存儲內容的正確,例如互隔2ms刷新一次,因此稱這為動態存儲器。所謂靜態隨機存儲器SRAM是用雙極型電路或MOS電路的觸發器來作存儲元件的,它沒有電容放電造成的刷新問題。只要有電源正常供電,觸發器就能穩定地存儲數據。DRAM的特點是集成密度高,主要用於大容量存儲器。SRAM的特點是存取速度快,主要用於調整緩沖存儲器。

J. 什麼是三級緩存

這就要先了解什麼是CPU緩存。簡單來說,緩存就是介於CPU核心的寄存器和內存之間的緩沖存儲結構。

CPU的執行單元中有寄存器用於計算,由於是計算使用的,所以不能用於海量存儲執行數據,只能是計算時將數據調入,計算完了就輸出並清除,准備進行下一次計算。所以寄存器速度雖然快,但是卻不能用於長期存儲數據。而內存則是CPU堆放臨時計算數據的地方(如果需要永久存儲則會被放到速度更慢但是容量更大的硬碟里)。但是內存是動態存儲器,由於需要刷新動作,雖然容量相對大但是是片外定址,訪問速度比CPU慢。這就需要在CPU寄存器和內存之間建立緩存。緩存為靜態存儲器。集成度低(緩存會佔去CPU上十分可觀的一塊面積)但速度極高。雖然相比內存來說容量很小,但是速度快了很多。拋開早期的外置結構不談,目前的CPU緩存都與CPU在同一塊晶元上。因此定址速度也很快。CPU執行程序時先從緩存找數據,遍歷緩存後沒有找到需要的數據稱為沒有「命中」。如果緩存未命中,則CPU會轉向內存尋找所需數據。

好了,知道啥是緩存了,那緩存為啥要分一二三級呢?

因為緩存速度雖然快,但是CPU效率十分高。對緩存的速度還是有要求。而如果緩存越大,遍歷一遍尋找數據的速度也就越慢。因此需要對緩存內的數據進行有效的管理。不是最常用的數據就要踢出緩存給最常用的數據騰出空間。這就是緩存分級的原理。緩存的大小需要適度,否則會影響遍歷速度。將近幾個時鍾中最常用的數據保存在一級緩存能大幅提升執行效率。

不過這只是理論,是犧牲者緩存的一般原理。目前intel處理器採用的是一級緩存是二級緩存的索引目錄,二級緩存內存實際數據。這樣僅需遍歷很小的一級緩存就能知道較大的二級緩存內都保存了哪些數據,是否是CPU需要的。如果一級緩存命中,直接按照地址去二級緩存找。如果一級緩存未命中,也不用遍歷二級緩存了,直接去下一級緩存或者內存中尋找了。

了解以上內容我們就可以了解二級緩存和三級緩存的差異了。正入上面所說,類似於intel的一二級緩存結構僅能服務CPU的一個核心。每個CPU核心都有獨立的一級緩存和二級緩存結構。但是CPU內的各個核心有時需要協同工作,這在科學計算等應用中十分常見。這就需要各個核心共享一部分數據。顯然私有的一二級緩存不能成為交流媒介。而跑去內存交換效率實在太低了。所以一個各個核心能共享使用的三級緩存就應運而生了。也就是說三級緩存實際上是CPU的各個核心共享的公共緩存結構。