前言
作为程序员,我们不深究硬件,无需深入了解硬件的各个电路信号等细节,只了解存储器的基本相关知识。
存储器的层次结构
寄存器
计算机的一种硬件组件,用于存储和快速访问处理器的数据,位于CPU内部的小型存储器单元,它是所以存储器当中处理速度最快的,但是也是存储数据最少的
CPU Cache
CPU高速缓存,用的是一种叫 SRAM(Static Random-Access Memory,静态随机存储器) 的芯片。我们经常说的三级缓存就是在这里,分为L1、L2、L3三层,其中L1 Cache包括数据缓存和指令缓存,L1是三级缓存离CPU最近的,所以是三级缓存里面最快的
内存
它使用的是一种叫作 DRAM (Dynamic Random Access Memory,动态随机存取存储器) 的芯片。。它使用电容器来存储数据,需要定期刷新以保持数据的有效性。DRAM的容量较大且相对廉价,但读写速度相对于CPU Cache较慢
固态硬盘
SSD(Solid-state disk) 就是我们常说的固体硬盘,结构和内存类似,但是它相比内存的优点是断电后数据还是存在的,而内存、寄存器、高速缓存断电后数据都会丢失。内存的读写速度比 SSD 大概快 10~1000 倍。
机械硬盘
机械硬盘(Hard Disk Drive, HDD),它是通过物理读写的方式来访问数据的,因此它访问速度是非常慢的,访问时间是毫秒(ms)级别的
CPU 访问数据流程图
总结
寄存器(Register):寄存器是CPU内部的存储器,访问速度非常快,通常在纳秒级别(几纳秒至十几纳秒)。
高速缓存(Cache):高速缓存是位于CPU和主存之间的存储层次结构,具有较快的访问速度。L1缓存的访问延迟通常在几个纳秒至十几个纳秒之间,而L2和L3缓存的访问延迟可能在几十纳秒至几百纳秒之间。
主存(RAM):主存是计算机系统中常用的内存类型,访问速度相对较慢。DDR4主存的访问延迟通常在几十纳秒至百多纳秒之间。
固态硬盘(SSD):固态硬盘使用闪存芯片作为存储介质,其访问速度比传统的机械硬盘要快。固态硬盘的随机读取延迟通常在几微秒至数十微秒之间,写入延迟可能稍高一些。
机械硬盘(HDD):机械硬盘使用旋转磁盘和读写磁头进行数据访问,相比其他存储器具有较慢的访问速度。机械硬盘的随机读取延迟通常在几毫秒至十几毫秒之间。
回到开始的问题:磁盘和内存速度可能相差万倍,内存访问是纳秒级别,磁盘访问是毫秒级别