1 / 60

第二章 微型计算机系统结构

第二章 微型计算机系统结构. 第一节 CPU 的内部逻辑结构 一、 CPU 的组成和功能 1 、 CPU 的组成 CPU 主要由 运算器 、 控制器 、 寄存器组 和 片内总线 等 组成 2 、 CPU 的功能 (1) 指令控制 (2) 操作控制 (3) 时序控制 (4) 执行指令 (5) 数据加工(运算). 二、 8086/8088 微处理器的内部结构. 8086 是 16 位的微处理器,有 16 位数据线 和 20 位地址线,可寻址 2 20 个字节,即 2 20 =1MB=1048576B

adriel
Download Presentation

第二章 微型计算机系统结构

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. 第二章 微型计算机系统结构 第一节 CPU的内部逻辑结构 一、CPU的组成和功能 1、CPU的组成 CPU主要由运算器、控制器、寄存器组和片内总线等 组成 2、CPU的功能 (1) 指令控制 (2) 操作控制 (3) 时序控制 (4) 执行指令 (5) 数据加工(运算)

  2. 二、8086/8088微处理器的内部结构 8086是16位的微处理器,有16位数据线 和20位地址线,可寻址220个字节,即 220 =1MB=1048576B 8088是准16位微处理器,内部为16位,外 部数据线为8位。 8086是本课的重点,它主要分为两个独立 的功能模块,总线接口模块BIU和执行部件 EU,它们可以并行工作。如图2.1所示。

  3. BIU EU 图2. 1 8086 CPU内部逻辑结构

  4. 1、总线接口部件BIU 总线接口部件负责与存储器、输入/输出 端口传送数据。 总线接口部件组成: (1) 专用寄存器组:段地址寄存器CS、DS、 ES、SS和指令指针寄存器IP,均为16位。 (2) 地址加法器:8086在寻址1M字节地址 空间时需用20位地址,这个地址就是由地址 加法器产生的。

  5. 具体的说,地址加法器将段寄存器(16位) 的内容左移4位,然后与指令指针寄存器IP 的内容相加得到20位的物理地址。 例如:从内存取指令时, (CS)=5760H,(IP)=1234H,则物理地址 为: 57600H+ 1234H =57934H。 这里,先将段寄存器CS左移4位(16进 制数只需后面加一个零)。

  6. (3) 6字节的指令队列:总线接口部件从内 存中取来的指令放在一个缓冲区中,这个 缓冲区叫指令队列。执行部件在执行指令 过程中从指令队列取来指令执行。 (4) 输入/输出控制电路:该控制电路将 8086CPU的片内总线与系统总线相连,是 8086CPU与外部交换数据的必经之路。

  7. 2、执行部件EU(Execution Unit) 执行部件负责执行指令。通常,从指令队列中取得等待执行的指令。组成如下: (1) 算术逻辑单元ALU:完成各种运算。 (2) 标志寄存器FR:用来保存ALU运算结果的一 些特征信息,如运算是否进位。 (3) 通用寄存器组:数据寄存器AX,BX,CX,DX和 寄存器BP,SP,SI及DI,均16位。 (4) 执行部件控制电路

  8. 3、BIU和EU的管理 BIU和EU可以并行工作,提高CPU效率。 • BIU监视着指令队列。当指令队列中有2个空字 节时,就自动把指令取到队列中。 (2) EU执行指令时,从指令队列头部取指令,然后 执行。如需访问存储器,则EU向BIU发出请求, 由BIU访问存储器。 (3) 在执行转移、调用、返回指令时,需改变队列 中的指令,要等新指令装入队列中后,EU才继 续执行指令。

  9. 4、寄存器结构 (1) 通用寄存器组 8086CPU有8个16位的通用寄存器,分2组。 ① 通用数据寄存器:AX,BX,CX,DX,用来存放数 据或地址,一个16位寄存器也可以当作两个8位寄存 器用,此时表示为AH,AL;BH,BL;CH,CL;DH,DL。 ② 基地址寄存器BP,堆栈指针寄存器SP,源变址 寄存器SI和目的变址寄存器DI主要存放地址,也可 以存放数据。

  10. (2) 段寄存器 8086的寻址空间是1M字节,物理地址需要20 位的地址码。但CPU中的寄存器都是16位的。为 解决该问题采用了存储器分段技术。把1MB地址 分段,每段64KB,其起始地址的高16位装入一 个段寄存器中,称作段基地址,这四个段寄存器 的名称为: CS (代码段寄存器) DS (数据段寄存器) ES (附加段寄存器) SS (堆栈段寄存器)

  11. 8086设置了这4个16位段寄存器,通过这四个段 寄存器,CPU可以定位4个逻辑段,分别为:当前代 码段、当前数据段、当前附加段和当前堆栈段。 注意,每个逻辑段在实际存储器中的位置是可以 浮动的,其起始地址的高16位装在段寄存器中,称 作段基地址。当程序很大,超过64KB时,则可以定 义多个代码段、数据段和附加段。 不同的逻辑段可以相交,甚至可以完全重叠。参 见书上图2. 8。 (3)指令指针寄存器IP 该寄存器的内容用来指明将要执行的下一条指令在 代码段中的位置。总线接口部件BIU负责修改IP寄存 器的值,使它始终指向将要执行的下一条指令。

  12. (4) 标志寄存器FR FR主要用来标志运算结果的状态,以及控制CPU的 操作。各标志位定义如图2. 2所示(共有9个标志):

  13. 下图是80x86微处理器的标志寄存器,从 图中可知,他们是向下兼容的。

  14. 标志位共有9个,6个是状态标志,用来表示运算结果的标志位共有9个,6个是状态标志,用来表示运算结果的 特征,包括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。所谓溢出就是指运算结果超出了相应类型数据所能

  15. 表示的范围。 ② 控制标志: DF:方向标志,用来控制串操作指令的执行。 DF=0则 串操作指令的地址自动增量;若DF=1,则自动减量。 IF:中断标志,用来控制对可屏蔽中断的响应。若IF=1 则允许CPU响应可屏蔽中断; IF=0,则CPU不能响应可 屏蔽中断。 TF:单步标志。若TF=1,则CPU进入单步工作方式, 即CPU每执行一条指令就自动产生一次内部中断;TF=0 则CPU正常执行。 8086以上的CPU其寄存器阵列如下图所示,阴 影部分是80386以上的32位微处理器的寄存器。

  16. 5、8088与8086的区别 8088的指令队列只有4个字节,若出现1个 空字节,BIU就会自动取指令补充。 8088BIU与外部交换数据是8位的,I/O控 制电路与专用寄存器之间的数据总线宽度也 是8位的。 8088与8086有几个引脚的意义有不同,参 见下一节。

  17. 第二节 CPU的外部结构 8086/8088CPU芯片都是40条引脚的双列 直插式封装。部分引脚采用了分时复用方 式,即同一条引脚在不同的时刻具有不同 的用途。如图2.3所示。 8086/8088CPU可有两种工作模式,即最 大模式和最小模式。不同模式下个别引脚 的功能是不同的。

  18. GND 1 40 VCC AD14 239 AD15 AD13 3 38 A16/S3 AD12 4 37 A17/S4 AD11 536 A18/S5 AD10 6 35 A19/S6 AD9 7 34 BHE/S7 AD8 8 33 MN/MX AD7 9 8086 32 RD AD6 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 TEST CLK 19 22 READY GND 20 21 RESET GND 1 40 VCC A14 239 A15 A13 3 38 A16/S3 A12 4 37 A17/S4 A11 536 A18/S5 A10 6 35 A19/S6 A9 7 34 SS0 (HIGH) A8 8 33 MN/MX AD7 9 8088 32 RD AD6 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 TEST CLK 19 22 READY GND 20 21 RESET 图2.3 8086/8088CPU的外型与引脚

  19. 一、8086CPU引脚 1.AD15-AD0:分时复用的地址/数据总线 2.A19/S6-A16/S3:分时复用的地址/状态线 S5用来表示中断标志状态线,当IF为1时, S5=1。 S6保持恒为0。

  20. 3. :总线高位有效信号 4. :读信号 5. :写信号 6. :存储器或I/O端口访问信号

  21. 7.Ready:准备就绪信号 8.INTR:中断请求信号 9. :中断响应信号 10.NMI:非屏蔽中断请求信号 11. :测试信号 12.RESET:复位信号 13.ALE:地址锁存允许信号 14. :数据发送/接收控制信号 15. :数据允许信号 16.HOLD:总线请求信号

  22. 17.HLDA:总线请求响应信号 18. :工作模式选择信号 19.CLK:主时钟信号 20.Vcc:CPU+5V电源 21.GND:电源地 最大模式系统时24-31引脚重定义如下: 22. :总线周期状态信号 23. :封锁信号 24. :请求/同意信号 25.QS1,QS0:指令队列状态信号

  23. 二、8088CPU引脚功能 8088上有8条数据总线,所以只有AD7- AD0为地址/数据复用,A15-A8只是地址线。 第28脚8086中 ,在8088中为 电平意义相反 第34脚8086中为 ,在8088中为

  24. 第三节 存储器结构 8086CPU有20根地址线,它的直接寻址 空间为220 = 1M字节,这1M字节空间按照 00000H - FFFFFH来编址。

  25. 一、8086系统中的存储器结构 1、存储器的组织 (1) 8086系统中,1M字节分为2个512K的存储体,一个 存储体中的地址都是偶数地址,叫偶体,另一个都是奇 数地址,叫做奇体。如图2.4所示。 图2.4 存储体与总线的连接

  26. (2)访问一个存储体,只需19位地址,剩下一位 用来区分访问那个存储体。A0= 0为偶存储体, A0=1 为奇存储体。 (3) 信号:由该信号和A0控制读写那个存 储体。

  27. (3)读字节和字 ,如图2. 5所示 图2.5 读存储器中的字节和字操作示意图

  28. 2、存储器分段

  29. 图2.6为逻辑段在物理存储器中的位置。每个段 的容量最大为64KB;段之间可以重叠。每个逻辑 段的首地址的低4位为0,即是16的整数倍,将段 首地址的高16位放在段寄存器中,称为“段基址”。 而段内的相对地址也是16位,称为“偏移地址”。 将1MB物理存储器空间也可用另一种分法。将 20位物理地址分为两部分,如上图下面所示。用4 位段号寄存器表示段号;16位寄存器表示段内地 址。这样的缺点是要有一个4位寄存器,二是段 的大小固定为64KB。

  30. 3、逻辑地址和物理地址 物理地址20位是唯一 可识别的字节单元地址, 即存储器的实际地址。 逻辑地址是程序设计 时,根据需要产生的一 种地址,它不是真正的 单元地址。逻辑地址由 段基址和偏移地址两部 分组成,它们都是16位 无符号数。 图2.7 段基址和偏移地址

  31. 物理地址可以由逻辑地址经过运算得到 例如:段基址 1123H 1124H 偏移地址 0013H 0003H 物理地址 11243H 11243H 可以看出,不同的段基址和偏移地址可 以得到相同的物理地址。 物理地址=段基址×10H+偏移地址 如图2.9所示。

  32. 物理地址的形成如图2.9 所示。 逻辑地址的来源如表 2-5中所示的约定。

  33. 4、存储单元的地址和内容 存储器通常以字节编址,一个字节单元有一个 唯一的存储器地址,称为物理地址。地址通常以 16进制数表示。如36位地址总线,其地址范围为 00000000~FFFFFFFFH。 一个存储单元中存放的信息称为该单元的内 容,图2.33是存储数据信息的数据类型。可见一 个字要占两个地址,其低位字节 存入低地址,高 位字节存入高地址。 同理,双字是4个字节,要占四个存储器地址, 也是低位字节 存入低地址,高位字节存入高地址。

  34. 5、动态浮动码 8086的段存储器结构,使编写与具体位 置无关的或称动态浮动的程序成为可能。 动态浮动使多道程序设计和多任务系统能 特别有效地使用存储器。

  35. 6、存储器堆栈 存储器堆栈由堆栈段寄存器SS和堆栈指针寄存器SP来定 位,其中SS存放现行堆栈的基地址,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

  36. 由图可知,堆栈栈底的一个字节单元总是不用的。由图可知,堆栈栈底的一个字节单元总是不用的。

  37. 7、存储器的专用和保留区 • Intel公司预先占用了存储器的最高和最低地址区域。 • 物理地址0H到7FH的128个字节用来保存中断 号为0H到1FH的中断向量表(32个中断向量) 每个中断向量占4个字节。 • FFFF0H到FFFFFH的16个字节保留给系统的初始化代码。在上电或复位时,执行的第一条指令就在FFFF0H处。通常FFFF0H处存放一条无条件转移指令,转到系统程序的入口处。

  38. 二、8088系统中的存储器结构 8088与8086的存储器结构基本相同,区 别如下: (1)8088是准16位微处理器,外部数据总 线是8位的,所以1MB是单一存储体,不分 奇偶体。 (2)8088在16位操作时都要两次访问存储 器。

  39. 第四节 系统配置 一、概述 8086/8088CPU有两种工作模式,它们是 由硬件决定的: 时,构成最小模式 时,构成最大模式 最小模式是单微处理器系统。 最大模式是多处理器系统,一个为主, 其他为协处理器,如8087数学协处理器, 8089 I/O协处理器。

  40. 8086的一些引脚在不同模式时,其含义是不一样的,如8086的一些引脚在不同模式时,其含义是不一样的,如 表2-6所示。

  41. 二、最小模式系统 最小模式是一个以8086为主体的单处理 器系统,所有控制信号均由CPU直接提供。 最小系统的硬件包括一片8284A作为时钟 发生器;三片8282(或74LS373)作为地址 锁存器;两片8286/8287作为数据收发器。 参见图2.10所示。

  42. 图 2.10 8086最小模式系统的典型配置

  43. 其中数据双向收发器8286如图2. 15所示,地址锁存器 8282如图2.13所示。

  44. 最小模式系统中数据传输方式如表2-7所示。 时钟发生器8284A与CPU的连接如图2.17所示。它产生 恒定的时钟信号,对准备好(Ready)信号和复位信号 (Reset)进行同步。 外界控制信号RDY和RES可以在任 何时候到来,8284A把它们同步在时钟下降沿时输出 READY和RESET信号到CPU。

  45. 图2.17中,振荡晶体 通常采用石英晶体振荡 器,内部3分频,得到 4.77MHz输出到CPU。 所以晶体是14.31MHz。

  46. 三、最大模式系统 与最小模式区别是系统中增设了总线控 制器8288和总线仲裁器8289。这样可以构 成以8086CPU为中心的多处理器系统。 最大模式的典型配置如图2.18所示。 有关8288和8289可以参考书上的内容, 我们不作要求。

More Related