《第2IntelIA32处理器结构与原理》由会员分享,可在线阅读,更多相关《第2IntelIA32处理器结构与原理(69页珍藏版)》请在金锄头文库上搜索。
1、http:/ (第第2 2版版) )第第2章章 Intel IA-32处理器结构与原处理器结构与原理理沛秋驻闽恐拷订绪劲径菊屿网底俘唆赎汹马痈月侣舔眯晶为壹曼译长增糖第2IntelIA32处理器结构与原理第一章1http:/ (第第2 2版版) )2.1.1 2.1.1 基本概念基本概念基本概念基本概念1. 1. 流水线流水线流水线流水线把一条指令的操作分成多个更小的步骤,每个步骤的操作把一条指令的操作分成多个更小的步骤,每个步骤的操作由专门的电路完成。由专门的电路完成。利用各电路间可并行执行的特点,让各个步骤的执行在时利用各电路间可并行执行的特点,让各个步骤的执行在时间上重叠起来。间上重叠起
2、来。 取指取指1 译码译码1执行执行1 取指取指2 译码译码2执行执行2 取指取指3译码译码3 执行执行3取指取指1 译码译码1执行执行1取指取指2 译码译码2执行执行2取指取指3 译码译码3执行执行3流水线执行方式流水线执行方式2.1 Pentium处理器处理器轰惩梢芍会寺垣耻秆跟议陶羔莲购董萧蛹耕扩依囱常涩栅新菲闲耙国逞舰第2IntelIA32处理器结构与原理第一章2http:/ (第第2 2版版) )2. CISC与与RISC技术技术复杂指令集计算机(复杂指令集计算机(复杂指令集计算机(复杂指令集计算机(CISCCISC) :指令格式比较复杂,通指令格式比较复杂,通常采用不等长指令设计,
3、指令的寻址方式丰富,绝大多常采用不等长指令设计,指令的寻址方式丰富,绝大多数指令的执行需要多个时钟周期。数指令的执行需要多个时钟周期。缺点:缺点: 随着计算机结构的改进,指令的功能和指令条数增加,随着计算机结构的改进,指令的功能和指令条数增加,指令系统变得异常庞大。指令系统变得异常庞大。复杂的指令格式和众多的寻址方式使得组合逻辑电路复杂的指令格式和众多的寻址方式使得组合逻辑电路设计更为复杂,采用微程序又会降低执行速度。设计更为复杂,采用微程序又会降低执行速度。 复杂不规整的指令会降低流水线的性能复杂不规整的指令会降低流水线的性能 随着指令条数的增加,完成同一任务的指令组合变多,随着指令条数的增
4、加,完成同一任务的指令组合变多,编译系统在最后优化的时候分析就变得更加困难编译系统在最后优化的时候分析就变得更加困难 磋呢各退璃岂篷答磐蛇聘膀墓战衰酋槽仔透拳剿己其风钵互瞅拆屋躇灼闻第2IntelIA32处理器结构与原理第一章3http:/ (第第2 2版版) )简单指令集计算机(简单指令集计算机(简单指令集计算机(简单指令集计算机(RISCRISC):):):):通过简化指令,使得计算通过简化指令,使得计算机的结构变得简单、合理,从而提高机的结构变得简单、合理,从而提高CPU的执行速度。的执行速度。 优化指令系统,只选用使用频率高的指令,减少指令优化指令系统,只选用使用频率高的指令,减少指令
5、条数。条数。采用简单的指令格式和寻址方式,指令的长度固定,采用简单的指令格式和寻址方式,指令的长度固定,大多数指令能在一个时钟周期内完成。大多数指令能在一个时钟周期内完成。除了除了Load/Store指令能访问存储器外外,其他任何指指令能访问存储器外外,其他任何指令的操作数或者为立即数或者存放在寄存器中,因此,令的操作数或者为立即数或者存放在寄存器中,因此,进行的是寄存器与寄存器之间从操作。通常进行的是寄存器与寄存器之间从操作。通常RISC处处理器设计了大量的寄存器临时存放数据。理器设计了大量的寄存器临时存放数据。由于计算机结构简单,所以主要采用硬布线逻辑,较由于计算机结构简单,所以主要采用硬
6、布线逻辑,较少使用或者不用微程序控制。少使用或者不用微程序控制。锣霄抑唇倚将真缄膊黑陀谐骗溪哆鄂锁萧栈游筑坟披寓郊与动渗邑炬稀挡第2IntelIA32处理器结构与原理第一章4http:/ (第第2 2版版) )3. 高速缓冲存储器(高速缓冲存储器(Cache)主机主机主存主存高速缓冲存储器高速缓冲存储器Cache的设立依据是程序访问的局部性原理的设立依据是程序访问的局部性原理 :for(int i; i100; i+) ai=i*i;缴痢杖议奸涉降守搁悟下鸵或袄债他摇供碰谗莲闷啮寝蚤蘑构俐缩艇姥寻第2IntelIA32处理器结构与原理第一章5http:/ (第第2 2版版) )2.1.2 Pe
7、ntium处理器的特性处理器的特性80x86系列微处理器兼容系列微处理器兼容有有64位数据总线、位数据总线、 32位地址总线,寻址空间位地址总线,寻址空间4GB。RISC型超标量结构型超标量结构 - - 两个两个两个两个5 5级整数指令流水线,一个级整数指令流水线,一个级整数指令流水线,一个级整数指令流水线,一个8 8级浮点流水线。级浮点流水线。级浮点流水线。级浮点流水线。具有超级流水线技术的高性能浮点运算器。具有超级流水线技术的高性能浮点运算器。数据数据-代码分离式高速缓存,符合代码分离式高速缓存,符合MESI协议。协议。增强的错误检测和报告功能。增强的错误检测和报告功能。利用片上分支目标缓
8、冲器提高分支指令预测准确性。利用片上分支目标缓冲器提高分支指令预测准确性。常用的指令不采用微程序设计,而改用硬件实现。常用的指令不采用微程序设计,而改用硬件实现。支持支持64位外部数据总线突发传输方式位外部数据总线突发传输方式通过通过APIC总线支持多处理器系统总线支持多处理器系统赤永肿步甜吝依懊宦蜡揉挖歉寇服镊嚎硷狈死痰寂焰绰勇悉翅牌蘸湾飞点第2IntelIA32处理器结构与原理第一章6http:/ (第第2 2版版) )分支目标分支目标缓冲器缓冲器 代码代码Cache 8KBTLB指令指令指针指针预取缓冲存储器预取缓冲存储器指令译码部件指令译码部件256位位总总 线线 接接 口口 部部 件
9、件分分页页部部件件64位数位数据总线据总线 预取预取地址地址32位地位地址总线址总线控制控制控控 制制 部部 件件地址生成地址生成(U流水线)流水线)地址生成地址生成(V流水线)流水线)控制控制ROMALU(U流水线)流水线)ALU(V流水线)流水线)整数寄存器组整数寄存器组桶形移位器桶形移位器数据数据 Cache 8KBTLB浮点部件浮点部件控制控制寄存器组寄存器组加法器加法器除法器除法器乘法器乘法器80位位80位位分分支支检检测测和和目目标标地地址址64位数位数据总线据总线32位地位地址总线址总线32位位32位位32位位32位位32位位32位位= =指令预取指令预取指令预取指令预取= =首
10、次译码首次译码首次译码首次译码= =二次译码二次译码二次译码二次译码= =指令执行指令执行指令执行指令执行= =写回写回写回写回R R2.1.3 Pentium处理器的内部结构与工作原理处理器的内部结构与工作原理毡艰惶脑摔型挫捷液悔尽顷闯尚卸朗份肠谢剑睛罗模昔矛梗鉴绝怯嫂癣吞第2IntelIA32处理器结构与原理第一章7http:/ (第第2 2版版) )指令配对规则指令配对规则配对的指令必须是简单指令配对的指令必须是简单指令两条指令之间不可存在两条指令之间不可存在“写后读写后读”或或“写后写写后写”这这样的寄存器相关性样的寄存器相关性一条指令不能同时既包含位移量又包含立即数一条指令不能同时既
11、包含位移量又包含立即数带前缀(带前缀(JCC指令的指令的OF除外)的指令只能出现在除外)的指令只能出现在U流水中流水中浮点运算指令不能和任何指令配对(浮点运算指令不能和任何指令配对(FCXH除外)除外)MOV AX, 200MOV CX, AXMOV AX, 200MOV AX, 412窖涝安渐栓虑纠像搐皖竿凶霄予柠痘弛簿阶姐版劲弓壁敏券私抿祟潍蛔配第2IntelIA32处理器结构与原理第一章8http:/ (第第2 2版版) )2.2 P6微结构的处理器微结构的处理器2.2.1 P6微结构概述微结构概述 采用采用12级级3流水超标量结构流水超标量结构多路分支预测多路分支预测- -预测分支未来
12、的方向,为处理器预预测分支未来的方向,为处理器预预测分支未来的方向,为处理器预预测分支未来的方向,为处理器预 先译码分支之后的指令提供依据先译码分支之后的指令提供依据先译码分支之后的指令提供依据先译码分支之后的指令提供依据 动态数据流分析动态数据流分析 - - 处理器分析几条指令的数据相关性和资源可用性处理器分析几条指令的数据相关性和资源可用性处理器分析几条指令的数据相关性和资源可用性处理器分析几条指令的数据相关性和资源可用性- - 以优化的执行顺序高效地乱序执行这些指令以优化的执行顺序高效地乱序执行这些指令以优化的执行顺序高效地乱序执行这些指令以优化的执行顺序高效地乱序执行这些指令 推测执行
13、推测执行 - - 在假设分支走向基础上,执行其中一路指令流在假设分支走向基础上,执行其中一路指令流在假设分支走向基础上,执行其中一路指令流在假设分支走向基础上,执行其中一路指令流 双独立总线结构双独立总线结构- - 后端总线连接到后端总线连接到后端总线连接到后端总线连接到L2 CacheL2 Cache上上上上- - 前端总线前端总线前端总线前端总线FSBFSB主要负责主存储器的信息传送操作主要负责主存储器的信息传送操作主要负责主存储器的信息传送操作主要负责主存储器的信息传送操作Pentium IIPentium II北桥北桥北桥北桥内存内存内存内存FSB 前端总线前端总线L2 CacheL2
14、 Cache后端总线后端总线陕惶袒胸崭航霹憨伶扳酌倒话没煞妨烬爱图洞惠偿师枯涸瑟祝赂涪对杏肘第2IntelIA32处理器结构与原理第一章9http:/ (第第2 2版版) )关于乱序执行技术关于乱序执行技术为了提高指令流的执行效率,乱序执行核心监视很为了提高指令流的执行效率,乱序执行核心监视很多条指令,然后在不损失数据完整性的前提下,采用多条指令,然后在不损失数据完整性的前提下,采用能充分发挥多个处理部件并行工作的指令顺序来执行。能充分发挥多个处理部件并行工作的指令顺序来执行。这个指令顺序可能和原始程序的不一样。这个指令顺序可能和原始程序的不一样。1)A=B+C2)P=A*23)Q=D-E1)
15、和)和3)可配对同时执行)可配对同时执行馋终袁疆祈缆缉嵌项癌签窘拈斟篡犁伺族愁铜感挪全窄历吸鸟袋妻碑汾冰第2IntelIA32处理器结构与原理第一章10http:/ (第第2 2版版) )2.2.2 Pentium III处理器内部结构及工作原理处理器内部结构及工作原理 擂树搭蝶臭萤瓢饲央及疑癸弧甘县肇伦宵拢百徐榆注琅周计捡滁里嫂肉沸第2IntelIA32处理器结构与原理第一章11http:/ (第第2 2版版) )2.3 NetBurst微结构的处理器微结构的处理器 2.3.1 NetBurst微结构概述微结构概述 1. 1. 超级流水线技术超级流水线技术超级流水线技术超级流水线技术衡量衡量
16、CPU的性能指标是的性能指标是CPU完成应用程序所需的总时完成应用程序所需的总时间。其计算公式如下:间。其计算公式如下: CPUCPU性能性能性能性能=CPU=CPU的主频的主频的主频的主频IPCIPC IPC是每时钟执行的指令条数。是每时钟执行的指令条数。 要提高要提高CPU性能,可采用提高性能,可采用提高CPU主频和提高主频和提高IPC。要提高主频要提高主频要提高主频要提高主频减少每个流水级的执行周期减少每个流水级的执行周期减少每个流水级的执行周期减少每个流水级的执行周期要减小每要减小每要减小每要减小每个流水级的任务量个流水级的任务量个流水级的任务量个流水级的任务量将任务再分解将任务再分解
17、将任务再分解将任务再分解增加流水线深度增加流水线深度增加流水线深度增加流水线深度占赛夸朱毋茎瀑液琼庐挥慧庙欺盔赚让肃渴案搜少磨理琢秒工谷啊弥独鲤第2IntelIA32处理器结构与原理第一章12http:/ (第第2 2版版) )2.快速执行引擎快速执行引擎 NetBurst微结构中配置了一种时钟缓冲器电路,可微结构中配置了一种时钟缓冲器电路,可以使该结构下以使该结构下2个执行简单指令的个执行简单指令的ALU和和2个存储地址个存储地址AGU运行在两倍的运行在两倍的CPU核心频率下核心频率下 3.高级动态执行高级动态执行 一个高达一个高达126条指令的超大指令窗口,避免了处理器条指令的超大指令窗口
18、,避免了处理器为了等待配对指令而出现暂时的停顿,也减少了因为了等待配对指令而出现暂时的停顿,也减少了因Cache没命中,到主存中获取数据而产生等待的次数。没命中,到主存中获取数据而产生等待的次数。 一个一个4KB的分支目标缓冲器的分支目标缓冲器BTB记录更多的过去分记录更多的过去分支的历史细节,再配以改进的分支预测算法,使分支的历史细节,再配以改进的分支预测算法,使分支预测失误率比支预测失误率比Pentium III下降了下降了33 。 潭敛员野械麻脏此梨桑敛幼岛势质沉措踊榷屿美注铺睦樱度四烙金厕奈嘎第2IntelIA32处理器结构与原理第一章13http:/ (第第2 2版版) )4. 执行
19、跟踪执行跟踪Cache(execution trace Cache) 放弃放弃L1 指令指令Cache的设计,采用执行跟踪的设计,采用执行跟踪Cache,它,它在译码器的后面,按程序流顺序存放已经译码好的最在译码器的后面,按程序流顺序存放已经译码好的最多多12,000条微指令,条微指令, 5. 高速系统总线高速系统总线采用了一种采用了一种 “四倍速四倍速”技术技术quad pumping,使得,使得前端总线能很方便的工作再前端总线能很方便的工作再4倍于系统总线的频率上。倍于系统总线的频率上。6. 高级传输高级传输Cache采用采用8路相联的片内路相联的片内L2 Cache ,与核心同频工作,与
20、,与核心同频工作,与CPU核心的专用总线宽度为核心的专用总线宽度为256位,是过去的位,是过去的4倍,这倍,这样主频为样主频为2.8GHz的的Pentium 4其数据带宽将为其数据带宽将为89.6GBps。 惮诗酗驯茵农肤斑慰镊晦射苛珠斗虎弟铀衅纽俘邱铱绞雅硬只惩蛮吞应摆第2IntelIA32处理器结构与原理第一章14http:/ (第第2 2版版) )2.3.2 Pentium 4处理器内部结构及工作原处理器内部结构及工作原理理 蒲终罢衣纤图畴姚靶贞姜瘪魄醉失翻做焕鹃梁脑恳脐苦册履吹核毛百恰隋第2IntelIA32处理器结构与原理第一章15http:/ (第第2 2版版) )2.3.3 SI
21、MD技术技术 5757条条条条MMXMMX指令操作指令操作指令操作指令操作8 8个个个个6464位长的位长的位长的位长的MMXMMX寄存器内的紧寄存器内的紧寄存器内的紧寄存器内的紧缩字节(缩字节(缩字节(缩字节(8 8个字节打包成一个个字节打包成一个个字节打包成一个个字节打包成一个6464位长的数据)、字或位长的数据)、字或位长的数据)、字或位长的数据)、字或双字整型数上执行双字整型数上执行双字整型数上执行双字整型数上执行SIMDSIMD7070条条条条SSESSE指令处理在指令处理在指令处理在指令处理在8 8个个个个128128位的位的位的位的XMMXMM寄存器中的单精寄存器中的单精寄存器中
22、的单精寄存器中的单精度浮点数和在度浮点数和在度浮点数和在度浮点数和在MMXMMX寄存器中的紧缩整数。高速缓存寄存器中的紧缩整数。高速缓存寄存器中的紧缩整数。高速缓存寄存器中的紧缩整数。高速缓存控制指令通过增加主存到控制指令通过增加主存到控制指令通过增加主存到控制指令通过增加主存到CacheCache和处理器到主存的数和处理器到主存的数和处理器到主存的数和处理器到主存的数据流,改善存储性能,据流,改善存储性能,据流,改善存储性能,据流,改善存储性能,SIMDSIMD浮点指令使处理器能同浮点指令使处理器能同浮点指令使处理器能同浮点指令使处理器能同时执行时执行时执行时执行4 4个浮点操作。个浮点操作
23、。个浮点操作。个浮点操作。144144条条条条SSE2SSE2指令处理在指令处理在指令处理在指令处理在XMMXMM寄存器中的紧缩双精度浮寄存器中的紧缩双精度浮寄存器中的紧缩双精度浮寄存器中的紧缩双精度浮点数和在点数和在点数和在点数和在MMXMMX与与与与XMMXMM寄存器中的紧缩整数。寄存器中的紧缩整数。寄存器中的紧缩整数。寄存器中的紧缩整数。 1313条条条条SSE3SSE3指令增强指令增强指令增强指令增强SSE, SSE2SSE, SSE2和和和和x87FPUx87FPU数学能力的性数学能力的性数学能力的性数学能力的性能。能。能。能。贺棘糜硕侧弘萄婚凹淆褥伴损腋勿搜疫蝴煤酚椎妓瘴望蟹羌搞刺
24、怯凛耸碌第2IntelIA32处理器结构与原理第一章16http:/ (第第2 2版版) )2.3.4 超线程超线程(Hyper-Threading, HT)技术技术允许物理上单个的处理器采用共享执行资源的方法同允许物理上单个的处理器采用共享执行资源的方法同允许物理上单个的处理器采用共享执行资源的方法同允许物理上单个的处理器采用共享执行资源的方法同时执行两个或更多的分离代码流(线程)时执行两个或更多的分离代码流(线程)时执行两个或更多的分离代码流(线程)时执行两个或更多的分离代码流(线程)HTHT技术由单处理器上的技术由单处理器上的技术由单处理器上的技术由单处理器上的2 2个或者多个逻辑处理器
25、组成,个或者多个逻辑处理器组成,个或者多个逻辑处理器组成,个或者多个逻辑处理器组成,每个逻辑处理器都有自己的每个逻辑处理器都有自己的每个逻辑处理器都有自己的每个逻辑处理器都有自己的IA-32IA-32结构状态结构状态结构状态结构状态(AS)(AS)每个逻辑处理器都有自己的每个逻辑处理器都有自己的每个逻辑处理器都有自己的每个逻辑处理器都有自己的IA-32IA-32通用寄存器、段寄通用寄存器、段寄通用寄存器、段寄通用寄存器、段寄存器、控制寄存器、调试寄存器等存器、控制寄存器、调试寄存器等存器、控制寄存器、调试寄存器等存器、控制寄存器、调试寄存器等逻辑处理器共享的资源包括执行引擎和系统总线接口逻辑处
26、理器共享的资源包括执行引擎和系统总线接口逻辑处理器共享的资源包括执行引擎和系统总线接口逻辑处理器共享的资源包括执行引擎和系统总线接口ASAS处理器核心处理器核心支持支持HT的的IA-32处理器处理器2个逻辑处理器个逻辑处理器共享一个核共享一个核AS=IA-32结构状态结构状态AS处理器核心处理器核心传统多传统多IA-32处理器系统处理器系统每个处理器一每个处理器一个独立封装个独立封装AS处理器核心处理器核心卒榨豪绘垂茁弥写呆烈浩划烹盔延以惟鲁裴掏诊符替住痰烹左重码奶章幼第2IntelIA32处理器结构与原理第一章17http:/ (第第2 2版版) )2.3.5 多核多核(Dual-Core)
27、技术技术 通过在一个物理封装中包含两个分离的完整执行核来通过在一个物理封装中包含两个分离的完整执行核来通过在一个物理封装中包含两个分离的完整执行核来通过在一个物理封装中包含两个分离的完整执行核来提供硬件多线程能力提供硬件多线程能力提供硬件多线程能力提供硬件多线程能力每个完整的执行核不仅有自己的每个完整的执行核不仅有自己的每个完整的执行核不仅有自己的每个完整的执行核不仅有自己的ASAS,还拥有自己的执,还拥有自己的执,还拥有自己的执,还拥有自己的执行引擎,总线接口与行引擎,总线接口与行引擎,总线接口与行引擎,总线接口与L2 Cache L2 Cache 。结构上有支持结构上有支持结构上有支持结构
28、上有支持HTHT技术的和不支持技术的和不支持技术的和不支持技术的和不支持HTHT技术的双核结构技术的双核结构技术的双核结构技术的双核结构Pentium D IA-32处理器处理器ASAS执行引擎执行引擎执行引擎执行引擎Local APICLocal APICL2 CacheL2 Cache总线接口总线接口总线接口总线接口Pentium EE IA-32处理器处理器系统总线系统总线ASAS执行引擎执行引擎执行引擎执行引擎LocalAPICL2 CacheL2 Cache总线接口总线接口总线接口总线接口系统总线系统总线ASASLocalAPICLocalAPICLocalAPIC朗绕篡噬符侨咐漓心
29、杠唉硼刁顽陡咆召苹底元弄趣接粳俱手岛屏予憾喻壶第2IntelIA32处理器结构与原理第一章18http:/ (第第2 2版版) )AMD的双核的双核Intel的双核的双核窿蜜袭识芦出裂觅内客躯拎按磕监港燕锹茬蕉比长愤幽恨突烹轿彭侵渭造第2IntelIA32处理器结构与原理第一章19http:/ (第第2 2版版) )2.3.6 Intel的的EM64T技术技术 完全兼容现在的完全兼容现在的IA-32结构结构具有传统具有传统IA-32模式和模式和IA-32e模式,模式,IA-32e模式模式包括包括64位模式和兼容模式(允许现有程序无需位模式和兼容模式(允许现有程序无需修改就运行在传统修改就运行在
30、传统IA-32模式和兼容模式下)模式和兼容模式下)64位模式下具有以下特性:位模式下具有以下特性:64位平板线性地址位平板线性地址增加增加8个新的通用寄存器个新的通用寄存器增加增加8个新的流个新的流SIMD扩展(扩展(SSE, SSE2和和SSE3)64位宽的通用寄存器和指令指针寄存器位宽的通用寄存器和指令指针寄存器运查援盆函帘仪寐饥催狰偿将蟹店苗募靛拳卢袋澳警拳椒哄贩尹劲漓浇认第2IntelIA32处理器结构与原理第一章20http:/ (第第2 2版版) )2.4 Core微结构的处理器微结构的处理器 2.4.1 Core微结构的引入微结构的引入 NetBurst微结构的缺陷:微结构的缺陷
31、:IPC表现不佳,同频情况下表现不佳,同频情况下Pentium 4有时还不如前有时还不如前代的代的Pentium III频率提高后,功耗随之上升,功耗过高,影响了主频频率提高后,功耗随之上升,功耗过高,影响了主频的进一步提高。的进一步提高。 Power = CPower = Cdynamicdynamic 电压电压电压电压 电压电压电压电压 频率频率频率频率 其中其中Cdynamic是面积与处于活跃状态的数据位是面积与处于活跃状态的数据位翻转的翻转的触发器数量的乘积。触发器数量的乘积。酸手荤尾掐泣凿瞬绵增沛苹怜矩剔响疽锑氓阎莽恫梭厕蕉嫁库著磁喘堪闽第2IntelIA32处理器结构与原理第一章2
32、1http:/ (第第2 2版版) )Core微结构的处理器系列微结构的处理器系列桌面平台的桌面平台的Conroe 移动平台的移动平台的Merom 服务器平台的服务器平台的Woodcrest Core处理器处理器 Core 2处理器处理器 单核的单核的Core Solo 双核的双核的Core Duo, Core 2 Duo 四核的四核的Core 2 Quad 哥扰阿怂蚜捞颇钦充和江肋崎偏浙房枪佐亨删篷啸恍炬险编轧僻靳迅伦默第2IntelIA32处理器结构与原理第一章22http:/ (第第2 2版版) )2.4.2 Conroe处理器内部结构与特点处理器内部结构与特点CoreCore微结构微结
33、构微结构微结构丢揖窟蝗躇障寄喀理济恃镭索壤哑饮解颖搔江痕躯钵旺砰演函螺嘶韧阐轻第2IntelIA32处理器结构与原理第一章23http:/ (第第2 2版版) )ConroeConroe处理器内部结构示意图处理器内部结构示意图处理器内部结构示意图处理器内部结构示意图 除钝么亮虏长运跑掇惜拼瞬狗寐硫辰摈舀袁吕较阀踩头妄计沸掉稽糠台再第2IntelIA32处理器结构与原理第一章24http:/ (第第2 2版版) )宽位动态执行宽位动态执行(Wide Dynamic Execution) 着眼点在于提高每时钟周期处理的指令数,着眼点在于提高每时钟周期处理的指令数,改善执行时间和能源效率,同时完整的
34、取、改善执行时间和能源效率,同时完整的取、发射、执行发射、执行4条指令条指令宏融合宏融合(macrofusion)技术能够在译码期间)技术能够在译码期间将常见的指令对组合到一个单独的微代码中将常见的指令对组合到一个单独的微代码中(Micro-op) 微代码融合微代码融合(Micro-op fusion)技术能在微)技术能在微代码执行前将译码自同一个代码执行前将译码自同一个x86指令的几个指令的几个微代码融合成更少的微代码微代码融合成更少的微代码 淹滤黍侩蔷讣屡香喘嘲卯习叛驱摩认止越惹坐辐盈圭坠市糜谁箩思援浩灰第2IntelIA32处理器结构与原理第一章25http:/ (第第2 2版版) )智
35、能功效管理(智能功效管理(Intelligent Power Capability) 超细粒度功耗控制超细粒度功耗控制能够只对处于工作状态的能够只对处于工作状态的部件提供电源,而关闭非工作部件的电源供部件提供电源,而关闭非工作部件的电源供应,从而有效降低功耗。应,从而有效降低功耗。分离总线技术分离总线技术能够使总线宽度动态适应数据能够使总线宽度动态适应数据宽度的需要,对无效的信息位使其进入低电宽度的需要,对无效的信息位使其进入低电压状态,从而进一步降低功耗。压状态,从而进一步降低功耗。 功效管理平台技术功效管理平台技术通过调整散热风扇运作模通过调整散热风扇运作模式,从外部降低处理器温度。式,从
36、外部降低处理器温度。 算汲猛炽但子很贞趴肌签蓄械瓤酿屉陕卵岭铣狸恐遏沥粳腮郴召韵亢验讣第2IntelIA32处理器结构与原理第一章26http:/ (第第2 2版版) )Intel 智能内存访问(智能内存访问(Intel Smart Memory Access) 内存消歧技术内存消歧技术利用装载(利用装载(load)数据指令和)数据指令和存储(存储(store)数据指令之间的乱序执行来提)数据指令之间的乱序执行来提高乱序执行部件的效率高乱序执行部件的效率 高级预取技术高级预取技术解决了确保被使用的数据已经解决了确保被使用的数据已经位于最靠近能获得最小内存延迟的地方的问位于最靠近能获得最小内存延
37、迟的地方的问题。题。 坎怎非炬努庆朔述献帜归堂礼萨姥睫篇饵仔寅悟利坍赞盐霉蓄槽迷每先剑第2IntelIA32处理器结构与原理第一章27http:/ (第第2 2版版) )Intel高级智能高级智能Cache (Intel Advanced Smart Cache) 采用了共享采用了共享L2 Cache的双核结构的双核结构 可以在两个核心间动态调整可以在两个核心间动态调整L2 Cache的分配的分配 ASAS执行引擎执行引擎执行引擎执行引擎Local APICLocal APICL2 Cache总线接口总线接口系统总线系统总线硒官斥辗獭让炬屎蛀戴皑宴痹萌灿读哪烽跃黔殴烹羔虹拥撅忌搬澄朴感凡第2I
38、ntelIA32处理器结构与原理第一章28http:/ (第第2 2版版) )2.4.4 45nm的酷睿的酷睿2处理器处理器Penryn的新特的新特性性英特尔的英特尔的45nm高高K金属栅极制程技术金属栅极制程技术晶体管密度提升近一倍晶体管密度提升近一倍晶体管切换功耗降低近晶体管切换功耗降低近 30%晶体管切换速度提高晶体管切换速度提高 20% 以上,源极漏极以上,源极漏极漏电率降低漏电率降低5倍以上倍以上晶体管栅极氧化层漏电率降低晶体管栅极氧化层漏电率降低 10 倍以上,倍以上,从而实现更低的功耗和更耐久的电池使用时从而实现更低的功耗和更耐久的电池使用时间间有擅怀略惮肌囱丑论脯肛奥斤梧田浸丧
39、麓公拱却昼炙伊檀羌俗方没笔岭鸭第2IntelIA32处理器结构与原理第一章29http:/ (第第2 2版版) )全新英特尔全新英特尔SSE4.1指令指令增加对两个不同的增加对两个不同的 32 位向量整数乘法操作的支位向量整数乘法操作的支持持引入引入 8 位无符号的最小位无符号的最小/最大操作,以及最大操作,以及 16 位位和和 32 位有符号和无符号的版本位有符号和无符号的版本添加高度专用的操作,从而带来显著的应用级添加高度专用的操作,从而带来显著的应用级增益增益u视频编码加速功能视频编码加速功能视频编码加速功能视频编码加速功能u浮点点积操作(对于游戏和浮点点积操作(对于游戏和浮点点积操作(
40、对于游戏和浮点点积操作(对于游戏和 3D 3D 内容创建非常内容创建非常内容创建非常内容创建非常重要)重要)重要)重要)u流加载指令(对于视频处理、成像,以及在图流加载指令(对于视频处理、成像,以及在图流加载指令(对于视频处理、成像,以及在图流加载指令(对于视频处理、成像,以及在图形处理器和处理器之间共享数据的应用非常重形处理器和处理器之间共享数据的应用非常重形处理器和处理器之间共享数据的应用非常重形处理器和处理器之间共享数据的应用非常重要)要)要)要)峡睛斌世喀蘑群矿智中亥姬冶往碴填窟州踌活聘榆脖说影陇芯卞凹阁躲黑第2IntelIA32处理器结构与原理第一章30http:/ (第第2 2版版
41、) )增强的大型英特尔增强的大型英特尔 高级智能高速缓存高级智能高速缓存二级高速缓存增大二级高速缓存增大二级高速缓存增大二级高速缓存增大 50% 50%并搭配并搭配并搭配并搭配2424路组相联设计,路组相联设计,路组相联设计,路组相联设计,可进一步提高命中率并最大限度提升使用率。可进一步提高命中率并最大限度提升使用率。可进一步提高命中率并最大限度提升使用率。可进一步提高命中率并最大限度提升使用率。增强型英特尔增强型英特尔 虚拟化技术虚拟化技术通过改进微体系结构而不是虚拟机软件,使虚拟机通过改进微体系结构而不是虚拟机软件,使虚拟机通过改进微体系结构而不是虚拟机软件,使虚拟机通过改进微体系结构而不
42、是虚拟机软件,使虚拟机迁移速度平均提高迁移速度平均提高迁移速度平均提高迁移速度平均提高25-75%25-75%。快速快速 Radix-16 除法器除法器可在每次迭代中计算可在每次迭代中计算可在每次迭代中计算可在每次迭代中计算4 4位的商(上代是位的商(上代是位的商(上代是位的商(上代是2 2位),从而位),从而位),从而位),从而使延迟降低了使延迟降低了使延迟降低了使延迟降低了2 2倍。倍。倍。倍。增强型英特尔增强型英特尔 动态加速技术动态加速技术当一个内核处于空闲状态时,该增强特性可利用该当一个内核处于空闲状态时,该增强特性可利用该当一个内核处于空闲状态时,该增强特性可利用该当一个内核处于空
43、闲状态时,该增强特性可利用该内核释放的性能扩展空间(如电能),来提升另一内核释放的性能扩展空间(如电能),来提升另一内核释放的性能扩展空间(如电能),来提升另一内核释放的性能扩展空间(如电能),来提升另一个仍处于激活状态的内核性能。个仍处于激活状态的内核性能。个仍处于激活状态的内核性能。个仍处于激活状态的内核性能。解生绘习疮筑多搬醚滨监哀确褥惹署坠幻佩辕烤赃茎橇谎枯拭监苏涧待沏第2IntelIA32处理器结构与原理第一章31http:/ (第第2 2版版) )2.5 Nehalem微架构的处理器微架构的处理器Nehalem微架构基本特点微架构基本特点原生四核结构原生四核结构原生四核结构原生四核
44、结构采用采用采用采用SMTSMT技术,每核可同时执行技术,每核可同时执行技术,每核可同时执行技术,每核可同时执行2 2个线程个线程个线程个线程4 4发射超标量,每核四条发射超标量,每核四条发射超标量,每核四条发射超标量,每核四条1616级流水线级流水线级流水线级流水线4848位虚拟地址空间,位虚拟地址空间,位虚拟地址空间,位虚拟地址空间,4040位物理地址空间位物理地址空间位物理地址空间位物理地址空间45nm45nm芯片工艺芯片工艺芯片工艺芯片工艺锚绑寇佃囚宁屠俗驶末埃粉众她狂逼蔚饭扁洲扣遍丫月溢鲤锰怂云躁织炬第2IntelIA32处理器结构与原理第一章32http:/ (第第2 2版版) )
45、Nehalem微架构的新特点微架构的新特点更大的并行性更大的并行性增加了乱序考察窗和调度表增加了乱序考察窗和调度表增加了乱序考察窗和调度表增加了乱序考察窗和调度表改进后的更高效的算法改进后的更高效的算法加快线程同步原语的执行加快线程同步原语的执行加快线程同步原语的执行加快线程同步原语的执行加快了分支预测失败时的处理速度加快了分支预测失败时的处理速度加快了分支预测失败时的处理速度加快了分支预测失败时的处理速度改进了硬件预取和改进了硬件预取和改进了硬件预取和改进了硬件预取和Load-StoreLoad-Store调度调度调度调度提高了分支预测的性能提高了分支预测的性能新增加了新增加了新增加了新增加
46、了2 2级分支目标缓冲器,增大了对指令级分支目标缓冲器,增大了对指令级分支目标缓冲器,增大了对指令级分支目标缓冲器,增大了对指令流历史的记录流历史的记录流历史的记录流历史的记录新增加了重命名式返回栈缓冲,存放新增加了重命名式返回栈缓冲,存放新增加了重命名式返回栈缓冲,存放新增加了重命名式返回栈缓冲,存放CALLCALL指指指指令的返回地址,并防止返回栈缓冲溢出令的返回地址,并防止返回栈缓冲溢出令的返回地址,并防止返回栈缓冲溢出令的返回地址,并防止返回栈缓冲溢出椰褂渡披金唐着限丝摧敛约沛杰媳潭航凿撑干甘能位卵裙驰变贿跟着橱矾第2IntelIA32处理器结构与原理第一章33http:/ (第第2
47、2版版) )Nehalem微架构的新特点微架构的新特点采用采用SMT(同时多线程)技术(同时多线程)技术同一个执行核能同时执行两个线程同一个执行核能同时执行两个线程同一个执行核能同时执行两个线程同一个执行核能同时执行两个线程新的缓存结构新的缓存结构与与与与CoreCore微架构一样的微架构一样的微架构一样的微架构一样的L1 CacheL1 Cache(32KB32KB指令指令指令指令CacheCache与与与与32KB32KB数据数据数据数据CacheCache)每个核配新的每个核配新的每个核配新的每个核配新的256KB256KB极低延迟极低延迟极低延迟极低延迟L2 CacheL2 Cache
48、新增新增新增新增8MB8MB包含共享式包含共享式包含共享式包含共享式 L3 Cache L3 Cache,当,当,当,当L3 CacheL3 Cache没有命中,则数据肯定不在没有命中,则数据肯定不在没有命中,则数据肯定不在没有命中,则数据肯定不在L1L1和和和和L2 CacheL2 Cache中中中中集成了内存控制器集成了内存控制器支持支持支持支持3 3通道的通道的通道的通道的DDR3DDR3内存内存内存内存低掂忙羌滇痢思鸥猴耙敞吩案沫侩郊郝眉峨罢穗昧换左梨蹈赞拨鹤矢扑永第2IntelIA32处理器结构与原理第一章34http:/ (第第2 2版版) )Nehalem微架构的新特点微架构的新
49、特点用用QuickPath代替了前端总线(代替了前端总线(FSB)最大带宽高达最大带宽高达最大带宽高达最大带宽高达25.6GB/s25.6GB/s采用高速差分信号传送采用高速差分信号传送采用高速差分信号传送采用高速差分信号传送采用点到点互连技术,不仅连接采用点到点互连技术,不仅连接采用点到点互连技术,不仅连接采用点到点互连技术,不仅连接CPUCPU和北桥,和北桥,和北桥,和北桥,还作为还作为还作为还作为CPUCPU与与与与CPUCPU之间的连接之间的连接之间的连接之间的连接疆途卸澄兴一邱烘鹤剔嫂抠簧爸甸状影碍培床赊撂须氯槛坐透烁萎蹦敢茎第2IntelIA32处理器结构与原理第一章35http:
50、/ (第第2 2版版) )2.6 IA-32处理器基本执行环境处理器基本执行环境 实地址模式实地址模式实地址模式实地址模式 - - 与与与与8086/80888086/8088兼容,但可以处理兼容,但可以处理兼容,但可以处理兼容,但可以处理3232位数据位数据位数据位数据- 1MB- 1MB内存空间,分段管理,所有程序全在内存空间,分段管理,所有程序全在内存空间,分段管理,所有程序全在内存空间,分段管理,所有程序全在0 (0 (核心核心核心核心) )级级级级- MS-DOS- MS-DOS运行在此模式下,运行在此模式下,运行在此模式下,运行在此模式下,PCPC机开机首先进入的也机开机首先进入的
51、也机开机首先进入的也机开机首先进入的也 是该模式是该模式是该模式是该模式- - 对内存和程序甚至操作系统没有任何保护能力对内存和程序甚至操作系统没有任何保护能力对内存和程序甚至操作系统没有任何保护能力对内存和程序甚至操作系统没有任何保护能力保护模式保护模式保护模式保护模式 - - 支持多任务操作,并保护每个任务的数据和程序支持多任务操作,并保护每个任务的数据和程序支持多任务操作,并保护每个任务的数据和程序支持多任务操作,并保护每个任务的数据和程序- - 存储器采用虚拟地址空间、线性地址空间和物理地存储器采用虚拟地址空间、线性地址空间和物理地存储器采用虚拟地址空间、线性地址空间和物理地存储器采用
52、虚拟地址空间、线性地址空间和物理地址空间三种方式来描述,具有存储保护功能址空间三种方式来描述,具有存储保护功能址空间三种方式来描述,具有存储保护功能址空间三种方式来描述,具有存储保护功能- - 虚拟地址空间虚拟地址空间虚拟地址空间虚拟地址空间64TB64TB(2 24646)- 4- 4级管理,可以使用分页或分段技术管理内存级管理,可以使用分页或分段技术管理内存级管理,可以使用分页或分段技术管理内存级管理,可以使用分页或分段技术管理内存- Windows- Windows、LinuxLinux操作系统均运行在该模式下操作系统均运行在该模式下操作系统均运行在该模式下操作系统均运行在该模式下措住撬
53、踏肥挺臂淀母忍凄翟淆嚣投裙亲止铃始汉告唯疫阎屯律笔适纲书见第2IntelIA32处理器结构与原理第一章36http:/ (第第2 2版版) )虚拟虚拟虚拟虚拟80868086模式(模式(模式(模式(V86V86模式)模式)模式)模式)系统管理模式系统管理模式系统管理模式系统管理模式 - 为操作系统和正在运行的应用程序提供透明的电源为操作系统和正在运行的应用程序提供透明的电源为操作系统和正在运行的应用程序提供透明的电源为操作系统和正在运行的应用程序提供透明的电源管理和系统安全平台功能管理和系统安全平台功能管理和系统安全平台功能管理和系统安全平台功能- - 进入本模式系统将转到一个独立的地址空间运
54、行,进入本模式系统将转到一个独立的地址空间运行,进入本模式系统将转到一个独立的地址空间运行,进入本模式系统将转到一个独立的地址空间运行,并保存当前程序或任务的基本环境并保存当前程序或任务的基本环境并保存当前程序或任务的基本环境并保存当前程序或任务的基本环境- - 在保护模式下可以同时模拟多个在保护模式下可以同时模拟多个在保护模式下可以同时模拟多个在保护模式下可以同时模拟多个80868086处理器的工作处理器的工作处理器的工作处理器的工作比较项目比较项目实地址模式实地址模式虚拟虚拟8086模式模式内存管理内存管理分段管理分段管理既分段又分页既分段又分页存储空间存储空间1MB每个每个8086程序任
55、务寻址程序任务寻址1MB,总寻,总寻址空间址空间4GB多任务多任务不支持不支持支持,虚拟支持,虚拟8086模式是模式是Pentium保保护模式中多任务的一个任务护模式中多任务的一个任务夜瑶启据奎捐钮怕绘棚犊蔼鞠松违预猜整迅服义侣哺丹殖雇至耙圭搔给涌第2IntelIA32处理器结构与原理第一章37http:/ (第第2 2版版) )IA-32eIA-32e模式(支持模式(支持模式(支持模式(支持Intel EM64TIntel EM64T的的的的IA-32IA-32处理器才有)处理器才有)处理器才有)处理器才有)- 兼容模式兼容模式兼容模式兼容模式 类似于类似于32位保护模式,传统的位保护模式,
56、传统的16位或位或32位程序无需位程序无需重新编译就可以运行在重新编译就可以运行在64位操作系统中。在位操作系统中。在64位模式位模式和保护模式下支持的所有特权级别在兼容模式同样支和保护模式下支持的所有特权级别在兼容模式同样支持。持。 - 6464位模式位模式位模式位模式 允许允许64位操作系统运行存取位操作系统运行存取64位线性地址空间的应位线性地址空间的应用程序,程序可访问的线性地址空间达到用程序,程序可访问的线性地址空间达到264字节,字节,物理地址空间增加到物理地址空间增加到240字节。通用寄存器的宽度增字节。通用寄存器的宽度增加到加到64位,并新增了位,并新增了8个通用寄存器和个通用
57、寄存器和8个个SIMD寄存寄存器。器。 部瞬粗膜庞兹疫鲍睫谜惺蹭厩酞犬削循煎泣耘舜丈菊手桃淘吕内蝴砚亚狼第2IntelIA32处理器结构与原理第一章38http:/ (第第2 2版版) )工作模式的转换工作模式的转换工作模式的转换工作模式的转换抛玄枝鸯铡传廓贬邱砖厚禾虐甜杏皮尘阳椽试矾汀蛤诚采除之贯剂岭烬着第2IntelIA32处理器结构与原理第一章39http:/ (第第2 2版版) )2.6.2 IA-32处理器中的寄存器处理器中的寄存器 基本寄存器基本寄存器基本寄存器基本寄存器系统级寄存器系统级寄存器系统级寄存器系统级寄存器调试与测试寄存器调试与测试寄存器浮点寄存器浮点寄存器通用寄存器通
58、用寄存器通用寄存器通用寄存器指令指针寄存器指令指针寄存器指令指针寄存器指令指针寄存器标志寄存器标志寄存器标志寄存器标志寄存器段寄存器段寄存器段寄存器段寄存器控制寄存器控制寄存器控制寄存器控制寄存器系统地址寄存器系统地址寄存器系统地址寄存器系统地址寄存器数据寄存器数据寄存器数据寄存器数据寄存器地址指针寄存器地址指针寄存器地址指针寄存器地址指针寄存器变址寄存器变址寄存器变址寄存器变址寄存器桅儒揪拍桐屹能倦童咯练滦肉沦刀呕弦私柱钙捉忻瞒驰趣肘翱盅仟脆样剐第2IntelIA32处理器结构与原理第一章40http:/ (第第2 2版版) )AH ALBH BLCH CLDH DLSPBPDISI累加器累
59、加器基址变址基址变址计数计数数据数据堆栈指针堆栈指针基址指针基址指针目的变址目的变址源变址源变址32位位1.通用寄存器通用寄存器16位位AXBXCXDXSPBPDISI16位名称位名称 AXAX、BXBX、CXCX、DXDX、SPSP、BPBP、DIDI、SISI分别是分别是分别是分别是EAXEAX、EBXEBX、ECXECX、EDX EDX 、ESPESP、EBPEBP、EDIEDI、ESIESI的低的低的低的低1616位位位位 ALAL、BL BL 、CLCL、DLDL分别是分别是分别是分别是AXAX、BXBX、CXCX、DXDX的低八位的低八位的低八位的低八位 AHAH、BH BH 、C
60、HCH、DHDH分别是分别是分别是分别是AXAX、BXBX、CXCX、DXDX的高八位的高八位的高八位的高八位EAXEBXECXEDXESPEBPEDIESI32位名称位名称高高16位扩展位扩展哩鲍函窍肥垣春横驳吓伦躇伯氰黍复独骗妖个易闲弓扦宠态肛竹专杯琼芽第2IntelIA32处理器结构与原理第一章41http:/ (第第2 2版版) )1.通用寄存器通用寄存器n nEAX 累加器累加器 存放操作数和结果,乘除运算、存放操作数和结果,乘除运算、I/O指令中特指指令中特指n nEBX 基址寄存器基址寄存器 查表转换和间接寻址时存查表转换和间接寻址时存放基址放基址n nECX 计数寄存器计数寄存
61、器 串操作和循环中做计数串操作和循环中做计数 n nEDX 数据寄存器数据寄存器 乘除运算、乘除运算、I/O指令中特指指令中特指 可以可以32位、位、16位或位或8位形式访问,例如,位形式访问,例如, EAX可使用可使用16位的位的AX,也可以使用,也可以使用8位的位的AH、AL光臻态雪棒朋现贴朴述胆白裤佃诈饯翁涸讽烬攒淳波踩开皮恩矾寺傀专调第2IntelIA32处理器结构与原理第一章42http:/ (第第2 2版版) )1.通用寄存器通用寄存器n nESP 堆栈指针寄存器堆栈指针寄存器,存放栈顶地址,存放栈顶地址n nEBP 基址指针寄存器基址指针寄存器,存放栈段基地址,存放栈段基地址n
62、nESI 源变址寄存器源变址寄存器n nEDI 目的变址寄存器目的变址寄存器 存放地址的偏移量,也可存放操作数,存放地址的偏移量,也可存放操作数, 但只能以但只能以32位或位或16位为单位访问位为单位访问如:如:ESI可以使用可以使用16位的位的SI葡蠢集顽羔孜肘慕射匡幕羽猾绎懒钻么握宙炊绢淹赃羹雪竟探篮群背祸今第2IntelIA32处理器结构与原理第一章43http:/ (第第2 2版版) )6464位模式下的通用寄存器位模式下的通用寄存器位模式下的通用寄存器位模式下的通用寄存器税扮整仅钳冕燎在泽捉租闯形这锁账谬乡侍搀问收袖汛旧蝗浴寅差帐拜膏第2IntelIA32处理器结构与原理第一章44h
63、ttp:/ (第第2 2版版) )2.段寄存器段寄存器n nCS 代码段寄存器代码段寄存器 n nDS 数据段寄存器数据段寄存器 n nSS 堆栈段寄存器堆栈段寄存器n nES 附加段寄存器附加段寄存器n nFS、GS 附加段寄存器附加段寄存器段寄存器均为段寄存器均为16位的寄存器位的寄存器用于存储器寻址,存放段的开始地址用于存储器寻址,存放段的开始地址在在64位模式下,位模式下,FS, GS无效,无效,CS, DS, ES, SS均指向均指向基地址为基地址为0的的“段段”。堆栈段堆栈段数据段数据段附加段附加段代码段代码段福柑砂炙鞋圃舱京舒焦裳盼碉田内椰哈诫拿浅嘛入两有琉匣贱扁娩诫卢沾第2In
64、telIA32处理器结构与原理第一章45http:/ (第第2 2版版) )3.指令指针寄存器指令指针寄存器n nEIP 指令指针寄存器指令指针寄存器:即程序计数器,即程序计数器,指向指向下一条下一条指令在代码段中的偏移量指令在代码段中的偏移量16位的位的IP高高16位扩展位扩展32位指令指针寄存器位指令指针寄存器EIPn n64位模式下,扩展高位模式下,扩展高8位成为位成为64位位RIP32位的位的EIP高高32位扩展位扩展64位指令指针寄存器位指令指针寄存器RIP菏姬缸羌懂响枣鳖殖窟沿泻州茧彪土云毗组或何窗抖乡诵压凸具丧粗浑好第2IntelIA32处理器结构与原理第一章46http:/ (
65、第第2 2版版) )EFLAGS 标志寄存器(标志寄存器( 程序状态字寄存器程序状态字寄存器PSW ):记录系统运行中的各种状态:记录系统运行中的各种状态 和信和信息。由各种息。由各种标志位标志位构成,反映运算后的结果构成,反映运算后的结果特征,将影响某些指令(如条件转移指令)特征,将影响某些指令(如条件转移指令)的执行。的执行。4.标志寄存器标志寄存器 朗匝袱循砸苛罗存艺匆仗容彬绝体俏哥湾己呸抒敬遥庚章啼随历压美述啦第2IntelIA32处理器结构与原理第一章47http:/ (第第2 2版版) ) 8086/80888086/8088程序状态寄存器(标志寄存器)程序状态寄存器(标志寄存器)
66、程序状态寄存器(标志寄存器)程序状态寄存器(标志寄存器) b15 b8 b7 b0 OF DF IF TF SF ZF AF PF CF符号符号 名称名称 值为值为“1”的条件的条件 CF CF 进位标志进位标志进位标志进位标志 加加加加/ /减法时产生进位减法时产生进位减法时产生进位减法时产生进位/ /借位借位借位借位 OF OF 溢出标志溢出标志溢出标志溢出标志 运算结果超出有符号整数能表示的范围运算结果超出有符号整数能表示的范围运算结果超出有符号整数能表示的范围运算结果超出有符号整数能表示的范围 ZF ZF 零标志零标志零标志零标志 运算结果为运算结果为运算结果为运算结果为0 0时时时时
67、 SF SF 符号标志符号标志符号标志符号标志 运算结果的最高位为运算结果的最高位为运算结果的最高位为运算结果的最高位为“1”“1”时时时时 AF AF 辅助进位标志辅助进位标志辅助进位标志辅助进位标志 运算时半字节(运算时半字节(运算时半字节(运算时半字节(b3b3)产生进位)产生进位)产生进位)产生进位/ /借位借位借位借位 PF PF 奇偶标志奇偶标志奇偶标志奇偶标志 操作结果低操作结果低操作结果低操作结果低8 8位为位为位为位为“1”“1”的位数为偶数时的位数为偶数时的位数为偶数时的位数为偶数时 DF DF 方向标志方向标志方向标志方向标志 串操作中地址指针向低地址方向移动串操作中地址
68、指针向低地址方向移动串操作中地址指针向低地址方向移动串操作中地址指针向低地址方向移动 IF IF 中断允许标志中断允许标志中断允许标志中断允许标志 允许允许允许允许CPUCPU响应可屏蔽中断请求时响应可屏蔽中断请求时响应可屏蔽中断请求时响应可屏蔽中断请求时 TF TF 跟踪标志跟踪标志跟踪标志跟踪标志 CPU CPU处于单步执行的工作方式处于单步执行的工作方式处于单步执行的工作方式处于单步执行的工作方式征翠阅镭八腋雌巍誓桌膀衔届应洗族槐基晕痴斋谭颖焉梦始鸳锭摧开妹徐第2IntelIA32处理器结构与原理第一章48http:/ (第第2 2版版) )思考题:以下的几个思考题:以下的几个4位十六进
69、制数相加,会使得位十六进制数相加,会使得8088状态寄存器的以下几位为什么值?状态寄存器的以下几位为什么值?CFCFPFAFZFSFOFOF8000H8000H+0000HC000HC000H+8000H4008H4008H+8010H0808HC000H+C808H1 110101 11 110010 00 001011 10 000010 0漏著殿巢簧丽墩钳痔萍柒业按泄除仓祸戊铬歼客姿煞灾狈担弦洪圭憎梆尘第2IntelIA32处理器结构与原理第一章49http:/ (第第2 2版版) )注意注意:1.进位标志进位标志CF是表示是表示无符号数无符号数是否超出范围,是否超出范围,但运算结果仍然
70、正确;但运算结果仍然正确;2.溢出标志表示的是溢出标志表示的是有符号数有符号数运算结果是否超运算结果是否超出范围,超出范围则运算结果已经不正确;出范围,超出范围则运算结果已经不正确;3.处理器对两个操作数进行运算的时候是按照处理器对两个操作数进行运算的时候是按照无符号数无符号数求得结果,并相应设置求得结果,并相应设置CF,根据,根据是否超出有符号数的范围设置是否超出有符号数的范围设置OF;4.对于程序员,如果做无符号运算,应该关心对于程序员,如果做无符号运算,应该关心CF,做有符号运算应该关心,做有符号运算应该关心OF。抉雀想咋饿渊堂情还葛靴祥省铺茁试苦措蛇细姬音缺豺懂社筛戮仇顷雇酬第2Int
71、elIA32处理器结构与原理第一章50http:/ (第第2 2版版) )符号符号 名称名称 值为值为“1”的条件的条件 IOPL IOIOPL IO特权位特权位特权位特权位 其值表示该任务使用的其值表示该任务使用的其值表示该任务使用的其值表示该任务使用的I/OI/O操作的特权级操作的特权级操作的特权级操作的特权级 00 00为最高的核心级,为最高的核心级,为最高的核心级,为最高的核心级,1111是最低的用户级是最低的用户级是最低的用户级是最低的用户级 NT NT 嵌套标志嵌套标志嵌套标志嵌套标志 当前任务嵌套在另一个任务中时当前任务嵌套在另一个任务中时当前任务嵌套在另一个任务中时当前任务嵌套
72、在另一个任务中时 RF RF 恢复标志恢复标志恢复标志恢复标志 DBUG DBUG调试时忽略下一条指令遇到的断点调试时忽略下一条指令遇到的断点调试时忽略下一条指令遇到的断点调试时忽略下一条指令遇到的断点 VM VM 虚拟虚拟虚拟虚拟80868086模式模式模式模式 从保护模式进入到虚拟从保护模式进入到虚拟从保护模式进入到虚拟从保护模式进入到虚拟80868086模式模式模式模式 AC AC 对齐检查对齐检查对齐检查对齐检查 当有数据访问出现对齐故障的时候当有数据访问出现对齐故障的时候当有数据访问出现对齐故障的时候当有数据访问出现对齐故障的时候 VIF VIF 虚拟中断位虚拟中断位虚拟中断位虚拟中
73、断位 允许允许允许允许V86V86扩展或允许保护模式虚拟中断扩展或允许保护模式虚拟中断扩展或允许保护模式虚拟中断扩展或允许保护模式虚拟中断 VIP VIP 虚拟中断挂起位虚拟中断挂起位虚拟中断挂起位虚拟中断挂起位 虚拟中断被挂起虚拟中断被挂起虚拟中断被挂起虚拟中断被挂起 ID ID 标识位标识位标识位标识位 对它的读写表明处理器支持对它的读写表明处理器支持对它的读写表明处理器支持对它的读写表明处理器支持CPUIDCPUID这部分同这部分同这部分同这部分同80888088OF3122 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0D
74、F IF TF SFZFAFCFPFIOPLNTRFVMACVIFVIPID保 留IA-32 IA-32 标志寄存器标志寄存器标志寄存器标志寄存器EFLAGEFLAG郝耍闺帝铭砰肤滴这伙析原疙涕楚帮拽晒盲饶座亨提床霜乙斗绷林猩趁盼第2IntelIA32处理器结构与原理第一章51http:/ (第第2 2版版) )5. 控制寄存器控制寄存器 31 12 11 4 3 0PWTPCD页目录基地址寄存器页目录基地址寄存器CR3页故障线性地址寄存器页故障线性地址寄存器CR231 0保保 留留CR1WP31 30 29 18 17 16 5 4 3 2 1 0NEETPEMPNWCDPGCR031 0E
75、MTSAMPGEPCE31 10 9 8 7 6 5 4 3 2 1 0MCEPAE PSE DE TSDVMEPVI保留,缺省为全保留,缺省为全0CR4* OSFXSR* OSXMMEXCPT浙犀呼磅橱谚啥烈艘滁迪淑被婿共价陵牺轧皂代赂篮痰祷驮蛔绞堡滁博术第2IntelIA32处理器结构与原理第一章52http:/ (第第2 2版版) )写保护写保护 定位屏蔽定位屏蔽 允许分页允许分页禁止禁止Cache 不写贯穿不写贯穿保护模式允许保护模式允许 浮点协处理器监控浮点协处理器监控 模拟浮点协处理器模拟浮点协处理器任务切换任务切换 处理器扩展类型处理器扩展类型 数值异常数值异常 WP31 30
76、29 18 17 16 5 4 3 2 1 0NEETPEMPNWCDPGCR0EMTSAMCR0是在以前是在以前286MSW(机器状态字)基础上扩展来的,(机器状态字)基础上扩展来的,可在核心级中用可在核心级中用MOV EAX, CR0/MOV CR0, EAXMOV EAX, CR0/MOV CR0, EAX指令指令来读取和写入。来读取和写入。却捡蒙肉裙也比介瀑晰羚襟辆烛赠汀辉沙竹豌胜眨贪扣私捞间买邮腊描限第2IntelIA32处理器结构与原理第一章53http:/ (第第2 2版版) )禁止禁止Cache页面写贯穿页面写贯穿 31 12 11 4 3 0PWTPCD页目录基地址寄存器页目
77、录基地址寄存器CR3尿游袭袖姚磺薪逗钥囤呕酥撮家琳滚夯娘忽言冕枪隶沧函寒前捶房竣鸭唤第2IntelIA32处理器结构与原理第一章54http:/ (第第2 2版版) )性能计数器允许性能计数器允许页全局允许页全局允许允许机器检查允许机器检查 物理地址扩展物理地址扩展页大小扩展位页大小扩展位 调试扩充位调试扩充位 禁止定时标志禁止定时标志 保护模式虚拟中断保护模式虚拟中断 虚拟虚拟8086模式扩展模式扩展 PGEPCE831 7 6 5 4 3 2 1 0MCEPAE PSE DE TSDVMEPVI保留,缺省为全保留,缺省为全0CR4涯兑侠啊蜜叼松郸替夯绩缉逗戍娘坛阑隶佑嚣蹈墅焙歧房哗炳足钵狙
78、失棉第2IntelIA32处理器结构与原理第一章55http:/ (第第2 2版版) )6 系统地址寄存器系统地址寄存器 GDTR 48 GDTR 48位的全局描述符表寄存器位的全局描述符表寄存器位的全局描述符表寄存器位的全局描述符表寄存器 全局描述符表全局描述符表32位线性地址位线性地址 16位界限值位界限值 IDTR 48 IDTR 48位的中断描述符表寄存器位的中断描述符表寄存器位的中断描述符表寄存器位的中断描述符表寄存器 中断描述符表中断描述符表32位线性地址位线性地址 16位界限值位界限值 TR 16 TR 16位的任务状态段寄存器位的任务状态段寄存器位的任务状态段寄存器位的任务状态
79、段寄存器 TSS的的16位选择字位选择字 LDTR 16 LDTR 16位的局部描述符选择字寄存器位的局部描述符选择字寄存器位的局部描述符选择字寄存器位的局部描述符选择字寄存器 LDT的的16位选择字位选择字 曾疗癌恫站郸缆濒迢纬袍肚会钻泛骇巍勃询桐东典淫笺疤乡技椿希纯戳班第2IntelIA32处理器结构与原理第一章56http:/ (第第2 2版版) )当机器复位的时候当机器复位的时候CS=FFFFH,EIP, DS, ES, SS, FS, GS以及以及EFLAGS寄存器被清零。因为复位之寄存器被清零。因为复位之后后CS:EIP= FFFF:00000000,因此机器复位或开,因此机器复位
80、或开机后,都会自动从这个地址开始取指令,这里应机后,都会自动从这个地址开始取指令,这里应该是该是BIOS的第一条指令。的第一条指令。报蝗基仓掇比率屏净袖醚屯雨巾比组赐赎肾困蓝沁衡欣妈诸偶酚筋判确沛第2IntelIA32处理器结构与原理第一章57http:/ (第第2 2版版) )1. Pentium的基本数据类型的基本数据类型1) 1) 整型数据类型整型数据类型整型数据类型整型数据类型 包括无符号数和有符号数,其中有符号数以包括无符号数和有符号数,其中有符号数以包括无符号数和有符号数,其中有符号数以包括无符号数和有符号数,其中有符号数以2 2的补的补的补的补码形式表示,最高位为符号位,码形式表
81、示,最高位为符号位,码形式表示,最高位为符号位,码形式表示,最高位为符号位,1 1表示负数表示负数表示负数表示负数类类 型型位数位数无符号数范围无符号数范围有符号数范围有符号数范围字节字节80255-128+127字字16065535-32768+32767双字双字320232-1(4G-1)-231+231-1四字四字640264-1(16T-1)-263+263-12.6.3 IA-32处理器在实地址模式下的存储管理处理器在实地址模式下的存储管理村禹辞别奔表撮舌脸尝女缮谩评倚边惠怒操椰魁经诣舍忻滤差宵乘僵砚仔第2IntelIA32处理器结构与原理第一章58http:/ (第第2 2版版)
82、)2) 2) 浮点数据类型浮点数据类型浮点数据类型浮点数据类型 最高位为符号位,接下来是有效数和阶码,有效数最高位为符号位,接下来是有效数和阶码,有效数最高位为符号位,接下来是有效数和阶码,有效数最高位为符号位,接下来是有效数和阶码,有效数给订了数的有效位数,决定数的精度;阶码决定数据给订了数的有效位数,决定数的精度;阶码决定数据给订了数的有效位数,决定数的精度;阶码决定数据给订了数的有效位数,决定数的精度;阶码决定数据范围。范围。范围。范围。类型类型符号符号位数位数有效位有效位数数阶码阶码位数位数数据范围数据范围单精度浮点数单精度浮点数1247 10 38双精度浮点数双精度浮点数15211
83、10 308扩展精度浮点数扩展精度浮点数16415 10 4932姑奶寡蕊禁仍舷卿倔南辟忍颜辟鸿衡钻游贡陆蛙穿犯焚屹厅废幂桅揉茫谱第2IntelIA32处理器结构与原理第一章59http:/ (第第2 2版版) )3) 3) 指针数据类型指针数据类型指针数据类型指针数据类型 指针是用于定位存储单元的地址,包括近指针和远指针是用于定位存储单元的地址,包括近指针和远指针是用于定位存储单元的地址,包括近指针和远指针是用于定位存储单元的地址,包括近指针和远指针。指针。指针。指针。1616位模式下,近指针为段内位模式下,近指针为段内位模式下,近指针为段内位模式下,近指针为段内1616位有效地址,远指位有
84、效地址,远指位有效地址,远指位有效地址,远指针包括针包括针包括针包括1616位段选择器和位段选择器和位段选择器和位段选择器和1616位段内有效地址位段内有效地址位段内有效地址位段内有效地址3232位模式下,近指针为段内位模式下,近指针为段内位模式下,近指针为段内位模式下,近指针为段内3232位有效地址,远指位有效地址,远指位有效地址,远指位有效地址,远指针包括针包括针包括针包括1616位段段选择器和位段段选择器和位段段选择器和位段段选择器和3232位段内有效地址位段内有效地址位段内有效地址位段内有效地址6464位模式下,近指针为位模式下,近指针为位模式下,近指针为位模式下,近指针为6464位有
85、效地址;操作数是位有效地址;操作数是位有效地址;操作数是位有效地址;操作数是3232位时,远指针包括位时,远指针包括位时,远指针包括位时,远指针包括1616位段段选择器和位段段选择器和位段段选择器和位段段选择器和3232位(位(位(位(1616位)段内有效地址,操作数是位)段内有效地址,操作数是位)段内有效地址,操作数是位)段内有效地址,操作数是6464位时,远指针包位时,远指针包位时,远指针包位时,远指针包括括括括1616位段段选择器和位段段选择器和位段段选择器和位段段选择器和6464位段内有效地址位段内有效地址位段内有效地址位段内有效地址索弃醛貌来推靡贺旧瓦苯男礁捅脐袖惨亢朔祖从泣桐抖希鸡
86、货婆昆嚷揪奢第2IntelIA32处理器结构与原理第一章60http:/ (第第2 2版版) )4) 4) 位域位域位域位域(field)(field)数据类型数据类型数据类型数据类型 是一个连续的二进制位序列,可以从存储器任何一是一个连续的二进制位序列,可以从存储器任何一是一个连续的二进制位序列,可以从存储器任何一是一个连续的二进制位序列,可以从存储器任何一个字节的任何一位开始。可包含个字节的任何一位开始。可包含个字节的任何一位开始。可包含个字节的任何一位开始。可包含3232位数据。位数据。位数据。位数据。5) 5) 串数据类型串数据类型串数据类型串数据类型 是一个连续的位、字节、字或双字序
87、列,位串可以是一个连续的位、字节、字或双字序列,位串可以是一个连续的位、字节、字或双字序列,位串可以是一个连续的位、字节、字或双字序列,位串可以从存储器任何一个字节的任何一位开始,并可包含从存储器任何一个字节的任何一位开始,并可包含从存储器任何一个字节的任何一位开始,并可包含从存储器任何一个字节的任何一位开始,并可包含2 23232- -1 1位,字节、字或双字串可包含位,字节、字或双字串可包含位,字节、字或双字串可包含位,字节、字或双字串可包含2 23232字节。字节。字节。字节。6) BCD6) BCD和压缩和压缩和压缩和压缩BCDBCD数据类型数据类型数据类型数据类型 用用用用4 4位无
88、符号二进制数表示十进制的位无符号二进制数表示十进制的位无符号二进制数表示十进制的位无符号二进制数表示十进制的0 09 9。压缩。压缩。压缩。压缩BCDBCD每个字节包含二位十进制数,非压缩每个字节包含二位十进制数,非压缩每个字节包含二位十进制数,非压缩每个字节包含二位十进制数,非压缩BCDBCD数每字节的低数每字节的低数每字节的低数每字节的低4 4位表示一个十进制数,高位表示一个十进制数,高位表示一个十进制数,高位表示一个十进制数,高4 4位为位为位为位为0 0。浚禁叠迎龙畔驮畏承恳妈涟帧肄熔理增其尾挫当攘茎神慌厚摘盾潜撰捶念第2IntelIA32处理器结构与原理第一章61http:/ (第第
89、2 2版版) )2.存储单元的地址和内容存储单元的地址和内容以字节为单位编址以字节为单位编址,即一个字节数据占一个存储,即一个字节数据占一个存储单元单元以字、双字、四字为单位存储数据时,分别占相邻以字、双字、四字为单位存储数据时,分别占相邻以字、双字、四字为单位存储数据时,分别占相邻以字、双字、四字为单位存储数据时,分别占相邻2 2个、个、个、个、4 4个、个、个、个、8 8个连续字节单元,个连续字节单元,个连续字节单元,个连续字节单元,高高高高8 8位存放在高地址字节,低位存放在高地址字节,低位存放在高地址字节,低位存放在高地址字节,低8 8位存放在低地址字节位存放在低地址字节位存放在低地址
90、字节位存放在低地址字节, ,高高高高位字存放在高地址区,低位字存放在低地址区位字存放在高地址区,低位字存放在低地址区位字存放在高地址区,低位字存放在低地址区位字存放在高地址区,低位字存放在低地址区 字、双字、四字单元的地址由其最低字节的地址来表字、双字、四字单元的地址由其最低字节的地址来表字、双字、四字单元的地址由其最低字节的地址来表字、双字、四字单元的地址由其最低字节的地址来表示。示。示。示。字、双字、四字的地址一般采用边界对齐,即它们地址字、双字、四字的地址一般采用边界对齐,即它们地址字、双字、四字的地址一般采用边界对齐,即它们地址字、双字、四字的地址一般采用边界对齐,即它们地址分别是偶数
91、地址,分别是偶数地址,分别是偶数地址,分别是偶数地址,4 4的倍数和的倍数和的倍数和的倍数和8 8的倍数。如果边界不对齐,的倍数。如果边界不对齐,的倍数。如果边界不对齐,的倍数。如果边界不对齐,PentiumPentium会采用两个总线周期来完成操作,或者直接报会采用两个总线周期来完成操作,或者直接报会采用两个总线周期来完成操作,或者直接报会采用两个总线周期来完成操作,或者直接报错,如果边界对齐,则只用一个总线周期完成操作。错,如果边界对齐,则只用一个总线周期完成操作。错,如果边界对齐,则只用一个总线周期完成操作。错,如果边界对齐,则只用一个总线周期完成操作。实件侮趟义几炸赋座交卤喉划马旷掳甜
92、挨卷漆残枕佐雀壤袍痈幌中疼紧滁第2IntelIA32处理器结构与原理第一章62http:/ (第第2 2版版) )存储单元的地址和内容存储单元的地址和内容12H34H56H78H9AHBCHDEHFFH0000H0001H0002H0003H0004H0005H0006H0007H0000H0000H地址上,地址上,地址上,地址上,字节数据是字节数据是字节数据是字节数据是12H12H字数据是字数据是字数据是字数据是3412H3412H双字数据是双字数据是双字数据是双字数据是78563412H78563412H四字数据是四字数据是四字数据是四字数据是FFDEBC9A78563412HFFDEBC
93、9A78563412H寒譬巢邪肋跟固蚜糯弗撅核蒲瞅代景咙硼垦度拿付翱合寺抄摔壬药胖代蔡第2IntelIA32处理器结构与原理第一章63http:/ (第第2 2版版) )3. 实模式存储器寻址实模式存储器寻址 在此模式下,在此模式下,IA-32可以理解成是一个可处理可以理解成是一个可处理32位数位数据的高速的据的高速的8086。a. a. 存储器地址的分段存储器地址的分段存储器地址的分段存储器地址的分段 解决解决16位寄存器表示位寄存器表示20位地址的问题位地址的问题 段是最大长度为段是最大长度为64KB的连续的内存储器块的连续的内存储器块物理地址物理地址物理地址物理地址 每个存储单元的每个存
94、储单元的20位实际地址,有唯一位实际地址,有唯一性,访问主存时必须用物理地址性,访问主存时必须用物理地址 逻辑地址逻辑地址逻辑地址逻辑地址 每个存储单元的地址用两部分表示:每个存储单元的地址用两部分表示: 段基址段基址段基址段基址(段首址的高(段首址的高16位)位) 偏移量偏移量偏移量偏移量 (段内某单元相对段首址的地址差,也称(段内某单元相对段首址的地址差,也称为有效地址为有效地址EA)鸡鸥札郑彪拧嗓练关风叶闷揩旨字颊兼喳息沏喀臭馁巷始佳暇权黔翼斑鄙第2IntelIA32处理器结构与原理第一章64http:/ (第第2 2版版) )6417H 0100H 6417H10H + 0100H =
95、 64170H + 0100H = 64270H几个不同的逻辑段地址在物理地址上是可重叠的几个不同的逻辑段地址在物理地址上是可重叠的 物理地址物理地址物理地址物理地址= =段基址段基址段基址段基址16+16+偏移量偏移量偏移量偏移量 书写形式:书写形式:段基址:偏移量段基址:偏移量段基址:偏移量段基址:偏移量16位段地址位段地址16位段内偏移位段内偏移:16位段地址位段地址16位段内偏移位段内偏移(左移四位)(左移四位)+20位物理地址位物理地址=0000命唆赐炼巴眷蒂娱辑赦混晓叼窟佃隋边酪增滩穴眉朱贮躬尿崩掂封魏酬澈第2IntelIA32处理器结构与原理第一章65http:/ (第第2 2版
96、版) )b b、段寄存器与段、段寄存器与段、段寄存器与段、段寄存器与段 IA-32的的6个个16位的段寄存器,专门存放段基地址位的段寄存器,专门存放段基地址 代码段存放当前程序的指令代码代码段存放当前程序的指令代码代码段存放当前程序的指令代码代码段存放当前程序的指令代码 数据段存放程序涉及的源数据或结果数据段存放程序涉及的源数据或结果数据段存放程序涉及的源数据或结果数据段存放程序涉及的源数据或结果 堆栈段是以堆栈段是以堆栈段是以堆栈段是以“ “先入后出先入后出先入后出先入后出” ”为原则的数据区为原则的数据区为原则的数据区为原则的数据区 附加段是辅助数据区,存放串或其他数据附加段是辅助数据区,
97、存放串或其他数据附加段是辅助数据区,存放串或其他数据附加段是辅助数据区,存放串或其他数据 用户可以同时使用用户可以同时使用6个段,段间可以邻接、部分重叠、个段,段间可以邻接、部分重叠、 重叠或不相邻,但注意,段的实体(被实际使用的段重叠或不相邻,但注意,段的实体(被实际使用的段空间)是不能重叠的。空间)是不能重叠的。羡翁访移浪汛嘉崩忧昆侯酸佩酱端厂状牧蔽象躬伦螟句嗜苦兢苞冤胀边蝴第2IntelIA32处理器结构与原理第一章66http:/ (第第2 2版版) )段寄存器和相应存放偏移地址的寄存器之间的默认组合段寄存器和相应存放偏移地址的寄存器之间的默认组合段寄存器和相应存放偏移地址的寄存器之间
98、的默认组合段寄存器和相应存放偏移地址的寄存器之间的默认组合 段段 32位偏移位偏移 16位偏移位偏移CS EIP IPSS ESP或或EBP SP或或BPDS EAX、EBX、ECX、 EDX、 BX、SI、 DI、 EDI、 ESI、一个、一个8或或32位数位数 一个一个8或或16位数位数ES EDI(用于串指令)(用于串指令) DIFS 无默认无默认 无默认无默认GS 无默认无默认 无默认无默认3. 保护模式存储器寻址保护模式存储器寻址请参照第请参照第4章课件章课件疥俯轴计捎挟精纲沮佩橙帖钢砾凭阎蚁广毯锡袋鳖蛤琼永慈狄峪卜悠好芽第2IntelIA32处理器结构与原理第一章67http:/
99、(第第2 2版版) )4. 关于堆栈关于堆栈n堆栈是内存中堆栈是内存中“先入后出先入后出”、最大空间为、最大空间为64KB的存储区域,的存储区域,栈底地址大于栈顶地址栈底地址大于栈顶地址n栈区最高地址栈区最高地址1的单元为栈底,最后进栈数的单元为栈底,最后进栈数据所对应的地址单元为栈顶据所对应的地址单元为栈顶nSS指向栈的起始单元(非栈底)指向栈的起始单元(非栈底)n nSP寄存器动态跟踪栈顶位置寄存器动态跟踪栈顶位置,初始化时初始化时SP的值的值为堆栈的长度,即指向栈底为堆栈的长度,即指向栈底+2单元单元n将数据送入堆栈叫将数据送入堆栈叫压栈压栈,从栈中取出数据叫,从栈中取出数据叫弹弹出出,均以字为单位,均以字为单位烁惑酉萤以泉爵卫鬃驳溉晾冉赏柯替靛贷倾掌垄谱躁撇谜擂价春宣褐移绦第2IntelIA32处理器结构与原理第一章68http:/ (第第2 2版版) )畜洲坞位诉尾荫溜退钻乍佬锐第谅钮讥微婿棱协洲银历湃衅荔歧峦宾森芽第2IntelIA32处理器结构与原理第一章69