提高存储器访问层次大概有三种方法
-
采用高速器件
-
采用层次结构 Cache 主存
-
调整主存结构
调整存储结构
单体多字系统
利用程序局部性原理,访问一个块 相邻的若干块都会被拿出来,缺点可能会碰到跳转类指令
多体并行系统
高位是体号,低位时地址因此,CPU给出一次存储访问总是对一块连续的存储单元进行的,在多CPU系统中,不同的CPU访问不同的存储块,达到并行工作。
这种做法可以在不改变存取周期的前提下,提高存储器带宽,因为可以在一个访问周期下,访问多个不同的存储体。适用于单处理器系统
简要说明高位交叉和低位交叉提高访存速度的原因
- 高位交叉各个体分别响应不同请求源的请求,实现多体并行 高位体号 低位地址
- 低位交叉不改变存取周期的情况下增加存储带宽 低位体号 高位地址
低位交叉指令流水的工作过程
Cache的设计
为了保持cache和主存内容的一致性,采用写直达法和写回法两种策略。
为了能加快访问速度,采用映射的方法,这里需要注意算法和
Cache和主存的地址映射
直接映射
指令格式
每个cache可以对应若干个主存但是每个主存只能对应一个cache
映射算法:i = j mod C
例题
全相联映射
指令格式
主存 中的 任一块 可以映射到 缓存 中的 任一块
组相联映射和多路组相联
指令格式
组相联
:
主存中的每一块可以被放置到Cache中
唯一的一个组中的任何一个位置.
组相联是直接映象和全相联的一种折中.
替换算法/写策略