《计算机组成原理设计课程设计报告.doc》由会员分享,可在线阅读,更多相关《计算机组成原理设计课程设计报告.doc(34页珍藏版)》请在三一办公上搜索。
1、目录1 可行性分析11.1实验系统的组成11.2 微指令格式分析11.3 指令译码电路分析21.4 寄存器组分析41.5 时钟信号分析52 概要设计62.1 指令系统风格62.2 数据类型62.3 存储器的划分72.4 寻址方式72.5 指令格式72.6 指令功能类型72.7 微指令流程框架83 详细设计93.1 指令系统与指令的分类93.2控制台设计133.3微程序设计143.4微程序流程233.5 二进制代码表234 实现测试254.1接线图254.2加法测试程序265 心得体会316 参考文献321 可行性分析1.1实验系统的组成本设计采用的实验系统为一个最基本的八位模型计算机,其完整数
2、据通路如图2.1所示,ALU算术逻辑部件,R0,R1,R2为通用寄存器,AR为地址寄存器,PC为程序计数器,IR 为指令寄存器,MEM为存储器,INPUT为输入设备,OUTPUT为输出设备,时序为时序发生器,微控器为微程序控制器。我们将算术逻辑运算器、微程序控制器、寄存器、内部总线等部件连接起来构成一个CPU,然后加上存储器、输入设备、输出设备即可构成一个完整的模型计算机。图1.1 八位模型机的完整数据通路图1.2 微指令格式分析表1-1 微指令格式242322212019181716151413121110987654321S3S2S1S0MCnWEA9A8ABCA5A4A3A2A1A0微代
3、码定义:微指令字长共24位,其中字段2419控制运算器的控制端,通过改变S3CN来决定对数据进行何种算术或逻辑运算;157为A、B、C三个开关控制端;61(A5A0)为6位的后续微地址。A、B、C三个译码字段解释如下:表1-2 A字段 表1-3 B字段 表1-4 C字段 A字段中的RS-B、RD-B、RI-B分别为目的源寄存器选通信号、目的寄存器选通信号及变址寄存器选通信号,其功能是根据机器指令来进行三个工作寄存器R0、R1及R2的选通译码。B字段中的RS-B、RD-B、RI-B分别为目的源寄存器选通信号、目的寄存器选通信号及变址寄存器选通信号,其功能是根据机器指令来进行三个工作寄存器R0、R
4、1及R2的选通译码。 C字段中的P(1)P(4)是四个测试字位,其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现微指令的顺序、分支、循环运行。 1.3 指令译码电路分析 指令译码电路工作原理图如下: 图1.2 指令译码原理图 根据指令译码电路图得出总的逻辑方程表达式:SE5=(FC+FZ)T4P(3) SE4=I7T4P(1) SE3=I6T4P(1)SE2=(I5P(1)+I3P(2)+SWBP(4)T4SE1=(I4P(1)+I2P(2)+SWAP(4)T4 各种情况下的逻辑方程表达式:(说明:所有情况T4都有效即T4=0)A. P(1)=0(有效) P(2
5、)、P(3)、P(4)=1(无效)SE5=(FC+FZ)T4P(3) =1 SE4=I7T4 = I7 SE3=I6T4 = I6SE2=I5T4 = I5 SE1=I4T4 = I4B.P(2)=0(有效) P(1)、P(3)、P(4)=1(无效)SE5=(FC+FZ)T4P(3) =1 SE4=I7T4 P(1) =1SE3=I6T4P(1) = 1 SE2=I3T4 = I3 SE1=I2T4 = I2C.P(3)=0(有效) P(1)、P(2)、P(4)=1(无效)SE5=(FC+FZ)T4 =(FC+FZ) SE4=1 SE3=1 SE2=1 SE1=1D.P(4)=0(有效) P(
6、1)、P(2)、P(3)=1(无效)SE5=1 SE4=1 SE3=1 SE2=T4SWB = SWB SE1=T4SWA = SWA 以上方程可以汇成下表: 表1-5 有效信号表:“0”表示有效,“1表示无效;I7、I6、I5、I4、I3、I2为机器指令前六位;SE5SE1表示能够强置入口地址的后五位;SWA、SWB为控制台开关;FC、FZ分别为进位标志、判零标志。P(1)P(2)P(3)P(4)SWASWBSE5SE4SE3SE2SE10111111I7I6I5I4101111111I3I2110111FC+FZ1111111011111SWASWB1.4 寄存器组分析 寄存器组控制电路图
7、如下: 图1.3 寄存器控制图A、将数据写入R0、R1、R2,LDRi低电平有效。其对应关系如下表:表1-6 “0”表示低电平,“1”表示高电平;。LDRiI1I0LDR0000LDR1001LDR2010B、从R0、R1、R2中输出,RS-B、RD-B、RI-B低电平有效。表1-7 RS-B、RD-B、RI-B为寄存器的输出开关;I3、I2对寄存器进行选择,决定从哪个寄 存器输出指令。RD-B有效RS-BRD-BRI-BI1 I0R0-B1010 0R1-B1010 1R2-B1011 0RS-B有效RS-BRD-BRI-BI3 I2R0-B0110 0R1-B0110 1R2-B0111
8、0110X X1.5 时钟信号分析 表1-8:时钟信号T1、T2、T3、T4有效时,分别对应的有效部件和控制信号,以及各自的微操作,除有效信号外,还有无效信号所对应的有效部件、控制信号和微操作。时钟 有效部件 控制信号 微操作T1有效 编程单元PROM(编程)将代码写入存储器2816中READ(校验)对写入控制存储器中的代码进行验证RUN(运行)根据入口地址,执行微程序T2有效IR、AR寄存器 CLRT2时刻,将微地址打入微地址寄存器;CLR有效,将微指令打入微指令寄存器T3有效IR(74273)AR(74273)LDIR,LDARLDIR有效时,将指令打入IRLDAR有效时,将地址打入ART
9、4有效DR1,DR2,PC(74161),R0,R1,R2,74299,指令译码LDDR1,LDDR2,LDR0LDR1,LDR2,LDPC(1)LDDR1,LDDR2有效时,将数据打入DR1,DR2中;(2)LDR0,LDR1,LDR2有效时,将数据加载到R0,R1,R2中;(3)LDPC有效时,将数据加载到PC中;(4)进行指令译码时,产生强置信号SE5SE0,对微地址进行修改时钟无关信号MEM(6116)OUTPUTINPUTR0(74373)R1(74374)R2(74374)PC(74161)299-B,R0-B,R1-B,R2-B,SW-B,LED-B,W/R,CE,PC-B,LD
10、PC,ALU-BR0-B:将R0中的数据打入总线;R1-B:将R1中的数据打入总线;R2-B:将R2中的数据打入总线;SW-B:输入开关,将输入值打入总线;CE:存储器有效开关;ALU-B:将运算结果打入总线;LDPC:将数据加载入PC2 概要设计2.1 指令系统风格 寄存器存储器 2.2 数据类型 数据类型:二进制八位无符号整型数 范围: (二进制)0000000011111111即(十进制)02552.3 存储器的划分2.4 寻址方式 立即数寻址JMP、BNE直接寻址ADD、SB、LB、OUT寄存器寻址IN2.5 指令格式单字节IN、HALT、NOP双字节LB、SB、ADD、OUT、JMP
11、三字节BNE2.6 指令功能类型 算术/逻辑运算ADD存储器的访问SB、LB程序流控制BNE、JMP、HALT、NOP输入/输出IN/OUT2.7 微指令流程框架P(1)、P(2)、P(3)、P(4)的分支判断如下:A、P(1)分支: P(1)分支(有效) B.P(2)分支: P(2)分支(有效)C.P(3)分支: P(3)分支(有效)D.P(4)分支: P(4)分支(有效)3 详细设计3.1 指令系统与指令的分类 完整的指令系统表1:指 令分 类助记符指令格式功能格式寻址方 式输 入IN R00000R07 4 3 2 1 0R0INPUTDEVICER寄存器寻址输 出OUT addr010
12、1ddr15 12 11 10 9 8 7 0R0 addrI直接寻 址算术/逻辑运算ADD R0,R0,addr0001R0R0addr15 12 11 10 9 8 7 0R0 R0+addrI直接寻 址存 储器 访问SB R0,addr0010R0addr15 12 11 10 9 8 7 0addrR0I直接寻 址LBR0,addr0111R0addr15 12 11 10 9 8 7 0R0 addrI直接寻 址程 序流 控制BNE R0,addr, lable0011R0addrlable23 20 1918171615 8 7 0if (R0!=addr)PC lableT立即数
13、寻址JMP lable1000lable15 12 11 10 9 8 7 0PC lableI立即数寻址HALT01107 4 3 2 1 0中止运行RNOP10007 4 3 2 1 0空操作R表3-1完整的指令系统表2指 令分 类助记符操作码(八进制)入口地址机器指令码(二进制)输 入IN R000002000000000输 出OUT addr01012501010000 xxxxxxxx算术/逻辑运算ADD R0,R0, addr00012100010000 xxxxxxxx存储器访问SB R0,addr00102200100000 xxxxxxxxLB R0,addr01112701
14、110000 xxxxxxxx程序流控制BNE R0,addr, lable00112300110000 xxxxxxxxxxxxxxxxJMP lable10003010000000 xxxxxxxxHALT01102601100000NOP10013110010000把表3-2 opcode rs rd7 4 3 2 1 0双字节Iopcode rs rd addr15 12 11 10 9 8 7 0三字节T opcode rs rd addr1 addr223 20 19 18 17 16 15 8 7 0其中:opcode为操作码,rs为源寄存器,rd为目的寄存器,addr为地址。
15、微地址入口形成表如下: 表3-3 :P(1)有效,SE6=1,SE5=1固定不变,I7I4决定强置端 SE4SE1,从而决定入口地址,当微地址为00,20,40,60(八进制)时,入口地址可强置实现16条分支。 微地址 I7I4SE6 SE5 SE4SE1 入口地址 (八进制) 010000(20) 0000 1 1 1111 010000 0001 1 1 1110 010001 0010 1 1 1101 010010 0011 1 1 1100 010011 0100 1 1 1011 010100 0101 1 1 1010 010101 0110 1 1 1001 010110 01
16、11 1 1 1000 010111 1000 1 1 0111 011000 1001 1 1 0110 011001 1010 1 1 0101 011010 1011 1 1 0100 011011 1100 1 1 0011 011100 1101 1 1 0010 011101 1110 1 1 0001 011110 1111 1 1 0000 0111113.2控制台设计 表3.1 控制台程序表:PC计数器在用清零开关CLR清零后,通过控制台开始进行机器指令的读写和执行 控制台指令 SWB SWA 入口地址 说明 KWE 0 1 100001 写内存 KRD 0 0 100000
17、 读内存 RP 1 1 100011 启动程序。控制台流程图如下: 图3.1 控制台流程图: 此处将00Q的后继地址设为40Q (即100000)。此时只有P(4)有效,即P(4)=0,P(1)=P(2)=P(3)=1。3.3微程序设计3.3.1微程序框架: 3.3.2 各条微程序的详细设计:A、公操作微操作有 效 位微 地 址 微代码A5A0 说明S3A9 A8 A B C ARPC, PC+1LDARPC-BLDPC 01000 000 011110110110 02PC打入AR,且PC自增BUSRAM,ARBUSLDAR 02OOO OOO O11100100100 20将AR中对应的指
18、令打入IR公操作取指令,指定下一步进行的微程序指令 B、IN 输入操作 微操作有 效 位微 地 址 微代码A5A0 说明S3A9 A8 A B CR0SW LDRi 20000 000 000001000000 01R0INPUT22IN指令INPUT DEVICER0,LDRi有效C、SB 存储器的访问微操作有 效 位微 地 址 微代码 A5A0 说明S3A9 A8 A B C ARPC, PC+1LDARPC-BLDPC 22000 000 011110110110 07PC打入ARPC指向下一地址BUSRAM,ARBUSLDAR 07000 000 001110000000 10将AR中
19、地址对应的内容打入ARBUSR0,RAMBUSRS-B 10000 000 101 000 001 000 01将R0中的内容打入AR地址对应的RAM中 存储R0ADDRD、ADD算术运算微操作有 效位微地址微代码A5A0说明S3A9 A8 A B CARPC, PC+1LDARPC-BLDPC 21000000011110110110 03PC打入ARPC指向下一地址BUSRAM,ARBUSLDAR 03000000001110000000 04将AR中对应的内容打入ARBUSRAM,DR2BUSLDDR2 04000000001011000000 05将AR对应的内容打入DR2DR1R0L
20、DDR1RS-B 05000000011010001000 06将R0中的内容打入DR1DRDR1+DR2LDRiALU-B 06100101011001101000 01DR1+DR2加法算术运算,并将结果打入R0E、OUT 输出OUT 微操作有 效 位微 地 址 微代码A5A0 说明S3A9 A8 A B C ARPC, PC+1LDARPC-BLDPC 25000 000 011110110110 50PC打入AR且PC自增加1BUSRAM,ARBUSLDAR 50000 000 001110000000 51将AR中地址对应的内容打入ARBUSRAM,DR1BUSLDDR1 51000
21、 000 001010000000 42将AR中地址对应的内容打入DR1LEDDR1ALU-B 42000 001 110000101000 01将DR1中的内容打入LED F、HALT 程序流控制微操作有 效 位微 地 址 微代码A5A0 说明S3A9 A8 A B C 空 无 26000 000 011000000000 26停止运行G、BNE 程序流控制微操作有 效 位微 地 址 微代码A5A0 说明S3A9 A8 A B CARPC, PC+1LDARPC-BLDPC23000 000 011110110110 11PC打入AR且PC自增指向下一地址BUSRAM,ARBUSLDAR 1
22、1000 000 001110000000 12将AR中地址对应的内容打入ARBUSRAM,DR2BUSLDDR2 12000 000 001011000000 13将AR中地址对应的内容打入DR2DR1R0LDDR1RS-B 13000 000 011010001000 14将R0中的内容打入DR1R0DR1DR2LDRiALU-B 14100 000 011001101000 24DR1与DR2进行异或非逻辑运算,结果打入R0DR1R0LDDR1RS-B 24000 000 011010001000 17将R0内容打入DR1R0 DR1+1LDRiALU-B AR 17000 000 01
23、1001101101 15R0+1算术运算,结果打入R0(带进位P(3)有效P(3) 15000 000 011000000011 16P(3)有效 PC+1LDPC 36000 000 011000000110 01两数相加PC自增1 ARPC PC+1LDPCPC-BLDAR 16000 000 011110110110 37两数不相同,PC打入AR,且PC自增1BUSRAMPCBUSLOADLDPC 37000 000 001101000110 01将AR中地址对应的内容打入PC决定循环的分支、入口和结束出口(PC+1) H、LB 存储器的访问 微操作有 效 位微 地 址 微代码A5A0
24、 说明S3A9 A8 A B C ARPC PC+1LDARPC-BLDPC 27000 000 011110110110 44PC打入AR且PC指向下一个地址BUSRAMPCBUSLDAR 44000 000 001110000000 45将AR中地址对应的内容打入ARBUSRAMR0BUSLDRi 45000 000 001001000000 01将AR中地址对应的内容打入R0 I、JMP 程序流控制 微操作有 效 位微 地 址 微代码A5A0 说明S3A9 A8 A B C ARPC PC+1LDARPC-BLDPC 30000 000 011110110110 32将PC打入AR且PC
25、加1,指向下一个地址BUSRAMR0BUSLOADLDPC 32000 000 001101000110 01将AR中地址对应的内容打入PC G、NOP 程序流控制微操作有 效位微 地址微代码A5A0说明S3A9 A8ABC空空31000 000 01100000000001空操作3.4微程序流程 图3.2 微程序流程图3.5 二进制代码表微地址(八进制)S3S2S1MCNWEA9 A8ABCuA5 uA4 uA4 uA3uA2 uA1 uA0后续微地址00000000011000000100100 0004001000000011110110110000 010020200000000110
26、0000001010 0002003000000001110000000000 1000404000000001011000000000 1010505000000011010001000000 1100606100101011001101000000 0010107000000001110000000001 0001010000000101000001000000 0010111000000001110000000001 0101212000000 001011000000001 0111313000000011010001000 001 100 14141001100 1100110100
27、0010 1002415000000011000000011001 1101616000000011110110110011 1113717000000011001101101001 1011520000000000001000000000 0010121000000011110110110000 0110322000000011110110110000 1110723000000011110110110001 0011124000000011010001000001 1111725000000011110110110101 0005026000000011000000000010 11026
28、27000000011110110110100 1004430000000011110110110011 0103231000000011000000000000 0010132000000001101000110000 0010133000000000010000000011 1003434000001101000101000100 0014135000000011110110110011 0113336000000011000000110000 0010137000000001101000110000 0010140000000011110110110100 110464100000001
29、1110110110011 0113342000001110000101000000 0010143000000011000000000000 0010144000000001110000000100 1014545000000001001000000000 0010146000000001010000000100 1114747000001110000101000100 0004050000000001110000000101 0015151000000001010000000100 010424 实现测试4.1接线图按图4.1所示连接实验电路,仔细查线无误后接通电源。图4.1 实验接线图4
30、.2加法测试程序 4.2.1流程图 开 始输入ai=0,p=0ii+1,自增pp+ii!=a? Y 输出和p N 结 束图5.2 简略流程图功能:1+2+3+a 求和 a1,20 4.2.2测试程序 表5-1 测试程序表 地址 内容 助记符 说明 0000 0000 0000 0000IN R0 R0INPUT DEVICE 0000 0001 0010 0000SB 80H,R0 80HR0 0000 0010 1000 0000 0000 0011 0111 0000LB R0,22H R022H 0000 0100 0010 0010Lable2 0000 0101 0010 0011S
31、B 1FH,R0 1FHR0 0000 0110 0001 1111 0000 0111 0010 0000SB 20H,R0 20R0 0000 1000 0010 0000 0000 1001 0111 0000LB R0,1FH R01FH 0000 1010 0001 1111 0000 1011 0001 0000ADD R0,R0,1EH R0R0+1EH 0000 1100 0001 1110 0000 1101 0010 0000SB 1FH,R0 1FHR0 0000 1110 0001 1111 0000 1111 0001 0000ADD R0,R0,20H R0R0+20H 0001 0000 0010 0000 0001 0001 00