《指令流水线为什么是神》

首先是犯下傲慢之罪的结构相关

后面指令的仗着自己可以先执行,使用阴险的穿兵IF指令夺走了神的指令MEM内存访问,使得出现两个指令同时访问内存的内存的资源矛盾。

然而神是仁慈的,他告诉后面的指令,你只可到此,不可越过,将后面指令延缓一个时钟周期,解决了矛盾。

然而神是慷慨的,他也可以设置两个独立的存储器(指接两个内存)分别存放操作数和指令,以免取指令和取操作数同时进行时互相冲突。(这也太慷慨了)

 

其次是犯下愤怒之罪的数据相关

愤怒的后指令公然对流水线挑衅道:前指令和我和前指令bo5(第5个时钟周期),一把都没输过。

神降下了他的神罚,使得后面指令在前面指令写之前就读到了数据,后指令也因此导致了程序错误,从此一蹶不振。

具体错误类型可以分为RAW、WAR、WAW三种

然而神是仁慈的,他告诉后面的指令,你只可到此,不可越过,将后面指令延缓一个时钟周期,解决了矛盾。

相反神就很谦卑,设计专门电路采用数据旁路技术,在exe阶段就将所需数据送给后面的需要读的指令。神不是不能在后指令读之前写入,只是不想通过太完美的表现让后指令绝望所以故意不用,可笑有些人不理解神的良苦用心,竟然还用这些事来讥讽神,我劝你们好自为之。

 

接着是犯下懒惰之罪的控制相关

控制转移语句自认为占所有指令的1/4就了不起了,自创摆烂执行法,故意不执行神的紧凑指令。在条件判断时用两条路迷惑神的执行方向,使神神力尽失。

在后续的指令流水线设计中,控制转移被神的提前预测判别正面击败,不过,鉴于控制转移指令最终皈依了神的教诲,神应许了他在流水线中的一切。

posted @ 2022-07-29 16:09  srid  阅读(122)  评论(0)    收藏  举报