计算机组成原理实验 2.8 微程序控制器 赖晓铮_第1页
计算机组成原理实验 2.8 微程序控制器 赖晓铮_第2页
计算机组成原理实验 2.8 微程序控制器 赖晓铮_第3页
计算机组成原理实验 2.8 微程序控制器 赖晓铮_第4页
计算机组成原理实验 2.8 微程序控制器 赖晓铮_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

计算机组成原理实验系列一、总线与寄存器二、进位加法器三、比较器(仲裁器)四、计数器五、运算器六、存储器七、时序发生器八、微程序控制器九、硬布线控制器laixz@QQ:680465082021/5/91(八)微程序控制器实验实验内容:●设计一个“最简版本”的CPU模型机:利用时序发生器来产生CPU的预定时序,通过微程序控制器的自动控制,在数据通路中完成唯一的CPU功能——程序跳转。实验目的:●理解“微程序”思想和“指令-微指令-微命令”微程序结构。●掌握微程序控制器的结构和设计方法。2021/5/92微程序控制器版本的CPU2021/5/93CPU指令格式NOP0000XXXX空指令:不执行任何操作HLT1110XXXX“断点”:硬件停机JMP10010XXXX间接寻址:[addr1]=addr2,addr2PCJMP2addr1直接寻址:addr1PC0100XXXXaddr12021/5/94汇编助记符注释(M地址:机器指令)JMP1,06H程序跳转到地址06H执行06HPC00H:0010000001H:00000110HLT停机02H:11101010NOP/Addr空/【地址】03H:00001010NOP空04H:00000000NOP空05H:00000000NOP/Addr空/【地址】06H:00000010HLT停机07H:11100001JMP2,[06H]程序跳转到地址[06H]执行[06H]=02H,02HPC08H:0100000009H:00000110未定义0AH:111111110BH:11111111

程序存储器PROGRAM2021/5/95数据通路电路图2021/5/96有效的微操作信号功能指令流ROMIRT1#OE,AR_CLK(LDAR)PCAR,ROMBUST2#OE,IR_CLK(LDIR),PC_CLK(PC_INC)BUSIR,PC+1数据流ROMPCT1#OE,#LDPC,AR_CLK(LDAR)PCAR,ROMBUST2#OE,#LDPC,PC_CLK(PC_INC)BUSPCROMIRROMPCROMIRROMIRROMIRROMPCROMPC停机JMP2NOPHLTJMP1指令执行周期取指周期2021/5/97NOP/HLT指令(I7I6I5=000/111)

JMP1指令(I7I6I5=001)

JMP2指令(I7I6I5=010)

P1(00I7I6I5)【T1】PCAR,ROMBUS【T2】BUSIR,PC+1硬件停机000000000000111微程序流程图P1(00I7I6I5)【T1】PCAR,ROMBUS【T2】BUSIR,PC+1000000000000001000100000100000【T1】PCAR,ROMBUS【T2】BUSPC【T1】PCAR,ROMBUS【T2】BUSPCP1(00I7I6I5)【T1】PCAR,ROMBUS【T2】BUSIR,PC+1【T1】PCAR,ROMBUS【T2】BUSPC000000000000000000012021/5/98微命令字段中每一位表示一个微命令:

第N位=1—有微操作0—无微操作微指令结构图·······················24232221

201918171615141312111098765432LDARPC_INCOELDIRP1uA4uA3uA2uA1uA0微命令字段下址字段1LDPCP字段Addr24232221201918171615141312111098765432100000000000010010010101000000000010000000110100100000000000001000000001101001000000000100111000000000000000000000000微指令代码表2021/5/99地址转移逻辑OP码微地址寄存器地址译码控制存储器P字段微命令字段……微操作信号指令寄存器IR…状态条件微指令寄存器微程序控制器结构示意图2021/5/910(微程序)控制存储器电路图2021/5/911【T1】源部件总线BUS【T2】总线BUS目标部件【T3】微指令下址取址【T4】若P1=1,则微地址转移微指令状态机模型微命令微指令CPU指令(微程序)微指令周期(机器周期)指令周期节拍周期(Tx周期)指令的“微程序”架构2021/5/912微地址寄存器和地址转移逻辑2021/5/913时序发生器电路图2021/5/914初始化过程:时钟CLK接在MANUAL_CLK端,令RESET=1,则#CLR=0,清零微地址寄存器MAx和指令寄存器IR。此时,#HLT=1,且74LS194状态{S0,S1}={1,1},工作模式是送数。手动按钮MANUAL_CLK一次,令CLK端上升沿跳变,节拍{T1,T2,T3,T4}={1,0,0,0}。令RESET=0,74LS194恢复循环右移模式,进入第一条指令的取指周期节拍时序。重启过程(跳出HLT“断点”):时钟CLK接在MANUAL_CLK端,令RESET=1,则#CLR=0,清零微地址寄存器MAx和指令寄存器IR。此时,#HLT=1,且74LS194状态{S0,S1}={1,1},工作模式是送数。令RESET=0,74LS194恢复循环右移模式,进入第一条指令的取指周期节拍时序。注:跳出“断点”后CPU进入HLT指令的后续下一条指令的取指周期。2021/5/915实验步骤(JMP1/JMP2指令):根据微指令代码表编写下列微程序,编译并生成三个HEX文件,分别烧写到控制存储器EPROM1、EPROM2及EPROM3(切记勿写错存储器!)。EPROM1烧写内容EPROM2烧写内容EPROM3烧写内容ORG 0000HDB 00000001BDB 00000001BDB 00000001BDB 00000000BDB 00000000BDB 00000000BDB 00000000BDB 00000000BENDORG 0000HDB 00100101BDB 10100100BDB 10100100BDB 00000000BDB 00000000BDB 00000000BDB 00000000BDB 00000000BENDORG 0000HDB 01000000BDB 00000000BDB 00000001BDB 00000000BDB 00000000BDB 00000000BDB 00000000BDB 00000000BEND

问题:在写入控制存储器的微指令代码表中,地址[00001]和[00010]的两条执行周期微指令执行的微操作完全一样。请问,可否合并这两条微指令?若不能,原因是什么?2021/5/916实验步骤(JMP1/JMP2指令):2)编译如后页所示的机器语言源程序,生成HEX文件烧写到程序存储器PROGRAM中(编译和烧写asm文件的方法参见“2.6存储器实验:ROM批量导入数据”)3)启动仿真前,时钟信号CLK接在MANUAL_CLK端;启动仿真,复位信号RESET=1,然后手动按钮MANUAL_CLK一次,令时钟信号CLK上升沿跳变,初始化节拍{T1,T2,T3,T4}={1,0,0,0};最后,令复位信号RESET=0,初始化过程完成。4)手动按钮MANUAL_CLK,单步执行上述机器语言程序。在JMP1或JMP2指令的指令周期中,对照微程序流程图,观察每一条微指令的作用,以及单步执行的结果(例如寄存器AR、IR、PC及总线BUS上的数据)。5)时钟信号CLK改接在AUTO-CLK信号源(主频10Hz),程序会自动运行到HLT指令“断点”暂停。查看“断点”处的微指令周期数指示,以及寄存器AR、IR、PC及总线BUS上的数据。使能复位信号RESET“010”,跳出“断点”继续运行。2021/5/917汇编助记符注释(M地址:机器指令)JMP1,06H程序跳转到地址06H执行06HPC00H:0010000001H:00000110HLT停机02H:11101010NOP/Addr空/【地址】03H:00001010NOP空04H:00000000NOP空05H:00000000NOP/Addr空/【地址】06H:00000010HLT停机07H:11100001JMP2,[06H]程序跳转到地址[06H]执行[06H]=02H,02HPC08H:0100000009H:00000110未定义0AH:111111110BH:11111111JMP1_22021/5/918实验步骤(新指令JMP3):增加一条二次间接寻址的跳转指令JMP3。请补充微程序流程图及微指令代码表(新增微指令地址[00011]),实现如上所示JMP3指令的功能。2)启动编译如后页所示的机器语言源程序,生成HEX文件烧写到程序存储器PROGRAM(编译和烧写asm文件的方法参见“2.6存储器实验:ROM批量导入数据”)。二次间址:[addr1]=addr2,[addr2]=addr3,addr3PCJMP30110XXXXaddr12021/5/919汇编助记符注释(M地址:机器指令)JMP1,06H程序跳转到地址06H执行06HPC00H:0010000001H:00000110HLT停机02H:11101010NOP/Addr空/【地址】03H:00001010JMP3,[[0BH]]程序跳转到地址[[0BH]]执行[0BH]=03H,[[0BH]]=[03H]=0AH0AHPC04H:0110000005H:00001011NOP/Addr空/【地址】06H:00000010HLT停机07H:11100001JMP2,[06H]程序跳转到地址[06H]执行[06H]=02H,02HPC08H:0100000009H:00000110HLT停机0AH:11100000NOP/Addr空/【地址】0BH:00000011JMP1_2_32021/5/920实验步骤(新指令JMP3):3)参照前述“JMP1/JMP2指令”实验所述的初始化、手动单步执行的方法,单步执行上述机器语言程序。在JMP3指令的指令周期中,对照其微程序流程图,观察每一条微指令的作用,以及单步执行的结果(例如寄存器AR、IR、PC及总线BUS上的数据)。4)参照前述“JMP1/JMP2指令”实验

所述的自动运行以及跳出“断点”的方法,自动运行上述机器语言程序到HLT指令“断点”暂停。查看“断点”处的微指令周期数指示,以及寄存器AR、IR、PC及总线BUS上的数据。

问题:在本实验程序中,有部分地址标示“NOP/[ADDR]”,为何

相同代码会有不同的执行效果?执行到该处,在什么情况下是不执行任何操作?在什么情况下是程序跳转?2021/5/921思考题:●微程序版本CPU最多有多少条微指令?最多有多少条CPU指令?微指令和CPU指令的容量分别由什么因素限定?●请问微程序控制器“状态机”可否提升效率,减少到三个状态{T1,T2,T3}?即微指令周期可否减少到只用T1、T2、T3三个节拍即可完成一条微指令从取指到执行的全过程?●在本实验的CPU模型机上增加两个74LS173寄存器R1和R2,以及一个连接

温馨提示

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

评论

0/150

提交评论