单周期数据通路的设计单周期控制器的设计第课件.pptx

上传人(卖家):晟晟文业 文档编号:5197664 上传时间:2023-02-16 格式:PPTX 页数:147 大小:1.78MB
下载 相关 举报
单周期数据通路的设计单周期控制器的设计第课件.pptx_第1页
第1页 / 共147页
单周期数据通路的设计单周期控制器的设计第课件.pptx_第2页
第2页 / 共147页
单周期数据通路的设计单周期控制器的设计第课件.pptx_第3页
第3页 / 共147页
单周期数据通路的设计单周期控制器的设计第课件.pptx_第4页
第4页 / 共147页
单周期数据通路的设计单周期控制器的设计第课件.pptx_第5页
第5页 / 共147页
点击查看更多>>
资源描述

1、第一讲第一讲 单周期数据通路的设计单周期数据通路的设计CPU的功能及其与计算机性能的关系的功能及其与计算机性能的关系数据通路的位置数据通路的位置单周期数据通路的设计单周期数据通路的设计 数据通路的功能和实现数据通路的功能和实现-操作元件(组合逻辑部件)操作元件(组合逻辑部件)-状态状态/存储元件(时序逻辑部件)存储元件(时序逻辑部件)数据通路的定时数据通路的定时选择选择MIPS指令集的一个子集作为指令集的一个子集作为CPU的实现目标的实现目标 下条指令地址计算与取指令部件下条指令地址计算与取指令部件 R型指令的数据通路型指令的数据通路 访存指令的数据通路访存指令的数据通路 立即数运算指令的数据

2、通路立即数运算指令的数据通路 分支和跳转指令的数据通路分支和跳转指令的数据通路综合所有指令的数据通路综合所有指令的数据通路主主 要要 内内 容容回顾:回顾:CPU功能及其与计算机性能的关系功能及其与计算机性能的关系与或门等与或门等(逻辑运算)(逻辑运算)移位器移位器寄存器寄存器运算控制逻辑运算控制逻辑(大家都需要:多路选(大家都需要:多路选择器和传输线路等)择器和传输线路等)加法器加法器ALUALU运算部件运算部件ALU以加法器为核心以加法器为核心运算部件以运算部件以ALU/加法加法器为核心器为核心指令执行控制逻辑指令执行控制逻辑更多寄存器等更多寄存器等CPUCPU计算机性能计算机性能(程序执

3、行快慢程序执行快慢)由三个关由三个关键因素决定(回顾)键因素决定(回顾)指令数目、指令数目、CPI、时钟周期、时钟周期-指令数目由编译器和ISA决定-时钟周期和CPI由CPU的实现来决定因此,因此,CPU的设的设计与实现非常重计与实现非常重要!它直接影响要!它直接影响计算机的性能。计算机的性能。CPU基本组成原理图基本组成原理图执行部件执行部件控制部件控制部件CPU 由由 执行部件执行部件 和和 控制部件控制部件组成组成指令寄存器指令寄存器-IR程序计数器程序计数器-PC控制器控制器 主要由主要由 指令译码器指令译码器 和和 控控制信号形成部件制信号形成部件 组成组成CPU的工作:取指令,指令

4、译码,的工作:取指令,指令译码,取操作数,运算,存结果(每步都取操作数,运算,存结果(每步都需检测需检测“异常异常”“中断中断”)数据通路(执行部件)的位置数据通路(执行部件)的位置计算机的五大组成部分:计算机的五大组成部分:什么是数据通路(什么是数据通路(DataPath)?指令执行过程中,数据所经过的路径,包括路径中的部件。它是指令执行过程中,数据所经过的路径,包括路径中的部件。它是指令指令的执行部件的执行部件。进行数据存储、处理、传送。进行数据存储、处理、传送控制器(控制器(Control)的功能是什么?)的功能是什么?对指令进行译码,生成指令对应的控制信号,控制数据通路的动作。对指令进

5、行译码,生成指令对应的控制信号,控制数据通路的动作。能对执行部件发出控制信号,是能对执行部件发出控制信号,是指令的控制部件指令的控制部件。ControlMemoryCPUInputOutputDatapathDatapath注意以下层次结构:注意以下层次结构:CPU执行部件(数据通路)执行部件(数据通路)操作元件操作元件 存储(状态)元件存储(状态)元件-寄存器寄存器控制部件(控制器)控制部件(控制器)操作元件:操作元件:组合组合逻辑电路逻辑电路加法器加法器(Adder)多路选择器多路选择器 (MUX)算逻部件算逻部件(ALU)32AB32Y32SelectMUX3232AB32ResultZ

6、eroOPALU3232AB32SumCarryAdderCarryIn3Decoderout0out1out7out2译码器译码器(Decoder)控制信号控制信号组合逻辑元件的特点:组合逻辑元件的特点:其输出只取决于当前的输入。即:若其输出只取决于当前的输入。即:若输入一样,则其输出也一样输入一样,则其输出也一样定时:所有输入到达后,经过一定的定时:所有输入到达后,经过一定的逻辑门延时,输出端改变,并保持到逻辑门延时,输出端改变,并保持到下次改变,下次改变,不需要时钟信号不需要时钟信号来定时来定时状态元件:状态元件:时序时序逻辑电路逻辑电路状态(存储)元件的特点:状态(存储)元件的特点:具

7、有存储功能,在具有存储功能,在时钟控制下时钟控制下输入被写到电路中,直到下个时钟到达输入被写到电路中,直到下个时钟到达 输入端状态由时钟决定何时被写入,输出端状态随时可以读出输入端状态由时钟决定何时被写入,输出端状态随时可以读出定时方式:规定信号何时写入状态元件或何时从状态元件读出定时方式:规定信号何时写入状态元件或何时从状态元件读出 边沿触发(边沿触发(edge-triggered)方式:)方式:-状态单元中的值只在时钟边沿改变。每个时钟周期改变一次。状态单元中的值只在时钟边沿改变。每个时钟周期改变一次。上升沿(上升沿(rising edge)触发:在时钟正跳变时进行读触发:在时钟正跳变时进

8、行读/写。写。下降沿(下降沿(falling edge)触发:在时钟负跳变时进行读)触发:在时钟负跳变时进行读/写。写。cycle timerising edgefalling edge状态元件中何时状态被改变?状态元件中何时状态被改变?切记:状态单元的输入信息总是在一个时钟边沿到达后的切记:状态单元的输入信息总是在一个时钟边沿到达后的“Clk-to-Q”时才被写入到单元中,此时的输出才反映新的状态值时才被写入到单元中,此时的输出才反映新的状态值数据通路中的状态元件:寄存器数据通路中的状态元件:寄存器(组组)(Latch Prop-锁存延迟锁存延迟)Q总是在总是在clock-to-Q后跟着后跟

9、着D变化变化这期间这期间D的变化不影响的变化不影响Q状态元件状态元件:寄存器和寄存器组寄存器和寄存器组寄存器(寄存器(Register)有一个写使能(有一个写使能(Write Enable-WE)信号)信号 0:时钟边沿到来时,输出不变时钟边沿到来时,输出不变 1:时钟边沿到来时,输出开始变为输入时钟边沿到来时,输出开始变为输入 若每个时钟边沿都写入,则不需若每个时钟边沿都写入,则不需WE信号信号寄存器组(寄存器组(Register File)两个读口(两个读口(组合逻辑操作组合逻辑操作):):busA和和busB分别由分别由RA和和RB给出地址。地址给出地址。地址RA或或RB有效后,经一个有

10、效后,经一个“取数时间取数时间(AccessTime)”,busA和和busB有效。有效。一个写口(一个写口(时序逻辑操作时序逻辑操作):):写使能为写使能为1的情况下,时钟边沿到来时,的情况下,时钟边沿到来时,busW传来传来的值开始被写入的值开始被写入RW指定的寄存器中。指定的寄存器中。ClkData InWrite EnableNNData OutClkbusWWrite Enable3232busA32busB555RW RA RB32 32-bitRegisters寄存器组的内部结构寄存器组的内部结构busWCD031MUXMXURegister 0Register 1Registe

11、r 30Register 31Write EnableRW32-to-1DecoderRARBbusAbusB ClkCDCDCD每个寄存器由每个寄存器由32个触发器组成个触发器组成;输入数据来自输入数据来自busW,读出数据分别送,读出数据分别送busA和和busB;WriteEnable信号控制是否写入新值。信号控制是否写入新值。Back to add理想存储器(理想存储器(idealized memory)Data Out:读出数据 Data In:写入数据 Address:存储器地址 读操作(组合逻辑操作):地址Address有效后,经一个“取数时间AccessTime”,Data O

12、ut上数据有效。写操作(时序逻辑操作):写使能为1的情况下,时钟Clk边沿到来时,Data In传来的值开始被写入Address指定的存储单元中。额外假设的状态元件额外假设的状态元件:理想存储器理想存储器 ClkData InWrite Enable3232DataOutAddress为简化数据通路操作说明,把存储器简化为带时钟信号为简化数据通路操作说明,把存储器简化为带时钟信号Clk的理想模型。并非真实存在于的理想模型。并非真实存在于CPU中!中!数据通路与时序控制数据通路与时序控制假定采用下降沿触发(负跳变)方式(也可以是上升沿方式)假定采用下降沿触发(负跳变)方式(也可以是上升沿方式)所

13、有状态单元在下降沿写入信息,经过所有状态单元在下降沿写入信息,经过Latch Prop(clk-to-Q)后输出有效后输出有效 Cycle Time=Latch Prop+Longest Delay Path+Setup+Clock Skew Clk寄存器的输入可变化SetupHold.Setup Hold数据通路由数据通路由“+状态元件状态元件+操作元件操作元件(组合电路组合电路)+状态元件状态元件+”组成组成只有状态元件能存储信息,所有操作元件都须从状态单元接收输入,并将输出写只有状态元件能存储信息,所有操作元件都须从状态单元接收输入,并将输出写入状态单元中。其输入为前一时钟生成的数据,输

14、出为当前时钟所用的数据入状态单元中。其输入为前一时钟生成的数据,输出为当前时钟所用的数据现代计算机的时钟周期现代计算机的时钟周期ClkClk数据通路与时序控制数据通路与时序控制现代计算机都是同步系统现代计算机都是同步系统(Synchronous system)所有动作有专门时序信号来定时所有动作有专门时序信号来定时 同步系统常用的定时信号:时钟同步系统常用的定时信号:时钟现代计算机中的现代计算机中的“指令周期指令周期”CPU取并执行一条指令的时间取并执行一条指令的时间 每条指令的指令周期肯定一样吗?每条指令的指令周期肯定一样吗?不一定不一定 一个指令周期可分为取指令、读操作数、执行并写结果等多

15、个步一个指令周期可分为取指令、读操作数、执行并写结果等多个步骤,将在几个时钟周期内完成。骤,将在几个时钟周期内完成。准备工作:组成指令功能的四种基本操作准备工作:组成指令功能的四种基本操作每条指令的功能总是由以下四种基本操作来实现:每条指令的功能总是由以下四种基本操作来实现:(1)读取某一主存单元的内容,并将其装入某个寄存器;)读取某一主存单元的内容,并将其装入某个寄存器;(2)把一个数据从某个寄存器存入给定的主存单元中;)把一个数据从某个寄存器存入给定的主存单元中;(3)把一个数据从某个寄存器送到另一个寄存器或者)把一个数据从某个寄存器送到另一个寄存器或者ALU;(4)进行某种算术运算或逻辑

16、运算,将结果送入某个寄存器。)进行某种算术运算或逻辑运算,将结果送入某个寄存器。操作功能可形式化描述操作功能可形式化描述 描述语言称为寄存器传送语言描述语言称为寄存器传送语言RTL(Register Transfer Language)本章所用的本章所用的RTL规定如下:规定如下:(1)Rr寄存器寄存器r的内容;的内容;(2)Maddr读取主存单元读取主存单元addr的内容;的内容;(3)“”表示传送操作,传送源在右,传送目的在左;表示传送操作,传送源在右,传送目的在左;(4)PC表示程序计数器表示程序计数器PC的值;的值;(5)OPdata对数据对数据data进行进行OP操作。操作。单总线数

17、据通路单总线数据通路 四种基本操作的时序四种基本操作的时序 在通用寄存器之间传送数据在通用寄存器之间传送数据 R0out,Yin 完成算术、逻辑运算完成算术、逻辑运算R1out,YinR2out,Add,ZinZout,R3in 从主存取字从主存取字 R1out,MARinRead,WMFC(等待等待MFC)MDRout,R2in 写字到主存写字到主存R1out,MARinR2out,MDRin,Write,WMFCRR2MRR1 MRR1 RR2CPU访存有两种通信方式访存有两种通信方式早期:直接访问早期:直接访问MM,“异步异步”方式,用方式,用MFC应答信号;现在:先应答信号;现在:先C

18、ache后后MM,“同步同步”方式,无需应答信号。方式,无需应答信号。问题:时钟周期的宽度如何确定?问题:时钟周期的宽度如何确定?以以“Riout,OP,Zin”所花时间来确定还所花时间来确定还是以是以“Read/Write”所花时间来确定所花时间来确定?以上四种操作各需要几个时钟周期以上四种操作各需要几个时钟周期?1Cycle?3Cycles?3Cycles?3Cycles?Read/Write时间更时间更长,故以此为准!长,故以此为准!OP:Add、Sub、And、Or 等等通通用用寄寄存存器器总线连接总线连接方式!方式!内总线内总线内总线内总线外总线外总线复习:复习:MIPS的三种指令类

19、型的三种指令类型ADD and SUBSTRACT add rd,rs,rt sub rd,rs,rtOR Immediate:ori rt,rs,imm16LOAD and STORE lw rt,rs,imm16 sw rt,rs,imm16BRANCH:beq rs,rt,imm16JUMP:j targetoptarget address026316 bits26 bitsoprsrtrdshamtfunc0611162126316 bits6 bits5 bits5 bits5 bits5 bitsoprsrtimmediate0162126316 bits16 bits5 bits

20、5 bits本讲目标:实现以上本讲目标:实现以上7条指令对应的数据通路!条指令对应的数据通路!教材中实现了教材中实现了11条指令,可将条指令,可将7条指令和条指令和11条指条指令的数据通路进行对比,以深入理解设计原理。令的数据通路进行对比,以深入理解设计原理。大家记得是哪三种类型?大家记得是哪三种类型?R-Type、I-Type、J-Type设计处理器的步骤设计处理器的步骤第一步:分析每条指令的功能,并用第一步:分析每条指令的功能,并用RTL(Register Transfer Language)来表示。来表示。第二步:根据指令的功能给出所需的元件,并考虑如何将他们互连。第二步:根据指令的功能

21、给出所需的元件,并考虑如何将他们互连。第三步:确定每个元件所需控制信号的取值。第三步:确定每个元件所需控制信号的取值。第四步:汇总所有指令所涉及到的控制信号,生成一张反映指令与控制信第四步:汇总所有指令所涉及到的控制信号,生成一张反映指令与控制信 号之间关系的表。号之间关系的表。第五步:根据表得到每个控制信号的逻辑表达式,据此设计控制器电路。第五步:根据表得到每个控制信号的逻辑表达式,据此设计控制器电路。u 处理器设计涉及到处理器设计涉及到数据通路的设计数据通路的设计和和控制器的设计控制器的设计u 数据通路中有两种元件数据通路中有两种元件 操作元件:由组合逻辑电路实现操作元件:由组合逻辑电路实

22、现 存储(状态)元件:由时序逻辑电路实现存储(状态)元件:由时序逻辑电路实现ISA确定后,进行处理器设计的大致步骤确定后,进行处理器设计的大致步骤RTL:The ADD Instruction(加法指令)(加法指令)add rd,rs,rt MPC从从PC所指的内存单元中取指令所指的内存单元中取指令 Rrd Rrs+Rrt 从从rs、rt 所指的寄存器中取数后所指的寄存器中取数后 相加。若结果不溢出,则将结果送相加。若结果不溢出,则将结果送rd 所所 指的寄存器中;若结果溢出,则不送结指的寄存器中;若结果溢出,则不送结 果,并转到果,并转到“溢出处理程序溢出处理程序”执行。执行。PC PC+4

23、 PC加加4,使,使PC指向下一条指令指向下一条指令oprsrtrdshamtfunc0611162126316 bits6 bits5 bits5 bits5 bits5 bitsRTL:The Load Instruction(装入指令)(装入指令)lwrt,rs,imm16 MPC (同加法指令同加法指令)Addr Rrs+SignExt(imm16)计算数据地址计算数据地址(立即数要进行符号扩展立即数要进行符号扩展)Rrt MAddr 从存储器中取出数据,装入到寄存器中从存储器中取出数据,装入到寄存器中 PC PC+4 (同加法指令同加法指令)oprsrtimm160162126316

24、 bits16 bits5 bits5 bits取指令部件取指令部件(Instruction Fetch Unit)每条指令都有的公共操作:每条指令都有的公共操作:取指令取指令:MPC 更新更新PC:PC PC+4 下地址逻辑:或者实现下地址逻辑:或者实现+4,或者在需要转移(,或者在需要转移(Branch and Jump)时)时,将将PC更新为更新为“转移目标地址转移目标地址”32Instruction WordAddressInstructionMemoryPCClkNext AddrLogic顺序:先取指令,再改顺序:先取指令,再改PC的值的值(具体实现时,可以并行)(具体实现时,可以

25、并行)下地址逻辑下地址逻辑取指后,各指令功能不同,数取指后,各指令功能不同,数据通路也不同据通路也不同取指令部件取指令部件加法和减法指令加法和减法指令(R-type类型)类型)实现目标(实现目标(7条指令):条指令):ADD and subtract add rd,rs,rt sub rd,rs,rtOR Immediate:ori rt,rs,imm16LOAD and STORE lw rt,rs,imm16 sw rt,rs,imm16BRANCH:beq rs,rt,imm16JUMP:j target首先考虑首先考虑add和和sub指令(指令(R-Type指令的代表)指令的代表)op

26、rsrtrdshamtfunc0611162126316 bits6 bits5 bits5 bits5 bits5 bitsoprsrtimmediate0162126316 bits16 bits5 bits5 bitsoptarget address026316 bits26 bitsRR(R-type)型指令的数据通路)型指令的数据通路功能:功能:Rrd Rrs op Rrt,如:,如:add rd,rs,rt32ResultALUctrClkbusWRegWr3232busA32busB555Rw Ra Rb32 32-bitRegistersrsrtrdALU不考虑公共操作,仅不考

27、虑公共操作,仅R-Type指令执行阶段的数据通路如下:指令执行阶段的数据通路如下:ALUctr,RegWr:指令译码后产生的控制信号指令译码后产生的控制信号Ra,Rb,Rw 分别对应指令的分别对应指令的rs,rt,rd“add rd,rs,rt”控制信号为?控制信号为?ALUctr=add,RegWr=1oprsrtrdshamtfunc0611162126316 bits6 bits5 bits5 bits5 bits5 bits溢出时,不写结果并溢出时,不写结果并需转异常处理程序需转异常处理程序溢出溢出带立即数的逻辑指令(带立即数的逻辑指令(ori指令)指令)实现目标(实现目标(7 7条指

28、令)条指令):ADD and subtractadd rd,rs,rtsub rd,rs,rt OR Immediate:ori rt,rs,imm16 LOAD and STORElw rt,rs,imm16sw rt,rs,imm16 BRANCH:beq rs,rt,imm16 JUMP:j target2.考虑考虑ori 指令(指令(I-Type指令和逻辑指令和逻辑运算指令的代表)运算指令的代表)oprsrtrdshamtfunc0611162126316 bits6 bits5 bits5 bits5 bits5 bitsoprsrtimmediate0162126316 bits1

29、6 bits5 bits5 bitsoptarget address026316 bits26 bitsRTL:The OR Immediate Instructionorirt,rs,imm16 MPC取指令(公共操作,取指部件完成)取指令(公共操作,取指部件完成)Rrt Rrs or ZeroExt(imm16)立即数零扩展,并与立即数零扩展,并与rs内容做内容做“或或”运算运算 PC PC+4 计算下地址(公共操作,取指部件完成)计算下地址(公共操作,取指部件完成)imm16016153116 bits16 bits0000 0000 0000 0000零扩展零扩展 ZeroExt(im

30、m16)思考:应在前面数据通路上加哪些元件和连线?用何控制信号?思考:应在前面数据通路上加哪些元件和连线?用何控制信号?oprsrtimm160162126316 bits16 bits5 bits5 bits带立即数的逻辑指令的数据通路带立即数的逻辑指令的数据通路Rrt Rrs op ZeroExtimm16 Example:ori rt,rs,imm1632ResultALUctrClkbusWRegWr3232busA32busB555Rw Ra Rb32 32-bitRegistersRs(Rt)ALUR-Type类型的结果写入类型的结果写入RdR-Type的操作的操作数来自数来自bu

31、sB应加兰色部分,完成操作应加兰色部分,完成操作数的值和结果位置的指定数的值和结果位置的指定(将(将RtypeRtype和和oriori区分开)区分开)Ori指令的控制信号:指令的控制信号:RegDst=?;?;RegWr=?;?;ALUctr=?;?;ALUSrc=?Ori指令的控制信号:指令的控制信号:RegDst=1;RegWr=1;ALUSrc=1;ALUctr=orRtRdRegDstMux01ZeroExtMux1632imm16ALUSrc01oprsrtimm160162126316 bits16 bits5 bits5 bits访存指令中的数据装入指令访存指令中的数据装入指令

32、(lw)实现目标(实现目标(7 7条指令):条指令):ADD and subtractadd rd,rs,rtsub rd,rs,rt OR Immediate:ori rt,rs,imm16 LOAD and STORElw rt,rs,imm16sw rt,rs,imm16 BRANCH:beq rs,rt,imm16 JUMP:j target3.考虑考虑lw 指令(访存指令的代表)指令(访存指令的代表)oprsrtrdshamtfunc0611162126316 bits6 bits5 bits5 bits5 bits5 bitsoprsrtimmediate0162126316 bi

33、ts16 bits5 bits5 bitsoptarget address026316 bits26 bitsRTL:The Load Instructionlwrt,rs,imm16 MPC 取指令(公共操作,取指部件完成)取指令(公共操作,取指部件完成)Addr Rrs+SignExt(imm16)计算存储单元地址计算存储单元地址(符号扩展!符号扩展!)Rrt M Addr 装入数据到寄存器装入数据到寄存器rt中中 PC PC+4 计算下地址(公共操作,取指部件完成)计算下地址(公共操作,取指部件完成)immediate016153116 bits16 bits0000 0000 0000

34、0 000000161531immediate16 bits16 bits 1111 1111 1111 11111符号扩展符号扩展:立即数用补码表示立即数用补码表示oprsrtimmediate0162126316 bits16 bits5 bits5 bits装入装入(lw)指令的数据通路指令的数据通路Rrt M Rrs+SignExtimm16 lw rt,rs,imm1632ALUctrClkbusWRegWr3232busA32busB555Rw Ra Rb32 32-bitRegistersRsRtDont Care(Rt)RdRegDstMuxMux3216imm16ALUSrc

35、ALU ExtExtOpMuxMemtoRegClkData InWrEn32 AdrDataMemory32MemWr加兰色部分。为什么?加兰色部分。为什么?控制信号控制信号RegDst,RegWr,ALUctr,ExtOp,ALUSrc,MemWr,MemtoReg 各取何值?各取何值?0101RegDst=1,RegWr=1,ALUctr=add,ExtOp=1,ALUSrc=1,MemWr=0,MemtoReg=10:零扩展,零扩展,1:符号扩展:符号扩展01oprsrtimm160162126316 bits16 bits5 bits5 bits访存指令中的存数指令访存指令中的存数指

36、令(sw)实现目标(实现目标(7条指令):条指令):ADD and subtractadd rd,rs,rtsub rd,rs,rt OR Immediate:ori rt,rs,imm16 LOAD and STORElw rt,rs,imm16sw rt,rs,imm16 BRANCH:beq rs,rt,imm16 JUMP:j target4.考虑考虑sw 指令(访存指令的代表)指令(访存指令的代表)oprsrtimmediate0162126316 bits16 bits5 bits5 bitsoprsrtrdshamtfunc0611162126316 bits6 bits5 bi

37、ts5 bits5 bits5 bitsoptarget address026316 bits26 bitsRTL:The Store Instructionswrt,rs,imm16 MPC 取指令(公共操作,取指部件完成)取指令(公共操作,取指部件完成)Addr Rrs+SignExt(imm16)计算存储单元地址计算存储单元地址(符号扩展!)(符号扩展!)MemAddr Rrt 寄存器寄存器rt中的内容存到内存单元中中的内容存到内存单元中 PC PC+4 计算下地址(公共操作,取指部件完成)计算下地址(公共操作,取指部件完成)oprsrtimm160162126316 bits16 bi

38、ts5 bits5 bits存数存数(sw)指令的数据通路指令的数据通路M Rrs+SignExtimm16 Rrt Example:sw rt,rs,imm1632ALUctrClkbusWRegWr3232busA32busB555Rw Ra Rb32 32-bitRegistersRsRtRtRdRegDst ExtMuxMux3216imm16ALUSrcExtOpMuxMemtoRegClkData InWrEn32 AdrDataMemory32MemWrALU0101加兰色部分。才能向存储器存数加兰色部分。才能向存储器存数RegDst=x,RegWr=0,ALUctr=add,E

39、xtOp=1,ALUSrc=1,MemWr=1,MemtoReg=x01oprsrtimm160162126316 bits16 bits5 bits5 bits分支(条件转移)指令(相等转移:分支(条件转移)指令(相等转移:beq)实现目标(实现目标(7条指令):条指令):ADD and subtractadd rd,rs,rtsub rd,rs,rt OR Immediate:ori rt,rs,imm16 LOAD and STORElw rt,rs,imm16sw rt,rs,imm16 BRANCH:beq rs,rt,imm16 JUMP:j target5.考虑考虑beq指令(条

40、件转移指令的代表)指令(条件转移指令的代表)oprsrtimmediate0162126316 bits16 bits5 bits5 bitsoprsrtrdshamtfunc0611162126316 bits6 bits5 bits5 bits5 bits5 bitsoptarget address026316 bits26 bitsRTL:The Branch Instructionbeqrs,rt,imm16 MPC取指令(公共操作,取指部件完成)取指令(公共操作,取指部件完成)Cond Rrs-Rrt做减法比较做减法比较rs和和rt中的内容中的内容 if(COND eq 0)计算下地

41、址(根据比较结果,修改计算下地址(根据比较结果,修改PC)-PC PC+4+(SignExt(imm16)x 4)else-PC PC+4立即数的含义是相对指令数!立即数的含义是相对指令数!立即数用补码表示立即数用补码表示oprsrtimm160162126316 bits16 bits5 bits5 bits条件转移指令的数据通路条件转移指令的数据通路beq rs,rt,imm16We need to compare Rs and Rt!ALUctrClkbusWRegWr3232busA32busB555Rw Ra Rb32 32-bitRegistersRsRtRtRdRegDstExt

42、MuxMux3216imm16ALUSrcExtOpALUPCClkNext AddrLogic16imm16BranchTo InstructionMemoryZero思考:下址逻辑如何设计?思考:下址逻辑如何设计?RegDst=x,RegWr=0,ALUctr=sub,ExtOp=x,ALUSrc=0,MemWr=0,MemtoReg=x,Branch=10101oprsrtimm160162126316 bits16 bits5 bits5 bits下地址计算逻辑的设计下地址计算逻辑的设计PC是一个是一个32位地址位地址:顺序执行时顺序执行时:PC=PC+4转移执行时转移执行时:PC=P

43、C+4+SignExtImm16 X 4MIPS按字节编址,每条指令为按字节编址,每条指令为32位,占位,占4个字节,故个字节,故PC的值总是的值总是4的倍数,即后两位为的倍数,即后两位为00,因此,因此,PC只需要只需要30位即可。位即可。下地址计算逻辑简化为:下地址计算逻辑简化为:顺序执行时顺序执行时:PC=PC+1转移执行时转移执行时:PC=PC+1+SignExtImm16取指令时取指令时:指令地址指令地址=PC 串接串接“00”PC采用采用30位后,其转移地址计算逻辑变得更加简单。位后,其转移地址计算逻辑变得更加简单。可以用简便的方式实现如下:可以用简便的方式实现如下:下址逻辑设计下

44、址逻辑设计3030SignExt3016imm16Mux01Adder“1”PCClkAdder3030Branch ZeroAddrInstructionMemoryAddr“00”32Instruction(Instruction)30先根据当前先根据当前PC取指令,取指令,计算的下条指令地址在下一个时钟到来后才能写入计算的下条指令地址在下一个时钟到来后才能写入PC!标志位标志位ZF,由,由ALU产生!产生!为什么这里没有用为什么这里没有用“ALU”而是用而是用“Adder”?“Adder”无需操作控制信号。无需操作控制信号。无条件转移指令无条件转移指令实现目标(实现目标(7 7条指令):

45、条指令):ADD and subtractadd rd,rs,rtsub rd,rs,rt OR Immediate:ori rt,rs,imm16 LOAD and STORElw rt,rs,imm16sw rt,rs,imm16 BRANCH:beq rs,rt,imm16 JUMP:j target6.考虑考虑Jump指令(无条件转移指令的代表)指令(无条件转移指令的代表)oprsrtimmediate0162126316 bits16 bits5 bits5 bitsoprsrtrdshamtfunc0611162126316 bits6 bits5 bits5 bits5 bits

46、5 bitsoptarget address026316 bits26 bitsRTL:The Jump Instructionjtarget MPC 取指令(公共操作,取指部件完成)取指令(公共操作,取指部件完成)PC PC 串接串接 target 计算目标地址计算目标地址optarget address026316 bits26 bits下地址逻辑的完善:下地址逻辑的完善:Instruction Fetch Unit:取指令部件取指令部件3030SignExt3016imm16Mux01Adder“1”PCClkAdder3030BranchZero“00”AddrInstructionM

47、emoryAddr32InstructionInstructionimm16、Target、30264Mux10Target30JumpInstruc这是这是“取指部件取指部件”的完整设计的完整设计3 个输入个输入:jump,Branch,Zero1个输出个输出:指令字指令字PC的的改变在改变在下个下个Clk到到达后发达后发生!生!RegDst=ExtOp=ALUSrc=MemtoReg=ALUctr=x,RegWr=0,MemWr=0,Branch=0,Jump=1完整的单周期数据通路完整的单周期数据通路32ALUctrClkbusWRegWr3232busA32busB555Rw Ra R

48、b-32 32 bitRegistersRsRtRtRdRegDstExtMuxMux3216imm16ALUSrcExtOpMuxMemtoRegClkData InWrEn32AdrDataMemory32MemWrALUInstructionFetch UnitClkZeroInstructionJumpBranch010101Imm16RdRtRs指令执行结果总是在下个时钟到来时开始保存在指令执行结果总是在下个时钟到来时开始保存在 寄存器寄存器 或或 存储器存储器 或或 PC 中!中!下一讲考虑:如何产生控制信号!(控制器的设计内容)下一讲考虑:如何产生控制信号!(控制器的设计内容)数

49、据通路中的关键路径数据通路中的关键路径(Load操作操作)记住:寄存器组和理想存储器的定时方式记住:寄存器组和理想存储器的定时方式 写操作时,作为时序逻辑电路。即:写操作时,作为时序逻辑电路。即:-时钟到达前,输入需时钟到达前,输入需setup;到达后经;到达后经“Clk-to-Q”,写入,写入数据到达输出端数据到达输出端 读操作时,作为组合逻辑电路。即:读操作时,作为组合逻辑电路。即:-地址有效后经过地址有效后经过“access time”,输出开始有效,输出开始有效Clk5Rw Ra Rb32 32-bitRegistersRdALUClkDataInDataOutDataAddressI

50、dealDataMemoryInstruction busInstruction AddressIdealInstructionMemoryClkPC5Rs5Rt16Imm32323232Load操作:操作:RRt MRRs+Imm16第一讲小结第一讲小结 CPU设计直接决定了时钟周期宽度和设计直接决定了时钟周期宽度和CPI,所以对计算机性能非常重要!,所以对计算机性能非常重要!CPU主要由数据通路和控制器组成主要由数据通路和控制器组成数据通路数据通路:实现指令集中所有指令的操作功能:实现指令集中所有指令的操作功能控制器控制器:控制数据通路中各部件进行正确操作:控制数据通路中各部件进行正确操作

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(单周期数据通路的设计单周期控制器的设计第课件.pptx)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|