概述
存储器分类
- 按存储介质区分
- 半导体存储器
- 由半导体器件组成,易失。
- 优点:体积小,功耗低,存取时间短。
- 缺点:电源消失,存储信息丢失
- 磁表面存储器
- 在金属表面或塑料基涂一层表面磁性材料。非易失。
- 光盘存储器
- 激光、磁光材料,非易失
- 半导体存储器
- 按存取方式分类
- RAM 随机存储器
- 可读/写存储器
- 用途:主存,高速缓存存储器
- ROM 只读存储器
- 只能进行读操作,不能对其内容重新写入
- 用途:BIOS,U盘
- 串行访问存储器
- RAM 随机存储器
- 按存取时间和物理地址分类
- 顺序存取存储器
- 直接存取存储器
- 按在计算机种的作用分类
存储器的层次结构
- 缓存——主存:解决CPU和主存速度不匹配的问题
- 辅存——主存:解决存储系统的容量单位
- 图片:
主储存器
概述
-
主存都是由半导体集成电路构成。
-
主存中存储单元地址的分配 (选择填空题)
- 即地址码能够指定的最小存储单位
- 1字长 = 2的n次方字节
- 1byte = 8 bit
- 字长有 存储字长(存储器一个存储单位存二进制码的位数),指令字长,数据字长
- 两种寻址方式:
- 按字寻址:
存储容量*8bit/字长位数(bit) 为最大的地址 故最后的范围是0-最大地址-1
- 按字节寻址:存储容量是多少就为多少。
-
技术指标:
- 存储容量
存储容量 = 存储单元个数 * 存储字长 存储容量 = 存储单元个数 * 存储字长 / 8
- 存储速度
-
存取时间:指启动一次存储操作到完成该操作所需的全部时间。有读出和写入
-
存取周期:指存储器进行连续两次独立的存储器操作所需的最小时间间隔
-
存储带宽:单位时间内存储器存取的信息量。 提高措施:1缩短存取周期2增加存储字长3增加存储体
-
- 存储容量
半导体存储芯片简介
-
结构
- 地址线:单向输入 存储芯片个数
- 数据线:双向输入 存储芯片位数
- 控制线:读写控制线 片选线
-
半导体译码驱动方式 (填空选择题)
- 线选法 地址译码信号只选中同一个字的所有位,结构简单,费器材;适合容量不大的芯片 需要地址选择线为2的n次方
- 重合法 地址分行、列两部分译码,行、列译码线的交叉点即为所选单元。适合容量大的芯片 需要选择线为2n
- 线选法 地址译码信号只选中同一个字的所有位,结构简单,费器材;适合容量不大的芯片 需要地址选择线为2的n次方
随机存取存储器
- 静态RAM (SRAM)
- 特点:存取速度快;集成度低;功耗大
-
图片介绍:
- A 为地址输入端
- IO 为数据端
- cs 片选信号 低电平有效
- we 写允许信号
- vcc 电源端
- gnd 接地端
-
动态RAM DRAM
- 依靠电容存储电荷的原理来寄存信息,电容上的电荷一般只能维持1~2ms,因此需要刷新让所有存储单元恢复一次原状态。
- 刷新 :将原先存储的信息读出,由刷新放大器形成源信息再写入。
-
集中刷新 再规定的一个周期内,对全部存储单元集中一段时间逐行进行刷新,期间停止读写操作
-
分散刷新:对每行存储单元的刷新分布到每个存取周期内完成,将一个周期分为读写和刷新两个部分,各占一半。做到了无死区但结构复杂
-
异步刷新:前两种方式相结合
-
只读存储器
- 一旦注入信息即不能改变
- 掩模ROM 无法改变状态
- PROM 一次性编程只读存储器
- EPROM 可擦除可编程只读存储器 采用紫外光或电擦除方式 通用性好 改写速度慢 次数少
- flash memory 快擦型存储器 性能价格比更好 更高可靠性 集成度高 擦除重写速度快
存储器和CPU的连接 (大题)看书例题和ppt解体思路第10课
- 为什么进行存储器扩展?
- 存储芯片容量是有限的
- 扩展方式
- 首先 : 位 —— 位线 —— 数据线 —— 存储字长 | 字 —— 字线 —— 地址线 —— 存储单元个数
- 位扩展:只在位数方向进行扩展。增加存储字长。
- 方法:
- 在给定的芯片中选择合适的芯片,并确定使用数量;
- 将各存储芯片的地址线、片选线和读写线相应地并联起来;
- 各芯片的数据线单独列出,拼接成要求的数据宽度。
- 字扩展:只在字数方向进行扩展。增加存储单元的数量。
- 字、位扩展:同时扩展,先进行位扩展,再进行字扩展
- 位扩展:只在位数方向进行扩展。增加存储字长。
存储器的校验——汉明码 (只考察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 译码 读写电路
- 分类:
- 高位交叉编址
- 图片:
- 高位地址表示体号,低位地址表示体内地址。程序按体内地址顺序存放,一个存储体存满后,再存如下一个。
- 连续读取N个字符所需时间为NT
- 优点:各存储体并行工作,体内地址连续,便于扩充。
- 低位交叉编址
- 图片:
- 高位地址表示体内地址,低位地址表示体号。程序连续存放在相邻的存储体中。
- 优点:有利于增加存储器带宽,提高访存速度的原因是结合流水线技术,提高带宽
- 缺点:不易扩充
- 设n体低位交叉存储器,存取周期为T,总线传输周期为τ,则连续读取n个字所需的时间是: T+( n-1)τ
- 高位交叉编址
高性能存储芯片
- SDRAM 同步动态随机存储器
- DDR DRAM 双数据传输率同步动态随机存储器
- RDRAM 提高带宽的动态随机存储器
- CDRAM 带缓存的动态随机存储器
高速缓冲存储器
-
出现背景:
- 避免CPU和IO设备争抢访存
- 主存速度永远跟不上CPU的发展
- 指令和数据往往都是连续存放的。
- 部分指令和数据调用频繁造成了访问的局部性
-
cache工作原理
- 为了和Cache映射,将主存和缓存分为若干块
- 主存分为 M为主存块号,B块内地址长度
- 缓存分为 C为缓存块号,B块内地址长度
- 图片:
- 将主存块调入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:字块内地址
-
直接映射
- 实现简单,只需要利用主存地址的某些位直接判断
- 不够灵活,利用率不充分
-
全相联映射
- 允许主存中每一字块映射到Cache中的任何一个位置中。
- 方式灵活,命中率更高,缩小了块冲突率
- 存储映射信息庞大,电路复杂,查询速度慢,成本高
- 在这里面除了b其余都是主存字块标记。
-
组相联映射
- 组间采用直接映射,组内的各块采用全相联映射
- 块冲突率比较低,利用率高,失效率降低
- 实现难度和造价更高
NO.4替换策略问题 知道就行
- 先进先出 FIFO
- 近期最少使用 LRU
- 随机法 R