操作系统内功篇:硬件结构之存储器

一 前言

内存,硬盘(机械硬盘,固态硬盘),CPU中的寄存器,CPU的L1/L2/L3Cache都属于存储设备。除了硬盘以外,其他的存储设备都会在断电后丢失数据,硬盘则不会,硬盘还是一个I/O设备。

二 存储器的层次结构

举个例子:大家在期末考试前都会去图书馆临时抱佛脚,在看书的时候就会思考问题,也会顺便记忆下来获得的知识点,另外还会把需要用到的书放到自己的座位上,当我们找一本不常用的书时,就得去书架上找。

CPU就相当于人的大脑,大脑正在思考的东西,就好比寄存器,处理速度最快,因为正在思考,但是能存储的数据也是最少的。毕竟不可能同时思考很多问题。 大脑的记忆就好比CPU Cache(CPU高速缓存)。处理速度比寄存器差但是存的比寄存器多。大脑的短期记忆好比L1Cache,长期记忆好比L2,L3。 大脑记忆没有所需要的资料时,就得从座位或者书架上拿,座位就好比内存,书架好比硬盘。 我们从书架上把书放到桌子上,再阅读书,将书中的知识存储在大脑中,大脑再思考。这一系列过程就是数据从硬盘经内存加载到CPU的寄存器和Cache中。

三 寄存器

寄存器时最靠近CPU控制单元和逻辑运算单元的存储器。价格也是最昂贵的,存储的数据也是最少的。存储器的数量通常在几十到几百,每个CPU都有一套。每个寄存器可以存储一定字节的数据,比如32位的CPU大多数的寄存器可以存储4字节,64位的CPU中寄存器可以存储8字节。访问速度极快,一般在半个时钟周期完成。如果寄存器的速度很慢,则会拉长处理的时钟周期数量,反映给人的感觉就是电脑很慢。

四 CPU Cache

CPU Cache: 通常分为三层,L1(一级缓存),L2(二级缓存),L3(三级缓存)。L1Cache通常分为数据缓存和指令缓存,L1距离CPU最近,因此比L2,L3都要快但是存的少。L2比L3速度快但存的少。

4.1 L1 Cache

L1 Cache 一级缓存: 访问速度几乎和寄存器一样快,通常2个时钟周期,大小在几十KB到几百KB不等。每个CPU核心(一个CPU有多个核心)都有自己的一块属于自己的L1Cache,指令和数据通常都是分开存储的。Linux中有查看L1Cache的指令查看缓存和数据缓存大小分别是多少,不详说,自行查看。


4.2 L2 Cache

L2 Cache二级缓存: L2 Cache每个CPU的核心也都有自己的一个L2。L2比L1离CPU更远,所以速度更慢,但是存储空间大,从几百KB到几MB不等。访问速度再10个时钟周期。Linux中有查看L2 Cache的指令查看大小分别是多少,不详说,自行查看。

4.3 L3 Cache

L3 Cache三级缓存: L3是多个CPU核心共用,一个CPU一个L3。L3比L2离CPU更远,所以速度更慢,但是存储空间大,从几MB到几十MB不等。访问速度在100个时钟周期。Linux中有查看L3 Cache的指令查看大小分别是多少,不详说,自行查看。

五 内存

内存更没的说,大家对内存最为熟悉,内存速度大概200时钟周期,大小基本以GB为单位。

六 SSD(固态)/HDD(机械)硬盘

断电后数据还是存在的,SSD比HDD快1000倍,而且现在SSD和HDD的成本差不多,所以基本上没什么人用机械硬盘了。SSD的速度比内存慢10倍,大概1000时钟周期。

七 存储器的层次关系

每种存储设备只会和自己相邻的存储设备打交道。

CPU Cache的数据是从内存加载过来的,写回是也是写回到内存不能直接写到硬盘。磁盘加载数据也是先加载到内存,再加载CPUCache。

不同种类的存储设备在计算机系统中通常只会和相邻的存储设备打交道是为了提高数据访问速度和系统效率。 CPU想访问内存的某个数据时候,如果寄存器有这个数据就直接从寄存器拿取就可以,如果没有,就会从L1 Cache看看,没有的话,再去L2 Cache看看,L2也没有就去L3看看,再没有就只能去内存拿取数据了。 正因如此,就形成了存储层次。

  • 22
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值