计算机组成与实现 课件 第5章 多周期CPU_第1页
计算机组成与实现 课件 第5章 多周期CPU_第2页
计算机组成与实现 课件 第5章 多周期CPU_第3页
计算机组成与实现 课件 第5章 多周期CPU_第4页
计算机组成与实现 课件 第5章 多周期CPU_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

多周期CPU计算机组成与实现目录单周期的不足破解关键路径的一般性方法多周期数据通路建模多周期数据通路执行过程建模多周期控制器多周期性能分析回顾:单周期数据通路从逻辑上:数据通路总共为5个逻辑步骤公共步骤:取指令、译码/读操作数所有指令均必须经历的2个步骤PC指令存储器+4RegisterFilertrsrdALU数据存储器immMUX取指令IFPC驱动IM读取指令译码/读操作数DCD/RF译码属于控制器范畴;可以与读操作数并行执行EXEALU完成算数/逻辑运算访存MEM读DM或写DM回写WBALU计算结果或IM读出数据写入寄存器堆1.取指令IF2.译码/读操作数DCD/RF3.执行EXE4.访存MEM5.回写WB运算类指令

:理想执行过程指令:ADD、SUB、OR。。。需求:R[rd]

R[rs]opR[rt]过程:取指、译码/读寄存器、执行、访存、回写PCinstructionmemory+4RegisterFilertrsrdALUDatamemoryimmMUXopcodefunctrsrtrdshamt3101.取指令IF2.译码/读操作数DCD/RF3.执行EXE4.访存MEM5.回写WBX分支类指令:理想执行过程指令:BEQ、。。。需求:PC

条件?PC+Ext(Imm):PC+4过程:取指、译码/读寄存器、执行、访存、回写PCinstructionmemory+4RegisterFilertrsrdALUDatamemoryimmMUXopcodersrtimmediate3101.取指令IF2.译码/读操作数DCD/RF3.计算EXE4.访存MEM5.回写WBXX跳转指令:理想执行过程指令:J需求:PC

PC[31:28]||target_address||00过程:取指、译码/读寄存器、执行、访存、回写PCinstructionmemory+4RegisterFilertrsrdALUDatamemoryimmMUXopcodetargetaddress3101.取指令IF2.译码/读操作数DCD/RF3.执行EXE4.访存MEM5.回写WBXX读存储指令:理想执行过程指令:LW需求:RF[rt]←memory[RF[base]+offset]过程:取指、译码/读寄存器、执行、访存、回写PCinstructionmemory+4RegisterFilertrsrdALUDatamemoryimmMUX1.取指令IF2.译码/读操作数DCD/RF3.执行EXE4.访存MEM5.回写WB写存储指令:理想执行过程指令:SW需求:memory[RF[base]+offset]←RF[rt]过程:取指、译码/读寄存器、执行、访存、回写PCinstructionmemory+4RegisterFilertrsrdALUDatamemoryimmMUX1.取指令IF2.译码/读操作数DCD/RF3.执行EXE4.访存MEM5.回写WBX物理执行路径vs.理想执行过程2个现象现象1:不同指令的理想执行过程不同现象2:所有指令都有前3个阶段前2阶段完全相同;第3阶段功能有差异启示不同指令的理想执行过程不同,即理想执行时间不同不同指令能否具有不同物理执行路径,以对应理想执行过程?IFDCD/RFEXEMEMWB计算

分支

跳转

?读存储

写存储

单周期数据通路的缺陷模型:PC

组合逻辑

寄存器堆单一组合逻辑实现了全部5个阶段的逻辑功能必然存在关键路径,且关键路径导致每条指令延迟均相同结论:无法利用不同指令具有不同执行需求的潜在特性PCinstructionmemory+4RegisterFilertrsrdALUDatamemoryimmMUXPCRF目录单周期的不足破解关键路径的一般性方法建模多周期数据通路建模多周期数据通路执行过程建模多周期控制器多周期性能分析在关键路径上均匀插入寄存器造成单周期频率低的根本原因在于存在明显的关键路径破解关键路径是时序电路优化的核心内容之一,基本思路是在关键路径上插入一系列寄存器插入的寄存器将关键路径分割为若干小的组合逻辑假设分割的比较均匀,则各组合逻辑延迟都比较小由此就可以大幅度提高系统的时钟频率在关键路径上均匀插入寄存器改造前:Rs与Rd之间的所有组合逻辑都在关键路径上改造后:插入R1和R2后,任意两个寄存器之间的延迟都为TCL1RsCL2CL3Rd01

R1R201

CL3CL1CL2RsRd分段1分段2分段3

假设:CL1、CL2、CL3延迟均为T;忽略MUX延迟分段1{Rs,R1}分段2{R1,R2}分段3{R2,Rd}{R1,Rd}f=1/3Tf=1/TT=TCL1+

TCL2+

TCL3

=3T目录单周期的不足破解关键路径的一般性方法多周期数据通路建模多周期数据通路执行过程建模多周期控制器多周期性能分析多周期数据通路构思单周期的单一路径被物理切分为多段路径在数据通路上插入多个寄存器单一组合逻辑被切分为多段组合逻辑单一关键路径的大延迟变为多个分段路径的小延迟PC指令存储器寄存器堆rtrsrdALU数据存储器NPC12345扩展imm需要的寄存器每个功能部件后面都插入寄存器RF和DM:虽然是时序部件,但在读出操作时表现为组合逻辑16组合逻辑插入的寄存器用途IMIR保存指令RF(读)A和B保存2个寄存器值扩展单元E保存32位扩展值ALUALUOut保存计算结果DM(读)DR保存读出的数据基础多周期数据通路NPC(PC计算):完成与PC相关的一切计算PC+4;PC+imm16;PC+imm26指令存储器AddrDataPC指令寄存器指令[31:26]指令[25:21]指令[20:16]指令[15:0]ABALUZeroOvALU结果ALUOut16扩展01数据存储器AddrReadDataWriteDataPC计算PCIMMNPC261F012M1数据寄存器012寄存器堆A1A2A3WDRD1RD2123451.取指令IF2.译码/读操作数DCD/RF3.执行EXE4.访存MEM5.回写WBE多周期数据通路特点段内执行:每段1个Cycle,段内模型R

C

R寄存器输出

组合逻辑

寄存器写入组合逻辑:如NPC、ALU等RF/DM等:在读操作时,其行为为组合逻辑段间执行:存在逻辑依赖关系前段没有执行,后段执行无意义不是不能执行,而是执行结果无意义例如:指令不读入IR,读操作数就无意义根据指令需求组合分段,构成相应通路不同指令执行,占用不同的功能单元很好的映射不同指令的理想执行过程共有阶段:阶段1(读取指令)、阶段2(读操作数)18

逻辑依赖是分析数据通路构造的关键。多周期数据通路特点在推导某条指令的具体执行路径时,对于任意一级寄存器Ri,只要前面任意一级的寄存器/组合逻辑包含有需要的信息,均可以将相关信息直接输入到19R1C1R2C2R3C3Rn寄存器功能部件寄存器功能部件寄存器功能部件寄存器一条指令的相关信息流动PC指令存储器寄存器堆(读)rtrsrdALU数据存储器NPC扩展imm寄存器堆(写)多周期数据通路的优势T单=关键路径=Tlwf单

=1/T单虽然每条指令都只需1个cycle,但时钟频率低CPI=1PC指令存储器寄存器堆(读)rtrsrdALU数据存储器NPC扩展imm寄存器堆(写)T单多周期数据通路的优势T多=MAX{T取指,T读数,T计算,T访存,T回写}T多≈T单/5,f多

=1/T多≈5f单;时钟频率高每个指令需要多个cycleCPI>1lw:最多,5个cycle,CPI=5PC指令存储器寄存器堆(读)rtrsrdALU数据存储器NPC扩展imm寄存器堆(写)T读数T取指T计算T访存T回写Cycle1:取指令PC驱动IM,读出lw,并写入IRPC驱动NPC,计算PC+4,并写入PC指令执行案例分析:lwR[rt]MEM[R[rs]+sign_ext(imm16)]PC指令存储器rtrsrdALU数据存储器NPC扩展寄存器堆imm取指令lwPC+4

1

取指令:所有指令的公共环节时序:时钟

后,IR装入lw,PC指向lw下一条指令Cycle2:读取寄存器&符号扩展IR[25:21]驱动寄存器堆,读出rs并写入AIR[15:00]驱动扩展单元,符号扩展结果写入E指令执行案例分析:lwPC指令存储器rtrsrdALU数据存储器NPC扩展寄存器堆imm译码/读操作数

1)由于指令没有执行完,PCWr和IRWr都必须为0,以防止误加载新指令。2)寄存器堆仍然会读出rt寄存器的值,只是没有意义。lwPC+4

2baseoff

对于多数指令来说,这个阶段是准备操作数。同时指令产生有效译码结果,因此通常把该阶段称为译码/读操作数Cycle3:ALU计算地址ALU执行加法,计算出的地址写入ALUOut指令执行案例分析:lwPC指令存储器rtrsrdALU数据存储器NPC扩展寄存器堆imm执行lwPC+4baseoff

1)该阶段通常被称为执行。2)与前阶段相同,由于指令没有执行完,PCWr和IRWr都必须为0。

3AddrCycle4:读存储器ALUOut驱动DM读出数据,并写入DR指令执行案例分析:lwPC指令存储器rtrsrdALU数据存储器NPC扩展寄存器堆imm访存lwPC+4baseoff

对于load类指令,该阶段为读存储器;对于store类资料,该阶段为写存储器。该阶段通常被称为访存Addr

4DataCycle5:数据写入寄存器堆DR和IR[21:16]驱动RF,数据写入rt指令执行案例分析:lwPC指令存储器rtrsrdALU数据存储器NPC扩展寄存器堆imm回写lwPC+4baseoffAddrData

5Data写入rt功能部件及其控制信号使用约束PC、IR、RF、DM:需要写使能PCWr/IRWr/RFWr/DMWr:只能在特定时间有效!其他时间必须无效!A/B/E、ALUOut、DR:不需要写使能随时可写多周期分段抽象模型任何一个分段都可以抽象为:Rn-CL-Rn+1Rn:前级寄存器,为组合逻辑提供输入Rn+1:后级寄存器,保存组合逻辑的计算结果CL:组合逻辑,完成计算每个寄存器都扮演读出/写入的双重身份RnRn+1CL寄存器左侧代表写入寄存器右侧代表读出多周期分段时序模型前一个时钟上升沿前级寄存器开始输出有效值经过组合逻辑的计算延迟后,组合逻辑输出正确的计算结果下一个时钟上升沿后级寄存器更新时钟周期前级寄存器组合逻辑后级寄存器

理解时钟周期与时钟上升沿的关系周期是时间,上升沿是时刻组合逻辑在周期内完成计算;计算结果在上升沿时写入寄存器目录单周期的不足破解关键路径的一般性方法多周期数据通路建模多周期数据通路执行过程概述建模多周期控制器多周期性能分析多周期建模的基本思路多周期建模方法包含三大环节根据指令的RTL,逐条指令地建模指令的数据通路及控制信号取值将所有指令的指令级别数据通路综合成完整数据通路将所有控制信号取值综合成控制器里的表达式由于多周期执行指令需要多个周期,因此单周期建模时采用的多个逻辑“环节”就被替换为物理的“时钟周期”为便于推理,采用R-C-R的基本分段模型表示多周期数据通路周期步骤语义RTL功能部件控制信号RCRCRCRCRCRPCIMIRRFA/BALUALUOutDMDRRF(写)多周期建模的基本思路1、每条指令映射到3~5个cycle2、通过寄存器实现信息传递的相关operation必须部署在不同的cycle这是由分段数据通路的依赖性决定的3、可以提早执行的operation就“尽早执行”对于任一电路来说,无论其输出是否被其他电路使用,它都始终在工作与该电路连接的其他电路只是根据条件决定是否采用其输出值而已因此即使其他电路不需要该电路“尽早执行”所产生的结果,也无所谓多周期建模的基本思路4、Cycle1:该周期只能是取指令PC驱动IM读出指令,并将指令写入IR根据“尽早执行”原则,应同时执行PC

PC+45、Cycle2:译码信号有效,并同时产生操作数1)IR存入指令后,控制器就可以产生有效译码结果2)IR有效,意味着RF必然输出rs值和rt值并写入A/B当然,A/B存入的可能不是有意义的值(例如对于jal)3)IR同时也驱动扩展单元,并将扩展立即数写入E同理,E存入的可能不是有意义的值(例如对于add)目录单周期的不足破解关键路径的一般性方法多周期数据通路建模多周期数据通路执行过程Addu建模多周期控制器多周期性能分析ADDU:RTL建模(倒推1)RCRCRCRCRCRPCIMIRRFA/BALUALUOutDMDRRF(写)NPCPC(写)EXTEDM(写)35最后cycle必是ALUOut回写寄存器Cycle-1:回写Op1:ALUOut写入rd寄存器周期步骤语义RTL功能部件控制信号-1回写计算结果回写至rd寄存器RF[rd]ALUOutRFRFWr:1R[rd]

R[rs]+R[rt]读出逻辑写入ADDU:RTL建模(倒推2)RCRCRCRCRCRPCIMIRRFA/BALUALUOutDMDRRF(写)NPCPC(写)EXTEDM(写)36计算结果来自ALU,计算的数据来自A/BCycle-2:计算Op1:A/B驱动ALU计算,结果存入ALUOut周期步骤语义RTL功能部件控制信号-2计算执行加法,结果存入ALUOutALUOutALU(A,B)ALUALUOp:ADDR[rd]

R[rs]+R[rt]读出逻辑写入ADDU:RTL建模(倒推3)RCRCRCRCRCRPCIMIRRFA/BALUALUOutDMDRRF(写)NPCPC(写)EXTEDM(写)37A/B保存的是RF读出的rs和rtCycle-3:读操作数Op1:IR[25:21]驱动RF输出rs,存入AOp2:IR[20:16]驱动RF输出rt,存入B周期步骤语义RTL功能部件控制信号-3读操作数2个操作数存入A/BARF[rs];

BRF[rt]RF无需控制R[rd]

R[rs]+R[rt]读出逻辑写入ADDU:RTL建模(倒推4)RCRCRCRCRCRPCIMIRRFA/BALUALUOutDMDRRF(写)NPCPC(写)EXTEDM(写)38写入IR的一定是指令Cycle-4:取指令Op1:读IM,指令写入IROp2:NPC计算PC+4,并更新PC周期步骤语义RTL功能部件控制信号-4取指令从IM读出指令;计算下条指令地址IR

IM[PC];PC

NPC(PC)IRNPCPCIRWr:1NPCOp:+4PCWr:1R[rd]

R[rs]+R[rt]读出逻辑写入目录单周期的不足破解关键路径的一般性方法多周期数据通路建模多周期数据通路执行过程Ori建模多周期控制器多周期性能分析ORI:RTL描述表指令时间:4个周期执行路径:

IR

A/E

ALUOut

RFR[rt]

R[rs]+zero_ext(imm16)周期步骤语义RTL功能部件控制信号1取指令读取指令;计算下条指令地址IR

IM[PC];PC

NPC(PC)NPCPCIRIRWr:1NPCOp:+4PCWr:12读操作数操作数存入A无符号扩展ARF[rs];EEXT(Imm16)EXTEXTOp:UE3执行执行加法,结果存入ALUOutALUOutALU(A,EXT)ALUALUOp:OR4回写计算结果回写至rt寄存器RF[rt]ALUOutRFRFWr:1Ori的执行与addu/sub非常类似,区别主要在于第2个操作数的来源目录单周期的不足破解关键路径的一般性方法多周期数据通路建模多周期数据通路执行过程Lw/sw建模多周期控制器多周期性能分析LW:RTL建模(倒推)Cycle-1:DM回写DR无功能部件

RFCycle-2:读DMALUOutDMDRR[rt]MEM[R[rs]+sign_ext(imm16)]周期步骤语义RTL功能部件控制信号-1DM回写DR写入rt寄存器RF[rt]DRRFRFWr:1周期步骤语义RTL功能部件控制信号-2读DM读取DM,数据存储DRDRDM[ALUOut]DMLW:RTL建模(倒推)Cycle-3:计算地址A/EALUALUOutCycle-4:读操作数IM[25:21]RFA;IM[15:0]RFER[rt]MEM[R[rs]+sign_ext(imm16)]周期步骤语义RTL功能部件控制信号-3计算地址执行加法,结果存入ALUOutALUOutALU(A,E)ALUALUOp:ADD周期步骤语义RTL功能部件控制信号-4DCD/RF读操作数基地址存入A;偏移符号扩展ARF[rs]EEXT(Imm16)EXTEXTOp:SELW:RTL建模(倒推)Cycle-5:取指令PCIMIR;PCNPCPCR[rt]MEM[R[rs]+sign_ext(imm16)]周期步骤语义RTL功能部件控制信号-5取指令从IM读出指令;计算下条指令地址IR

IM[PC];PC

NPC(PC)IRNPCPCIRWr:1NPCOp:+4PCWr:1LW:RTL描述表指令时间:5个周期执行路径:

IR

A/E

ALUOut

DR

RFR[rt]MEM[R[rs]+sign_ext(imm16)]周期步骤语义RTL功能部件控制信号1取指令读取指令;计算下条指令地址IR

IM[PC];PC

NPC(PC)IRNPCPCIRWr:1;NPCOp:+4;PCWr:12读操作数基地址存入A;偏移符号扩展ARF[rs]EEXT(Imm16)EXTEXTOp:SE3计算地址执行加法,结果存入ALUOutALUOutALU(A,EXT)ALUALUOp:ADD4读存储器读取DM,数据存储DRDRDM[ALUOut]DM5回写DR写入rt寄存器RF[rt]DRRFRFWr:1SW:RTL描述表指令时间:4个周期执行路径:

IR

A/E

ALUOut

DMMEM[R[rs]+sign_ext(imm16)]R[rt]周期步骤语义RTL功能部件控制信号1Fetch取指令读取指令;计算下条指令地址IR

IM[PC];PC

NPC(PC)IRNPCPCIRWr:1NPCOp:+4PCWr:12DCD/RF读操作数基地址存入A;偏移符号扩展ARF[rs]EEXT(Imm16)EXTEXTOp:SE3MA计算地址执行加法,结果存入ALUOutALUOutALU(A,EXT)ALUALUOp:ADD4MW写存储器rt寄存器写入DMDM[ALUOut]RF[rt]DMDMWr:1目录单周期的不足破解关键路径的一般性方法多周期数据通路建模多周期数据通路执行过程Beq建模多周期控制器多周期性能分析Cycle1:取指令Op1:读IM,指令写入IROp2:NPC计算PC+4,并更新PCBEQ:RTL建模(1)48PC(R[rs]==R[rt])

?

PC+4+(sign_ext(imm16)||00):PC+4RCRCRCRCRCRPCIMIRRFA/BALUALUOutDMDRRF(写)NPCPC(写)EXTEDM(写)周期步骤语义RTL功能部件控制信号1取指令从IM读出指令;计算下条指令地址IR

IM[PC];PC

NPC(PC)IRNPCPCIRWr:1NPCOp:+4PCWr:1读出逻辑写入Cycle2:读操作数Op1:IR[25:21]驱动RF输出rs,存入AOp2:IR[20:16]驱动RF输出rt,存入BBEQ:RTL建模(2)49PC(R[rs]==R[rt])

?

PC+4+(sign_ext(imm16)||00):PC+4RCRCRCRCRCRPCIMIRRFA/BALUALUOutDMDRRF(写)NPCPC(写)EXTEDM(写)周期步骤语义RTL功能部件控制信号2读操作数2个操作数存入A/BARF[rs];

BRF[rt]RF无需控制读出逻辑写入问题:cycle3可否条件写PC?取决于:1)分支地址是否就绪;2)Zero是否就绪?分支地址:NPC于cycle2就完成计算cycle1:beq存入IR;PC+4存入PCcycle2:因为NPCOp/imm已有效,所以可计算Zero:ALU于cycle3产生有效状态结论:PC写入的前提条件在cycle3均已产生BEQ:RTL建模(3)50PC(R[rs]==R[rt])

?

PC+4+(sign_ext(imm16)||00):PC+4RCRCRCRCRCRPCIMIRRFA/BALUALUOutDMDRRF(写)NPCPC(写)EXTEDM(写)Cycle3:条件写PCOp1:ALU比较A和B,根据Zero决定是否写PCBEQ:RTL建模(3)51PC(R[rs]==R[rt])

?

PC+4+(sign_ext(imm16)||00):PC+4周期步骤语义RTL功能部件控制信号3条件写分支地址执行减法,并根据Zero写PCZeroALU(A,B)PCZero?

NPC(PC,imm16):PCALUNPCPCALUOp:SUBNPC:BNPCPCWr:ZeroRCRCRCRCRCRPCIMIRRFA/BALUALUOutDMDRRF(写)NPCPC(写)EXTEDM(写)读出逻辑写入BEQ:RTL描述表指令时间:3个cycle执行路径:

IR

A/B

PC

PC+4:cycle1;

PC+4+偏移:cycle3周期步骤语义RTL功能部件控制信号1取指令读取指令;计算下条指令地址IR

IM[PC];PC

NPC(PC)NPCPCIRIRWr:1NPCOp:+4PCWr:12读操作数RS操作数存入A;32位无符号扩展ARF[rs];

BRF[rt]RF3计算并写分支地址执行减法,判断ZeroZeroALU(A,B)PCZero?

NPC(PC,imm16):PCALUNPCPCALUOp:SUBNPC:BNPCPCWr:Zero目录单周期的不足破解关键路径的一般性方法多周期数据通路建模多周期数据通路执行过程Jal建模多周期控制器多周期性能分析JAL:RTL建模分析54PCPC[31:28]||imm26||00R[31]PC+4更新PC的前提:PCWr:IR存入jal后就可以产生imm26:IR存入jal后就可以产生回写寄存器的前提:RFWr:IR存入jal后就可以产生PC+4:第1个cycle后,PC+4就计算完毕以上分析表明:写寄存器&更新PC,仅仅依赖于IR是否存储了jalJAL:RTL描述表55指令时间:2个cycle执行路径:

IR

PC/RFjal存入IR后,就可以启动写寄存器和更新PC周期步骤语义RTL功能部件控制信号1取指令读取指令;计算下条指令地址IR

IM[PC];PC

NPC(PC)NPCPCIRIRWr:1NPCOp:+4PCWr:12跳转计算并保存转移PC;保存PCRF[31]PCPCNPC(PC,imm26)RFNPCPCRFWr:1NPCOp:JNPCPCWr:1PCPC[31:28]||imm26||00R[31]PC+4目录单周期的不足破解关键路径的一般性方法多周期数据通路建模多周期数据通路执行过程Lui建模多周期控制器多周期性能分析Cycle-1:回写寄存器Op1:E写入rt寄存器LUI:RTL建模(倒推1)57RCRCRCRCRCRPCIMIRRFA/BALUALUOutDMDRRF(写)NPCPC(写)EXTEDM(写)周期步骤语义RTL功能部件控制信号1回写扩展数据回写至rt寄存器RF[rt]ERFRFWr:1R[rt]

imm16||016读出逻辑写入Cycle-2:高位扩展Op1:IR[15:0]驱动EXT高位扩展,结果写入ELUI:RTL建模(倒推2)58RCRCRCRCRCRPCIMIRRFA/BALUALUOutDMDRRF(写)NPCPC(写)EXTEDM(写)周期步骤语义RTL功能部件控制信号1高位扩展高位扩展,结果写EE

EXT(Imm16)EXTEXTOp:HER[rt]

imm16||016读出逻辑写入LUI:RTL建模(倒推3)59Cycle-3:读取指令Op1:读IM,指令写入IROp2:NPC计算PC+4,并更新PC周期步骤语义RTL功能部件控制信号-3取指令从IM读出指令;计算下条指令地址IR

IM[PC];PC

NPC(PC)IRNPCPCIRWr:1NPCOp:+4PCWr:1RCRCRCRCRCRPCIMIRRFA/BALUALUOutDMDRRF(写)NPCPC(写)EXTEDM(写)R[rt]

imm16||016读出逻辑写入LUI:RTL描述表60指令时间:3个cycle执行路径:

IR

E

RFlui存入IR后,就可以启动写寄存器和更新PC周期步骤语义RTL功能部件控制信号1取指令从IM读出指令;计算下条指令地址IR

IM[PC];PC

NPC(PC)IRNPCPCIRWr:1NPCOp:+4PCWr:12高位扩展高位扩展,结果写EE

EXT(Imm16)EXTEXTOp:HE3回写扩展数据回写至rt寄存器RF[rt]ERFRFWr:1R[rt]

imm16||016LUI:RTL描述表(4cycle)指令时间:4个cycle执行路径:

IR

A/E

ALUOut

RF借用R型计算注意$0的用途:可以体会MIPS指令格式定义的巧妙周期步骤语义RTL功能部件控制信号1取指令从IM读出指令;计算下条指令地址IR

IM[PC];PC

NPC(PC)NPCPCIRIRWr:1NPCOp:+4PCWr:12读操作数$0存入A无符号扩展ARF[0]E

EXT(Imm16)EXTEXTOp:HE3执行执行OR,结果存入ALUOutALUOutALU(A,E)ALUALUOp:OR4回写计算结果回写至rt寄存器RF[rt]ALUOutRFRFWr:1Lui的第2种思路是借用ALU的运算功能,于是与addu/sub/ori等类似,需要4个时钟周期目录单周期的不足破解关键路径的一般性方法多周期数据通路建模多周期数据通路执行过程多周期执行的时序综合多周期数据通路综合多周期控制器多周期性能分析时序分析的目的1、时序是数字电路的理解与设计难点之一理解不正确,设计/调试就易于出错2、有利于后续状态机的设计与理解更好的理解寄存器的数据准备与数据写入的关系3、多周期时序复杂度适中,适于讲解时序变化:PC、IR、A/B、DR、RF、DM会发生变化稳定:在1条指令内只变化1次(PC除外)时序分析要点:RTL制导RTL制导分析需要哪些必要环节并非所有环节都需要(多周期的基本特点)只需关注前序寄存器与后继寄存器间关系前序寄存器经过组合计算后的值,在时钟沿到来后写入后继寄存器

注意时钟周期的概念2个时钟边沿之间的时间CLK1LW时序分析:Cycle1Cycle1:取指令(公共周期)读取IM至IR;同时PC自增4X:代表其值无意义边沿后的颜色:代表延迟周期步骤RTLCycle1FetchIR

IM[PC];PC

NPC(PC)Cycle2DCD/RFARF[rs]E

EXT(Imm16)Cycle3MAALUOutALU(A,EXT)Cycle4MRDRDM[ALUOut]Cycle5MemWBRF[rt]DRPClw地址PC+4IMlw[PC+4]IR前条指令lwRF(读出)X基地址A/BXXExtX偏移EXXALUXXALUOutXXDM(读出)XXDRXXFetchCycle1CLK1TCycle1之后,IR存入了lw。于是在clk1上升沿之后(即cycle2),在IR驱动控下:1)控制器开始译码产生各种控制信号2)RF读出2个寄存器值3)EXT产生32位扩展数LW时序分析:Cycle2Cycle2:读操作数(公共周期)读操作数,同时开始译码扩展单元产生32位扩展数周期步骤RTLCycle1FetchIR

IM[PC];PC

NPC(PC)Cycle2DCD/RFARF[rs]E

EXT(Imm16)Cycle3MAALUOutALU(A,EXT)Cycle4MRDRDM[ALUOut]Cycle5MemWBRF[rt]DRPClw地址PC+4PC+4IMlw[PC+4][PC+4]IR前条指令lwlwRF(读出)X基地址基地址A/BXX基地址ExtX偏移偏移EXX偏移ALUXXDM地址ALUOutXXXDM(读出)XXXDRXXXFetchCycle1DCD/RFCycle2CLK1CLK2LW时序分析:Cycle3Cycle3:计算地址计算地址并存入ALUOut周期步骤RTLCycle1FetchIR

IM[PC];PC

NPC(PC)Cycle2DCD/RFARF[rs]E

EXT(Imm16)Cycle3MAALUOutALU(A,EXT)Cycle4MRDRDM[ALUOut]Cycle5MemWBRF[rt]DRPClw地址PC+4PC+4PC+4IMlw[PC+4][PC+4][PC+4]IR前条指令lwlwlwRF(读出)X基地址基地址基地址A/BXX基地址基地址ExtX偏移偏移偏移EXX偏移偏移ALUXXDM地址DM地址ALUOutXXXDM地址DM(读出)XXX数据DRXXXXFetchCycle1DCD/RFCycle2MACycle3CLK1CLK2CLK3LW时序分析:Cycle4Cycle4:读存储器ALUOut驱动DM,数据写入DR周期步骤RTLCycle1FetchIR

IM[PC];PC

NPC(PC)Cycle2DCD/RFARF[rs]E

EXT(Imm16)Cycle3MAALUOutALU(A,EXT)Cycle4MRDRDM[ALUOut]Cycle5MemWBRF[rt]DRPClw地址PC+4PC+4PC+4PC+4IMlw[PC+4][PC+4][PC+4][PC+4]IR前条指令LwLwLwlwRF(读出)X基地址基地址基地址基地址A/BXX基地址基地址基地址ExtX偏移偏移偏移偏移EXX偏移偏移偏移ALUXXDM地址DM地址DM地址ALUOutXXXDM地址DM地址DM(读出)XXX数据数据DRXXXX数据FetchCycle1DCD/RFCycle2MACycle3MRCycle4CLK1CLK2CLK3CLK4PClw地址PC+4PC+4PC+4PC+4PC+4IMlw[PC+4][PC+4][PC+4][PC+4][PC+4]IR前条指令lwlwlwlwlwRF(读出)X基地址基地址基地址基地址基地址A/BXX基地址基地址基地址基地址ExtX偏移偏移偏移偏移偏移EXX偏移偏移偏移偏移ALUXXDM地址DM地址DM地址DM地址ALUOutXXXDM地址DM地址DM地址DM(读出)XXX数据数据数据DRXXXX数据数据LW时序分析:Cycle5Cycle5:写寄存器DM读出数据写入RFFetchCycle1DCD/RFCycle2MACycle3MRCycle4MemWBCycle5周期步骤RTLCycle1FetchIR

IM[PC];PC

NPC(PC)Cycle2DCD/RFARF[rs]E

EXT(Imm16)Cycle3MAALUOutALU(A,EXT)Cycle4MRDRDM[ALUOut]Cycle5MemWBRF[rt]DRCLK1CLK2CLK3CLK4CLK5LW时序分析:简明版可以不考虑延迟只关注前后依赖关系周期步骤RTLCycle1FetchIR

IM[PC];PC

NPC(PC)Cycle2DCD/RFARF[rs]E

EXT(Imm16)Cycle3MAALUOutALU(A,EXT)Cycle4MRDRDM[ALUOut]Cycle5MemWBRF[rt]DRPClw地址PC+4PC+4PC+4PC+4PC+4IMlw[PC+4][PC+4][PC+4][PC+4][PC+4]IR前条指令lwlwlwlwlwRF(读出)X基地址基地址基地址基地址基地址A/BXX基地址基地址基地址基地址ExtX偏移偏移偏移偏移偏移EXX偏移偏移偏移偏移ALUXXDM地址DM地址DM地址DM地址ALUOutXXXDM地址DM地址DM地址DM(读出)XXX数据数据数据DRXXXX数据数据FetchCycle1DCD/RFCycle2MACycle3MRCycle4MemWBCycle5CLK1CLK2CLK3CLK4CLK5目录单周期的不足破解关键路径的一般性方法多周期数据通路建模多周期数据通路执行过程综合多周期数据通路综合多周期控制器多周期性能分析多周期数据通路描述表多周期建模方法与单周期思路完全一致数据通路表中多了IR、A/B、E、ALUOut、DR对于所有指令,这些寄存器输入源都是固定的IR—IMA/B—RF.RD1/RF.RD2E—EXT;ALUOut—ALUDR—DM72部件输入任意指令NPCPCImmPCNPCIMAIRIM.DORFWDA3ARF.RD1BRF.RD2EXTImmEEXTALUABALUOutALU.CDMADIDRDM.DOlw:从RTL到数据通路部分部件的输入源改为寄存器(注意红色信号)73部件输入lwNPCPCPC.PCImm

PCDINPC.NPCIMAPC.DOIRIM.DORFWDDRA3IR[20:16]ARF.RD1BRF.RD2EXTImmIR[15:0]EEXTALUAABEXTALUOutALUDMAALUOutWD

DRDM.RD周期RTL控制信号1IR

IR[PC];PC

NPC(PC)IRWr:1;NPCOp:+4;PCWr:12ARF[rs]EEXT(Imm16)EXTOp:SE3ALUOutALU(A,EXT)ALUOp:ADD4DRDM[ALUOut]5RF[rt]DRRFWr:1lwDM.DOIM[20:16]IM[15:0]EXT.ExtRF.RD1EXT.ExtALU.C

单周期多周期jal:从RTL到数据通路74部件输入jalNPCPCPC.PCImmIR[25:0]PCDINPC.NPCIMAPC.DOIRIMRFWDPC.DOA30x1FABEXTImmEALUABALUOutDMAWDDR周期RTL控制信号1IR

IM[PC];PC

NPC(PC)IRWr:1NPCOp:+4PCWr:12RF[31]PCPCNPC(PC,imm26)RFWr:1NPCOp:JNPCPCWr:1在单周期中,RF的回写数据来源于NPC.PC4。在多周期中,由于PC已经在cycle1完成了PC+4计算,因此我们不再需要NPC.PC4了。用同样方法建模

其他指令的多周期数据通路75综合形成完整的数据通路单周期数据通路表中插入寄存器76部件输入adduoribeqlwswjal综合NPCPCPC.DOPC.DOPC.DOPC.DOPC.DOPC.DOPC.DOImm

IR[15:0]

IR[25:0]IR[25:0]PCDINPC.NPCNPC.NPCNPC.NPCNPC.NPCNPC.NPCNPC.NPCNPC.NPCIMAPC.DOPC.DOPC.DOPC.DOPC.DOPC.DOPC.DOIRIMIMIMIMIMIMIMRFWDALUOutALUOut

DR

PCALUOutDRPCA3IR[15:11]IR[20:16]

IR[20:16]

0x1FIR[15:11]IR[20:16]0x1F

ARF.RD1RF.RD1RF.RD1RF.RD1RF.RD1RF.RD1BRF.RD2RF.RD2RF.RD2EXTImm

IR[15:0]

IR[15:0]IR[15:0]

IR[15:0]EEXT.ExtEXT.ExtEXT.ExtEXT.ExtALUAAAAAA

ABBEBEE

BE

ALUOutALU.CALU.CALU.CALU.CALU.CDMA

ALUOutALUOut

ALUOutWD

B

BDRDM.RDDM.RD构造MUX单周期数据通路表中插入寄存器77部件输入adduoribeqlwswjal综合NPCPCPC.DOPC.DOPC.DOPC.DOPC.DOPC.DOPC.DOImm

IR[15:0]

IR[25:0]IR[25:0]PCDINPC.NPCNPC.NPCNPC.NPCNPC.NPCNPC.NPCNPC.NPCNPC.NPCIMAPC.DOPC.DOPC.DOPC.DOPC.DOPC.DOPC.DOIRIMIMIMIMIMIMIMRFWDALUOutALUOut

DR

PC0:ALUOut1:DR2:PCA3IR[15:11]IR[20:16]

IR[20:16]

0x1F0:IR[15:11]1:IR[20:16]2:0x1F

ARF.RD1RF.RD1RF.RD1RF.RD1RF.RD1RF.RD1BRF.RD2RF.RD2RF.RD2EXTImm

IR[15:0]

IR[15:0]IR[15:0]

IR[15:0]EEXT.ExtEXT.ExtEXT.ExtEXT.ExtALUAAAAAA

ABBEBEE

0:B1:E

ALUOutALU.CALU.CALU.CALU.CALU.CDMA

ALUOutALUOut

ALUOutWD

B

BDRDM.RDDM.RDMRFWDMRFA3MALUB构造MUX单周期数据通路表中插入寄存器78部件输入adduoribeqlwswjal综合NPCPCPC.DOPC.DOPC.DOPC.DOPC.DOPC.DOPC.DOImm

IR[15:0]

IR[25:0]IR[25:0]PCDINPC.NPCNPC.NPCNPC.NPCNPC.NPCNPC.NPCNPC.NPCNPC.NPCIMAPC.DOPC.DOPC.DOPC.DOPC.DOPC.DOPC.DOIRIMIMIMIMIMIMIMRFWDALUOutALUOut

DR

PC0:ALUOut1:DR2:PCA3IR[15:11]IR[20:16]

IR[20:16]

0x1F0:IR[15:11]1:IR[20:16]2:0x1F

ARF.RD1RF.RD1RF.RD1RF.RD1RF.RD1RF.RD1BRF.RD2RF.RD2RF.RD2EXTImm

IR[15:0]

IR[15:0]IR[15:0]

IR[15:0]EEXT.ExtEXT.ExtEXT.ExtEXT.ExtALUAAAAAA

ABBEBEE

0:B1:EALUOutALUALUALUALUALUDMAd

ALUOutALUOut

ALUOutDin

B

BDRDM.DODM.DO00000110MRFWD00010110MRFA301011MALUBMRFWDMRFA3MALUB建立指令与MUX控制信号的取值对应关系以addu为例,回写数据来自ALUOut,而ALUOut连接至MRFWD的0端口,所以MRFWD的控制信号取值应为00构造MUX单周期数据通路表中插入寄存器79部件输入adduoribeqlwswjal综合NPCPCPC.DOPC.DOPC.DOPC.DOPC.DOPC.DOPC.DOImm

IR[15:0]

IR[25:0]IR[25:0]PCDINPC.NPCNPC.NPCNPC.NPCNPC.NPCNPC.NPCNPC.NPCNPC.NPCIMAPC.DOPC.DOPC.DOPC.DOPC.DOPC.DOPC.DOIRIMIMIMIMIMIMIMRFWDALUOutALUOut

DR

PC0:ALUOut1:DR2:PCA3IR[15:11]IR[20:16]

IR[20:16]

0x1F0:IR[15:11]1:IR[20:16]2:0x1F

ARF.RD1RF.RD1RF.RD1RF.RD1RF.RD1RF.RD1BRF.RD2RF.RD2RF.RD2EXTImm

IR[15:0]

IR[15:0]IR[15:0]

IR[15:0]EEXT.ExtEXT.ExtEXT.ExtEXT.ExtALUAAAAAA

ABBEBEE

0:B1:E

ALUOutALUALUALUALUALUDMAd

ALUOutALUOut

ALUOutDin

B

BDRDM.DODM.DO`ALU`ALU`MEM`PCMRFWD`RD`RT`RT`R31MRFA3`B`EXT`B`EXT`EXTMALUBMRFWDMRFA3MALUB建立指令与MUX控制信号的取值对应关系建议在Verilog中使用宏,而不是直接用00,01,10例如:`ALU~2’b00,`MEM~2’b01,`PC~2’b10目录单周期的不足破解关键路径的一般性方法多周期数据通路建模多周期数据通路执行过程综合多周期数据通路综合多周期控制器多周期性能分析多周期控制器概述由于多周期CPU执行一条指令需要多个周期,因此多周期控制就必须具备如下特点:1)需要一种能够根据不同指令产生不同个时钟周期的基础性电路2)控制信号既与指令编码(opcode/funct)有关,还与时钟周期有关例如,addu需要4个时钟周期,但RF的写使能只能在第4个时钟周期有效多周期控制器概述由于多周期CPU执行一条指令需要多个周期,因此多周期控制就必须具备如下特点:1)需要一种能够根据不同指令产生不同个时钟周期的基础性电路2)控制信号既与指令编码(opcode/funct)有关,还与时钟周期有关例如,addu需要4个时钟周期,但RF的写使能只能在第4个时钟周期有效AND阵列OR阵列指令周期发生器周期指令变量op,f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论