第4章 中央处理器-new.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第4章 中央处理器-new.ppt》由会员分享,可在线阅读,更多相关《第4章 中央处理器-new.ppt(78页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 1/78/78第4章 中央处理器张晨曦张晨曦 刘依刘依www.GotoS2 2/78/784.1 CPU的功能和组成4.2 关于模型机4.3 逻辑设计的约定和定时方式4.4 实现MIPS的一个简单方案4.5 多周期实现方案4.6 控制器的设计3 3/78/78CPU具有以下4个方面的基本功能:指令顺序控制q指控制程序中指令的执行顺序。指控制程序中指令的执行顺序。q程序中各指令之间是有严格先后顺序的,必须严格按程序中各指令之间是有严格先后顺序的,必须严格按程序规定的顺序执行,才能保证计算机工作的正确性。程序规定的顺序执行,才能保证计算机工作的正确性。操作控制 4.1 CPU的功能和组成4.1
2、.1 CPU的功能4 4/78/784.1 CPU的功能和组成q一条指令的功能往往是由计算机中的部件执行一序列一条指令的功能往往是由计算机中的部件执行一序列的操作来实现的。的操作来实现的。qCPU要根据指令的功能,产生相应的操作控制信号,要根据指令的功能,产生相应的操作控制信号,发送给相应的部件,从而控制这些部件按指令的要求发送给相应的部件,从而控制这些部件按指令的要求进行动作。进行动作。时间控制q对各种操作实施时间上的定时。对各种操作实施时间上的定时。q在一条指令的执行过程中,在什么时间做什么操作均在一条指令的执行过程中,在什么时间做什么操作均应受到严格的控制。应受到严格的控制。数据加工q即
3、对数据进行算术运算和逻辑运算,或进行其他的信即对数据进行算术运算和逻辑运算,或进行其他的信息处理息处理。5 5/78/784.1 CPU的功能和组成1.现代CPU一般由运算器、控制器、数据通路和Cache组成。2.数据通路是指各部件之间通过数据线的相互连接。选择什么样的数据通路,对于CPU的性能有很大的影响。3.CPU执行一条指令,实际上就是由控制器对计算机中的部件发操作控制信号、并对数据通路进行设置来实现的。4.1.2 CPU的基本组成6 6/78/784.1 CPU的功能和组成一条指令的执行过程包括3个基本步骤:取指令:从存储器取出一条指令,该指令的地址由程序计数器PC给出。译码:对该指令
4、的操作码进行译码分析,确定是哪一种指令,并转到这种指令对应的执行阶段。执行:按指令操作码的要求执行该指令。执行过程可能需要多步操作,控制器将为之形成完成该指令功能所需要的操作控制信号。执行完毕后,回到取指令阶段,去取下一条指令。如此反复,直到整个程序执行完。4.1.3 指令执行的基本步骤7 7/78/784.1 CPU的功能和组成取指令取指令译码译码指令指令a指令指令b指令指令x执行执行指指令令的的执执行行过过程程 8 8/78/781.模型机:MIPS结构的一种简单实现 实现了MIPS指令系统的核心子集。2.所包含的指令算术逻辑运算指令(R R类型指令格式)类型指令格式)qadd,sub,a
5、nd,or,slt(小于比较小于比较SLT rd,rs,rt)q操作码字段操作码字段Op=0存储器访问指令(I I类型指令格式)类型指令格式)qlw(load word,op=35)qsw(store word,Op=43)4.2 关于模型机9 9/78/784.2 关于模型机等于“0”分支(I类型指令格式)类型指令格式)qbeqz,Op=63 q说明:说明:beqz在在MIPS中实际上是条伪指令。中实际上是条伪指令。(假设模型机中有该指令,并假设其操作码为(假设模型机中有该指令,并假设其操作码为63)3.指令的字长:4个字节4.指令的格式 R类型 1010/78/784.2 关于模型机qOp
6、操作码字段,用操作码字段,用IROp或或IR31:26表示;表示;qrs第一源操作数字段,用第一源操作数字段,用IRrs或或IR25:21表示;表示;qrt第二源操作数字段,用第二源操作数字段,用IRrt或或IR20:16表示;表示;qrd目标操作数字段(或结果字段),用目标操作数字段(或结果字段),用IRrd或或IR15:11表示;表示;qshamt无用;无用;qfunctALU指令的运算函数码字段,用指令的运算函数码字段,用IRfunct或或IR5:0表示。表示。1111/78/784.2 关于模型机I类型 qrs基址寄存器字段,用基址寄存器字段,用IRrs或或IR25:21表示。表示。q
7、adr偏移量字段,用偏移量字段,用IRadr或或IR15:0表示。表示。rs和和adr用于计算访存有效地址或分支目标地址。用于计算访存有效地址或分支目标地址。qrt对于对于load指令来说,指令来说,rt所指出的寄存器是存所指出的寄存器是存放所取的数据;对于放所取的数据;对于store指令来说,是存放要写指令来说,是存放要写入存储器的数据;对于入存储器的数据;对于beqz指令来说,是存放被检指令来说,是存放被检测的数据。该字段用测的数据。该字段用IRrt或或IR20:16表示。表示。1212/78/784.2 关于模型机5.从计算机组成的角度来看,CPU设计的步骤根据各指令的执行步骤来建立数据
8、通路;定义各个部件的控制信号;确定时钟周期;完成控制器的设计。1313/78/781.中央处理器设计中,有两种逻辑部件:对数据值进行操作的部件(组合逻辑电路)(组合逻辑电路)q没有内部状态,其输出仅依赖于当前的输入,与过去没有内部状态,其输出仅依赖于当前的输入,与过去的值无关。的值无关。q在任何时候,对于相同的输入总是得到相同的输出。在任何时候,对于相同的输入总是得到相同的输出。包含状态的部件(时序电路(时序电路 )q状态部件的当前输出是前一个时钟周期写进去的值。状态部件的当前输出是前一个时钟周期写进去的值。4.3 逻辑设计的约定和定时方法4.3.1 逻辑设计的约定1414/78/784.3
9、逻辑设计的约定和定时方法q状态部件至少包括两个输入和一个输出。状态部件至少包括两个输入和一个输出。两个输入:两个输入:n要写入部件的值要写入部件的值n时钟:确定何时进行写入时钟:确定何时进行写入2.约定用“有效”表示信号线上的值为逻辑值“1”,用“无效”表示逻辑值“0”。1515/78/784.3 逻辑设计的约定和定时方法1.定时方法确定什么时候可以进行读,什么时候可以进行写。2.采用边缘触发的定时方法时序部件中的值只有在时钟翻转的边沿才会发生变化。选择上跳沿或下跳沿作为有效边沿。3.组合逻辑、状态部件与时钟的关系 传输时间T:信号从状态部件1出发,经过组合逻辑,再到达状态部件2所需的时间。4
10、.3.2 定时方法1616/78/78T的最大值确定了时钟周期的大小。规定:q如果一个状态部件是每一个时钟周期都写入,就不需要如果一个状态部件是每一个时钟周期都写入,就不需要写控制信号,依靠时钟信号进行写入。写控制信号,依靠时钟信号进行写入。q只有当状态部件不是每个时钟周期都写入时,才需要有只有当状态部件不是每个时钟周期都写入时,才需要有一个写控制信号。一个写控制信号。q写入操作仅发生在当该信号有效而且时钟的边沿到来的写入操作仅发生在当该信号有效而且时钟的边沿到来的时刻。时刻。1717/78/781.有两种典型的数据通路组织方式基于总线的结构 减少信号线的数量,但性能不如直接连接方式。减少信号
11、线的数量,但性能不如直接连接方式。直接连接 (我们选择直接连接的结构)(我们选择直接连接的结构)2.构建数据通路要用到的一些基本构件 4.4 实现MIPS的一个基本方案4.4.1 构建基本的数据通路1919/78/784.4 实现MIPS的一个基本方案程序计数器PCq用于指出当前正在执行的指令的地址。用于指出当前正在执行的指令的地址。q每执行一条指令,就要把每执行一条指令,就要把PC中的值加中的值加4(每条指令占(每条指令占4个字节),使其指向下一条指令。个字节),使其指向下一条指令。指令存储器IMq假设要执行的程序已经加载到了假设要执行的程序已经加载到了IM中中q在其地址输入端在其地址输入端
12、IA(Instruction Address)加载地址,)加载地址,在其输出端在其输出端Ins就能得到相应的指令。就能得到相应的指令。数据存储器DM(Data Memory)q两个输入端两个输入端n地址地址DA(Data Address):用于给出要写入或者):用于给出要写入或者读出的存储单元的地址。读出的存储单元的地址。2020/78/784.4 实现MIPS的一个基本方案n数据数据WD(Write Data):用于给出要写入):用于给出要写入DM的的数据。数据。q输出端输出端RD(Read Data):用于给出所读取的数据。):用于给出所读取的数据。q两个控制信号两个控制信号nDMRead
13、(读数据)(读数据)nDMWrite(写数据)(写数据)n在任何时候,它们最多只能是一个有效。在任何时候,它们最多只能是一个有效。通用寄存器组(Register file)q有两个读端口和一个写端口。能同时进行两个读操作和有两个读端口和一个写端口。能同时进行两个读操作和一个写操作。一个写操作。q4个输入端个输入端2121/78/784.4 实现MIPS的一个基本方案nRR1(Read Register 1)和)和RR2:给出两个读操作的地址:给出两个读操作的地址nWR(Write Register)给出写操作的地址)给出写操作的地址nWD(Write Data)给出要写入的数据。)给出要写入的
14、数据。q两个输出端两个输出端RD1(Read Data)和)和RD2n分别给出所读出的寄存器单元(其地址分别由分别给出所读出的寄存器单元(其地址分别由RR1和和RR2给出)的数据。给出)的数据。q寄存器组只有一个控制信号寄存器组只有一个控制信号RegWrite(写寄存器)。当且仅当(写寄存器)。当且仅当对寄存器组进行写入操作时,对寄存器组进行写入操作时,RegWrite才有效。才有效。q RR1、RR2和和WR的宽度都是的宽度都是5位,位,WD、RD1和和RD1的宽度都的宽度都是是32位。位。2222/78/784.4 实现MIPS的一个基本方案ALUq输入:两个输入:两个32位的数据位的数据
15、q输出输出ALUo:两个数据进行运算的结果(:两个数据进行运算的结果(32位)位)q进行多种算术逻辑运算,由控制信号进行多种算术逻辑运算,由控制信号ALUCtrl(4位)确位)确定进行什么操作。定进行什么操作。加法器把两个输入的数据相加,把结果放到输出端把两个输入的数据相加,把结果放到输出端SUM。符号位扩展部件用于把用于把16位的数据按符号扩展为位的数据按符号扩展为32位的数据。位的数据。判0部件q输入是一个输入是一个32位数据,输出是位数据,输出是1位的信号。位的信号。q当输入为当输入为0时,输出为真。时,输出为真。3.取指令的数据通路对于所有指令都是相同的。主要操作:把PC中的地址送到指
16、令存储器IM的IA输入端,读出一条指令。同时用加法器把PC中的值加4,使它指向下一条指令。4.指令译码5.根据不同的指令操作码进行相应的处理 R类指令 q用指令中的源寄存器地址字段用指令中的源寄存器地址字段rs和和rt作为地址去访问作为地址去访问通用寄存器组通用寄存器组Reg,读出两个源操作数,送给,读出两个源操作数,送给ALU进进行运算。行运算。q把运算结果送到寄存器组的把运算结果送到寄存器组的WD端,写入由端,写入由rd字段所字段所指定的目标寄存器。指定的目标寄存器。2525/78/784.4 实现MIPS的一个基本方案访存指令(load和store指令)qload指令的操作指令的操作 n
17、把指令字中的把指令字中的16位偏移量字段进行符号位扩展,变位偏移量字段进行符号位扩展,变成成32位数,送给位数,送给ALU;n用用IRrs作为地址去访问寄存器组作为地址去访问寄存器组Reg,读出的操,读出的操作数送给作数送给ALU,与上一步扩展了的地址相加,计,与上一步扩展了的地址相加,计算出访存的有效地址,将之送到数据存储器算出访存的有效地址,将之送到数据存储器DM的的地址输入端地址输入端DA;n从从DM读出数据(将读出数据(将DMRead设置为有效),将该设置为有效),将该数据送到通用寄存器组的数据入口端数据送到通用寄存器组的数据入口端WD,写入由,写入由IRrt指定的寄存器。指定的寄存器
18、。2626/78/784.4 实现MIPS的一个基本方案loadload指令所用到的数据通路指令所用到的数据通路 qstore指令指令n前两步与前两步与load指令的相同。指令的相同。n用用IRrt作为地址去访问通用寄存器组,读出的数据作为地址去访问通用寄存器组,读出的数据(在(在RD2输出端口)送给输出端口)送给DM的数据输入端的数据输入端WD,并,并向向DM发写入信号(将发写入信号(将DMWrite置为有效),将数据置为有效),将数据写入写入DM中相应单元。中相应单元。2828/78/784.4 实现MIPS的一个基本方案beqz指令 Branch信号为有效表示当前指令是一条分支指令。信号
19、为有效表示当前指令是一条分支指令。q把指令字中的把指令字中的16位偏移量字段(位偏移量字段(IRadr)进行符号)进行符号位扩展,变成位扩展,变成32位数,并左移两位送给位数,并左移两位送给ALU;q把把PC4送给送给ALU的另一个输入,与上一步符号位扩的另一个输入,与上一步符号位扩展和左移后的地址相加,得到转移目标地址;展和左移后的地址相加,得到转移目标地址;q用用IRrs作为地址去访问寄存器组作为地址去访问寄存器组Reg,读出操作数,读出操作数并送给判并送给判0部件。由该部件的输出确定是否分支成功。部件。由该部件的输出确定是否分支成功。q如果为真,转移目标地址就成为新的如果为真,转移目标地
20、址就成为新的PC值,分支成值,分支成功;否则就用功;否则就用PC4代替代替PC中的值,分支失败。中的值,分支失败。2929/78/784.4 实现MIPS的一个基本方案 beqz beqz指令所用到的数据通路指令所用到的数据通路 把R类指令与访存指令的数据通路合并:(在必要的地方加上多路器(在必要的地方加上多路器MUXMUX)3131/78/784.4 实现MIPS的一个基本方案6.综合考虑所有类型指令所要求的部件及其连接,得到模型机的数据通路。(一种能实现(一种能实现MIPS基本结构的简单数据通路)基本结构的简单数据通路)模型机的简单数据通路模型机的简单数据通路3333/78/784.4 实
21、现MIPS的一个基本方案1.模型机中,把控制器分成两个部分主控制器ALU控制器 q在主控制器产生的信号中,有两位的在主控制器产生的信号中,有两位的ALUOp信号。信号。q把把ALUOp送给送给ALU,以产生控制,以产生控制ALU的实际信号。的实际信号。2.ALU控制器的输入和输出4.4.2 ALU控制器3434/78/784.4 实现MIPS的一个基本方案ALUALU控制器控制器来自主控制器的来自主控制器的ALUOpALUOp来自指令中最低来自指令中最低6 6位的位的functfunct字段字段 (即(即IR5:0IR5:0)ALUALU的控制码的控制码 ALU ALU的控制码:用来控制的控制
22、码:用来控制ALUALU完成具体的运算功能,如加法、乘法等完成具体的运算功能,如加法、乘法等 。两组输入两组输入输出输出3535/78/784.4 实现MIPS的一个基本方案ALU完成具体的运算有5个:加、减、或、与、比较 设:运算器运算器ALUALU的控制码:的控制码:3 3位位 8个编码中使用了个编码中使用了5个个 每一个对应于每一个对应于ALU的一种运算功能的一种运算功能 ALU的控制码的控制码功能功能ALU的控制码的控制码功能功能000and110sub001or111slt010add算术逻辑单元算术逻辑单元ALUALU的功能定义的功能定义 3636/78/784.4 实现MIPS的
23、一个基本方案 ALU控制器的作用实际上就是完成ALUOp(两位)和funct(5位)到ALU的控制码(3位)的映射。3.ALUOp的定义 load指令和store指令ALUOp=00,让,让ALU做加法,计算访存的有效地址。做加法,计算访存的有效地址。beqz指令ALUOp=00,让,让ALU做加法,计算分支目标地址。做加法,计算分支目标地址。R类指令ALUOp=10 ALU完成完成and、or、add、sub中的某一个,具体取决中的某一个,具体取决于指令中于指令中funct字段的值。字段的值。3737/78/784.从ALUOp和funct到ALU的控制码的映射 指令操作码指令操作码ALUO
24、p指令操作指令操作funct字段字段期望的期望的ALU动作动作ALU的控制码的控制码load00读读xxxxxxadd010store00写写xxxxxxadd010beqz00分支分支xxxxxxadd010R类类10加法加法100000add010R类类10减法减法100010sub110R类类10与与100100and000R类类10或或100101or001R类类10比较比较101010slt111根据根据2 2位位ALUOpALUOp控制信号和控制信号和6 6位位functfunct代码生成代码生成ALUALU控制器的输出控制器的输出 5.对funct字段代码及ALUOp的各位进行组
25、合建立真值表ALUALU控制器的输入输出之间的真值表控制器的输入输出之间的真值表 ALUALU控制器的输入控制器的输入ALUALU控制器的输出控制器的输出ALUOpALUOpfunctfunct字段字段ALUOp1ALUOp1ALUOp0ALUOp0F5F5F4F4F3F3F2F2F1F1F0F00 00 00100101 10 00 00 00 00100101 10 00 01 10 01101101 10 01 10 00 00000001 10 01 10 01 10010011 11 10 01 10 01111113939/78/784.4 实现MIPS的一个基本方案1.给模型机的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 中央处理器-new 中央处理器 new
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内