计算机存储、缓存简介

计算机中存储数据的介质,由快到慢大致有

  • 寄存器
  • L1 Cache
  • L2 Cache
  • L3 Cache
  • 内存
  • SSD 固态硬盘
  • 普通硬盘

计算机理论上处理信息的最高速度,是由晶振频率决定的。
晶振全程石英振荡器,它的振荡频率稳定。石英表,正是利用这一特性来工作的。
用一个我们可能更熟悉的词汇代替晶振频率,那就是时钟信号。如果一个CPU的时钟信号是1GHz,就代表着一个时钟信号的周期是1/(1G),即十亿分之一秒,1纳秒。

理想情况下,如果不做存储分级,所有数据都放到CPU里面,那CPU的能耗是非常大的,那散热就是个大问题。实际上,根据程序的局部性原理,我们没有必要把所有数据都放到昂贵的CPU里面。
我们按照使用频率将经常使用的数据放到离CPU进,读取速度快的存储中,将不经常使用的数据放到造价经济的存储中。于是形成了现在的分级存储或者说缓存。

  1. Register 寄存器
    寄存器在CPU内部,挨着控制单元和逻辑计算单元,一个32位寄存器通常可以存放4个字节,64位存8个字节。数量一般在几十个到上百个。
    寄存器访问速度最快,一般只需要半个时钟周期

  2. Cache
    我们在看CPU参数的时候,比如i7 有个参数,叫三级缓存,说着就是这个cache。一般现在的CPU Cache分三级,越快的离CPU越近。
    L1 Cache 大小在几十k或者几百k,速度在2~4个时钟周期
    L2 Cache 大小在几百k或者几M,速度在10~20个时钟周期
    L3 Cache 大小在几M到几十兆,速度在20~60个时钟周期

  3. 内存
    内存的原材料是硅,它通过总线和CPU相连,大小这个我们最熟悉了,老一些有几百兆的,现在普遍都在2G,4G,8G,16G,有些服务器甚至达到T这个级别,速度在200~300个CPU周期之间

  4. SSD固态硬盘
    SSD属于非易失性存储器,断电后数据还在,不会像内存和寄存器一样消失。内存比SSD要快10-1000倍。这样比较是不是感觉SSD很慢,其实这已经快多了。因为和机械硬盘比,内存要快百万倍。

我们再来总结一下不同存储的速度。

存储大概耗时
寄存器1ns
Cache50ns
内存100ns
SSD100,000ns 1微妙
机械硬盘100,000,000ns 百毫秒
访问

如果CPU想要访问一个数据时,它先会在寄存器中查找,如果找不到,那么就依次去L1 Cache、L2 Cache、L3 Cache、内存中查找,直到找到。
通常在L1中命中的概率为80%,三级缓存总和加起来,也就是说,缓存总的命中率大概在95%以上。没用命中,就是miss了,又称缓存穿透
随着程序的运行,经常访问的数据可能会变更,那么缓存中的数据就需要变更替换,俗称缓存置换。经典的缓存置换算法有FIFO(先进先出)、LFU(最近最少使用算法)、LRU(最近最久未使用)等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值