第2章 IA-32架构ppt课件.ppt_第1页
第2章 IA-32架构ppt课件.ppt_第2页
第2章 IA-32架构ppt课件.ppt_第3页
第2章 IA-32架构ppt课件.ppt_第4页
第2章 IA-32架构ppt课件.ppt_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

1,第2章IA-32结构微处理器及其体系结构,2,主要内容:,微型机的基本结构;8088(8086)微处理器的工作原理、引线及结构;总线的一般概念。,3,2.1微处理器的主要性能指标,2.1.1字长2.1.2指令数2.1.3运算速度2.1.4访存空间2.1.5高速缓存大小2.1.6虚拟存储空间2.1.7是否能构成多处理器系统2.1.8工艺形式及其他,4,2.28088/8086微处理器,2.2.18086内部结构,5,AHAL,BHBL,CHCL,DHDL,SP,BP,DI,SI,通用寄存器,运算寄存器,ALU,标志,执行部分控制电路,123456,CS,DS,SS,ES,IP,内部寄存器,I/O控制电路,地址加法器,20位,16位,8位,指令队列缓冲器,外总线,执行部件,总线接口部件,8086CPU结构图,6,8086CPU由两个独立的功能部件组成:,总线接口部件BIU(BusInterfaceUnit),指令执行部件EU(ExecutionUnit),7,由算术逻辑单元(ALU)、标志寄存器、通用寄存器组和EU控制器等部件组成。主要功能是执行指令:一般顺序执行,EU不断地从指令队列中取指令连续执行,而省去访问存储器取指令的时间。需要访问存储器取操作数时,EU将访问地址送给BIU后,将要等待操作数到来后才能继续操作;遇到转移类指令时,要将指令队列中的后续指令作废,等待BIU重新从存储器取出目标地址中的指令代码进入指令队列后,EU才能继续执行指令。,1.执行部件EU,8,完成16位或8位的二进制运算;16位暂存寄存器用来暂存参加运算的操作数。运算结果通过内部总线送到通用寄存器组或BIU的内部寄存器中等待写入存储器。经ALU运算后的结果特征置入标志寄存器中保存。,算术逻辑单元(ALU),负责从BIU的指令队列中取指令,并对指令译码;根据指令要求向EU内部各部件发出控制命令以完成各条指令的功能。,EU控制器,通用及标志寄存器,单独详细说明,9,由地址加法器、专用寄存器组、指令队列缓冲器和总线控制电路等部件组成;主要功能是形成访问存储器的物理地址,负责与外部(存储器或I/O接口)打交道。正常情况下,BIU通过地址加法器形成指令的物理地址,从给定存储器地址中取出指令代码送指令队列缓冲器中等待执行(指令队列缓冲器中出现一个空字节,BIU将自动进行读指令的操作填满队列)收到EU送来的操作数地址,BIU将立即形成操作数的物理地址,完成读/写操作数或运算结果功能。遇到转移类指令,BIU将指令队列缓冲器中的尚存指令作废,重新从存储器目标地址中取指令送指令缓冲器中。,2.总线接口部件BIU,10,可存放6字节的指令代码。一般情况下指令队列中总是填满指令,使EU可不断地得到执行的指令。,指令队列,16位地址加法器,专门用来完成由逻辑地址变换成物理地址的功能。实际上是进行一次地址加法,将两个16位的逻辑地址转换为20位的物理地址,以达到可寻址1M字节的存储空间。,将8086CPU的内部总线与外部总线相连,是8086CPU与外部交换数据的必经之路。包括16条数据总线、20条地址总线和若干条控制总线。,总线控制电路,11,2.2.28086的寄存器结构,12,通用寄存器(8个)可分为两组:数据寄存器(4个);地址指针和变址寄存器(4个)。,1.通用寄存器组,(1)数据寄存器通用寄存器AX、BX、CX和DX称为数据寄存器,可用来存放16位的数据或地址。也可把它们当作八个8位寄存器(AH、AL、BH、BL、CH、CL、DH、DL)来使用,这时只能存放8位数据,而不能用来存放地址。,13,14,(2)地址指针和变址寄存器包括SP、BP、SI、DI四个16位寄存器。可以在运算过程中存放操作数,但只能以字(16位)为单位使用。常用在段内寻址时提供偏移地址:SP(StackPointer)称为堆栈指针寄存器,BP(BasePointer)称为基址指针寄存器,它们都可以与SS寄存器联用确定堆栈段中的某一存储单元的地址。SP用来指示栈顶的偏移地址,BP可作为堆栈区中的一个基地址以便访问堆栈。SI(SourceIndex)源变址寄存器和DI(DestinationIndex)目的变址寄存器:它们一般与DS联用,用来确定数据段中某一存储单元的地址。,15,16,8086CPU的BIU中设置4个16位段寄存器:代码段寄存器CS(CodeSegment)数据段寄存器DS(DataSegment)附加数据段寄存器ES(ExtraSegment)堆栈段寄存器SS(StackSegment),2.段寄存器组,17,由于8086CPU可直接寻址的存储器空间是1M字节,需要20位地址码。而CPU所有的内部寄存器都只有16位,用这些寄存器只能直接寻址64K字节。为此把1M字节的存储空间分成许多逻辑段,每段最长为64k字节,这些逻辑段可在整个存储空间中浮动。于是用段寄存器给定各个逻辑段的首地址的高16位,被称为段地址。,设置段寄存器的原因:,18,总之,汇编程序一般将源程序分成四个逻辑段,即代码段CS、数据段DS、堆栈段SS和附加段ES。,CS:存放代码段的段基地址。DS:存放数据段的段基地址。SS:存放堆栈段的段基地址。ES:存放附加段的段基地址。,19,代码段存放可执行指令,该逻辑段是必不可少的;数据段和附加数据段存放参加运算的操作数和运算结果;堆栈段用于指示程序执行中需要使用的堆栈区。,如果程序量或数据量很大,超过64K字节,那么可定义多个代码段、数据段、附加数据段和堆栈段。只是4个段寄存器中存放的是当前使用的逻辑段的段地址,必要时可修改这些段寄存器的内容,以扩大程序的规模。,20,(1)指令指针寄存器IP(InstructionPointer)8086CPU中设置一个16位指令指针寄存器IP,用来存放将要取出的下一条指令在代码段中的偏移地址。在程序运行过程中,BIU可修改IP中的内容,使它始终指向将要取出的下一条指令。,3.控制寄存器组,注意:IP与CS联用,表示代码段中要处理的指令的逻辑地址;IP和CS由系统执行,用户一般不能使用或修改。,21,(2)标志寄存器FLAGS8086CPU中设立一个两字节的标志寄存器FLAGS(又称PSW、FR),有9个标志位:6个状态标志位,表示运算结果的状态,包括CF、PF、AF、ZF、SF和OF;3个控制标志位,用来控制CPU的操作,包括IF、DF和TF。,22,现将各标志位的定义说明如下:(1)CF(CarryFlag)进位标志位。如果做加法时最高位(字节操作是D7位,字操作是D15位)产生进位或做减法时最高位产生借位,则CF=1,否则CF=0。(2)PF(ParityFlag)奇偶标志位。如果操作结果的低八位中含有偶数个1,则PF=1,否则PF=0。(3)AF(AuxiliaryCarryFlag)辅助进位标志位。如果做加法时D3位有进位或做减法时D3位有借位,则AF=1,否则AF=0。,23,(4)ZF(ZeroFlag)零标志位。如果运算结果各位都为零,则ZF=1,否则ZF=0。(5)SF(SignFlag)符号标志位。如果运算结果的最高位(字节操作是D7,字操作是D15)为1,则SF=1,否则SF=0。(6)OF(OverflowFlag)溢出标志位。在加或减运算中结果超出8位或16位有符号数所能表示的数值范围时,产生溢出,OF=1,否则OF=0。,注意(1)OF位的求法为OF=CYD7CYD6,/特别注意其中的CYD7、CYD6OF=CYD15CYD14/CYD15和CYD14的求法。(2)有符号数和无符号数的溢出问题:判断的标志OF和CF,24,(7)IF(InterruptFlag)中断标志位。可用指令设置。当IF=1时,CPU可响应可屏蔽中断请求;IF=0,CPU不响应可屏蔽中断请求。(8)TF(TrapFlag)单步标志位。假如TF=1,则CPU处于单步工作方式。在这种工作方式下,CPU每执行完一条指令就自动产生一次内部中断。在调试程序DEBUG中,T命令就是利用这种中断。(9)DF(DirectionFlag)方向标志位。在串处理指令中,若DF=0,表示串处理指令地址指针自动增量,即串操作由低地址向高地址进行;DF=1,表示地址指针自动减量,即串操作由高地址向低地址进行。DF标志位可通过指令预置。,25,1.存储器的分段8086微处理器有20根地址线,可访问存储器的最大容量为1M字节。而8086内部所有的寄存器都只有16位,只能寻址64K字节。因此在8086系统中,把整个存储空间分成许多逻辑段,每个逻辑段的容量64K字节,允许它们在整个存储空间中浮动,各个逻辑段之间可以紧密相连,也可以相互重叠(完全重叠或部分重叠)。,【补充】8086存储器管理,26,在8086存储空间中,各逻辑段的起始地址必须是能被16整除的地址,即段的起始地址的低4位二进制码必须是0。段的起始地址的高16位被称为该段的段地址,把它存放在相应的段寄存器中,而段内的相对地址可用系统中的16位通用寄存器来存放,被称为偏移地址。,27,若已知当前有效的代码段、数据段、附加数据段和堆栈段的段地址分别为1055H、250AH、8FFBH和EFF0H,那么它们在存储器中的分布情况如图所示。每个段可以独立地占用64K存储区。,28,各个逻辑段允许重叠例如,如果代码段中的程序占有8KB(2000H)存储区,数据段占有2KB(800H)存储区,堆栈段占有256个字节的存储区。此时分段情况如图所示。,29,代码段的区域本可为02000H11FFFH(64KB),由于程序区只需要8KB,所以程序区结束后的地址就可作为数据段的起始地址(04000H),注意:这里所谓的重叠只是指每个区段的大小允许根据实际情况分配,而不一定非要占有64KB的最大段空间。,30,2.存储器中的逻辑地址和物理地址采用分段结构的存储器中,任何一个逻辑地址由段地址和偏移地址两个部分构成。它们都是无符号的16位二进制数。任何一个存储单元对应一个20位的物理地址,它由逻辑地址变换得来,地址运算如下:物理地址(PA)=段地址16+偏移地址(EA),由BIU中地址加法器中完成的,31,如果访问存储器要求读/写操作数,则通常由DS给出段地址(必要时可修改为CS、ES或SS),而其偏移地址要由CPU的指令执行部件根据指令中所给定的寻址方式来进行计算,通常将这样计算得到的偏移地址称为有效地址(EA)。,如果所采用的寻址方式是通过基址指针BP寻址,则段地址要由SS提供(必要时可以修改为CS、DS或ES)。,程序设计过程中必须遵守的系统内部约定:,32,如果执行的是串处理指令,当取源串时,段地址由数据段寄存器DS提供(必要时可修改为CS、ES和SS),偏移地址必须由源变址寄存器SI提供。当取目标串时,段地址必须由附加段寄存器ES提供,偏移地址必须由目标变址寄存器DI提供。,如果对存储器中的堆栈进行操作,则段地址来源于SS,偏移地址来源于SP。,33,约定的逻辑地址来源,34,2.2.38086的引脚特性,最小模式:是指系统中只有8086或8088一个微处理器,所有总线控制信号均由CPU直接产生,因此,系统的总线控制逻辑被减到最少。最小模式用在规模较小的8086/8088系统中。最大模式:是指系统中包含两个或多个微处理器,其中主处理器是8086或者8088,其余处理器称为协处理器,系统的总线控制信号主要由总线控制器产生,系统的总线控制逻辑相对复杂一些,最大模式用于中、大型的8086/8088系统。,35,引脚图如下,其中带括号的引脚功能为最大模式下的功能。,36,1、地址/数据总线AD15-AD0:地址/数据复用引脚,双向,三态。(8086/8088)AD15-AD0:16位地址总线A15-A0,输出访问存储器或I/O的地址信息。(8086)AD15-AD0:16位数据总线D15-D0,与存储器和I/O设备交换数据信息。(8088)AD7-AD0:8位数据总线D7-D0,与存储器和I/O设备交换数据信息。地址/数据总线复用,分时工作。,2、地址/状态总线A19/S6-A16/S3A19/S6-A16/S3:地址/状态总线复用引脚,输出,三态。,37,A19/S6-A16/S3:输出访问存储器的20位地址的高4位地址A19-A16。A19/S6-A16/S3:输出CPU的工作状态。A19/S6-A16/S3:分时工作,T1状态:输出地址的高4位信息;T2、T3、T4状态:输出状态信息。S6:指示8086/8088当前是否与总线相连,S6=0,表示8086/8088当前与总线相连。S5:表明中断允许标志当前的设置。S5=0,表示CPU中断是关闭的,禁止一切可屏蔽中断源的中断请求;S5=1,表示CPU中断是开放的,允许一切可屏蔽中断源的中断申请。S4、S3:指出当前使用段寄存器的情况。,38,S4、S3组合所对应的段寄存器情况S4S3段寄存器00当前正在使用ES01当前正在使用SS10当前正在使用CS11当前正在使用DS,3、控制总线(1)、/BHE/S7:高8位数据总线允许/状态复用引脚。在总线周期的T1状态,此引脚输出/BHE信号,表示高8位数据线D15-D8上的数据有效。,39,在T2、T3、TW和T4状态时,此引脚输出S7状态信号。/BHE、A0组合:/BHEA0总线使用情况00从偶地址单元开始,在16位数据总线上进行字传送01从奇地址单元开始,在高8位数据总线上进行字节传送10从偶地址单元开始,在低8位数据总线上进行字节传送11无效,S7:8086中无定义。8088中,在最大模式中,为高电平;在最小模式中,输出SS0信号,此信号与其它信号合作将总线周期的读/写动作。,40,(2)、/RD:读信号,三态输出,低电平有效。/RD=0,表示当前CPU正在对存储器或I/O端口进行读操作。(3)、/WR:写信号,三态输出,低电平有效。/WR=0,表示当前CPU正在对存储器或I/O端口进行读操作。(4)、M/IO:存储器或IO端口访问信号,三态输出。M/IO=1,表示CPU正在访问存储器;M/IO=0,表示CPU正在访问IO端口。(5)、READY:准备就绪信号,输入,高电平有效。READY=1,表示CPU访问的存储器或IO端口已准备好传送数据。若CPU在总线周期T3状态检测到READY=0,表示未准备好,CPU自动插入一个或多个等待状态TW,直到READY=1为止。,41,(6)、INTR:可屏蔽中断请求信号,输入,高电平有效。当INTR=1,表示外设向CPU发出中断请求,CPU在当前指令周期的最后一个T状态去采样该信号,若此时,IF=1,CPU响应中断,执行中断服务程序。(7)、/INTA:中断响应信号,输出,低电平有效。表示CPU响应了外设发来的中断申请信号INTR。(8)、NMI:不可屏蔽中断请求信号,输入,上升沿触发。该请求信号不受IF状态的影响,也不能用软件屏蔽,一旦该信号有效,则执行完当前指令后立即响应中断。(9)、/TEST:测试信号,输入,低电平有效。当CPU执行WAIT指令时,每隔个时钟周期对/TEST进行一次测试,若/TEST=1,继续等待,直到/TEST=0。,42,(10)、RESET:复位信号,输入,高电平有效。RESET信号至少要保持4个时钟周期。复位时:标志寄存器、IP、DS、SS、ES为0,CS=FFFFH,复位后CPU从FFFF0H处开始执行。(11)、ALE:地址锁存允许信号,输出,高电平有效。用来锁存地址信号A15-A0,分时使用AD15-AD0地址/数据总线。(12)、DT/R:数据发送/接收控制信号,三态输出。此信号控制数据总线上的收发器8286的数据传送方向,DT/R=1,发送数据-写操作;DT/R=0,接收数据-读操作。(13)、/DEN:数据允许信号,三态输出,低电平有效。作为数据总线上收发器8286的选通信号。,43,(14)、HOLD:总线请求信号,输入,高电平有效。当系统中CPU之外的另一个控制器要求使用总线时,通过它向CPU发一高电平的请求信号。(15)、HLDA:总线请求响应信号,输出,高电平有效。当HLDA有效时,表示CPU对其它控制器的总线请求作出响应,与此同时,所有与三总线相接的CPU的线脚呈现高阻抗状态,从而让出总线。(16)、MN/MX:工作模式选择信号,输入。MN/MX=1,表示CPU工作在最小模式系统;MN/MX=0,表示CPU工作在最大模式系统。(17)、CLK:主时钟信号,输入。8086/8088的时钟频率为5MHZ。,44,4、电源线和地线8086/8088采用单+5V,1、20引脚为地线。5、最大模式下的有关引脚(1)、QS1、QS2:指令队列状态信号,输出。QS1QS2含义00无操作01将指令首字节送入指令队列10队列为空11将指令其余字节送指令队列,45,(2)、S2、S1、S0:总线周期状态信号,三态输出。S2、S1、S0状态信号的编码S2S1S0操作过程产生信号000发中断响应信号/INTA001读I/O端口IORC010写I/O端口IOWC011暂停无100取指令/MRDC101读存储器/MRDC110写存储器/AMWC111无作用无,46,(3)、/RQ/GT1、/RQ/GT2:总线请求信号(输入)/总线请求允许信号(输出),双向,低电平有效。(4)、/LOCK:总线封锁信号,三态输出,低电平有效。/LOCK=0,CPU不允许其它控制器占用总线。,47,8088与8086在引脚上有三点区别:,1、外部数据总线的宽度不同。8086的外部数据总线为16位(AD15AD0);8088的外部数据总线为8位(AD7AD0)。,2、第28引脚不同。8086的第28引脚为,即该引脚信号为高电平,表示对存储器操作,为低电平则是对I/O端口操作;8088的第28引脚为,即该引脚信号为高电平,表示对I/O端口操作,为低电平则是对存储器操作。,3、第34引脚不同。8086的第34引脚为,其功能已如前述;8088的第34引脚为,在最小模式下的功能已如前述,在最大模式该引脚恒为“1”。除以上三点以及它们内部指令队列长度不同外,8088与8086在软、硬件上完全相同,这就是我们将两者一起介绍的理由。,48,2.2.58086的时钟和总线周期概念,READY,118,217,316,415,514,613,712,8,11,910,8284A,CSYNC,PCLK,AEN,1,RDY,1,RDY,2,AEN,2,CLK,GND,V,CC,X,1,X,2,ASYNC,EFI,F/C,OSC,RES,RESET,图2-118284A引脚特性,49,根据不同的振荡源,8284A有两种不同的连接方法:(1)采用脉冲发生器作振荡源(2)采用石英晶体振荡器作为振荡源。,8284A的工作原理为:当外界就绪信号RDY输入8284A,经时钟下降沿同步后,输出READY信号作为8086的就绪信号READY;外界的复位信号输入8284A,经整形并由时钟下降沿同步后,输出RESET信号作为8086的复位信号RESET,其宽度不得小于4个时钟周期。外界的RDY和复位信号可以在任何时候发出,但送至CPU的信号都是经时钟同步后的信号。,50,2.3.28086总线周期8086CPU与存储器或外部设备通信,是通过20位分时多路复用地址/数据总线来实现的。为了取出指令或传输数据,CPU要执行一个总线周期。8086CPU经外部总线对存储器或I/O端口进行一次信息的输入或输出过程,称为总线操作。执行该操作所需要的时间,称为总线周期。由于总线周期全部由BIU来完成,所以也把总线周期称为BIU总线周期。8086的总线周期至少由4个时钟周期组成。每个时钟周期称为T状态,用T1、T2、T3、和T4表示。时钟周期是CPU的基本时间计量单位,由主频决定。例如8086的主频为5MHz,1个时钟周期就是100ns。基本的总线周期波形如下图所示。,51,典型的8086总线周期波形图,52,2、28086总线的操作时序在微机系统中,CPU是在时钟信号CLK控制下,按节拍有序地执行指令序列。从取指令开始,经过分析指令、对操作数寻址,然后执行指令、保存操作结果,这个过程称为指令执行周期。指令周期:执行一条指令所需要的时间。总线周期(机器周期):CPU通过总线与存储器或I/O接口进行一次数据传输所需的时间。T状态(时钟周期):CPU处理动作的最小单位。,总线周期,T1,T2,T3,TW,T4,53,2.2.68086CPU的最

温馨提示

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

评论

0/150

提交评论