标注*则不太重要 标注!则加强注意
第六章 存储器结构层次
1.存储技术1.1.随机访问存储器(RAM)1.1.1.静态RAM(SRAM)1.1.2.动态RAM(DRAM)1.1.2.1.传统的DRAM*1.1.2.2.增强的DRAM*
1.1.3.非易失性存储器1.1.4.访问主存
1.2.磁盘存储1.2.1.磁盘构造!1.2.2.磁盘操作!1.2.3.逻辑磁盘块1.2.4.访问磁盘
1.3.固态硬盘(SSD)
2.局部性3.存储器层次结构3.1.缓存3.1.1.缓存命中3.1.2.缓存不命中3.1.2.1.缓存不命中的种类
4.高速缓存存储器!4.1.读取与写回4.2.参数对性能的影响
5.高速缓存对程序性能的影响5.1.存储器山5.2.重排循环提高空间局部性
1.存储技术
1.1.随机访问存储器(RAM)
静态RAM(SRAM)比动态RAM(DRAM)快而贵
1.1.1.静态RAM(SRAM)
SRAM用作高速缓存存储器每位6晶体管每个位存储在双稳态存储器单元里,干扰难以不影响其状态
1.1.2.动态RAM(DRAM)
DRAM用作主存及图形系统的帧缓冲区每位1晶体管每个位对应一个电容的充电
1.1.2.1.传统的DRAM*
分为d个超单元,每个有w位超单元被组织成r行c列的阵列,rc=d内存控制器可一次从DRAM传入或传出w位传入行地址i称为RAS请求,传入列地址j称为CAS请求RAS将整行内容复制到内部行缓冲区,CAS取出对应列DRAM芯片在内存模块中排成阵列,对RAS和CAS统一反应并取出
1.1.2.2.增强的DRAM*
快页模式DRAM:对同行内容允许直接读取行缓冲区扩展数据输出DRAM: 快页的加强版,CAS信号更靠近同步DRAM:用外部相同的时钟上升沿取代异步的控制信号双倍数据速率同步DRAM:对同步的加强,用两个时钟沿作为信号视频RAM:思想与快页类似,但输出是对内部缓冲区移位得到,允许对内存并行的读和写
1.1.3.非易失性存储器
ROM,PROM,EEPROM,FlashMemory存储在ROM设备中的程序被称为固件(firmware)
1.1.4.访问主存
总线事务:读事务,写事务读事务:总线接口–地址A–>主存–x-->总线接口–x-->寄存器文件写事务:总线接口–地址A->主存;寄存器文件–y-->主存
1.2.磁盘存储
容量大,访问慢,比DRAM慢10万倍,比SRAM慢100万倍
1.2.1.磁盘构造!
盘片,表面,主轴,磁道,柱面,扇区通常5400~15000 RPM(转每分钟)记录密度:每英寸可放入位数磁道密度:从中心出发半径每英寸磁道数面密度:记录密度与磁道密度的乘积磁盘容量:盘片数x表面数x磁道数x扇区数x字节数磁盘/IO设备容量:1KB = 10
3 byte; 1MB = 10
6 byte; 1GB = 10
9 byteRAM容量:1KiB = 2
10byte; 1MB = 2
20 byte; 1GB = 2
30 byte
1.2.2.磁盘操作!
访问时间:寻道时间,旋转时间,传送时间旋转时间
max = 1/RPM x 60s;旋转时间
avg = 1/RPM x 60s x 0.5传送时间 = 1/RPM x 60s x (1/平均每磁道扇区数)
1.2.3.逻辑磁盘块
磁盘控制器通过编号映射到盘面,磁道,扇区三元组,隐藏磁盘构造的复杂性磁盘控制器必须对磁盘格式化才能在磁盘上存储数据。这包括用标示扇区的信息填写扇区间隙,标示故障柱面并不再使用,预留一组柱面作为备用。由于备用柱面,格式化容量小于最大容量。
1.2.4.访问磁盘
从总线获取地址,读取内容到主存,然后发送中断信号
1.3.固态硬盘(SSD)
由B个块组成,每块有P个页以页为单位读写,只有页所属的整块被擦除后才能写这一页一个块被擦除后,每一个页都可以不需要再进行擦除就写一次读快于写随机写很慢,擦除需要时间,已有数据的块被写时要复制到新块
2.局部性
时间局部性:倾向于反复使用不久前的数据空间局部性:倾向于使用访问数据周围的数据每隔k个元素的访问称为步长为k的引用模式评价一个程序关于取指令的局部性,程序指令存放在内存中,循环体多次执行时,也会具有良好的时间局部性循环体越小,循环迭代次数越多,局部性越好
3.存储器层次结构
3.1.缓存
第k层是第k+1层的缓存数据以块大小为传送单元,相邻层次的块大小确定,但不同层之间可以有区别。离CPU越远,块大小越大
3.1.1.缓存命中
需要k+1层对象d时先在k层中查询,命中则读取d
3.1.2.缓存不命中
需要k+1层对象d时先在k层中查询,第k层中没有对象d从k+1层中取出d,放入k层,k层满时根据替换策略覆盖一个现存的块
3.1.2.1.缓存不命中的种类
冷不命中:k层缓存是空的,暖身之后不会出现冲突不命中:抖动,由于替换策略,两个块交替出现容量不命中:缓存太小,无法处理工作集
4.高速缓存存储器!
4.1.读取与写回
机器存储器地址有m位,其高速缓存S=2
s组,每组E行,每行1个有效位,t=m-(b+s)个标记位,B=2
b字节地址分为标记,组索引,块偏移三个部分直接映射高速缓存和全相联高速缓存是组相联高速缓存的特殊情况全相连高速缓存只适合小容量直写-非写分配 写回-写分配i-cache和d-cache的分开解决了冲突不命中,但是增加了容量不命中
4.2.参数对性能的影响
不命中率:不命中数量/引用数量命中时间,不命中处罚高速缓存增加:命中时间和命中率块大小增加:强化空间局部性,行数减少,减弱时间局部性高相联度:减少抖动,提高成本,增加不命中处罚,不命中处罚低时(高层次高速缓存)用低相联,反之用高相联写策略:直写传送次数多,写回少,越往下走传送时间越长,越可能用写回
5.高速缓存对程序性能的影响
5.1.存储器山
5.2.重排循环提高空间局部性
*详见ICS课本P448