为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

天津大学硬件第3章

2012-09-21 50页 ppt 339KB 8阅读

用户头像

is_342558

暂无简介

举报
天津大学硬件第3章null 第3章 80X86微处理器 第3章 80X86微处理器主要内容主要内容3.1 80X86微处理器概述 3.2 80X86微处理器系统组成 3.3 工作模式与地址变换 3.4 Pentium微处理器简介 3.5 多核处理器简介 3.1 80X86微处理器概述3.1 80X86微处理器概述 80X86是8086/8088之后微处理器的总称 包括80286、80386、80486、Pentium系列等 是8086/8088的延续和扩展 1. 80X86微处理器发展概况1. 80X86微处理器发展概况(1)16...
天津大学硬件第3章
null 第3章 80X86微处理器 第3章 80X86微处理器主要内容主要内容3.1 80X86微处理器概述 3.2 80X86微处理器系统组成 3.3 工作模式与地址变换 3.4 Pentium微处理器简介 3.5 多核处理器简介 3.1 80X86微处理器概述3.1 80X86微处理器概述 80X86是8086/8088之后微处理器的总称 包括80286、80386、80486、Pentium系列等 是8086/8088的延续和扩展 1. 80X86微处理器发展概况1. 80X86微处理器发展概况(1)16位结构的80286微处理器 从此,机器有多种工作模式。有兼容8086/8088的模式,有发挥机器新功能的工作模式。 首次应用虚拟存储器概念,即利用外存模拟内存。 (2)32位的80386微处理器 在此之后,不断推出新型号的32位微处理器。接下页1. 80X86微处理器发展概况1. 80X86微处理器发展概况(3)80486微处理器 将80386微处理器、80387数字协处理器(80387浮点协处理器)、高速缓冲存储器(Cache)集成在一块芯片上的产品,是一种完整的32位微处理器。 采用8KB统一的代码和数据高速缓冲存储器(Cache)接下页1. 80X86微处理器发展概况1. 80X86微处理器发展概况(4)Pentium(奔腾)系列微处理器 Pentium含义5,即80586。具有高性能的浮点运算部件 分开数据Cache(高速缓冲存储器)、代码Cache 不断推出新型号的Pentium产品,形成Pentium系列 如高能奔腾(Pentium Pro)、多能奔腾(Pentium MMX)、2代奔腾Pentium Ⅱ、3代奔腾(Pentium Ⅲ)、4代奔腾(Pentium Ⅳ)等3.2 80X86微处理器系统组成3.2 80X86微处理器系统组成指令指令译码部件IDU指令译码器译码指令队列执行部件EU算术逻辑单元ALU64位桶形移位寄存器控制和保护测试机构译好码的指令8个32位通用寄存器分段部件SU分页部件PU总线接口部件BIU总线请求判优数据和地址驱动控制信号驱动协处理器控制存储器 I/O接口 协处理器逻辑地址 操作数和结果指 令 字 节指令预取队列预取器/段界限校验器线性地址物理地址段描述符高速缓冲存储器页描述符高速缓冲存储器段界限和属性校验器控制和属性校验器指令预取部件IPU 接下页3.2.1 内部构件3.2.1 内部构件接口部件BIU (Bus Interface Unit) 指令预取部件IPU (Instruction Prefetch Unit) 指令译码部件IDU (Instruction Decode Unit) 执行部件EU (Execution Unit) 分段部件SU (Segment Unit) 分页部件PU (Paging Unit) 浮点运算部件FPU (Floating Point Unit)存储器管理部件80486以后微处理器把浮点部件FPU(Floating Point Unit)也集成到CPU芯片内下面分别介绍1.总线接口部件BIU (Bus Interface Unit)1.总线接口部件BIU (Bus Interface Unit)与8086/8088中的BIU类似 负责微处理器与存储器、I/O接口之间传送数据 由它产生访问I/O端口所需的地址、数据和命令信号 没有其它总线请求时,BIU会自动取出下一条指令,送到指令预取队列中2.指令预取部件IPU (Instruction Prefetch Unit)2.指令预取部件IPU (Instruction Prefetch Unit)负责从存储器(高速缓存Cache或内存)中取出指令,按顺序放到指令预取队列中 8086指令预取队列长度6个字节,80386是16个字节,80486是32个字节 指令预取队列存放从存储器取出的未经译码的指令。 预取队列不满或发现是转移指令时,就向BIU发取指令请求 段预取界限校验器用于检验地址是否超出段界限。3.指令译码部件IDU (Instruction Decode Unit)3.指令译码部件IDU (Instruction Decode Unit)负责从指令预取队列取出指令,并进行译码 将译码后的可执行指令放入已译码指令队列中,等待执行部件处理 译码指令队列可容纳多条指令。如80386可容纳3条 一旦译码指令队列有空闲,IDU就从指令预取队列中取出后续指令进行译码,并填充译码指令队列4.执行部件EU (Execution Unit)4.执行部件EU (Execution Unit)负责执行指令,与8086/8088中的EU类似 该部件包括1个32位算术运算单元ALU、8个32位通用寄存器、1个64位圆桶形移位寄存器、1个乘法或除法器 桶形移位寄存器能实现数据移位、位操作,用于乘法及其他操作 桶形移位器与ALU并行操作,可加速乘法、除法、位、移位操作 5.分段部件和分页部件 (存储器管理部件)5.分段部件和分页部件 (存储器管理部件)分段部件SU(Segment Unit) 分页部件PU(Paging Unit) 两者构成存储器管理部件MMU(Memory Management Unit) 用于管理存储器下面分别介绍(1)分段部件(1)分段部件分段是将存储空间分成若干个存储区域(或地址空间) 每个存储区域称为一个段,每个段独立、被保护 分段提供隔离代码、数据、堆栈的机制,每个程序可以使用若干个段 分段可以隔离任务,使多个程序(或任务)在同一个CPU上运行,互不干扰 (2)分页部件(2)分页部件分页是另一种存储器管理模式 可用磁盘模拟内存,即构造虚拟存储系统,当运行程序所需内存容量大于实际内存容量时,也可运行。 程序运行机制是,虚拟内存(如硬盘)存放暂时不执行的程序和数据,执行时,再装入实际内存 通过分页实现基于页请求的虚拟存储系统 分页也能用于隔离多个任务6.浮点运算部件FPU (Floating Point Unit)6.浮点运算部件FPU (Floating Point Unit)用于完成浮点数运算、二进制整数运算、十进制数串运算等 80486以后把FPU集成到CPU芯片内,使引线缩短,加快了运算速度 FPU内有浮点专用的加法器、乘法器和除法器,还有其他寄存器 如Pentium的FPU包括8个80位寄存器、3个16位寄存器和5个错误指针寄存器 3.2.2 内部寄存器3.2.2 内部寄存器80386、80486、Pentium微处理器内部寄存器分为8类 通用寄存器 指令指针寄存器 标志寄存器 段寄存器 系统地址寄存器 控制寄存器 调试寄存器 测试寄存器下面分别介绍新增1. 8个通用寄存器1. 8个通用寄存器EAX (Extended AX) 低16位可作独立寄存器 低16位分2个8位寄存器2.指令指针寄存器EIP (Extended Instruction Pointer)2.指令指针寄存器EIP (Extended Instruction Pointer)从8086/8088的IP扩展而来 用于存放下一条待取指令在内存的偏移地址(偏移量) 工作在32位下的EIP,寻址范围4GB(232,4千兆字节) 它的低16位称为IP,用于兼容16位CPU,寻址范围为64KB(216) 当一个程序开始运行时,系统把EIP清零 每取入一条指令,EPI自动增加(EPI+取入的字节数目→EPI)3.标志寄存器EFLAGS (Extended Flags)3.标志寄存器EFLAGS (Extended Flags)是一个32位标志寄存器,低16位称为FLAGS 下面具体介绍新增标志位介绍(1)新增标志位介绍(1)输入/输出特权级别标志IOPL(Input Output Privilege Level) 用于指定输入/输出操作的特权级别。有0~3四个特权级别,数字越小,级别越高。作用是控制各任务的输入/输出操作,避免输入/输出冲突,进行输入/输出保护。 嵌套任务标志NT(Nested Task) 指示当前任务是否嵌套在另一个任务之中。NT=1时示嵌套新增标志位介绍(2)新增标志位介绍(2)恢复标志RF(Resume Flag) 用于控制在Debug调试模式中如何响应异常。RF=1时遇到断点或调试故障时不产生异常中断。RF=0时遇到调试故障时产生异常中断。每执行完一条指令,RF自动置0。 虚拟模式标志VM(Virtual Mode) 用于设置处理器为虚拟8086模式。当VM=0,处理器工作于保护模式,它是机器的本机模式,能够真正发挥机器的所有特性和作用。设置VM=1,处理器可从保护模式切换到模拟8086模式。要使VM=1,只能在保护模式下通过执行任务返回指令IRET或任务切换实现。保留VMRFNTIOPLOFDF17161514131211109876543210IFTFSFZFAFPFCF31 22 21 20 19 18ID VIP VIF AC新增标志位介绍(3)新增标志位介绍(3)对准(对齐)检查标志AC(Alignment Check) 用于检查要访问的地址是否对齐。要求访问字数据时是偶数地址,访问双字数据时是4的倍数地址,访问8字节数据时是8的倍数地址。 虚拟中断标志VIF(Virtual Interrupt) 当处理器处于虚拟模式时,该标志起到中断标志IF的作用(即是IF标志的虚拟映像)。 保留VMRFNTIOPLOFDF17161514131211109876543210IFTFSFZFAFPFCF31 22 21 20 19 18ID VIP VIF AC新增标志位介绍(4)新增标志位介绍(4)虚拟中断挂起标志VIP(Virtual Interrupt Pending) 与虚拟中断标志VIF联合使用。VIP=1时表示一个中断被挂起(待执行)。VIP=0表示没有挂起的中断。处理器读取该位,但不修改它,由软件设定该标志。 识别标志ID(Identification) 表示CPU是否支持CPUID指令。该指令用于获得CPU类型、型号、制造商信息、商标信息、序列号和缓存等一系列CPU信息。保留VMRFNTIOPLOFDF17161514131211109876543210IFTFSFZFAFPFCF31 22 21 20 19 18ID VIP VIF AC4.段寄存器(Segment Register)4.段寄存器(Segment Register)CS、DS、ES、SS、FS、GS新增FS、GS,作附加数据段寄存器使用,用于扩大数据存储区域 每个段寄存器对应一个64位(隐含)段描述符寄存器 段寄存器也称段选择符或段选择子5.控制寄存器(Control Register)5.控制寄存器(Control Register)80386、80486有4个控制寄存器CR0~CR3 Pentium有5个控制寄存器(CR0~CR4) CR1留作备用,供今后开发新处理器使用。 控制寄存器用于保存机器的各种全局性状态信息。 大部分系统阻止应用程序修改控制寄存器,允许读取。6. 系统地址段寄存器(程序不可见)6. 系统地址段寄存器(程序不可见)只用于保护模式,用于存放内存中描述符表(特殊段)的地址信息 全局描述符表寄存器GDTR(Global Descriptor Table Register) 中断描述符表寄存器LDTR(Interrupt Descriptor Table Register) 局部描述符表寄存器IDTR(Local Descriptor Table Register) 任务寄存器TR(Task Register) 以上寄存器仅供系统使用,程序不能直接访问系统地址段寄存器下面具体介绍段描述符和段描述符表段描述符和段描述符表 保护模式下:一个任务可以使用内存中的多个段 段参数包括:段基地址、段长度、段类型(如代码段)、权限等 段描述符: 段的各项参数,每段有1个描述符,占用8B 段描述符表:内存中存放段描述符的线性表下面介绍描述符表寄存器内存段描述符表8B描述符…8B描述符8B描述符 (1)全局描述符表寄存器GDTR (程序不可见) (1)全局描述符表寄存器GDTR (程序不可见)GDTR(Global Descriptor Table Register): 存放全局描述符表的基地址、长度 GDT:全局描述符表(Global Descriptor Table) 用于存储全局描述符(每个任务都可访问的描述符) 整个系统只有一个GDT 通过GDT可以共享各任务都用的段 切换任务时并不切换GDT (2)局部描述符表寄存器LDTR (2)局部描述符表寄存器LDTRLDTR:存放待取局部描述符的位置信息(索引值或选择符) 即与局部描述符表首地址的距离(偏移量) LDT:局部描述符表(Local Descriptor Table) 每个任务有一个LDT,存储该任务涉及的代码段、数据段、堆栈段的描述符等信息 每个任务只能访问自己的LDT,起隔离、保护目的 切换任务时,也切换局部描述符表(3)中断描述符表寄存器IDTR(3)中断描述符表寄存器IDTRIDTR(Interrupt Descriptor Table Register): 存放中断描述符表的基地址和段界限值 IDT:中断描述符表(Interrupt Descriptor Table) 用于存放256个中断描述符(中断门) 每个中断描述符占8B 该表最大长度是256×8B=2KB(4)任务寄存器TR(4)任务寄存器TRTSS:任务状态段(表)(Task Status Segment) 用于存放各个任务的环境,以便切换任务 TR:任务寄存器(Task Register) 存放待取任务描述符的位置信息(索引值或选择符) 即与任务状态段(表)首地址的距离(偏移量)7.调试寄存器7.调试寄存器 DR0~DR7 8个调试寄存器(Debug Register) 用于程序的调试与设置断点 8.测试寄存器 8.测试寄存器 TR0~TR7 8个32位测试寄存器(Test Register) TR3~TR5用于Cache测试 TR6~TR7用于页面管理测试 TR0~TR2未用(备用)3.3 CPU工作模式与地址变换 (重点)3.3 CPU工作模式与地址变换 (重点)80386、80486支持三种工作模式: -实地址模式(简称实模式,Real Mode) -虚地址保护方式(简称保护模式,Protected Mode) -虚拟8086模式(简称V86模式,Virtual Mode) Pentium增加系统管理模式SMM(System Management Mode) -SMM模式为系统管理设置 -使者实现高级管理功能,如对电源、操作系统和正在运行程序实行管理,提供透明的安全性。 -在硬件控制下,从任何一种模式进入SMM模式,事后再返回到原来模式。 各工作模式特征CPU各工作模式的特征CPU各工作模式的特征实地址模式(实模式): 是为建立保护方式做准备的模式。80X86机器通电或复位后,首先进入实模式,完成初始化操作后,再切换到保护模式。 保护模式: CPU能真正发挥作用的模式,系统所有指令和特性均可使用。 虚拟8086模式 是作为保护模式下的一个任务,即是保护模式下的8086模式。 在保护模式下可作为任务切换进入或退出虚拟8086模式。继续 工作模式与访问存储器 工作模式与访问存储器 实模式 只允许CPU访问第一个1MB存储器空间(实模式存储器) 内存单元地址由“段基地址和偏移量”组成 保护模式 允许CPU访问所有存储器空间,分页机制 段地址由描述符提供,描述符在描述符表中选择 虚拟8086模式 与实模式相同点:存储空间为1MB,“段基地址和偏移量”组成地址 与实模式不同点:允许分页地址问线性地址与物理地址线性地址与物理地址逻辑地址:段基地址、段内偏移地址 存储器分段:由分段部件得到的地址称为线性地址 线性地址:段起始地址+段内偏移地址 段再分页:分页部件把线性地址转为物理地址 只分段、不分页:线性地址即是物理地址分段部件分页部件线性地址物理地址段基地址段内偏移地址不分页继续实模式下的地址变换 实模式下的地址变换 物理地址PA = 段起始地址 + 偏移地址 = (段寄存器)×16 + 偏移地址 = (段寄存器)×10H + 偏移地址继续 即: 段寄存器的内容左移4位后,加上偏移地址 段基地址: 由段寄存器(CS、SS、DS、ES、FS、GS)提供 偏移地址: 由指令提供,范围在0~FFFFH实模式下的地址变换叙述实模式下的地址变换叙述如何确定内存单元物理地址: 地址形成与8086/8088一样 段起始地址 + 指令提供的偏移地址段寄存器存放段基址,分段部件把16位段寄存器内容左移4位 得段起始地址 保护模式下的地址变换(粗图)保护模式下的地址变换(粗图)PG=0 PG(Page)是控制寄存器CR0中的分页位 当PG=0时,不用分页部件,线性地址就是物理地址分段部件分页部件线性地址物理地址段寄存器提供的 描述符表索引指令提供的偏移地址PG=1继续保护模式下的地址变换(细图)保护模式下的地址变换(细图)31 ~ 0 段界限FFFFFFFFH00000000H描述符高速缓存寄存器虚拟存储空间段选择符(偏移地址)指令给出的偏移地址分页 部件物理 地址内存描述符表线性 地址段基地址 段界限 属性8B描述符8B描述符8B描述符…段寄存器15 ~ 3 ~ 0GDTR/LDTR/IDTR 全局描述符表寄存器/局部描述符表寄存器/中断描述符表寄存器描述符表寄存器描述符表起始地址PG=1PG=0继续保护模式下的地址变换叙述保护模式下的地址变换叙述①根据要访问的段,从段寄存器中取出段描述符在段描述符表中的偏移地址,再加上描述符表寄存器(全局描述符表寄存器或局部描述符表寄存器或中断描述符表寄存器)提供的段描述符表起始地址,得到段描述符在段描述符表的物理(实际)地址。 ②根据上步得到的地址从段描述符表中取出段描述符,得到段基地址(起始地址)、段界限和属性信息,并送到隐含64位段描述符高速缓冲寄存器。 ③将段描述符高速缓冲寄存器中的32位段基地址加上指令给出的32位偏移地址,得到存储单元的线性地址。若不分页(不用分页部件),线性地址即是物理地址。若分页,经过分页部件把线性地址转换为物理地址。3.4 Pentium微处理器特点简介3.4 Pentium微处理器特点简介 处理器内部配有高容量的双Cache 具有更快的浮点运算单元 通过硬件预取指令 超级流水线技术(后面介绍) 乱序执行指令(后面介绍) 预测分支转移(后面介绍) 其他超级流水线和超标量结构超级流水线和超标量结构 超级流水线:指令的执行步骤分得更细,流水线长度更长 优势:有利于提高速度 例 P3流水线长度为14级,P4流水线长度为20级 超标量结构: 具有 多条指令流水线 多个ALU、多个FPU 多个译码器 优势:多条流水线并行工作,提高性能 例 P4:ALU×2,FPU×2 乱序执行指令(Out-of-Order Execution)乱序执行指令(Out-of-Order Execution) 按照最优化的顺序执行指令 保证流水线不间断,满负荷运行,提高效率 最终结果与原程序相同 分支转移预测(Branch Prediction)分支转移预测(Branch Prediction) 提高转移指令的执行效率 在条件转移指令之前,预测可能要执行的指令(译码) 即先执行再判断,发现预测错误时再返回错误点重来 3.5 多核处理器简介3.5 多核处理器简介Intel公司2006年7月发布双核处理器(Core 2 duo),称为酷睿2,是Core微体系结构新一代处理器。 双核处理器(Dual Core Processor)简单说,是在一块CPU芯片内集成两个处理器核心,通过并行总线将各处理器核心连接起来。 在一块CPU芯片内集成多个处理器核心是多核处理器,是处理器的发展方向。采用多核处理器可以提高处理速度和效率,多线程处理能力,提高系统性能,推动并行程序、并行计算技术的发展。 填空题(更多习题见教材)填空题(更多习题见教材)80X86微处理器主要部件包括___、____、___、___、___和___。 8088/8086的16位通用寄存器名字分别是AX、BX、CX、DX、SI、DI、BP和SP。80X86的32位通用寄存器名字分别是___,每个32位寄存器的____位可单独使用,并且____位的高8位和低8位也可分别当作____位寄存器使用。 分段部件和分页部件用于管理___。分段部件___时使用。分页部件___时使用。若不支持虚拟内存,则__分页部件。填空题填空题段基址和偏移量称为__。段起始地址加上偏移量称为__。 分段部件功能是将程序提供的__转换成__。分页部件功能是把分段部件产生的___转换成____。若不分页,线性地址就是___。 80X86微机系统存储器按___划分,每段可再分成若干个___。 80X86段的各项参数称为_____ ,简称_____。存储一个段描述符需用___字节。每个段都有__个描述符。系统将段描述符组成线性表,存放在__中,每个线性表称为__,简称___。一个任务可以使用___个段。 简答题简答题1.80X86有哪些工作方式(模式)?每种工作方式的特征是什么? 2.80X86微处理器中分段部件和分页部件的作用是什么? 3.什么是逻辑地址、线性地址、物理地址? 4.分别写出80X86实模式、保护模式的地址变换过程。
/
本文档为【天津大学硬件第3章】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索