计组复习

大题考点

  • CPI MIPS Speedup
  • Cache & Memory Organization
  • Hard disk
  • 浮点数运算
  • 寻址,指令设计
  • 流水,时序图,加速比,优化
  • 超标量,超流水,冲突,指令发射
  • 微操作,微指令,微指令设计

2. 存储组织

2.1 Cache 存储映射

Cache 以

TagData

形式存储数据,数据段很宽,可以存储主存(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 中寻找到正确的内存块

  1. 地址的寻址长度能覆盖主存的容量,确定地址总长度
  2. 根据 Cache 数据算出 Cache 行数组数
  3. Cache 的一行就是 Memory 的一块,根据这个算出 Memory 有多少块

除了“字”以外的地址位加起来就是这个数

  1. “字”的部分要能覆盖块的字节容量
  2. 如果出现“字(Word)”的描述,那么字的位数就是地址的总长