计算机组成原理实验指导-2012-1 - 图文

更新时间:2024-05-04 02:33:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

计算机组成原理 实验指导

河南大学计算机与信息工程学院

2011年

TEC-XP实验设备概述

TEC-XP实验设备是由清华大学科教仪器厂和清华大学计算机系联合研制,并通过教育部鉴定的实验系统。TEC-XP是在原有TEC系列教学计算机系统的基础上,重新设计的新一代产品,进一步增加了用单片FPGA门阵列器件实现的CPU系统。该实验系统重点用于计算机组成原理、计算机系统结构等课程的硬件教学实验,还支持监控程序、汇编语言程序设计、BASIC高级语言程序设计等软件方面的教学实验。

TEC-XP教学机的外观如图1所示。

图1 TEC-XP教学机的外观

TEC-XP教学机的系统结构如图2所示。

/GAR地址寄存器电平转换Y地CZVS址译码 2路串行接口器运算器部件总线DA口 B口I8~I0SSH SCI SST数据内部总线双线选通门/SWTOIB/YTOIB/IRLTOIB/FTOIB控制信号总线数据总线FFPGPGAA芯片实现的CPUPU系统控制总线/MIO REQ /WEDC2译/GAR码器/GIR译码器DC1译码器 内存体控制器部件地址总线

图2 TEC-XP教学机的系统结构图

TEC-XP教学机的主要技术指标

TEC-XP教学机的机器字长16位,即运算器、主存、数据总线、地址总线都是16位。 (1)TEC-XP的内存地址分配如图3所示。其中0000H~1FFFH的8K空间是由ROM构成的,存放洗的监控程序,2000H~27FFH的2K空间是由RAM构成的工作区。该教学机还可以进一步完成存储器扩展的教学实验,扩展地址从4000H开始。

图3 TEX-XP教学机的内存分配

(2)运算器由4片位片结构器件级联而成,片间用串行进位方式传递进位信号。ALU实现8种算术与逻辑运算功能,内部包括16个双端口读出、单端口写入的通用寄存器,和一个能自行移位的乘商寄存器。设置C(进位标志位)、Z(零标志位)、V(溢出标志位)、S(符号标志位)四个状态标志位。

(3)控制器采用微程序和硬布线两种控制方案实现,可由实验者自由选择。

TEC-XP教学机的面板结构

TEC-XP教学机的面板结构如图4所示,控制部件主要由运算部件ALU、控制部件——组合逻辑控制器和微程序处理器、存储部件——ROM和RAM、控制存储器等芯片构成。

用户输入部分在面板的最下方,自左向右分别是工作模式选择开关、运算器控制信号输入开关、数据输入开关三个部分。系统中的输出结果可由面板上的发光二极管状态得到。

图4 TEX-XP教学机的面板

TEC-XP教学机的脱机和联机工作方式

TEC-XP教学机可以采用脱机和联机两种工作方式。 脱机工作方式是指所有操作在TEC-XP教学机上完成,通过控制按钮、数据开关等硬件的设置来控制TEC-XP教学机的工作,执行结果在发光二极管上查看。这种方式适合于需要做硬件级别实验时使用。

联机工作方式是指,TEC-XP教学机通过串口与PC连接,由PC运行仿真终端软件PCEC(路径一般为:D:\\大板可编程器件内容\\Pcec16.com),在监控状态下对TEC-XP教学机的工作进行操作控制。这种方式适合于需要大量数据输入和输出的实验中使用。

图5 TEC-XP教学机的串口

工作模式选择开关

在每次使用TEC-XP教学机进行实验之前,都应先选择当前教学机应工作的状态,这由面板左下方的5个黑色控制开关的状态决定,工作模式的选择如表1所示。其中“1”表示开关上拨,“0”表示开关下拨,“X”表示该开关无用。

表1 工作模式选择开关状态

开关状态 00110 00010 11110 11010 1XX00

工作模式 连续运行程序、采用组合逻辑控制器、联机、16位机 连续运行程序、采用微程序控制器、联机、16位机 单步运行程序、手动设置指令、采用组合逻辑控制器、联机、16位机 单步运行程序、手动设置指令、采用微程序控制器、联机、16位机 16位机、脱机运算器实验 TEC-XP教学机串口的状态寄存器

TEC-XP教学机是通过串口(可编程串行接口8251A)与PC连接的,在联机操作中,PC机对教学机的访问是通过对其数据端口和控制状态端口来完成的。TEC-XP教学机的COM1口(左侧)的数据端口地址为80H,控制与状态口地址为81H;COM2(右侧)的数据端口地址为82H,控制与状态口地址为83H。

TEC-XP教学机与PC机的联机操作方法

1、将TEC-XP教学机放在实验台上,连接好电源线,关上实验箱侧边的电源开关。 2、使用串行通信线连接TEC-XP教学机与PC机的串口。(该串口连接已由实验室老师完成)

3、将TEC-XP教学机的工作模式选择开关设置为00110。

4、打开TEC-XP教学机的电源开关,检查面板上的发光二极管状态是否正常。 5、打开PC机,在D:\\大板可编程器件内容\\Pcec16.com路径下找到PCEC16.EXE文件,并运行;

注意:监控程序运行时需要选择连接串口,此时应选的是当前所连PC机的串口,而不是TEC-XP教学机的串口。

实验时可尝试选择串口1或串口2,其他设置一般不用改动,直接回车即可。

6、按下TEC-XP教学机的面板左下角的RESET和START按键,当主机上显示如下内容时,表示已进入TEC-XP教学机的的监控程序,可以开始联机实验。

TEC-XP CRT MONITOR Version 1.0 April 2001 Computer Architecture Lab. ,Tsinghua Uniersity Programmed by He Jia > 注意:提示符“>”是TEC-XP教学机监控程序的提示符。

TEC-XP教学机的监控命令

当TEC-XP教学机在联机工作方式下时,应使用PC来控制教学机的工作。在PC机的监控状态下,监控命令与DOS系统的DEBUG命令相似,具体命令格式及含义如表2所示。

表2 教学机的监控命令格式及含义

命令名称 汇编命令 反汇编命令 执行程序命令 命令格式 功能 A[adr] U[adr] G[adr] 输入单条指令,并将汇编之后的机器代码存入相应的内存单元中。有错误提示,但功能并不完善 从指定或默认地址开始反汇编15条指令,并将结果显示处理 从指定或默认地址开始连续运行一个用户程序 从命令指定或PC指定地址开始单条执行指令 当R命令不带参数时只是显示所有寄存器的内容;当R命令带参数时显示指定寄存器的内容,并可修改其值 从指定或默认地址开始显示内存128个存储字的内容 从指定或默认地址开始逐字显示每个内存字的内容并等待用户键入一个新值存回该单元,用空格切换各个单元,用回车结束E命令的执行。 单条指令执T[adr] 行命令 P[adr] 显示/修改寄存器内容命R[reg] 令 显示存储器内容命令 D[adr] 修改存储器E[adr] 内容命令 其中,adr表示直接地址,reg表示寄存器,均是可选项。 注意:以上监控命令与8086汇编系统中的DEBUG命令名相同,但命令格式不同,请注意使用时区分清楚。

TEC-XP教学计算机的指令系统

TEC-XP教学计算机的指令系统中共有48条指令,包含基本的传送类指令、算术逻辑运算类指令、IO访问指令、转移控制类指令、子程序调用和返回指令等。

根据指令的不同功能,指令的操作数个数为0~3个,操作数可以使用立即数寻址方式、寄存器寻址方式、直接寻址方式、寄存器间接寻址方式、寄存器相对寻址方式等,但每条指令中的操作数寻址方式都是固定的,只能按照对应的格式使用,不能随意更改。

1、指令系统的分组

TEC-XP教学计算机中,按照每条指令的功能和实际的执行步骤,将指令分成了A、B、C、D共4组,每条指令的所属组详见具体的指令描述。

A组中的指令执行时,一般只是完成通用寄存器间的数据运算或传送,在取指后可一步完成。

B组中的指令,一般需要完成一次内存或I/O读、写操作,在取指后可两步完成:第一步把要使用的地址传送到地址寄存器ARH、ARL中,第二步执行内存或I/O读写操作。

C组中的指令,在取指后可三步完成:其中CALR在用两步读写内存后,第三步执行寄存器间的数据传递;而其它指令在第一步置地址寄存器ARH、ARL,第二步读内存(即取地址操作数)、计算内存地址、置地址寄存器ARH、ARL,第三步读、写内存。

D组中的指令,完成两次读、写内存操作,在取指之后可四步完成。

2、指令的一般格式

该指令系统中包含有单字长指令(16位)和双字长指令(32位),其指令的一般格式如下所示。

15 8 7 4 3 0 操作码 目的寄存器号 源寄存器号 I/O端口地址/相对偏移量 立即数/绝对地址/变址偏移量 所有指令的操作码均为8位的,(记作IR15~IR8),每位的含义如下:

①IR15、IR14用于区分指令组:0X表示A组,10表示B组,11表示C、D组;C、D组的区分还要用IR11,IR11=0为C组,IR11=1为D组。

②IR13用于区分基本指令和扩展指令:基本指令该位为0,扩展指令该位为1。 ③IR12用于简化控制器实现,其值恒为0。

④IR11~IR8用于区分同一指令组中的不同指令。

若指令中使用寄存器寻址方式,则可使用的寄存器共有16个,分别为R0~R15,其中R4,R5,R6为专用寄存器,分别作为R4——堆栈指针;R5——程序计数器PC;R6——指令当前地址寄存器IP;其余13个寄存器作为通用寄存器供用户编程用。

3、指令系统

下面按照指令字长和指令中操作数的个数,分类介绍每条指令,在以下描述中,使用默认的助记符如下:

SR―源操作数寄存器;

DR-目的操作数寄存器; PC-程序计数器; OP-指令操作码。

① 单字、无操作数指令,共8条

格式:

指令格式 PSHF POPF RET CLC STC EI DI IRET

② 单字、单操作数指令,共21条

指令格式 DEC DR INC DR SHL DR SHR DR JR OFFSET JRC OFFSET JRNC OFFSET JRZ OFFSET JRNZ OFFSET IN I/O端口 OUT I/O端口 含义 状态标志(C、Z、V、S、P1、P0)入栈 弹出栈顶数据到状态标志寄存器 子程序返回 清进位标志位C= 0 置进位标志位C= 1 开中断,置中断允许位INTE=1 关中断,置中断允许位INTE=0 中断返回 指令类型 B组基本指令 B组基本指令 B组基本指令 A组扩展指令 A组扩展指令 A组扩展指令 A组扩展指令 D组扩展指令 15 8 OP 7 0 0000 0000 15 8 OP 7 0 DR 0000 0000 SR OFFSET I/O 端口 含义 指令类型 A组基本指令 A组基本指令 A组基本指令 A组基本指令 A组基本指令 A组基本指令 A组基本指令 A组基本指令 A组基本指令 B组基本指令 B组基本指令 DR←DR-1 DR←DR+1 DR逻辑左移(低位补0,高位移入C) DR逻辑右移 (高位补0,低位移入C) 无条件转移到ADR,ADR=原PC值+位移量 C=1时,转移到ADR,ADR=原PC值+位移量 C=0时,转移到ADR,ADR=原PC值+位移量 Z=1时,转移到ADR,ADR=原PC值+位移量 Z=0时,转移到ADR,ADR=原PC值+位移量 R0←[I/O端口] 从外设I/O端口读入字节数据到R0低8位 [I/O端口]←R0 R0低8位数据写入外设I/O端口 PUSH SR POP DR RCL DR RCR DR ASR DR NOT DR JMPR SR CALR SR JRS OFFSET JRNS OFFSET SR入栈 弹出栈顶数据到DR DR与C循环左移 (C移入最低位,最高位移入C) DR与C循环右移 (C移入最高位,最低位移入C) DR算术右移 (最高位不变,最低位移入C) DR求反,即DR←/DR 无条件转移到SR指向的地址 调用SR指向的子程序 S=1时,转移到ADR,ADR=原PC值+位移量 S=0时,转移到ADR,ADR=原PC值+位移量 B组基本指令 B组基本指令 A组扩展指令 A组扩展指令 A组扩展指令 A组扩展指令 A组扩展指令 C组扩展指令 A组扩展指令 A组扩展指令 ③ 单字、双操作数指令,共12条 指令格式 ADD DR , SR SUB DR , SR AND DR , SR CMP DR , SR XOR DR , SR TEST DR , SR OR DR , SR MVRR DR , SR LDRR DR,[SR] STRR [DR],SR ADC DR , SR SBB DR , SR ④ 双字、单操作数指令,2条

15 8 7 4 3 0 OP DR 含义 不带进位加 不带进位减 逻辑与 比较(SR‐DR的结果影响标志位) 逻辑异或 测试(做与操作,但不改变操作数,只影响标志位) 逻辑或 寄存器间传送数据 DR←[SR] [DR]←SR 带进位加 带进位减 SR 指令类型 A组基本指令 A组基本指令 A组基本指令 A组基本指令 A组基本指令 A组基本指令 A组基本指令 A组基本指令 B组基本指令 B组基本指令 A组扩展指令 A组扩展指令 15 8 7 0 OP 0000 0000 ADR 指令格式 JMPA ADR 含义 无条件转移到地址ADR 指令类型 B组基本指令 D组基本指令 调用首地址在ADR的子程序 CALA ADR ⑤ 双字、双操作数指令,2种格式 格式1:

基本指令 MVRD DR,DATA LDRA DR,[ADR] STRA [ADR],SR

格式2: 15 8 OP 7 0 DR 0000 0000 SR DATA 含义 DR←DATA DR←[ADR] [ADR]←SR 指令类型 B组基本指令 C组扩展指令 C组扩展指令 15 8 7 0 OP DR SR DATA 含义 DR← [OFFSET+ SR] [OFFSET+ DR]← SR 指令类型 C组扩展指令 C组扩展指令 指令格式 LDRX DR,OFFSET[SR] STRX OFFSET[DR],SR

实验项目设置与安排

计算机组成原理实验一共有5个实验,总共18个学时。

实验项目 实验一 TEC-XP教学机环境熟悉 实验二 运算器实验 实验三 存储器实验 实验四 微程序控制器实验 实验五 TEC-XP汇编语言程序设计 实验六 中断实验 合计

学时安排 2学时 4学时 2学时 4学时 2学时 4学时 18学时 实验注意事项

1、硬件芯片级实验,避免用手、金属物直接碰触芯片,以防静电损坏芯片;

2、进行硬件连接、或长时间不用时,请关闭实验箱电源;

3、按时到达实验室(608),认真实验,做好数据记录,课下完成实验报告;

实验一 TEC-XP教学机环境熟悉

实验目的

1、 学习和了解TEC-XP教学实验系统监控命令的用法; 2、 学习和了解TEC-XP教学实验系统的指令系统;

3、 学习和了解TEC-XP教学实验系统汇编程序设计方法。

实验内容

1、 熟悉TEC-XP教学机与PC机的联机操作过程;

2、 练习常用的TEC-XP教学机监控命令;

3、 在监控状态下输入给定的汇编程序,进行单步跟踪执行,并观察结果; 4、 编写指定功能的汇编语言程序,并调试通过。

实验要求

使用教学机前,熟悉TEC-XP教学机的各个组成部分及其使用方法。

实验学时

2学时

实验步骤

1、完成TEC-XP教学机与PC机的联机操作

详细步骤见概述部分的“脱机和联机工作方式”。

2、练习常用的TEC-XP教学机监控命令

(1)R命令(查看或修改寄存器内容)

1在命令行提示符状态下输入: ○

R↙ ;显示寄存器内容

2在命令行提示符状态下输入: ○

R R0↙ ;修改寄存器R0的内容,再用R命令查看修改的结果。

(2)用D命令显示存储器的内容

在命令行提示符状态下输入:

D 2000↙ ;显示从地址2000H开始的128个字的内容;

连续使用不带参数的D命令,起始地址会自动加128(即80H)。

(3)用E命令修改存储器的内容 在命令行提示符状态下输入:

E 2000↙

屏幕显示地址2000单元的原有内容,可输入更改值;然后再用D命令显示修

改的结果。

注意:用E命令连续修改内存单元的值时,每修改完一个,按一下空格,系统会自动给出下一个内存单元的值,等待修改;按回车则退出E命令。

3、输入给定的汇编程序,单步跟踪执行,并观察结果

(1)输入如下形式的程序,请单步跟踪执行,说明程序功能。

2000:MVRD R0,AAAA ;MVRD与R0之间有且只有一个空格,其他同 2002:MVRD R1,5555 2004:ADD R0,R1

2005:AND R0,R1

2006:RET ↙ ;程序的最后一个语句,必须为RET指令

2007:↙

若输入有误,系统会给出提示并显示出错地址,只需在该地址用A命令重新输入正确的指令即可。

(2)输入如下形式的程序,请单步跟踪执行,说明程序功能。

2000: IN 80 ;输入数据保存于R0寄存器的低8位中 2001: CMP R0 , 30 2002: JRC EXIT 2003: CMP R0 , 39 2004: JRNC EXIT

2005: OUT 80 ; R0-> [I/O PORT] 2006: RET ↙ 2007: ↙

实验报告要求

本次实验需完成实验报告一份。

实验二 运算器实验

实验目的

1、深入了解AM2901运算器的功能与具体用法; 2、深化运算器部件的组成、设计、控制与使用等知识。

实验内容

在脱机方式下,对于给定指令分析其执行过程中运算的步骤,通过对AM2901运算器所需控制信号的设置,使之完成运算,并核对运算结果。

实验要求

1.实验前,认真了解AM2901运算器的基本结构,预习所需实验的内容,并在课前填写实验步骤表格,对于实验数据和实验结果进行预期性的分析,以提高实验效率;

2.实验过程中,要按正确流程操作,防止损坏设备,分析可能遇到的各种现象,判断结果是否正确,记录运行结果。

3.实验之后,认真写出实验报告,包括对遇到的各种现象的分析,实验步骤和实验结果。

实验学时

4学时

实验原理

图2-1 Am2901的数据通路

1、运算器数据通路

TEC-XP教学机的运算器主要采用4片Am2901芯片级联组成,每片Am2901芯片实现4位运算,4片芯片级联成16位的运算器。

Am2901芯片的组成包括:1个4位的算术逻辑单元ALU、16个4位的通用寄存器、1个4位的乘商寄存器Q和若干个多路选择开关。Am2901的数据通路如图2-1所示。 (1)算术逻辑单元ALU

ALU有两个数据输入端R和S。R端的数据来源有三个——寄存器A、数据线D、数值0;S端的数据来源有四个——寄存器A、寄存器B、乘商寄存器Q、数值0。在RS的各种组合中除去没有意义的和重复的,只有8种有效的组合。ALU的数据来源由控制信号I2I1I0决定,其控制方式如表2-1所示。

ALU可完成两个操作数的加、减、与、或、异或等多种操作,操作类型的控制有控制信号I5I4I3决定,其控制方式如表2-2所示。ALU若要实现乘除等其他运算,可使用串行算法来完成。

ALU的输出结果可保存到通用寄存器、乘商寄存器Q,并且可以将其值乘除2之后再保存,该过程控制由I8I7I6和SSH控制,其控制方式如表2-3、表2-5所示。

ALU根据其运算的结果会产生4个标志位——符号标志位F3、零标志位F=0、溢出标志位OVR和进位标志位Cn+4。ALU运算后标志位设置可有多种不同的方式,其设置控制由SST

控制信号决定,其控制方式如表2-6所示。

(2)通用寄存器组

Am2901中的通用寄存器组是由16个寄存器构成,具有双端口读写电路。可以通过A口、B口输入的地址(4位地址)选择寄存器,将其值送入A、B锁存器。其中A口地址指定的寄存器是只读的,B口地址指定的寄存器是可读写的。

A、B锁存器可作为ALU的输入数据,ALU输出的结果值也可以保存到B口指定的寄存器中,而且在写寄存器时,可以通过通用寄存器组入口处的三选一多路开关,选择写入ALU结果值,或其左移(乘2)、右移(除2)之后的结果。 (3)乘商寄存器

乘商寄存器Q是为配合ALU的乘除运算而设置的。该寄存器输入端有三选一多路开关,可选择ALU输出结果、或乘商寄存器Q本身的内容作为其输入数据,同时还可以将这两个输入值左移(乘2)、右移(除2)之后,再送入Q中。 (4)最低进位信号Cin

Am2901的基本运算是加法电路,其减法功能的实现是通过对减数求补而完成的。因此,在ALU运算时,应使用SCI控制位设置最低进位信号Cin的状态,具体控制方式见表2-4。

2、Am2901的级联结构

一片4位的Am2901芯片的引脚信号如图2-2所示。其中A3~A0、B3~B0用于输入选中的通用寄存器地址(0000~1111分别对应于R0~R15);I8~I0用于运算过程的控制信号;D3~D0用于输入外部数据;Y3~Y0用于输出运算的结果;CP为时钟信号;/OE为选通信号;RAM3、RAM0为运算结果左右移时的移出位;Q3、Q0为乘商寄存器Q左右移时的移出位;Cy、F=0、Over、F3分别为进位标志位、零标志位、溢出标志位、符号标志位;Cin为外部输入的最低

进位位。

图2-2 Am2901芯片的引脚信号

TEC-XP教学机的16位运算器是采用4片Am2901芯片级联而成的,各芯片之间采用串行进位方式,具体连接图如图2-3所示。该运算器进行运算时,需要对4个芯片加同样的A、B口地址、I8~I0控制信号,通过对选定的16位通用寄存器(每4位分属4个芯片)、或外部数据D的运算,产生Y输出,以及标志位状态。

图2-3 4片Am2901芯片的级联结构

3、Am2901时钟信号的作用

在Am2901的每个ALU操作周期内,ALU各部件的执行时间是不同的,具体操作过程如图2-4所示

图2-4 Am2901时钟信号的作用

4、实验控制信号开关说明

该实验是在完全脱机的方式下完成的。实验过程中,使用实验箱面板下方标有micro switch 1和micro switch 2的两个红色开关(控制信号顺序如图2-5所示),设置24位的运算控制信号。运算完成后,通过实验箱面板中间位置的发光二极管观察运算结果。实验过程中可能会用到外部输入数据,则可通过实验箱面板右下方的16个黑色数据开关设置。

图2-5 Micro switch开关信号顺序

5、指令举例

指令1:MVRD R0,0FFFFH

分析:

(1)该指令是使用立即数为寄存器赋值的,立即数应从数据总线拨入,经ALU传送至目的寄存器R0,因此,ALU的数据来源应选择D、0,即I2-I0取值为111。

(2)该赋值指令中的数据必须经过ALU才可写入通用寄存器,可使用FFFFH+0→R0的操作,因此,ALU的运算类型应选择算术加;I5- I3取值为000。

(3)ALU的运算结果应保存至B口地址指定的通用寄存器中,即I8-I6取值为011,同时B口地址输入R0的地址(0000)。

(4)其余信号:A口地址无用,为任意值;SST取000(标志位保持不变,传送类指令不影响标志位状态);SSH—00(不移位);Sci—00(Cin=0)。

指令2:ADD R0, R1

分析:

(1)该指令是加法运算指令,因此,ALU的运算类型应选择算术加;I5-I3取值为000。 (2)两个操作数都是通用寄存器,故,ALU的数据来源应选择A、B;I2-I0取值为001,且A口地址为0001,B口地址为0000,I8-I6取值为011(将ALU的输出保存至B口指定寄存器)。 (3)其余信号:SST—001(按照运算结果设置标志位,加法指令正常影响标志位);SSH—00(不移位);Sci—00(Cin=0)。

指令3:SUB R0 , R1

分析:

(1)该指令是减法运算指令,两个操作数都是通用寄存器,故,ALU的数据来源应选择A、B;I2-I0取值为001,且A口地址为0001,B口地址为0000,I8-I6取值为011(将ALU的输出保存至B口指定寄存器)。 (2)由ALU数据的来源可决定,本次运算应使用B-A的方式,因此,结合I5-I3的组合形式,可取值001。

(3)其余信号:SST—001(按照运算结果设置标志位);SSH—00(不移位);Sci—01(使用Cin=1的值作为减数求补时末位应加上的1)。

实验步骤

1、预习Am2901运算器原理,并填写下表。(第一次实验之前务必完成)

表1 运算器实验一验证内容

运算 按START前 I8~0 SST 011MVRD R0 , 0101 000111 011MVRD R1 , 1010 000111 011ADD R0 , R1 00 0 00 00 00000001 01 01 0 0 0 00 00 001 1010 000 00 00 SSH SCI B A ALU输出 SVZC 按START后 ALU输出 SVZC 0000 任0101 意 0101 0010 000 1010 SUB R0 , R1 SUB R1 , R0 OR R0 , R1 AND R0 , R1 XOR R0 , R1 ┑(R0⊕R1)?R0 2*R0?R0 R0/2?R0

2、实验方式设置

将TEC-XP教学机左下方的5个功能开关设置为1**00(单步、16位、脱机);先按一下“RESET”按键,再按一下“START”按键,进行初始化。

3、逐条指令执行,并核对结果

完成初始化后,请按顺序控制运算器执行每条指令,每条指令执行时请记录按START前和按START后两个时刻的状态,若与预期结果不同,请查找问题并思考原因。

4、预习Am2901运算器原理,并填写下表。(第二次实验之前务必完成)

表2 运算器实验一验证内容

运算 按START前 I8~0 SST SSH SCI B A ALU输出 SVZC 按START后 ALU输出 SVZC 按照上次实验的步骤,继续完成验证型实验内容。 思考问题

1、每次运算,为什么按START之前和按START之后的结果会有不同?应使用哪个结果作为当前的运算结果?为什么?

2、分析第二次实验内容中的R0-R2→R0 和R8-R9→R9 的结果,说明其中操作控制的区别。

实验报告要求

本次实验需完成实验报告一份,本次实验报告内容写出验证后“表1 证内容”的内容,并对思考问题进行讨论。

运算器实验一验 控制信号附录表

表2-1 ALU数据来源控制I2I1I0 表2-2 ALU运算类型控制I5I4I3 表2-3 ALU数据传送控制I8I7I6

SCI 0 0 1 1 0 1 0 1 Cin 0 1 C TCLK2方波 典型指令 ADD、DEC INC、SUB ADC、SBB 本实验中不使用

表2-4 最低进位Cin控制信号SCI

表2-5 移位状态控制信号SSH

SSH 0 0 1 1 0 1 0 左移 RAM0 0 C Q3 Q0 * * F3 右移 RAM3 0 C CY F3⊕OV Q3 * * RAM0 说明 补0(逻辑左右移) 带进位移(循环移位) 带Q同时移位(乘除时) 补码右移 1 * * RAM0 注:RAM0指任意一个通用寄存器的最低位,RAM15指任意一个通用寄存器的最高位。 表2-6 标志位状态控制信号SST

SST编码 000 001 010 011 100 101 110 111 C Z V S C Z V S Cy F=0 OVR F15 内部总线对应的一位 0 Z V S 1 Z V S RAM0 Z V S RAM15 Z V S Q0 Z V S 说明 四个标志位的值保持不变 接收ALU的标志位输出的值 恢复标志位原来的现场值 置“0”C,另三个标志位不变 置“1”C,另三个标志位不变 右移操作,另三个标志位不变 左移操作,另三个标志位不变 联合右移,另三个标志位不变 实验三 存储器实验

实验目的

1、了解计算机中半导体存储器RAM、EPROM和EPROM的功能和区别; 2、理解并掌握半导体存储器芯片的扩展和验证方式;

2

实验内容

1、验证半导体存储器RAM的读写特性;

2、使用给定的存储芯片进行存储器的容量扩展,扩展地址从4000H开始; 3、对于扩展的存储芯片进行读写验证,并理解E2PROM的读写特性;

实验要求

实验前先复习存储器字、位扩展的方法,并熟悉所做实验的内容。

实验学时

2学时

实验步骤

1、TEC-XP教学机现有RAM存储区的读写特性验证

TEC-XP教学机的存储系统中,2000H~27FFH的2K空间是由6116 RAM芯片构成的(详见概述部分的“主要技术指标”内容介绍)。随机存储器RAM的读写特性是:在不断电的情况下,CPU可以对该存储器的任何单元进行随机读写操作,其中内容可以长期保存;但该存储器是易失性的存储器,一旦断电,其中数据均被清空。

本实验要在监控状态下,分别使用不同的监控命令对该RAM存储芯片的读写特性进行验证。由于是联机测试,需要将TEC-XP的功能开关先置为00110。 (1)检查FPGA下方的插针按下列要求短接 标有“/MWR”“RD”的插针左边两个短接; 标有“/MRD”“GND”的插针右边两个短接; 标有“ROMLCS”和“RAMLCS”的插针短接。 (2)使用E命令修改RAM中某存储单元的值 在命令行提示符状态下输入: E 2020↙

3、验证B组基本指令——传送指令MVRD R0,D的微程序

指令MVRD是将立即数传送到指定寄存器的数据传送类指令,该指令是双字长双操作数指令。其指令格式如下所示,则指令MVRD R0 , D的机器代码的高16位为10001000 00000000,其中高8位为MVRD指令的操作码(详见代码表4-1),接下来的4位对应目的寄存器R0。本次实验中,只是验证指令的微程序,至于该指令所传送的数据D可采用存储单元中的随机值。

先按下RESET按键,复位系统,然后通过16位的数据开关SW拨入指令代码,再按下RESET按键,此时指示灯Microp亮,其它灯全灭。

由附录图4-5所示的基本指令流程可知,传送指令MVRD R0 , D的指令周期共包含7个CPU周期,比A组指令在执行阶段多一个CPU周期,主要用于访存获取操作数。这里MVRD的源操作数是立即数寻址方式,其值保存于指令的第二个字上,而TEC-XP教学机是16位机,在取指阶段仅读出该指令的第一个字,所以,在访存取操作数时应使用PC中的地址寻址存储单元,执行1DH的微指令。该传送指令的微程序如表4-6所示。

在完成以上设置后,接下来每次按下START按键,控制器就会执行一条微指令,请在实验前看懂以下微指令,在实验中验证每条微指令。

表4-6 传送指令MVRD R0 , D的微程序

微地操作功能 址 00H 01H 02H 03H 0?PCDI#=0 下址 CI3~0 SCC3MR~0 I2~0 I8~3 001 011 001 011 010 000 000 001 000 000 001 000 011 010 000 111 011 000 111 000 000 B口 A口 SST SSH\\SCI DCDC2 1 W 0101 0101 000 001 0101 0101 000 001 0000 0000 000 000 0000 0000 000 000 0101 0101 000 001 、00H 1110 0000 100 111 000 011 000 001 000 000 000 0 PC?AR、00H 1110 0000 100 PC+1?PC MEM?IR 00H 1110 0000 001 /MAP 00H 0010 0000 100 1DH PC?AR、1CH 0011 0000 100 PC+1?PC、CC#=0 1CH 30H MEM→30H 0011 0000 001 DR、CC#=0 STR→Q、3AH 0011 0010 100 CC#=INT# 011 000000 0000 000 000 0000 0000 000 000 000 000 000 011

在传送指令MVRD R0 , D执行过程中,前3条取指相关的微指令和最后1条中断处理微指令与ADD之前完全相同,这里只对不同的3条微指令进行介绍。 (1)地址映射微指令(/MAP)

本条微指令主要是由地址映射部件,根据指令操作码给出对应的指令周期微程序的入口地址,故,本条微指令中有关运算器和访存的控制信号均无效,即I2~0=000,I8~6=001,I5~3=010,

A口=0000,B口=0000,SST=000(标志位保持不变),SSH SCI=000,DC1=000,DC2=000。 微地址的映射用CI的2号命令控制,即CI3~0=0010(指令功能分支),SCC3~0=0000(必转)。下址字段无效,写00H。根据地址映射表4-1可知,MVRD指令的微程序入口地址为1DH,故该微指令执行后,下址指示灯显示为0001 1101。

(2)取机器指令的第二个字节微指令(PC?AR、PC+1?PC、CC#=0)

由于MVRD指令是双字指令,在取指阶段仅从主存中取得了指令中包含操作码的高字部分,这里要执行该指令时,必须获取指令的第二个字数据,即指令中的16位立即数。因此,在完成地址映射后,应执行该微指令,再次读取主存。

本条微指令的执行与取指阶段PC?AR、PC+1?PC微指令的操作控制部分完全相同,但顺序控制部分,根据指令的执行流程可知,下条微指令应将使用主存中读得的立即数给目的寄存器赋值。因此CI3~0=0011(条件转移),SCC3~0=0010(必转),所要转向的地址由下址字段给出,即1CH。

(3)访存赋值微指令(MEM→DR、CC#=0)

本条微指令是将存储单元中读得的立即数给目的寄存器赋值。这里使用运算器D+0?R操作实现,其中D为从存储单元中读出的操作数。因此,MRW=001(内存读),I2~0=111(选择外部数据D和0),I8~6=011(F?B),I5~3=000(加法),A口未用,B口=0000(指定目的寄存器R0),SST=000(标志位保持不变),SSH SCI=000(Cin=0)。

本条微指令中DC1=000(无效),DC2=000(无操作)。

本条微指令执行结束时,MVRD指令功能已完成,即指令的执行周期完成,按照指令周期的流程,这里需要检查系统是否有中断请求。因此,本条微指令执行结束即应转向中断判断微指令,CI3~0=0011码(条件转移),SCC3~0=0000(必转),下址字段给出中断判断微指令的地址,30H。

4、分析D组基本指令——子程序调用指令CALA ADR的微程序

指令CALA是将立即数传送到指定寄存器的数据传送类指令,该指令是双字长双操作数指令。其指令格式如下所示,则指令CALA ADR的机器代码的高16位为11001110 00000000,其中高8位为CALA指令的操作码(详见代码表4-1),接下来的4位对应目的寄存器R0。本次实验中,只是验证指令的微程序,至于该指令所用到的直接地址可采用存储单元中的随机值。

先按下RESET按键,复位系统,然后通过16位的数据开关SW拨入指令代码,再按下RESET按键,此时指示灯Microp亮,其它灯全灭。

由附录图4-5所示的基本指令流程可知,子程序调用指令CALA ADR的指令周期共包含9个CPU周期,执行阶段比B类指令多用2个CPU周期。CALA指令的微程序如表4-7所示。在完成以上设置后,接下来每次按下START按键,控制器就会执行一条微指令,请在实验前完成对表4-7中每条微指令的分析,在实验中验证,并分析每条微指令的具体功能。

表4-7 子程序调用指令CALA ADR的微程序

微地操作功能 址 00H 0?PC下址 CI3~0 SCC3MR~0 I2~0 I8~3 001 011 B口 A口 SST SSH\\SCI DCDC2 1 W 、00H 1110 0000 100 0101 0101 000 001 111 0001H 02H 03H 1FH 20H 21H 22H DI#=0 PC?AR、00H 1110 0000 100 PC+1?PC MEM?IR 00H 1110 0000 001 /MAP 00H 0010 0000 100 001 011 010 000 000 001 000 000 001 000 011 010 000 111 000 000 011 011 001 010 010 000 0101 0101 000 000 000 0101 0101 000 001 0000 0000 000 000 0000 0000 000 000 0101 0101 000 001 0000 0000 000 000 0100 0000 000 000 0 011 000 001 000 000 000 0 00PC?AR、00H 1110 0000 100 PC+1?PC MEM→Q 00H 1110 0000 001 SP-1→SP、 00H 1110 0000 100 SP→AR PC→30H 0011 0000 000 MEM、 Q→PC、CC#=0 011 00000 0 011 000 001 30H STR→Q、3AH 0011 0010 100 CC#=INT# 111 000 000 0000 0000 000 000 000 011 5、设计扩展指令ADC、STC、LDRA、CALR的微程序

TEC-XP教学机支持动态微程序设计,即允许用户把自己设计的微程序写入控制存储器中,当扩展指令需要执行时,直接从控制存储器中读取对应的微指令执行即可。但写控制存储器时,需要用到硬件描述语言VHDL,故在本次实验中,对于扩展实验直接采用出厂已设计好的扩展指令进行验证。

扩展指令ADC、STC、LDRA、CALR的执行周期相关微指令如表4-8所示,请在实验时以单步方式进行验证。

表4-8 若干扩展指令的执行周期微程序

指令 微地操作功下址 能 址 CI3~0 SCC3MR~0 I2~0 I8~3 001 011 000 B口 A口 SST SSH\\SCI DCDC2 1 W ADC 50H DR+SR30H 0011 0000 100 +CF?DR STC 57H 1?CF LDRA 5BH PC?AR PC+1?PC 5CH MEM?1CAR H CALR P 0011 0000 001 30H 0011 0000 100 00H 1110 0000 100 0000 0000 001 010 000 000 000 0 000 001 000 011 010 000 0000 0000 100 000 0101 0101 000 001 000 011 00111 001 000 011 011 001 0000 0000 000 000 0100 0000 000 000 011 000 011 000 64H SP-1?S00H 1110 0000 100 SP?AR 65H PC?M00H 1110 0000 000 EM 66H SR?PC 30H 0011 0000 100

100 001 000 100 011 000 0000 0101 000 000 0101 0000 000 000 000 000 001 000 6、测试扩展指令

扩展指令在使用时与基本指令不同,基本指令可以在监控环境下使用汇编命令A以汇编指令格式输入存储单元中,而扩展指令只能使用存储单元修改命令E以机器指令的形式写入存储单元中。相关扩展指令的操作码编码见表4-1。 (1)设置功能开关

测试扩展指令之前,先将TEC-XP的功能开关设置为00010,即连续运行程序、采用微程序控制器、联机、16位机。运行“D:\\大板可编程器件内容\\”路径下的PCEC16.EXE文件,进入TEC-XP的监控环境。 (2)测试STC、ADC指令

①将如下测试程序段输入到主存2000H开始的存储区域中。

MVRD R0 , 0101 MVRD R1 , 1010 *STC

*ADC R0 , R1

RET

注意:带*号的指令为扩展指令,只能使用E命令写入,请先对照指令的操作码编码表4-1和指令格式写出对应指令的机器代码。

②使用如下格式的G命令连续运行该程序段:

G 2000↙

③使用如下格式的R命令察看寄存器的内容: R↙ 可观察到运行结果应为R0=1112,R1=1010。

(3)测试CALR 指令

对CALR指令的测试需要设计一个有读写内存和子程序调用指令的程序。下面使用一个功能是读出内存中的字符,将其显示到显示器的屏幕上,转换为小写字母后再写回存储器原存储区域的程序进行测试。

①从地址2080H开始输入下列主程序段:

MVRD R3 , 6 MVRD LDRR MVRD *CALR DEC

R2 , 20F0 R0 , [R2] R8 , 2100 R8 R3

JRZ 208C

INC R2 JR 2084 RET

②从地址2100H开始输入下列子程序段:

OUT ADD STRR IN SHR JRNC

80 R0 , R1 [R2] , R0 81 R0 2105

MVRD R1 , 20

RET

③使用E命令将‘A’~‘F’这6个字符送入到存储单元20F0H~20F5H中。 ④使用如下格式的G命令连续运行2080H中的程序段: G 2080↙ 屏幕显示运行结果为:

ABCDEF 56

⑤使用如下格式的D命令,查看20F0H~20F5H单元中的内容: D 20F0↙ 屏幕上显示查看结果应为:

0061 0062 0063 0064 0065 0066

(4)测试指令LDRA

编写一个使用LDRA指令将存储单元2100H和2101H中的内容通过R0输出的程序段,测试扩展指令LDRA的功能。

①从地址2000H开始输入下列程序段:

*LDRA R0 , [2100] OUT 80 IN SHR

81 R0

JRNC 2003

*LDRA R0 , [2101]

OUT 80 RET

②使用E命令将要显示的两个字符“A”、“B”写入存储单元2100H和2101H中。 ③在如下格式的G命令,连续运行以上程序段: G 2000↙ 屏幕上将会显示预设置字符‘A’、‘B’。

实验报告要求

本次实验需完成实验报告一份,本次实验报告内容写出以下两个内容:

1、D组基本指令——程序调用指令CALA的微程序分析; 2、扩展指令LDRA的设计和测试。

附录

表4-1 指令机器编码和微程序入口地址对应表

基 本 指 令 指令 ADD DR , SR SUB DR , SR AND DR , SR OR DR , SR XOR DR , SR CMP DR , SR TEST DR , SR MVRR DR , SR INC DR DEC DR SHL DR SHR DR JRC OFFSET JRNC OFFSET JRZ OFFSET JRNZ OFFSET JR OFFSET IN PORT OUT PORT PSHF PUSH DR POP DR POPF STRR [DR] , SR LORR DR , [SR] MVRD DR , DATA JMPA ADR CALA ADR RET 操作码编码 0000 0000 0000 0001 0000 0010 0000 0110 0000 0100 0000 0011 0000 0101 0000 0111 0000 1001 0000 1000 0000 1010 0000 1011 0100 0100 0100 0101 0100 0110 0100 0111 0100 0001 1000 0010 1000 0110 1000 0100 1000 0101 1000 0111 1000 1100 1000 0011 1000 0001 1000 1000 1000 0000 1100 1110 1000 1110 0010 0000 0010 0001 0010 1101 0010 1100 0010 1010 0010 1011 0110 1100 0110 1101 微程序入口地址 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 10H 10H 10H 10H 11H 12H 12H 15H 15H 17H 17H 19H 1BH 1DH 1EH 1FH 23H 50H 51H 52H 53H 54H 55H 56H 57H 扩 展 ADC DR , SR SBB DR , SR NOT DR ASR DR RCL DR RCR DR CLC STC 指 令 EI DI JMPR SR LDRA DR , [ADR] LDRX DR , OFFSET[SR] STRA [ADR] , SR STRX DR , OFFSET[SR] CALR SR IRET JRS OFFSET JRNS OFFSET 0110 1110 0110 1111 0110 0000 1110 0100 1110 0101 1110 0111 1110 0110 1110 0000 1110 1111 0110 0100 0110 0101 58H 59H 5AH 5BH 5DH 5FH 61H 64H 67H 69H 69H

表4-2 微指令中的下址确定

CI3~0 0000 0010 SCC3~0 0000(无效) 0000(无效) 0000 0010 0100 0101 0110 0111 判断条件 MAP映射 必转 有中断请求时转移 JRC、JRNC、JRZ、JRNZ指令测试 JRS、JRNS指令测试 IN指令测试 入出栈指令测试 微下址 00H 映射获得 微下址字段值 微下址字段值/顺序寻址 微下址字段值/顺序寻址 微下址字段值/顺序寻址 微下址字段值/顺序寻址 微下址字段值/顺序寻址 顺序寻址 0011 1110 0000(无效)

表4-3 MEW信号功能 表4-4 SSH和SCI控制信号

表4-5 DC1和DC2控制方式

图4-5 基本指令流程图

图4-6 扩展指令流程

本文来源:https://www.bwwdw.com/article/jwig.html

Top