基于proteus的CPU控制器设计(微程序版)

基于proteus的CPU控制器设计(微程序版)

数据通路

为了理解微程序控制器的设计思想,我们假设一个极简的数据通路(如下图1所示),由并联在单条8位总线BUS上的三个部件组成:指令寄存器IR(寄存器74LS273构成)、程序计数器PC(计数器74LS163构成)、程序存储器PROGRAM(ROM存储器2764构成)。

图1. 数据通路图
数据通路图
在数据通路上所能执行的某一种操作可以看作是一条对应的“指令”,则该数据通路能执行的所有操作可以用一个极简的指令集(只包含四条指令)来描述,如下表1所示:

表1. 微程序控制器指令集列表
在这里插入图片描述
按照上述指令表1的指令格式,用户可以编写一段机器语言程序存放在程序存储器PROGRAM中,如下表2所示。其中每一个存储器单元存放一个字节的数据,对应唯一的8位二进制地址(由地址寄存器AR锁存)。若用户需要访问程序存储器的某个单元,须由程序计数器PC提供该单元的地址,才能从程序存储器取出该单元中的数据。因为程序是顺序访问的,所以程序计数器PC是由两个计数器74LSl63级联构成的一个8位递增计数器PC。当前指令从程序存储器PROGRAM取出,并锁存到指令寄存器IR后,PC自动执行PC+1操作,指向相邻下一条指令。

表2. 程序存储器PROGRAM中的机器语言程序
在这里插入图片描述

微程序设计原理

仔细分析上述图1和表1可知,数据通路的各条指令状态图如下图2所示:所有指令的取指操作都是相同的,即是上图1中紫色箭头所示的指令流(ROM→IR):CPU从程序存储器PROGRAM取出指令,经过总线BUS流向指令寄存器IR。NOP和HLT指令只有上述取指操作,没有执行操作(HLT指令取指后硬件停机);而JMP1和JMP2指令除了上述取指操作外,实际只有一种执行操作,即上图1中红色箭头所示的数据流(ROM→PC):CPU从程序存储器PROGRAM取出数据,经过总线BUS流向程序计数器PC。两种跳转指令不同之处在于:JMP1指令的第二字节是目标地址(直接寻址),只要一次数据流(ROM→PC)就把目标地址送入PC;而JMP2指令的第二字节是存放目标地址的存储器单元地址(间接寻址),需要连续两次数据流(ROM→PC)才能把目标地址送入PC。

图2. 微程序控制器指令状态图
在这里插入图片描述
在上图2中,虽然微程序控制器指令的状态类型只有两种(指令流和数据流),但是每一条指令拥有的状态数目都不尽

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值