《Pentium系列微处理器的基本结构.pptx》由会员分享,可在线阅读,更多相关《Pentium系列微处理器的基本结构.pptx(87页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第1页/共87页2.1.1总线接口部件 1.地址收发器和驱动器 2.数据总线收发器 3.总线宽度控制 4.写缓冲 5.总线周期和总线控制 6.齐偶效验的生成和控制 7.Cache控制第2页/共87页2.1.2预取缓冲部件指令预取技术指令预取技术 Pentium含有几个指令预取缓冲器,包括指令预取和指令译码两部分。2.1.3整数流水线(1)流水线技术 为了提高微型计算机的工作速度,可以采用某些功能部件分离的方法,使大的顺序操作分解为由不同功能部件分别完成、在时间上重叠的子操作,这种技术称为流水线技术。第3页/共87页并行性的两种含义:同时性-两个以上事件在同一时刻发生。如多机系统中,同一时刻多个
2、进程在运行。并发性-两个以上事件在同一间隔内发生。如并发程序,某一时刻CPU中只有一个进程在运行,而在一个时间段内,多个进程同时运行。并行性的三种形式:时间并行-指时间重叠。实现形式即流水线方式;空间并行-指资源重复。实现形式主要为多处理器系统和多计算机系统;时间并行空间并行-时间重叠和资源重复的综合应用,例:超标量流水技术。第4页/共87页流水工作方式:将一个计算任务细分成若干个子任务,每个子任务由专门的部件处理,多个计算任务依次进行并行处理。第5页/共87页流水线中主要存在三种相关冲突,会使流水线发生断流,而不能充分发挥作用,因此需采取相应的技术对策。(1)资源相关:指多条指令进入流水线后
3、在同一机器时钟周期内争用同一个功能部件所发生的冲突。第6页/共87页解决方法:延迟等待,使指令推迟执行;设置重复资源,将指令和数据分别存放在两个存储器中。(2)数据相关:在一个程序中,如果必须等前一条指令执行完,才能执行后一条指令,这两条指令即为数据相关。当多条指令重叠处理时,可能发生冲突。解决方法:采用定向传送技术;编译优化。A-B-CA-C第7页/共87页第8页/共87页(3)控制相关:通常由转移指令引起,根据转移条件来控制指令的执行顺序,而造成断流。解决方法:延迟转移法,由编译程序重排指令序列,本思想是“先执行再转移”,即发生转移取时并不排空指令流水线,而是让紧跟在转移指令Ib之后已进入
4、流水线 的少数几条指令继续完成。如果这些指令是与Ib结果无关的有用指令,那么延迟损失时间片正好得到了有效的利用。转移预测法:由硬件方法来实现,依据指令过去的行为来预测将来的行为,通常设置顺序和转移两个指令预取队列。第9页/共87页流水CPUCPU的时空图 图(a)表示流水CPU中一个指令周期的任务分解。第10页/共87页图(b)表示非流水计算机的时空图。第11页/共87页图(c)表示流水计算机的时空图第12页/共87页图(d)表示超标量流水计算机的时空图。第13页/共87页(a)(b)(c)(d)的动态演示请看动画演示第14页/共87页(1)超标量流水线 超标量流水线是pentium系统结构的
5、核心。它由U和V两条指令流水线构成,每条流水线都有自已的ALU、地址生成电路、与数据cache的接口。控制ROM属于微程序控制器,其中存放一组解释指令操作顺序的微指令代码。两个地址生成器用于计算存储器操作数地址。各种模式下的逻辑地址最终要转换成物理地址来访问数据cache,并用转换后援(旁视)缓冲器TLB来加速这种地址转换过程。寄存器堆有8个32位整数寄存器,用于地址计算、保存ALU的源操作数和目的操作数。第15页/共87页(2)cache部件80486 CPU中有8KB的指令和数据共用的cache。而奔腾CPU则分设指令cache和数据cache,各8KB。指令cache是只读的,以单端口2
6、56位(32B)向指令预取缓冲器提供超长指令字代码。数据cache是可读可写的,双端口,每个端口32位,与U,V两条流水线交换整数数据,或组合成一个64位端口与浮点运算部件交换浮点数据。两个cache与64位数据、32位地址的CPU内部总线相连接。两个cache都使用物理地址。每个cache都有一个后援缓冲器TLB,负责将TLB命中的线性地址转换成32位物理地址。第16页/共87页(3)浮点流水线奔腾CPU内部包含了一个8段的流水浮点运算器。前4段为指令预取(PF)、指令译码(D1)、地址生成(D2)、取操作数(EX),在U,V流水线中完成;后4段为执行1(X1)、执行2(X2)、结果写回寄存
7、器堆(WF)、错误报告(ER),在浮点运算部件中完成。一般只能由U流水线完成一条浮点数操作指令。第17页/共87页(4)动态转移预测技术执行转移指令时为了不使流水线断流,pentium采用了动态转移预测技术。转移目标缓冲器BTB一个小容量的cache。当一条指令导致程序转移时,BTB便记录这条指令及其转移目标地址。以后遇到这条转移指令时,BTB会依据前后转移发生的历史来预测该指令这次是转移取还是顺序取。若预测为转移取,则将BTB记录的转移目标地址立即送出可用。两个指令预取缓冲器,每个容量为32字节,当前总是使用其中一个(假设为缓冲器1)。当在指译码(D1)段译出一条转移指令时立即检索BTB。若
8、预测为“顺序取”,则继续从缓冲器1取指令;若预测为“转移取”,则立即冻结缓冲器1,启动另一个缓冲器2,由给出的转移目标地址处开始取分支程序的指令序列。这样,保证了流线的指令预取步骤永远不会空置。并且预测转移取错误时,正确路径的指令已经在另一个冲器中,使流水线的性能损失减至最小。第18页/共87页2.1.6指令译码部件 两条同时译码,同时传给两条流水线2.1.7控制部件微程序控制的基本思想是将指令操作分解为微指令序列,每一条微指令又包含若干可同时进行的微操作。微程序被固化在ROM中,在操作时将根据机器指令不断取出微指令并执行微指令,从而实现指令规定的操作功能。第19页/共87页2.2Pentiu
9、m Pro微处理器Pentium ProPentium ProPentium ProPentium Pro处理器处理器中文名为“高能奔腾”,俗称686,是第一个基于RISC内核和32位软件的微处理器。Pentium Pro CPU按双腔结构制作,含CPU和二级Cache,使用Socket 8插座。主频150260 MHz。该主频很容易采用多处理器结构,适用于服务器。该芯片设计上注重了32位代码的优化,在网络服务器系统上能充分发挥其性能;第20页/共87页RISC的三个要素是:(1)一个有限的简单的指令集;(2)CPU配备大量的通用寄存器;(3)强调对指令流水线的优化。基于三要素的RISC机器的
10、特征是:(1)使用等长指令,目前的典型长度是4个字节。(2)寻址方式少且简单,一般为23种,最多不超过4种,绝不出现存储器间接寻址方式。(3)只有取数指令、存数指令访问存储器。指令中最多出现RS型指令,绝不出现SS型指令。第21页/共87页(4)指令集中的指令数目一般少于100种,指令格式一般少于4种。(5)指令功能简单,控制器多采用硬布线方式,以期更快的执行速度。(6)平均而言,所有指令的执行时间为一个处理时钟周期。(7)指令格式中用于指派整数寄存器的个数不少于32个,用于指派浮点数寄存器的个数不少于16个。(8)强调通用寄存器资源的优化使用。(9)支持指令流水并强调指令流水的优化使用。(1
11、0)RlSC技术的复杂性于它的编译程序,因此软件系统开发时间比CISC机器长。第22页/共87页(2)超流水线和超标量技术 超流水线是指CPU内部的流水线超过通常的56步。流水线的步数越多,完成一条指令的速度就越快。超标量(Super-Scalar)是指CPU中有一条以上的流水线,并且每时钟周期可以完成一条以上的指令。3)乱序执行技术乱序执行(Out-of-Order Execution)是指CPU采用了允许将多条指令不按程序规定的顺序,分开发送给各相应电路单元处理的技术。第23页/共87页2.3 Pentium Pentium Pentium Pentium MMX系列系列CPU CPU C
12、PU CPU 中文名为“多能奔腾”。它是为改善PC图形、音响,加速多媒体视听和为通信应用软件开发的新型处理器,实际上是带有多媒体扩展结构MMX(Multi Media eXtension)的奔腾CPU芯片。采用多媒体CPU的微机在进行视频、音频处理时,具有很平滑的视频播放能力、清晰逼真的画面、完美的音响效果。第24页/共87页MMX技术集成到新一代pentium CPU时,主要体现在:采用4种新的数据类型,使用8个64 位宽的MMX寄存器,增设57条新指令。1.MMX数据类型MMX技术定义了三种打包的数据类型及一种64位字长的数据类型。打包数据类型中的每个元素以及64位数都是带符号或不带符号的
13、定点整数(字节、字、双字、四字)。四种数据类型定义如下:紧缩字节类型:8个字节打包成一个64位数据 紧缩字类型:4个字打包成一个64位数据 紧缩双字类型:两个32位的双字打包成一个64位数据四字类型:一个64位数。第25页/共87页2.MMX寄存器8个MMX寄存器MM0MM7的宽度为64位,但它们没有单独设置,而是借用浮点处理单元中的8 个(80位)数据寄存器,它是通过使用“别名”的办法来实现的。即浮点单元的8个数据寄存 器被浮点指令看成ST0ST7,被MMX指令看成是MM0MM7。这样,8个字节或4个字或2个双字被打包装入一个64位的MMX寄存器,一旦执行一条MMX指令时,将所有这些8个、4
14、个或2个的数据同时取出,进行数学运算或逻辑操作,最后结果写入MMX寄存器。事实上,这种运算处理过程是一种并行处理过程,故称为SIMD(单指令 多数据)的并行处理。第26页/共87页3.MMX指令集 如果一条指令支持多种数据类型:字节(B)、字(W)、双字(D)或四字(Q)的操作,则选用某一数据类型时,相应的字母B,W,D或Q列入指令助记符的后面。对于转换指令要列入两个字母,例如WB表示把字拆成字节,而BW表示把字节拼成字。MMX指令的先进性体现在以下五个方面:SIMD结构 本节以前,我们遇到的计算机是SISD(单指令单 数据)的系统结构。而SIMD结构则是单指令多数据的系统结构。MMX指令充分
15、利用CPU64位带 宽的处理能力,一次可以并行处理8个8位数据,或4个16位数据,或2个32位数据,因而成为提高计算性能的最基本因素。第27页/共87页饱和运算方式 这是运算发生溢出时使用的处理方法。如果运算结果超过最大值,则将此值按最大值处理,低于最小值时按最小值处理。由于不需要进行溢出处理,所以提高了处理能力。饱和运算适合于面向像素数据的处理。积和运算方式 MMX的乘法指令中,PMADDWD指令是一条关键指令,它具有乘法-累加操作动能。下图说明了它的操作功能,将两个紧缩字类型的数中相应的元素(16位)相乘,生成4个32位的积,再将左侧的两个积相加,得出一个结果;右侧的两个积相加,得出另一个
16、结果。这样便生成一个紧缩双字类型的结果数据。积和运算方式特别适合于向量计算与矩阵计算。第28页/共87页第29页/共87页2.4 Pentium PPentium P系列微处理器是在Pentium Pro CPU基础上融入MMX技术,优化16位代码。P系列CPU采用双重独立总线技术,芯片设计上把2级高速缓存移至微处理芯片外,将CPU与L2装在同1块基块上,然后封装在黑色卡匣里,构成1个完整的处理器插件,L2容量为512KB,并以CPU主频的一半速度运行,在结构上,采用Solt 1接口标准和单边接触盒(SECC)封装技术,用新型Slot 1插头与主板相连。第30页/共87页1.多媒体增强技术 S
17、IMD 新增57条MMX指令2.动态执行技术 多分支跳转预测 数据流分析:处理顺序 推测执行3.双重独立总线结构第31页/共87页2.5 Pentium Pentium Pentium Pentium 处理器处理器采用P6P6微架构,起始主频450MHz450MHz,设计时针对3232位应用程序进行优化,采用双重独立总路线、动态执行等技术。Pentium 处理器新增加增强音频、视频和3D图形效果的SSE(Streaming SIMD Extensions Instructions)指令集(最早称KNI),内含70条新指令,全面增强3D几何运算,增强了动画、图像、音效、网络、语言识别功能,第32
18、页/共87页1.互联网SSE指令SSE指令集包括了70条指令,其中包含提高3D图形运算效率的50条SIMD(单指令多数据技术)浮点运算指令、12条MMX 整数运算增强指令、8条优化内存中连续数据块传输指令。与P2时代的MMX相比,SSE也是在原来的处理器指令集的基础上添加的扩展指令集,都是SIMD(单指令多数据)指令,不同的是他们处理的数据类型不同.MMX只能在整数上支持SIMD,而SSE指令增加了单精度浮点数的SIMD支持.MMX可以进行同时对2个32位的整数操作,而SSE可以同时对4个32位的浮点数操作。MMX和SSE的一个主要的区别是MMX并没有定义新的寄存器,而SSE定义了8个全新的1
19、28位寄存器,每个寄存器可以同时存放4个单精度浮点数(每个32位长),第33页/共87页2.二级Cache 容量比P2小,速度快,数据宽度256位3.Intel处理器序列号 奔腾 III 处理器在设计时考虑了 Internet。为商业应用程序设计的一个新功能就是“处理器序列号”,一种嵌入新型奔腾III 处理器的电子数字。处理器序列号在制造的过程中集成在硅芯片内部,这是为了使商业软件在企业内更好的管理财产和网络。第34页/共87页2.6 Pentium 4Pentium 4Pentium 4Pentium 4处理器处理器2000.11 Intel推出P4。主频1.4GHz,核心电压1.75V,采
20、 用 0.18 m铝 布 线 工 艺,L2为256KB,引脚数423,使用RDRAM(未流行)。2001.1.8 推出的P4,主频2.0GHz,核心电压1.45V,采 用 0.13 m铜 布 线 工 艺,L2为512KB,引脚数478,采用DDRAM(184PIN)。SDRAM(168PIN)已推出3.5GHz的P4。第35页/共87页第36页/共87页2.7 Pentium微处理器的编程结构2.7.1基本结构寄存器32位微处理器中除了包含8位和16位寄存器外,还引入了若干32位寄存器。80386及其后继机型的可见寄存器组如下图所示。通用寄存器32位x86CPU的32位通用寄存器有8个,分别是
21、EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP.,它们是8086/8088CPU中16位寄存器AX、BX、CX、DX、SI、DI、BP、SP的扩展,这些32位的寄存器可以用来保存数据、传送数据、保存算术运算和逻辑运算的结果,并且所有32位的通用寄存器都可以用于存放地址,在基址、变址寻址方式中使用。另外在专用特性上,和原16位寄存器的专用特性上是一致的,如EAX专用于乘除法和I/O指令。ECX具有循环计数特性,ESI 和EDI作为串处理指令专用的地址寄存器等。第37页/共87页第38页/共87页1.通用寄存器通用寄存器是一种面向寄存器的体系结构,操作数可以直接存放在这些寄存器中。
22、(1)数据寄存器:有4个16位的寄存器,其典型功能归纳如下:AX:累加器,用于完成各类运算和传送、移位等操作;BX:基址寄存器,在间接寻址中用于存放基地址;CX:计数寄存器,用于在循环或串操作指令中存放计数值;DX:数据寄存器,在间接寻址的I/O指令中存放。此外,还可将每个16位的寄存器分成独立的两个8位寄存器来使用,即AH、BH、CH、DH和AL、BL、CL、DL两组。16位数据寄存器主要用于存放常用数据,也可存放地址,而8位寄存器只能用于存放数据。32位的数据寄存器EAX,EBX,ECX,EDX,第39页/共87页(2)指针与变址寄存器:8086的指针寄存器和变址寄存器都是16位寄存器,一
23、般用来存放偏移地址,4个寄存器的功能如下:SP:堆栈指针寄存器,保存位于当前堆栈段中的数据,其内容为栈顶的偏移地址。BP:基址指针寄存器,在访问内存时存放内存单元的偏移地址,或用来存放位于堆栈段中的一个数据区基址的偏移地址。SI:源变址寄存器,用来存放源操作数的偏移地址。DI:目的变址寄存器,用来存放目的操作数的偏移地址。32位寄存器ESP,EBP,ESI,EDI。第40页/共87页段寄存器(可见,不可见)除了原有的CS、DS、ES、SS外,32位微处理器中还增加了2个段寄存器FS 和 GS,也属于附加的数据段。程序能访问6个不同的段。内存单元的逻辑地址仍采用段地址:偏移地址的形式。但是在保护
24、模式下,段寄存器的内容不再是段值,而是在系统中能够查找到段的一个6个段描述符寄存器(64位)。第41页/共87页实地址方式8086/8088 CPU只能工作在实地址模式下,这时DOS应用程序占用了整个系统资源。在实地址模式下,只能对1MB的内存空间进行寻址。保护虚地址方式在80286 CPU 中增加了一种保护模式。在保护模式下,CPU 可以同时处理多个程序,每个程序各自分开,在自己的空间中运行,这时即使某个程序有缺陷,最多也只是损坏自己,而不会影响到整个系统。第42页/共87页虚拟86模式:多任务环境下这种模式使CPU可以重复而且迅速在V86模式和保护模式之间进行转换。第43页/共87页第44
25、页/共87页CS:DS:ES:SS:FS:GS:第45页/共87页段选择符段寄存器(16位)段描述符段描述符段描述符表索引值访问控制 界限段基址段描述符(64位)存储段物理存储器CS、DS、SS、ES、FS和GS寄存器存放每个当前段的选择符 15 0 63 0CSDSSSESFSGS段寄存器段寄存器段描述符寄存器段描述符寄存器第46页/共87页专用寄存器32位微处理器中的EIP和EFLAGS是16位指令指针寄存器IP和标志寄存器FLAGS的扩展。EFLAGS是在16位FLAGS的基础上扩展了8个控制标志位和4个状态标志位,其他标志位的位置和意义与16位中的相同。见下图。指令指针寄存器EIP32
26、位的寄存器,它的低16位称为IP,EIP中的内容是下一条要取入CPU的指令在内存中的偏移地址,当一个程序开始运行时,系统把EIP清零,每取入一条指令,EIP自动增加取入CPU的字节数目第47页/共87页3.标志寄存器标志寄存器14个标志个标志 3119 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0EFLAGS FLAGSCFPFAFZFSFTFIFDFOFIOPLNTRFVMAC状态标志位(6个):CF、PF、AF、ZF、SF、OF,表示指令执行结果的特征状态控制标志位(8个):IF、DF、TF、AC、VM、RF、NT、IOPL,用来控制CPU的
27、操作 第48页/共87页 AF:辅助进位标志 CF:进位标志PF:奇偶标志SF:符号标志ZF:零标志DF:方向标志(地址增减)IF:中断允许标志 OF:溢出标志 TF:陷阱标志(调试单步中断)第49页/共87页低16位的含义与8086的FLAGES基本相同 AC对准标志位。若AC=1,且CR0中AM=1时,则进行字、双字、4字的对准检查,发现访问存储器操作数未按边界对准,则产生 异常中断17错误;AC=0时,不进行对准检查 VM虚拟8086方式标志位。保护模式下VM为1时,转换到虚拟8086工作方式;当VM为0时,80486返回保护方式。在实地址方式下,VM位无效 RF恢复标志位。与调试寄存器
28、的代码断点结合使用,以保证不重复使用断点。用于DEBUG调试,每执行完一条指令,使RF复位;而RF置1时,即便遇到断点或调试故障均被忽略 NT任务嵌套标志位。表示当前任务是否嵌套在另一任务内。有嵌套时NT=1;否则=0。只用于保护模式 IOPLI/O特权级标志位。只用于保护模式,规定I/O操作的级别(03)第50页/共87页虚拟中断允许标志位VIF(Virtual IF):VIF=1表示允许虚拟8086模式或允许保护模式虚拟中断。虚拟中断标志是所有中断标志的虚拟映像。虚拟中断挂起标志VIP(Virtual IP):当允许虚拟8086方式扩充或允许保护模式虚拟中断时,该位指示虚拟中断是否挂起。当
29、VIF=0时,VIP强制为0,否则为1。标识标志ID:其功能是测试微处理器是否支持CPU标识指令CPUID。CPUID的作用是给软件提供提供Intel系列机型号、软件在微处理器上的执行步骤等信息。第51页/共87页2.7.2系统级寄存器1.4个系统地址寄存器和5个控制寄存器从80386开始,在CPU中设置了4个系统地址寄存器,它们分别是全局描述符表寄存器GDTR、中断描述符表寄存器IDTR、局部描述符表寄存器LDTR和任务寄存器TR。其中GDTR和IDTR称为系统地址寄存器,LDTR和TR称为系统段寄存器。这些寄存器只在保护模式下使用。GDTR和IDTR必须在转入保护模式之前进行初始值设定,这
30、两个寄存器在实地址模式下可以访问。LDTR和TR只能在保护模式下使用。第52页/共87页全局描述符表GDT、局部描述符表LDT和中断描述符表IDT等都是保护方式下非常重要的特殊段,它们包含有为段机制所用的重要表格。为了方便快速地定位这些段,处理器采用一些特殊的寄存器保存这些段的基地址和段界限。我们把这些特殊的寄存器称为系统地址寄存器。第53页/共87页全局描述符表寄存器GDTR:是一个48位的寄存器,用来存放全局描述符表(GDT)的32位线性基地址和16位界限值。中断描述符表寄存器IDTR:是一个48位的寄存器,用来存放中断描述符表(IDT)的32位线性基地址和16位界限值。局部描述符表寄存器
31、LDTR:是一个16位的寄存器,用来存放局部描述符表(LDT)的段选择字。任务寄存器TR:是一个16位的寄存器,用来存放任务状态段表(TSS)的段选择字。第54页/共87页2.2.控制寄存器3232位微处理器为了控制管理的需要,配备了控制寄存器。在8038680386中配备了3 3个3232位的控制寄存器(CR0,CR2,CR3)(CR0,CR2,CR3),发展到PentiumPentium微处理器时,就有5 5个控制寄存器(CR0CR4)(CR0CR4),不过,控制寄存器中的一些位被重新定义了。这些控制寄存器中保存着全局性的和任务无关的机器状态,供应用程序读取,而写这些控制寄存器的操作被大多
32、数系统禁止。5 5个控制寄存器,示意如下图。第55页/共87页PEPE:保护模式允许位,当PE=1PE=1时表示启动系统后进入保护模式;PE=0PE=0表示实地址模式。MPMP:浮点协处理器监控位。MP=1MP=1表示有协处理器在工作,MP=0MP=0表示协处理器未工作。EMEM:模拟浮点协处理器位。EM=1EM=1,表示用软件仿真协处理器,即没有配备浮点部件。TSTS:任务切换位。每次任务切换的时候,微处理器都将该位置1 1。CLTSCLTS指令将该位置0 0。在解释浮点算术运算指令时要测试该位。ETET:处理器扩展类型位。ET=1ET=1表示系统中配置了8038780387数值协处理器,使
33、用3232位协处理器协议,ET=0ET=0,表示系统中配置8028780287数值协处理器,使用1616位协处理器协议。在PentiumPentium中这位保留。EM=1EM=1时ETET位失效。NENE:数据异常中断控制位。NE=1NE=1表示执行浮点运算指令时发生故障,产生异常中断1616。NE=0NE=0同MS DOSMS DOS系统中以前所用的所有协处理器的控制之间保持兼容。WPWP:写保护控制位。WP=1WP=1表示表示禁止来自管理程序级的写操作写 到用户级的页面上。WP=0WP=0通过管理进程可以对用户级的只读页面进行写操作。AM:定位屏蔽控制位。AM=1时,EFLAGS中的AC位
34、有效,要进行定位检查。AM=0时,AC位无效,禁止对准校验。NW:不写贯穿位。NW=1禁止通写CACHE(不写入主存)。NW=0允许CACHE变成通写方式(同时写 入主存)。CD:高速缓存禁止位。CD=1表示禁止填充高速缓存,不命中发生也不允许填充高速缓存。CD=0表示允许填充高速缓存。PG:页式管理使能位。PG=1表示允许存储分页,否则禁止存储分页。第56页/共87页CR0:机器状态字.CR0的值在系统复位的时候,初始值为60000010H。CR1:保留控制寄存器,没有定义。CR2:页故 障线性地址寄存器。其中存放的是一个32位的线性地址,在分页操作期间,如果出现异常,则产生引起这次异常事故
35、之前访问页的全32位线性地址保存在CR2中。只有CR0的PG=1时,CR2才有效。CR3:页目录基址寄存器。20位保存页目录表的物理基地址,因为Pentium的页目录表是按页排列的。PWT:页面写贯通。PWT=1表示对当前所访问的页实现通写。PWT=0则实现写回。PCD:禁止CACHE。PCD=1表示不能对页面目录进行高速缓冲操作。PCD=0则允许进行高速缓冲操作。第57页/共87页VME:虚拟8086方式扩充。VME=1允许虚拟8086方式扩充,VME=0禁止虚拟8086方式扩充。PVI:保护模式虚拟中断。PVI=1允许保护模式虚拟中断,PVI=0禁止保护模式虚拟中断。TSD:禁止定时标志。
36、TSD=1且当前特权级不为0时,禁止RDTSC指令(读时间标志计数器指令)且执行这一指令时将产生故障。TSD=0表示在任何特权级上都允许RDTSC指令执行。DE:调试扩充位。DE=1表示允许调试扩充。DE=0禁止调试扩充。实际上该位控制是否支持I/O断点。PSE:页大小扩展位。PSE=1允许使用4MB的页面。PSE=0禁止使用4MB的页面。MCE:允许机器检查。MCE=1允许机器检查异常。MCE=0禁止机器检查异常。第58页/共87页2.7.3调试寄存器32位微处理器总共支持8个32位的可编程调试寄存器,命 名 为 DR0DR7。其 中DR0DR3为断点地址寄存器。DR4,DR5保 留。DR6
37、为调试状态寄存器,保存断点状态;DR7为调试控制寄存器,用于控制设置断点第59页/共87页 2.8 Pentium微处理器的引脚信号和功能 P5的引脚分布第60页/共87页168个信号引脚50个Vcc引脚5V电源49个Vss引脚接地6个NC引脚,必须保持在非连接状态 Socket 4插座ZIF插座273引脚第61页/共87页ADS#地址状态,低电平有效M/IO#存储器/IO指示,有效电平1/0A31A3 地址线和字节选通信号BE7#BE0#一起定义被访问的存储器或I/O的物理区域,实模式下只有低17位地址线A19A3有效,保护模式下全部29条地址线都有效,无论实模式还是保护模式,均具有64KB
38、独立的I/O地址空间,在寻址I/O设备时,仅需使用地址线A15A3和BE4#BE0#第62页/共87页FA20M#地址第20位屏蔽完成屏蔽地址线第20位的功能若A20M#为0,则在访问内部高速缓存或外部存储器时地址线第20位被屏蔽实模式时须置低A20M#,保护模式下该信号未定义FBE7#BE0#字节选通信号用于在当前的传送操作中选通哪几个字节FD63D0 64条数据线D7D0定义数据总线的最低字节,D63D56定义数据总线的最高字节在一个总线周期内,经过数据总线可以传送字节、字、双字、四字,Pentium通过激活相应的BE?#来做到这一点例:当BE7#BE0#为11110000B时,将产生何种
39、数据传送类型,数据传送经过那些数据线?双字经过D31D0传送第63页/共87页FDP7DP0 数据奇偶校验信号FPCHK#奇偶校验状态信号Pentium为每个数据字节加入校验码在写总线周期中,为D0D63上每一字节产生一位偶校验码,通过DP7DP0输出在读总线周期中,D0D63及DP7DP0上的数据按字节进行对应的偶校验,如出现错误,PCHK#信号将逻辑0送至外部电路FPEN#校验允许信号用于确定发生校验错误时是否进行异常处理如PEN#为低电平,则Pentium自动执行异常处理FAP 地址校验信号Pentium可以对地址信号进行校验,只要地址在A3A31信号线上输出,就会产生偶校验位在AP引脚
40、上输出,如果在查询周期在地址总线上检测到错误,APCHK#信号置为逻辑0第64页/共87页FW/R#读/写控制信号写(高电平),读(低电平)FD/C#数据/代码控制信号传送数据(高电平),传送代码(低电平)F M/IO#存储器/IO选择信号访问存储器(高电平),访问I/O端口(低电平)例:如果M/IO#、D/C#、W/R#分别为0 1 0,则产生何种类型的总线周期I/O读(输入)总线周期第65页/共87页F NA#下一地址请求当其为0时激活地址流水线方式F BRDY#突发就绪信号通知处理器外部系统已从数据总线连接中取得数据F INTR 中断请求Pentium在每条指令开始的时刻采样这个信号,如
41、INTR为高电平,则表明出现了中断请求当一个有效的中断请求被识别后,Pentium将通知外部电路并启动一个中断响应总线周期时序。对于中断响应总线周期,M/IO#、D/C#、W/R#分别为0 0 0,以此告知相应的外部设备它的中断请求已经得到同意这就完成了中断请求/响应的握手过程,从此时开始程序控制转移到中断服务程序,INTR是可屏蔽的,可以通过标志寄存器中的中断标志位IF予以允许或禁止。第66页/共87页FNMI 非屏蔽中断请求只要NMI输入端上出现由0到1的跳变,一个中断服务请求就被锁存在Pentium中,与IF标志的状态无关FRESET 复位 进行硬件复位FINIT 初始化 对处理器进行初
42、始化FHOLD 总线保持请求FHLDA 总线保持响应 (如DMA控制器)FBOFF#总线占用输入信号与HOLD的区别:1.总线占用操作在当前时钟周期结束时开始,而不是在当前总线周期结束时开始2.无需响应外部总线控制器可以使用该信号快速接管系统总线的控制权第67页/共87页FBREQ 总线请求输出信号向外部系统表明Pentium处理器内部产生了一个总线请求FKEN#高速缓存允许输入信号存储器子系统通过该信号通知Pentium在该总线周期中是否需要对Cache操作KEN#置为0,则在存储器读总线周期中,总线上的数据会复制到芯片内的Cache中FFLUSH#高速缓存擦除信号外电路使用该信号擦除芯片内
43、的高速缓存第68页/共87页FAHOLD地址保持信号FEADS#外部地址有效信号用于高速缓存无效周期中,该周期用来处理Cache与主存储器之间的数据一致性。FCACHE#高速缓存可用性信号读:当从存储器所读数据可以送入Cache时,该信号输出逻辑0,表明该操作是缓存式读操作写:在写周期中该信号输出逻辑0,表明本操作是对Cache中被修改了的数据执行回写操作第69页/共87页2.9 Pentium微处理器的总线周期总线周期微处理器访问一次存储器或I/O设备所需要的整个时间一个处理器时钟周期也称为一个T状态每个总线周期包含两个T状态,分别记做T1、T2。在T1期间,处理器在地址总线上输出被访问存储
44、单元的地址、总线周期指示码和有关控制信号,在写周期的情况下被写数据在T1期间输出在数据总线上在T2期间,外部设备从数据总线上接受数据,或在读周期的情况下把数据放置在数据总线上。第70页/共87页非流水线总线周期第71页/共87页非流水线读写总线周期第72页/共87页突发式总线周期一种特殊的总线周期在非突发式总线周期中,每次只能传送一个数据单元,且至少需要两个时钟周期在突发式总线周期中,传送第一个数据单元需要两个时钟周期,以后每个数据单元只需一个时钟周期看看突发式总线周期传送256位数据,即4个四字第73页/共87页突发式读总线周期第74页/共87页突发式写总线周期第75页/共87页流水线式读写
45、总线周期流水线指对下一总线周期的寻址与前一总线周期的数据传送相重叠第76页/共87页流水线突发式读周期第77页/共87页流水线式读写周期第78页/共87页2.10 Pentium微处理器的操作模式实地址模式当系统复位或上电时,系统自动进入实地址模式。在此模式下,采用类似于8086的体系结构,操作数默认长度是16位,存储器的物理地址形成和8086相同,可寻址的空间为1MB,所有段的最大容量为64KB。中断向量表在00000H003FFH的1KB存储区,系统初始化区在0FFFFFFF00FFFFFFFFH存储区。虽然有4个特权级,但在实地址模式下,程序在最高级0级上运行,即用户和操作系统拥有同样的
46、级别。MS DOS 操作系统完全运行在实模式下第79页/共87页虚地址保护模式虚地址保护模式是80386及其以后的微机最常用的模式。系统启动后先进入实地址模式,完成系统初始化后立即转入虚地址保护模式。这种模式提供了多任务环境下的各种复杂功能以及对复杂存储器组织的管理机制。在虚地址保护模式下,微处理器全部的32条地址线有效,每个段可以寻址的物理空间达到4GB。但实际微机系统不可能安装这么大的物理内存,为了运行大型程序,实现真正的多任务,必须采用虚拟存储器。通过软硬结合的技术,采用扩充的分段管理机制和可选的分页管理机制,提供比实际可用的物理主存大得多的虚拟存储器空间。Pentium的寻址机构通过描
47、述符这种数据结构来实现对内存访问,可寻址的虚拟地址空间可达64TB(248)。第80页/共87页存储器空间采用虚拟地址空间、线性地址空间和物理地址空间三种方式来描述。虚拟存储器是由大小可变的存储块构成,这样的块称为段。每个段用一个8字节的数据来描述段的位置、大小、使用情况等,这个8字节的数据称为描述符。在虚地址保护模式下,虚拟存储器的地址由指示描述符的选择子和段内偏移地址两部分构成。无论哪一种类型的程序在系统中运行,都只有在物理存储器中才能运行,所以必须由存储管理机制把二维形式的虚拟地址(选择子:偏移地址)转换为一维的物理存储地址。第81页/共87页32位微处理器采用线性地址空间来隔离虚拟地址
48、和物理地址空间。32位微机系统中32位地址的计算过程是:根据指令寻址方式得到段内偏移地址(有效地址),再由段描述符获得选择子,形成虚拟地址。存储器段式管理机构将段地址+有效地址得到32位的线性地址。在页式管理机构工作时,物理地址=F(线性地址),即物理地址是线性地址的一个函数式。如果页式管理机构不工作时,物理地址就等于线性地址。地址转换过程示意如图12.4所示。从实地址模式切换到虚地址保护模式,需要用MOV CR0,REG 指令修改机器控制寄存器中的PE位为1。要从保护模式回到实地址模式,则用指令MOV CR0,REG将PE改为0即可。WINDOWS 9X/2000/NT/XP运行在保护模式下
49、。第82页/共87页图12.4 保护模式下地址转换示意图第83页/共87页虚拟8086模式n虚拟8086模式是指一个多任务的环境,即模拟多个8086的工作模式。虚拟8086模式允许将内存划分成若干部分,每一部分由操作系统分配给不同的应用程序,操作系统可根据优先权或平均分配原则,分配每个应用程序的执行时间。n虚拟8086模式下,只利用微处理器的低20位地址总线,可寻址的最大存储空间是1MB。段寄存器的用法同8086中段寄存器,通过段地址乘以16加上有效地址即得到20位的线性地址。在虚拟8086模式下可以使用分页方式,分页内存是将内存以4KB为单位进行划分。尽管虚拟8086模式得到的是20位线性地
50、址,但由于线性地址可以通过页表映射到任何32位物理地址,因此应用程序可以在实际内存的任何地方执行。第84页/共87页但是,因为虚拟8086模式只能在最低特权级3上运行,如果要执行具有特权的保护方式指令,则会受到保护性检查,所以也就不能对CR0进行修改,因此,若要启动分页机制,必须预先在保护模式下对CR0的PG位置位。在虚拟8086模式下,只能执行SGDT、SIDT和SMSW3条指令,其他保护方式的指令的执行都会产生异常。在WINDOWS 9X操作系统中,打开一个MS DOS窗口,运行MS DOS 应用程序,那么该程序就运行在虚拟8086模式下。第85页/共87页l系统管理模式n系统管理模式的功