计算机组成原理课程设计报告Word格式文档下载.docx

上传人:b****4 文档编号:6313279 上传时间:2023-05-06 格式:DOCX 页数:21 大小:130.87KB
下载 相关 举报
计算机组成原理课程设计报告Word格式文档下载.docx_第1页
第1页 / 共21页
计算机组成原理课程设计报告Word格式文档下载.docx_第2页
第2页 / 共21页
计算机组成原理课程设计报告Word格式文档下载.docx_第3页
第3页 / 共21页
计算机组成原理课程设计报告Word格式文档下载.docx_第4页
第4页 / 共21页
计算机组成原理课程设计报告Word格式文档下载.docx_第5页
第5页 / 共21页
计算机组成原理课程设计报告Word格式文档下载.docx_第6页
第6页 / 共21页
计算机组成原理课程设计报告Word格式文档下载.docx_第7页
第7页 / 共21页
计算机组成原理课程设计报告Word格式文档下载.docx_第8页
第8页 / 共21页
计算机组成原理课程设计报告Word格式文档下载.docx_第9页
第9页 / 共21页
计算机组成原理课程设计报告Word格式文档下载.docx_第10页
第10页 / 共21页
计算机组成原理课程设计报告Word格式文档下载.docx_第11页
第11页 / 共21页
计算机组成原理课程设计报告Word格式文档下载.docx_第12页
第12页 / 共21页
计算机组成原理课程设计报告Word格式文档下载.docx_第13页
第13页 / 共21页
计算机组成原理课程设计报告Word格式文档下载.docx_第14页
第14页 / 共21页
计算机组成原理课程设计报告Word格式文档下载.docx_第15页
第15页 / 共21页
计算机组成原理课程设计报告Word格式文档下载.docx_第16页
第16页 / 共21页
计算机组成原理课程设计报告Word格式文档下载.docx_第17页
第17页 / 共21页
计算机组成原理课程设计报告Word格式文档下载.docx_第18页
第18页 / 共21页
计算机组成原理课程设计报告Word格式文档下载.docx_第19页
第19页 / 共21页
计算机组成原理课程设计报告Word格式文档下载.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

计算机组成原理课程设计报告Word格式文档下载.docx

《计算机组成原理课程设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计报告Word格式文档下载.docx(21页珍藏版)》请在冰点文库上搜索。

计算机组成原理课程设计报告Word格式文档下载.docx

2、查阅资料,解决问题。

3、编写源程序并调试之。

4、写课程设计说明书。

[1]昆藏.计算机系统结构.:

科学,1994

[2]白中英.计算机组成原理(第二版).:

科学,1998

[3]DJ-CPTH超强型计算机组成原理与系统结构实验指导书

指导教师签字

系主任签字

2014年12月1日

指导教师评语:

成绩:

年月日

理工大学课程设计(论文)成绩评定表

摘要

计算机组成原理课程设计课题是基本模型机的设计与实现。

利用CPU与简单模型机来实现计算机组成原理课程设计,编写指令的应用程序,用微程序控制器实现一系列的指令功能,最终达到将理论与实践相联系。

本次设计完成了相关指令的格式以及编码的设计,实现了机器指令微代码,完成具有一定功能的程序。

本次课程设计的题目是输入一个16位的数,对其进行循环左移。

通过设计流程图,编写机器指令,微指令和控制信号程序。

首先向存储器中装入数据和程序,然后检查写入是否正确,启动程序执行。

另外,还需设计微程序:

本课程设计要现机器指令:

MOVV(传送),RU(输入),HUO(逻辑或),JIA(加法运算),JIAC(带进位的加法),TZ(判断A寄存器里的容是否为零),TIAO(跳转)。

以上各微指令设计完毕后,用设计好的指令实现逻辑运算,连接线路在CPTH计算机组成原理教学实验箱运行程序,并将实验结果显示输出。

本次课程设计偏重于对计算机工作的原理和计算机微机的指令系统学习和深入的了解。

对以后的学习打下一个好的基础。

这一课题的实现不仅使我们对各种微指令有了熟练的掌握,更对以后的学习、工作中有深远的影响。

关键词:

微指令,机器指令,循环左移

1原理介绍

1.1cpu功能与原理

数据缓存寄存器(DR)数据缓存寄存器用来暂时存放ALU的运算结果,或由数据存储器读出的一个数据字,或来自外部接口的一个数据字。

指令寄存器(IR)指令寄存器用来保存当前正在执行的一条指令,当执行一条指令时,先把它从指令cache存储器读出,然后再传送至指令寄存器。

程序计数器(PC)为了保证程序能够连续的执行下去,CPU必须具有某些首段来确定下一条指令的地址。

数据地址寄存器(AR)数据地址寄存器用来保存当前CPU所访问的cache存储器单元的地址.通用寄存器(R0~R3)当算术逻辑单元执行算术或逻辑运算时,为ALU提供一个工作区。

状态字寄存器(PSW)状态字寄存器保存由算数指令和逻辑指令运算或测试结果建立的各种条件代码。

1.2指令周期

计算机所以能自动的工作,是因为CPU能从存放程序的存里取出一条指令并执行这一条指令。

例如MOV指令的指令周期,MOV是一条RR型指令,它需要两个CPU周期,其中一个是取指周期,一个是执行周期。

取指周期中完成三件事:

从指存取出指令,对程序计数器加1,以便为取下条指令做好准备,对指令操作码进行译码或测码。

执行周期操作控制器送出控制信号到通用寄存器,操作控制器送出控制信号到ALU,指定ALU做传送工作,操作控制器送出控制信号,打开ALU输出三态门,操作控制信号送出控制信号,将DBUS上的数据打入到数据缓冲寄存器中,操作控制信号送出控制信号,将数据冲寄存器打入到目标寄存器中。

1.3微程序控制

微程序控制器同硬布线控制器相比较,具有规整性,灵活性,可维护性等一系列优点,在计算机系统中,微程序设计技术是利用软件方法来设计的一门技术。

微程序控制思想,就是仿照通常的解题程序方法,把操作控制信号编程所谓的微指令,存放到一个只读存储器中,当机器运行时,有一条一条的读出这些微指令,从而产生全机所需要的各种操作控制信号,使相应的部件执行所规定的操作呢。

由于数据通路的结构关系,微操作可分为相容的和互斥的两种:

互斥的微操作,是指不能同时或不能在同一个节拍并行执行的微操作。

相容的微操作,是指能够同时或在同一个节拍并行执行的微操作。

系列微指令的有序集合就是微程序。

一段微程序对应一条机器指令。

微地址 

存放微指令的控制存储器的单元地址。

1.4微程序控制原理

控制存储器(UCM):

这是微程序控制器的核心部件,用来存放微程序。

其性能(包括容量、速度、可靠性等)与计算机的性能密切相关。

微指令寄存器(UIR):

存放从UCM取出的正在执行的微指令,它的位数同微指令字长相等。

微地址形成部件:

用来产生初始微地址和后继微地址,以保证微指令的连续执行。

微地址寄存器(UMAR):

它接受微地址形成部件送来的微地址,为下一步从μCM中读取微指令作准备。

1.5微程序控制器

模型机作为一个整体来工作的,所有的微程序控制信号由微程序存储器UM输出,而不是由开关输出,在进行试验之前,先用8芯电缆接J1和J2,是系统处于非手动状态,这样试验仪的监控系统会自动打开uM的输出允许,由软件控制程序实现单指令执行,单微指令执行等,设计微指令应当追求的目标,有利于缩短微指令的长度,有利于缩小CM的容量,有利于提高微程序的执行速度。

2实验环境介绍

2.1设计背景分析

2.1.1模型机指令集分析

本次课程设计是在DJ-CPT816计算机组成原理实验仪和仿真软件上进行的。

该模型机的指令码为8位,根据指令类型的不同,可以有0到2个操作数,指令码的最低两位用来选择R0-R3寄存器。

在微程序控制方式下,用指令码作为微地址来寻址微程序存储器,找到执行该指令的微程序。

在本模型机中,一条指令最多分为四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。

模型机有24位控制位以控制寄存器的输入输出,选择运算器的运算功能,存储器的读写。

简言之,这次设计,计算机数据通路的控制将由微程序控制器来完成,CPU从存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一条微程序,一条微程序又有若干微指令组成,一条微指令的功能由24位操作信号(即控制位)实现。

24位控制位分别介绍如下:

XRD:

外部设备读信号,当给出个外设的地址后,输出此信号,从指定外设读数据。

EMWR:

程序存储器EM写信号

EMRD:

程序存储器EM读信号

PCOE:

将程序计数器PC的值送到地址总线ABUS上

EMEN:

将程序存储器EM与数据总线DBUS接通,有EMWR和EMRD决定是将DBUS数据写入EM中,还是从EM读出数据到DBUS

IREN:

将程序存储器EM独处的数据打入指令寄存器IR和微指令计数器uPC

EINT:

中断返回时清除中断响应和中断请求标志,便于下次中断。

ELP:

PC打入允许,与指令寄存器的IR2.,IR3位结合,控制程序跳转。

MAREN:

将数据总线DBUS上数据打入地址寄存器MAR

MAROE:

将地址寄存器MAR的值送到地址总线ABUS上

OUTEN:

将数据总线DBUS上数据送到输出端口寄存器OUT里

STEN:

将数据总线DBUS上数据存到堆栈寄存器里

RRD:

读寄存器组R0-R3,寄存器R?

的选择由指令的最低两位决定

RWR:

写寄存器组R0-R3,寄存器R?

CN:

决定运算器是否带进位移位,CN=1带进位,CN=0不带进位

FEN:

将标志位存入ALU部的标志寄存器

X2,X1,X0三位组合来译码选择将数据送到DBUS上的哪个寄存器,见表2-1

WEN:

将数据总线DBUS的值打入工作寄存器W中

AEN:

将数据总线DBUS的值打入累加器A中

S2,S1,S0三位组合决定ALU做何种运算,见表2-2

表2-1寄存器选择控制表

X2X1X0

输出寄存器

000

IN_OE外部输入门

001

IA_OE中断向量

010

ST_OE堆栈寄存器

011

PC_OEPC寄存器

100

D_OE直通门

101

R_OE右移门

110

L_OE左移门

111

没有输出

表2-2运算器功能控制

S2S1S0

功能

A+W加

A-W减

A|W或

A&

W与

A+W+C带进位加

A-W-C带进位减

~AA取反

A输出A

2.1.2模型机寻址方式分析

模型机的寻址方式分四种:

(1)累加器寻址:

操作数为累加器A,例如“CPLA”是将累加器A值取反,还有些指令是隐含寻址累加器A,例如“OUT”是将累加器A的值输出到输出端口寄存器OUT。

(2)寄存器寻址:

参与运算的数据在R0-R3的寄存器中,例如“ADDA,R0”指令是将寄存器R0的值加上累加器A的值,再存入累加器A中。

(3)存储器直接寻址:

参与运算的数据在存储器EM中,数据的地址为指令的操作数。

例如“ANDA,40H”指令是将存储器EM中40H单元的数据与累加器A的值做逻辑与运算,结果存入累加器A。

(4)立即数寻址:

参与运算的数据为指令的操作数。

例如“SUBA,#10H”是从累加器A中减去立即数10H,结果存入累加器A。

2.2设计目的与要求

(1)在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本模型计机。

(2)为其定义机器指令,并编写相应的微程序,具体上机调试掌握整机概念。

(3)掌握微程序控制器的组成原理。

(4)编写自己的指令集,并用此指令集来实现编程

(5)掌握微程序的编写、写入,观察微程序的运行。

(6)通过课程设计,使学生将掌握的计算机组成基本理论应用于实践中,在实际操作中加深对计算机各部件的组成和工作原理的理解,掌握微程序计算机中指令和微指令的编码方法,深入理解机器指令在计算机中的运行过程。

要包括直接寻址,立即数寻址,寄存器寻址,间接寻址四种寻址方式。

最后要在设计的指令系统基础上,编写程序实现16位数不带进位的循环左移。

3系统设计

3.1.不带进位的循环左移

16位数的循环左移原理图3-1如下:

图3-1不带进位的循环左移

程序设计思路:

一个16位数不带进位的循环左移,相当于该数与自身相加,程序流程图3-2如下:

图3-2程序框图

3.2机器指令集的编写与功能

(1)按照系统分析中得到的指令集,在DJ-CPT816实验软件中新建指令系统,生成.mac文件和.mic文件;

(2)在DJ-CPT816实验软件中新建.asm文件,输入程序:

LOOP1:

RU

MOVVR1,A

MOVVR0,A

LOOP:

MOVVA,R0

JIAA,R0

MOVVA,R1

JIACA,R1

HUOA,R0

TZLOOP1

TIAOLOOP

3.3程序系统分析

(1)程序开始执行一条取指的微指令,读入程序第一条指令。

RU//手动输入一个数,存入A寄存器中

MOVVR1,A//将A寄存器的容存入R1寄存器作为16位数的高8位

RU//手动输入一个数,存入A寄存器中

MOVVR0,A//将A寄存器的容存入R0寄存器作为16位数的低8位

MOVVA,R0//将R0寄存器的数即第八位存到A寄存器

JIAA,R0//将低八位数与自身相加,即*2

MOVVR0,A//将相加后的结果回存到R0寄存器,作为新的第八位

MOVVA,R1//将R1寄存器的数即高八位存到A寄存器

JIACA,R1//将低八位数与自身以及低位相加送来的进位相加

MOVVR1,A//将相加后的结果回存到R1寄存器,作为新的高八位

HUOA,R0//将A寄存器的容即高八位数与R0寄存器即第八位数相或

TZLOOP1//若相或的结果为0则跳转至Loop1,重新输入新的数据进行移位

TIAOLOOP//否则跳转至Loop继续左移

(2)将程序另存为.asm文件,再汇编成机器码,调试窗口会显示出程序、机器码、反汇编指令,见表3-1。

表3-1译码表

程序地址

机器码

反汇编指令

指令说明

00

24

RU

端口RU的容输入到累加器A

01

18

MOVVR1,A

累加器A中的数送入寄存器R1

02

03

MOVVR0,A

累加器A中的数送入寄存器R0

04

08

MOVVA,R0

寄存器R0中的容送到A中

05

14

JIAA,R0

将A中的容和R0中的容相加

06

07

MOVVA,R1

寄存器R1中的容送到A中

0C

JIACA,R1

将A中的容与R1中的容相加再加上进位

09

0A

2C

HUOA,R0

将R0中的容与A中的容相或

0B

3000

TZLOOP1

若A=0跳转至00地址

0D

1004

TIAOLOOP

无条件跳转至04地址

3.4程序微指令分析

将程序在DJ-CPT816软件上单步运行结束后可得微指令跟踪图如下表3-2所示:

表3-2微指令跟踪表

助记符

状态

微地址

微程序

数据输出

数据打入

地址输出

运算器

移位控制

uPC

PC

_FATCH_

T0

00..>

CBFFFF

指令寄存器IR

PC输出

A输出

写入

+1

T1

C0..>

FFFF17

用户IN

寄存器A

C1..>

MOVVR?

,A

80..>

FFFB9F

ALU直通

寄存器R?

81..>

MOVVA,R?

70..>

FFF7EF

寄存器值R?

71..>

JIAA?

R

T2

10..>

寄存器W

11..>

FFFE90

寄存器A标志位CZ

加运算

12..>

A

MOVVA,R?

FFF7F7

JIACA,R?

20..>

21..>

FFFE94

带进位加

22..>

HUOA,R?

60..>

61..>

FFFE92

或运算

62..>

TZ*

A4..>

C6FFFF

存贮器值EM

寄存器PC

A5..>

TIAO*

AC..>

CGFFFF

AD..>

3.5实验结果

测试数据:

高八位R1低八位R0

30H80H

左移一位61H00H

左移两位C2H00H

左移三位84H00H

置开关k23-k16为00110000

R1中输入30H

K23-k16开关置为10000000

R0中输入80H

(如图3-3所示)

图3-3:

R1输入30H,R0输入80H

将16位数左移一位得到的16位数为6100H(如图3-4所示):

图3-4:

16位数左移,结果为6100H

再分别将R1和R0中的数左移一位,此时16位数为C200H(如图3-5所示:

图3-5:

R1,R0左移,结果为8400H

再分别将R1和R0中的数左移一位,此时16位数为C200H(如图3-6所示)

图3-6:

4实验总结 

4.1设计体会

本次课程设计我们做的题目是输入一个16位的数,对其进行循环左移。

刚拿到这个题目时我们小组就进行了商讨,分配每个人的任务,我的任务是:

设计指令集,并且检查她们所写代码实现的功能。

在设计指令集的过程中,我对指令周期和24位控制位做了深入的了解,学到了好多知识,学会了怎么设计一条程序指令以达到相应的功能。

在这次课程设计我遇到了好多问题,由于是第一次接触新建指令系统,其中很多地方都不懂,后来通过查找资料,自己琢磨,问老师和还有大家一起讨论才逐渐有了思路。

在设计指令的过程中,有时候会遇到一些小问题,但通过与其他组同学的讨论终于使问题得到了解决。

创建新的指令系统需要知道每条指令需要几个状态周期来完成,以及实现相应功能的微程序应该怎么设计,还要考虑要怎么设计才能达到精简指令的目的。

这次课程设计之所以能够成功与我们组员的相互合作有很大的关系,这次刚拿到题目时,我们小组分析了一下实验的要求,将我们六个人分成三个小组,每个小组负责一项任务,各个小组紧密配合,遇到问题时大家互相讨论找出最佳的解决方案,最终使任务得以圆满的完成。

另外在这一次的课题设计中,当自己创建的指令集能够成功运行时,我体会到了成功的喜悦和极大的成就感,通过对系统的跟踪测试,自己的动手和实践能力都有了一定的提高,也让我更加喜欢去自己动手做实验了。

4.2系统改进

本次指令设计,我们利用指令流水操作,进行了指令的精简设计,其中

RU指令的取值操作和输出操作可并行执行,精简后该指令为1个状态周期。

指令,由于预指操作和数据总线可并行工作,该指令只有一个状态周期。

例如:

改进前:

改进后:

RUT124FFFF17RUT024CBFF17

T055CBFFFF

T170FFF7F7MOVVA,R?

T070CBF7F7

T071CBFFFF

5参考文献

[2]著平玲娣,雪增.《计算机组成与设计》.:

大学,2004

[3]白中英.计算机组成原理(第二版).:

[4]DJ-CPTH超强型计算机组成原理与系统结构实验指导书

[5]泽宇,《计算机组成与系统结构》.清华大学

[6]敬兆,《汇编语言》.中国科学技术大学

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2