微型计算机是通过总线来传送指令和数据的,32位微机支持多种数据传送总线周期。80486和Pentium的总线周期可以是非突发方式的,也可以是突发方式的;可以是高速缓存方式的,也可以是非高速缓存方式的。
本节以8086/8088、80486和Pentium微处理器为例,叙述80x86微处理器的内部结构。
2.1.18086/8088的内部结构
8086/8088是Intel公司于1978年6月推出的16位微处理器,它们的主要特点是:数据线为16位(8088内部数据线是16位,外部数据 线是8位),可进行8位(字节)和16位(字)运算;地址线为20位,可寻址1MB存储空间;时钟频率为5~8MHz。内部结构由执行单元 EU(Execution Unit)和总线接口单元BIU(Bus Interface Unit)两部分构成,其内部结构框图。
1.执行单元(EU)
EU由算术逻辑单元(ALU)、16位标志寄存器(FR)、通用寄存器组(4个16位通用寄存器、2个16位指针寄存器、2个16位间址寄存器)、指令 译码器和控制电路组成。EU是指令执行部件,它从BIU的指令队列中取指令,进行指令译码,并发出相应的控制命令序列执行指令。
2.总线接口单元(BIU)
BIU包括4个16位段寄存器(CS、DS、ES、SS)、1个16位指令指针(IP)、1个地址加法器、1个6字节(8088 为4字节)的指令队列 和总线控制电路,它负责从存储器中取指令并存放在指令队列中供CPU执行。在执行指令过程中,使用的操作数地址由段基址和偏移量组成,其中16位偏移量先 由EU计算得出,再由BIU将其与段基址(段寄存器的内容)合在一起形成20位物理地址。BIU的功能是实现CPU与内存的数据交换,并可根据EU的请求 与I/O接口电路交换数据。
2.1.280486的内部结构
80486是Intel公司于1989年4月推出的 32位微处理器,它的主要特点是:内部数据总线有32位、64位和128位3种,外部数据总线为32位;提供了8位(字节)、16位(字)、32位(双 字)运算指令;地址总线为32位,可寻址4096MB存储空间;支持虚拟存储管理技术,虚存空间为64T;片内集成有浮点运算部件和8KB的Cache, 同时也支持外部Cache;整数处理部件采用RISC结构,提高了指令的执行速度。此外,80486还引进了时钟倍频技术,从而使主频可以超过100 MHz。
80486内部包括总线接口部件、指令预取部件、指令译码部件、控制部件、整数执行部件、分段部件、分页部件,以及浮点运算部件(FPU)和高速缓存(Cache)部件,其内部结构框图。
1.总线接口部件
总线接口部件(BIU)与片外总线连接,用于管理访问外部存储器和I/O端口的地址、数据和控制总线,完成指令预取、读/写操作等总线操作。BIU主要 与指令预取部件和高速缓存部件交换信息。BIU将预取指令存入指令预取部件;填充Cache行时,BIU一次从片外总线读16个字节到Cache。若 Cache内容被CPU内部操作修改,则修改内容也由BIU写到存储器中去。当读操作的内容不在Cache中时,将由BIU控制直接到存储器中去取。
2.指令预取部件
80486含有一个32字节的指令预取队列,在总线空闲周期,指令预取部件形成存储器地址,并向BIU发出预取指令请求。预取周期一次读16个字节的指 令代码存入预取队列中。如果Cache在指令预取时命中,则不产生总线周期。当遇到跳转、中断、子程序调用等操作时,则预取队列被清空。
3.指令译码部件
指令译码部件是从指令预取队列中读取指令并译码,将其转换成对其他部件进行控制的信号。译码过程分两步:首先确定指令执行时是否需要访问存储器,若需要 则立即产生总线访问周期,使存储器操作数在指令译码后能准备好;然后产生对其他处理部件的控制信号。大多数指令能在一个时钟周期内译码完毕。
4.控制部件
80486单独设置控制部件以对整数执行部件、浮点运算部件和分段部件等进行控制,使它们完成已译码指令的执行。