小林图解系统-二.硬件结构 2.2磁盘比内存慢几万倍?

内存和硬盘都属于计算机的存储设备,断电后内存的数据是会丢失的,硬盘则不会,因为硬盘持久化存储设备,同时也是一个I/O设备。

其实CPU内部也有存储数据的组件,比如寄存器、CPU L1/L2/L3 Cache也都属于存储设备,只不过能存储的数据非常小,但是它们因为靠近CPU核心,所以访问速度都非常快,快过硬盘好几个数量级别。

那么机械硬盘、固态硬盘、内存这三个存储器,到底和CPU L1 Cache相比速度差多少倍


存储器的层次结构

大脑相当于CPU大脑记忆CPU Cache,CPU高速缓存,处理速度相比寄存器慢,但是能存储的数据也多了。

CPU Cache分为L1\L2\L3三层,L1 Cache分为数据缓存指令缓存,L1是距离CPU最近的,因此它比L2、L3的读写速度都快、存储空间都小。我们大脑中的短期记忆=L1 Cache,长期记忆好比L2/L3 Cache。

寄存器和CPU Cache都是在CPU内部,跟CPU挨着很近,因此读写速度都很快,存储数据少。

CPU外部存储器

内存:桌子上的书,读写速度远慢于寄存器;硬盘:图书馆书架上的书,能存储的数据非常大,但是读写速度比内存差好几个数量级,更是远远慢于寄存器。

数据从硬盘加载到内存,再从内存加载到CPU的寄存器和Cache,然后再经过CPU进行处理和计算

对于存储器,速度越快,能耗越高,材料越贵,速度快的存储器的容量都比较小

寄存器:

最靠近CPU的控制单元和逻辑单元的存储器,数量少。

32位CPU中大多数寄存器可以储存4个字节;

64位CPU中大多数寄存器可以存储8个字节。

寄存器的访问速度非常快,一般要求在半个时钟周期内完成读写,CPU时钟周期和CPU主频息息相关,2GHz主频的CPU,始终周期是1/2G

CPU处理一条指令,除了读写寄存器还需要解码指令、控制指令执行和计算。如果寄存器的速度太慢,会拉长指令的处理周期。

CPU Cache:

SRAM(Static Random-Access Memmory,静态随机存储器)只要有电,数据就可以保持存在,断电就会消失。

一个bit的数据需要6个晶体管,所以存储密度不高,同样的物理空间,能存储的数据是有限的,不过也因为电路简单,所以访问速度快。

CPU的高速缓存,分为L1,L2,L3三级高速缓存。

L1高速缓存:

 和寄存器一样快,需要2~4个时钟周期,大小:几十kb~几百kb

每个CPU核心都有一块属于自己的L1高速缓存,指令和数据在L1是分块存放的,所以分成指令缓存和数据缓存

Linux系统查看CPU里的L1 Cache缓存的容量大小

$ cat /sys/devices/system/cpu/cpu0/cache/index0/size

L2高速缓存

L2高速缓存同样每个CPU核心都有,但是L2高速缓存位置比L1更远,更大,几百kb~几MB,访问速度也更慢,10~20个时钟周期

L3高速缓存

多个CPU核心共用,更远更大,几MB~几十MB,访问速度20~60个时钟周期

内存:

芯片是DRAM(Dynamic Random Access Memory:动态随机存储器)

相比SRAM,DRAM密度更高,功耗更低,有更大容量,造价便宜很多

DRAM存储一个bit数据只需要一个晶体管和一个电容就能存储,因为数据会被存储在电容,电容不断漏电,需要定时刷新电容,才能保证数据不会被丢失,动态只有不断刷新,数据才能被存储起来。

DRAM的数据访问电路和刷新电路都比SRAM更复杂,所以访问的速度会更慢,内存速度大概在200~300个时钟周期。

SSD/HDD硬盘

SSD(Solid State disk)固态硬盘,结构和内存类似,优点:断电后数据还存在,而内存、寄存器、高速缓存断电后数据都会丢失。内存的读写速度比SSD大概快10~1000倍。

机械硬盘(Hard Disk Drive,HDD),通过物理读写的方式来访问内存的,因此访问速度是非常慢的,速度比内存慢了10w倍。

由于SSD的价格快接近HDD了,机械硬盘逐渐被SSD替代。


存储器的层次关系

存储空间越大的存储设备,访问速度越慢,成本也相对越少

CPU并不会直接和每一个存储器直接打交道,每一种存储设备只和相邻的存储器设备打交道。

CPU Cache只会在内存中读写。

由于成本和速度等原因,导致的现在的存储层次结构 

CPU需要访问内存中某个数据,如果寄存器有这个数据,CPU直接从寄存器中取数据,如果没有,继续查询L1高速缓存,如果还没有,继续依次查询L2 L3,如果还没有,才去内存中取数据。


存储器之间的实际价格和性能差距

速度越快,成本越高


总结 

各种存储器的关系可以用图书馆学习这个场景理解

CPU好比大脑,当我们思考和处理知识的时候,好比CPU中的寄存器处理数据的过程,速度极快,但是容量很小。而CPU中的L1~L3 Cache好比大脑中的短期记忆和长期记忆,需要小小花费点时间调取数据处理。

我们面前的桌子好比内存,能放下更多的书就是数据,但是找起来和看起来就要花费一些时间,相比CPU Cache慢不少。而图书馆的书架相当于硬盘,能放下比内存更多的数据,但找起来就更费时间了,可以说最慢的存储设备了  。

从寄存器,CPU高速缓存,内存,硬盘,访问速度越来越慢,存储容量越来越大,造价越来越便宜,而且每个存储器只和相邻的一层存储设备打交道,于是行程了存储器的层次结构。

硬盘、内存和CPU L1 Cache相比速度差多少倍。

CPU L1 Cache是1ns,内存是100ns,固态是150μs,机械硬盘是10ms。

SSD比机械硬盘快70倍

内存比机械硬盘快100000倍

CPU L1 Cache比机械硬盘快 10^7倍

CPU访问L1 Cache是1s,访问内存2分钟,访问SSD数据1.7天,访问机械硬盘是4个月。

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值