80286 CPU内部分为4个独立的处理部件:执行部件(EU)、地址部件(Address Unit,AU)、指令部件(Instruction Unit,IU)和总线接口部件(BIU)。每个部件都可与其他部件异步并行操作。因此,80286 CPU的运行速度较8086 CPU的快。
执行部件(EU)包括算术逻辑部件(ALU)及标志寄存器、通用寄存器队列和控制电路等。EU中的控制电路接收已译码指令的69位内部码,根据指令的要求产生执行指令所需的控制电位序列后送入EU及其他部件,以便完成指令执行并以操作结果影响标志位。EU中的通用寄存器用来暂存操作数和运算结果。此外,80286还增加了1个16位的机器状态字(MSW)寄存器。
地址部件(AU)包括物理地址发生器、段寄存器、段描述符高速缓冲存储器等。它是80286 CPU中的地址管理部件。
当80286 CPU运行于实地址方式时,与8086 CPU一样,AU负责将段地址与偏移地址组合起来形成20位物理地址。当80286 CPU运行于保护方式时,每次对存储器存取操作(包括指令代码预取)时,AU都必须做许可性检查和当前任务的段限制检查,以便测试本次存储器存取操作是否违反了存储器保护机制。若检查后存储器的存取操作是允许的,则AU就将逻辑地址(或虚拟地址)转换成BIU使用的物理地址。为了实现存储器存取操作的保护功能和加速逻辑地址向物理地址的转换,AU中设置了一个段描述符高速缓冲存储器。它可以与CPU中其他部件并行工作,不需要单独占用CPU时间,且具有高速性能。
指令部件IU包括指令译码器和已译码指令队列。当BIU从程序代码段预取来指令字节后,指令部件就将指令字节从预取队列中取出,送入指令译码器。指令译码器将每个指令字节译码
变成69位的内码形式,并存入已译码指令队列中。已译码指令队列共可保存3条被译码指令的内部码,即容量为(69×3)位。
BIU包括总线接口电路、预取器和6 B的预取队列。BIU负责处理CPU和系统总线之间的所有通信和数据传输。也就是说,BIU处理对存储器和I/O设备进行访问时的总线操作,包括产生总线操作时使用的地址、命令和数据信号。
与8086/8088 CPU一样,在CPU不使用总线进行操作数存取的空闲时间,BIU中的预取器从内存程序区中预取代码存入6 B的预取队列中。只要预取队列中至少有2 B为空时,便可开始预取操作。由于执行指令时,执行部件必须等待数据从内存取出(如果需要)后方能执行运算,因而数据存取请求与预取指令请求同时发生时,BIU将优先处理数据存取操作。控制转移类指令将使6 B预取队列清零,并从转移到的目标地址开始预取新的指令。