2

微处理器性能简介(8086) - 卓亦苇

 2 years ago
source link: https://www.cnblogs.com/zhuoblog/p/16323615.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

微处理器性能简介

微处理器职能:执行各种运算和信息处理,控制各个计算机部件自动协调地完成系统规定的各种操作

典型微处理器的主要性能指标
主频:微处理器的时钟频率;
外频:系统总线的工作频率;
倍频:微处理器主频与外频相差的倍数,主频=外屏*倍频

微处理器具有以下基本功能:
(1)指令控制:使计算机中的指令或程序严格按照规定的顺序执行。
(2)操作控制:将计算机指令产生的控制信号送往相应的部件,控制这些部件按指令的要求完成规定的工作。
(3)时间控制:使计算机中各类控制信号严格按照时间上规定的先后顺序进行操作。
(4)数据加工:对数据进行算术运算和逻辑运算等操作,或其他信息的处理。

Intel 8086微处理器的内、外部结构

Intel 8086微处理器是一种具有代表性的处理器,后续推出的各种微处理器均保持与之兼容。

  • 8086微处理器使用+5V电源
  • 40条引脚双列直插式封装
  • 时钟频率为5MHz~10MHz
  • 有16根数据线和20根地址线,可寻址的内存地址空间达1MB(220B)

2689754-20220529105856937-2058228068.png

8086微处理器的特点

  • 采用并行流水线工作方式,通过设置指令预取队列实现
  • 对内存空间实行分段管理,实现对1MB空间的寻址
  • 支持多处理器系统;工作于最小模式和最大模式两种工作模式。

2689754-20220529110908522-32810154.png

指令执行部件EU

  • 算术逻辑运算单元ALU
    完成8位或16位的二进制算术运算和逻辑运算;
    运算结果送到通用寄存器或标志寄存器或写入存储器。
  • FR标志寄存器
    存放ALU运算后的结果特征或机器运行状态。
  • 数据暂存寄存器
    暂时存放参加运算的操作数,不可编程。
  • 通用寄存器组
    4个16位数据寄存器: AX、BX、CX、DX;
    4个16位地址指针与变址寄存器: SP、BP、SI、DI。
  • EU控制电路
    接收从BIU指令队列中取来的指令,经过指令译码形成各种定时控制信号,对EU的各个部件实现特定的定时操作。

总线接口单元BIU

根据EU的请求,完成CPU与存储器、I/O接口之间的信息传送。
提供从存储器取指令送指令队列或直接送EU执行;
从存储器或外设取数据送EU,或把EU操作结果送存储器或外设。

  • 4个16位段地址寄存器
    CS:代码段寄存器; DS:数据段寄存器; SS:堆栈段寄存器; ES:扩展(附加)数据段寄存器。
  • 16位指令指针寄存器IP
    存放下一条将要执行指令的偏移地址(有效地址EA);
  • 20位地址加法器
    将16位的逻辑地址变换成访存储器的20位物理地址,完成地址加法操作。
  • 6字节指令队列
    预存6个字节的指令代码。
  • 总线控制电路
    发出总线控制信号。 将8086CPU内部总线与外部总线相连。

8086功能上划分:执行部件EU;总线接口部件BIU

  • 当8086指令队列中有2字节空闲时,总线接口部件就自动将指令从内存中预取到指令队列缓冲器中。
  • 当EU部件要执行一条指令时,它就从指令队列头部取出指令,后续指令自动向前推进。
  • EU在执行指令中若需要访问内存或I/O设备,EU就向BIU申请总线周期,若BIU总线空闲,则立即响应,若BIU正在取一条指令,则待取指令操作完成后再响应EU的总线请求。
  • 遇到转移、调用及返回指令时,BIU就自动清除指令队列中已有内容,从转移、调用或返回的新地址开始,重新从内存中预读取指令并填充指令队列。
  • 这两部分既非同步工作方式,也不完全无关,而是互相配合工作的。

传统微处理器执行程序时先从存储器取出一条指令,然后读出操作数,最后执行指令。取指令和执行指令串行进行,取指令期间,CPU必须等待。

2689754-20220529114043151-1407212159.png

8086中取指令和执行指令分别由BIU和EU来完成,BIU和EU可并行工作。EU负责执行指令,BIU负责取指令、读出操作数和写入结果。大多数的情况下,取指令和执行指令可重叠进行。
8086中BIU和EU并行工作方式,减少了CPU为取指令等待的时间,整个程序运行期间, BIU是充分利用了总线,极大的提高了CPU的工作效率,成为8086突出优点。

2689754-20220529125639054-581255683.png

8086微处理器的寄存器结构

8086CPU中可供编程使用的有14个16位寄存器。分为3类: 通用寄存器、控制寄存器、段寄存器。

2689754-20220529114503693-1371988925.png

通用寄存器

数据寄存器: 存放操作数或中间结果。

  • 16位寄存器:AX;BX; CX;DX;
  • 可分成8位寄存器使用: AH;AL; BH;BL; CH;CL; DH;DL。

指针和变址寄存器:存放地址偏移量。

  • 16位的指针寄存器SP、BP
    SP 堆栈指针寄存器:给出栈顶偏移地址;
    BP 基址指针寄存器:存放位于堆栈段中数据区基址的偏移地址。
  • 变址寄存器SI、DI :
    用于指令变址寻址,SI和DI用来存放当前数据段的偏移地址 。
    SI:源变址寄存器: DI:目的变址寄存器:

控制寄存器

指令指针寄存器
IP(Instruction Pointer)指令指针寄存器: 存放EU要执行的下一条指令的偏移地址,控制程序中指令的执行顺序。
IP 用来存放代码段中的偏移地址。 在程序的运行过程中,它始终指向下一条指令的偏移地址,和CS一起形成下一条指令的物理地址(CS:IP)

**标志寄存器 **

8086内部标志寄存器的内容,又称为处理器状态字PSW。 存放ALU运算后的结果特征或机器运行状态,只用9位。

2689754-20220529120447962-2049487043.png

条件标志位(6位): 表示前一步操作(如加、减等)执行后,ALU所处的状态,后续操作可以根据这些状态标志进行判断,实现转移;
控制标志位(3位): 通过指令人为设置,用以对某一种特定的功能起控制作用,反映了人们对微机系统工作方式的可控制性。
状态标志位:

  • CF—进位标志位,做加法时最高位出现进位或做减法时最高位出现借位,该位置1。
  • PF—奇偶标志位,当运算结果的低8位中l的个数为偶数时,则该位置1。
  • AF—半进位标志位,做字节加法时,当低四位有向高四位的进位,或在做减法时,低四位有向高四位的借位时,该标志位就置1。通常用于对BCD算术运算结果的调整。

控制标志位:

  • TF—陷阱标志位(单步标志位、跟踪标志)。当该位置1时,将使8086进入单步工作方式,通常用于程序的调试。
  • IF—中断允许标志位,若该位置1,则处理器可以响应可屏蔽中断。
  • DF—方向标志位,若该位置1,则串操作指令的地址修改为自动减量方向,反之,为自动增量方向。

段寄存器

8086微处理器最大寻址1MB存储空间。
1)包含在指令中的地址,以及在指针和变址寄存器中的地址只有16位长;
2)16位地址寻址空间216=64KB,访问不到1MB存储空间。
3)解决该问题,采用存储器分段技术来实现。
4)8086CPU把1MB的存储空间分成若干个逻辑段,逻辑段的长度不超过64KB(216B)。把段地址左移4位和偏移地址相加形成20位地址,可访问1M空间。

4个16位的段寄存器,用来存放每一个逻辑段的段起始地址。
1)代码段寄存器CS:给出当前的代码段起始地址,CPU执行的指令将从代码段取得。
2)数据段寄存器DS:指向程序当前使用的数据段,用来存放数据。
3)堆栈段寄存器SS:给出程序当前所使用的堆栈段,堆栈操作的执行地址就在该段。
4)附加段寄存器ES:指出程序当前所使用的附加段,通常也用来存放数据。

2689754-20220529120909189-1807162894.png

8086微处理器的外部引脚特性

8086CPU具有40个引脚。 可以分成5类信号:

16位数据线:AD0~AD15
20位地址线:AD0~AD19
可直接寻址空间为1M字节。地址/数据总线采用了分时复用方式。 其余为状态线、控制信号线、电源、地线等。

地址/数据总线16条

  • AD15-AD0(2—16,三态):地址/数据复用信号,输入/输出引脚,低16位地址信号及数据信号的输入/输出。
  • 地址/数据总线采用分时复用方式。
  • 总线分时复用:同一总线在不同时间传输的是不同的信号。8086采用总线分时复用方法在不影响CPU功能的情况下,减少了CPU的引脚数目,使系统得到简化。

2689754-20220529122134865-1933320812.png

地址/状态线4条:

  • A19/S6A16/S3(3538,三态):地址/状态信号,输出引脚。
  • 在存储器操作总线周期的第一个时钟周期,输出20位地址高4位A19A16,与AD15AD0组成20位地址信号。
  • 其他时钟周期输出状态信号S6~S3。其中S6为0,指示8086CPU当前与总线连通; S5为1表明8086CPU可以响应可屏蔽中断;
  • S4、S3共有四个组合状态,指明当前使用的段寄存器,00-ES,01-SS,10-CS,11-DS。

控制总线9条:

  • BHE/ S7 (34,三态):高8位数据允许/状态复用信号,输出。
  • 在总线周期的第一个时钟周期输出总线高字节允许信号BHE,表示高8位数据线D15—D8上的数据有效。
  • 其余时钟周期输出状态S7 。
  • BHE和地址线A0配合用来产生存储体的选择信号。

RD(32,三态):

  • 读控制输出信号,低电平有效,用以指明要执行一个对内存单元或I/O端口的读操作,具体是读内存单元还是I/O端口,取决于控制信号M/IO。
  • CPU部分引脚的三态性
  • 所谓三态是指总线输出可以有三个状态:高电平、低电平和高阻状态。当处于高阻状态时,该总线在逻辑上与所有连接负载电气断开。

READY(22):“准备好”状态信号输入,高电平有效。“Ready” 引脚接收来自内存或I/O向CPU发来的“准备好”状态信号。表明内存或I/O已经准备好进行读写操作。协调CPU与内存或I/O之间进行信息传送的联络信号。

TEST(23):测试信号输入,低电平有效。TEST信号与WAIT指令结合起来使用,CPU执行WAIT指令后,处于等待状态,当TEST引脚输入低电平时,系统脱离等待状态,继续执行被暂停执行的指令。

INTR(18):可屏蔽中断请求信号输入引脚,引入中断源向CPU提出的中断请求信号,高电平有效。

NMI(17) 非屏蔽中断请求信号输入引脚,高电平有效。该信号不受中断允许标志IF状态的影响,NMI比INTR的优先级别高。

RESET(21):复位信号输入,高电平有效。复位信号输入之后,CPU结束当前操作,并对处理器的标志寄存器、IP、DS、SS、ES寄存器及指令队列进行清零操作,而将CS设置为0FFFFH。

CLK/(19):时钟信号输入,8086CPU的时钟频率为5MHz,即从该引脚输入的时钟信号的频率为5MHz。

MN/MX(33):最小/最大模式设置信号输入引脚。

  • 该输入引脚电平的高、低决定了CPU工作在最小模式还是最大模式。
  • 当该引脚接+5V时,CPU工作于最小模式下,当该引脚接地时,CPU工作于最大模式下。

电源线和地线3条: VCC(40)、GND(1、20):电源、接地引脚,8086CPU采用单一的+5V电源,有两个接地引脚。

总结

8086微处理器从功能结构上可以划分为执行部件总线接口部件两大部分。8086并行工作方式,减少了CPU等待取指令的时间,充分利用了总线,有力地提高了CPU的工作效率,成为8086的突出优点。

8086微处理器的寄存器使用非常灵活,可供编程使用的有14个16位寄存器。按其用途可分为3类:通用寄存器、段寄存器、指针和标志寄存器。

8086微处理器有40条引脚,按作用可分为5类:

  • 地址/数据总线16条;
  • 地址/状态线4条;
  • 控制总线9条;
  • 电源线和地线3条;
  • 其他控制线8条。

__EOF__


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK