计算机专业计算机组成原理微指令扩展综合实验报告.doc_第1页
计算机专业计算机组成原理微指令扩展综合实验报告.doc_第2页
计算机专业计算机组成原理微指令扩展综合实验报告.doc_第3页
计算机专业计算机组成原理微指令扩展综合实验报告.doc_第4页
计算机专业计算机组成原理微指令扩展综合实验报告.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华北科技学院计算机学院设计性实验报告华北科技学院计算机学院设计性实验实 验 报 告 课程名称 计算机组成原理B 实验学期 2012 至 2013 学年 第 二 学期学生所在院部 计算机学院 年级 2010 专业班级 网络B102 学生姓名 李自奇 学号 201007024202 任课教师 席振元 实验成绩 计算机学院制 计算机组成原理A课程设计性实验报告开课实验室:计算机组成原理实验室 2013 年5 月 24 日实验题目指令扩展实验一、实验目的 深入了解教学计算机微程序控制器的组成和设计技术,包括Am2910器件的功能与具体用法,教学计算机的总体组成和部件之间的连接方法,总之应该深入理解控制器部件的组成、设计、控制与使用等诸项知识。二、设备与环境TEC-XP+教学机,微机一台,装有Windows XP、ISPLEVER、ispVM System等软件。三、实验内容在现有的基本指令系统上,扩展2条指令。指令一:NXOR DR,SR /DR与SR的值进行异或非运算并将结果返回DR指令二:SWRM DR,SR /DR的值与SR中存储的值对应的内存单元的值互换四、实验步骤 1、 扩展的2条指令扩展的2条指令的基本信息,包括指令的格式、功能、寻址方式、操作码编码、微程序步数、微程序入口地址序号格式功能寻址方式操作码编码微程序步数微程序入口地址1NXOR DR,SRDR与SR的值异或非寄存器直接寻址22H1804SWRM DR,SRDR与SR的值互换DR为寄存器直接寻址,SR为寄存器间接寻址E9H48A 2、 指令所对应的微程序(1)、微程序各字段的含义入口地址:指令的微程序入口地址;下址:微程序执行完后下一条微程序的地址;00表示需要进行地址转移逻辑,30表示微程序结束。CI3-0:判别测试字段,其主要编码及功能如表1。SCC3-0:地址转移逻辑字符,仅当CI3-0为0011时有效。其主要编码及功能如表2。MRW:控制对内存和I/O接口的读写,其主要功能如下:000,写内存;001读内存;010写串口;011读串口;1XX无内存和串口的读写操作。I2-0:控制数据来源,其编码及功能见表3。I8-6:控制对运算结果的处理,其编码及功能见表3。I5-3:运算功能的选择,其编码及功能见表3。表3 Am2901的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编码译码操作操作说明000NC不操作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用于关中断指令111NC不操作(2)、指令所对应的微程序序号指令入口地址下址CI3-0SCC3-0MRWI2-0I8-6I5-3B口A口SSTSSHSCIDC2DC11NXOR DR,SR8030304,13,78,81,00,04SWRM DR,SR8A00E04,30,08,00,00,000E04,41,00,80,03,000E01,73,08,00,00,030300,21,00,00,00,1(1)指令:NXOR DR,SR该指令共包括一步微指令,该步微指令的功能及各字段值的意义简述如下:入口地址:NXOR指令的微程序入口地址为80H;下址:30,即下一条指令的存储地址为30H,且为结束程序指令;CI3-0/SCC3-0:30 CI3-0为3,转换为二进制为0011,由上表1中的表可知此时进行条件微转移,SCC3-0为0,转换为二进制为0000,其功能为必转移,即执行完该条微指令后必须转移到下一条指令对应的地址。MRW/I2-0:4,1 由上图可知,MRW为4,转换为二进制为1XX,由MRW功能可知,其功能为无内存和串口的读写操作; 该指令中I2-0为1,转换为二进制为001,由表3中可知,数据来源于A,B两个寄存器;I8-I6/I5-I3:3,7该指令中I8-I6为3,转换为二进制为011,I5-I3为7,转换为二进制为111,根据表3可知,I8-I6的功能为将运算结果存入B寄存器;I5-I3的功能为异或指令;B口/A口:8,8该指令中B口和A口均为8,指明了A口和B口的地址均为1000,该指令使用了A和B两个寄存器;SST/SSH SCI:1,0 该指令中SST为1,即为001,代表 CZVS为C(Cy)Z(ZR)V(OV)S(F15);SSH SCI为0,即为000,即表示Cin=0;DC2/DC1:0,0 该指令中DC1和DC2分别为0,0,表示为二进制为000,000,由表4-1和表4-2可得,DC1表示送开关内容到内部总线,DC2表示不操作。(2)指令 :SWRM DR,SR 改指令需要四步微指令完成。第一步:该指令的入口地址为8A,下址为00,微程序顺序执行,无内存操作,数据来源为011,运算结果送入Q寄存器,并由Y口输出,进行R与S的加法操作,B口为IR的DR,不使用A口数据,状态寄存器的值不变,进位输入为0,专用寄存器无操作,送开关内容到内部总线;第二步:微程序的入口地址为8B,下址为00,顺序执行,无内存操作,数据来源为100,运算结果送入Y输出,进行R与S的加法运算,不使用B口数据,A口为IR的SR,状态寄存器的值不变,进位输入为0,地址寄存器接收数据,送开关内容到内部总线;第三步:微程序的入口地址为8C,下址为00,顺序执行,对内存进行读操作,运算器外获得数据,运算结果送入B口,并由Y输出,进行R与S的或运算,B口为IR的DR,不使用A口数据,状态寄存器的值不变,进位输入为0,专用寄存器无操作,送开关内容到内部总线;第四步:微程序的入口地址为8D,下址为30,执行完后必转,对内存进行写操作,数据来源为010,运算结果送入Y输出,进行R与S的加法运算,不使用A口与B口数据,状态寄存器的值不变,进位输入为0,专用寄存器无操作,送ALU输出到内部总线。 3、ABEL语言源程序编辑以及JED文件生成 利用ISPLEVER软件打开原始代码文件进行修改,将NXOR和ADRM两条指令写入芯片中。(1) 添加指令操作码NXOR = (IR = 0,0,1,0,0,0,1,0); SWRM = (IR = 1,1,1,0,1,0,0,1);(2) 添加入口地址 MA80 = (Y = 1000 0000);/80H NXOR指令入口地址 MA8A = (Y = 1000 1010);/8AH SWRM指令第一条伪指令入口地址MA8B = (Y = 1000 1011);MA8C = (Y = 1000 1100);MA8D = (Y = 1000 1101)(3) 入口地址定义 对NXOR指令做如下修改: D7= !C_M&(!_MAP&(NXOR# .)#NXTADDR7&!_PL)&!Bit8; 对ADRM指令做如下修改:D1= !C_M&(!_MAP&(SWRM#)#NXTADDR1&!_PL)&!Bit8;D3= !C_M&(!_MAP&(SWRM#)#NXTADDR3&!_PL)&!Bit8;D7= !C_M&(!_MAP&(NXOR#SWRM#)#NXTADDR7&!_PL)&!Bit8;(4) 下址定义对NXOR指令做如下修改:NXTADDR5:=!C_M&( MA80#.)&!Bit8;NXTADDR4:=!C_M&( MA80#.)&!Bit8;对ADRM指令做如下修改:NXTADDR5:=!C_M&( MA8D#.)&!Bit8;NXTADDR4:=!C_M&( MA8D#.)&!Bit8;(5) 条件转移字段定义 对NXOR指令做如下修改:CI0 := !C_M&(MA80#.)&NRST&!Bit8;对ADRM指令做如下修改:CI3:= !C_M&(MA8A#MA8B#MA8C#.)&NRST&!Bit8;CI2:= !C_M&(MA8A#MA8B#MA8C#.)&NRST&!Bit8CI1:= !C_M&(MA8A#MA8B#MA8C#.)&NRST&!Bit8CI0 :=!C_M&(MA8D#.)&NRST&!Bit8(6) 定义MRW 对NXOR指令做如下修改:!_MIO00:=!(MA80#.)对ADRM指令做如下修改:!_MIO00:=!(MA8A#MA8B#.)_WE00 :=(MA8C#.);(7) I2-I0,I8-I6,I5-I3定义I200:=(MA8B#MA8C#.);I100:=(MA8A#MA8C#MA8D#.);!I000:=!(MA8A#MA8C#.);I700:=(MA8C#.);!I600 :=!(MA8B#MA8C#MA8D#MA80#.); I500 :=(MA80#.);I400 :=(MA80#.);I300 :=(MA80#.)(8) B口、A口定义B30=(MA80#MA8A#MA8C#.);A30=(MA8B#MA80#.);(9) SST/SSH SCI定义SST000:=(MA80#.);(10) DC2 DC1的定义DC2_100:=(MA8B#.);DC2_000:=(MA8B#.); 按照如上代码对源代码进行修改后,利用JED编译软件生成.jed文件。 4、MACH编程 将JED文件下载到MACH器件的过程: (1)接好教学机上在线MACH编程电缆,将教学机电源打开。(2)启动ispVM System软件,通过主界面的SCAN按钮找到在线编程器件。 (3)双击找到的编程器件,双击Browse按钮选择已经编译好的Jed文件,选择OK按钮。 (4)重新回到主界面,点击GO命令进行编程。五、编程验证及结果分析 1 验证 NXOR DR,SR指令本条指令的验证时采用0010和1100来验证,分别将0010送入R1寄存器,1100送入R2寄存中,然后用E2004写入指令的操作码2212,最后运行程序,验证指令。 验证指令SWRM的过程。说明:先将数据5送入R1中,再将数据2050送入R2中,用e命令将6送入2050单元中。执行SWRM指令后,2050单元中的数据变为5,R1中的数据变为6。指令执行正确。六、实验体会 通过一上午的指令扩展实验,经过一步步的操作,由软件的正确使用到扩展指令的代码的正确修改,尤其是分析每一条微指令的各个字段值的分析并对代码进行修改,进而对修改的程序进行正确的编译,最后,对完成的芯片进行代码验证,最终得出了正确的实验结果,经过一步步的实验过程,使我充分理解了每一条微指令的字段的意义以及其作用,理解了指令扩展的方法。通过本次实验,结合对以前课程上学习的某些指令的理解,更彻底的了解了指令的执行原理,在本次实验中,最重要的是对代码的修改部分,这就要建立在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论