缓存未命中的危险是什么?

时间:2013-06-01 01:40:49

标签: assembly cpu-architecture mips32 cpu-cache

管道的五个阶段有三种类型的危险: -

1)控制危险: - if / jump

2)数据危险: - RAW(写入后读取),WAR(读取后写入),WAW(写入后写入)

3)结构性危险: - 结构性危险是指两条指令可能同时尝试使用相同的资源(如wiki

缓存未命中的危险类型是什么?

1 个答案:

答案 0 :(得分:3)

将危险视为错误预测 - 假设没有冲突,管道推测性地推进每个周期。在您描述的情况下可能是错误的 - 如果下一阶段来自错误的程序计数器/ inst指针,或者计算源未及时更新,或者某些资源未及时准备好。 现在,在这个分类中通常不考虑缓存未命中,可能是因为它是特定于实现的。你可以对变量延迟执行说同样的话。您没有准备好数据,因此您只是停滞不前,这里没有使用陈旧数据或从错误路径获取虚假代码的实际风险。 请注意,内存访问仍然可以是RAW(在这种情况下,在存储后加载),并且计数为数据危险,就像寄存器绑定的RAW一样。