计算机组成原理rs rd,计算机组成原理五章.ppt

《计算机组成原理五章.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理五章.ppt(104页珍藏版)》请在人人文库网上搜索。

1、5,处理机设计数据路径和控制部件,100 loop: load r3, 0(r4) ;从存储器取数据放到r3中 存储器地址为r4中的内容加0, addi r4, r4, 4 ; 存储器地址加4,指向下一个存储器字 108 add r1,r1,r3 ; 累加,累加和放在r1中 112 subi r2,r2,1; 计数器减1 116 bne r2,loop; 若计数器不为0,则转移到loop处继续执行 120 store r1,0(r4); 否则,把累加和送到存储器中, 存储器地址为r4中的内容加0.,基本指令构成的程序,A+1000,32bit,5,6,7,register,r1,r3,ALU,。

2、R2,3,R4,1000,A=0,opcode,r1,r1,r3,5位,5位,5位,5位,Add r1,r2,r3; r1=r2+r3,5.1 处理机的基本构成,5.2 ALU的设计,算术运算 逻辑运算,加法运算,减法运算,逻辑与运算,逻辑或运算,5.3 寄存器堆的设计,opcode,rd,rs1,rs2,5位,5位,5位,5位,Add r1,r2,r3; r1=r2+r3,Rs1=00111,Rs2=11110,Rd=00001,000.111,00010,00111,11110,5位,5位,5位,5位,Add r1,r2,r3; r1=r2+r3,5.4 处理机的数据路径,取指令电路 算术。

3、逻辑操作电路 存储器访问电路 转移控制电路,5.4.1 取指令电路,5.4.2 算术逻辑操作电路,opcode,rd,rs1,rs2,32位,5位,5位,5位,5位,Add r1,r2,r3; r1=r2+r3,Rs=register source Rd=register destination,寄存器寻址,opcode,rd,rs1,立即数,寄存器立即数寻址,图5.9和图5.8的结合,5.4.3 存储器访问电路,opcode,rd,rs1,load:,opcode,rs1,store:,rs2,寄存器寻址,opcode,rd,rs1,load:,opcode,rs1,store:,rs2,o。

4、pcode,rd,rs1,load:,opcode,rs1,store:,Immediate,rd,Immediate,opcode,rd,rs1,load:,opcode,rs1,store:,rs2,rs2,rd,opcode,rs1,store:,rs2,rd,opcode,rs1,store:,rs2,rd,5.4.4 转移控制电路,opcode,cond,Displacement,branch:,opcode,rs1,jump:,rs2,rd,opcode,rs1,jump:,rd,Immediate,opcode,cond,Displacement,branch:,cond?,pc。

5、=pc+1,pc=pc+Disp.,Y,N,opcode,rs1,jump:,rs2,rd,1.pc,rd,2.rs1+rs2,pc,opcode,rs1,jump:,rs2,rd,opcode,rs1,jump:,rd,Immediate,opcode,cond,Displacement,branch:,Add rd,rs1,rs2; addi rd,rs1,immediate,5.4.5 总体数据路径,见图5.18,可执行的指令见表5.3,5.5单周期处理机的控制部件设计,处理机的指令系统和指令格式,5.5.1 控制信号定义,ALUOP: SELST SELIMME: SELBRANCH 。

6、SELLOAD: WRITEPC: WRITEZERO WRITEREG WRITEMEM,5.5.2 处理机执行指令的步骤,ALU指令 load/store指令 转移指令,取指令、译码、执行。,ALU指令,Opcode rd,rs1,rs2 Opcode rd,rs1,imme,IF-IDEXEWB,Addi rd,rs1,imme,load/store指令,Load rd,rs1,imme; store rd,rs1,imme;,IF,ID,EXE,READ,WB IF,ID ,EXE,WRITE,转移指令,bne disp beq disp branch disp,5.5.3 控制信号的。

7、产生,ALUOP0=or+ori+sub+subi ALUOP1=add+addi+sub+subi+load+store,ALUOP0=O5O4O3O1 ALUOP1=O5O4O3O2+O5O4O3O2O1,其它控制信号,SELST=store SELIMME=andi+ori+addi+subi+load+store SELBRANCH=bneZERO+beqZERO+branch SELLOAD=load WRITEZERO=and+andi+or+ori+addaddi+sub+subi WRITEREG=and+andi+or+ori+add+addi+sub+subi+load W。

8、RITEMEM=store WRITEPC=1,Store rd,rs1,imme,5.5.4 单周期处理机的缺点,T=ICPITPC I:是程序执行时的动态指令条数。 CPI:是每条指令执行所需周期的平均值。 TPC:每个周期的时间长度。,5.6 多周期处理机的控制部件设计,多周期处理机的控制部件设计,1 cycle IF,2 cycle ID,3 cycle EXE,4 cycle R/W memory,5 cycle WB,Operations Signals,Op rd,rs1,rs2 op rd, rs1,immediate,Load rd,rs1,imme store rd,rs1。

9、,imme,clk,Op rd,rs1,rs2 op rd, rs1,immediate,Load rd,rs1,imme store rd,rs1,imme,5.7 微程序控制,5.7.0 微程序控制概念 5.7.1 微程序控制电路结构 5.7.2 微指令字段定义 5.7.3 微程序设计,5.7.0 微程序控制概念,pc,pc,WRITEPC SELLDST WRITEMEM WRITEIR SELLOAD SELST WRETEREG SELALUA SELALUB ALUOP WRITEZERO 1 0 0 1 1/0 1/0 0 1 10 10 0,IF(S0),5.7.1 微程序控制。

10、电路结构,WRITEPC SELLDST WRITEMEM WRITEIR SELLOAD SELST WRETEREG SELALUA SELALUB ALUOP WRITEZERO 1 0 0 1 1/0 1/0 0 1 10 10 0,IF(S0),WRITEPC SELLDST WRITEMEM WRITEIR SELLOAD SELST WRETEREG SELALUA SELALUB ALUOP WRITEZERO 1 0 0 1 1/0 1/0 0 1 10 10 0,IF(S0),ID(S1),WRITEPC SELLDST WRITEMEM WRITEIR SELLOAD S。

11、ELST WRETEREG SELALUA SELALUB ALUOP WRITEZERO BT 1/0 0 0 1/0 0 0 1 11 10 0,ALU EXE(S2),WRITEPC SELLDST WRITEMEM WRITEIR SELLOAD SELST WRETEREG SELALUA SELALUB ALUOP WRITEZERO 0 1/0 0 0 1/0 0 0 0 00 OP1OP0 0,BT=branch+bneZERO+beqZERO,ALU WB(S6),WRITEPC SELLDST WRITEMEM WRITEIR SELLOAD SELST WRETEREG 。

12、SELALUA SELALUB ALUOP WRITEZERO 0 1/0 0 0 0 0 1 0 00 OP1OP0 1,ALU EXE(S3),WRITEPC SELLDST WRITEMEM WRITEIR SELLOAD SELST WRETEREG SELALUA SELALUB ALUOP WRITEZERO 0 1/0 0 0 1/0 0 0 0 01 OP1OP0 0,ALU WB(S7),WRITEPC SELLDST WRITEMEM WRITEIR SELLOAD SELST WRETEREG SELALUA SELALUB ALUOP WRITEZERO 0 1/0 0。

13、 0 0 1/0 1 0 01 OP1OP0 1,LOAD EXE(S4),WRITEPC SELLDST WRITEMEM WRITEIR SELLOAD SELST WRETEREG SELALUA SELALUB ALUOP WRITEZERO 0 1 0 0 1 1/0 0 0 01 10 0,LOAD MEM(S8),WRITEPC SELLDST WRITEMEM WRITEIR SELLOAD SELST WRETEREG SELALUA SELALUB ALUOP WRITEZERO 0 1 0 0 1 1/0 0 0 01 10 0,LOAD WB(S10),WRITEPC 。

14、SELLDST WRITEMEM WRITEIR SELLOAD SELST WRETEREG SELALUA SELALUB ALUOP WRITEZERO 0 1 0 0 1 1/0 1 0 01 10 0,STORE EXE(S5),WRITEPC SELLDST WRITEMEM WRITEIR SELLOAD SELST WRETEREG SELALUA SELALUB ALUOP WRITEZERO 0 1 0 0 1/0 1 0 0 01 10 0,STORE MEM(S9),WRITEPC SELLDST WRITEMEM WRITEIR SELLOAD SELST WRETE。

15、REG SELALUA SELALUB ALUOP WRITEZERO 0 1 1 0 1/0 1 0 0 01 10 0,加1 无条件转移 散转 条件转移,微程序计数器值的改变,5.7.2 微指令字段定义,Q2 ALUOP S1 S2 ALUDest MemAdr MemDest Dispatch JAddr,微操作信号,微地址 产生方式,目标 微地址,(13位),(2位),(logMc位),取指微指令,译码微指令,散转表,ALU EXE微指令,ALU WB微指令,LOAD EXE微指令,LOAD MEM微指令,LOAD WB微指令,STORE EXE微指令,STORE MEM微指令,转 移。

16、 微 指 令,Add r1,r2,r3; Addi r1,r2,234; Load r1,r2,44; Store r1,r3,45; Branch 2222;,5.7.3 微程序设计,Add Q2 ALUOP S1 S2 ALUDest MemAdr MemDest Dispatch JAddr Fetch add pc 1 pc pc IR Next rs2 Table,5.8 异常事件处理,什么是异常? 异常事件处理,5.8.1 什么是异常?,异常:指令执行过程中,由于操作非法或指令非法引起的 事件.如:除数为零,结果上溢,指令码没有定义等.,异常改变处理机正常指令的执行次序,但它与转移。

17、 指令又有本质的区别.转移指令是计划好的转移事件,而 异常是随机事件.,5.8.2 异常事件处理,异常事件的处理: 1.异常事件的检测,即当异常事件发生时 应能让处理机知晓. 2.处理机应有相应的硬件机制,实现 向异常事件处理程序的转移及处理完 毕后返回到用户程序。,用户正常程序,异常处理程序,异常产生,硬件自动检测到,硬件实现转移到处理程序入口,硬件返回到用户正常程序,断点,确定异常处理程序入口的方法,查询法 向量法,异常处理程序 仅一个入口,读处理机状态,处理类型 1 异常处 理程序,处理类型 2 异常处 理程序,处理类型 3 异常处 理程序,查询法,向量法: 为了能尽快地处理异常事件,也。

18、可以用向量 转移的办法,直接转向相应的处理程序去执行。 可以为不同类型的异常事件指定一个向量, 向量的位数依异常事件的种类数而定。 如:8种类型的异常事件,可以使用3位向量 来区别它们。,异常类型 向量 0 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111,基 址,向 量,0000,固定或由指令设定,由2nn的编码器确定,处理程序入口的间隔,00110000,00110100,00111000,00111100,4个字节,一条转移指令,关键问题:PC值的保存与恢复,1 PC,通用寄存器,2 PC,专用EPC,3 PC,内存堆栈,异常事件出现:,EXC=Overflow+ Invaild V0=Invaild,Overflow=P63,判别溢出方法,As,Bs,Ss,As,Bs,Ss,溢出,As,Bs,Ss,关键问题,异常是如何被硬件检测的? 硬件是如何保存断点的? 硬件是如何转移到相应异常处理程序入口的? 硬件是如何恢复断点的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值