第6章中央处理器(终).ppt

上传人:本田雅阁 文档编号:2120946 上传时间:2019-02-18 格式:PPT 页数:133 大小:977.01KB
返回 下载 相关 举报
第6章中央处理器(终).ppt_第1页
第1页 / 共133页
第6章中央处理器(终).ppt_第2页
第2页 / 共133页
第6章中央处理器(终).ppt_第3页
第3页 / 共133页
亲,该文档总共133页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第6章中央处理器(终).ppt》由会员分享,可在线阅读,更多相关《第6章中央处理器(终).ppt(133页珍藏版)》请在三一文库上搜索。

1、1,蒋本珊 编著,中国计算机学会 “21世纪大学本科计算机专业系列教材” 计算机组成原理,2,第6章 中央处理器,3,中央处理器(CPU)是整个计算机的核心,它包括运算器和控制器。本章着重讨论CPU的功能和组成,控制器的工作原理和实现方法,微程序控制原理,基本控制单元的设计以及先进的CPU系统设计技术。,4,本章学习内容,6.1中央处理器的功能和组成 6.2 控制器的组成和实现方法 6.3 时序系统与控制方式 6.4 微程序控制原理 6.5 控制单元的设计 6.6 流水线技术 6.7 精简指令系统计算机RISC,5,本章学习要求,理解:CPU的功能和主要寄存器 理解:控制器的基本组成 理解:时

2、序系统中指令周期、机器周期的概念 了解:不同的控制方式(同步、异步、联合) 理解:指令执行的基本过程 掌握:取指周期的微操作序列(公共操作) 理解:微程序控制的基本概念 掌握:微指令编码法特点 理解:微程序控制器的组成和工作过程 理解:微程序入口地址和后继微地址的形成 了解:控制单元的设计 了解:流水线技术和RISC技术,6,6.1中央处理器的功能和组成,CPU对整个计算机系统的运行是极其重要的,这里将从CPU的功能、内部结构和主要技术参数入手,为后面详细讨论程序的执行过程打下基础。,7,6.1.1 CPU的功能,若用计算机来解决某个问题,首先要为这个问题编制解题程序,而程序又是指令的有序集合

3、。按“存储程序”的概念,只要把程序装入主存储器后,即可由计算机自动地完成取指令和执行指令的任务。在程序运行过程中,在计算机的各部件之间流动的指令和数据形成了指令流和数据流。,8,6.1.1 CPU的功能(续),需要注意的是,这里的指令流和数据流都是程序运行的动态概念,它不同于程序中静态的指令序列,也不同于存储器中数据的静态分配序列。指令流指的是CPU执行的指令序列,数据流指的是根据指令操作要求依次存取数据的序列。从程序运行的角度来看,CPU的基本功能就是对指令流和数据流在时间与空间上实施正确的控制。 对于冯诺依曼结构的计算机而言,数据流是根据指令流的操作而形成的,也就是说数据流是由指令流来驱动

4、的。,9,6.1.2 CPU中的主要寄存器,1.通用寄存器 通用寄存器可用来存放原始数据和运算结果,有的还可以作为变址寄存器、计数器、地址指针等。现代计算机中为了减少访问存储器的次数,提高运算速度,往往在CPU中设置大量的通用寄存器,少则几个,多则几十个,甚至上百个。通用寄存器一般由程序编址访问。 累加寄存器Acc也是一个通用寄存器,它用来暂时存放ALU运算的结果信息。例如,在执行一个加法运算前,先将一个操作数暂时存放在Acc中,再从主存中取出另一操作数,然后同Acc的内容相加,所得的结果送回Acc中。运算器中至少要有一个累加寄存器。,10, 程序计数器(PC) 程序计数器又称指令计数器,用来

5、存放正在执行的指令地址或接着要执行的下条指令地址。 对于顺序执行的情况,PC的内容应不断地增量(加“1”),以控制指令的顺序执行。这种加“1”的功能,有些机器是程序计数器本身具有的,也有些机器是借助运算器来实现的。 在遇到需要改变程序执行顺序的情况时,将转移的目标地址送往PC,即可实现程序的转移。有些情况下除改变PC的内容外,还需要保留改变之前的内容,以便返回时使用。,2.专用寄存器,11, 指令寄存器(IR) 指令寄存器用来存放从存储器中取出的指令。当指令从主存取出暂存于指令寄存器之后,在执行指令的过程中,指令寄存器的内容不允许发生变化,以保证实现指令的全部功能。 存储器数据寄存器(MDR)

6、 存储器数据寄存器用来暂时存放由主存储器读出的一条指令或一个数据字;反之,当向主存存入一条指令或一个数据字时,也暂时将它们存放在存储器数据寄存器中。,2.专用寄存器(续),12, 存储器地址寄存器(MAR) 存储器地址寄存器用来保存当前CPU所访问的主存单元的地址。由于主存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到主存的读写操作完成为止。 当CPU和主存进行信息交换,无论是CPU向主存存取数据时,还是CPU从主存中读出指令时,都要使用存储器地址寄存器和数据寄存器。,2.专用寄存器(续),13, 状态标志寄存器(PSWR) 状态标志寄存器用来存放程序状态字(P

7、SW)。程序状态字的各位表征程序和机器运行的状态,是参与控制程序执行的重要依据之一。它主要包括两部分内容:一是状态标志,如进位标志(C)、结果为零标志(Z)等,大多数指令的执行将会影响到这些标志位;二是控制标志,如中断标志、陷阱标志等。状态标志寄存器的位数往往等于机器字长,各类机器的状态标志寄存器的位数和设置位置不尽相同。,2.专用寄存器(续),14,6.1.3 CPU的组成,CPU由运算器和控制器两大部分组成。 控制器的主要功能有: 从主存中取出一条指令,并指出下一条指令在主存中的位置。 对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作。 指挥并控制CPU、主存和输入输出设备

8、之间的数据流动方向。 运算器的主要功能有: 执行所有的算术运算; 执行所有的逻辑运算,并进行逻辑测试。,15,CPU的模型,图6-2 CPU的模型,16,6.1.4 CPU的主要技术参数,CPU品质的高低直接决定了一个计算机系统的档次,而CPU的主要技术参数可以反映出CPU的大致性能。 1.字长 CPU的字长是指在单位时间内同时处理的二进制数据的位数。CPU按照其处理信息的字长可以分为:8位CPU、16位CPU、32位CPU以及64位CPU等。,17,内部工作频率又称为内频或主频,它是衡量CPU速度的重要参数。在其他性能指标相同时,CPU的主频越高,CPU的速度也就越快。内部时钟频率的倒数是时

9、钟周期,这是CPU中最小的时间元素。每个动作至少需要一个时钟周期。 最初的8086和8088执行一条指令平均需要12个时钟周期;80286和80386的速度提高,每条指令大约要4.5个时钟周期;80486的速度进一步提高,每条指令大约2个时钟周期;Pentium具有双指令流水线,并有其他一些改进,使得每个时钟周期执行1到2条指令;而Pentium pro、Pentium /每个时钟周期可以执行3条或更多的指令。,2.内部工作频率,18,外部工作频率,也叫前端总线频率或系统总线时钟频率,它是由主板为CPU提供的基准时钟频率。由于正常情况下,CPU总线频率和主存总线频率相同,所以也是CPU与主存交

10、换数据的频率。 在早期,CPU的内频就等于外频。目前,CPU的内频越来越高,相比之下主存的速度还很缓慢,如果外频设计得跟内频同步,则主存都将无法跟上CPU的速度。所以现在外频跟内频不再只是一比一的同步关系,从而出现了所谓的内部倍频技术,导致了“倍频”的出现。内频、外频和倍频三者之间的关系是: 内频=外频倍频,3.外部工作频率,19,前端总线通常用FSB表示,它是CPU和外界交换数据的最主要通道,主要连接主存、显卡等数据吞吐率高的部件,因此前端总线的数据传输能力对计算机整体性能作用很大。 在Pentium 4出现之前,前端总线频率与外频是相同的,因此往往直接称前端总线频率为外频。随着计算机技术的

11、发展,需要前端总线频率高于外频,因此采用了QDR(Quad Date Rate)技术或者其他类似的技术,使得前端总线频率成为外频的2倍、4倍甚至更高。 数据带宽=总线频率数据位宽8,4.前端总线频率,20,快速通道互联(QPI)是取代FSB的基于包传输的高速点到点连接技术。 QPI抛弃了FSB易混淆的单位MHz,而使用GT/s、MT/s,明确的表示总线实际的数据传输速率。 一个基本的QPI数据包是80bit,需要四次传输完成每次整个数据包的传输,每次传输的20位数据中,有16位为有效数据,其余4位用于循环冗余校验。由于QPI是双向的,在发送的同时也可以接收另一端传输来的数据,这样,每个QPI总

12、线总带宽=每秒传输次数(即QPI速率)每次传输的有效数据(即16bit/8=2Byte)双向。,5. QPI数据传输速率,21,片内Cache又称CPU Cache,它的容量和工作速率对提高计算机的速度起着关键的作用。CPU Cache可以分为L1 Cache、L2 Cache,部分高端CPU还具有L3 Cache。 L1 Cache,位于CPU内核的旁边,是与CPU结合最为紧密的CPU缓存。一般来说,一级缓存可以分为一级数据缓存(D-Cache)和一级指令缓存(I-Cache)。 L2 Cache是影响CPU性能的关键因素之一,在CPU核心不变化的情况下,增加L2 Cache的容量能使性能大

13、幅度提高。,6.片内Cache的容量和速率,22,L3 Cache是为读取L2 Cache后未命中的数据设计的种缓存,在拥有L3 Cache的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。 7.工作电压 工作电压指的是CPU正常工作所需的电压。早期CPU的工作电压一般为5V,以致于CPU的发热量太大,使得寿命缩短。随着CPU的制造工艺与内频的提高,近年来各种CPU的工作电压逐步下降。,6.片内Cache的容量和速率(续),23,地址总线宽度决定了CPU可以访问的最大的物理地址空间,简单地说就是CPU到底能够使用多大容量的主存。 9.数据总线宽度 数据总线宽度则决定了C

14、PU与外部Cache、主存以及输入输出设备之间进行一次数据传输的信息量。 数据总线和地址总线互相独立,数据总线宽度指明了芯片的信息传递能力,而地址总线宽度说明了芯片可以处理多少主存单元。,8.地址总线宽度,24,线宽是指芯片内电路与电路之间的距离,可以用线宽来描述制造工艺。线宽越小,意味着芯片上包括的晶体管数目越多。Pentium 的线宽是0.35m,晶体管数达到7.5兆个;Pentium 的线宽是0.25m,晶体管数达到9.5兆个;Pentium 4的线宽是0.18m,晶体管数达到42兆个。近年来线宽已由0.15m、0.13m、90nm、65nm一直发展到目前主流的45nm和32nm,而22

15、nm的制造工艺将是新一代CPU的发展目标。,10.制造工艺,25,控制器是计算机系统的指挥中心,它把运算器、存储器、输入输出设备等部件组成一个有机的整体,然后根据指令的要求指挥全机的工作。,6.2 控制器的组成和实现方法,26,控制器的基本组成,图6-3 控制器的基本组成,27,1.指令部件 指令部件的主要任务是完成取指令并分析指令。指令部件包括: 程序计数器 指令寄存器 指令译码器 暂存在指令寄存器中的指令只有在其操作码部分经过译码之后才能识别出这是一条什么样的指令,并产生相应的控制信号提供给微操作信号发生器。 地址形成部件 根据指令的不同寻址方式,形成操作数的有效地址。,6.2.1 控制器

16、的基本组成,28,2.时序部件,时序部件能产生一定的时序信号,以保证机器的各功能部件有节奏地进行信息传送、加工及信息存储。包括: 脉冲源 产生具有一定频率和宽度的时钟脉冲信号,为整个机器提供基准信号。 启停控制逻辑 启停控制逻辑的作用是根据计算机的需要,可靠地开放或封锁脉冲,控制时序信号的发生或停止,实现对整个机器的正确启动或停止。,29,2.时序部件(续),节拍信号发生器 节拍信号发生器又称脉冲分配器。脉冲源产生的脉冲信号,经过节拍信号发生器后产生出各个机器周期中的节拍信号,用以控制计算机完成每一步微操作。,30,一条指令的取出和执行可以分解成很多最基本的操作,这种最基本的不可再分割的操作称

17、为微操作。微操作信号发生器也称为控制单元(CU)。不同的机器指令具有不同的微操作序列。 4.中断控制逻辑 中断控制逻辑是用来控制中断处理的硬件逻辑。有关中断的问题将在第9章中专门进行讨论。,3.微操作信号发生器,31,控制器的核心是微操作信号发生器(控制单元CU)。微操作控制信号是由指令部件提供的译码信号、时序部件提供的时序信号和被控制功能部件所反馈的状态及条件综合形成的。 控制单元的输入包括时序信号、机器指令操作码、各部件状态反馈信号等,输出的微操作控制信号又可以细分为CPU内的控制信号和送至主存或外设的控制信号。根据产生微操作控制信号的方式不同,控制器可分为组合逻辑型、存储逻辑型、组合逻辑

18、与存储逻辑结合型3种,它们的根本区别在于控制单元的实现方法不同,而控制器中的其他部分基本上是大同小异的。,6.2.2控制器的硬件实现方法,32,采用组合逻辑技术来实现,其控制单元是由门电路组成的复杂树形网络。这种方法是分立元件时代的产物,以使用最少器件数和取得最高操作速度为设计目标。 最大优点是速度快。但是控制单元的结构不规整,使得设计、调试、维修较困难,难以实现设计自动化;一旦控制单元构成之后,要想增加新的控制功能是不可能的。因此,它受到微程序控制器的强烈冲击。目前仅有一些巨型机和RISC机为了追求高速度仍采用组合逻辑控制器。,1.组合逻辑型,33,这种控制器称为微程序控制器,是采用存储逻辑

19、来实现的,也就是把微操作信号代码化,使每条机器指令转化成为一段微程序并存入一个专门的存储器(控制存储器)中,微操作控制信号由微指令产生。 微程序控制器具有设计规整、调试、维修以及更改、扩充指令方便的优点,易于实现自动化设计,已成为当前控制器的主流。但是,由于它增加了一级控制存储器,所以指令的执行速度比组合逻辑控制器慢。,2.存储逻辑型,34,这种控制器称为PLA(可编程逻辑阵列)控制器,是吸收前两种方法的设计思想来实现的。PLA控制器实际上也是一种组合逻辑控制器,但它又与常规的组合逻辑控制器的硬联结构不同;它是可编程序的,某一微操作控制信号由PLA的某一输出函数产生。 PLA控制器是组合逻辑技

20、术和存储逻辑技术结合的产物,克服了两者的缺点,是一种较有前途的方法。,3.组合逻辑和存储逻辑结合型,35,6.3 时序系统与控制方式,由于计算机高速地进行工作,每一个动作的时间是非常严格的,不能有任何差错。时序系统是控制器的心脏,其功能是为指令的执行提供各种定时信号。,36,1.指令周期和机器周期 指令周期是指从取指令、分析取数到执行完该指令所需的全部时间。由于各种指令的操作功能不同,有的简单,有的复杂,因此各种指令的指令周期不尽相同。 机器周期又称CPU周期。通常把一个指令周期划分为若干个机器周期,每个机器周期完成一个基本操作。一般机器的CPU周期有取指周期、取数周期、执行周期、中断周期等。

21、所以有: 指令周期i机器周期,6.3.1 时序系统,37,不同的指令周期中所包含的机器周期数差别可能很大。一般情况下,一条指令所需的最短时间为两个机器周期:取指周期和执行周期。 通常,每个机器周期都有一个与之对应的周期状态触发器。机器运行在不同的机器周期时,其对应的周期状态触发器被置“1”。显然,在机器运行的任何时刻只能处于一种周期状态,因此,有一个且仅有一个触发器被置“1”。,1.指令周期和机器周期(续),38,在一个机器周期内,要完成若干个微操作。因而应把一个机器周期分为若干个相等的时间段,每一个时间段对应一个电位信号,称为节拍电位信号。 节拍的宽度取决于CPU完成一次微操作的时间。节拍的

22、选取一般有以下几种方法: 统一节拍法 以最复杂的机器周期为准定出节拍数,每一个节拍时间的长短也以最繁的微操作作为标准。这种方法采用统一的、具有相等时间间隔和相同数目的节拍,使得所有的机器周期长度都是相等的,因此称为定长CPU周期。,2.节拍,39,分散节拍法 按照机器周期的实际需要安排节拍数,需要多少节拍,就发出多少节拍,这样可以避免浪费,提高时间利用率。由于各机器周期长度不同,故称为不定长CPU周期。 延长节拍法 在照顾多数机器周期要求的情况下,选取适当的节拍数,作为基本节拍。如果在某个机器周期内统一的节拍数无法完成该周期的全部微操作,则可以延长一或两个节拍。,2.节拍(续),40,时钟周期

23、插入 在一些微型机中,时序信号中不设置节拍,而直接使用时钟周期信号。一个机器周期中含有若干个时钟周期,时钟周期的数目取决于机器周期内完成微操作数目的多少及相应功能部件的速度。一个机器周期的基本时钟周期数确定之后,还可以不断插入等待时钟周期。如8086的一个总线周期(即机器周期)中包含四个基本时钟周期T1T4,在T3和T4之间可以插入任意个等待时钟周期TW,以等待速度较慢的存储部件或外部设备完成读或写操作。,2.节拍(续),41,在节拍中执行的有些微操作需要同步定时脉冲,如将稳定的运算结果打入寄存器,又如机器周期状态切换等。为此,在一个节拍内常常设置一个或几个工作脉冲,作为各种同步脉冲的来源。工

24、作脉冲的宽度只占节拍电位宽度的 ,并处于节拍的末尾部分,以保证所有的触发器都能可靠、稳定地翻转。 在只设置机器周期和时钟周期的微型机中,一般不再设置工作脉冲,因为时钟周期既可以作为电位信号,其前、后沿又可以作为脉冲触发信号。,3.工作脉冲,42,图6-6为小型机每个指令周期中常采用的机器周期、节拍、工作脉冲三级时序系统。图中每个机器周期M中包括四个节拍T1T4,每个节拍内有一个脉冲P。在机器周期间、节拍电位间、工作脉冲间既不允许有重叠交叉,也不允许有空隙,应该是一个接一个的准确连接。,4.多级时序系统,43,三级时序系统,图6-6 三级时序系统,44,1.同步控制方式 同步控制方式即固定时序控

25、制方式,各项操作都由统一的时序信号控制,在每个机器周期中产生统一数目的节拍电位和工作脉冲。由于不同的指令,操作时间长短不一致。同步控制方式应以最复杂指令的操作时间作为统一的时间间隔标准。,6.3.2 控制方式,45,这种控制方式设计简单,容易实现;但是对于许多简单指令来说会有较多的空闲时间,造成较大数量的时间浪费,从而影响了指令的执行速度。 在同步控制方式中,各指令所需的时序由控制器统一发出,所有微操作都与时钟同步,所以又称为集中控制方式或中央控制方式。,1.同步控制方式(续),46,异步控制方式即可变时序控制方式,各项操作不采用统一的时序信号控制,而根据指令或部件的具体情况决定,需要多少时间

26、,就占用多少时间。 这是一种“应答”方式,各操作之间的衔接是由“结束起始”信号来实现的。由前一项操作已经完成的“结束”信号,或由下一项操作的“准备好”信号来作为下一项操作的起始信号,在未收到“结束”或“准备好”信号之前不开始新的操作。,2.异步控制方式,47,异步控制采用不同时序,没有时间上的浪费,因而提高了机器的效率,但是控制比较复杂。 由于这种控制方式没有统一的时钟,而是由各功能部件本身产生各自的时序信号自我控制,故又称为分散控制方式或局部控制方式。,2.异步控制方式(续),48,这是同步控制和异步控制相结合的方式。实际上现代计算机中几乎没有完全采用同步或完全采用异步的控制方式,大多数是采

27、用联合控制方式。通常的设计思想是:在功能部件内部采用同步方式或以同步方式为主的控制方式,在功能部件之间采用异步方式。,3.联合控制方式,49,1.取指令阶段 取指令阶段完成的任务是将现行指令从主存中取出来并送至指令寄存器中去。具体的操作如下: 将程序计数器(PC)中的内容送至存储器地址寄存器(MAR),并送地址总线(AB)。 由控制单元(CU)经控制总线(CB)向存储器发读命令。,6.3.3 指令运行的基本过程,50,从主存中取出的指令通过数据总线(DB)送到存储器数据寄存器(MDR)。 将MDR的内容送至指令寄存器(IR)中。 将PC的内容递增,为取下一条指令做好准备。 以上这些操作对任何一

28、条指令来说都是必须要执行的操作,所以称为公共操作。完成取指阶段任务的时间称为取指周期。,1.取指令阶段(续),51,取指周期的工作流程,图6-8 取指周期的工作流程,52,取出指令后,指令译码器ID可识别和区分出不同的指令类型。此时计算机进入分析取数阶段,以获取操作数。由于各条指令功能不同,寻址方式也不同,所以分析取数阶段的操作是各不相同的。 完成分析阶段任务的时间又可以细分为间址周期、取数周期等。,2.分析取数阶段,53,执行阶段完成指令规定的各种操作,形成稳定的运算结果,并将其存储起来。完成执行阶段任务的时间称为执行周期。 计算机的基本工作过程就是取指令、取数、执行指令,然后再取下一条指令

29、如此周而复始,直至遇到停机指令或外来的干预为止。,3.执行阶段,54,控制器在实现一条指令的功能时,总要把每条指令分解成为一系列时间上先后有序的最基本、最简单的微操作,即微操作序列。微操作序列是与CPU的内部数据通路密切相关的,不同的数据通路就有不同的微操作序列。 假设规定各部件用大写字母表示,字母加下标in表示该部件的接收控制信号,实际上就是该部件的输入开门信号;字母加下标out表示该部件的发送控制信号,实际上就是该部件的输出开门信号。例如:MARin、PCout等就是这类微操作信号。,6.3.4 指令的微操作序列,55,CPU的数据通路,图6-9 CPU的数据通路,56,这条指令完成的功能

30、是把R0的内容作为地址送到主存以取得一个操作数,再与R1中的内容相加,最后将结果送回主存中。即实现: (R0)(R1)(R0),1.加法指令ADD R0,R1,57,取指周期 取指周期完成的微操作序列是公共的操作,与具体指令无关。 PCout和MARin有效,完成PC经CPU内部总线送至MAR的操作,记作(PC)MAR; 通过控制总线(图中未画出)向主存发读命令,记作Read; 存储器通过数据总线将MAR所指单元的内容(指令)送至MDR,记作M(MAR)MDR;,1.加法指令ADD R0,R1(续),58,MDRout和IRin有效,将MDR的内容送至指令寄存器IR,记作(MDR)IR。至此,

31、指令被从主存中取出,其操作码字段开始控制CU。 使PC内容加1,记作(PC)+1PC。,1.加法指令ADD R0,R1(续),59,取数周期 取数周期要完成取操作数的任务,被加数在主存中,加数已放在寄存器R1中。 R0out和MARin有效,完成将被加数地址送至MAR的操作,记作(R0)MAR; 向主存发读命令,记作Read; 存储器通过数据总线将MAR所指单元的内容(数据)送至MDR,同时MDRout和Yin有效,记作M(MAR)MDRY;,1.加法指令ADD R0,R1(续),60,执行周期 执行周期完成加法运算的任务,并将结果写回主存。 R1out和ALUin有效,同时CU向ALU发“A

32、DD”控制信号,使R1的内容和Y的内容相加,结果送寄存器Z,记作(R1)+YZ; Zout和MDRin有效,将运算结果送寄存器MDR,记作(Z)MDR。 向主存发写命令,记作Write。,1.加法指令ADD R0,R1(续),61,这是一条条件转移指令,若上次运算结果有进位(C=1),就转移;若上次运算结果无进位(C=0),就顺序执行下一条指令。设A为位移量,转移地址等于PC的内容加位移量。相应的微操作序列如下: 取指周期 与上条指令的微操作序列完全相同。,2.转移指令JC A,62,执行周期 如果有进位(C=1),则完成(PC)+APC的操作,否则跳过以下几步。 PCout和Yin有效,记作

33、(PC)Y(C=1); Ad IRout和ALUin有效,同时CU向ALU发“ADD”控制信号,使IR寄存器中的地址码字段A和Y的内容相加,结果送寄存器Z,记作Ad(IR)+YZ(C=1); Zout和PCin有效,将运算结果送寄存器PC,记作(Z)PC(C=1)。,2.转移指令JC A(续),63,微程序设计技术的实质是将程序设计技术和存储技术相结合,即用程序设计的思想方法来组织操作控制逻辑,将微操作控制信号按一定规则进行信息编码(代码化),形成控制字(微指令),再把这些微指令按时间先后排列起来构成微程序,存放在一个只读的控制存储器中。,6.4 微程序控制原理,64,1.微程序设计的提出与发

34、展 微程序设计的概念和原理是由M.V.Wilkes教授提出来的:一条机器指令可以分解为许多基本的微命令序列。并且首先把这种思想用于计算机控制器的设计。但是由于当时还不具备制造专门存放微程序的控制存储器的技术,所以在十几年时间内实际上并未真正使用。直到1964年,IBM公司在IBM360系列机上成功地采用了微程序设计技术,解决了指令系统的兼容问题。20世纪70年代以来,由于VLSI技术的发展,推动了微程序设计技术的发展和应用,目前,大多数计算机都采用微程序设计技术。,6.4.1 微程序控制的基本概念,65,微命令和微操作 一条机器指令可以分解成一个微操作序列,这些微操作是计算机中最基本的、不可再

35、分解的操作。在微程序控制的计算机中,将控制部件向执行部件发出的各种控制命令叫做微命令,它是构成控制序列的最小单位。例如:打开或关闭某个控制门的电位信号、某个寄存器的打入脉冲等。因此,微命令是控制计算机各部件完成某个基本微操作的命令。,2.基本术语,66,微命令和微操作是一一对应的。微命令是微操作的控制信号,微操作是微命令的操作过程。 微命令有兼容性和互斥性之分。兼容性微命令是指那些可以同时产生,共同完成某一些微操作的微命令;而互斥性微命令是指在机器中不允许同时出现的微命令。兼容和互斥都是相对的,一个微命令可以和一些微命令兼容,和另一些微命令互斥。对于单独一个微命令,谈论其兼容和互斥都是没有意义

36、的。,2.基本术语(续),67,微指令、微地址 微指令是指控制存储器中的一个单元的内容,即控制字,是若干个微命令的集合。存放控制字的控制存储器的单元地址就称为微地址。 一条微指令通常包含两部分: 操作控制字段,又称微操作码字段,用以产生某一步操作所需的各微操作控制信号; 顺序控制字段,又称微地址码字段,用以控制产生下一条要执行的微指令地址。,2.基本术语(续),68,微指令有垂直型和水平型之分。垂直型微指令接近于机器指令的格式,每条微指令只能完成一个基本微操作;水平型微指令则具有良好的并行性,每条微指令可以完成较多的基本微操作。,2.基本术语(续),69,微周期 从控制存储器中读取一条微指令并

37、执行相应的微命令所需的全部时间称为微周期。 微程序 一系列微指令的有序集合就是微程序。每一条机器指令都对应一个微程序。,2.基本术语(续),70,微程序和程序是两个不同的概念。微程序是由微指令组成的,用于描述机器指令,微程序实际上是机器指令的实时解释器,是由计算机的设计者事先编制好并存放在控制存储器中的,一般不提供给用户。对于程序员来说,计算机系统中微程序一级的结构和功能是透明的,无须知道。而程序最终由机器指令组成,是由软件设计人员事先编制好并存放在主存或辅存中的。所以说,微程序控制的计算机涉及到两个层次:一个是机器语言或汇编语言程序员所看到的传统机器层,包括:机器指令、工作程序、主存储器;另

38、一个是机器设计者看到的微程序层,包括:微指令、微程序和控制存储器。,2.基本术语(续),71,微指令可以分成操作控制字段和顺序控制字段两大部分。这里所说的微指令编码法指的就是操作控制字段的编码方法。各类计算机从各自的特点出发,设计了各种各样的微指令编码法。例如:大型机强调速度,要求译码过程尽量快;微、小型机则更多地注意经济性,要求更大限度地缩短微指令字长;而中型机介于这两者之间,兼顾速度和价格,要求在保证一定速度的情况下,能尽量缩短微指令字长。,6.4.2 微指令编码法,72,操作控制字段中的各位分别可以直接控制计算机,无须进行译码。在这种形式的微指令字中,操作控制字段的每一个独立的二进制位代

39、表一个微命令,该位为“1”表示这个微命令有效,为“0”则表示这个微命令无效。每个微命令对应并控制数据通路中的一个微操作。,1.直接控制法(不译码法),73,这种方法结构简单,并行性强,操作速度快,但是微指令字太长。若微命令的总数为N个,则微指令字的操作控制字段就要有N位。在某些计算机中,微命令的总数可能会多达三、四百个,甚至更多,这使微指令的长度达到难以接受的地步。另外,在N个微命令中,有许多是互斥的,不允许并行操作,将它们安排在一条微指令中是毫无意义的,只会使信息的利用率下降。所以这种方法在复杂的系统中很少单独采用,往往与其他编码方法混合起来使用。,1.直接控制法(续),74,直接控制法使微

40、指令字过长,而最短编码法则走向另一个极端,使得微指令字最短。这种方法将所有的微命令统一编码,每条微指令只定义一个微命令。若微命令的总数为N,操作控制字段的长度为L,则最短编码法应满足下列关系式: Llog2N,2.最短编码法,75,最短编码法的微指令字长最短,但要通过一个微命令译码器译码以后才能得到需要的微命令。微命令数目越多,译码器就越复杂。这种方法在同一时刻只能产生一个微命令,不能充分利用机器硬件所具有的并行性,使得机器指令对应的微程序变得很长,而且对于某些要求在同一时刻同时动作的组合性微操作将无法实现。因此,这种方法也只能与其他方法混合使用。,2.最短编码法(续),76,这是前述两种编码

41、法的一个折衷的方法,既具有两者的优点,又克服了它们的缺点。这种方法将操作控制字段分为若干个小段,每段内采用最短编码法,段与段之间采用直接控制法。 字段直接编码法 各字段都可以独立地定义本字段的微命令,而和其他字段无关,因此又称为显式编码或单重定义编码方法。这种方法缩短了微指令字,因此得到了广泛的应用。,3.字段编码法,77,字段直接编码法,图6-10 字段直接编码法,78, 字段间接编码法 字段间接编码法是在字段直接编码法的基础上,用来进一步缩短微指令字长的方法。间接编码的含义是,一个字段的某些编码不能独立地定义某些微命令,而需要与其他字段的编码来联合定义,因此又称为隐式编码或多重定义编码方法

42、。,3.字段编码法(续),79,字段间接编码法,图6-11 字段间接编码法,80,字段编码法中操作控制字段的分段原则: 把互斥性的微命令分在同一段内,兼容性的微命令分在不同段内。这样不仅有助于提高信息的利用率,缩短微指令字长,而且有助于充分利用硬件所具有的并行性,加快执行的速度。 应与数据通路结构相适应。 每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间。 一般每个小段还要留出一个状态,表示本字段不发出任何微命令。因此当某字段的长度为三位时,最多只能表示七个互斥的微命令,通常用000表示不操作。,3.字段编码法(续),81,1.微程序控制器的基本组成 图6-12给出了一个微

43、程序控制器基本结构的简化框图,在图中主要画出了微程序控制器比组合逻辑控制器多出的部件,包括以下几个部分:控制存储器、微指令寄存器、微地址形成部件、微地址寄存器等。,6.4.3 微程序控制器的组成和工作过程,82,微程序控制器的基本结构,图6-12 微程序控制器的基本结构,83,控制存储器(CM) 这是微程序控制器的核心部件,用来存放微程序。 微指令寄存器(IR) 用来存放从CM中取出的微指令。 微地址形成部件 用来产生初始微地址和后继微地址。 微地址寄存器(MAR) 接受微地址形成部件送来的微地址,为在CM中读取微指令做准备。,1.微程序控制器的基本组成,84,执行取指令公共操作。取指令的公共

44、操作通常由一个取指微程序来完成,这个取指微程序也可能仅由一条微指令组成。具体的执行是:在机器开始运行时,自动将取指微程序的入口微地址送MAR,并从CM中读出相应的微指令送入IR。微指令的操作控制字段产生有关的微命令,用来控制计算机实现取机器指令的公共操作。取指微程序的入口地址一般为CM的0号单元,当取指微程序执行完后,从主存中取出的机器指令就已存入指令寄存器IR中了。,2.微程序控制器的工作过程,85,由机器指令的操作码字段通过微地址形成部件产生该机器指令所对应的微程序的入口地址,并送入MAR。 从CM中逐条取出对应的微指令并执行之。 执行完对应于一条机器指令的一个微程序后又回到取指微程序的入

45、口地址,继续第步,以完成取下一条机器指令的公共操作。 以上是一条机器指令的执行过程,如此周而复始,直到整个程序执行完毕为止。,2.微程序控制器的工作过程(续),86,通常,一条机器指令对应一个微程序。由于任何一条机器指令的取指令操作都是相同的,因此将取指令操作的微命令统一编成一个微程序,这个微程序只负责将指令从主存单元中取出送至指令寄存器中。此外,也可以编出对应间址周期的微程序和中断周期的微程序。这样,控制存储器中的微程序个数应为机器指令数再加上对应取指、间址和中断周期等公用的微程序数。,3.机器指令对应的微程序,87,当公用的取指微程序从主存中取出机器指令之后,由机器指令的操作码字段指出各个

46、微程序的入口地址(初始微地址)。这是一种多分支(或多路转移)的情况。由机器指令的操作码转换成初始微地址的方式主要有3种。 1.一级功能转换 如果机器指令操作码字段的位数和位置固定,可以直接使操作码与入口地址码的部分位相对应。,6.4.4 微程序入口地址的形成,88,当同类机器指令的操作码字段的位数和位置固定,而不同类机器指令的操作码的位数和位置不固定时,就不能再采用一级功能转换的方法。所谓二级功能转换是指第一次先按指令类型标志转移,以区分出指令属于哪一类,如:是单操作数指令,还是双操作数指令等。因为每一类机器指令中操作码字段的位数和位置是固定的,所以第二次即可按操作码区分出具体是哪条指令,以便

47、找出相应微程序的入口微地址。,2.二级功能转换,89,当机器指令的操作码位数和位置都不固定时,可以采用PLA电路将每条机器指令的操作码翻译成对应的微程序入口地址。这种方法对于变长度、变位置的操作码显得更有效,而且转换速度较快。,3.通过PLA电路实现功能转换,90,1.增量方式(顺序转移型微地址) 顺序执行时后继微地址就是现行微地址加上一个增量(通常为“1”);转移或转子时,由微指令的顺序控制字段产生转移微地址。因此,在微程序控制器中应当有一个微程序计数器(PC)。为了降低成本,一般情况下都是将微地址寄存器MAR改为具有计数功能的寄存器,以代替PC。 增量方式的优点是简单,易于掌握,编制微程序

48、容易,每条机器指令所对应的一段微程序一般安排在CM的连续单元中;其缺点是这种方式不能实现两路以上的并行微程序转移,因而不利于提高微程序的执行速度。,6.4.5 后继微地址的形成,91,断定方式的后继微地址可由微程序设计者指定,或者根据微指令所规定的测试结果直接决定后继微地址的全部或部分值。 这是一种直接给定与测试断定相结合的方式,其顺序控制字段一般由两部分组成:非测试段和测试段。 测试段如果只有一位,则微地址将产生两个分支;若有两位,则最多可产生四个分支;依次类推;测试段为n位最多可产生2n个分支。,2.断定方式,92,水平型微指令及水平型微程序设计 一次能定义并能并行执行多个微命令的微指令。

49、它的并行操作能力强,效率高,灵活性强,执行一条机器指令所需微指令的数目少,执行时间短;但微指令字较长,增加了控存的横向容量,同时微指令和机器指令的差别很大,设计者只有熟悉了数据通路,才有可能编制出理想的微程序,一般用户不易掌握。由于水平型微程序设计是面对微处理器内部逻辑控制的描述,所以把这种微程序设计方法称为硬方法。,6.4.6 微程序设计,93,垂直型微指令及垂直型微程序设计 一次只能执行一个微命令的微指令。它的并行操作能力差,一般只能实现一个微操作,控制一两个信息传送通路,效率低,执行一条机器指令所需的微指令数目多,执行时间长;但是微指令与机器指令很相似,所以容易掌握和利用,编程比较简单,不必过多地了解数据通路的细节,且微指令字较短。由于垂直型微程序设计是面向算法的描述,所以把这种微程序设计方法称为软方法。,6.4.6 微程序设计(续),94,混合型微指令 综合前述两者特点的微指令称为混合型微指令,它具有不太长的微指令字,又具有一定的并行控制能力,可高效地去实现机器的指令系统。,6.4.6 微程序设计(续),95,前面几节讨论

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1