微型计算机系统原理及应用第13章 第二十五次ppt课件.ppt
13.1 X86系列处理器的功能结构13.2 X86系列结构微处理器的工作方式,第13章 X86系列微处理器的结构与工作方式,济南大学控制学院,1,2007年,概述,微处理器的发展第一节课详细讲过。20年来,Intel公司的微处理器有了极大的发展,从8086(8088)到80286、80386、80486、奔腾(也称为80586)、奔腾MMX、奔腾PRO(也称80686)、奔腾II、奔腾III、直至最新的奔腾4,形成了IA(Intel Architectuce)-32结构。目前IA-64已经推出,微处理器正在向64位发展。,济南大学控制学院,2,2007年,上节课对8086/8088微处理器的结构详细讲过(是我们学的重点,也是学习IA-32微处理器结构的起点和基础。回顾其建筑模型,也就是IA-32结构)IA-32结构微处理器的最新版本的发展能追溯到8085和8080微处理器和4004微处理器.在IA-32结构系统引进32位微处理器之前,是8086/8088. 所以IA-32结构微处理器同时包括16位和32位微处理器.IA-32结构最成功之作:1978年开始的那些处理器建立的目标程序仍然能够在IA-32结构系列的最新的处理器上执行.8086/8088 将段引进IA-32结构. 关于段-16位寄存器-64KB的内存指针-可以段于与段的寻址(即256KB)-用段和16位指针可形成20位(1MB)的地址范围.80286 在此基础上扩充24位基地址,允许最大物理存储器16KB.,济南大学控制学院,3,2007年,13.1.1 Intel80386微处理器,80386微处理器是在IA-32结构微处理器系列中第一个32位处理器.80386是32位处理器,每个32位寄存器(EAX-AX 参见P53)的后一半保留两个早期处理器(8086和80286)的16位寄存器的特性,以提供完全的后向兼容。32位总线提供4GB的物理空间;在原来基础上引用许多的新技术,如段中又分页( 每段分256页 大家可以空间想象);码预取单元(从总线单元接受目标码并把它存放至16字节队列)。其结构功能:有6个并行操作部件(总线接口单元、码预取单元、指令译码单元、执行单元、段单元和分页单元),济南大学控制学院,4,2007年,13.1.2 Intel80486微处理器,80486在80386基础上扩展为五个流水线段(定义见P170 第9行)。在不同段上同时执行五条指令。增加8KB的缓存(Cache).80486是第一次把80X87FPU(浮点处理单元-浮点数一般采用M2E的形式来表示,M为,它一般为小数;E为阶码, )集成到处理器上并增加了新的引脚、位和指令支持更复杂有力的系统(二级Cache支持和多处理器支持)。使用专用的中断脚触发的系统管理模式,允许复杂的系统管理特性(如:停止时钟、自动暂停电源下降、减速的时钟速率下执行以节省电源)。在工艺方面方面进一步改善。,济南大学控制学院,5,2007年,13.1.3 Pentium处理器,Intel奔腾(Pentium)处理器增加了第二个执行流水线以达到超标量性能。一片Cache加到16KB,主要寄存器是32位,每段可形成4MB的页,外部总线到64位,内部可以进行128和256位的数据相互传送,而且增加了高级可编程中断控制器(?)。把Intel MMX(8个64位积存器)技术引入IA-32结构。可以进行单指令多数据(SIMD)执行方式,从而使高级媒体技术、摄像处理和数据压缩应用程序运行和应用成为可能。,济南大学控制学院,6,2007年,13.1.4 Intel P6系列处理器,建立新的性能标准,工艺先进(0.6微米)。Intel Pentium Pro处理器是基于P6微结构的第一个处理器。P6处理器系统随后的成员是Intel Pentium II、 Intel Pentium II Xeon(至强)、 Intel Celeron(赛扬)、 Intel Pentium III Xeon(至强)处理器。其主要性能:能被5个执行单元顺序执行。Cache增加到256KB总线扩展为36位总线最大可达到64GB的物理地址空间,济南大学控制学院,7,2007年,13.1.5 Intel 奔腾2-4处理器,工艺逐步提高Cache逐步增到1MB逐步加速视频、语音、加密、摄像和照片处理技术,济南大学控制学院,8,2007年,13.2 Intel 80386微处理器的功能结构,功能具体体现:(1).从16位寄存器发展32位寄存器;(2).地址寄存器也发展为32位,可寻址的地址范围达到4GM(但段寄存器仍为16位), 可分页;(3).增加了保护方式,使处理器有了两种工作方式:实地址方式和保护虚地址方式,实地址方式用于与8086兼容;保护虚地址方式32位处理器能够真正发挥其完整功能的工作方式;(4).引入了多任务、任务切换的概念;(5).引入了四级特权,引入了调用门、陷入门、中断门,使程序在不同特权之间切换;(6).引入了存储管理单元(MMU),使采用80386的操作系统方便地实现页(每页为4KB)虚拟存储器管理;(7).增加了新指令(主要保护方式的指令)。,济南大学控制学院,9,2007年,13.1.3 Intel 80486微处理器的功能结构,其基本基础结构与80386一样,不同的是:(1)将80386处理器的指令译码和执行部件扩展成五级流水线,五条指令可同时执行,最快能够在每个CPU时钟内执行一条指令;(2)增加8KB高速缓存Cache),在此的指令可每个时钟内执行5个以上;(3)在80486中首次将浮点处理器部件80X87 FPU集成到微处理器(4)总线接口更加复杂,增加了许多功能。,济南大学控制学院,10,2007年,济南大学控制学院,11,2007年,13.3 操作模式,IA-32结构处理器支持三种操作模式:保护模式、实地址模式和系统管理模式。保护模式-是处理器基本模式,提供做高的功能和性能;实地模式-是8086微处理器编程环境的工作模式并有一些扩展。在系统上电或复位后,处理器总是处在实地址模式系统管理模式-是操作系统为实现平台特定的功能或系统安全提供的一种透明机制。主要用于自动暂停、睡眠等节省电源模式,济南大学控制学院,12,2007年,基本执行环境概要,IA-32处理器上执行的程序或任务,都给予一组执行指令的资源,用于存储代码、数据和状态信息。这些资源构成了IA-32结构处理器的执行环境。(1)地址空间(8086 20条;80386 32条)(2)基本程序执行寄存器 (通用寄存器、段寄存器、标志寄存器和指令寄存器)(3)80 x87 FPU(浮点处理单元)寄存器*(4)MMX寄存器(八个64位寄存器)单指令多数据(SIMD)(5)XMM寄存器(八个128位寄存器)(6)堆栈 祥见 P49 图2-7 除了基本执行环境提供的资源之外(这些对我们来说仅是了解)。 IA-32结构处理器提供以下资源。(1)控制寄存器;(2)存储管理寄存器;(3)调试寄存器;(4)存储类型范围寄存器。,济南大学控制学院,13,2007年,存储器组织,处理器在它的地址总线上寻址的存储器成为物理存储器.物理存储器按8位字节序列组织.每个字节赋予一个惟一的地址,称为物理地址.我们构建一个测量或控制系统,一般不会使用IA-32结构的高档微处理器,而是使用8086微处理器或单片机来构建系统。所以我们重点学习8086微处理器的结构、指令、汇编语言以及相应的外设接口(见P50页),济南大学控制学院,14,2007年,1 实地址方式存储器组织,IA-32结构微处理器中的实地址方式是为了与8086/8088微处理器兼容而设计的。所以该方式组织与8086/8088的存储器组织是一样的。,济南大学控制学院,15,2007年,济南大学控制学院,16,2007年,2、存储器组织,1. 存储器分段 8088有20条地址线,它的直接寻址能力为1M ,所以在一个8088组成的系统中,可以有多达1M字节的存储器,这1M字节在逻辑上可以组成一个线性矩阵,地址从00000到FFFFF。给定一个20位的地址,就可以从中取出所需的指令和数据。 在8088内部,ALU 能进行16位的运算,有关地址寄存器如:IP、SP、BX、BP、SI、DI等都是16位的,因而对地址的运算也只能是16位。其寻址的范围最多是64K。 在8088中怎样形成这20位的地址呢?分段! 将内存的1M字节以64K为范围,分成若干段;在8088中设置4个段寄存器CS、DS、SS、ES,在寻址一个具体的内存单元(物理地址)时,由一个段寄存器中保存的16位基地址,加上由IP(或SP,或BP,或BX,或SI,或DI)中保存的、可由CPU处理的16位偏移量,来形成20位的物理地址. 在形成物理地址时,地址加法器将段寄存器中的16位数左移4位,然后与16位偏移地址相加,形成20位的物理地址。,济南大学控制学院,17,2007年,( 2000:200 2010:100?.说明什么道理?),济南大学控制学院,18,2007年,在不改变段存储器的访问情况下,寻址的最大范围是64KB,所以有一个程序,它的长度、堆栈长度以及数据区长度都不超过64KB,则在程序开始时,分别给CS、SS、DS置值,然后在程序中可以不在考虑这些段寄存器,程序就可以在各自的区域中正常地进行工作。 这种存储器分段方法,对于要求在程序区、堆栈区和数据区之间隔离是非常方便的。(问:如果不要求分区,如何理解)如果一个程序超过64KB,怎样处理?如果都超过64KB ,又怎么处理?,济南大学控制学院,19,2007年,2.分段模式存储器结构,IA-32结构微处理器的基本存储器是分段式存储模式.与8088类似,程序给出的地址由两部分组成:即段基地址(一个段的起始地址)和段内的偏移量.段地址由段寄存器的值确定,而段的偏移量是由指令的寻址方式确定.8088的段结构我们多次讲过,试回忆一下.80386有6个段寄存器(增加了两个数据段寄存器FS和GS), 每个段寄存器仍是16位的.但在寻址上不同于8088. 80386的段基地址是32位, 16位段寄存器内容仅是选择32位基地址的段的索引和描述,而不是象8088那样合成. 同理段内偏移量的寄存器也32位,故一个段最大为4GB.上述地址的描述就是逻辑地址:在系统上定义的任一字节的地址和段内偏移量两部分组成.在访问一个存储器地址,处理器把每个逻辑地址转换为线性地址(32位的段基地址与32位的段偏移量相加产生32位地址.用分段的存储器的最初的理由是增加程序和系统的可靠性.如把程序的堆栈防在一个段,防止堆栈的增长进入程序和数据区(空间).,济南大学控制学院,20,2007年,3. 平面存储模式,平面存储模式实质上是分段存储模式的一种特例.在平面存储模式, 存储器作为单个连续的地址空间,称为线性空间。代码(程序)、数据和过程堆栈全部包含在此地址空间中. 在80386以上的IA-32结构微处理器上运行的操作系统和应用程序,广泛用平面存储模式。,济南大学控制学院,21,2007年,内存地址空间和数据组织,实模式下Pentium微处理器只有20条地址线有效,因此实模式下内存空间为220=1MB, 地址由00000-FFFFF(H)编码若存放的信息是字节,则按顺序存放若存放的信息是字,则将字的低位字节存放在低地址,高位字节存放在高地址若存放的信息是双字,则将双字的低位字存放在低地址,高位字存放在高地址,实模式内存地址空间组织,低字节低地址,高字节高地址,济南大学控制学院,22,2007年,对准双字:对应地址是4的倍数对准字:对应地址是2的倍数,例. 双字A00055FF如何存储在地址为02102的存储单元中例. 字23AB如何存储在地址为02102的存储单元中,内存地址空间和数据组织,存放数据的起始地址可以任意,但是字数据存放在偶数地址单元,双字数据存放在能被4整除的地址单元,可以改善程序性能。处理器对内存的访问只需一个总线周期,济南大学控制学院,23,2007年,实模式下,1MB内存空间分通用和专用两个区域00000-003FF 专用,存放中断向量表00400-FFFFF通用,中断向量表表内指针用来指出相应的中断服务程序的起始点,表内每个指针占2个字,占据较高地址的是段基址,占据较低地址的是偏移量,?中断向量表可以包含 个中断指针,内存地址空间和数据组织,济南大学控制学院,24,2007年,逻辑地址和物理地址,实模式下逻辑地址由段基址和偏移量两部分组成。编写程序时只能使用逻辑地址。段基址是段寄存器给出的段起始地址;偏移量为存储单元在段内相对于段起始地址的偏移距离,也称为偏移地址段基址和偏移量都为16位逻辑地址的表示形式段基址:偏移量段基址来自段寄存器。偏移量通常来自指令指针寄存器、基址寄存器、指针寄存器和变址寄存器,也可以由其中几个寄存器的内容组合而成。,济南大学控制学院,25,2007年,逻辑地址和物理地址,访问存储器的操作数类型不同,使用的段寄存器和段内偏移量的来源也不同。实模式下,缺省的段寄存器和偏移地址的结合方式:CSIP指令SSSP堆栈操作SSBP存取堆栈内的数据DSBX、SI、DI或指令中存取数据段的的局给出的8/16位数据部数据ESDI串操作的目标操作数,段寄存器 偏移地址 操作类型,济南大学控制学院,26,2007年,物理地址是CPU与存储器进行数据交换时实际寻址所使用的地址。实模式下物理地址为20位。每个内存单元的物理地址都是唯一的,同一个物理地址可以由不同的逻辑地址来构成。,逻辑地址和物理地址,例. 假设段寄存器内容为002A,偏移量为0023,求构成的物理地址,济南大学控制学院,27,2007年,逻辑地址和物理地址,JMP F000:0100 MOV AX, D000MOV DS, AXMOV AX, A320MOV SS, AXMOV AX, 7200MOV ES, AXMOV AX, 3000MOV FS, AXMOV AX, 1000MOV GS, AX,CSDSSSESFSGS,F000D000A320720030001000,64K代码段,64K数据段,64K堆栈段,64K数据段E,64K数据段F,64K数据段G,FFFFFF0000D0000A320072000300001000000000,F000:0100,济南大学控制学院,28,2007年,逻辑地址和物理地址,MOV AX, FFFFMOV DS, AXMOV AL, 0010,物理地址:FFFF0 0010 100000,+,MOV AX, FFFFMOV DS, AXMOV AL, FFFF,物理地址:FFFF0 FFFF 10FFEF,+,物理地址1000010FFEF超出了实模式1MB寻址空间范围,济南大学控制学院,29,2007年,逻辑地址和物理地址,通过开放地址线A20,使Pentium微处理器访问1BM以上的65520字节的内存空间HMA(High Memory Area,高端内存区)Pentium微处理器有一个输入引脚A20M#,用于确定是否开放A20地址线,PC兼容机一般通过92H端口的第1位控制控制A20M#。,IN AL, 92HOR AL, 00000010BOUT 92H, AL开放A20地址线,IN AL, 92HAND AL, 11111101BOUT 92H, AL屏蔽A20地址线,济南大学控制学院,30,2007年,逻辑地址和物理地址,当Pentium微处理器的A20M#引脚为低电平时,将在1MB处发生地址环绕8086微处理器对于1MB以上的物理内存只能进行地址环绕操作,济南大学控制学院,31,2007年,堆栈操作,堆栈是按照“先进后出”原则组织的存储区域,实模式下堆栈的大小最大为64KB堆栈由堆栈段寄存器SS和堆栈指针寄存器SP来寻址,SS给出堆栈段的段基址,SP指向当前栈顶段基址到栈顶的偏移量栈底为堆栈空间的高地址单元,栈顶为低地址单元。实模式下,堆栈操作以字为单位。数据进栈,栈顶向低地址方向浮动,高位字节存入高地址单元,低位字节存入低地址单元数据出栈,栈顶向高地址方向浮动,低位字节弹到目的操作数的低位,高位字节弹到目的操作数的高低位,济南大学控制学院,32,2007年,堆栈操作,济南大学控制学院,33,2007年,实模式输入/输出地址空间,Pentium微处理器的I/O地址空间与内存地址空间是相互独立的,I/O地址空间安排I/O端口。I/O地址空间的地址范围0000FFFF共64KB,I/O地址仅为16位,济南大学控制学院,34,2007年,作业,1. 物理地址与逻辑地址的区别是什么?2. 简述存储器的三种存储方式.3.IA-32 结构处理器的基本执行寄存器有哪些?4.仔细阅读教材5.浏览P337-385,济南大学控制学院,35,2007年,