1、第第2章章指令系统与中央处理器指令系统与中央处理器冯诺伊曼结构冯诺伊曼结构控制信号控制器地址指令输出设备结果结果程序输入设备数据存储器数据运算器数据线地址线控制线2TEC-5TEC-5介绍介绍控制器控制器存储器存储器运算器运算器输出设备输出设备输入设备输入设备3Tec-5Tec-5系统原理图系统原理图DBUSSC(T3)RAM_BUS#UALU_BUS#SB URBIS3 S2 S1 S0DCEL#CER#MALU运算器Cn#LR/W#(T2)RAM内存ABLDAR#(T2)LDDR1(T2)AR1PCLDPC#(T2)PC+1(T2)DR1DR2LDDR2(T2)AR+1(T2)RS_BUS
2、#DBUSRD1 RD0RS1 RS0RF寄存器IR3(RS1)IR2(RS0)IR1(WR1 RD1)IR0(WR0 RD0)LDRi(T3)WR1 WR0IR7IR4控制器IRLDIR(T2)SW_BUS#DBUSSW7-SW0输入设备输入设备注意事项注意事项1 1)#表示负逻辑,表示负逻辑,0 0有效,有效,1 1无效无效2 2)带)带T T的信号要与时的信号要与时序脉冲(序脉冲(QDQD)配合才)配合才能生效能生效3 3)要防止)要防止ALU_BUS#ALU_BUS#、RS_BUS#RS_BUS#、SW_BUS#SW_BUS#、RAM_BUS#RAM_BUS#在在DBUSDBUS上上的
3、数据冲突的数据冲突4QDQD与时序的关系与时序的关系主时钟主时钟T1 T1 T2 T2 T3 T3 T4 T4 QD1QD1次时序图次时序图5实现实现 MOV R0,0fhMOV R0,0fh指令含义:将指令含义:将R0R0的值赋为的值赋为0fh 0fh 寄存器一共有寄存器一共有4 4个,分别为个,分别为R0R0,R1R1,R2R2,R3 R3 DBUSSC(T3)RAM_BUS#UALU_BUS#SB URBIS3 S2 S1 S0DCEL#CER#MALU运算器Cn#LR/W#(T2)RAM内存ABLDAR#(T2)LDDR1(T2)DR1DR2LDDR2(T2)AR+1(T2)AR1PC
4、LDPC#(T2)PC+1(T2)RS_BUS#DBUSRD1 RD0RS1 RS0RF寄存器IR3(RS1)IR2(RS0)IR1(WR1 RD1)IR0(WR0 RD0)LDRi(T3)WR1 WR0IR7IR4控制器IRLDIR(T2)SW_BUS#DBUSSW7-SW06实现实现 MOV R0,0fhMOV R0,0fhDBUSDBUSC(T3)S3 S2 S1 S0MRAALU_BUS#CALU运算器ABDR1DR2Cn#LR/WSW_BUS#=0SW_BUS#=0SW7-SW0=0000 1111SW7-SW0=0000 1111WR1 WR0=00WR1 WR0=00LDRi=1
5、LDRi=1(T3T3)QD1QD1SW_BUS#=1SW_BUS#=1LDRi=0LDRi=0LDDR1(T2)LDDR2(T2)LDARAR+RS_BUS#DBURD1 RD0RF寄存器RS1 RS0LDRi(T3)WR1 WR0SW_BUS#DBUSSW7-SW07练习:练习:MOV R2,41hMOV R2,41hDBUSDBUSC(T3)S3 S2 S1 S0MRAALU_BUS#CALU运算器ABDR1DR2Cn#LR/WSW_BUS#=0SW_BUS#=0SW7-SW0=0100 0001SW7-SW0=0100 0001WR1 WR0=10WR1 WR0=10LDRi=1LDR
6、i=1(T3T3)QD1QD1SW_BUS#=1SW_BUS#=1LDRi=0LDRi=0LDDR1(T2)LDDR2(T2)LDARAR+RS_BUS#DBURD1 RD0RF寄存器RS1 RS0LDRi(T3)WR1 WR0SW_BUS#DBUSSW7-SW08读取读取R0R0、R2R2的数据的数据DBUSDBUSC(T3)S3 S2 S1 S0MRAALU_BUS#CALU运算器ABDR1DR2Cn#LR/WRS_BUS#=0RS_BUS#=0RS1 RS0=00RS1 RS0=00查看查看R0R0无需无需QDQDRS_BUS#=1RS_BUS#=1LDDR1(T2)LDDR2(T2)L
7、DARAR+RS_BUS#DBURS_BUS#=0RS_BUS#=0RS1 RS0=10RS1 RS0=10查看查看R2R2无需无需QDQDRS_BUS#=1RS_BUS#=1RD1 RD0RF寄存器RS1 RS0LDRi(T3)WR1 WR0SW_BUS#DBUSSW7-SW09TEC-5TEC-5运算器介绍运算器介绍S31S20S10S01M0Cn#1运算结果运算结果A+B 加法加法DBUSRA011000A-B 减法减法000000A&A101111A&B 与运算与运算TEC-5TEC-5运算模式表运算模式表运算器注意事项运算器注意事项1 1)需要运算操作的两个数据在)需要运算操作的两个
8、数据在DR1DR1和和DR2DR2上上2 2)运算顺序:)运算顺序:DR1(A)OP DR2(B)DR1(A)OP DR2(B)3 3)运算的输出控制:)运算的输出控制:ALU_BUS#ALU_BUS#4)C(T3)4)C(T3)为运算进位信息为运算进位信息C(T3)ALU_BUS#SUS3 S2 S1 S0BDCMALU运算器Cn#LR/WABLDARLDDR1(T2)DR1DR2LDDR2(T2)AR+RS_BUS#DBURD1 RD0RS1 RS0RF寄存器LDRi(T3)WR1 WR0SW_BUS#DBUSSW7-SW010实现:实现:ADD R2ADD R2,R0R0,R1R1指令含
9、义:将指令含义:将R0+R1R0+R1的结果赋给的结果赋给R2 R2 DBUSRA实现思路实现思路Step1Step1)将)将R0R0送到送到DR1DR1,将将R1R1送到送到DR2DR2Step2Step2)实现)实现R0+R1R0+R1,并把,并把结果通过结果通过DBUSDBUS送给送给R2R2C(T3)ALU_BUS#SUS3 S2 S1 S0BDCMALU运算器Cn#LR/WABLDARLDDR1(T2)DR1DR2LDDR2(T2)AR+RS_BUS#DBURD1 RD0RS1 RS0RF寄存器LDRi(T3)WR1 WR0SW_BUS#DBUSSW7-SW011ADD R2ADD
10、R2,R0R0,R1R1实现过程实现过程S31S20S10S01M0Cn#1运算结果运算结果A+B 加法加法DBUSRA011000A-B 减法减法000000A&A101111A&B 与运算与运算RD1 RD0=00RD1 RD0=00RS1 RS0=01RS1 RS0=01LDDR1=LDDR2=1(T2)LDDR1=LDDR2=1(T2)QD1QD1LDDR1=LDDR2=0LDDR1=LDDR2=0S3 S2 S1 S0=1001S3 S2 S1 S0=1001M=0M=0Cn#=1Cn#=1ALU_BUS#=0ALU_BUS#=0QD1QD1LDRi=0LDRi=0ALU_BUS#=
11、1ALU_BUS#=1WR1 WR0=10WR1 WR0=10LDRi=1(T3)LDRi=1(T3)C(T3)ALU_BUS#SUS3 S2 S1 S0BDCMALU运算器Cn#LR/WABLDARLDDR1(T2)DR1DR2LDDR2(T2)AR+RS_BUS#DBURD1 RD0RS1 RS0RF寄存器LDRi(T3)WR1 WR0SW_BUS#DBUSSW7-SW012练习:练习:SUB R0SUB R0,R1R1,R2R2S31001S20100S10101S01001M0001Cn#1001运算结果运算结果A+B 加法加法A&AA&B 与运算与运算DBUSDBUSA-B 减法减法
12、S3 S2 S1 S0MC(T3)RAALU_BUS#CALU运算器ABDR1DR2Cn#LR/WRD1 RD0=01RD1 RD0=01RS1 RS0=10RS1 RS0=10LDDR1=LDDR2=1(T2)LDDR1=LDDR2=1(T2)QD1QD1LDDR1=LDDR2=0LDDR1=LDDR2=0LDDR1(T2)LDDR2(T2)LDARAR+RS_BUS#S3 S2 S1 S0=0110S3 S2 S1 S0=0110M=0M=0Cn#=0Cn#=0ALU_BUS#=0ALU_BUS#=0WR1 WR0=00WR1 WR0=00LDRi=1(T3)LDRi=1(T3)DBURD
13、1 RD0RF寄存器RS1 RS0QD1QD1LDRi=0LDRi=0ALU_BUS#=1ALU_BUS#=1SW_BUS#DBUSLDRi(T3)WR1 WR0SW7-SW013思考题:如何查看思考题:如何查看 DR1DR1的值?的值?S31001S20100S10101S01001M0001Cn#1001运算结果运算结果A+B 加法加法A&AA&B 与运算与运算DBUSDBUSA-B 减法减法S3 S2 S1 S0MC(T3)RAALU_BUS#CALU运算器ABDR1DR2Cn#LR/WLDDR1(T2)LDDR2(T2)LDARAR+RS_BUS#S3 S2 S1 S0=0000S3
14、S2 S1 S0=0000M=0M=0Cn#=0Cn#=0ALU_BUS#=0ALU_BUS#=0DBURD1 RD0查看查看DR1DR1RF寄存器RS1 RS0ALU_BUS#=1ALU_BUS#=1LDRi(T3)WR1 WR0SW_BUS#DBUSSW7-SW014程序阅读及实现程序阅读及实现MOV R2MOV R2,AAHAAH;MOV R3MOV R3,53H;53H;AND R1,R2,R3;AND R1,R2,R3;求求R1R1的理论值?的理论值?R1=02H R1=02H S3S2S1S0MCn#运算结果运算结果100101A+B 加法加法011000A-B 减法减法00000
15、0A&A101111A&B 与运算与运算DBUSC(T3)RAM_BUS#SUALU_BUS#SB URIS3 S2 S1 S0BDCEL#CER#MALU运算器Cn#LR/W#(T2)RAM内存ABLDAR#(T2)LDDR1(T2)DR1DR2LDDR2(T2)AR+1(T2)AR1PCLDPC#(T2)PC+1(T2)RS_BUS#DBUSRD1 RD0RS1 RS0RF寄存器IR3(RS1)IR2(RS0)IR1(WR1 RD1)IR0(WR0 RD0)LDRi(T3)WR1 WR0IR7IR4控制器IRLDIR(T2)SW_BUS#DBUS15SW7-SW0TEC-5TEC-5的内存
16、的内存信号说明信号说明1 1)CEL#CEL#和和RAM_BUS#RAM_BUS#是内存是内存数据端口与数据端口与DBUSDBUS间的总线开间的总线开关关2 2)LR/W#=1LR/W#=1,读内存;,读内存;LR/W#=0LR/W#=0,写内存;,写内存;3 3)LDAR#LDAR#将将DBUSDBUS数据数据LoadLoad至至AR1AR14 4)AR+1AR+1,使,使AR1AR1自增自增1 1*)AR+1AR+1与与LDAR#LDAR#不能同时生不能同时生效效内存读写步骤内存读写步骤Step1Step1)给内存地址()给内存地址(AR1AR1)Step2Step2)内存读写控制)内存读
17、写控制DBUSSC(T3)RAM_BUS#UALU_BUS#SB URIS3 S2 S1 S0BDCEL#CER#MALU运算器Cn#LR/W#(T2)RAM内存ABLDAR#(T2)LDDR1(T2)AR+1(T2)AR1PCLDPC#(T2)PC+1(T2)DR1DR2LDDR2(T2)RS_BUS#DBUSRD1 RD0RS1 RS0RF寄存器IR3(RS1)IR2(RS0)IR1(WR1 RD1)IR0(WR0 RD0)LDRi(T3)WR1 WR0IR7IR4控制器IRLDIR(T2)SW_BUS#DBUSSW7-SW016实现:实现:MOV 20hMOV 20h,03h 03h 指
18、令含义:将数据指令含义:将数据03h03h赋给地址为赋给地址为20h20h的内存的内存 表示对内存操作,中括号内的是内存的地址表示对内存操作,中括号内的是内存的地址DBUSSW_BUS#=0SW_BUS#=0SW7-SW0=0010 0000SW7-SW0=0010 0000QD1QD1LDAR#=0(T2)LDAR#=0(T2)LDAR#=1LDAR#=1SW_BUS#=1SW_BUS#=1DBUSC(T3)S3 S2 S1 S0MRAM_BUS#ALU_BUS#CEL#LR/W#(T2)ALU运算器ABDR1DR2Cn#RAM内存CER#LDDR1(T2)LDDR2(T2)LDAR#(T2
19、)AR+1(T2)AR1PCLDPC#(T2)PC+1(T2)SW_BUS#=0SW_BUS#=0SW7-SW0=0000 0011SW7-SW0=0000 0011RAM_BUS#=0RAM_BUS#=0CEL#=0CEL#=0LR/W#=0LR/W#=0RS_BUS#QD1QD1LR/W#=1LR/W#=1RAM_BUS#=1RAM_BUS#=1CEL#=1CEL#=1DBUSRD1 RD0RF寄存器RS1 RS0IR3(RS1)IR2(RS0)IR1(WR1 RD1)IR0(WR0 RD0)IR7IR4LDRi(T3)WR1 WR0控制器SW_BUS#DBUSIRLDIR(T2)SW7-
20、SW017IR BUS练习:练习:MOV 27hMOV 27h,31h31h;MOV 28h,49h MOV 28h,49h DBUSSC(T3)RAM_BUS#UALU_BUS#SB URIS3 S2 S1 S0BDCEL#CER#MALU运算器Cn#LR/W#(T2)RAM内存ABLDAR#(T2)LDDR1(T2)PCLDPC#(T2)PC+1(T2)DR1DR2LDDR2(T2)AR+1(T2)AR1RS_BUS#DBUSRD1 RD0RS1 RS0RF寄存器IR3(RS1)IR2(RS0)IR1(WR1 RD1)IR0(WR0 RD0)LDRi(T3)WR1 WR0IR7IR4控制器
21、IRLDIR(T2)SW_BUS#DBUSSW7-SW018课程回顾:寄存器与运算器课程回顾:寄存器与运算器S310S201S101S010M00Cn#10运算结果运算结果A+B 加法加法A-B 减法减法01000101DBUS0101A&AA&B 与运算与运算DBUSC(T3)S3 S2 S1 S0RAM_BUS#ALU_BUS#CEL#LR/W#(T2)1 1)RFRF寄存器的写入操作寄存器的写入操作2 2)RFRF寄存器的读出操作寄存器的读出操作3 3)运算器的操作)运算器的操作MALU运算器ABDR1DR2Cn#RAM内存CER#LDDR1(T2)LDDR2(T2)LDAR#(T2)A
22、R+1(T2)AR1PCLDPC#(T2)PC+1(T2)RS_BUS#DBUSRD1 RD0RF寄存器RS1 RS0IR3(RS1)IR2(RS0)IR1(WR1 RD1)IR0(WR0 RD0)IR7IR4LDRi(T3)WR1 WR0控制器SW_BUS#DBUSIRLDIR(T2)19SW7-SW0IR BUS课程回顾:寄存器与运算器课程回顾:寄存器与运算器S310S201S101S010M00Cn#10运算结果运算结果A+B 加法加法A-B 减法减法01000101DBUS0101A&AA&B 与运算与运算DBUSC(T3)S3 S2 S1 S0RAM_BUS#ALU_BUS#CEL#
23、LR/W#(T2)1 1)MOV R2MOV R2,23H23H2 2)MOV R3,56HMOV R3,56H3)ADD R1,R2,R3 3)ADD R1,R2,R3 MALU运算器ABDR1DR2Cn#RAM内存CER#LDDR1(T2)LDDR2(T2)LDAR#(T2)AR+1(T2)AR1PCLDPC#(T2)PC+1(T2)RS_BUS#DBUSRD1 RD0RF寄存器RS1 RS0IR3(RS1)IR2(RS0)IR1(WR1 RD1)IR0(WR0 RD0)IR7IR4LDRi(T3)WR1 WR0控制器SW_BUS#DBUSIRLDIR(T2)20SW7-SW0IR BUS
24、课程回顾:存储器的写入操作课程回顾:存储器的写入操作S310S201S101S010M00Cn#10运算结果运算结果A+B 加法加法A-B 减法减法01000101DBUS0101A&AA&B 与运算与运算DBUSC(T3)S3 S2 S1 S0RAM_BUS#ALU_BUS#CEL#LR/W#(T2)1 1)MOV 21h,12hMOV 21h,12h2)MOV 22h,22h2)MOV 22h,22h3)MOV 23h,32h3)MOV 23h,32hMALU运算器ABDR1DR2Cn#RAM内存CER#LDDR1(T2)LDDR2(T2)LDAR#(T2)AR+1(T2)AR1PCLDP
25、C#(T2)PC+1(T2)RS_BUS#DBUSRD1 RD0RF寄存器RS1 RS0IR3(RS1)IR2(RS0)IR1(WR1 RD1)IR0(WR0 RD0)IR7IR4LDRi(T3)WR1 WR0控制器SW_BUS#DBUSIRLDIR(T2)21SW7-SW0IR BUS查看查看 27h27h,28h28h的内存数据的内存数据SW_BUS#=0SW_BUS#=0SW7-SW0=0010 0111SW7-SW0=0010 0111QD1QD1LDAR#=0(T2)LDAR#=0(T2)LDAR#=1LDAR#=1SW_BUS#=1SW_BUS#=1C(T3)S3 S2 S1 S0
26、MALU_BUS#DBUSRAM_BUS#DBUSCEL#LR/W#(T2)ALU运算器ABDR1DR2Cn#RAM内存CER#LDDR1(T2)LDDR2(T2)LDAR#(T2)AR+1(T2)AR1PCLDPC#(T2)PC+1(T2)RAM_BUS#=0RAM_BUS#=0CEL#=0CEL#=0LR/W#=1LR/W#=1RS_BUS#查看查看27H27HCEL#=1CEL#=1RAM_BUS#=1RAM_BUS#=1DBUSRD1 RD0RF寄存器RS1 RS0IR3(RS1)IR2(RS0)IR1(WR1 RD1)IR0(WR0 RD0)IR7IR4LDRi(T3)WR1 WR0
27、控制器SW_BUS#DBUSIRLDIR(T2)SW7-SW022IR BUS练习:练习:MOV R1,21h MOV R1,21h DBUSDBUSC(T3)S3 S2 S1 S0MRAM_BUS#ALU_BUS#CEL#LR/W#(T2)ALU运算器ABDR1DR2Cn#RAM内存CER#LDDR1(T2)LDDR2(T2)LDAR#(T2)AR+1(T2)AR1PCLDPC#(T2)PC+1(T2)SW_BUS#=0SW_BUS#=0SW7-SW0=0010 0001SW7-SW0=0010 0001QD1QD1LDAR#=0(T2)LDAR#=0(T2)RS_BUS#LDAR#=1LD
28、AR#=1SW_BUS#=1SW_BUS#=1DBUSRD1 RD0RF寄存器RS1 RS0IR3(RS1)IR2(RS0)IR1(WR1 RD1)IR0(WR0 RD0)IR7IR4LDRi(T3)WR1 WR0控制器SW_BUS#IRLDIR(T2)RAM_BUS#=0RAM_BUS#=0CEL#=0CEL#=0LR/W#=1LR/W#=1WR1 WR0=01WR1 WR0=01LDRi=1LDRi=1DBUSQD1QD1LDRi=0LDRi=0CEL#=1CEL#=1RAM_BUS#=1RAM_BUS#=1SW7-SW023IR BUS练习:练习:MOV R0,R2 MOV R0,R2
29、DBUSDBUSC(T3)S3 S2 S1 S0MRAM_BUS#ALU_BUS#CEL#LR/W#(T2)ALU运算器ABDR1DR2Cn#RAM内存CER#LDDR1(T2)LDDR2(T2)LDAR#(T2)AR+1(T2)AR1PCLDPC#(T2)PC+1(T2)RS_BUS#=0RS_BUS#=0RS1 RS0=10RS1 RS0=10LDAR#=0(T2)LDAR#=0(T2)RS_BUS#QD1QD1LDAR#=1LDAR#=1RS_BUS#=1RS_BUS#=1DBUSRD1 RD0RF寄存器RS1 RS0IR3(RS1)IR2(RS0)IR1(WR1 RD1)IR0(WR0
30、 RD0)IR7IR4LDRi(T3)WR1 WR0RAM_BUS#=0RAM_BUS#=0CEL#=0CEL#=0LR/W#=1LR/W#=1WR1 WR0=00WR1 WR0=00LDRi=1LDRi=1控制器IRLDIR(T2)QD1QD1RAM_BUS#=1RAM_BUS#=1CEL#=1CEL#=1LDRi=0LDRi=0SW_BUS#DBUSSW7-SW024IR BUS练习:练习:MOV 13h,R0 MOV 13h,R0 DBUSSC(T3)RAM_BUS#UALU_BUS#SB URIS3 S2 S1 S0BDCEL#CER#MALU运算器Cn#LR/W#(T2)RAM内存A
31、BLDAR#(T2)LDDR1(T2)PCLDPC#(T2)PC+1(T2)DR1DR2LDDR2(T2)AR+1(T2)AR1RS_BUS#DBUSRD1 RD0RS1 RS0RF寄存器IR3(RS1)IR2(RS0)IR1(WR1 RD1)IR0(WR0 RD0)LDRi(T3)WR1 WR0IR7IR4控制器IRLDIR(T2)SW_BUS#DBUSSW7-SW025练习:练习:MOV R0,R1h MOV R0,R1h DBUSSC(T3)RAM_BUS#UALU_BUS#SB URIS3 S2 S1 S0BDCEL#CER#MALU运算器Cn#LR/W#(T2)RAM内存ABLDAR
32、#(T2)LDDR1(T2)PCLDPC#(T2)PC+1(T2)DR1DR2LDDR2(T2)AR+1(T2)AR1RS_BUS#DBUSRD1 RD0RS1 RS0RF寄存器IR3(RS1)IR2(RS0)IR1(WR1 RD1)IR0(WR0 RD0)LDRi(T3)WR1 WR0IR7IR4控制器IRLDIR(T2)SW_BUS#DBUSSW7-SW026课程回顾课程回顾DBUSDBUSMOV R1,21hMOV R1,21hMOVMOV 21h,12h21h,12hMOV R0,R1MOV R0,R1MOV R0,R2 MOV R0,R2 MOV R1,21hMOV R1,21hMO
33、V 13h,R0 MOV 13h,R0 RD1 RD0S3 S2 S1 S0MC(T3)RAM_BUS#ALU_BUS#CEL#LR/W#(T2)ALU运算器ABDR1DR2Cn#RAM内存CER#LDDR1(T2)LDDR2(T2)LDAR#(T2)AR+1(T2)AR1PCLDPC#(T2)PC+1(T2)RS_BUS#DBUSRF寄存器RS1 RS0IR3(RS1)IR2(RS0)IR1(WR1 RD1)IR0(WR0 RD0)IR7IR4LDRi(T3)WR1 WR0控制器SW_BUS#DBUSIRLDIR(T2)SW7-SW0IR BUS27微程序微程序一一控制器的组成与指令的执行控
34、制器的组成与指令的执行二二微程序控制器微程序控制器三三微指令地址形成部件实现微指令地址形成部件实现28问题背景问题背景DBUS实现内存赋值和查看实现内存赋值和查看MOV 10h,31hMOV 10h,31hMOV 11h,47hMOV 11h,47hMOV 12h,36hMOV 12h,36hSW_BUS#=0SW_BUS#=0SW7-SW0=xxHSW7-SW0=xxHLDAR#=0LDAR#=0SW_BUS#=0SW_BUS#=0SW7-SW0=xxHSW7-SW0=xxHCEL#=0CEL#=0RAM_BUS#=0RAM_BUS#=0LR/W#=0LR/W#=0AR+1=1AR+1=1S
35、W_BUS#=1SW_BUS#=1LDAR#=0LDAR#=0DBUSC(T3)S3 S2 S1 S0MRAM_BUS#ALU_BUS#CEL#LR/W#(T2)ALU运算器ABDR1DR2Cn#RAM内存CER#LDDR1(T2)LDDR2(T2)LDAR#(T2)AR+1(T2)AR1PCLDPC#(T2)PC+1(T2)QD1QD1u09u09RD1 RD0RS_BUS#DBUSRF寄存器RS1 RS0IR3(RS1)IR2(RS0)IR1(WR1 RD1)IR0(WR0 RD0)IR7IR4LDRi(T3)WR1 WR0QD1QD1LR/W#=1LR/W#=1CEL#=1CEL#=1R
36、AM_BUS#=1RAM_BUS#=1SW_BUS#=1SW_BUS#=1AR+1=0AR+1=0控制器SW_BUS#IRLDIR(T2)u04u04DBUSSW7-SW0QD1QD1U05 U05 29IR BUS写内存数据写内存数据内存地址内存地址+1+1写内存地址写内存地址0 11111S3S2S1S0MCnLRWCELCERRAM_BUSALU_BUSRS_BUSSW_BUSLDRiLDDR2LDDR1LDARAR+1LDPCPC+1LDIRS3S2S1S0MCnLRWCELCERRAM_BUSALU_BUSRS_BUSSW_BUSLDRiLDDR2LDDR1LDARAR+1LDPCP
37、C+1LDIR写内存的微指令实现写内存的微指令实现313029282726252423222120191817161514131211 109 8 7 63130 2928 27 2625 2423 2221 2019 18 1716 1514 131211109 8 7 611备用判断字段1TJ备用判断字段TJ备用判断字段S3S2S1S0MCnLRWCELCERRAM_BUSALU_BUSRS_BUSSW_BUSLDRiLDDR2LDDR1LDARAR+1LDPCPC+1LDIRTJP2P1P031302928 272625 242322 21201918 171615 14131211 1
38、09 8 7 6P2P1P00001015 4 32 1 0P2P1P00001005 4 32 1 0后继微地址后继微地址注:空白处全为注:空白处全为0 0uA5uA4uA3uA2uA1uA00001005 4 32 1 0uA5uA4uA3uA2uA1uA0后继微地址uA5uA4uA3uA2uA1uA0u09 u09 u04 u04 u05 u05 30读内存的微指令实现读内存的微指令实现DBUSSC(T3)RAM_BUS#UALU_BUS#SB URBIS3 S2 S1 S0DCEL#MALU运算器Cn#LR/W#(T2)RAM内存CER#ABLDAR#(T2)LDDR1(T2)DR1D
39、R2LDDR2(T2)AR+1(T2)AR1PCLDPC#(T2)PC+1(T2)RS_BUS#DBUSRD1 RD0RF寄存器RS1 RS0IR3(RS1)IR2(RS0)IR1(WR1 RD1)IR0(WR0 RD0)LDRi(T3)WR1 WR0IR7IR4控制器IRLDIR(T2)SW_BUS#DBUSSW7-SW0SUSBU2 1_BSS_UUR RD DR1 R判断字段后继微地址3 2 1 0nWL RM UBB i_S S S SMC REL_D DA1+CI5 4 3 2 1 0LCE AC RASWRDR SL L LDLRP+AD C D2 1 0L P LJ用T备P P
40、PA A A A A Au u u u u u031 30292827262524 23222120191817 161514131211 109 8 7 65 4 32 1 031写写RAM:00h=09h过程过程CLR#复位复位P0判断分支,进判断分支,进u09程序复位,使得微程序复位,使得微程序地址为程序地址为00H需需SWC-B-A=001SW7-SW0=00HQD1送内存地址前做好数据准备送内存地址前做好数据准备执行送内存地址执行送内存地址u09 u09 SW7-SW0=09HQD1送内存数据送内存数据前做好数据前做好数据准备准备执行送内存数据执行送内存数据u04 u04 U地址灯:
41、显示当前已经执行完的地址灯:显示当前已经执行完的u指令的地址指令的地址32读读RAM:00h01hCLR#复位复位P0判断分支判断分支,进进u0A程序复位,使得微程序复位,使得微程序地址为程序地址为00H需需SWC-B-A=010SW7-SW0=00Hu0A u0A QD1送内存地址前做送内存地址前做好数据准备好数据准备执行送内存地址执行送内存地址u02 u02 QD1读内存数据读内存数据u03u03QD2u02 u02 读下一地址的内存数据读下一地址的内存数据即即01h33练习内存连续写和读练习内存连续写和读实现内存赋值和查看实现内存赋值和查看MOV 10h,31hMOV 10h,31hMO
42、V 11h,47hMOV 11h,47hMOV 12h,36hMOV 12h,36h34写寄存器的微指令实现写寄存器的微指令实现DBUS微指令中没有微指令中没有WR1-WR1-WR0WR0,RS1-RS0RS1-RS0,RD1-RD0RD1-RD0等信号线,等信号线,如何写入和读出?如何写入和读出?DBUSC(T3)S3 S2 S1 S0MRAM_BUS#ALU_BUS#CEL#LR/W#(T2)ALU运算器ABDR1DR2Cn#RAM内存CER#LDDR1(T2)LDDR2(T2)LDAR#(T2)AR+1(T2)AR1PCLDPC#(T2)PC+1(T2)RS_BUS#解决解决WR1-RD
43、1-IR1WR1-RD1-IR1相连相连WR0-RD0-IR0WR0-RD0-IR0相连相连RS1-IR3RS1-IR3相连相连RS0-IR2RS0-IR2相连相连DBUSRD1 RD0RF寄存器RS1 RS0IR3(RS1)IR2(RS0)IR1(WR1 RD1)IR0(WR0 RD0)IR7IR4LDRi(T3)WR1 WR0控制器SW_BUS#DBUSIRLDIR(T2)SW7-SW0S3S2S1S0MCnLRWCELCERRAM_BUSALU_BUSRS_BUSSW_BUSLDRiLDDR2LDDR1LDARAR+1LDPCPC+1LDIR判断字段后继微地址备用TJuA5uA4uA3u
44、A2uA1uA0P2P1P031 30292827262524 23222120191817 161514131211 109 8 7 65 4 32 1 035IR BUS难题难题写写Ri:R1=34hRi无法直接索引,必须靠指令中的低无法直接索引,必须靠指令中的低4位进行索引。在位进行索引。在TEC-5中中IR3RS1,IR2-RS0,IR1-RD1-WR1,IR0-RD0-WR0思路思路写存放指令的内存地址(写存放指令的内存地址(u0Bh)制造一条索引制造一条索引Ri的指令(的指令(u1Dh)将指令读出,达到索引将指令读出,达到索引Ri目的(目的(u0Dh)写数据到写数据到Ri(u0Eh
45、)SWCBA=011CLR#复位复位SW7-SW0=C0H挑一个在挑一个在其它地方其它地方用不到的用不到的内存地址内存地址只有低只有低2位真正位真正起作用起作用u0BQD1SW7-SW0=C1Hu0E u1D,0D QD2SW7-SW0=34HQD136实现:实现:R2=23h,R3=45hR2=23h,R3=45h的写入操作的写入操作DBUSSC(T3)RAM_BUS#UALU_BUS#SB URBIS3 S2 S1 S0DCEL#CER#MALU运算器Cn#LR/W#(T2)RAM内存ABLDAR#(T2)LDDR1(T2)PCLDPC#(T2)PC+1(T2)DR1DR2LDDR2(T2
46、)AR+1(T2)AR1RS_BUS#DBUSRD1 RD0RS1 RS0RF寄存器IR3(RS1)IR2(RS0)IR1(WR1 RD1)IR0(WR0 RD0)LDRi(T3)WR1 WR0IR7IR4控制器IRLDIR(T2)SW_BUS#DBUSSW7-SW037实验回顾实验回顾MOV R2MOV R2,AAHAAH;MOV R3MOV R3,53H;53H;AND R1,R2,R3;AND R1,R2,R3;求求R1R1的理论值?的理论值?R1=02H R1=02H S3S2S1S0MCn#运算结果运算结果100101A+B 加法加法011000A-B 减法减法000000A&A10
47、1111A&B 与运算与运算DBUSC(T3)RAM_BUS#SUALU_BUS#SB URIS3 S2 S1 S0BDCEL#CER#MALU运算器Cn#LR/W#(T2)RAM内存ABLDAR#(T2)LDDR1(T2)DR1DR2LDDR2(T2)AR+1(T2)AR1PCLDPC#(T2)PC+1(T2)RS_BUS#DBUSRD1 RD0RS1 RS0RF寄存器IR3(RS1)IR2(RS0)IR1(WR1 RD1)IR0(WR0 RD0)LDRi(T3)WR1 WR0IR7IR4控制器IRLDIR(T2)SW_BUS#DBUS38SW7-SW0课程回顾:内存写入与读书课程回顾:内存
48、写入与读书实现内存赋值和查看实现内存赋值和查看MOV 10h,31hMOV 10h,31hMOV 11h,47hMOV 11h,47hMOV 12h,36hMOV 12h,36h39课程回顾:寄存器写入课程回顾:寄存器写入DBUSSC(T3)RAM_BUS#UALU_BUS#SB URBIS3 S2 S1 S0DCEL#CER#MALU运算器Cn#LR/W#(T2)RAM内存ABLDAR#(T2)LDDR1(T2)PCLDPC#(T2)PC+1(T2)DR1DR2LDDR2(T2)AR+1(T2)AR1RS_BUS#DBUSRD1 RD0RS1 RS0RF寄存器IR3(RS1)IR2(RS0)
49、IR1(WR1 RD1)IR0(WR0 RD0)LDRi(T3)WR1 WR0IR7IR4控制器IRLDIR(T2)SW_BUS#DBUSSW7-SW040读读R1 思路思路写存放指令的内存地址(写存放指令的内存地址(u0Ch)制造一条索引制造一条索引Ri的指令(的指令(u1Eh)将指令读出,达到索引将指令读出,达到索引Ri目的(目的(u06h)在在DBUS读读Ri(u07h)SWCBA=100CLR#复位复位SW7-SW0=C0H挑一个在挑一个在其它地方其它地方用不到的用不到的内存地址内存地址只有只有IR3-IR2位真正位真正起作用起作用u0CQD1SW7-SW0=C4Hu1E,u06QD2
50、QD1读内存数据读内存数据41u07 练习:练习:R0R0、R1R1的读操作的读操作DBUSSC(T3)RAM_BUS#UALU_BUS#SB URIS3 S2 S1 S0BDCEL#MALU运算器Cn#LR/W#(T2)RAM内存CER#ABLDAR#(T2)LDDR1(T2)PCLDPC#(T2)PC+1(T2)DR1DR2LDDR2(T2)AR+1(T2)AR1RS_BUS#DBUSRD1 RD0RF寄存器RS1 RS0IR3(RS1)IR2(RS0)IR1(WR1 RD1)IR0(WR0 RD0)LDRi(T3)WR1 WR0IR7IR4控制器IRLDIR(T2)SW_BUS#DBUS