从课程的教学进度看,到目前为止,上述内容的相当部分还未讲到,即使都讲过了,要把这一切都融会贯通,理解透彻,并综合应用起来也仍然是一件很不轻松的事情。内容重要和难以学好就成了同一件事物的两个侧面,只能通过师生的共同努力,化解这一矛盾,力求达到一个比较令人满意的效果。我们的具体安排,是在本小节,首先把指令执行过程中必然涉及到的知识,简单综述一番,之后,再用两大节,以两台教学计算机系统控制器的组成与设计,分别讲解微程序的和组合逻辑的控制器的系统知识和有关技术。
指令功能与指令格式的有关内容,已在本章的前几节讲解清楚。从理解和学习指令执行步骤的角度,在这里再重申两点内容。一是指令的操作码指明该条指令的操作功能,换句话说,这条指令应完成哪一些(个)操作功能,主要依据是指令的操作码。二是算术与逻辑运算指令、传送指令等用到的操作数(或操作数地址),转移指令、子程序调用等指令用到的指令地址,都是通过指令的操作数地址字段提供的,这里就有个寻址处理的问题,即从形式地址得到有效(实际)地址,以及通过有效地址进一步取得操作数的处理过程,这在寻址方式一节已进行了说明;再进一步说,指令中所涉及到的操作数和指令地址,主要保存在运算器的累加器中,内存储器的存储单元中,输入/输出设备接口的寄存器中。要取得指令用到的操作数或指令地址,必然涉及到计算机着三个部件的组成和读写控制。
运算器中的累加器的读写控制,已在本教材第二章讲解运算器的功能和组成时详细地介绍过,累加器的内容可以是操作数,操作数的地址,指令的地址,或用于完成寻址计算的有关内容等,读写累加器通常总是要通过运算器中的ALU才能完成,直接与使用与控制运算器的方法有关。
内存储器的存储单元的读写控制,现在尚未讲到。从讲解指令执行过程的角度,现在可以先进行这样的说明:要读写内存储器的某一存储单元的内容,通常要用两个执行步骤,第一步,先把这一存储单元的地址送到地址总线上,用以选择存储器的一个单元;第二步,向内存储器发出读写命令,为读操作时,还要把读出的内容保存到相关的寄存器中,为写操作时,还要把准备写入内存储器的数据(可能已在CPU的某寄存器中)送到数据总线上,用以向内存储器提供写入的数据。在涉及到要读写内存储器的操作时,都可以通过这样两个执行步骤来完成。
输入/输出设备接口的寄存器的读写控制,现在尚未讲到,主要出现在输入/输出指令中。从讲解指令执行过程的角度,现在可以先进行这样的说明:要完成对输入/输出设备的读写操作,多数情况下,是在CPU与相应设备的接口卡的某一寄存器之间完成。通常要用两个执行步骤,第一步,先把这一输入/输出设备的入出端口地址送到地址总线上,用以选择相关接口电路中的一个寄存器;第二步,向接口卡发出读写命令,为读操作时,还要把读出的内容保存到相关的寄存器中,为写操作时,还要把准备写到接口卡的寄存器中的数据(可能已在CPU的某寄存器中)送到数据总线上,用以向接口卡提供写入的数据。在涉及到要读写输入/输出设备的操作时,都可以通过这样两个执行步骤来完成。与读写内存储器不同的情况是,读写内存储器所用的地址的位数较多,例如等于计算机机器字长,又有各种不同的使用需求,故必须通过多种不同的寻址方式来表示;而在使用I/O端口地址的IN和OUT指令中,I/O端口地址的位数较少,故多直接在IN、OUT指令的低位字段给出这一I/O端口地址,使用起来更简便快捷。
|
|