揭秘人人都知道的“存储器金字塔”的起源之谜

存储器的层次结构

这是一张大家熟悉的存储器的层次结构图,形状类似金字塔。金字塔塔尖是 CPU 中的寄存器,容量最小,速度最快,价格也是最贵的;从上往下依次是高速缓存、主存、磁盘,容量依次变大,速度依次变慢,价格也逐渐降低。

这个金字塔结构是怎么来的呢?为什么需要有这么一个金字塔的存储结构呢?

先说结论,这个金字塔是性能、成本和容量三者平衡的结果,使得计算机以低成本实现快速运行,并享受较为海量的存储

CPU 与主存的性能差异

通过前边的内容,我们知道 CPU 就是一个无情的执行指令的机器。如果以“信号与系统”的眼光来看,处理的指令就是信号,CPU 就是一个处理指令的系统,它的任务就是对输入数据进行运算,运算完成之后进行输出,那 CPU 运算的数据从哪里来?算完的数据又去往哪里呢?

答案其实是内存。计算机把要执行的软件事先放在内存中,CPU 的取指令单元自动从内存中读取指令,然后加载到 CPU 中执行;软件在运行过程中,通常需要从内存中读取要计算的数据或者把计算结果写回内存。

CPU 核心是直接读取的内存吗?其实不是的。CPU 通过内存控制器模块与内存相连接。CPU 读写内存都是通过内存控制器来完成的。

随着技术的发展(摩尔定律),CPU 运行速度远远超过内存访问速度,下图是一张各存储器之间性能差异图,我们从图中可以看到明显的差异。结合 CPU 指令执行过程分析,这巨大的差异必将拖慢 CPU 的执行速度

如何平衡 CPU 与主存的性能差异

那应该如何平衡CPU和主存的性能差异呢?

按照计算机领域的基本规则,没有什么问题是不能通过增加中间层解决的,如果有那就多分几层。面对这个问题,工程师们在 DRAM 和 CPU 之间再加个缓存层:高速缓存,来平衡二者之间的速度差异。

如何平衡存储容量的差异

数字资源占用空间大小的增长很快。以手机照片为例,随着各个厂商不断卷像素,照片的占用空间越来越大,一张照片从几 KB 一路涨到 10 多 MB 甚至更多。

而内存空间是有限的,普通的PC内存一般也就8G或者16G,肯定是没有办法放下所有数据的。如果继续扩大内存,成本就会很高。于是,为了存放更多的数据,我们寻找更加廉价的解决方案。那就是,SSD(Solid-state drive 或 Solid-state disk,固态硬盘)、HDD(Hard Disk Drive,硬盘)。

当然还有另外一个重要原因,内存掉电会丢失数据,而磁盘不会,磁盘更适合长时间保存数据。你的照片或者文档肯定也不希望关机之后就消失了吧。

SRAM 和 DRAM 有什么区别

图片里面有 SRAM 和 DRAM,这两个又是什么呢?

半导体存储器按照存取方式划分可以分为:RAM(Random-Access Memory 随机存取存储器)和 ROM(Read-Only Memory 只读存储器)。RAM 又分为 SRAM 和 DRAM 两种实现类型:

  1. SRAM(静态 RAM):SRAM 只要在保持通电状态下,内部存储的数据就不会丢失,因此称为 “静态” RAM。
  • 优点: 访问速度非常快,通常用作 CPU 的高速缓存;
  • 缺点: 在 SRAM 中,仅实现 1 比特容量就需要 6~8 个晶体管组成,所以 SRAM 的存储密度不高。
  1. DRAM(动态 RAM):DRAM 在保持通电状态下,还需要定时刷新,才能保证内部存储的数据不会丢失,因此称为 “动态” RAM。
  • 优点: 实现 1 比特容量只需要 1 个晶体管和 1 个电容组成,所以 DRAM 的存储密度、功耗和价格指标都比 SRAM 优秀的多;
  • 缺点: 电容会自然放电,为避免某些长期得不到访问的存储单元丢失数据,必须采用定时刷新的策略。这就导致 DRAM 的数据访问电路和刷新电路都比 SRAM 更复杂,访问时延也更长,因此,DRAM 一般用作计算机主存。

当运行游戏或者打开文件时存储设备会发生什么

假设我想在电脑上玩最近大火的《黑神话:悟空》。游戏本身安装在持久性的设备中的(SSD 中)。当运行游戏时,CPU 会发送大量指令来控制数据流。信息从存储复制到主内存(DRAM),然后进行Loading……这种传输对于减少运行程序时的延迟是必要的,也是所有游戏对电脑配置有最低 RAM 要求的原因。

根据当前正在玩的游戏部分,部分数据会被复制到缓存中。然后,缓存中的一部分数据会被复制到 CPU 寄存器并由 CPU 处理。想象一下,如果内存金字塔不存在,CPU 被迫直接从磁盘中读取数据并运行程序;由于磁盘比与缓存相比慢很多,那悟空的画面就会卡顿,根本没法玩了。

小结

在日常中,我们总是希望存储器速度更快、容量更大、价格更便宜;“又要马儿跑得快,又不马儿不吃草”,这些需求其实是互相冲突的,不可能完全解决的。

后来,计算机工程师通过层次结构来处理这些冲突的需求。在存储层次中,速度最快、容量最小并且每位价格最昂贵的存储器处于顶层,而速度最慢、容量最大且每位价格最便宜的存储器处于底层。这样就给了我们错觉,计算机存储又快、又大、又便宜

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

James Shangguan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值