实验课程

THIS NAME

实验课程

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

计算机体系结构-重叠技术模型机实验

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

重叠技术模型机实验

一、实验目的

1、了解微程序控制器是如何控制模型机运行的,掌握整机动态工作过程;

2、掌握重叠和流水线结构的工作原理及实现方法;

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、实验原理

叠技术模型机引入“指令预取”部件BIU,使指令预取与指令执行的工作重叠进行。这里,计算机“执行部件”数据通路的控制仍由微程序控制器来完成,而“指令预取”部件的数据通路由一片CPLD来模拟。“指令预取”部件的内部采用三字节的先进先出栈(FIFO),在程序运行过程中,预取部件将指令从存储器中取到FIFO里,满为止。执行部件从FIFO中取得指令,在预取与执行的过程中互不影响。当执行部件遇到访内的指令时,先给BIU发一个请求信号,BIU收到该请求信号后,停止给FIFO 写数,这时总线空闲,执行部件就可以对外部设备进行读写操作。

四、实验步骤

1、在 COP2000 软件中,用菜单的[文件|调入指令系统/微程序]功能,打开 COP2000 下的

INST2.INS”,这就是流水操作的指令/微指令系统。

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

源程序

MOV   A, #12h

    MOV   A, R0

    MOV   A, @R0

    MOV   A, 01H

    IN

    OUT

    END

3、按快捷图标的 F7,执行“单微指令运行”功能,观察执行每条微指令时,寄存器的

输入/输出状态,各控制信号的状态,PC uPC 如何工作。特别是在每条指令的 T0 状态周期,取指操作是否和其它指令并行执行。

4、根据前面的实验步骤完成下列表格。

操作前寄存器数值

PC=00

指令

_FATCH_

执行过程

微指令

状态

微地址

操作后寄存器数值

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

指令

MOV A, #12

执行过程

微指令

状态

微地址

操作后寄存器数值

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

微指令

状态

微地址

操作后寄存器数值

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

指令

MOV A, R0

执行过程

微指令

状态

微地址

操作后寄存器数值

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

D=        、R=      

指令

MOV A, @R0

执行过程

微指令

状态

微地址

操作后寄存器数值

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

微指令

状态

微地址

操作后寄存器数值

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

L=      、D=      、R=      

微指令

状态

微地址

操作后寄存器数值

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

MAR=      

指令

MOV A, 01H

执行过程

微指令

状态

微地址

操作后寄存器数值

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

L=      、D=      、R=      

微指令

状态

微地址

操作后寄存器数值

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

微指令

状态

微地址

操作后寄存器数值

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

指令

IN

有无并行;如果有,在何处

执行过程

状态

微地址

操作后寄存器数值

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

D=        、R=      

指令

OUT

执行过程

微指令

状态

微地址

操作后寄存器数值

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

指令

_FATCH_

执行过程

微指令

状态

微地址

操作后寄存器数值

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

D=        、R=      

指令

_FATCH_

执行过程

微指令

状态

微地址

操作后寄存器数值

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

上一条:Python数据分析-Pandas的应用 下一条:计算机体系结构-流水线模型机实验

关闭