8086微处理器的工作方式
更多
8086 微处理器是 Intel 的第一款 16 位微处理器,其工作方式奠定了现代 x86 架构的基础。它的核心工作方式可以从以下几个方面来理解:
-
基于总线的操作:
- 关键组件: 8086 通过系统总线与其他芯片(如内存、I/O 端口控制器)通信。总线包括:
- 地址总线 (AD0-AD15, A16-A19): 20 位宽(复用),可寻址 1MB 内存空间(
00000H到FFFFFH)。 - 数据总线 (AD0-AD15): 16 位宽(复用),一次可传输 16 位数据。
- 控制总线 (如 RD/WR, M/IO, ALE, INTR, RESET 等): 控制数据传输的方向、类型(读/写、内存/I/O)、同步信号、中断请求等。
- 地址总线 (AD0-AD15, A16-A19): 20 位宽(复用),可寻址 1MB 内存空间(
- 复用总线 (AD0-AD15): 为了节省引脚数量,8086 的地址总线的低 16 位(
A0-A15) 和 数据总线 (D0-D15) 复用同一组引脚AD0-AD15。这是理解其工作时序的关键。 - 总线周期: CPU 与外部设备(内存或 I/O)进行任何数据交换都需要执行一个或多个总线周期。基本类型包括:
- 存储器读/写周期: 从内存读取数据或向内存写入数据。
- I/O 读/写周期: 从 I/O 端口读取数据或向 I/O 端口写入数据。
- 中断应答周期: 响应外部中断请求,从数据总线上读取中断类型号。
- 总线时序: 总线操作严格遵循时钟周期 (
CLK) 定义的时序。例如,在一个典型的最小模式存储器读周期中:- 8086 发出地址锁存使能信号
ALE(高电平),同时将地址信息放到AD0-AD15/A16-A19上。 - 外部地址锁存器(如 8282/74LS373)在
ALE下降沿锁存地址。 ALE变低后,8086 将复用总线AD0-AD15转为数据输入状态。- 8086 发出存储器选择信号
M/IO = HIGH和读命令RD = LOW。 - 被寻址的内存单元将数据放到数据总线上。
- 在
T3周期末尾,8086 在时钟上升沿采样数据总线上的有效数据。如果内存较慢,可插入等待状态Tw。 RD恢复高电平,结束读周期。
- 8086 发出地址锁存使能信号
- 关键组件: 8086 通过系统总线与其他芯片(如内存、I/O 端口控制器)通信。总线包括:
-
段式内存管理:
- 物理地址计算: 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。
-
指令执行流水线:
- 总线接口单元 (Bus Interface Unit - BIU): 负责所有的总线操作(取指令、取操作数、写结果到内存/I/O)。它在执行单元工作时,预取后续指令到指令队列(6 字节)。
- 执行单元 (Execution Unit - EU): 负责指令译码和执行。它从 BIU 的指令队列中读取指令,进行译码,执行算术逻辑运算,并管理寄存器状态。它不直接访问系统总线。
- 流水线操作原理: 这是 8086 性能提升的关键。
- BIU 从内存读取指令字节(通常是连续的)并放入指令队列(一个 6 字节的先进先出缓冲区)。
- EU 从指令队列头部读取指令字节,进行译码和执行。
- 关键点: 在 EU 正在执行上一条指令时(不需要访问总线),BIU 可以(且通常会)在总线上有空闲时(或根据队列状态)预取下一条或多条指令。 只要队列非空,EU 就能持续工作。
- 这样,取指操作和指令执行操作在某种程度上并行进行,减少了 CPU 等待指令的时间(相对于顺序取一条执行一条的方式),提高了效率。
- 流水线冲突与暂停: 当 EU 执行需要访问内存或 I/O 的操作数(比如
MOV AX, [DI])时,它会请求 BIU 执行一个总线周期。此时 BIU 会暂停取指,优先服务 EU 的请求(这会导致流水线“堵塞”或“气泡”)。类似地,分支指令(JMP,CALL等)可能导致指令队列中的预取指令失效,需要 BIU 重新从目标地址开始取指,也会中断流水线。但在顺序执行代码时,流水线显著提升了性能。
-
中断处理:
- 类型: 8086 支持硬件中断(通过
INTR引脚或NMI引脚)和软件中断(INT n指令)。 - 中断向量表: 内存最低的 1KB (
00000H-003FFH) 区域是一个包含 256 个入口 的中断向量表。每个入口占 4 字节(即一个远指针),其中低字是 偏移地址 (IP),高字是 段基地址 (CS)。 - 处理过程:
- 当 8086 在
INTR引脚上接收到一个有效中断请求(INTR高电平且IF = 1)或在NMI引脚(不可屏蔽)接收到上升沿中断请求时,会在完成当前指令后处理中断。 - 执行中断应答周期(
INTA)。 - 从中断源(通常是外部中断控制器如 8259A)获得一个 8 位的中断类型号
n。 - 将当前的
FLAGS、CS和IP压入堆栈 保存现场。 - 从中断向量表的
4 * n地址处取出 4 字节的中断服务程序入口地址(先取出IP,再取出CS)。 - 将
IF和TF标志位清零(除非是软中断,软中断不自动清IF)。 - 跳转到新的
CS:IP地址开始执行中断服务程序 (ISR)。 - ISR 执行完毕时,使用
IRET指令从堆栈中弹出保存的IP、CS和FLAGS,恢复到被中断的程序继续执行。
- 当 8086 在
- 非屏蔽中断 (NMI) 优先级最高且不可通过
IF禁止,通常用于处理严重错误(如电源故障)。 - 软件中断 (
INT n) 通过指令触发,中断类型号n由指令指定。
- 类型: 8086 支持硬件中断(通过
-
操作模式 (最小/最大模式):
- 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 可以通过
总结:
8086 微处理器的工作方式是一个复杂的系统:
- 它通过 复用引脚的分时共享方式 在 20 位地址总线和 16 位数据总线 上执行严格时序控制的 总线操作。
- 利用 段寄存器和偏移地址的结合 来访问 1MB 的物理内存空间。
- 通过 总线接口单元 (BIU) 和 执行单元 (EU) 的分工合作,特别是 指令队列缓冲的引入,实现了指令执行流水线,显著提升了处理效率。
- 通过 基于中断向量表 的架构响应和处理硬件和软件中断。
- 支持 最小 和 最大 两种系统配置模式以满足不同复杂度的应用需求。
这种设计在 16 位时代提供了强大的性能和灵活的扩展性,其核心概念(特别是分段模型,虽然后期发展出了保护模式等更复杂的机制)在后续的 x86 处理器家族(80286, 80386, ... 直到现代的 Core i 系列)中被继承和发展。
嵌入式微处理器与应用
嵌入式微处理器与应用(嵌入式开发环境的构建包括几部分内容)-该文档为嵌入式微处理器与应用讲解文档,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看………………
资料下载
佚名
2021-07-30 09:59:26
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
7天热门专题
换一换
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- dtmb信号覆盖城市查询
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机