580 likes | 942 Views
第 6 章 中央处理器. 中央处理器 (CPU)= 运算器 (ALU)+ 控制器 (CU) 。. §6.1 CPU 的组成与操作 §6.2 CPU 时序控制方式 §6.3 CPU 控制流程 §6.4 控制器的组成 §6.5 指令的执行过程 §6.6 指令流水 §6.7 操作控制信号形成部件. §6.1 CPU 的组成与操作. 1 、 CPU 的组成 2 、 CPU 的四种基本功能 3 、从内存读取一个字 4 、把一个字写入主存 5 、通用寄存器之间传送数据 6 、完成算术、逻辑运算. §6.1 CPU 的组成与操作. 1 、 CPU 的组成:.
E N D
第6章 中央处理器 中央处理器(CPU)=运算器(ALU)+控制器(CU)。 §6.1 CPU的组成与操作 §6.2 CPU时序控制方式 §6.3 CPU控制流程 §6.4 控制器的组成 §6.5 指令的执行过程 §6.6 指令流水 §6.7 操作控制信号形成部件
§6.1 CPU的组成与操作 1、CPU的组成 2、CPU的四种基本功能 3、从内存读取一个字 4、把一个字写入主存 5、通用寄存器之间传送数据 6、完成算术、逻辑运算
§6.1 CPU的组成与操作 1、CPU的组成: PC程序计数器 IR指令寄存器 指令译码器 内部总线 存储器数据寄存器MDR 存储器地址寄存器MAR 算数逻辑运算单元ALU 通用寄存器R0到R(n-1) 暂存寄存器Y、Z
§6.1 CPU的组成与操作 2、CPU的四种基本功能 : (1)、读取某一主存单元的内容,并将其装入某一个CPU寄存器; (2)、把一个数据字从某一个CPU寄存器存入某个给定的主存单元中; (3)、把一个数据字从某一个CPU寄存器送到另一个寄存器或者ALU; (4)、进行一个算术运算或逻辑运算,将结果送入某一个CPU寄存器。
§6.1 CPU的组成与操作 3、从内存读取一个字: 举例:假设要访问的主存单元地址放在寄存器R1中,并且要求把读出的内容装入寄存器R2。 (1)、MAR←[R1] (R1out, MARin) (2)、Read (3)、WMFC ;等待MFC信号(Wait MFC) (4)、R2←[MDR] (MDRout, R2in)
§6.1 CPU的组成与操作 (1)、MAR←[R1] (R1out, MARin) (2)、Read (3)、WMFC ;等待MFC信号(Wait MFC) (4)、R2←[MDR] (MDRout, R2in)
§6.1 CPU的组成与操作 4、把一个字写入主存 : 举例:假设要写入的数据字放在R2中,存储单元的地址放在R1中。 (1)、MAR←[R1] (R1out, MARin) (2)、MDR←[R2] (R2out, MDRin) (3)、Write (4)、WMFC
§6.1 CPU的组成与操作 (1)、MAR←[R1] (R1out, MARin) (2)、MDR←[R2] (R2out, MDRin) (3)、Write (4)、WMFC
§6.1 CPU的组成与操作 5、通用寄存器之间传送数据 : 举例:将寄存器R1的内容传送到R4 。 R1out,R4in
§6.1 CPU的组成与操作 R1out,R4in
§6.1 CPU的组成与操作 6、完成算术、逻辑运算 : 举例:完成寄存器R1的内容与寄存器R2的内容相加,并将结果送入寄存器R3 。 (1)、R1out,Yin (2)、R2out,Add,Zin (3)、Zout,R3in
§6.1 CPU的组成与操作 (1)、R1out,Yin (2)、R2out,Add,Zin (3)、Zout,R3in
接通三态门的时间 保持时间 总线传输时间 下一操作开始 建立时间 通过ALU的延时 R2out Zin t0 t1 t2 t3 t4 t5 准备下一操作的控制信号 有效数据进入寄存器Z §6.1 CPU的组成与操作 R2out,Add,Zin 图6.3 加法操作期间控制信号的时序
§6.2 CPU时序控制方式 1、同步控制方式 2、异步控制方式 3、联合控制方式
§6.2 CPU时序控制方式 1、同步控制方式: 系统有一个统一的时钟,所有控制信号均来自这个统一的时钟信号。 指令周期:CPU每取出并执行一条指令所需要的全部时间。 工作周期(机器周期):指令运行过程中相对独立的阶段。一般把指令的运行过程分为取指令、读取操作数及执行(包括写结果)等三个基本工作周期。
§6.2 CPU时序控制方式 时钟周期: 在一个机器周期里可以完成若干个微操作,每个微操作都需一定的时间,可用时钟信号来控制产生每一个微操作命令。因此,一个机器周期内包含若干个时钟周期(又称节拍或状态)。 在每个节拍内机器可完成一个或几个需同时执行的微操作。
§6.2 CPU时序控制方式 2、异步控制方式: 没有基准时钟信号,没有固定的周期节拍和严格的时钟同步,执行每条指令和每个操作需要多少时间就占用多少时间。 这种方式微操作的时序由专门的应答线路控制,即当CU发出执行某一微操作的控制信号后,等待执行部件完成了该操作后发回“回答”(或“结束”)信号,再开始新的微操作,使CPU没有空闲状态,但因需要采用各种应答电路,故其结构比同步控制方式复杂。
§6.2 CPU时序控制方式 3、联合控制方式: 所谓联合控制方式是同步和异步控制方式的结合。 对于不同的操作序列以及其中的每个操作,实行部分统一、部分区别对待的方式。
§6.3 CPU控制流程 程序:能完成某个确定算法的指令序列。 计算机进行信息处理的过程就是不断地取指令、分析指令和执行指令这样一个周而复始的过程。 1、取指令: 由程序计数器(PC)指出当前指令地址,通过执行“MAR←(PC)”和“Read”命令,从主存中取出指令。
§6.3 CPU控制流程 2、分析指令: 对取出的指令进行分析,指出它执行什么操作,产生相应的操作控制信号。如果参与操作的数据在主存中,则还需要形成操作数地址。 3、执行指令: 根据指令分析得到的“操作命令”和“操作数地址”,按一定的算法形成相应的操作控制命令序列,通过运算器、存储器及外部设备等的具体执行,实现每条指令的功能。
§6.3 CPU控制流程 4、对异常情况和某些请求的(中断)处理: 当机器出现某些异常情况,如算术运算溢出、数据传送奇偶错等;或者某些外来请求,(如磁盘成批数据送存储器结束或程序员从键盘送入命令)等,此时由这些部件或设备发出“中断请求”信号,待执行完当前指令后,CPU响应该请求,中止当前执行的程序,转去执行中断服务程序。当处理完毕后,再返回原程序继续运行。
§6.4 控制器的组成 1、程序计数器(PC): 又称指令计数器或指令指针(IP),在某些机器中用来存放正在执行的指令地址;在大多数机器中则存放要执行的下一条指令的地址。 指令地址的形成有两种可能: 一是顺序执行的情况,每执行一条指令,程序计数器加“1”以形成下条指令的地址。该加“1”计数的功能,有的机器是PC本身具有的,也有的机器是借用运算器完成的。 二是在某些条件下,需要改变程序执行的顺序,这常由转移类指令形成转移地址送到PC中,作为下条指令的地址。
§6.4 控制器的组成 2、指令寄存器(IR): 用以存放现行指令,以便在整个指令执行过程中,实现一条指令的全部功能控制。 3、指令译码器: 又称操作码译码器,它对指令寄存器中的操作码部分进行分析解释,产生相应的控制信号提供给操作控制信号形成部件。
§6.4 控制器的组成 4、脉冲源及启停控制线路: 脉冲源:产生一定频率的脉冲信号作为整个机器的时钟脉冲。 启停线路:在需要的时候保证可靠地开放或封锁时钟脉冲,控制时序信号的发生与停止,实现对机器的启动与停机。 5、时序信号产生部件: 以时钟脉冲为基础,具体产生不同指令相对应的周期、节拍等时序信号,以实现机器指令执行过程的时序控制。
§6.4 控制器的组成 6、操作控制信号形成部件: 综合时序信号、指令译码信息、被控功能部件反馈的状态条件信号等,形成不同指令所需要的操作控制信号序列。 7、中断机构: 实现对异常情况和某些外来请求的处理。 8、总线控制逻辑: 实现对总线信息传输的控制。
状态寄存器 操作控制信号形成部件 总线控制逻辑 指令译码器 通用寄存器 时序信号产生部件 中断机构 ALU 启停控制线 指令寄存器 脉冲源 程序计数器 +"1" 转移 地址 地址总线 数据总线 控制总线 图6.6 控制器组成框图 §6.4 控制器的组成
§6.5 指令的执行过程 一、加法指令: 1、指令: Add R1,(R3) 该指令的功能是将某存储单元的内容与寄存器R1的内容相加,结果存入R1中。存储单元的地址放在寄存器R3中(寄存器间接寻址)。 2、执行这条指令需要下列动作: (1)取指令; (2)取操作数(由R3所指出的存储单元的内容); (3)完成加法运算; (4)结果存入R1中。
§6.5 指令的执行过程 3、操作控制序列(微操作序列): (图6.1所示的单总线结构) 步 动作 1 PCout,MARin,Read, Clear Y,1→C0,Add,Zin ;取指,(PC)+12 Zout,PCin,WMFC ;(PC)+1→PC 3 MDRout,IRin;指令→IR 4 R3out,MARin,Read ;取数据 5 R1out,Yin,WMFC ;(R1)→Y 6 MDRout,Add,Zin;相加 7 Zout,R1in,End ;结果→R1
§6.5 指令的执行过程 二、无条件转移指令(BR): 步 动作 1 PCout,MARin,Read,Clear Y, 1→C0 ,Add,Zin 2 Zout,PCin,WMFC 3 MDRout,IRin 4 PCout,Yin 5 (IR的偏移字段)out,Add,Zin 6 Zout,PCin,End
§6.5 指令的执行过程 三、条件转移指令: 如果N标志等于1则转移。 步 动作 1 PCout,MARin,Read,Clear Y, 1→C0 ,Add,Zin 2 Zout,PCin,WMFC 3 MDRout,IRin 4 If N=0 then End,If N=1 thenPCout,Yin 5 (IR的偏移字段)out,Add,Zin 6 Zout,PCin,End
§6.6 指令流水 1、指令流水原理 2、影响流水线性能的因素 3、超标量技术
取指令1 执行指令1 取指令2 执行指令2 取指令3 执行指令3 取指令1 执行指令1 取指令2 执行指令2 取指令3 执行指令3 取指令4 执行指令4 1、指令流水原理 指令的串行执行: 在取指令时,执行部件是空闲的,在执行指令时,取指令部件基本上是空闲的。可以考虑在执行部件执行指令的同时取下一条指令,即两条指令的执行过程在时间上有重叠(即指令流水)。 指令的二级流水:
t 指令1 指令2 指令3 指令4 指令5 指令6 指令7 指令8 FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FO EI WO FI DI CO FI DI CO FO EI WO 1、指令流水原理 指令六级流水: 取指(FI) 指令译码(DI) 计算操作数地址(CO) 取操作数(FO) 执行指令(EI) 写操作数(WO)
2、影响流水线性能的因素 1、访存冲突: 避免方法: (1)设置两个存储器系统分别放置指令和数据。 (2)采用预取指令技术:设置指令队列,在执行指令过程中利用存储器空闲时间取指令,只要指令队列有空,就可以取下一条指令。
2、影响流水线性能的因素 2、相关问题 : (1)控制相关: 当一条指令需要等到前一条指令(或前几条指令)作出转移方向的决定后才能进入流水线,即产生控制相关。 (2)数据相关: 指几条指令共用了同一个存储单元(或寄存器)的内容时所发生的关联。
3、超标量技术 在每个时钟周期内可以同时并发多条独立指令,即以并行操作的方式将两条或两条以上的指令编译并执行。 超标量处理机内部配置有多个功能部件和指令译码电路,以及多个寄存器端口和总线。 条件:并发执行的指令不能相关。
§6.7 操作控制信号形成部件 操作控制信号形成部件:产生指令所需要的操作控制信号序列,用以控制计算机各部分的操作,它是整个控制器的核心,也是最复杂的部件。 一、组合逻辑控制与PLA控制 二、微程序控制
一、组合逻辑控制与PLA控制 1、组合逻辑控制 2、PLA控制
1、组合逻辑控制 (1)、组合逻辑控制器框图: 时钟 控制步计数器 步译码器 T1 T2 … Tn INS1 INS2 INSm 指令 译码器 标 志 编码器 IR 操作控制信号
1、组合逻辑控制 (2)、微操作命令的逻辑表达式: Zin = T1 + T6·ADD + T5·BR + … End = T7·ADD + T6·BR +(T6·N + T4·N)·BRN + …
2、PLA控制 可编程逻辑阵列(PLA):由一个“与”门阵列和一个“或”门阵列构成,它能实现一个多变量组合逻辑电路。
a b c d F1 F2 F3 F4 图6.18 PLA模型 2、PLA控制 F1= abcd + abcd + bcd + abcd F2= abcd + abc F3= abcd + abcd + bd F4= bcd + abc + bd
2、PLA控制 AND array OR array IR 控制步 计数器 标 志 操作控制信号
二、微程序控制 1、Wilkes微程序控制 2、基本概念 3、微指令的格式与编码 4、微指令地址的生成