《微机原理第二章课件-80868088微处理器的内部结构.ppt》由会员分享,可在线阅读,更多相关《微机原理第二章课件-80868088微处理器的内部结构.ppt(60页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二章 微型计算机系统结构 第一节 CPU的内部逻辑结构一、CPU的组成和功能1、CPU的组成 CPU主要由运算器、控制器、寄存器组和片内总线等组成2、CPU的功能(1)指令控制 (2)操作控制(3)时序控制 (4)执行指令(5)数据加工(运算)二、8086/8088微处理器的内部结构 8086是16位的微处理器,有16位数据线和20位地址线,可寻址220个字节,即 220=1MB=1048576B 8088是准16位微处理器,内部为16位,外部数据线为8位。8086是本课的重点,它主要分为两个独立的功能模块,总线接口模块BIU和执行部件EU,它们可以并行工作。如图2.1所示。图2.1 808
2、6 CPU内部逻辑结构BIUEU1、总线接口部件BIU 总线接口部件负责与存储器、输入/输出端口传送数据。总线接口部件组成:(1)专用寄存器组:段地址寄存器CS、DS、ES、SS和指令指针寄存器IP,均为16位。(2)地址加法器:8086在寻址1M字节地址空间时需用20位地址,这个地址就是由地址加法器产生的。具体的说,地址加法器将段寄存器(16位)的内容左移4位,然后与指令指针寄存器IP的内容相加得到20位的物理地址。例如:从内存取指令时,(CS)5760H,(IP)=1234H,则物理地址为:57600H+1234H=57934H。这里,先将段寄存器CS左移4位(16进制数只需后面加一个零)
3、。(3)6字节的指令队列:总线接口部件从内存中取来的指令放在一个缓冲区中,这个缓冲区叫指令队列。执行部件在执行指令过程中从指令队列取来指令执行。(4)输入/输出控制电路:该控制电路将8086CPU的片内总线与系统总线相连,是8086CPU与外部交换数据的必经之路。2、执行部件EU(Execution Unit)执行部件负责执行指令。通常,从指令队列中取得等待执行的指令。组成如下:(1)算术逻辑单元ALU:完成各种运算。(2)标志寄存器FR:用来保存ALU运算结果的一些特征信息,如运算是否进位。(3)通用寄存器组:数据寄存器AX,BX,CX,DX和寄存器BP,SP,SI及DI,均16位。(4)执
4、行部件控制电路3、BIU和EU的管理 BIU和EU可以并行工作,提高CPU效率。(1)BIU监视着指令队列。当指令队列中有2个空字(2)节时,就自动把指令取到队列中。(2)EU执行指令时,从指令队列头部取指令,然后 执行。如需访问存储器,则EU向BIU发出请求,由BIU访问存储器。(3)在执行转移、调用、返回指令时,需改变队列 中的指令,要等新指令装入队列中后,EU才继 续执行指令。4、寄存器结构 (1)通用寄存器组 8086CPU有8个16位的通用寄存器,分2组。通用数据寄存器:AX,BX,CX,DX,用来存放数据或地址,一个16位寄存器也可以当作两个8位寄存器用,此时表示为AH,AL;BH
5、,BL;CH,CL;DH,DL。基地址寄存器BP,堆栈指针寄存器SP,源变址寄存器SI和目的变址寄存器DI主要存放地址,也可以存放数据。(2)段寄存器 8086的寻址空间是1M字节,物理地址需要20位的地址码。但CPU中的寄存器都是16位的。为解决该问题采用了存储器分段技术。把1MB地址分段,每段64KB,其起始地址的高16位装入一个段寄存器中,称作段基地址,这四个段寄存器的名称为:CS(代码段寄存器)DS(数据段寄存器)ES(附加段寄存器)SS(堆栈段寄存器)8086设置了这4个16位段寄存器,通过这四个段寄存器,CPU可以定位4个逻辑段,分别为:当前代码段、当前数据段、当前附加段和当前堆栈
6、段。注意,每个逻辑段在实际存储器中的位置是可以浮动的,其起始地址的高16位装在段寄存器中,称作段基地址。当程序很大,超过64KB时,则可以定义多个代码段、数据段和附加段。不同的逻辑段可以相交,甚至可以完全重叠。参见书上图2.8。(3)指令指针寄存器IP 该寄存器的内容用来指明将要执行的下一条指令在代码段中的位置。总线接口部件BIU负责修改IP寄存器的值,使它始终指向将要执行的下一条指令。(4)标志寄存器FR FR主要用来标志运算结果的状态,以及控制CPU的操作。各标志位定义如图2.2所示(共有9个标志):下图是80 x86微处理器的标志寄存器,从图中可知,他们是向下兼容的。标志位共有9个,6个
7、是状态标志,用来表示运算结果的特征,包括CF、PF、AF、ZF、SF和OF;3个是控制标志,用来控制CPU的操作,包括IF、DF和TF。状态标志:CF:进位标志,表示本次运算中最高位(第7位或第15位)有进位或有借位。PF:奇偶标志。PF=1表示本次运算中低8位有偶数个“1”;PF=0表示有奇数个“1”。AF:辅助进位标志。AF=1表示本次运算第3位向第4位有进位或有借位。在十进制运算中作为是否进行十进制调整的依据。ZF:零标志。ZF=1表示本次运算结果为零,否则ZF=0 SF:符号标志。SF=0为正数;SF=1为负数。OF:溢出标志。OF=1表示本次运算结果产生溢出,否则OF=0。所谓溢出就
8、是指运算结果超出了相应类型数据所能表示的范围。控制标志:DF:方向标志,用来控制串操作指令的执行。DF=0则串操作指令的地址自动增量;若DF=1,则自动减量。IF:中断标志,用来控制对可屏蔽中断的响应。若IF=1则允许CPU响应可屏蔽中断;IF=0,则CPU不能响应可屏蔽中断。TF:单步标志。若TF=1,则CPU进入单步工作方式,即CPU每执行一条指令就自动产生一次内部中断;TF=0则CPU正常执行。8086以上的CPU其寄存器阵列如下图所示,阴影部分是80386以上的32位微处理器的寄存器。5、8088与8086的区别 8088的指令队列只有4个字节,若出现1个空字节,BIU就会自动取指令补
9、充。8088BIU与外部交换数据是8位的,I/O控制电路与专用寄存器之间的数据总线宽度也是8位的。8088与8086有几个引脚的意义有不同,参见下一节。第二节 CPU的外部结构 8086/8088CPU芯片都是40条引脚的双列直插式封装。部分引脚采用了分时复用方式,即同一条引脚在不同的时刻具有不同的用途。如图2.3所示。8086/8088CPU可有两种工作模式,即最大模式和最小模式。不同模式下个别引脚的功能是不同的。GND 1 40 VCC AD14 2 39 AD15AD13 3 38 A16/S3AD12 4 37 A17/S4AD11 5 36 A18/S5AD10 6 35 A19/S
10、6 AD9 7 34 BHE/S7 AD8 8 33 MN/MXAD7 9 8086 32 RDAD6 10 CPU 31 HOLD(RQ/GT0)AD5 11 30 HLDA(RQ/GT1)AD4 12 29 WR(LOCK)AD3 13 28 M/IO(S2)AD2 14 27 DT/R(S1)AD1 15 26 DEN(S0)AD0 16 25 ALE(QS0)NMI 17 24 INTA(QS1)INTR 18 23 TESTCLK 19 22 READYGND 20 21 RESETGND 1 40 VCC A14 2 39 A15A13 3 38 A16/S3A12 4 37 A1
11、7/S4A11 5 36 A18/S5A10 6 35 A19/S6 A9 7 34 SS0(HIGH)A8 8 33 MN/MXAD7 9 8088 32 RDAD6 10 CPU 31 HOLD(RQ/GT0)AD5 11 30 HLDA(RQ/GT1)AD4 12 29 WR(LOCK)AD3 13 28 IO/M(S2)AD2 14 27 DT/R(S1)AD1 15 26 DEN(S0)AD0 16 25 ALE(QS0)NMI 17 24 INTA(QS1)INTR 18 23 TESTCLK 19 22 READYGND 20 21 RESET图2.3 8086/8088CPU的
12、外型与引脚一、8086CPU引脚1.AD15-AD0:分时复用的地址/数据总线2.A19/S6-A16/S3:分时复用的地址/状态线S4S3段寄存器00ES01SS10CS(I/O,INT)11DSS5用来表示中断标志状态线,当IF为1时,S5=1。S6保持恒为0。3.:总线高位有效信号4.:读信号5.:写信号6.:存储器或I/O端口访问信号BHEAD0总线使用情况0016位数据总线上进行字传送01高8位数据总线上进行字节传送10低8位数据总线上进行字节传送11无效7.Ready:准备就绪信号8.INTR:中断请求信号9.:中断响应信号10.NMI:非屏蔽中断请求信号11.:测试信号12.RE
13、SET:复位信号13.ALE:地址锁存允许信号14.:数据发送/接收控制信号15.:数据允许信号16.HOLD:总线请求信号17.HLDA:总线请求响应信号18.:工作模式选择信号19.CLK:主时钟信号20.Vcc:CPU+5V电源21.GND:电源地最大模式系统时2431引脚重定义如下:22.:总线周期状态信号23.:封锁信号24.:请求/同意信号25.QS1,QS0:指令队列状态信号二、8088CPU引脚功能 8088上有8条数据总线,所以只有AD7-AD0为地址/数据复用,A15-A8只是地址线。第28脚8086中 ,在8088中为 电平意义相反 第34脚8086中为 ,在8088中为
14、第三节 存储器结构 8086CPU有20根地址线,它的直接寻址空间为220=1M字节,这1M字节空间按照00000H-FFFFFH来编址。一、8086系统中的存储器结构1、存储器的组织 (1)8086系统中,1M字节分为2个512K的存储体,一个存储体中的地址都是偶数地址,叫偶体,另一个都是奇数地址,叫做奇体。如图2.4所示。图2.4 存储体与总线的连接 (2)访问一个存储体,只需19位地址,剩下一位用来区分访问那个存储体。A0=0为偶存储体,A0=1 为奇存储体。(3)信号:由该信号和A0控制读写那个存储体。A0 操作(读或写)0 0同时访问两个存储体,读写一个字 0 1只访问奇地址存储体,
15、读写高字节 1 0只访问偶地址存储体,读写低字节 1 1 无操作 (3)读字节和字,如图2.5所示图2.5 读存储器中的字节和字操作示意图2、存储器分段 图2.6为逻辑段在物理存储器中的位置。每个段的容量最大为64KB;段之间可以重叠。每个逻辑段的首地址的低4位为0,即是16的整数倍,将段首地址的高16位放在段寄存器中,称为“段基址”。而段内的相对地址也是16位,称为“偏移地址”。将1MB物理存储器空间也可用另一种分法。将20位物理地址分为两部分,如上图下面所示。用4位段号寄存器表示段号;16位寄存器表示段内地址。这样的缺点是要有一个4位寄存器,二是段的大小固定为64KB。3、逻辑地址和物理地
16、址 物理地址20位是唯一可识别的字节单元地址,即存储器的实际地址。逻辑地址是程序设计时,根据需要产生的一种地址,它不是真正的单元地址。逻辑地址由段基址和偏移地址两部分组成,它们都是16位无符号数。图2.7 段基址和偏移地址 物理地址可以由逻辑地址经过运算得到 例如:段基址 1123H 1124H 偏移地址 0013H 0003H 物理地址 11243H 11243H 可以看出,不同的段基址和偏移地址可以得到相同的物理地址。物理地址段基址10H偏移地址 如图2.9所示。物理地址的形成如图2.9所示。逻辑地址的来源如表2-5中所示的约定。4、存储单元的地址和内容 存储器通常以字节编址,一个字节单元
17、有一个唯一的存储器地址,称为物理地址。地址通常以16进制数表示。如36位地址总线,其地址范围为00000000FFFFFFFFH。一个存储单元中存放的信息称为该单元的内容,图2.33是存储数据信息的数据类型。可见一个字要占两个地址,其低位字节 存入低地址,高位字节存入高地址。同理,双字是4个字节,要占四个存储器地址,也是低位字节 存入低地址,高位字节存入高地址。5、动态浮动码 8086的段存储器结构,使编写与具体位置无关的或称动态浮动的程序成为可能。动态浮动使多道程序设计和多任务系统能特别有效地使用存储器。6、存储器堆栈 存储器堆栈由堆栈段寄存器SS和堆栈指针寄存器SP来定位,其中SS存放现行
18、堆栈的基地址,SP指向堆栈顶。堆栈段是向下生长的,即栈底在堆栈的最高地址处,当堆栈空时,SP指向栈底。堆栈操作都是16位操作,它有两种操作,即压栈和出栈。压栈时,先将SP的值减2,然后将16位数据压入新栈顶;出栈时,先从当前栈顶取出16位数据,然后SP加2,指向新的栈顶。如图2.8所示。图2.8中,执行了三条指令:PUSH AX ;(AX)=1234H PUSH BX ;(BX)=8765H POP AX ;(AX)=8765H 由图可知,堆栈栈底的一个字节单元总是不用的。7、存储器的专用和保留区Intel公司预先占用了存储器的最高和最低地址区域。物理地址0H到7FH的128个字节用来保存中断
19、 号为0H到1FH的中断向量表(32个中断向量)每个中断向量占4个字节。FFFF0H到FFFFFH的16个字节保留给系统的初始化代码。在上电或复位时,执行的第一条指令就在FFFF0H处。通常FFFF0H处存放一条无条件转移指令,转到系统程序的入口处。二、8088系统中的存储器结构 8088与8086的存储器结构基本相同,区别如下:(1)8088是准16位微处理器,外部数据总线是8位的,所以1MB是单一存储体,不分奇偶体。(2)8088在16位操作时都要两次访问存储器。第四节 系统配置一、概述 8086/8088CPU有两种工作模式,它们是由硬件决定的:时,构成最小模式 时,构成最大模式 最小模
20、式是单微处理器系统。最大模式是多处理器系统,一个为主,其他为协处理器,如8087数学协处理器,8089 I/O协处理器。8086的一些引脚在不同模式时,其含义是不一样的,如表2-6所示。二、最小模式系统 最小模式是一个以8086为主体的单处理器系统,所有控制信号均由CPU直接提供。最小系统的硬件包括一片8284A作为时钟发生器;三片8282(或74LS373)作为地址锁存器;两片8286/8287作为数据收发器。参见图2.10所示。图 2.10 8086最小模式系统的典型配置 其中数据双向收发器8286如图2.15所示,地址锁存器8282如图2.13所示。最小模式系统中数据传输方式如表2-7所
21、示。时钟发生器8284A与CPU的连接如图2.17所示。它产生恒定的时钟信号,对准备好(Ready)信号和复位信号(Reset)进行同步。外界控制信号RDY和RES可以在任何时候到来,8284A把它们同步在时钟下降沿时输出READY和RESET信号到CPU。图2.17中,振荡晶体通常采用石英晶体振荡器,内部3分频,得到4.77MHz输出到CPU。所以晶体是14.31MHz。三、最大模式系统 与最小模式区别是系统中增设了总线控制器8288和总线仲裁器8289。这样可以构成以8086CPU为中心的多处理器系统。最大模式的典型配置如图2.18所示。有关8288和8289可以参考书上的内容,我们不作要
22、求。图 2.18 8086最大模式系统的典型配置第五节 CPU的操作和时序一、基本概念1、时钟周期:是CPU的基本时间计量单位,它由计算机主频决定。8086主频是5MHz,一个时钟周期就是200ns。2、总线周期:BIU完成一次访问存储器操作所需要的时间称作一个总线周期。一个最基本的总线周期由4个时钟周期组成,习惯上称4个状态,即T1,T2,T3,T4状态。只有在CPU和内存或I/O端口之间传递数据以及取指令时,CPU才执行总线周期。3、空闲周期:如果在一个总线周期之后,不立即执行下一个总线周期,则系统总线就处于空闲状态,此时执行空闲周期Ti。4、指令周期:就是计算机完成对一条指令的读取并执行
23、这一系列步骤所需要的时间。一个指令周期包含一个或几个总线周期。例如,执行一条8位寄存器乘法(MUL),这是一条两字节指令,大约需7077个时钟周期的执行时间。二、系统的复位与启动操作 复位与启动是在RESET引脚上至少维持4个时钟周期的高电平,时序如图2.19所示。图 2.19 8086/8088的复位时序 复位时各内部寄存器的值:标志寄存器FR 清零指令指针IP 0000HCS寄存器 FFFFHDS寄存器 0000HSS寄存器 0000HES寄存器 0000H指令队列 空其他寄存器 0000H三、最小模式系统中的总线操作8086CPU为了要与存储器或I/O端口交换 数据,需要执行一个总线周期,这就是总 线操作。总线操作可以分为总线读操作和总线写 操作。读操作是CPU从存储器或I/O端口 读取数据,写操作是CPU将数据写入存 储器或I/O端口。最小模式系统中的总线读操作如图2.20所示。图 2.20 最小模式下的读操作时序 最小模式系统中的总线写操作如图2.21所示。图 2.21 8086最小模式写操作时序四、最大模式系统中的总线操作图 2.22 8086最大模式的读操作时序最大模式系统中的总线写操作图 2.23 8086最大模式的写操作时序