詳解計算機中內存、cache和寄存器之間的聯繫及區別

概述

最近在看一些硬件架構方面的知識,補了下基礎知識。這裡針對計算機中內存、cache和寄存器做個簡單總結。

詳解計算機中內存、cache和寄存器之間的聯繫及區別

先分享兩張圖:


計算機的存儲體系金字塔:

詳解計算機中內存、cache和寄存器之間的聯繫及區別

再看一個計算機的存儲體系

詳解計算機中內存、cache和寄存器之間的聯繫及區別


下面對計算機中內存、cache和寄存器概念做個介紹:

1. 寄存器

中央處理器內的組成部份。寄存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數據和位址。在中央處理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序計數器(PC)。在中央處理器的算術及邏輯部件中,包含的寄存器有累加器(ACC)。

寄存器是CPU內部的元件,寄存器擁有非常高的讀寫速度,所以在寄存器之間的數據傳送非常快。

2. 內存

這個包含的範圍非常廣,一般分為只讀存儲器(ROM)、隨機存儲器(RAM)和高速緩存存儲器(cache)。

3. Cache

即高速緩衝存儲器,是位於CPU與主內存間的一種容量較小但速度很高的存儲器。由於CPU的速度遠高於主內存,CPU直接從內存中存取數據要等待一定時間週期,Cache中保存著CPU剛用過或循環使用的一部分數據,當CPU再次使用該部分數據時可從Cache中直接調用,這樣就減少了CPU的等待時間,提高了系統的效率。Cache又分為一級Cache(L1 Cache)和二級Cache(L2 Cache),L1 Cache集成在CPU內部,L2 Cache早期一般是焊在主板上,現在也都集成在CPU內部,常見的容量有256KB或512KB L2 Cache。

聯繫與區別

按與CPU遠近來分,離得最近的是寄存器,然後緩存,最後內存。

所以,寄存器是最貼近CPU的,而且CPU只與寄存器中進行存取。

(寄存的意思是,暫時存放數據,不中每次從內存中取,它就是一個臨時放數據的空間,火車站寄存處就是這個意思)

而寄存器的數據又來源於內存。於是 CPU寄存器cache內存 這就是它們之間的信息交換。

把CPU比做大腦 寄存器就像你正在思考的問題,而cahe就是你的記憶(臨時的),大腦的其他部分存儲了記憶,但是大腦直接處理比較慢則需要一個更加快的地方來臨時存放你從大腦其他部分提取的記憶這個地方就是cache。


總之計算機中數據是通過內存-Cache-寄存器,Cache緩存則是為了彌補CPU與內存之間運算速度的差異而設置的的部件。理解這三個之間的區別對我們優化還是挺重要的。後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注一下~

詳解計算機中內存、cache和寄存器之間的聯繫及區別


分享到:


相關文章: