1.11k likes | 1.31k Views
第 7 章 Pentium 简介. 7.1 从 8086 到 Pentium 7.2 Pentium 处理器 7.3 特权级与描述符 7.4 Pentium 的工作模式 7.5 中断和异常 7.6 保护机构 7.7 程序的转移与任务的切换 7.8 其他有关问题. 7.1 从 8086 到 Pentium. 7.1.1 8086 与 8088 的比较 主要区别表现在 : ①8088CPU 的指令预取队列为 4 个字节 , 而 8086CPU 则为 6 个字节。
E N D
第7章 Pentium简介 • 7.1 从8086到Pentium • 7.2 Pentium处理器 • 7.3 特权级与描述符 • 7.4 Pentium的工作模式 • 7.5 中断和异常 • 7.6 保护机构 • 7.7 程序的转移与任务的切换 • 7.8 其他有关问题
7.1 从8086到Pentium • 7.1.1 8086与8088的比较 • 主要区别表现在: • ①8088CPU的指令预取队列为4个字节,而8086CPU则为6个字节。 • ②8088CPU的A8~A15仅用于输出地址信号,而8086则与AD0~AD7一样,将此8条线变为双向分时复用的AD8~AD15,即某一时刻送出地址A8~A15,而另一时刻则用这8条线传送A8~A15。
③8088CPU上的 信号在8086上变为 信号,以保证8086可以一次读写一个字节或一个字(16位)。 • ④8088的引线28是IO/ ,即CPU访问内存时该引线输出低电平;访问接口时则输出高电平。
7.1.2 80X86的发展过程 • 1.从8086/88到80186/188 • 80186/188的设计思想主要是通过提高集成度来减少构成微型机的配套芯片。 • 2. 80286微处理器 • 80286在指令操作码上与8086、80186向上兼容,具有实地址模式和保护模式两种运行方式。
①80286的内部寄存器只有16位,且外部数据总线也是16位,故只能进行16位的操作。 • ②其外部地址总线为24条,因此它最大的内存寻址空间为16MB。 • ③由于其描述符的8个字节未能充分利用,故最大的虚拟地址空间只有1GB。
3. 80386微处理器 • 现在看起来,80386存在的主要问题是: • ①为提高速度,需外接高速缓冲存贮器(Cache)。有关高速缓存的问题,我们在此仅做最简单的概念上的介绍。 • 具有高速缓存的存贮器系统结构如图71所示。它由3大部分组成: • ·高速缓存——位于CPU和大容量存贮器(DRAM)之间的一种高速静态存贮器(SRAM); • ·主存贮器——微型计算机中大容量的慢速存贮器; • ·高速缓存控制器——控制高速缓存工作的电路。
Cache的广泛应用主要取决于微型计算机工作时的两种特殊性能: • ·程序具有高度的重复性。 • ·程序和变量具有访问的局部性。 • ②为提高性能需外接数字协处理器80387。 • 4. 80486处理器 • 从结构上看,80486是将80386微处理器及与其配套芯片集成在一块芯片上。具体地说,80486芯片中集成了80386处理器、80387数字协处理器、8KB的高速缓存(Cache),以及支持构成多微处理器的硬件。
5. Pentium处理器 • 有人将开始开发出来的Pentium处理器产品称为80586,而将后来的Pentium称作80686等,也有人把后来开发出来的产品叫做多能Pentium或高能Pentium。Pentium在80486的基础上又有新的改进,从下一节开始,我们将简要介绍Pentium100。
7.2 Pentium处理器 • Pentium处理器从推出至今只有4年时间,已从奔腾60发展到奔腾Ⅱ。在性能上又有了很大的提高。从时钟频率来说,从开始的60MHz,66MHz到75,90,100,133,166直到现在的220,260,300MHz。
7.2.1 Pentium100的引线 • Pentium100处理器是有296条引线PGA封装的处理器,其顶视图如图72所示。 • 由于篇幅所限,这里不再对Pentium100的引线进行逐一详细说明,仅将其引线按功能分类列于表71上。读者从表71中可以看到Pentium100引线的主要功能。
从上述Pentium100引线中我们可以看到,它的引线包括:从上述Pentium100引线中我们可以看到,它的引线包括: • ①地址线A31~A3加上BE0#~BE7#,可以实现的物理地址空间为232,即4GB。 • ②数据线D0~D63共有64条数据线,可以实现多达64位的数据操作。 • ③控制信号线共71条。 • ④与先进的可编程中断控制(APIC)有关的信号,共有3条引线。 • ⑤与时钟有关的时钟控制信号有3条。
⑥ 双处理器私有接口线有4条。 • ⑦ VCC电源引线有53条。 • ⑧ 地线有53条。 • ⑨ 尚有16条空引脚,为以后新开发的Pentium提供了备用引线。
7.2.2 Pentium100的内部寄存器 • Pentium100的与我们应用有关的寄存器有8类。 • 1. 通用寄存器 • 2. 段寄存器和描述符寄存器 • 3. 指令指针寄存器
4. 标志寄存器 • 标志寄存器EFLAGS是一个32位的寄存器。该寄存器各位的定义如图75所示。 图7.5 Pentium的标志寄存器
以下3位标志是Pentium所独有的: • VIF为虚拟中断标志。 • VIP为虚拟中断挂起标志。 • ID为鉴别标志,该标志用以指示Pentium处理器是否支持CPUID指令。
5. 控制寄存器 • Pentium处理器的控制寄存器包括5个32位的寄存器,如图7.6所示。 • 图76所示的控制寄存器CR0~CR4是Pentium处理器的;而 CR0~CR3这4个寄存器是80486的。可见Pentium与80486相比,只多了一个CR4。但与80386相比,差别就多了,不再说明。
(1) CR0 • CR0中包括控制整个系统的条件标志。在此只简单地给出它们的名称: • PE为保护允许位。 • MP为监视协处理器位。 • EM为仿真协处理器位。 • TS为任务转换位。 • ET为协处理器类型位。 • NE为数学运算错位。 • WP为写保护位。
AM为对齐标志位。 • NW为不透写位。 • CD为Cache不允许位。 • PG为页式管理允许位。
(2)CR1 • CR1是Intel公司为将来的处理器保留的。 • (3)CR2 • CR2存放引起页错误(FAULT)的线性地址。 • (4) CR3 • CR3为处理器提供当前任务的页目录基地址。
(5)CR4 • CR4仅为Pentium处理器所有。 • VME为虚拟中断允许位。 • PVI为保护模式下的中断允许位。 • TSD为时间标记计数器读允许位。 • DE为I/O断点允许位。 • PSE是以4MB为一页的允许位。 • MCE为机器校验异常允许位。
6. 调试寄存器 • 顾名思义,486及Pentium内部有8个32位专门用作调试的寄存器,如图77所示。
其中DR0~DR3为4个断点寄存器,用于存放相应断点的线性地址。 • DR4和DR5是Intel公司保留备用的。 • DR6为调试状态寄存器,其中某些位的状态用来指示调试异常发生的原因,以便调试异常处理程序对它们进行分析、判断,进行相应的处理。 • DR7为调试控制寄存器。
7. 测试寄存器 • 测试寄存器TR3~TR5用于Cache的测试。 • 测试寄存器TR6~TR7用于页面管理测试。它们的细节本书不做说明。 • 8. 系统地址寄存器 • 系统地址寄存器只用于保护模式。
GDTR为全局描述符表寄存器。 • IDTR为中断描述符表寄存器。 • LDTR为局部描述表寄存器。 • TR为任务寄存器。
7.3 特权级与描述符 • 7.3.1 特权级 • 在8086的系统中,由于系统程序和用户程序是放在一起的,同属一个级别,因此用户程序运行中就有可能破坏系统程序。这是早期80X86CPU一个重要的缺陷。自从80286以后,逐步发展并完善了保护模式的功能,使系统的特权级为四级,如图79所示。
7.3.2 描述符 • 1 .选择符 • 选择符的格式如图710所示。 图7.10 选择符格式
2. 段描述符 • 从80386开始,段描述符均由8个字节(64位)构成,其格式如图711所示。 图7.11 段描述符的格式
由图711可以看到段描述符的构成: • ①线性基地址(32位)用来指示某段的起始地址。 • ②段限制(20位)用来限制一段的最大长度。 • ③G位用于定义段限制所使用的单位。 • ④ D/B位对于不同类型的段,有不同解释: • 对于代码段,D=1为32位操作;D=0为16位操作。 • 对于堆栈段,B=1为32位操作;B=0为16位操作。 • 对于数据段,B=1为32位操作;B=0为兼容80286。 • ⑤AVL位为系统软件所利用。 • ⑥访问权限各位如图712所示。
访问权限规定了段描述符所定义段的属性。例如,P位规定该段是否存在;DPL两位编码用来规定特权级;S=1表示代码段或属于数据类段,S=0则表示该描述符为系统描述符;E=1表示代码段,E=0表示数据类段。 • ED/C和W/R对数据类段和代码段具有不同含义: • (a)对于代码段 • C=1为一致性代码段;C=0表示非一致性代码段。 • R=1表示可读代码段;R=0表示只能执行不可读的代码段。
(b) 对数据类段 • ED=0表示偏移值必须小于或等于段限制。 • ED=1表示偏移值大于段限制。 • W=0表示该段不可写;W=1表示可写。 • 3.系统描述符 • 系统描述符用于描述系统中的每个任务的任务状态段(TSS)的属性或局部描述符表的属性。由系统描述符中TYPE字段的编码来表征该系统描述符是属于什么描述符的。 • (1)系统描述符的格式 • 系统描述符的格式如图713所示。
系统描述符中,有许多项与前面的段描述符的定义是一样的,这里不再重复。系统描述符中,有许多项与前面的段描述符的定义是一样的,这里不再重复。 • 图713中,系统描述符的P位指示系统描述符是否有效:P=1为有效;P=0为无效。 • DPL利用两位编码表示系统描述符的访问特权级0~3。 • TYPE的编码用来表示不同的系统描述符,其中: • 0001 表示为可用的80286TSS描述符 • 0010 表示为局部描述符表LDT的描述符 • 0011 表示为处于忙状态80286TSS描述符 • 1001 表示为可用TSS描述符
1011 表示处于忙状态的TSS描述符 • 0000 • 1000 • 1010 • 1100 无效
剩余的TYPE类型编码是留给中断与异常情况的。剩余的TYPE类型编码是留给中断与异常情况的。 • (2)中断描述符 图7.14中断描述符的格式
中断描述符中,与前相同部分不再说明。 • 选择符:中断响应过程中利用选择符可以得到中断服务程序的描述符。由其线性基地址再加上中断描述符的偏移量,便可获得中断服务程序的入口地址。 • 偏移量:为32位,与线性基地址一起决定中断服务程序的入口地址。偏移量对任务门是无效的。
TYPE的编码在中断描述符中的定义如下: • 0100 表示为80286调用门 • 0101 表示为任务门 • 0110 表示为80286调用门 • 0111 表示为80286异常门 • 1100 表示为80386以上调用门 • 1110 表示为80386以上中断门 • 1110 表示为80386以上异常门
7.4 Pentium的工作模式 • 7.4.1 实地址模式 • 1. 实地址模式的进入 • 在处理器复位后,处理器内部的CR0的PE位为0,表示此时处理器工作在实地址模式。同时,复位后的处理器的内部寄存器状态如表72所示。
2. 实地址模式下段的概念 • 在实地址模式下,段的概念与前面8088所述是一样的。在那里,内存被分成段来进行管理,每段的长度限定为64KB。 • 在8088中,物理地址为 • 物理地址=段寄存器的内容×16+偏移量