微处理器的体系结构.ppt
马洪兵马洪兵62785531(O),62775255(H)答疑时间:星期一下午答疑时间:星期一下午答疑地点:东主楼答疑地点:东主楼9区区314第二章 Pentium微处理器的体系结构2.1 计算机体系结构的含义计算机体系结构的含义2.2 Pentium微处理器的内部结构微处理器的内部结构2.3 实模式软件体系结构实模式软件体系结构2.4 保护模式软件体系结构保护模式软件体系结构2.5 浮点部件软件体系结构浮点部件软件体系结构2.1 2.1 计算机体系结构的含义计算机体系结构的含义计算机体系结构计算机体系结构=computer architecture(计算机系统结构计算机系统结构)计算机体系结构是程序员所看到的系统的一些属性:计算机体系结构是程序员所看到的系统的一些属性:概念性的结构和功能上的表现,这些属性既不同于数概念性的结构和功能上的表现,这些属性既不同于数据流和控制的组织,也不同于逻辑设计和物理实现。据流和控制的组织,也不同于逻辑设计和物理实现。Amdahl,1964计算机体系结构是连接硬件和软件的一门学科,它研计算机体系结构是连接硬件和软件的一门学科,它研究的内容不但涉及计算机硬件,也涉及计算机软件。究的内容不但涉及计算机硬件,也涉及计算机软件。计算机体系结构与计算机组成计算机体系结构与计算机组成区别在于关心的问题不同:区别在于关心的问题不同:计算机体系结构关心的是怎样合理地进行软硬计算机体系结构关心的是怎样合理地进行软硬件功能分配,为软件人员提供适用的计算机件功能分配,为软件人员提供适用的计算机计算机组成关心的是怎样合理地实现分配给硬计算机组成关心的是怎样合理地实现分配给硬件的功能和指标,提高性能价格比件的功能和指标,提高性能价格比兼容性兼容性针对系列计算机针对系列计算机要求所有机种间能够保持向上兼容和向后兼容要求所有机种间能够保持向上兼容和向后兼容向上兼容:为某个档次机种编制的软件能够不加修向上兼容:为某个档次机种编制的软件能够不加修改地运行在比它高档的机种上改地运行在比它高档的机种上向后兼容:为某个时期生产的机种编制的软件能够向后兼容:为某个时期生产的机种编制的软件能够不加修改地运行在它之后生产的机种上不加修改地运行在它之后生产的机种上兼容性兼容性 针对(软件)体系结构,非硬件实现针对(软件)体系结构,非硬件实现Pentium微处理器的运行模式:实模式、保护模式微处理器的运行模式:实模式、保护模式2.2 2.2 PentiumPentium微处理器的内部结构微处理器的内部结构1.Pentium微处理器的外形和封装微处理器的外形和封装1993年开始推出,共生产三代:年开始推出,共生产三代:P5(Pentium 60/66)0.8 m,5V电压电压P54C(Pentium 75/90/100/120/133/150/166/200),0.6 m,3.8V电压电压P55C(Pentium MMX 166/200/233),0.35 m,2.8V电压电压集成度:集成度:310万晶体管万晶体管/片片采用采用296引脚的引脚栅格阵列(引脚的引脚栅格阵列(PGA)陶瓷封装技术陶瓷封装技术2.Pentium微处理器的功能结构微处理器的功能结构 3.超标量与流水线超标量与流水线 超标量和流水线的概念超标量和流水线的概念超标量:配置多个执行部件和指令译码电路,能同超标量:配置多个执行部件和指令译码电路,能同时执行多条指令。时执行多条指令。Pentium由三个执行单元组织而成,一个执行浮点指由三个执行单元组织而成,一个执行浮点指令,另两个执行整型指令(令,另两个执行整型指令(U流水线和流水线和V流水线流水线),),这意味着这意味着Pentium同时可以执三条指令同时可以执三条指令超标量超标量流水线:在流水线:在CPU中把一条指令分解成多个可单独处中把一条指令分解成多个可单独处理的操作,使每个操作在一个专门的硬件站理的操作,使每个操作在一个专门的硬件站(stage)上执行,这样一条指令需要顺序地经过流上执行,这样一条指令需要顺序地经过流水线中多个站的处理才能完成,但是前后相连的几水线中多个站的处理才能完成,但是前后相连的几条指令可以依次流入流水线中,在多个站间重叠执条指令可以依次流入流水线中,在多个站间重叠执行,因此可以实现指令的并行处理。行,因此可以实现指令的并行处理。80486的指令分的指令分PF、D1、D2、EX、WB五个操作步骤五个操作步骤012345687时间时间i1PF D1 D2 EX WBPF D1 D2 EX WBPF D1 D2 EX WBPF D1 D2 EX WBi2i3i4 整数流水线整数流水线五个阶段的整数流水线:五个阶段的整数流水线:PF(预取预取):处理器从代码处理器从代码cache中预取指令中预取指令D1(译码阶段译码阶段1):处理器对指令译码确定操作码:处理器对指令译码确定操作码和寻址信息。在这个阶段还进行指令的成对性检和寻址信息。在这个阶段还进行指令的成对性检查和分支预测查和分支预测D2(译码阶段译码阶段2):产生访问存储器的地址:产生访问存储器的地址EX(执行执行):处理器或者访问数据:处理器或者访问数据cache,或者利或者利用用ALU、筒型移位器或其他功能单元计算结果筒型移位器或其他功能单元计算结果WB(写回写回):利用指令运行结果更新寄存器和标:利用指令运行结果更新寄存器和标志寄存器志寄存器时间时间i1PF D1 D2 EX WBPF D1 D2 EX WBPF D1 D2 EX WBPF D1 D2 EX WBi2i3i4012345687PF D1 D2 EX WBPF D1 D2 EX WBPF D1 D2 EX WBPF D1 D2 EX WBi5i6i7i8UVUVUVUVPentium的超标量流水线的超标量流水线指令配对指令配对U、V两条两条流水线并行执行的要满足一些前提条件,流水线并行执行的要满足一些前提条件,Pentium数据手册定义了配对规则:数据手册定义了配对规则:1.两条指令都是简单指令两条指令都是简单指令2.没有写后读和写后写的依赖关系没有写后读和写后写的依赖关系3.一条指令不能同时既包含位移量又包含立即数一条指令不能同时既包含位移量又包含立即数4.带前缀的指令只能出现在带前缀的指令只能出现在U流水线中流水线中此外,条件分支转移指令和非条件分支转移指令和,此外,条件分支转移指令和非条件分支转移指令和,只有当它们作为配对中的第二条指令出现时才可以配只有当它们作为配对中的第二条指令出现时才可以配对。对。简单指令:完全由硬件执行而无需任何微码控制,简单指令:完全由硬件执行而无需任何微码控制,在一个时钟周期内执行的指令在一个时钟周期内执行的指令mov reg,reg/mem/immmov mem,reg/immalu reg,reg/mem/immalu mem,reg/imminc reg/memdec reg/mempush reg/mempop reglea reg,memjmp/call/jcc nearnop例:例:MOV AX,5INC BXMOV AX,5INC AX分支预测分支预测P.310 浮点流水线浮点流水线八个阶段的浮点流水线:八个阶段的浮点流水线:PF 预取预取D1 译码阶段译码阶段1D2 译码阶段译码阶段2EX 取操作数取操作数X1 浮点执行步骤浮点执行步骤1X2 浮点执行步骤浮点执行步骤2WT 写浮点数写浮点数ER 出错报告出错报告浮点流水线中的前五个步骤与整数流水线中的五个浮点流水线中的前五个步骤与整数流水线中的五个步骤是同步执行的,只是多出三个步骤步骤是同步执行的,只是多出三个步骤4.CacheP.3092.3 2.3 实实模式软件体系结构模式软件体系结构1.寄存器结构寄存器结构指令指针指令指针IP段寄存器段寄存器CS,DS,SS,ES,FS,GS通用通用寄存器寄存器EAX,EBX,ECX,EDX变址寄存器变址寄存器ESI,EDI指针寄存器指针寄存器EBP,ESP标志寄存器标志寄存器FLAGS控制寄存器控制寄存器0(CR0)CR0的第的第0位叫保护允许位位叫保护允许位(PE),PE用于对实模式和保护模式进行用于对实模式和保护模式进行切换,切换,PE置置0时选择实模式运行时选择实模式运行2.存储器地址空间和数据组织存储器地址空间和数据组织220=1MB,地址由地址由00000-FFFFF(H)编码编码若存放的信息是字节,则按顺序存放若存放的信息是字节,则按顺序存放若存放的信息是字,则将字的低位字节存放在低地址,若存放的信息是字,则将字的低位字节存放在低地址,高位字节存放在高地址高位字节存放在高地址若存放的信息是双字,则将双字的低位字存放在低地若存放的信息是双字,则将双字的低位字存放在低地址,高位字存放在高地址址,高位字存放在高地址对准双字界域:对应地址是对准双字界域:对应地址是4的倍数的倍数例例1.双字双字A00055FF如何存储在地址为如何存储在地址为0210C的存储器中的存储器中例例2.双字双字0123ABCD如何存储在地址为如何存储在地址为02102的存储器中的存储器中1MB存储存储空间分通用和专用两个区域空间分通用和专用两个区域00000-003FF 专用,存放中断向量表专用,存放中断向量表00400-FFFFF通用通用中断向量表表内指针用来指出相应的中断服务程序的中断向量表表内指针用来指出相应的中断服务程序的起始点,表内每个指针占起始点,表内每个指针占2个字,占据较高地址的是个字,占据较高地址的是段基址,占据较低地址的是偏移量段基址,占据较低地址的是偏移量?中断向量表可以包含?中断向量表可以包含 个中断指针个中断指针3.段寄存器和存储器分段段寄存器和存储器分段1MB的存储空间被分成段,每段的存储空间被分成段,每段64KB段是可独立寻址的存储器部分段是可独立寻址的存储器部分6个段寄存器:保存个段寄存器:保存16位段基址位段基址CS 代码段代码段SS 堆栈段堆栈段DS 数据段数据段ES 附加段附加段FS 数据段数据段FGS数据段数据段G4.通用寄存器通用寄存器在程序执行时暂时保存中间结果。在程序执行时暂时保存中间结果。在进行算术运算和逻辑运算时,通用寄存器任何一个在进行算术运算和逻辑运算时,通用寄存器任何一个都可以作为源操作数或目的操作数都可以作为源操作数或目的操作数A 累加器寄存器累加器寄存器B 基址寄存器基址寄存器C 计数寄存器计数寄存器D 数据寄存器数据寄存器5.指针和变址寄存器指针和变址寄存器ESP,EBP,ESI,EDI作通用数据寄存器用作通用数据寄存器用作指针和变址寄存器作指针和变址寄存器用时为用时为16位,位,SP,BP,SI,DIP.526.堆栈堆栈P.657.标志寄存器标志寄存器P.538.实际地址和逻辑地址实际地址和逻辑地址P.64例例3.假设段寄存器内容为假设段寄存器内容为002A,偏移量为偏移量为0023,求构成的物理地,求构成的物理地址址9.I/O地址空间地址空间Pentium存储器和存储器和I/O地址空间是分离的。地址空间是分离的。I/O地址空间安放地址空间安放I/O接口,如打印机、终端接口接口,如打印机、终端接口PentiumI/O地址空间为地址空间为64KB,地址范围地址范围0000-FFFF每一个地址对应一个字节宽的每一个地址对应一个字节宽的I/O端口端口习题习题1.什么是计算机体系结构?什么是计算机体系结构?2.Pentium微处理器的整数流水线是怎样工作的?微处理器的整数流水线是怎样工作的?3.Pentium微处理器的配对规则是什么微处理器的配对规则是什么4.分支转移预测功能的意义是什么?分支转移预测功能的意义是什么?5.实模式下实模式下Pentium微处理器的堆栈操作是怎样进行微处理器的堆栈操作是怎样进行的,试举例说明的,试举例说明6.字字ABCD(H)存放地址为存放地址为0A002(H)的存储器中,如何的存储器中,如何存放,是对准字还是非对准字?存放,是对准字还是非对准字?7.计算下列物理地址:计算下列物理地址:1000:12340100:ABCD