当前位置:首页 > 科技  > 软件

程序员都要懂的~计算机的存储器架构

来源: 责编: 时间:2023-08-09 23:03:29 221观看
导读大家都知道内存和硬盘都属于计算机的存储设备,断电后内存的数据是会丢失的,而硬盘则不会,因为硬盘是持久化存储设备,同时也是一个 I/O 设备。其实 CPU 内部也有存储数据的组件,比如寄存器、CPU L1/L2/L3 Cache 也都是属于

大家都知道内存和硬盘都属于计算机的存储设备,断电后内存的数据是会丢失的,而硬盘则不会,因为硬盘是持久化存储设备,同时也是一个 I/O 设备。6Oi28资讯网——每日最新资讯28at.com

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

问题来了,那机械硬盘、固态硬盘、内存这三个存储器,到底和 CPU L1 Cache 相比速度差多少倍呢?6Oi28资讯网——每日最新资讯28at.com

在回答这个问题之前,我们先来看看「存储器的层次结构」,好让我们对存储器设备有一个整体的认识。6Oi28资讯网——每日最新资讯28at.com

6Oi28资讯网——每日最新资讯28at.com

存储器的层次结构

我们想象中一个场景,程序汪小刘同学准备转行了,在准备法考,为了营造气氛,就去附近自习室学习。那么,在看书的时候,我们的大脑会思考问题,也会记忆考点,另外我们通常也会把常用的书放在自己的桌子上,当我们要找一本不常用的书,则会回家去拿或者去附近的图书馆找一找。6Oi28资讯网——每日最新资讯28at.com

就是这么一个场景,已经把计算机的存储结构基本都涵盖了。6Oi28资讯网——每日最新资讯28at.com

我们可以把 CPU 比喻成我们的大脑,大脑正在思考的东西,就好比 CPU 中的寄存器,处理速度是最快的,但是能存储的数据也是最少的 。6Oi28资讯网——每日最新资讯28at.com

我们大脑中的记忆,就好比 CPU Cache,中文称为 CPU 高速缓存,处理速度相比寄存器慢了一点,但是能存储的数据也稍微多了一些。6Oi28资讯网——每日最新资讯28at.com

CPU Cache 通常会分为 L1、L2、L3 三层,L1 是距离 CPU 最近的,因此它比 L2、L3 的读写速度都快、存储空间都小。我们大脑中短期记忆,就好比 L1 Cache,而长期记忆就好比 L2/L3 Cache。6Oi28资讯网——每日最新资讯28at.com

寄存器和 CPU Cache 都是在 CPU 内部,跟 CPU 挨着很近,因此它们的读写速度都相当的快,但是能存储的数据很少,毕竟 CPU 就这么丁点大。6Oi28资讯网——每日最新资讯28at.com

再来看看 CPU 外部的存储器。6Oi28资讯网——每日最新资讯28at.com

当我们大脑记忆中没有资料的时候,可以从书桌拿书来阅读,那我们桌子上的书,就好比内存,我们虽然可以一伸手就可以拿到,但读写速度肯定远慢于寄存器,6Oi28资讯网——每日最新资讯28at.com

那图书馆里资料或者在家里的书,就好比硬盘,能存储的数据非常大,但是读写速度相比内存差好几个数量级,更别说跟寄存器的差距了。6Oi28资讯网——每日最新资讯28at.com

6Oi28资讯网——每日最新资讯28at.com

对于存储器,它的速度越快、能耗会越高、而且材料的成本也是越贵的,以至于速度快的存储器的容量都比较小。6Oi28资讯网——每日最新资讯28at.com

存储器通常可以分为这么几个级别:6Oi28资讯网——每日最新资讯28at.com

  • 寄存器;
  • CPU Cache;
  1. L1-Cache;
  2. L2-Cache;
  3. L3-Cahce;
  • 内存;
  • SSD/HDD 硬盘

寄存器

最靠近 CPU 的控制单元和逻辑计算单元的存储器,就是寄存器了,它使用的材料速度也是最快的,因此价格也是最贵的,那么数量不能很多。6Oi28资讯网——每日最新资讯28at.com

寄存器的数量通常在几十到几百之间,每个寄存器可以用来存储一定的字节(byte)的数据。比如:6Oi28资讯网——每日最新资讯28at.com

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

寄存器的访问速度非常快,一般要求在半个 CPU 时钟周期内完成读写,CPU 时钟周期跟 CPU 主频息息相关,6Oi28资讯网——每日最新资讯28at.com

举个例子,主频为3.0GHZ的CPU,一个时钟周期大约是0.3纳秒,内存访问大约需要120纳秒,固态硬盘访问大约需要50-150微秒,机械硬盘访问大约需要1-10毫秒,最后网络访问最慢,得几十毫秒左右。 这个大家可能对时间不怎么敏感,那如果我们把一个时钟周期如果按1秒算的话,内存访问大约就是6分钟 ,固态硬盘大约是2-6天 ,传统硬盘大约是1-12个月,网络访问就得几年了!6Oi28资讯网——每日最新资讯28at.com

CPU Cache

CPU Cache 用的是一种叫 SRAM(Static Random-Access Memory,静态随机存储器) 的芯片。6Oi28资讯网——每日最新资讯28at.com

SRAM 之所以叫「静态」存储器,是因为只要有电,数据就可以保持存在,而一旦断电,数据就会丢失了。6Oi28资讯网——每日最新资讯28at.com

CPU 的高速缓存,通常可以分为 L1、L2、L3 这样的三层高速缓存,也称为一级缓存、二级缓存、三级缓存。6Oi28资讯网——每日最新资讯28at.com

6Oi28资讯网——每日最新资讯28at.com

部件6Oi28资讯网——每日最新资讯28at.com

CPU访问所需时间6Oi28资讯网——每日最新资讯28at.com

介绍6Oi28资讯网——每日最新资讯28at.com

L1 高速缓存6Oi28资讯网——每日最新资讯28at.com


6Oi28资讯网——每日最新资讯28at.com

2~4 个时钟周期6Oi28资讯网——每日最新资讯28at.com


6Oi28资讯网——每日最新资讯28at.com

L1 高速缓存访问速度几乎和寄存器一样快,大小在几十 KB 到几百 KB 不等。6Oi28资讯网——每日最新资讯28at.com

每个 CPU 核心都有一块属于自己的 L1 高速缓存,指令和数据在 L1 是分开存放的,所以 L1 高速缓存通常分成指令缓存和数据缓存。6Oi28资讯网——每日最新资讯28at.com

L2 高速缓存6Oi28资讯网——每日最新资讯28at.com


6Oi28资讯网——每日最新资讯28at.com

10~20 个时钟周期6Oi28资讯网——每日最新资讯28at.com

L2 高速缓存同样每个 CPU 核心都有,但是 L2 高速缓存位置比 L1 高速缓存距离 CPU 核心 更远,它大小比 L1 高速缓存更大,CPU 型号不同大小也就不同,通常大小在几百 KB 到几 MB 不等,访问速度则更慢6Oi28资讯网——每日最新资讯28at.com

L3 高速缓存6Oi28资讯网——每日最新资讯28at.com


6Oi28资讯网——每日最新资讯28at.com

20~60个时钟周期6Oi28资讯网——每日最新资讯28at.com

L3 高速缓存通常是多个 CPU 核心共用的,位置比 L2 高速缓存距离 CPU 核心 更远,大小也会更大些,通常大小在几 MB 到几十 MB 不等,具体值根据 CPU 型号而定6Oi28资讯网——每日最新资讯28at.com

内存

内存用的芯片和 CPU Cache 有所不同,它使用的是一种叫作 DRAM (Dynamic Random Access Memory,动态随机存取存储器) 的芯片。6Oi28资讯网——每日最新资讯28at.com

相比 SRAM,DRAM 的密度更高,功耗更低,有更大的容量,而且造价比 SRAM 芯片便宜很多。6Oi28资讯网——每日最新资讯28at.com

DRAM 存储一个 bit 数据,只需要一个晶体管和一个电容就能存储,但是因为数据会被存储在电容里,电容会不断漏电,所以需要「定时刷新」电容,才能保证数据不会被丢失,这就是 DRAM 之所以被称为「动态」存储器的原因,只有不断刷新,数据才能被存储起来。6Oi28资讯网——每日最新资讯28at.com

DRAM 的数据访问电路和刷新电路都比 SRAM 更复杂,所以访问的速度会更慢,内存速度大概在 200~300 个 时钟周期之间。6Oi28资讯网——每日最新资讯28at.com

SSD/HDD 硬盘

SSD(Solid-state disk) 就是我们常说的固体硬盘,结构和内存类似,但是它相比内存的优点是断电后数据还是存在的,而内存、寄存器、高速缓存断电后数据都会丢失。内存的读写速度比 SSD 大概快 10~1000 倍。6Oi28资讯网——每日最新资讯28at.com

当然,还有一款传统的硬盘,也就是机械硬盘(Hard Disk Drive, HDD),它是通过物理读写的方式来访问数据的,因此它访问速度是非常慢的,它的速度比内存慢 10W 倍左右。6Oi28资讯网——每日最新资讯28at.com

由于 SSD 的价格快接近机械硬盘了,因此机械硬盘已经逐渐被 SSD 替代了。6Oi28资讯网——每日最新资讯28at.com


存储器的层次关系

6Oi28资讯网——每日最新资讯28at.com

现代的一台计算机,都用上了 CPU Cahce、内存、到 SSD 或 HDD 硬盘这些存储器设备了。存储空间越大的存储器设备,其访问速度越慢,所需成本也相对越少。6Oi28资讯网——每日最新资讯28at.com

CPU 并不会直接和每一种存储器设备直接打交道,而是每一种存储器设备只和它相邻的存储器设备打交道。比如,CPU Cache 的数据是从内存加载过来的,写回数据的时候也只写回到内存,CPU Cache 不会直接把数据写到硬盘,也不会直接从硬盘加载数据,而是先加载到内存,再从内存加载到 CPU Cache 中。6Oi28资讯网——每日最新资讯28at.com

6Oi28资讯网——每日最新资讯28at.com

所以,存储层次结构也形成了缓存的体系。6Oi28资讯网——每日最新资讯28at.com

价格和性能的权衡

前面我们知道了,速度越快的存储器,造价成本往往也越高,那我们就以实际的数据来看看,不同层级的存储器之间的性能和价格差异。6Oi28资讯网——每日最新资讯28at.com

下面这张表格是不同层级的存储器之间的成本对比图:6Oi28资讯网——每日最新资讯28at.com

6Oi28资讯网——每日最新资讯28at.com

你可以看到 L1 Cache 的访问延时是 1 纳秒,而内存已经是 100 纳秒了,相比 L1 Cache 速度慢了 100 倍。另外,机械硬盘的访问延时更是高达 10 毫秒,相比 L1 Cache 速度慢了 10000000 倍,差了好几个数量级别。6Oi28资讯网——每日最新资讯28at.com

在价格上,每生成 MB 大小的 L1 Cache 相比内存贵了 466 倍,相比机械硬盘那更是贵了 175000 倍。在某东逛了下各个存储器设备的零售价,8G 内存 + 1T 机械硬盘 + 256G 固态硬盘的总价格,都不及一块 Intle i5-10400 的 CPU 的价格,这款 CPU 的高速缓存的总大小也就十多 MB。6Oi28资讯网——每日最新资讯28at.com

总结

机械硬盘、固态硬盘、内存这三个存储器,到底和 CPU L1 Cache 相比速度差多少倍呢?6Oi28资讯网——每日最新资讯28at.com

CPU L1 Cache 随机访问延时是 1 纳秒,内存则是 100 纳秒,所以 CPU L1 Cache 比内存快 100 倍左右。6Oi28资讯网——每日最新资讯28at.com

SSD 随机访问延时是 150 微秒,所以 CPU L1 Cache 比 SSD 快 150000 倍左右。6Oi28资讯网——每日最新资讯28at.com

最慢的机械硬盘随机访问延时已经高达 10 毫秒,我们来看看机械硬盘到底有多「龟速」:6Oi28资讯网——每日最新资讯28at.com

  • SSD 比机械硬盘快 70 倍左右;
  • 内存比机械硬盘快 100000 倍左右;
  • CPU L1 Cache 比机械硬盘快 10000000 倍左右;

我们把上述的时间比例差异放大后,就能非常直观感受到它们的性能差异了。如果 CPU 访问 L1 Cache 的缓存时间是 1 秒,那访问内存则需要大约 2 分钟,随机访问 SSD 里的数据则需要 1.7 天,访问机械硬盘那更久,长达近 4 个月。6Oi28资讯网——每日最新资讯28at.com

可以发现,不同的存储器之间性能差距很大,构造存储器分级很有意义,分级的目的是要构造缓存体系。6Oi28资讯网——每日最新资讯28at.com

题外话

由于CPU速度非常快,且价框非常是责,我们必须得充分压榨CPU,得像生产队的护一样,让它不隔地工作。
为了合理利用CPU的高性期,同时尽可能地节约成本。现代计算机格这些存储器充分的结合起来,由于这些硬件的数据存取速度差异导改了计算机系统编程中的各种问题:有序性、可见性、原子性等。6Oi28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-5183-0.html程序员都要懂的~计算机的存储器架构

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: TIOBE 8 月榜单:Julia 首次进入前 20 名

下一篇: 再见pip & conda!管理Python依赖关系的更好的选择:Poetry

标签:
  • 热门焦点
  • Find N3入网:最高支持16+1TB

    Find N3入网:最高支持16+1TB

    OPPO将于近期登场的Find N3折叠屏目前已经正式入网,型号为PHN110。本次Find N3在外观方面相比前两代有很大的变化,不再是小号的横向折叠屏,而是跟别的厂商一样采用了较为常见的
  • 小米官宣:2023年上半年出货量中国第一!

    小米官宣:2023年上半年出货量中国第一!

    今日早间,小米电视官方微博带来消息,称2023年小米电视上半年出货量达到了中国第一,同时还表示小米电视的巨屏风暴即将开始。“公布一个好消息2023年#小米电视上半年出货量中国
  • 轿车从天而降电动车主被撞身亡 超速抢道所致:现场视频让网友吵翻

    轿车从天而降电动车主被撞身亡 超速抢道所致:现场视频让网友吵翻

    近日,上海青浦区法院判决轿车从天而降电动车主被撞身亡案,轿车车主被判有期徒刑一年。案件显示当时男子驾驶轿车在上海某路段行驶,前车忽然转弯提速超车,
  • JavaScript 混淆及反混淆代码工具

    JavaScript 混淆及反混淆代码工具

    介绍在我们开始学习反混淆之前,我们首先要了解一下代码混淆。如果不了解代码是如何混淆的,我们可能无法成功对代码进行反混淆,尤其是使用自定义混淆器对其进行混淆时。什么是混
  • Raft算法:保障分布式系统共识的稳健之道

    Raft算法:保障分布式系统共识的稳健之道

    1. 什么是Raft算法?Raft 是英文”Reliable、Replicated、Redundant、And Fault-Tolerant”(“可靠、可复制、可冗余、可容错”)的首字母缩写。Raft算法是一种用于在分布式系统
  • 一篇聊聊Go错误封装机制

    一篇聊聊Go错误封装机制

    %w 是用于错误包装(Error Wrapping)的格式化动词。它是用于 fmt.Errorf 和 fmt.Sprintf 函数中的一个特殊格式化动词,用于将一个错误(或其他可打印的值)包装在一个新的错误中。使
  • 一文掌握 Golang 模糊测试(Fuzz Testing)

    一文掌握 Golang 模糊测试(Fuzz Testing)

    模糊测试(Fuzz Testing)模糊测试(Fuzz Testing)是通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。可以用来发现应用程序、操作系统和网络协议等中的漏洞或
  • 得物宠物生意「狂飙」,发力“它经济”

    得物宠物生意「狂飙」,发力“它经济”

    作者|花花小萌主近日,得物宣布正式上线宠物鉴别,通过得物App内的“在线鉴别”,可找到鉴别宠物的选项。通过上传自家宠物的部位细节,就能收获拥有专业资质认证的得物鉴
  •  三星推出Galaxy Tab S9系列平板电脑以及Galaxy Watch6系列智能手表

    三星推出Galaxy Tab S9系列平板电脑以及Galaxy Watch6系列智能手表

    2023年7月26日,三星电子正式发布了Galaxy Z Flip5与Galaxy Z Fold5。除此之外,Galaxy Tab S9系列平板电脑以及三星Galaxy Watch6系列智能手表也同期
Top