首页 > 其他分享 >8088/8086微处理器与总线学习笔记总结

8088/8086微处理器与总线学习笔记总结

时间:2023-10-13 19:13:43浏览次数:41  
标签:8086 引脚 8088 总线 地址 指令 寄存器 CPU

目录

一、微处理器与总线

1.微处理器的概述

首先要记得微处理器(CPU)是由下面三个部件组成的:

运算器、控制器、寄存器组,其中,寄存器组可以看成是运算器部件中的一个部分。

微处理器(CPU)是计算机系统的核心部件,控制和协调着计算机系统的工作。

1.1 运算器

运算器由算术逻辑单元ALU通用或专用寄存器组内部总线3个部分组成。

运算器核心功能是:实现数据的算术运算和逻辑运算

其中算术逻辑单元ALU的内部包括负责加、减、乘、除运算的加法器以及实现与、或、非、异或运算的逻辑功能部件。

运算器可分为单总线结构、双总线结构和三总线结构。

1.2 控制器

控制器主要的功能是控制程序的执行,是整个系统的指挥中心。

它有如下的几个功能:

1.2.1 指令控制

根据指令所在的地址按顺序或在遇到转移指令时按照转移地址取出指令,分析指令(指令译码),传送必要的操作数,并在指令结束后存放运算结果。

1.2.2 时序控制

指令的执行是在时钟信号的严格控制下进行的,一条指令的执行时间称为指令周期,不同的指令的指令周期是不一样的,而机器周期中包含多少个节拍也是不一样的,这些时序信号用于计算机的工作基准。

1.2.3 操作控制

操作控制是根据指令,确定在指令周期的各个节拍中要产生的微操作控制信号,以便完成各条指令的操作过程。

控制器内部主要由下面几个部分组成:

1.程序计数器PC

用来存放下一条要执行的指令在存储器中的地址

2.指令寄存器IR

存放待执行的指令

3.指令译码器ID

将指令进行翻译

4.时序控制部件

产生计算机工作所需的各种时序信号

5.微操作控制部件

二、8086/8088微处理器

其中重点说的是8086CPU。

8086和8088是同时代的微处理器,都属于第三代CPU,具有完全系统的指令系统,但是8088的外部总线宽度为8位,8086的数据总线的宽度为16为。但是它们内部的总线宽度都是为16位的。

1.8086/8088CPU的指令特点

1.1 指令流水线

在程序的执行过程中,CPU都是按照下面的顺序来执行的:

1.取出下一条指令

2.分析指令(译码)

3.读操作数(根据需要)

4.执行指令(包括算术逻辑运算、I/O操作、数据传送、控制转移)

5.写结果(根据需要)

8088/8086的内部电路大致分为两大部件:执行单元(EU)和总线接口单元(BIU)。

执行单元EU负责分析指令和执行指令。

总线接口单元BIU负责取指令、取数据和写结果。

两个单元能够独立地完成各自相应的工作,在大多数情况下,取指令操作和执行指令操作可以重叠进行。重叠进行就是一个并行流水线

1.2 内存的分段管理技术

将8086/8088内部分为多个逻辑段,每个逻辑段最大为64K,为每个段设置段地址和偏移地址。

1.3 支持多处理器系统

在8086/8088中有一个引脚可以控制工作模式为最小或者最大方式。

最小模式:单处理器模式,所有信号又8086直接产生,不支持DMA。

最大方式:多处理器模式,能支持系统中的多个处理器,由总线控制器辅助提供控制信号。

2.8088/8086的外部引脚及其功能

image

image

两个CPU的外部引脚都差不多一样,但是还是一些地方有所不同,比如34号引脚,28号引脚

34号引脚。86是BHE#/S7,而88是SS0#,对于86来说,34号引脚主要是控制AD0~AD15的使用情况的,但是单考这个引脚是不可以的,还要结合A0引脚

BHE# A0 描述 启动引脚
0 0 两个字节 AD15~AD0
0 1 奇地址高位 AD15~AD8
1 0 偶地址低位 AD7~AD0

而88的SS0引脚与IO/M#DT/R#信号决定了最小模式下当前总线周期的状态:

IO/M# DT/R# SS0# 操作
1 0 0 发中断响应信号
1 0 1 读IO端口
1 1 0 写IO端口
1 1 1 暂停
0 0 0 取指令
0 0 1 读内存
0 1 0 写内存
0 1 1 无作用

可以发现,如果是读的操作,那SS0都是非有效位,但是写或者是取的操作,那么SS0就是有效的。

28号引脚中,8088和8086虽然看起来相同,但是它们高低电频的有效是不一样的

CPU IO/M=0 IO/M=1
8086 IO M
8088 M IO

A16/S3~A19/S6是地址状态复用的引脚,三态输出。

其中S3~S6是状态信号线,S6恒等于0,S5指示中断允许标志位IF的状态,S4S3的组合指示CPU当前正在使用的段寄存器:

S4 S3 当前正在使用的段寄存器
0 0 ES
0 1 SS
1 0 CS或未使用任何段寄存器
1 1 DS

AD0`AD7`和`AD8`AD15,其中8088只有0到7。这是地址、数据分时复用的双向信号线,也是有三态。

其中,当ALE引脚为高电平时,这些引脚上传输的是地址信号;当DEN#为低电平时,这些引脚上传输的是数据信号。

WR#这个引脚是写信号输出,三态,当这个引脚输出低电平时,表示CPU正在对存储器或者IO口进行写操作。

DT/R#表示数据传送方向控制信号:

电平 执行的操作
1 CPU向存储器或IO接口发送数据
0 存储器或IO接口向CPU发送数据

ALE引脚是地址锁存器信号,当它有效时,表明CPU地址线上有有效信号。

DEN#数据允许信号。

RD#读选信号,当有效时,表明CPU正在读取存储器或者IO接口。

READY外部同步控制输入信号,这个位置是又外部被访问的内存或IO设备发出的相应信号,当有效时,表示IO设备或存储器准备就绪。如果没有准备好,CPU的T3周期采样READY信号,若还是一直没准备好,那CPU会自动插入等待周期Tw,这个Tw一个或者多个,直到READY就绪。

INTR可屏蔽中断请求输入信号。

TEST#测试信号输入引脚。

NMI非屏蔽中断请求输入信号。

RESET系统复位输入信号,这个信号需要在4个时钟周期保持有效才能进行复位,复位后CPU内部段寄存器的状态如下:

内部寄存器 内容
CS FFFFH
DS 0000H
ES 0000H
SS 0000H
IP 0000H
FLAGS 0000H
其余寄存器 0000H
指令队列

INTA#中断响应信号输出,当CPU对中断请求信号INTR的响应,这个引脚有效。

HOLD总线保持请求信号输入。

HOLA总线保持响应输出。

CLK时钟信号输入引脚。

上面都是最小系统的时候,因为考试只考最小系统的引脚,所以这里重点讲的就是最小系统,最大系统不考。

3.8086/8088的功能结构

这主要讲的是内部的执行单元EU和总线接口单元BIU的一些概念和CPU内部的一些寄存器组还要标注寄存器FLAGS,很重要。

3.1内部结构

86和88内部极为相似,但也有不同,88的指令队列只有4位,而86的指令队列有6位,其余的都是相同的。

image

上面的是88的内部结构

image

下面的是86的内部结构,可以看到,出来指令队列的长度以外,其余的都是一样的。

总线接口单元BIU主要实现CPU与存储器或IO接口之间的数据传送,它由地址加法器、段寄存器、总线控制逻辑、指令队列以及内部暂存寄存器组成。

执行单元EU主要的功能是:执行指令、分析指令、暂存中间运算结果并保留结果的特征,它由通用寄存器、暂存寄存器、算术逻辑单元ALU、标志寄存器FLAGS和EU控制部件组成。

他们工作如下:

1.EU从执行队列中取出指令后,指令队列出现空字节时,那么BIU就自动执行一次取指令周期,讲取出来的指令放入指令队列中。

2.如果EU需要数据时,BIU根据EU提供的地址从给定的地址去寻找出数据供EU进行使用。

3.运算结束后,BIU会将需要的数据送入指定的内存单元或外设中。

4.如果指令队列为空,EU需要进行等待,直到有指令为止。

5.当BIU正在取指令,EU发出访问总线的请求,则必须等BIU取指令完毕后该请求才能得到响应。

3.2 内部寄存器

88和86都有14个16位的寄存器,按照功能可以分为:通用寄存器、段寄存器、控制寄存器。

3.2.1 通用寄存器

通用寄存器又分为数据寄存器、地址指针寄存器和变址寄存器。

数据寄存器有4个:

寄存器名 名称 通常用法
AX 累加器 用来存放算术逻辑运算的操作数,一般IO指令都使用累加器与外设接口来传送信息
BX 基址寄存器 常用来存放访问内存时的基地址
CX 计数寄存器 在循环和串操作指令中用作计数器
DX 数据寄存器 在寄存器间接寻址的IO指令中存放IO端口的地址

这4个寄存器都可以拿来存放数据,只不过它们有各自的使用习惯,就是那些用法,用特点的功能使用的速度会很快。

而数据寄存器可以分为两个8位的寄存器:

寄存器名1 寄存器名2 名称
AH AL 累加器
BH BL 基址寄存器
CH CL 计数寄存器
DH DL 数据寄存器

地址指针寄存器只有两个,SP和BP

寄存器名 名称 用法
SP 堆栈指针寄存器 永远指向堆栈的栈顶
BP 基址指针寄存器 一般存放内存的基地址,通常和SS(堆栈段寄存器)一起使用

它们两个也可以存放数据,但是一般用来存放内存的地址。

变址寄存器只有两个,DI和SI:

寄存器名称 名称 用法
DI 目的变址寄存器 索引指针
SI 源变址寄存器 索引指针

3.2.2 段寄存器

寄存器名 名称
CS 代码段寄存器
DS 数据段寄存器
SS 堆栈段寄存器
ES 附加段寄存器

3.2.3 控制寄存器

寄存器名称 名称
IP 指令指针寄存器
FLAGS 标志寄存器

IP指针寄存器中用来存放预取指令的偏移地址。

FLAGS标志寄存器是一个16位的寄存器,但只能使用其中的9位,这9位中有6个状态标志位和3个控制标志,状态和控制标志位如下:

标志位 名称 用法
CF 进位标志位 当CF=1时,则表示最高位向前有进(借)位
AF 辅助标志位 当AF=1时,则表示D3向D4有进(借)位。
PF 奇偶标志位 当运算结果的低8位中1的个数为偶数时,PF=1。
SF 符号标志位 如果运算的结果是正数,那SF=0。
ZF 零标志位 如果运算的结果为0,则ZF=1。
OF 溢出标志位 当运算的结果超出了范围,那么OF=1。
控制位 名称 用法
IF 中断允许标志位 IF=1时,使CPU可以响应可屏蔽中断请求。
TF 陷阱标志位 TF=1时,激活CPU的调试特性,使CPU处于单步执行指令的方式。
DF 方向标志位 DF=1,按照减地址方式进行,从高地址开始,每进行一次操作,地址减一。DF=0,按照增地址方式进行,从低地址开始,每进行一次,地址增1。

3.3 存储器组织

3.3.1 存储器地址空间

86和88的储存是以字节为地位组织的,它们具有20条地址线,可寻址的存储器空间为220,每个字节对应一个唯一的地址,地址范围为0~220 - 1。

存储器存取的基本单元为字节,存储器内两个连续的空间称为一个字,也就是2个字节=1个字,字的低位字节存放在低地址中,高字节存放在高地址中,字的地址为低字节的地址,各位的编号从0开始。

86允许字从任何地址开始,如果字的地址为偶地址时,也就是用偶数的地址开始,称字的储存是对准的,访问一个对准的字需要一个总线周期。

如果字的地址为奇地址开始,那么称这个字是非对准的字,访问一个非对准的字需要两个总线周期。

3.3.2 物理地址和逻辑地址

88和86外部有20根地址线,可以访问220的内存,但是在内部只有16根地址总线,只能访问216的内存,如果要让它能访问2^20的内存,88和86采用了地址空间分段的方法来解决做个问题,就是将1M空间分为若干个64K的段,然后用基地址加上偏移地址来访问物理存储器。

各逻辑段的起始地址的最低4位必须为0.

为了得到一个物理地址,需要使用下面的公式来计算:

物理地址=段地址*16+偏移地址

段地址和偏移地址的组合又称为逻辑地址,表示形式为:xxxxH:yyyyH,其中xxxxH是段地址,yyyyH是偏移地址。

比如有下面的逻辑地址:3A00H:12FBH,那么它指向的物理地址为:3B2FBH。

3.3.3 段寄存器的使用

分段的话也可以将信息按照特征进行分段处理,按照信息特征可分为:

  • 数据段--用来存放数据和运算结果
  • 代码段--用来存放程序的指令代码
  • 堆栈段--用来传递参数、保持数据和状态信息
  • 附加段--用来存放数据和运算结果

对于访问不同的内存段所使用的段寄存器和偏移地址的来源有一些具体约定:

内存访问类型 默认段寄存器 可重设寄存器 段内偏移地址的来源
取指令 CS IP
堆栈操作 SS SP
串操作之源串 DS ES、SS SI
串操作之目标串 ES DI
BP用作基址寻址 SS ES、DS 按寻址方式计算得到有效地址
一般数据存取 DS ES、SS 按寻址方式计算得到有效地址

3.4 工作时序

时序可分为两种不同的粒度:时钟周期和总线周期。

一条指令的执行需要若干个总线周期才能完成,而一个总线周期又由若干个时钟周期构成。

微处理器在运行过程中是按照一个统一的时钟一步一步的执行每一个操作的,每个时钟脉冲的持续时间就称为一个时钟周期,时钟周期越短,CPU执行速度越快。

一个典型的总线周期基本包含4个时钟周期。

一个总线周期=4个时钟周期

4.总线

4.1 概述

总线是一组信号线的集合,是计算机系统各部件中间传输地址、数据和控制信息的公共通路。

总线包括一组导线和相关控制、驱动电路组成,每一条导线都能传输一位二进制信息。

总线上连接的部件过多时,会减低信号响应的实时性。

4.2 总线的分类

总线可以按照传输的类型和层次结构来分类。

总线按照传输信息的类型可分为:数据总线DB、地址总线AB、控制总线CB。

按照层次结构可分为:前端总线、系统总线和外设总线。

4.3 总线的结构

总线结构可分为两种:单总线结构和多总线结构。

单总线结构是将计算机的各个部件均挂接到一条总线上,这种接法的优点是控制简单、扩充方便,缺点是数据传输的效率和速度收到了限制。

多总线结构又分为:双总线结构、多总线结构。

双总线结构又分为面向CPU的双总线结构和面向存储器的双总线结构。

面向于CPU的双总线结构:

image

面向于存储器的双总线结构:

image

4.4 总线的操作

总线操作的特点:任意时刻,总线上只能允许一对设备(主控设备和从属设备)进行信息交换。

总线周期可分为5个步骤:

  • 总线请求
  • 总线仲裁
  • 寻址
  • 传送数据
  • 传送结束

4.5 总线的主要性能指标

  • 总线带宽
  • 总线位宽
  • 总线的工作频率

4.6 总线的基本功能

  • 总线传输同步
  • 总线仲裁控制
  • 出错处理
  • 总线驱动

标签:8086,引脚,8088,总线,地址,指令,寄存器,CPU
From: https://www.cnblogs.com/Lavender-edgar/p/17762932.html

相关文章

  • 1553B总线测试仪
    1553B总线测试仪-天津光达航电科技有限公司在测试模拟1553B总线的标准化测试仪器,该仪器是通过简单直观的管理工具实现复杂的MIL-STD-1553的测试及模拟功能,主要包括对MIL-STD-1553B总线的在线仿真测试实时显示、数据分析、数据存盘、数据回放等功能,满足了设备检测和故障定位的需要,......
  • Vue学习笔记(十):全局事件总线
      之前博客中介绍了prop和调用事件的方式在父-子组件之间进行数据,这种方式在只有一层嵌套层时可以使用,但是路过存在多层嵌套,多层多个“兄弟”组件之间传递数据,就非常麻烦。对此,vue中提供了一种全局事件总线机制,数据传递是通过一个空的Vue实例作为中央事件总线,通过它......
  • C#应用 - 事件总线
    目录前言1,简介2,设计2.1设计思路2.2设计实现2.2.1IEventData2.2.2EventBus2.2.3用起来3,问题3.1起缘3.2改造3.3用起来前言发布订阅模式很常见,每个发布者和订阅者之间都搭建了一条小线路,随着功能越来越多,事件和委托就会满天飞,就像私拉电线的蜘蛛网一样。这时候可能需要一种......
  • 485 RS485总线
     485是两线传输的,9600BPS的时候,1000米。A即正端,B是负端,A比B高5V,即1,B比A高5V,即0.=========================直接对接A(A+)、B(B-)、G(GND),但是G请不要接到FG上,请连接到设备的SG、24VG、0V等信号接地线,所有设备、接口的FG只能连接到一起。需要注意的是,485总线的AB端并不是......
  • 消息总线 —— SpringCloud Bus
    Bus简介SpringCloudBus是SpringCloud体系内的消息总线,支持RabbitMQ和Kafka两种消息中间件。所谓消息总线,简单理解就是一个消息中心,众多微服务实例都可以连接到总线上,实例可以往消息中心发送或接收信息,例如:实例A发送一条消息到总线上,总线上的实例B可以接收到信息(实......
  • $nextTick函数的用法以及全局事件总线
    全局事件总线的目的是可以实现任意组件之间的通信。这里需要涉及到原型链的知识。在Vue里面,我们知道运行一个完整的项目是由若干个VueComponents组件和一个AppVueComponent组件加上一个Vue的实例对象而vc组件在通过this去获取属性的值时,首先会从vc实例对象里面找,没有的话就去vc......
  • 企业服务总线
    企业服务总线(EnterpriseServiceBus,ESB)是由中间件技术实现并支持SOA的一组基础架构,支持异构环境中的服务、消息以及基于事件的交互,并且具有适当的服务级别和可管理性。通过使用ESB,可以在几乎不更改代码的情况下,以一种无缝的非侵入方式使企业已有的系统具有全新的服务接口,并能够......
  • 基于channel的异步事件总线
    生成者/消费者概念编程模型通道是生成者/使用者概念编程模型的实现。在此编程模型中,生成者异步生成数据,使用者异步使用该数据。换句话说,此模型将数据从一方移交给另一方。尝试将通道视为任何其他常见的泛型集合类型,例如List。主要区别在于,此集合管理同步,并通过工厂创建选项......
  • 8086汇编指令编码规范
      学习MASM汇编时有时会被各种语法弄混,其实很多指令的规则是很简单的,但编译器为了方便添加了伪指令来帮助编译器更准确的生成机器代码。为了深入理解伪指令背后的逻辑,特将8086的编码规则记录如下,以便随时参阅。  一、编码规范:                  ......
  • 迅为RK3568开发板驱动指南第六篇-平台总线
    文档教程更新至第六篇第1篇驱动基础篇第2篇字符设备基础第3篇并发与竞争第4篇高级字符设备进阶第5篇中断第6篇平台总线未完待续,持续更新中...视频教程更新至十一期第一期_驱动基础第二期_字符设备基础第三期_并发与竞争第四期_高级字符设备进阶第五期_中断第六期_平台总线第......