440 likes | 597 Views
第五章 中央处理单元. 运算器和 控制器. 程序入口:是指一段程序的第一条指令所在的地址。. 8086 CPU: FFFF0; Microchip:0000. 控制器的作用:协调并控制计算机的各个部件来执行构成程序的指令序列。. 计算机执行程序的过程就是: 取指令、分析指令、执行指令这样一个周 而复始的过程。. 计算机的工作过程就是:. 上电. 产生 reset 信号. 执行程序. 停机. 停电. 1、程序是如何执行的. 2、计算机怎样实现各条指令的功能. 3、如何保证逐条指令的连续执行过程. 中央处理器简称 CPU, 是计算机系统的核心。
E N D
运算器和控制器 程序入口:是指一段程序的第一条指令所在的地址。 8086CPU: FFFF0;Microchip:0000 控制器的作用:协调并控制计算机的各个部件来执行构成程序的指令序列。
计算机执行程序的过程就是: 取指令、分析指令、执行指令这样一个周 而复始的过程。 计算机的工作过程就是: 上电 产生reset信号 执行程序 停机 停电
1、程序是如何执行的 2、计算机怎样实现各条指令的功能 3、如何保证逐条指令的连续执行过程
中央处理器简称CPU,是计算机系统的核心。 • 主要功能:程序的执行(指令控制),信息的处理(数据加工),操作控制,时间控制,I/O设备的控制。 • 组成:运算器,寄存器,控制器,时钟电路,(某些CPU中还包括一定容量的ROM、RAM存储器)
中央处理器的基本结构与组成 通用 寄存器组 4个 段寄存器 1个 IP寄存器 内部 寄存器 运算寄存器 IO 控制 电路 外围总线 执行 控制 电路 ALU 指令队列 缓冲器 标志寄存器
运算器是加工处理数据的功能部件。 • 运算器主要由下列部件组成: • 算术逻辑单元(ALU) 完成二进制信息的定点算术运算,逻辑运算,移位操作 • 通用寄存器和状态标志寄存器 存放数据,运算的中间、最后结果,各种状态标志 • 有的CPU中包含浮点处理单元 • 算术逻辑单元和通用寄存器的位数决定了CPU的字长。
寄存器:是CPU中的重要组成部分,是CPU内部的临时存储单元。寄存器:是CPU中的重要组成部分,是CPU内部的临时存储单元。 • 存放内容:数据、地址、控制信息、CPU的工作状态信息。 • 寄存器增加可以提高CPU运行速度。 • 分类:数据寄存器、地址寄存器、标志状态寄存器、控制寄存器和一些其它作用的寄存器。但总体可分为通用寄存器和专用寄存器两大类。
一、通用寄存器组 ——在运算中存储数据与地址 累加寄存器 AX(Accumulator) 低位累加器 AL(Low word Accumulator) 变址寄存器 XR(Index Register) 基址寄存器 BR(Base Register) 标志寄存器 FR(Flag Register) 以Intel 80486为例(32位),其通用寄存器有: EAX,EBX,ECX,EDX,EBP,ESP,ESI,EDI (早期16位机器为AX,BX,CX,DX,BP,SP,SI,DI) CS,DS,ES,SS,FS,GS (早期16位机器只有前4个)
状态标志寄存器(Flag Register)——用于存放ALU工作时产生的状态信息 二、专用寄存器 ——保存系统运行必需的重要数据 状态标志寄存器也叫标志寄存器。每一位单独使 用,称为标志位。它反映了ALU当前的工作状态 或条件转移指令的转移条件。
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 V D I T S Z A P C 辅助进位位 奇偶标志位 进位标志位 溢出标志位 方向标志位 中断允许位 单步标志位 结果符号位 零标志位 具体常用如下:
指令寄存器IR(Instruction Register) ——用于存放将要执行的指令。 • 指令指针寄存器IP,又称指令计数器。 ——用于产生和存放下条待取指令的地址。 • 堆栈指针寄存器SP——指示堆栈栈顶的地址。 • 变址寄存器 ——变址寻址中存放基础地址的寄存器,如XI、DI • 段地址寄存器 ——计算机内存大时多把内存存储空间分成段(例如64KB)来管理,使用时以段为单位进行分配。段地址寄存器即是在段式管理中用来存放段地址的寄存器。
三、其他寄存器——根据CPU结构特点而设置的专用寄存器。三、其他寄存器——根据CPU结构特点而设置的专用寄存器。 Intel 80486设有下列专用寄存器: • 机器状态字寄存器MSW • 描述符寄存器——存储管理。 • 测试寄存器——用于存储管理。 • 控制寄存器 –虚地址方式、实地值方式选择 • 调试寄存器——用于程序调试。
80384时钟发生器 Intel 80386 微机系统 reset clck clck2 80387 协处理器 80386 微处理器 82285DMA 控制器 总线控 制逻辑 总线控 制逻辑 准备好 逻辑 总线 8259中断控制器 存储器 输入/输出设备 中断设备
Intel 80386 结构及外部连线 CLK2 A2-A31 BE3# 数据总线 32位 地址 D0-D31 BE2# 字节 使能 BE1# ADS# BE0# NA# W/R# 总线控制 BS16# D/C# 总线周 期定义 READY# 80386 M/IO# LOCK# HOLD HLDA PEREQ 总线仲裁 协处理 器信号 BUSY# INTR ERROR# NMI VCC 中断 RESET 电源连接 GND
一、控制器的组成 • 控制器是指挥与控制整台计算机各功能部件协同工作、自动执行计算机程序的部件。它把运算器和存储器以及I/O设备组成一个有机的系统。 控制器的作用:是控制程序(即指令)的有序执行。 • 基本功能 :取指令、分析解释指令、执行指令(包括 • 控制程序和数据的输入输出、以及 对异常情况和殊请求的处理)
组成:一般由程序计数器PC、指令寄存器IR、指令 组成:一般由程序计数器PC、指令寄存器IR、指令 译码器ID、控制逻辑电路和时钟控制电路等组成.
指令 转移地址 IR指令寄存器 PC 操作码 地址码 程序计数器 Reset +1 运 算 起停线路 指令译码器 器 指令 CLK 地址 脉冲源 时序控制 状态寄存器 信号形成部件 操作数 数据 地址 DB 数据总线 AB 地址总线 CB 控制总线 I/O 存储器
QB QB 0 1 C D B t1 t2 t3 QA CPB QA QA 0 1 C D CPB A QB CPA t1 t2 A B A B 加法 S S 计算机中采用的电路:记忆性电路和非记忆性电路。
二、指令执行过程举例 1)一条加法指令的执行过程: 其中: rs,rd,rs1为通用寄存器的地址;imm(or disp)为 立即数(或偏移量) 功能:将寄存器(rs)中的数与存储器中的数 (其地址为 (rs1)+disp) 相加,结果存放在寄存器rd中。
①从存储器取指令,送人指令寄存器,并进行操作码译码。 程序计数器加1,为下一条指令作好准备。 控制器发出的控制信号PC AB,W/R=0,M/IO=1;DB IR;PC+1。
②计算数据地址,将计算得到的有效地址送地址②计算数据地址,将计算得到的有效地址送地址 • 寄存器AR。其中rs1标示通用寄存器地址、GR • 表示通用寄存器、disp表示位移量。控制器发 • 出的控制信号: rs1 GR,(rs1) ALU, • disp ALU;“+”ALU;ALU AR(有效地 • 址送地址寄存器)。 • ③到存储器取数。控制器发出的控制信号 AR AB, • W/R=0,M/IO=1;DB DR。(将地址寄存器 • 内容送地址总线,同时发访存读命令,存储器读出 • 数据送数据总线后,打人数据寄存器)。
④进行加法运算,结果送寄存器,并根据运算结果置状④进行加法运算,结果送寄存器,并根据运算结果置状 态位N,Z,V,C。 控制器送出的控制信号rs GR,( rs) ALU,DR ALU (两个源操作数送ALU);‘+’(ALU进行加法运算); rd GR ; ALU rd。置N、Z,V、C(结果送寄存器,并置状态位)。
CPU内部操作 取指令 计算地址 取数 运算送结果 0 t1 t2 t3 t4 访问存储器 以上操作需要四个机器周期
计算地址 取指 t1 t2 取数 t3 加法运算 t4 T1 T2 T1 T2 T1 T2 T1 T2 指令 数据 IN IN CLK2 CLK PC→AB,DB→IR PC+1 AR→AB,DB→DR ADS W/R M/IO READY 数据总线DB rs1→GR,(rs1)→ALU disp→ALU “+” rs→GR,(rs)→ALU DR→ALU ALU→AR rd→GR ALU→rd,置N,Z,V,C
2)条件转移指令的执行过程 • 指令功能根据N,Z,V,C的状态,决定是否转换。如转移条件成立则转移到本条指令所指定的地址,否则顺序执行下一条指令。 • 本条指令完成以下操作 • ①从存储器取指令,送人指令寄存器并进行操作码译码。 • 程序计数器加1,如不转移,即为下一条要执行的指令地址。 • 本操作对所有指令都是相同的。 • ②如转移条件成立,根据指令规定的寻址方式计算有效地址,转移指令经常采用相对寻址方式。此时转移地址=PC+diSP。此处PC是指本条指令的地址,而在上一机器周期已执行pc+1操作,因此计算时应取原pc值,或对运算进行适当修正。最后将转移地址送pc。
本条指令只需要两个机器同期,如转移条件成立,在第二机器周期本条指令只需要两个机器同期,如转移条件成立,在第二机器周期 • 增加一个ALU PC信号;另外如为相对转移,则用PC ALU信 • 号取代加法指令第2周期中的(rs1) ALU信号,其他信号与加法指 • 令的前两个机器周期中的信号相同。
一、基本概念 在计算机中,一条指令的功能是通过按一定次序执行一系列基本操作完成的,这些基本操作称为微操作。如取指令、计算地址、取数、加法运算完成,每一步实现若干个微操作。 微指令:在微程序控制的计算机中,将由同时发出的控制信号所执行的一组微操作称为微指令。将一条指令分成若于条微指令,按次序执行这些微指令,就可以实现指令的功能,组成微指令的微操作,又称微命令。 微程序:计算机每条指令的功能均由微指令序列解释完成,这些微指令序列的集合就叫做微程序。 序。
微程序:计算机每条指令的功能均由微指令序列解释完成,这些微指令序列的集合就叫做微程序。微程序:计算机每条指令的功能均由微指令序列解释完成,这些微指令序列的集合就叫做微程序。 • 控制存储器:微程序是存放在存储器中的,由于该存储器主要存放控制命令(信号)与下一条执行的微指令地址(简称为下址),所以被叫做控制存储器。一般计算机指令系统是固定的,所以实现指令系统的微程序也是固定的,于是控制存储器可以用只读存储器实现。又由于机器内控制信号数量比较多,再加上决定下址的地址码有一定宽度,所以控制存储器的字长比机器字长要长得多。 • 执行一条指令实际上就是执行一段存放在控制存储器中的微程序。
控制信号一览表 序号 控制信号 功能序号 控制信号 功能 1PC→AB 指令地址送地址总线13+ ALU进行加法运算 2ALU→PC 转移地址送PC14- ALU进行减法运算 3PC+1 程序计数器加115∧ALU进行逻辑乘运算 4disp→ALU 立即数送ALU16∨ ALU进行逻辑加运算 5DB→IR 取指到指令寄存器17 ALU→GRALU运算结果送通用寄存器 数据总线上的数据送数据 寄存器 6DB→DR 18 ALU→DRALU运算结果送数据寄存器 数据寄存器中的数据送数据 总线 ALU计算的有效地址送地址 寄存器 7DR→DB 19 ALU→AR 8rs1→GR 寄存器地址送通用寄存器20 AR→AB 地址寄存器内容送地址总线 9rs,rd→GR 寄存器地址送通用寄存器21 ADS 地址总线上的地址有效 10 (rs1)→ALU 寄存器内容送ALU22 M/IO 访问存储器或I/O 11 (rs)→ALU 寄存器内容送ALU23 W/R 写或读 12DR→ALU 数据寄存器内容送ALU 二、基本原理
1 PC→AB rs,rd→GR rs1→GR PC+1 3 8 ALU →PC 9 2 imm(disp) 4 (rs)→ALU (rs1)→ALU 11 10 12 DR→ALU + + ∧ 13 → 13 → ←15 5 - … ∨ 14 → ←16 DR→DB 7 DB→IR 17 ALU→GR PC→AB ALU→PC AR→AB DB→IR 6 18 DB→DR 21ADS 21ADS ALU→DR ALU→AR 22M/IO 22M/IO 19 内部控制信号 23W/R 23W/R 20 AR→AB IR 节拍及工作 时钟脉冲 程序计数器PC 通用寄存器GR CLK 起停电路 指令译码器 reset CLK2 … 脉冲源 时序控制信号形成部件 数据寄存器DR N Z V C ALU AR 数据总线DB 地址总线AB 控制总线CB
控制字段 下址字段 1 2 … 23 24 … 35 PC→AB ALU→PC W/R 由于微指令存放于只读控制存储器中,因此微指令中含有下一条微指令的地址(下址)。
控制位 下址位 取指 1 1 1 1 1 0 × × × × × × × × × × × × 1 1 1 1 1 1 1 计算地址 1 1 1 0 1 1 1 1 取数 1 1 1 1 1 1 加法运算 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 加法指令的微指令编码
加法指令 1001 1000 取指 PC+1 减法指令 1004 转移指令 1100 计算地址 1002 计算地址 1005 计算地址 1000 1002 1005 取数 1003 取数 1006 1003 1006 加法运算 1000 减法运算 1000 微程序流程图
微程序控制器简框图 微操作 地址码 • IR • 形成本条指令的 微程序入口地址 微指令寄存器 指令译码 控制存储器 控制字段 下一条地址
微程序控制器的基本工作原理如下 • 当指令取人IR中以后,根据操作码进行译码,得到相应指令的第一条微指令的地址、在图 6 .10中当执行加法指令时译码得到的地址为1001,当执行减法指令时,译码得到的地址为1004, …,当执行条件转移指令时,译码得到的地址为1100之后,都由微指令的下址字段指出下一条微指令的地址。
指令译码部件可用只读存储器组成(PROM),将操作码作为只读存储器的输人地址,该单元的内容即为相应的微指令在控制存储器中的地址根据此地址从控制存储器取出微指令并将它存放在微指令寄存器中。微指令分成两部分,产生控制信号的部分一般称为控制字段,产生下址的部分称为下址字段。控制字段各位的输出通过连接线直接与受控制的门相连,于是就提供了在本节所提出的控制信号。指令译码部件可用只读存储器组成(PROM),将操作码作为只读存储器的输人地址,该单元的内容即为相应的微指令在控制存储器中的地址根据此地址从控制存储器取出微指令并将它存放在微指令寄存器中。微指令分成两部分,产生控制信号的部分一般称为控制字段,产生下址的部分称为下址字段。控制字段各位的输出通过连接线直接与受控制的门相连,于是就提供了在本节所提出的控制信号。
T1 T2 CLK 0 1 CLK2 0 1 C D D C CLK2 CLK 。 CP-T1 CLK2 。 CLK CLK2 CP-T1 CP-T1=CLK2 . CLK= CLK2+ CLK CP= T2 . CLK. CLK2 T1 T2 CP1= T1 . CLK. CLK2 CP CP+CP1=CLK. CLK2 CP1 CP+CP1
时钟控制电路:为每条指令按时间顺序执行提供基准信号。时钟控制电路:为每条指令按时间顺序执行提供基准信号。 由时钟脉冲发生器(石英晶体振荡器)和启停控制电路组成。 石英晶体振荡器产生一定频率的时钟脉冲信号,作为整个机器的时间基准源。 • 主频称为主机振荡频率,具体分为CPU内部频率和外部频率(总线频率),它的高低取决于这台计算机的CPU的适应能力。
时钟周期:主频的倒数,表示相邻脉冲的时间间隔,通常称为 节拍脉冲或T周期。它是处理操作的最基本单位。 • 指令周期:取出并执行一条指令所需要的时间。 • 机器周期 :将指令周期划分成几个时间段,每个阶段称为一 个机器周期,也称为CPU周期。 • 三级时序关系:时钟周期≤机器周期≤指令周期
CLKA CLK Q CLKA Q Q C D Q CLK CLKA (1)电路延迟引起的波形畸变
(2)机器周期的确定 一条指令是有多条微指令组成的,而一条微指令要完成若干个微操作。不同的微指令完成的微操作是不同的,不管怎样,所有微操作尽量都要在一个机器周期内完成。因此机器周期的时间是由最长的微操作时间决定的。 为了保证数据信息的可靠传输,对于一些慢速的设备,在一个机器周期内不能完成有效的操作,往往需要ready控制信号告知cpu增加一个机器周期。
0 1 C D C cond C CP CP-C 0 1 B D C cond B CP-B CP 0 1 A D C (3)时钟脉冲CLK和工作脉冲CP的标准性 CLK和CP是控制计算机工作的脉冲,其幅度和脉宽要求严格。 A、B、C三个触发器,当条件cond成立时,B→C,A→B。
0 1 C D C 。 。 CP cond C 0 1 B D C cond B 0 1 A D C