当前位置: 首页 > news >正文

微机原理与接口技术知识点总结——8086微处理器ddddd

引言

8086是Intel公司生产的字长16位的定点微处理器,内部寄存器、算术逻辑单元和外部数据引脚都是16位,支持8位/16位的符号数/无符号数的算术运算和数据传送,8086提供20位地址引脚(存储器周期20位地址有效;I/O地址位16位有效),可寻址1MB存储器空间和64KB I/O地址空间,因而可兼容8位微处理器8085和他的外围电路。本章主要介绍8086的内部结构,外部引脚、存储器组织形式和总线时序。

微处理器不是CPU。

1、内部结构

在内部功能逻辑上可以分为两个处理单元:总线接口单元和执行单元。

这两个单元虽然能直接相互作用,但是绝大部分功能还是作为两个异步操作的独立单元完成。总线接口单元完成物理地址形成、指令获取和排队、操作数存取及基本总线控制功能。执行单元从总线接口单元的指令队列接受指令,向总线接口单元提供定位操作数的偏移。存储器操作数通过总线接口传送到执行单元处理,执行单元的处理结果再通过总线接口单元传送到存储器存储。

8086是基于总线接口单元和执行单元异步独立工作的形式,设计有三条内总线:A-BUS用于执行单元内部的数据传送;B-BUS用于向地址加法器传送段地址;C-BUS用于总线接口单元内部的数据传送。

结构特点

1、流水线(pileline)

根据第一章所述,指令的执行周期称为指令周期,指令周期包括取指令和执行周期两个阶段。取指周期需要通过总线从存储器中取指令;执行周期中,如何需要存取操作数,就需要访问总线;如果执行周期不需要存取操作数,总线处于空闲,这段空闲时间称为死时。

传统计算机的指令执行是取一条指令执行一条指令,不断重复这个过程,取值和执行是串行的,如图所示。

8086总线接口单元可以在执行周期不存取操作数的时间预取后续指令,即总线接口单元的指令预取和执行单元的指令执行交替并行执行,这种机制称为流水线。流水线机制减少了死时的出现。通过改变总线的利用率来提高微处理器的效率,这已经称为现代微处理器广泛使用的一种技术。

8086分为总线接口单元和执行单元两个异步工作的部分,指令的执行形成两条流水线,如图所示

2、存储器的分段寻址

8086是一个字长16为的微处理器,一次处理的数据最长16位,所以在处理器上的寄存器都是16位,但是为了支持更大的存储空间,8086地址总线设计为20位,依靠16位的寄存器无法提供20位地址,因此8086在设计上采用了分段寻址的机制。

这里有几个概念,

存储器中的物理地址

就是20位的二进制数据,每个物理地址唯一对应存储器中的唯一一个确定的寄存器,比如说20位的物理地址,那么就是有2的20次方个寄存器,2的20次方个唯一的物理地址,也就是1MB.

物理地址是8086寻址实际存在的物理存储器而从20位地址总线发出的地址

然后分段寻址就是微处理器选择用两个寄存器去表示我们的物理地址。

定义就是:把整个存储器地址空间划分为几个段,每个段有20位的地址来定位,这个段内的存储器单元由这个单元在段内的偏移来定位。分段寻址的过程如下图,8086的这种分段地址也成为逻辑地址。记为segment:offset。segment是第一个及存储,由段寄存器(CS.DS.SS.ES)之一提供。offset位16位,也就是偏移地址。我们进行取指操作的时候,由指令指针寄存器(IP)提供;如果是执行执行中访问存储器操作数,则在指令中给出。

就是两个16位的地址去表示一个20位的地址。

要访问物理存储器,必须把逻辑地址转换为物理地址,如图2.5所示。首先16位的段寄存器表述的地址segment左移4位形成20位的段地址,然后加上16位的偏移地址,就形成了20位物理地址。这样,8086通过两个16位的分段地址可以定位任意的存储器单元。

由于段寄存器提供16位的地址,因此最多可以指向2的16次方个段,由于offset也是16位,因此每个段最大包含2的16次方个连续的存储器单元。

3、I/O地址空间

8086采用独立寻址的方法解决I/O端口寻址,即通过pin28提供一个专门的状态信号M/IO非区分是存储器地址空间和I/O地址空间。不同于寻址存储器,I/O地址不需要分段寻址,可以只有一个寄存器给出。

总线接口单元 BIU,BIU是由什么组成的

1、段寄存器

提供段地址的,8086设计了4个段寄存器,指向4种不同的段,这样在程序设计师,可以将不同的东西放到不同类别的段里,使得程序结构更合理,数据访问更快捷。

2、地址加法器

将分段地址转化为物理地址,用于存储器接口访问实际的物理存储器。

3、指令指针寄存器

IP 存储代码段内

下次有空再弄

http://www.xdnf.cn/news/449101.html

相关文章:

  • C++红黑树
  • Redis的Pipeline和Lua脚本适用场景是什么?使用时需要注意什么?
  • PH热榜 | 2025-05-14
  • 《AI大模型应知应会100篇》第62篇:TypeChat——类型安全的大模型编程框架
  • 【面试 · 五】CSS个别重点总结
  • 论系统安全架构设计及其应用~系统架构师论文
  • 三种常见接口测试工具(Apipost、Apifox、Postman)
  • 【NLP 计算句子之间的BLEU和ROUGE分数】
  • 代理IP与VPN的区别,如何根据需求选择?
  • Vector和list
  • FastAPI + OpenAI 模型 的 GitHub 项目结构模板
  • OPC UA + ABP vNext 企业级实战:高可用数据采集框架指南
  • 基于OAuth2+SpringSecurity+Jwt实现身份认证和权限管理后端服务
  • 自注意力机制(Self-Attention)前向传播手撕
  • 记录一次git提交失败解决方案
  • 某智能家电龙头,社招 校招全面应用 AI 面试的创新实践
  • 企业应收账款管理体系构建指南
  • CN 第二章 应用层-单选题
  • day 16 Numpy数组与Shap值的深入理解
  • 让 Cursor 教我写 MCP Client
  • 生成本地package
  • 什么是生产管理三大核心计划机制,需求、物料、生产计划的区分与实施方法
  • MySQL 学习(九)bin log 与 redo log 的区别有哪些,为什么快速恢复使用 redo log 而不用 bin log?
  • Hadoop集群故障节点隔离操作指南
  • 【行为型之策略模式】游戏开发实战——Unity灵活算法架构的核心实现策略
  • AE FC77X77XXFC78X78XXFC79X MFC质量流量计 Mass Flow Controllers user manual
  • 电流检测放大器的优质选择XBLW-INA180/INA181
  • 半成品的开源双系统VLA模型,OpenHelix-发表于2025.5.6
  • MySQL库级管理:数据库管理与存储引擎剖析
  • 2002-2024年地级市新质生产力词频统计数据(46个关键词词频)