编辑: wtshxd | 2016-03-13 |
实践:计算机学院科学系实验中心提供计算机、实验的软硬件平台.到实验中心硬件平台验证设计结果. 要求完成主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1、基本模型机系统分析与设计,利用所学的计算机组成原理课程中的知识和提供的实验平台完成设计任务,从而建立清晰完整的整机概念.
2、根据课程设计题目要求,编制实验所需的程序,上机测试并分析所设计的程序.
3、课程设计的书写报告应包括: (1)课程设计的题目.(2)设计的目的及设计原理. (3)根据设计要求给出模型机的逻辑框图. (4)设计指令系统,并分析指令格式. (5)设计微程序及其实现的方法(包括微指令格式的设计,后续微地址的产生方法以及微程序入口地址的形成). (6)模型机当中时序的设计安排.(7)设计指令执行流程. (8)给出编制的源程序,写出程序的指令代码及微程序. (9)说明在使用软件HKCPT的联机方式与脱机方式的实现过程(包括编制程序中每指条令的时序分析,累加器A和有关寄存器、存储器的数据变化以及数据流程). (10)课程设计总结(设计的特点、不足、收获与体会). 时间安排: 设计时间一周: 周1:熟悉相关资料. 周2:系统分析,设计. 周3周4:编程并上实验平台调试 周5:撰写课程设计报告. 设计报告书收取时间:20周的星期五下午5:00之前. 指导教师签名:年月日系主任(或责任教师)签名:年月日目录 封面.1) 课程任务设计书.2) 设计目的与原理.4) 设计整机逻辑框图.5) 设计指令系统,并分析指令格式.6) 设计微程序及其实现方法.7) 设计实验平台运行中时序安排.8) 设计指令执行流程.9) 给出编制的源程序,写出程序的指令代码及微程序.10) 10.课程设计总结.15) 11.附录.17) 12.参考文献.21) 加减法指令的实现 1.设计目的与原理 1.1设计目的 1.1.1目的1: 基本模型机系统分析与设计,利用所学的计算机组成原理课程中的知识和提供的实验平台完成设计任务,从而建立清晰完整的整机概念. 目的2: 熟悉指令系统的周期,掌握指令执行流程,利用计算机学院科学系实验中心提供计算机、实验的软硬件平台.到实验中心硬件平台验证设计结果. 目的3: 通过使用软件HKCPT,了解程序编译,加载的过程.通过微单步,单拍调试,理解模型机中的数据流向. 1.2设计原理 1.2.1设计总框架 CPU每取出并执行一条指令所需的全部时间称为指令周期,也即CPU完成一条指令的时间. 在各个模块实验中,各模块的控制信号都是由实验者手动模拟产生的.而在真正的实验系统中,模型机的运行是在微程序的控制下进行的,可实现特定指令的功能.在本实验平台中,模型机从内存中取出、解释、执行机器指令都将由微指令和与之相配合的时序来完成,即1条机器指令对应1个微程序. 本实验平台内采用的是8位数据总线和8位地址总线方式,在设计指令系统时,应考虑指令类型、寻址方式和编码方式. 根据模型机整机逻辑图和目前硬件条件来设计指令系统中每条指令的执行流程.在每个系统中,一条指令从取出到执行完毕,需要若干个机器周期,任何指令中都必须有一个机器周期作为 取指令周期 ,称为公操作周期.而一条指令共需几个机器周期取决于指令在机器内实现的复杂程度. 指令系统功能表 图(1) 2.设计整机逻辑框图 根据设计要求,对实验仪硬件资源进行逻辑组合,便可设计出该模型机的整机逻辑框图.图(2)所示的是较典型的实验计算机整机逻辑框图. 图(2) 整机逻辑框图 简单的模型计算机是由算术逻辑运算单元,微程序单元,堆栈寄存器单元,累加器,启停单元,时序单元,总线和存储器单元组成的. 在模型机中,将要实现RAM的读/写指令,寄存器的读/写指令,跳转指令,ALU的加,减,与,或指令.把通用寄存器作为累加器A,进行左、右移等指令,整体构成一个单累加器多寄存器的系统. 设计指令系统,并分析指令格式 3.1设计指令系统 本实验平台内采用的是8位数据总线和8位地址总线方式,在设计指令系统时,应考虑有哪几种类型的指令,哪几种寻址方式和编码方式. 指令类型 算术/逻辑运算类指令(ADD A ,Ri, SUB A ,Ri) 存储器操作类指令 (LDA addr STA addr) 2.操作数寻址方式及编码 (1)直接地址寻址 例如,双字节指令: LDA addr , STA addr (2)寄存器直接寻址 指令字节中含有寄存器选择码,决定选哪个寄存器进行操作. 例如,单字节指令: MOV A ,Ri 例如,双字节指令: MOV Ri , #data (3)寄存器间接寻址 例如,单字节指令: MOV A ,@Ri (4)立即数寻址 例如,MOV A,#data MOV Ri, #data 3.2分析指令格式 直接地址寻址 LDA addr STA addr 第1字节 操作码 第2字节 操作数地址addr 寄存器直接寻址 MOV A , Ri 单字节 操作码与Ri选择码 MOV Ri , #data 第1字节 操作码及Ri选择码 第2字节 Data 4.设计微程序及其实现方法 表(3)按操作码散转表 在本实验平台的硬件设计中,采用24位微指令,若微指令采用全水平不编码纯控制场的格式,那么至多有24个微操作控制信号,可由微代码直接实现. 如果采用多组编码译码,那么24位微代码通过二进制译码可实现个互斥的微操作控制信号. 由于模型机指令系统规模较小,功能也不太复杂,所以采用全水平不编码纯控制场的微指令格式.在模型机中,用指令操作码的高4位作为核心扩展成8位的微程序入口地址MD0~MD7,这种方法称为 按操作码散转 ,如表(3)所示. 每条指令由不超过4条的微指令组成,那么可根据表(4)组成每条微程序的首地址. 表(4)微地址首地址表 微指令的运行顺序为下地址确定法,即采用计数增量方法,每条微指令执行过后微地址自动加1,指向下一条微指令地址.微地址寄存器由2片74LS161组成,在模型机停止状态下,微地址被清零.当实验平台开始运行时,微地址从00H开始运行.且00H放置一条取指指令,根据程序开始地址从内存中读出第一条指令.如下表所示: (图5)存储器的内容 5.设计实验平台运行中时序安排 由于模型机已经确定了指令系统,微指令采用全水平不编码纯控制场的格式,微程序的入口地址采用操作码散转方式,微地址采用计数增量方式,所以可确定模型机中时序单元所产生的每一拍的作用. 在本实验中为了让实验者更好地观察实验的各个中间过程各寄存器的值,由监控单元产生一个PLS-O的信号来控制时序产生.PLS-O信号经过时序单元的处理产生了4个脉冲信号.4个脉冲信号组成一个微指令周期,为不同的寄存器提供工作脉冲. PLS1 微地址寄存器的工作脉冲,用来设置微程序的首地址及微地址加1. PLS2 PC计数器的工作脉冲,根据微指令的控制实现PC计数器加1和重置PC计数器(跳转指令)等功能. PLS3 把24位微指令打入3片微指令锁存器. PLS4 把当前总线上的数据打入微指令选通的寄存器中. (图6)微指令时序图 6.设计指令执行流程 根据模型机整机逻辑图和目前硬件条件来设计指令系统中每条指令的执行流程.在每个系统中,一条指令从取出到执行完毕,需要若干个机器周期,任何指令中都必须有一个机器周期作为 取指令周期 ,称为公操作周期.而一条指令共需几个机器周期取决于指令在机器内实现的复杂程度. 对于微程序控制的计算机,在设计指令执行流程时,要保证每条微指令所含的微操作的必要性和合理性,还应知道总线IAB,IDB,OAB,ODB仅是传输信号的通路,没有寄存信息的功能,而且必须保证总线传输信息时信息的唯一性. 取指微指令执行过程如下. 在模型机处于停机状态时,模型机的微地址寄存器被清零,微指令锁存器输出无效(为高电平).在处于停机状态时,脉冲PLS1对微地址寄存器(74LS161)无效,微地址寄存器保持为零.脉冲PLS2对PC计数器无效,同时PLS2把HALT=1打入启停单元的运行状态寄存器(74LS74)中,把模型机置为运行状态,使微程序锁存器输出有效.PLS3把微程序存储器00H单元(00H单元存放着取指微指令)的内容打入微指令锁存器中,并且输出取指微指令.PLS4把从程序存储器读出的数据打入指令寄存器中. 在模型机处于运行状态时,脉冲PLS1将微地址寄存器(74LS161)加1,脉冲PLS2将PC计数器加1,PLS3把微程序存储器的微指令打入微指令锁存器并且输出.PLS4把当前总线上的数据打入当前微指令所选通的寄存器. 7.给出编制的源程序,写出程序的指令代码及微程序 7.1编制的源程序 MOV A , #45 MOV R0 , #96 ADD A , R0 MOV R1 , #43 SUB A , R1 STA