计算机组成原理:3存储系统-学习笔记

3.0 易错点

  • 虚拟存储中主存和辅存的数据调动需要操作系统和硬件共同完成
  • DRAM密度比SRAM高,集成度也比SRAM高
  • 支持 随机存取 的不一定是 随机存取存储器,ROM通常也支持随机存取
  • DRAM 刷新占用一个存储周期(一次访存)
  • 提高刷新存储器的带宽方式:采用DRAM或SRAM(如果需求空间小);采用多体交叉存储结构;内部总线宽度提升;用双端口存储器将刷新与更新端口分开
  • DRAM中存取周期对应于一行,所以计算刷新时间则乘以行数
  • MAR位数由设计的主存地址空间大小决定,不受主存储器大小影响
  • 减少DRAM刷新开销应减少行数

3.1 存储器概述

分类
  • 按作用或层次分类
    • 主存储器:内存
    • 辅助存储器:外存
    • 高速缓冲存储器:缓存
  • 按介质分类
    • 磁表面存储器
    • 磁心存储器
    • 半导体存储器
    • 光存储器
  • 按存取方式分类
    • 随机存储器 RAM
    • 只读存储器 ROM
    • 串行访问存储器
      • 顺序存取存储器(磁带)
      • 直接存取存储器(磁盘)
        • 介于顺序和随机之间
  • 按信息保存性分类
    • 易失性存储器
    • 非易失性存储器
性能指标
  • 存储容量
  • 单位成本
  • 存储速度
    • 存取时间:启动至完成操作的时间
    • 存取周期:两次操作之间需要的最短时间,可能会相比于存取时间再多一个恢复时间
    • 主存带宽:传输速率

3.2 存储器的层次化结构

多级存储器

3.3 半导体随机存储器

DRAM和SRAM
  • SRAM (Static RAM)
    • 六晶体管MOS
  • DRAM(Dynamic RAM)
    • 电容
    • 刷新(2ms丢失)
      • 刷新方式
        • 集中刷新
        • 分散刷新
        • 异步刷新
      • 对CPU透明
  • 存储器的读写周期
    • RAM读时间($t_A$)
      • 从给出有效地址到所选内容稳定出现的读时间 $t_A$ 。期间地址信号和 $\overline{CS}$ 需保持稳定
    • 读周期(t_{RC})
      • 两次连续读操作的必要间隔时间,大于读时间
  • RAM 的写周期
ROM
  • 特性
    • 通常结构简单,存储密度通常比可读可写存储器高
    • 支持随机存写
  • 分类
    • MROM(Mask ROM)
    • PROM(Programmable ROM)
    • EPROM(Erasable Programmable ROM)
    • Flash Memory
    • SSD(Solid State Drives)
主存的组成
  • 编址方式
    • 按字
    • 按字节(通常方式)
  • 容量
    • 地址线数量 $N_{AD}$ 与数据线数量 $N_D$ 共同决定芯片容量:2^{N_{AD}}*N_D
  • 引脚
    • 数据线
    • 地址线
    • 片选 CS
      • 或 行选通+列选通 (在地址复用的情况下)
    • 写使能 $\topline{WE}
    • 读使能 RD

3.4 主存储器与 CPU 的连接

连接方式

  • 数据总线
    • 位数与频率正比于数据传输率
  • 地址总线
    • 决定最大寻址空间
  • 控制总线
    • 读/写

主存容量扩展

  • 位扩展法
    • 同一个地址,但代表不同位
  • 字扩展法
    • 由片选信号区分各地址范围
  • 字位同时扩展法

存储芯片的地址分配和片选

  • CPU 访问
    • 首先选择芯片,即片选
    • 然后选择相应的存储单元,即字选
  • 线选法
    • 优点
      • 不需要译码器
    • 缺点
      • 地址不连续
  • 译码片选法

存储器与CPU的连接

  • 合理选择存储芯片
  • 地址线的连接
  • 数据线的连接
  • 读写命令线的连接
  • 片选线的连接

3.5 双端口 RAM 和多模块存储器

双端口 RAM

  • 有左右两个独立的端口,允许两个独立的控制器同时异步访问存储单元,当两个端口的地址不同时,不会发生冲突

多模块存储器

  • 单体多字存储器
    • 一次性读出连续的多个字
  • 多体并行存储器
    • 高位交叉编址
      • 仅仅扩展了字,但还是串行存取
    • 低位交叉编址
      • 流水线存取,提高读取效率

3.6 高速缓冲存储器

程序访问的局部性原理

Cache 基本工作原理

  • 块:若干字节组层
  • 命中率

Cache 和主存的映射方式

  • 直接映射
    • 主存中的每一块只能装入 Cache 中的唯一位置
    • 可以直接取余
  • 全相联映射
    • 通常需要按内容寻址
  • 组间相联映射
    • 组间采取直接映射,组内采取全相联映射

Cache 中主存块的替换算法

  • 针对于全相联映射和组相联映射
  • 常用算法
    • RAND 随机算法
    • FIFO 先进先出算法
    • LRU 最近最少使用算法

Cache 写策略

  • 命中
    • 全写法
      • 可配合写缓冲
    • 写回法
      • 每个 Cahce 块需要设置一个脏位标志
  • 失效
    • 写分配法
    • 非写分配法

3.7 虚拟存储器

基本概念

  • 将主存与辅存统一编址
  • 编程允许涉及的地址为虚地址或逻辑地址

页(Page)式虚拟存储器

  • 以页为基本单位
  • 名词
    • 实页:主存中的页
    • 虚页:不在主存中的页
    • 页表:实页号和虚页号的对照关系
      • 带有效位、脏位、引用位、物理或磁盘地址

快表(TLB:Translation lookaside buffer)

  • 将主存中的部分页表存于Cache中

段式存储器

  • 根据程序实际需要长度进行记录

段页式虚拟存储器

  • 用以页为最小单位的段
  • 优点
    • 便于管理,不易浪费
  • 缺点
    • 需要两次查表

Leave a Comment