概述
最近在看一些硬件架构方面的知识,补了下基础知识。这里针对计算机中内存、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方面的内容,感兴趣的朋友可以关注一下~