计算机组成原理实验 - 图文

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

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

目 录

第1篇 概 述 ............................................................................................................................... 2 第2篇 实验项目 ............................................................................................................................. 4

实验1 运算器算术逻辑运算 ................................................................................................ 4 实验2 运算器进位控制实验 ................................................................................................ 7 实验3 运算器移位控制实验 ................................................................................................ 8 实验4 存储器读/写实验 ....................................................................................................... 10 实验5 总线数据传送控制实验 ............................................................................................ 12 实验六 控制器实验一(微码装入与执行) ...................................................................... 14 实验7 控制器实验二(简单模型机设计与实现) ........................................................... 18 实验8 带移位功能的模型机设计与实现........................................................................... 24 实验9 具有中断功能的模型机设计与实现 ....................................................................... 29 实验10 复杂模型机的设计与实现..................................................................................... 35 第3篇 附 录 ............................................................................................................................. 45

附录1 指 令 系 统 ............................................................................................................ 45 附录2 系统硬件构成 .......................................................................................................... 52 附录3 上位机软件操作 ...................................................................................................... 78 附录4 芯片资料 .................................................................................................................. 88

-1-

第1篇 概 述 1 系统的功能特点

该实验系统主要是为配合《计算机组成原理》、《计算机组成与系统结构》课程的教学而研制的,具有如下特点:

? 实验仪硬件主要由微过程控制器、存储器、运算器、寄存器、中断向量、地址、指令译码、

输入输出及总线各单元电路组成;实验时只需将各单元之间有关的信号线进行连接即可;具有接线错误诊断功能。

? 实验仪具有8位指令系统,24位微指令格式,提供了Windows软件支持,通过采集实验仪

各单元的控制信号和数据,使上位机(PC机)实时监测实验仪的指令运行过程、数据流向、信号状态和时序波形等,并可在界面上设置、修改、下装指令码和微指令码,从而对下位机(实验仪)的工作进行单步、连续及快慢执行的控制。还可以在仿真方式下,实现实验仪的操作过程和实验结果状态分析。

? 实验指导书提供了循序渐进的实验项目。首先是在脱机方式下用手动开关给出控制信号,

控制运算器、寄存器、存储器、输入/输出各单元的运行,通过观察数据灯、地址灯和状态灯了解运行情况,使学生分别理解各单元的工作原理。然后在联机方式下,由少至多地进行指令类型设置,最终掌握整机部件的工作原理。

? 实验仪具有中断响应、中断允许、中断禁止和中断向量的读入等中断处理控制功能。 ? 实验仪可选择配置CPLD芯片,应用EDA设计环境对硬件电路单元进行设计编程,下载到CPLD

芯片,通过连接线来取代实验仪上的某个单元电路,这样可以培养学生的硬件设计能力。

2 技术指标

? 机器字长为8位。即运算器、存储器、寄存器和数据总线均为8位,地址总线也是8位。 ? 指令条数为28条。指令字长8位,其中基本操作码4位,即当寄存器地址为两个时,这些

指令操作码为4位,源寄存器地址2位,目标寄存器地址2位,而当寄存器地址为单个时,可实现指令操作码的扩展,这些指令操作码为6位,寄存器地址2位。指令寻址方式有直接寻址、间接寻址、变址寻址、相对寻址。指令类型有传送指令、算术逻辑运算指令、条件转移和无条件转移指令、输入/输出指令、调用子程序指令、返回指令、停机指令。还可以根据硬件组成自己设计各种指令。

? 采用6116RAM芯片作为指令主存。使用低8位地址寻址,256个字节单元存放用户程序和数

据,可在RAM中设置堆栈区,由堆栈指针SP指向。

? 由二片74LS181芯片串联形成8位算术和逻辑运算器,再由74LS299组成移位运算器,并

由GAL芯片组成进位控制和判零电路。由4片74LS374组成4个8位的通用寄存器,其中

-2-

R3可做为堆栈指针SP,R2可做为变址寄存器SI。

? 微控制存储器由3片2816EEPROM组成,容量为128?24位,可存放128条指令。控存中的

微指令可根据指令的功能及微指令的格式自行设计。

? 指令的输入可通过下位机上的手动单元拨动输入,也可在上位机的软件界面内输入或修改

并下装到实验仪上。

? 实验仪上的时钟产生电路产生300HZ左右的时钟信号及T1、T2、T3、T4时钟周期,以提供

整个实验仪电路的时序所需。在执行指令和微指令期间,上位机界面可实时显示整机所有的控制信号时序状态。

? 实验仪上提供了指令地址灯(8位)、控制信号开关及灯18个、数据总线灯(8位)、微地

址灯(7位)、微指令灯(24位)。

-3-

第2篇 实验项目

实验1 运算器算术逻辑运算

1.实验目的

(1)掌握运算器的简单数据传送通路;

(2)验证运算器功能发生器(74LS181)的运算功能。

2.实验设备

YY-Z02计算机组成原理教学实验系统一台,排线若干。

3.实验原理

运算器数据通路如图1-1所示。其中运算器单元(ALU UNIT)的两个暂存器DA1和DA2的数据输入端已由暗线连接至总线(BUS UNIT)的D7~D0,两片74LS181的输出通过三态缓冲器74LS245,由排针短路器引出到总线,数据开关输入设备(INPUT DEVICE)经排线短路器接至总线,以拨入或输出数据D7~D0。其它相关的各种控制信号可直接从手动单元(MANUAL UNIT)控制。实验时,进行运算的两个数据从总线上分别打入暂存器DA1和DA2(先下后上拨动一下),在控制信号S0、S1、S2、S3、M、Ci作用下产生不同的运算结果送至总线,由总线指示灯显示输出。 注意:各控制信号的开关顺序和互斥拨入,若同时有两个或两个以上的总线控制信号有效,

CCCNC则报警单元会响铃报警;本实验中,yn和yn信号均有效时,结果不影响标志位。

运算器核心部件74LS181功能表如表1-1所示:

-4-

表1-174LS181功能表

选择 S1 S2 S3 S4 L L L L L L L H L L H L L L H H L H L L L H L H L H H L L H H H H L L L H L L H H L H L H L H H H H L L H H L H H H H L H H H H M=H逻辑功能 有效的输入输出数据 M=L算术运算 FFFFFFFFFFFFFFFF?A ?A?B ?AB ?0 ?AB ?B ?A?B ?AB ?A?B ?A?B ?B ?AB ?1 ?A?B ?A?B ?A Ci?1(无进位) F?A F?A?B F?A?B F?减1(2的补码) F?A加AB F?(A?B)加AB F?A减B减1 F?AB减1 F?A加AB F?A加B F?(A+B)加AB F?AB减1 F?A加A? F?(A?B)加A F?(A?B)加A F?A减1 Ci?0(有进位) F?A加1 F?(A?B)加1 F?(A?B)加1 F?0 F?A加AB加1 F?(A?B)加AB加1 F?A减B F?AB F?A加AB加1 F?A加B加1 F?(A+B)加AB加1 F?AB F?A加A?加1 F?(A?B)加A加1 F?(A?B)加A加1 F?A

4. 实验步骤

(1)熟悉实验仪的各个单元分布情况。

(2)连接实验线路。本实验需要连接三个单元:INPUT、ALU、MANUAL,在电源断开的情况下,将需要的相同标号的插针用排线连接,注意排线的颜色必须两边一致,输入单元必须有接地线路(Ai=0),仔细检查接线无误后,再接通电源。

(3)通过手动开关向DA1和DA2置数。具体操作步骤如图1-2: ?R?ALU?B?CLR?1 I/0 拨INPUT数据开关 (8位二进制数据) 拨控制信号 I/O?R?0,Ai?0拨控制信号为初始状态 B-DA1=B-DA2=1 拨控制信号 B-DA1= B-DA2=1 拨INPUT数据开关 (8位二进制数据) 检查实验结果 拨控制信号 S3~S0、Mi、Ci ALU?B?0 拨控制信号 I/O?R?1 图1-2操作流程图

拨控制信号 B-DA1=1 B-DA2= (4)拨入控制信号S3~S0、M、Ci的值,选择74LS181功能,并置总线控制信号I/O-R?1,

-5-

ALU?B?0,观察并记录总线上的显示灯,验证74LS181的算术和逻辑运算是否正确(灯亮

表示“1”,灯灭表示“0”)。

5.实验要求

(1)置数DA1=65H,DA2=0A7H,改变控制信号S3~S0、Mi、Ci的值,观察运算器的输出结果,记录到下表中,并与表1-1比较分析,得出结论。

(2)思考题:若想要验证向DA1或者DA2中输入的数据是否正确,如何实现?

表1-1算逻运算表 DA1 65H 65H 65H 65H 65H 65H 65H 65H 65H 65H 65H 65H 65H 65H 65H DA2 0A7H 0A7H 0A7H 0A7H 0A7H 0A7H 0A7H 0A7H 0A7H 0A7H 0A7H 0A7H 0A7H 0A7H 0A7H S3~S0 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1111 M=0(算术运算) Ci?1(无进位) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) Ci?0(有进位) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) M=1(逻辑运算) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) -6-

实验2 运算器进位控制实验

1.实验目的

(1)验证带进位控制的算术运算器功能发生器(74LS181)的功能; (2)按指定数据完成几种指定的算术运算。

2.实验设备

YY-Z02计算机组成原理教学实验系统一台,排线若干。

3.实验原理

有关进位表示FC和结果为零标志FZ的置位和清零的原理,请参见附录中的原理介绍。本实验在实验一的基础上,增加进位控制部分,主要通过控制CyCn和CyNCn信号来实现。当CyCn?0或

CyNCn?0时,算术运算影响FC和FZ;当进行逻辑运算(M=1)时,清FC;通过MANUAL UNIT 中

的CLR开关的总清(1→0→1),也可以使FC和FZ清零。本实验的连线在实验一基础上,增加CyCn和CyNCn信号的连线(同样从 MANUAL UNIT 的开关引入到ALU UNIT),另外要将T4时钟信号从 CLOCK UNIT时钟单元连接到微控制器单元 MAIN CONTORL UNIT 的T4(MAIN CONTROL UNIT的T1~T4已连接到其它各单元所需的T1~T4, ,或者将CLOCK UNIT 单元的KK2信号连接到 MAIN CONTROL UNIT 的T4上(此时按KK控制开关有效)。

4.实验步骤

(1)连接实验线路:按照实验原理自行设计并连接线路,仔细检查连线无误后,接通电源。 (2)将FC和FZ标志清零:拨CLR开关1→0→1。

(3)置控制信号CyCn?0(影响进位并带进位)或CyNCn?0(影响进位不带进位),Ci=1。 (4)用二进制数据开关向DA1和DA2置数:具体操作步骤见实验一。

(5)置控制信号I/O-R?1,ALU?B?0,选择74LS181的功能为:F=A加B,此时总线显示灯上的数据为DA1加DA2的和。若是CyCn?0,则表示带当前进位标志进行加法运算;若CyNCn?0,则表示不带当前进位标志进行加法运算。

(6)按动开关START或 KK,产生本次加法结果的标志FC或FZ(灯亮表示“1”,灯灭表示“0”)。

5.实验要求

(1)实验并记录5BH+0AH+FC的结果和标志。 (2)实验并记录5BH?0AH的结果和标志。 (3)实验并记录0FH+32H+FC的结果和标志。

(4)实验并记录12F0H+7C32H的结果和标志,写出操作流程。

-7-

实验3 运算器移位控制实验

1.实验目的

验证运算器的移位控制功能

2.实验设备

YY-Z02计算机组成原理教学实验系统一台,排线若干。

3.实验原理

移位运算的原理图参见附录

2中的图2-4控制电路。本实验涉及的单元有:ALU UNIT、

MANUAL UNIT、CLOCK UNIT及 MAIN CONTROL UNIT 。移位器74LS299的数据输入/输出端以排针短路器方式和总线相连,其控制信号299-B、Mi、S1、S0均要从手动单元MANUAL UNIT 引入,UNIT中引入,Ai接地GND。本实验中为便于总线数据的暂存操作,I/O-R也从手动单元 MANUAL

ALU UNIT的B-DA1和B-DA2要分开接线,例如B-DA2引脚接和前面一样接到MANUAL UNIT的B-DA2,B-DA1引脚接到CLOCK UNIT中的KK2上,这样可以利用KK产生的脉冲将总线上的数据输入给DA1,实验其它时序信号由CLOCK UNIT和 MAIN CONTROL UNIT 的T4完成。各控制信号的组合功能如表3-1

表3-1 控制信号功能 299-B 0 0 0 0 0 任意 S1 0 1 1 0 0 1 S0 0 0 0 1 1 1 M 任意 0 1 0 1 任意 74LS299操作 保持 循环右移 带进位循环右移 循环左移 带进位循环左移 装数

4.实验步骤

(1)连接实验线路: ALU UNIT 的B-DA1连接CLOCK UNIT中的KK2;ALU UNIT 的B-DA2连接MANUAL UNIT的B-DA2(反之亦可);CLOCK UNIT的T4接 MAIN CONTROL UNIT 的T4,其余需要的信号同实验二连接。

(2)从总线向移位器299直接置数: ①拨动输入数据开关为要置的二进制数据; ②置控制信号I/O-R?0,Ai=0(数据进入总线);

③拨动S1S0开关=11,按动一次START键,产生T4脉冲,将数据置入移位器299。 (3)求两数之和后再置入299:

-8-

①置数:I/O-R?0,按KK将总线上的数存入DA1,修改总线数据,上下拨动B-DA2将数据置入DA2;

②求和:置S3S2S1S0MCi=100101(即F=A加B算术运算),I/O-R?1,ALU?B?0,置

CyNCn?0,按动START键一次,如果有进位Cy灯亮;

③将和数暂存DA1:此时总线上显示的是两数之和,置上的和数暂存DA1;

CyNCn?1,按KK键一次,将总线

④和数装入299:置S3S2S1S0MCi=111100(即F=A运算,DA1保存的数据显示在总线上,刚好S1S0开关=11),按动START键一次。

(4)移位:参照移位菜单,改变 299-B、M、S1、S0的值,按动START键,观察总线显示灯,记录移位结果。

5.实验要求

(1)将数据0B6H进行各种移位并记录结果和标志,分析结果是否正确。 (2)将数据79H进行各种移位并记录结果和标志,分析结果是否正确。

(3)设计一个实验电路,实现将0B6H+79H的和进行带进位循环左移的功能,画出接线图,写出实验步骤。

(4)思考是否能实现双字节的循环移位?若能,写出你的实验方案(电路、边线和步骤);若不能,说出你的理由。

-9-

实验4 存储器读/写实验

1.实验目的

(1)掌握主存储器的构成和工作特性; (2)掌握读或写主存储器的方法。

2.实验设备

YY-Z02计算机组成原理教学实验系统一台,排线若干。

3.实验原理

本实验涉及的电路有存储器单元(MEM UNIT)、时序电路单元(CLOCK UNIT)、手动单元(MANUAL

UNIT)、地址单元(ADDRESS UNIT)、输入/输出单元(OUTPUT/INPUT UNIT)等。在脱机方式下,各单元的大部分控制信号都由MANUAL UNIT 的开关直接控制。例如,存储器单元的M-W信号和M-R信号由MANUAL UNIT的M-W和M-R开关控制,M-R?0表示读存储器,M-W?0表示写存储器。由于MANUAL UNIT中每个开关的结构都一样且彼此独立,如果某控制信号在MANUAL UNIT中没有同名的开关与它对应,也可以用其他的开关代替。其连接原理图如图4-1所示。

本实验中,产生存储器读写地址的方法是:由输入设备(INPUT DEVICE)直接把要读写的存储器地址打入地址寄存器AR中。先拨输入开关D7~D0,并使I/O-R?0和Ai =0,将存储器读写地址送到总线。B-AR是给AR存数据的控制信号,低脉冲值有效( ),将总线上的数据被写入AR;当B-AR没有脉冲时,AR(74LS273)的输入端就被锁住,其输入端的改变将不能影响到它的输出值。

写存储器的方法是:先送存储器地址,由输入设备(INPUT DEVICE)将地址打入总线,并锁

-10-

存在地址存储器AR中,再设置存储器为写状态M-W?0(Yy-Z02实验仪上存储器芯片6116的CE恒接地),将数据写入指定地址的存储器单元内,置存储器写信号M-W?1,撤消其他控制信号。

数据在输出设备(OUTPUT DEVICE)上显示的方法是:置I/O-W?0,Ai =0将要显示的总线数据送到发光管显示(Ai为OUTPUT/INPUT UNIT的线选地址)。

4.实验步骤

(1)连接实验线路:按照图4-1原理自行设计并连接实验线路,仔细检查连线无误后,接通电源。

(2)置存储器地址:按照图4-2的操作顺序拨动开关。 (3)置存储器内容。

(4)依次在输出设备(OUTPUT DEVICE)显示存储器单元的地址和内容。

置控制信号为初始值: 拨INPUT的数据开关(8位二进制地址) 将地址送上总线拨输入端控制信号: I /0?R?1,M?R?1,I/0?R?0,Ai=0,打开地址寄存器,B-AR= M?W?1,B-AR=0 I/0?R?1 依上述做法,将寄存器地址送入地址拨M?W?1 将数据送上总线拨INPUT的数据开关(8位二进制数据) 寄存器 读寄存器信号置M?R?0,将寄存器单元内容送上总线 I/0?R?1 I/0?R?0,置写寄存器信号M?W?0,数据写入 置I/0?W?0,Ai=0, OUTPUT发光管显示存储器读出的数据 图4-2 存储器实验的操作流程 5.实验要求

(1)依次向三个存储器单元(01H、02H、03H)中分别写入数据(81H、6EH、2CH),并分别显示输出。

(2)思考:把地址和数据写入存储器的操作有什么不同,为什么?

-11-

实验5 总线数据传送控制实验

1.实验目的

(1)理解总线的概念、作用和特性; (2)掌握用总线控制数据传送的方法。

2.实验设备

YY-Z02计算机组成原理教学实验系统一台,排线若干。

3.实验原理

总线是在计算机各部件之间实现数据、地址和控制信号传送功能的公用信息线。本实验涉及的电路有寄存器单元(REG UNIT)、时序电路单元(CLOCK UNIT)、手动单元(MANUAL UNIT)、运算器单元(ALU UNIT)、输入/输出单元(OUTPUT/INPUT UNIT)等,存储器、寄存器、输入/输出单元等互相之间都不是直接相连的,而是分别挂到总线上,通过总线达到互相连接的目的。各个部件都有自己的输入输出控制信号,通过对这些信号的有效控制,就可以正确地通过总线把数据传送给不同的部件。其实验原理图如图5-1所示。

本实验在脱机方式下完成,各部件的控制信号大部分都用MANUAL UNIT中的开关手工控制。由于 MANUAL UNIT 中每个开关的结构都一样且彼此独立,如果某控制信号在MANUAL UNIT没有同名的开关与它对应,也可以用其他的开关代替。

本实验的时序信号用到T4,可将 CLOCK UNIT中KK2的 插座引入单脉冲,既将KK2连接到MAIN CONTROL UNIT 的T4。每按动一次KK,在T4插座上得到一个 脉冲。或改由START开关控制,具体做法是:连接CLOCK UNIT中T4插座与MAIN CONTROL UNIT 的T4插座,每按动一次START 开关,T4插座上得到一个 脉冲。

4.实验步骤

-12-

(1)连接实验线路:按照图5-1原理自行设计并连接实验线路,仔细检查连线无误后,接通电源。

(2)输入一个数据,放入某个寄存器中。

(3)将该寄存器中的数据进行移位运算,结果在OUTPUT/INPUT UNIT 的输入设备(OUTPUT DEVICE)的发光管上显示,同时观察进位标志位CY的值。

具体操作步骤见图5-2。

图5-2 存储器实验的操作流程图

5.实验要求

(1)输入数据94H,放入寄存器R0中。

(2)将R0中的数据带进位循环左移一位,结果在 OUTPUT/INPUT UNIT 的输出设备(OUTPUT DEVICE)上显示,同时观察进位标志位CY的值。

(3)将R0中的数据循环右移一位,结果在 OUTPUT/INPUT UNIT 的输出设备(OUTPUT DEVICE)发光管上显示,同时观察进位标志位CY的值。

(4)思考:系统总线的类型及在计算机中的作用。

-13-

实验六 控制器实验一(微码装入与执行)

1.实验目的

(1)掌握时序产生器、微控制器的工作原理;

(2)掌握微程序的编制、装入、执行方法,观察微程序的运行过程。

2.实验设备

YY-Z02计算机组成原理教学实验系统一台,排线若干。

3.实验原理

本实验实验主要是针对微控制器单元来进行的,所涉及的电路只有微控制单元(MAIN CONTROL UNIT)和时序电路单元(CLOCK UNIT)。通过微控制单元中的编程开关(三个状态)来控制实现微码装入、校验、执行。微码装入与校验时的微地址,由手动单元(MANUAL UNIT)的开关拨入(经排线连接)。图6-1是该实验连接线路图,图6-2是其对应的微程序流程图和控制台操作图,表6-1是控存中的微指令编码。

时序电路单元(CLOCK UNIT)中的T1~T4信号,必须送至MAIN CONTROL UNIT 的T1~T4(通过排线),其他各个单元使用的时序信号T1-T4均已和MAIN CONTROL UNIT的T1~T4连接好。

图6-1连接线路图

-14-

图6-2微程序流程图

表6-1实验六微码表 微地址 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 1CH 1DH 20H 21H 22H 23H 24H 25H 26H 27H 28H 29H 2AH 30H 31H 32H

微代码 01C008 DC4002 610003 00C010 C10005 820001 C10007 410020 000001 DC400C C40E0F 000001 21000D C40E0E 058109 22001C DC401D 04BE0A 300021 87E51 C10023 108001 C10028 210026 DC4027 C10028 058101 21002A E44101 DC4004 DC4006 DC4022 BTO 000 110 011 000 110 100 110 010 000 110 110 000 001 110 000 001 110 000 001 100 110 000 110 001 110 110 000 001 111 110 110 110 OTB 000 111 000 000 000 000 000 000 000 111 001 000 000 001 001 000 111 001 100 001 000 100 000 000 111 000 001 000 001 111 111 111 FUNC 011 000 010 001 010 100 010 010 000 000 000 000 010 000 011 100 000 001 000 111 010 001 010 010 000 010 011 010 000 000 000 000 FS 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 1 1 1 1 S3 S2 S1 S0 M Ci 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 N 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 下址 0001000 0000010 0000011 0010000 0000101 0000001 0000111 0100000 0000001 0001100 0001111 0000001 0001101 0001110 0001001 0011100 0011101 0001010 0100001 0100011 0000001 0100101 0100110 0100111 0101000 0000001 1000000 0000001 0000100 0000110 0100010 微指令注释 J(3) PC->AR,PC=PC+1 RAM->IR J(1) RAM->AR IN->DR RAM->AR RAM->DA2 NULL PC->AR,PC=PC+1 0->AR NULL RAM->DA1 0->AR DA1->OUT IN->DA1 PC->AR,PC=PC+1 DA1->RAM DR->DA1 RAM->AR DR->RAM RAM->AR RAM->DA1 PC->AR,PC=PC+1 RAM->AR DA1->OUT RAM->DA1 DA1->PC,PC+1有效 PC->AR,PC=PC+1 PC->AR,PC=PC+1 PC->AR,PC=PC+1 -15-

1 0 0 1 0 1 0 0000001 DA1+DA2->DR,CyNCn

33H 34H DC4024 DC4029 110 110 111 111 000 000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0100100 PC->AR,PC=PC+1 0101001 PC->AR,PC=PC+1 4.实验步骤

(1)连接实验线路:按照图6-1实验线路,仔细检查连线无误后,接通电源。

(2)编写微代码:参见附录2的6.2微指令格式一节 (3)装入微代码

方法一(脱机手工装入):

①将微控器单元(MAIN CONTROL UNIT)右上角的编程开关置于“PROG”状态。 ②将时序电路单元(CLOCK UNIT)中的RUN/STEP开关置于“STEP”状态。 ③从手动单元 (MANUAL UNIT)中的开关“MA6~MA0”上拨入微地址MA6~MA0。

④从微代码开关MK23~MK0上拨入微代码,24位开关对应着24位显示灯(灯亮表示“1”,灯灭表示“0”)。

⑤按动START按键,启动时序,即将24位微代码写入到控存(2816)的相应单元(由微地址MA6~MA0所指定)中。

⑥重复步骤①~⑤,即可将微指令代码一条条装入控存。 方法二(联机装入):参见附录3《上位软件操作》。 (4)检验微码 方法一(手动校验):

①将编程开关置于“READ”状态。

②将时序电路单元(CLOCK UNIT)中的RUN/STEP开关置于“STEP”状态。

③从手动单元 (MANUAL UNIT)中的开关“MA6~MA0”上拨入微地址MA6~MA0。

④按动START按键,启动时序,读入微代码,观察显示灯MD23~MD0的状态(灯亮表示“1”,灯灭表示“0”)。检查读出的微代码是否与写入的相同。如果不同,则将编程开关重新置于“PROG”状态,再执行操作3,装入正确的微代码即可。

⑤重复步骤①~④,即可校验每一条微指令代码。

方法二(联机校验):参见附件中《上位软件使用说明书》的“第三章 操作流程”。 (5)执行微程序 方法一(单步运行):

①将编程开关置于“RUN”状态,将时序电路单元(CLOCK UNIT)中的RUN/STEP开关置于“STEP”状态

②操作CLR开关(在实验板的右下角),使CLR信号“1→0→1”,从而使微地址MA6~MA0

清零,即本机的微程序运行入口为0000000B(00H)。

③按动START按键,启动时序电路,每按动读出并执行一条微指令代码,然后停机。此时,实验台上的微地址显示灯MA6~MA0和微代码显示灯MD23~MD0的状态(灯亮表示“1”,灯灭表示“0”)指示所读出微指令的地址和代码。

-16-

方法二(连续运行):

①将编程开关置于“RUN”状态,将时序电路单元(CLOCK UNIT)中的RUN/STEP开关置于“RUN”状态。

②同单步运行的②。

③按动START按键,启动时序,则可以连续读出(执行)微指令代码,片刻之后,将

RUN/STEP开关置于“STEP”状态,即可停机。

(6)观测时序信号。

用联机软件的时序功能或者双踪示波器,观察方波信号T1~T4的输出。将时序电路中的开关置为“RUN”,按动START按键,从方波上可观察到T1~T4各时刻的波形,比较它们的相互关系,画出波形。

5.实验要求

(1)要求会编写简单微代码,(如加法运算A+B),在脱机方式下将代码装入微控制器,并经校验后运行输出。

(2)将表6-1中的微代码联机装入控制存储器并校验。

(3)从零地址开始执行微程序,观察并记录微地址的变化顺序,并解释其原因。 (4)观察微地址显示灯MA6~MA0和微代码显示灯MD23~MD0的最低7位MD6~MD0状态是否始终保持一致?从理论上讲,是否应该这样?分析为什么。

(5)若要强制使微程序从07H单元开始执行,请结合微程序控制器的结构和原理,说明你的方法,并实现。(提示:使用控制信号SE6~SE0来实现)。

-17-

实验7 控制器实验二(简单模型机设计与实现)

1.实验目的

(1)掌握各部件单元电路实验的基础上,进一步将其组成系统,构成一台基本模型计算机; (2)为其定义五条机器指令,编写相应的微程序和测试程序,并上机调试,掌握整机概念。

2.实验设备

YY-Z02计算机组成原理教学实验系统一台,排线若干。

3.实验原理

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

图7-1是本实验基本模型机的原理图。各部件挂接在总线上,从主存中取出的指令保存在指令寄存器IR中,并将指令码送往指令译码器(INS UNIT),指令译码器则同时结合微控制器及其他部件有关信息进行译码,产生控制微程序流程的信号SE6~SE0,送回微控器。微控器根据SE6~SE0修改下址,产生后继微指令地址,在下一个微周期,则从后继续指令地址取出微指令。微指令的24位编码经内部译码器译码,产生各种微操作控制信号,送往全机各个部件,以控制各部件协调运转,完成微指令所规定的功能。在一段微程序执行完后,相应的该条机器指令也就执行完毕。

(1)指令系统

在本实验中,定义了五条单操作数机器指令,格式和功能如下:(在本实验中DR只为R0) ① IN DR,[PORTAR]

格式: I7 I6 I5 I4 I3 I2 I1 I0 11 0000 DR PORTAR 功能:输入设备(INPUT DEVICE)开关数据送DR,PORTAR为输入设备的端口地址。 ② ADD DR, [ADDR]

格式: I7 I6 I5 I4 I3 I2 I1 I0 11 0001 DR ADDR 功能:(DR)+[ADDR]→DR,结果影响标志;直接寻址,直接地址ADDR在指令第二字节。

-18-

③ STA [ADDR], DR

格式: I7 I6 I5 I4 I3 I2 I1 I0 11 0010 DR ADDR 功能: DR→[ADDR];直接寻址,DR的内容送主存ADDR地址单元。 ④ OUT [PORTAR],[ADDR]

-19-

格式: I7 I6 I5 I4 I3 I2 I1 I0 11 0011 ×× ADDR PORTAR 功能: [ADDR]→LED;直接寻址,主存ADDR地址单元的内容送输出设备发光管显示。PORTAR为输出设备的端口地址,由PORTAR中的Ai位线选。 ⑤ JMP ADDR

格式: I7 I6 I5 I4 I3 I2 I1 I0 11 0011 ×× ADDR 功能:ADDR→PC,微程序跳转到主存ADDR地址继续执行。 (2)控制台操作

为了向主存中手动装入程序和数据,检查写入是否正确,并能启动程序执行,设计了三段控制台操作微程序,以支持三条控制台操作指令,其定义和功能如表7-1所示,后继实验均是相似的控制台操作,不累述。

表7-1控制台操作指令 开关 KB KA 1 0 0 1 0 0 或1 1 控制台指令 读内存 写内存 启动程序 功能 拨动CLR开关“1→0→1”后,按START微动开关, 可对内存连续进行读操作。 拨动CLR开关“1→0→1”后,按START微动开关, 可对内存连续进行写操作。 拨动CLR开关“1→0→1”后,按START微动开关,则转入取指令微程序入口开始执行。 (3)微程序流程图及微码

图7-2控制台操作微程序流程图 图7-3 实验七微程序流程图

控制台操作和以上五条指令操作的微程序流程图分别如图7-2和7-3所示,微代码如表7-1。

-20-

微地址 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 10H 1CH 1DH 1EH 1FH 20H 21H 22H 23H 24H 25H 26H 27H 28H 29H 2AH 2BH 2CH 微代码 01C008 DC4002 610003 00C010 C10005 820001 C10007 410020 000001 DC400C C40E0F 000001 21000D C40E0E 058109 22001C 000000 DC401D 04BE0A 000000 000000 300021 87E51 C10023 108001 C10025 210026 DC4027 0D8001 000000 000000 000000 000000 D1401E BTO 000 110 011 000 110 100 110 010 000 110 110 000 001 110 000 001 000 110 000 000 000 001 100 110 000 110 001 110 000 000 000 000 000 110 OTB 000 111 000 000 000 000 000 000 000 111 001 000 000 110 001 001 000 110 001 000 000 100 001 000 100 000 000 111 011 000 000 000 000 111 表7-1 实验七微码表 FUNC FS S3S2S1S0MCi N 011 1 0 0 0 0 0 0 0 000 1 0 0 0 0 0 0 0 010 0 0 0 0 0 0 0 0 001 1 0 0 0 0 0 0 0 010 0 0 0 0 0 0 0 0 100 0 0 0 0 0 0 0 0 010 0 0 0 0 0 0 0 0 010 0 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 0 000 1 0 0 0 0 0 0 0 000 0 0 0 1 1 1 0 0 000 0 0 0 0 0 0 0 0 010 0 0 0 0 0 0 0 0 000 0 0 0 1 1 1 0 0 011 0 0 0 0 0 0 1 0 100 0 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 0 000 1 0 0 0 0 0 0 0 001 0 1 1 1 1 1 0 0 000 0 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 0 111 1 1 0 0 1 0 1 0 010 0 0 0 0 0 0 0 0 001 0 0 0 0 0 0 0 0 010 0 0 0 0 0 0 0 0 010 0 0 0 0 0 0 0 0 000 1 0 0 0 0 0 0 0 011 0 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 0 0001 0 0 0 0 0 0 0 0 下 址 0001000 0000010 0000011 0010000 0000101 0000001 0000111 0100000 0000001 0001100 0001111 0000001 0001101 0001110 0001001 0011100 0000000 0011101 0001010 0000000 0000000 0100001 0000001 0100011 0000001 0100101 0100110 0100111 0000001 0000000 0000000 0000000 0000000 0011110 微指令注释 J(3) PC->AR,PC=PC+1 RAM->IR J(1) RAM->AR IN->DR RAM->AR RAM->DA2 NULL PC->AR,PC=PC+1 0->AR NULL RAM->DA1 0->AR DA1->OUT IN->DA1 NULL PC->AR,PC=PC+1 DA1->RAM NULL NULL DR->DA1 DA1+DA2->DR,CyNCn RAM->AR DR->RAM RAM->AR RAM->DA1 PC->AR,PC=PC+1 RAM->AR NULL NULL NULL NULL NULL (4)测试程序

为测试编制的微程序是否实现了指令规定的功能,须按照指令格式编写一段程序(机器码),装入内存并执行,通过检查结果来判断微程序是否正确。表7-2就是一段测试程序。

表7-2 实验七测试程序 地址 内 容 助记符 备 注 00H 11000000B ;IN R0,[PORTAR] IN-> R0 00000000B ;端口地址 00H 01H 02H 11000100B ;ADD R0,[10H] R0+[10H] -> R0 00010000B ;直接地址 10H 03H 04H 11001000B ;STA R0,[10H] R0 -> [10H] 00010000B ;直接地址 10H 05H

-21-

06H 07H 08H 09H 0AH ?? 10H

11001100B 00010000B 00000000B 11010000B 00000000B ?? ;OUT [10H],[PORTAR] ;直接地址 10H ;端口地址 00H ;JMP 00H ;立即数 00H ;和 [10H] -> LED 00H->PC ;须检验的结果 4.实验步骤

(1)连接实验线路:按照原理图7-1连接实验线路,仔细检查接线无误后,接通电源。(注意:图中连线上有椭圆圈的,需用排线自行连接,否则,线路板内部已连接好。)

(2)装入微程序并校验:参见实验六操作。 (3)装入程序并校验:

方法一:手动装入和校验(使用控制台操作指令进行机器指令的装入与校验) ①装入:

a. 将编程开关置于“RUN”状态,RUN/STEP开关置于“STEP”状态。

b. 操作CLR开关,使CLR信号“1→0→1”,程序计数器PC清零,微地址清零。 c. 开关KBKA置为“0 1”,即写内存状态。

d. 按动启动键START一次,则从控存00H单元开始执行微指令,微地址显示灯显示“0001010”,第二次按动START键,微地址显示灯显示“001111”,此时,将数据开关置为要写入的机器指令代码或数据,再按动START键两次,即完成该条指令的写入,同时PC指向下一个内存单元。继续按动START键,当且仅当微地址显示灯显示“000111”时,才从开关上置入指令代码,直至所有的程序代码写入完毕。

②校验

a. 将编程开关置于“RUN”状态,RUN/STEP开关置于“STEP”状态

b. 操作CLR开关,使CLR信号“1→0→1”,程序计数器PC清零,微地址清零。 c. 开关KB KA置为“1 0”,即读内存状态。

d. 动键START键三次,从控存00H单元开始执行微指令,微地址显示灯显示为0001001→0001100→0001110,此时,输出设备(OUTPUT DEVICE)发光管上将显示内存00H号单元的内容,检查是否与写入的数据相同。继续按动START键,当且仅当微地址显示灯显示0001001时,发光管上显示的内容才是内存的数据。每个循环PC自动增加1,由此,可检查后续单元的内容是否正确。

③若校验有误,则返回到①重新装入,直到所有单元的内容正确。 方法二:联机读/写程序:参见附录3《上位软件操作》。 (4)运行程序

方法一(单步运行):

① 将编程开关置于“RUN”状态:RUN/STEP开关置于“STEP”状态;开关KB KA置为

“0 0”或“1 1”,即启动程序状态。

② 操作CLR开关使信号“1→0→1”,从而使微地址清零,程序计数器PC清零,即程序首

-22-

地址为00H。

③ 每按动一次START键,就单步运行一条微指令,此时可通过观察微地址显示灯,来判断

微程序执行的流程是否正确。 方法二(连续运行):

① 将编程开关置于“RUN”状态:RUN/STEP开关置于“RUN”状态;开关KB KA置为“0

0”或“1 1”。 ② 同上单步运行。

③ 按动START键,启动时序,系统从0地址连续运行程序;稍候,将RUN/STEP开关拨

至“STEP”状态,系统停机。

方法三(联机运行):参见附录3《上位软件操作》。

(5)检查结果是否正确。若有误,则检查和修改微程序代码和程序代码,从(2)开始重新操作,直至正确。

5.实验要求

(1)用手动方式装入表7-2程序代码,并校验。 (2)使用联机方式装入微程序代码。

(3)分别采用脱机和联机方法执行程序,比较和检查结果是否正确。若有误,查找原因并改正。

(4)分析实验的指令系统中,如何实现隐含对R0 (目的操作数)的寻址?如果要隐含使用R1 做目的操作数,如何实现?

(5)分析手动装入程序代码时,为什么必须要在微地址显示灯显示“0001111”时,才从开关上置入指令代码?同时,在手动校验时,为什么只有当微地址显示灯显示“0001001”时,发光管上显示的内容才是内存的数据?

(6)若将OUT指令的操作码改为0101,则微程序必须做什么样的修改? (7)在图7-2的微程序流程图上,最多还可以添加几条机器指令?

-23-

实验8 带移位功能的模型机设计与实现

1.实验目的

综合应用所学计算机组成有原理基本知识,设计并实现具有移位功能的计算机。

2.实验设备

YY-Z02计算机组成原理教学实验系统一台,排线若干。

3.实验原理

本实验基本原理如图8-1所示,是在实验七所描述的模型机的基础上,搭接移位控制电路,其控制信号299?B、M、S1、S0从微控制器产生,其余原理同实验七。其接线图如图8-2所示。

图8-1 移位模型机的原理图

图8-2 移位模型机实验接线图

(1)指令系统

在本实验中,定义了九条机器指令,格式和功能如下(DR默认为R0):

-24-

① STA [ADDR],DR

格式: I7I6 I5I4 I3I2 I1I0 10 00 00 DR ADDR 功能:(DR)0→[ADDR];直接寻址,DR的内容送主存ADDR地址单元。 ② JMP ADDR

格式: I7I6 I5I4 I3I2 I1I0 10 00 01 ×× ADDR 功能: ADDR→PC;跳转到主存ADDR地址继续执行。 ③ ADD DR,[ADDR]

格式: I7I6 I5I4I3I2 I1I0 11 0000 00 ADDR 功能:(DR)+[ADDR]→DR;结果影响标志;直接寻址。直接地址ADDR在指令第二字节。 ④ IN DR,[PORTAR]

格式: I7I6 I5I4I3I2 I1I0 11 0001 DR PORTAR 功能:输入设备(INPUT DEVICE)开关状态→DR,PORTAR为输入设备的端口地址。 ⑤ OUT [PORTAR],DR

格式: I7I6 I5I4I3I2 I1I0 11 0010 DR PORTAR 功能:(DR)→LED;直接寻址,DR 寄存器的内容送输出设备发光管显示。PORTAR为输出设备的端口地址,由PORTAR中的Ai位线选。

⑥ RR

格式: I7I6 I5I4I3I2 I1I0 11 0011 DR 功能:DR寄存器的内容循环右移一位→DR,D0移入D7,移位后不影响FC。 ⑦ RRC

格式: I7I6 I5I4I3I2 I1I0 11 0100 DR 功能:DR寄存器的内容带进位循环右移一位→DR,DR最高位受FC影响,移位后影响FC。 ⑧ RL

格式: I7I6 I5I4I3I2 I1I0 11 0101 DR 功能:DR寄存器的内容循环左移一位→DR,D7移入D0,移位后不影响FC。 ⑨ RLC

格式: I7I6 I5I4I3I2 I1I0 11 0110 DR 功能:DR寄存器的内容带进位循环左移一位→DR,DR最高位受FC影响,移位后影响FC。

-25-

(2)控制台操作(同实验七) (3)微程序流程图及微码

以上九条指令的微程序流程图分别如图8-3所示,其微码如表8—1。

图8-3 移位模型机微程序流程图

表8-1 实验八微码表

微地址 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 11H 12H 13H 14H 15H 16H 17H 18H 19H 1AH 1BH 1CH 1DH -26-

微代码 01C008 DC4002 610003 00C010 210005 C54120 C10007 410011 000001 DC400C C40E0F 000001 21000D C40E0E 058109 22001C 300012 87E501 C10014 820001 C10016 118001 080819 DC4004 880101 080A1B 880101 DC401D 04BE0A BTO 000 110 011 000 001 110 110 010 000 110 110 000 001 110 000 001 001 100 110 100 110 000 000 110 100 000 100 110 000 OTB 000 111 000 000 000 001 000 000 000 111 001 000 000 001 001 000 100 001 000 000 000 100 010 111 010 010 010 111 001 FUNC 011 000 010 001 010 010 010 010 110 000 000 000 010 000 011 100 000 111 010 100 010 011 000 000 000 000 000 000 001 FS 1 1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 S3S2S1S0MCi 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 N 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 下址 0001000 0000010 0000011 0010000 0000101 0100000 0000111 0010001 0000001 0001100 0001111 0000001 0001101 0001110 0001001 0011100 0010010 0000001 0010100 0000001 0010110 0000001 0011001 0000100 0000001 0000001 0000001 0011101 0001010 微指令注释 J (3) PC->AR,PC+1 RAM->IR J (1) RAM->DA1 DA1->AR,J (2) RAM->AR RAM->DA2 NULL PC->AR,PC+1 0->AR NULL RAM->DA1 0->AR DA1->OUT IN->DA1 DR->DA1 DA1+DA2->DR MAR->AR IN->DR MAR->AR DR->LED 循环右移 PC->AR,PC+1 299->DR 带进位循环右移 299->DR PC->AR,PC+1 DA1->RAM 1EH 1FH 20H 21H 22H 23H 30H 31H 32H 33H 34H 35H 36H 08041F 880101 108001 E44101 080623 880001 DC4006 DC4013 DC4015 100C17 100C1A 100C1E 100C22 000 100 000 111 000 100 110 110 110 000 000 000 000 010 010 100 001 010 010 111 111 111 100 100 100 100 000 000 001 000 000 000 000 000 000 000 000 000 000 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0011111 0000001 0000001 0000001 0100011 0000001 0000110 0010011 0010101 0010111 0011010 0011110 0100010 循环左移 299->DR DR->RAM DA1->PC,PC+1=1 带进位循环左移 299->DR PC->AR,PC+1 PC->AR,PC+1 PC->AR,PC+1 DR->299 DR->299 DR->299 DR->299 4.实验操作过程

(1)连接实验线路:按图8-2连接线路,仔细检查连线无误后,接通电源。 (2)装入微程序并校验:参见实验六微码的装入与执行。 (3)测试程序的装入与校验:参见实验七 表8-2 所示的是该实验的测试程序。

-27-

表8-2 测试程序

地址 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 10H 内容 11000100B 000000000B 11000000B 00001111B 11011000B 11000100B 00000000B 11010000B 11010100B 10000000B 00010000B 11001000B 00000000B 10000100B 00000000B 01000011B 助记符 ;IN R0,[PORTAR] ;端口地址00H ;ADD R0,[0FH] ;直接地址0FH ;RLC R0 ;IN R0,[PORTAR] ;端口地址00H ;RRC R0 ;RL R0 ;STA[10H],R0 ;直接地址10H ;OUT[PORTAR],R0 ;端口地址00H ;JMP 00H ;直接地址00H ;累加的数据 ;结果 备注 输入设备开关数据→R0 (R0)+[0FH] →R0 R0带进位循环左移一位→R0 INPUT开关数据→R0 R0带进位循环右移一位→R0 R0循环左移一位→R0 (R0)→[10H] (R0)→LED 00H→PC 自定 检查的结果 (4)运行程序:参见实验七 (5)检查结果。

在PC机上通过联机方式可对实验仪进行单步微指令执行、单步指令执行、连续指令执行及断点运行,通过PC机上显示的界面可观察当前微指令的数据流向、控制信号和各个单元的状态。还可以通过时序窗观察信号、数据的时序波形。通过这些手段可判断出实验是否正确连线,程序和微程序是否正确运行等内容。

通过观察实验仪上发光二极管显示,检查结果是否与期望值相同,若不同,则先观察单步执行过程是否有误,有误则检查开关状态是否正确,无误再核对指令码和微码的编写是否正确,纠正错误后从第二步开始实验,直至得到正确实验结果。

5.实验要求

(1)通过联机方式装入、测试的程序。 (2)编写并装入微程序代码。

(3)分单步执行程序,实现各种移位功能,检查结果是否正确,如果不正确,查找原因并解决问题。

(4)思考:如何设计实现双字节的联合移位?

-28-

实验9 具有中断功能的模型机设计与实现

1.实验目的

综合应用所学计算机组成有原理基本知识,设计并实现具有中断功能的计算机。

2.实验设备

YY-Z02计算机组成原理教学实验系统一台,排线若干。

3.实验原理

本实验是在实现实验七和实验八的模型机设计的基础上,增加中断控制电路和中断向量输入电路,实现响应中断请求并转中断子程序及返回等功能。系统包含中断向量输入开关、中断向量输入缓冲器及D触发器。外部中断请就信号INT-EX由KK单脉冲产生作为D触发器的触发脉冲,产生内部中断请求信号INT。每当一条指令执行结束时都判断INT是否有效,若无效则继续下一条指令的执行,若有效则由微控制器产生INT?R中断响应信号,该信号一方面将中断向量开关从缓冲器读到总线并置入PC,使其转入中断程序执行,另一方面将两个D触发器清零,使其无法响应外部中断请求。只有在微控器产生INT?E信号时才使两个D触发器能够响应外部中断请求。

该实验连线将INS UNIT 的寄存器译码电路输入输出信号均加以连接,这样可以使用所有寄存器,其中SP为R3寄存器,其余原理同前面两个实验,原理图如图9-1所示。

图9-1 具有中断功能模型机的原理图

-29-

图9-2 具有中断功能模型机的实验接线图 (1)指令系统

在本实验中,定义了十条机器指令,格式和功能如下: ① ADD DR,SR

格式: I7I6I5I4 I3I2 I1I0 0000 SR DR 功能: (SR)+(DR)→DR:不带进位但是影响进位(FC)和零位(FZ)。 ② HIT

格式: I7I6I5I4 I3I2 I1I0 0001 ×× ×× 功能: 停机,只有有中断时才会跳出,执行完成中断程序后继续执行下一条指令。 ③ JMP ADDR

格式: I7I6 I5I4 I3I2 I1I0 10 00 00 ×× ADDR 功能:ADDR→PC;结果不影响标志;直接寻址,直接地址ADDR在指令第二字节。

-30-

图9-3具有中断功能模型机的微程序流程图 ④ IN DR,[PORTA]

格式: I7I6 I5I4I3I2 I1I0 11 0000 DR PORTAR 功能: 输入设备(INPUT DEVICE)中的开关状态→DR,PORTAR为输入单元的端口地址。 ⑤ OUT [PORTAR],DR

格式: I7I6 I5I4I3I2 I1I0 11 0001 DR PORTAR 功能(DR)→LED:直接寻址,DR寄存器的内容送输出单元发光管显示。PORTAR为输出设备(OUTPUT DEVICE)的端口地址,有PORTAR中的Ai位线选。

⑥ IRET

格式: I7I6 I5I4I3I2 I1I0 11 0010 DR 功能:中断程序返回指令。

⑦ INC

格式: I7I6 I5I4I3I2 I1I0 11 0011 DR 功能:(DR)+1→DR,相加后影响FC,FZ。

图9-4 中断处理流

程图

⑧ MOVSP

-31-

格式: I7I6 I5I4I3I2 I1I0 11 0100 ×× DATA 功能:DATA→SP。 ⑨ STI

格式: I7I6 I5I4I3I2 I1I0 11 0101 ×× 功能:中断允许。

⑩ CLI

格式: I7I6 I5I4I3I2 I1I0 11 0110 ×× 功能:中断禁止。

(3)程序流程图及微码

具有中断功能模型机的程序流程图如图9-3所示,中断处理流程图如图9-4所示,其微码如表9-1。

表 9-1微指令码表 微地址 微代码 00H 01C008 01H DC4002 02H 610003 03H 00C010 04H 500005 05H 87E57F 06H 500007 07H 87657F 08H 000001 09H DC400C 0AH C40C0F 0BH 000001 0CH 21000D 0DH C40C0E 0EH 05BC09 0FH 22001C 10H 2C0004 11H 2C0006 12H 2C001E 13H 2C0024 14H 2C0026 15H 2C0028 16H 8C007F 17H 02C045 18H DC402A 19H DC402C 1AH DC4053 1BH DC402F 1CH DC401D 1DH 04810A 1EH 50001F 1FH 87D87F 20H 81007F 21H 10807F 22H E4417F 23H 024040 24H 500025 -32-

BTO 000 110 011 000 010 100 010 100 000 110 110 000 001 110 000 001 001 001 001 001 001 001 100 000 110 110 110 110 110 000 010 100 100 000 111 000 010 OTB 000 111 000 000 100 001 100 001 000 111 001 000 000 001 001 000 011 011 011 011 011 011 011 000 111 111 111 111 111 001 100 001 000 100 001 000 100 FUNC 001 000 010 001 000 111 000 110 000 000 000 000 010 000 011 100 000 000 000 000 000 000 000 101 000 000 000 000 000 001 000 111 010 001 000 100 000 FS 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 0 0 1 1 0 S3S2S1S0MCi 000000 000000 000000 000000 000000 100101 000000 100101 000000 000000 001100 000000 000000 001100 111100 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000000 000001 000000 011000 000000 000000 000001 000000 000000 N 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 下 址 0001000 0000010 0000011 0010000 0000101 1111111 0000111 1111111 0000001 0001100 0001111 0000001 0001101 0001110 0001001 0011100 0000100 0000110 0011110 0100100 0100110 0101000 1111111 1000101 0101010 0101100 1010011 0101111 0011101 0001010 0011111 1111111 1111111 1111111 1111111 1000000 0100101 微指令注释 J(3) PC->AR,PC=PC+1 RAM->IR J(1) DR->DA2 DA1+DA2->DR,CyNCn DR->DA2 DA1+DA2->DR,CyNCn NULL PC->AR,PC=PC+1 0->AR NULL RAM->DA1 0->AR DA1->OUT IN->DA1 SR->DA1 SR->DA1 SR->DA1 SR->DA1 SR->DA1 SR->DA1 SR->DR J(5) PC->AR,PC=PC+1 PC->AR,PC=PC+1 PC->AR,PC=PC+1 PC->AR,PC=PC+1 PC->AR,PC=PC+1 DA1->RAM DR->DA2 DA1-DA2>DR,CyNCn RAM->DR DR->RAM DA1->PC,PC+1有效 J(4) DR->DA2 25H 26H 27H 28H 29H 2AH 2BH 2CH 87587F 500027 84EE7F 500029 84FA7F 21002B 54002E 21002D 100 010 100 101 100 001 010 001 001 100 001 100 001 000 101 000 110 000 111 000 111 010 000 010 1 0 1 0 1 0 0 0 011000 000000 101110 000000 111010 000000 000000 000000 0 0 0 0 0 0 0 0 1111111 0100111 1111111 0101001 1111111 0101011 0101110 0101101 DA1-DA2>DR,CyCn DR->DA2 DA1&&DA2->DR,CyNCn DR->DA2 DA1|DA2->DR,CyNCn RAM->DA1 SI->DA2 RAM->DA1 4.实验操作过程

(1)连接实验线路:按图9-2连接线路,仔细检查连线无误后,接通电源。 (2)编写并装入微程序代码

根据图9-3给出的流程图,编写微程序代码表,并用上位机软件装入到上位机中。 (3)测试程序

为测试所编制的微程序是否实现了指令规定的功能,可以按照指令格式编写一段程序(机器码),装入内存并执行,通过检查结果来判断微程序的正确性。该实验的测试程序如表9-2所示:

-33-

表9-2 测试程序

地址 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0DH 0EH 0FH 10H 11H 内容 11010100B 11010000B 11111111B 11000000B 00000000B 11000001B 00000000B 00000001B 00010000B 10000000B 00000101B 11001100B 11000100B 00000000B 11010100B 11001000B 助记符 ;STI ;MOVSP 0FFH ;立即数 0FFH ;IN R0,PORTAR ;端口地址00H ;IN R1,[PORTAR] ;端口地址00H ;ADD R1,R0 ;HLT ;JMP ;直接地址05H ;INC R0 ;OUT PORTAR,R0 ;端口地址00H ;STI ;IRET 开中断 0FFH →SP INPUT DEVICE开关数据→R0 INPUT DEVICE开关数据→R1 (R1)+(R0)→(R1) 停机,等待中断 05H→PC (R0)+1→R0 (R0)→LED 开中断 中断返回 备注 (4)运行程序与检查结果 方法参见实验七

5.实验要求

(1)通过联机方式装入、测试的程序; (2)编写并装入微程序代码;

(3)设置中断向量,连续执行程序,检查中断响应是否正确,若不正确要查找原因并改正。

-34-

实验10 复杂模型机的设计与实现

1.实验目的

综合应用所学计算机组成有原理基本知识,设计并实现具有移位功能的计算机。

2.实验设备

YY-Z02计算机组成原理教学实验系统一台,排线若干。

3.实验原理

本实验包含所有各部件,从主存中取出的指令保存在指令寄存器IR中,并将指令码送往指令译码器(INS UNIT)译码,微控器综合各方面的信息,产生微操作序列号,送往全机各个部件,以控制各部件有序运转,完成机器指令所规定的功能,其原理图如图10-1所示,简略接线如图10-2所示。

图10-1 复杂模型机原理图

(1)指令系统

在本实验中,定义了28条机器指令,格式和功能如下: 1)一般指令格式的指令

格式: I7I6I5I4 I3I2 I1I0 OP SR DR ① ADD DR,SR 格式: I7I6I5I4 I3I2 I1I0 0000 SR DR 功能: (SR)+(DR)→DR -35-

图10-2 复杂模型机的接线图

② ADC DR,SR

格式: I7I6I5I4 I3I2 I1I0 0001 SR DR 功能: (SR)+(DR)+FC→D

③ SUB DR,SR

格式: I7I6I5I4 I3I2 I1I0 0010 SR DR 功能: (SR)-(DR)→DR

④ SUC DR,SR

格式: I7I6I5I4 I3I2 I1I0 0011 SR DR 功能: (SR)-(DR)-FC→DR

⑤ AND DR,DR

格式: I7I6I5I4 I3I2 I1I0 0100 SR DR 功能: (SR)∧(DR)→DR

⑥ OR DR,DR

格式: I7I6I5I4 I3I2 I1I0 0101 SR DR 功能: (SR)∨(DR)→DR

⑦ MOV1 DR,SR

格式: I7I6I5I4 I3I2 I1I0 0110 SR DR -36-

功能: (SR)→DR

⑧ HLT

格式: I7I6I5I4 I3I2 I1I0 0111 ×× ×× 功能: 停机,只有有中断时才会跳出该指令。 2)存储器访问及转移类指令(有4条)

格式: I7I6 I5I4 I3I2 I1I0 10 MOD OP2 DR ADDR/DISP/X 寻址方式定义:

MOD=00:变址寻址,有效地址EA=(RI)+X;其中SI隐含为R2; MOD=01:相对寻址,有交地址EA=(PC)+DISP; MOD=10:直接寻址,有效地址EA=ADDR; MOD=11:间接寻址,有效地址EA=(ADDR)。 操作码及功能见下表所示:

助记符 操作码OP2 功能 LDA 00 [EA] →DR STA 01 DR→[EA] JMP 10 EA→PC BZC 11 若FC+FZ=1,则EA→PC,否则,结束指令 3)操作码扩展指令(单字节指令) 格式: I7I6 I5I4I3I2 I1I0 11 OP DR ① RR DR

格式: I7I6 I5I4I3I2 I1I0 11 0010 DR 功能: DR寄存器的内容循环右移 ② RL DR

格式: I7I6 I5I4I3I2 I1I0 11 0011 DR 功能: DR寄存器的内容循环左移 ③ RRC DR

格式: I7I6 I5I4I3I2 I1I0 11 0100 DR 功能: DR寄存器的内容 带进位循环右移 ④ RLC DR

格式: I7I6 I5I4I3I2 I1I0

-37-

11 0101 DR 功能: DR寄存器的内容带进位循环左移 ⑤ STI

格式: I7I6 I5I4I3I2 I1I0 11 功能: 开中断 ⑥ INC DR

格式: I7I6 I5I4I3I2 I1I0 11 功能:(DR)+1→DR ⑦ DEC DR

格式: I7I6 I5I4I3I2 I1I0 11 功能:(DR)-1→DR ⑧ IRET

格式: I7I6 I5I4I3I2 I1I0

11 功能:中断返回指令 ⑨RET

格式: I7I6 I5I4I3I2 I1I0 11 功能:子程序返回指令 ⑩ CLI

格式: I7I6 I5I4I3I2 I1I0

11 功能:关中断指令 ⑾ PUSH

格式: I7I6 I5I4I3I2 I1I0 11 1101 ×× 1100 ×× 1011 ×× 1001 ×× 1000 DR 0111 DR 0110 ×× 功能:(SP)-1→SP,(DR)→SP(DR进栈) ⑿ POP

格式: I7I6 I5I4I3I2 I1I0 11 1110 ×× 功能:[SP]→DR,(SP)+1→SP (栈→DR) 4)操作码扩展指令,双字节指令

格式: I7I6 I5I4I3I2 I1I0

-38-

11 OP PORTAR/ADDR/X DR ① IN DR,[PORTAR]

格式: I7I6 I5I4I3I2 I1I0 11 0000 DR PORTAR 功能:[PORTAR] →DR(PORTAR的值由实验联线的情况而定) ② OUT [PORTAR] ,DR

格式: I7I6 I5I4I3I2 I1I0 11 0001 DR PORTAR 功能: DR →[PORTAR](PORTAR的值由实验联线的情况而定) ③ CALL ADDR

格式: I7I6 I5I4I3I2 I1I0 11 1010 ×× ADDR 功能:调用子程序(ADDR是子程序的地址) ④ MOV2 DR,X

格式: I7I6 I5I4I3I2 I1I0 11 1111 DR DATA 功能:DATA →DR (2)程序流程图及微码

复杂模型机的一般指令程序流程图如图10-3所示,其操作码扩展指令流程图如图10-4所示,其微码如表10-1。

-39-

图10-3 一般指令及访存指令流程图

图10-4 操作码扩展指令流程图

-40-

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

Top