关于计算机的存储器层次结构

关于计算机的存储器层次结构

RAM与ROM

随机访问存储器(RAM)分为两类:静态的、动态的
(1)静态RAM(SRAM)将每个位存储在一个双稳态的存储器单元里
(2)动态RAM(DRAM)将每个位存储为对一个电容的充电
只要有供电,SRAM就会保持不变。与DRAM不同,它不需要刷新,SRAM的存取比DRAM快。SRAM对诸如光和电噪声这样的干扰不敏感。代价是SRAM单元比DRAM单元使用更多的晶体管,因而密集度低,而且更贵,功耗更大
一个16*8的DRAM芯片的组织,有d=16个超单元,每个超单元有w=8位,r=4行,c=4列

非易失性存储器
如果断电,DRAM和SRAM会丢失它们的信息,而非易失性存储器则关电后仍然保存着它们的信息,由于历史原因,虽然ROM中有的类型既可以读也可以写,但是它们整体上都被称为只读存储器(ROM)
PROM(可编程ROM)
EPROM(可擦写可编程ROM)
EEPROM(电子可擦除PROM)
闪存(flash memory)是一类非易失性存储器,基于EEPROM,它已经成为了一种重要的存储技术,固态硬盘便是一种新型的基于闪存的磁盘驱动器
存储在ROM设备中的程序通常被称为固件,当一个计算机系统通电以后,它会运行存储在ROM中的固件,例如PC的BIOS(基本输入/输出系统)

固态硬盘读比写快,有两个原因,首先,擦除块需要相对较长的时间,其次,如果写操作试图修改一个包含已经有数据的页p,那么这个块中所有带有用数据的页都必须被复制到一个新(擦除过的)块,然后才能进行对页p的写
固态硬盘比旋转磁盘要快,能耗更低,但是容易磨损,磁盘速度慢于DRAM

关于程序的局部性

局部性:有良好的局部性的程序通常比局部性差的程序运行得更快
重复引用相同变量的程序有良好的时间局部性
对于具有步长为k的引用模式的程序,步长越小,空间局部性越好
循环体越小,循环迭代次数越多,局部性越好

存储器层次结构

寄存器
L1高速缓存(SRAM)
L2高速缓存(SRAM)
L3高速缓存(SRAM)
主存(DRAM)
本地二级存储(本地磁盘)
远程二级存储(分布式文件系统、web服务器)

一般而言,高速缓存(cache)是一个小而快速的存储设备,它作为存储在更大、也更慢的设备中的数据对象的缓冲区域。使用高速缓存的过程称为缓存(caching)
存储器层次结构的中心思想是,对于每个k,位于k层的更快更小的存储设备作为位于k+1层的更大更慢的存储设备的缓存

总结

基本存储技术包括随机存储器(RAM)、非易失性存储器(ROM)和磁盘。RAM有两种基本类型。静态RAM(SRAM)快一些,但是也贵一些,它既可以用做CPU芯片上的高速缓存,也可以用做芯片下的高速缓存。动态RAM(DRAM)慢一点,也便宜一些,用做主存和图形帧缓冲区。即使是在关电的时候,ROM也能保持它们的信息,可以用来存储固件。旋转磁盘是机械的非易失性存储设备,以每个位很低的成本保存大量的数据,但是其访问时间比DRAM长得多。固态硬盘(SSD)基于非易失性的闪存,对某些应用来说,越来越成为旋转磁盘的具有吸引力的替代品
一般而言,较快的存储技术每个位会更贵,而且容量更小。这些技术的价格和性能属性正在以显著不同的速度变化着。
程序员可以通过编写有良好空间和时间局部性的程序来显著地改进程序的运行时间。利用基于SRAM的高速缓存存储器特别重要。主要从高速缓存取数据的程序能比主要从内存取数据的程序运行得快得多。

参考书籍:深入理解计算机系统

猜你喜欢

转载自blog.csdn.net/weixin_38337616/article/details/88244693