80486 CPU的内部结构和工作原理 1995-07-28 80486 CPU的内部结构如下图所示: 80486芯片上有一个指令和数据共用的8KB高速缓存。INTEL 80486DX4的高速缓存为16KB。 总线部件负责对内部单元与外部总线之间的指令预取、数据传输、控制功能等安排优先次序和进行协调。对内部通过三条32位总线与指令预取部件和高速缓存通讯,对外则产生总线周期必需的各种信号。支持突发读周期,可从主存取出16字节的数据和指令块。还可以缓冲4个32位的存储器写周期,使产生该写请求的内部单元可以转而继续进行别的处理工作。 当总线部件不运行执行指令的总线周期时,指令预取部件就用它顺序地预先取出几条其它单元要用的指令。取出的指令放在预取队列里,该队列可保存由总线部件取出的两个16字节指令和数据块。这样做使得其它单元几乎不必等待便可得到下一条指令。当每一条指令从预取队列取出时,就将其操作码部分送到译码器,将置换部分送到分段部件进行地址计算。 指令译码器把从预取队列中取出的指令转换成低级的控制信号和微码入口。译码后的指令存放在指令队列里,一理控制器发出请求就将其发送给控制器。 控制器含有微处理器的微码(微处理器中的一组低级命令)。控制器负责解释从指令译码器收到的控制信号和微码入口,并根据译码后的指令指挥整数部件、浮点部件、存储器管理部件等的活动。 浮点部件是将数学协处理器的功能集成在芯片上,负责解释32位、64位和80位浮点格式。它使用一些专门的电路和寄存器来处理一些超越函数和复杂的实数运算。由于将浮点部件集成在芯片内,使得其与其它的内部单元之间的接口效率大大提高。此外,浮点部件和算术逻辑运算部件(ALU)可以并行操作,因而允许二者能同时执行指令。通过这些改进,使得浮点部件的性能比80387提高了4倍。 整数部件由算术逻辑运算部件(ALU)、8个通用寄存器、若干个专用寄存器和一个桶形移位器组成。它负责执行控制器指定的全部算术和逻辑运算,可以在一个时钟周期内执行加载、存储、加减、逻辑和移位等单条指令。 存储器管理部件通过建立一个简化的、运行多个应用程序的寻址环境来帮助操作系统的多任务操作。存储器管理部件含有分段和分页电路,负责将每个内部逻辑地址转换成相应于主存储器的一个特定单元的外部物理地址。 分段是一种在主存储器中为每个程序提供它自己的地址空间(称为段)的技术,其目的是防止多个应用程序装入主存时各程序间造成相互干扰。分段部件要将其它内部单元所用的内部逻辑地址转换为不分段的线性地址,按照称为段描述符的数据结构保持各个段的位置。线性地址随后转发到分页部件。如果不用分页,线性地址就等于物理地址。 分页是将主存划分成很多4KB的块(页),以支持虚拟存储器环境。在虚拟存储环境下,是用少量的内存和磁盘存储器来模拟一个大的地址空间。只将与当前运行的指令或读数据有关的页放入内存,而将程序其余部分放在磁盘上。分页部件利用转换查寻表将来自分段部件的线性地址转换成物理地址。