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

更新时间:2023-12-10 09:27:01 阅读量: 教育文库 文档下载

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

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

适用于计算机科学与技术专业

广东药学院医药信息工程学院

控制与仿真教研室

前 言

计算机体系结构是计算机专业的核心课程之一,属必修的主干专业基础课。本课程主要讲述单机系统各大部件的组成及工作原理;讲述各大部件级成整机的工作机制,建立计算机工作的整机概念。本课程还设置实验和课程设计的环节,通过实践教学,达到以下目标:

1.进一步融会贯通教材内容,更好掌握计算机各功能模块的组成及工作原理,掌握各模块的相互联系,完整地从时间上和空间上建立计算机的整机概念。

2.在实践中培养学生的独立工作能力,严谨的工作态度和科研作风,掌握计算机硬件系统的分析、设计、组装和调试的基本技能。为今后开展科研工作打下基础。

2010年3月

目 录

实验一、TEC-4计算机组成原理实验系统认识实验 实验二、运算器组成实验(1) 实验三、运算器组成实验(2)

实验四、双端口存储器原理实验(1) 实验五、双端口存储器原理实验(2) 实验六、数据通路组成实验(1) 实验七、数据通路组成实验(2)

实验八、常规型微程序控制器组成实验 实验九、CPU组成与机器指令执行实验 实验十、中断原理实验

实验一 TEC-4计算机组成原理实验系统认识实验

TEC-4计算机组成原理实验系统由清华大学教学仪器厂研制。它是一个典型的计算机模型实验仪器,可用于大专、本科、硕士研究生计算机组成原理课程、计算机系统结构课程的教学实验。该仪器将提高学生的动手能力,提高学生对计算机整体和各组成部分的理解,提高学生对计算机系统的综合设计能力。

1.1 TEC-4计算机组成原理实验系统的特点

(1)计算机模型简单、实用,运算器数据通路、控制器、控制台各部分划分清晰。 (2)计算机模型采用了数据总线和指令总线双总线体制,能够实现流水控制。

(3)控制器有微程序控制器、硬联线控制器两种类型,每种类型又有流水和顺序两种方案。

(4)寄存器堆由1片ispLSI1016组成,运算器由1片ispLSI1024组成,设计新颖。 (5)实验台上包括了1片在系统编程芯片ispLSI1032,学生可用它实现硬联线控制器等多种设计。

(6)该系统能做运算器组成、双端口存储器、数据通路、微程序控制器、中断、CPU组成与指令执行等六个基本教学实验。

(7)该系统能完成流水微程序控制器、硬联线控制器、流水硬联线控制器等三个大型课程设计实验。

(8)电源部分采用模块电源,重量轻,具有抗电源对地短路能力。 (9)器件外部采用自锁紧累接接线方式,可靠性和接线速度比面包板提高5倍和8倍。 (10)实验仪器体现了当代CPU设计的先进思想和并行技术。

1.2 TEC-4计算机组成原理实验系统的组成

TEC-4计算机组成原理实验系统由下述六部分组成: (1)控制台 (2)数据通路 (3)控制器

(4)用户自选器件试验区 (5)时序电路 (6)电源部分

下面分别对各组成部分予以介绍。

1.3 电源

电源部分由一个模块电源、一个电源插座、一个电源开关和一个红色指示灯组成。电源模块通过四个螺栓安装在实验台下面,它输出+5V电压,最大负载电流3A,内置自恢复保险功能,具有抗+5V对地短路能力。电源插座用于接交流220V市电,插座内装有保险丝。电源开关用于接通或者断开交流220V市电。当电源模块输出+5V时,点亮+5V红色指示灯。

1.4 时序发生器

时序发生器产生计算机模型所需的时序。时序电路由一个1MHz晶体振荡器、两片GAL22V10(U6和U7)组成,位于控制存储器的右边。根据本机设计,执行一条微指令需

要4个节拍脉冲T1,T2,T3,T4,执行一条指令通常需要取指、送操作数、运算、写结果四个节拍电位W1,W2,W3,W4,因此本机的基本时序如下:

图3 基本时序图

图中,MF是晶体振荡器产生的1MHz基本时钟,T1,T2,T3,T4是数据通路和控制器中各寄存器的节拍脉冲信号,印制板上已将它们和有关的寄存器连接。T1,T2,T3,T4既供微程序控制器时使用,也供硬联线控制器使用。W1,W2,W3,W4只供硬联线控制器作节拍电位信号使用。

1.5 数据通路

数据通路的设计是TEC-4计算机组成原理实验系统最有特色的部分。首先它采用了数据总线和指令总线双总线形式,使得流水实验能够实现。它还使用了大规模在系统可编程器件作为运算器和寄存器堆,使得设计简单明了,可修改性强。数据通路位于实验系统的中部。

图4是数据通路总体图,下面介绍图中各主要部件的作用。

1.运算器ALU

运算器ALU由一片ispLSI1024(U47)组成,在选择端S2,S1,S0控制下,对数据A和B进行加、减、与、直通、乘五种运算,功能如下:

表1 运算器功能表

选 择 S2 0 0 0 0 1 S1 0 0 1 1 0 S0 0 1 0 1 0 操 作 A&B A&A(直通) A+B A-B A(低4位)×B(低4位)

进位C只在加法运算和减法运算时产生。加运算中,C表示进位;减运算中,C代表

借位。加、减运算在T4的上升沿送入C寄存器保存。与、乘、直通操作不影响进位C的状态,即进位C保持不变。

当ALU-BUS=1时,运算结果送往数据总线DBUS。加、减产生的进位C(借位)与控制台的C指示灯相连。

图4 数据通路总体图

2.DR1和DR2

DR1和DR2是运算操作数寄存器,DR1和ALU的B数据口相连,DR2和ALU的A数据口相连。DR1和DR2各由2片74HC298(U23,U24,U21,U22)组成。U23是DR1的低4位,U24是DR1的高4位;U21是DR2的低4位,U22是DR2的高4位。当M1=0且LDDR1=1时,在T3的下降沿,DR1接收来自寄存器堆B端口的数据;当M1=1且LDDR1=1时,在T3的下降沿,DR1接收来自数据总线DBUS的数据。当M2=0且LDDR2=1时,在T3的下降沿,DR2接收来自寄存器堆A端口的数据;当M2=1且LDDR2=1时,在T3的下降沿,DR2接收来自数据总线DBUS的数据。

3.多端口通用寄存器堆RF

多端口通用寄存器堆RF由一片ispLSI1016(U32)组成,它的功能和MC14580类似。寄存器堆中包含4个8位寄存器(R0,R1,R2,R3),有三个控制端口。其中两个端口控制读操作,一个端口控制写操作,三个端口可同时操作。RD1,RD0选择从A端口读出的寄存器,RS1,RS0选择从B端口读出的寄存器;WR1,WR0选择被写入的寄存器。WRD控制写操作。当WRD=0时,禁止写操作;当WRD=1时,在T2的上升沿将来自ER寄存器的数据写入由WR1,WR0选中的寄存器。

A端口的数据直接送往操作数寄存器DR2,B端口的数据直接送往操作数寄存器DR1。

除此之外,B端口的数据还通过1片74HC244(U15)送往数据总线DBUS。当RS-BUS#=0时,允许B端口的数据送到数据总线DBUS上;当RS-BUS#=1时,禁止B端口的数据送到数据总线DBUS。

4.暂存寄存器ER

暂存寄存器ER(U14)是1片74HC374,主要用于暂时保存运算器的运算结果。当LDER=1时,在T4的上升沿,将数据总线DBUS上的数据打入暂存寄存器ER。ER的输出送往多端口通用寄存器堆RF,作为写入数据使用。

5.开关寄存器SW-BUS

开关寄存器SW-BUS(U38)是1片74HC244,用于将控制台开关SW7-SW0的数据送往数据总线DBUS。当SW-BUS#=1时,禁止开关SW7-SW0的数据送往数据总线DBUS;当SW-BUS#=0时,允许开关SW7-SW0的数据送往数据总线DBUS。

6.双端口存储器RAM

双端口存储器由一片IDT7132(U36)及少量附加控制电路组成。IDT7132是2048字节的双端口静态随机存储器,本机实际使用256字节。IDT7132两个端口可同时进行读、写操作。在本机中,左端口的数据连线数据总线DBUS,可进行读、写操作,右端口数据和指令总线INS连接,输出到指令寄存器IR,作为只读端口使用。存储器IDT7132有6个控制引脚:CEL#,LRW,OEL#,CER#,RRW,OER#。CEL#,LRW,OEL#控制左端口读、写操作;CER#,RRW,OER#控制右端口读、写操作。CEL#为左端口选择引脚,低有效,为高时禁止左端口操作;LRW为高时,左端口进行读操作,LRW为低时,左端口进行写操作;OER#为低时,将左端口读出的数据放到数据总线DBUS上。CER#,RRW,OER#控制右端口读、写操作的方式与CEL#,LRW,OER#控制左端口读、写操作的方式类似,不过右端口读出的数据放到指令总线上而不是数据总线上。本机设计中,OER#已固定接地,RRW固定接高电平,CER#由CER反相产生。当CER=1时,右端口读出数据,并放到指令总线INS上;当CER=0时,禁止右端口操作。左端口的OEL#由LRW经反相产生,不需单独控制。当CEL#=0且LRW=1时,左端口进行读操作;当CER#=0且LRW=0时,在T3的上升沿开始进行写操作,将数据总线上的数据写入存储器。

7.地址寄存器AR1和AR2

地址寄存器AR1(U37)和AR2(U27,U28)提供双端口存储器的地址。AR1是1片GAL22V10,具有加1功能,提供双端口存储器左端口的地址。AR1从数据总线DBUS接收数据。AR1的控制信号是LDAR1和AR1-INC。当AR1-INC=1时,在T4的上升沿,AR1的值加1;当LDAR1=1时,在T4的上升沿,将数据总线DBUS的数据打入地址寄存器AR1。AR2由2片74HC298组成,有两个数据输入端,一个来自程序计数器PC,另一个来自数据总线DBUS。AR2的控制信号是LDAR2和M3。M3选择数据来源,当M3=1时,选中数据总线DBUS;当M3=0时,选中程序计数器PC。LDAR2控制何时接收地址,当LDAR=1时,在T2的下降沿将选中的数据源上的数据打入AR2。

8.程序计数器PC、地址加法器ALU2、地址缓存器R4

程序计数器PC、地址加法器ALU2、地址缓存器R4联合完成三种操作:PC加载,PC+1,PC+D。R4是一个由2片74HC298(U25,U26)构成的具有存储功能的两路选择器。当M4=1时,选中数据总线DBUS;当M4=0,从指令寄存器IR的低4位IR0-IR3接收数

据。当LDR4=1时,在T2的下降沿将选中的数据打入R4。ALU2由1片GAL22V10(U17)构成,当PC-ADD=1时,完成PC和IR低4位的相加,即PC加D。程序计数器PC是1片GAL22V10(U18),当PC-INC=1时,完成PC+1;当PC-ADD=1时,与ALU2一起完成PC+D的功能;当LDPC=1时,接收从ALU2和R4来的地址,实际是接收来自数据总线DBUS的地址,这些新的程序地址在T4的上升沿打入PC寄存器。

9.指令寄存器IR

指令寄存器IR是1片74HC374(U20)。它的数据端从双端口存储器接收数据(指令)。当LDIR=1时,在T4的上升沿将来自双端口存储器的指令打入指令寄存器IR保存。指令的操作码部分送往控制器译码,产生各种所需的控制信号。大多数情况下,指令的操作数部分应连到寄存器堆(用户自己连接),选择参与运算的寄存器。在某些情况下,指令的操作数部分也参与新的PC的计算。

本实验系统设计了12条基本的机器指令,均为单字长(8位)指令。指令功能及格式如表2所示。表2中的X代表随意值;RS1-RS0指的是寄存器堆的B端口选择信号RS1,RS0,RD1,RD0指的是寄存器堆的A端口选择信号RD1-RD0,不过由于运算结果需写回,因此它也同时指WR1,WR0,用户需将它们对应连接。另一点需说明的是,为了简化运算,指令JC D中的D是一个4位的正数,用D3 D2 D1 D0表示。

实验系统虽仅设计了12条基本的机器指令,但代表了计算机中常用的指令类型。必要时用户可扩充到16条指令或者重新设计指令系统。

表2 机器指令格式

名 称 加法 减法 乘法 逻辑与 存数 取数 无条件转移 条件转移 停机 中断返回 开中断 关中断 助记符 ADD Rd,Rs SUB Rd,Rs MUL Rd,Rs AND Rd,Rs STA Rd,[Rs] LDA Rd,[Rs] JMP [Rs] JC D STP IRET INTS INTC 功 能 Rd+Rs→Rd Rd-Rs→Rd Rd*Rs→Rd Rd&Rs→Rd Rd→[Rs] [Rs]→Rd [Rs]→PC 若C=1则 PC+D→PC 暂停运行 返回断点 允许中断 禁止中断 指令格式 R7 0 0 0 0 0 0 1 1 0 1 1 1 R6 0 0 0 0 1 1 0 0 1 0 0 1 R5 0 0 1 1 0 0 0 0 1 1 1 0 R4 0 1 0 1 0 1 0 1 0 0 1 0 R3 RS1 RS1 RS1 RS1 RS1 RS1 RS1 D3 × × × × R2 RS0 RS0 RS0 RS0 RS0 RS0 RS0 D2 × × × × R1 RD1 RD1 RD1 RD1 RD1 RD1 × D1 × × × × R0 RD0 RD0 RD0 RD0 RD0 RD0 × D0 × × × × 10.中断地址寄存器IAR

中断地址寄存器IAR是1片74HC374,用于保存中断发生时的断点地址。它直接使用LDIAR信号作为时钟脉冲。当IAR-BUS#=0时,它将断点地址送到数据总线DBUS上,以便用控制台上的数据指示灯观察断点地址。

以上介绍了数据通路的基本组成。数据通路所需的各控制信号,除了T1,T2,T3,T4

已在印制板上连接好以外,其余的控制信号在数据通路的下方都有插孔引出,实验时只要将它们和控制器产生的对应信号正确连接即可。实验中提供的电路图上,凡引出、引入线端带有短粗黑标记的信号,都是需要用户自己连接的信号。

1.6 控制器

控制器位于本实验系统的中上部,产生数据通路操作所需的控制信号。出厂时,提供了一个微程序控制器,使用户能够进行基本的计算机组成原理实验。在进行硬联线控制器实验,流水微程序控制器实验和流水硬联线控制器实验等课程设计时,用户可设计自己的控制器,部分或者全部代替出厂时提供的控制器。图5是控制器的框图。

1.控制存储器

控制存储器由5片28C64(U8,U9,U10,U11,U12)组成。28C64是电擦除的可编程ROM,存储容量为8K字节,本实验系统仅使用了64字节。微指令格式采用全水平型,微指令字长35位。其中顺序控制部分10位:后继微地址μA0-μA5,判别标志P0,P1,P2,P3;操作控制字段25位,全部采用直接表示法,用于控制数据通路的操作。

图5 控制器框图

标志位P3和控制台开关SWB、SWA结合在一起确定微程序的分支,完成不同的控制台操作。标志位P2与指令操作码(IR的高4位IR4,IR5,IR6,IR7)结合确定微程序的分支,转向各种指令的不同微程序流程。标志位P1标志一条指令的结束,与中断请求信号INTQ结合,实现对程序的中断处理。标志位P0与进位标志C结合确定微程序的分支,实现条件转移指令。

操作控制字段25位,全部采用直接表示法,控制数据通路的操作。在设计过程中,根据微程序流程图对控制信号进行了适当的综合与归并,把某些在微程序流程图中作用相同或者类似的信号归并为一个信号。下面列出微程序控制器提供的控制信号。信号名带后缀#者

为低电平有效,否则为高电平有效。

INTS INTC LDIR(CER) LDPCLDR4) PC-ADD PC-INC M4 LDIAR 置中断允许标志INTE为1。 清除中断允许标志INTE。 为1时,允许对IR加载,此信号也可用于作为双端口存储器右端口选择CER。 为1时,允许对程序计数器PC加载,此信号也可用于作为R4的加载允许信号LDR4。 为1时,进行PC+D操作。 为1时,进行PC+1操作。 当M4=1时,R4从数据总线DBUS接收数据;当M4=0时,R4从指令寄存器IR接收数据。 为1时,允许对中断地址寄存器IAR加载。 LDAR1(LDAR2) 为1时,允许对地址寄存器AR1加载,此信号也可用于作为对地址寄存器AR2加载。 AR1-INC M3 LDER IAR-BUS# SW-BUS# RS-BUS# ALU-BUS CEL# LRW 为1时,允许进行AR1+1操作。 当M3=1时,AR2从数据总线DBUS接收数据;当M3=0时,AR2从PC接收数据。 为1时,允许对暂存寄存器ER加载。 低有效,为0时将中断地址寄存器IAR送数据总线DBUS。 低有效,为0时将控制台开关SW7-SW0送数据总线DBUS。 低有效,为0时将寄存器堆RF的B端口送数据总线DBUS。 为1时,将ALU中的运算结果送数据总线DBUS。 低有效,为0时允许双端口存储器左端口进行读、写操作。 当LRW=1且CEL#=0时,双端口存储器左端口进行读操作;当LRW=0且CEL#=0时,双端口存储器左端口进行写操作。 为1时,允许对寄存器堆RF进行写操作。 WRD LDDR1(LDDR2) 为1时允许对操作数寄存器DR1加载。此信号也可用于作为对操作数寄存器DR2加载。 M1(M2) 当M1=1时,操作数寄存器DR1从数据总线DBUS接受数据;当M1=0时,操作数寄存器DR1从寄存器堆RF接收数据。此信号也可用于作为操作数寄存器DR2的数据来源选择信号。 选择运算器ALU的运算类型。 暂停微程序运行。 备用 S2,S1,S0 TJ NC0,NC1,NC2 NC3,NC4 上述控制信号连同时序电路提供的时序、控制信号位于控制器的下边。 2.微地址寄存器μAR

1.TEC-4计算机组成原理实验系统1台 2.双踪示波器一台(并非必备) 3.直流万用表一只 4.逻辑测试笔一支 四、实验任务

(1)按图6所示,正确连接运算器模块与实验台上的电平开关K0-K15。由于运算C指示灯、8位数据开关SW0-SW7,T2,T4的连线已由印制电路板连好,故接线任务仅仅是完成有关控制信号与电平开关K0-K15的连线。正确设置开关DZ,DB,DP。用数据开关SW0-SW7向DR1和DR2寄存器置数。

1)置ALU-BUS=0,关闭ALU向数据总线DBUS的输出;置SW-BUS#=0,开启数据开关SW0-SW7向数据总线DBUS的输出。注意,对于数据总线DBUS(或者其他任何总线),在任一时刻,只能有一个数据源向它输出。置IR/DBUS开关于DBUS位置,在数据开关SW0-SW7上设置各种数据,观察数据指示灯状态是否与数据开关状态一致。

2)置M1=1,选择DBUS作为DR1的数据源;置LDDR1=1,按QD按钮,则将DBUS的数据打入DR1。置M2=1,选择DBUS作为DR2的数据源;置LDDR2=1,按QD按钮,则将DBUS的数据打入DR2。向DR1存入01010101,向DR2存入10101010。

3)置SW-BUS#=1,关闭数据开关SW0-SW7对数据总线DBUS的输出;置ALU-BUS=1,开启ALU对DBUS的输出。选择S2=0,S1=0,S0=1,使运算器进行直通运算,通过DBUS指示灯验证DR2中的内容是否为第2步设置的值。令S2=0,S1=1,S0=0,使运算器进行加运算,通过DBUS指示灯验证DR1中的内容是否为第2步设置的值。在表4中填入控制信号状态与DBUS显示状态。

表4 DR1,DR2设置值检查

ALU-BUS SW-BUS# 寄存器内容 DR1(01010101),DR2(10101010) DR1(01010101),DR2(10101010) S2 S1 S0 DBUS

五、实验要求

1.做好实验预习,掌握运算器的数据传送通路和ALU的功能特性,并熟悉本实验中所用的控制台开关的作用和使用方法。

2.写出实验报告,内容是: ① 实验目的; ② 画出表4并填上实验值。

实验三 运算器组成实验(2)

一、实验目的

4.验证实验台的4位乘4位功能。

5.按给定数据,完成几种指定的算术和逻辑运算。 二、实验电路

图6示出了本实验所用的运算器数据通路图。ALU由1片ispLSI1024构成。四片4位的二选一输入寄存器74HC298构成两个操作数寄存器DR1和DR2,保存参与运算的数据。DR1接ALU的B数据输入端口,DR2接ALU的A数据输入端口,ALU的输出在ispLSI1024内通过三态门发送到数据总线DBUS7-DBUS0上,进位信号C保存在ispLSI1024内的一个D寄存器中。当实验台下部的IR/DBUS开关拨到DBUS位置时,8个红色发光二极管指示灯接在数据总线DBUS上,可显示运算结果或输入数据。另有一个指示灯C显示运算器进位信号状态。由ispLSI1024构成的8位运算器的运算类型由选择端S2,S1,S0选择,功能如表3所示。

进位C只在加法运算和减法运算时产生,与、乘、直通操作不影响进位C的状态,即进位C保持不变。减法运算采用加减数的反码再加以1实现。在加法运算中,C代表进位;在减法运算中,C代表借位。运算产生的进位在T4的上升沿送入ispLSI1024内的C寄存器保存。

表3 运算器运算类型选择表 选 择 S2 0 0 0 0 1 S1 0 0 1 1 0 S0 0 1 0 1 0 操 作 A&B A&A(直通) A+B A-B A(低4位)×B(低4位)

图6 运算器数据通路实验电路图

在SW-BUS#信号为0时,参与运算的数据通过一个三态门74HC244(SW-BUS)送到DBUS总线上,进而送至DR1或DR2操作数寄存器。输入数据可由实验台上的8个二进制数据开关SW0-SW7来设置,其中SW0是最低位,SW7是最高位。开关向上时为1,开关向下时为0。

图中尾巴上带粗短线标记的信号都是控制信号,控制信号均为电位信号。T3,T4是脉冲信号,印制板上已连接到实验台的时序电路产生的T3,T4信号上。S2,S1,S0,ALU-BUS,LDDR2,LDDR1,M1,M2,SW-BUS#各电位控制信号用电平开关K0-K15来模拟。K0-K15是一组用于模拟各控制电平信号的开关,开关向上时为1,开关向下时为0,每个开关无固定用途,可根据实验具体情况选用。S2,S1,S0,ALU-BUS,LDDR2,LDDR1为高电平有效,SW-BUS#为低电平有效。M1=1时,DR1选择D1-A1作为数据输入端;M1=0时,DR1选择D0-A0作为数据输入端。当LDDR1=1时,在T3的下降沿,选中的数据被打入DR1寄存器。M2=1时,DR2选择D1-A1作为数据输入端;M2=0时,DR2选择D0-A0作为数据输入端。当LDDR2=1时,在T3的下降沿,选中的数据被打入DR2寄存器。

数据总线DBUS有5个数据来源:运算器ALU,寄存器堆RF,控制台开关SW0-SW7,双端口存储器IDT7132和中断地址寄存器IAR。在任何时刻,都不允许2个或者2个以上的数据源同时向数据总线DBUS输送数据,只允许1个(或者没有)数据源向数据总线DBUS输送数据。在本实验中,为了保证数据的正确设置和观察,请令RS-BUS#=1,LRW=0,IAR-BUS#=1。

为了在实验中,每次只产生一组T1,T2,T3,T4脉冲,需将实验台上的DP,DB,DZ开关进行正确设置。将DP开关置1,将DB,DZ开关置0,每按一次QD按钮,则顺序产生T1,T2,T3,T4各一个单脉冲。本实验中采用单脉冲输出。 三、实验设备

1.TEC-4计算机组成原理实验系统1台 2.双踪示波器一台(并非必备) 3.直流万用表一只 4.逻辑测试笔一支 四、实验任务

(1)验证运算器的算术运算和逻辑运算功能。

1)令DR1=01100011B,DR2=10110100B,正确选择S2,S1,S0,一次进行加、减、与、直通、乘实验,记下实验结果(数据和进位)并对结果进行分析。

2)令DR1=10110100B,DR2=01100011B,正确选择S2,S1,S0,一次进行加、减、与、直通、乘实验,记下实验结果(数据和进位)并对结果进行分析。

3)令DR1=01100011B,DR2=01100011B,正确选择S2,S1,S0,一次进行加、减、与、直通、乘实验,记下实验结果(数据和进位)并对结果进行分析。

4)令DR1=01001100,DR2=10110011,正确选择S2,S1,S0,一次进行加、减、与、直通、乘实验,记下实验结果(数据和进位)并对结果进行分析。

5)令DR1=11111111,DR2=11111111,正确选择S2,S1,S0,一次进行加、减、与、直通、乘实验,记下实验结果(数据和进位)并对结果进行分析。

(3)M1,M2控制信号的作用是什么?改变M1,M2的高低电平,重复第(2)步,观察出现什么问题? 五、实验要求

1.写出实验报告,内容是: ①列表比较实验任务(2)的理论分析值与实验结果值;并对结果进行分析。 ②实验任务(3),出现何种现象?为什么?

实验四 双端口存储器原理实验(1)

一、实验目的

1.了解双端口静态随机存储器IDT7132的工作特性及使用方法。 2.了解半导体存储器怎样存储和读出数据。 二、实验电路

图7示出了双端口存储器的实验电路图。这里使用了一片IDT7132(U36)(2048×8位),两个端口的地址输入A8-A10引脚接地,因此实际使用存储容量为256字节。左端口的数据部分连接数据总线DBUS7-DBUS0,右端口的数据部分连接指令总线INS7-INS0。一片GAL22V10(U37)作为左端口的地址寄存器(AR1),内部具有地址递增的功能。两片4位的74HC298(U28,U27)作为右端口的地址寄存器(AR2H,AR2L),带有选择输入地址源的功能。使用两组发光二极管指示灯显示地址和数据:通过开关IR/DBUS切换显示数据总线DBUS和指令寄存器IR的数据,

图7 双端口存储器实验电路图

通过开关AR1/AR2切换显示左右两个端口的存储地址。写入数据由实验台操作板上的二进制开关SW0-SW7设置,并经过SW-BUS三态门74HC244(U38)发送到数据总线DBUS上。指令总线INS上的指令代码输出到指令寄存器IR(U20),这是一片74HC374。

存储器IDT7132有6个控制引脚:CEL#,LRW,OEL#,CER#,RRW,OER#。

就会发现有些信号的出现的位置完全一样,这样的信号用其中一个信号就可以代表。请看信号LDPC和LDR4,这两个信号都在程序地址07H,1AH,1FH,26H出现,而在其他的微程序地址都不出现,因此这两个信号产生的逻辑条件是完全一样的。从逻辑意义上看,这两个信号的作用是产生新的PC,完全出现在相同的微指令中是很正常的,因此用LDPC完全可以代替LDR4。还有另一些信号,例如LDDR1和LDDR2,出现的位置基本相同。LDDR2和LDDR1的唯一不同是在地址14H的微指令中,出现了LDDR2信号,但是没有出现LDDR1信号。LDDR1和LDDR2是否也可以归并成一个信号呢?答案是肯定的。微程序流程图中只是指出了在微指令中必须出现的信号,并没有指出出现其他信号行不行,这就要根据具体情况具体分析。在地址14H的微指令中,出现LDDR1信号行不行呢?完全可以。在地址14H出现的LDDR1是一个无用的信号,同时也是一个无害的信号,它的出现完全没有副作用,因此LDDR1和LDDR2可以归并为一个信号LDDR1。根据以上两条原则,我们对下列信号进行了归并和化简:

LDIR(CER) LDPC(LDR4) LDAR1(LDAR2) LDDR1(LDDR2) M1(M2) 为1时,允许对IR加载,此信号也可用于作为双端口存储器右端口选择CER。 为1时,允许对程序计数器PC加载,此信号也可用于作为R4的加载允许信号LDR4。 为1时,允许对地址寄存器AR1加载,此信号也可用于作为对地址寄存器AR2加载。 为1时,允许对地址寄存器DR1加载,此信号也可用于作为对地址寄存器DR2加载。 当M1=1时,操作数寄存器DR1从数据总线DBUS接收数据;当M1=0时,操作数寄存器DR1从寄存器堆RF接收数据。此信号也可用于作为操作数寄存器DR2的数据来源选择信号。 在对微指令格式进行归并和化简的过程中,我们有意保留了一些信号,没有化简,同学们可以充分发挥创造性,提出更为简单的微指令格式。

还要说明的是,为什么微指令格式可以化简,而实验台数据通路的控制信号为什么不进行化简?最主要的原因是前面进行的各个实验的需要,例如LDDR1和LDDR2这两个信号,在做运算器数据通路实验时,是不能设计成一个信号的。还有一个原因是考虑到实验时易于理解,对某些可以归并的信号也没有予以归并。 四、实验设备

1.TEC-4计算机组成原理实验系统一台 2.双踪示波器一台 3.直流万用表一只 4.逻辑测试笔一支 五、实验任务

(1)按实验要求,连接实验台的数码开关K0-K15、控制开关、按钮开关、时钟信号源和微程序控制器。

注意:本次实验只做微程序控制器本身的实验,故微程序控制器输出的微命令信号与执行部件(数据通路)的连线暂不连接。连线完成后应仔细检查一遍,然后才可加上电源。

图12 微 程 序 流 程 图 (2)观察时序信号

用双踪示波器观测时序产生器的输入输出信号:MF,W1-W4,T1-T4。比较相位关系,画出其波形,并标注测量所得的脉冲宽度。观察时须将TJ1接低电平,DB,DZ,DP开关均置为0状态,然后按QD按钮,则连续产生T1,T2,T3,T4,W1,W2,W3,W4。

了解启停控制信号的功能,并熟练地使用连接这些控制信号的按钮或开关。

(3)熟习微指令格式的定义,按此定义将控制台指令微程序的8条微指令按十六进制编码,列于下表。三种控制台指令的功能由SWC,SWB,SWA三个二进制开关的状态来指定(KRD=001B,KWE=010B,PR=010B)。此表必须在预习时完成。

微指令地址 00H 07H 27H 3DH 微指令编码 微指令地址 3CH 17H 3FH 3EH 微指令编码 单拍(DP)方式执行控制台微程序,读出上述八条微指令,用P字段和微地址指示灯跟踪微指令执行情况,并与上表数据对照。用连续方式执行KWE和KRD(将TJ1接地),画出μA0(28C64的地址A0)信号波形,作出解释。

(4)用P3和SWC,SWB,SWA的状态组合,观察验证三种控制台指令KWE,KRD,PR微地址转移逻辑功能的实现。

(5)熟习05H,10H两条微指令的功能和P2测试的状态条件(IR4-IR7),用二进制开关设置IR7-IR4的不同状态,观察ADD至STP九条机器指令微地址转移逻辑功能的实现。(用逻辑笔测试有关逻辑电路的电平,分别做出测试记录,自行设计表格。)

(6)设置IR7-IR4的不同组合,用单拍方式执行ADD至STP九条机器指令微程序,用微地址和P字段指示灯跟踪微程序转移和执行情况。用逻辑笔测试小插座上输出的微命令信号,记录ADD,SUB,LDA,STA四条机器指令的微命令信号,自行设计表格。 六、实验要求

1.做好实验预习,掌握微程序控制器和时序产生器的工作原理。

2.根据实验任务所提的要求,在实验进行前务必列好所有表格、数据和理论分析值。 3.写出实验报告,内容为: ① 实验目的; ② 实验任务(2)的时序波形图和测量值; ③ 实验任务(3),(5),(6)的表格。 ④ 提出自己的微程序格式方案。

实验九 CPU组成与机器指令执行实验

一、实验目的

1.将微程序控制器同执行部件(整个数据通路)联机,组成一台模型计算机; 2.用微程序控制器控制模型机数据通路;

3.通过CPU运行九条机器指令(排除有关中断的指令)组成的简单程序,掌握机器指令与微指令的关系,牢固建立计算机的整机概念。 二、实验电路

本次实验用到前面四个实验中的所有电路,包括运算器、存储器、通用寄存器堆、程序计数器、指令寄存器、微程序控制器等,将几个模块组合成为一台简单计算机。因此,在基本实验中,这是最复杂的一个实验,也是最能得到收获的一个实验。在前面的实验中,实验者本身作为“控制器”,完成数据通路的控制。而在本次实验中,数据通路的控制将由微程序控制器来完成。CPU从内存取出一条机器指令到执行指令结束的一个机器指令周期,是由微指令组成的序列来完成的,即一条机器指令对应一个微程序。 三、实验设备

1.TEC-4计算机组成原理实验仪一台 2.双踪示波器一台(并非必备) 3.直流万用表一只 4.逻辑测试笔一支 四、实验任务

(1)对机器指令系统组成的简单程序进行译码。将下表的程序按指令格式手工汇编成十六进制机器代码,此项任务应在预习时完成。

地址 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 指令 LDA R0,[R2] LDA R1,[R3] ADD R0,R1 JC+5 AND R2,R3 SUB R3,R2 STA R3,[R2] MUL R0,R1 STP JMP [R1] 机器代码 (2)按照下面框图,参考前面实验的电路图完成连线,控制器是控制部件,数据通路(包括上面各模块)是执行部件,时序发生器是时序部件。连线包括控制台、时序部分、数据通路和微程序控制器之间的连接。其中,为把操作数传送给通用寄存器组RF,数据通路上的RS1,RS0,RD1,RD0应分别与IR3至IR0连接,WR1,WR0也应接到IR1,IR0上。

图13 模型计算机连线示意图

(3)将上述任务(1)中的程序机器代码用控制台操作存入内存中,并根据程序的需要,用数码开关SW7-SW0设置通用寄存器R2,R3及内存相关单元的数据。注意:由于设置通用寄存器时会破坏内存单元的数据,因此应先设置寄存器的数据,再设置内存数据。

(4)用单拍(DP)方式执行一遍程序,列表记录通用寄存器堆RF中四个寄存器的数据,以及由STA指令存入RAM中的数据(程序结束后从RAM的相应单元中读出),与理论分析值作对比。单拍方式执行时注意观察微地址指示灯、IR/DBUS指示灯、AR2/AR1指示灯、微地址指示灯和判断字段指示灯的值,以跟踪程序中取指令和执行指令的详细过程(可观察到每一条微指令)。

(5)以单指(DZ)方式重新执行程序一遍,注意观察IR/DBUS指示灯、AR2/AR1指示灯的值(可观察到每一条机器指令)。列表记录RF中四个寄存器的数据,以及由STA指令存入RAM中的数据,与理论分析值作对比。注意:单指方式执行程序时,四个通用寄存器和RAM中的原始数据与第一遍执行程序的结果有关。

(6)以连续方式(DB,DP,DZ都设为0)再次执行程序。这种情况相当于计算机正常运行程序。由于程序中有停机指令STP,程序执行到该指令时自动停机。列表记录RF中四个寄存器的数据,以及由STA指令存入RAM中的数据,与理论分析值作对比。注意,程序执行前的原始数据与第二遍执行结果有关。请修改程序,RF数据由主存加载。 五、实验要求

1.务必做好实验预习,做到头脑清醒,思路清晰,以便进行实验时忙而不乱,心中有数。

2.根据实验任务所提要求,实验进行前先列好必要的表格、数据和理论分析值,以便与实验结果相比较。

3.本次实验中接线工作量稍多,务必仔细,以免信号线接错而控制出错,影响实验进度。

4.写出实验报告,内容是: ① 实验目的; ② 实验任务(1)-(6)的数据表格; ③ 值得讨论的其他问题。

实验十 中断原理实验

一、实验目的

1.从硬件、软件结合的角度,模拟单级中断和中断返回的过程;

2.通过简单的中断系统,掌握中断控制器、中断向量、中断屏蔽等概念; 3.了解微程序控制器与中断控制器协调工作的基本原理。 二、实验电路

仍然使用前面的CPU组成与机器指令执行实验的电路图,但本次实验加入中断系统。这是一个简单的中断系统模型,只支持单级中断、单个中断请求,有中断屏蔽功能,旨在说明最基本的原理。

中断屏蔽控制逻辑分别集成在2片GAL22V10(TIMER1和TIMER2)中。其ABEL语言表达式如下:

INTR1:=INTR; INTR1.CLK=CLK1;

IE:=CLR&INTS#CLR&IE&!INTC; IE.CLK=MF;

INTQ=IE&INTR1;

其中,CLK1是TIMER1产生的时钟信号,它主要是作为W1-W4的时钟脉冲,这里作为INTR1的时钟信号,INTE的时钟信号是晶振产生的MF。INTS微指令位是INTS机器指令执行过程中从控制存储器读出的,INTC微指令位是INTC机器指令执行过程中从控制存储器读出的。INTE是中断允许标志,控制台有一个指示灯IE显示其状态,它为1时,允许中断,为0时,禁止中断。当INTS=1时,在下一个MF的上升沿IE变1,当INTC=1时,在下一个MF的上升沿IE变0。CLR信号实际是控制台产生的复位信号CLR#。当CLR=0时,在下一个CLK1的上升沿IE变0。当CLR=1且INTS=0且INTC=0时,IE保持不变。

INTR是外部中断源,接控制台按钮INTR。按一次INTR按钮,产生一个中断请求正脉冲INTR。INTR1是INTR经时钟CLK1同步后产生的,目的是保持INTR1与实验台的时序信号同步。INTR脉冲信号的上升沿代表有外部中断请求到达中断控制器。INTQ是中断屏蔽控制逻辑传递给CPU的中断信号,接到微程序控制器上。当收到INTR脉冲信号时,若中断允许位INTE=0,则中断被屏蔽,INTQ仍然为0;若INTE=1,则INTQ=1。

为保存中断的断点地址,以便中断返回,设置了一个中断地址寄存器IAR。第二节图4中的IAR(U19)就是这个中断地址寄存器,它是一片74HC374,有LDIAR和IAR-BUS#两个信号输入端,均连接至微程序控制器。LDIAR信号的上升沿到达时,来自程序计数器PC的地址会置入IAR中。IAR-BUS#为0时,保存在IAR中的端点地址会输出到数据总线DBUS上。由于本实验系统只有一个断点寄存器而无堆栈,因此仅支持一级中断而不支持多级中断。

中断向量即中断服务程序的入口地址,在本实验仪中由8位数码开关SW7-SW0提供。 三、中断的检测、执行和返回过程

微程序控制器每执行一条机器指令之后,执行下一条机器指令之前,先转到微地址0F处(见图12微程序流程图),在条件位P1=1时判断是否有中断请求INTQ。如果没有INTQ,则继续正常的机器指令执行。若检测到中断请求INTQ,首先发出关中断信号INTC、保存

断点信号LDIAR,并且发出停机信号TJ,等待手动设置中断向量。设置好SW7-SW0后,按QD按钮启动,机器将中断向量读入PC中,从而转到中断服务子程序去执行。

执行一条机器指令IRET,从中断服务子程序返回时,发出IAR-BUS#信号,从中断地址寄存器IAR向数据中心DBUS输出断点地址,再从DBUS依次写入到R4,PC中,恢复执行被中断的程序。

发生中断时,关中断由硬件负责,而中断现场(寄存器堆中的寄存器,进位标志C)的保存和恢复由中断服务程序来处理。 四、实验设备

1.TEC-4计算机组成原理实验仪一台 2.双踪示波器一台(并非必备) 3.直流万用表一只 4.逻辑测试笔一支 五、实验任务

(1)了解中断系统中每个信号的意义和变化条件,并将下面的主程序和中断服务程序手工汇编成十六进制机器代码,此项任务应在预习时完成。

主程序: 地址 20H 21H 22H 23H 24H 25H 26H 27H 28H 29H 指令 INTS LDA R0,[R2] ADD R0,R0 ADD R0,R0 ADD R0,R0 ADD R0,R0 ADD R0,R0 ADD R0,R0 ADD R0,R0 JMP [R1] 机器代码

中断服务程序:

地址 0A0H 0A1H 指令 ADD R0,R0 IRET 机器代码 (2)参考CPU组成与机器指令执行实验,再加上中断系统,完成本次实验的线路连接。接通电源之前应仔细检查接线,确认无误。

(3)将上述任务(1)的程序代码存入内存中,并根据需要设置通用寄存器组和内存相关单元的数据。其中,寄存器R1的值应置为21H,以便程序循环执行。

(4)从地址20H执行程序,在程序运行中,按一次控制台的INTR。进入中断后,用单拍(DP)方式执行,直到返回主程序为止。列表记录中断系统中有关信号的变化情况,特别要记录好断点地址和R0的值。

(5)重复执行(4)两次。(一共执行3次) (6)将RAM中20H单元的内容由指令INTS改为INTC,重作(4),记录发生的现象。

六、实验要求

1.务必做好实验预习,事先列好必要的表格、数据和理论分析值,以便与实验结果相比较。

2.本次实验中接线工作量稍多,务必仔细,以免信号线接错。 3.写出实验报告,内容是: ① 实验目的; ② 实验任务(1)-(5)的数据表格; ③(4)、(5)中三次记录到的断点地址、R0值相同吗?为什么? ④(6)的实验过程中,发生过中断吗?为什么? ⑤ 你认为值得总结的其他问题(例如,在一条指令的过程中,指令的执行能被中断吗?为什么?)

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

Top