转发前后差多少拍

运行下面这段程序,填写它打印出来的结果。 STAGES = 5 def one_by_one(n): return n * STAGES def pipelined(n): return n + STAGES - 1

开始练习 →

取数之后马上用,还是得停

运行下面这段程序,填写它打印出来的结果。 STAGES = 5 def one_by_one(n): return n * STAGES def pipelined(n): return n + STAGES - 1

开始练习 →

自己写:算转发能省多少

给冒险处数和每处的停顿拍数,算出「有转发 / 无转发」两种情况的总拍数。

开始练习 →

把不相干的指令插进去

把一条不相干的指令挪到有依赖的两条中间,算出调度前后的冒险数。

开始练习 →

⚠️ 挪错了会算出别的结果

把一条有依赖的指令也挪到前面去。⚠️ 冒险数确实降了,但程序算的东西变了——把两件事都打出来。

开始练习 →

为什么要猜

遇到分支时,流水线不等结果就先猜一个方向往下走。这么做是因为【0】。

开始练习 →

猜错了会怎样

分支猜错之后,CPU 要【0】。

开始练习 →

什么样的分支好猜

分支预测器最容易猜准的是【0】。

开始练习 →

猜错率不同,多花多少拍

运行下面这段程序,填写它打印出来的结果。 STAGES = 5 def one_by_one(n): return n * STAGES def pipelined(n): return n + STAGES - 1

开始练习 →

自己写:一个最简单的预测器

实现「上次怎样这次还怎样」的预测器,数出一串分支结果里猜错了几次。第一次没有历史,算猜错。

开始练习 →