计算机组成原理课程实习报告 流水微程序控制器

更新时间:2024-03-13 14:47:01 阅读量: 综合文库 文档下载

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

目 录

1.实习的目的和任务……………………………………………………… 1 1.1目的???????????????????????????1 1.2 任务???????????????????????????1 2.实习要求………………………………………………………………… 1 3.实习地点………………………………………………………………… 1 4.主要仪器设备…………………………………………………………… 1 5.实习内容………………………………………………………………… 1 5.1计算机整机????????????????????????1 5.2计算机外设????????????????????????2 5.3流水型微程序控制器的设计与调试??????????????2 5.3.1实验原理????????????????????????2 5.3.2 CPLD设计程序????????????????????? 7 5.3.3实验步骤????????????????????????7 5.3.4调试??????????????????????????10 5.3.5性能分析对比??????????????????????10 6.问题讨论与分析……………………………………………………………10 7.结束语………………………………………………………………………11 参考文献………………………………………………………………………11

计算机组成原理课程实习

1.实习的目的和任务 1.1目的

进一步融会贯通教材内容,掌握计算机各功能模块的工作原理、相互联系和来龙去脉,完整地建立计算机整机概念;激发学生的学习热情和主动性,培养学生的独立工作能力,在实践活动中,将所知识 综合运用,增长才干,并积累经验;培养严谨的科研作风,使学生利用先修课和计算机组成原理课程的理论知识和实验技能,在该课程所涉及的工程技术范围内,创造性地完成部件及系统的分析、设计、组装和调试,进一步加强实验技能的训练。 1.3 任务

(1)分析计算机整机系统;分析计算机外设与主机的关系。

(2)在基本模型机的基础上,进一步将其构成一台具有流水功能的模型机。 (3)学习掌握流水微程序控制器的设计原理。 2. 实习要求

(1) 按照实习要求完成相应的实习任务; (2) 实现实习目的; (3) 完成实习报告。 3. 实习地点 田家炳404

4. 主要仪器设备(实验用的软硬件环境)

(1)ZY15CompSys12BB计算机组成原理及系统结构实验箱 一台 (2)排线 若干 (3)PC机 一台 5. 实习内容 5.1计算机整机

计算机系统是一个由硬件、软件组成的多层次结构,它通常由微程序级、一般机器级、操作系统级、高级语言级组成,每一级上都能进行程序设计,且得到下面各级的支持。计算机的硬件是由有形的电子器件等构成的,它包括运算器、存储器(硬盘、U盘、移动硬盘等)、控制器、适配器、输入输出设备(键盘、鼠标

- 1 -

器、激光印字机等)。早期将运算器和控制器合在一起称为CPU(中央处理器)。目前的CPU包含了存储器,因此称为中央处理机。存储程序并按地址顺序执行,这是冯诺依曼型计算机的工作原理,也是CPU自动工作的关键。计算机系统还必须有总线,系统总线是构成计算机的骨架,是多个部件之间进行数据传输的公共通路。计算机软件是计算机系统结构的重要组成部分,也是计算机不同于一般电子设备的本质所在。计算机软件一般分为系统程序和应用程序两大类。系统程序包括:各种服务性程序、语言类程序、操作系统、数据库管理系统。应用程序是针对某一应用课题领域开发的软件。 5.2计算机外设

外围设备是计算机系统中除主机外的其他设备,大体分为输入设备、输出设备、外存设备、数据通信设备、过程控制设备五大类。每一种设备,都是在它自己的设备控制下进行工作,而设备控制器则通过I/O接口模块和主机相连,并受主机控制。一般把计算机的控制器、运算器和存储器三个部分合称为主机,主机和外设之间通过接口电路相联系,输入设备是主机获取外部信息的通道,输出设备是主机把处理结果向外部表达的通道。而实现主机与外设之间的信息传送,采取I/O传送控制方式,也称为信息交换方法。在一般的系统中采用直接程序控制方式、程序中断方式和DMA方式。外围设备有高速的也有低速的,有机电结构的,也有全电子式的。由于种类多且速度各异,因而它们不是直接地同高速工作的主机相连接,而是通过适配器部件与主机相联系。适配器使得被连接的外围设备通过系统总线与主机进行联系,以便使主机和外围设备并行协调地工作。 5.3流水型微程序控制器的设计与调试 5.3.1实验原理

在基本模型机实验过程中,模型计算机执行程序是在微程序的控制下按顺序的方式进行。结合微程序流程图分析各条指令的执行过程可以发现,机器的各部分在某些周期内工作,而在某些周期内是空闲的。以加法指令为例:在执行过程中,首先需要取指令和操作数,我们称之为取指阶段,此时取指部件(指令寄存器等)工作,而执行部件(运算器等)则不工作;而进行加法运算的时候(我们称之为指令的执行阶段),执行部件工作而取指部件空闲。假如我们让各个单元部件同时工作,也就是说在执行一条指令的同时,进行下一条指令的取指,使指令的“预

- 2 -

取”与“执行”两过程在时间上重叠进行,那么指令的执行效率就可以提高一倍,从而大大提高CPU的运行速度。基于以上思路,就产生了一种新的CPU结构,由于它的运行方式类似于工厂里的流水线,所以称之为流水线结构。

ALU指令总线地址总线双端口RAMAR_RT3T3T4T4LDR0DR1LDDR2T4DR2LDDR1T4AR_L指令预取控制器暂存器R0PCLDARTPRDLDPCT4T3LOAD输出数据总线T3执行部件控制信号产生器指令寄存器LDIR输入指令执行部件指令分析部件 图4-8 流水微程序控制器数据通路

由于流水线结构能够在不改变CPU主频的情况下大大提高运行速度,所以已经得到了广泛的应用。为了让学生能够了解流水CPU的工作原理,我们在基本模型机的基础上加以改进,设计出了流水微程序模型机。这里“执行部件”仍然由微程序控制器来控制,“指令预取部件”用可编程逻辑器件CPLD设计的指令预取控制器来实现。数据通路中采用双端口存储器作为主存储器,采用数据总线与指令总线双总线体制来实现指令流水线。为了保证流水线的顺畅运行,必须保持指令寄存器的内容在执行周期内不变,所以在“指令预取部件”的内部使用一个暂存器,用来保存从存储器中预取来的指令。程序开始执行时,指令预取控制器自动将指令从存储器中取出到暂存器中,执行控制部件再不必直接到存储器中取指令,只需从暂存器中取指令。同时指令预取控制器通过硬件对暂存器进行检测,一检测到暂存器空,就会自动从双端口存储器中取指令或数据把暂存器补充满,所以指令预取和执行的过程互不影响。流水微程序的数据通路如图4-8所示。

- 3 -

图中可以看出在两个控制器即“指令预取控制器”和“微控制器”的控制下,来实现微程序的流水。微控制器不光要产生执行部件所需的各种控制信号,还要产生“指令预取控制器”预取所需的控制信号TPRD、LOAD、LDPC。“指令预取控制器”根据微控制器发出的TPRD来判断暂存器中的指令或数据是否被取走,若被取走则暂存器为空,暂存器一为空,指令预取控制器则马上发相应的控制信号,从存储器中取出指令把暂存器补充满,然后继续检测TPRD信号,总之一旦检测到暂存器为空指令预取控制器便立即从存储器中取数补充,常常这一过程的发生与指令的执行重叠进行,即一段程序运行时用流水结构微程序控制器处理比前面所用的常规微程序模型机的执行速度提高了很多。

这里流水模型计算机数据通路将由微程序控制器与指令预取控制器共同来控制。指令预取控制器控制把指令取到暂存器中,微程序控制器控制指令执行。为了便于比较,本实验设计了与基本模型机同样的五条机器指令,指令格式如下:

助记符 IN

机器指令码 00000000

说明

;输入,“INPUT”设备中的开关状态→R0

;二进制加法,R0+[addr]→R0

ADD addr STA addr OUT addr JMP addr

00010000 XXXXXXXX

00100000 XXXXXXXX ;存数,R0→[addr]

;输出,[addr]→BUS

00110000 XXXXXXXX

01000000 XXXXXXXX ;无条件转移,addr→PC

机器指令码的前4位为操作码。其中IN为单字长,其余为双字长指令,XXXXXXXX为addr对应的二进制地址码。微代码定义如表4-2所示。

表4-2 流水微程序模型机微指令结构图

微程序 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 控制信号 S3 S2 S1 S0 M CN RD M17 M16

A字段 15 14 13 控制信号 0 0 0 0 0 1 LDRI 0 0 0 0 0 1 RS_G 0 0 0 0 0 1 P1 B字段 12 11 10 控制信号 9 8 P字段 7 控制信号 A B P 5 4 3 uA5 uA4 uA3 uA2 - 4 -

0 0 1 1 1 1 1 0 0 1 0 1 0 1 0 LDDR1 LDDR2 LDIR LOAD LDAR 0 0 1 1 1 1 1 0 0 1 0 1 0 1 0 TPRD ALU_G PC_G 0 0 1 1 1 1 1 0 0 1 0 1 0 1 0 LDPC 系统涉及到的流水微程序流程图见图4-9,当拟定指令译码时,该微指令的判别测试字段为P1测试。由于“取指令”操作相同,所以它对应的微指令是所有微程序都要使用到的公用微指令。依据指令的不同P1的测试结果出现多路分支。本机用指令寄存器的高4位(I7—I4操作码)作为测试条件,出现5路分支,占用5个固定微地址单元。

当全部微程序设计完毕后,应将每条微指令代码化,表4-3即为图4-9的微程序流程图按微指令格式转化而成的“二进制微代码表”。

启动0001TEMP→IR10P(1)IN10→SW ROADD11STA12OUT13JMP14TEMP AR→02TEMP AR→05→R0 RAMTEMP AR→06→RAM DR107TEMP PC→01RAM DR2→010301→R0 DR1→DR1 LED04→DR1+DR2 R00101 图4-9 流水微程序流程图

空间- 5 -

分析K+2执行K+2

表4-3 二进制代码表

微地址 S3∽CN RD M17 M16 00 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 02 0 0 0 0 0 0 0 03 0 0 0 0 0 0 0 04 1 0 0 1 0 0 1 05 0 0 0 0 0 1 0 06 0 0 0 0 0 0 0 07 0 0 0 0 0 1 1 10 0 0 0 0 0 0 0 11 0 0 0 0 0 0 0 12 0 0 0 0 0 0 0 13 0 0 0 0 0 0 0 14 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 00 0 1 A B P uA5∽uA0 - 6 -

0 5.3.2 CPLD设计程序

1 本次实习中,为了方便灵活的构成流水微程序控制器,我们利用了一片MAX7128可编程逻辑控制器芯片,把指令预取部件、地址指针、存储器左端口地址锁存器和指令寄存器都设计到了此片CPLD器件中。做实验时只需把对应的POF文件下载到芯片中,它就能起到以上部件的作用。 5.3.3实验步骤

1、根据该模型机指令系统,编写一段程序。为了便于对比这里给出基本模型机参考程序2。本程序从输入设备(拨码开关)读入数据,与0A单元的数据相加,然后送到输出单元(LED数码管)进行显示。本程序功能为循环显示输入单元的数据加上1之后的结果,在运行中可改变输入开关(输入单元)的值,观察输出显示的变化。

设计机器指令程序如下(机器码和地址为十六进制数据)。 地 址 内 容 助记符 00 01 02 03 04 05 06 07 08 0A 0B

00 10 0A

IN R0

说 明

;输入开关数据(如输入0E)→R0,采集数据

ADD [0AH] ;R0+[0AH]→R0,输入数据与指定数据相加

;地址

20

STA [0BH] ;R0→[0B]

;地址

0B 30 0B 40 00 01

OUT [0BH] ;[0BH] →BUS,输出显示

;地址

JMP [00H] ;00H→PC

;跳转地址 ;加数,可自定

;求和结果保存在0B单元

2、按图4-10连接实验线路(图中箭头表示需要接线的地方,接总线和控制信号时要注意高低位一一对应,可用彩排线的颜色来进行区分。寄存器单元的D0~D7接数据总线的D0~D7)。

3、用MAX+PLUSⅡ软件下载编译好的PROG4.POF文件到EPM7128中。

- 7 -

4、写程序

使用联机软件的文件装载功能将文件名为“流水微程序实验.TXT”的实验程序和微程序载到实验箱的存储器与微控制器中,并用软件的读出功能进行检查。 5、运行程序 脱机运行程序 (1)单步运行程序

A、使控制台单元的开关SP05处于“NORM”状态, SP06处于“RUN”状态,SP03为“STEP”状态,SP04为“RUN”状态,299_G为“1”状态。

B、拨动开关单元的总清开关CLR(1?0?1),微地址清零,程序计数器清零,程序首址为00H。

C、单步运行微指令,每按动一次控制台单元的START触动开关,即单步运行一条微指令。对照流水微程序流程图4-9,观察微地址显示灯MA5-MA0是否和流程一致。

D、当运行结束后,可检查运行结果是否和理论值一致。如果运行结果保存在RAM的某一个单元中,则可以使用手动写入中的校验方法或联机方法查看其读出,同时也可以在输出单元观测运行结果。(本例中运行结果为0F) (2)连续运行程序

A、使控制台单元的开关SP05处于“NORM”状态, SP06处于“RUN”状态,SP03为“RUN”状态,SP04为“RUN”状态。

B、拨动开关单元的总清开关CLR(1?0?1),微地址及程序计数器清零,然后按动控制台的START触动开关,系统连续运行程序,稍后将控制台中的SP04拨至“STOP”时,系统停机。

C、停机后,可检查运行结果是否正确。如果运行结果保存在RAM的某一个单元中(本例在0B单元),则可以使用联机软件读存储器方法将其读出,同时也可以在输出单元观测运行结果。

- 8 -

接到数据总线AR0...AR7AL7...AL0I/O7...I/O0CPLD单元I/O47...I/O40DR0...DR7T44CE_LCEL(I/O37)(I/O36)CLOCKLDIR(I/O33)LOAD(I/O18)LDPC(I/O19)TRD(I/O32)SE6(I/O29)..SE1(I/O24)TS4T1I/O22LDIRLOADLDPCTRDSE6..SE1P1接到地址总线接到数据总线DL7...DL0I/O15...I/O8TS1T22T33TS2TS3T1T2T4接到开关单元299_GCLOCKT3信号单元存储器单元算术逻辑单元接到数据总线D0.JD1..D7CE_RWE_RY1WEALU_GS3S2S1S0MCNLDDR2LDDR1ALU_GS3S2S1S0MCNLDDR2LDDR1LED_GY2WE输出单元WE微控制器单元LDARLDAR寄存器单元R0_GLDR0R0_GLDR0地址指针单元输入单元Y0SW_G

图4-10 流水微程序模型机实验接线图

参考程序的机器指令:

$P0000 $P0110 $P020A $P0320 $P040B $P0530 $P060B $P0740 $P0800

- 9 -

$P0A01 微程序: $M00018001 $M0301A204 $M0600A007 $M0901E802 $M0C01D981 5.3.4调试

对流水型微程序控制器设计好了以后,形成初步的设计文件,通过上面的例子按照设计文件进行调试,在调试过程中,往往会发现设计中的问题,我们对此设计进行了改进,再根据修改后的设计进行调试,最后直到完全成功为止。 5.3.5性能分析对比

一个计算机系统可以在不同的并行等级上采用流水线技术。本实习系统中采用了指令流水线技术,它将指令流的处理过程划分为取指令、译码、取操作数、执行等几个并行处理的过程段,使“指令预取”和“指令执行”部件在时空上并行执行。流水微程序模型机与前面的基本模型机相比较,速度和效率明显提高。同样的指令和程序,如:基本模型机2程序,采用流水微程序方式实现时仅需17个机器周期,而在基本模型机的实验中,需要27个机器周期。

在流水方案中,冲突是不可避免的。本实习中,为了解决冲突充分利用了双端口存储器的特性,采用了指令总线与数据总线双总线结构。只要指令预取控制器收到TPRD信号后,就把暂存器中的数据送到数据总线上,然后交给由微控制器操作送到哪个部件,它同时控制从存储器中取下一条指令到暂存器中。在遇到转移指令时,微控制器发出LOAD、TPRD和LDPC命令,“预取部件”接到这三个信号后,在时序信号的配合下,将转移地址打入PC中,完成转移。 6. 问题讨论与分析

1、为什么在“指令预取部件”的内部使用一个暂存器?

答、为了保证流水线的顺畅运行,必须保持指令寄存器的内容在执行周期内不变,所以在“指令预取部件”的内部使用一个暂存器,用来保存从存储器中预取来的指令。程序开始执行时,指令预取控制器自动将指令从存储器中取出到暂存器中,

$M0101C848 $M0200B003

$M05028201 $M08001001 $M0B01E806

$M04959A01 $M07070A01

$M0A01E805

- 10 -

执行控制部件再不必直接到存储器中取指令,只需从暂存器中取指令。这样可以提高取指令的效率,节省运行时间。 7. 结束语

《计算机组成原理》是计算机科学与技术系的一门核心专业基础课程。在本次课程实习中,刚开始对所实习的有关内容都很模糊,通过自己对实习所涉及到的内容进行了资料的收集即1、对计算机系统的分析,进一步了解到计算机系统的组成;2、分析计算机外设与主机的关系,从实践中对外设的组成和它与主机的关系有了更深的理解;3、通过对流水型微程序控制器的设计与调试,懂得了它与基本模型机有一定的差别以及对流水线结构的定义有一定的理解。打破了我以往的想法,以为计算机组成原理实验都偏硬件,没想到课程实习的内容还有运用到软件即编写程序。当然,在实习过程中遇到了一些困难,但在老师的指导和同学的帮助下,我慢慢的完成这次实践。

总之,通过这次的课程实习使我对计算机组成原理这门课程有了更深的了解与掌握,受益匪浅。 参考文献

[1]白中英.计算机组成原理(第四版·立体化教材).北京:科学出版社,2008

[2]白中英.杨春武.计算机组成原理题解、题库、实验(第三版).北京:科学出版社,2002

- 11 -

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

Top