浙江理工大学计算机组成原理课程设计报告.docx

上传人:b****3 文档编号:27401475 上传时间:2023-06-30 格式:DOCX 页数:19 大小:174.82KB
下载 相关 举报
浙江理工大学计算机组成原理课程设计报告.docx_第1页
第1页 / 共19页
浙江理工大学计算机组成原理课程设计报告.docx_第2页
第2页 / 共19页
浙江理工大学计算机组成原理课程设计报告.docx_第3页
第3页 / 共19页
浙江理工大学计算机组成原理课程设计报告.docx_第4页
第4页 / 共19页
浙江理工大学计算机组成原理课程设计报告.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

浙江理工大学计算机组成原理课程设计报告.docx

《浙江理工大学计算机组成原理课程设计报告.docx》由会员分享,可在线阅读,更多相关《浙江理工大学计算机组成原理课程设计报告.docx(19页珍藏版)》请在冰豆网上搜索。

浙江理工大学计算机组成原理课程设计报告.docx

浙江理工大学计算机组成原理课程设计报告

计算机组成原理课程设计

报告

 

班级:

12计科2班姓名:

学号:

 

计算机组成原理大型实验任务书

计算机12级1、2、3班和实验

 

班)

一、实验目的:

深入了解计算机各种指令的执行过程,以及控制器的组成,指令系统微程序设计的具体知识,进一步理解和掌握动态微程序设计的概念;完成微程序控制的特定功能计算机的指令系统设计和调试。

二、实验说明:

要进行这项大型实验,必须清楚地懂得:

(1)TEC-2机的功能部件及其连接关系;

(2)TEC-2机每个功能部件的功能与具体组成;

(3)TEC-2机支持的指令格式;

(4)TEC-2机的微指令格式,AM291C芯片的用法;

5)已实现的典型指令的执行实例,即相应的微指令与其执行次序的安排与衔接;

6)要实现的新指令的格式与功能。

三、实验内容:

选定指令格式、操作码,设计如下指令:

(1)把用绝对地址表示的内存单元A中的内容与内存单元B中的内容相加,结果存于

内存单元C中。

指令格式:

D4XXADDR1ADDR2ADDR3四字指令(控存入口100H

功能:

[ADDR3]=[ADDR1]+[ADDR2]

2)将一通用寄存器内容减去某内存单元内容,结果放在另一寄存器中。

指令格式:

E0DRSRADDR(SRDR源、目的寄存器各4位)双字指令(控存入口

130H)

功能:

DR=SR-[ADDR]

3)转移指令。

判断两个通用寄存器内容是否相等,若相等则转移到指定绝对地址,否则顺序执行。

指令格式:

E5DRSR,ADDR双字指令(控存入口140H)

功能:

ifDR==SRgotoADDRelse顺序执行。

设计:

利用指令的CND字段,即IRg,令IRio~8=1O1,"T卩CC=Z

则当DR==S时Z=1,微程序不跳转,接着执行MEMPC(即ADDRPC)而当DR!

=SR时Z=0,微程序跳转至A4

四、实验要求:

(1)根据内容自行设计相关指令微程序;(务必利用非上机时间设计好微程序)

(2)设计测试程序、实验数据并上机调试。

(3)设计报告内容:

包括1、设计目的2、设计内容3、微程序设计(含指令格式、功能、设计及微程序)4、实验数据(测试所设计指令的程序及结果)。

(具体要求安最新规范为准)

(4)大型实验报告必须打印成册,各班班长收齐大型实验报告于19周星期五前,交张芳老师办公室。

五、上机时间安排:

2014计算机组成原理课程设计安排如下:

(第十九周)

(地点:

10-413和414机房)

星期

9:

00---12:

00

1:

00---4:

00

17:

30—20:

30

备注

星期三

6月25日

12计算机

(1)

12计算机

(2)

12计算机(3)电信实验班

星期四

6月26日

12计算机

(1)

12计算机

(2)

12计算机(3)电信实验班

12计算机

(1)

12计算机

(2)

12计算机(3)电信实验班

星期五

6月27日

12计算机

(1)

12计算机

(2)

12计算机(3)电信实验班

12计算机

(1)

12计算机

(2)

12计算机(3)电信实验班

备注:

1.各班每2人一组,可自由组合但要固定,各班班长将各组组号及学生名单于第一次上机时上报指导教师;

2.各班学生须严格按照规定的时间上机,不得无故缺席、迟到早退,指导教师会严格考勤。

指导教师:

许建龙、张芳2014年6月18日

计算机组成原理课程设计实验报告

一、目的和要求

深入了解计算机各种指令的执行过程,以及控制器的组成,指令系统微程序设计的具体知识,进一步理解和掌握动态微程序设计的概念;完成微程序控制的特定功能计算机的指令系统设计和调试。

二、实验环境

PC机与TEC-2机模拟程序

三、具体内容

(1)把用绝对地址表示的内存单元A中的内容与内存单元B中的内容相加,结果存

于内存单兀C中。

指令格式:

D4XXADDR1ADDR2ADDR3四字指令(控存入口100H)

功能:

[ADDR3]=[ADDR1]+[ADDR2]

1.微程序:

⑴PSAR,PC+存PC00000E00A0B55402

当前程序计数器内容送地址寄存器,为读取第一个操作数地址做准备;程序计数器指向下一单元地址

B55

B0

0000

0000

0000

1110

0000

0000

1010

0000

1011

0101

0101

0100

0000

0010

CI3-CI0(B43-B40)为1110,功能为顺序执行;

SCC(B39-B37为000,CC#=1不发生转移;

SST(B34-B32)为000,标志位不发生改变;

MIO#(B31)REQ(B27)WE#(B2为101,表示不操作;

B口地址(B15-B12)为0101,BI8-BI6(B30-B28为010,MI5-MI3(B26-B24)为000,MI2-MI0(B22-B20)为011,SCI(B11-B1C为01,SA(B7为0,SB(B3为0,表示5号通用寄存器R5,即PC通过B口实现加1,再通过B口写回到PC(B+0+Cin^B);

(2)MEM—AR00000E0010F00002

从主存读取第一个操作数地址,为读取第一个操作数做准备

B55

B0

0000

0000

0000

1110

0000

0000

0001

0000

1111

0000

0000

0000

0000

0010

MIO#REQWE为001,表示从主存储器读入数据(地址);

B口地址为0000,BI8-BI6为001,MI5-MI3为000,MI2-MI0为111,SCI为00,表示AM2901不做运算;

(3)MEM—Q00000E0000F00000

从主存读取第一个操作数

B55

B0

0000

0000

0000

1110

0000

0000

0000

0000

1111

0000

0000

0000

0000

0000

MIO#REQWE#(B2为001,表示从主存储器读入数据(地址);

I8-6为000,MI5-3为000,MI2-0为111,表示将主存中读出的数据加上0,再将结果回送到Q寄存器;

(4)PC^AR,PC+存PC00000E00A0B55402

当前程序计数器内容送地址寄存器,为读取第二个操作数地址做准备;程序计数器指向下一单元地址

B55

B0

0000

0000

0000

1110

0000

0000

1010

0000

1011

0101

0101

0100

0000

0010

(5)MEM—AR00000E0010F00002

从主存读取第二个操作数地址,为读取第二个操作数做准备

B55

Bq

0000

0000

0000

1110

0000

0000

0001

0000

1111

0000

0000

0000

0000

0010

0000

0000

0000

1110

0000

0000

1010

0000

1011

0101

0101

0100

0000

0010

(8)MEM—AR00000E0010F00002

从主存读取结果存储单元地址

B55

B0

 

0000

0000

0000

1110

0000

0000

0001

0000

1111

0000

0000

0000

0000

0010

(9)Q—MEM,CC#=00029030010200010

计算结果送结果存储单元

B55

 

B0

0010

1001

0000

0011

0000

0000

0001

0000

0010

0000

0000

0000

000110000

00000E0000E00000

MIO#REQWE为000,BI8-6为001,MI5-3为000,MI2-0为010,表示将Q寄存器里面的内容存到AR存储的单元地址对应的存储单元;

B55-B46为0010100100(4AH),即下地址,CI3-0为0011(3号命令,条件转移),SCC为00(CC#,表示转移到4AH中断。

2•输入微码

>E900

09000000:

00000000:

0E000000:

A0B50000:

54020000:

0000

09050000:

0E000000:

10F00000:

00020000:

00000000:

0E00

090A0000:

00F00000:

00000000:

00000000:

0E000000:

A0B5

090F0000:

54020000:

00000000:

0E000000:

10F00000:

0002

09140000:

00000000:

0E010000:

00E00000:

00000000:

0000

09190000:

0E000000:

A0B50000:

54020000:

00000000:

0E00

091E0000:

10F00000:

00020000:

00290000:

03000000:

1020

09230000:

0010

;将微程序的16进制代码输入到从900H开始的内存单元中

3.查看微码

>D900

090000000E00A0B5540200000E0010F00002

090800000E0000F0000000000E00A0B55402

091000000E0010F0000200000E0100E00000

091800000E00A0B5540200000E0010F00002

092000290300102000100000000000000000

;查看单元内容是否正确

;微码在内存中的首地址为900H;微程序一共有9条微指令

;微码加载到微控存中的首地址

;加载微码指令

;返回

;执行加载微码程序

4.加载微码

>A8000800:

MOVR1,900

0802:

MOVR2,9

0804:

MOVR3,100

0806:

LDMC

0807:

RET

0808:

>G800

5.输入程序,测试新指令

>A820

0820:

MOVR0,0023

0822:

MOV[A00],R0

0824:

MOV[A01],R0

0826:

NOP

0827:

NOP

0828:

NOP

0829:

NOP

将操作数放到寄存器R0,这里两个操作数都是23H将R0存放的操作数放到A00地址单元将R0存放的操作数放到A01地址单元

082A:

RET082B:

>E826编辑0826开始到0829单元内容,将新指令输入

08260000:

D4000000:

0A000000:

0A010000:

0A02

0023004600000000000000000000

0826:

D400

DW

D400

0827:

0A00

ADC

R0,

R0

0828:

0A01

ADC

R0,

R1

0829:

0A02

ADC

R0,

R2

082A:

AC00

RET

>G820

运行

6.运算结果

>DA00

0A000023

;0A00单元和0A01单元内容为操作数,相加后结果为0046,存在0A02单元,正确

(二)将一通用寄存器内容减去某内存单元内容,结果放在另一寄存器中。

指令格式:

E0DRSRADDR(SRDR源、目的寄存器各4位)双字指令(控存入口130H)

功能:

DR=SR-[ADDR]

1.微程序

⑴PC^AR,PC+PPC00000E00A0B55402

当前程序计数器内容送地址寄存器,为读取操作数地址做准备;程序计数器指向下一单元地址

0000

0000

0000

1110

0000

0000

1010

0000

1011

0101

0101

0100

0000

0010

(2)MEM—AR00000E0010F00002

从主存读取第一个操作数地址,为读取操作数做准备

B55

 

B0

0000

0000

0000

1110

0000

0000

0001

0000

1111

0000

0000

0000

0000

0010

⑶SR-[ADDR]—DR0029030131D00088

寄存器SR存放的操作数减去ADDR单元内容,并存入DR

 

B55

B0

0010

1001

0000

0011

0000

0001

0011

0001

1101

0000

0000

0000

1000

1000

MIO#REQWE为000,BI8-6为011,MI5-3为001,MI2-0为101,SA(B7)=1SB(B3)=1

表示将寄存器SR(A口)存放的操作数减去ADDR单元内容,并存入DR(通过B口);

B55-B46为0010100100(4AH),即下地址,CI3-0为0011(3号命令,条件转移),SCC为00(CC#,表示转移到4AH中断。

2•输入微码

>E900

09000000:

00000000:

0E000000:

A0B50000:

54020000:

0000

09050000:

0E000000:

10F00000:

00020000:

00290000:

0301090A0000:

31D00000:

0088

;将微程序的16进制代码输入到从900H开始的内存单元中

3.查看微码

>D900

编辑0826开始到0827单元,将新指令输入,其中SR为R3,

DR为R2

R8=0000

R9=0000R10=0000R1仁0000R12=0000R13=0000R14=0000R15=0000F=00001111

0820:

2C000023MOVR0,0023

;源寄存器为R3,目的寄存器为R2,被减数为0023,减数为0027,结果为0004存放于R2,正确

(三)转移指令。

判断两个通用寄存器内容是否相等,若相等则转移到指定绝对地址,否则顺序执行。

指令格式:

E5DRSRADDR双字指令(控存入口140H)

功能:

ifDR==SRgotoADDRelse顺序执行。

设计:

利用指令的CND字段,即IR10~8,令IR1Q~8=101,"TpCC=Z

则当DR==S时Z=1,微程序不跳转,接着执行MEMPC(即ADDRPC)而当DR!

=SR寸Z=0,微程序跳转至A4

1•微程序

⑴SR-DR00000E0191900088

SR内容减DR内容,若相等,则标志符Z=1,否则Z=0

B55

B0

0000

0000

0000

1110

0000

0001

1001

0001

1001

0000

0000

0000

1000

1000

SST=01表示接收运算结果设置标志位状态

(2)PC^AR,CC#=CND,PCTPC002903E0A0B55402

当前程序计数器内容送地址寄存器,条件转移信号CC#=CND即判断Z是否为1,若为

1则中断条件成立;程序计数器指向下一单元地址

B55

 

B0

0010

1001

0000

0011

1110

0000

1010

0000

1011

0101

0101

0100

0000

0010

SCC为0111,表示CC#设置条件(CND源来自指令寄存器(即IR10-8为0101,CND=Z)B55-B46为0010100100(4AH),即下地址,CI3-0为0011(3号命令,条件转移),表示转移到4AH中断。

(3)MEM—PC0029030030F05000

取内存单元ADDR中的地址送PC

B55

B0

0010

1001

0000

0011

0000

0000

0011

0000

1111

0000

0101

0000

0000

0000

MIO#REQWE#为001,B口地址为0101,表示将主存地址单元ADDR中的地址送至地址寄存器

2.输入微码

>E900

09000000:

00000000:

0E010000:

91900000:

00880000:

0029

09050000:

03E00000:

A0B50000:

54020000:

00290000:

0300

090A0000:

30F00000:

5000

3.查看微码

>D900

090000000E0191900088002903E0A0B55402)T.

9080029030030F050000000000000000000.)..0.P

4.加载微码

>A800

0800:

MOVR1,900

0802:

MOVR2,3

0804:

MOVR3,140

0806:

LDMC

0807:

RET

0808:

>G800

5.输入程序,测试新指令两数相等时;

>A820

0820:

MOVR1,0026

0822:

MOVR2,0026

0824:

NOP

0825:

NOP

0826:

MOVR1,0023

0828:

RET

0829:

>E824

08240000:

E5120000:

0828

>U820

0820:

2C100026MOVR1,0026

0822:

2C200026MOVR2,0026

0824:

E512DWE512

0825:

0828ADCR2,R8

0826:

2C100023MOVR1,0023

0828:

AC00RET

0829:

0011NOP

082A:

AC00RET

082B:

0000NOP

082C:

0000NOP

082D:

0000NOP

082E:

0000NOP

082F:

0000NOP

0830:

0000NOP

0831:

0000NOP

0832:

0000NOP

>G820

两数不相等时:

>A820

0820:

MOVR1,0025

0822:

MOVR2,0024

0824:

NOP

0825:

NOP

0826:

MOVR1,0023

0828:

RET

0829:

>E824

08240000:

E5120000:

0828

>U820

0820:

2C100025MOVR1,0025

0822:

2C200024MOVR2,0024

0824:

E512DWE512

0825:

0828ADCR2,R8

0826:

2C100023MOVR1,0023

0828:

AC00RET

>G820

6.运算结果

相等时:

>R

R0=0000R1=0026R2=0026R3=0011SP=FFFFPC=0820IP=0828R7=0000

R8=0000

R9=0000R10=0000R11=0000R12=0000R13=0000R14=0000R15=0000F=010011110820:

2C100026MOVR1,0026

;相等时转移到0828执行RET不执行MOVR1,0023

;该运算结果正确

不相等时:

>R

R0=0000R1=0023R2=0024R3=0011SP=FFFFPC=0820IP=0828R7=0000

R8=0000

R9=0000R10=0000R11=0000R12=0000R13=0000R14=0000R15=0000F=000011110820:

2C100025MOVR1,0025

;不相等时执行MOVR1,0023

;该运算结果正确

四.课程设计答辩题目

设计一个新指令E0XDR,实现功能[ADD2]JDR-[ADD1]

设计:

指令格式

E0XDR

ADD1

微指令:

⑴P3AR,PC+PPC

(2)MEIVhAR

⑶DR+SQ

⑷Q-MESDR

(5)PCSAR,PC+SAR

(6)MESAR

(7)DFSMEM,CC#=0二进制微码:

ADD2

;ADD1地址送地址寄存器

;取ADD1地址

;Q存被减数

;计算结果回送DR

;取ADD2地址送地址寄存器

;取ADD2地址

;DR内容送主存ADD2单元,转中断

(1)00000000000011100000000010100000101101010101010000000010⑵00000000000011100000000000010000111100000000000000000100⑶00000000000011100000000010000000001100000000000000001000⑷00000000000011100000000100100001111000000000000000001000⑸00000000000011100000000010100000101101010101010000

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

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1