简单模型机的微程序设计-计算机组成原理课程设计_第1页
简单模型机的微程序设计-计算机组成原理课程设计_第2页
简单模型机的微程序设计-计算机组成原理课程设计_第3页
简单模型机的微程序设计-计算机组成原理课程设计_第4页
简单模型机的微程序设计-计算机组成原理课程设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机组成原理课程设计――简单模型机的微程序设计姓名班级学号指导老师二00九年十二月 目录一、课程设计的目的························································3二、课程设计的内容和要求············································3三、基本模型机的硬件结构············································3四、指令系统设计····························································5五、微程序设计································································5六、心得体会····································································13课程设计的目的通过课程设计更清楚地理解下列基本概念:计算机的硬件基本组成;计算机中机器指令的设计;计算机中机器指令的执行过程;微程序控制器的工作原理;微指令的格式设计原则。在此基础上设计可以运行一些基本机器指令的微程序的设计课程设计的内容和要求1.通过使用蒋君老师开发的微程序分析和设计仿真软件,熟悉本文介绍的为基本模型机而设计的微程序的执行过程。必须充分理解并正确解释下列问题:

⑴微程序中的微指令的各个字段的作用。哪些字段是不译码的,哪些字段是直接译码的,哪些字段又可以看成是字段间接编码的。

⑵微程序中的微指令是否是顺序执行的,如果不是,那么次地址是如何产生的。什么情况下,次地址字段才是将要执行的微指令的地址。

⑶在微程序中如何根据机器指令中的相关位实现分支,据此,在设计机器指令时应如何避免和解释其它指令的微指令的微地址冲突。

⑷哪些微指令是执行所有指令都要用到的。

⑸解释一条机器指令的微程序的各条微指令的微地址是否连续?在设计微程序时,要注意尽可能使整个微程序的地址空间连续,如何实现?⑹为什么读写一次内存总要用两条微指令完成?⑺机器程序中的用到的寄存器是R0,是由机器指令中哪些位决定的?如果要用R1或R2,是否要改写微程序或改写机器指令?如果要,应如何改写?

2.在原有5条机器指令的基础上增加实现下述各功能的机器指令,试设计相应的机器指令的格式并改写原来的微程序使其可以运行所有的机器指令。新增加的机器指令的功能是:寄存器间的数据传送指令MOVRD,RS:(RS)→(RD)减法指令SUBR0,(ADDR):(R0)-(addr)→(R0)与指令ANDRD,RS:(RS)AND(RD)→(RD)或指令ORRD,RS:(RS)OR(RD)→(RD)异或指令XORRD,RS:(RS)XOR(RD)→(RD)其中的RS、RD可以是R0、R1、R2中的任何一个。3.写出课程设计报告,解释自己的设计思想,比如,如何实现各指令的分支,如何重新安排各指令对应的微程序中的微指令的微地址,如何设计各微指令的编码。要求画出用微命令表示的微流程图并适当加以解释。基本模型机的硬件结构基本模型机的CPU及系统硬件组成如图1所示:图1模型机的CPU及系统硬件组成各部件的功能及控制信号如下:

运算器由算逻部件ALU(8位)、暂存器DR1、DR2及通用寄存器等组成。ALU的功能控制信号为S3、S2、S1、S0、M、CN,可以实现48种算术和逻辑运算功能,如图2所示。运算器为单总线结构,其输入端分别连接到暂存器DR1和DR2,其装入数据的微命令分别为LDDR1和LDDR2,当它们为1电平时由节拍脉冲T4将数据总线上的数据装入相应的暂存器。R0、R1、R2为通用寄存器。R0的装入数据的微命令为LDR0,R1的装入数据的微命令为LDR1,R2的装入数据的微命令为LDR2。299为实现移位运算的装置,当299B微命令有效时,其数据端和数据总线连接。控制器由程序计数器PC、指令寄存器IR、地址寄存器AR、时序电路、控制存储器及相应的译码电路组成。图274LS181功能表程序计数器PC的功能是存放下一条指令的地址,其输出是向地址寄存器提供要将执行的指令在存储器中的地址。在提供地址后立即加1,指向指令的下一个字节或下一条指令的地址。其控制微命令有三个。当LOAD=0而LDPC=1时,由T4的正跳变将数据总线上的数据装入PC;当当LOAD=1而LDPC=1时P1的内容加1;当PCB=1时,PC中的地址信息送到数据总线上。指令寄存器IR用于存放当前执行的指令。当微命令LDIR=1时,由节拍脉冲T3将数据总线上的数据装入。

地址寄存器AR存放要从存储器中读出的数据或指令的地址或要向存储器写入数据或指令的地址。当微命令LDAR=1时,由节拍脉冲T3将数据总线上的数据装入。存储器RAM用于存放程序和数据。当片选信号CE=0时,如果W/R为0,则根据AR中的地址,从存储器中读出数据并送到数据总线上;如果W/R为1,则根据AR中的地址,向存储器中写入数据总线上的数据。片选信号CE是由微指令中的有关字段(B1B0)译码产生的。模型机有两个外部设备:输入设备是置数开关SW,用于设置数据或地址,当微命令SWB=0时,设置的数据送到数据总线上;SWB也是由微指令中的有关字段(B1B0)译码产生的。输出设备是两位LED数码管,当微命令LEDB=1时,数据总线上的数据送到数码管显示。指令系统设计根据基本模型机的硬件设计机器指令:外设输入指令IN、二进制加法指令ADD、存数指令STA、输出到外设指令OUT、寄存器间的数据传送指令MOV、减法指令SUB、与指令AND、或指令OR、异指令XOR、无条件转移指令JMP。指令格式如下:助记符机器指令码说明

IN0000 ××R0;置数开关SW(KD0~KD7)的状态→R0

ADD addr0100RSRD××××××××;(RS)+(addr)→(RD)

STA addr0110 RS××××××××××;(RS)→(addr)

OUT addr0111 ××××××××××××;(addr)→输出设备"LED"MOV0010 RSRD;(RS)→(RD)SUBaddr1001RSRD××××××××;(RS)-(addr)→(RD)AND1000 RSRD ;(RS)AND(RD)→(RD)OR 1001 RSRD ;(RS)OR(RD)→(RD)XOR1010RSRD ;(RS)XOR(RD)→(RD)

JMPaddr1100 ××××××××××××;

addr→PC

说明:

指令IN、MOV、AND、OR、XOR为单字节指令,其余均为双字节指令,××××××××为要读写的主存储器单元的二进制地址码。机器指令码的前四位为各自不同的四位二进制码,可通过P1测试产生十个不同的地址。机器指令的后四位用于指定具体的寄存器,如00表示寄存器R0,01表示寄存器R1,10表示寄存器R2;机器指令的2~3位表示的是源寄存器,而机器指令的0~1位则表示的是目的寄存器。微程序设计用微命令表示的读写主存及十条指令的执行流程08010208ADDIN01SWB有效LDRiCE有效WR=0LDIRP(1)测试PCBLDAR08010208ADDIN01SWB有效LDRiCE有效WR=0LDIRP(1)测试PCBLDARLDPC010604010604MOVOUTSTAXORJMPSUBMOVOUTSTAXORJMPSUB0F0E0D0B0B0A0C090F0E0D0B0B0A0C09RSB有效LDRiPCBLDARLDPCRSB有效LDDR1RSB有效LDRiPCBLDARLDPCRSB有效LDDR1PCBLDARLDPCPCBLDARLDPCPCBLDARLDPCPCBLDARLDPC1B0713151A18031B0713151A1803RDB有效LDRiCE有效WR=0LDARRDB有效LDDR2RDB有效LDRiCE有效WR=0LDARRDB有效LDDR2CE有效WR=0LDARCE有效WR=0LDARCE有效WR=0LDADCE有效WR=0LDAR011019141601011019141601RDB有效LDDR1XORLDRiALUBRDB有效LDDR1XORLDRiALUBRSB有效CE有效WR=1CE有效WR=0LDDR1CE有效WR=0LDDR211171117CE有效WR=0LDDR20101ALUBLEDBALU=ACE有效WR=0LDDR20101ALUBLEDBALU=AWR=105RDB有效LDDR1RD12ADDLDRi12ADDLDRiALUBSUBLDRiALUBSUBLDRiALUB010101执行的操作是:PC→B,LDAR,允许PC加1(LDPC=1),转微地址:02执行的操作是:存储器CE有效,存储器读,LDIR,P(1)测试:NA(3~0)或(IR7~IR4),转微地址:08执行的操作是:输入开关SWB有效,LDR0,转微地址:01执行的操作是:PC→B,LDAR,允许PC加1(LDPC=1),转微地址:02执行的操作是:存储器CE有效,存储器读,LDIR,P(1)测试:NA(3~0)或(IR7~IR4),转微地址:0D执行的操作是:R0→B,LDR1,转微地址:1B执行的操作是:R1→B,LDR1,转微地址:01执行的操作是:PC→B,LDAR,允许PC加1(LDPC=1),转微地址:02执行的操作是:存储器CE有效,存储器读,LDIR,P(1)测试:NA(3~0)或(IR7~IR4),转微地址:09执行的操作是:PC→B,LDAR,允许PC加1(LDPC=1),转微地址:03执行的操作是:存储器CE有效,存储器读,LDAR,转微地址:04执行的操作是:存储器CE有效,存储器读,LDDR2,转微地址:05执行的操作是:R0→B,LDDR1,转微地址:06执行的操作是:算术:A+B,ALU→B,LDR0,转微地址:01执行的操作是:PC→B,LDAR,允许PC加1(LDPC=1),转微地址:02执行的操作是:存储器CE有效,存储器读,LDIR,P(1)测试:NA(3~0)或(IR7~IR4),转微地址:0A执行的操作是:PC→B,LDAR,允许PC加1(LDPC=1),转微地址:07执行的操作是:存储器CE有效,存储器读,LDAR,转微地址:10执行的操作是:存储器CE有效,存储器读,LDDR2,转微地址:11执行的操作是:R0→B,LDDR1,转微地址:12执行的操作是:算术:A减B,ALU→B,LDR0,转微地址:01执行的操作是:PC→B,LDAR,允许PC加1(LDPC=1),转微地址:02执行的操作是:存储器CE有效,存储器读,LDIR,P(1)测试:NA(3~0)或(IR7~IR4),转微地址:0B执行的操作是:PC→B,LDAR,允许PC加1(LDPC=1),转微地址:13执行的操作是:存储器CE有效,存储器读,LDAR,转微地址:14执行的操作是:存储器CE有效,写存储器,R0→B,转微地址:01执行的操作是:PC→B,LDAR,允许PC加1(LDPC=1),转微地址:02执行的操作是:存储器CE有效,存储器读,LDIR,P(1)测试:NA(3~0)或(IR7~IR4),转微地址:0C执行的操作是:PC→B,LDAR,允许PC加1(LDPC=1),转微地址:15执行的操作是:存储器CE有效,存储器读,LDAR,转微地址:16执行的操作是:存储器CE有效,存储器读,LDDR1,转微地址:17执行的操作是:算术:A,数码管LEDB有效,写LED,ALU→B,转微地址:01执行的操作是:PC→B,LDAR,允许PC加1(LDPC=1),转微地址:02执行的操作是:存储器CE有效,存储器读,LDIR,P(1)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论