马洪兵hoganma@263.net62785531(O),62775255(H)答疑时间:星期一下午答疑地点:东主楼9区314第二章Pentium微处理器的体系结构2.1计算机体系结构的含义2.2Pentium微处理器的内部结构2.3实模式软件体系结构2.4保护模式软件体系结构2.5浮点部件软件体系结构2.1计算机体系结构的含义计算机体系结构=computerarchitecture(计算机系统结构)计算机体系结构是程序员所看到的系统的一些属性:概念性的结构和功能上的表现,这些属性既不同于数据流和控制的组织,也不同于逻辑设计和物理实现。Amdahl,1964计算机体系结构是连接硬件和软件的一门学科,它研究的内容不但涉及计算机硬件,也涉及计算机软件。计算机体系结构与计算机组成区别在于关心的问题不同:•计算机体系结构关心的是怎样合理地进行软硬件功能分配,为软件人员提供适用的计算机•计算机组成关心的是怎样合理地实现分配给硬件的功能和指标,提高性能价格比兼容性针对系列计算机要求所有机种间能够保持向上兼容和向后兼容向上兼容:为某个档次机种编制的软件能够不加修改地运行在比它高档的机种上向后兼容:为某个时期生产的机种编制的软件能够不加修改地运行在它之后生产的机种上兼容性针对(软件)体系结构,非硬件实现Pentium微处理器的运行模式:实模式、保护模式2.2Pentium微处理器的内部结构1.Pentium微处理器的外形和封装1993年开始推出,共生产三代:•P5(Pentium60/66)0.8m,5V电压•P54C(Pentium75/90/100/120/133/150/166/200),0.6m,3.8V电压•P55C(PentiumMMX166/200/233),0.35m,2.8V电压集成度:310万晶体管/片采用296引脚的引脚栅格阵列(PGA)陶瓷封装技术2.Pentium微处理器的功能结构预取缓冲存储器指令译码256控制ROM控制部件地址生成(U流水线)地址生成(U流水线)整数寄存器组ALU(U流水线)ALU(U流水线)筒型移位器8KB数据Cache浮点部件控制寄存器组加法器除法器乘法器80808KB代码Cache分支目标缓冲器预取地址指令指针转移校验和目标地址分页部件323232323232总线部件6464位读总线64位数据总线36位地址总线控制TLBTLB32位地址总线3.超标量与流水线①超标量和流水线的概念超标量:配置多个执行部件和指令译码电路,能同时执行多条指令。Pentium由三个执行单元组织而成,一个执行浮点指令,另两个执行整型指令(U流水线和V流水线),这意味着Pentium同时可以执三条指令超标量流水线:在CPU中把一条指令分解成多个可单独处理的操作,使每个操作在一个专门的硬件站(stage)上执行,这样一条指令需要顺序地经过流水线中多个站的处理才能完成,但是前后相连的几条指令可以依次流入流水线中,在多个站间重叠执行,因此可以实现指令的并行处理。80486的指令分PF、D1、D2、EX、WB五个操作步骤012345687时间i1PFD1D2EXWBPFD1D2EXWBPFD1D2EXWBPFD1D2EXWBi2i3i4②整数流水线五个阶段的整数流水线:•PF(预取):处理器从代码cache中预取指令•D1(译码阶段1):处理器对指令译码确定操作码和寻址信息。在这个阶段还进行指令的成对性检查和分支预测•D2(译码阶段2):产生访问存储器的地址•EX(执行):处理器或者访问数据cache,或者利用ALU、筒型移位器或其他功能单元计算结果•WB(写回):利用指令运行结果更新寄存器和标志寄存器时间i1PFD1D2EXWBPFD1D2EXWBPFD1D2EXWBPFD1D2EXWBi2i3i4012345687PFD1D2EXWBPFD1D2EXWBPFD1D2EXWBPFD1D2EXWBi5i6i7i8UVUVUVUVPentium的超标量流水线•指令配对U、V两条流水线并行执行的要满足一些前提条件,Pentium数据手册定义了配对规则:1.两条指令都是简单指令2.没有写后读和写后写的依赖关系3.一条指令不能同时既包含位移量又包含立即数4.带前缀的指令只能出现在U流水线中此外,条件分支转移指令和非条件分支转移指令和,只有当它们作为配对中的第二条指令出现时才可以配对。简单指令:完全由硬件执行而无需任何微码控制,在一个时钟周期内执行的指令•movreg,reg/mem/imm•movmem,reg/imm•alureg,reg/mem/imm•alumem,reg/imm•increg/mem•decreg/mem•pushreg/mem•popreg•leareg,mem•jmp/call/jccnear•nop例:MOVAX,5INCBXMOVAX,5INCAX•分支预测P.310③浮点流水线八个阶段的浮点流水线:•PF预取•D1译码阶段1•D2译码阶段2•EX取操作数•X1浮点执行步骤1•X2浮点执行步骤2•WT写浮点数•ER出错报告浮点流水线中的前五个步骤与整数流水线中的五个步骤是同步执行的,只是多出三个步骤4.CacheP.3092.3实模式软件体系结构1.寄存器结构0151631015015163178ALBLCLDLAXBXCXDXAHBHCHDHEAXEBXECXEDXIPCSDSSSESFSGSSPBPSIDIESPEBPESIEDIFLAGSCR0指令指针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数据寄存器015163178ALBLCLDLAXBXCXDXAHBHCHDHEAXEBXECXEDX5.指针和变址寄存器ESP,EBP,ESI,EDI作通用数据寄存器用SPBPSIDIESPEBPESIEDI0151631作指针和变址寄存器用时为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