知道硬盘很慢,没想到比CPU Cache慢10000000倍( 二 )
- 寄存器;
- CPU Cache;
- L1-Cache;
- L2-Cache;
- L3-Cahce;
- 内存;
- SSD/HDD 硬盘
存储器的数量通常在几十到几百之间 , 每个寄存器可以用来存储一定的字节(byte)的数据 。 比如:
- 32 位 CPU 中大多数寄存器可以存储 4 个字节;
- 64 位 CPU 中大多数寄存器可以存储 8 个字节 。
CPU 处理一条指令的时候 , 除了读写寄存器 , 还需要解码指令、控制指令执行和计算 。 如果寄存器的速度太慢 , 则会拉长指令的处理周期 , 从而给用户的感觉 , 就是电脑「很慢」 。
CPU CacheCPU Cache 用的是一种叫 SRAM(Static Random-Access Memory , 静态随机存储器) 的芯片 。
SRAM 之所以叫「静态」存储器 , 是因为只要有电 , 数据就可以保持存在 , 而一旦断电 , 数据就会丢失了 。
在 SRAM 里面 , 一个 bit 的数据 , 通常需要 6 个晶体管 , 所以 SRAM 的存储密度不高 , 同样的物理空间下 , 能存储的数据是有限的 , 不过也因为 SRAM 的电路简单 , 所以访问速度非常快 。
CPU 的高速缓存 , 通常可以分为 L1、L2、L3 这样的三层高速缓存 , 也称为一级缓存、二次缓存、三次缓存 。
文章插图L1 高速缓存L1 高速缓存的访问速度几乎和寄存器一样快 , 通常只需要 2~4 个时钟周期 , 而大小在几十 KB 到几百 KB 不等 。
每个 CPU 核心都有一块属于自己的 L1 高速缓存 , 指令和数据在 L1 是分开存放的 , 所以 L1 高速缓存通常分成指令缓存和数据缓存 。
在 Linux 系统 , 我们可以通过这条命令 , 查看 CPU 里的 L1 Cache 「数据」缓存的容量大小:
$ cat /sys/devices/system/cpu/cpu0/cache/index0/size32K而查看 L1 Cache 「指令」缓存的容量大小 , 则是:$ cat /sys/devices/system/cpu/cpu0/cache/index1/size32KL2 高速缓存L2 高速缓存同样每个 CPU 核心都有 , 但是 L2 高速缓存位置比 L1 高速缓存距离 CPU 核心 更远 , 它大小比 L1 高速缓存更大 , CPU 型号不同大小也就不同 , 通常大小在几百 KB 到几 MB 不等 , 访问速度则更慢 , 速度在 10~20 个时钟周期 。在 Linux 系统 , 我们可以通过这条命令 , 查看 CPU 里的 L2 Cache 的容量大小:
$ cat /sys/devices/system/cpu/cpu0/cache/index2/size256KL3 高速缓存L3 高速缓存通常是多个 CPU 核心共用的 , 位置比 L2 高速缓存距离 CPU 核心 更远 , 大小也会更大些 , 通常大小在几 MB 到几十 MB 不等 , 具体值根据 CPU 型号而定 。访问速度相对也比较慢一些 , 访问速度在 20~60个时钟周期 。
在 Linux 系统 , 我们可以通过这条命令 , 查看 CPU 里的 L3 Cache 的容量大小:
$ cat /sys/devices/system/cpu/cpu0/cache/index3/size 3072K内存内存用的芯片和 CPU Cache 有所不同 , 它使用的是一种叫作 DRAM (Dynamic Random Access Memory , 动态随机存取存储器) 的芯片 。相比 SRAM , DRAM 的密度更高 , 功耗更低 , 有更大的容量 , 而且造价比 SRAM 芯片便宜很多 。
推荐阅读
- 印专家:中国不可怕,可怕的是它都已经领跑6G了各国还在争5G
- 传统1/10大小 七彩虹发布最小的mini SSD硬盘:性能首次公开
- 2021年还能买4G手机吗?也许天天用5G的用户,告诉你答案
- 还记得那个买苹果手机的小男孩吗?如今的他过得怎么样呢?
- 苹果iOS 14升级这么久,这10个隐藏功能你未必全知道
- 荣耀手环6简评:这是一个有“偏见”的产品
- 带着耳机睡觉的危害你知道吗?
- 2.4亿美元打水漂!程序员小哥把7500个比特币当垃圾扔掉 硬盘找不回
- 创维小湃盒子P3 Pro深度评测
- 被人删除还不知道?通过微信上方“+”号,就能知道是否被删好友
