408王道计算机组成原理强化——中央处理器及大题解构(上)

简介: 408王道计算机组成原理强化——中央处理器及大题解构

1.指令的实现逻辑d94ccd7a62764dacaf09d0b2be0c776c.png

1.取指令

①根据PC取指令到IR:(PC)→MAR,M(MAR)→ MDR,MDR→ IR

②PC + "1" :PC自增"1"的操作不能自己实现,需要给某部件施加控制信号实现

2.执行

2.硬件的控制信号68ab53eab628426492c80bf277809757.png

1.通过三态门实现控制数据的进出(xxxint,xxxout) :三态门接受1bit的信号控制来控制开关

2.让某个部件实现某种具体的操作xxxop

3.实线表示数据信号;虚线表示控制信号

3.常见硬件

3.1.操作元件

1.三态门:

①三态门的数据流向:从平头流入,尖头流出

②三态门的控制信号(op,虚线)为1bitd0f88b464af3418ea8394fc7337a958a.png

2.加法器:只能实现加/减

①通常形状和算术逻辑单元(ALU)形状一致:两种形态

②两个输入,一个输出

③加法器的控制信号(sub,减1加0,1bit)不会影响它的输出,但会影响标志位的生成(CF,最高位进位和sub异或得到,对有符号数无效,对无符号数有效,CF = 1 即发生溢出)

④可以用来实现PC+12a5526d838384e7383a6236776f8d49e.png

3.算术逻辑单元(ALU):能实现多种算数运算(加/减/乘/除),还能实现逻辑运算(与或非)

①ALU的控制信号位数根据其能支持的运算种类决定(nbit)

②可以用来实现PC+1,相对寻址(JMP指令,即PC + OFFSET)

4.多路选择器(MUX):

多个输入,一个输出

②通过对多路选择器施加控制信号,控制哪条输入的数据通过多路选择器输出:控制信号的位数取决于输入的个数6998825e04794bd297dd35cd5234296c.png

5.译码器:

①一个输入,多个输出(刚好和MUX相反)

②控制信号0bit:数据的输出端口由输入决定,通常不需要额外的控制信号

898e6fe8d21a439892b7f283187c2ed9.png

3.2.寄存器

1.普通寄存器:一定会有控制信号控制读/写(可能分开,2bit;可能合并,1bit)

2.暂存寄存器:单总线结构下,总线只能有一个输入,但是ALU需要有两个数据,故需要通过先把一个数据放入暂存寄存器中,然后以一个数据从总线输入,一个数据从暂存寄存器输入的方式实现ALU运算

3.通用寄存器组:需要有控制信号用于选择是哪个通用寄存器

4.带有移位功能的寄存器:每左移一位,真值 * 2;每右移一位,真值 / 2

5.带自增功能的寄存器:PC寄存器可以通过自增功能自动实现PC + "1"

365edb03ae2142d1ba3eaa16099cfc9c.png

4和5这种带有特殊功能的寄存器需要有控制信号(至少1bit,支持的功能越多,控制信号的位数也就越多,需要保留一种状态表示什么都不做,即直送)控制其是否进行此功能:例如PC,当给它施加的op = 1时,即自增(PC++ );op = 0时,即不自增

6.带有其他功能的寄存器:取反、移位等等

数据产生变化的地方除了操作元件外,寄存器本身也可能支持对数据进行某种简单处理

4.中断ce290fccdfa24650ae28959a003bd877.png

5.数据通路

除了控制器之外的所有用于实现指令功能的部件

6.五段式指令流水线

①数据冒险:前一条指令未写入,后一条指令就读出(后一条指令需要基于前一条指令的结果时)

(1)前面的指令:写寄存器发生在第五个段(WB)

(2)后面的指令:读(与前面指令相同的)寄存器发生在第二个段(ID)

(3)若后面的指令是前面指令的相邻三条指令之一(即后面的指令是前面的指令后的第一条、第二条、第三条指令),则会发生数据冒险;若后面的指令不是前面指令的相邻三条指令之一(即后面的指令至少是前面指令后的第四条指令),则不会发生数据冒险

(4)分析思路:一条一条指令从前往后分析,如果一条指令写了某个寄存器,则观察与之相邻的三条指令中,是否有哪一条指令读取同一寄存器

236a4459a50f436e8ec6994b0d777c91.png

I1写入S2,I3和I4读出S2,且两者都是I1相邻的三条指令,故I1与I3,I1与I4数据冒险

I2写入S3,I3读出S3,I2是I3相邻的三条指令之一,故I2和I3数据冒险

I2只会改变S3的值,而I4中并未使用S3,故I2和I4不会数据冒险

I3写入S2,I4读出S2,I4是I2相邻的三条指令之一,故I3和I4数据冒险

②控制冒险:在上一条指令的IF阶段完成后(取值阶段),PC会自动实现+ "1",即会指向下一条相邻指令;但当前执行的指令如果会改变PC的值,且下一条指令的IF在上一条指令的EX前进行,则会发生控制冒险;

有条件转移(M,第四个段改变PC):EX(第三个阶段)进行条件是否满足的判断;M(第四个阶段)若条件满足则改变PC的值,不满足则不改变PC的值(此时也不会发生控制冒险);第五个段为空段(什么事都不做);故停三个周期,再取下一条指令,就不会发生控制冒险

无条件转移(EX,第三个段改变PC)(包括call和ret):在EX(第三个阶段)就写回PC;M(第四个阶段)和WB(第五个阶段)为空段(什么事都不做);故停两个周期,再取下一条指令,就不会发生控制冒fb10bbe59bf44217bc662b6f5ff926b5.png

③数据相关导致指令流水线阻塞:该指令使用了前面某条指令的数据写入

④理想情况:一条接一条往后执行

925ec6c393be4081978fd840054f4daf.png

⑤为了保证能指令的每个阶段能在一个机器周期内完成,数据只能从寄存器中取,并且只能写回寄存器(采用LOAD、STORE指令访存)

⑥IF(取指令):根据PC的地址从指令CACHE中取出该指令,并放入指令寄存器IR中

ID(译码/读寄存器):根据IR中从寄存器组中取出相应的操作数,并放入A和B中;若有一个数据的寻址方式位立即寻址,即指令中包含立即数,则该立即数放入IMM中

EX(执行/计算地址):将A和B/IMM中的数据作为ALU输入的两端,经过ALU计算后,将结果输出到EX锁存器中

MEM(访存):将EX锁存器中的内容写回DATA CACHE中;计算类指令ADD在MEM阶段不需要做任何事

写回(WB):将结果写回寄存器组

⑦在上一条指令执行完某个阶段前,下一条指令不能进入该阶段:例如上一条指令正卡在ID阶段,则就算下一条指令已经执行完IF阶段,也不能进入ID阶段,原因是若下一条指令进入则会发生数据覆盖3b00e01f68a34d03baa88d05bb5c0d3d.png

6e749c3f138449c1982fa7574a36d3ec.png

相关文章
|
算法 网络虚拟化 内存技术
408王道计算机组成原理强化——存储系统大题
408王道计算机组成原理强化——存储系统大题(下)
2115 2
408王道计算机组成原理强化——存储系统大题
408王道计算机组成原理强化——输入输出系统大题(I/O)
408王道计算机组成原理强化——输入输出系统大题(I/O)
372 1
408王道计算机组成原理强化——输入输出系统大题(I/O)
|
5月前
|
存储 知识图谱
【计算机组成原理】指令系统&考研真题详解之拓展操作码!
也就是说 “其中三地址指令29”条这句话,完全可以翻译成“三地址这种类型的指令一共能有29种不同的可能性” 这样说就清晰多 因为这就意味着 我们需要用若干个字节 来表示这29种不同的可能性 然后又已知每一个字节位能表示的可能性是2种(0/1),那么我们想有多少个字节可以表示29种不同的可能呢?最少5种 (因为2的4次方=16<29),2^5=32>29,也就是说有32-29=3种可能性是不在三地址指令这种类型的指令集里面的,所以这3 种余出来的可能性要被利用 就在下一种 “二地址指令集”中利用到
59 0
|
5月前
|
存储
第 1 章 计算机系统概论
第 1 章 计算机系统概论
|
存储 Java Unix
程序员必知必会之计算机系统概论
程序员必知必会之计算机系统概论
97 0
|
人工智能
408王道计算机组成原理强化——中央处理器及大题解构(下)
408王道计算机组成原理强化——中央处理器及大题解构
819 1
408王道计算机组成原理强化——中央处理器及大题解构(下)
|
编译器
408王道计算机组成原理强化——指令系统及大题解构(上)
408王道计算机组成原理强化——指令系统及大题解构
254 1
408王道计算机组成原理强化——指令系统及大题解构(上)
|
存储 程序员
408王道计算机组成原理强化——指令系统及大题解构(下)
408王道计算机组成原理强化——指令系统及大题解构
278 1
408王道计算机组成原理强化——指令系统及大题解构(下)
|
存储 内存技术
408王道计算机组成原理强化——存储系统大题(上)
408王道计算机组成原理强化——存储系统大题
903 2
408王道计算机组成原理强化——存储系统大题(上)
408王道计算机组成原理强化——数据的运算及大题(下)
408王道计算机组成原理强化——数据的运算及大题
468 1
408王道计算机组成原理强化——数据的运算及大题(下)