第四章存储器

概述

存储器分类
  • 按存储介质区分
    1. 半导体存储器
      • 由半导体器件组成,易失。
      • 优点:体积小,功耗低,存取时间短。
      • 缺点:电源消失,存储信息丢失
    2. 磁表面存储器
      • 在金属表面或塑料基涂一层表面磁性材料。非易失。
    3. 光盘存储器
      • 激光、磁光材料,非易失
  • 按存取方式分类
    1. RAM 随机存储器
      • 可读/写存储器
      • 用途:主存,高速缓存存储器
    2. ROM 只读存储器
      • 只能进行读操作,不能对其内容重新写入
      • 用途:BIOS,U盘
    3. 串行访问存储器
  • 按存取时间和物理地址分类
    1. 顺序存取存储器
    2. 直接存取存储器
  • 按在计算机种的作用分类
    image
存储器的层次结构
  • 缓存——主存:解决CPU和主存速度不匹配的问题
  • 辅存——主存:解决存储系统的容量单位
  • 图片:
    image

主储存器

概述
  • 主存都是由半导体集成电路构成。

  • 主存中存储单元地址的分配 (选择填空题)

    • 即地址码能够指定的最小存储单位
    • 1字长 = 2的n次方字节
    • 1byte = 8 bit
    • 字长有 存储字长(存储器一个存储单位存二进制码的位数),指令字长,数据字长
    • 两种寻址方式:
      • 按字寻址:
      存储容量*8bit/字长位数(bit) 为最大的地址  故最后的范围是0-最大地址-1
      
      • 按字节寻址:存储容量是多少就为多少。
  • 技术指标:

    • 存储容量
      存储容量 = 存储单元个数 * 存储字长
      
      存储容量 = 存储单元个数 * 存储字长 / 8
      
    • 存储速度
      • 存取时间:指启动一次存储操作到完成该操作所需的全部时间。有读出和写入

      • 存取周期:指存储器进行连续两次独立的存储器操作所需的最小时间间隔

      • 存储带宽:单位时间内存储器存取的信息量。 提高措施:1缩短存取周期2增加存储字长3增加存储体

半导体存储芯片简介
  • 结构
    image

    • 地址线:单向输入 存储芯片个数
    • 数据线:双向输入 存储芯片位数
    • 控制线:读写控制线 片选线
  • 半导体译码驱动方式 (填空选择题)

    • 线选法 地址译码信号只选中同一个字的所有位,结构简单,费器材;适合容量不大的芯片 需要地址选择线为2的n次方
      image
    • 重合法 地址分行、列两部分译码,行、列译码线的交叉点即为所选单元。适合容量大的芯片 需要选择线为2n
      image
随机存取存储器
  • 静态RAM (SRAM)
    • 特点:存取速度快;集成度低;功耗大

image

  • 图片介绍:

    • A 为地址输入端
    • IO 为数据端
    • cs 片选信号 低电平有效
    • we 写允许信号
    • vcc 电源端
    • gnd 接地端
  • 动态RAM DRAM

    • 依靠电容存储电荷的原理来寄存信息,电容上的电荷一般只能维持1~2ms,因此需要刷新让所有存储单元恢复一次原状态。
    • 刷新 :将原先存储的信息读出,由刷新放大器形成源信息再写入。
      • 集中刷新 再规定的一个周期内,对全部存储单元集中一段时间逐行进行刷新,期间停止读写操作

      • image

      • 分散刷新:对每行存储单元的刷新分布到每个存取周期内完成,将一个周期分为读写和刷新两个部分,各占一半。做到了无死区但结构复杂

      • image

      • 异步刷新:前两种方式相结合

      • image

只读存储器
  • 一旦注入信息即不能改变
  • 掩模ROM 无法改变状态
  • PROM 一次性编程只读存储器
  • EPROM 可擦除可编程只读存储器 采用紫外光或电擦除方式 通用性好 改写速度慢 次数少
  • flash memory 快擦型存储器 性能价格比更好 更高可靠性 集成度高 擦除重写速度快
存储器和CPU的连接 (大题)看书例题和ppt解体思路第10课
  • 为什么进行存储器扩展?
    • 存储芯片容量是有限的
  • 扩展方式
  • 首先 : 位 —— 位线 —— 数据线 —— 存储字长 | 字 —— 字线 —— 地址线 —— 存储单元个数
    • 位扩展:只在位数方向进行扩展。增加存储字长。
      • 方法:
      1. 在给定的芯片中选择合适的芯片,并确定使用数量;
      2. 将各存储芯片的地址线、片选线和读写线相应地并联起来;
      3. 各芯片的数据线单独列出,拼接成要求的数据宽度。
    • 字扩展:只在字数方向进行扩展。增加存储单元的数量。
    • 字、位扩展:同时扩展,先进行位扩展,再进行字扩展
存储器的校验——汉明码 (只考察7位)
  • 最小距离:指再一种编码系统中,任意两组合法代码之间的最少二进制位数的差异
L-1=D+C 且 D>=C

L :最小距离 D :检测错误的位数 C:纠正错误的位数

检测 n位二进制代码,要添加k位检测为使其具有纠错能力,组成n+k位代码

2^k = n + k + 1

一般只考察7位汉明码故:
设 汉明码为: C_1 C_2 B_4 C_4 B_3 B_2 B_1 (其中C代表汉明码 B代表原始信息 分别占1 2 3 4 5 6 7位)

C_1 = 3 \bigoplus 5 \bigoplus 7

C_2 = 3 \bigoplus 6 \bigoplus 7

C_3 = 5 \bigoplus 6 \bigoplus 7

若已知汉明码还可以检验收到的信息是否出错

P_1 = 1 \bigoplus 3 \bigoplus 5 \bigoplus 7

P_2 = 2 \bigoplus 3 \bigoplus 6 \bigoplus 7

P_4 = 4 \bigoplus 5 \bigoplus 6 \bigoplus 7

最终P_4P_2P_1组成的十进制数位上出错
提高访存速度措施
  • 找高速元件
  • 采用层次结构
  • 调整主存结构
单体多字系统
  • 一次读取4个指令字,每个字有W位。
  • 优点:增加存储器的带宽,提高访存速度
  • 缺点:遇到转移指令、操作数不能连续存放、只需要
    单字长操作,效率不高(因为如果取不到4位会进行等待;其次若指令不连续就会不在一个周期内完成)
多体并行系统
  • 多个存储模块
  • 容量和存储速度相同
  • 各存储模块有独立AR DR 译码 读写电路
  • 分类:
    • 高位交叉编址
      • 图片:image
      • 高位地址表示体号,低位地址表示体内地址。程序按体内地址顺序存放,一个存储体存满后,再存如下一个。
      • 连续读取N个字符所需时间为NT
      • 优点:各存储体并行工作,体内地址连续,便于扩充。
    • 低位交叉编址
      • 图片:image
      • 高位地址表示体内地址,低位地址表示体号。程序连续存放在相邻的存储体中。
      • 优点:有利于增加存储器带宽,提高访存速度的原因是结合流水线技术,提高带宽
      • 缺点:不易扩充
      • 设n体低位交叉存储器,存取周期为T,总线传输周期为τ,则连续读取n个字所需的时间是: T+( n-1)τ
高性能存储芯片
  • SDRAM 同步动态随机存储器
  • DDR DRAM 双数据传输率同步动态随机存储器
  • RDRAM 提高带宽的动态随机存储器
  • CDRAM 带缓存的动态随机存储器
高速缓冲存储器
  • 出现背景:

    • 避免CPU和IO设备争抢访存
    • 主存速度永远跟不上CPU的发展
    • 指令和数据往往都是连续存放的。
    • 部分指令和数据调用频繁造成了访问的局部性
  • cache工作原理

    • 为了和Cache映射,将主存和缓存分为若干块
    • 主存分为 M为主存块号,B块内地址长度
    • 缓存分为 C为缓存块号,B块内地址长度
    • 图片:image
    • 将主存块调入Cache的任务全由机器硬件自动完成
NO.1 命中问题

h = \frac {N_c} {N_c + N_m}

N_c为访问Cache总命中次数,N_m访问主存总次数 h 命中率

t_a = h*t_c + (1-h)*t_m

t_c代表访问缓存时间 t_m代表未命中访问主存的时间 t_a代表平均访问时间

e = \frac {t_c}{t_a} *100\%

e代表访问效率
NO.2读写问题 会计算
  • 写直达法:写操作时数据既写入Cache又写入主存

    • 写操作时间就是访问主存的时间,读操作时不涉及对主存的写操作,更新策略比较容易实现,但是速度慢
  • 写回法:写操作时只把数据写入 Cache 而不写入主存。当 Cache 数据被替换出去时才全部一次写回主存,需标志位

    • 写操作时间就是访问 Cache 的时间,速度快。读操作 Cache 失效时发生数据替换时,被替换的块需写回主存,增加了Cache 的复杂性
  • cache的改进方案:

    • 单一缓存和两级缓存
      • 片内缓存:在CPU内部的缓存
      • 片外缓存:在CPU外部
    • 统一缓存和分离缓存
      • 指令和数据放在两个缓存中
NO.3主存地址映射问题 会设计主存地址格式
  • 核心是t、m、c的计算。
m = t + c

m:主存字块标记

c:Cache字块标记

b:字块内地址
  • 直接映射
    image

    • 实现简单,只需要利用主存地址的某些位直接判断
    • 不够灵活,利用率不充分
  • 全相联映射
    image

    • 允许主存中每一字块映射到Cache中的任何一个位置中。
    • 方式灵活,命中率更高,缩小了块冲突率
    • 存储映射信息庞大,电路复杂,查询速度慢,成本高
    • 在这里面除了b其余都是主存字块标记。
  • 组相联映射
    image

    • 组间采用直接映射,组内的各块采用全相联映射
    • 块冲突率比较低,利用率高,失效率降低
    • 实现难度和造价更高
NO.4替换策略问题 知道就行
  • 先进先出 FIFO
  • 近期最少使用 LRU
  • 随机法 R
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值