通过阻塞防止冲突。当一条分支指令发射时,阻止所有指令发射,直到该分支指令完成。
在分支指令A
发射后,所有其后的指令都带一个tag A
。在广播时,所有带有tag
的信号都不直接写入存储单元中,而是先写入缓冲区中。直到该分支指令A
的结果确定后,分支结果向所有器件广播,所有器件决定将缓冲区中的内容丢弃或写入。
低地址永远预测跳转,高地址永远预测不跳转
采用历史表的方式作分支预测。
在一个CPU周期内,实现将32位浮点数分割、转换成机器能直接处理的数据段,例如尾数
和阶数
等。
非阻塞 cache 在 cache 缺失时能继续提供 cache 访问服务。为了使指令在 cache 缺失时能继续执行,乱序执行处理器需要非阻塞 cache 的支持。