1、 计算机组成原理实验课程实 验 报 告实验题目 组成原理上机实验 班 级 1237-小 姓 名 学 号 时 间 2014 年 5 月 成 绩 实验一 基本运算器实验1.实验目的(1)了解运算器的组成原理(2)掌握运算器的工作原理2.实验内容输入数据,根据运算器逻辑功能表 1-1 进行逻辑、移位、算术运算,将运算结果填入表 1-2。表 1-1 运算器逻辑功能表运算类型A B S3 S2 S1 S0CN 结果65 A7 0 0 0 0 X F=( 65 ) FC=( ) FZ=( )65 A7 0 0 0 1 X F=( A7 ) FC=( ) FZ=( )0 0 1 0 X F=( ) FC=(
2、 ) FZ=( )0 0 1 1 X F=( ) FC=( ) FZ=( )逻辑运算0 1 0 0 X F=( ) FC=( ) FZ=( )0 1 0 1 X F=( ) FC=( ) FZ=( )0 F=( ) FC=( ) FZ=( )0 1 1 01 F=( ) FC=( ) FZ=( )0 F=( ) FC=( ) FZ=( )移位运算0 1 1 11 F=( ) FC=( ) FZ=( )1 0 0 0 X F=( ) FC=( ) FZ=( )1 0 0 1 X F=( ) FC=( ) FZ=( )1 0 1 0(FC=0)X F=( ) FC=( ) FZ=( )1 0 1
3、0(FC=1)X F=( ) FC=( ) FZ=( )1 0 1 1 X F=( ) FC=( ) FZ=( )1 1 0 0 X F=( ) FC=( ) FZ=( )算术运算1 1 0 1 X F=( ) FC=( ) FZ=( )表 1-2 运算结果表3.实验原理本实验的原理如图 1-1 所示。运算器内部含有三个独立运算部件,分别为算术、逻辑和移位运算部件,要处理的数据存于暂存器 A 和暂存器 B,三个部件同时接受来自 A 和 B 的数据(有些处理器体系结构把移位运算器放于算术和逻辑运算部件之前,如 ARM) ,各部件对操作数进行何种运算由控制信号 S3S0 和 CN 来决定,任何时候
4、,多路选择开关只选择三部件中一个部件的结果作为 ALU 的输出。如果是影响进位的运算,还将置进位标志 FC,在运算结果输出前,置 ALU 零标志。ALU 中所有模块集成在一片 CPLD 中。图 1-1 运算器原理图逻辑运算部件由逻辑门构成,较为简单,而后面又有专门的算术运算部件设计实验,在此对这两个部件不再赘述。移位运算采用的是桶形移位器,一般采用交叉开关矩阵来实现,交叉开关的原理如图 1-2 所示。图 1-2 中显示的是一个 4X4 的矩阵(系统中是一个 8X8 的矩阵) 。每一个输入都通过开关与一个输出相连,把沿对角线的开关导通,就可实现移位功能,即:(1)对于逻辑左移或逻辑右移功能,将一
5、条对角线的开关导通,这将所有的输入位与所使用的输出分别相连,而没有同任何输入相连的则输出连接 0。(2)对于循环右移功能,右移对角线同互补的左移对角线一起激活。例如,在 4 位矩阵中使用右 1和左 3对角线来实现右循环 1 位。(3)对于未连接的输出位,移位时使用符号扩展或是 0 填充,具体由相应的指令控制。使用另外的逻辑进行移位总量译码和符号判别。运算器部件由一片 CPLD 实现。ALU 的输入和输出通过三态门 74LS245 连到 CPU 内总线上,另外还有指示灯标明进位标志 FC 和零标志 FZ。请注意:实验箱上凡丝印标注有马蹄形标记 ,表示这两根排针之间是连通的。图中除 T4 和 CL
6、R,其余信号均来自于 ALU 单元的排线座,实验箱中所有单元的 T1、T2、T3、T4 都连接至控制总线单元的 T1、T2、T3、T4,CLR 都连接至 CON 单元的 CLR 按钮。T4 由时序单元的 TS4 提供(时序单元的介绍见附录二) ,其余控制信号均由 CON 单元的二进制数据开关模拟给出。控制信号中除 T4 为脉冲信号外,其余均为电平信号,其中 ALU_B 为低有效,其余为高有效。暂存器 A 和暂存器 B 的数据能在 LED 灯上实时显示,原理如图 1-3 所示(以 A0 为例,其线路连接图它相同) 。进位标志 FC、零标志 FZ 和数据总线 D7D0 的显示原理也是如此。图 1-
7、3 A0 显示原理图运算器的逻辑功能表如表 1-1 所示,其中 S3 S2 S1 S0 CN 为控制信号,FC 为进位标志,FZ 为运算器零标志,表中功能栏内的 FC、FZ 表示当前运算会影响到该标志。4.实验结果运算类型A B S3 S2 S1 S0CN 结果65 A7 0 0 0 0 X F=( 65 ) FC=( 0 ) FZ=( )65 A7 0 0 0 1 X F=( A7 ) FC=( 0 ) FZ=( )0 0 1 0 X F=( 26 ) FC=( 0 ) FZ=( )0 0 1 1 X F=( E7 ) FC=( 0 ) FZ=( )逻辑运算0 1 0 0 X F=( 9A
8、) FC=( 0 ) FZ=( )0 1 0 1 X F=( CA ) FC=( 1 ) FZ=( )0 F=( 32 ) FC=( 1 ) FZ=( )0 1 1 01 F=( B2 FC=( 1 ) FZ=( )0 F=( CA) FC=( 0 ) FZ=( )移位运算0 1 1 11 F=(CA ) FC=( 0 ) FZ=( )1 0 0 0 X F=( 65 ) FC=( 1 ) FZ=( )1 0 0 1 X F=( 0C ) FC=( 1 ) FZ=( ) 1 0 1 0(FC=0)X F=( 33 ) FC=( 1 ) FZ=( ) 1 0 1 0(FC=1)X F=( 0D
9、) FC=( 1 ) FZ=( )1 0 1 1 X F=(BE ) FC=( 1 ) FZ=( )1 1 0 0 X F=( 64 ) FC=( 0 ) FZ=( )算术运算1 1 0 1 X F=( 66 ) FC=( 0 ) FZ=( )5.实验心得通过本次试验,了解了运算器的组成原理和工作原理,初步了解这门实验课的方法和步骤等,这只是一次很简单的实验,为的就是为后面几次相对比较复杂的实验打下坚实的基础,以便于更好的学习。实验二 静态随机存储器实验1.试验目的掌握静态随机存储器 RAM 工作特性及数据的读写方法2.实验内容1. 向存储器中指定的地址单元输入数据,地址先输入 AR 寄存器,
10、再将数据送入总线后,存到指定的存储单元,观察数据在各部件上的显示结果。2. 从存储器中指定的地址单元读出数据, 地址先输入 AR 寄存器, 读出的数据送入总线, 观察数据在各部件上的显示结果。3.实验原理实验所用的静态存储器由一片 6116(2K8bit)构成(位于 MEM 单元) ,如图 2-1 所示。6116 有三个控制线:CS(片选线) 、OE(读线) 、WE(写线) ,其功能如表 2-1 所示,当片选有效(CS=0)时,OE=0 时进行读操作,WE=0 时进行写操作,本实验将 CS 常接地。由于存储器(MEM)最终是要挂接到 CPU 上,所以其还需要一个读写控制逻辑,使得 CPU 能控
11、制 MEM 的读写,实验中的读写控制逻辑如图 2-2 所示,由于 T3 的参与,可以保证 MEM 的写脉宽与 T3 一致,T3 由时序单元的 TS3 给出(时序单元的介绍见附录 2) 。IOM 用来选择是对 I/O 还是对 MEM 进行读写操作,RD=1 时为读,WR=1 时为写。如表 2-2 所示。表 2-1 SRAM 6116 功能表 图 2-2 读写控制逻辑表 2-2 读写逻辑控制表IOM WR RD IN OUT MEM1 1 0 有效1 0 1 有效0 1 0 写0 0 1 读实验原理图如图 2-3 所示,存储器数据线接至数据总线,数据总线上接有 8 个 LED 灯显示 D7D0 的
12、内容。地址线接至地址总线,地址总线上接有 8 个 LED 灯显示 A7A0 的内容,地址由地址锁存器(74LS273,位于 PC&AR 单元)给出。数据开关(位于 IN 单元)经一个三态门(74LS245)连至数据总线,分时给出地址和数据。地址寄存器为 8 位,接入 6116 的地址A7A0,6116 的高三位地址 A10A8 接地,所以其实际容量为 256 字节。实验箱中所有单元的时序都连接至时序与操作台单元,CLR 都连接至 CON 单元的 CLR 按钮。实验时 T3 由时序单元给出,其余信号由 CON 单元的二进制开关模拟给出,其中 IOM 应为低(即 MEM 操作) ,RD、WR 高有
13、效,MR 和 MW 低有效,LDAR 高有效。图 2-3 存储器实验原理图4.实验心得通过本次试验,了解了静态随机存储器 RAM 工作特性及数据的读写方法,同时知道了组成原理的理论课也很重要,没有理论课的基础,实验时就不知道怎么弄了,只有把理论和实践结合起来才能学好这门课。实验三 系统总线与总线接口1.实验目的(1)理解总线的概念及其特性(2)掌握控制总线的功能和应用2.实验内容1、 输入设备将一个数打入 R0 寄存器。2、 输入设备将另一个数打入地址寄存器。3、 将 R0 寄存器中的数写入到当前地址的存储器中。4、将当前地址的存储器中的数用 LED 数码管显示。3.实验原理实验接线图由于存储
14、器和输入、输出设备最终是要挂接到外部总线上,所以需要外部总线提供数据信号、地址信号以及控制信号。在该实验平台中,外部总线分为数据总线、地址总线、和控制总线,分别为外设提供上述信号。外部总线和 CPU 内总线之间通过三态门连接,同时实现了内外总线的分离和对于数据流向的控制。地址总线可以为外部设备提供地址信号和片选信号。表 3-2 读写逻辑控制表IOM WR RD IN OUT MEM1 1 0 有效1 0 1 有效0 1 0 写0 0 1 读在理解读写控制逻辑的基础上我们设计一个总线传输的实验。实验所用总线传输实验框图如图 3-3 所示,它将几种不同的设备挂至总线上,有存储器、输入设备、输出设备
15、、寄存器。这些设备都需要有三态输出控制,按照传输要求恰当有序的控制它们,就可实现总线信息传输。图 3-3 总线传输实验框图4.实验心得通过本次试验,我们对总线的概念和其特性及控制总线的功能和应用得到更多的了解。学会了自己译码,自己译出控制信号等,感觉这是一门比较有趣的课程,希望这能在以后的学习和工作中带来一定的益处。实验四 微程序控制器实验1.实验目的(1)掌握微程序控制器的组成原理(2)掌握微程序的编制、写入,观察微程序的运行过程2.实验内容设计以下机器指令的微程序,如表4-2所示:表4-2 机器指令的微程序助记符 机器指令码 说明IN 0010 0000 IN R0ADD 0000 000
16、0 R0 + R0R0OUT 0011 0000 R0OUTHLT 0101 0000 停机本实验安排了四条机器指令,分别为 ADD(0000 0000)、IN(0010 0000)、OUT(0011 0000)和 HLT(0101 0000),括号中为各指令的二进制代码3.实验原理微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。这样就可以用一个微指令序列表示一条机器指令
17、,这种微指令序列称为微程序。微程序存储在一种专用的存储器中,称为控制存储器,微程序控制器原理框图如图 4-1 所示。图 4-1 微程序控制器组成原理框图微程序控制器的组成见图4-2,其中控制存储器采用 3 片 2816 的 E2PROM,具有掉电保护功能,微命令寄存器 18 位,用两片 8D 触发器(273)和一片 4D(175)触发器组成。微地址寄存器 6 位,用三片正沿触发的双 D 触发器(74)组成,它们带有清“0”端和预置端。在不判别测试的情况下,T2 时刻打入微地址寄存器的内容即为下一条微指令地址。当 T4 时刻进行测试判别时,转移逻辑满足条件后输出的负脉冲通过强置端将某一触发器置为
18、“1”状态,完成地址修改。首先将 KK1 拨至停止档、KK3 拨至编程档、KK4 拨至控存档、KK5 拨至置数档,由 CON 单元的 SD05SD00 开关给出需要编辑的控存单元首地址(000000),IN 单元开关给出该控存单元数据的低 8 位(00010001),连续两次按动时序与操作台单元的开关ST(第一次按动后 MC 单元低 8 位显示该单元以前存储的数据,第二次按动后显示当前改动的数据),此时 MC 单元的指示灯 MA5MA0 显示当前地址(000000),M7M0 显示当前数据(00010001)。然后将 KK5 拨至加 1档,IN 单元开关给出该控存单元数据的中 8 位(0010
19、0010),连续两次按动开关 ST,完成对该控存单元中 8 位数据的修改,此时 MC 单元的指示灯 MA5MA0 显示当前地址(000000),M15M8 显示当前数据(00100010);再由 IN 单元开关给出该控存单元数据的高 8 位(00110011),连续两次按动开关 ST,完成对该控存单元高 8 位数据的修改此时 MC 单元的指示灯 MA5MA0 显示当前地址(000000),M23M16 显示当前数据(00110011)。此时被编辑的控存单元地址会自动加 1(01H),由 IN 单元开关依次给出该控存单元数据的低 8 位、中 8 位和高 8 位配合每次开关 ST 的两次按动,即可
20、完成对后续单元的编辑。编辑完成后需进行校验,以确保编辑的正确。以校验 00H 单元为例,对于控制存储器进行校验的具体操作步骤如下:首先将 KK1 拨至停止档、KK3 拨至校验档、KK4 拨至控存档、KK5 拨至置数档。由 CON 单元的 SD05SD00 开关给出需要校验的控存单元地址(000000),连续两次按动开关 ST,MC 单元指示灯 M7M0 显示该单元低 8 位数据(00010001);KK5 拨至加 1档,再连续两次按动开关 ST,MC 单元指示灯 M15M8 显示该单元中 8 位数据(00100010);再连续两次按动开关 ST,MC 单元指示灯 M23M16 显示该单元高 8
21、 位数据(00110011)。位于实验平台 MC 单元左上角一列三个指示灯 MC2、MC1、MC0 用来指示当前操作的微程序字段,分别对应 M23M16、M15M8、M7M0。实验平台提供了比较灵活的手动操作方式,比如在上述操作中在对地址置数后将开关 KK4 拨至减 1档,则每次随着开关 ST 的两次拨动操作,字节数依次从高 8 位到低 8 位递减,减至低 8 位后,再按动两次开关ST,微地址会自动减一,继续对下一个单元的操作。表 4-1 微指令格式其中 MA5MA0 为 6 位的后续微地址,A、B、C 为三个译码字段,分别由三个控制位译码出多位。C 字段中的 P为测试字位。其功能是根据机器指
22、令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现完成对指令的识别,并实现微程序的分支,本系统上的指令译码原理如图 4-3 所示,图中 I7I2 为指令寄存器的第 72 位输出,SE5SE0 为微控器单元微地址锁存器的强置端输出,指令译码逻辑在 IR 单元的 INS_DEC(GAL20V8)中实现。从图 4-2 中也可以看出,微控器产生的控制信号比表 4-1 中的要多,这是因为实验的不同,所需的控制信号也不一样,本实验只用了部分的控制信号。本实验除了用到指令寄存器(IR)和通用寄存器 R0 外,还要用到 IN 和 OUT 单元,从微控器出来的信号中只有 IOM、WR 和 RD 三个
23、信号,所以对这两个单元的读写信号还应先经过译码,其译码原理如图 4-4 所示。IR 单元的原理图如图 4-5 所示,R0 单元原理如图 4-7 所示,IN 单元的原理图见图 4-3 所示,OUT 单元的原理图见图 4-6 所示。图 4-3 指令译码原理图图 4-4 读写控制逻辑 图 4-5 IR 单元原理图实验中机器指令由 CON 单元的二进制开关手动给出,其余单元的控制信号均由微程序控制器自动产生,为此可以设计出相应的数据通路图,见图 4-8 所示。图 4-8 数据通路图4.实验心得通过本次试验,我学习到了微程序控制器的组成原理及其编制、写入。每一条控制代码,都是由几个控制代码组合而成,这用
24、到了前面几次实验的知识,也让我掌握了自己编写控制代码的能力,感觉这次实验中收获良多,相信对最后一次实验会有很大的帮助。实验五 简单模型机设计实验1.实验目的(1)掌握一个简单 CPU 的组成原理(2)在掌握部件单元电路的基础上,进一步将其构造成一台基本模型计算机(3)为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念2.实验内容用所设计的5条机器指令编写一汇编语言程序,运行该程序并观察程序运行的结果。要求该程序必须包含IN、ADD、OUT、JMP、HLT指令并且程序的长度在6条指令以上。设计一段机器程序,要求从 IN 单元读入一个数据,存于 R0,将 R0 和自身相加,结果存于R0
25、,再将 R0 的值送 OUT 单元显示。3.实验原理简单模型机微程序流程图本实验要实现一个简单的 CPU,并且在此 CPU 的基础上,继续构建一个简单的模型计算机。CPU 由运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图 5-1-1 所示。这个 CPU 在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU 必须和主存挂接后,才有实际的意义,所以还需要在该 CPU 的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。除了程序计数器(PC),其余部件在前面的实验中
26、都已用到,在此不再讨论。系统的程序计数器(PC)和地址寄存器(AR)集成在一片 CPLD 芯片中 。CLR 连接至 CON 单元的总清端CLR,按下 CLR 按钮,将使 PC 清零,LDPC 和 T3 相与后作为计数器的计数时钟,当 LOAD为低时,计数时钟到来后将 CPU 内总线上的数据打入 PC。图 5-2 程序计数器(PC)原理图本模型机和前面微程序控制器实验相比,新增加一条跳转指令 JMP,共有五条指令:IN(输入)、ADD(二进制加法)、OUT(输出)、JMP(无条件转移),HLT(停机),其指令格式如下(高位为操作码):其中 JMP 为双字节指令,其余均为单字节指令,*为 addr
27、 对应的二进制地址码。微程序控制器实验的指令是通过手动给出的,现在要求 CPU 自动从存储器读取指令并执行。根据以上要求,设计数据通路图,如图 5-3 所示。图 5-3 数据通路图本实验在前一个实验的基础上增加了三个部件,一是 PC(程序计数器),另一个是 AR(地址寄存器),还有就是 MEM(主存)。因而在微指令中应增加相应的控制位,其微指令格式如表 5-1 所示。4.实验结果5.实验心得通过本次实验我了解到了微程序和微指令与微程序之间的关系,这几次实验中我获益良多,平时我们能见到的都是计算机的外部结构,在计算机组成原理的学习中,逐步对计算机的内部结构有了一些了解,但始终都停留在理论阶段。而在简单模型机设计中,让让我对运算器的内部结构有了更深的了解,并且对计算机组成原理也有了更深层次的理解,同时这次课程设计还锻炼了我的实验动手能力,也培养了我的认真负责的科学态度。