计算机组成原理指令扩展实验.docx
- 文档编号:30534097
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:13
- 大小:207.62KB
计算机组成原理指令扩展实验.docx
《计算机组成原理指令扩展实验.docx》由会员分享,可在线阅读,更多相关《计算机组成原理指令扩展实验.docx(13页珍藏版)》请在冰豆网上搜索。
计算机组成原理指令扩展实验
华北科技学院计算机学院综合性实验
实验报告
课程名称计算机组成原理B
实验学期2015至2016学年第二学期
学生所在院部计算机学院
年级2014专业班级软件B14-2
学生姓名刘楠学号201407044203
任课教师席振元
实验成绩
计算机学院制
《计算机组成原理B》课程设计性实验报告
开课实验室:
计算机组成原理实验室2016年6月14日
实验题目
指令扩展实验
一、实验目的
深入了解教学计算机微程序控制器的组成和设计技术,包括Am2910器件的功能与具体用法,教学计算机的总体组成和部件之间的连接方法,总之应该深入理解控制器部件的组成、设计、控制与使用等诸项知识。
二、设备与环境
TEC-XP+教学机,微机(装有WindowsXP、ISPLEVER、ispVMSystem等软件)。
三、实验内容
在现有的基本指令系统上,扩展2条指令:
ADTW、ADRM。
四、实验步骤
1、两条指令的格式及功能
写明2条指令的格式、功能、寻址方式、操作码编码、微程序步数、微程序入口地址。
(1)指令格式:
ADTWDR
功能:
DR+2->DR(DR内的值自加2)
寻址方式:
寄存器寻址
操作码编码:
10100001(A1)
微程序步数:
2
微程序入口地址:
81
(2)指令格式:
ADRMDR,[SR]
功能:
DR+[SR]->DR
寻址方式:
DR为寄存器寻址、[SR]为寄存器间接寻址
操作码编码:
11100011(E3)
微程序步数:
3
微程序入口地址:
83
2、指令所对应的微程序
每条指令对应的微程序、每步功能及各自段值得意义
(1)指令ADTWDR对应的微程序为:
入口
地址
下址
CI-0
SCC3-0
MAR
I2-0
I8-6
I5-3
B口
A口
SST
SSHSCI
DC2
DC1
81
00
E0
4,3
3,0
8,0
1,1
0,0
82
30
30
4,3
3,0
8,0
1,1
0,0
(2)指令ADTWDR,[SR]对应的微程序为:
入口
地址
下址
CI-0
SCC3-0
MAR
I2-0
I8-6
I5-3
B口
A口
SST
SSHSCI
DC2
DC1
83
00
E0
4,4
1,0
0,8
0,0
3,0
84
00
E0
4,3
0,0
8,0
0,0
0,0
85
30
30
1,6
3,0
8,0
0,0
0,0
微程序各字段的含义如下:
入口地址:
指令的微程序入口地址;
下址:
微程序执行完后下一条微程序的地址;00表示需要进行地址转移逻辑,30表示微程序结束。
CI3-0:
判别测试字段,其主要编码及功能如表1。
SCC3-0:
地址转移逻辑字符,仅当CI3-0为0011时有效。
MRW:
控制对内存和I/O接口的读写,其主要功能如下:
000,写内存;001读内存;010写串口;011读串口;1XX无内存和串口的读写操作。
I2-0:
控制数据来源,其编码及功能见表3。
I8-6:
控制对运算结果的处理,其编码及功能见表3。
I5-3:
运算功能的选择,其编码及功能见表3。
表3Am2901的9位控制码编码及功能
SST:
对CZVS的控制。
SSHSCI:
设置进位输入。
B口:
1000表示IR的DR字段,0000表示不用B口。
A口:
1000表示IR的SR字段,0000表示不用A口。
DC2:
专用寄存器接收控制,其主要编码及功能见表4-1。
DC1:
送内部总线的数据,其主要编码及功能见表4-2。
表4-1
专用寄存器接受控制
表4-2
内部总线数据来源选择控制
DC2编码
译码操作
操作说明
DC2编码
译码操作
操作说明
000
NC
不操作
000
/SWTOIB
送开关内容到内部总线
001
/GIR
指令寄存器接受
001
/RTOIB
送ALU输出到内部总线
010
/
16位机不用
010
/ETOIB
送IR地位字节内容到内部总线
011
/GAR
地址寄存器接受
011
/FTOIB
送程序状态字到内部总线
100
/INTR
恢复原中断优先级
100
/
16位机不用
101
/INTN
接受新中断优先级
101
/
16位机不用
110
/E1
用于开中断指令
110
/INTV
送中断向量到内部总线
111
/D1
用于关中断指令
111
NC
不操作
3、ABEL语言源程序编辑以及JED文件生成
m256c.abl源程序修改过程(10步)以及生成JED文件的整个操作过程。
ADTW=(IR==[1,0,1,0,0,0,0,1]);//
(1)指令OP定义:
A1
ADRM=(IR==[1,1,1,0,0,0,1,1]);//
(1)指令OP定义:
E3
MA81=(Y==[1,0,0,0,0,0,0,1]);//
(2)微指令地址定义:
81,82
MA82=(Y==[1,0,0,0,0,0,1,0]);
MA83=(Y==[1,0,0,0,0,0,1,1]);//
(2)微指令地址定义:
83,84,85
MA84=(Y==[1,0,0,0,0,1,0,0]);
MA85=(Y==[1,0,0,0,0,1,0,1]);
//(3)入口地址定义:
81(10000001)
//(3)入口地址定义:
83(10000011)
D0=!
C_M&(!
_MAP&(ADRM#ADTW#SUB#OR#CMP#MVRR#DEC#SHR#JR#PSHF#PUSH#POP#POPF
#STRR#LDRR#LDPC#MVRD#CALA#RET#IRET#DI#ASR#RCR#STC#LDRA#LDRX#STRA
#STRX#SBB#JRS#JRNS)#NXTADDR0&!
_PL)&!
Bit8;
D1=!
C_M&(!
_MAP&(ADRM#AND#OR#TEST#MVRR#SHL#SHR#IN_#OUT#POP#POPF#LDRR#LDPC
#JMPA#CALA#RET#IRET#NOT#ASR#CLC#STC#JMPR#LDRA#STRA)
#NXTADDR1&!
_PL)&!
Bit8;
D7=!
C_M&(!
_MAP&(ADTW#ADRM)#NXTADDR7&!
_PL)&!
Bit8;
(4)下址定义MA81:
00,MA82:
30(00110000)
NXTADDR5:
=!
C_M&(MA04#MA05#MA06#MA07#MA08#MA09#MA0A#MA0B#MA0C#MA0D#MA0E
#MA0F#MA10#MA11#MA13#MA14#MA16#MA18#MA1A#MA1C#MA1E#MA22#MA24#MA30
#MA3F#MA50#MA51#MA52#MA53#MA54#MA55#MA56#MA57#MA58#MA59#MA5A#MA63
#MA66#MA68#MA69#MA6A#MA82#MA85)&!
Bit8;
NXTADDR4:
=!
C_M&(MA04#MA05#MA06#MA07#MA08#MA09#MA0A#MA0B#MA0C#MA0D#MA0E
#MA0F#MA10#MA11#MA12#MA13#MA14#MA15#MA16#MA17#MA18#MA1A#MA1C
#MA1D#MA22#MA24#MA30#MA3F#MA50#MA51#MA52#MA53#MA54#MA55
#MA56#MA57#MA58#MA59#MA5A#MA5C#MA5E#MA60#MA63#MA66
#MA69#MA6A#MA82#MA85)&!
Bit8;
(5)差别测试字段定义MA81:
E0(11100000),MA82:
30(00110000)
CI3:
=!
C_M&(MA00#MA01#MA02#MA19#MA1B#MA89#MA1F#MA20#MA21#MA23#MA3A#MA3B#MA3C
#MA3D#MA3E#MA5B#MA5D#MA5F#MA61#MA62#MA64#MA65#MA67#MA89#MA81#MA83#MA84)
&NRST&!
Bit8;
CI2:
=!
C_M&(MA00#MA01#MA02#MA19#MA1B#MA89#MA1F#MA20#MA21#MA23#MA3A
#MA3B#MA3C#MA3D#MA3E#MA5B#MA5D#MA5F#MA61#MA62#MA64
#MA65#MA67#MA81#MA83#MA84)&NRST&!
Bit8;
CI1:
=!
C_M&1&1&NRST&!
Bit8;
CI0:
=!
C_M&(MA04#MA05#MA06#MA07#MA08#MA09#MA0A#MA0B#MA0C#MA0D#MA0E
#MA0F#MA10#MA11#MA12#MA13#MA14#MA15#MA16#MA17#MA18#MA1A#MA1C#MA1D
#MA1E#MA22#MA24#MA30#MA31#MA3F#MA50#MA51#MA52#MA53#MA54#MA55#MA56
#MA57#MA58#MA59#MA5A#MA5C#MA5E#MA60#MA63#MA66#MA68#MA69
#MA6A#MA82#MA85)&NRST&!
Bit8;
(6)MVR定义,MA81:
4,MA82:
4(100)
!
_MIO00:
=!
(MA00#MA01#MA03#MA04#MA05#MA06#MA07#MA08#MA09#MA0A#MA0B
#MA0C#MA0D#MA0E#MA0F#MA10#MA11#MA12#MA15#MA17#MA19#MA1B#MA89#MA1D
#MA1E#MA1F#MA21#MA23#MA30#MA31#MA3A#MA3B#MA3D#MA3F#MA50#MA51#MA52
#MA53#MA54#MA55#MA56#MA57#MA58#MA59#MA5A#MA5B#MA5D#MA5F#MA61#MA64
#MA66#MA67#MA69#MA6A#MA81#MA82#MA83#MA84);
_WE00:
=(MA02#MA14#MA18#MA1C#MA20#MA24#MA5C#MA5E#MA60#MA62#MA68#MA85);
(7)I2-0定义,MA81:
3,MA82:
3(011)
I200:
=(MA0B#MA11#MA12#MA14#MA1A#MA1B#MA89#MA1C#MA20#MA24#MA30#MA3C#MA3F#MA5A
#MA5C#MA5E#MA60#MA62#MA65#MA66#MA6A#MA83#MA85);
I100:
=(MA01#MA0C#MA0D#MA0E#MA0F#MA12#MA13#MA14#MA15#MA17#MA19#MA1C#MA1D
#MA1E#MA1F#MA20#MA21#MA22#MA23#MA24#MA30#MA31#MA3B#MA3D#MA3E
#MA3F#MA52#MA53#MA54#MA55#MA5B#MA5C#MA5D#MA5F#MA60#MA61#MA63
#MA64#MA67#MA81#MA82#MA84#MA85);
!
I000:
=!
(MA00#MA01#MA04#MA05#MA06#MA07#MA08#MA09#MA0A#MA0C#MA0D#MA0E#MA0F
#MA11#MA12#MA13#MA14#MA15#MA17#MA19#MA1C#MA1D#MA1E#MA1F#MA20
#MA21#MA23#MA24#MA30#MA31#MA3B#MA3D#MA3F#MA50#MA51#MA52#MA53
#MA54#MA55#MA5B#MA5C#MA5D#MA5E#MA5F#MA60#MA61#MA62#MA63#MA64
#MA67#MA6A#MA81#MA82#MA84);
(7)I8-6定义,MA81:
3,MA82:
3
I700:
=(MA00#MA01#MA04#MA05#MA06#MA07#MA08#MA0B#MA0C#MA0D#MA0E#MA11#MA14#MA15
#MA17#MA1C#MA1D#MA1E#MA1F#MA21#MA22#MA23#MA24#MA31#MA3B#MA3D#MA3F
#MA50#MA51#MA52#MA54#MA5A#MA5B#MA5D#MA5F#MA61#MA64
#MA66#MA67#MA6A#MA81#MA82#MA85);
!
I600:
=!
(MA00#MA02#MA03#MA04#MA05#MA06#MA07#MA08#MA09#MA0A#MA0B#MA0C
#MA0D#MA0E#MA0F#MA10#MA11#MA12#MA13#MA14#MA15#MA16#MA18#MA19#MA1A#MA1B
#MA89#MA1C#MA21#MA24#MA3A#MA3B#MA3C#MA3D#MA3E#MA3F#MA50#MA51
#MA52#MA53#MA54#MA55#MA56#MA57#MA58#MA59#MA5A#MA5C#MA5E#MA60#MA62#MA63
#MA64#MA65#MA66#MA68#MA69#MA6A#MA81#MA82#MA83#MA85);
(7)I5-3定义,MA81:
0,MA82:
0无
(8)B口A口定义,MA81:
8,0;MA82:
8,0
B30=(MA04#MA05#MA06#MA07#MA08#MA09#MA0A#MA0B#MA0C#MA0D#MA0E
#MA0F#MA19#MA1C#MA50#MA51#MA52#MA53#MA54#MA55#MA63#MA81#MA82#MA84#MA85);
A30=(MA04#MA05#MA06#MA07#MA08#MA09#MA0A#MA0B#MA1A#MA1B#MA89#MA50#MA51
#MA5A#MA5E#MA62#MA66#MA83);
(9)SSTSSHSCI定义,MA81:
1,1;MA82:
1,1(001,001)
SST000:
=(MA04#MA05#MA06#MA07#MA08#MA09#MA0A#MA0C#MA0D#MA0F#MA50#MA51#MA52
#MA53#MA55#MA56#MA81#MA82);
SCI000:
=(MA00#MA01#MA05#MA09#MA0C#MA17#MA1D#MA1E#MA1F#MA23#MA31#MA53#MA54
#MA55#MA5B#MA5D#MA5F#MA61#MA67#MA81#MA82);
(10)DC2DC1定义,MA81:
0,0;MA82:
0,0
DC2_100:
=(MA00#MA01#MA12#MA15#MA17#MA19#MA1B#MA89#MA1D#MA1E#MA1F#MA21#MA23
#MA31#MA3A#MA3B#MA3D#MA58#MA59#MA5B#MA5C#MA5D#MA5E#MA5F#MA60#MA61
#MA62#MA64#MA67#MA83);
DC2_000:
=(MA00#MA01#MA02#MA12#MA15#MA17#MA19#MA1B#MA89#MA1D#MA1E#MA1F#MA21
#MA23#MA31#MA3A#MA3B#MA3C#MA3D#MA59#MA5B#MA5C#MA5D#MA5E#MA5F#MA60
#MA61#MA62#MA64#MA67#MA83);
按照如上代码对源代码进行修改后,利用JED编译软件生成.jed文件
具体操作步骤
①双击lc4256.syn,启动ispLEVER
②双击.abl文件
③双击CompileLogic进行编译
④双击JEDECFile,生成.jed文件
4、MACH编程
将JED文件下载到MACH器件的过程.
启动LatticeSemiconductor公司IspVMSystem软件,弹出主界面:
(1)连接好教学计算机上在线MACH编程电缆,打开教学计算机的电源。
(2)通过主界面的SCAN按钮找到在线编程器件。
(3)双击软件找到的设备LC4256v,通过Browse按钮选择已经编译好的JED文件,单击OK.
(4)重新回到主界面,点击GO命令进行编程,编程成功后关闭编程窗口。
五、编程验证及结果分析
编写一个验证程序,运行结果说明
1.第二条指令(ADTW)验证程序截图如下所示
分析:
上图是输入如下代码的结果:
2000:
MVRDR0,0005
2002:
INCR0
2004:
RET
2006:
E2002A110
G2000由分析可知代码最终结果正确
2.第三条指令(ADRM)验证程序截图如下所示
分析:
R1的原始值为1,后将R2值变换为7之后,执行程序,实现了R1和R2相加,将结果8送入R1中。
经过u命令进行验证,结果正确。
六、实验体会
通过本次实验,结合对以前课上对指令的理解,我更彻底的了解了指令的执行原理,在本次实验中,最重要的是对代码的修改部分,这就要建立在对每一条微指令的属性值的正确理解上,对应具体情况对每一条指令进行相应修改,从而才能正确编译,最后经过代码的验证已经编译好的文件,最终验证指令的扩展成功。
在这个过程中只要错了一步就不能完成最后的验证,经过了好几次我们才把文件修改正确完成验证。
在试验的过程中,我们充分的理解了计算机微程序控制器的组成和设计技术,包括Am2910期间的功能和具体用法,教学计算机的总体组成和各部件之间的连接方法。
教师评价
评定项目
A
B
C
D
评定项目
A
B
C
D
基本部件原理清楚
操作熟练
微指令设计合理
解析完整
微程序功能正确
文字流畅
验证程序运行正确
报告规范
其他:
评价教师签名:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 指令 扩展 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)