中央处理器
1.CPU功能与结构
1.功能:
(1).指令控制。完成取指令、分析指令和执行指令的操作,即程序的顺序控制
(2).操作控制。
(3).时间控制。对各种操作加以时间上的控制。
(4).数据加工。对数据进行算术和逻辑运算
(5).中断处理。
专用数据通路方式:根据指令执行过程中的数据和地址的流动方向安排连接线路性能较高,基本不存在数据冲突现象。多条通路:多路选择器MUX与三态门
CPU内部单总线方式:将所有寄存器的输入端和输出端连接到一条公共的通路上。结构简单、易实现,但数据传输存在冲突现象,性能较低
2.运算器的基本结构:
(1).算术逻辑单元
(2).通用寄存器组,如AX、BX、CX、DX、SP
(3).暂存寄存器:用于暂存从主存读来的数据,这个数据不能存放在通用寄存器,否则会破坏原有内容
(4).累加寄存器:通用寄存器,用来暂存ALU运算的结果信息;用来实现加法运算
(5).程序状态字寄存器PSW
(6)移位器:对运算结果进行移位运算
(7)计数器:控制乘除运算的次数
3.控制器的基本结构:
(1)程序计数器PC:用来指明下一条指令在主存中的存放地址
(2)指令寄存器:用于保存当前正在执行的指令
(3)指令译码器:对操作码字段进行译码,向控制器提供特定的操作信号
(4)微操作信号:根据IR的内容和PSW的内容及时序信号,产生控制整个计算机所需的各种控制信号
(5)时序系统:产生各种时序信号,由统一时钟分频得到
(6)存储器地址寄存器MAR:存放所有访问的主存单元的地址
(7)存储器数据寄存器MDR:存放向主存写入的信息或从主存中读出的信息
4.用户可见的寄存器:通用寄存器组、程序状态字寄存器PSW、程序计数器PC
5.用户不可见寄存器:MAR、MDR、IR、暂存寄存器
1.2指令执行过程
指令周期的概念:CPU从主存中取出并执行一条指令所需的全部时间,细分为取指周期和执行周期
指令周期常常用若干机器周期来表示,机器周期又称CPU周期
一个机器周期包含若干时钟周期
时钟周期(节拍、T周期、CPU时钟周期):是CPU操作的最基本单位
每个指令周期内机器周期数可以不等,每个机器周期内的节拍数也可以不等
标志触发器FE、IND、EX、INT–取值周期、间址周期、执行周期、中断周期
执行方案:
(1)单指令周期:所有指令采用相同的执行时间来完成,指令周期串行执行,执行时间取决于最长的指令的执行时间
(2)多指令周期:不同类型的指令选用不同的执行步骤来完成,指令串行执行
(3)流水线方案:每个时钟周期启动一条指令,尽量让多条指令同时运行,指令之间并行执行
1.3 数据通路–单总线结构
1.寄存器之间的数据传送:例:PC内容->MAR。(PC)->Bus(总线) [PCout有效,PC内容送到总线];Bus->MAR [MARin有效,总线内容送MAR]
2.主存与CPU之间的数据传送。例:CPU从主从中读取指令。(PC)->Bus->MAR [PCout有效];1->R [CU发出读命令(通过控制总线)];MEM(MAR)->MDR [MDRinE有效];MDR->Bus->IR [MDRout&IRin有效];
3.执行算术或逻辑运算。例:一条加法指令。AD(IR)->Bus->MAR [MDRout&MARin有效];1->R [读命令];MEM(MAR)->数据线->MDR [MDRin有效];MDR->Bus->Y [MDRout&Yin有效];(ACC)+(Y)->Z [ACCout&ALUin有效];Z->ACC [Zout&ACCin有效]
2.控制器设计
2.1 硬布线控制器
一个节拍可以并行完成多个“相容的”微操作;同一个微操作可能在不同指令的不同阶段被使用
各阶段的微操作序列:
(1)取值周期:(PC)->MAR;1->R;M(MAR)->MDR;OP(IR)->ID(指令译码器);(PC)+1->PC
(2)间址周期:Ad(IR)->MR;1->MAR;M(MAR)->MDR;MDR->Ad(IR)
(3)执行周期:CLA(ACC清零):0->ACC;LDA(取数指令):Ad(IR)->MAR;M(MAR)->MDR;(MDR)->ACC;JMP(无条件转移):Ad(IR)->PC;
2.2 微程序控制器
微命令与微操作一一对应;微指令可能包含多个微命令
微指令格式:操作控制,顺序控制(指明下一条指令地址)
控制存储器可用ROM构成
若某条指令系统中有n条机器指令,则CM中微程序的个数至少是n+1个
2.2.1微指令的设计
1.水平型微指令:一条微指令能定义多个可并行的微命令
优点:微程序短,执行速度快;缺点:微指令长,编写微程序较麻烦
2.垂直型微命令:一条指令只能定义一个微命令,由微操作码字段规定具体功能
优点:微指令短,简单、规整易于编写微程序;缺点:微程序长,执行速度慢
3.混合型微指令:在垂直型的基础上增加一些不太复杂的并行操作
微指令的编码方式(微指令控制方式)
(1)直接编码(直接控制)方式:每一位代表一个微操作命令
(2)字段直接编码方式:微指令的控制字段分成若干段,每段经译码后发出控制信号
原则:互斥性微命令分在同一个段内,相容性微命令分在不同段内;每个小段内信息位不能太多;每个小段还要留出一个状态,表示本字段不发出任何微命令,通常000表示不操作;
(3)字段间接编码方式:一个字段某些微命令由另一个字段中的某些微命令来进行解释
微指令的地址形成方式
(1)由微指令的下地址字段指出(断定方式)
(2)根据机器指令的操作码形成
(3)增量计数器法
(4)分支转移:转移方式(指明判别条件)
(5)通过测试网络
(6)由硬件产生微程序入口地址
2.2.2 微程序控制单元
类比参考硬布线设计方式
静态微程序设计:微程序无需改变,采用ROM
动态微程序设计:通过改变微指令和微程序改变机器指令,有利于仿真,采用EPROM
3.指令流水线
3.1基本概念&性能指标
表示方法:1.指令执行过程图2.时空图
性能指标:
1.吞吐率:单位时间内流水线完成的任务数量或输出结果的数量TP=n/Tk;Tk=(k+n-1)△t(△t一个时钟周期)
2.加速比:完成同样一批任务,不使用流水线所用时间与所用流水线所用的时间之比S=t0/Tk
3.效率:流水线设备利用率称为流水线的效率E=n个任务所占时空区有效面积/n个任务所围成整体的时空区面积
3.2 指令流水线影响因素&分类
五段式流水线(MIPS架构:精简指令集):五个机器周期。为方便流水线设计,每个阶段以最长耗时为准。每个功能部件后面都要有一个缓冲寄存器(或锁存器)[作用:保存本流水段的执行结果,提供给下一流水段使用]
1.结构相关(资源冲突):多条指令在同一时刻争用同一资源而形成的冲突
解决办法:(1)后一指令暂停一周期(2)资源重复配置(数据存储器+指令存储器)
2.数据相关(数据冲突):存在必须等待前一条指令执行完才能执行后一条指令的情况
解决方法:1.数据指令暂停一周期(硬件阻塞/软件插入)2.数据旁路技术(转发机制)3.编译优化(通过编译器调整指令顺序来解决数据相关)
3.控制相关(控制冲突):流水线遇到转移指令和其他改变PC值的指令而造成断流时会引起控制相关
解决方法:(1)分支预测(简单预测、动态预测)、预取转移成功和不成功两个控制流方向上的目标指令(3)加快和提前形成条件码(4)提供转移方向的猜准率
4.分类
(1)流水线使用级别的不同:部件功能级流水线、处理机级流水线、处理机间流水线
(2)流水线完成的功能:单功能流水线、多功能流水线
(3)同一时间内各段之间的连接方式:静态流水线、动态流水线
(4)流水线各个功能段之间是否有过反馈信号:线性流水线(不存在反馈线路)、非线性流水线
5.流水线的多发技术:
(1)超标量技术:每个节拍内可并发多条独立指令。要配置多个功能部件,不能调整指令的执行顺序,通过编译优化技术,可以把不能多发的进行多发
(2)超流水技术:每个时钟周期内再分段。一个时钟周期内一个功能部件使用多次,不能调整指令的执行顺序,靠编译程序解决优化问题
(3)超长指令字:由编译程序挖掘出指令间潜在并行性,将多条并行操作的指令组合成一条具有多个操作码字段的超长指令字段。需要多个功能部件
3.3 五段式指令流水线
1.运算类指令(Rs 源操作数 Rd目的操作数)
指令举例 | 汇编格式 | 功能 |
---|---|---|
加法指令(两个寄存器相加) | ADD Rs Rd | (Rs)+(Rd)->(Rd) |
加法指令(寄存器与立即数相加) | ADD #996 Rd | 996+(Rd)->(Rd) |
算术左移指令 | SHL Rd | (Rd)<<<2->Rd |
IF(取值)->ID(译码&取数)->EX执行->M访存->WB写回寄存器
2.RISC中只有取数指令LOAD和存数操作STORE才能访问主存
3.转移指令:常用相对寻址 beq Rs Rd #偏移量:若(Rs)=(Rd)则(PC)+指令字长+(偏移量×指令字长)->PC,否则PC+1->PC;bne Rs Rd #偏移量:若(Rs)!=(Rd)则(PC)+指令字长+(偏移量×指令字长)->PC,否则PC+1->PC
对寻址 beq Rs Rd #偏移量:若(Rs)==(Rd)则(PC)+指令字长+(偏移量×指令字长)->PC,否则PC+1->PC;bne Rs Rd #偏移量:若(Rs)!=(Rd)则(PC)+指令字长+(偏移量×指令字长)->PC,否则PC+1->PC
4.无条件转移指令:常用相对寻址 jmp #偏移量 (PC)+指令字长+(偏移量×指令字长)->PC;WrPc耗时比EX段