计算机组成原理课程相关课件017-new第7章控制器4.ppt
文本预览下载声明
又例如,取指令及散转的公共微程序段为: PC→AR,PC+1 RAM→IR J1#散转至微程序入口 在电路原理上,J1#信号可以在b)微指令一起发送,但由于J1#信号与M-R#信号被编码在同一字段,因此必须分为两条微指令完成。 ⑤对于同一条指令,可能存在不同的微程序流程图,但均能实现指令的功能。 2、微程序流程图的编写 1)通用寄存器之间的传送操作 通过源寄存器内容送总线,而目的寄存器将总线上数据打入来实现。 例如: 指令MOV DR,SR :功能为将源寄存器SR的内容送目的寄存器DR。 其微程序段为一条微指令: SR→DR。 2)存储器访问操作 读访问操作:通过以下两条微指令实现: 送地址到总线,并打入地址寄存器AR; 启动存储器读操作(M-R#),并将读出的数据从总线上接收至目的部件。 例如,指令MOV DR , @SR :功能为将源寄存器SR所指示的存储器地址单元的内容送目的寄存器DR,即源操作数是寄存器间接寻址。其微程序段为以下两条: SR→AR RAM→DR 取指令也是一种典型的存储器读访问操作。 2)存储器访问操作 写访问操作:通过以下两条微指令实现: 送地址到总线,并打入地址寄存器AR; 送数据到总线,启动存储器写操作(M-W#)。 例如,指令MOV @DR,SR:功能为将源寄存器SR的内容写至目的寄存器DR所指示的存储器地址单元,即目的操作数是寄存器间接寻址。其微程序段为以下两条: DR→AR SR→RAM 3) IO设备的访问操作 IO设备的读访问操作:通过2条微指令实现 送地址到总线,并打入地址寄存器AR; 启动IO的读操作(IO-R#),并将输入的数据从总线上接收至目的部件。 IO设备的写访问操作:通过2条微指令实现 送地址到总线,并打入地址寄存器AR; 送要输出的数据到总线,启动IO的写操作(IO-W#)。 例如,指令IN DR,【PORTAR】,功能为将端口地址为PORTAR的输入设备的数据送目的寄存器DR。其微程序段为三条微指令: PC→AR,PC+1 RAM→AR IO→DR 4)运算器的运算操作 运算器的运算操作:通过三条微指令实现 送第一个数据到暂存器DA1(或者DA2); 送第二个数据到暂存器DA2(或者DA1); 选择ALU运算功能并进行运算,结果送(ALU-B#)目的部件; 例如,指令ADD SR,DR,功能为将源寄存器SR的内容与目的寄存器DR的内容相加,并送DR。其微程序段为三条微指令: SR→DA1 DR→DA2。 DA1+DA2→DR。 3、微地址及下址字段的分配 首先要分配每条机器指令的微程序入口地址。步骤如下: 确定发送J1#信号的那条微指令的下址字段。 确定指令的操作码。 根据J1#转移的规则确定每条指令的微程序入口地址。 如果流程图中还有J2#~J5#等转移,则接下来必须确定它们的各分支的入口微地址。 在确定了上述有特殊要求的微指令的固定地址后,对于其他的顺序执行的微指令,只需直接按前后顺序随意编排即可。 每条指令的微程序段的最后一条微指令的下址字段一定是取指令微程序段的首地址。 4、微指令代码的编写 根据写好的微程序流程图,参照数据通路,首先排列出每条微指令必须发送的微操作控制信号,然后,对照微指令格式,写出这些微操作控制信号对应的微代码。 举例: 4、微指令代码的编写 序号 微指令 应发送的微操作控制信号 微指令编码(M24~M7) BTO OTB FUNC FS S3~S0 MCi 1 PC→AR,PC+1 PC-B#,B-AR, PC+1 110 111 000 1 000000 2 RAM→IR M-R#,B-IR 011 000 010 0 000000 3 J1#散转 J1# 000 000 001 1 000000 4 SR→DR SR-B#,B-DR 100 011 000 0 000000 5 DR→RAM DR-B#,M-W# 000 100 001 0 000000 6 DA1+DA2→DR ALU(F=A加B),ALU-B#,B-DR 100 001 111 1 100101 7 DA1→LED ALU(F=A),ALU-B#,IO-W# 000 001 011 0 111110或000001 8 DA1→PC ALU(F=A),ALU-B#,B-PC#,PC+1 111 001 000 1 111110或000001 5、微程序设计举例 假设模型机指令系统有5条机器指令,格式为: I7 I6 I5 I4 I3 I2 I1 I0 11 OP DR ADDR/PORTAR OP 指令 功能 0000 IN DR,[PORTAR] IO(PORTAR) →DR 0001 ADD DR,[ADDR]
显示全部