登录/注册

8086微处理器的工作方式

更多

8086 微处理器是 Intel 的第一款 16 位微处理器,其工作方式奠定了现代 x86 架构的基础。它的核心工作方式可以从以下几个方面来理解:

  1. 基于总线的操作:

    • 关键组件: 8086 通过系统总线与其他芯片(如内存、I/O 端口控制器)通信。总线包括:
      • 地址总线 (AD0-AD15, A16-A19): 20 位宽(复用),可寻址 1MB 内存空间(00000HFFFFFH)。
      • 数据总线 (AD0-AD15): 16 位宽(复用),一次可传输 16 位数据。
      • 控制总线 (如 RD/WR, M/IO, ALE, INTR, RESET 等): 控制数据传输的方向、类型(读/写、内存/I/O)、同步信号、中断请求等。
    • 复用总线 (AD0-AD15): 为了节省引脚数量,8086 的地址总线的低 16 位(A0-A15) 和 数据总线 (D0-D15) 复用同一组引脚 AD0-AD15。这是理解其工作时序的关键。
    • 总线周期: CPU 与外部设备(内存或 I/O)进行任何数据交换都需要执行一个或多个总线周期。基本类型包括:
      • 存储器读/写周期: 从内存读取数据或向内存写入数据。
      • I/O 读/写周期: 从 I/O 端口读取数据或向 I/O 端口写入数据。
      • 中断应答周期: 响应外部中断请求,从数据总线上读取中断类型号。
    • 总线时序: 总线操作严格遵循时钟周期 (CLK) 定义的时序。例如,在一个典型的最小模式存储器读周期中:
      1. 8086 发出地址锁存使能信号 ALE(高电平),同时将地址信息放到 AD0-AD15/A16-A19 上。
      2. 外部地址锁存器(如 8282/74LS373)在 ALE 下降沿锁存地址。
      3. ALE 变低后,8086 将复用总线 AD0-AD15 转为数据输入状态。
      4. 8086 发出存储器选择信号 M/IO = HIGH 和读命令 RD = LOW
      5. 被寻址的内存单元将数据放到数据总线上。
      6. T3 周期末尾,8086 在时钟上升沿采样数据总线上的有效数据。如果内存较慢,可插入等待状态 Tw
      7. RD 恢复高电平,结束读周期。
  2. 段式内存管理:

    • 物理地址计算: 8086 有 20 位地址总线(1MB 空间),但其内部寄存器都是 16 位的。为了解决这个矛盾,引入了分段机制
    • 段寄存器 (CS, DS, SS, ES): 包含段基地址的高 16 位(实际使用时要左移 4 位,相当于乘以 16)。
      • CS (Code Segment): 代码段
      • DS (Data Segment): 数据段
      • SS (Stack Segment): 堆栈段
      • ES (Extra Segment): 附加数据段
    • 偏移地址 (Offset): 由 IP、SP、BX、SI、DI 等寄存器提供,或由指令中的地址计算部分产生。它是一个 16 位 的值,表示相对于段基地址的偏移量。
    • 物理地址生成: 物理地址 = (段寄存器值 << 4) + 偏移地址 例如,CS = 2000H, IP = 0300H,则下一条指令的物理地址为:2000H * 10H (左移4位等于乘以16) + 0300H = 20000H + 0300H = 20300H
    • 意义: 这种机制允许程序访问远大于 64KB 的内存,并有助于代码、数据和堆栈的逻辑分离。但段的大小固定为 64KB
  3. 指令执行流水线:

    • 总线接口单元 (Bus Interface Unit - BIU): 负责所有的总线操作(取指令、取操作数、写结果到内存/I/O)。它在执行单元工作时,预取后续指令到指令队列(6 字节)。
    • 执行单元 (Execution Unit - EU): 负责指令译码和执行。它从 BIU 的指令队列中读取指令,进行译码,执行算术逻辑运算,并管理寄存器状态。它不直接访问系统总线
    • 流水线操作原理: 这是 8086 性能提升的关键。
      1. BIU 从内存读取指令字节(通常是连续的)并放入指令队列(一个 6 字节的先进先出缓冲区)。
      2. EU 从指令队列头部读取指令字节,进行译码和执行。
      3. 关键点: 在 EU 正在执行上一条指令时(不需要访问总线),BIU 可以(且通常会)在总线上有空闲时(或根据队列状态)预取下一条或多条指令。 只要队列非空,EU 就能持续工作。
      4. 这样,取指操作和指令执行操作在某种程度上并行进行,减少了 CPU 等待指令的时间(相对于顺序取一条执行一条的方式),提高了效率。
      5. 流水线冲突与暂停: 当 EU 执行需要访问内存或 I/O 的操作数(比如 MOV AX, [DI])时,它会请求 BIU 执行一个总线周期。此时 BIU 会暂停取指,优先服务 EU 的请求(这会导致流水线“堵塞”或“气泡”)。类似地,分支指令(JMP, CALL 等)可能导致指令队列中的预取指令失效,需要 BIU 重新从目标地址开始取指,也会中断流水线。但在顺序执行代码时,流水线显著提升了性能。
  4. 中断处理:

    • 类型: 8086 支持硬件中断(通过 INTR 引脚或 NMI 引脚)和软件中断(INT n 指令)。
    • 中断向量表: 内存最低的 1KB (00000H - 003FFH) 区域是一个包含 256 个入口中断向量表。每个入口占 4 字节(即一个远指针),其中低字是 偏移地址 (IP),高字是 段基地址 (CS)
    • 处理过程:
      1. 当 8086 在 INTR 引脚上接收到一个有效中断请求(INTR 高电平且 IF = 1)或在 NMI 引脚(不可屏蔽)接收到上升沿中断请求时,会在完成当前指令后处理中断。
      2. 执行中断应答周期(INTA)。
      3. 从中断源(通常是外部中断控制器如 8259A)获得一个 8 位的中断类型号 n
      4. 将当前的 FLAGSCSIP 压入堆栈 保存现场。
      5. 从中断向量表的 4 * n 地址处取出 4 字节的中断服务程序入口地址(先取出 IP,再取出 CS)。
      6. IFTF 标志位清零(除非是软中断,软中断不自动清 IF)。
      7. 跳转到新的 CS:IP 地址开始执行中断服务程序 (ISR)
      8. ISR 执行完毕时,使用 IRET 指令从堆栈中弹出保存的 IPCSFLAGS,恢复到被中断的程序继续执行。
    • 非屏蔽中断 (NMI) 优先级最高且不可通过 IF 禁止,通常用于处理严重错误(如电源故障)。
    • 软件中断 (INT n) 通过指令触发,中断类型号 n 由指令指定。
  5. 操作模式 (最小/最大模式):

    • 8086 可以通过 MN/MX (Minimum/Maximum Mode) 引脚配置其工作模式:
      • 最小模式 (MN/MX = +5V): 8086 自身生成大部分总线控制信号 (ALE, M/IO, RD, WR, INTA, DEN, DT/R 等)。适用于构建简单、单处理器系统。
      • 最大模式 (MN/MX = GND): 8086 输出一组 状态编码信号 (S0, S1, S2) 给外部总线控制器(如 8288)。8288 负责解读这些编码并生成更复杂、强驱动能力的总线控制信号。该模式支持连接协处理器(如用于数学运算的 8087),总线信号也支持构建多处理器共享总线的系统,并提供额外的控制信号(如 LOCK)。
    • 两种模式下的核心工作方式(总线操作、分段、流水线、中断)相同,主要区别在于总线控制信号的来源和复杂性。

总结:

8086 微处理器的工作方式是一个复杂的系统:

这种设计在 16 位时代提供了强大的性能和灵活的扩展性,其核心概念(特别是分段模型,虽然后期发展出了保护模式等更复杂的机制)在后续的 x86 处理器家族(80286, 80386, ... 直到现代的 Core i 系列)中被继承和发展。

影响微处理器性能的因素

影响微处理器性能的因素是多方面的,这些因素共同决定了微处理器在处理数据、执行指令以及协调系统各部件

2024-08-22 12:31:49

微处理器监控电路MAX690用户手册

微处理器监控电路MAX690用户手册

资料下载 Freely_99 2021-08-14 17:31:13

嵌入式微处理器与应用

嵌入式微处理器与应用(嵌入式开发环境的构建包括几部分内容)-该文档为嵌入式微处理器与应用讲解文档,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看………………

资料下载 佚名 2021-07-30 09:59:26

微处理器体系结构

微处理器体系结构说明。

资料下载 姚小熊27 2021-04-12 11:42:14

ARM嵌入式微处理器体系结构

嵌入式微处理器是嵌入式系统的核心。目前32位嵌入式微处理器是市场的主流。

资料下载 姚小熊27 2021-04-09 09:28:00

使用PROTUES仿真8086微处理器芯片的资料合集

本文档的主要内容详细介绍的是使用PROTUES仿真8086微处理器芯片的资料合集。

资料下载 原罪心中人 2020-04-29 08:00:00

微处理器的外部结构是怎样构成的

结构1微处理器的外部结构总线的功能微处理器的内部结构典型的CPU内部结构图堆栈指针SP微处理器的外部结构

2022-02-14 07:40:41

16位和32位微处理器的相关资料推荐

第2章 16位和32位微处理器微处理器的性能指标最主要的是以下两项:1.字长2.主频一、16位微处理器80868086是Intel系列的16位

2022-01-25 06:19:32

探讨一下嵌入式微处理器体系结构

嵌入式微处理器体系结构17As discussed earlier, the 8086 microprocessor consists of two main blocks: the Bus

2021-12-17 06:26:45

如何用MCU去配置OV2640的工作方式

如何用MCU去配置OV2640的工作方式呢?OV2640自带的微处理器有何功能?

2021-12-14 07:10:34

8086cpu工作原理

8086cpu工作原理,来头:Intel8086是一个由Intel于1978年所设计的16位

2021-07-22 07:32:15

如何确定微处理器复位阈值

个微处理器为例来说明这个问题,假定该微处理器保证正确工作于3.3V±0.3V电源,也就是从3.00V到3.60V该

2020-07-08 09:46:44
7天热门专题 换一换
相关标签