收藏 分销(赏)

基于重叠和流水线技术的CPU结构实验.doc

上传人:精**** 文档编号:4272263 上传时间:2024-09-02 格式:DOC 页数:12 大小:4.85MB
下载 相关 举报
基于重叠和流水线技术的CPU结构实验.doc_第1页
第1页 / 共12页
基于重叠和流水线技术的CPU结构实验.doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述
实验十一、基于重叠和流水线技术的CPU结构实验 一、实验目的: 1. 了解微程序控制器是如何控制模型机运营的,掌握整机动态工作过程; 2. 掌握重叠和流水线结构的工作原理及实现方法; 3. 定义五条机器指令,编写相应微程序并具体上机调试。 二、实验设备: EL-JY-II型计算机组成原理实验系统一套,排线若干。 三、模型机结构: 图11-1 模型机结构框图 图中运算器ALU由U7—U10四片74LS181构成,暂存器1由U3、U4两片74LS273构成,暂存器2由U5、U6两片74LS273构成。微控器部分控存由U13—U15三片2816构成。除此之外,CPU的其它部分都由EP1K10集成(其原理见系统介绍部分)。 存储器部分由两片6116构成16位存储器,地址总线只有低八位有效,因而其存储空间为00H—FFH。 输出设备由底板上的四个LED数码管及其译码、驱动电路构成,当D-G和W/R均为低电平时将数据总线的数据送入数码管显示。在开关方式下,输入设备由16位电平开关及两个三态缓冲芯片74LS244构成,当DIJ-G为低电平时将16位开关状态送上数据总线。在键盘方式或联机方式下,数据可由键盘或上位机输入,然后由监控程序直接送上数据总线,因而外加的数据输入电路可以不用。 注:本系统的数据总线为16位,指令、地址和程序计数器均为8位。当数据总线上的数据打入指令寄存器、地址寄存器和程序计数器时,只有低8位有效。 四、工作原理 重叠技术的原理为:程序开始执行时,先将若干条指令取入一个先进先出(FIFO)的指令队列。然后在指令译码的同时,从FIFO队列中取出下一条指令,打入指令寄存器,使得“取指令”和“执行指令”具有时空上的并行性。流水线技术是建立在重叠技术的基础上。本实验采用二级流水线结构,其原理为:使取指和指令译码同时进行,当上一条指令执行完毕后,不再进行下一条指令的取指,而直接进入译码、执行过程,如次循环。 在本实验中当PC指针为“00000001”时,先将第一条指令由RAM读出并打入指令寄存器,然后顺序取出第2、3、4、5条指令的操作码送入FIFO队列。本实验与其它实验不同的是:本实验指令译码过程中P1测试和P2测试同时有效(相应于F3字段为“011”),以指令寄存器的I7—I2作为测试条件,产生5路分支,占用5个固定的微地址单元。同时PC指针加1,并将FIFO队列中的第一个数据(即下一条指令)取出打入指令寄存器。当上一条指令执行完毕后,直接返回到译码阶段。以上这些操作均由EP1K10实现,有爱好的读者可查看随机工程文献total_2.gdf。 在24位微指令中,F1、F2、F3三个字段的编码方案如表11-2: F1字段 F2字段 F3字段 15 14 13 选择 12 11 10 选择 9 8 7 选择 0 0 0 LDRi 0 0 0 RAG 0 0 0 P1 0 0 1 LOAD 0 0 1 ALU-G 0 0 1 AR 0 1 0 LDR2 0 1 0 RCG 0 1 0 P3 0 1 1 自定义 0 1 1 自定义 0 1 1 P1P2 1 0 0 LDR1 1 0 0 RBG 1 0 0 P2 1 0 1 LAR 1 0 1 PC-G 1 0 1 LPC 1 1 0 LDIR 1 1 0 299-G 1 1 0 P 4 1 1 1 无操作 1 1 1 无操作 1 1 1 无操作 表11-2 系统涉及到的微程序流程见图11-2(图中各方框内为微指令所执行的操作,方框外的标号为该条微指令所处的八进制微地址)。当所有微程序流程图设计完毕后,应将每条微指令代码化,表11-3即为将图11-2的微程序流程按微指令格式转化而成的微代码表。 图11-2(a) 图11-2(b) 五、实验参考代码 本实验采用的微代码如下: 微地址(八进制) 微代码(十六进) 00 007F90 01 005B5B 02 015BD9 04 0029C5 05 9403D9 10 010FD9 11 011F41 20 005B52 21 005B54 22 014FD7 23 005B5A 24 01CFD8 27 06F3D0 30 FF73D1 31 006EE0 32 011F41 33 016FDC 34 017FDD 35 017FDE 36 017FDF 37 017FC2 41 005B48 42 005B49 45 02F1D9 46 018FD9 51 0041C4 表11-3 实验微指令代码表 本实验机器指令代码如下: 地址(十六进制) 机器指令(十六进制) 助记符 00 0000 01 0048 IN Ax, kIN 02 0005 MOV Bx, 01H 03 0001 04 0094 ADD Ax, Bx 05 0044 OUT DISP, Ax 06 0008 JMP 00H 07 0000 表11-4 实验机器指令表 注:其中MOV、JMP为双字长(32位),其余为单字长指令。对于双字长指令,第一字为操作码,第二字为操作数;对于单字长指令只有操作码,没有操作数。上述所有指令的操作码均为低8位有效,高八位默认为0。而操作数8位和16位均可。KIN和DISP分别为本系统专用输入、输出设备。 六、实验连线 采用键盘方式时见连线图11-3。(连线时应按如下方法:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上)。采用开关方式时,接线作如下改动: 断开控制总线C1——C6和F4——F1上的接线 数据输入电路DIJ1 接 数据总线BD7-----BD0 数据输入电路DIJ2 接 数据总线BD15-----BD8 数据输入电路DIJ-G 接 I/O控制电路Y3 微控器接口UAJ1 接 控制开关电路UA5---UA0 脉冲源及时序电路fin 接 脉冲源及时序电路f/8 脉冲源及时序电路T4—T1 接 控制总线T4---T1 控制开关电路CA1 接 控制总线E4 控制开关电路CA2 接 控制总线E5 七、实验环节 实验前一方面将CPU板上的J1-J6跳线均接至EPC2 ON,然后通过CPU板上JTAG口将total_2.pof文献写入FPGA。将系统关电重启动。 Ⅰ、单片机键盘操作方式实验。 1、写微代码: (1) 将开关K1K2K3K4拨到写状态即K1 off、K2 on、K3 off、K4 off,其中K1、K2、K3在微程序控制电路,K4在24位微代码输入及显示电路上。在监控指示灯滚动显示【CLASS SELECt】状态下按【实验选择】键,显示【ES--_ _ 】输入11,按【确认】键,显示为【ES11】,再按下【确认】键。 (2) 监控显示为【CtL1=_】,输入1显示【CtL1_1】,按【确认】。 (3) 监控显示【U-Addr】,此时输入【000000】6位二进制数表达的微地址,然后按【确认】键,监控指示灯显示【U_CodE】,显示这时输入微代码【007F90】,该微代码是用6位十六进制数来表达前面的24位二进制数,注意输入微代码的顺序,先右后左,按【确认】键则显示【PULSE】,按【单步】完毕一条微代码的输入,重新显示【U-Addr】提醒输入第二条微代码地址。 (4) 按照上面的方法输入表11-3微代码,观测微代码与微地址显示灯的相应关系(注意输入微代码的顺序是由右至左)。 2.读微代码及校验微代码: (1) 先将开关K1K2K3K4拨到读状态即K1 off、K2 off、K3 on、K4 off,按【RESET】按钮对单片机复位,使监控指示灯滚动显示【CLASS SELECt】状态。 (2) 按【实验选择】键,显示【ES--_ _ 】输入11,按【确认】键,显示【ES11】。按【确认】键。 (3) 监控显示【CtL1=_】时,输入2,按【确认】显示【U_Addr】 ,此时输入6位二进制微地址,进入读代码状态。再按【确认】显示【PULSE】,此时按【单步】键,微地址指示灯显示输入的微地址,同时微代码显示电路上显示该地址相应的微代码,至此完毕一条微指令的读过程。 (4) 此时监控显示【U_Addr】,按上述环节对照表11-3检查微代码是否有错误,如有 错误,可按环节1重新输入微代码。 3、写机器指令 (1) 先将K1K2K3K4拨到运营状态即K1 on、K2 off、K3 on、K4 off,按【RESET】按钮对单片机复位,使监控指示灯滚动显示【CLASS SELECt】状态。 (2) 按【实验选择】键,显示【ES--_ _ 】输入11,按【确认】键,显示【ES11】,再按【确认】。 (3) 监控显示【CtL1=_】,按【取消】键,监控指示灯显示【CtL2=_】,输入1显示【CtL2_1】表达进入对机器指令操作状态,此时拨动CLR清零开关(在控制开关电路上,注意相应的JUI应短接)对地址寄存器、指令寄存器清零,清零结果是微地址指示灯和地址指示灯全灭。如不清零则会影响机器指令的输入!!!拟定清零后,按【确认】。 (4) 监控显示闪烁的【PULSE】,按【单步】键,微地址显示灯显示“010001”时,再按【单步】,微地址显示灯显示“010100”,地址指示灯显示“00000000”,此时按【确认】键,监控指示灯显示【data】,提醒输入机器指令“00”或“0000”(两位或四位十六进制数),输入后按【确认】,显示【PULSE】,再按【单步】,微地址显示灯显示“011000”,数据总线显示灯显示“0000”,即输入的机器指令。 (5) 再连续按【单步】,当微地址显示灯再次显示“010100”时,按【确认】输入第二条机器指令。依此规律逐条输入表11-4的机器指令,输完后,可连续按【取消】或【RESET】键退出写机器指令状态。注意,每当微地址显示灯显示“001100”时,地址指示灯自动加1显示。如输入指令为8位,则高8位自动变为0。 4.读机器指令及校验机器指令: 在监控指示灯显示【CtL2=_】状态下,输入2,显示【CtL2_2】,表达进入读机器指令状态,按环节4的方法拨动CLR开关对地址寄存器和指令寄存器进行清零,然后按【确认】键,显示【PULSE】,连续按【单步】键,微地址显示灯显示从“000000”开始,然后按“010000”、 “010010” 、“010110”方式循环显示。当微地址灯再次显示为“010000”时,输出显示数码管上显示写入的机器指令。读的过程注意微地址显示灯,地址显示灯和数据总线指示灯的相应关系。假如发现机器指令有误,则需重新输入机器指令。 注意:机器指令存放在RAM里,掉电丢失,故断电后需重新输入。 5.运营程序 在监控指示灯显示【CtL2=_】状态下,输入3,显示【CtL2_3】,表达进入运营机器指令状态,按环节4的方法拨动CLR开关对地址寄存器和指令寄存器进行清零,然后按【确认】键,显示【run CodE】,表达运营程序,可以【单步】运营也可以【全速】运营程序,观测实验运营结果。 6.运营结果 1)单步运营结果 在监控指示灯显示[run code]状态下,连续按[单步]键,可单步运营程序。当微地址显示灯显示“100110”时,按[单步],监控指示灯显示[data],此时输入数据2233,即被加数,按[确认]。再连续按[单步],当微地址显示灯显示“100101”时,再按[单步],输出显示电路数码管显示结果为2234,即2233+0001=2234,同时数据显示灯显示“0100”,表达结果对的。 2)全速运营结果 在监控指示灯显示[run code]状态下,按[全速]键,开始自动执行程序。在监控指示灯显示[data]时输入数据,按[拟定]键,程序继续运营,此时可由数码管显示出运算结果,与单步运营的结果相同。 Ⅱ、采用开关控制操作方式进行实验 读者可参考前述实验自行思考用开关方式的接线和实验过程。 八、实验提醒 在单步运营状态下,通过微地址显示灯观测其运营流程,比较与实验六的不同之处。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服