微机原理与接口技术(第三版)(洪永强) 2.1.1 8086的功能结构

本文详细解析了8086微处理器的执行部件EU,包括其指令获取与译码、算术逻辑运算、数据交换功能以及组成部分。同时介绍了总线接口部件BIU的功能,如指令获取、数据传输和物理地址计算,以及流水线技术的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.1.1 8086的功能结构

0. 组成部分
1. 两个工作部件

8086微处理器的内部功能结构如图2-1新示,由两个独立的工作部件构成一一

  • 执行部件(Execution Unit, EU)
  • 总线接口部件(Bus Interface Unit, BIU)
2.工作部件 结构和功能
  • [[EU]]由运算器、寄存器组、控制器等组成,负责指令的执行;
  • [[BIU]]由指令队列、地址加法器、总线控制逻辑等组成,负责与系统总线打交道。
1. 执行部件EU
(1)EU的功能

EU(Execution Unit,执行单元)是微处理器中的一个核心部件,负责执行指令。它的功能主要包括以下三个方面:

1. 指令获取与译码:
  • EU负责从总线接口单元(BIU)的指令队列缓冲器取出指令,并由EU控制器指令译码器对指令进行译码,产生相应的操作控制信号给各个部件
  • 这些控制信号指导后续的操作,例如选择寄存器、选择ALU(算术逻辑单元)的运算方式等。
2. 算术逻辑运算:
  • EU执行指令时,对操作数进行算术运算和逻辑运算。
  • 算术运算包括加法、减法、乘法、除法等,逻辑运算包括与、或、非、异或等。
  • EU通过控制ALU完成这些运算,并将运算结果保存到状态寄存器FR(Flag Register,标志寄存器)中。
  • 状态寄存器保存了指令执行后的状态特征,如零标志、进位标志、溢出标志等。
3. 数据交换:
  • EU不直接与CPU外部系统相连,
  • 当需要与主存储器或I/O设备交换数据时,EU向BIU发出命令,并提供给BIU 16位有效地址及所需传送的数据。BIU根据EU提供的信息进行数据传输,以完成与外部系统的数据交换。

总的来说,EU是微处理器中负责执行指令和处理数据的关键部件,它通过译码指令、执行运算、保存状态和与外部系统交换数据等功能,实现了计算机程序的运行和控制。

(2)EU的组成

EU组成部分:

  • 算术逻辑单元(ALU)、
  • 通用数据寄存器组(AX、BX、CX、DX),
  • 地址指针
  • 变址寄存器(SP、BP、SI、DI)、标志寄存器(FR)、
  • 数据暂存寄存器
  • EU控制器

EU(Execution Unit,执行单元)的组成包括了多个关键部件

1. 算术逻辑单元(ALU):

算术逻辑单元是执行单元中的核心部件,负责执行算术运算(如加法、减法、乘法、除法等)和逻辑运算(如与、或、非、异或等)。ALU根据控制信号执行相应的运算操作,并将结果输出给其他部件或保存到寄存器中。

2. 通用数据寄存器组:

通用数据寄存器组包括了多个通用目的寄存器,用于存储数据和临时结果。在8086/8088微处理器中,通用数据寄存器组包括了AX、BX、CX、DX等寄存器,它们可以用于存储数据、地址、计数器等。

3. 地址指针和变址寄存器:

地址指针寄存器(如SP、BP、SI、DI)和变址寄存器(如BX、SI、DI)用于存储地址信息,用于访问内存或进行数据传输。

4. 标志寄存器(FR):

标志寄存器(Flag Register,FR)保存了指令执行后的状态特征,如零标志、进位标志、溢出标志等。它们用于控制程序的流程和处理条件分支。

5. 数据暂存寄存器:

数据暂存寄存器用于临时存储数据或中间结果,以便进行后续的处理。这些寄存器可以在执行指令过程中暂存数据,然后再传送给其他部件或保存到寄存器组中。

6. EU控制器:

EU控制器负责对指令进行译码,并产生相应的控制信号,用于控制ALU、寄存器组、标志寄存器等部件的操作。它协调了整个执行单元的工作,确保指令能够按照正确的顺序和方式执行。

这些部件共同组成了执行单元,实现了指令的执行和数据的处理功能。通过协调这些部件的工作,执行单元能够有效地执行各种指令,并完成复杂的计算和控制任务。

(3)EU的特点
1. 寄存器 的使用

通用数据寄存器的灵活性:

  • 通用数据寄存器AX、BX、CX、DX,既可以作16位寄存器使用,也可以分成高低8位分别作两个8位寄存器使用。这种灵活性允许程序员根据需要选择合适的寄存器宽度,以适应不同的数据处理任务。

地址指针和变址寄存器
地址指针BP、SP和变址寄存器SI、DI都是16位寄存器,一般用来存放地址信息。

2. ALU 的功能

ALU的核心是16位二进制加法器。
它具有两个主要功能功能:

  • 进行算术/逻辑运算:ALU负责执行指令中的算术运算和逻辑运算,如加法、减法、与、或等。
  • 提供操作对象的地址: ALU根据指令的寻址方式提供给BIU所需要操作对象的16位(偏移)地址,使BIU能够正确地对内存或I/O空间进行寻址,并传输操作对象。
3. 状态标志寄存器 (Flag Register)

16位状态标志寄存器(7位未用)存放了指令执行后的状态特征和设置的控制标志。
这些标志包括零标志、符号标志、进位标志等,用于反映操作结果的状态和控制程序的流程。

4. EU控制器

EU控制器是执行指令的控制电路,负责从指令队列中取指令、译码指令、产生控制信号等。它协调了整个执行单元的工作,确保指令能够按照正确的顺序和方式执行。

2. 总线接口部件BIU
(1)BIU的功能。

BIU(Bus Interface Unit,总线接口单元)是微处理器中的一个部件,负责处理CPU与主存储器或I/O设备之间的数据传输。它的功能主要包括以下三个方面:

1. 指令获取:

BIU负责从主存储器中取指令,并将这些指令送到指令队列缓冲器中。指令队列缓冲器用于暂存即将执行的指令,以便CPU逐条执行。

2. 数据传输:

当CPU执行指令时,BIU配合EU(Execution Unit,执行单元)从指定的主存储器单元外设端口中取数据,然后将这些数据传送给EU,或者将EU的操作结果传送到指定的主存储器单元外设端口中。这包括了

  1. 从主存取数据、
  2. 写入数据到主存、
  3. 从外设读取数据、
  4. 向外设写入数据等操作。
3. 物理地址计算:

BIU还负责计算形成访问存储器的物理地址。

  • 在访问主存或外设时,CPU通常使用逻辑地址,而BIU则负责将逻辑地址转换为物理地址,以便在实际的存储器中进行读写操作。
  • 在8086/8088处理器中,物理地址通常是20位的,因此BIU需要进行物理地址的计算和生成。

总的来说,BIU在微处理器中起着桥梁的作用,负责处理CPU与主存储器或I/O设备之间的数据传输和地址转换,保证了整个系统的正常运行。

(2)BIU的组成。

BIU由4个16位段寄存器、16位指令指针寄存器、20位物理地址加法器、6字节指令队列及总线控制逻辑组成。

BIU(Bus Interface Unit,总线接口单元)的组成:

1. 16位段寄存器:

BIU包括了4个16位段寄存器,用于存储段选择子。
在实模式下,段寄存器存储的是段的起始地址,用于计算实际物理地址。
而在保护模式下,段寄存器存储的是描述符表中的索引,用于访问GDT(Global Descriptor Table)或LDT(Local Descriptor Table)中的描述符。

2. 16位指令指针寄存器:

BIU还包括了一个16位指令指针寄存器,用于存储当前执行指令的偏移地址。指令指针寄存器的值会随着指令的执行而更新,指向下一条待执行的指令。

3. 2位物理地址加法器:

BIU中还包括了一个20位物理地址加法器,用于计算物理地址。在实模式下,物理地址由段寄存器和指令指针寄存器中的偏移地址组合而成,在保护模式下,物理地址还需经过分页机制的处理。

4. 6字节指令队列:

BIU中还包括了一个6字节的指令队列,用于暂存从内存中读取的指令。指令队列可以提高指令获取的效率,减少对内存的访问次数,从而提高处理器的性能。

5. 总线控制逻辑:

总线控制逻辑负责控制总线的访问,协调指令的获取和数据的传输。它负责将指令队列中的指令送入执行单元,同时处理数据的读取和写入操作,以及与外部设备的通信。

综合来看,BIU作为微处理器中负责与总线进行交互的关键部件,包括了段寄存器、指令指针寄存器、物理地址加法器、指令队列和总线控制逻辑等组成部分,这些组件共同协作,实现了指令的获取和数据的传输,从而保证了处理器的正常运行。

(3)BIU的特点。

以下是关于BIU(总线接口单元)的特点:

1. 指令队列的作用:

指令队列由6字节的寄存器组成**(8088指令队列由4字节组成)** ,采用“先进先出”原则,暂时存放BIU从存储器中预取的指令。当EU执行完一条指令时,可以立即从指令队列中取指令执行,而不必等待BIU再次访问存储器。这种流水线技术提高了CPU的效率,减少了CPU取指令和执行指令之间的等待时间。图2-2给出这两种方式的简单对比。

2. 地址加法器的功能:

地址加法器用于产生20位存储器的物理地址。
由于8086可寻址1MB空间,但内部寄存器和数据通道宽度都是16位,因此需要根据提供的逻辑地址信息产生20位的物理地址。
地址加法器将段寄存器提供的16位信息(段基址)左移4位(相当于乘以16),然后与EU或 I / O I/O I/O提供的16位信息(偏移地址)相加,形成20位的物理地址。
计算公式为

物理地址PA(20位)=段基址SA(16位)×16+偏移地址EA(16位)
3. 总线控制逻辑的作用:

总线控制逻辑负责 8086 分配 20 条引脚线实现分时传输20位地址、16位数据和4位状态信息到外部系统。
它通过逻辑控制方法实现了在总线上的信息传输,协调了BIU和外部设备之间的数据交换。

4. 流水线技术的应用:

EU和BU之间可以并行工作,形成指令的取指、指令译码、指令执行的流水线。

  • 当指令队列中出现空字节,且EU没有访问存储器和接口的要求时,BIU可以自动从存储器读出指令代码,存放于指令队列中,供EU执行。
  • 这样,在一条指令执行的过程中,就可以预取下一条(或多条)指令,从而减少了CPU为取指令而等待的时间,提高了CPU的运行速度。
  • 然而,跳转指令可能导致预取的指令并非要执行的指令,从而降低了流水线的效率:
    • 当遇到跳转指令的情况下,导致预取的指令并非是要执行的指令,只好舍弃,这将会降低流水线的效率。

综合来看,BIU通过指令队列、地址加法器和总线控制逻辑等组件,以及流水线技术的应用,实现了指令的高效取指和执行,从而提高了CPU的性能和运行速度。

在以后的几代微处理器中,对内部结构的改进主要从流水线入手,将指令的执行过程进一步分解,尽可能使每一步骤都能同时执行,由此提高微处理器的执行速度。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值