第四章处理器体系结构,看了蛮久的。内容倒是挺多的,首先这章将汇编指令转化为二进制代码,然后又研究了下Y86命令集下汇编指令的微实现。然后就开始了处理器的实现。处理器的实现,则是首先从SEQ的顺序实现出发,然后讲解了5个环节的控制逻辑的实现。之后则是流水线的实现,流水线的实现无非就是各个状态的转发,但是比较难的是旁路转发。归根到底,整个系统的实现都是基于一开始的指令的微指令实现。最后,则是遇到数据相关、预测分支失败以及ret如何处理的问题。
==这章的习题大部分设计到模拟器的使用,懒得弄实验的部分,而且自己的电脑跑虚拟机实在是吃力,许多题目就过一下就好了。
4.47 ==题意理解错了,是根据C代码写汇编指令;而我却是将代码写完后直接gcc -Og -S bubble.c了,,莫名喜感。
4.53
由于没有数据转发,因此一旦发生了数据相关,则必须等待。
M 加载 ret
E 加载 JXX ret
D 使用 ret
显然会发生 M:加载 E:JXX D:使用 这样的情况。
此时的控制是 D:气泡 F:正常
4.57
E_icode in {mrmovq,popq}(产生加载)&&(( E _destM==d _srcB)||(
…==d _srcA&& e _incode in {OPQ,rrmovq})}
E_incode in {rmmovq,pushq}&&E _srcA==M _dstM: w _valM;
1:valA
把所有指令的M和D阶段的步骤全部列了一遍即可,,
这章太水了,,回头再动手做一下实验。