组成原理试验指导书(16位) - 图文

更新时间:2024-04-04 09:19:01 阅读量: 综合文库 文档下载

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

《计算机组成原理》

试 验 指 导 书

郑州轻工业学院计算机学院

第一章 Dais-CMX16+系统概述

1.1 系统构成

Dais-CMX16+硬件组成结构如图1.1所示。该十六位原理计算机体系结构与原理组成由实验平台、开关电源、软件三大部分组成。实验平台上有16位通用寄存器、16位运算器、16位累加器、16位暂存器、16位地址寄存器、11位程序计数器、16位准双向I/O单元、16位EM主存、16位RAM内存、16位指令寄存器、8位指令译码寄存器、16位堆栈、单级中断源、11位微程序计数器,拥有一个35位字长的微控制器和24位字长的组合逻辑控制器,并设置了一组24位字长的二进制模拟开关,系统提供逻辑笔和24个按键操作环境。配有字符式LCD、USB通信口、RS232通信口及外设扩展区。

图1.1 系统体系结构图

其硬件组成如下表所示。

1

部件名称 十六位运算器单元 部件主要电路 由4片574组成AX、BX运算源寄存器,由5256VE构成运算器,其内核有十六位累加器、十六位暂存器,支持算术运算、逻辑运算、移位运算、进位与零标志控制、支持字与字节的运算操作 十六位通用寄存器 十六位准双向I/O口 十六位堆栈寄存器 十一位程序计数器 十一位微地址计数器 十六位地址寄存器 十六位EM主存 十六位RAM内存 十六位指令寄存器 指令译码器 中断源 微程序控制器 组合逻辑控制器 由4片574组成CX(R1 R0)、DX(R3 R2)十六位通用寄存器组,支持字与字节操作 由2片574和2片245缓冲组成准双向输入/输出I/O,内置16位数据开关,16只状态灯,支持字与字节操作 由2片574组成十六位SP指针,支持字与字节操作 由3片161组成11位PC指针,寻址范围4K(0~7FF),按字方式寻址 由3片161组成11位uPC指针,寻址范围4K(0~7FF),只写不可读,按字方式寻址 由2片574组成十六位数据指针,寻址范围64K(0~0FFFF),只写不可读,按字方式寻址 由两片6116组成EM主存,字容量4K(寻址范围0~7FF),支持字与字节操作 由两片6116组成RAM内存,字容量256个单元 由2片574组成十六位指令寄存器IR,只写不可读,按字方式寻址 由CPLD组成八位指令译码器,不可读按字节写入 由D触发器组成中断允许、中断请求及中断响应标志 由两片6264、1片6116组成微程序控制器,微控制位字长35位,其中微命令段24位,下址段11位。 由CPLD器件9572独立构成组合逻辑控制器,微控制位字长24位,内核含有四个机器周期的状态触发器 由24只拨动开关及24个发光管组成二进制模拟控制电路,在微控制状二十四位二进制模拟开关及灯 态该24位通常用于指示当前微逻辑,在外设扩展实验中亦可定义为外设的I/O口 外设扩展区 逻辑笔 中央控制单元 电源 提供IC-40芯通用型锁紧式扩展插座,用于外设扩展 内置逻辑笔,提供一路高低电平及脉冲测试 LCD显示窗及USB、由时序发生器、逻辑合成器、中断逻辑、目态管理器、RS232等组成 内置高性能带短路保护、具过流、过压、静电隔离等功能的开关电源,输出电压为DC+5V/5A 1.2 手动实验环境的建立

所谓手动控制,就是用二进制拨动开关模拟微控制信号,以手动方式设置相互关联的逻辑

2

控制电位,建立“源与目”的有效状态,实现和完成实验制定的控制仼务。

手动控制是原理计算机的基础,我们从部件单元电路入手,围饶单元部件、关联部件及微控制器由浅入深地逐一展开,为原理模型机的设计与实现奠定基础。

本系统手控态提供“在线”与“搭接”两种实验方式,“在线”时按微控制器设计规范定义和命名控制信号,实验时必须遵循,不得愈越,否则有误。在“搭接”态可忽略微控制器组成环节,自行设计和构造原理计算机部件,自由定义和搭接单元部件与关联部件电路。

1) 初始待令状态 上电或按复位,系统无条件进入初始待令状态,LCD显示器按原设定的摸式显示如下画面:

Dais-CMX16+ ’kld K Dais-CMX16+ ’mud M

Dais-CMX16+ ’pld P 单元手动模式 微控制器模式 组合逻辑模式

第1行包含了产品型号和控制字,第2行的光标闪动位显示提示符,表示实验系统处于初始待令状态,可以进入系统按键命令所定义的操作。

2) 工作摸式设置

在初始待令状态下,按【减址】键,LCD显示器显示工作模式选项:

按【增址】键,将光标移到“KLD”单元手动模式,按【减址】键确定后,询问用户是否使用搭接方式的选项:

Dais-CMX16+ ’kld lst y/n

是,选择搭接方式,须连线

Dais-CMX16+ ’kld lst y/n

否,选择在线方式,零连线

按【增址】键,将光标移到“y”选择搭接方式、或将光标移到“n”选择在线方式,接【减址】键确定设置,返回待命状态。

Dais-CMX16+ ’kld K

设置完毕,返回待命状态

1.3 手控实验提示

1) 初始化操作

一旦进入手控状态,首先应把实验系统左下方“二进制开关单元”的24位微控制开关拨至

3

下方(即高电平信号“1”),使24位微控制状态指示灯处“暗态”,关闭全部控制信号,完成微控制器的初始化操作。

2) 控制信号的建立

⑴有效状态的特征:本系统提供的是“负逻辑”控制电路,通常情况下把低电平“0”定义为有效状态,以点亮绿色发光二极管为标志。

⑵有效状态的建立:结合实验项目,按实验要求把相关的二进制开关拨向上方,点亮对应的发光二极管。

⑶有效状态的控制 ①源操作:为了避免总线的冲突与竞争,保证其唯一性,系统以编码方式定义总线来源,实验时必须按照源编码表的要求选择当前总线源。

②目的操作:首先应把与控制目的操作部件相对应的二进制开关拨向上方,建立目的寻址的有效状态,其特征是该部件单元周边的黄色指示灯“亮”,然后按动【单拍】按钮向目的部件提供写脉冲,把数据打入黄色指示灯处“亮”旁边的部件中。

③源与目的编码

总线源编码 M10 M9 M8 功能 X2 X1 X0 1 1 1 禁止 1 1 0 ALU 1 0 1 SP 1 0 0 IOR 0 1 1 MRD 0 1 0 XRD 0 0 1 RRD 0 0 0 PC

目的编码 M19 M18 M17 O2 O1 O0 1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 0 1 0 0 0 功能 禁止 MAR BX AX SP IOW XWR RWR 3)设计与连接环节提示

(1) 实验方式设置规定

由于“在线”方式下,控制器与部件之间已建立了“主从式”控制关系,也就是说控制器已进入载体工作状态,此时若出现对控制器已定义部件的“实验搭接”,从控制角度称谓“重叠定义”,造成总线混乱;从电路的层面讲称谓超负荷加载,危及器件安全。因此“在线”方式下对于控制器已定义部件的“实验电路连接”是不允许的,属非法操作。在实验方式选择与相互转换中,切记:①由“搭接”方式转向“在线”方式时,首先卸去所有的实验连接,然后才能进入在线方式的设置操作。②在进入“实验电路连接”操作之前,必须判断当前的实验环境是否处“搭接”状态,若否首先设置搭接实验方式,然后才能进入“实验电路的搭接”。

(2) 实验连接环节的注意事项

实验连接环节的失误轻者影响实验结果导致实验失败,重者危及设备受损延误实验进程,为了确保实验设备的安全,对于实验过程中的连接更改及实验完成后的连接卸除均以掉电环境下进行为宜。

4

第二章 手动在线实验

2.1 运算器实验

一、实验目的

1. 掌握十六位机字与字节运算的数据传输格式。 2. 验证运算功能发生器的组合功能。

二、实验要求

完成算术、逻辑、移位运算实验,熟悉ALU运算控制位的运用。

三、实验原理

实验中所用的运算器数据通路如图2-1所示。ALU运算器由CPLD描述。运算器的输出经过2片74LS245三态门与数据总线相连,2个运算寄存器AX、BX的数据输入端分别由4个74LS574锁存器锁存,锁存器的输入端与数据总线相连,准双向I/O输入输出端口用来给出参与运算的数据,经2片74LS245三态门与数据总线相连。

图2-1 运算器数据通路

5

四、运算器功能编码

算术运算

M15 M13 M12 M11 M 0 0 0 0 0 0 0 0 S2 0 0 0 0 1 1 1 1 S1 0 0 1 1 0 0 1 1 S0 0 1 0 1 0 1 0 1 功能 A加B加CY A减B减CY RLC RRC A加B A减B RL RR

M15 M 1 1 1 1 1 1 1 1 逻辑运算 M13 M12 M11 S2 0 0 0 0 1 1 1 1 S1 0 0 1 1 0 0 1 1 S0 0 1 0 1 0 1 0 1 功能 B /A A减1 A=0 A+B A·B A加1 A

五、实验内容

把系统工作状态设置为“手动/在线”模式,K23~K0置“1”,灭M23~M0指示灯。

1. 算术逻辑运算实验

(1) 字写操作(置数操作)

拨动“I/O输入输出单元”开关向寄存器AX和BX置数,具体操作步骤如下:

数据来源 I/O单元 X2 X1 X0=100 W XP OP=000

置数 I/O=1122h 寄存器AX (1122h) o2 o1 o0=100 按【单拍】按钮

置数 I/O=3344h 寄存器BX (3344h) o2 o1 o0=101 按【单拍】按钮

(2) 字算术运算(不带进位加)

算术加:运算控制位设为算术加(M S2 S1 S0=0100),数据总线单元应显示AX加BX的累加和。

算术减:运算控制位设为算术加(M S2 S1 S0=0101),数据总线单元应显示AX加BX的累加和。

(3) 字逻辑运算

逻辑与:运算控制位设为逻辑与(M S2 S1 S0=1101),此时数据总线单元应显示AX逻辑与BX的结果。

逻辑或:运算控制位设为逻辑或(M S2 S1 S0=1100),此时数据总线单元应显示AX逻辑或BX的结果。

思考:如何将AX和BX寄存器的内容读出? 2. 移位运算实验

6

运算器的寄存器AX通常含有移位的功能,为了规范运算器的设计,Dais-CMX16+在移位运算时把寄存器AX视为移位的源寄存器,也就是说移位是通过寄存器AX实现的。

(1) 移位执行过程

① 循环左移(RL)

② 循环右移(RR)

③ 带进位循环左移(RLC)

CY ④ 带进位循环右移(RRC)

CY

所谓循环移位,就是指移位时数据的首尾相连进行移位,即最高(最低)位的移出位又移入数据的最低(最高)位。根据循环移位时进位位是否一起参加循环,可将循环移位分为不带进位循环和带进位循环两类。其中不带进位循环是指进位“CY”的内容不与数据部分一起循环移位,也称小循环。带进位循环是指进位 “CY”中的内容与数据部分一起循环移位,也称大循环。

◆不带进位循环左移:各位按位左移,最高位移入最低位。 ◆不带进位循环右移:各位按位右移,最低位移入最高位。

◆带进位循环左移:各位按位左移,最高位移入C中,C中内容移入最低位。 ◆带进位循环右:各位按位右移,最低位移入C中,C中内容移入最高位。

循环移位一般用于实现循环式控制、高低字节的互换,还可以用于实现多倍字长数据的算术移位或逻辑移位。

(2) 移位控制编码参见运算器功能编码表 (3) AX寄存器置数

拨动“I/O输入输出单元”开关向运算寄存器AX置数,具体操作步骤如下:

数据来源 I/O单元 X2 X1 X0=100 W XP OP=000

置数 I/O=0080h 寄存器AX (0080h) o2 o1 o0=100 按【单拍】按钮

数据来源 关闭 X2 X1 X0=111

移位结果 (4) AX寄存器移位

数据来源 AX X2 X1 X0=110 W XP=00

移位控制 M=0 S1=1 S2 S0方式选择

数据总线 移位结果 打入AX O2 O1 O0 OP=1000 按【单拍】按钮

7

2.2 十六位数据总线实验

一、实验目旳

1. 熟悉和了解总线的数据通路、双向互递原理及寻址方式与运用规则。 2. 掌握十六位数据总线中“字”与“字节”操作方法及源与目的奇偶效应。

二、实验要求

通过总线的数据传递实验,建立“奇偶”概念,领会字寻址中对字节操作的动态定义。

三、实验原理

系统数据总线作为计算机传递信息的通道是连接各个功能部件的纽带,在计算机中起着至关重要的作用。模型机的工作过程就是计算机各个功能部件之间的信息,通过数据总线不断有序流动的过程。

图2-2系统体系结构图

1. 字与字节体系

本系统总线宽度为十六位,设有字长控位“W”,当W=0,由源寻址的奇偶性决定当前总线宽度,遇源址为偶时其字长宽度为十六位;当源址为奇或W=1时,字长宽度为八位,形成图2-3所示的奇(八位)与偶(八位)互通的字节总线。

8

图2-3 奇偶互通字节总线体系结构图

2. 源奇偶的运用

图2-3所示,我们按原理计算机的设计规范,以字节为基准把十六位数据总线划分奇与偶俩路八位总线,其中“D15~D8”称为“奇总线”,“D7~D0”称为“偶总线”;在字节传递中由于总线的互通,形成偶字节总线源或奇字节总线源的八位字节总线,其使能端定义为低电平选通,逻辑表达式为:

G(偶使能)= /W(字长)+ XP(源奇偶) G(奇使能)= /XP(源奇偶)

从上俩式可知,图2-3所示的奇偶总线由字长“W”和源奇偶“XP”动态呈现以下三状态: ⑴在W=0时遇XP=0,由于G(偶使能)与G(奇使能)处隔选通“1”,形成“D15~D0”十六位字总线源。

⑵在W=1时遇XP=0,由于G(偶使能)为“0”,G(奇使能)“1”,形成“D7~D0”偶选通的八位字节总线源。

⑶遇XP=1时,由于G(奇使能)为“0”,G(偶使能)为“1”,形成“D15~D7” 奇选通的八位字节总线源。

3. 目的奇偶的运用

在目的寻址中亦由字长控位“W”与目的地址的奇偶性动态定义当前目的字长。在W=0又遇目的址为偶时,其目的传递为字操作,否则均为字节传递,其逻辑表达式为:

/O(偶使能)= /OP(目的奇偶)

/O(奇使能)= /W(字长)+ OP(目的奇偶)

上述俩式表明,由字长“W”和目的址奇偶“OP”动态产生以下三种目的寻址操作 ⑴在W=0时遇OP=0,由于O(偶使能)与O(奇使能)均为“0”,执行以当前目的偶址为目标的字传递。

⑵在W=1时遇OP=0,由于O(偶使能)=“0”、O(奇使能)=“1”,执行以当前目的偶址为目标的字节传递。

⑶遇OP=1时,由于O(奇使能)=“0”、O(偶使能)=“1”,无条件执行以当前目的奇址为目标的字节传递。

4. 数据传递规则

系统在十六位原理计算机的字操作中动态地融入了字节操作的过程,其源奇偶映射总线宽

9

度,而目的奇偶则制约传递长度。系统在十六位原理计算机的字节操作中运用总线互联机制,以源址的奇偶性形成“奇递偶”或“偶递奇”两者互通的八位字节总线。

总线规则 W 0 1 1 X X XP OP 0 0 0 1 1 功能说明 0 字传递(十六位传递) 0 偶送偶(低位送低位) 1 偶送奇(低位送高位) 0 奇送偶(高位送低位) 1 奇送奇(高位送高位) 说明:上表中“XP”与“OP”仅为原理计算机特定的专用寄存器奇偶标志,适用于AX、

BX、SP及I/O的寻址场合;在存储器寻址中应以地址线“A0”为奇偶;在通用寄存器寻址中应从指令格式中所定义的“源与目的”字段动态索取奇偶标志。

四、实验内容

把系统工作状态设置为“手动/在线”。 1. 十六位数据传送(字传递)

设置数据来源为I/O单元(X2 X1 X0=100),总线规则设为字传递(W XP OP=000),数据目标为AX(o2 o1 o0=100),拨动“I/O输入输出单元”十六位数据开关,按【单拍】按钮,将I/O单元内容通过数据总线传递到AX寄存器,操作步骤如下: 数据来源 I/O单元 X2 X1 X0=100 W XP OP=000

置数 I/O=1234h 打入AX值

运算寄存器 AX=1234h o2 o1 o0=100 按【单拍】按钮

2. 低位到低位(偶送偶)

设置数据来源为I/O单元(X2 X1 X0=100),总线规则设为偶送偶(W XP OP=100),数据目标为AX(o2 o1 o0=100),拨动“I/O输入输出单元”十六位数据开关,按【单拍】按钮,将I/O单元内容通过数据总线传递到AX寄存器,操作步骤如下: 数据来源 I/O单元 X2 X1 X0=100 W XP OP=100

置数 I/O=XX55h 打入AX值

运算寄存器 AX=XX55h o2 o1 o0=100 按【单拍】按钮

3. 低位到高位(偶送奇)

设置数据来源为I/O单元(X2 X1 X0=100),总线规则设为偶送奇(W XP OP=101),数据目标为AX(o2 o1 o0=100),拨动“I/O输入输出单元”十六位数据开关,按【单拍】按钮,将I/O单元内容通过数据总线传递到AX寄存器,操作步骤如下: 数据来源 I/O单元 X2 X1 X0=100 W XP OP=101

置数 I/O=XX55h 打入AX值 10

运算寄存器 AX=55XXh o2 o1 o0=100 按【单拍】按钮

4. 高位到低位(奇送偶)

设置数据来源为I/O单元(X2 X1 X0=100),总线规则设为奇送偶(W XP OP=110),数据目标为AX(o2 o1 o0=100),拨动“I/O输入输出单元”十六位数据开关,按【单拍】按钮,将I/O单元内容通过数据总线传递到AX寄存器,操作步骤如下: 数据来源 I/O单元 X2 X1 X0=100 W XP OP=110

置数 I/O=55XXh 打入AX值

运算寄存器 AX=XX55h o2 o1 o0=100 按【单拍】按钮

5. 高位到高位(奇送奇)

设置数据来源为I/O单元(X2 X1 X0=100),总线规则设为奇送奇(W XP OP=111),数据目标为AX(o2 o1 o0=100),拨动“I/O输入输出单元”十六位数据开关,按【单拍】按钮,将I/O单元内容通过数据总线传递到AX寄存器,操作步骤如下: 数据来源 I/O单元 X2 X1 X0=100 W XP OP=111

置数 I/O=55XXh 打入AX值

运算寄存器 AX=55XXh o2 o1 o0=100 按【单拍】按钮

11

2.3 通用寄存器实验

一、实验目的

1. 熟悉通用寄存器的数据通路。 2. 掌握通用寄存器的构成和运用。

二、实验要求

在掌握了AX、BX运算寄存器的读写操作后,继续完成CX、DX通用寄存器的数据写入与读出。

三、实验原理

实验中所用的通用寄存器数据通路如下图所示。由四片8位字长的74LS574组成CX(R1 R0)、DX(R3 R2)通用寄存器组。图中X2 X1 X0定义输出选通使能;SI是通用寄存器源编码,由指令寄存器IR的IR3位确定,当IR3=0时,选中CX, IR3=1时,选中DX;XP为源奇偶控制位;O2 O1 O0定义输入选通使能;DI是通用寄存器目的编码,由指令寄存器IR的IR1位确定,当IR1=0时,选中CX, IR1=1时,选中DX;OP为目的奇偶控制位。DRCK信号为寄存器组写入脉冲,上升沿有效。准双向I/O输入输出端口用于置数操作,经2片74LS245三态门与数据总线相连。

图2.4 通用寄存器数据通路

12

四、实验状态设定和实验内容

把系统工作状态设置为“手动/在线”。 1. 寄存器组写操作

(1) 目的寄存器编码

目标部件定义 通用寄存器目标编址 W 0 1 X 0 1 X T4 ↑ ↑ ↑ ↑ ↑ ↑ o2 o1 o0 DI(IR1) OP 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 功能说明 CX字写 CL偶字节写(R0) CH奇字节写(R1) DX字写 DL偶字节写(R2) DH奇字节写(R2)

(2) CL、DL寄存器的字节写入

通过“I/O单元”把CL地址打入IR,然后向CL置数22h,操作步骤如下:

数据来源 I/O单元 X2~X0=100 W XP=10 置数 I/O=XX00h 寄存器IR (XX00h) IR OP MWR=000 按【单拍】按钮 置数 寄存器CL I/O=XX22h (22h) IR MWR =11 o2~o0 OP W=00001 按【单拍】按钮

通过“I/O单元”把DL地址打入IR,然后向DL置数44h,操作步骤如下:

数据来源 I/O单元 X2~X0=100 W XP=10

置数 I/O=XX02h 寄存器IR (XX02h) IR OP MWR=000 按【单拍】按钮

置数 寄存器DL I/O=XX44h (44h) IR MWR=11 o2~o0 OP W=00001 按【单拍】按钮

2. 寄存器组读操作

(1) 源寄存器编码

源编码 通用寄存器源编址 XP 0 0 1 0 0 1 13

W 0 1 X 0 1 X X2 X1 X0 RS(IR3) 0 0 0 0 1 0 1 1 1 功能说明 CX字读(R1R0) CL偶字节读(R0) CH奇字节读(R1) DX字读(R3R2) DL偶字节读(R2) DH奇字节读(R3)

(2) CL、DL寄存器的字节读出

通过“I/O单元”把CL地址打入IR,然后CL送总线,操作步骤如下:

数据来源 I/O单元 X2~X0=100 W XP=10

置数 I/O=XX00h 寄存器IR (XX00h) IR OP MWR=000 按【单拍】按钮

禁止CL写 寄存器 CL送总线 X2~X0=001 W XP=10

IR MWR=11

通过“I/O单元”把DL地址打入IR,然后DL送总线,操作步骤如下:

数据来源 I/O单元 X2~X0=100 W XP=10

置数 I/O=XX02h 寄存器IR (XX02h) IR OP MWR=000 按【单拍】按钮

禁止DL写 寄存器 DL送总线 X2~X0=001 W XP=10

IR MWR=11

14

2.4 地址总线组成实验

一、实验目旳

1. 熟悉和了解地址总线的组成结构、地址来源及集合原理。 2. 掌握程序段与数据段的寻址规则及地址部件的运用技巧。

二、实验要求

通过地址形成部件实验,建立“段”概念,学会“段”运用。

三、实验原理

地址总线的作用是传递地址信息,输出当前数据总线上发送信息的源地址或接收信息的目的地址。如下图所示本系统设有内存与外设两条地址总线,通过PC计数器提供内存(程序存储器)地址,并由地址寄存器AR传递内存(数据存储器)地址与外设地址。另外堆栈寄存器SP亦可视为地址寄存器,它的堆顶指向数据与程序指针存取地址。

图2-5 地址总线组成通路

1. 11位内存地址Addr

如图2-6-1所示,本系统从提高信息存取效率的角度设计主内存地址通路,按现代计算机体系结构中最为典型的分段存取理念合成内存地址总线addr,在指令操作“时段”(取操作码与取操作数),以当前程序指针PC为址;遇主内存数据传递“时段”以当前数据指针AR为址。addr地址的合成通路见图2-3。其寻址范围为0~7FFh。

2. 16位外设地址AddBus

如图2-5所示,本系统外设地址总线AddBus由地址锁存器AR直接提供,在图2-3所示的XRD、XWR、ALE等外设控制信号的管理下,通过外DBUS数据总线完成外设信息由内到外

15

或由外到内的传递。其寻址范围为0~0FFFF,可达64KB。

四、地址部件电路

图2-6 地址部件控制电路

五、实验项目

1. 程序计数器实验

图2-6所示的PC框由3片161构成按字方式寻址的11位PC计数器,计数器的输入端与总线相连构成置数通路,计数器的输出端途经三态门缓冲分离为两条通路,其一与总线相连构成可读通路,其二与地址寄存器AR(数据)集合组成内部存储器地址总线。它的清零端由中央外理器单元直控,上电时PC计数器自动淸零,实验中

目标部件定义 节拍 功能说明 按复位钮亦可实现计数器的手动淸零。

E/M IP T3 T3上升沿打入 手控状态,本实验由右表定义的目的编码控制PC计

1 1 X PC保持 数器的预置与加1操作,并以准双向I/O部件的S10~S0

1 0 ↑ PC加1 为计数器预置源。当IP=0时按单拍按钮,遇E/M=0在脉

0 0 ↑ PC装载 冲下降沿把S10~S0的内容装入PC计数器。遇E/M=1在

脉冲下降沿PC计数器加1。 说明:“↑”表示上升沿有效

16

PC计数器的读出操作由右表所列的源编码表定义。 把系统工作状态设置为“手动/在线”。

(1) PC程序计数器的写入

拨动“I/O输入输出单元”开关向程序计数器PC置数,具体操作步骤如下:

数据来源 I/O单元 X2 X1 X0=100 W XP OP=000

置数 I/O=0100h 打入PC值

程序计数器 PC=0100h IP = 0 E/M=0 (装PC) 按【单拍】按钮

(2) PC程序计数器的读出

关闭源部件三态门(X2 X1 X0=111)与目标部件三态门(o2 o1 o0=111),打开PC输出三态门(X2 X1 X0=000),总线规则设为字传递(W XP OP=000),数据总线单元应显示0100h。

(3) PC程序计数器加1

在保持PC程序计数器读出的微控制开关状态下,置IP=0,按【单拍】按钮,在T3节拍的上升沿PC计数器加1并送数据总线,PC程序计数器和数据总线单元的显示器应显示0101h。继续按【单拍】按钮,观察PC与数据总线的内容。

2、地址寄存器实验

图2-6所示的AR框由2片74LS574锁存器构成按字方式寻址的16位数据指针,锁存器的输入端与总线相连构成置数通路,锁存器的输出端途经三态门缓冲分离与PC计数器集合组成内部存储器地址总线。它的清零端由中央外理器单元直控,上电时锁存器自动淸零,实验中按复位钮亦可实现锁存器的手动淸零。按设计规范数据指针AR的特性定义为字写入寄存器,运用中局限于字写,字节写会引发数据指针的错误侵入,因此在数据指针AR的操作过程中并非不支持而是不允字节写。

把系统工作状态设置为“手动/在线”。

1)地址寄存器AR打入

在手控/在线态,数据指针AR由目的编码控制位O2~O0、OP及单拍按钮的组合控制实现AR地址的置数操作。本实验以总线上准双向I/O部件的S15~S0为置数源。当O2~O0=110、OP=0时按单拍钮,在脉冲下降沿把S15~S0的内容装入地址锁存器AR。操作步骤如下:

数据来源 I/O单元 X2~X0=100 W XP=10

置数 I/O=1234h AR显示 置数 AR显示 5678 O2~O0 OP=1100 按【单拍】按钮

1234 I/O=5678h O2~O0 OP=1100 按【单拍】按钮

3、堆栈寄存器实验

图2-6所示的SP框由2片74LS574锁存器构成16位堆栈指针,锁存器的输入端与总线相连构成存数通路,锁存器的输出端途经三态门隔离与总线相连构成取数通路。它按先进后出的

17

原则存放需要保留的数据信息与地址信息,在调用中断等突发事件处理中SP指针以间址方式把当前程序指针存入SP-2单元,遇返回指令SP又把栈项所指单元的内容装入程序计数器,然后SP+2退至原始位置。

把系统工作状态设置为“手动/在线”。

1)堆栈指针SP打入

通过“I/O单元”开关写SP,然后令X2 X1 X0 XP W=10101读SP,操作步骤如下:

数据来源 I/O单元 X2~X0=100 W XP=00 置数 I/O=XX07h 寄存器IR (XX07h) O2~O0=011 按【单拍】按钮 禁止CL写 寄存器 CL送总线 X2~X0=101 W XP=10 O2~O0=111

2)堆栈指针SP读出

关闭SP写使能,令O2~O0=111 OP=0,按下流程完成SP送总线。

写关闭 O2~O0 OP=1110 数据来源 SP X2~X0=101 W XP=00

数据总线 显示SP值

18

段的目的寻址中,OP可指定目标操作途径,亦可作为识别控位用。

④M5定义为运算源控位ALU,当ALU=“1”时运算器以AX、BX寄存器为源,若ALU=“0”运算器以当前源编码的定义为源。

⑤M20定义为寄存器与RAM内存选择控位R/M,当R/M=“1”时选择工作寄存器,若R/M=“0”选择RAM内存。

⑥M21定义为E/M主存及指令寄存器IR写命令MWR,当MWR=“0”、IR=“1”时执行EM主存的写入操作。当MWR=“0”、IR=“0”时执行指令寄存器写入操作。

⑦M22定义为程序计数器使能控位IP,当IP=“1”时程序计数器PC处保持状态,当IP=“0”时,遇E/M=“0”执行PC地址的装载,若E/M=“1”执行PC+1。

⑧M23定义为程序与数据的段地址选择控位E/M,当E/M=“1”时EM主存以当前程序指针PC为Addr地址总线;当E/M=“0”时EM主存以当前AR为Addr地址总线。

⑸下址段

由M18~M8组成μD10~μD0共十一位下址微总线,在下址形成时段M18~M8输出下续微地址总线。

4. 取址微操作流程

取指周期是每条指令都要经历的周期,因此取指周期的操作称为公操作。在取指周期完成将现行指令从存储器中取出送往指令寄存器IR,并执行PC+1→PC,指向程序指令的下址。

从上图001号微单元所示的取指流程可知,“取指”按字节方式分时实现,执行时首先把操作码所在字节打入指令寄存器IR偶单元,然后把PC+1单元的内容打入IR奇单元,执行操作数的存储。在同一机器周期内按字节方式分时实现十六位指令寄存器的打入操作。

五、控制器特约定义

为了迫使微程序控制器在上电或复位时按照预设的初始微操作信息步入正常工作状态,我们强制定义了三个关联单元的微控制格式。

1. 初始复位单元微程序定义 ⑴初始复位微地址

控制器的微地址计数器upc初始复位状态为零,上电时微计数器自动淸零,实验中按复位钮亦可实现微计数器的手动淸零。

⑵零微址单元格式

29

零微址单元的微操作编程为空操作,下址为增量计数方式。其十六进制的指令格式为:

FF FF FF FF FF 微指令控制段

下址段

2. 取指周期微址与微操作定义

控制器定义001h单元为取指微入口,下址由指令译码器ID指定。其十六进制指令格式为:

FF FF BF FF FB 微指令控制段

下址段

3. 中断控制微址与微操作定义

控制器定义003h单元为中断响应微入口,下址为增量计数方式。其十六进制指令格式为:

FF FF FE FF F7 微指令控制段

下址段

六、实验内容

微控制器的格式及控位定义渉及机器指令的设计,我们结合模型机运用实践加予阐述与论正。这里围绕微控制器的顺序控制,以“取指”微操作所形成的微入口作为切入点,用手控方法模似微控制器的顺序控制过程,验证微控制器的基本工作原理。

1. 指令微地址的形成实验

我们默认操作码段的字长为八位,从PC零地址开始,向EM主存写入指令码,然后模拟“取指”微操作中机器指令起始微地址的形成。

①按复位按钮初始PC,向EM主存程序段依次写入00h、80h、0c0h、0ffh。操作歩骤如下:

I/O置数 EM主存写入 PC+2 I/O置数 I/O=0FFC0 EM主存写入 0FFC0 IP MWR=10 按【单拍】按钮

I/O=8000 (8000h) PC=0002 X2 X1 X0=100 MWR=0(存储器写) IP MWR=01 W XP=00 按【单拍】按钮 按二次【单拍】

②指令码写入成功后,关闭所有微控制位(M23~M0=1)。按复位按钮初始PC,令“IR=IP=0”,按【单拍】按钮,把指令码00h打入IR指令寄存器,下址执行“取指”转移,uPC=600。

指令码00h (00000000) 逻辑左移1位 (00000000) 加基地址0600h 微地址 0600h ③保持当前“取指”状态,每按一次【单拍】按钮uPC依次变址为700h、780h、7FEh??随机,当PC≥004h后,每按一次【单拍】按钮,uPC随机散转。

2. 后续微地址的形成实验

30

找到初始微地址,开始执行相应的微程序,每条微指令执行完毕,都要根据要求形成后续微地址。后续微地址的形成方法对微程序编制的灵活性影响很大。本系统采用断定方式,其后续微地址的定义可由设计者指定或由设计者指定的下址与识别判断字段指定的条件组合产生。

⑴增量计数

默认当前uPC,令“Iu=0、Icz=1、Ids=1”,按【单拍】按钮,uPC执行现行微地址的增1计数操作。

当前uPC 当前uPC+1 当前uPC+1 按【单拍】按钮

当前uPC+1 按【单拍】按钮

当前uPC+1 按【单拍】按钮

Iu Icz Ids=011 按【单拍】按钮

⑵绝对变址

微程序控制器支持设计者在微程序控制器的004~7FF范围内任意选择与指定后续微地址。操作方法如下:

条件设置 I/O设置 微变址 uPC=100 按【单拍】按钮

I/O设置 0311h 微变址 uPC=311 按【单拍】按钮

0100h Iu Icz Ids=001 X2 X1 X0=100 W XP=00

⑶条件变址

条件变址的后续微地址由非因变分量和因变分量两部分组成,非因变分量是由设计者直接指定,对应下址段ud10~ud1。因变分量以当前运算标志为条件产生,对应下址段ud0。

①进位变址

实验中我们以准双向I/O部件S10~S0模拟非因变分量部分的微地址,因变分量部分通过进位标志的置位清零操作产生,形成以进位标志为条件的后续微地址。具体操作方法如下:

CY灯亮 令XP=1 M CN W=101 按【单拍】按钮

设非因变分量 I/O=0100h X2 X1 X0=100 CN W=10

条件变址 CY灯灭 条件变址 uPC=100h CN W Icz=100 按【单拍】按钮

uPC=101h 令XP=0 Iu Icz Ids=101 CN W Icz=011 按【单拍】按钮 按【单拍】按钮

②零标志变址

我们仍以准双向I/O部件S10~S0模拟非因变分量部分的微地址,因变分量部分通过运算操作动态产生零标志,形成以零标志为条件的后续微地址。

首先按复位按钮,清零运算寄存器AX、BX,令X2~X0=111,然后按下流程操作。

Z标志灯亮 S2~S0=011 M ALU=10 按【单拍】按钮

设非因变分量 I/O=0200h X2 X1 X0=100 XP W=00

条件变址 Z标志灯灭 条件变址 uPC=200h Icz=0 按【单拍】按钮

uPC=201h 令OP=0 Iu Icz Ids=100 o2 o1 o0=100 按【单拍】2次 按【单拍】按钮

31

第三章 典型模型机实验

一、实验目的

1. 在掌握部件单元电路实验的基础上,构造一台基本模型计算机。

2. 为其定义5条机器指令,并编写相应的微程序,上机调试掌握整机概念。

二、实验设备

Dais-CMX16+ 计算器组成原理教学实验系统一台。

三、实验原理

手动控制实验过程中,各部件单元的控制信号是以人为模拟产生为主,而本次实验将能在微程序控制下自动产生各部件单元的控制信号,实现特定指令的功能。这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。

本实验采用五条机器指令:IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移),其指令格式如下(前三位为操作码):

助记符 IN R0,IOL ADD R0,[addr] STA [addr],R0 00100000 01000000 XXXXXXXX XXXXXXXX 01100000 XXXXXXXX XXXXXXXX 机器指令码 说明 I/O(数据开关)偶字节→R0 R0+[addr]→R0 R0→[addr] RAM→I/O(奇字节) addr→PC OUT [addr],IOH 10000000 XXXXXXXX XXXXXXXX JMP addr 10100000 XXXXXXXX XXXXXXXX

其中IN为单字节(8位)指令,其余为三字节指令,XXXXXXXX XXXXXXXX为addr对应的二进制地址码。

系统涉及到的微程序流程见图3-1,当拟定“取指”微指令时,该微指令的判别测试字段为IR(M2)=0。由于“取指”微指令是所有微程序公用的微入口,因此IR(M2)的测试结果出现多路分支。本机用指令寄存器的前3位(IR7~IR5)作为测试条件,出现8路分支,占用8个固定微地址单元。

指令寄存器IR用来保存当前正在执行的一条指令。执行时通过IBus总线打入指令寄存器。指令划分为操作码和操作数段,为了执行任何给定的指令,必须对操作码进行测试并打入指令译码器ID。在下一微周期的T1节拍完成操作码段的转移,μPC指向与指令相对应的微入口。

本系统提供十六位准双向的I/O设备,支持字与字节操作,其输入/输出特性定义到“位”,当该位为“1”时可作为输入源用。也就是说它最多能容入十六位输入或十六位输出。例如:输入时,二进制开关数据直接经过三态门送到外部数据总线上,只要开关状态不变,输入的信息也不变。输出时,将输出数据送到外部数据总线上,当IOW有效时,将数据打入输出锁存器,驱动发光管显示。

32

图3-1 基本模型机微程序流程图

当全部微程序设计完毕后,按照系统建议的微指令格式,参照微指令流程图,应将每条微指令代码化,将微指令格式转化而成的“二进制微代码表”,如表3.1所示。

M23 M22 M21 M20 M19 M18 M17 M16 M15 M14 M13 M12 M11 M10 M9 M8 M7 M6 M5 M4 M3 M2 M1 M0 E/M IP MWR R/M 目的编码 OP M CN S2 S1 S0 源编码 XP W ALU Iu IE IR Icz Ids 实验所用的机器指令程序:

地址 指令代码 助记符 IN R0,IOL 功能 I/O(数据开关)偶字节→R0 R0+RAM→R0 R0→RAM 000 20 001 40 60 02 ADD R0,[ADDR] 004 60 61 02 STA [ADDR],R0 007 80 61 02 OUT [ADDR],IOH RAM→I/O(奇字节) 00A A0 00 00 JMP 0000H 33

RAM→PC

四、实验方法

㈠键盘操作

⑴把系统工作方式设为“微控/在线”。

⑵机器程序与对应的微控制程序的写入,写入完毕后返回待令态。 ⑶运行程序

①单拍运行:每按一次【单拍】按钮模型机运行一拍,系统提供可变时序,非“取指”微

→T1→T2→T3→T4→ 周期它的节拍按→T1→T3→T4→ 次序循环,在取指微周期按次序循环。 ②微单步:每按一次【单步】命令键运行一条微指令,对照微程序流程,观察微址是否和流程一致。对照微指令表,观察执行结果是否和理论值一致。

③宏运行(指令单步或宏调用):每按动一次【宏运】命令键,运行一条机器指令。对照机器指令程序,观察PC地址是否和流程一致。

④程序运行与暂停:按动【运行】命令键使模型机进入实时运行状态;在实时运行状态按左下方任一数字键即可暂停模型机程序的运行,以便实验者查看模型机现场。

34

表3.1 基本模型机微指令表

M23 M22 M21 M20 M19 M18 M17 M16 M15 M14 M13 M12 M11 M10 M9 M8 M7 M6 M5 M4 M3 M2 M1 M0 后续 微址 代码 代码 代码 E/M IP MWR R/M o2 o1 o0 OP M CN S2 S2 S0 X2 X1 X0 XP W ALU Iu IE IR Icz Ids 微址 000 1 1 1 1 1 1 1 1 FF 1 1 1 1 1 1 1 1 FF 1 1 1 1 1 1 1 1 FF +1 001 1 1 1 1 1 1 0 0 FC 1 1 1 1 1 0 0 0 F8 0 0 1 1 1 1 1 1 3F +1 说明 空操作 PC→AR 002 0 1 1 1 1 1 1 1 7F 1 1 1 1 1 0 1 1 FB 1 1 1 1 1 0 1 0 FA 操作码 OP→upc 640 1 0 1 1 0 0 0 1 B1 1 1 1 1 1 1 0 0 FC 0 1 1 0 1 1 0 1 6D +1 680 1 0 1 1 1 1 0 0 BC 1 1 1 1 1 0 0 0 F8 0 0 1 1 1 0 1 1 3F +1 681 0 1 1 1 1 0 1 0 7A 1 1 1 1 1 0 1 1 FB 1 1 0 1 1 1 1 1 DF +1 682 1 0 1 1 1 1 0 0 BC 1 1 1 1 1 0 0 0 F8 0 0 0 1 1 1 1 1 1F +1 683 0 1 1 1 1 0 1 1 7B 1 1 1 1 1 0 1 1 FB 1 1 0 1 1 1 1 1 DF +1 684 1 0 1 1 1 1 0 0 BC 1 1 0 0 0 1 1 0 C6 0 0 0 1 1 1 1 1 1F +1 685 0 1 1 1 1 0 1 0 7A 1 1 1 1 1 0 1 1 FB 1 1 0 1 1 1 1 1 DF +1 686 1 1 1 1 1 0 0 0 F8 1 1 1 1 1 0 0 1 F9 1 1 0 1 1 1 1 1 DF +1 687 1 1 1 1 0 0 0 1 F1 0 1 1 0 0 1 1 0 66 0 1 0 0 1 1 0 1 4D 001 6C0 1 0 1 1 1 1 0 0 BC 1 1 1 1 1 0 0 0 F8 0 0 1 1 1 1 1 1 3F +1 6C1 0 1 1 1 1 0 1 0 7A 1 1 1 1 1 0 1 1 FB 1 1 0 1 1 1 1 1 DF +1 6C2 1 0 1 1 1 1 0 0 BC 1 1 1 1 1 0 0 0 F8 0 0 0 1 1 1 1 1 1F +1 6C3 0 1 1 1 1 0 1 1 7B 1 1 1 1 1 0 1 1 FB 1 1 0 1 1 1 1 1 DF +1 6C4 1 0 1 1 1 1 0 0 BC 1 1 0 0 0 1 1 0 C6 0 0 0 1 1 1 1 1 1F +1 6C5 0 1 0 1 1 1 1 1 5F 1 1 1 1 1 0 0 1 F9 1 1 1 0 1 1 0 1 ED 001 700 1 0 1 1 1 1 0 0 BC 1 1 1 1 1 0 0 0 F8 0 0 1 1 1 1 1 1 3F +1 701 0 1 1 1 1 0 1 0 7A 1 1 1 1 1 0 1 1 FB 1 1 0 1 1 1 1 1 DF +1 702 1 0 1 1 1 1 0 0 BC 1 1 1 1 1 0 0 0 F8 0 0 0 1 1 1 1 1 1F +1 703 0 1 1 1 1 0 1 1 7B 1 1 1 1 1 0 1 1 FB 1 1 0 1 1 1 1 1 DF +1 704 1 0 1 1 1 1 0 0 BC 1 1 0 0 0 1 1 0 C6 0 0 0 1 1 1 1 1 1F +1 705 0 1 1 1 0 1 0 1 75 1 1 1 1 1 0 1 1 FB 1 1 1 0 1 1 0 1 ED 001 740 1 0 1 1 1 1 0 0 BC 1 1 1 1 1 0 0 0 F8 0 0 1 1 1 1 1 1 3F +1 741 0 1 1 1 1 0 1 0 7A 1 1 1 1 1 0 1 1 FB 1 1 0 1 1 1 1 1 DF +1 742 1 0 1 1 1 1 0 0 BC 1 1 1 1 1 0 0 0 F8 0 0 0 1 1 1 1 1 1F +1 743 0 1 1 1 1 0 1 1 7B 1 1 1 1 1 0 1 1 FB 1 1 0 1 1 1 1 1 DF +1 744 0 0 1 1 1 1 1 1 3F 1 1 0 0 0 1 1 0 C6 0 0 0 0 1 1 0 1 0D 001 I/O→R0 PC+1→AR EM→BL PC+1→AR EM→BH BX→AR EM→BL R0→AL A+B→R0 PC+1→AR EM→BL PC+1→AR EM→BH BX→AR R0→EM PC+1→AR EM→BL PC+1→AR EM→BH BX→AR EM→I/O PC+1→AR EM→BL PC+1→AR EM→BH BX→PC

35

总线源编码字段含义:

附录1 字段含义

总线源编码 M10 1 1 1 1 0 0 0 0 M9 M8 X0 1 0 1 0 1 0 1 0 禁止 ALU SP IOR MRD XRD RRD PC 功能 含义 X2 X1 1 1 0 0 1 1 0 0

总线目标编码字段含义:

目的编码 M19 M18 M17 O2 1 1 1 1 0 0 0 0 O1 1 1 0 0 1 1 0 0 O0 1 0 1 0 1 0 1 0 功能 禁止 MAR BX AX SP IOW XWR RWR 36

含义

微程序控制器控制字段含义: 字段 M23 M22 M21 M20 M19 M18 M17 M16 M15 M14 M13 M12 M11 M10 M9 M8 M7 M6 M5 M4 M3 M2 M1 M0 XP W ALU Iu IE IR Icz Ids

37

字段名 E/M IP MWR R/M 含义 目的编码 OP M CN S2 S1 S0 源编码

38

39

40

41

42

43

44

45

46

47

48

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

Top