2.3 80X86微处理器的功能结构
2.3.1 80286微处理器
80286微处理器与8086兼容。它有68条引脚,其中地址引脚有24位,所以其内存地址空间增大为16MB,但其数据总线仍为16位。
1.内部结构
80286的内部由总线单元、指令单元、执行单元和地址单元4部分组成。
(1)总线单元(Bus Unit,BU)。BU含有一个6字节的指令预取队列寄存器,以存放从内存预先取出来的指令。CPU与总线的一切操作均由BU负责。
(2)指令单元(Instruction Unit,IU)。IU由指令译码器和译码指令队列组成,它接收BU送来的指令并进行译码,译码后的信号送到能存储3条指令的译码指令队列中。在80286CPU中有两个队列。这样做的好处是,当BU送来的是转移类指令时,在译码过程中就被发现了,可立即通知BU,BU将清空预取队列寄存器,并重新从存储器中取得新指令存入预取队列寄存器,而执行部件仍在执行译码指令队列中的指令,因此缩短了指令的执行时间。
(3)执行单元(Execution Unit,EU)。EU由多个寄存器和ALU组成,它的功能是根据从IU处获得译码后的控制信号完成相关的操作,操作数经过BU传递。
(4)地址单元(Address Unit,AU)。AU的组成中含有两个地址加法器:偏移地址加法器和物理地址加法器,由它们分步运算生成物理地址,改进了内存管理方式。
80286将内部结构分成4部分,提高了并行操作的能力,从而加快了微处理器的运行速度。
2.寄存器组
这部分与8086有两点不同,其余均相同。
(1)多了一个16位的机器状态字(MSW)寄存器,如图2-14所示。
图2-14 机器状态字
其中,PE为保护允许,MP为监督协处理器,EM为协处理仿真,TS为任务转换。PE=0时,表示80286工作在实模式下:PE=1,则工作在保护模式下。当主板上安装了协处理器(80287)或没有安装协处理器以软件模拟其功能时,使用另3位。MSW寄存器只用了低4位,高12位没有使用,均为1。机器开机或复位(Reset)时,MSW低4位为0,即MSW的内容为FFF0H。
(2)标志寄存器增加了两个控制字段。在第12和第13位上增加了一个I/O特权级(IOPL),它占2位,只有在保护模式下使用,用于控制对I/O地址空间的访问;在第14位上增加了一个嵌套任务标志(NT),用于指明当前任务嵌套于另一任务内,也是在保护模式下使用。
2.3.2 80386微处理器
80386是全32位(80386DX)和准32位(80386SX)的微处理器,它具有32位数据处理能力,其地址总线也为32位,所以访问内存空间可达到4GB(232)。
1.内部结构
80386内部结构由6部分组成:执行单元ALU、段单元、分页单元、总线单元、指令译码单元和指令预取单元。这种细分,使并行程度得到大大提高。80386的内部结构大部分与80286相同,但也存在以下两方面的主要区别:
(1)指令队列为16个字节,并且采用了高速缓冲存储器。
(2)在ALU中增加了一个64位的移位器和乘除运算硬件,加快了乘除运算的速度。
2.寄存器组
寄存器组大部分与80286相同,有以下几点不同。
(1)32位寄存器。除段寄存器外,其他寄存器为32位,寄存器名为EAX、EBX、ECX、EDX、ESP、EBP、ESI、EDI、EIP和EFLAGS。
(2)增加了两个段寄存器:FS和GS。FS和GS属于附加数据段,用于减轻DS和ES段的负担。
(3)标志寄存器增加了两位。在80286的基础上,在标志寄存器的第16位增加了重新启动标志(RF),在第17位增加了虚8086模式(VM),当VM=1时处理器在虚拟8086模式。
(4)新增系统地址寄存器组。新增系统地址寄存器有4个,它们是GDTR(全局描述符表寄存器)、IDTR(中断描述符表寄存器)、LDTR(局部描述符表寄存器)和TR(任务寄存器)。其中GDTR和IDTR为48位,LDTR和TR为16位,其内容为这些描述符表在物理存储器中的位置和大小。这组寄存器由系统管理,用户不能直接使用。
(5)新增了控制寄存器组。新增的控制寄存器组有4个32位的寄存器,它们是CR0、CR1、CR2和CR3。CR0的低16位是机器状态字MSW,CR1未使用,留做备用。CR2寄存器中为一个32位的线性地址,指向产生最后一次页故障的地址,CR3的内容为页目录表的物理基址。
(6)新增了调试寄存器组和测试寄存器组。新增的调试寄存器组有8个32位的寄存器,它们是DR0~DR7,用来设置程序断点。测试寄存器组有2个32位的寄存器,它们是TR6和TR7,提供测试命令和保留测试结果。
2.3.3 80486微处理器
80486微处理器主要有以下几方面的特点:
(1)芯片为网络阵列式封装,有168条引脚,其中数据总线引脚与地址总线引脚均为独立的32位通道。
(2)微处理器内部为全32位结构,即寄存器、ALU和内部数据总线都是32位。而CPU与浮点运算部件之间的数据通道为64位。CPU与高速缓存、高速缓存与高速缓存控制器之间的数据通道为128位。
(3)部分采用RISC技术,芯片上不规则的控制部分减少,使指令能以较短的周期执行。此外,还把部分微码控制改为硬件逻辑直接控制,进一步缩短指令的执行时间,大多数常用指令均可在一个时钟周期内完成。
(4)支持突发总线周期操作,即一次总线周期操作可完成一个数据块的传输。这样可加快CPU与存储器之间的数据交换。
(5)片内具有8KB的数据/指令高速缓存Cache,可为频繁访问的数据和指令提供高速缓存,这样可加快CPU与存储器之间的信息交换,同时也减轻系统总线的负载。
(6)片内集成了浮点运算部件,可支持32位、64位和80位的浮点算术运算。由于与CPU的数据通道总线加宽,而引线缩短,它们之间的信息交换速度也得到提高。
(7)片内具有存储管理部件MMU,可对存储器地址实施管理和对存储器空间进行保护。
(8)具有三种工作方式,即实地址方式、虚拟地址保护方式和虚拟8086方式。80486在实地址方式下,就是一个高速的8086,但它比8086具有更强的功能;在虚地址保护方式下,可寻址4GB物理地址空间以及64TB虚拟地址空间,支持多任务运行;在虚拟8086方式下,可同时运行多个8086程序,并仍能利用微处理器执行虚拟保护机制。
80486引入了精简指令系统RISC,RISC最主要的特点是使机器的指令系统得到大大的简化。为了能用简单的指令来提高机器的性能,RISC技术主要采用了如下措施:
① 选择使用频率很高的一些简单指令,或比较常用但又不复杂的指令。
② 采用多级流水线结构,使多条指令重叠处理。
③ 采用加载/存储结构,只允许少数指令能对存储器操作,其他指令则对寄存器操作。
④ 延迟加载指令和转移指令,即在这两类指令之后分别安排一条与它们不存在依赖关系并可立即执行的指令,以保证流水线的高效运行。
⑤ 采用简单的指令格式和简单的寻址方式。
⑥ 采用高速缓冲存储结构。
⑦ 采用优化编译程序。