8086微处理器内部数据处理示意图
8086微处理器内部数据处理流程可以用以下示意图描述,重点突出其双模块结构(总线接口单元BIU + 执行单元EU)以及指令与数据在两者间的流动:
+------------------------------------------------------------------------------------------------------+
| 8086微处理器核心 |
| +---------------------+ 内部高速通信总线 +-----------------------+ |
| | 总线接口单元 (BIU) | <---------------------------> | 执行单元 (EU) | |
| | +-----------------+ | | +-------------------+ | |
| | | 指令队列缓冲器 |◄--- (6字节FIFO先进先出队列) ---►| 指令译码器 (ID) | | |
| | | (Instruction | | | | (Instruction | | |
| | | Queue Buffer) | | ▲ ▼ | | Decoder) | | |
| | +--------┬---------+ | | | | +---------┬--------+ | |
| | | | | | | | | |
| | +--------▼---------+ | | | | +---------▼--------+ | +-----------------+ |
| | | 段寄存器 | | | | | | 寄存器组 |◄| 运算器 (ALU) | |
| | | (CS, DS, SS, ES) | | | | | | (AX, BX, CX, DX, | | +---------------+ |
| | +--------┬---------+ | | | | | SI, DI, SP, BP, | | |算术逻辑单元 | |
| | | | | | | | IP, Flags etc.) | | |(核心计算单元) | |
| | +--------▼---------+ | | | | +---------┬--------+ | |执行加减乘除、移位、| |
| | | 地址加法器 | | | | | │ | |逻辑运算(AND, OR..)| |
| | | (Address Adder) | | | | | +---------▼--------+ | +---------▲-------+ |
| | +--------┬---------+ | | | | | 控制电路 | | | |
| | │ | | | | | (Control Circuit) | | +---------▼-------+ |
| | +--------▼---------+ | | | | +---------┬--------+ | | 标志寄存器 | |
| | | 外部总线控制 | | | | | │ | |(FLAGS - 状态标志)| |
| | | (Bus Control | | | | | ▼ | +-----------------+ |
| | | Logic) | | | | (微操作序列执行) | |
| | +--------┬---------+ | | | | |
| +----------|-----------+ +-----------------------+ |
| | |
| ▼ (20位物理地址、数据、控制信号) |
+------------------------------------------------------------------------------------------------------+
|
▼
+------------------------------------------------------------------------------------------------------+
| 系统总线 (外部) |
| |
| +----------------+ +---------------+ |
| | 内存 | | I/O端口 | |
| | (存储指令和数据) | | (如外设接口) | |
| +----------------+ +---------------+ |
| |
+------------------------------------------------------------------------------------------------------+
关键组成部分说明 (中文):
-
总线接口单元 (BIU - Bus Interface Unit):
- 段寄存器 (CS, DS, SS, ES): 存储代码、数据、堆栈和附加段的段基址。
- 地址加法器 (Address Adder): 将段寄存器中的段基址(左移4位) 与 EU 或指令提供的偏移地址相加,生成访问内存所需的20位物理地址。
- 指令队列缓冲器 (Instruction Queue Buffer): 一个6字节的FIFO队列。BIU 利用 EU 执行指令的空闲时间,预先从内存读取后续指令并存放在这里。这是8086流水线思想的雏形。
- 外部总线控制逻辑 (Bus Control Logic): 管理和驱动与外部的通信(读/写内存、I/O端口)。生成总线控制信号(如
RD,WR,M/IO)。
-
执行单元 (EU - Execution Unit):
- 寄存器组 (Register Set): 包括:
- 通用寄存器: AX, BX, CX, DX (每个16位,又可当两个8位用:AH/AL, BH/BL...)
- 指针寄存器: SP (堆栈指针), BP (基址指针)
- 变址寄存器: SI (源变址), DI (目的变址)
- 指令指针 (IP - Instruction Pointer): 存放下一条要执行的指令在代码段内的偏移地址(由BIU自动更新)。
- 标志寄存器 (FLAGS): 存储运算结果的状态信息(如零标志ZF, 进位标志CF, 符号标志SF, 溢出标志OF等)。
- 运算器 (ALU - Arithmetic Logic Unit): 执行所有算术运算(加、减、乘、除)和逻辑运算(与、或、非、异或)以及移位/循环操作。是实际进行数据加工的核心部件。
- 指令译码器 (ID - Instruction Decoder): 从指令队列中取出指令,解码成 EU 内部执行所需的控制信号。
- 控制电路 (Control Circuit): 根据译码器输出的信号,产生协调 EU 内部各部件(寄存器、ALU等)工作的微操作时序信号。
- 寄存器组 (Register Set): 包括:
数据处理流程 (核心思想):
-
取指令 (BIU):
- BIU 根据 CS(代码段寄存器) 和 IP(指令指针) 计算出下一条指令的物理地址。
- 通过外部总线从内存中读取指令字节。
- 将读取到的指令字节顺序存入指令队列缓冲器 (FIFO)。
-
指令预取 (BIU): BIU 会尽可能保持指令队列是满的。当 EU 开始执行队列中的指令时,BIU 会检测队列是否有空位,并利用总线空闲周期提前读取后面的指令填充队列。这提高了整体效率。
-
指令译码 (EU):
- 执行单元 (EU) 从指令队列的头部取出指令字节。
- 指令译码器 (ID) 对取出的指令进行解码,确定操作码(做什么操作)和操作数(操作的数据在哪里/是什么)。
-
指令执行 (EU):
- 根据译码结果,控制电路产生具体的微操作控制序列。
- 如指令需要操作数:
- 操作数在寄存器中:直接从寄存器组读取。
- 操作数在内存中:EU 请求 BIU 从内存中读取数据(将偏移地址发送给 BIU,BIU 结合段寄存器生成物理地址并读取)。
- 操作数是立即数:包含在指令代码中,直接从指令队列获取。
- ALU 执行指令要求的计算或逻辑操作。
- 结果可能:
- 存回寄存器组。
- 通过 EU 请求 BIU 写回内存 (EU提供偏移地址,BIU生成物理地址并写入)。
- 更新标志寄存器 (FLAGS) 的状态位 (ZF, CF, SF, OF等)。
- 对于分支指令(如JMP, CALL, LOOP, Jcc等):
- 结果导致需要跳转到一个新地址执行。
- EU 会修改 IP (指令指针) 的值(也可能修改 CS)。
- 指令队列被清空(因为后续指令无效)。
- BIU 立即从新的 CS:IP 地址开始重新取指令填充队列。
-
并行工作:
- 关键点: 在8086设计中,BIU 和 EU 大部分时间能并行工作。
- EU 在执行当前指令时,BIU 在访问总线(内存或I/O)取下一个指令或操作数,或写回数据。
- 指令队列是实现这种并行的核心机制:它隔离了 BIU(忙于处理总线事务)和 EU(忙于执行指令)。只要队列不满且 EU 在执行中,BIU 就能不断填充队列;只要队列不空且 EU 空闲,EU 就能取指令执行。
总结:
8086 的处理核心是分离的 BIU 和 EU,通过指令队列连接。BIU 负责内存/IO访问(取指令、读写数据),生成物理地址。EU 负责指令译码和执行(执行计算、修改寄存器/标志)。指令队列实现了初步的流水线,允许 BIU(取指)和 EU(执行)大部分时间重叠工作,显著提高了处理效率。ALU 是 EU 内部进行实际数据运算的核心部件。段寄存器+偏移地址的组合是8086寻址1MB内存的关键。
盛显科技:拼接处理器连接示意图
大屏幕图像拼接墙体上显示。处理过程完全硬件化,不需要电脑和启动软件等操作,非常简便。画面无延时,无拖尾现象, 自然流畅,画质细腻,可支持15x15的液晶屏拼接。 (拼接处理器连接
2024-06-28 01:11:55
16位和32位微处理器的相关资料推荐
第2章 16位和32位微处理器微处理器的性能指标最主要的是以下两项:1.字长2.主频一、16位微处理器80868086是Intel系列的16位
PLC的扫描工作过程和PLC的I/O处理示意图
五个阶段 ★ 整个过程扫描执行一遍所需的时间称为扫描周期 ★ 扫描周期与CPU运行速度、PLC硬件配置及用户程序长短有关。 ★ 典型值为1~100ms PLC I/O处理示意图
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 如何进行编码器的正确接线?接线方法介绍
- 什么是场效应管?它的作用是什么?
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- amoled屏幕和oled区别
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 苹果笔记本macbookpro18款与19款区别
- 通讯隔离作用
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机