您的当前位置:首页正文

090401003蒋佳林

2022-08-26 来源:意榕旅游网


辽 宁 工 业 大 学

计算机组成原理 课程设计(论文)

题目:一台模型计算机设计与测试 ——乘法指令流程

院(系): 电子与信息工程学院 专业班级: 计算机091班 学 号: 090401003 学生姓名: 蒋佳林 指导教师: 张 军 教师职称: 副教授 起止时间:2012-01-02至2012-01-06

课程设计(论文)任务及评语

院(系):电子与信息工程学院 教研室:计算机科学与技术 学 号 课程设计(论文)题目 090401003 学生姓名 蒋佳林 专业班级 计算机091班 一台模型计算机设计与测试 ——乘法指令流程 利用试验箱中的电路模块组合成为一台简单计算机,数据通路的控制由微程序控制器完成,CPU从内存取出一条机器指令到执行指令结束的一个机器指令周期,是由微指令组成的序列完成。 主要设计内容: 1. 将微程序控制器同执行部件联机,组成一台模型计算机; 2. 用微程序控制器控制模型机数据通路; 3. 通过CPU运行机器指令,编写乘法指令所对应的微程序。 要求: 1、根据题目和试验箱中的电路模块设计一台简单计算机,并画出电路原理图以及微程序流程图。 2、认真独立完成所规定的设计内容(4000字左右),严禁相互抄袭; 3、撰写、打印设计说明书一份。 平时成绩: 论文质量: 答 辩: 总成绩 : 指导教师签字: 学生签字: 2012 年 1 月 6 日 课程设计(论文)任务 指导教师评语及成绩辽 宁 工 业 大 学 计 算 机 组 原 理

目 录

第1章 一台模型计算机的设计方案........................................ 1

1.1 引言 ................................................................ 1 1.2 总体方案论述 ........................................................ 1

第2章 一台模型计算机的硬件设计........................................ 3

2.1 数据通路的设计 ...................................................... 3 2.2 微程序控制器的设计 .................................................. 5 2.3 模型机的设计与调试 .................................................. 7

第3章 微程序设计 ....................................................... 10

3.1 微程序流程图 ....................................................... 10 3.2 微程序代码的设计与测试 ............................................. 10

第4章 课程设计总结..................................................... 12 参考文献 ................................................................. 13

辽 宁 工 业 大 学 计 算 机 组 原 理

第1章 一台模型计算机的设计方案

1.1 引言

本次课程设计用到的电路包括运算器、存储器、通用寄存器堆、程序计数器、指令寄存器、微程序控制器等,将几个模块组合成为一台简单计算机。

计算机模型采用了数据总线和指令总线双总线体制能实现流水控制。控制器有微程序控制器或者硬布线控制器两种类型,每种类型又有流水和非流水两种方案。寄存器堆由1片ispLSI1016组成,运算器由1片ispLSI1024组成。实验台上包括了1片系统编程芯片ispLSI1032,可用它实现硬件布线控制。

1.2 总体方案论述

1.2.1 系统组成框图

图1系统总体框图

1

辽 宁 工 业 大 学 计 算 机 组 原 理

1.2.2乘法指令流程设计任务

1利用机器指令系统编制简单程序,要求至少使用其中五条指令,对自己编制的简单程序进行译码,手工汇编成十六进制机器代码。

2参考计算机组成原理课程设计指导书的步骤完成连线,控制器是控制部件,数据通路是执行部件,时序产生器是时序部件。连线包括控制台、时序部分、数据通路和微程序控制器之间的连接。

3将上述任务(1)中的程序机器代码用控制台操作存入内存中,并根据程序的需要,用数码开关SW7—SW0设置通用寄存器及内存相关单元的数据。

4用单拍(DP)方式执行一遍程序,列表记录通用寄存器堆RF中寄存器的数据,以及RAM中的数据,与理论分析值做作对比。单拍方式执行是注意观察微地址指示灯、IR/DBUS指示灯、AR2/AR1指示灯和判断字段指示灯的值,以跟踪程序中取指令和执行指令的详细过程。

5以单指(DZ)方式重新执行程序一遍,注意观察IR/DBUS指示AR2/AR1指示灯的值。执行结束后,记录RF中四个寄存器的数据,以及RAM中的数据,与理论分析值作对比。

6以连续方式(DB、DP、DZ都设为0)再次执行程序。这种情况相当于计算机正常运行程序。由于程序中有停机指令STP,程序执行到该指令时自动停机。执行结束后,记录RF中四个寄存器的数据,以及RAM中的数据,与理论分析值作对比。

2

辽 宁 工 业 大 学 计 算 机 组 原 理

第2章 一台模型计算机的硬件设计

2.1 数据通路的设计

图2数据通路框图

2.1.1 运算器 ALU

运算器ALU由一片ispLS1024(U47)组成,在选择端S2、S1、S0控制下,对数据A和B进行加、减、与、直通、乘五种运算,功能如下: 选择 S2 0 0 0 0 1 表1操作功能表 操作 S1 0 0 1 1 0 SO 0 1 0 1 0 A&B A&A(直通) A+B A-B A(低4位)*B(低4位) 进位C只在加法和运算和减法运算是产生。加运算中,C表示进位;减运算中,C代表借位。加、减运算产生的进位(借位)在T4的上升沿送入C寄存器保存。与、乘、直通操作不影响进位C的状态,即进位C保持不变。当ALU_BUS=1时,运算结果送往数据总线DBUS。加、减运算产生的进位(借位)C与控制台的C指示灯相连。

3

辽 宁 工 业 大 学 计 算 机 组 原 理

2.1.2 存储器

双端口存储器由一片IDT7132(U36)及少量附加控制电路组成。IDT7132是2048字节的双端口静态随机存储器,本机实际使用256字节。IDT7132两个端口可同时进行读、写操作。在本机中,左端口的数据连接数据总线DBUS,可进行读、写操作,右端口数据和指令总线INS连接,输出到指令寄存器IR,作为只读端口使用。存储器IDT7132有6个控制引脚:CEL#、LRW、OLE#、CER#、RRW、OER#。CEL#、LRW、OLE#控制左端口读、写操作,CER#、RRW、OER#控制右端口读、写操作。CEL#为左端口选择引脚,低有效,为高时禁止左端口操作;LRW为高时,左端口进行读操作,LRW为低时,左端口进行写操作;OER#为低时,将左端口读出的数据放到数据总线DBUS上。CER#、RRW、OER#控制右端口读、写操作的方式与CEL#、LRW、OER#控制左端口读、写操作的方式类似,不过右端口读出的数据放到指令总线上而不是数据总线上。本机设计中,OER#已固定接地,RRW固定接高电平,CER#有CER反相产生。当CER=1时,右端口读出数据,并放到指令总线INS上;当CER=0时,禁止右端口操作。左端口的OLE#由LRW反相产生,不需单独控制。当CEL#=0且LRW=1时,左端口进行读操作;当CER#=0且LRE=0时,在T3的上升沿开始进行写操作,将数据总线DBUS上的数据写入存储器。

2.1.3 输入与输出

开关寄存器SW_BUS(U38)是1片74HC244,用于将控制台开关SW7—SW0的数据送往数据总线DBUS。当SW_BUS#=1时,禁止开关SW7—SW0的数据送往数据总线DBUS;当SW_BUS#=0时,允许开关SW—SW0的数据送往数据总线DBUS。

通过SW7—SW0输入数据,把数据输入到ER中,然后分别RF中的中的R0—R3中,然后通过选择,分别通过A、B端口送入DR1和DR2。然后送入ALU进行相应的运算,再把结果通过DBUS送入RAM进行存储。然后再通过SW7—SW0输入数据,通过DBUS送入RAM中,读取RAM中相应单元的数据,并把指令通过INS送入IR,在送入控制器中,然后经过一系列的传送通过数据指示灯显示出来。

4

辽 宁 工 业 大 学 计 算 机 组 原 理

2.2微程序控制器的设计

OP 控制存储器 微地址寄存器 地址转移逻辑 P字段 控制字段

图3微程序控制器

2.2.1 机器指令格式

根据下列表的代码格式。产生不同的功能,完成各个任务。 名称 加法 减法 乘法 逻辑与 存数 取数 无条件转移指令 条件转移 停机 中断返回 开中断 关中断

表2指令格式表 助记符 功能 指令格式 R7 R6 R5 R4 ADD Rd,Rs Rd+Rs->Rd 0 0 0 0 SUB Rd,Rs Rd-Rs->Rd 0 0 0 1 MUL Rd,Rs Rd*Rs->Rd 0 0 1 0 AND Rd,Rs Rd&Rs->Rd 0 0 1 1 STA Rd,[Rs] Rd->[Rs] 0 1 0 0 LDA Rd,[Rs] [Rs]->Rd 0 1 0 1 JMP [Rs] [Rs]->Pc 1 0 0 0 JC D 若C=1则 1 0 0 1 PC+D->PC STP 暂停运行 0 1 1 0 IRET 返回断点 1 0 1 0 INTS 允许中断 1 0 1 1 INTC 禁止中断 1 1 0 0 R3 R2 RS1 RS0 RS1 RS0 RS1 RS0 RS1 RS0 RS1 RS0 RS1 RS0 RS1 RS0 D3 D2 X X X X X X X X R1 R0 RD1 RD0 RD1 RD0 RD1 RD0 RD1 RD0 RD1 RD0 RD1 RD0 X X D1 D0 X X X X X X X X 5

辽 宁 工 业 大 学 计 算 机 组 原 理

SWC SWB 0 0 0 0 0 1 0 1 1 0 2.2.2 电路设计

SWA 0 1 0 1 0 表3控制台指令格式表 工作方式 PR, 启动程序 KRD,读双端口存储器 KWE,写双端口存储器 KLD,加载寄存器存器堆 KRR,读寄存器堆 使用计算机组成原理实验的电路图,但本次课设加入中断系统。设计一个简单的中断系统模型,只支持单级中断、单个中断请求,有中断屏蔽功能,旨在说明最基本的原理。

中断屏蔽控制逻辑分别集成在2片GAL22V10(TIMER1和TIMER2)中。其ABEL语言表达式如下:

INTR1:=INTR; INTR1.CLK=CLK1;

IE:=CLR&INTS#CLR&IE&!INTC; IE.CLK=MF; INTQ=IE&INTR1;

其中CLK1是TIMER1产生的时钟信号,它主要是作为W1—W4的时钟脉冲,这里作为INTR1的时钟信号,INTE的时钟信号是晶振产生的MF。INTS微指令位是INTS机器指令执行过程中从控制存储读出的,INTC微指令位是INTC机器指令执行过程中从控制存储器读出的。INTE是中断允许标志,控制台有一个指示灯IE显示其状态,它为1时,允许中断,为0时,禁止中断。当INTS=1时,在下一个MF的上升沿IE变1,当INTC=1时,在下一个MF的上升沿IE变0。CLR信号实际是控制台产生的复位信号CLR#。当CLR=0时,在下一个CLK1的上升沿IE变0。当CLR=1且INTS=0且INTC=0时,IE保持不变。

INTR是外部中断源,接控制台按钮INTR。按一次INTR按钮,产生一个中断请求正脉冲INTR。INTR1是INTR经时钟CLK1同步后产生的,目的是保持INTR1与实验台的时序信号同步。INTR脉冲信号的上升沿代表有外部中断请求到达中断控制器。INTQ是中断屏蔽控制逻辑传递给CPU的中断信号,接到微程序控制器上。当收到INTR脉冲信号时,若中断允许位INTE=0,则中断被屏蔽,INTQ仍然为0;若INTE=1,则INTQ=1。

为保持中断的断点地址,以便中断返回,设置了一个中断地址寄存器IAR。第二节

6

辽 宁 工 业 大 学 计 算 机 组 原 理

图4中的IAR(U19)就是这个中断地址寄存器,它是一片74HC374,有LDIAR和IAR_BUS#两个信号输入端,均连接至微程序控制器。LDIAR信号的上升沿到达时,来自程序计数器PC的地址会置入IAR中。IAR_BUS#为0时,保存在IAR中的断点地址会输出到数据总线DBUS上。由于本实验系统只有一个断点寄存器而无堆栈,因此仅支持一级中断而不支持多级中断。

中断向量即中断服务程序的入口地址,在本实验仪中由8位数码 开关SW7—SW0提供。

2.3 模型机的设计与调试

2.3.1 接线方法

将跳线开关J1用短路子短接。时序发生器的输入TJI接控制存储器的输出TJ。控制器的输入C接运算器ALU的C。控制器的输入IR7、IR6、IR5、IR4依次接指令寄存器IR的输出IR7、IR6、IR5、IR4。

控制器的输出LDIR(CER)、LDPC(LDR4)、PC_ADD、PC_INC、M4、LDIAR、LDAR1(LDAR2)、AR1_INC、M3、LDER、IAR_BUS#、SW_BUS#、RS+BUS#、ALU_BUS、CEL#、LRW、WRD、LDDR1(LDDR2)、M1(M2)、S2、S1、S0依次与数据通路的对应信号连接。指令寄存器IR的输出IRO接双端口寄存器堆的RD0、WR0,IR1接RD1、WR1,IR2接RS0,IR3接RS1。共6条线。

合上电源。按CLR#按钮,使实验系统处于初始状态。

2.3.2 设置通用寄存器R2、R3的值

1.令DP=0,DB=0,DZ=0,使实验系统处于连续运行状态。令SWC=0、SWB=1、SWA=1,使实验系统处于寄存器加载工作方式KLD。按CLR#按钮,使实验系统处于初始状态。

2.在SW7—SW0上设置一个存储器地址,该存储器地址供设置通用寄存器使用。将该地址设置为0FFH。按依次QD按钮,将0FFH写入AR0和AR1。

3.在SW7—SW0上设置02H,作为通用寄存器R2的寄存器号。按一次QD按钮,则将02H写入IR。

4.在SW7—SW0设置78H,作为R2的值。按一次QD按钮,将78H写入IR指定的R2寄存器。

5.在SW7—SW0设置03H,作为通用寄存器R3的寄存器号。按一次QD按钮,则将

7

辽 宁 工 业 大 学 计 算 机 组 原 理

03H写入IR。

6.在SW7—SW0设置79H,作为R3的值。按一次QD按钮,将79H写入IR指定的R3寄存器。

7.设置R2、R3结束,按CLR#按钮,使实验系统恢复到初始状态。

2.3.3 存储程序机器代码

本操作中,我们从存储器00H地址开始存5个机器代码:58H,5DH,24H,48H,60H。在存储器78H地址存入02H;在79H地址存入01H。

令DP=0,DB=0,DZ=0,使实验系统处于连续运行状态。令SWC=0、SWB=1、SWA=0,使实验系统处于写双端口存储器工作方式KWE。按CLR#按钮,使实验系统处于初始状态。

1.置SW7—SW0为00H,按QD按钮,将00H写入AR1。

2.置SW7—SW0为11H,按OQ按钮,将58H写入存储器00H单元。AR1自动加1,变为01H。

3.置SW7—SW0为22H,按OQ按钮,将5DH写入存储器01H单元。AR1自动加1,变为02H。

4.置SW7—SW0为33H,按OQ按钮,将24H写入存储器02H单元。AR1自动加1,变为03H。

5.置SW7—SW0为44H,按OQ按钮,将48H写入存储器03H单元。AR1自动加1,变为04H。

6.置SW7—SW0为55H,按OQ按钮,将60H写入存储器04H单元。AR1自动加1,变为05H。

7.按CLR#按钮,使实验系统恢复到初始状态。

2.3.4 执行程序与验证结果

用单指的方式执行程序。

在SW7-SW0上设置00H,作为程序启动地址。控制台方式开关SWC置0,SWB置0,SWA置0,启动程序。DB置0,DP置0,DZ置1,选择执行方式为单指执行。

1.按一次QD按钮,执行00H地址的程序,指示灯显示为00000000。 2.按一次QD按钮,执行01H地址的程序,指示灯显示为00000001。 3.按一次QD按钮,执行02H地址的程序,指示灯显示为00000010。

8

辽 宁 工 业 大 学 计 算 机 组 原 理

4.按一次QD按钮,执行03H地址的程序,指示灯显示为00000011。 5.按一次QD按钮,执行04H地址的程序,指示灯显示为00000100。

6.按一次QD按钮,执行05H地址的程序,指示灯显示为00000101。程序执行完毕。 7.在SW7-SW0上设置78H,作为存储器地址。控制台方式开关SWC置0,SWB置0,SWA置1,选择读双端口存储器。DB置0,DP置0,DZ置0。将IR/DBUS开关拨到DBUS位置,按一次QD按钮,AR1加1,指示灯显示为00000010,表示存储器78H地址中的数据为02H。

9

辽 宁 工 业 大 学 计 算 机 组 原 理

第3章 微程序设计

3.1微程序流程图

图4微程序流程图

3.2微程序代码的设计与测试

3.2.1机器语言程序及其存储器位置、编码和数据初值的设计

程序功能:将存储器78H单元和79H单元中的数据相乘,将所得的积送入到存储器78H地址所指的内存单元中。

10

辽 宁 工 业 大 学 计 算 机 组 原 理

表4程序实现表 地址 指令 00H LDA R0,[R2] 01H LDA R1,[R3] 02H MUL R0,R1 03H STA R0,[R2] 04H STP 3.2.2 程序执行过程及运算结果

机器代码 58H 5DH 24H 48H 60H 首先设置通用寄存器R2、R3的值,使R2=78H,R3=79H。然后从00H地址开始存5个。

机器代码:11H,22H,33H,44H,55H。在78H存入02H,用于给R0赋初值;在79H 存入01H,用于给R1赋初值。

用单指的方式执行程序。初值:R0未定,R1未定,R2=78H,R3=79H。存储器,78H单元的内容是02H,79H单元的内容是01H。

1.LDA R0,[R2]

执行结果: R2=78H,R0=02H。 2.LDA R1,[R3]

执行结果: R3=79H,R1=01。H 3.MUL R0,R1

执行结果:R0=02H,R1=01H。 4.STA R0,[R2] 执行结果:[78H]=02H。 5.STP

执行结果: 无变化

11

辽 宁 工 业 大 学 计 算 机 组 原 理

第4章 课程设计总结

乘法指令流程的设计涉及到微程序控制,数据通路,双端口存储和乘法运算的知识,让我进一步了解《计算机组成原理》课程。《计算机组成原理》是计算机科学与技术专业的一门核心的专业必修课程。从课程的地位来说,它是先导课与后续课之间的重要衔接课程。随着计算机技术的飞速发展,必须保证课程教学内容及实现手段的先进性,在实验中让我感觉到自己对课本上的知识理解还不是很好,还有很多知识点没有掌握,通过课程设计使我对课本上的知识有了更进一步的理解,同时也锻炼了我的动手能力。通过与同学的交流和查找资料使遇到的困难解决了,结合本课程内容多、难度大的特定,采取理论与实践相结合的方法,有效地巩固了学习效果,进一步加深了对计算机组成结构和工作机理的认识,提高了的实际动手能力与创新设计能力。在课程实验的基础上提出深度更广、综合性更强的设计题目,给出设计要求和设计思路,自行设计和调试,独立完成课程设计,加深对计算机的组成原理和指令在计算机中运行过程的理解。设计一个简单计算机模型的方案、通过微指令、微程序的设计实现计算机的基本功能、不断调试最终达到设计要求的全过程,从而系统地掌握计算机中的运算器、寄存器、译码电路、存储器、和存储微指令的控制存储器等硬件组成的相关知识,实现知识融会贯通的目的。

通过这次设计使我相信,只要自己在每一次实践中仔细思考,亲自动手,可以使自己对课本的知识有更进一步的理解。对计算机的组成有了进一步的认识和了解。总结课程设计的全过程,写出微程序控制器的基本原理、设计的方案及其有关内容,总结还可以包括 : 课程设计过程的收获、解决问题过程的思考、程序调试能力的思考、对计算机组成原理这门课程的思考、在课程设计过程中对《计算机组成原理》课程的认识等内容。

课程设计的时间虽然很短,但让我学会了很多东西,锻炼我的细心,耐心和恒心。理论结合实际,验证了书上的理论,更重要的是使自己增强了实践的能力,为以后的学习奠定了基础。

12

辽 宁 工 业 大 学 计 算 机 组 原 理

参考文献

[1] 王成. 计算机组成原理实验指导书与习题集. 北京: 高等教育出版社. 2009.2:80-154 [2] 白中英. 计算机组成原理. 北京:高等教育出版社. 2008.8:51-204

[3] 旷海兰. 计算机组成原理学习指导训练. 西安: 西安电科大出版社. 2009.8:20-138 [4] 唐塑飞, 张新荣. 计算机组成原理. 北京: 清华大学出版社. 2009.8:135-240 [5] 朱小明, 孙波. 计算机网络实践教程. 北京: 高等教育出版社. 2009.7:35-103 [6] 张新荣. 计算机组成原理, 天津: 天津大学出版社. 2006.6: 61-106

13

因篇幅问题不能全部显示,请点此查看更多更全内容