计算机组成原理-存储系统
其他
2020-05-21 08:38:18
阅读次数: 0
存储系统
-
DRAM对地址线采用复用技术,地址线是原先的
21,地址信号分行、列两次传送
-
Cache - 主存系统的效率:
e = 访问
Cache的时间
/ 平均访存时间
-
DRAM按行刷新,不需要选片,所有芯片同时被刷新,一次完整的刷新周期需要一个存储周期
- 多模块存储器
- 单体多字存储器
- 多体并行存储器
- 高位交叉编址
M001...nM1nn+1...2n−1M22nn+2...3n−1M33nn+3...4n−1
- 采用高位交叉编址的存储器仍是顺序存储器
- 高位体号,低位体内地址
- 无法实现局部性原理
- 低位交叉编制
M004...4n−4M115...4n−3M226...4n−2M337...4n−1
- 高位体内地址,低位体号(P117.8)
- 所以确定比如
8005所在的存储模块的时候看的是低位
- 可以采用流水线技术
- 为了实现流水线技术,要保证存储器交叉模块数
m≥T/r,
r是总线传送周期,&T&是模块存取一个字的存取周期
- 连续存取
m个字所需时间:
t1=T+(m−1)r
- 模块序号 = 访存地址(8005) %
m(P117.7)
- 判断是否访存冲突:给定的访存地址在连续
m次访问中是否在同一存储模块内(P117.7)
- 可以实现局部性原理
- 一个存储周期能提供一行数据,但是即使本行只有1个数据,那也需要一个周期
- 比如
0X804001A,最低两位是
10,从编号为
2的存储体开始存储,占用三个行,需要三个存储周期(P117.8)
M0×...×26...M1×...×37...M2×...04×...M3×...15×...
-
CPU与
Cache之间的数据交换以机器字长为单位;
Cache与主存之间的数据交换以
Cache块为单位
-
Cache与主存的映射
- 数据存放到
Cache的位置
- 直接映射:主存数据只能存放到
Cache内的固定位置
- 主存标记字块 |
Cache地址字块 | 字块内地址
- 主存标记位 |
Cache块号 | 块内地址
- 全相联映射:主存数据可存入
Cache的任何位置
- 组相联映射:主存数据可存入
Cache的固定某块内的任意位置
-
Cache写策略:写回的是主存
- 写命中
- 全写法
- 写命中时,同时写入
Cache和主存
- 某块需要替换,直接覆盖,不用写回
- 格式:替换控制位(
×) - 有效位(1)
- 写回法
- 写命中时只修改
Cache内容,不立即写回主存
- 某块需要替换,写回主存
- 格式:替换控制位(
×) - 脏位(1) - 有效位(1)
- 关于附加位
- 替换控制位:如果是
LRU替换算法,那么取决于
Cache的组相连路数。
2k路组相连需要
k位替换控制位(
LRU位)
- 脏位:修改位(
1位),为
1需要写回内存
- 有效位
- 写不命中
- 写分配法
- 加载主存中的块到
Cache,然后更新此
Cache块
- 非写分配法
- 只写回主存,不调入
Cache块
- 虚拟地址 ->
TLB地址:
- 虚拟地址 = 虚页号 + 页内偏移
- 虚页号 =
TLB标记 +
TLB组索引
-
TLB、
Cache、
Pages共存的系统中的访问顺序,看是否命中
-
CPU给出虚拟地址(虚页号 + 页内地址偏移)
- 虚页号作为
Tag到
TLB中查找内容
- 如果找到
- 得到
TLB中的实页号,再拼接页内地址偏移,得到实际物理地址(主存标记字块 |
Cache块号 | 块内地址)
- 以直接映射
Cache为例,根据得到的物理地址(主存标记字块 |
Cache块号 | 块内地址),对其进行解析,得到
Cache块号,进入块内查看数据,如果有效位为
1,则采用数据,否则说明未命中
- 如果没找到
- 没找到说明发生了
TLB缺失,转到
Pages中查找虚页号匹配项,得到实页号,拼接上页内偏移地址得到实际物理地址
- 根据得到的物理地址(主存标记字块 |
Cache块号 | 块内地址),到对应
Cache块内寻找,看是否命中,未命中就调页
- 寻址过程
- 逻辑地址->
TLB成功->物理地址->
DataCache成功->
Value
- 逻辑地址->
TLB成功->物理地址->
DataCache失败->访问主存->
Value
- 逻辑地址->
TLB失败->Pages成功->物理地址->
DataCache成功->
Value
- 逻辑地址->
TLB失败->Pages成功->物理地址->
DataCache失败->访问主存->
Value
- 逻辑地址->
TLB失败->Pages失败->缺页中断
- 缺页中断
- 内部中断:在一条指令的执行期间产生
- 中断后重新执行指令
- 重新执行:就和什么都没有发生过一样,重做一遍
- 比如缺页中断要
20ms,访存要
1μs,发生了缺页中断:
- 时间总和:(
1μs+20ms) + (
1μs+1μs)
- (查找
Pages + 中断) + (再次以不缺页执行:查找
Pages + 访问主存)
- 操作系统的可能行为
- 修改页表(置换页)
- 磁盘
I/O
- 分配页框(分配内存)
- 虚拟存储器
- 最大容量与主存和外存容量无关,只与地址线位数有关
- 扩充内存方法:调入调出
- 调入调出基本方法:覆盖与交换
- 外存空间
- 工作集与驻留集
- 工作集:去重后的窗口
- 工作集窗口大小为
Δ,时间为
t
- 当前窗口内内容为
2,3,5,3,2
- 工作集为
2,3,5
- 驻留集:某进程分配到的物理页框集合
- 局部与全局:
- 局部:针对某一进程的操作不影响其他进程
- 全局:一个进程得到的物理块多了,会影响其他进程
- 分配策略:
- 固定分配,局部置换
- 可变分配,全局置换
- 可变分配,局部置换
- 1号页面被换出
x号物理块(页框),则2号换入的页面仍在
x号物理块(页框)
转载自blog.csdn.net/weixin_44587168/article/details/105966515