1 / 53

第 2 章 80X86 微处理器

第 2 章 80X86 微处理器. 本章重点: 掌握 CPU 内部寄存器的结构与功能,了解 CPU 引脚功能; 了解最小 / 最大模式的概念和系统组建,了解系统总线形成; 理解 CPU 总线读 / 写时序。 本章难点: 8086/8088CPU 引脚功能; 最小 / 最大模式; CPU 总线读 / 写时序。. 主 编 : 马争 副 主 编 : 汪亚南 作 者 : 石建国 , 师向群 , 孟庆元 电子制作 : 孟庆元 , 李佃宝. 2 . 1 微处理器的性能指标和技术特点 2.1.1 微处理器的主要性能指标.

azizi
Download Presentation

第 2 章 80X86 微处理器

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第2章80X86微处理器 本章重点: • 掌握CPU内部寄存器的结构与功能,了解CPU引脚功能; • 了解最小/最大模式的概念和系统组建,了解系统总线形成; • 理解CPU总线读/写时序。 本章难点: • 8086/8088CPU引脚功能; • 最小/最大模式; • CPU总线读/写时序。

  2. 主 编 : 马争 • 副 主 编 : 汪亚南 • 作 者 : 石建国,师向群,孟庆元 • 电子制作 : 孟庆元,李佃宝

  3. 2.1 微处理器的性能指标和技术特点2.1.1 微处理器的主要性能指标 1、主频 • 主频也叫时钟频率,单位是MHz,用来表示CPU的运算速度。CPU的主频=外频×倍频系数。 2、外频 • 外频是CPU的基准频率,单位也是MHz。CPU的外频决定着整块主板的运行速度。在台式机中,所说的超频,都是超CPU的外频,一般情况下,CPU的倍频都是被锁住的。 3、倍频系数 • 倍频系数是指CPU主频与外频之间的相对比例关系。

  4. 4、位和字长 • 位:在数字电路和计算机技术中采用二进制,代码只有“0”和“1”,其中无论是 “0”或是“1”在CPU中都是一“位”。 • 字长:计算机技术中对CPU在单位时间内(同一时间)能一次处理的二进制数的位数叫字长。 5、高速缓存Cache • 高速缓存大小也是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大。

  5. 6、CPU内核电压和I/O工作电压 • 从586CPU开始,CPU的工作电压分为内核电压和I/O电压两种,通常CPU的核心电压小于等于I/O电压。 7、指令集和扩展指令集 • CPU依靠指令来计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。指令的强弱也是CPU的重要指标,指令集是提高微处理器效率的最有效工具之一。

  6. 2.1.2、新一代微处理器的技术特点 1、超流水线和超标量技术 • 流水线是Intel首次在486芯片中开始使用的。流水线的工作方式就象工业生产上的装配流水线。超流水线是通过细化流水、提高主频,使得在一个机器周期内完成一个甚至多个操作,其实质是以时间换取空间。 • 超标量是通过内置多条流水线来同时执行多个处理器,其实质是以空间换取时间。

  7. 2、独立的指令cache和数据cache • 80486片内有8KB的Cache,而Pentium有2个8KB的Cache,指令和数据各使用一个Cache,使Pentium的性能大大超过80486微处理器。 3、重新设计的浮点运算单元 • Pentium的浮点单元在80486的基础上进行了彻底的改进,每个时钟周期能完成一个或两个浮点运算。 4、分支预测 • 循环操作在软件设计中使用十分普通,而且每次在循环中对循环条件的判断占用了大量的CPU时间,为此,Pentium提供一个称为分支目标缓冲器BTB(BranchTargetBuffer)的小Cache来动态地预测程序分支,提高循环程序运行速度。

  8. 2.2 8086/8088微处理器内部结构 2.2.1 8086/8088微处理器的内部结构 • 8086CPU的内部结构框图如图所示。从功能上讲,它由两个独立的逻辑单元组成,即执行单元EU和总线接口单元BIU。 • 1.执行单元EU • 执行单元EU中的各部件通过一个16位的算术逻辑单元(ALU)总线连接在一起,在内部实现快速数据传输。

  9. 8086CPU的内部结构框图

  10. 2.总线接口单元BIU • 总线接口单元BIU的功能是根据执行单元EU的请求,负责完成CPU与存储器或I/O设备之间的数据传送。 • 3.执行部件EU和总线接口部件BIU的动作管理 • 由于总线接口单元BIU和执行单元EU两部分是按流水线方式并行工作的,在EU执行指令的过程中,BIU可以取出多条指令,放进指令流队列中排队。这样,当EU执行完一条指令后,就可以立即执行下一条指令,从而减少了CPU为取指令而等待的时间,提高了运算速度。

  11. 2.2.3 8086/8088CPU内部寄存器 • 8086/8088CPU内部有14个16位寄存器,为了便于说明,一般又把它们分为3个组。

  12. 图8086/8088CPU的寄存器结构

  13. 1.通用寄存器 • 通用寄存器可分为两组:数据寄存器和地址指针与变址寄存器。 (1)数据寄存器 • AX—AH(高)、AL(低)累加器ADD • BX—BH(高)、BL(低)基址寄存器BASE • CX—CH(高)、CL(低)计数器COUNT • DX—DH(高)、DL(低)数据寄存器DATA (2)地址指针和变址寄存器 • 这组寄存器在功能上的共同点是,在对存储器操作数据寻址时,用于形成20位物理地址码的组成部分。BP--基数指针寄存器 • SP(StackPointer)堆栈指针和BP(BasePointer)基址指针,通常用来作为16位地址指针。 • SI(SourceIndex)和DI(DestinationIndex)变址寄存器用来存放段内偏移地址的全部或一部分。

  14. 2.段寄存器 • CS--16位的代码段寄存器 • DS--16位的数据段寄存器 • ES--16位的附加(扩展)段寄存器 • SS--16位的堆栈段寄存器 3.控制寄存器 (1)指令指针IP • 相当于程序计数器PC,用于控制程序中指令的执行顺序。一般情况下,每取一次指令码,IP就自动加1,从而保证指令的顺序执行。IP实际上是指令机器码存放单元的地址指针,IP的内容可以被转移类指令强迫改写。 (2)标志寄存器F • 8086/8088CPU设立了一个16位的标志寄存器,共9个标志。其中6个是状态标志,3个是控制标志。

  15. ①CF(CarryFlag)进位标志。 • 如果作加法时最高位(对字节操作是D7位,对字操作是D15位)产生进位或作减法时高位产生借位,则CF=1,否则CF=0。 • ②PF(ParityFlag)奇偶标志。 • 如果操作结果的低8位中含有偶数个1,则PF=1,否则PF=0。 • ③AF(AuxiliaryCarryFlag)辅助进位标志。 • 如果在作加法时D3位向D4位的进位,则AF=1,否则AF=0。这个标志用于实现BCD码算术运算结果的调整。 • ④ZF(ZeroFlag)全零标志。 • 如果运算结果各位都为零,则ZF=1,否则ZF=0。

  16. ⑤SF(SignFlag)符号标志。 • 它总是和结果的最高位(字节操作时是D7,字操作时是D15)相同。因为在补码运算时最高位是符号位,所以运算结果为负时,SF=1,否则SF=0。 • ⑥OF(OverflowFlag)溢出标志。 • 当进行带符号的补码运算时,算术运算的结果超出了机器所能表达的带符号数的范围,就会产生溢出,这时溢出标志位OF=1;若OF=0,表示运算结果无溢出发生。 • 控制标志是一种用于控制CPU工作方式或工作状态的标志。

  17. ①DF(DirectionFlag)方向标志。 • 方向标志DF用于控制字符串操作指令的步进方向,当DF=1时,字符串操作指令将从高地址到低地址的方向对字符串进行处理;若DF=0时,则相反。 • ②IF(InterruptEnableFlag)中断允许标志。 • 它是控制可屏蔽中断的标志,若IF=1,表示允许CPU接受外部从INTR引线上发来的可屏蔽中断请求信号;若IF=0,则禁止。IF的状态不影响非屏蔽中断(NMI)请求,也不影响CPU响应内部的中断请求。 • ③TF(TrapFlag)陷阱标志或单步操作标志 • 陷阱标志是为了调试程序而设置的。若TF=1,则使8086/8088CPU处于单步工作方式;当TF=0时,CPU正常执行程序。

  18. 2.3 8086/8088CPU的外部引脚及功能 2.3.1 8086/8088CPU的外部引脚 • 8086/8088CPU均采用双列直插式的封装形式,具有40条引脚。

  19. 8086/8088外部引脚图

  20. 2.3.2 8086/8088CPU的工作模式 • 8086/8088CPU有两种工作方式:最大模式(MX)和最小模式(MN)。最小模式适用于单微处理器组成的小系统,系统中只有一个CPU;最大模式适用于多微处理组成的大系统,系统中含有2个或2个以上的CUP,其中一个主处理器,其它为协处理器。

  21. 1.地址/数据总线AD15~AD0(双向、三态) • 这是分时复用的存储器或I/O端口和数据总线。传送地址时三态输出,传送数据时可双向三态输入/输出。 2.地址/状态线A19/S6~A16/S3(输出、三态) • 这些引线也是采用多路开关的分时输出,在存储器操作的总线周期的第一个时钟周期(T1状态)时,输出20位地址的高4位(A16~A19),而在其他的时钟周期,输出状态信号。S3和S4表示正在使用的是哪个段寄存器,S5指示IF的当前状态,S6则输出低电平("0"),以表示8086/8088当前连在总线上。

  22. 3.控制总线 (1)总线高字节允许/状态,BHE/S7(输出、三态) • 在总线周期的第一个时钟周期,输出总线高字节允许信号BHE,其余时钟周期,输出状态S7,但目前S7并没能定义。若BHE=1,表示数据传送只在AD0~AD7上进行。 • 对于8088,不需要BHE信号。该引脚表示SS0,它在最小模式中表示状态,而在最大模式时它始终为高电平("1")。 (2)读控制信号线(输出、三态) • 当RD有效(低电平时),表示CPU正在进行读存储器或读I/O端口的操作。到底是对内存单元还是对I/O端口读取数据,取决于M/IO(8086)或IO/M(/8088)信号。 (3)准备好信号READY(输入) • 它是由被访问存储器或I/O端口发来的响应信号。当READY=1时,表示所寻址的存储单元或I/O端口已准备就绪,马上就可以进行一次数据传送;当READY=0时,表示所寻址的存储单元或I/O端口尚未准备就绪,要求CPU自动插入一个或几个TW等待状态,直到READY线出现高电平才进行数据传送。

  23. (4)等待测试信号TEST(输入) • 这个测试信号是由WAIT指令来检查的。当CPU执行WAIT指令时,每隔5个时钟周期对该线的输入进行一次测试;若TEST=1时, CPU停止取下一条指令而进入等待,重复执行WAIT指令,直至TEST=0。 (5)可屏蔽中断请求信号INTR(输入) • 若IF=1(即中断未被屏蔽)时,则CPU响应中断,并且CPU通过执行中断响应周期转去执行中断服务程序;若IF=0则中断被屏蔽。 (6)非屏蔽中断请求信号NMI(输入) (7)复位信号RESET(输入) • 复位信号RESET将使8086/8088CPU立即结束它的当前操作。CPU要求复位信号至少要保持高电平4个时钟周期,才能结束它正在进行的操作。

  24. (8)系统时钟CLK(输入) • 它为微处理器提供基本的定时脉冲。 (9)最小/最大模式信号MN/MX(输入) • 当MN/MX引脚接+5V时,则CPU工作于最小模式;若该引脚接地时,则CPU工作于最大模式。 (10)其他控制信号(24~31)引脚 • 这些控制线的性能将根据控制线MN/MX所处的状态而确定。 4、电源线VCC和地线GND • 电源线VCC接入的电压为+5V±10%,有两条地线GND,均应接地。

  25. 2.3.3 8086CPU与8088CPU的区别 • 8086是16位数据总线,而8088是8位数据总线,在处理一个16位数据时,8088需要二步操作而8086只需要一步操作; • 引脚功能有所不同,8086的M/IO高电平为存储器操作,低电平为外设IO操作,8088则正好相反; • 由于8088只有8位数据线,因此没有BHE引脚。

  26. 2.4 8086/8088CPU系统结构 2.4.1 8086/8088CPU的总线周期 • 1.总线周期 • 通常把8086/8088CPU经外部总线对存储器或I/O端口进行一次数据的输入或输出过程,称为总线操作。而把执行该操作所需要的时间,称为总线周期或总线操作周期。 • 8086/8088CPU的总线周期至少由4个时钟周期组成。

  27. 图8086/8088的总线周期

  28. 2.空闲状态TI(IdleState) • 在两个总线周期之间,存在着BIU不执行任何操作的时钟周期,这些不起作用的时钟周期称为空闲状态, 3.等待状态TW(WaitState)

  29. 2.4.2 8086/8088CPU最小模式时的系统结构 1.8086/8088CPU最小模式时的引脚功能 • 所谓最小模式,就是在系统中只有8086/8088一个CPU,而所有的总线控制信号都由CPU直接产生,因此系统中的总线控制电路被减到最少。 • 在最小模式下的各引脚定义如下: • INTA:中断响应信号 • ALE: 地址锁存允许信号 • DEN: 数据允许信号 • DT/R:数据收发信号 • M/IO:存储器/输入输出控制信号 • WR: 写信号 • HOLD:总线保持请求信号 • HLDA:总线保持响应信号

  30. 2.8086/8088最小模式下连接的特点 (1)MN/MX端接+5V,决定了8086/8088工作在最小模式。 (2)有一片时钟发生器8284A,作为时钟发生器。 (3)有三片8282或74LS373,用来作为地址锁存器。 (4)当系统中所连接的存储器和外设比较多时,需要增加系统数据总线的驱动能力,这时,要用两片8286/8287作为总线收发器。 3.8086/8088CPU最小模式时系统的总线结构 当把8086/8088的33脚MN/MX接+5V时,8086/8088CPU就处于最小工作方式了。

  31. 图8086CPU最小模式时的系统配置示意图

  32. 2.4.3 8086/8088最大模式时的系统结构 • 而最大模式是相对最小模式而言的,此时系统中有两个或多个微处理器,其中有一个是主处理器8086/8088,其它的处理器称为协处理器,它们协助主处理器工作。 1.8086/8088最大模式时的引脚功能 • 最大模式时,8086/8088 CPU不直接提供用于存储器或I/O端口读写命令等控制信号,而是将当前要执行的总线操作类型编码为3个状态位(S0、S1、S2)输出,由总线控制器8288CPU对3个状态位信息进行译码,产生相应的控制信号。而24~31控制引脚的其余引脚提供8086/8088CPU最大模式时系统所需的其他信息。

  33. 2.最大模式下的连接特点 (1)最大模式下多了8288总线控制器。 (2)在最大模式系统中,一般还会有中断优先级管理部件。 3.8086/8088CPU最大模式时系统总线结构 • 如果将8086/8088的MN/MX接地,CPU就工作在最大模式了。 • 在最大的模式系统中需要总线控制器来产生总线控制信号,因为最大模式系统包含有多个处理器,各个处理器之间需要共享总线,就必须解决主处理器和协处理器之间的协调工作问题。总线控制器8288就是用来完成这种功能的。 4.总线控制器8288 • 最大模式系统与最小模式系统的主要区别是增加了总线控制器8288,使总线控制功能更加完善。

  34. 图最大模式时的系统配置示意图

  35. 2.5 8086的时序 2.5.1 8086CPU最小模式时的总线时序 1.学习时序的目的 • 深入分析典型的操作时序其目的在于: (1)深入理解微处理机的内部操作原理; (2)有利于在编程序时适当选用指令,以缩短指令的存储空间和指令的执行时间; (3)有助于更好地解决CPU与存储器以及各种外设之间的时序配合问题; (4)当微型机用于实时控制时,必须估计CPU完成操作所需的时间,以便与控制过程相配合。

  36. 典型的8086总线时序

  37. 2.8086CPU最小模式时的总线周期时序 (1)写总线周期时序

  38. 8086最小模式下的总线写操作时序

  39. (2)读总线周期时序 最小模式下的总线读操作时序

  40. (3)中断响应周期时序 典型的8086中断时序图

  41. 2.5.2 8086CPU最大模式时的总线时序 • 最大模式下的时序与最小模式有所不同,这里不再详述,只是与最小模式下的时序进行比较。

  42. 1.读总线周期与写总线周期时序 • 与最小模式时的不同之处有3点: • 第一,用于8282锁存器入8286收发器的控制信号、读写控制信号和INTA信号在最大模式系统中均由8288总线控制器根据CPU输出的3个状态位S0、S1、S2产生; • 第二,最小模式系统下的M/IO、RD和WR信号由存储器读命令MRDC,I/O读命令IORC,存储器写命令MWTC,先行存储定命令AMWC,I/O写命令IOWC和先行I/O写命令AIOWC代替; • 第三,8288输出的数据允许信号DEN的极性与最小模式下CPU产生的DEN相反,使用时经反相加到8286的OE端。 2.中断响应周期时序 • 在最大模式时,INTA由8288输出。在中断响应周期中,除了从第一个总线周期的T2到第二个总线周期的T2,在LOCK引脚上输出低电平信号外,其他均与最小模式时的中断响应周期时序一致。

  43. 2.6 8086/8088的存储器组织 • 存储器的基本存储单元是一个二进制位(bit),每8位组成一个字节(Byte),每相邻的2个字节可组成一个字(16位)。 • 存储器以字节为单位存储信息。为区别不同的字节存储单元,每个单元都被指定一个唯一的编号,称为该单元的物理地址(简称PA)。地址编号从0开始,按顺序加1,一般用十六进制数表示。因此PC机的内存是以字节单元为单位对内存进行编址。

  44. 2.6.1 8086/8088的存储器地址空间 • 8086/8088地址线有20根,存储器的最大存储空间为1MB(220),因此存储器地址范围为00000H~FFFFFH

  45. 8086存储空间

  46. 1.存储器分段与 8086存储空间 • 8086/8088 CPU的寄存器是16位,最大值为FFFF即64K,而8086/8088的内存最大可达1M,显然用一个寄存器不能寻找大于64K的地址,因此采用了段地址加偏移地址的寻址方式CS:IP,这样最大寻址范围扩大到FFFFF,即1MB,从而满足了早期DOS操作系统的需要。 • 分段方法:把1MB内存划分成若干个存储区域,每个区域称为一个逻辑段(每个段都在一个连续的存储区域内,容量最大64KB)。8086/8088规定每个段的段起始地址必须能被16整除,其特征是:20位段起始地址的最低4位为0(用16进制表示为××××0H)。

  47. 2.存储器单元物理地址的形式 (1)存储单元地址 • 段基址:一个逻辑段的起始地址,形如XXXXH。 • 偏移地址:段内一个存储单元到达段地址的距离(16位)。 • 物理地址PA:存储单元的实际地址(20位)。 • 段基址和偏移地址是逻辑地址,即在程序指令中引用和操作的地址;物理地址是在20位地址总线上产生的地址。 (2)存储单元物理地址的计算 • 物理地址=段基址×10H+偏移地址 • 指令单元地址=CS×10H+IP • 堆栈操作单元地址=SS×10H+SP/BP • 数据单元地址=DS×10H+地址表达式 • 例:某单元的逻辑地址为4B09H:5678H,则该存储单元的物理地址为:物理地址(PA)=段基址×10H+EA=4B09H×10H+5678H=4B090H+5678H=50708H • 一个存储单元,可以用不同的逻辑地址表示,但其物理地址是唯一的。

  48. 2.5.3 8086/8088 CPU系统中的部分系统物理地址空间 1、部分系统专用存储空间 • 中断矢量区:00000H~003FFH共1K字节,用以存放256种中断类型的中断矢量,每个中断矢量占用4个字节,共256×4=1024=1K • 显示缓冲区:B0000H—BOF9FH约4K字节,是单色显示器的显示缓冲区,存放文本方式下所显示字符的ASCII码及属性码;B8000H—BBF3FH约16K字节,是彩色显示器的显示缓冲区,存放图形方式下屏幕显示象素的代码。 • 启动区:FFFF0H—FFFFFH共16个单元,用以存放一条无条件转移指令的代码,转移到系统的初始化部分。

  49. 2、堆栈 (1)堆栈的概念 • 堆栈(stack)是一种数据结构,它的特殊之处在于只能允许在链表的一端(称为栈顶,英文为top)进行添加和删除操作,因而按照后进先出(LIFO-Last In First Out)的原理工作。堆栈数据结构支持两种基本操作:压栈(push)和弹栈(pop): • 压栈(入栈)PUSH:将对象或者数据压入栈中,更新栈顶指针,使其指向最后入栈的对象或数据。 • 弹栈(出栈)POP:返回栈顶指向的对象或数据,并从栈中删除该对象或数据,更新栈顶。

  50. (2)堆栈的功能及工作过程 • 功能:保存断点地址和重要数据。 • 工作过程:以8086汇编语言为例 • 入栈操作:以PUSH AX为例 • (SP-1)<- 高字节AH • (SP-2)<- 低字节AL • 出栈操作:以POP BX为例 • 低字节单元BL <-(SP) • 高字节单元BH <-(SP+1) • SP <- SP+2

More Related