Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mips 静态预测究竟是如何工作的?什么是延迟槽?_Mips_Cpu Architecture_Branch Prediction - Fatal编程技术网

Mips 静态预测究竟是如何工作的?什么是延迟槽?

Mips 静态预测究竟是如何工作的?什么是延迟槽?,mips,cpu-architecture,branch-prediction,Mips,Cpu Architecture,Branch Prediction,我知道未执行预测总是假设未执行分支,所以PC保持正常工作,除非证明错误,否则执行了分支,所以刷新管道中分支后面的所有指令(假设分支在MEM阶段解决) 但是如果总是采用静态预测呢? 在我的讲稿上写着: 编译器将尝试在每个分支后填充延迟槽 命令和跳转地址命令。以防特殊情况 分支命令它将无法填充其所有延迟槽,然后 它将推不。当然,这个处理器将刷新分支 未执行的命令 能给我一个简单的例子和实际的说明列表吗? 还有什么是延迟槽?延迟插槽和NOP之间有什么区别 ./。如果分支延迟插槽完全隐藏分支延迟,则无需

我知道未执行预测总是假设未执行分支,所以PC保持正常工作,除非证明错误,否则执行了分支,所以刷新管道中分支后面的所有指令(假设分支在MEM阶段解决)

但是如果总是采用静态预测呢? 在我的讲稿上写着:

编译器将尝试在每个分支后填充延迟槽 命令和跳转地址命令。以防特殊情况 分支命令它将无法填充其所有延迟槽,然后 它将推不。当然,这个处理器将刷新分支 未执行的命令

能给我一个简单的例子和实际的说明列表吗?
还有什么是延迟槽?延迟插槽和NOP之间有什么区别

./。如果分支延迟插槽完全隐藏分支延迟,则无需预测@PeterCordes我仍在试图理解延迟槽的概念,所以发生的事情是在分支后插入一个延迟槽,该指令将被执行,无论分支是否被执行?如果执行,则会刷新分支后的指令?无论是否执行分支,始终执行分支后的指令..//。如果分支延迟插槽完全隐藏分支延迟,则无需预测@PeterCordes我仍在试图理解延迟槽的概念,所以发生的事情是在分支后插入一个延迟槽,该指令将被执行,无论分支是否被执行?如果执行该指令,则分支后的指令将被刷新?无论是否执行分支,分支后的指令始终被执行。