990 likes | 1.15k Views
T okenedu.com. 拓宽教育网. 开始. 学习愉快. 画面宁静 , 使人可以安静的进入学习状态 , 唤醒人的学习意识 . 宁静以致远. 新编 16/32 位 微型计算机原理及应用. 李继灿 主编. 第八章 Intel 系列高档微处理器的技术发展. Intel 系列高档微处理器的技术发展.
E N D
Tokenedu.com 拓宽教育网 开始
学习愉快 • 画面宁静,使人可以安静的进入学习状态,唤醒人的学习意识. 宁静以致远
新编16/32位微型计算机原理及应用 李继灿 主编
Intel系列高档微处理器的技术发展 30多年来,Intel公司在计算机发展的各个重要阶段不断推出了微处理器的最新技术和产品。尽管Intel系列微处理器的种类很多,但它们都有很紧密的相似性和继承性,读者一旦掌握了基本的8086/8088微处理器后,就很容易地通过进一步学习甚至自学掌握高档微处理器技术。 本章将简要介绍最具代表性的Intel主流CPU系列的最新技术发展方向,重点介绍80286首次引入的虚拟存储管理,80386的存储器分段与分页管理,80486对80386的增强点,Pentium的体系结构特点以及PentiumⅡ、PentiumⅢ与Pentium4以及Itanium(安腾)的技术特征。
Intel系列高档微处理器的技术发展 8.1 80286微处理器 8.2 80386微处理器 8.3 80486 微处理器 8.4 Pentium 微处理器 8.5 Pentium 微处理器系列及相关技术的发展
8.1 80286微处理器 80286是继8086之后与80186几乎同时推出的产品,它们都是8086的改进型微处理器,不过,80286是一种更先进的超级16位微处理器,它和80186一样,也采用68引线的4列直插式封装。它具有独立的16条数据线D15~D0和24条地址线A23~A0。芯片上集成有13.5万个晶体管,其引线如图8.1所示。
80286具有很大的地址空间,并能以两种不同的方式——实地址方式和保护虚地址方式运行。80286具有很大的地址空间,并能以两种不同的方式——实地址方式和保护虚地址方式运行。 在实地址方式下,其寻址能力为1MB,相当于8086的最大方式系统,但执行速度更快。 在保护虚地址方式下(简称保护方式),80286能寻址16MB(224)物理地址空间,能支持多任务操作,并能为每个任务提供多达1GB(230)的虚拟地址空间。
80286的内部框图如图8.1所示 和8086相比,80286的BIU分成了AU(地址部件),IU(指令部件)和BU(总线部件)。硬件电路设在地址部件框内的存储器管理机构(MMU—Memory Management Unit),能用4个分离的特权层支持iAPX286中的每一个任务的服务和应用程序。这4层特权是:操作系统核、系统服务程序、应用服务程序和应用程序。
一、 80286与8086/8088相比的特点 • 与8086/8088具有软件兼容性,在汇编源代码一级兼容。 • 能运行实时多任务操作系统,支持存储器管理和保护功能。 • 80286CPU内部4个处理部件可并行操作,提高了吞吐量,加快了处理速度80286内部功能部件连接示意图如图8.2所示。
(4) 实现虚拟存储管理 80286片内的MMU首次实现虚拟存储管理功能(也称为虚拟内存管理)。 在8086/8088系统中,程序占有的存储器和CPU可以访问的存储器是一致的,只有物理存储器的概念,其大小为1MB。而从80286开始, CPU内的MMU在保护模式下将支持对虚拟存储器的访问。在80286中,虚拟存储器(虚拟空间)的大小可达230(=1GB)字节,而物理存储器(实存空间)的大小只可达224(=16M)字节。 80286虚拟地址对物理地址的映射示意图如图8.3所示。
二、 80286在体系结构上与8086/8088的主要异同点 (一) 寄存器结构 80286为了能与以前的 86/88系列产品相兼容,其寄存 器结构和指令集必须是原系列 产品的母集。如图8.4所示。 • 通用寄存器和段寄存器与 8086/8088完全相同,它们是 AX,BX,CX,DX,SP,BP,SI,DI CS ,DS,SS,ES。
(2)在状态与控制寄存器组中,80286不仅在8086/8088原有的标志寄存器(FLAGS)和指令指针寄存器(IP)的基础上增加了一个机器状态寄存器,而且对FLAGS寄存器中原作保留的12,13,14位也定义了新的内容。(2)在状态与控制寄存器组中,80286不仅在8086/8088原有的标志寄存器(FLAGS)和指令指针寄存器(IP)的基础上增加了一个机器状态寄存器,而且对FLAGS寄存器中原作保留的12,13,14位也定义了新的内容。 (3) 80286新增加了几个寄存器 • 一个16位的机器状态寄存器(MSW)。它用于表示80286当前所处的工作方式与状态,目前只用到该寄存器的低4位,其他12位为内部保留。MSW各位的含义如下: 2)任务寄存器(TR) 3)描述符表寄存器(GDTR,LDTR和IDTR)。它们总是存放包含各种段描述符的描述符表的地址信息,用于保护模式下的寻址。
(二) 寻址方式 80286微处理器支持两种工作方式——实地址方式和保护虚地址方式(简称保护方式)。在这两种方式下的寄存器功能和指令功能完全一致。80286在其实地址方式下与8086/8088的目标码完全兼容,所以任何一个8086/8088的软件,不经修改都可以在80286上运行。80286在实地址方式的寻址方式与8086相同,但是在虚地址方式的寻址方式则大不相同。 (三) 80286的存储管理系统 1. 实地址模式 2. 保护模式
8.2 80386微处理器 32位微处理器同16位微处理器相比,在体系结构设计上有了概念性的变革。新技术为在32位体系结构中实现多任务多用户操作系统的管理提供了有力的支持。 80386是一种与16位的80286相兼容的第一个高性能全32位微处理器,它代表了体系结构的重要进步——从16位体系结构过渡到32位体系结构。80386采用高速CHMOSⅢ1.5μm技术,132条引出线用网格阵列式封装在陶瓷片内,其耗散功率在1.5w到3.0w之间。
一、 80386的特点 1. 80386可以工作在两种方式:实地址方式和保护方式。 2. 80386芯片在硬件结构上由6个逻辑单元组成。它们按流 水线方式工 作,运行速度可达到4MIPS。 3. 硬件支持多任务,一条指令可以完成任务转换,转换时间 在17μs以内。 4. 硬件支持段式管理和页式管理,易于实现虚拟存储系统。 5. 硬件支持DEBUG功能,并可设置数据断点和ROM断点。 6. 4级特权级:0级最优先,其次为1,2和3级。0、1和2级用于操作系统程序,3级用于用户程序。
二、 80386 的内部结构 80386 CPU内部结构如图8.6所示,它主要由下面6个部件所组成:
1. 总线接口部件(BIU:Bus Interface Unit )。 2. 指令预取部件(CPU:Code Prefetch Unit)。 3. 指令译码部件(IDU:Instruction Decode Unit)。 4. 执行部件(EU:Execution Unit)。它可进一步分为控制部件(Control Unit),保护测试部件(Protection Test Unit)和数据处理部件(Data Unit)3部分。 5. 段管理部件(SU:Segment Unit)。 6. 页管理部件(PU:Paging Unit)。
80386允许使用虚拟存储器。 所谓虚拟存储器是指程序所占有的存储空间,其容量可多达246字节。 实际上,它通常是利用系统中的一个速度较慢而容量很大的外部存储器(通常指硬盘) 来模拟一个速度较快而容量较小 的内存。 程序员编写程序时,其程序 存入磁盘里,因此可编写246字节的 程序。这样,从程序员的角度来看, 系统中似乎有一个容量很大、速度也相当快的虚拟存储器;当然,它并不是真正的物理上的内存。由于80386的虚拟存储器容量可高达246字节(即64TB或64兆兆字节),这样,它就可以运行要求存储容量比实际内存容量大得多的程序。
80386的存储器管理部件(MMU)由分段部件和分页部件两部分组成,它们的功能是实现存储器的段、页式管理。在实现段、页式管理的过程中,80386就能将虚拟地址最终转换为物理地址。 分段部件通过提供一个额外的寻址器件对程序员编程时所涉及的逻辑地址空间进行管理,并且把由指令指定的逻辑地址变换成线性地址。 分页部件提供了对物理地址空间的管理,它的功能是把由分段部件或者由指令译码部件所产生的线性地址再换算成物理地址,并实现程序的重定位。
如前所述,逻辑地址是在程序中所指定的编程地址,而物理地址是在内存中可直接寻址的实际地址。80386在运行时,系统默认程序或数据均以页为单位由虚拟存储器装入实存方能运行。 上述80386内部的6个部件都能各自独立操作,也能与其他部件并行工作。当取一条指令和执行一条指令时,每个部件都会完成一项任务或完成某一操作步骤。这样,既可以同时对不同指令进行操作,又可以对同一指令的不同部分同时并行操作。
三、 80386 的寄存器结构 80386共有34个寄存器:通用寄存器、段寄存器、指令指针和标志寄存器、控制寄存器、系统地址寄存器、调试寄存器以及测试寄存器共7类。包含了8086、80186、80286所有的寄存器。新增的寄存器例如控制、系统地址寄存器,主要用于对系统进行调试和简化设计等。
(一) 通用寄存器 如图8.7所示,80386有8个32位 的通用寄存器,分别命名为EAX、EBX、ECX、EDX、ESI、EDI、EBP以及ESP。每个寄存器可用于存放数据或地址值,它们支持1、8、16和32位的数据操作数,也支持16位和32位的地址操作数。AX、BX、CX、DX、SI、DI、BP、SP可作16位寄存器单独使用,AH、AL、BH、BL、CH、CL、DH、DL可作8位寄存器单独使用。其用法与8086相同。 返回80386 的寄存器结构
(二) 段寄存器和段描述符高速缓存器 如图8.8所示, 80386设置了6个16位的段寄存器,和8086相比,除了都共同具有的CS、SS、DS、ES这4个段寄存器之外,80386又增加了FS和GS两个新的数据段寄存器,使用它们可以减轻对DS和ES两个数据段寄存器的压力。 返回80386 的寄存器结构
(三) 指令指针和标志寄存器 80386中设置了一个32位的指令指针(EIP)和一个32位的标志寄存器(EFLAGS),见图8.9,它们分别是8086微处理器中IP和FLAGS的扩充。按照使用需要,CPU也可以只使用它们的低16位(即FLAGS和IP)。 80386工作在实模式时采用16位的指令指针IP。EFLAGS的低12位与8086标志寄存器FLAGS完全相同。高20位中只设置了4个新的标志。 返回80386 的寄存器结构
(四) 系统地址寄存器和系统段寄存器 在80386中设置了2个系统地址寄存器和2个系统段寄存器。如图8.10所示。 前者即GDTR(Global Descriptor Table Register)全局描述符表寄存器与IDTR(Interrupt Descriptor Table Register)中断描述符表寄存器,由于它们不需要选择段,而只是用于确定系统中唯一的一张全局描述符表或唯一的一张中断描述符表中的描述符项,最后寻址存储器系统地址,故它们称为系统地址寄存器;
后者即LDTR(Local Descriptor Table Register)局部描述符表寄存器与TR(Task Register)任务寄存器,由于它们需要通过段选择子来选择存储器系统中的段,再由段中选择描述符,最后寻址存储器系统地址,故它们称为系统段寄存器。有时,也将这4个寄存器都统称为系统地址寄存器。 返回80386 的寄存器结构
(五) 控制寄存器 80386中有3个32位的控制寄存器CR0、CR2和CR3,用于保存机器的各种全局性状态,这些状态影响系统所有任务的运行。它们主要是供操作系统使用的,因此,操作系统设计者需要熟悉这些寄存器。CR1是未定义的控制寄存器,留作备用。 1. CR0——控制寄存器0(包括80286的机器状态字) 80386中 的CR0是最常用的一个控制寄存器。 它只定义了6个控制和状态标志,其低16位和80286的机器状态字MSW的定义完全相同。如图8.11所示。
PE(位0)和PG(位31)是对保护模式和存储管理至关重要的两位,二者合称保护控制位。PG、PE位的组合与微处理器的工作模式见表8.1所示。PE(位0)和PG(位31)是对保护模式和存储管理至关重要的两位,二者合称保护控制位。PG、PE位的组合与微处理器的工作模式见表8.1所示。 • TS(Task Switched)任务切换位。80386是一个多任务系统,每当任务切换时,处理器将把TS置为1,它与EM、MP的联合操作,见表8.2所示。 • MP(Monitor Coprocessor)监控协处理器位。当MP为1时,表示有协处理器在工作;否则,协处理器未工作。 • EM(Emulate Coprocessor)为模拟协处理器控制位。
2.CR2控制寄存器2 CR2称为页面故障线性地址寄存器,用于发生页面访问异常时报告出错信息。 3. CR3控制寄存器3 CR3称为页组目录基址寄存器,用于存放页目录表的物理基地址。如图8.12所示 返回80386 的寄存器结构
(六) 调试寄存器组 80386为程序员提供了8个32位的调试寄存器DR0~DR7,可以用于使程序员在调试过程中一次设置4个断点。 其中DR0~DR3用来容纳4个32位的断点线性地址; DR6是断点状态寄存器,其中保存了几个调试标志,用来协助断点调试; DR7为断点控制寄存器,可以通过对应位的设置来有选择地允许和禁止断点调试,比如仅在写数据时作为断点,或者仅在读/写数据时作为断点等; DR3与DR4保留。 返回80386 的寄存器结构
(七) 测试寄存器组 80386中设置了两个32位的测试寄存器TR6和TR7。 TR6作为测试命令寄存器,其中存放测试控制命令,用于对RAM和相关寄存器进行测试; TR7为数据寄存器,用于保留测试后所得的结果。 返回80386 的寄存器结构
四、80386 的三种工作模式 80386有3种工作模式:实地址模式(Real Address Mode),简称为实模式;保护虚拟地址模式(Protected Virtual Address Mode),也叫保护模式;虚拟8086模式(Virtual Address 8086 Mode),简称为虚拟86模式。 现将80386的3种工作模式简要说明如下:
实地址模式 当80386在刚加电启动或复位时,便由操作系统自动控制进入实模式。实模式主要是为80386进行初始化用的。通常是在实模式环境下,为80386保护模式所需要的数据结构做好各种配置和准备。因此,实模式是一种为建立保护模式做准备的模式。在实模式下,80386类似于8086的体系结构。 设置实模式一方面为了保持80386和8086兼容,另一方面可以方便地从实模式转换到保护模式。
保护虚拟地址模式 保护模式是80386最常用的、也是最具特色的工作模式。 通常在开机或复位后,机器先进入实模式完成初始化,然后就立即转换到保护模式。保护模式提供了多任务环境中的各种复杂功能以及对复杂存储器组织的管理机制。只有在保护模式下,80386才可以充分发挥其强大的功能和本性,因此,这种模式也称为本性模式。 所谓保护,主要是指对存储器程序和数据结构的保护。
虚拟8086模式 (1)使80386可以快速地执行多个8086 的应用程序。 (2)段寄存器的用法和实模式时相同,也是由段寄存器的内容左移4位加上偏移地址来形成线性地址。 (3)存储器寻址空间为1MB,但可以使用分页机制,将这1MB的存储空间分为256个页面,每页为4KB大小。在多任务系统中,80386可以使其中的一个或几个任务使用虚拟8086模式。此时,可以使一个任务所用的全部页面定位于某个物理地址空间,而另一个任务所用的页面定位于其他物理地址空间,这样,就把存储器虚拟化了,虚拟8086模式的名称即由此而来。 (4)在虚拟8086模式中,程序是在最低特权级(3级)上运行的,因此,80386指令系统中的一些特权指令是不能使用的。
五、 80386 的存储器管理 80386利用片内的存储管理单元(Memory Management Unit,简称MMU )来实现对存储器系统的两级管理:分段管理和分页管理。 在两级存储管理中,段的大小可以选择,因此,可以随数据结构和代码模块的大小而确定,使用十分灵活,另外,对每一段还可以赋予属性和保护信息,以有效地防止在多任务环境下各个模块对存储器的越权访问。 下面,我们将分别针对80386 的3种工作模式来讨论存储管理的有关细节。重点是讨论保护模式的存储管理。
(一) 实模式 当80386系统机复位或上电复位时,就工作在实模式,80386的所有指令在实模式下都有效。其物理地址的形成与8086相同,可寻址的实地址空间只有1MB,所有的段其最大容量为64KB。 而且,中断向量表仍设置在00000H~003FFH共计1K字节的存储区内;系统初始化区在FFFFFFF0H~FFFFFFFFH存储区内。 设置实模式一方面为了保持80386和8086兼容,另一方面可以从实模式转变到保护模式。
(二) 保护模式 80386的保护模式与80286相类似,但是80386增加了段页式管理机构,可提供4KM字节的实地址空间。 • 地址流水线及其转换 80386的存储管理机制可以很好地实现地址流水线操作,为了理解这一操作原理和过程,首先要了解逻辑地址、线性地址和物理地址这3者之间的关系。 80386地址转换的 示意图如图8.13所示。
80386的32位地址运算,包括两个基本过程:先由分段部件(即段式管理机构)将逻辑地址转换为线性地址;再由分页部件(即页式管理机构)将线性地址转换为物理地址。80386的32位地址运算,包括两个基本过程:先由分段部件(即段式管理机构)将逻辑地址转换为线性地址;再由分页部件(即页式管理机构)将线性地址转换为物理地址。 所以,80386在执行每条指令期间,硬件将自动地进行复杂的地址计算。 寻址机构计算出有效地址;段式管理机构计算出线性地址;页式管理机构计算出物理地址。 80386的地址流水线就是由分段部件、分页部件和总线接口部件组成的。
80386的3种类型地址的具体计算如下 • 有效地址除立即数外,有效地址均按下式运算: 有效地址=基址+变址×比例因子+位移量 • 线性地址 在虚拟存储空间内的可定位的地址,它可由存储器段式管理机构按下式来计算: 线性地址=段基地址+有效地址 • 物理地址 当存储器页式管理机构不工作时,物理地址就等于由段式管理机构处理后得到的线性地址。当页式管理机构工作时,则物理地址是线性地址的一个函数式,即: 物理地址=F(线性地址)
2. 保护 80386支持两个主要的保护类型: 一类是不同任务之间的保护: 它是通过给每一任务分配不同的虚拟地址空间,而每一任务有各自不同的虚拟—物理地址转换映射,因而可实现任务之间的完全隔离。在80386中,每个任务都有各自的段表及页表,即具有不同的地址转换函数。根据新任务切换的转换表实现任务的切换(详见后述)。操作系统应与所有的应用程序相隔离,因此,操作系统可以存储在一个单独的任务中。 另一类是同一任务内的保护: 在一个任务之内定义4种执行特权的级别: 特权级别 0 最高 特权级别 1 特权级别 2 特权级别 3 最低
3.分段管理 分段管理可以把虚拟存储器组织成其容量大小可变的区间的集合,这些区间称之为段。 为了实现分段管理,80386把有关段的信息存放在一个称为段描述符(简称描述符)的8个字节长的数据结构中,并把系统中所有的描述符编成一张表,以便硬件查找和识别。 80386共设置了3种描述符表,即全局描述符表GDT、局部描述符表LDT和中断描述符表IDT。 分段管理可以实现虚拟存储。在80386系统中,由于内存容量的限制,并不可能将所有的段都放在内存中的,而必须将大部分段放在海量的外部磁盘上。
为了检测当前段是否在内存中,在描述符的属性字段中专门设置了一个判别当前段是否存在内存中的存在位P。每个段由3个参数确定:为了检测当前段是否在内存中,在描述符的属性字段中专门设置了一个判别当前段是否存在内存中的存在位P。每个段由3个参数确定: • 段基地址(Base Address),规定了线性地址空间中段的起始地址。也可以把基地址看成是段内偏移量为0的线性地址。 • 段的界限(Limit),表示在虚拟地址中,段内可使用的最大偏移量。 • 段的属性(Attributes),包括该段是否可读出、写入以及段的特权级等。 段的这些参数都组织在段描述符中。下面将简要说明段描述符的数据结构。由于80386有两种类型的段,即非系统段和系统段,所以,也就有两种段描述符,即非系统段描述符(又简称为段描述符)系统段描述符(又简称为系统描述符)。
非系统段描述符 非系统段是指一般的存储器代码段和数据段,堆栈段被包括在数据段中,有时也简称为程序段。非系统段描述符的格式和含义如图8.15所示。 由图可知,80386的非系统 段描述符也是8个字节。其 中段限值占最低2个字节以及+6字节的低4位,构成20位的段限值,使逻辑段的最大容量由64KB增大为1MB;段基址共占4个字节,在段描述符中分3处存放,它们构成32位的段基地址,可寻址的实存空间由80286的16MB增大为4KMB;+6字节的高4位称为语义控制段。+5字节为访问权限字节,用来确定特权级与段的其他信息,并且不同类型的描述符对应的这个字节也不相同。
系统段描述符 系统段描述符也称为特殊段描述符。当描述符中的S位为0时,此描述符对应一个系统段。此系统段包括任务状态段TSS和门,另外,局部描述符表LDT也作为一种系统段。 一般格式如图8.16所示 系统段描述符的大多数 字段和非系统段描述符的相 同,只是在系统段描述符中, A位已不再存在,访问权字 节的低4位作为类型值。这4位类型值决定了16种类型,如表8.3所示。
门描述符的格式和普通的系统段描述符稍有差别,如图8.17所示。它包含一个32位的偏移地址,一个字计数和一个选择子。还有一个+3字节的访问权限字节。门描述符的格式和普通的系统段描述符稍有差别,如图8.17所示。它包含一个32位的偏移地址,一个字计数和一个选择子。还有一个+3字节的访问权限字节。 调用门描述符由选择子、偏移地址和字计数构成。选择子和偏移地址指出一个子程序的起始地址,字计数指出有多少参数必须从主程序的堆栈传送到被调用门所调用的子程序的堆栈上。对其他门而言,字计数值字段无意义。
分段管理总结性说明 首先,要充分理解80386是通过分段管理来完成从逻辑地址到线性地址的转换的,参见图8.18。 如图所示,指令中用到的是由16位段选择子 和32位偏移地址构成的逻辑地址。在16位段 选择子中,位0和位1是定义此段使用特权级 别的RPL字段;位2是一个指示符TI,它用来 指出此描述符是在GDT中(TI=0)还是在 LDT中(TI=1);而高13位则是段描述符的 一个索引值,用此值来指定所选描述符在描述 符表中的位置,显然,这13位可以确定一个描 述符表最多能含有8K个描述符,再考虑一个描述符有8个字节,故一个描述符表的长度最大可达64KB。有了段描述符,从中便得到一个32位的段基地址,用此段基地址再加上偏移地址就是所要得到的线性地址。
然后,通过分页管理就可以进一步完成从线性地址到物理地址的转换,如果禁止分页,则线性地址就是物理地址。见然后,通过分页管理就可以进一步完成从线性地址到物理地址的转换,如果禁止分页,则线性地址就是物理地址。见 图8.19
4. 分页管理 在80386中,在设计分段管理的基础上又增加了分页管理,在多任务系统中,有了分页管理功能,就只需把每个活动任务当前所需要的少量页面放在存储器中。 分段管理可以把虚拟的逻辑地址转换为线性地址,而分页机制可以进一步把线性地址转换为物理地址。当CR0中的PG=1时,系统就启动分页机制;当PG=0时,则禁止使用分页机制,而且把分段机制产生的线性地址直接当作物理地址使用。 80386分页管理的对象是固定大小为4KB的存储块,称之为页。