计算机科学与技术系
实 验 报 告
专业名称 计算机科学与技术 课程名称 计算机组成与结构 项目名称 CPU与简单模型机设计实验
班 级
学 号 姓 名
同组人员 无
实验日期 2015-11-15
一、实验目的
1.掌握一个简单CPU的组成原理;
2.在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机; 3.为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。 二、实验逻辑原理图与分析
2.1 实验逻辑原理图及分析
本实验要实现一个简单的CPU,并且在此CPU的基础上,继续构建一个简单的模型计算机。CPU由运算器(ALU)、微程序控制器(MC)、通用寄存器(RO)、指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图下图所示。这个CPU在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU必须和贮存挂接后,才有实际的意义,所以还需要在该CPU的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。
基本CPU构成原理图
系统的程序计数器(PC)和地址寄存器(AR)集成在一片CPLD芯片中。CLR连接至CON单元的纵情断CLR,按下CLR按钮,将是PC清零,LDPC和T3相与后作为计数器的计数时钟,当LOAD为低时,计数时钟到来后将CPU内总线的数据打入PC。
程序计数器(PC)原理图
2.2 逻辑原理图分析
本模型机;和前面微程序控制器实验相比,新增加一条跳转指令JMP,供有五条指令:IN(输入)、ADD(二进制加法)、OUT(输出)、JMP(无条件转移)、HLT(停机)、其指令格式瑞霞(高4为为操作码):
助记符 IN ADD OUT JMP addr HLT 机器指令码 0010 0000 0000 0000 0011 0000 1110 0000 0101 0000 ******** 说明 IN->RO RO+RO->RO RO->OUT addr->PC 停机 其中JMP为双字节指令,其余均为单字节指令,********为addr对应的二
进制地址码。微程序控制器实验的指令是通过手动给出的,现在要求CPU自动从存储器读取指令并执行。
系统涉及到的微程序流程如下图所示,当拟定“取指”微指令时,该微指令的判别测试字段为P<1>测试。由于“取指”微指令是所有微程序都使用的公用微指令,因此P<1>的测试结果出现多分支。本机用指令寄存器的高6位(IR7—IR2)作为测试条件,出现5路分支,占用5个固定为地址单元,剩下的其他地方就可以一条微指令占用控制一个微地址单元随意填写,微程序流程图上的但愿地址为16进制。
当全部为程序设计完毕后,应将每条微指令代码化,下表即为将下图的微程序流程图按微指令格式转化而成的“二进制微代码表”。
简单模型机微程序流程图
地址 00 01 03 04 05 1D 30 32 33 35 3C 十六进制 00 00 01 00 6D 43 10 70 70 00 24 05 04 B2 01 10 51 41 00 14 04 18 30 01 28 04 01 00 00 35 00 6D 5D 高五位 00000 00000 00010 00000 00000 00010 00000 00000 00000 00000 00000 二进制微代码表
S3—S0 A字段 B字段 C字段 MA5-MA0 0000 000 000 000 000001 0000 110 110 101 000011 0000 111 000 001 110000 0000 010 010 000 000101 1001 011 001 000 000001 0000 101 000 101 000001 0000 001 010 000 000100 0000 011 000 000 000001 0000 000 010 000 000001 0000 000 000 000 110101 0000 110 110 101 011101
三、 数据通路图及分析 (画出数据通路图并作出分析)
数据通路图
四、实验数据和结果分析
4.1 实验结果数据和结果数据分析如图所示
联机写入的程序如下:
; //*************************************// ; // // ; // 微控器实验指令文件 // ; // // ; // By TangDu CO.,LTD // ; // // ; //*************************************//
; //** End Of Main Memory Data **//
$P 00 20 ;START:IN RO 从IN单元读入数据送RO $P 01 00 ;ADD RO,RO RO和自身相加,结果送RO $P 02 30 ;OUT RO RO的值送OUT单元显示 $P 03 E0 ;JMP START 跳转至00H地址 $P 04 00
$P 05 50 ;HLT 停机 ; //***** End Of Main Memory Data *****//
; //***** Start Of MicroController Data *****// $M 00 000001 ; NOP
$M 01 007070 ; CON(INS)->IR, P<1> $M 04 002405 ; R0->B $M 05 04B201 ; A加B->R0 $M 30 001404 ; R0->A $M 32 183001 ; IN->R0 $M 33 280401 ; R0->OUT $M 35 000035 ; NOP
; //** End Of MicroController Data **// 联机写入和校验后,得如下结果:
(1)从IN单元读入数据送至AR。首先,AR地址为00,计数器PC加1,机器指令代码送至MEM单元,MEM=20。
(2)MEM中的机器指令代码送至IR单元,再到控制器,进行译码操作。
CPU与简单模型机设计 实验报告汇总



