计算机组成原理专题实验.docx

上传人:飞****2 文档编号:78956155 上传时间:2023-03-19 格式:DOCX 页数:10 大小:638KB
返回 下载 相关 举报
计算机组成原理专题实验.docx_第1页
第1页 / 共10页
计算机组成原理专题实验.docx_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《计算机组成原理专题实验.docx》由会员分享,可在线阅读,更多相关《计算机组成原理专题实验.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、计算机组成原理专题实验课程设计方案学院:电信学院班级:计算机16学号:姓名:冯旭指导老师:姜欣宁提交日期:2014年4月1日设计目的通过对一个简单模型机的设计与实现,对计算机的基本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解。在掌握部件单元电路实验的基础上,进一步将其组成系统地构造一台基本模型计算机。指令集的设计1.机器位数及寻址特性及时间特性计划设计一个16位系统,提供256字的寻址空间和16个16位的通用寄存器。寻址方式提供立即数寻址、寄存器寻址和直接寻址3种方式。计划每条指令由两个机器周期完成(第一个机器周期取指令

2、,第二个机器周期执行指令),每个机器周期固定占4个时钟周期。2.指令类型计划提供16种指令,其中算逻类指令8条,其他类指令8条。指令采用类似MIPS的方式,即只能使用load和store指令来访问存储器,一切运算均在寄存器之间进行。同时由于所设计的系统是简化系统不含I/O设备,所以指令集中不提供I/O类指令。具体指令及其所采用的寻址方式,如下所示:非算逻类指令:指令名 指令格式 指令含义LOAD Load dr,addr 将地址addr中的数存入dr寄存器STORE Storedr,addr 将dr寄存器中的数写入地址addr所指的空间JMP Jmp addr 跳转到地址addrJNE Jne

3、 addr 若标志位z无效跳转到地址addrJC Jc addr 若标志位c有效跳转到地址addrNOP nop 空指令MOV Mov dr,sr 将sr寄存器中的值复制到sr寄存器MOVI Movi dr,imm 将8位立即数imm写入dr寄存器算逻类指令:ADD Add dr,sr 将dr寄存器中的值与sr寄存器中的值相加,结果存dr寄存器SUB Sub dr,sr 将dr寄存器中的值与sr寄存器中的值相减,结果存dr寄存器AND And dr,sr 将dr寄存器中的值与sr寄存器中的值按位做逻辑与,结果存dr寄存器OR Or dr,sr 将dr寄存器中的值与sr寄存器中的值按位做逻辑或,

4、结果存dr寄存器NOT Not dr 将dr寄存器中的值按位取反SHL Shl dr,sr 将dr寄存器中的值逻辑左移sr中值那么多位SHR Shr dr,sr 将dr寄存器中的值逻辑右移sr中值那么多位INC Inc dr 将dr寄存器中的值自增13.指令格式我们采用16位固定位指令格式,根据操作数寻址方式的不同,对这16位可以划分为两种不同的理解方式,即可以认为是提供两种相似的格式:其中操作码部分均为4位,占指令中15到12的高4位。DR和SR均为通用寄存器的编号,各占4位,ADDR/IMM部分为地址或立即数(8位)占指令中最低8位。根据指令中操作数的数量和寻址类型的不同选用不同的格式,其

5、主导思想为:1,涉及到地址和立即数的指令均采用第二类指令,若用不到dr(如jmp指令)则将dr部分置0不用;2,涉及到两个寄存器的指令均采用第一类指令,此时指令的低4位部分置0不用;3,对于操作数只设计一个寄存器的指令,均将寄存器号放在dr字段,则低8位不用。具体分配为:指令类型 采取格式无操作数指令(nop) 1单寄存器操作数指令(inc) 2单地址操作数指令(jmp) 2 寄存器-寄存器指令(adddr,sr) 1寄存器-立即数/地址指令(loaddr,addr) 2系统硬件电路的设计基本模块与时钟计划采用上一阶段设计完成的算逻部件ALU,寄存器组REGFILE,主存MM作为系统的3个基本

6、功能模块,并在本阶段再设计一个指令寄存器IR,一个程序计数器PC和一个控制部件CU。为了更好地访问主存,还需要设计存储器地址寄存器MAR和存储器数据寄存器MDR。利用这些基本模块通过一定的连接和控制逻辑来实现整个系统系统电路图的设计通过分析指令格式的设计,我们发现所有指令只有4个组成部分,分别为:(1)15到12位的操作码OP;(2)11到8位的目的寄存器号DR;(3)7到4位的源寄存器号SR;(4)7到0位的立即数或地址。可以在读到指令之后立即将它们分离出来,供给其他部件访问。这样一来原来需要保存到CU之中的操作码op也可以通过输入端的形式来向CU提供,从而又简化了CU的设计。为了快速地将提

7、取出来的寄存器号送到寄存器组RF的地址输入端上,可以采用专用通道加多路选择器的方式来完成,这样就可以在非常短的时间内为RF的ADDR端提供所需地址,同时还不占用总线。而代价仅仅是多了一个多路选择器的选择信号。本设计的特点是:采用了一条分时复用的地址/数据总线,各个器件的各个控制信号相互独立,采用多路选择器来完成数据的选通。另外,在将指令读到IR之后立即将它按指令格式中的规定,划分为几个部分,供其他部件快速访问主要部件的描述ALU的设计内设A和B两个16位寄存器,使用时须先将两个(一个)操作数通过W信号写入器件内部。在写入时,若选择信号SEL为0则表示写入到A寄存器,若选择信号SEL为1则表示写

8、入到B寄存器。数据的写入采用的是同步控制方式,即如公共特性说明部分提到的在W有效的CLK下降沿将数据打入器件。而结果的计算采用的是异步方式,只要使能信号有效就不断根据操作码OP和操作数寄存器的值来计算结果并通过输出端输出最新结果。MM、RF 这两个器件比较相似,它们的主要功能为根据地址端的信号输入将数据读出或写入。它们的控制信号只要EN、W、R和CLK,它们的数据输入和输出都是16位的,MM的地址输入是8位,二RF的地址输入是4位的。它们均采用按字编址方式。MAR、MDR这两个器件的实现完全一致,它们在本质上说是一个16位的锁存器。在使能信号有效时,它们可根据CLK和W信号的控制将输入端上的数

9、据打入到器件内部,并在输出端上输出它们。当使能信号变为无效时,输出将保持为在使能信号变为无效前最后一刻的输出,而不管其他控制信号和输入如何变化。PC 在写入和输出功能方面它与MAR和MDR器件完全一致。 PC器件的独特之处在于它还有一个“+1”信号,该信号可以让PC内部的计数器自增一,完成指向下一个地址的作用。它的控制方式和W信号类似,即在使能信号有效且“+1”信号有效的CLK下降沿完成动作。IRIR没有使能端,它的数据输入只需配合CLK和W信号即可。它的特点在于它可以它设置了4个输出端,分别是OP,DR,SR,IMM/ADDR,它们将器件中保存的指令按字段划分开来,供后续功能部件使用。这些输

10、出是异步的,即只要打入了新的指令,输出就会随之发生变化。OP对应指令的高四位,即15到12位;DR对于指令的次高四位,即11到8位;SR对于指令的次末四位,即7到4位;IMM/ADDR对应指令的末八位,即7到0位。MUX多路选择器的控制信号的名字均以MUX的首字母“M”开头并用下划线连接它所控制的功能部件名,例如MUX1_SEL是控制向MDR送数据的多路选择器的控制信号。设计中用到的多路选择器都是两输入的,所以控制信号只要一位就可以了,在图2中已用0和1标出了控制信号为0/1是选通的输入端是哪一个。另外当多路选择器的使能信号无效时,输出将保持在使能信号失效前最后一刻的输出。各多路选择器的输入输

11、出关系如下:多路选择器名 控制信号名 控制为0时对应的输入 控制为1时对应的输入MUX1 MUX1_SEL 总线 MM的Dout端MUX2 MUX2_SEL IMM/ADDR PCMUX3 MUX3_RF_SEL DR SR指令流程图及数据通路图指令流程图:开始取指令指令类型?非ALU指令ALU指令结束取指令周期分析:各个指令的取指令周期都是相同的:在T1周期,时钟上升沿时将PC的值放到总线上,并在时钟下降沿将总线上的值写入MAR。在T2周期,给主存使能和读出信号,将连接MDR输入端的多路选择器打到MM一段,并在时钟下降沿将线上的值打入MDR。在T3周期,将MDR的值放到总线上,并将总线上的值

12、写入IR。在T4周期将PC的值自增1。其数据通路如下存取数指令store 、load:在T1周期,将目的寄存器DR中寄存器地址给RF,并在同时,在总线上将IMM/ADDR寄存器的值打入MAR。在T2周期读出选中的寄存器中的值到总线上,并将总线上的这个值写入到MDR中。在T3周期根据MAR和MDR中的信息完成MM的写入。T4周期空置。取数指令load的执行周期和取指令周期的动作类似,区别在于地址是从IMM/ADDR寄存器输出而不是PC,数据最终写到寄存器组而不是指令寄存器IR。而关于寄存器组中具体寄存器地址的的给出与存数指令store相似。其数据通路如下:Load:Store:跳转类指令:这些指

13、令完成的就是一个PC的写入动作,写入的源可以是PC本身,也可以是指令中IMM/ADDR字段的值,区别在于在什么情况下写入,即状态寄存器PSW中值的情况(认为jmp指令直接得到肯定的判断结果)。执行过程为:在T1周期由CU根据情况对MUX2给出合适的选通信号。在T2周期,将MUX2出口处的数据写入到PC中。T3和T4周期空置。其数据通路如下:单操作数类算逻指令:考虑到多路选择器的输出是有延时的,而读命令又是上升沿触发的,所以给出寄存器组内地址和读取寄存器组中的数据不能放在同一个节拍内完成,应该分开。在T1周期,给出MUX3的控制信号,选中DR。在T2周期,在时钟上升沿读出寄存器中的值到总线上,在

14、时钟下降沿将总线上的值打入到ALU中,并进行运算。在T3周期,将ALU的输出引脚接到总线上,并将总线上的值打入到DR给出的寄存器中。T4周期空置。其数据通路如下:双操作数类算逻指令:从寄存器组中读出一个数需要2个节拍,写入一个数需要1个节拍,如果这样的话那么完成一个双操作数的算逻指令需要2+2+1=5个节拍,这超过了我们规定的4个节拍。经过分析可以发现,我们可以将取第二个操作数的第一拍和取第一个操作数的第二拍合并起来在一个节拍内完成。这是因为,R命令是在时钟上升沿作用的,而此时第二个操作数的地址还没有被MUX3给出,要等一会地址引脚的值才会变为新的值,而在此之前从寄存器组中读书的操作已经完成了

15、。所以这类命令的执行过程为:在T1周期,让MUX3给出SR的值。在T2周期,读出寄存器组输出的值到总线并写入到ALU的A寄存器,并让MUX3给出DR的值。在T3周期,读出寄存器组输出的值到总线并写入到ALU的B寄存器。在T4周期,将ALU计算的结果写回到寄存器组中(地址为DR的值)。其数据通路如下:设计总结通过紧张有序的课程设计实践,不仅让我对计算机的基本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与模型机的硬件结构和怎么去设计微程序等过程有了进一步的了解, 也让我觉得自己的动手能力有了很大的提高;自信心也增强了,在课程设计中自己动脑子解决遇到的问题,书本上的知识有了用武之地,这巩固和深化了自己的知识结构。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁