计组U5 CPU设计


CPU设计

CPU功能

指令控制 操作控制 时间控制 数据加工 中断处理 其他处理

CPU组成部件图

在这里插入图片描述

  • AX-DX: 通用数据寄存器
  • BX,BP: 基址寄存器
  • SI,DI: 变址寄存器
  • SP: 堆栈指针
  • ALU: 算术逻辑单元
  • T,S: 两个16位暂存器,T可以移位和循环操作
  • PC: 程序计数器
  • IR: 指令寄存器, 存放正在执行指令
  • PSW: 程序状态字
  • AR: 单向地址寄存器
  • DR: 双向地址寄存器
  • IR: 指令寄存器

指令设计格式

在这里插入图片描述

指令执行

有三个步骤: 取指令操作码,取操作数,执行指令

取指令

PC->AR      //存储PC
AR->MEMadr 

RD,PC+1->PC  //取下一PC

MM->DB
DB->DR
DR-IR       //将先前PC放到指令寄存器

译码

在这里插入图片描述

取操作数

双操作数指令

在这里插入图片描述

RD为读信号
要取内容就要过存储器,不需要取就直接入暂存器

ADD BX,[DI]
bit[3]-bit[0]为0111可知为DI的寄存器间接寻址
bit[7]-bit[4]为1001可知目的寄存器为BX
将DI的内容通过存储器放到暂存器S中
MOV AX,4000H   //MOV译码和执行同时完成,即取操作数阶段即可结束
bit[3]为1可知为立即寻址
bit[7]-bit[4]为1000可知目的为AX
由PC内容作为地址读出立即数4000H,PC加一,将立即数放入AX
单操作数指令

在这里插入图片描述

INC [BX]   //对BX内容(当作地址)的内容+1
bit[7]-bit[4]可知为INC
bit[2]-bit[0]为101可知为以BX为目标的寄存器间接寻址
BX定位的存储器的内容送入暂存器S
SHR CX      //逻辑右移
bit[3]-bit[0]可知为对CX的寄存器寻址指令
CX送入暂存器S
无操作数指令

bit[3]-bit[0]确定为哪条无操作数指令

执行指令

转移指令
                //取操作数后偏移量已放到暂存器S,且加到ALU的一端
PC->ALU         //将当前PC(当前指令地址)放到ALU另一端
ADD->T          //ALU两端相加,得到偏移地址放到暂存器T
T->PC           //更新PC为新的偏移地址
双操作数指令
ADD BX,[DI]:    //取操作数后一个操作数[DI]已放到暂存器S中,且加到ALU一端
BX->ALU         //将BX内容加到ALU另一端
ADD->T          //ALU两端相加,得到结果放到暂存器T
T->BX           //结果送入BX
单操作数指令
INC [BX]:       //已将[BX]放到暂存器S中,且加到ALU一端
ALU中S+1->T     //+1,放到暂存器T
BX->MEMadr      //取出BX内容,放入放入地址寄存器(可省略,因取操作数阶段地址寄存器已存放该地址直到指令执行结束)
T->DB,WR        //将结果放入数据总线DB上,给出写控制信号WR,将结果写回存储单元
SHR CX:         //已将CX内容放到暂存器S,且加到ALU一端
ALU直通->T
T逻辑右移
T->CX

微操作命令

微操作命令提供控制信号实现微操作
PC->AR是微操作 P C o u t , A R i n PC_{out},AR_{in} PCout,ARin是微命令

取指令码周期FIC

W0-W3为节拍信号,P0-P3为触发脉冲

W0 P C o u t , A R i n PC_{out},AR_{in} PCout,ARin // P C o u t PC_{out} PC

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值