计算机存储器层次结构详解:从寄存器到硬盘
计算机存储器层次结构详解:从寄存器到硬盘
计算机存储器的层次结构是一个复杂而精妙的系统,从最接近CPU的寄存器到最远离CPU的硬盘,每种存储设备都有其独特的性能特点和应用场景。本文将为您详细解析这一层次结构,帮助您理解不同存储设备的工作原理和相互关系。
在计算机系统中,存储器的层次结构可以比喻为一个图书馆。CPU就像是大脑,需要快速访问和处理数据。寄存器就像是大脑中正在思考的内容,处理速度最快但存储空间最小;CPU Cache就像是短期记忆,存储空间稍大但速度略慢;内存就像是书桌上的书籍,可以快速访问但存储空间有限;而硬盘就像是图书馆的书架,存储空间巨大但访问速度较慢。
寄存器
寄存器是最靠近CPU的存储器,使用最快的材料,因此价格也最贵。数量通常在几十到几百之间,每个寄存器可以存储一定字节的数据。例如,32位CPU中大多数寄存器可以存储4个字节,而64位CPU中大多数寄存器可以存储8个字节。寄存器的访问速度非常快,一般要求在半个CPU时钟周期内完成读写。
CPU Cache
CPU Cache使用的是SRAM(静态随机存储器)芯片。SRAM之所以叫“静态”存储器,是因为只要有电,数据就可以保持存在,一旦断电,数据就会丢失。在SRAM中,一个bit的数据通常需要6个晶体管,因此存储密度不高,但访问速度非常快。
CPU的高速缓存通常分为L1、L2、L3三层:
L1高速缓存:访问速度几乎和寄存器一样快,通常只需要2~4个时钟周期,大小在几十KB到几百KB不等。每个CPU核心都有一块属于自己的L1高速缓存,指令和数据在L1是分开存放的。
L2高速缓存:同样每个CPU核心都有,位置比L1高速缓存距离CPU核心更远,大小在几百KB到几MB不等,访问速度在10~20个时钟周期。
L3高速缓存:通常是多个CPU核心共用的,位置比L2高速缓存距离CPU核心更远,大小在几MB到几十MB不等,访问速度在20~60个时钟周期。
存储器的层次关系
现代计算机都用上了CPU Cache、内存、SSD或HDD硬盘等存储器设备。存储空间越大的存储器设备,其访问速度越慢,所需成本也相对越少。CPU并不会直接和每一种存储器设备直接打交道,而是每一种存储器设备只和它相邻的存储器设备打交道。
当CPU需要访问内存中某个数据的时候,会按照寄存器→L1→L2→L3→内存的顺序查找。如果在某一层级找到数据,就会直接使用,避免了更慢的存储设备的访问。
下面这张表格是不同层级的存储器之间的成本对比图:
存储器类型 | 访问延时 | 每MB成本 |
---|---|---|
L1 Cache | 1 纳秒 | $100 |
内存 | 100 纳秒 | $0.215 |
机械硬盘 | 10 毫秒 | $0.00057 |
从表中可以看出,L1 Cache的访问延时是1纳秒,而内存已经是100纳秒了,相比L1 Cache速度慢了100倍。机械硬盘的访问延时更是高达10毫秒,相比L1 Cache速度慢了10000000倍,差了好几个数量级别。在价格上,每生成MB大小的L1 Cache相比内存贵了466倍,相比机械硬盘那更是贵了175000倍。