知道硬盘很慢,没想到比CPU Cache慢10000000倍( 三 )
DRAM 存储一个 bit 数据 , 只需要一个晶体管和一个电容就能存储 , 但是因为数据会被存储在电容里 , 电容会不断漏电 , 所以需要「定时刷新」电容 , 才能保证数据不会被丢失 , 这就是 DRAM 之所以被称为「动态」存储器的原因 , 只有不断刷新 , 数据才能被存储起来 。
DRAM 的数据访问电路和刷新电路都比 SRAM 更复杂 , 所以访问的速度会更慢 , 内存速度大概在 200~300 个 时钟周期之间 。
SSD/HDD 硬盘SSD(Solid-state disk) 就是我们常说的固体硬盘 , 结构和内存类似 , 但是它相比内存的优点是断电后数据还是存在的 , 而内存、寄存器、高速缓存断电后数据都会丢失 。 内存的读写速度比 SSD 大概快 10~1000 倍 。
当然 , 还有一款传统的硬盘 , 也就是机械硬盘(Hard Disk Drive, HDD) , 它是通过物理读写的方式来访问数据的 , 因此它访问速度是非常慢的 , 它的速度比内存慢 10W 倍左右 。
由于 SSD 的价格快接近机械硬盘了 , 因此机械硬盘已经逐渐被 SSD 替代了 。
存储器的层次关系现代的一台计算机 , 都用上了 CPU Cahce、内存、到 SSD 或 HDD 硬盘这些存储器设备了 。
其中 , 存储空间越大的存储器设备 , 其访问速度越慢 , 所需成本也相对越少 。
CPU 并不会直接和每一种存储器设备直接打交道 , 而是每一种存储器设备只和它相邻的存储器设备打交道 。
比如 , CPU Cache 的数据是从内存加载过来的 , 写回数据的时候也只写回到内存 , CPU Cache 不会直接把数据写到硬盘 , 也不会直接从硬盘加载数据 , 而是先加载到内存 , 再从内存加载到 CPU Cache 中 。
文章插图
所以 , 每个存储器只和相邻的一层存储器设备打交道 , 并且存储设备为了追求更快的速度 , 所需的材料成本必然也是更高 , 也正因为成本太高 , 所以 CPU 内部的寄存器、L1\L2\L3 Cache 只好用较小的容量 , 相反内存、硬盘则可用更大的容量 , 这就我们今天所说的存储器层次结构 。
另外 , 当 CPU 需要访问内存中某个数据的时候 , 如果寄存器有这个数据 , CPU 就直接从寄存器取数据即可 , 如果寄存器没有这个数据 , CPU 就会查询 L1 高速缓存 , 如果 L1 没有 , 则查询 L2 高速缓存 , L2 还是没有的话就查询 L3 高速缓存 , L3 依然没有的话 , 才去内存中取数据 。
文章插图
所以 , 存储层次结构也形成了缓存的体系 。
存储器之间的实际价格和性能差距前面我们知道了 , 速度越快的存储器 , 造价成本往往也越高 , 那我们就以实际的数据来看看 , 不同层级的存储器之间的性能和价格差异 。
下面这张表格是不同层级的存储器之间的成本对比图:
文章插图
你可以看到 L1 Cache 的访问延时是 1 纳秒 , 而内存已经是 100 纳秒了 , 相比 L1 Cache 速度慢了 100 倍 。 另外 , 机械硬盘的访问延时更是高达 10 毫秒 , 相比 L1 Cache 速度慢了 10000000 倍 , 差了好几个数量级别 。
在价格上 , 每生产 MB 大小的 L1 Cache 相比内存贵了 466 倍 , 相比机械硬盘那更是贵了 175000 倍 。
我在某东逛了下各个存储器设备的零售价 , 8G 内存 + 1T 机械硬盘 + 256G 固态硬盘的总价格 , 都不及一块 Intle i5-10400 的 CPU 的价格 , 这款 CPU 的高速缓存的总大小也就十多 MB 。
总结各种存储器之间的关系 , 可以用我们在图书馆学习这个场景来理解 。
CPU 可以比喻成我们的大脑 , 我们当前正在思考和处理的知识的过程 , 就好比 CPU 中的寄存器处理数据的过程 , 速度极快 , 但是容量很小 。 而 CPU 中的 L1-L3 Cache 好比我们大脑中的短期记忆和长期记忆 , 需要小小花费点时间来调取数据并处理 。
推荐阅读
- 印专家:中国不可怕,可怕的是它都已经领跑6G了各国还在争5G
- 传统1/10大小 七彩虹发布最小的mini SSD硬盘:性能首次公开
- 2021年还能买4G手机吗?也许天天用5G的用户,告诉你答案
- 还记得那个买苹果手机的小男孩吗?如今的他过得怎么样呢?
- 苹果iOS 14升级这么久,这10个隐藏功能你未必全知道
- 荣耀手环6简评:这是一个有“偏见”的产品
- 带着耳机睡觉的危害你知道吗?
- 2.4亿美元打水漂!程序员小哥把7500个比特币当垃圾扔掉 硬盘找不回
- 创维小湃盒子P3 Pro深度评测
- 被人删除还不知道?通过微信上方“+”号,就能知道是否被删好友
