1 . 80486 CPU概述 几经变迁,Intel公司推出了80486微处理器,其内部通用寄存器、标志寄存器、指令寄存器、地址总线和外部数据总线都是32位。与以前微处理器相比,80486 CPU在性能上有了很大改进,主要表现在以下几点。
1)把浮点数学协处理器和一个8KB的高速缓存首次集成进了CPU内部,减小了外部数据传输环节,大大提高了微机的运行速度。
2)指令系统首次采用精简指令集计算机(RISC)设计思想,使得80486 CPU既具有复杂指令集计算机(CISC)类微处理器的特点,又具有RISC类微处理器的特点,采用该技术使其核心指令在1个时钟周期内就可完成。
3)在总线接口部件中没有突发式总线控制和缓存(Cache)控制电路,支持突发式总线周期中从内存或外部Cache高速读取指令或数据。
4)将CPU内部通用寄存器扩展为32位,名称为EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP,这些寄存器的低16位与8086兼容,既可以按32位使用,也可以按8086规定的16位或8位寄存器使用。
这些改进使得80486成为一款高性能的32位微处理器,对多任务处理以及先进存储管理方式的支持更加完善、可靠,性能大大得到了改进。
段寄存器仍为16位,但增加了数据段寄存器FS和GS。
2 . 80486 CPU功能结构 80486 CPU内部结构如图2-17所示,与以往CPU比较,除某些功能有了进一步改善外,内部又新增了浮点运算器和Cache部件。前者用于完成协处理器的功能,后者用于存放CPU 最近使用的程序和数据。当CPU要访问存储器时,先访问缓存部件,只有要访问的数据不在缓存内时,才去访问存储器,经过这一改进,明显提高了CPU的访问速度。
图2-17 80486 CPU内部结构
该微处理器由总线接口部件、指令预取部件、指令译码部件、控制和保护部件、算术与逻辑运算部件、浮点运算部件FPU、分段部件、分页部件和8KB的缓存部件几部分组成。
这些部件既可以独立工作,也可以并行工作。在取指令和执行指令时,每个部件完成一项任务或某一个操作步骤,这样既可以同时对不同的指令进行操作,又可以对同一指令的不同部分同时并行处理。各部件的功能如下。
(1)总线接口部件BIU
BIU是CPU与外部的通路,负责完成CPU与主存、外围设备等部件进行数据传送的任务。
(2)分段部件
在80486 CPU中设有6个16位段寄存器,用来实现对主存分段管理。在实地址方式下,用来存放段基址,其内容左移4位与偏移地址形成20位物理地址;在保护方式下,段寄存器作为选择器使用,用来存放选择符以指示相应的段描述符在其段描述表中的地址。分段部件通过段描述符把逻辑地址转换成32位线性地址。
(3)分页部件
分页部件是分段部件之后的下一级存储管理部件。若分页禁止,则线性地址就是物理地址;若允许分页,则由分页部件再将线性地址转换成32位物理地址。通过分页管理,80486可寻址4GB的物理地址内存地址空间。通过分段分页管理可实现64TB虚拟存储器的映像管理。
(4)缓存部件
片内8KB缓存采用4路相连映像方式,用来存储待执行的程序数据,也就是作为外部主存的副本。它通过16位的总线与指令预取部件连接,使指令和数据的传输时间缩短。它通过64位数据线与整数部件、浮点运算器和分段部件相连接,并与外部采用突发式传输方式,来提高数据传输速率。为了保持与主存的一致性,片内缓存采用“写贯穿”方式进行写入操作。
(5)指令预取部件
指令预取部件一次可从片内缓存取出16位指令代码,送入指令队列排队,等候执行。
(6)指令译码器
指令译码器从指令队列获取指令代码,并对其译码。而后由微程序控制器ROM输出代码序列,并控制该指令的执行,同时由控制和保护部件进行保护检查。
(7)整数部件
整数部件由算术/逻辑运算部件ALU、桶形移位器和寄存器组成。在ALU中设有高速加法器,可实现高速算术/逻辑运算、数据传输等功能。
(8)浮点运算器
浮点运算器FPU可实现各种浮点数值运算、跨越/非跨越函数运算等功能。
3 . 80486引脚信号 80486外部引脚分布如图2-18所示。
图2-18 80486外部引脚分布示意图
1)32位数据总线
单一功能的32位数据总线(D31~D0),双向,三态。借助BE16、BE8两根输入信号能够完成总线宽度控制,使数据总线可以用来传输32位、16位、8位3种宽度的数据
2)32位地址总线
32位地址总线(A31~A2,BE3~BE0),输出,三态。该总线提供物理存储器地址或I/O端口地址。在80486中为了实现32位、16位、8位数据访问,设有4位允许输出信号BE3~BE0,用来控制不同存储体的数据宽度。高30位地址线(A31~A2)与4位允许输出信号 4位输出相对于2位地址线)形成32位地址总线。该信号由80486根据指令类型产生。低2位地址(A1,A0)没有相应的输出线
(3)总线控制信号
1) 地址状态信号,输出,低电平有效,表示总线周期中地址信号有效。
2) :非突发式传送准备好信号,输入,低电平有效,当该信号有效时,表示存储器或I/O设备已经准备好数据输出。
(4)总线周期定义信号
用来定义正在执行的总线周期类型。
1) W/R:表示写/读周期。
2) D/C:表示数据/控制周期。
3) :表示访问存储器或I/O接口。
4) :总线锁定信号,低电平有效,用来表示是锁定总线周期还是开启总线周期。
5) PLOCk:伪总线锁定信号,低电平有效,表示现行总线的处理需要多个总线传送周期。
(5)总线宽度控制信号
1) :16位总线宽度控制信号,输入,低电平有效。
2) :8位总线宽度控制信号,输入,低电平有效。
(6)总线仲裁信号
1) HOLD:总线保持请求信号,输入,高电平有效。该信号有效时表示80486以外的某些设备控制总线。
2) HLDA:总线保持相应信号,输出,高电平有效。该信号有效时表示80486己经响应HOLD信号,并且让出总线控制权,进入总线保持状态。
3) BOEF:总线占用信号,输入,低电平有效。该信号有效时,强制总线为高阻悬空状态。
4) BREQ:总线请求信号,输出,高电平有效。该信号有效时,表示80486需要一个总线周期。
(7)突发式总线控制信号
1) :突发式传送准备好信号,输入,高电平有效。有效时可以进行突发式数据传送。
2) :最后数据传送信号,输出,低电平有效,有效时表示正在进行本批数据的最后数据传送。
(8)中断信号
1) INIR:可屏蔽中断请求信号,输入,高电平有效。
2)Nvii:非屏蔽中断请求信号,输入,高电平有效。
3) RESET:复位信号,输入,高电平有效。
(9)缓存控制信号
1) KEN:缓存允许信号,输入,低电平有效。有效时表示可以将存储器中的数据复制到片内缓存中。
2) :缓存刷新信号,输入,低电平有效。用来通知80486将缓存内容全部清空。
3) AHOLD及 :AHOLD地址保持信号,输入,低电平有效,修改主存内容后,发出该信号,使地址总线悬空至高阻态;EADS外部地址有效信号,输入,低电平有效,有效时表明地址线上已经有有效地址。
4)PWT和PCD:PWT为页贯穿信号,输出,高电平有效,有效时,表示在修改缓存的同时将修改写回主存中的相应单元;PCD为页式缓存禁止信号,输出,高电平有效。
(10)浮点处理信号
1) :浮点数据出错处理信号,输出,低电平有效
2) :忽略数值处理器出错信号,输入,低电平有效
(11)奇偶校验信号
1)DP3~DP0:奇偶校验信号,双向。写入数据时,系统会随之加入4个偶校验位DP3~DP0,每个校验位对应数据总线的1B;读数据时,系统也会对每个数据字节进行偶校验。
2)PCHK:奇偶校验状态信号,输出,低电平有效。有效时,表明发生了奇偶校验错12)地址A20屏蔽信号 :地址A20屏蔽信号,输入,低电平有效。该信号只适用于实地址工作方式,有效时,80486在总线上查找内部Cache或发生某存储周期之前屏蔽A20。
4 . 功能模式
(1)实地址方式
80486 CPU在加电开机或复位时,被初始化为实地址方式。在此方式下,它和8086具有相同的存储空间和管理方式,最大寻址空间为1MB,物理地址等于段地址左移4位与偏移地址相加所得的值。
(2)保护地址方式
80486 CPU在保护方式下能支持4GB的物理内存空间及64TB的虚拟存储空间,使得程序可在64TB的虚拟存储器中运行。保护方式下,80486先进的存储器管理部件及相应的辅助保护机构,为现代多任务操作系统的顺利运行提供了强大的硬件基础。
在保护方式下,80486的基本结构保持不变,实地址方式下的寄存器结构、指令和寻址方式仍然有效。从程序员的观点看,保护方式和实地址的主要区别是地址空间和寻址机构的不同。
在保护方式下,48位的逻辑地址由16位的段选择子和32位的段内偏移量组成。与实地址方式不同的是,在保护方式下,某个段寄存器中的内容不是段的基址。
为了加快由线性地址向物理地址的转换过程,80486芯片内置了1个页描述符高速缓冲存储器,它也称为转换旁视缓冲器(TLB)。TLB中存放着最近经常用到的线性地址的高20位及其对应的页表项。
(3)虚拟8086方式
80486的虚拟8086方式是实地址方式和保护方式的结合。在虚拟8086方式下,80486的段寄存器的用途与实地址方式相同,并且也允许执行以前8086的程序。在虚拟8086方式下执行8086应用程序时,可以充分利用80486的存储保护机制。