计算机组成原理实验指导书 下载本文

计算机组成原理实验指导书

计算机科学与技术系

吉林大学珠海学院计算机科学与技术系

目 录

1 Dais-CMX16+实验环境 ..................................................................................................................................... 1

1.1 1.2 1.3 1.4 1.5 1.6

系统概况 ................................................................................................................................................ 1 系统特点 ................................................................................................................................................ 1 硬件环境 ................................................................................................................................................ 2 软件环境 ................................................................................................................................................ 2 系统构成 ................................................................................................................................................ 3 系统控制 ................................................................................................................................................ 4

2 基本逻辑单元实验 ............................................................................................................................................. 6

2.1 2.2 2.3 2.4 2.5

实验目的 ................................................................................................................................................ 6 实验内容 ................................................................................................................................................ 6 实验设备 ................................................................................................................................................ 6 实验步骤 ................................................................................................................................................ 6 实验思考 ................................................................................................................................................ 6

3 数据通路实验 ..................................................................................................................................................... 7

3.1 3.2 3.3 3.4 3.5 3.6

实验目的 ................................................................................................................................................ 7 实验要求 ................................................................................................................................................ 7 实验原理 ................................................................................................................................................ 7 数据通路 ................................................................................................................................................ 7 实验项目 ................................................................................................................................................ 7 实验示例 ................................................................................................................................................ 9

4 存储器读写实验 ............................................................................................................................................... 10

4.1 4.2 4.3 4.4 4.5

实验目的 .............................................................................................................................................. 10 实验要求 .............................................................................................................................................. 10 实验原理 .............................................................................................................................................. 10 存储器分类与寻址 ...............................................................................................................................11 实验内容 ...............................................................................................................................................11

5 存储器扩展实验 ............................................................................................................................................... 13

5.1 实验目的 .............................................................................................................................................. 13 5.2 实验内容 .............................................................................................................................................. 13 5.3 实验设备 .............................................................................................................................................. 13 5.4 实验电路 .............................................................................................................................................. 13 5.5 实验连线 .............................................................................................................................................. 13 5.6 实验内容 ................................................................................................................................................ 14 6 中断控制实验 ................................................................................................................................................... 15

6.1 6.2 6.3 6.4 6.5 6.6

实验目的 .............................................................................................................................................. 15 实验要求 .............................................................................................................................................. 15 实验原理 .............................................................................................................................................. 15 控制电路 .............................................................................................................................................. 15 控制格式 .............................................................................................................................................. 15 中断实验 .............................................................................................................................................. 16

I

吉林大学珠海学院计算机科学与技术系

7 基本运算器实验 ............................................................................................................................................... 17

7.1 实验目的 .............................................................................................................................................. 17 7.2 实验原理 .............................................................................................................................................. 17 7.3 运算器功能编码 .................................................................................................................................. 17 7.4 设置初始状态 ...................................................................................................................................... 18 示例1 算术运算 ........................................................................................................................................ 18 示例2 逻辑运算 ........................................................................................................................................ 18 示例3 移位运算 ........................................................................................................................................ 20 示例4 进位控制与零标志 ........................................................................................................................ 22 8 基本指令实验 ................................................................................................................................................... 24

8.1 8.2 8.3 8.4

实验目的 .............................................................................................................................................. 24 实验原理 .............................................................................................................................................. 24 指令系统 .............................................................................................................................................. 24 实验方法 .............................................................................................................................................. 26

II

吉林大学珠海学院计算机科学与技术系

1 Dais-CMX16+实验环境

1.1 系统概况

Dais-CMX系列十六位体系结构计算机组成原理,是以Dais-CMH/CMH+为基础研制的第三代面向教学实践领域的原理计算机运用类实验装置。它以计算机体系结构与组成原理为母体,综合接口应用,渉及CPLD、FPGA等逻辑器件的设计与应用,知识面宽,适用范围广泛。

Dais-CMX系列有两款型号,Dais-CMX16+为十六位体系机构,字长16位;Dais-CMX08+为准十六位体系结构,其总线宽度为8位,后者由于受字长的制约,总线部件的宽度以八位机为主体,局限于字节寻址与字节操作,它的字操作是通过增加微指令分时实现的,由于两者的微控制器按同一标准设计,字长及控位的定义与命名基本一致,因此两者仅在微指令解释途径与执行过程上存在一定“时空”差异,但就其指令的执行与实现而言几乎完全兼容,也就是说在体系结构与原理组成方面它们处同一层面。

1.2 系统特点

1. 体系结构

Dais-CMX16+可以按照通用计算机的标准设计原理计算机,把模型机的构造特性提升到与IBM PC相兼容的水准。因此在该系统上,面向汇编语言和C语言的微操作由“理想”演变为“现实”。达爱思原理计算机对于“定长指令”仅从指令格式分类的角度举例验正,动态的体系结构彻底摆脱了非标准实验环境下特定和虚构的不规范语言给原理计算机语言教学实践活动所带来的困绕。

2. 指令格式

Dais-CMX系列的指令格式,采用“变长指令字”结构,不同指令操作码不完全相同,操作码的位数不固定,结构灵活,指令的码点冗余少,能充分利用指令的毎一位。两系统均可指定256种操作,即最多可以包含256条指令。在“达爱思通用汇编器”的支撑下,打造属于您自己的个性化指令系统,亦可设计成与十六位、八位微处理器兼容的通用指令系统,为模型计算机的标准化与通用性设计构建了一个可操作平台。

3. 微控制器

Dais-CMX系列运用“PLA”理念,用存储器逻辑与组合逻辑相结合的方法构造微控制器,根据程序需要自动变更当前控制逻辑,对于使用频率高的简单指令以及很有用又不复杂的指令选择组合逻辑,遇复杂的、不规整需扩充的指令选择存储器逻辑,从而实现动态的微控制体系结构。

4. 后续微址

Dais-CMX系列微程序控制器中隐含后续微地址(BAF),采用断定法,由转移控制段BCF(2位)规定后续微地址形成方式,支持顺序执行(uPC+1),进位位转移,零标志转移,无条件转移,在取指周期以操作码形成后续微地址。

5. 总线结构

Dais-CMX系列采用三总线结构,分别是数据总线(dbus)、指令总线(Ibus)和微总线(udbs),这种三者分离并行的总线结构,遇取指周期可以并行完成操作数的存取,在当前指令结束后的首个微周期可直接进入下一条指令的取指操作,通过微总线形成电路解释与执行的后续微址,因此指令总线与微总线的主要仼务是预取指与后续微址的预处理。

6. 时序层次

Dais-CMX系列拥有一个周期、节拍、脉冲组成的三级时序系统。以取指周期为始设了四个状态触发器,在组合逻辑控制中,那个触发器为1,控制器就进进入那个机器周期的微操作。系统按序定拍,随机器周期动态变更节拍发生器,在非取指周期产生T1→T3→T4三拍制节拍发生器,在取指周期产生T1→T2→T3→T4四拍制发生器

1

吉林大学珠海学院计算机科学与技术系

1.3 硬件环境

1. 实时监视器 各部件单元都以计算机结构模型布局,清晰明了,各寄存器、部件均有四个七段数码管显示其十六进制内容,清楚明了。两个数据流方向指示灯,以直观反映当前数据值及该数据从何处输出,而又是被何单元接收的。使得系统在实验时即使不借助PC机,也可实时观察数据流状态,判断其正确性,提供一目了然的实验环境。

2. 开放式设计

系统支持三种实验电路构造方式,即实验单元电路的硬布线连接方式、单元电路的控位连接方式和实验电路“软连线”方式。对于实验单元电路的硬布线连接方式,可采用双头实验导线从零开始在扩展区域逐一搭起一个实验电路;对于各单元电路的控位连接,只需使用双头实验导线在单元电路控位与控制信号之间对应连接,就可构造出实验所需的部件控制电路;亦可使用可编程逻辑器件在线设计下载实验电路,实现实验电路的“软接线”。

系统的数据总线、地址总线、控制总线均通过插孔引出,并设计了40芯锁紧插座,供用户外设扩展(I/O外围设备、I/O接口器件及外部程序与数据存储器)。

3. 万用汇编器

用户可以自定义指令/微指令系统,用户既可按通用计算机来定义,亦可根据自己的喜好以及实验的需要来定义完全属于自己的个性化指令系统,达爱思万用汇编器可对用户定义的汇编助记符进行汇编,自动生成机器指令代码/微代码。

4. 单级中断源

在计算机的构造中,对于外部突发事件的处理通常采用中断的方式,迫使处理器暂停当前操作无条件转向中断服务程序。通用计算机的中断源由外部事件中断和软件定时/计数中断两种,前者适用于处理外部突发事件,而后者主要用于定时检测、定时控制、定时监督(即看门狗)。利用中断服务子程序来提高计算机的应变能力。因此“中断源”是计算机组成原理中不可缺少的一个重要部件。

5. 两种控制方式

⑴系统提供手动控制与微控制两种控制方式,所谓手动控制,就是用二进制拨动开关模拟微控制信号,以手动方式设置相互关联的逻辑控制电位,建立“源与目”的有效状态,实现和完成实验制定的控制仼务

⑵本系统微控制器由组合逻辑与存储逻辑集合组成,两者按独立控制器的规范与标准设计,既可单独控制,亦可交替互补(混合)控制,在国内率先把PLA控制理念融入微控制器的设计与实现中。

6. 两种实验方式

⑴搭接:所谓“搭接”就是在部件控位与控制器控位之间通过连接的方法形成控制电路。为此在“搭接”方式,首先考虑控制电路的连接,然后才能进行实验。

⑵在线:所谓“在线”就是以零连线为前提,为此在进入“在线”方式前必须卸取所有实验连接导线,然后再进入在线方式的实验。

7. 两种操作环境

⑴系统设有16个数字键,8个功能键,2×16LCD液晶显示窗,向用户提供了一个按键式操作环境。 ⑵系统设有USB与RS232接口,连接PC,通过Window调试环境及图形方式进行更为直观的实验。 8. 适当的集成度

计算机组成原理如何解决集成度的问题是厂家所深感矛盾的难题。达爱思公司利用“软件硬化,硬件软化”技术对其进行了适度的分配:运算器、组合逻辑控制器利用大规模可编程逻辑器件实现,其它部件则采用通过逻辑器件来实现。这就既可让一般学生利用现有的逻辑知识去认识计算机原理,也可让有天赋的学生进行更高层次的开发运用实践。

1.4 软件环境

Dais-CMX软件支持Windows98/2000/XP/Vista,集成编辑器、汇编器、调试器,具有模拟调试,可模拟实验系统的基本功能。

1. 多媒体教学

2

吉林大学珠海学院计算机科学与技术系

凭借达爱思在软件设计上的精湛技术,Dais-CMX十六位体系结构计算机组成原理所配备的集成开发环境支持编辑、编译,向系统装载实验程序,提供了单拍、单步、宏单步(含断点)、运行等调试手段。还示意实验各部件的结构图、时序图、电路原理图。结构图中实时反映程序执行过程中的数据流向及相关的部件;原理图中再现了各部件的详细的组成原理;时序图中则实时反映当前的逻辑关系。所有这些均可通过投影仪把当前的信息、状态和对应关系进行多媒体教学实践。

2. 逻辑分析 对于教师而言,不难体会要讲清时序关系是不

容易的。而学生理解并利用时序关系则难上加难。而由于现代集成技术的迅猛发展,在实际工作中需要更多的利用逻辑分析工具进行时序分析。达爱思CMX十六位体系结构计算机组成原理教学实验装置具备高性能逻辑分析功能,老师可通过电化教学设备向学生现场展示指令与时序的关系,可让学生在实验时直观地观测到指令与时序的关系,可有效的提高教学效果。

3. 模型机结构图

该窗口中完全模拟了模型机结构框图,能实时反应程序执行过程中各单元状态变化,总线的数据流向。点击各模块即可在线修改部件数据。

4. 微程序及跟踪器

跟踪器窗口跟踪程序的执行过程,包括:微程序注释、微地址、微指令、数据来源、数据去向、总线规则、ALU运算表达式、微变址、EM地址、PC、uPC。

1.5 系统构成

Dais-CMX16+硬件组成见表1.5.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.5.1 系统体系结构图

3

吉林大学珠海学院计算机科学与技术系

表1.5.1 Dais-CMX16+硬件组成

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

1.6 系统控制

实验装置以STC89C58RD+单片机为核心组成系统的操作与控制平台,内置3×8键盘、2×16LCD显

示,RS232串行口及USB接口,配备强大的集成开发软件,拥有前后台两个操作环境。在它的管理下形成以下两种工作状态。

1. 系统待令状态(也称为系统管理状态)

在待令态,原理计算机组件实际上就是单片机外设,管理CPU对它们拥有100%的操控权,预置初始化信息,注入机器指令代码和微操作代码,访问指令部件,查寻和修改通用寄存器、I/O、SP指针,收集运算器及外设信息,根据用户诉求定义和存储当前控制模式与连接方式,按操作命令控制模型机的启停。

2. 目标机运行态(也称为实验工作状态)

在目标机运行状态,管理CPU实时跟踪模型机运行轨迹,动态捕捉模型机现场信息,受理中断请求,随机变更微控制模式,监视和控制模型机的实时运行。遇暂停命令冻结模型机现场,向上位机及LCD显示器传递模型机现场信息,返管理态待令。

3. 模式字与连接字设置警告

实验装置把用户设置的模式字与连接字存储在STC89C58RD+单片机内部FLASH空间,永久性保留用户操作信息,即使“掉电”也不会丢失和失忆。上电时管理CPU在初始化操作中总是按原始模式进入系统的待令状态,为实验的衔接与延续提供了方便。

4

吉林大学珠海学院计算机科学与技术系

模式字与连接字的存储是以FLASH扇区擦除为前提的,从延缓FLASH寿命的角度出发,我们提倡根据实验进程正确设定模式字与连接字,不要随意变更当前工作模式,我们的实验指导书中所描述的方式设置,仅用于说明当前适用的实验环境,在实际操作中若遇系统存在环境与实验所需环境不符的情况下,才进入模式字与连接字的设置。在使用中同一课时应选择一种方式进行。切记在方式设置中要坚持先判断后设置,避免盲目设置,杜绝频繁设置。

STC89C58RD+内部FLASH擦写可靠次数为100,000次,因此实验中正常的模式设置是系统默认和许可的,一旦出现方式失忆,也可上电随机设置,对于上机实验来讲增加了一个方式设置的环节。另外亦可把STC89C58RD+提交厂方重新定位内部FLASH扇区,恢复当前工作模式的永久性保留与记忆的功能。

5

吉林大学珠海学院计算机科学与技术系

2 基本逻辑单元实验

2.1 实验目的

1. 学习构成计算机硬件的基础数字逻辑电路的应用;

2. 了解74LS08逻辑与、74LS32逻辑或、74LS04逻辑非、74LS138三-八译码器的工作方式。

2.2 实验内容

将I/O单元低8位作为输入信号、I/O单元高8位作为输出信号,学习逻辑门和译码器的使用。

2.3 实验设备

1. Dais-CMX16+计算机组成原理实验箱; 2. Dais-GATE数字逻辑扩展板; 3. 实验导线若干。

2.4 实验步骤

首先将I/O单元S15~S8开关置高电平(拨向上方)用作输出设备。该单元开关向上为高电平(逻辑1)、向下为低电平(逻辑0);高电平时对应的发光二极管点亮、低电平时对应的发光二极管熄灭。

1. 逻辑与:

? 将I/O单元的S0、S1接入与门的2输入端,并将与门的输出端接入I/O单元的S15; ? 拨动S0、S1开关,当与门输入为全1时,其输出为1;否则输出为0。 2. 逻辑或:

? 将I/O单元的S0、S1接入或门的2输入端,并将或门的输出端接入I/O单元的S15; ? 拨动S0、S1开关,当或门输入为全0时,其输出为0;否则输出为1。 3. 逻辑非:

? 将I/O单元的S0接入非门的输入端,并将非门的输出端接入I/O单元的S15; ? 拨动S0开关,当非门输入为0时,其输出为1;当非门输入为1时,其输出为0。 4. 三-八译码器:

? 将I/O单元的S0、S1、S2分别接入译码器的A、B、C输入端,并将译码器的Y0~Y7输出

端分别接入I/O单元的S8~S15;将译码器的G2接GND(G1已内部接高电平); ? 拨动S0~S2开关,译码器8中选1,被选中的输出端为低电平,未选中的输出为高电平。

2.5 实验思考

试着使用与非门、或非门搭建电路,体会其输入输出和与门、或门的区别。

6

吉林大学珠海学院计算机科学与技术系

3 数据通路实验

3.1 实验目的

1. 熟悉和了解指令总线的数据通路与构成途径。 2. 掌握指令部件的“取指”规则及地址段运用技巧。

3.2 实验要求

通过指令部件实验,建立“指令暂存”概念,领会“操作码段”和“操作数段”的用途。

3.3 实验原理

指令总线(IBUS)作为传递指令信息的通道是连接指令部件的钮带,如图2-4-11所示,在取指操中指令信息由主存流向指令寄存器IR和指令译码器ID,若取操作数亦可经三态门流向数据总线,指令总线(IBUS)也是主存及IR与数据总线之间的互递通路,在主存读写周期与数据总线双向交換信息,在通用寄存器或内存寻址操作中透过数据总线单向传递地址信息。

3.4 数据通路

3.5 实验项目

1. 指令寄存器IR

上图所示的IR框由2片74LS574锁存器构成16位指令寄存器,主要用于存放操作码与操作数,它的输入端经指令总线(IBUS)分别与主存和数据总线构成取数通路。其锁存输出端编码产生通用寄存器地址,并指定由IR15~IR8提供内存地址。

2. 指令编译器ID

图2-4-11所示的ID框由指令编译电路(CPLD)构成11位微地址寄存器,主要用于存放指令排序器所定义的指令起始微地址(亦可称为指令的微程序入口地址)。ID的输入端经指令总线(IBUS)分别与主

7

吉林大学珠海学院计算机科学与技术系

存和数据总线构成取数通路。其三态输出端经微总线(uBUS)单向流入微程序计数器的输入端口,在时序电路的控制下形成与当前指令相对应的微程序入口地址。

指令排序格式

微总线 指令总线 ud10 ud9 Ud8 ud7 ud6 ud5 ud4 ud3 ud2 ud1 ud0 1 1 Id7 id6 id5 id4 id3 id2 id1 id0 0 由指令排序格式可知,本装置微控制器在“取指”时按“字节”排序,指令系统微程序入口地址的寻范围为600~7FFh,最多可支撑256条指令的微运行,其容纳率达通用计算机控制器的设计水准。控制器支持指令的变长编码,在模型机的设计与实现中,可根据指令的容纳率动态编制与确定机器指令中操作码的长度(简称指令段)。指令段通常存放在机器指令起始字节的高端。在取指时用“与逻辑”保留指令段屏敝地址段,沿用上表指令排序格式产生指令系统的微程序入口地址。例如设计一个八条以下的指令系统模型机,它的指令段长度为三位,存放在机器指令起始字节的“D7~D5”位置,参照上表形成下表:

三操作码指令排序格式

微总线 指令总线 ud10 Ud9 ud8 ud7 ud6 Ud5 ud4 ud3 ud2 ud1 ud0 1 1 id7 id6 id5 0 0 0 0 0 0 上表可产生7C0h、780h、740h、700h、6C0h、680h、640h、600h共八个微程序入口地址,分别对应机器指令的E0h、C0h、B0h、80h、60h、40h、20h、00h。

这里仅阐述了指令系统起始微入口的形成途径与排序格式,它的执行涉及微控制器原理,我们按排在微控制器实验中进行。

3. 操作码的定长控制表

控位 操作码长度 K2(IR) 0 0 K0(Idz) 1 0 8位(字节) IR7~IR0 通用编码 定长编码 操作码位置 说明 4位(半字节) IR7~IR4 4. 指令寄存器的操作方法 ① IR指令寄存器取指操作

目标部件定义 K2(IR) 0 0 0 说明:“↑”表示上升沿有效

K21(MWR) 1 1 0 节拍 T2 ↑ - - T4 - ↑ ↑ 功能说明 打操作码 打操作数 DBUS→IR ② 指令寄存器写操作

目标部件定义 K2(IR) 0 0 0 K21(MWR) 0 0 0 微控制位 K16(OP) 0 0 1 K6(W) 0 1 X 功能说明 T4上升沿打入 IR字写 IRL偶字节写 IRH奇字节写 8

吉林大学珠海学院计算机科学与技术系

3.6 实验示例

1. 将系统状态设置为“手动”、“在线”。 2. 指令寄存器IR字打入

拨动“I/O输入输出单元”开关向指令寄存器IR置数,操作步骤如下:

数据来源 I/O单元 置数 I/O=abcdh 指令寄存器 IR=abcdh K10~K6=10000 K21 K16 K2=000 按【单拍】按钮

3. 指令寄存器IR偶字节打入

拨动“I/O输入输出单元”开关向指令寄存器IR置数,操作步骤如下:

数据来源 I/O单元 置数 I/O=XX66h 指令寄存器 IR=XX66h K10~K6=10001 K21 K16 K2=000 按【单拍】按钮

4. 指令寄存器IR奇字节打入

拨动“I/O输入输出单元”开关向指令寄存器IR置数,操作步骤如下:

数据来源 I/O单元 置数 I/O=XX77h 指令寄存器 IR=77XXh K10~K6=10001 K21 K16 K2=010 按【单拍】按钮

5. 指令寄存器IR取指与散转

以PC为地址,向程序存储器EM存放指令码,通过内部指令总线将指令码打入指令寄存器,实现指令码的散转。

数据来源 I/O单元 K10~K6=10000

置数 I/O=0000h K23 K22=00 程序计数器 PC=0000h 置数 I/O=0020h 写指令 20→[PC] 按【单拍】按钮 K23~K21 K6=1101 按【单拍】按钮

机器指令写入成功后,令K23~K0为“1”,灭M23~M0控位显示灯。然后令K2=0,点亮M2控位显示灯,按【单拍】按钮执行取指微操作,把指令码20h打入ID指令译码器,uPC自动转入机器指令“20h”的微入口地址640h,ID按下流程完成取指微操作。

关闭控位 M23~M0灯灭 K23~K0=全”1” 取指 K2=0 按【单拍】按钮 逻辑左移1位 (01000000) 加基地址600h 下续微地址 uPC=640h

9

吉林大学珠海学院计算机科学与技术系

4 存储器读写实验

4.1 实验目的

熟悉和了解存储器组织与总线组成的数据通路。

4.2 实验要求

按照实验步骤完成实验项目,掌握存储部件在原理计算机中的运用。

4.3 实验原理

存储器是计算机的存储部件,用于存放程序和数据。存储器是计算机信息存储的核心,是计算机必不可少的部件之一,计算机就是按存放在存储器中的程序自动有序不间断地进行工作。

本系统从提高存储器存储信息效率的角度设计数据通路,按现代计算机中最为典型的分段存储理念把存储器组织划分为程序段、数据段等,由此派生了数据总线(DBus)、指令总线(IBus)、微总线(μBus)等与现代计算机设计规范相吻合的实验环境。

实验所用的存储器电路原理如图2-4-10所示,该存储器组织由二片6116构成具有奇偶概念的十六位信息存储体系,该存储体系AddBus由IP指针和AR指针分时提供,E/M控位为“1”时选通IP,反之选通AR。该存储体系可随机定义总线宽度,动态变更总线结构,把我们的教学实验提高到能与现代计算机设计规范相匹配与接轨的层面。

10

吉林大学珠海学院计算机科学与技术系

4.4 存储器分类与寻址

1. 存储器组织分类表

本系统主存EM由两个部分组成,详见下表:

分类 程序段 数据段 存储容量 寻址范围 2K 2K 0~7FFh 0~7FFh 2. 程数存储器源与目的寻址

程序段与数据段源寻址 源使能 源编址 注释

程序段与数据段目的寻址 目的编址 MWR E/M W A0 注释 X2 X1 X0 E/M W A0 1 X 1 X

0 1 0 1 0 0 程序段字读 1 0 1 1 程序段偶读 程序段奇读 0 0 1 0 0 程序段字写 1 0 程序段偶写 X 1 程序段奇写 0 0 数据段字写 1 0 数据段偶写 X 1 数据段奇写 0 0 数据段字读 0 数据段偶读 数据段奇读 注:在【单拍】按钮下降沿写入

4.5 实验内容

1. 将系统状态设置为“手动”、“在线”。 2. 数据段读写操作 (1) 数据存储器字写

在进行数据存储器字操作时,地址线A0必须为0(偶地址)。向数据段的0~0005h存储单元写入11 22 33 44 55 66一串数据,以0址单元写入数据1122h为例表述操作流程。

选通I/O S15~S0=0 K10~K6=10000 打地址 关闭写选通 存储器写 关存储器写 K21=1

AR=0 S15~S0=2211 2211→[AR] K19~K16=1100 K19~K16=1111 K23 K21=00 按【单拍】按钮 按【单拍】按钮

按照上述操作流程完成0002~0005h单元写入33445566的操作。 (2) 数据段读操作(字)

依次读出数据段0~0005h单元的内容,这里以0址单元读出为例阐述操作流程。

数据来源 I/O单元 置地址 I/O=0000h 打地址 AR=0000 按【单拍】按钮

关闭AR写 K19~K16=1111 读存储器RAM→总线 K10~K6=01100 K23=0

K10~K6=10000 K19~K16=1100

3. 存储器程序段读写操作 (1) 程序段字节写操作 ①

执行上述流程总线单元应显示2211h,若正确可按上述流程读出0002~0005h单元的内容。

计算机规范的取指操作均以字节为单位。所以本实验以字节操作方式展开。程序段写入必须从

定义地址入手,然后再进入程序存储器的写入。

11

吉林大学珠海学院计算机科学与技术系

② PC指针是带预置加法计数器,因此在输入起始地址后一旦后续地址为PC+1的话就不需重装

PC,用PC+1指令完成下续地址的读写操作。

③ PC地址装载写入与PC+1写入流程

置地址 S15~S0=0 I/O→PC I/O=3412h 存储器写 34→[PC] K22 K21 K7=101 按【单拍】按钮

PC=0000 12→[PC] K10~K6=10000 K23 K22=00 K23~K21 K6=1101 K22 K21=01 按【单拍】按钮 按【单拍】按钮 按【单拍】按钮

PC+1 按照上述PC装载写入与PC+1写入的流程分别对0000~0005写入12345678h。 (2) 程序段字节读操作

PC地址装载读出及PC+1读出流程

置地址 S15~S0=0 K10~K6=10000 I/O→PC 选通存储器 存储器读 [PC+1]→总线 K22=0 按【单拍】按钮

存储器读 [PC+1]→总线 按【单拍】按钮

PC=0000 [PC]→总线 K23 K22=00 K10~K6=01101 按【单拍】按钮 K23 K22=11

按照上述PC装载读出与PC+1读出的流程分别读出0000~0005h单元内容,应为12345678h。

12

吉林大学珠海学院计算机科学与技术系

5 存储器扩展实验

5.1 实验目的

1. 了解存储器的扩展方法,本实验以扩展6116静态存储器为例。 2. 熟悉存储器的读、写控制方法。

5.2 实验内容

在实验箱原有000~7FFh内存范围的基础上扩展存储器,使实验箱能寻址800~FFFh内存空间。

5.3 实验设备

1. Dais-CMX16+实验箱一台; 2. 6116静态存储器芯片一片; 3. 实验导线若干。

5.4 实验电路

+5A7A6A5A4A3A2A1A0D0D1D2123456789101112A7A6A5A4A3A2A1A0D0D1D2GND6116VCCA8A9WEOEA10CED7D6D5D4D3242322212019181716151413A8A9MWRMRDA10EAD7D6D5D4D3 5.5 实验连线

1. 将6116芯片安装到实验箱左下角的40芯锁紧插座上,缺口向上,因6116不足40脚,所以芯片

靠锁紧插座上方,压下锁紧插座手柄;

2. 将6116的数据总线D0~D7连接到实验箱DBUS单元的D0~D7; 3. 将6116的地址总线A0~A10连接到实验箱ADDBUS单元的A0~A10; 4. 将6116的读写信号OE、WE分别连接到实验箱EM单元的MRD、MWR; 5. 将6116的片选信号CE连接到实验箱ADDBUS单元上方的EA; 6. 分别连接6116的电源+5V,地线GND。

13

吉林大学珠海学院计算机科学与技术系

5.6 实验内容

1. 将系统状态设置为“手动”、“在线”。 2. 扩展存储器写操作

先向AR写入扩展存储器地址0800h,再向扩展存储器写入一数据。以向0800h写入55h为例:

选通I/O 置数0800 K10~K6=10000 打地址 关闭写选通 存储器写 AR=0800 S8~S0=55 55→[AR] K19~K16=1100 K19~K16=1111 K23 K21=00 按【单拍】按钮 按【单拍】按钮 K6=1

关存储器写 K21=1

3. 扩展存储器读操作

读出扩展存储器0800h单元的内容:错误!

数据来源 I/O单元 置地址 I/O=0800h 打地址 AR=0800 按【单拍】按钮

关闭AR写 K19~K16=1111 读存储器RAM→总线 K10~K6=01101 K10~K6=10000 K19~K16=1100

成功。

执行上述流程后,数据总线单元应显示55h,写入的数据和读出的数据完全一致,证明存储器已扩展

14

吉林大学珠海学院计算机科学与技术系

6 中断控制实验

6.1 实验目的

熟悉中断的硬件机制、编程规则,掌握中断的控制方法。

6.2 实验要求

通过实验,理解中断工作过程。

6.3 实验原理

所谓中断就是指处理机暂时终止执行现行程序而转去处理更加紧迫的事件服务程序,待处理机完毕后再自动返回执行原来的程序过程。

按下图所示,本系统提供了一个单级中断硬件机制,由中断请求源INT、中断允许标志IEQ和中断响应标志IAQ组成。

微程序控制器每执行一条机器指令之后,先查询中断允许标志IEQ,如果IEQ为“0”,则继续执行下一条机器指令,若检测到IEQ为“1”,则强制转入微程序控制器的0003h号单元执行中断响应微服务。期间程序首先置位中断响应标志IAQ,其次执行当前PC的进栈操作,然后按照机器程序的要求随机定义中断向量,把中断服务程序入口地址装入程序计数器PC中,转入中断服务子程序的执行。

遇RET指令,执行中断服务返回微操作,清除中断服务响应标志IAQ,把栈顶所指单元的内容装入程序计数器PC中,恢复执行被中断的机器程序。

6.4 控制电路

6.5 控制格式

1. 中断请求控制IEQ

K7 Op 1 1 K6 W 1 0 K3 Ie 0 0 按钮 INT 0 X 节拍 T4 ↑ ↑ 功能 1→IEQ 0→IEQ 说明 锁存中断请求 清除中断请求 说明:上表中的中断请求INT由【中断】按钮模拟产生,T4节拍在手动状态由【单拍】按钮模拟产生。

15

吉林大学珠海学院计算机科学与技术系

2. 中断响应控制IAQ

K7 Op 0 0 K6 W 1 0 K3 Ie 0 0 K0 Ids 1 1 节拍 T4 ↑ ↑ 功能 1→IAQ 0→IAQ 说明 中断响应 中断退出 说明:上表中T4节拍在手动状态由【单拍】按钮模拟产生。

6.6 中断实验

1. 将系统状态设置为“手动”、“在线”。 2. 中断允许控制

关闭控位 开中断 IEQ灯亮 关中断 IEQ灯灭 K23~K0=全”1” K16 K6 K3=110 按【中断】的同

时按【单拍】

K16 K6 K3=100 按【单拍】按钮

用一双头实验导线将中断请求源输入插孔XINT与中断源产生插孔INT相连接。 3. 中断服务控制

图2-4-12 INO=1 K16 K6 K3=010

中断响应 IAQ灯亮 按【单拍】按钮

关闭控位 K23~K0=全”1”

中断返回 K16 K6 K3=000

IAQ灯灭 按【单拍】按钮

16

吉林大学珠海学院计算机科学与技术系

7 基本运算器实验

7.1 实验目的

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

7.2 实验原理

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

图中AX、BX的写控制由O2~O0编码定义,通过按【单拍】钮完成运算源的数据打入。

7.3 运算器功能编码

算术运算

K15 K13 K12 K11 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+C A—B—C RLC RRC A+B A—B RL RR 17

K15 M 1 1 1 1 1 1 1 1 逻辑运算 K13 S2 0 0 0 0 1 1 1 1 K12 S1 0 0 1 1 0 0 1 1 K11 S0 0 1 0 1 0 1 0 1 功能 B /A A-1 A=0 A#B A&B A+1 A 吉林大学珠海学院计算机科学与技术系

7.4 设置初始状态

K23~K0置“1”,灭M23~M0控位显示灯。

示例1 算术运算

1. 字算术运算

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

通过“I/O单元”二进制开关向寄存器AX和BX置数,操作步骤如下:

数据来源 I/O单元 置数 I/O=1122h 寄存器写 AX=1122 按【单拍】按钮 置数 I/O=3344h K19~K16=1010 寄存器写 BX=3344 按【单拍】按钮

K10~K6=10000 K19~K16=1000 (2) 字读操作(运算寄存器AX和BX内容送总线)

关闭控位 读AX AX→DBUS 读BX K15~K11=11000 BX→DBUS K23~K0=全”1” K10~K6=11000

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

令M S2 S1 S0(K15 K13~K11=0100),FUN及总线单元显示AX+BX的结果。 令M S2 S1 S0(K15 K13~K11=0101),FUN及总线单元显示AX-BX的结果。 2. 字节算术运算 (1) 偶字节写(置数操作)

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

数据来源 I/O单元 置数 I/O=XX22h 寄存器写 AL=22 按【单拍】按钮 置数 I/O=XX44h K19~K16=1010 寄存器写 BL=44 按【单拍】按钮

K10~K6=10001 K19~K16=1000 (2) 偶字节读操作(运算寄存器AL和BL内容送总线)

关闭控位 读AL AL→DBUS 读BL K15~K11=11000 BL→DBUS K23~K0=全”1” K10~K6=11001

(3) 偶字节减法运算(不带进位加)

令M S2 S1 S0(K15 K13~K11=0100),FUN及总线单元显示AL+BL的结果。 令M S2 S1 S0(K15 K13~K11=0101),FUN及总线单元显示AL-BL的结果。

示例2 逻辑运算

1. 字逻辑运算

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

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

18

吉林大学珠海学院计算机科学与技术系

数据来源 I/O单元 置数 I/O=1122h 寄存器写 AX=1122 按【单拍】按钮

置数 I/O=3344h K19~K16=1010 寄存器写 BX=3344 (2) 字读操作(运算寄存器AX和BX内容送总线)

关闭控位 读AX AX→DBUS 读BX K15~K11=11000 K10~K6=10000 K19~K16=1000

按【单拍】按钮

BX→DBUS K23~K0=全”1” K10~K6=11000

(3) 字逻辑运算

令M S2 S1 S0(K15 K13~K11=1101),为逻辑与,FUN及总线显示AX逻辑与BX的结果。 令M S2 S1 S0(K15 K13~K11=1100),为逻辑或,FUN及总线显示AX逻辑或BX的结果。

2. 字节逻辑运算

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

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

数据来源 I/O单元 置数 I/O=XX44h 寄存器写 AL=44 按【单拍】按钮 置数 I/O=XX22h K19~K16=1010 寄存器写 BL=22 按【单拍】按钮

K10~K6=10001 K19~K16=1000 (2) 偶字节读操作(运算寄存器AL和BL内容送数据总线)

关闭控位 读AL AL→DBUS 读BL K15~K11=11000 BL→DBUS K23~K0=全”1” K10~K6=11001

① 若运算控制位设为(M S2 S1 S0=1111)则F=AL,即AL内容送到数据总线。 ② 若运算控制位设为(M S2 S1 S0=1000)则F=BL,即BL内容送到数据总线。 (3) 偶字节逻辑运算

令M S2 S1 S0(K15 K13~K11=1101),为逻辑与,FUN及总线显示AL逻辑与BL的结果。 令M S2 S1 S0(K15 K13~K11=1100),为逻辑或,FUN及总线显示AL逻辑或BL的结果。 (4) 奇字写操作(置数操作)

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

数据来源 I/O单元 置数 I/O=XX55h 寄存器写 AH=55 按【单拍】按钮

置数 I/O=XX66h K19~K16=1011 寄存器写 BH=66 按【单拍】按钮

K10~K6=10001 K19~K16=1001 (5) 奇字节读操作(运算寄存器AH和BH内容送总线)

关闭AH、BH写使能,令K17=K18=1,按下流程分别读AH、BH。

关闭控位 读AH AH→DBUS 读BH K15~K11=11000 19

BH→DBUS K23~K0=全”1” K10~K6=11011

吉林大学珠海学院计算机科学与技术系

① 若运算控制位设为(M S2 S1 S0=1111)则F=AH,即AH内容送到数据总线。 ② 若运算控制位设为(M S2 S1 S0=1000)则F=BH,即BH内容送到数据总线。 (6) 奇字节逻辑运算

令M S2 S1 S0(K15 K13~K11=1101),为逻辑与,FUN及总线显示AH逻辑与BH的结果。 令M S2 S1 S0(K15 K13~K11=1100),为逻辑或,FUN及总线显示AH逻辑或BH的结果。 实验思考

验证表2.4.2 ALU运算器编码表所列的运算功能。

在给定AX=6655h、BX=AA77h的情况下,改变运算器的功能设置,观察运算器的输出,填入下页表格中,并和理论分析进行比较、验证。

运算控制 带进位算术加 带借位算术减 带进位左移 带进位右移 算术加 算术减 左移 右移 取BX值 AX取反 AX减1 清零 逻辑或 逻辑与 AX加1 取AX值 运算表达式 A+B+C A-B-C RLC A RRC A A+B A-B RL A RR A B NOT A A-1 0 A OR B A AND B A+1 A K15 M 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 K13 K12 K11 S2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 S1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 S0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 AX 6655 6655 6655 6655 6655 6655 BX 运算结果 AA77 FUN=( 10CC ) AA77 FUN=( BBDE ) AA77 FUN=( CCAA ) FUN=( ) FUN=( ) FUN=( ) FUN=( ) FUN=( ) AA77 FUN=( AA77 ) AA77 FUN=( 99AA ) AA77 FUN=( 6654 ) FUN=( ) FUN=( ) FUN=( ) FUN=( ) FUN=( )

示例3 移位运算

本示例以累加器AX为移位的源与目的寄存器,也就是说移位是通过累加器AX实现的,这种规范的设计理念使我们的运算器能够与通用计算机指令系统相吻合。

1. 移位执行过程 ① 循环左移

② 循环右移

20

吉林大学珠海学院计算机科学与技术系

③ 带进位循环左移

CY

④ 带进位循环右移

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

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

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

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

2. 移位运算实例

① K23~K0全置“1”,灭M23~M0灯。 ② 累加器AX置数与移位流程

数据来源 置数 寄存器 AX=0080h 按【单拍】按钮 数据来源 FUN K10~K6=11000 AX移位 K15 K12=01 按【单拍】按钮

I/O=0080h I/O单元 K10~K6=10000 K19~K16=1000 ③ 字移位:完成上流程,按下表改变K13、K11的状态,再按【单拍】钮,观察AX的移位变化。 ④ 字节移位:完成字移位后,改变字长宽度,令W(K6=1),然后根据下表设置K13、K11的电位,

再按【单拍】钮,AX进入字节移位状态,观察AL的移位变化。

表2.4. 3 移位编码表 K15 K13 K12 K11 功能 M 0 0 0 0 S2 1 1 0 0 S1 1 1 1 1 S0 1 0 1 0 RR RL RRC RLC 21

吉林大学珠海学院计算机科学与技术系

示例4 进位控制与零标志

1. 标志控制原理

图2-4-2 标志位锁存原理图

1) 进位标志CY

运算标志CY是带复位可预置的进位标志,在运算时由M信号控制,当M=0时,按【单拍】按钮,在T4上升沿把当前运算溢出位(进位或借位)打入CY的锁存输出端Q2。在M=“1”时,由CN位控制CY的“位操作”。当CN=“0”时,按【单拍】按钮,在T4上升沿执行CY的置“1”、清零、取反操作;遇M=“1”、CN=“1”时,CY保持原始状态。CY的复位端由管理CPU直接控制。

2) 零标志Z

零标志Z是带复位端的运算结果判零标志,取源于运算器输出FUN。当FUN=00h时,zd为“1”,反之为“0”;零标志由M信号控制,当M=“0”时,按【单拍】按钮,在T4上升沿把当前zd打入Z(零标志)的锁存输出端Q1。遇M=“1”,零标志Z保持原始状态。

3) 标志位的初始化

标志位的清零端由系统掌控与控位无关,在手动实验中需要清标志时,通过按动【返回】键来实现标志位的初始化。

系统提供CY与Z的状态灯,其显示特征为:进位标志CY=“1”时,灯“亮”反之灯“灭”;零标志Z=“1”时,灯“亮”反之灯“灭”。

2. 进位控制实验 ①

进位控制流程

关闭控位 K23~K0=全”1” 标志初始化 CY=0 按【返回】按钮 进位控制 K15 K14=10 方式选择 改变K7 K6 位操作 按【单拍】按钮

22

吉林大学珠海学院计算机科学与技术系

② 进位控制实验

置位操作:当K15 K14 K6=101时,令K7=1,按【单拍】按钮,CY=1(灯亮); 清零操作:当K15 K14 K6=101时,令K7=0,按【单拍】按钮,CY=0(灯灭); 取反操作:当K15 K14 K6=100时,每按一次【单拍】钮,CY=/CY。

3. 进位运算实验 ①

按【返回】键,实现进位及零标志清零。通过“I/O单元”向AX、BX置数。

数据来源 置数 累加器 A=FFFEh 按【单拍】按钮 置数 I/O=0003h K17=1 暂存器 B=0003h 按【单拍】按钮

I/O=FFFEh I/O单元 K10~K6=10000 K19~K16=1000 ② 进位标志锁存

K23~K0置全“1”,关闭M23~M0控位灯。令K8 K6=00,运算控位K15~K11=01000,按【单拍】按钮,FUN显示带进位加结果,进位标志灯CY亮,表示有进位。

关闭控位 K23~K0=全”1”

数据来源 FUN K8 K6=00

算术运算 K15=0 带进位加 A+B+CY K13~K11=000 CY灯亮 CY=1 按【单拍】按钮

完成上流程,按【单拍】钮,ALU执行A+B+CY的操作,FUN=0002、CY=1(灯亮)。 令K11为1,按【单拍】钮,ALU执行A-B-CY的操作,FUN=FFFB、CY=0(灯灭)。

4. 零标志实验 ①

K23~K0置全“1”,通过“I/O单元”向AX、BX均置数0001h,操作步骤如下:

数据来源 置数 累加器 AX=0001h 按【单拍】按钮 置数 I/O=0001h K17=1 暂存器 BX=0001h 按【单拍】按钮

I/O=0001h I/O单元 K10~K6=10000 K19~K16=1000 ② 零标志锁存

K23~K0置全“1”,灭M23~M0控位灯。令K8=0,运算控位K15 K12=00,按【单拍】按钮,FUN显示算术减结果,其零标志Z的灯亮,表示运算结果为零。

关闭控位 K23~K0=全”1”

数据来源 FUN K8 K6=00

运算控制 K15=0 减法 A-B=0 K12=0 Z灯亮 Z=1 按【单拍】按钮

5. 标志位的字节运算

令W(K6=“1”),参照进位与零标志运算流程,ALU按字节方式建立和锁存CY及Z标志。

23

吉林大学珠海学院计算机科学与技术系

8 基本指令实验

8.1 实验目的

1. 在掌握部件单元电路实验的基础上,构造一台基本模型计算机。 2. 为其定义5条机器指令,并编写相应的微程序,上机调试掌握整机概念。

8.2 实验原理

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

8.3 指令系统

1. 指令格式

7 6 5 OP-CODE 4 3 2 1 0 0 Addr Rs Rd 其中OP-CODE为操作码段,位于指令字节高三位(IR7~IR5);第四位IR4是保留位,指定为零;低四位为源与目的寄存器地址,它们的编码见下表;Addr定义操作数或操作地址。

Rs或Rd 00 01 10 11 选定的寄存器 R0 R1 R2 R3 2. 指令系统

设计五条机器指令: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对应的二进制地址码。

24

吉林大学珠海学院计算机科学与技术系

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

当全部微程序设计完毕后,应将每条微指令代码化,表3-1-1就是按照下图的微程序流程定义的微指令格式转化而成的“二进制微代码表”。

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

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

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

25

吉林大学珠海学院计算机科学与技术系

按照系统建议的微指令格式,参照微指令流程图,将每条微指令代码化,译成二进制代码表,并将二进制代码表转换成十六进制格式文件。

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

源编码

M10 X2 1 1 1 1 0 0 0 0 M9 X1 1 1 0 0 1 1 0 0 M8 X0 1 0 1 0 1 0 1 0 功能 禁止 ALU SP IOR MRD XRD RRD PC

目的编码

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 实验所用的机器指令程序:

地址 指令代码 助记符 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 RAM→PC 8.4 实验方法

双击电脑桌面的CMStudio,设置系统方式为“微控”、“在线”,打开mxj1.asm(基本模型机机器指令及对应微指令代码文件),然后点击工具栏“装载”按钮开始装载,如源程序无语法错误即可完成装载,进入调试状态。

单拍:单节拍运行微指令 单步:单步跟踪机器指令 运行:以全速方式运行模型机程序

微单步:单周期运行微指令 宏单步:单步跨越机器指令

暂停:暂停正在运行的模型机程序

表3.1.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 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 +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 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 +1 I/O→R0 PC+1→AR 26

吉林大学珠海学院计算机科学与技术系

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 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 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 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 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 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 +1 +1 +1 +1 +1 RAM→BL PC+1→AR RAM→BH BX→AR RAM→BL R0→AL A+B→R0 PC+1→AR RAM→BL PC+1→AR RAM→BH BX→AR R0→RAM PC+1→AR RAM→BL PC+1→AR RAM→BH BX→AR RAM→I/O PC+1→AR RAM→BL PC+1→AR RAM→BH BX→PC 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 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 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 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 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 +1 +1 +1 +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 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 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 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 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 +1 +1 +1 +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 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 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 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 +1 +1 +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

27