一条指令的执行过程通...
解答:
一条指令的执行过程通常由取指、译码和执行 3 个步骤完成,本题中取指用 3 个节拍、译码用 1 个节拍,执行加法运算并把结果写入主存如何完成呢?包括划分执行步骤、确定完成的功能、要提供的控制信号,这是
本题要测试的内容。为回答这个问题,首先要看清图中给出的部件组成情况和信息传送的路径。
要完成的功能时(R0)+((R1)) (R1),从图中看到:
(1) R0、R1 都有送自己内容到内总线的路径,控制信号分别是 R0out 和 R1out;
(2) ALU 加运算,2 个数据由工作寄存器 A 和内总线提供,控制信号是 Add;A 只接收内总线的内容,控制信号是 Ain;结果需存 AC,控制信号是 ACin;AC 的内容可送内总线,控制信号是 ACout;
(3) PC 可接收内总线的内容,还可增 1,控制信号是 PCin 和 PC+1,PC 的内容可送内总线,控制信号是 PCout;
(4) 指令寄存器 IR 可接收内总线的内容,控制信号是 IRin;
(5) 读写存储器时,地址由 MAR 经 AB 提供,MAR 只接收总线上的信息,控制信号是 MARin;
(6) 读存储器,提供读命令 MemR,并通过 DB 送入 MDR,控制信号是 MDRinE;MDR 的内容可送入总线,控制信号是 MDRout;
(7) 写存储器,提供写命令 MemW,数据由 MDR 通过 DB 送到存储器的数据引脚,控制信号是 MDRoutE;
然后是划分执行步骤、确定每一步完成的功能、需要提供的控制信号。这是由指令应完成的功能和计算机硬件的实际组成情况和信息传送的可用路径共同决定的,基本原则是步骤越少越好。硬件电路要能支持,可以有多种方案,解题时应参照以给出的答题格式,即取指和译码阶段的那张表的内容,但不必把表已有的内容再 抄一遍。
划分指令执行步骤,确定每一步完成的功能、给出需要提供的控制信号:
请注意,(R0)+((R1))表示:R0 寄存器的内容与 R1 作地址从主存中读出来的数据完成加法运算;而 (R1)表示把 R1 的内容作为主存储器的地址完成写主存操作。为防止出现误解,题中还特地对此作了文字说明。这条指令的功能是先到主存储器取一个数,之后运算,再将结果写回主存储器。
(1) 执行相加运算,需把存储器中的数据读出,为此首先送地址,将 R1 的内容送 MAR,控制信号是 R1out、 MARin。
(2) 启动读主存操作,读出的内容送入 MDR,控制信号是 MemR、MDRinE。还可同时把 R0 的内容经内总线送入 A,用到的控制信号是 R0out、Ain。
(3) 执行加法运算,即 A 的内容与 MDR 的内容相加,结果保存到 AC,控制信号是 MDRout、Add、Acin。
(4) 要把 AC 的内容写入主存,由于 R1 的内容已经在 MAR 中,地址已经有了,但需要把写入的数据(已经在 AC 中)经内总线送入 MDR,控制信号是 ACout、MDRin。
(5) 给出写主存的命令,把 MDR 的内容经 DB 送存储器的数据线引脚,执行写操作,控制信号是 MDRoutE、MemW。
这几个步骤是有先后次序的,前面的完成了,下一步才可以执行,也保证了不会产生硬件线路的冲突。请注意,使用最为频繁的是内总线,它在任何时刻只能接收一个输入数据,并且向内总线发送信息的电路只能以三态门器件连接到内总线,5 个向内总裁发送信息的控制信号(ACout,PCout,R0out,R1out,MDRout)最多只能有一个为 1,其他 4 个必须全为 0,或者 5 个全为 0.
仔细看一下,发现可以把第 2 个步骤的操作划分到两个步骤中完成,一个步骤中安排 MDR 接收从存储器中读出的内容,到另外一个步骤实现 R0 的内容送入 A,这多用了一个操作步骤,指令的执行速度会变慢。有些解题者在写存储器之前,还会再执行一次把 R1 的内容送 MAR,尽管无此必要,但不属于原理上的错误。
当然还可以有其他的设计结果。
解题时这些叙述内容不必写出来(这里写出这些内容是希望帮助大家领会本题要测试的知识点和指令的执行过程),直接按照已经给出的表格的形式、按照提供的填写办法把设计的表格及其内容填好就可以了。
请注意,题目表格内容(告诉你答题的格式和答题内容的表达方式)与你答题的表格内容合在一起才是这条指令的完整的执行过程,千万不要产生任何错觉。
登录后提交答案
暂无评论,来抢沙发