您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 3计算机组成与原理设计
第一章实验计算机的设计1.1设计总要求研制一台性能如下的实验计算机:1.具有键盘和打印机两种外部设备。2.运算器采用多累加器结构。3.操作数寻址方式有:累加器直接寻址;累加器间接寻址;直接地址寻址;立即数寻址。4.指令系统由16条指令组成5.能执行将键盘输入的两个一位十进制数相乘并打印出算式。如:3x4=121.2设计指令系统指令系统是计算机中所有指令的集合,要研制一台实验计算机就必须设计好该计算机的指令系统。由总要求可知,该计算机的指令系统由16条指令组成,从而得出该计算机包括哪几种类型的指令,指令操作数有哪几种寻址方式和指令编码。一、指令类型构成该计算机指令系统的16条指令可分为以下几种类型:1.算术/逻辑运算类指令2.移位操作类指令3.数据传送类指令4.程序跳转控制类指令5.存储器操作类指令6.输入输出类指令二、指令操作数寻址方式及编码根据FD-CES提供的硬件条件,对于运算器采用多累加器结构的实验计算机,其指令系统操作数寻址方式有很多种,但本设计只采用其中的四种:累加器直接寻址、累加器间接寻址、直接地址寻址、立即数寻址。本计算机指令系统中的指令格式为(1)单字节指令格式为:I7I6I5I4I3I2I1I0(2)OPAiOPAj(2)双字节指令格式为:第一字节第二字节I7I6I5I4I3I2I1I01.直接地址寻址例:双字节指令LDAiaddr;(addr)→Ai指令第一字节低3位和指令第二字节8位构成11位操作数地址,指令第一字节高5位含有累加器Ai选择码段。操作码,Bx选择←11位形式地址→2.累加器直接寻址例:单字节指令MOVAi,Aj;(Aj)→Ai指令(第一个)字节含有两个累加器选择码段,分别用于选择Ai和Aj。3.累加器间接寻址例:单字节指令MOVAi,@Aj;(0XX(Aj))→Ai指令(第一个)字节含有两个累加器选择码段,而且低3位0XX决定访内地址高OPAi或OPaddrHaddrL/data←含操作码及Ai选择码,选择码Aj→3位(页面号),Ai的内容决定访内地址低8位(页内地址)。Aj选择码0XX←含操作码及Ai选择码→←页面号→④立即数寻址例:双字节指令MOVAi,#data;Data→Ai指令第一字节中含有一个累加器选择码段。第一字节第二字节d7d6d5d4d3d2d1d0←操作码及Ai选择码→←8位立即数data→三、编码内存地址高3位由Aj编号(0,1,2,3)决定,低8位由Aj内容决定:既:j=0时,内存地址为000-0FFH;j=1时,内存地址为100-1FFH;j=2时,内存地址为200-2FFH;j=3时,内存地址为300-3FFH.注入当a10=0时,访问内存,a10=1时,访问外设。表1.1指令及编码指令编码指令助记符指令功能第一字节第二字节I7I6I5I4I3I2I1I0000Ai0AjADDAi,Aj(Ai)+(Aj)→Ai000Ai1AjSUBAi,Aj(Ai)-(Aj)→Ai001Ai0AjANDAi,Aj(Ai)∧(Aj)→Ai001Ai1AjCMPAi,Aj(Aj)→Ai010Ai0AjMOVAi,@Aj((Aj))→Ai(注1)010Ai1AjRRCAi,Aj带进位Aj内容右移一位送Ai011Ai0AjMOV@Ai,Aj(Ai)→Aj(注1)011Ai1AjINCAi,Aj(Aj)+1→Ai100Aia10a9a8a7-a0LDAi,addr(addr)→Ai(注2)101Aia10a9a8a7-a0STAi,addr(Ai)→addr(注2)11000a10a9a8a7-a0JCaddr若标志C=1则addr→PC11001a10a9a8a7-a0JZaddr若标志Z=1则addr→PC若(A0)=1则addr→PCa7-a0JA0addr若(A0)=1则addr→PC11010a10a9a8a7-a0JMPaddraddr→PC111Ai000a7-a0MOVAi,#datadata→PC11111111HALT置0,RUN1.4设计指令执行流程众所周知,一条指令从内存取出到执行完,需要若干个机器周期(节拍)。任何指令的第一个机器周期都是“取指令周期”,而一条指令共需几个机器周期取决于指令在机内实现的复杂程度。对于微程序控制的计算机设计指令执行流程时,要保证每条微指令所含微操作的必要性和合理性,防止微操作之间有时序冲突,为此要分析:*哪些微操作信息可以安排在同一条微指令中;*哪些微操作信息必须安排在同一条微指令中;*哪些微操作信息不能安排在同一条微指令中。下面根据实验计算机整机逻辑图来具体设计指令系统中每条指令的执行流程。⒈单字节指令ADDAi,Aj该指令功能为(Ai)+(Aj)→Ai,需执行如下微操作:PCOB1①(PC)———→IAB———→OAB根据PC访问内存。RCB2,B3CI,GI②(M)———→ODB—————→IDB—————→R1读出指令字节送IR1。P+1,CK③(PC)+1———————→PCIPC加1计数,为取下条指令字节准备。RR,A,BCG④(Ai)—————→IDB—————→ACT读Ai,经IDB送入ACT,为ALU准备好被加数。RR,A,BCT⑤(Aj)—————→IDB—————→TMP读Aj,经IDB送入TMP,为ALU准备好加数。OT,A,B,RR,Cn,M,S3,S2,S1,S0⑥(ACT)+(TMP)———————————————→AALU执行加法,结果暂存到累加器A。SA,SB,C⑦Cn+4—————————→CY据加法结果置进位标志CY。OBWR,A,B⑧(A)—————→IDB—————→Ai累加器内容经BUF、IDB存入Ai。其中,①②必须同一拍;⑤⑥也必须同一拍;⑤后可以和⑥⑦同一拍(这是TMP设置为直通,CT=1,OT=0),但不可以和④同一拍;④单独一拍;③可以和①②合一拍或与④合一拍。具体方案如下:T0(第一拍):①②③T1(第二拍):④T2(第三拍):⑤⑥⑦T3(第四拍):⑧2.单字节指令ADDAi,Aj该指令功能为(Ai)+(Aj)→Ai,需执行如下微操作:PCOB1①(PC)———→IAB———→OAB根据PC访问内存。RCB2,B3CI,GI②(M)———→ODB—————→IDB—————→R1读出指令字节送IR1。P+1,CK②(PC)+1———————→PCIPC加1计数,为取下条指令字节准备。RR,A,BCG④(Ai)—————→IDB—————→ACT读Ai,经IDB送入ACT,为ALU准备好被加数。RR,A,BCT⑤(Aj)—————→IDB—————→TMP读Aj,经IDB送入TMP,为ALU准备好加数。OT,A,B,RR,Cn,M,S3,S2,S1,S0⑥(ACT)-(TMP)———————————————→AALU执行减法,结果暂存到累加器A。SA,SB,C⑦Cn+4—————————→CY据加法结果置进位标志CY。OBWR,A,B⑧(A)—————→IDB—————→Ai累加器内容经BUF、IDB存入Ai。其中,①②必须同一拍;⑤⑥也必须同一拍;⑤后可以和⑥⑦同一拍(这是TMP设置为直通,CT=1,OT=0),但不可以和④同一拍;④单独一拍;③可以和①②合一拍或与④合一拍。具体方案如下:T0(第一拍):①②③T1(第二拍):④T2(第三拍):⑤⑥⑦T3(第四拍):⑧⒊单字节指令ANDAi,Aj该指令功能为(Ai)∧(Aj)→Ai,需执行如下微操作:PCOB1①(PC)———→IAB———→OAB根据PC访问内存。RCB2,B3CI,GI②(M)———→ODB—————→IDB—————→R1读出指令字节送IR1。P+1,CK③(PC)+1———————→PCIPC加1计数,为取下条指令字节准备。RR,A,BCG④(Ai)—————→IDB—————→ACT读Ai,经IDB送入ACT,为ALU准备好一个逻辑与操作数。RR,A,BCT⑤(Aj)—————→IDB—————→TMP读Aj,经IDB送入TMP,为ALU准备好另一个逻辑与操作数。OT,A,B,RR,Cn,M,S3,S2,S1,S0⑥(ACT)∧(TMP)———————————————→AALU执行逻辑与操作,结果暂存到累加器A。OBWR,A,B(A)—————→IDB—————→Ai累加器内容经BUF、IDB存入Ai。其中,①②必须同一拍;⑤⑥也必须同一拍;⑤不可以和④同一拍;④单独一拍;③可以和①②合一拍或与④合一拍。具体方案如下:T0(第一拍):①②③T1(第二拍):④T2(第三拍):⑤⑥T3(第四拍):⑦⒋单字节指令CMPAi,Aj该指令功能为(Aj)→Ai,需执行如下微操作:PCOB1①(PC)———→IAB———→OAB根据PC访问内存。RCB2,B3CI,GI②(M)—————→ODB—————→IDB—————→IR1读出指令字节送IR1。P+1,CK③(PC)+1-—————→PCIPC加1计数,为取下条指令字节准备。RR,A,BCT④(Aj)—————→IDB—————→IR2读Aj,经IDB送入IR2。RCB2,B3WR,A,B⑤(M)————→ODB—————→IDB—————→Ai从内存读出操作数送入Ai。P+1,CK(PC)+1———————→PCIPC加1计数,为取下条指令字节准备。其中,①②必须同一拍;⑤⑥也必须同一拍;⑤不可以和④同一拍;④单独一拍;③可以和①②合一拍或与④合一拍。具体方案如下:T0(第一拍):①②③T1(第二拍):④T2(第三拍):⑤⑥⒌单字节指令MOVAi,@Aj,该指令功能为(I2,I1,I0(Aj))→Ai,需执行如下微操作:PCOB1①(PC)————→IAB————→OAB根据PC访问内存。RCB2,B3CI,GI②(M)————→ODB————→IDB——————→IR1取出本指令字节送IR1。P+1,CK③(PC)+1——————→PCIPC加1,为取下一条指令字节准备。RR,A,BCT④(Aj)————→IDB————→IR2读Aj,经IDB送入IR2。OIB1⑤I2,I1,I0(IR2)————→IAB————→OAB由IR1低3位和IR2的8位形成11位操作数地址。RCB2,B3WR,A,B⑥(M)————→ODB——————→IDB————→Ai从内存读出操作数送入Ai。其中,①②必须同一拍;④须一拍;⑤⑥也必须同一拍;③可以单独一拍或和①②合一拍或者和④合一拍。具体方案如下:T0(第一拍):①②③T1(第二拍):④T2(第三拍):⑤⑥⒍单字节指令RRCAi,Aj,该指令功能为Aj内容带进位CY右移一位送Ai和CY,需执行如下微操作:PCOB1①(PC)————→IAB————→OAB根据PC访问内存。RCB2,B3CI,GI②(M)————→ODB————→IDB————→IR1取出本指令第一字节送IR1。P+1,CK③(PC)+1——————→PCIPC加1,为取本指令下一字节准备。RR,A,BCT④(Aj)——————→IDB————→TMP读Aj,经IDB送入TMP,为ALU准备好加数。OT,/Cn,MS3,S2,S1,S0,X0,X1,CA⑤TMP————————————————→ATMP内容经ALU存入A。X0,X1,CA,SA,SB,CP⑥(A),CY————————————————→A,CY控制累加器A内容带进位CY右移一位(CY移入A7,移出的A0送AY)。OBWR,A,B⑦(A)————→IDB————→Ai累加器内容经BUF、IDB存入Ai。其中,①②必须同一拍;③可以单独一拍或和①②合一拍或者和④合一拍;⑤和④合一拍但不可和⑥合一拍。具体方案如下:T0(第一拍):①②③T1(第二拍):④⑤T2(第三拍):⑥T3(第四拍):⑦⒎单字节指令MOV@Ai,Aj,该指令功能为(Aj)→@Ai,需执行如下微操作:PCOB1①(PC)————→IAB————→OAB根据PC访问内存。RCB2,B3CI,GI②(M)——
本文标题:3计算机组成与原理设计
链接地址:https://www.777doc.com/doc-5945737 .html