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

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

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

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

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

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

 

计算机组成原理课程设计

报告

(2013/2014第二学期------第19周)

指导教师:

许建龙张芳

 

班级:

12计科2班

姓名:

学号:

 

计算机组成原理大型实验任务书(计算机12级1、2、3班和实验班)

一、实验目的:

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

二、实验说明:

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

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

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

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

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

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

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

三、实验内容:

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

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

指令格式:

D4××,ADDR1,ADDR2,ADDR3四字指令(控存入口100H)

功能:

[ADDR3]=[ADDR1]+[ADDR2]

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

指令格式:

E0DRSR,ADDR(SR,DR源、目的寄存器各4位)双字指令(控存入口130H)

功能:

DR=SR-[ADDR]

(3)转移指令。

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

指令格式:

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

功能:

ifDR==SRgotoADDRelse 顺序执行。

设计:

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

则当DR==SR时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机模拟程序

三、具体内容

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

指令格式:

D4××,ADDR1,ADDR2,ADDR3四字指令(控存入口100H)

功能:

[ADDR3]=[ADDR1]+[ADDR2]

1.微程序:

(1)PC→AR,PC+1→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#(B23)为101,表示不操作;

B口地址(B15-B12)为0101,BI8-BI6(B30-B28)为010,MI5-MI3(B26-B24)为000,MI2-MI0(B22-B20)为011,SCI(B11-B10)为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#(B23)为001,表示从主存储器读入数据(地址);

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

(4)PC→AR,PC+1→PC00000E00A0B55402

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

B55--------------------------------------------------------------------------------------------------------------------B0

0000

0000

0000

1110

0000

0000

1010

0000

1011

0101

0101

0100

0000

0010

(5)MEM→AR00000E0010F00002

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

B55--------------------------------------------------------------------------------------------------------------------B0

0000

0000

0000

1110

0000

0000

0001

0000

1111

0000

0000

0000

0000

0010

(6)MEM+Q→Q00000E0000E00000

从主存读取第二个操作数

B55--------------------------------------------------------------------------------------------------------------------B0

0000

0000

0000

1110

0000

0000

0000

0000

1110

0000

0000

0000

0000

0000

MIO#REQWE#为001,BI8-6为000,MI5-3为000,MI2-0为110,表示将第二个操作数从主存读出并且加上Q寄存器的内容,再将结果回送到Q寄存器;

(7)PC→AR,PC+1→PC00000E00A0B55402

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

B55--------------------------------------------------------------------------------------------------------------------B0

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

0001

0000

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

;查看单元内容是否正确

4.加载微码

>A800

0800:

MOVR1,900;微码在内存中的首地址为900H

0802:

MOVR2,9;微程序一共有9条微指令

0804:

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

0806:

LDMC;加载微码指令

0807:

RET;返回

0808:

>G800;执行加载微码程序

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

>A820

0820:

MOVR0,0023将操作数放到寄存器R0,这里两个操作数都是23H

0822:

MOV[A00],R0将R0存放的操作数放到A00地址单元

0824:

MOV[A01],R0将R0存放的操作数放到A01地址单元

0826:

NOP

0827:

NOP

0828:

NOP

0829:

NOP

082A:

RET

082B:

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

08260000:

D4000000:

0A000000:

0A010000:

0A02

>U820查看

0820:

2C000023MOVR0,0023

0822:

34000A00MOV[0A00],R0

0824:

34000A01MOV[0A01],R0

0826:

D400DWD400

0827:

0A00ADCR0,R0

0828:

0A01ADCR0,R1

0829:

0A02ADCR0,R2

082A:

AC00RET

>G820运行

6.运算结果

>DA00

0A0000230023004600000000000000000000

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

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

指令格式:

E0DRSR,ADDR(SR,DR源、目的寄存器各4位)双字指令(控存入口130H)

功能:

DR=SR-[ADDR]

1.微程序

(1)PC→AR,PC+1→PC00000E00A0B55402

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

B55--------------------------------------------------------------------------------------------------------------------B0

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

(3)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)=1,SB(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:

0301

090A0000:

31D00000:

0088

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

3.查看微码

>D900

090000000E00A0B5540200000E0010F00002

09080029030131D000880000000000000000

;查看单元内容是否正确

4.加载微码

>A800

0800:

MOVR1,900;微码在内存中的首地址为900H

0802:

MOVR2,3;微程序一共有9条微指令

0804:

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

0806:

LDMC;加载微码指令

0807:

RET;返回

0808:

>G800;执行加载微码程序

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

>A820

0820:

MOVR0,0023将减数放到通用寄存器R0

0822:

MOVR3,0027将被减数放到通用寄存器R3

0824:

MOV[A00],R0将R0中减数放到0A00单元

0826:

NOP

0827:

NOP

0828:

RET

0829:

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

08260000:

E0230000:

0A00

>U820查看

0820:

2C000023MOVR0,0023

0822:

2C300027MOVR3,0027

0824:

34000A00MOV[0A00],R0

0826:

E023DWE023

0827:

0A00ADCR0,R0

0828:

AC00RET

>G820运行

6.运算结果

>R

R0=0023R1=090CR2=0004R3=0027SP=FFFFPC=0820IP=0828R7=0000R8=0000

R9=0000R10=0000R11=0000R12=0000R13=0000R14=0000R15=0000F=00001111

0820:

2C000023MOVR0,0023

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

(三)转移指令。

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

指令格式:

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

功能:

ifDR==SRgotoADDRelse 顺序执行。

设计:

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

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

而当DR!

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

1.微程序

(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,PC+1→PC002903E0A0B55402

当前程序计数器内容送地址寄存器,条件转移信号CC#=CND,即判断Z是否为1,若为1则中断条件成立;程序计数器指向下一单元地址

B55-----------------------------------------------------------------------------------------

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

当前位置:首页 > 总结汇报

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

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