【ICS】第六章 存储器层次结构 复习

标注*则不太重要 标注!则加强注意

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 = 103 byte; 1MB = 106 byte; 1GB = 109 byte
  • RAM容量:1KiB = 210byte; 1MB = 220 byte; 1GB = 230 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=2s组,每组E行,每行1个有效位,t=m-(b+s)个标记位,B=2b字节
  • 地址分为标记,组索引,块偏移三个部分
  • 直接映射高速缓存和全相联高速缓存是组相联高速缓存的特殊情况
  • 全相连高速缓存只适合小容量
  • 直写-非写分配 写回-写分配
  • i-cache和d-cache的分开解决了冲突不命中,但是增加了容量不命中

4.2.参数对性能的影响

  • 不命中率:不命中数量/引用数量
  • 命中时间,不命中处罚
  • 高速缓存增加:命中时间和命中率
  • 块大小增加:强化空间局部性,行数减少,减弱时间局部性
  • 高相联度:减少抖动,提高成本,增加不命中处罚,不命中处罚低时(高层次高速缓存)用低相联,反之用高相联
  • 写策略:直写传送次数多,写回少,越往下走传送时间越长,越可能用写回

5.高速缓存对程序性能的影响

5.1.存储器山

存储器山

5.2.重排循环提高空间局部性

*详见ICS课本P448

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值