第6章计算机组成原理_第1页
第6章计算机组成原理_第2页
第6章计算机组成原理_第3页
第6章计算机组成原理_第4页
第6章计算机组成原理_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本章导读本章导读 本章对本章对CPU的情况进行整体说明,首先介的情况进行整体说明,首先介绍绍CPU的功能和基本组成结构,其中包括的功能和基本组成结构,其中包括CPU的内部结构框图,内部寄存器结构,的内部结构框图,内部寄存器结构,中断情况和中断情况和CPU内的数据通路结构。然后内的数据通路结构。然后对对CPU的外部特性进行介绍,并举例说明的外部特性进行介绍,并举例说明CPU的引脚情况与功能定义。的引脚情况与功能定义。本章要点本章要点 CPU的功能的功能 CPU的基本结构的基本结构 数据通路的功能数据通路的功能 数据通路的基本结构数据通路的基本结构6.1 CPU的功能的功能 中央处理器(中央处理器

2、(CPU)是计算机系统的核)是计算机系统的核心组成部件,它包括运算器和控制器两心组成部件,它包括运算器和控制器两大部分。在早期的计算机中,器件集成大部分。在早期的计算机中,器件集成度低,运算器与控制器是两个相对独立度低,运算器与控制器是两个相对独立的部分。随着大规模、超大规模集成电的部分。随着大规模、超大规模集成电路技术的发展,逐渐趋向于将路技术的发展,逐渐趋向于将CPU作为作为一个整体。在微型计算机中,已将一个整体。在微型计算机中,已将CPU集成为一块芯片,称为微处理器。集成为一块芯片,称为微处理器。 计算机能自动执行存放在主存中的程序。计算机能自动执行存放在主存中的程序。程序是指令的有序集

3、合,计算机每执行一程序是指令的有序集合,计算机每执行一段程序,就可完成一定的功能。具体执行段程序,就可完成一定的功能。具体执行过程是:计算机从主存中取出一条指令,过程是:计算机从主存中取出一条指令,按指令操作码及指令中的其他有关信息执按指令操作码及指令中的其他有关信息执行以实现指令所要求的功能,然后按顺序行以实现指令所要求的功能,然后按顺序递增或转移指令要求的目的地址,从主存递增或转移指令要求的目的地址,从主存中取出下一条指令中取出下一条指令重复上述过程,直重复上述过程,直至停机指令为止。至停机指令为止。 中央处理器就是专门用于完成上述功能中央处理器就是专门用于完成上述功能的计算机部件。的计算

4、机部件。CPU在计算机系统的运在计算机系统的运行中起着重要的作用,它具有如下四个行中起着重要的作用,它具有如下四个方面的基本功能。方面的基本功能。 (1)指令控制,即控制指令的执行顺序。)指令控制,即控制指令的执行顺序。CPU必须对指令的执行顺序进行控制,必须对指令的执行顺序进行控制,正确产生下一条指令在内存中的地址,正确产生下一条指令在内存中的地址,以保证指令序列正确执行。以保证指令序列正确执行。 (2)操作控制,即指令内操作信号的控)操作控制,即指令内操作信号的控制。一条指令的功能一般需要若干个操制。一条指令的功能一般需要若干个操作信号的组合来实现,因此,作信号的组合来实现,因此,CPU必

5、须必须管理并产生由内存取出的每条指令所要管理并产生由内存取出的每条指令所要求的操作信号,把各种操作信号送往相求的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的应的部件,从而控制这些部件按指令的要求进行动作。要求进行动作。 (3)时间控制,计算机中各指令的操作)时间控制,计算机中各指令的操作信号均受时间的严格定时,一条指令的信号均受时间的严格定时,一条指令的整个执行过程也受到时间限制。而整个执行过程也受到时间限制。而CPU对各种操作实施时间上的定时,就称为对各种操作实施时间上的定时,就称为时间控制。时间控制。 (4)数据加工,即对数据进行算术和逻)数据加工,即对数据进行算术和逻

6、辑运算,完成加工处理,这是辑运算,完成加工处理,这是CPU的根的根本任务。本任务。 另外,另外,CPU通常还要求能实现异常处理,通常还要求能实现异常处理,如运算中的溢出等错误情况处理,以及如运算中的溢出等错误情况处理,以及处理外部设备的服务请求等。这些功能处理外部设备的服务请求等。这些功能归纳起来实质上只有两个:一是执行程归纳起来实质上只有两个:一是执行程序,完成某一任务;二是对异常的处理。序,完成某一任务;二是对异常的处理。执行程序即一条条执行指令。异常处理执行程序即一条条执行指令。异常处理由中断机构完成,最终也要执行指令,由中断机构完成,最终也要执行指令,所以处理指令和中断是中央处理机的最

7、所以处理指令和中断是中央处理机的最本质特点。本质特点。 6.2 CPU的基本结构的基本结构6.2.1 CPU的结构框图的结构框图6.2.2 CPU的寄存器结构的寄存器结构6.2.3 控制单元与中断系统控制单元与中断系统6.2.4 CPU内部数据通路内部数据通路6.2.1 CPU的结构框图的结构框图 根据根据CPU的功能不难设想,要处理指令,的功能不难设想,要处理指令,CPU内就要有一个寄存器存放指令的地址内就要有一个寄存器存放指令的地址以找到指令并实现取指令,还要有控制部以找到指令并实现取指令,还要有控制部件能分析指令的功能并发出指令需要的操件能分析指令的功能并发出指令需要的操作控制信号,还要

8、有相应的算术逻辑运算作控制信号,还要有相应的算术逻辑运算部件部件ALU完成具体的运算。要处理异常情完成具体的运算。要处理异常情况和特殊请求,就必须有中断系统。可见,况和特殊请求,就必须有中断系统。可见,CPU可由四大部分组成。可由四大部分组成。 图图6-1 CPU内部结构框图内部结构框图 在图在图6-1中,考虑到中,考虑到CPU内部各部件间内部各部件间有数据信息的传送,所以也画出了内部有数据信息的传送,所以也画出了内部的数据总线。的数据总线。 其中其中ALU部分的内容已在第部分的内容已在第3章作了详章作了详细说明,在此,我们用图细说明,在此,我们用图6-2来表示基来表示基本的运算器部件结构。本

9、的运算器部件结构。图图6-2 基本的运算部件结构基本的运算部件结构 基本运算部件包括基本运算部件包括ALU、多路选择器和、多路选择器和移位器。沿数据流向,大致分为三级:移位器。沿数据流向,大致分为三级:第一级为多路选择器,决定哪一种数据第一级为多路选择器,决定哪一种数据送往送往ALU;第二级为;第二级为ALU,由功能选择,由功能选择命令选择命令选择ALU完成的运算功能;第三级完成的运算功能;第三级是移位器,由输出选择对输出结果进行是移位器,由输出选择对输出结果进行移位控制。移位控制。6.2.2 CPU的寄存器结构的寄存器结构 CPU中的寄存器大致可分两类:一类属用中的寄存器大致可分两类:一类属

10、用户可见寄存器,用户可对这类寄存器编程户可见寄存器,用户可对这类寄存器编程使用,或通过优化使使用,或通过优化使CPU因使用这类寄存因使用这类寄存器而减少对主存的访问次数;另一类属控器而减少对主存的访问次数;另一类属控制和状态寄存器,用户不可对这类寄存器制和状态寄存器,用户不可对这类寄存器编程,它们被控制部件使用,以控制编程,它们被控制部件使用,以控制CPU的操作,也可被带有特权的操作系统程序的操作,也可被带有特权的操作系统程序使用,从而控制程序的执行。使用,从而控制程序的执行。1、用户可见寄存器、用户可见寄存器 通常通常CPU执行机器语言访问的寄存器为执行机器语言访问的寄存器为用户可见寄存器,

11、按其特征又可分为以用户可见寄存器,按其特征又可分为以下几类:下几类: (1)通用寄存器)通用寄存器 通用寄存器可由程序设计者指定许多功通用寄存器可由程序设计者指定许多功能,可用于存放操作数,也可作为满足能,可用于存放操作数,也可作为满足某种寻址方式所需的寄存器。某种寻址方式所需的寄存器。(2)数据寄存器)数据寄存器 数据寄存器用于存放操作数,其位数应数据寄存器用于存放操作数,其位数应满足多数数据类型的数值范围,有些机满足多数数据类型的数值范围,有些机器允许使用两个连续的寄存器存放双倍器允许使用两个连续的寄存器存放双倍字长的值。还有些机器的数据寄存器只字长的值。还有些机器的数据寄存器只能用于保存

12、数据,不能用于操作数地址能用于保存数据,不能用于操作数地址的计算。的计算。 (3)地址寄存器)地址寄存器 地址寄存器用于存放地址,其本身可以地址寄存器用于存放地址,其本身可以具有通用性,也可用于特殊的寻址方式。具有通用性,也可用于特殊的寻址方式。地址寄存器的位数必须足够长,以满足地址寄存器的位数必须足够长,以满足足够大的寻址范围。足够大的寻址范围。(4)条件代码寄存器)条件代码寄存器 这类寄存器中存放条件码,它们对用户这类寄存器中存放条件码,它们对用户来说是部分透明的。条件码是来说是部分透明的。条件码是CPU根据根据运算结果由硬件设置的位,常用的有运算结果由硬件设置的位,常用的有N、Z、V、C

13、等。条件码可被测试,作为分等。条件码可被测试,作为分支运算的依据。此外,有些条件码可被支运算的依据。此外,有些条件码可被直接置位或复位。直接置位或复位。2、控制和状态寄存器、控制和状态寄存器 CPU中还有一类寄存器用于控制中还有一类寄存器用于控制CPU的的操作或运算。在一些机器里,大部分这操作或运算。在一些机器里,大部分这类寄存器对应用程序员是透明的。如以类寄存器对应用程序员是透明的。如以下四种寄存器在指令执行过程中起重要下四种寄存器在指令执行过程中起重要作用。作用。 MAR:存储器地址寄存器,用于存放将:存储器地址寄存器,用于存放将被访问的存储单元的地址。被访问的存储单元的地址。 MDR:存

14、储器数据寄存器,用于存放欲:存储器数据寄存器,用于存放欲存入存储器中的数据或最近从存储器中存入存储器中的数据或最近从存储器中读出的数据。读出的数据。 PC:程序计数器,存放欲执行的指令的:程序计数器,存放欲执行的指令的地址,通常具有计数功能。当遇到转移地址,通常具有计数功能。当遇到转移类指令时,类指令时,PC的值可被修改。的值可被修改。 IR:指令寄存器,存放当前欲执行的指:指令寄存器,存放当前欲执行的指令。令。 通过这四个寄存器,通过这四个寄存器,CPU可以和主存交可以和主存交换信息。例如,将下一条指令的地址从换信息。例如,将下一条指令的地址从PC送至送至MAR,启动存储器作读操作,存,启动

15、存储器作读操作,存储器就可将指定地址单元内的指令读至储器就可将指定地址单元内的指令读至MDR,再由,再由MDR送至送至IR。3、寄存器结构举例、寄存器结构举例(1)8086的寄存器组织的寄存器组织 8086是是Intel公司的公司的16位微处理器,它位微处理器,它内部包含有内部包含有4组组16位寄存器,它们是通位寄存器,它们是通用寄存器组、指针和变址寄存器组、段用寄存器组、指针和变址寄存器组、段寄存器组、指令指针及标志位寄存器。寄存器组、指令指针及标志位寄存器。如图如图6-3所示。所示。图图6-3 8086CPU的寄存器组的寄存器组 通用寄存器组是通用寄存器组是AX,BX,CX和和DX,用以存

16、放用以存放16位数据或地址。也可分成位数据或地址。也可分成8个个8位寄存器来使用,低位寄存器来使用,低8位是位是AL,BL,CL和和DL,高,高8位是位是AH,BH,CH和和DH,此时只能存放此时只能存放8位数据,不能存放地址。位数据,不能存放地址。为了缩短指令代码的长度,在为了缩短指令代码的长度,在8086中,中,某些通用寄存器用作专门用途。如某些通用寄存器用作专门用途。如AX作作累加器,累加器,CX在串指令中作计数寄存器等。在串指令中作计数寄存器等。 指针和变址寄存器包括基址指针寄存器指针和变址寄存器包括基址指针寄存器BP,堆栈指针寄存器,堆栈指针寄存器SP,源变址寄存器,源变址寄存器SI

17、,目的变址寄存器,目的变址寄存器DI。这组寄存器存。这组寄存器存放的内容通常是某一段内地址偏移量,放的内容通常是某一段内地址偏移量,用来形成操作数地址,主要在堆栈操作用来形成操作数地址,主要在堆栈操作和变址运算中使用。和变址运算中使用。 8086CPU可直接寻址可直接寻址1MB的存储器空间,的存储器空间,直接寻址需要直接寻址需要20位地址码,而所有内部寄位地址码,而所有内部寄存器都是存器都是16位的,只能直接寻址位的,只能直接寻址64KB,因此对存储器采用分段技术来解决此问题。因此对存储器采用分段技术来解决此问题。 系统将系统将1MB的存储空间分成若干逻辑段,的存储空间分成若干逻辑段,每段最长

18、每段最长64KB,然后设置了,然后设置了4个个16位的段位的段寄存器,由它们给出相应逻辑段的首地址寄存器,由它们给出相应逻辑段的首地址(高(高16位),称为位),称为“段基址段基址”,与段内偏,与段内偏移地址组合形成移地址组合形成20位物理地址。这些段寄位物理地址。这些段寄存器是代码段寄存器存器是代码段寄存器CS,数据段寄存器,数据段寄存器DS,堆栈段寄存器,堆栈段寄存器SS和附加段寄存器和附加段寄存器ES。 指令指针寄存器指令指针寄存器IP用来存放将要执行的下用来存放将要执行的下一条指令在现行代码段中的偏移地址。在一条指令在现行代码段中的偏移地址。在程序运行时,能自动修改,使其始终指向程序运

19、行时,能自动修改,使其始终指向下一条将要执行的指令的地址。下一条将要执行的指令的地址。8086程序程序不能直接访问不能直接访问IP,但可以通过某些指令修,但可以通过某些指令修改改IP的内容。如中断或子程序调用指令。的内容。如中断或子程序调用指令。 标志寄存器标志寄存器PSW用来存放运算结果的特征,用来存放运算结果的特征,常用作后继条件转移指令的转移控制条件。常用作后继条件转移指令的转移控制条件。(2)Pentium机的寄存器组织机的寄存器组织 Pentium微处理器配备的寄存器种类和微处理器配备的寄存器种类和数量非常多,按其类型可分为如下几类。数量非常多,按其类型可分为如下几类。、基本体系结构

20、寄存器。包括通用寄存、基本体系结构寄存器。包括通用寄存器、指令指针寄存器、标志寄存器和段器、指令指针寄存器、标志寄存器和段寄存器。寄存器。、系统级寄存器。包括系统寄存器和系、系统级寄存器。包括系统寄存器和系统地址寄存器。统地址寄存器。、调试和测试寄存器。、调试和测试寄存器。、浮点寄存器。包括数据寄存器、状态、浮点寄存器。包括数据寄存器、状态字寄存器、指令和数据指针寄存器、控字寄存器、指令和数据指针寄存器、控制字寄存器和标记字寄存器。制字寄存器和标记字寄存器。图图6-4给出了给出了16个应用程序员可用的寄存个应用程序员可用的寄存器。器。图图6-4 Pentium应用寄存器组应用寄存器组 从图中可

21、以看出,通用寄存器共有从图中可以看出,通用寄存器共有8个,个,全部是全部是32位寄存器,它们是位寄存器,它们是EAX,EBX,ECX,EDX,ESP,EBP,ESI和和EDI。它们又含有与它们又含有与8086兼容的兼容的8个个16位寄存位寄存器及器及8个个8位寄存器。指令指针寄存器也位寄存器。指令指针寄存器也为为32位,称为位,称为EIP,指向要执行的下一,指向要执行的下一条指令的偏移地址。条指令的偏移地址。 标志寄存器标志寄存器EFLAGS为为32位,包含若干位,包含若干状态标志和控制标志,状态标志由微处状态标志和控制标志,状态标志由微处理器执行某种操作后自动设置,其低位理器执行某种操作后自

22、动设置,其低位部分与部分与8086兼容。兼容。 段寄存器除了原有的段寄存器除了原有的CS,DS,SS和和ES外,又增加了两个新的段寄存器外,又增加了两个新的段寄存器FS和和GS,它们也是附加数据段寄存器,都仍,它们也是附加数据段寄存器,都仍为为16位寄存器。位寄存器。(3)MC68000的寄存器组织的寄存器组织 Motorola MC68000的寄存器设计方案的寄存器设计方案是将它的寄存器分成了是将它的寄存器分成了8个数据寄存器个数据寄存器(D0D7)和)和9个地址寄存器(个地址寄存器(A0A7、A7),它们都是),它们都是32位的,如图位的,如图6-5所所示。示。 图图6-5 MC68000

23、的寄存器的寄存器 其中其中8个数据寄存器主要用于数据存储管个数据寄存器主要用于数据存储管理,在寻址方式中仅用作变址寄存器。理,在寻址方式中仅用作变址寄存器。寄存器允许寄存器允许8位、位、16位和位和32位的数据格位的数据格式运算,这些都可以由操作码确定。式运算,这些都可以由操作码确定。 在地址寄存器中存放着在地址寄存器中存放着32位的地址,其位的地址,其中两个寄存器(中两个寄存器(A7和和A7)也用作堆栈)也用作堆栈指针。但它们一个用于操作系统,一个指针。但它们一个用于操作系统,一个用于用户,具体的选择取决于当前的执用于用户,具体的选择取决于当前的执行模式。不过在某一时刻这两个寄存器行模式。不

24、过在某一时刻这两个寄存器只能使用一个。只能使用一个。 MC68000还包括一个还包括一个32位程序计数器位程序计数器PC和一个和一个16位的状态寄存器。位的状态寄存器。 6.2.3 控制单元与中断系统控制单元与中断系统 控制单元控制单元CU产生产生CPU所需要的全部微操所需要的全部微操作控制信号。所谓微操作,即计算机中最作控制信号。所谓微操作,即计算机中最简单的、不能再分解的操作,如打开某一简单的、不能再分解的操作,如打开某一个控制门或寄存器的清除脉冲等。复杂操个控制门或寄存器的清除脉冲等。复杂操作是通过执行一系列微操作实现的。作是通过执行一系列微操作实现的。 控制单元控制单元CU根据指令译码

25、器产生的操作根据指令译码器产生的操作控制信号、时序部件产生的时序信号以控制信号、时序部件产生的时序信号以及其他控制条件可以产生整个机器所需及其他控制条件可以产生整个机器所需要的全部操作控制信号。这些控制信号要的全部操作控制信号。这些控制信号引向计算机各个部件,以控制各部件执引向计算机各个部件,以控制各部件执行指令所要求的功能。该控制单元部件行指令所要求的功能。该控制单元部件可由硬布线方式或微程序方式实现,这可由硬布线方式或微程序方式实现,这将在后面章节详细介绍。将在后面章节详细介绍。 中断是现代计算机中非常重要的处理机中断是现代计算机中非常重要的处理机制,在本书第制,在本书第10章中会对章中会

26、对I/O中断作较中断作较详细的讨论,实际上详细的讨论,实际上I/O中断只是中断只是CPU众多中断中的一种。引起中断的因素很众多中断中的一种。引起中断的因素很多,为了处理各种中断,多,为了处理各种中断,CPU内通常设内通常设有处理中断的机构有处理中断的机构中断系统,以解中断系统,以解决各种中断的共性问题。决各种中断的共性问题。 对中断系统来说,主要需要解决以下几对中断系统来说,主要需要解决以下几个问题:个问题:(1)各中断源如何向)各中断源如何向CPU提出中断请求;提出中断请求;(2)当多个中断源同时提出中断请求时,)当多个中断源同时提出中断请求时,中断系统如何确定优先响应哪个中断源中断系统如何

27、确定优先响应哪个中断源的请求;的请求;(3)CPU在什么条件、什么时候、以什在什么条件、什么时候、以什么方式来响应中断;么方式来响应中断;(4)CPU响应中断后如何保护现场;响应中断后如何保护现场;(5)CPU响应中断后,如何停止原程序的响应中断后,如何停止原程序的执行而转入中断服务程序的入口地址;执行而转入中断服务程序的入口地址;(6)中断处理结束后,)中断处理结束后,CPU如何恢复现场,如何恢复现场,如何返回到原程序的间断处;如何返回到原程序的间断处;(7)若在中断处理过程中又出现了新的中)若在中断处理过程中又出现了新的中断请求,断请求,CPU该如何处理。该如何处理。 对这些问题的解决,只

28、有在中断系统中对这些问题的解决,只有在中断系统中配置相应的硬件和软件,才能完成整个配置相应的硬件和软件,才能完成整个中断处理任务。但在有些计算机中,把中断处理任务。但在有些计算机中,把部分相应的功能分散在了各接口电路中部分相应的功能分散在了各接口电路中实现。实现。 下面以下面以Pentium微处理器的中断处理为例,微处理器的中断处理为例,来了解中断系统的特点。来了解中断系统的特点。 (1)中断和异常)中断和异常 有两类事件能引起有两类事件能引起Pentium挂起当前指令挂起当前指令流的执行并响应事件:中断和异常。两种流的执行并响应事件:中断和异常。两种情况下处理器都要保存当前进程的上下文,情况

29、下处理器都要保存当前进程的上下文,并将转至一个预先定义的子程序来执行特并将转至一个预先定义的子程序来执行特殊的服务。中断(殊的服务。中断(Interrupt)通常是由硬)通常是由硬件信号产生的,并可出现在程序执行期间件信号产生的,并可出现在程序执行期间内的任何时刻。异常(内的任何时刻。异常(Exception)是由软)是由软件产生的,是由执行指令所引发的。件产生的,是由执行指令所引发的。 Pentium有两类中断源和两类异常源。有两类中断源和两类异常源。 中断包括可屏蔽中断和不可屏蔽中断。可中断包括可屏蔽中断和不可屏蔽中断。可屏蔽中断由处理器的屏蔽中断由处理器的INTR引脚接收信号。引脚接收信

30、号。除非中断允许标志(除非中断允许标志(IF)被置位,否则处)被置位,否则处理器不承认可屏蔽中断。不可屏蔽中断由理器不承认可屏蔽中断。不可屏蔽中断由处理器的处理器的NMI引脚接收信号。这类中断的引脚接收信号。这类中断的认可不能被阻止。认可不能被阻止。 异常包括处理器确定的异常和程序异常。异常包括处理器确定的异常和程序异常。处理器确定的异常是当试图执行一条指处理器确定的异常是当试图执行一条指令而处理器遇到一个错误时此异常发生。令而处理器遇到一个错误时此异常发生。程序异常是由一些指令(程序异常是由一些指令(INTO、INT、BOUND等)引起的。等)引起的。(2)中断类型表)中断类型表 Penti

31、um的中断处理使用了中断向量表的中断处理使用了中断向量表(interrupt vector table)。每一类中)。每一类中断都被指派了一个中断类型号,此类型断都被指派了一个中断类型号,此类型号用于对中断向量表的索引。该表容纳号用于对中断向量表的索引。该表容纳有有256个个32位的中断向量,它们存储着位的中断向量,它们存储着中断服务程序的地址(段地址和偏移地中断服务程序的地址(段地址和偏移地址)。址)。 表表6-1表示了中断类型号的指派情况(见表示了中断类型号的指派情况(见教材)。教材)。 若不止一个异常或中断同时要求处理,若不止一个异常或中断同时要求处理,则处理器以一个预先指定的顺序为它们

32、则处理器以一个预先指定的顺序为它们服务。向量号在表中的位置不反映它们服务。向量号在表中的位置不反映它们的优先权。的优先权。 异常和中断的优先权组成异常和中断的优先权组成5类。以降序排类。以降序排列的列的5类优先权是:类优先权是:类类1:先前指令上的中断(向量号:先前指令上的中断(向量号1););类类2:外部中断(:外部中断(2,32255););类类3:取下一指令的故障(:取下一指令的故障(3,14););类类4:下一指令的译码故障(:下一指令的译码故障(6,7););类类5:执行指令的故障(:执行指令的故障(0,4,5,8,1014,16,17)。)。(3)处理中断)处理中断 和子程序调用相

33、似,一个到中断处理子和子程序调用相似,一个到中断处理子程序的控制传递,需要使用系统堆栈保程序的控制传递,需要使用系统堆栈保存处理器的状态。当一个中断出现并被存处理器的状态。当一个中断出现并被处理器识别时,如下事件序列发生了。处理器识别时,如下事件序列发生了。、若转换涉及到特权级改变,则当前堆、若转换涉及到特权级改变,则当前堆栈段寄存器和当前扩展的栈指针(栈段寄存器和当前扩展的栈指针(ESP)寄存器的内容被压入堆栈。寄存器的内容被压入堆栈。、EFLAGS寄存器的当前值被压入堆栈。寄存器的当前值被压入堆栈。、中断(、中断(IF)和自陷()和自陷(TF)两个标志被)两个标志被清除。这就禁止了清除。这

34、就禁止了INTR中断、软中断或中断、软中断或单步特征。单步特征。、当前代码段(、当前代码段(CS)寄存器和当前指令)寄存器和当前指令指针(指针(IP或或EIP)的内容被压入堆栈。)的内容被压入堆栈。、若中断伴随有错误代码,则错误代码、若中断伴随有错误代码,则错误代码也要压入堆栈。也要压入堆栈。、取中断向量内容并装入、取中断向量内容并装入CS和和IP(或(或EIP)寄存器。找到中断服务子程序继续执行。寄存器。找到中断服务子程序继续执行。 为实现从中断的返回,中断服务子程序执为实现从中断的返回,中断服务子程序执行一条行一条IRET指令。这使得所有保存在堆指令。这使得所有保存在堆栈上的值被取回,并由

35、中断点恢复执行。栈上的值被取回,并由中断点恢复执行。6.2.4 CPU内部数据通路内部数据通路 CPU内部可以分为数据部分和控制部分。内部可以分为数据部分和控制部分。数据部分即数据通路,包括寄存器、数据部分即数据通路,包括寄存器、ALU以及数据在它们之间传送的路径。数据通以及数据在它们之间传送的路径。数据通路能对数据项执行某些操作,如数据从什路能对数据项执行某些操作,如数据从什么地方开始,中间经过哪些寄存器或多路么地方开始,中间经过哪些寄存器或多路开关,最后传送到哪个寄存器保存等。开关,最后传送到哪个寄存器保存等。 数据通路功能的实现需要控制部分加以数据通路功能的实现需要控制部分加以控制,也即

36、需要控制器向数据通路发出控制,也即需要控制器向数据通路发出控制信号来完成数据在通路内的一系列控制信号来完成数据在通路内的一系列传送。传送。 CPU内部的数据通路的典型组织形式是内部的数据通路的典型组织形式是内部总线,它通常在寄存器和内部总线,它通常在寄存器和ALU之间之间传送数据,提供操作数和保存运算结果。传送数据,提供操作数和保存运算结果。当然,在数据传输频繁的两个部件之间当然,在数据传输频繁的两个部件之间也可以采用专用数据通路。常见的总线也可以采用专用数据通路。常见的总线组织形式大体有三种结构。组织形式大体有三种结构。(1)单总线结构)单总线结构 单总线结构的运算器如图单总线结构的运算器如

37、图6-6所示。由所示。由于所有部件都接到同一总线上,所以数于所有部件都接到同一总线上,所以数据可以在任何两个寄存器之间,或者在据可以在任何两个寄存器之间,或者在任一个寄存器和任一个寄存器和ALU之间传送。如果具之间传送。如果具有阵列乘法器或除法器,那么它们所处有阵列乘法器或除法器,那么它们所处的位置应与的位置应与ALU相当。相当。图图6-6 单总线结构单总线结构 对这种结构的运算器来说,在同一时间对这种结构的运算器来说,在同一时间内,只能有一个操作数放在单总线上。内,只能有一个操作数放在单总线上。为了把两个操作数输入到为了把两个操作数输入到ALU,需要分,需要分两次来做,而且还需要两次来做,而

38、且还需要A,B两个缓冲器。两个缓冲器。例如执行一个加法操作时,第一个操作例如执行一个加法操作时,第一个操作数先放在数先放在A缓冲寄存器,然后再把第二缓冲寄存器,然后再把第二个操作数放入个操作数放入B缓冲寄存器。只有两个缓冲寄存器。只有两个操作数同时出现在操作数同时出现在ALU的两个输入端,的两个输入端,ALU才执行加法。才执行加法。 当加法结果出现在单总线上时,由于输当加法结果出现在单总线上时,由于输入数已保存在缓冲寄存器中,它并不会入数已保存在缓冲寄存器中,它并不会打扰输入数。打扰输入数。 然后,再做第三个传送动作,以便把加然后,再做第三个传送动作,以便把加法的法的“和和”选通到目的寄存器中

39、。由此选通到目的寄存器中。由此可见,这种结构的主要缺点是总线分时可见,这种结构的主要缺点是总线分时使用,操作速度较慢。使用,操作速度较慢。 虽然在这种结构中输入数据和保存操作虽然在这种结构中输入数据和保存操作结果需要三次串行的选通操作,但它不结果需要三次串行的选通操作,但它不会对每种指令都增加很多执行时间。只会对每种指令都增加很多执行时间。只有在对全都是有在对全都是CPU寄存器中的两个操作寄存器中的两个操作数进行操作时,单总线结构的运算器才数进行操作时,单总线结构的运算器才会造成一定的时间损失。但是由于它只会造成一定的时间损失。但是由于它只需控制一条总线,故控制电路比较简单。需控制一条总线,故

40、控制电路比较简单。 (2)双总线结构)双总线结构 双总线结构的运算器如图双总线结构的运算器如图6-7所示。在所示。在这种结构中,两个操作数可同时送到这种结构中,两个操作数可同时送到ALU进行运算,只需要一次操作控制,进行运算,只需要一次操作控制,而且马上就可以得到运算结果。图中两而且马上就可以得到运算结果。图中两条总线各自把其操作数据送至条总线各自把其操作数据送至ALU的输的输入端。入端。 图图6-7 双总线结构双总线结构 特殊寄存器分成两组,它们分别与一条特殊寄存器分成两组,它们分别与一条总线交换数据。这样,通用寄存器中的总线交换数据。这样,通用寄存器中的数就可以进入到任一组特殊寄存器中去,

41、数就可以进入到任一组特殊寄存器中去,从而使数据传送更为灵活。从而使数据传送更为灵活。 ALU的输出不能直接加到总线上去。这的输出不能直接加到总线上去。这是因为,当形成操作结果的输出时,两是因为,当形成操作结果的输出时,两条总线都被输入数占据,因而必须在条总线都被输入数占据,因而必须在ALU输出端设置缓冲寄存器。输出端设置缓冲寄存器。 为此,操作的控制要分两步来完成:第为此,操作的控制要分两步来完成:第一步,在一步,在ALU的两个输入端输入操作数,的两个输入端输入操作数,形成结果并送入缓冲寄存器;第二步,形成结果并送入缓冲寄存器;第二步,把结果送入目的寄存器。把结果送入目的寄存器。 假如在总线假

42、如在总线1、2和和ALU输入端之间再各输入端之间再各加一个输入缓冲寄存器,并把两个输入加一个输入缓冲寄存器,并把两个输入数先放至这两个缓冲寄存器,那么,数先放至这两个缓冲寄存器,那么,ALU输出端就可以直接把操作结果送至输出端就可以直接把操作结果送至总线总线1或总线或总线2上去。上去。 (3)三总线结构)三总线结构 三总线结构的运算器如图三总线结构的运算器如图6-8所示。所示。 在三总线结构中,在三总线结构中,ALU的两个输入端分的两个输入端分别由两条总线提供数据,而别由两条总线提供数据,而ALU的输出的输出则与第三条总线相连。这样,算术逻辑则与第三条总线相连。这样,算术逻辑操作就可以在一步的

43、控制之内完成。操作就可以在一步的控制之内完成。 图图6-8 三总线结构三总线结构 由于由于ALU本身有时间延迟,所以输出结本身有时间延迟,所以输出结果打入的选通脉冲必须考虑到包括这个果打入的选通脉冲必须考虑到包括这个延迟。另外,设置了一个总线旁路器。延迟。另外,设置了一个总线旁路器。如果一个操作数不需要修改,而直接从如果一个操作数不需要修改,而直接从总线总线2传送到总线传送到总线3,那么可以通过控制,那么可以通过控制总线旁路器把数据传出;如果一个操作总线旁路器把数据传出;如果一个操作数需要修改,那么就借助于数需要修改,那么就借助于ALU。显然,。显然,三总线结构的运算器的特点是操作时间三总线结

44、构的运算器的特点是操作时间快,但它的总线控制相对复杂。快,但它的总线控制相对复杂。 6.3 CPU的外部特性的外部特性6.3.1 8086的引脚定义的引脚定义6.3.2 80386的引脚定义的引脚定义 CPU完成程序执行和数据处理,但程序完成程序执行和数据处理,但程序和数据都需要由和数据都需要由CPU外部送入。同时外部送入。同时CPU还要能对各种外部设备进行管理和还要能对各种外部设备进行管理和控制,这些信号都需要通过控制,这些信号都需要通过CPU的各个的各个引脚来进行传送。不同的引脚来进行传送。不同的CPU其引脚数其引脚数目和功能定义不同,但这些引脚的主要目和功能定义不同,但这些引脚的主要功能

45、种类是相似的。功能种类是相似的。6.3.1 8086的引脚定义的引脚定义 Intel 8086CPU是是16位微处理器,外型位微处理器,外型为双列直插式,有为双列直插式,有40个引脚,直接寻址个引脚,直接寻址空间为空间为1MB。图。图6-9给出了给出了8086CPU外外部引脚图。部引脚图。图图6-9 8086CPU的外部引脚的外部引脚(1)AD15AD0,A19/S6A16/S3:8086应包括应包括20条地址线和条地址线和16条数据线,条数据线,由于制造工艺的限制,部分引脚采用了由于制造工艺的限制,部分引脚采用了分时复用方式,其中分时复用方式,其中AD15AD0是是16条条地址地址/数据总线

46、,数据总线,A19/S6A16/S3是地址是地址/状态线。状态线。(2)BHE#/S7:高:高8位数据总线允许位数据总线允许/状状态信号,用态信号,用BHE#和和AD0分别表示分别表示16位位数据高、低字节的有效与否。数据高、低字节的有效与否。(3)MN/MX#:最小:最小/最大工作模式选最大工作模式选择信号。择信号。8086工作在最小模式时,工作在最小模式时,CPU组成一个单处理器系统;最大模式时,组成一个单处理器系统;最大模式时,构成多处理器系统。在此介绍的引脚是构成多处理器系统。在此介绍的引脚是最小模式时的定义。最小模式时的定义。(4)ALE,M/IO#,RD#,WR#,DEN#,DT/

47、R#:ALE是地址锁存允许是地址锁存允许信号,因为信号,因为8086的地址、数据引脚是分的地址、数据引脚是分时复用的,需要把地址锁存起来以便在传时复用的,需要把地址锁存起来以便在传送数据时仍有固定的地址信息可用。送数据时仍有固定的地址信息可用。M/IO#是存储器或是存储器或I/O端口控制信号,端口控制信号,来区别访问的是存储器还是来区别访问的是存储器还是I/O设备。设备。RD#是读选通信号。是读选通信号。WR#是写选通信号。是写选通信号。DEN#是数据允许信号,允许数据在总线是数据允许信号,允许数据在总线上的传送。上的传送。DT/R#是数据发送是数据发送/接收控制接收控制信号,控制总线上数据传送的方向。信号,控制总线上数据传送的方向。(5)READY,RESET,TEST#,CLK:READY是准备就绪信号,表示外部设备已是准备就绪信号,表示外部设备已准备好可进行数据传送了。准备好可进行数据传送了。RESET是是CPU的复位信号。的复位信号。TEST#是测试信号,实现从是测试信号,实现从空转状态的返回控制。空转状态的返回控制。CLK是时钟信号,供是时钟信号,供CPU内部操作定时使用。内部操作定时使用。(6)NMI,INTR,INTA#:NMI是不可是不可屏蔽中断请求信号。屏蔽中断请求信号。INTR是可屏蔽中断请是可屏蔽中断请求信号。求信号。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论