您的位置: 网站首页 > 程序开发 > 汇编语言与微机原理教程 > 第3章 微处理器的结构 > 【3.3 32位80x86微处理器的功能结构】

3.3 32位80x86微处理器的功能结构

 

3.3  3280x86微处理器的功能结构

3.3.1  80286微处理器

80286内部结构除了执行部件(EU)外,将8086/8088BIU细分为3部分:地址部件(Adress UnitAU)、总线部件(Bus UnitBU)和指令部件(Instruction UnitIU)。这4个部件并行工作,形成取指令、指令译码、执行指令重叠进行的流水线操作,提高了数据处理速度。

80286的地址总线、数据总线和控制总线是完全分开的,采用QFPQuad Flat Package68引脚封装。地址总线24条,A23A0,可寻址16MB存储空间;独立的数据总线16条,D15D0,一次可传输168位数据;控制总线16条,其中8位是输出的状态线,8位是输入的控制线。CPU的时钟频率提高到6MHz25MHz

80286内部寄存器结构与8086/8088基本相同,只是增加了一个16位的MSW(机器状态字),实际只定义了其中的低4位;另外标志寄存器(FLAGS)增加了两个标志位(共3位)。新增部分只用于保护模式。在80286中首次增添了存储器管理的保护工作模式,将段寄存器的内容(16位)当作指向段描述符表的指针,由所指向的段描述符(共6个字节)提供24位(3个字节)的段首地址(即段基址)。

3.3.2  80386微处理器

8038632位结构,内部有6个逻辑单元:总线接口部件(Bus Interface UnitBIU)、指令预取部件(Instruction Prefetch UnitIPU)、指令译码部件(Instruction Decord UnitIDU)、执行部件(Execution UnitEU)、分段部件(Segment UnitSU)和分页部件(Paging UnitPU)。这些单元按流水线结构并行实现取指令、指令译码、生成操作数地址、执行指令操作,实现4级并行流水线。

总线接口部件(BIU)提供微处理器与外部环境的接口,包括32位地址总线和32位数据总线,可寻址4GB232B)的物理存储空间,最快能在2个时钟周期内从存储器读/32位数据。80386总线结构具有动态改变数据和地址宽度的能力,既支持32位操作也支持16/8位操作。IPU预取指令,IDU对预取的指令进行译码,将译码的结果存放在已译码指令队列中,供执行部件直接调用执行。

执行部件包括8个既可用于数据操作也能用于地址计算的32位通用寄存器,每个32位寄存器的低半部分与8086/808880286微处理器的16位寄存器具有相同的特性,完全兼容。乘除硬件大大加快了乘除法运算速度,64位桶形移位器(barrel shifter)加速移位、循环和乘除法操作,可使典型的32位乘法在1ms内完成。

80386内部共有32个寄存器,分为7类。其中6个段寄存器CSDSESFSGSSS,以及局部描述符表寄存器(LDTR)和任务状态段(TR)为16位,其余为32位,而全局描述符表寄存器(GDTR)和中断描述符表寄存器(IDTR)扩展为48位。段寄存器的内容作为指向段描述符表的指针,描述符表中的每个描述符包括8个字节,其中4个字节提供32位的段基址。分段部件根据逻辑地址对内存分段寻址,可实现任务之间的隔离,也可实现指令和数据区的重新定位。分页部件对段进行分页,每页大小固定(一般为4KB),每段可包括若干页。分段分页为虚拟存储管理提供了有效方法。为了兼容8086/808880386还提供了虚拟8086模式,该模式是在保护模式下划分出一部分资源仿真8086/8088微处理器;可开辟多个这样的环境,按多任务方式运行。

3.3.3  80486微处理器

80486的基础结构与80386差不多,在内部结构上进行了如下改进。

取指令、指令译码和执行部件扩展成5级流水线,最多可有5条指令同时被执行,增强了并行处理能力。80486微处理器具有如下几个特点。

·    增加了8KB的高速缓存(cache)。

·    浮点处理部件(FPU)被集成到微处理器芯片内部。

·    总线接口部件功能更强,增加了一些新的引脚。

·    80486标志寄存器扩充了一位,后期产品引入新的特性,如支持节能和其他系统管理功能。

3.3.4  Pentium微处理器

Intel公司于1993年推出新一代名为Pentium的微处理器。Pentium微处理器的主要特点如下。

1)超标量设计。超标量(superscalar)流水线设计是Pentium微处理器技术的核心。它由两条指令流水线构成,每条流水线都有自己的ALU、地址生成电路和数据cache接口,这种流水线结构允许Pentium在单个时钟周期内执行两条整数指令。

2)独立的指令cache和数据cache。这将使指令预取和数据操作可同时进行,使Pentium的性能大大超过80486微处理器。

3)重新设计浮点单元。Pentium的浮点单元在80486的基础上进行了彻底的改造和重新设计,使每个时钟周期能完成一个浮点操作。

4)动态分支预测。在程序循环中,对循环条件的判断占用了大量的CPU时间。为此Pentium提供了一个称为分支目标缓冲器(Branch Target BufferBTB)的小cache来动态预测程序的分支。当一条指令导致程序分支时,BTB记忆这条指令和分支目标的地址,并用这些信息预测这条指令产生分支时的路径,预先从此处预取指令,保证流水线的指令预取操作不会空置。

Pentium微处理器除了具有实模式、保护模式和虚拟8086方式外,还增加了一种系统管理方式。系统管理方式主要是为电源管理、操作系统和正在运行的程序实行管理而设置的。

Pentium微处理器内部的通用寄存器仍是32位,但内部的数据通道为128位和256位,从而大大加快了内部数据传输。Pentium的标志寄存器(FLAGS)扩充为32位,有效定义了18位,保持对80x86的兼容。

标志寄存器低12位(实际定义了9位)与8086/8088一样。

80286新增两个标志位:IOPLNTIOPLInput/Output Privilege,输入/输出特权级)为b12b13,表示指令的I/O操作权限和级别:000)、101)、210)和311)共4级,其中0是最高特权级,一般为操作系统核心程序使用,3是最低级,通常为用户程序使用。NTNest,嵌套)为b14NT=1表示当前执行的任务嵌套于某个任务中,当前任务执行完毕要返回到原来的任务中,NT=0表明没有任务嵌套,80386扩充两个标志位:RFVMRFResume Flage,恢复标志)为b16,用于断点调试和单步执行。断点处理前,在两条指令之间设置该位,当RF=1时,不管调试中发生什么故障,立即越过故障执行下条指令;成功地执行完一条指令(无故障)后RF=0VMVirtual Mode,虚拟模式)为b17,在保护方式下,若当前特权级=0,则IRET指令使VM=1,在任何特权级下由任务转换设置使VM=1VM不受POPF指令影响,PUSH指令总使该位清零。

80486扩充一位ACACAlignment Check,对齐检查)为b18,在用户方式下(特权级为3),若AC=1,则对存储器访问进行定位对齐检查,未从偶地址寻址存储器就产生定位故障,AC=0不进行定位检查。

Pentium扩充了3个标志位:VIFVIPIDb19VIFVirtual Interrupt,虚拟中断)位。当允许虚拟86方式扩充(CR4.VME=1)或保护方式虚拟中断(CR4.PVI=1)时该位为1,否则为0VIF标志是所用中断标志的虚拟映像。b20VIPVirtual Interrupt Pendin9,虚拟中断挂起)位指示虚拟中断是否挂起。当禁止虚拟86方式扩充(CR4.VME=0)或禁止保护方式虚拟中断(CR4.PVI=0)时,该位强制为0b21IDIdentification,标识)位。该位为1表示程序可以设置和清除ID位,即微处理器ID指令(CPUID)存在。

复位后,标志寄存器(FLAGS)的内容为00000002H

Pentium芯片内有432位控制寄存器CR0CR2CR3CR4。在CR0中定义了11个控制位和状态位(80386定义了6位,80286则是16位的机器状态字,只定义了其中的4位)。CR2是页故障线性地址寄存器,它保存页故障异常中断之前所访问的最后一个页面的32位线性地址。CR3是页目录表基址寄存器。CR4Pentium新设的控制寄存器,定义了其中的6位,允许对80486结构进行某些扩充。

此外还有32位的调试寄存器DR和测试寄存器TR

Pentium外部地址总线32位,可寻址4GB存储空间;外部数据总线64位,支持突发数据传输。

Pentium微处理器片内除集成了高性能的浮点处理器外,突出的是配置了两条相对独立的指令并行执行流水线,以及分设的指令cache和数据cache。两条流水线分别称为u.流水线和v.流水线。在u.流水线中可以执行所有的整数指令和浮点指令,在v.流水线中可以执行整数指令和一条异常的Fxch指令。每条流水线都有自己的独立地址生成逻辑、算术逻辑运算部件和数据高速缓存接口。整数流水线有5个流水级(与80486相同):IPInstruction Prefetch,指令预取)、IDInstruction Decode,指令译码)、AGAddress Generate,地址生成)、IEInstruction Execute,指令执行)和WBWrite Back,回写);浮点流水线是超级流水线,由8个独立的流水级组成(前4个流水级与整数流水线一样,详见后述)。微处理器通过这两条流水线在每个时钟周期内执行两条整数指令,或一条整数指令(在v中)和一条浮点指令(在u中),或两条浮点指令(其中必有一条Fxch指令,在v.流水线中执行)。

80486相比,Pentium片内一级高速缓冲存储器L1 cache分成独立的8KB指令cache8KB数据cache,可使取指和读/写数据并行操作。片内还引入分支预测表,以提高循环结构的执行性能。

P55C系列的Pentium微处理器中还集成了多媒体处理部件MMX,增加了57条支持MMX的指令,使微处理器对多媒体与通信的应用具有独特的优势。后期的Pentium微处理器还增加了APICAdvanced Programmable Interrupt Controller,高级可编程中断控制器)部件,支持计算机中多处理器的运用。

Pentium采用PGA封装,有237个引脚。对外部总线操作的控制信号主要有M/IOW/RD/C等。

AMD公司的AMD-K5也是有代表性的第五代微处理器。

3.3.5  Pentium Pro/II/III微处理器

Intel公司于1995年、1997年、1999年和2000年相继推出Pentium ProPentium Pentium IIIPentium 4微处理器。

Pentium Pro/II/III的内部结构主要由1个存储子系统和4个处理部件组成。

·    存储器子系统Memory Subsystem):主要负责取指令和存取数据,由系统总线、第二级高速缓存L2 cache、总线接I=1部件、第一级指令高速缓存L1 cache、第一级数据高速缓存L1 cache、存储器重新排序缓冲器等组成。

·    取指/译码部件(The Fetch/Decode Unit):主要负责取指令和指令译码,由取指部件、分支目标缓冲器、指令译码器、微操作码指令序列器和换名寄存器等组成。

·    指令缓冲池(Instruction Poul/Reorder Buffer):负责对微操作码流按内容寻址来重新排序,以便分配/执行部件的顺序执行,由重新排序缓冲器构成。

·    分配/执行部件(Dispatch/Execute Unit):负责指令的超序执行,由驻留站、两个整数执行部件、两个浮点部件和地址形成部件组成。

·    退回部件(Retirement Unit):按原始程序顺序退回已完成的微操作码流,负责执行结果的回写操作,由退回部件和退回寄存器文件组组成。

Pentium Pro/II/III对取指令、执行指令操作进一步细化,超大规模的3路超级流水线式结构,顺序处理的前端部件、超序处理的内核和顺序处理的退回部件实现了超前预测、超序执行,进一步提高了操作的并行度和连续性,使处理器在每个CPU时钟可执行3条指令,流水操作达到14级。第六代微处理器除了64位外部数据线外,地址线扩展为36位,可寻址64GB的地址空间。Pentium Pro采用PGA封装,387个引脚;Pentium II采用独立接插式的Slotl封装,242个引脚:Pentium III先采用Slotl后采用PGA封装,370个引脚,对应的插槽为Socket 370

AMDK6系列微处理器也是性能优良的同类微处理器。

3.3.6  Pentium 4微处理器

2000Intel发布Pentium 4微处理器,内核代号Willamette。该处理器放弃了P6架构,而采用了全新的NetBurst微架构,因而没有沿用罗马数字序号Ⅳ而命名为Pentium 4Pentium 4使用0.18mm铝连线工艺、6CMOS,片内晶体管数4200万个,采用423pin FC-PGAFlip Chip Pin Grid Array)封装(对应Socket 423插槽)。片内一级高速缓存L1 cache8KB数据+12KB执行跟踪缓存,而二级高速缓存为256KB全速On-DieL2 cache。取指、译码、执行进一步细化,并行度更高,可达20级超级流水线;算术逻辑单元采用REERapid Execution Engine,快速执行引擎),以双倍速度来大幅提高P4的整型数运算能力。新增的144SSE2指令(第二代单指令多数据流扩展SIMD)可进行264位整数/双精度64SIMD操作,允许在浮点和整数之间进行SIMD指令转换,而且能把整数封包在MMX寄存器之内,从而解决浮点单元的瓶颈问题。

系统总线采用传统的100MHzFSB(前端系统总线),通过类似QDR4倍数据速率)技术,以物理100MHz系统总线速率来实现400MHz总线带宽(即3.2bps的数据传输速率)的效果。为保持系统带宽平衡,Pentium 4采用了两条独立的PC800 RDRAM通道,确保系统内存的数据传输速率同样达到3.2Gbps

IntelWillamette同档次的微处理器有AMD的新Athlon XP

2002年初问世的Northwood Pentium 4微处理器采用了0.13mm铜互连工艺,集成了512KB全速二级缓存,使微处理器的核心工作电压从1.75V降低到1.5V,在2MHz主频下的功耗从71W降低到不足50W,大大提高了处理器芯片的性能。

20021114Intel向全球发布了第一款支持超线程技术的Northwood Pentium 4微处理器(主频3.06GHz),使CPU整体性能越上一个新台阶。

Pentium 4主要由总线接口部件、整数组件、浮点组件、指令组件、分支目标缓冲器组件、cache组件和队列组件等构成。

Pentium 4采用NetBurst微架构设计,在不改造现有工艺的前提下提升了处理器的速度。处理器内集成了4KBBTB分支目标缓冲器(Pentium IIIBTB只有0.5KB大小),用来存储分支预测运算单元前几次所做的分支预测的跳转操作结果,片内还另外加入了“高级分支预测运算单元”,所有这些使分支预测的准确性达到93%94%,超过Pentium III分支预测能力33%Pentium 4首次集成了12KBtrace cache(跟踪缓存),用来存储片内解码单元送出来的微操作指令(可多达1200条),解决了预测错误后的微操作指令重新获取的问题。

3.06GHz以上的Pentium 4首次引入超线程(Hyper ThreadingHT)技术,使一个物理处理器可以同时执行两个独立的代码流。

3.3.7  Itanium微处理器

2002Intel推出第一款64位处理器Itanium(安腾),这是IntelHP共同开发的全新的IA-64架构,不兼容原x86-32体系。

IA-64架构计算机采用大量寄存器和多个执行单元的组织结构,如0.18μm工艺生产的Itanium 2(安腾2)片内集成了6个整数单元、4个指令存取单元、两个浮点/SIMD单元和3个分支处理单元,以及328个寄存器(其中包括64位整数寄存器128个、82位浮点寄存器128个)。

Itanium采用LIW(长指令字)将几条指令捆绑成一条128位长的指令束来加快处理速度,Itanium浮点运算能力最高达64亿次/秒,处理器引入了EPIC(显式并行)设计理念,使每个指令周期可执行约20条指令,是RISC/CISC指令集的45倍。

IA-64架构在内存寻址能力上提高了几个数量级,64位地址线可寻址近180亿GB物理内存,能充分满足大型数据库、互联网ERPEnterprise Resouce Planning)、新型LOBLine Of Business)应用程序的需要并提高它们的性能。

Itanium处理器设置了三级高速缓存(cache),一、二级装载于内核中,三级缓存类似Pentium 4的二级缓存,可在片外或整合于片内,如Itanium 2片内集成了L1L2L3三级,容量分别为32KB256KB3MB;直接映射和组/全相联映射的有机结合大大提高了缓存的效率。

为保证与x86兼容,64Itanium处理器内整合了IA-32处理模块,用来执行IA-32二进制代码,并进行动态程序优化,实现无缝链接。

Intel2003年推出0.13um制造的Madison(工作频率1.2GHz1.6GHz),2004年推出0.091um制造的Montecito2005年前后推出0.065um制造的、片内集成两个处理单元的Chivano