实验4 预习材料

发布 2023-04-19 11:52:28 阅读 5885

tec-xp实验机硬布线控制器的设计。

我们知道控制器的基本功能是根据指令及指令的执行步骤,产生控制全机的各种控制信号。因此控制器的设计一般都要经过如下几个阶段:

从指令系统入手,划分每一条指令的执行步骤,设计每一条指令的每一个执行步骤的具体操作功能;

需要用什么办法区分、表示指令的不同步骤;

确定在实现这些操作功能时,计算机各相关功能部件要求使用哪些控制信号,这些控制信号要用高电平还是低电平;

需要选用什么具体逻辑电路、采用什么处理方案来形成这些控制信号。

下面就结合实验机介绍其硬布线控制器的设计实现方法。

一、教学计算机的指令执行流程。

在实验二中,我们学习了tec-xp实验机指令系统,知道了其指令可以按功能和它们的执行步骤分为如下4组:

a组指令完成的是通用寄存器之间的数据运算或传送,和其它几项特殊的操作,指令执行时不需访问内存,在读取指令之后可一步完成。

b组指令完成的是一次内存或io设备的访问操作,在读取指令之后可二步完成,第一步用于向地址寄存器送入16位的(或8位的io端口)地址,第二步完成内存或io设备的读、写操作。

c组指令中的4条指令,完成的是二次内存访问操作,正常情况要用4步完成,每一次内存访问操作,都要经过传送地址和数据读写这样两步;但在这里却只需要3步即可,因为头一次读出的数据就是下一次读写操作要使用的地址信息,读出之后直接(或经过一次加法运算)将其写入地址寄存器,就可以省掉第二次内存读、写操作过程中的需要的传送地址的步骤。calr指令先用2步保存pc内容(子程序调用指令的后续指令地址)到堆栈,第3步把寄存器中的子程序入口地址传送到程序计数器pc中。

d组指令完成的也是2次内存储器的读、写操作,在读取指令之后可4步完成。

tec-xp实验机的指令执行流程如下图所示。

下面对图中的每个符号及其含义进行必要说明。

图中的每一个方框表示指令的一个执行步骤,在计算机中需要用“节拍”来区分不同的步骤和每个步骤的时间长短。方框之间的带箭头的连线表示节拍状态的转换次序和方向。箭头线旁边有文字说明的,表示从前一个节拍转换为当前节拍的条件,没有文字说明的,表示无条件地从前一个节拍转换为当前节拍。

这样来理解,上图实际上就是我们在《数字电路》中学过的状态转换图。每个方框左上角的4位数字,是为该节拍分配的节拍状态编码。

二、节拍发生器的设计与实现。

根据上面的状态转换图,总共使用了 8 个节拍(不含响应中断的步骤),至少要使用 4 位触发器(可以产生最多16个节拍),使用 4位触发器(分别命名为 t3 t2 t1 t0)不同的状态组合来区分每一个节拍,例如,用t3 t2 t1 t0 =1000 来标识图中最左上角的那个节拍。最终选用多少个节拍更好,可能各有考虑,作为实验用的计算机,以节拍关系更清晰、易理解最重要。还要有利于简化生成全部控制信号的逻辑表达式。

如何分配每个节拍的 4个触发器的状态组合,需要遵循的原则之一是:尽量做到从当前节拍切换到下一个节拍时,只有一个触发器的状态发生变化,办不到时,也要使状态发生变化的触发器数目尽可能少。

下面结合上图说明一下实验机的状态编码:每个方框左上角的4位数字,是为该节拍分配的节拍状态编码。

其中状态编码为1000的节拍完成把0值送到程序计数器pc,为启动监控程序做好准备,只在实验计算机系统加电启动时被执行一次,在实验计算机正常运行的过程中不会进入这个节拍。

状态编码为0000和0010的两个节拍完成读取指令的功能,公用于所有指令,是每一条指令开始执行时必须首先完成的两个操作步骤。

在完成读取指令之后,即已经得知指令操作码的前提下,节拍发生器就按这4类指令的划分情况,分别进入到各自不同的节拍序列。

a组指令将进入标记为0011状态的节拍,用1步完成寄存器之间的数据运算或传送。

b组指令将进入标记为0110状态的节拍,再经过标记为0100的节拍,用2步完成1次对主存储器或io设备的读写操作。

c组指令将进入标记为0110状态的节拍,再经过标记为0111的节拍、0101的节拍,用3步完成2次内存储器的读写操作,前2个节拍完成读主存储器的同时,还把读出内容传送到地址寄存器,第3个节拍直接使用该地址完成第二次对主存储器的读写操作;calr指令是一次内存写操作和一次寄存器之间的数据传送操作,也是3个步骤完成。

d组指令,将进入标记为0110状态的节拍,再经过标记为0100的节拍、0111的节拍、0101的节拍,用4步完成2次内存储器的读写操作,每一次内存储器的读写操作各自用2步完成。

这种处理办法可以把全部指令的执行流程的逻辑关系表现得更清晰通畅,更容易学习与理解,也为简化所用逻辑线路的设计提供了十分有利的条件。

图中用虚线框表示的“响应与处理中断请求”的动作,在相邻两条指令进行切换的时刻,即前一条指令已经结束、下一条指令尚未开始的时刻,完成检查有无中断请求的功能,这个检查步骤也公用于所有指令,并依据检查结果进行不同的处理,无中断请求时,就开始下一条指令的执行过程,有中断请求时则进入中断响应和处理的过程,处理起来略显复杂,等到讲解中断的时候再详细说明。

这些节拍是由节拍发生器产生的。节拍发生器是用多位触发器的输出信号的不同组合状态,来标识每条指令的执行步骤。设计节拍发生器的线路,就是确保它按照上图规定的功能完成节拍状态转换。

在tec-xp实验机系统中,节拍发生器是用一片gal20v8器件通过编程实现的。

三、控制信号形成部件。

1、确定控制器应提供的控制信号。

控制器的功能,是向计算机各个功能部件提供它们协同运行所需要的控制信号。因此在设计控制器时,首先要根据指令的执行过程,把每条指令在执行过程中需要的控制信号统计出来,然后在根据根据这些信号的要求设计电路,产生这些信号。

下面开始对控制器需要提供出来的控制信号进行详细的说明。

对运算器部件,应该向它提供23位的控制信号(在实验四中,这23位控制信号是用24位的微型手拨开关提供的,当计算机正常运行时,将改由控制器向运算器提供这23位控制信号),包括:

4位的a口地址、4位的b口地址(累加器编号),用于选择读写的通用寄存器;

3组3位的控制码i8~i6,i5~i3,i2~i0,用于选择结果处置方案、运算功能、数据**;

2组共6位的控制信号,控制配套的2片gal20v8;

3位sst,用于控制c、z、v、s这4个状态标志位的状态变化;

1位ssh和2位sci, 用于控制产生运算器最低位的进位输入信号,以及运算器最高、最低位(累加器和q寄存器)的移位输入信号。

对内存储器和i/o接口部件,控制器主要向它们提供读写操作用到的地址信息和全部控制信号。为实现对存储器和i/o接口的读写操作控制,必须指明:

是否要读写内存或i/o接口,是读写内存储器还是i/o接口,到底是读还是写操作。可以把这些要求组合成以下5种情形:

写内存,在写数据到内存时要用,用于实验机的sto、push等指令的写内存操作;

读内存,在从内存读数据时要用,用于实验机的lod、pop等指令的读内存操作;

写接口,在写数据到接口时要用,用于实验机的out指令的写i/o接口操作;

读接口,在从接口读数据时要用,用于实验机的in指令的读i/o接口操作;

既不读写内存也不读写接口,在许多指令的大部分时间里是有这种运行需求的,此时应禁止内存和接口的读写操作。设计中一定不能忘记这一使用要求。

在tec-xp实验机系统中,通过3位编码(/mio,req,/we)来区分上述5种情形,具体安排如下。

可以看到,/mio信号为低,要读写内存或i/o接口,为高则不读写内存和i/o接口;

在/mio信号为低、req信号为低时,是内存工作(读写),为高则是i/o接口工作;

在/mio信号为低、/we信号为低时是写操作,为高则是读操作。

这里的“×”符号表示“无关位”,即/mio信号为高时,无论req和/we处于什么状态,都是既不读写内存也不读写i/o接口。

向内存和i/o接口提供的读写信号,通过对/mio req /we这3位码的译码来实现。

对cpu内部总线数据**的控制,可以向内部总线ib传送数据的信息**包括:

alu的输出结果,将alu的输出送到内部总线,主要目的是用于把累加器的内容写进内存或i/o接口,即把alu的输出经内部总线、经过双向3态门电路(74ls245)传送到外部数据总线db,而db的每一位与内存的数据线、i/ o接口的数据线直接连接在一起。

标志寄存器内容,由4位状态标志位寄存器的输出c、z、v、s,及2位中断优先级p1、p0信号总共6位信息组成。将这8位(最低2位补0值)信息送到ib,也是为了将其写入内存。在响应中断后,用于通过pushf指令保存中断现场信息。

指令寄存器的低位字节,在in和out指令中,存放的是io端口地址,需要送内部总线再经alu传到地址寄存器;在相对转移指令中,存放的是offset偏移值,需要送内部总线经alu完成与程序计数器pc的内容相加;此时有一个符号位扩展支持的问题,在计算相对转移指令的转移地址时,是通过把一个8位的补码(由汇编程序计算得到)与该转移指令本来的16位地址(一定为正数,故其原码与补码相同)相加来实现,必须把8位补码offset的最高位(补码的符号位,可能为0或1)扩展到加法器的高8位的每一位上去参加相加。

16位的数据手拨开关,用于把通过该开关所拨的内容,经过内部总线传送到计算机内相关部件中。

16位的中断向量,由2位的中断优先级拼接上确定的高12位数值(通过跳线给出)得到,最低的2位补0,在处理中断时,用于找到中断服务子程序的入口地址。

实验4交换实验

配置vlan trunk vtp vlan之间路由。一 实验拓扑。二 实验需求。1 如图所示,拓扑中有2个vlan的用户,一个是pc1 vlan 100 另外一个是pc2 vlan 200 他们分别接在switch a的f0 1和switch b的f0 2,其中pc1和pc2采用路由器模拟 2 设备...

实验4密立根油滴实验

实验4 密立根油滴实验。实验简介 密立根用了七年功夫研究电子电荷,于1910年发表了油滴实验。这个实验首次证实电荷的量子化,测定了电子电荷的正确数值。对物理学的发展起过重要作用。密立根油滴实验方法巧妙,物理学界将密立根油滴实验作为实验物理的典范。密立根由于测定了电子电荷和借助光电效应测量出普朗克常数...

实验4汇编实验

数学与软件科学学院实验报告。学期 2017至 2018第 2 学期2018年4月4日 课程名称 汇编语言专业 信息与计算科学班级 2015级 5班。实验编号 4实验项目 编写 调试具有多个段的程序。指导教师 冉茂华。姓名 黄玉含学号 2015060512 实验成绩 1 将下面的程序编译 连接,用de...