计组笔记:第六章-中央处理器(CPU)

xeonds

2023-06-18 01:19:12

6.1 CPU功能结构

如上图,是一个简单的CPU理想结构。CPU的地址寄存器MAR的位数,是地址空间大小需要使用的位数。例如,寻址空间是64MB,则MAR的位数至少是\(64MB=2^5\times2^{20}=2^{26}\)

6.1.2.指令周期

处理一条指令的过程,由CPU完成的操作序列构成一个指令周期。

这三个统称CPU周期或机器周期。

6.1.3.微操作

  1. 时序信号的产生

下面是CPU的时序信号

可以用计数器74163来产生周期信号。不过会有竞争冒险问题。还可以用移位寄存器74199来实现,没有竞争冒险问题,但是状态利用率低。

再将它产生的信号通入另一个计数器,就能通过节拍/指令周期信号得到一个CPU周期信号。

  1. 什么是微操作

就是CU(见最开始的图)产生的控制信号。若干条微操作的组合,完成了一条条的机器汇编指令。

例如指令\(ADD\text{ }R_1,R_0\)可以用下面的微指令描述:

微指令周期 数据流方向 微指令
\(T_1\) \(Y\leftarrow R_0\) \(R_0out,Y_{in}\)
\(T_2\) \(Z\leftarrow R_1+Y\) \(R_1out,ADD\)
\(T_3\) \(R_1\leftarrow Z\) \(Zout,R_1in\)

再比如\(SUB\text{ }R_0,(X)\)

微指令周期 数据流方向 微指令
\(T_1\) \(AR\leftarrow IR\)
\(T_2\) \(DR\leftarrow Mem[AR]\)
\(T_3\) \(AR\leftarrow DR\)
\(T_4\) \(DR\leftarrow Mem[AR]\)
\(T_5\) \(Y\leftarrow R_0\)
\(T_6\) \(Z\leftarrow Y-DR\)
\(T_7\) \(R_0\leftarrow Z\)

再比如加载指令的微指令:

微指令周期 数据流方向 微指令
\(T_1\) \(AR\leftarrow PC\) \(PC_{out},AR_{in}\)
\(T_2\) \(DR\leftarrow Mem[AR]\) \(AR_{out},Mread,DRS_{in}\)
\(T_3\) \(PC\leftarrow PC+I,IR\leftarrow DR\) \(PC+1,DRI_{out},IR_{in}\)

在设计微操作序列时,需要遵循以下三个原则:

6.2.硬布线控制器设计

6.3.微程序控制器设计