当前位置:文档之家› 组成原理课程设计

组成原理课程设计

华北科技学院课程设计说明书班级: 计科B103 姓名:设计题目:__计算机组成原理课程设计_____ 设计时间:__2013-1-7 ____至__2013-1-18 ___ 指导教师:__ 邵铁君评语:_________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ 评阅成绩:____评阅教师:_____1.课程设计目的通过计算机组成原理课程设计,进一步熟练掌握计算机各功能部件的内部构造和相互之间的联系(部件配置、相互连接和作用)、各功能部件的性能参数的相互匹配、机器指令级的各种功能和特性。

学生能够将所学知识融会贯通、进一步系统化,进一步提高硬件系统设计的能力,为以后的更高一级的硬件设计打下坚实基础。

2.课程设计任务在现有的TEC-XP+教学机系统上扩展4条指令。

要求:(1)4条指令至少要用到4种寻址方式;(2)4条指令分别由1步、2步、3步、4步完成;(3)监控命令A、U必须能够支持这4条指令。

3.系统组成原理及实现(1)运算器运算器的组成:运算器通常由执行算术逻辑运算功能的ALU线路、暂存参加ALU运算的数据和中间运算结果的通用寄存器组、支持乘除法运算的专用寄存器3部分组成,3个部分之间通过多路选择器线路实现连接,从而构成一个完整的运算器部件。

TEC-XP系统机上的运算器的逻辑图见图3-1。

从图中可以看到,运算器部件主要包括两组独立的8位字长的运算器,各自由2片位片结构的运算器AM2901组成;还有状态标志(CZVS)寄存器和教学实验所需的相关逻辑部件。

AM2901的结构如图3-1所示。

图1 运算器部件十六位教学机运算器的设计与实现:TEC-XP计原l 6系统的运算器部件主体部分由4片长度为4位的位片结构运算器芯片Am2901组成。

4 片Am2901之间的连接如图2-3所示。

另外,使用MACH芯片内部的部分电路提供ALU最低位的进位输入信号和最高、最低位的移位输入信号;使用一片GAL20V8实现4位的标志位寄存器FLAG,用于接收ALU 输出的4个标志位信号和来自内存堆栈区的4位数据(用于恢复现场状态信息),FLAG的4位输出可以经过一片有三态功能的开关门电路送到内部总线IB,用于保存现场状态信息到堆栈区。

图2 4片Am2901连接图图3所示为16位运算器脱机实验的环境,在计原16系统中,运算器最低位的进位输入信号Cin和左右移位输入信号RAM0、Q0、RAMl5、Q15是由MACH芯片内部的SHIFT线路提供的,左侧的长方形部分是MACH内部的线路。

16个开关拨入的数据经开关门电路送到内部总线,内部总线与运算器的输入端D15~D0已经连接。

23位的微型开关的不同组合完成对ALU的不同控制,其编码对应的控制功能如表1和表2所示。

图3 16位运算器结构框图运算控制码及功能:表1 Am2901的9位控制码数据来源I2~I0说明了参与运算的数据的来源。

R为源寄存器,S为目标寄存器。

D表示数据总线上的数据。

Q寄存器可以作为一个中间的寄存器,存放中间运算的结果。

I5~I3提供了8种基本的运算功能,用三位编码来表示。

I8~I6表示对运算结果的处理。

在通用寄存器一栏中,从编码2到编码7表示将运算结果存放到目标寄存器中,Q寄存器一栏中,不为空的地方表示将数据运算结果存入Q寄存器中或者将修改Q寄存器并存入Q寄存器。

Y输出一栏表示ALU的输出结果。

表2 状态寄存器、最低进位输入、移位输入控制信号(2)微程序控制器微程序控制器的组成与实现:TEC-XP+教学计算机系统同时实现了微程序方案和组合逻辑方案的两种控制器,其总体组成如图4所示。

从两种控制器的组成来看,都包括有程序计数器PC、指令寄存器IR、程序定序器Am2910以及MACH芯片四部分。

PC是选用在运算器的通用寄存器组中的R5实现的,图中用虚线表示。

IR是选用两片8位的寄存器电路实现的,还用到一片传送IR低位字节内容到内部总线IB的开关门电路。

Am2910芯片用来确定微指令的执行次序。

图4微指令格式:(如右图5)图5指定的专用寄存器16位机 PC:R5 SP:R4 IO默认R0微程序控制器的控制信号:①对主存和输入输出接口(设备)的控制23位控制信号:A3~A0,B3~B0,I8~I6,I5~I3,I2~I0 SST2~0,SSHSCI2~0对内存和 I/O接口的读写/MIO(0:有内存或串口读写,1:无)REQ(0:读写内存, 1:读写串行口)/WE(0:写操作, 1:读操作)M R W编码功能:如图6②对内部总线和特定寄存器的控制图7 内部总线数据来源选择控制图8 专用寄存器接收控制③CI3~0编码及功能的控制CI3~0 功能0000(0#)初始化0010(2#) MAPROM0011(3#) 条件微转移1110(14#) 顺序执行4.扩展4条指令(1)4条指令的格式及功能指令格式功能寻址方式操作码编码微程序步数微程序入口地址SLIN DR DR*2+1DR 寄存器直接寻址00100010(22)2步80INCM [SR],DR [SR]+1[SR]寄存器间接寻址10100001(A1)3步82MULT DR,[SR] [SR]*3DR目标寄存器为直接寻址,源寄存器为间接寻址11100011(E3)4步85MULN DR,DATA DATA-1DR立即数寻址11101001(E9)3步8A(2)指令所对应的微程序指令操作码微址下址CI3~0SCC3~0MRW I2~0 I8~6 I5~3 B口A口SSTSSH~SciDC2 DC1SLIN8081 00 1110 0000 0100 0011 0111 0000 1000 0000 0001 0000 0000 0000 30 0011 0000 0100 0011 0011 1000 1000 0000 0001 0001 0000 0000INCM 82838400 1110 0000 0100 0011 0001 0000 1000 0000 0000 0000 0011 000000 1110 0000 0001 0111 0000 0000 0000 0000 0001 0001 0000 000030 0011 0000 0000 0010 0001 0000 0000 0000 0000 0000 0000 0001MULT 8586878800 1110 0000 0100 0100 0001 0000 0000 0008 0000 0000 0011 000000 1110 0000 0001 0111 0000 0000 0000 0000 0000 0000 0000 000000 1110 0000 0100 0010 0110 0000 0000 0000 0001 0000 0000 000030 0011 0000 0001 0110 0011 0000 1000 0000 1000 0000 0000 0000MULN8A 00 1110 0000 0100 0011 0010 0000 0101 0101 0000 0001 0011 0000 00 1110 0000 0001 0111 0011 0000 1000 0000 0000 0000 0000 0000 30 0011 0000 0100 0011 0011 0001 1000 0000 0001 0000 0000 0000(3)指令的实现过程:①.第1条指令SLIN第一步微指令完成DR的值左移一位,即DR乘2。

第二步微指令完成DR的值增1。

第一步编码意义下地址00 指令执行完后执行得下一条指令的地址CI3~0 1110顺序执行SCC3~0 0000程序执行方式MRW 0100无读写操作I2~I0 0011数据来源于B寄存器I8~6 01112F->B;Y输出结果I5~3 0000运算功能R + SB口1000 使用指定寄存器A口0000 不使用指定寄存器SST 0001接收标志位输出得值SSH、SCI 0000不涉及最低位的操作, 值为0 DC2 0000寄存器接受信息不用DC1 0000内部总线信息来源来自开关第二步编码意义下地址30 指令执行完后执行得下一条指令的地址CI3~0 0011条件转移执行SCC3~0 0000程序执行方式MRW 0100无读写操作I2~I0 0011数据来源于B寄存器I8~6 0011累加器:F->B;Y输出结果I5~3 0000运算功能R + SB口1000 使用指定寄存器A口0000 不使用指定寄存器SST 0001接收标志位输出得值SSH、SCI 0001数据的最低位需要加1, 值为1 DC2 0000寄存器接受信息不用DC1 0000内部总线信息来源来自开关②. 第2条指令INCM 内存值加1指令:INCM [SR],DR第一步微指令是完成将SR中的地址值送入数据地址寄存器AR中。

第二步微指令是完成将相应内存中的值增1并送入Q寄存器中。

第三步微指令是完成将Q寄存器中的值写入原来的内存中。

第一步编码意义下地址00 指令执行完后执行得下一条指令的地址CI3~0 1110 顺序执行SCC3~0 0000 程序执行方式MRW 0100 无读写操作I2~I0 0011 数据来源于B寄存器I8~6 0001没有涉及到源和目标寄存器的使用,对运算结果的处理是将运算器的输出结果输出到数据总线上I5~3 0000 运算功能为源寄存器与目标寄存器的值相加,其结果仍为源寄存器中的值,运算功能对结果无影响B口1000 使用了目标寄存器A口0000 没有使用源寄存器SST 0000 该微指令没有影响状态寄存器,即保持原来状态寄存器中的值SSH、SCI 0000 不涉及最低位的操作, 值为0DC2 0011 编码为011,表示地址寄存器AR接收数据总线上的值DC1 0000 开关到内部总线第二步编码意义下地址00 指令执行完后执行得下一条指令的地址CI3~0 1110 条件转移执行SCC3~0 0000 程序执行方式MRW 0001 读出相应内存中的数据I2~I0 0111 来源于数据总线内存中的值I8~6 0000 将运算结果送入Q寄存器中,输出I5~3 0000 选择指令中的寄存器,数据处理方式进行加操作B口0000 不使用指定寄存器A口0000 不使用指定寄存器SST 0001 由于加法操作会改变状态寄存器,所以SST的编码为001SSH、SCI 0001 数据的最低位要加1,即最低位进位为1 DC2 0000 寄存器接受信息不用DC1 0000 开关到内部总线第三步编码意义下地址30 指令执行完后执行得下一条指令的地址CI3~0 0011 条件转移执行SCC3~0 0000 程序执行方式MRW 0000 无读写操作I2~I0 0010 数据来源于Q寄存器I8~6 0001 对运算结果的处理是将运算器的输出结果输出到数据总线上I5~3 0000 选择指令中的寄存器,数据处理方式进行加操作B口0000 不使用指定寄存器A口0000 不使用指定寄存器SST 0000 该微指令没有影响状态寄存器,即保持原来状态寄存器中的值SSH、SCI 0000 不涉及最低位的操作DC2 0000 寄存器接受信息不用DC1 0001 由于需要将运算器的结果输出后内存才能写入,所以DC1的编码为001,即ALU输出到内部总线③.第3条指令MULT :MULT DR,[SR]第一步将SR中的地址送入AR中。

相关主题