微型处理器基本结构说明

1.微型处理器的结构:

 微型处理器基本结构说明_第1张图片

8086中央处理单元(CPU)是第三代微处理器,是Intel x86系列微处理器中的第一代产品。它是典型的16位微处理器,采用HMOS工艺,芯片内部包含有29000多个晶体管。它具有16位数据线和20位地址线,寻址空间为1M bytes8086由单一+5V电源供电,时钟频率510MHz。从功能上看,8086 CPU分为执行单元(EU)和总线接口单元(BIU)两部分。EUBIU协同工作,形成指令级的流水线。

2.EUBIU

微型处理器基本结构说明_第2张图片

(1)BIU的结构和功能
  概括地讲,EU负责执行指令,BIU负责与存储器或I/O接口交互数据。CPU通过BIU从存储器读取指令或操作数,送往EU执行。再通过BIUEU执行指令的结果传送到存贮器或者和I/O端口交换数据。

BIU的功能:

BIUEU完成全部的总线操作,根据EU的命令控制数据在CPU和存储器或I/O接口之间传送。以存储器访问为例,BIU的操作过程是这样的,BIU首先将要访问存储器的逻辑地址转换成物理地址,再从(往)物理地址对应的存储器单元读取(写入)数据;如果是读取指令,BIU从物理地址取到指令后将指令送入指令队列

BIU的组成:

段寄存器(均为16位)
 CS:代码段寄存器,存放程序段地址;
 DS:数据段寄存器,存放数据段地址;
 ES:扩展段寄存器,存放辅助数据段地址;
 SS:堆栈段寄存器,存放堆栈段地址。

为什么要分段??

808620位地址线,具有1M空间的寻址能力。但是808616位微处理器,其内部寄存器均为16位,那么如何用16位寄存器提供的信息来实现1M空间的存储器寻址呢?为了解决这个问题,8086采用了将存储器分段的技术。段地址由段寄存器给出,段寄存器内容左移4位得到20位的地址,就是该存储器段的起始地址。存储器每段的最大长度为64K,(因为16位寄存器表示的最大量为64K)因此段内的存储地址相对于该段起始地址的最大偏移为64K.


指令指针寄存器(16位)
 IP寄存器用于存放程序段的偏移量。
地址加法器(20位)
 地址加法器用于根据逻辑地址计算20位物理地址。
6
字节的指令队列
 指令队列可存放多条指令,用于指令预取。

解决8086执行指令的速度要比CPU芯片外部的数据访问快很多倍的问题;
总线控制电路

 总线控制电路实现总线的控制逻辑,产生相应的控制信号。

 

 

BIU功能的实现:

举个例子:

CS是代码段的段寄存器。一条指令的物理地址就是根据代码段寄存器CS内容和指令指针寄存器IP的内容得到的。具体计算是通过地址加法器进行的,地址加法器将段寄存器的内容左移4位(乘以16),然后再与IP的内容相加。得到指令的物理地址。例如:
  设CSED00HIP=0020H,计算物理地址时,先将CS左移4位,即得到ED00 0H,再与IP内容相加,即ED00 0H + 0020H = ED020HED020H就是该指令的物理地址。
  然后,由总线控制逻辑驱动地址信号和控制信号,读取ED020H单元的指令。取到指令以后,送入指令队列的队尾,备EU执行。EU总是从指令队列的队首得到指令。BIUEU执行指令的同时,不断从存储器顺序读取一条或多条指令,陆续将指令队列添满。这样,EU就可以连续执行指令,实现指令级的流水作业。

(2)EU的结构和功能

执行单元EUBIU的指令队列得到指令以后,完成对指令的译码、执行并回写结果。当EU需要操作数时,便申请BIU访问存储器并向BIU提供段偏移地址。此外它还具有管理寄存器等功能

EU的组成:

通用寄存器(16 bit
 AX:用作累加器;
 BX:一般用作基址寄存器;
 CX:常常作为计数器;
 DX:多用作辅助累加器
 AXBXCXDX都是16位寄存器,可是它们都可以分别作为28位寄存器使用。
专用寄存器(16 bit
 BP:基数指针寄存器
 SP:堆栈指针寄存器
 SI:源变址寄存器
 DI:目的变址寄存器
标志寄存器Flag16 bit

算术逻辑单元ALU
执行单元的控制电路

标志寄存器的作用:

(3)BIUEU之间的关系

操作流程:

  • BIU中的指令队列有2个或2个以上字节为空时,BIU自动启动总线周期,从存储单元取出指令。填充指令队列。直至将指令队列填满,BIU才进入空闲状态。

  • EU每执行完一条指令,从BIU指令队列的队首取指令。系统初始化后,指令队列为空,EU需要等待BIU从内存取指填充指令队列。

  • EU从指令队列取得指令后,译码并执行指令。若该指令需要取操作数或存操作结果,也就是说需要访问存储器或者I/O时,EUBIU发出访问总线的请求。

  • BIU接到EU申请总线的请求,若BIU正忙(正在执行取指令的总线周期),则必须等待BIU执行完当前的总线周期,方能响应EU请求;若BIU空闲,则立即执行EU申请总线的请求。

  • EU执行转移、调用和返回指令时,若下一条指令不在指令队列中,则队列中的指令被自动清除,BIU根据转移、调用和返回指令指示的目标地址重新取出指令并填充指令队列。

形成流水线结构:

8086中,指令的提取和执行是分别由总线接口部件和执行部件完成的,它们各行其责又相互配合。它们之间形成指令级的流水线,使得8086CPU可以在执行指令的同时进行读取指令的操作。执行部件从指令队列中取得指令的过程是数据在CPU内部寄存器之间传送的过程,所花费的时间远远小于总线访问的时间。一般情况下,EU可以不断地从指令队列中取得指令并执行指令,与BIU从对存储器的访问并行执行

3.总线周期

时钟周期或状态周期:8086CPU内部的逻辑操作以及与外部存储器和I/O交换数据进行的总线操作全部由CPU的时钟来定时的。CPU的基本定时单位称为时钟周期或者状态周期。假设8086的主频为10MHz,一个时钟周期为100ns

总线周期:CPU为了读取指令或传送数据,需要通过总线接口部件BIU与存储器或I/O接口进行信息交互,执行对总线的操作。进行一次数据传送的总线操作定义为一个总线周期。
  典型的总线周期通常由4个时钟(状态)周期T1T2T3T4组成。
  T1为地址周期。CPU通过地址/数据(或地址/状态)复用总线发出地址信息,指示要寻址的存储器单元或者I/O的地址。

         T2为缓冲周期。例如,在总线读周期,CPUT2撤销低16位地址信号,使该组信号线浮空,准备接收存储器或I/O的数据。
  T3为数据周期。数据出现在复用总线的低16位上。
  T4总线周期结束。

空闲周期:
  系统总线处在空闲状态,此时,执行空闲周期T1

你可能感兴趣的:(微机原理与应用)