计算机组成原理课程设计二

更新时间:2023-09-10 19:46:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

计算机组成原理设计文档

目 录

实验简介

实验原理 ……………………………………………………………… 2 设计原理 ……………………………………………………………… 3 实验设备 ……………………………………………………………… 3 设计人员 ……………………………………………………………… 3

实验手记 ……………………………………………………………… 4 实验结果

演示程序 ……………………………………………………………… 6 验收程序 ……………………………………………………………… 7

实验心得

沈镭 ……………………………………………………………… 8 贾慧颖 ……………………………………………………………… 9 李佳媛 ……………………………………………………………… 10

附录

程序流程图 ……………………………………………………………… 11 译码表 ……………………………………………………………… 12 数据通路总图 ……………………………………………………… 13 源代码和接线图 ……………………………………………………… 14 指令对应表 ……………………………………………………………… 18 硬布线结构方框图 ……………………………………………………… 18

计算机组成原理设计文档

文档撰写:沈镭 贾慧颖 李佳媛 图片绘制:李佳媛 沈镭 贾慧颖 版面设计:沈镭 李佳媛 贾慧颖 封面设计:沈镭

制作日期:2003-7-10

- 1 -

计算机组成原理设计文档

实 验 简 介

硬布线控制器是一种由门电路和触发器构成的复杂树形逻辑网络构成的逻辑电路,是早期设计计算机的一种方法,这种方法是把控制部件看做为产生专门固定时序控制信号的逻辑电路,而此逻辑电路以使用元件最少和取得最高操作速度为设计目标。一旦控制部件构成后,除非重新设计和物理上对它重新布线,否则要想增加心的控制功能是不可能的。

硬布线控制器是计算机中最复杂的逻辑部件之一,当执行不同的机器指令时,通过激活一系列彼此很不相同的控制信号来实现对指令的解释,其结果使得控制器的设计和调试非常复杂且代价很大,因此被微程序控制器所取代,但随着新一代机器及VLSI技术的发展,硬布线逻辑设计又得到了重视。

N实验原理n 本次实验的重点就在于硬布线控制器的设计,因为硬布线控制器大部分线路连线都在ispLSI1032芯片内部,因此设计方案的优劣主要取决于设计的思路和质量。

1. 控制器的设计思路

硬布线控制器能够实现它的控制功能,关键在于它的组合逻辑译码电路。译码电路的任务是将一系列有关指令、时序等的输入信号,转换为一个个控制信号,输入到各执行部件中。

根据硬布线控制器的基本原理,针对每个信号S,可以列出它的译码函数

S = f(Im,Mi,Tk,Bj)

其中是机器指令Im机器指令操作译码的输出信号,Mi是节拍信号发生器的节拍电位信号,Tk是时序信号发生器的时序脉冲信号,Bj是状态条件判断信号。

在TEC-4计算机组成原理实验系统中,因为时序脉冲信号Tk(T1-T4)已经直接输送给数据通路,所以译码电路不需Tk作为输入。又因为指令系统比较简单,操作码只有4位,不需要专门的操作码译码器,因此Im直接就是操作码,即指令寄存器的IR4-IR7信号。Mi就是时序模块的节拍电位信号W1-W4。Bj包括:

① 来自数据通路中的运算器ALU的进位信号C; ② 来自控制台的开关信号SWC,SWB,SWA; ③ 其他信号。

每个控制信号的函数式都是上述输入信号的逻辑表达式,因此可以用各种组合逻辑构造电路网络,实现这些表达式的逻辑功能。理论上,只要所有控制信号都设计出译码函数,这个硬布线控制器的方案也就得到了, 2. 控制设计流程

设计硬布线控制器的设计流程就是解决Im,Mi,Bj如何起作用的问题,可以使用流程图的方法。硬布线控制器以节拍为时间单位,一拍是从时序T1的上升沿到T4的下降沿的一段时间。在流程图中一个执行框就代表一拍。 但相较于微程序设计,还有一些需要考虑的因素。 ⑴执行一条机器指令的节拍数

执行一条机器指令所需要的微指令数目在硬布线控制器中相当于机器指令所需的节拍数。决定执行一条指令需要的节拍数要根据所有指令而定,在本实验中,由于选用4拍对大多数指令就够了,所以节拍发生器产生4个节拍信号(W1-W4)。 对于需要节拍少的指令,在设计控制流程,对于所需节拍较少的指令流程的适当位置使SKIP控制信号有效,那么对于的节拍可以跳过,提高的性能。对于需要节

- 2 -

计算机组成原理设计文档

拍多的指令,可以有两种方法,一是修改时序电路,采用变节拍的方式实现,二是将一条机器指令的执行化为占用两条或更多的机器指令节拍,可以用FLAG进行标志,FLAG可以认为使上述的其它信号。 ⑵控制台操作的问题

机器指令的执行流程设计出来后,还要有控制台操作。这部分属于机器指令系统,而又要完成机器指令那样以不超过4拍的时间来执行,以便与机器指令的执行方式统一起来。不同于微程序通过微程序地址记住处于控制台状态还是程序运行状态,在硬布线控制器中就要设置一个或几个标志来记录当前状态。根据这个标志可以区分控制台初始状态、控制台读内存、控制台写内存、程序运行状态。 3. 硬布线控制器

使用ISP技术,则控制器的电路设计完全是在开发软件上进行的,只要在计算机上面画出电路的原理图,编写好必要的程序,软件会自动完成控制器内部的联线控制,无需自己去接线。

设计出硬布线控制流程图后,就可以据此设计出译码逻辑电路。先根据流程图列出译码表,作为逻辑设计的依据。根据译码表可以写出每个控制信号的逻辑表达式,这个表达式就是它所在的行各乘积项相加。在编写译码表的过程中要注意综合和化简,可以考虑增加冗余项将相似信号合并为一个信号。

N设计原理n 采用数据通路和微程序控制器方案相同。(见附录)

硬联线控制器模型机所使用的时序信号比微程序控制器要多一些,除了原有的时序信号T1至T4外,还需要节拍信号,一拍等于一个T1至T4循环。实验仪提供的节拍信号有4个:W1至W4。

N实验设备n (1) TEC-4计算机组成原理实验系统一台 (2) 双踪示波器一台 (3) 直流万用表一只 (4) 逻辑测试笔一支

(5) 集成电路若干片,取决于设计方案

集成电路建议使用ISP芯片(一片ispLSI1032)。采用ISP器件,则需要一台PC机运行设计自动化软件(例如ispEXPERT)作设计、编程和下载使用。

数据格式和指令系统采用与模型计算机相同的指令系统,即12条机器指令。同样考虑到复杂度和时间问题,一般应降低难度,采用该指令系统的子集;去掉中断指令后的3条机器指令,只保留9条指令。

N实验人员n 指导老师:白中英老师,张杰老师

实验员:沈镭 计算机学院01级10班12号 010990

贾慧颖 计算机学院01级10班22号 011000 李佳媛 计算机学院01级10班23号 011001

- 3 -

计算机组成原理设计文档

实 验 手 记

预备篇

在开始的几天里,我们并没有急着开始着手于上机等工作,而是把更多的时间放到了对整个实验的了解上,我们从我们已经做过的微程序控制器实验入手,试着找出两个实验的不同与相通点,并从图书馆里借来了一些相关的书籍,对硬布线控制器有了更进一步的了解。

在第三天,在老师的帮助下,我们有幸得到了一本00级学长关于这个实验的设计文档,这份文档给了我们莫大的帮助,虽然通过前几天的学习,我们对硬布线控制器的原理和构造有了比较深刻的认识,但是我们对很多关于实验方面的问题仍然感到不是非常的清楚。这份文档做为一个成功的范例给了我们很多的启示,也让我们对这个实验有了更多的感性认识,而其中学长的经验也让我们以后的实验设计和调试避免了不少的错误。

设计篇

从6月27日至7月2日,我们把大量的时间花在了实验流程的设计和编码工作上。 仔细阅读了学长们设计的流程图后,我们认为,学长们所设计的采用8拍的流程图有一些浪费,能不能做出一个只用4拍的流程图来实现硬布线控制器的功能呢?我们把这个想法反映给了老师,老师非常支持我们的想法,他鼓励我们进行大胆的尝试。

我们开始着手于将8拍压缩微4拍的工作,KRR,KRD,KWE,KRR四个指令由于原本就只有4拍,所以我们很快就将他们成功变成了4拍,剩下KLD和PR两个指令,都是原来有5拍的指令,是我们改造工作的难点。

这两条指令的情况又不相同,其中PR是在其机器指令部分,ADD,SUB,MUL,AND,LDA五

条指令中,最后必须有一拍来执行WRD.而WRD是写寄存器,我们不能

SR_W把它和上一拍进行合并,所以我们将它放到了PR的第一拍,并加入了1一个控制判断位,来判断是否应该执行这条指令(如图)。

0WRD对于KLD,我们想了很久,我们参考了微程序控制器的图,发现其

中使用了循环,而我们是不能使用循环的;我们又想到了并拍,我们已TJ信号为标志来考虑并拍,发现没有可以并起来的拍节,在这里我

们遇到了本次实验的第一个问题,我们向老师寻求了帮助,在老师的提醒下,我们发现在我们考虑并拍可能性的时候犯了一个错误,我们

SW-BUS#SW-BUS#认为两拍之间如果有TJ信号就不能并拍,但

CEL#CEL#是TJ信号其实是用来在SW-BUS#之前让我们

LRW=0LRW=0向总线输入的,所以只要保证两个SW-BUS#之TJ间有一个TJ信号就可以了,我们发现CERLDIRCER\\LDIR这拍和下面的SW-BUS#\\LDER并不冲

TJ突,所以我们将这两拍合并,并将TJ信号放

CER到了前面一拍中,从而对KLD实现了4拍。(如

LDIRSW-BUS#图)

SW-BUS#LDER在完成了流程图后(见附录),我们根据LDER流程图写出了译码表(见附录),并根据译码表写出了ABEL语言的源程序(见附录)。从而完成了设计阶段的工作,应该说,虽然我们在设计阶段花费了大量的时间,但是这给我们后面的上机实验带来了很大的方便。

- 4 -

计算机组成原理设计文档

实现篇

正如前文所说,由于我们在设计上做了大量的工作,给我们的调试工作带来了很多的方便,我们从7月3日上午开始进入实验室调试,至7月4日中午,调试完成,验收通过。 但是,在调试工作中,我们还是遇到了不少的问题,在这里,我们不对调试过程做过多的介绍,主要谈一谈我们在调试过程中遇到的问题。 我们将程序输入后,首先对控制台部分的程序进行了验证,在对每一个接口进行了检测,确认正确后,我们通过了控制台的验证。

可是进入了机器指令的执行后,我们发现了一个非常奇怪的问题,就是我们的程序在连续执行的时候,总是不停的从地址00H开始执行,我们对流程图进行了分析后,发现一个设计上的漏洞,由于我们是使用4拍实现,所以我们在进入PR后,每次执行完一个机器指令,都将回到PR的第一拍,此时总线将再度打开,接受程序开始地址的输入,这时一开始输入的地址将再次作为程序地址进入总线,对于这个问题,我们再次在该拍之前加入了一个控制位,该控制位在程序第一次进入时为1,此时执行该拍,而如果程序是从机器指令返回的话,将该控制位置为0,此时程序将跳过该拍。(如图)对于这个的语言实现,由于程序开始前

是处于第4拍的,所以不能简单的

SR_W用译码表来写出表达式,而必须使

SR_W1该控制位在第4拍的情况也发生变

01WRD化,所以我们采用了在第3拍强制

WRD置1,然后以SR_SW自身做为变量0SR_SW控制第4拍的翻转的方法,程序如

下: SW-BUS#1SR_SW := !SWC&!SWB&!SWA&(W3#W4&!SR_SW);

在解决了这个问题之后,我们再次运行程序,发现仍然没有得到正常

的答案,我们对程序再次进行了检查,发现了一些编码上的错误,并进行了改正。但是我们仍然没有得到正确的结果。

我们采取了逐条语句调试的方法,即只输入一个指令并执行,在第一条指令我们就没有得到正确的结果,于是我们对每一个接口进行了测试,发现了问题之所在。

由于每一次程序开始前,用来表示机器指令的IR7,IR6,IR5,IR4自动被置为0000,而这和机器中的ADD指令恰好相同,我们所写的判断程序就认为这是ADD指令,而在程序一开始就执行了WRD,导致了寄存器的混乱。对于这个问题,我们发现不能象解决控制SW_BUS#那样来解决,可能是灵光一显吧,我们发现在CLR按钮上也有一个接口,我们试着从CLR的接口上接出一条线,使控制位变量与之相关,即接受到CLR信号时,将该控制位直接置0,以跳过WRD。程序如下:

M4=1LDR4LDPCSW-BUS#M4=10LDR4LDPCSR_W :=!(!SWC&!SWB&!SWA&!IR7&IR6&!IR5&!IR4&W4 #!SWC&!SWB&!SWA&IR7&!IR6&!IR5&!IR4&W4 #!SWC&!SWB&!SWA&IR7&!IR6&!IR5&IR4&W4

#!SWC&!SWB&!SWA&!IR7&IR6&IR5&!IR4&W4)&!CLR;

经过验证,我们的想法时正确的,再次写入后,我们成功的得到了正确的结果。并且单步执行也顺利通过。

- 5 -

本文来源:https://www.bwwdw.com/article/vqeh.html

Top