通常,实现无序执行会带来很多复杂性。这是因为 CPU 必须按顺序执行指令。AMD、ARM 和 Intel 的高性能 CPU 使用大型重新排序缓冲区(和其他结构)跟踪指令,以便它们的结果可以按程序顺序提交。这意味着如果一个程序做了一些愚蠢的事情,比如除以零,这些内核可以准确地显示出哪条指令出错了。而且,它们可以显示 CPU 状态,该状态反映了故障之前所有指令的动作,但之后没有。这意味着您可以修复导致指令错误的任何原因,并恢复执行。Dojo 放弃了这种能力。作为交换,Dojo 可以避免与通过其pipeline跟踪每条指令相关的功率和面积开销,以确保按程序顺序提交结果。