计组复习
大题考点
- CPI MIPS Speedup
- Cache & Memory Organization
- Hard disk
- 浮点数运算
- 寻址,指令设计
- 流水,时序图,加速比,优化
- 超标量,超流水,冲突,指令发射
- 微操作,微指令,微指令设计
2. 存储组织
2.1 Cache 存储映射
Cache 以
Tag | Data |
---|
形式存储数据,数据段很宽,可以存储主存(Memory)中几行的数据
下面所讨论的都是不同映射方式下的地址构成
2.1.1 直接映射
直接映射主存地址为
Tag | 行号 | 字 |
---|
Tag 就是 Cache 的 Tag;
行号是 Cache 的对应行号;
字指代了这一行中要取用 Cache 的哪个分段的数据
寻址时,首先查找对应行号,检查标记,如果命中,那么则根据字来取数据
2.1.2 全相连映射
全相连主存地址构成为
Tag | 字 |
---|
由于存储数据和行号无关,使用 Tag 作为唯一的标记,字用于标记数据段
需要并行电路不断比对 Tag 内容,如果命中了,那么根据字来取对应数据段
2.1.3 组相连映射
组相连映射地址构成如下:
Tag | 组号 | 字 |
---|
Tag 和字同上
组号是指将 Cache的行分组后的对应组号
结合直接映射和全相连映射,将 Cache 的行分为很多的组,先根据组号查找对应组,然后再在组内比对标记。
减少了由于直接映射的抖动问题,又避免了全相连映射的不断寻找导致的性能浪费
抖动问题:由于程序需要不断访问映射到同一行但来自不同块的字,那么就会导致内存块不断载入载出,造成性能浪费
N 路总相连指的就是一个组内有 N 行
2.1.4 相关计算问题
由 Cache 和 Memory 的行数和块数等数据来指明地址构成
这里需要注意,地址不只是用来算 Cache 映射,还要能通过地址在 Memory 中寻找到正确的内存块
- 地址的寻址长度能覆盖主存的容量,确定地址总长度
- 根据 Cache 数据算出 Cache 行数,组数。
- Cache 的一行就是 Memory 的一块,根据这个算出 Memory 有多少块
除了“字”以外的地址位加起来就是这个数
- “字”的部分要能覆盖块的字节容量
- 如果出现“字(Word)”的描述,那么字的位数就是地址的总长