资源描述
计算机组成原理实验指导书 126
实验十二、RISC模型机实验
一、实验目的:
1. 掌握精简指令系统计算机(RISC)的含义及其工作流程。
2. 了解RISC处理器的设计方法。
3. 定义若干条机器指令,观察其运行过程和运行结果。
二、实验设备:
EL-JY-II型计算机组成原理实验系统一套,排线若干。
三、模型机结构:
图12-1 RISC模型机结构框图
图中运算器ALU由U7—U10四片74LS181构成,暂存器1由U3、U4两片74LS273构成,暂存器2由U5、U6两片74LS273构成。ALU的操作控制信号“S3S2S1S0MCn”设置为固定的电平信号“100101”,使其只能进行加法运算。除此之外,CPU的其它部分都由EP1K10集成(其原理见系统介绍部分)。本实验与前面实验的不同之处在于,机器指令的执行不通过微程序控制,而通过指令译码器直接译出各部件的控制信号,以硬布线方式控制,使得指令的执行速度大大加快,这也是RISC处理器的最大特点。
存储器部分由两片6116构成16位存储器,地址总线只有低八位有效,因而其存储空间为00H—FFH。
输出设备由底板上的四个LED数码管及其译码、驱动电路构成,当D-G和W/R均为低电平时将数据总线的数据送入数码管显示。在开关方式下,输入设备由16位电平开关及两个三态缓冲芯片74LS244构成,当DIJ-G为低电平时将16位开关状态送上数据总线。在键盘方式或联机方式下,数据可由键盘或上位机输入,然后由监控程序直接送上数据总线,因而外加的数据输入电路可以不用。
注:本系统的数据总线为16位,指令、地址和程序计数器均为8位。当数据总线上的数据打入指令寄存器、地址寄存器和程序计数器时,只有低8位有效。
四、工作原理
1、 本实验中RISC处理器定义了五条指令:MOV(寄存器寻址)、MOV(存储器寻址)、ADD、OUT、JMP。寻址方式采用寄存器寻址和立即数寻址两种。单字长指令格式为(高八位默任为0):
D7
D6
D5
D4
D3
D2
D1
D0
操作码
Rs
Rd
双字长指令格式为(高八位均默任为0):
D7
D6
D5
D4
D3
D2
D1
D0
操作码
Rs
Rd
立即数
Rs、Rd不同的状态选中不同的寄存器,具体如下表所示:
Rs或Rd
寄存器
00
Ax
01
Bx
10
Cx
11
DR1(加法暂存器1)
以上所有的指令均在一个机器周期内实现。
2、 本实验所用指令如下:
MOV: 1000 Rs Rd (寄存器寻址)
ADD: 1001 11 Rd
JMP: 0001 10 Rs
MOV : 0000 01 Rd(存储器寻址)
DATA(立即数)
OUT: 0100 01 Rs
指令说明:MOV(寄存器寻址)表示将Rs寄存器的数送给Rd寄存器。
MOV(存储器寻址)表示将立即数DATA送给寄存器Rd。
JMP 为转移指令,跳转地址为Rs寄存器中的值。
ADD 为加法指令,被加数固定为DR1,与加数Rd相加后送给Rd。
OUT指令表示将寄存器Rs的数据输出至显示单元。
3、本实验中也设置了对机器指令的三种操作状态,由CA2、CA1决定。CA2=1、CA1=0或CA2=0、CA1=1对应于写指令状态;CA2=0、CA1=0对应与读指令状态;CA2=1、CA1=1对应于指令执行状态,其流程见图12-2。(注:CA1、CA2由控制总线的E4、E5给出。键盘操作方式时由监控程序直接对E4、E5赋值,无需接线。开关方式时可将E4、E5接至控制开关CA1、CA2,由开关来控制。)
4、指令译码器的内部逻辑见随机工程文件total_3.gdf。
五、实验参考代码
本实验机器指令如下表所示:
地址(H) 内容(H) 助记符 说明
00 0004 MOV Ax,0001H 0001H—>Ax
01 0001
02 0005 MOV Bx,0001H 0001H—>Bx
03 0001
04 0087 MOV DR1,Bx Bx—>DR1
05 009C ADD Ax,DR1 Ax+DR1—>Ax
06 0044 OUT DISP, Ax Ax—>LED
07 0005 MOV Bx,0002H 02H—>Bx
08 0002
09 0019 JMP Bx Bx—>PC
表12-1 RISC实验机器指令表
注:DR1为累加器的暂存器1。其中MOV、JMP为双字长(32位),其余为单字长指令。对于双字长指令,第一字为操作码,第二字为操作数;对于单字长指令只有操作码,没有操作数。上述所有指令的操作码均为低8位有效,高八位默认为0。而操作数8位和16位均可。DISP为本系统专用输出设备。
六、实验连线
键盘方式见连线图12-3,开关方式见连线图12-4。(连线时应按如下方法:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上)
七、实验步骤
实验前首先将CPU板上的J1-J6跳线均接至EPC2 OFF,然后通过CPU板上JTAG口将total_3.pof文件写入FPGA。
Ι、键盘操作方式实验
按照接线图12-3将线全部接好。调整控制开关,使C-G=‘0’,S3S2S1S0MCN=“100101”。
1、写机器指令
(1) 先将K4拨到off状态,K1K2K3随意。按【RESET】按钮对单片机复位,使监 控指示灯滚动显示【CLASS SELECt】状态。
(2) 按【实验选择】键,显示【ES--_ _ 】输入12,按【确认】键,显示【ES12】,再按【确认】。
(3) 监控显示【CtL2=_】,输入1显示【CtL2_1】表示进入对机器指令写操作状态,此时拨动CLR清零开关(在控制开关电路上,注意对应的JUI应短接)对地址寄存器、指令寄存器清零,清零结果是地址指示灯全灭。如不清零则会影响机器指令的输入!!!确定清零后,按【确认】。
(4) 监控指示灯显示【data】,提示输入机器指令“04”或“0004”(两位或四位十六进制数),输入后按【确认】,显示【PULSE】,再按【单步】,数据总线显示灯显示“0000000000000100”,即输入的机器指令。
(5) 此时监控继续显示【data】,此时可输入第二条机器指令。依此规律逐条输入表12-1的机器指令,输完后,可连续按【取消】或【RESET】键退出写机器指令状态。注意,每按一次【单步】键,地址指示灯自动加1显示。如输入指令为8位,则高8位自动变为0。
2、读机器指令:
在监控指示灯显示【CtL2=_】状态下,输入2,显示【CtL2_2】,表示进入读机器指令状态,拨动CLR开关对地址寄存器和指令寄存器进行清零,然后按【确认】键,显示【PULSE】,按【单步】键,地址显示灯显示 “00000000”,数据总线指示灯显示“0000000000000100”。监控继续显示【PULSE】,以后每按一次【单步】键,地址指示灯自动加1显示,同时数据总线指示灯显示该地址对应的机器指令。如果发现机器指令有误,则需重新输入机器指令。
注意:机器指令存放在RAM里,掉电丢失,故断电后需重新输入。
3、运行程序
在监控指示灯显示【CtL2=_】状态下,输入3,显示【CtL2_3】,表示进入运行机器指令状态,拨动CLR开关对地址寄存器和指令寄存器进行清零,然后按【确认】键,显示【run CodE】,表示运行程序,可以【单步】运行也可以【全速】运行程序,观察实验运行结果。
4、运行结果
1)单步运行结果
在监控指示灯显示[run code]状态下,连续按[单步]键,可单步运行程序。当地址显示灯显示“00000110”时,输出显示电路数码管显示结果为0002。再连续按[单步],以后当地址显示灯再次显示“00000110”时,输出显示电路数码管显示结果自动加1。
2)全速运行结果
在监控指示灯显示[run code]状态下,按[全速]键,开始自动执行程序。此时数码管从“0002”起循环加1显示。
Ⅱ、开关操作方式实验
按照接线图12-4将线全部接好。调整控制开关,使C-G=‘0’,S3S2S1S0MCN=“100101”。
1、写机器指令
将控制开关上CA2拨至‘1’,CA1拨至‘0‘状态;拨动清零开关CLR对地址寄存器清零;将数据输入电路的D15—D0拨至需输入的指令数据,按一次[单步]键,数据便写入存储器,同时显示在LED上。改变输入数据,再按一次[单步]键,地址自动加1,写入存储器的数据同时在LED上显示出来。重复以上步骤,直至输完所有的机器指令。
2、 机器指令
将控制开关上CA2拨至‘0’,CA1拨至‘0’状态;拨动清零开关CLR对地址寄存器清零;按一次[单步]键,LED上显示出存储器当前地址上的数据。以后每按一次[单步]键,地址自动加1,LED的上同时显示出存储器当前地址上的数据。读操作可以检查存储器的数据是否与写入数据相符。如不符,可重复步骤1。
3、运行指令
将控制开关上CA2拨至‘1’,CA1拨至‘1’状态;拨动清零开关对地址寄存器清零;每按一次[单步]键,便顺序执行一条指令。地址指示灯表示当前的程序地址。
4、实验结果
如在单步运行状态下观察实验结果,则每当地址显示为“04”时,LED上显示输出结果。第一次为“0002”、第二次为“0003”、第三次为“0004”,以下类推(显示自动加1)。如在全速运行状态下观察实验结果,则输出显示数码管从“0002”起循环加1显示。
图12-2 RISC模型机实验流程图
图12-3 键盘方式连线图
图12-4 开关方式接线图
展开阅读全文