实验课程

THIS NAME

实验课程

当前位置: 首页 >> 实验课程 >> 正文

计算机体系结构-RISC处理器模型机实验

发布日期:2024-08-20    作者:苏迪     来源:     点击:

RISC处理器模型机实验

一、实验目的

1、掌握精简指令系统计算机(RISC)的含义及其工作流程。

2、了解RISC处理器的设计方法。

3、定义若干条机器指令,观察其运行过程和运行结果。

二、实验环境

COP2000软件

三、实验原理及说明

1COP2000总体结构

COP2000模型机包括了一个标准CPU所具备所有部件,这些部件包括:运算器ALU、累加器 A、工作寄存器 W、左移门L、直通门D、右移门R、寄存器组R0-R3、程序计数器PC、地址寄存器MAR、堆栈寄存器ST、中断向量寄存器IA、输入端口 IN、输出端口寄存器 OUT、程序存储器EM、指令寄存器IR、微程序计数器uPC、微程序存储器uM,以及中断控制电路、跳转控制电路。其中运算器和中断控制电路以及跳转控制电路用 CPLD 来实现,其它电路都是用离散的数字电路组成。微程序控制部分也可以用组合逻辑控制来代替。模型机为 8 位机,数据总线、地址总线都为 8 位,但其工作原理与 16 位机相同。相比而言 8 位机实验减少了烦琐的连线,但其原理却更容易被学生理解、吸收。

模型机的指令码为 8 位,根据指令类型的不同,可以有 0 2 个操作数。指令码的最低两位用来选择 R0-R3 寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。模型机有 24 位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。如图1所示。

图1

2、实验原理

RISC处理器设计的一般原则:

1)只选用使用频度高的指令,减小指令系统,使每一条指令能尽快的执行

2)减少寻址方式,并让指令具有相同的长度

3)让大部分指令在一个时钟完成

4)所有指令只有存(ST)、取(LD)指令可访问内存,其他指令均在寄存器间进行运算

5)使用组合逻辑实现控制器

源程序。

LD     A, #12H

     STA    R0

     LDW    R0

     ADDW   A

     STA    R1

     ST     A, 20H

     JMP    0

     END

下面我们给出一个RISC的指令系统。

助记符

机器码1

机器码2

注释

_FATCH_

000000xx

 

实验机占用,不可修改。复位后,所有寄存器清0,首先执行_FATCH_指令取指

ADDW  A

000001xx

 

将寄存器W加入累加器A中

ADDCW  A

000010xx

 

将寄存器W值加入累加器A中,带进位

SUBW  A

000011xx

 

从累加器A中减去寄存器W值

SUBCW  A

000100xx

 

从累加器A中减去寄存器W值,带进位

ANDW  A

000101xx

 

累加器A“与”寄存器W值

ORW  A

000110xx

 

累加器A“或”寄存器W值

LDW  A

000111xx

 

将累加器A的值送到寄存器W中

LDW  R?

001000xx

 

将寄存器R?的值送到寄存器W中

LDA  R?

001001xx

 

将寄存器R?送到累加器A中

STA  R?

001010xx

 

将累加器A的值送到寄存器R?中

RR  A

001011xx

 

累加器A右移

RL  A

001100xx

 

累加器A左移

RRC  A

001101xx

 

累加器A带进位右移

RLC  A

001110xx

 

累加器A带进位左移

CPL  A

001111xx

 

累加器A取反,再存入累加器A中

LD  A, #II

010000xx

II

将立即数送到累加器A中

LD  A, MM

010001xx

MM

将存储器中MM中的值送到累加器A中

ST  A, MM

010010xx

MM

将累加器A的值送到存储器MM地址中

JMP  MM

010011xx

 

跳转到地址MM

JC  MM

010100xx

 

若进位标志置1,跳转到地址MM

JZ  MM

010101xx

 

若零标志位置1,跳转到地址MM

四、实验步骤

1、在COP2000软件中,用菜单的[文件|调入指令系统/微程序]功能,打开COP2000下的“RISC.INS”,这就是RISC指令/微指令系统。

2、在COP2000软件中,用菜单的[文件|打开文件]功能,打开COP2000下的“EX7.ASM”。

3、执行“单微指令运行”功能,观察执行每条微指令时,寄存器的输入/输出状态,各控制信号的状态,PCuPC如何工作,并填写下表。

操作前寄存器数值

PC=00

指令

_FATCH_

执行过程

实验机占用,不可修改。复位后,所有寄存器清0,首先执行_FATCH_指令取指

微指令

CBFFFF

指令

状态

T0

微地址

00

操作后寄存器数值

PC=        、EM=      、IR=      、μPC=      

指令

LD   A,   #12H

执行过程

微指令

状态

微地址

操作后寄存器数值

PC=        、EM=      、IR=      、μPC=      

微指令

状态

微地址

操作后寄存器数值

PC=        、EM=      、IR=      、μPC=      、A=        

指令

STA  R0

执行过程

微指令

状态

微地址

操作后寄存器数值

PC=        、EM=      、IR=      、μPC=      、L=        

D=      、R=      

指令

LDW  R0

执行过程

微指令

状态

微地址

操作后寄存器数值

PC=        、EM=      、IR=      、μPC=      、R0=        

指令

ADDW  A

执行过程

微指令

状态

微地址

操作后寄存器数值

PC=        、EM=      、IR=      、μPC=      、W=        

指令

STA R1

执行过程

微指令

状态

微地址

操作后寄存器数值

PC=        、EM=      、IR=      、μPC=      、R0=        

L=      、D=     、R=      、A=        

指令

ST  A, 20H

执行过程

微指令

状态

微地址

操作后寄存器数值

PC=        、EM=      、IR=      、μPC=      、R1=        

微指令

状态

微地址

操作后寄存器数值

PC=        、EM=      、IR=      、μPC=      、MAR=        

微指令

状态

微地址

操作后寄存器数值

PC=        、EM=      、IR=      、μPC=      

指令

JMP 00

执行过程

微指令

状态

微地址

操作后寄存器数值

PC=         、EM=       、IR=      、μPC=      

指令

_FATCH_

执行过程

微指令

状态

微地址

操作后寄存器数值

PC=        、EM=      、IR=      、μPC=      

指令

LD   A,   #12H

执行过程

微指令

状态

微地址

操作后寄存器数值

PC=       、EM=      、IR=      、μPC=      

上一条:计算机体系结构-流水线模型机实验 下一条:大数据采集与预处理-Kettle数据清洗与转换

关闭