硬布线控制器的设计

一、微操作

首先我们要知道: 

一条指令执行时包括几个机器周期例如:取值,间址,执行,中断

机器周期取值间址执行中断
标识符FEINDEXINT

而一个机器周期又由若干个时钟周期组成,时钟周期是计算机中最小的时间单位。 

微操作(Micro-operation)是计算机组成原理中的一个重要概念。它指的是在计算机的中央处理单元(CPU)内部进行的一种基本操作,是指令执行过程中最小的、不可再分的操作步骤。

在CPU中,执行一条机器指令通常需要多个步骤,例如取指令、解码指令、执行指令、访问存储器和写回结果等。这些步骤中的每一个具体操作,诸如将数据从一个寄存器传送到另一个寄存器,或者将数据从寄存器传送到数据总线,这些操作都称为微操作。

微操作通常由控制单元生成,并通过控制信号来控制各个部件的行为。例如,在执行加法操作时,可能包括以下微操作:

  1. 从寄存器中读取操作数到ALU(算术逻辑单元)。
  2. 通过ALU执行加法操作。
  3. 将结果存储回目标寄存器。

这些微操作通常在一个时钟周期内完成,而一条完整的机器指令可能需要多个时钟周期才能完成,因为它包含多个微操作。微操作的执行是实现复杂指令功能的基础,因此在设计和理解计算机体系结构时,理解微操作的概念非常重要。

 

每一个微操作都对应一个微指令,只要CPU中的控制器CU能在接收到被译码后的指令时于正确的条件,正确的时间,正确的阶段发出对应的微指令就完成了对计算机内部计算的控制。 

在CU内部,例如可以将多种条件连接上与门 以至于CU可以发出对应的微指令。

将这些逻辑电路实现并集成在CU内部。 

 而这个逻辑电路的设计就是“硬布线控制器的设计”。

二、设计步骤

假设采用同步控制方式(定长机器周期)一个机器周期内安排3个节拍。 

1.分析每个阶段的微操作序列

(取值、间址、执行、中断四个阶段) 

 确定哪些指令在什么阶段、在什么条件下会使用到的微操作

取指:

PC→MAR
1→R
M(MAR)→MDR
MDR →IR
OP(IR)→ID
(PC)+1→PC

间址:

 Ad(IR)→MAR
1→R
M(MAR)→MDR
MDR → Ad(IR)

执行:

CLA0→ACclear ACC指令
ACC清零
LDA X Ad (IR)→ MAR取数指令,把X所指内容,取到ACC
1→R
M(MAR)→MDR
MDR→AC
JMP X Ad (IR)→PC无条件转移
BAN XA0·Ad (IR )+A0·(PC)→PCBranch ACC Negative
条件转移,当AC为负时转移

 中断:

步骤微指令描述
1. 保存当前程序计数器(PC)内容MAR ← PC将当前的程序计数器(PC)内容传送到存储地址寄存器(MAR)。
M[SP] ← MAR将MAR中的内容(即PC值)存储到堆栈指针(SP)指向的内存地址。
SP ← SP - 1将堆栈指针减1,指向下一个空闲堆栈位置。
2. 保存CPU状态(例如标志寄存器)MAR ← FLAGS将当前标志寄存器(FLAGS)内容传送到MAR。
M[SP] ← MAR将FLAGS中的内容存储到堆栈中。
SP ← SP - 1堆栈指针减1,指向下一个空闲堆栈位置。
3. 加载中断向量地址PC ← Interrupt_Vector_Address将中断向量地址加载到程序计数器(PC)中,这样CPU将跳转到对应的中断服务程序。
4. 转到中断服务程序的入口地址MAR ← PC将新的PC内容传送到MAR,以便从内存中读取中断服务程序的第一条指令。
IR ← M[MAR]将中断服务程序的第一条指令从内存读取到指令寄存器(IR)。
PC ← PC + 1程序计数器递增,准备执行下一条指令。
5. 执行中断服务程序-CPU现在开始按照从中断向量表中得到的地址来执行中断服务程序。
6. 恢复原来的程序状态SP ← SP + 1增加堆栈指针以指向之前存储的标志寄存器的内容。
FLAGS ← M[SP]将标志寄存器的值恢复到FLAGS寄存器中。
SP ← SP + 1增加堆栈指针以指向之前存储的PC内容。
PC ← M[SP]恢复程序计数器的值,使得中断返回后继续执行中断前的程序。

2.选择CPU的控制方式

采用定长机器周期还是不定长机器周期?每个机器周期安排几个节拍?

        该例子以定长机器周期,每个周期三个节拍。 

3.安排微操作时序

 如何用3个节拍完成整个机器周期内的所有微操作?

原则一微操作的 先后顺序不得 随意 更改
原则二被控对象不同 的微操作尽量安排在 一个节拍内完成
原则三占用 时间较短 的微操作尽量安排在一个节拍内完成并允许有先后顺序

取值周期:

节拍序列原因
T0(1)PC→MAR
(2)1→R存储器空闲即可
T1(3)M( MAR)→MDR在(1)之后M(MAR)→MDR从主存取数据,用时较长,因此必须一个时钟周期才能保证微操作的完成
(6)(PC)+1→PC在(1)之后
T2(4)MDR→IR在(3)之后

MDR →IR 是CPU内部寄存器的数据传送,速度很快,因此在一个时钟周期内可以紧接着完成 OP(IR)→ID。也就是可以一次同时发出两个微命令。

两个微操作占用时间较短,根据原则三安排在一个节拍

(5)OP(IR)→ID在(4)之后

间指周期:

T0(1)Ad(IR)→MAR
(2)1→R
T1(3) M(MAR)→MDR
T2(4) MDR →Ad(IR)

执行周期:
(1)非访存指令

 

(2)访存指令

 

4.电路设计

 确定每个微操作命令的逻辑表达式,并用电路实现。
(1)列出操作时间表

FE 取指T₀PC → MAR1111111111
1 → R1111111111
T₁M[MAR] → MDR1111111111
(PC) + 1 → PC1111111111
T₂MDR → IR1111111111
OP(IR) → ID1111111111
1 → IND1111111111
Ī1 → EX1111111111
工作周期标记节拍状态条件微操作命令信号CLACOMSHRCSLSTPADDSTALDAJMPBAN
IND 间址T₀Ad(IR) → MAR11111
1 → R11111
T₁M(MAR) → MDR11111
T₂INDMDR → Ad(IR)11111
1 → EX11111
工作周期标记节拍状态条件微操作命令信号CLACOMADDSTALDAJMPBAN
EX 执行T₀Ad(IR) → MAR111
1 → R1
1 → W1
T₁M(MAR) → MDR11
AC → MDR1
(AC)+(MDR) → AC1
T₂MDR → M(MAR)1
MDR → AC1
0 → AC1
AC → AC1
Ad(IR) → PC1
A₀Ad(IR) → PC1

(2)写出微操作命令的最简表达式

M(MAR)→MDR微操作命令的逻辑表达式:


(3)画出逻辑图 

三、硬布线控制器的特点:

 
        指令越多,设计和实现就越复杂,因此一般用于RISC(精简指令集系统)如果扩充一条新的指令,则控制器的设计就需要大改,因此扩充指令较困难。由于使用纯硬件实现控制,因此执行速度很快。微操作控制信号由组合逻辑电路即时产生。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值