最近在看一些硬件架構方面的知識,補了下基礎知識。這裡針對計算機中内存、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方面的内容,感興趣的朋友可以關注一下~
,