硬基第3章-CPU.ppt_第1页
硬基第3章-CPU.ppt_第2页
硬基第3章-CPU.ppt_第3页
硬基第3章-CPU.ppt_第4页
硬基第3章-CPU.ppt_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1/78,第三章 微处理器,2/78,主要内容,Intel 系列微处理器 8086微处理器的组成; 8086的内部寄存器和标志位; 80X86系列微处理器的结构特点; Pentium 微处理器 实模式和保护模式的存储器寻址 。,3/78,3.1微处理器概述,运算器 算术逻辑运算,由加法器和 (ALU) 一些辅助逻辑电路组成 指令流控制 控制器 时序控制,产生节拍定时信号 指令译码和操作控制 寄存器组 存放临时数据、运算的中 间结果、运算特征、操作数地址,主要部件,微机系统的硬件组成,微型计算机,5/78,计算机基本工作过程,“冯诺依曼机”结构,大脑,记忆装置,眼睛和耳朵,6/78,软件的形成与

2、运行过程的简单描述,软件的形成 程序员(Programmer)编写程序源代码(Source Code) 编译器(Compiler)把源代码转换为可被计算机理解的机器代码(Machine Code) 将机器代码以可执行文件(Executable File)的形式保存在磁盘上 软件的运行 计算机把机器代码读入到内存(Memory) 由CPU运行这些代码 读取输入(Input) 产生输出(Output) 完成程序员预定的功能,7/78,程序设计语言的工作原理,编译运行 编辑、编译、链接和运行 解释运行 程序员编写程序源代码 解释器读入源代码,并执行源代码 解释运行的语言特点 执行速度慢 好学易用 先

3、编译、后解释 把源代码编译成更容易解释的中间代码,然后再解释运行,8/78,计算机语言,程序设计语言(Programming Language)是人与计算机进行交流的语言。 计算机直接能读懂的语言。 机器语言(Machine Code),也叫机器代码 一种纯粹的二进制语言 一种程序设计语言对应一种编译器。 程序员按照该语言的语法编写程序源代码,把自己的意图融入到代码中。 编译器读入源代码,把程序员的意图转换成可执行程序,供他人使用。,9/78,用各种语言编写的1+1程序,机器语言编写的1+1程序 10111000 00000001 00000000 00000101 00000001 0000

4、0000,汇编语言编写的1+1程序 MOV AX, 1 ADD AX, 1,BASIC语言编写的1+1程序 PRINT 1+ 1,C语言编写的1+1程序 #include void main() printf(%dn, 1+1); ,10/78,语言的发展,CPU指令系统,由0、1序列构成的指令码组成 如:10000000 加 10010000 减,用助记符号描述的指令系统 如 ADD A, B,面向机器的语言,程序设计是数据被加工的过程,客观世界可以分类,对象是类的实例 对象是数据和方法的封装 对象间通过发送和接受消息发生联系,程序设计关键是定义类,并由类派生对象,11/78,3.2 Int

5、el系列微处理器,8086全16位处理器:内外数据总线16位 8088准16位处理器:内数据总线16位外8位,一、 8086/8088内部结构 8086/8088微处理器可分为: 执行单元 EU 总线接口单元 BIU,两个独立的处理单元,累加器,计数器,基址寄存器,数据寄存器,堆栈指针,基址指针,目标变址寄存器,源变址寄存器,指令指针,代码段寄存器,堆栈段寄存器,数据段寄存器,附加段寄存器,段寄存器,IPQ,13/78,执行单元EU,功能:执行指令,具体操作如下 从IPQ中取指令代码 译码 完成指定的操作 结果保存到目的操作数 运算特征保存在标志寄存器FLAGS (仅对影响标志的指令),14/

6、78,总线接口单元BIU,功能: 从内存中取指令到指令预取队列IPQ; 负责与内存或I/O接口之间的数据传送; 在执行转移指令时,BIU将清除IPQ,然后从转移的目的地址处开始取指令并重新填充IPQ。,15/78,8086内部寄存器组,8086寄存器组又称为8086的程序设计模型 它是程序设计中惟一可见的CPU部件 它是系统程序设计员的操作对象 含14个16位寄存器,按功能可分为三类: 通用寄存器,8个 段寄存器, 4个 控制寄存器,2个,16/78,8086寄存器概貌,17/78,1、通用寄存器,数据寄存器(AX,BX,CX,DX) 地址指针寄存器(SP,BP) 变址寄存器(SI,DI),1

7、8/78,数据寄存器,用途:存放临时数据和存放运算操作数。(例) 每个均为16位,但又可分为2个8位寄存器,即: AX AH,AL BX BH,BL CX CH,CL DX DH,DL,例如:若(AX)1234H, 则(AH)12H, (AL)34H,19/78,数据寄存器特有的习惯用法,AX:累加器 所有I/O指令都通过AX(AL)与接口传送信息; 中间运算结果也多放于AX(AL)中; 乘除法指令的一个操作数必须在AX(AL)中。 BX:基址寄存器 在间接寻址中用于存放操作数的基地址。 CX:计数寄存器 用于在循环指令或串操作指令中存放计数值。 DX:数据寄存器 在间接寻址的I/O指令中存放

8、I/O端口地址; 在32位乘除法运算时,存放高16位数。,20/78,地址指针寄存器,SP:堆栈指针寄存器 其内容为堆栈栈顶的偏移地址; 任何堆栈操作后,SP都会自动增/减量。 BP:基址指针寄存器 常用于访问存放在堆栈中的数据 在间接寻址中用于存放操作数的基地址;,21/78,BX与BP在应用上的区别,作为通用寄存器,二者均可用于存放数据; 作为基址寄存器,默认情况下: 用BX作为指针所访问的数据在数据段(DS段); 用BP作为指针所访问的数据在堆栈段(SS段)。,注:间接寻址时 仅BX、BP、SI、DI可用于存储器寻址; 仅DX可用于I/O寻址。,22/78,变址寄存器,SI:源变址寄存器

9、,用于访问源操作数 DI:目标变址寄存器,用于访问目的操作数 常用于操作数的间接寻址或变址寻址。 在串操作指令中,SI存放源操作数的偏移地址,而DI存放目标操作数的偏移地址。,23/78,2、段寄存器,用于存放逻辑段的段基地址(简称段地址) CS:代码段寄存器。代码段存放指令代码 DS:数据段寄存器 ES:附加段寄存器 SS:堆栈段寄存器:指示堆栈区域的位置,这两个段存放操作数,堆栈段,SS,数据段,DS/ES,代码段,CS,24/78,3、控制寄存器,IP:指令指针寄存器 其内容为下一条要执行的指令的偏移地址。 FLAGS:标志寄存器 存放指令执行结果的特征: 有些指令(如算术指令)要改变F

10、LAGS的内容(影响FLAGS); 有些指令对FLAGS无影响。 6个状态标志位(CF,SF,AF,PF,OF,ZF) 3个控制标志位(IF,TF,DF),O,D,I,T,S,Z,A,P,C,15,0,2,4,6,7,8,9,10,11,FLAGS,25/78,控制标志位,27/78,4、指令流水线和存储器分段管理,指令流水线:CPU执行一条指令的过程类似于工厂生产流 水线,被分解为多个小的步骤。,28/78,指令流水线,指令流水线有两种运作方式: 串行方式: 取指令和执行指令在不同的时刻按顺序执行。 并行方式: 取指令和执行指令可同时执行,需要有能并行工作的硬件的支持。,29/78,串行工作

11、方式,8086以前的CPU采用串行工作方式,取指令1,执行1,取指令2,执行2,CPU,BUS,忙 碌,忙 碌,取指令3,执行3,忙 碌,空闲,空闲,空闲,t1,t0,t2,t3,t4,t5,6个周期执行了3条指令,30/78,并行工作方式,8086CPU采用并行工作方式,取指令1,取指令2,取指令3,取指令4,执行1,执行2,执行3,BUS,执行4,CPU,t1,t0,t2,t3,t4,t5,取指令5,执行5,6个周期执行了5条指令,31/78,并行工作方式,8086CPU采用并行工作方式,取指令1,取指令2,取指令3,取指令4,译码1,译码2,译码3,BUS,译码4,CPU,t1,t0,t

12、2,t3,t4,t5,取指令5,取指令5,译码5,从第5个周期,每周期执行了1条指令,取数据1,执行1,存结果1,取数据2,执行2,取数据3,存结果2,执行3,取数据4,取指令6,32/78,3.3 8086 CPU的特点,1.采用并行流水线工作方式: (两级流水线) 通过设置指令预取队列(IPQ)实现,33/78,*超级流水线和超标量结构,流水线技术 将每条指令分解为多4步,不同指令的各部操作重叠,从而实现几条指令的并行处理,以加速程序的运行过程的技术。 超级流水线 流水线深度在5级以上. 例如,PIII为14个阶段,P4为20个阶段 有利于提高主频 超标量结构 微处理器中集成两条以上流水线

13、称为超标量结构.,如何内存空间实行分段管理: 有20根地址总线,可寻址1MB. 可内部寄存器只有16位,最大寻址空间64KB. 差4位怎么办? 将内存分段管理,将1MB分成若干个逻辑段最大段位64KB,高16位生成段地址,后4位默认为0。,段地址24+段内偏移量=具体单元地址 (物理地址),2、内存空间的管理,35/78,段和偏移,设段起始地址=60000H 段地址 偏移地址 0FFFFH (64K),6A000H,12H,60000H,6 0 0 0,段寄存器,偏移地址A000H, ,逻辑段的最大长度?最小长度?,36/78,3. 物理地址和逻辑地址,物理地址: 存储单元的硬件地址 物理地址

14、=段地址16 (或段地址左移4位)+偏移地址 逻辑地址: 段和偏移形式的地址 逻辑地址用于汇编语言程序设计 逻辑地址的例子: 2500H:0100H 段地址2500H 偏移地址0100H,37/78,例1:,已知CS=1055H,DS=250AH ES=2EF0H,SS=8FF0H 数据段中某操作数偏移地址=0204H 各段首地址=? 画出各段在内存中的分布 该操作数的物理地址=? 这个例子说明: 段与段可以不连续 段之间可以重叠,10550H,250A0H,2EF00H,8FF00H,DS段,ES段,SS段,CS段,DS段,ES段,38/78,8086的存储器组织,8086可访问1MB的存储

15、空间(为什么?) 哪个寄存器能够放得下20位的地址? 用分段的方法解决。 段是存储器中的一块区域 段起始于存储器内16字节整倍数的边界处。 段首地址的最低4位一定为0 用段和偏移的组合访问存储单元 每个段最大为64KB,最小为16B(为什么?) 所有存储单元的地址都由段地址和偏移地址组成 段地址被装入段寄存器中以供寻址使用 偏移地址用于在64KB存储器段内选择任一单元,39/78,默认段和偏移寄存器,8086规定了访问存储器段的规则: 此规则定义了段地址寄存器和偏移地址寄存器的组合方式,其默认规则如下表:,40/78,例2:,设当前执行的程序中某条指令的物理地址为5A1F6H,则程序所在的段的

16、段地址=?当前CS的内容为多少? 解:(有多个解,求出任意一个即可) 5A1F6H=5A10H10H+00F6H 所以,段地址=5A10H,CS的内容为5A10H 想一想,还有哪些解?,思考题:设当前数据段位于存储器的A8000H到B7FFFH的地址空间, 问DS的内容应是什么才能访问该数据段的所有存储单元?,41/78,4.堆栈及堆栈段的使用,堆栈:内存中一个特殊区域,用于存放需要保护的数据。 堆栈按后进先出方式工作 堆栈通过SS(段地址)和SP(偏移地址)来访问堆栈指针 堆栈的数据压入方向是从高地址到低地址,弹出方向则相反 (堆栈指针的变化举例) 常用于 响应中断 子程序调用 参数传递,4

17、2/78,例3:,若已知(SS)=1000H (SP)=2000H 则堆栈段的段起始地址= ? 栈顶地址=? 若该段最后一个单元地址为12100H 则偏移地址=?,段起始,栈顶,堆 栈 段, ,10000H,12000H,2100H,43/78,8086 CPU的两种工作模式,8086可工作于两种模式下,即: 最小模式和最大模式。 最小模式不支持8087。存储器和I/O控制信号全部由CPU产生。 最大模式支持8087。 CPU的部分信号线被用作8087的控制,因此需要由8288总线控制器来产生这些控制信号。,注:80286以后的CPU不再区分这两种工作模式。,44/78,最小模式下的连接示意图

18、,8086 CPU, ,控制总线,数据总线,地址总线,地址 锁存器,数据总线 缓冲器,ALE,时钟发 生 器,8284A,地址/数据,8286,8282,Vcc,DEN,DT/R,地址锁存选通信号ALE,45/78,最大模式下的连接示意图,8086 CPU,数据总线,地址总线,地址 锁存器,数据总线缓冲器,时钟发 生 器,总 线 控制器,控制总线,8284A,8288,ALE,CLK,8282,8286,GND,46/78,8086结构特点小结,有EU和BIU两个独立的、同时运行的部件 二者通过IPQ构成一个两工位流水线 指令被EU和BIU按流水线方式处理: 提高了CPU的运行速度; 提高了C

19、PU的执行效率; 降低了对存储器存取速度的要求。 对存储器实行分段管理,47/78,2.3、80X86微处理器,了解: 80X86存储器寻址方式 80386/80486CPU的特点 及存储管理 *Pentium 微处理器,48/78,1、80X86的存储器寻址方式,实地址模式 用段地址和偏移地址的组合寻址内存的第一个1MB空间 段地址在段寄存器(CS、DS、ES、SS)中 保护虚地址模式 既支持虚拟存储器管理和多任务,又具有保护功能的工作方式。 80286、80386、80486、PentiumPentium4 寻址空间(每个段的大小): 80286:内16位,外24位,可寻址224(16MB

20、),段长16-64KB 80386以上:内外全是32位,可寻址232(4GB)段长1- 4GB 虚拟地址空间64TB(8K+8K个描述符) 段寄存器变成指向一个数据结构(描述符表)的指针 段基址在内存的描述符中,描述符由段寄存器的内容指定。,49/78,描述格式,保护模式下段寄存器的内容,选择子(Selector):13位,TI,RPL,15 3 2 1 0,从8192个全局描述符或8192个局部描述符中选择一个描述符,TI =0 使用全局描述符表 TI =1 使用局部描述符表,请求者优先级别 00 最高,11最低,50/78,80286和80386Pentium微处理器的描述符格式,G( 粒

21、度) G=1,界限要乘以4KB,即段的大小为4KB4GB; G=0,段的大小为01MB。 D(16/32) D=1,寄存器和偏移地址均为32位;D=0时均为16位。 AV(段有效) AV=1,段有效;AV=0,段无效。 访问权限:在保护方式下控制存储的访问。如:能否读写、优先 级别、段如何扩展等。,51/78,描述符的格式(80386以上),访问权限,段界限 (L19-L16),G( 粒度) G=1,界限要乘以4KB,即段的大小为4KB4GB; G=0,段的大小为01MB。 D(16/32) D=1,寄存器和偏移地址均为32位;D=0时均为16位。 AV(段有效) AV=1,段有效;AV=0,

22、段无效。 访问权限:在保护方式下控制存储的访问。如:能否读写、优先 级别、段如何扩展等。,15 8 7 6 5 4 3 0,段基址 (B31B24),D,G,0,AV,0,2,4,6,1,3,5,7,段基址 (B23B16),段基址 (B15B0),段界限 (L15L0),52/78,保护虚地址模式,描述符(Descriptor) 用于描述存储器段的位置、大小、访问权限 所有的描述符统一放在内存中的描述符表中 全局描述符表GDT(系统中只有一个) 中断描述符表IDT(系统中只有一个) 包含了指向256个中断处理程序入口地址的描述符 局部描述符表LDT(每个任务一个) GDT和IDT的基地址由G

23、DTR和IDTR给出 LDT的基地址由LDTR(16位选择子)间接给出 选择子(Selector,选择符) 指定描述符在描述符表中的位置(偏移量),53/78,如何访问描述符,段寄存器内容,(选择子),全局描述符表 局部描述符表,描述符表,GDTR,15 0,GDT,描述符, , ,线 性 地 址 空 间,偏 移,当 前 访 问 的 段,存储器,54/78,例:,0008H,DS,描述符表,FF,00,00,00,10,00,00,92,段界限,段基地址,00100000H,001000FFH,数据段,描述符,存储器,粒度=0,GDTR,00000000H,FFFFFFFFH,55/78,访问

24、局部描述符表LDT,将选择子装入LDTR(用LLDT指令): (以下操作由CPU自动完成) 根据LDTR中的选择子到GDT中选择一个LDT的描述符(即LDT的描述符在GDT中): 这个描述符给出了LDT的基地址和段界限; 它被自动复制到LDTR的高速缓冲区中。 可以看出,LDTR是GDT中的某个LDT描述符的偏移地址,见下页图示。 以后就可以用LDTR高速缓冲区中的基地址来访问局部描述符表了。,56/78,访问局部描述符表LDT,选择子,GDTR,15 0,GDT,LDT 描述符, , ,LDTR,基地址,界限,权限,LLDT,偏移量,15 0,LDT, , ,段寄存器,偏移量,57/78,2

25、、80386/80486,1)、主要特性: 全32位结构(ALU、BUS、Reg),可处理8/16/32位数据 物理寻址空间232字节(4GB) 外部数据总线传输率为33MB/s 片内集成MMU,支持段式或页式虚拟存储管理和特权保护 虚存空间64TB,1MB或4GB/段,16384段/任务 4级特权层:一般OS为0、1、2级,用户程序为3级 实地址方式、虚拟8086方式和保护虚地址方式 硬件支持多任务,一条指令可完成任务转换,转换时间17us 更先进的流水线结构:16字节指令队列 时钟速度:1633MHz,58/78,2)、 内部结构,分三个部分: 总线接口单元(BIU) 与存储器和接口间的数

26、据传送 中央处理单元(CPU) 指令预取部件、指令译码部件、执行部件 指令译码和执行 存储器管理单元(MMU) 段管理部件、页管理部件 地址转换、虚存管理,内部结构,59/78,主要引线功能,D0D31 :双向,32位数据总线 ; A2A31 :输出,30位地址总线; BE0BE3 :字节选通输出,与30位地址线结合可 相当于32位地址; W/R:输出,写/读控制信号; D/C:输出,数据传送周期/控制周期; BS16:输入,有效则总线宽度为16位; ADS:输出,地址信号有效; NA:输入,下一地址请求信号; 其他信号与8086基本一致,60/78,内部寄存器组,共34个内部寄存器,8个通用

27、寄存器(32/16/8位) 6个段寄存器(16位) 指令指针(32/16位) 标志寄存器(32/16位) 4个系统地址寄存器(32+20位/16位) 控制寄存器 调试和测试寄存器,61/78,通用寄存器组(32/16/8位),EAX EBX ECX EDX ESI EDI EBP ESP,低16位可分为两个8位寄存器,低16位可作为独立的寄存器,注:32位寻址时,这8个32位寄存器全部可用于提供偏移地址。,62/78,段寄存器(16位),CS DS ES SS FS GS,每个16位段寄存器对应一个64位的高速缓冲段描述符 一旦选择子装入段寄存器,相应的段描述符立刻被自动装入高速缓冲段描述符中

28、,新增的2个段寄存器,63/78,指令指针及标志寄存器(32位),指令指针EIP 标志寄存器EFLAGS(增加了4个标志位) IOPL指定I/0操作处于哪个特权级; NT当前任务是否嵌套于另一任务; RF调试结束,下一条指令后恢复程序的执行; VM是否工作于虚拟8086方式,EFLAGS,64/78,系统地址段寄存器(程序不可见),GDTR 48位全局描述符表寄存器 指示全局描述符表的基地址(32位)和表的界限(16位) IDTR 48位中断描述符表寄存器 指示中断描述符表的基地址(32位)和表的界限(16位) TR 16位任务状态寄存器 LDTR 16位局部描述符表寄存器 以上这些寄存器不直

29、接被程序访问。,65/78,程序不可见的寄存器,CS,DS,ES,SS,FS,GS,基地址,界限,权限,TR,LDTR,基地址,界限,GDTR,IDTR,基地址,界限,权限,程序不可见区域,描述符(寄存器)高速缓冲区,66/78,3)、工作模式小结,实模式 只允许CPU访问第一个1MB存储器空间 实模式存储器/常规内存 每次加电/复位后默认的工作方式 存储单元的地址都由“段偏移”组成 保护模式 允许CPU访问所有存储器空间 段地址由描述符提供,描述符由选择子在描述符表中选择 分页机制 虚拟8086模式 在保护模式下模拟多个8086工作环境,地址转换,67/78,80486基本沿用了80386的

30、体系结构。 将80386处理器、80387浮点协处理器、8KB的高速缓存以及支持构成多微处理器的硬件集成在一块芯片上。,4)、80486与 386 的区别:,虚拟地址和物理地址的转换过程,分页机制,分页机制将线性地址转换为物理地址 CR0中的PG=1时启动分页机制; PG=0时则禁用分页机制,的线性地址当物理地址使用。,80486一页为4K字节,并在4K字节的边界上对齐,即每页的开始地址都能被4K整除。 4G字节线性地址空间划分成220个页面 线性地址的低12位经分页机制直接处理为物理地址低12位 线性地址的高20位转换成物理地址高20位,分页机制管理的对象是固定大小的存储块(页) 分页机制把

31、整个线性地址和物理地址空间都看成由页组成 线性地址中的任一页都可映射到物理地址空间的任一页,70/78,3、Pentium CPU简介,Intel于1993年3月推出的 (1)采用超标量 (2)内置浮点运算部件,8个独立执行单元 (3)内置指令和数据2个超高速缓冲器 (4)64位外部数据总线 (5)有4种工作方式, 多一种系统管理方式SMM (区显著的应用是电源管理) 等等。,71/78,Pentium Pro,于1995年11月,简称P6高能奔腾 (1)精简指令集技术RISC (2)二级缓冲结构 (3)乱序执行和预测执行技术 (4)3路超标量和14级超流水线结构 (5)寄存器重命名技术,72/78,Pentium,于1997年5月 (1)多媒体增强技术(57条MMX指令) (2)动态执行技术: 通过预测指令来调整指令的执行 (3)双重独立总线结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论