深入理解计算机系统之存储系统

存储器的层次结构

存储器系统是一个具有不同容量、成本和访问时间的存储设备的层次结构,其成本与层次结构最底层的便宜的存储设备相当,接近于最高层的存储设备的高速率。

随机访问存储器分为静态和动态两类。静态存储器(SRAM)用来作为高速缓存存储器。动态存储器(DRAM)用来作为主存和图形系统的帧缓冲区。SRAM的每个单元是有一个六晶体管电路(双稳态存储单元)来实现的,可以无限期的保持在两个不同的电压(0和1)配置,抗干扰能力强。DRAM通过对电容的充放电表示每一位的存储,DRAM单元在很短的时间内会是去电荷,所以要不断的充电刷新,且对噪声十分敏感,当电压被扰乱后就不会恢复了。SRAM比DRAM存取速度快,但是集成度低,成本高,功耗大。

随机访问存储器属于易失性存储器,有一类非易失性存储器(ROM),在断电后仍然能保存它们的信息。以能重复编程的次数和它们重复编程的机制来划分:PROM(可编程ROM)只能被编程一次。可擦写可编程ROM:EPROM光可擦除;EEPROM电子可擦除。flash(闪存)基于EPROM,是一种重要的存储技术。存储在ROM中的程序的称为固件,当计算机启动之后,会先运行ROM中的固件。


为什么有不同的存储结构:

1.CPU速度的提高,使CPU与主存之间的传输速度差别拉大,为了弥补CPU与存储设备的存取速度差别,同时降低存储器成本,设计了存储器的层次结构,使其成本与便宜的底层的存储设备相当,速度接近于昂贵的最高层的存储设备。

2.程序往往都有展现出局部性,利用局部性的特点设计的存储器层次结构,缓存经常运行的指令和数据。


存储器层次结构

L0:寄存器

L1:L1高速缓存,分icache和dcache。

L2:L2高速缓存

L3:L3高速缓存

L4:主存

L5:本地二级存储(本地磁盘)

L6:远程二级存储(分布式文件系统、web服务器)


高速缓冲存储器cache

数据总是以快大小为传送单元,相邻层次之间的块大小是固定的,其他层次之间有不同的块大小。

缓存管理:编译器管理寄存器文件,L1/L2/L3的缓存由内资在缓存中的硬件逻辑来管理,虚拟存储器系统中,DRAM作为存储在磁盘上的数据块的缓存,由操作系统和地址翻译硬件MMU来管理。

高速缓存地址和数据的映射方式分为直接映射高速缓存、组相联高速缓存、全相联高速缓存。高速缓存通过组选择和行匹配确定一个请求是否命中,m位的地址被解释成t位标记,s位组索引和b为块偏移。组索引确定地址映射在高速缓存的哪一组中,在确定了组之后,通过有效位的判断和标记的匹配,确定数据存在哪一行中。块偏移确定数据的在高速缓存块中的起始地址,这一步叫字选择。

直接映射告诉缓存每组只有一行,全相联高速缓存只有一组,组相联高速缓存是两者的折中。


高速缓存参数的性能影响

高速缓存大小:较大的高速缓存能提高命中率,但会增加命中时间(包括组选择,行确认和字选择)。高速缓存大小的性能影响对L1很重要,L1的命中时间要很短才能匹配CPU的速度。

块大小的影响:较大的块能利用程序的空间局部性提高命中率,但是不利于时间局部性好的程序,同时较大块的数据传送时间也很大,不命中处罚也就大。现代系统的高速缓存快大小为32-64字节。

相联度的影响:较高的相联度降低了冲突不命中出现抖动的可能性,但是会造成较高的成本,因为需要更多的标记位和额外的LRU位和额外的控制逻辑。因为复杂性增加了,命中时间和不命中处罚也增加了。


虚拟存储器

你可能感兴趣的:(读书笔记)