• 1. 第6章 中央处理部件(CPU)6.1 计算机的硬件系统 6.2 控制器的组成 6.3 微程序控制计算机的基本工作原理 6.4 微程序设计技术 6.5 硬布线控制的计算机 6.6 控制器的控制方式 6.7 流水线工作原理 *6.8 CPU举例(自学) *6.9 计算机的 加电及控制过程 (自学)
  • 2. 学习目的 1. 了解计算机的硬件系统、分析计算机的加电及控制过程。 2. 掌握控制器的组成的主要部件,并能分析各主要部件的功能和相互关系。 3. 掌握微程序控制计算机的基本工作原理,微程序设计技术。 4. 分析硬布线控制的计算机的工作原理、时序分配方法。 5. 了解控制器的控制方式、流水线工作原理。
  • 3. 本章重点 (1)程序是如何执行的; (2)计算机怎样实现各条指令的功能; (3)计算机如何保证逐条指令的连续执行过程。 本章难点 (1)计算机运行过程中,各个硬件部件的作用; (2)CPU中各个部件的操作过程及其实现方法的原理。
  • 4. 第6章 中央处理部件(CPU)计算机组成:运算器、控制器、存储器、输入设备和输出设备五大部件。 微处理器:运算器+控制器集成在一个芯片上,通常称之为中央处理部件(CPU)。 控制器的作用:协调并控制计算机的各个部件执行程序的指令序列。
  • 5. 机器加电时: (1)可以利用reset信号将某值(例如全 “0”)置于程序计数器PC中,此即为开机后执行的第一条指令的地址,也就是固定程序入口地址; (2)也可以直接在指令寄存器中置入一条无条件转移指令(转移到固定程序入口),然后开始执行程序。 固定程序:先对计算机各部件进行测试,然后进入操作系统环境,等候操作员从键盘送入命令,或用鼠标器对显示屏上的图标进行选择。(一般放在ROM中) 计算机的工作过程: 加电→产生reset信号→执行程序→停机→停电。
  • 6.  程序执行过程:计算机从程序入口地址开始执行该程序的指令序列,是不断地取指令、分析指令和执行指令这样一个周而复始的过程。  实现原理:当前正在执行的指令地址是放在控制器的程序计数器(PC)中的。
  • 7. 6. 1 计算机的硬件系统1.Intel 80386微机系统 图6.1是由Intel 80386微处理器等器件组成的 微机系统,Intel 80386是32位微处理器。(P163)
  • 8. Intel 80386 微机系统框图是系统中主要的处理、控制部件机器加电时产生reset信号,计算机各个部件处于初始状态。执行的第1条指令的地址为0FFFFFFF0H,为一条转移指令,转到引导程序入口。Clk是clk2的二分频时钟信号80386通过总线与存储器和I/O设备交换信息。对总线的使用需要总线控制逻辑来管理。快速设备通过DMA方式与主存交换信息。慢速设备通过中断方式与主存交换信息。当CPU与主存交换信息时,由于速度不匹配,CPU需要等待,ready信号是由存储器发出的,表明CPU需要的读写命令已完成。80287/387协处理器与80386并行工作,扩充了80386的指令系统,主要完成浮点运算和高精度整数运算,80386自动将取得的协处理器指令传给80387。
  • 9. 2. Intel 80386结构及外部连线80386包括: 指令部件:完成取指及指令译码功能并产生控制信号; 执行部件:包括ALU、乘法部件、寄存器等; 存储管理部件:用来确定存储器地址。 80386微处理器芯片通过引出端与计算机的其它部件连接。各引出端的功能如下:
  • 10. ADS:地址状态信号,表示地址线、总线周期定义信号已有效,开始总线周期进行读写。NA:本次读/写操作虽未完成,允许送下一周期的地址和读写信息,使两次操作重叠。ready:当存储器或I/O设备完成操作后发出的信号。386接到此信号后,结束本周期。BS16:表示被访问的存储器或I/O设备的数据传送宽度为16位。PEREQ:协处理器请求386在存储器与协处理器之间传送一个数据。BUSY:协处理器忙,不能接收另一个指令。ERROR:协处理器出现了一个错误主设备:占用总线的设备。从设备:与主设备通信的设备。 I/O设备作主设备时,发出hold信号申请。当CPU同意总线请求,可以释放总线,发hlda。其余引出端均呈高阻状态。INTR为中断请求信号,NMI不可屏蔽中断请求信号,RESET为总清或复位信号在80386与存储器或I/O设备之间传送(读写)一个数据的时间称为总线周期。W/R#区分是写周期(当W/R#为1时)还是读周期(当W/R#为0时)D/C#表示是数据周期还是控制(取指)周期M/IO#表示是访问存储器还是I/O设备LOCK#为总线锁定信号,当它为低电位时,不允许芯片外部的信号打断当前总线周期的操作,即CPU不允许让出总线控制权。
  • 11. 6.2 控制器的组成6. 2. 1 控制器的功能 计算机对信息进行处理(或计算)是通过程序的执行而实现的,程序是完成某个确定算法的指令序列,要预先存放在存储器中。控制器的作用:控制程序的执行,它必须具有以下基本功能: 1.取指令 当程序已在存储器中时,首先根据程序入口取出第一条指令,为此要发出指令地址及控制信号。然后不断取出第2,3,…条指令。
  • 12. 2.分析指令 或叫解释指令、指令译码等。是对当前取得的指令进行分析,指出它要求作什么操作,并产生相应的操作控制命令,如果参与操作的数据在存储器中,还需要形成操作数地址。 3.执行指令 根据分析指令时产生的“操作命令”和“操作数地址”形成相应的操作控制信号序列,通过CPU及输入输出设备的执行,实现每条指令的功能,其中还包括对运算结果的处理以及下条指令地址的形成。 计算机不断重复顺序执行上述三种基本操作:取指、分析、执行;再取指、再分析、再执行……,如此循环,直到遇到停机指令或外来的干预为止。
  • 13. 4.控制程序和数据的输入与结果输出 根据程序的安排或人的干预,在适当的时候向输入输出设备发出一些相应的命令来完成I/O功能,这实际上也是通过执行程序来完成的。 5.对异常情况和某些请求的处理 部件或设备发出: (1)“中断请求”信号 待CPU执行完当前指令后,响应该请求,中止当前执行的程序,转去执行中断程序。当处理完毕后,再返回原程序继续运行下去。 (2)DMA请求信号 等CPU完成当前机器周期操作后,暂停工作,让出总线给I/O设备,在完成I/O设备与存储器之间的传送数据操作后,CPU从暂时中止的机器周期开始继续执行指令。
  • 14. 6.2.2 控制器的组成 1.程序计数器(PC) 2.指令寄存器(IR) 3.指令译码器或操作码译码器 4.脉冲源及启停线路 5.时序控制信号形成部件
  • 15. 即指令地址寄存器。存放当前正在执行的指令地址或下一条指令地址。 指令地址形成: (PC)+1->PC。或: 转移指令修改其内容用以存放当前正在执行的指令对指令寄存器中的操作码进行分析解释,产生相应的控制信号。 脉冲源产生一定频率的脉冲信号作为整个机器的时钟脉冲,是机器周期和工作脉冲的 基准信号。根据当前正在执行的指令的需要,产生相应的时序控制信号返回指令执行返回微程序控制器
  • 16. 6.2.3 指令执行过程 1. 组成控制器的基本电路 计算机中采用的电路,基本上分为两种类型:一类是具有记忆功能的触发器以及由它组成的寄存器、计数器和存储单元等。另一类是没有记忆功能的门电路及由它组成的加法器、算术逻辑运算单元(ALU)和各种逻辑电路等。
  • 17. 2.指令执行过程举例数据通路:控制器组成:图6.3 运算器组成:图6.6所示 中央处理器组成:图6.8 (1) 一条加法指令的执行过程:(时序图) 指令格式:rs,rd,rs1为通用寄存器地址;imm(或disp)为立即数(或位移量)。 加法指令功能:(rs)+[(rs1)+disp]-> rs取指令计算地址取数运算送结果划分机器周期的原则:总线不冲突.
  • 18. 加法指令返回
  • 19. 图6.7 加法指令时序图返回
  • 20. (2)条件转移指令的执行过程 指令功能:根据N,Z,V,C的状态,决定是否转换。如转移条件成立,则转移到本条指令所指定的地址,否则顺序执行下一条指令。 本条指令完成以下操作: ①从存储器取指令,送入指令寄存器,并进行操作码译码。 程序计数器加1,如不转移,即为下一条要执行的指令地址。 本操作对所有指令都是相同的。
  • 21. ②如转移条件成立,根据指令规定的寻址方式计算有效地址,转移指令经常采用相对寻址方式,此时转移地址;PC+disp。此处PC是指本条指令的地址,而在上一机器周期已执行PC+1操作,因此计算时应取原PC值,或对运算进行适当修正。最后将转移地址送PC。 控制信号:PC →ALU,disp→ALU;“+” ;ALU→ PC
  • 22. 其他指令的控制信号也按同样方法分析,根据每条指令的功能确定所需的机器周期数,并得出每个机器周期所需要的控制信号,最后将所有的控制信号进行综合简化。控制器的功能就是按每条指令的要求产生所需的控制信号。因此在设计控制器时要求系统设计师提供一个完整的无二义性的指令系统说明书。产生控制信号一般有微程序控制和硬布线控制两种方法。
  • 23. 课后作业 CPU结构如图所示,其中有一个累加寄存器AC、一个状态条件寄存器和其他四个寄存器,各部分之间的连线表示数据通路,箭头表示信息传送方向。要求: (1) 标明图中a,b,c,d四个寄存器的名称。 (2) 简述指令从主存取到控制器的数据通路。 (3) 简述数据在运算器和主存之间进行存/取访问的数据通路。
  • 24. (本页无文本内容)
  • 25. 6.3 微程序控制计算机的基本工作原理6.3.1 微程序控制的基本概念1.微操作(微命令):实现一条指令的功能按一定次序执行一系列基本操作,这些基本操作称为~。 例如,前面讲到的加法指令,分成四步(取指令、计算地址、取数、加法运算)完成,每一步实现若干个微操作。
  • 26. 2.微指令:由同时发出的控制信号所执行的一组微操作称为微指令,它含控制命令(信号)与下一条执行的微指令地址。 将一条指令分成若干条微指令,按次序执行这些微指令,就可以实现指令的功能。 3.微程序:用于完成计算机的指令功能的微指令序列的集合。
  • 27. 4.控制存储器:存放微程序(控制指令与下条微指令地址)的存储器。它可以用只读存储器实现。执行一条指令=执行一段微程序
  • 28. 6.3.2 实现微程序控制的基本原理1.控制信号
  • 29. 返回指令执行返回控制信号返回时序信号
  • 30. 以执行一条加法指令为例,它由四条微指令解释执行,一条微指令中的所有控制信号是同时发出的。每条微指令所需的控制信号如下: (1)取指微指令 ①指令地址送地址总线:PC→AB(1) ②发访存控制命令,ADS(21),M/IO=1(22), W/R=0(23)。从存储器取指令送数据总线。 ③指令送指令寄存器:DB→IR(5) ④程序计数器+1:PC十1(3)(2)计算地址微指令 ①取两个源操作数(计算地址用):rsl→GR(8),(rsl) →ALU(10),disp→ALU(4)。 ②加法运算:“+”(13)。 ③有效地址送地址寄存器:ALU→AR(19)。
  • 31. (3)取数微指令 ①数据地址送地址总线:AR→AB(20)。 ②发访存控制命令:ADS(21),M/IO(22),W/R(23)。由存储器将数据送数据总线DB。 ③数据送数据寄存器:DB→DR(6)(4)加法运算和送结果微指令 ①两源操作数送ALU:rs→GR(9),(rs) →ALU(11);DR→ALU(12)。 ②加法运算:“+”(13) ③送结果;ALU→GR(17)
  • 32. 微指令如何产生控制信号: 微指令最简单的组成形式: 将每个控制信号用一个控制位来表示,当该位为“1”时,定义为有控制信号,当该位为“0”时,没有控制信号。控制存储器容量为4K字,则每条微指令还需要12位来表示下址。控制存储器的容量取决于实现指令系统所需的微程序长度。
  • 33. 图6.9为加法指令的四条微指令编码,每一小格表示一位(二进制),空格表示0,第24位到第35位为下址。
  • 34. 微程序也可用 流程图来表示方框:表示微指令右下角的数字:表示下址上方的数字:微指令的地址
  • 35. 微程序控制器的基本工作原理: 当指令取入IR中以后,根据操作码进行译码,得到相应指令的第一条微指令的地址。指令译码部件可用只读存储器组成,将操作码作为只读存储器的输入地址,该单元的内容即为相应的微指令在控制存储器中的地址。根据控制存储器中的地址从控制存储器取出微指令,并将它存放在微指令寄存器中。控制字段各位的输出通过连接线直接与受控制的门相连,于是就提供了在本节所提出的控制信号。 2.微程序控制器时序控制信号形成部件
  • 36. 3.时序信号及工作脉冲的形成 在图6.8中,没有画出一些寄存器(例如指令寄存器、程序计数器等)接收数据或计数的工作脉冲(打入脉冲),这些脉冲是如何形成的呢?    另外在波形图中的CLK,T1, T2等信号又是如何产生的?
  • 37. 观察时序可知: CLK2二分频---得到CLK CLK二分频---得到T1 T1反相----得到T2先看CLK、T1、T2 怎样产生的?
  • 38. T2的末尾产 生一个CP, 用来保存计算 结果或接收传 送的数据及指 令等。T1的末尾产 生另一个工作 脉冲。两个工作脉冲的叠加信号
  • 39.  在一个机器周期内设置一个或多个工作脉冲?机器周期时间多长?这是由设计者根据逻辑设计和电路性能而决定的,将随机器而异。 下面讨论一下机器中一些寄存器的打入脉冲是如何形成的。控制位 DBIR为“1”,采用与门,可形成IR的打入脉冲
  • 40. 4.电路配合中的常见问题 (1)电路延迟引起的波形畸变 F/F无延迟CLK无畸变F/F有延迟CLK有畸变
  • 41. (2)机器周期的确定 1)机器周期>=一条微指令中执行时间最长的微操作。主要考虑存储器访问时间和一次运算所需的时间。  2)机器周期的延长:    信号来自存储器,若 信号出现较晚,CPU将延长一个或一个以上T2节拍信号。 当T2有,且无   信号时,封锁CLK2信号(T的计数脉冲)。
  • 42. 有T2且无ready信号时,封锁CLK2信号: T2 · ready 允许T计数的条件: T2 · ready=T2+ ready=Tl+ ready=Tl+ready
  • 43. (3)时钟脉冲CLK和工作脉冲CP的标准性当满足cond条件时,才产生CP—B和CP-C信号。CP脉冲不受控制,总是作用在触发器上,但当条件不成立时,使触发器处于保持状态,而当条件成立时,接受新状态。
  • 44.  打入脉冲的同时性:  在控制打入脉冲的机器中,总是尽量将CP信号送到控制门的最后一级。以免延迟造成失真和不同步。
  • 45. 5.微程序控制计算机的工作过程简单的总结(参阅图6.8)(1)机器加电后,首先由reset信号在PC内置入开机后执行的第一条指令的地址,同时在微指令寄存器内置入一条“取指”微指令,并将其他一些有关的状态位或寄存器置于初始状态。当电压达到稳定值后,自动启动机器工作,产生节拍电位T1,T2和CP。 (2)机器开始执行程序·,不断地取出指令、分析指令、执行指令。程序可以存放在固定存储器中,也可以利用一小段引导程序(在固存中)将要执行的程序和数据从外部设备调入主存。
  • 46. (3)实现各条指令的微程序是存放在微程序控制器中的  当前正在执行的微指令从微程序控制器中取出后放在微指令寄存器中,由微指令的控制字段中的各位直接控制信息和数据的传送,并进行相应的处理。当遇到停机指令或外来停机命令时,应该待当前这条指令执行完再停机或至少在本机器周期结束时再停机。
  • 47. 课后作业设某计算机运算控制器逻辑图如图6.8,控制信号意义见表6.1,指令格式和微指令格式如下: 指令格式 操作码 rs,rd,rs1imm或disp 微指令格式 1 2… 23 24 … 25 控制字段 下址字段 其中1—23位代表的1—23号控制信号见表6.1。 试写出下述三条指令的微程序编码: (1) JMP(无条件转移到(rs1)+disp) (2) Load(从(rs1)+disp指示的内存单元取数,送rs保存) (3) Store(把rs内容送到(rs1)+disp指示的内存单元 提示:先列出各指令执行步骤和每步所需控制信号,最后再写出编码
  • 48. 6.4 微程序设计技术 在实际进行微程序设计时,要考虑下面三个问题: (1)如何缩短微指令字长; (2)如何减少微程序长度; (3)如何提高微程序的执行速度。 6.4.1 微指令的编译法---控制字段 微指令的编码,就是对微指令的控制字段采用的表示方法。1.直接控制法(不译码法 ) 操作控制字段中的每一位代表一个微命令。“1”-有效,“0”-无效。 优点:简单直观,输出直接用于控制  缺点:微指令字较长,因而使控制存储器容量较大。
  • 49. 2.字段直接编译法(使用较普遍)  微周期:是一条微指令所需的执行时间。  如果有若干个(一组)微命令,在每次选择使用它们的微周期内,只有一个微命令起作用,那么这若干个微命令是互斥的。  选择互斥的微命令入同组分组编码,用微命令译码器译码控制。例: 当字段长度为3位时,最多只能表示7个互斥的微命令,通常代码000表示不发微命令。 优点:缩短了微指令长度。 代价:在微指令寄存器的输出端,为该字段增加一个译码器,该译码器的输出即为原来的微命令。 字段长度n与所能表示的微命令数m的关系:m=2n-1
  • 50. (本页无文本内容)
  • 51. 3.字段间接编译法  如果在字段直接编译法中,还规定一个字段的某些微命令,要兼由另一字段中的某些微命令来解释,称为字段间接编译法。 优点:进一步减少了指令长度。 缺点:削弱微指令的并行控制能力。A受B控制,B发b1微指令时,字段A发出a1,1~a1,7中的一个微命令。B发b2微指令时,字段A发出a2,1~a2,7中的一个微命令。
  • 52. 4.常数源字段E 在微指令中,一般设有一个常数源字段E,就如指令中的立即操作数一样。E字段一般仅有几位,用来给某些部件发送常数,故有时称为发射字段。该常数有时作为操作数送入ALU运算;有时作为计算器初值,用来控制微程序的循环次数等。 5.其他 如:微操作码编译法(见微指令格式)
  • 53. 6.4.2 微程序流的控制现行微指令:当前正在执行的微指令。 现行微地址:现行微指令所在的控制存储器单元的地址。 后继微指令:下一条要执行的微指令。 后继微地址:后继微指令所在的控制存储器单元地址。 微程序控制:当前微指令执行完毕后,产生后继微指令的微地址的方法。
  • 54. 1.产生后继微指令地址的几种方法(1)以增量方式产生后继微地址 A)微程序入口:首条微指令,由专门硬件电路产生,控制实现取指操作; B)顺序执行:后继微地址=现行微地址(在微程序计数器中)+1 C)转移地址:后继微地址=现行微地址+转移条件译码(相对转移量) D)由操作码产生后继地址
  • 55. 优点:可使微指令的下址字段很短,仅起选择作用。 缺点:微程序转移很不灵活,使得微程序在控存中的物理空间分配相当困难。   在下图中,μPC兼作控制存储器的地址寄存器,输入有四个来源。下址字段仅有两位,其功能是选择三个输入源中的一个作为μPC的输入,而微程序入口是由专门的硬件产生的,不受下址字段控制。
  • 56. (2)增量与下址字段结合产生后继微地址 微指令的下址字段分成两部分: 转移控制字段BCF和转移地址字段BAF, BCF控制转移条件,BAF控制转移的目标地址。 当条件成立时,微程序要转移,将BAF送μPC,否则顺序执行下一条微指令(μPC+1)。 执行微程序条件转移时,决定转移与否的硬件条件有好几种。由BCF定义的八个微命令见表6.2。
  • 57. (本页无文本内容)
  • 58. BCF=0,顺序执行微命令,μPC+1为后继微地址。BCF=1,条件转移微命令,当运算结果为0时,将BAF送μPC,否则μPC+l—μPCBCF=2,条件转移微命令,当运算结果溢出时,将BAF送μPC,否则μPC+1->μPC。 BCF=3,无条件转移微命令,将BAF送μPC。BCF=4;测试循环微命令,假如CT≠0,表示需要继续执行循环微命令,将循环人口微地址从BAF送μPC。假如CT=0,表示循环结束,后继微地址为μPC+1。本条微命令同时完成CT一1操作。BCF=5,转微子程序微命令,把微子程序人口地址从BAF送μPC,从而实现转移。在转移之前要把该条微指令的下一地址(μPC+1)送人返回寄存器RR之中。BCF=6,返回微命令,把RR中的返回微地址送人μPC,从而实现从微子程序返回到原来的微程序。BCF=7,操作码产生后继微地址的微命令,这是取指后,按现行指令执行的第一条微指令。
  • 59. (3)多路转移方式 一条微指令存在多个转移分支的情况称为多路转移。  后继微地址的产生条件: 1)在若干个微地址中选择一个作为后继微地址,如:根据操作码产生不同的后继微地址。(实现此功能的电路通常由PROM组成,该存储器的特点:以指令的操作码作为地址输入,相应的存储单元内容即为该指令的第一条微指令的入口地址。容量等于或略大于机器的指令数,容量小,速度快。) 2)根据硬件状态决定后继微地址,如:运算结果所置的标志位N、Z、V、C等,计数器状态,数据通路状态。
  • 60. (4)微中断 微中断与程序中断的概念相似,当某一条件满足时,发出微中断请求信号,CPU在完成现行指令的微程序后响应该中断请求,进入微中断处理程序。该微程序的入口地址(硬件产生)即为刚刚执行的微程序的后继微地址。   设计人员在进行微程序设计时,已安排好微中断处理程序在控制存储器的位置,因此该微程序段的入口地址是已知的。当CPU响应微中断请求时,由硬件产生微中断程序的入口地址。当中断处理完毕后,再返回到原来被中断的程序。这也是产生后继微地址的一种情况。2.以AM2900系列芯片构成的微程序CPU(自学)
  • 61. 6.4.3 微指令格式 微指令的格式大体上可分成两类:水平型微指令和垂直型微指令。 1. 水平型微指令 特点:在一条微指令中定义并执行多个并行操作微命令。   一般格式如下:     在实际应用中,直接控制法、字段编译法(直接、间接编译法)经常应用在同一条水平型微指令中。从速度来看,直接控制法最快,字段编译法要经过译码,所以会增加一些延迟时间。控制字段 |判别测试字段|下地址字段
  • 62. 2. 垂直型微指令 在微指令中设置有微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能,称为垂直型微指令。    特点:不强调实现微指令的并行控制功能,通常一条微指令只要求能控制实现一二种操作。这种微指令格式与指令相似:每条指令有一个操作码;每条微指令有一个微操作码。
  • 63. 3.水平型微指令与垂直型微指令的比较 (1)并行性、效率和灵活性:水平好,垂直差。 (2)指令执行时间:水平短,垂直长。 (3)水平:微指令字长,微程序短。   垂直:微指令字短,微程序长。 (4)用户使用:水平难,垂直易。
  • 64. 课后作业1..从供选择的答案中,选出正确答案填入( )中 微指令分成水平型微指令和(A)微指令两类。(B)可同时执行若干个微操作,所以执行指令的速度比(C)快。 在实现微程序时,取下一条微指令和执行本条微指令一般是(D)进行的,而微指令之间是(E)执行的。 实现机器指令的微程序一般是存放在(F)中的,而用户可写的控制存储器则由(G)组成。 供选择的答案 A—C:① 微指令;② 微操作;③ 水平型微指令;④ 垂直型微指令。 D,E:① 顺序;② 重叠。 F,G:① 随机存储器(RAM);② 只读存储器(ROM)。
  • 65. 6.4.4 微程序控制存储器和动态微程序设计1.微程序控制存储器 存储介质类型:RAM、ROM、EPROM等。 2.动态微程序设计   能够根据用户的要求来改变微程序的设计称动态微程序设计。   用于动态微程序设计的控制存储器称为可写控制存储器(WCS)或用户控制存储器(UCS)。
  • 66. 3.控制存储器的操作 执行一条微指令包括:取微指令和执行微指令操作。  根据这两步是串行还是并行进行而具有下述的两种方式: (1)串行方式 执行一条微指令所需要的时间称为微周期。在串行方式下微周期的安排如下:
  • 67. (2)并行方式  将执行本条微指令的功能与取下一条微指令的操作在时间上重叠起来。(因为两种操作是在不同的部件中完成的)   实现方法:增加了微指令寄存器。执行微指令时,先将微指令送入IR
  • 68. 4.毫微程序设计的基本概念 (1) 毫微程序:用来解释微程序的微程序。毫微指令是解释微指令的微指令。其主要目的是为了减少控制存储器的容量。 (2)设计方法:采用两级法。   第一级采用垂直微程序,主要功能是简单分类和下址的确定,该级很容易实现微程序设计的自动化,其控制存储器的主要特点是字短。   第二级采用水平微程序,由第一级调用,本身具有并行操作控制的能力但不含下址,可以被第一级重复调用。 每条毫微指令各不相同。特点:控制存储器字数较少,但每个字的长度较长。
  • 69. 5.微程序设计语言:用来编制微程序的语言叫微程序设计语言,一般用微汇编语言。
  • 70. 6.5 硬布线控制的计算机  在运算控制器逻辑图, “时序控制信号形成部件”产生控制计算机各部分操作所需的控制信号,这个部件组成有两种方式:(1)微程序控制方式 (2)硬布线控制方式  硬布线控制方式: 通过逻辑电路直接连线而产生的,所以又称为组合逻辑控制方式。   至于控制器的其他组成部分,诸如时钟、启停电路、程序计数器、指令寄存器以及电路配合问题等等,则不因控制方式而异。
  • 71. (本页无文本内容)
  • 72. 6.5.1 时序与节拍 一条指令的实现可分成:取指、计算地址、取数及执行等几个步骤。在微程序控制方式中,每一步由一条微指令实现,而硬布线控制方式则由指令的操作码直接控制并产生实现上述各步骤所需的控制信号。一条指令的每一步由一个机器周期实现,如何区分一条指令的四个机器周期呢? 方法有两种: 法1. 两位计数器的译码输出产生的四个状态来表示当前所处的机器周期,(2-4译码器)如图6.31所示; 法2.用四位触发器来分别表示四个周期,当机器处于某一周期时,相应的触发器处于“1”状态,而其余三个触发器则处于“0”状态,四位移位寄存器即可实现此功能。
  • 73. 两位计数器译码输出4位
  • 74. 由于每条指令的功能不同,机器周期数和长短有所不同,计数器或移位寄存器的工作时序发生变化的规律与指令有关。A指令需4 个机器周期B指令需3个机器周期当前周期计数状态下一周期计数状态 A指令:cyA’=cyA cyB+cyA cyB; cyB’=cyA cyB+cyA cyB=cyB。 B指令:cyA’=cyA cyB+cyA cyB=cyB; cyB’=cyA cyB。
  • 75. A指令:cyA’=cyA cyB+cyA cyB; cyB’=cyA cyB+cyA cyB=cyB。 B指令:cyA’=cyA cyB+cyA cyB=cyB; cyB’=cyA cyB。‘‘根据逻辑表达式画出逻辑图计数器
  • 76. 注: 1.实际机器指令有几十到几百条,一般根据指令功能列出每条指令的机器周期变化规律,最后归纳处几种情况,将情况相同的指令归为一类,然后列出表达式,画出逻辑图。 2.延长某个机器周期时间的方法:封锁CP(简单);控制计数器输入(复杂)。 3.计数器译码器输出可能会产生毛刺,可通过改变触发器状态的顺序加以改善(此时真值表、表达式、逻辑图要作相应的修改)。
  • 77. 6.5.2 操作控制信号的产生 1.操作码译码器 指令:操作码+地址码 在机器内设置一个指令译码器,输入:操作码 输出:反映出当前正在执行的指令。 由译码器的输出和机器周期状态cyl~cy4作为输入,使用逻辑电路产生操作控制信号。7位OP
  • 78. 2.操作控制信号的产生 “组合逻辑电路”究竟是由什么组成的? 以加法指令为例,假设一条加法指令的功能是由四个机器周期cyl~cy4完成的,分别为取指、计算有效地址、取操作数、进行加法运算并送结果。 取指令周期:控制信号的逻辑式为 PC→AB=cy1 ADS= cy1 · T1 M/IO= cy1 W/R= cy1 DB→IR= cy1 PC+1=cy1
  • 79. (本页无文本内容)
  • 80. (本页无文本内容)
  • 81. 在计算地址周期cy2, 列出逻辑表达式 rsl→GR=加法指令 · cy2  (rsl)→ALU=加法指令 · cy2   …… ALU→AR=加法指令 · cy2对每一条指令都进行同样的分析,得出逻辑表达式。
  • 82. 主要结论:  (1)取指周期cy1的信号对所有指令均相同。  (2)同一控制信号可能在多个指令中运用。   如: ‘+’= 加法指令·cy2+ 加法指令·cy4 + 减法指令·cy2 + 转移指令·cy2 + ……  (3)同种类型的指令所需要的控制信号大部分相同。  如:所有的算术逻辑运算指令仅在ALU的操作命令及    是否置状态位上不同,其他均完全相同。  (4)在确定指令操作码时,要认真做好分类。
  • 83. (本页无文本内容)
  • 84. 6.5.3 控制器的组成
  • 85. 1.程序计数器和中断控制逻辑 程序计数器的输入:有四种来源. (1)开机后的reset信号,将PC置以初始地址; (2)顺序执行指令:由PC+1形成下一条指令地址; (3)转移:由ALU送来转移地址(通过ALU部件计 算有效地址) (4)外来中断请求信号:若CPU响应中断,则由 中断控制逻辑部件产生中断入口地址。 2.译码器 如操作码为7位,则允许计算机最多设置128条指令. 译码器的最基本形式为: 输入:7位操作码 输出:128条线中,在任何时候只有1根为高电位,其余均为低电位(或只有1根为低电位,其余均为高电位),每1根输出线代表一条指令。
  • 86. 3.硬布线逻辑的实现途径 用PLA(可编程逻辑阵列,地址与存储区或均可编程)、PAL(可编程阵列逻辑,与可编程、或不可编程、增加三态输出器件及记忆元件)、GAL(通用阵列逻辑,与或均可编程、输出逻辑宏单元)或半定制电路门阵列(GA)来实现。
  • 87. 6.5.4 硬布线控制逻辑设计中的若干问题—设计步骤1.指令操作码的代码分配 主要目标:简化控制部分的电路,减少延迟时间。 主要难点: (1)CISC不定长操作码的译码困难; (2)为后续升级系统预留指令位置困难。 2.   确定机器周期、节拍与主频 保证大部分指令在一个周期内完成,部分指令通过如“ready”信号等方式来增加机器周期来完成。
  • 88. 3. 根据指令功能,确定每一条指令所需的机器周期数以及每一周期所完成的操作。 如:乘法采用加法与移位操作,每位执行一个周期等方法(延长这条指令的执行周期或重复多次出现执行周期)。 在确定每条指令在每一周期所完成的操作时,也就得出了相应的操作控制命令,一般表达式为: 操作控制命令名=指令名×机器周期×节拍×条件  4.   综合所有指令的每一个操作命令(写出逻辑表达式,并化简之) 如:“+” = 加法指令·(cy2+cy4)+减法指令·cy2+转移指令·cy2+……    “读” = cy1+加法指令·cy3+减法指令·cy3+……
  • 89. 6.5.5 硬布线控制与微程序控制的比较 1. 实现 微程序控制通过控制存储器内的代码来实现,调试、修改方便; 硬布线控制通过组合电路实现,调试、修改复杂。 2.  性能 微程序控制速度较慢; 硬布线控制速度很快,主要用于高速和RISC机器中。
  • 90. 6.6 控制器的控制方式 每条指令和每个微操作所需的执行时间不相同,如何形成控制不同微操作序列的时序控制信号的方法,称为控制器的控制方式,常用的有同步控制方式、异步控制方式和联合控制方式等。 1.同步控制方式 在任何情况下,已定的指令在执行时所需的机器周期数和时钟周期数都是固定不变的,称为同步控制方式。 同步控制方式可选取如下方案: (1)采用完全统一的机器周期执行各种不同的指令。 (2)采用不定长机器周期。 (3)中央控制与局部控制结合。
  • 91. 2.  异步控制方式 所有指令的执行都只受本指令自己的时间需求来控制, 执行完成后通过应答信号告知CPU。 特点:每条指令、每个操作控制信号需要多少时间就占用多少时间。即:每条指令的指令周期可由多少不等的机器周期数组成;也可以是当控制器发出某一操作控制信号后,等待执行部件完成操作后发回“回答”信号,再开始新的操作。 3. 联合控制方式 大部分指令的执行都受相同时间节拍(机器周期)的控制,少数不规整指令的执行通过应答信号控制。 4. 人工控制方式 reset按键、连续或单条转换开关、符合停机(设断点)。
  • 92. 6.7 流水线工作原理 各条指令在执行过程中,机器的各部分在某些周期内在进行操作,而在某些周期内是空闲的。 如果控制器调度恰当,让各个部件紧张工作,可提高计算机运行速度---从而产生了流水线结构。
  • 93. 1.流水线基本工作原理 (1)顺序串执行过程:计算机执行程序是按顺序的方式进行的,即程序中各条机器指令是按顺序串行执行的。  如按指令部件和执行部件顺序操作来考虑可将程序的执行过程表示成:优点:控制简单   缺点:机器各部分利用率不高。
  • 94. (2)两级流水线:假如每个部件完成操作所需的时间为T,那么尽管每条指令的执行时间为2T,但当第一条指令处理完后,每隔T时间就能得到一条指令的处理结果,相当于把处理速度提高一倍。(3)四级流水线两条指令在时间上重叠
  • 95. (4)运算操作流水线  例如,执行浮点加法运算,可以分成“对阶”,“尾数加”及“结果规格化”三段,每一段设置有专门的逻辑电路完成指定操作,并将其输出保存在锁存器中,作为下一段的输入.
  • 96. 2.数据相关对流水线的影响 当第二条指令的操作数地址 = 第一条指令的保存结果地址时,出现流水线阻塞;  此时可通过设置相关专用通路来解决(第二条指令操作数直接从数据处理部件得到);  相关分为存储器数据相关和寄存器数据相关。
  • 97. 流水线相关引起的阻塞 流水线相关引起的阻塞的解决 (专用通路)
  • 98. 3.程序转移对流水线的影响(1)遇到转移指令时,下条指令不再预取(流水)。 (2)用猜测法选定分支中的一个,继续流水。若猜测正确,流水线继续执行;若不正确,返回分支点。 (3)中断处理方法:不精确断点法,将中断发生时已入流水线的指令继续执行完后再进入中断处理子程序。精确断点法,即刻进入中断处理子程序。 6.8 CPU举例(自学)6.9 计算机的加电及控制过程(自学)
  • 99. 课后作业从供选择的答案,选出正确答案,填入( )中。 某机采用两级流水线组织,第一级为取指、译码,需要200ns完成操作;第二级为执行周期,大部分指令能在180ns内完成,但有两条指令要360ns才能完成,在程序运行时,这类指令所占比例为5—10%。 根据上述情况,机器周期(即一级流水线时间)应选为(A)。两条执行周期长的指令采用(B)的方法解决。 供选择的答案 A:①180ns;②190ns;③200ns;④360ns。 B:①机器周期选为360ns;②用两个机器周期完成。