微机原理微机原理第二章微处理器B.ppt_第1页
微机原理微机原理第二章微处理器B.ppt_第2页
微机原理微机原理第二章微处理器B.ppt_第3页
微机原理微机原理第二章微处理器B.ppt_第4页
微机原理微机原理第二章微处理器B.ppt_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

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

文档简介

第二章 微处理器与系统结构,2.1 微处理器的基本结构及主要性能指标 2.2 8086/8088微处理器 2.3 8086系统的组成 2.4 存储器组织 2.5 8086总线时序,2.1 微处理器的基本结构,微机的运算器和控制器集成在一个芯片,称中央处理器CPU或微处理器MPU CPU按字长:4位、8位、16、32和64位 按结构分类:单片微处理器和位片微处理器 微处理器内部基本结构一般由算术逻辑单元、寄存器阵列、控制单元、总线和总线缓冲器四个部分组成。有些还集成有存储器和I/O接口,算术逻辑单元ALU,有加、与、或、非、移位硬件操作功能 可完成加、减、乘、除、求补,逻辑与、或、非、异或,移位,BCD调整,定点/浮点运算 输出结果和结果状态,控制与定时部件控制器,控制器的一般组成,控制器任务:逐渐取出指令、分析指令、执行指令。 指令:操作码+地址码/操作数 由指令部件、时序部件和微操作控制电路组成 指令部件 程序计数器PC:给出待执行指令的首地址 指令寄存器IR:存放当前要执行的指令码,包括操作码和地址码(操作数) 指令译码器ID:分析操作码并经译码后产生相应操作的控制信号,控制器的一般组成,时序部件:产生微机各部件所需定时信号 时钟系统 脉冲源:用外接晶振产生一定周期和宽度的脉冲信号。时钟周期或T状态是CPU操作的最小时间单位 时钟启/停逻辑:按指令的控制要求,准确地开/关时钟脉冲 时钟脉冲分配器:产生微机各部分所需要的能按一定顺序逐个出现的节拍脉冲信号,以控制和协调CPU各微操作有节奏地动作,指令周期、总线周期与时钟周期的关系,机器周期(总线周期,M周期):一般由35个时钟周期组成,期间可完成一个基本操作,如存储器读/写、I/O读/写 指令周期:一般为15个机器周期,包括一条指令的取出和执行所需的时间,控制器的一般组成,微操作控制部件:由指令译码器、节拍发生器、节拍脉冲及外部状态信号等组合而产生的控制微机各部件的部件 组合逻辑控制:用组合逻辑实现的微操作控制。修改不方便,快 微程序控制(存储逻辑控制):将每条指令的微程序存放在只读存储器中,并由CPU逐条取出执行以实现微操作控制。便于检查修改,慢 可编程逻辑阵列控制:通过程序设计而执行特定逻辑功能的组合逻辑结构。兼有两种控制的优点,总线与总线缓冲器,总线是微机部件间传送信息的导线集合 内总线连接累加器、ALU、R与FLAG等。有单总线、双总线和多总线结构 片外总线可分为片间总线、系统总线和外总线。前两种用来连接 CPU、M、I/O等。通常又分为AB、DB和CB 总线缓冲器通过三态逻辑电路将挂在总线上的某些部件在电气连接上与总线脱开,寄存器阵列,存放待处理数据的寄存器: 累加器和通用寄存器 存放地址的寄存器: PC、SP、指针和变址寄存器 存放控制和状态信息的寄存器: IR和FLAG 起数据缓冲作用的寄存器: 数据和地址总线缓冲器,微处理器主要性能指标,主频:即微处理器时钟频率。如Pentium4 2GHz 同系列的微处理器,主频越高,速度越快。 但主频相同的微处理器,速度不一定都相同,因结构有差异 外频:微处理器外部总线工作频率。如Pentium4 2GHz的外频为400MHz 地址线宽度:决定访存空间。如36位地址线访问236=64GB存储单元 数据线宽度:决定微处理器与外部存储器、输入/输出部件之间一次交换的二进制数据位数。如8、16、32、64位。,微处理器主要性能指标,高速度缓存(CACHE):L1/L2 Write-through缓存,只对读有效 write-back缓存,对读写都有效 内置协处理器:加快数值运算 超标量结构:一个时钟周期内执行一条以上的指令。 低标量结构:一条指令至少需要一个以上的时钟周期 工作电压:微处理器正常工作所需要的电压,早期为5V,后来有3.3V,2.8V,1.5V等。 制造工艺:晶体管之间的最小线距, 0.35m, 0.25m, 0.18m, 0.13m等,微处理器标识,微处理器类型(Intel),4004:4位 8085/8088:8位 8086、80286:16位 80386、80486、80586:32位 Pentium、Pentium PRO、Pentium II、 Pentium III、Pentium 4:32/64位,2.2 8086/8088微处理器,INTEL78年推出(79年推出8088 ) 4万多个晶体管(8088为2.9万个晶体管) 时钟频率4.77MHZ 数据线16位(8088的数据线8位) 地址线20位 40脚DIP封装 81年推出Personal Computer(个人计算机、微机),2.2.1 8086CPU功能结构图,EU 控 制 器,标志寄存器,8位队列总线,总 线 控 制 逻 辑,内部总线16位,20位地址总线,16位数据总线,执行部件EU,总线接口部件BIU,一、8086执行部件EU,算术逻辑单元ALU(Arithmetic and Logic Unit) 进行所有的算术和逻辑运算 计算寻址单元的十六位偏移地址EA(Effect Address) EU控制器 接收指令队列中的指令,进行指令译码、分析,形成各种控制信号,实现EU各个部件完成规定动作的控制 标志寄存器F 通用寄存器,标志寄存器F,唯一能按位操作的寄存器 只定义了其中9位,另外7位未定义(不用) 6位状态标志:OF、SF、ZF、PF、CF、AF 3位控制标志:DF、IF、TF,状态标志,反映指令对数据作用之后,结果的状态(不是结果本身)。这些状态将控制后续指令的执行 OF(Overflow Flag):溢出标志(指补码),F.11 OF=1:在运算过程中,如操作数超过了机器表示的范围称为溢出。 OF=0:在运算过程中,如操作数未超过了机器能表示的范围称为不溢出。 求解方法:最高位进位次高位进位 字节允许范围:-128+127 字允许范围:-32768+32767,状态标志,CF(Carry Flag):进位/借位标志,F.0 CF=1:最高位需要向前产生进位/借位。 CF=0:最高位不会向前产生进位/借位。 AF(Auxiliary Carry Flag):辅助进位标志,F.4 AF=1:数据的第3位(半个字节)需要向前产生进位/借位。 AF=0:数据的第3位(半个字节)不会向前产生进位/借位。,状态标志,SF(Sign Flag):符号标志,F.7 SF=1:运算结果的最高位为1,如果为带符号数,则为负数。 SF=0:运算结果的最高位为0,如果为带符号数,则为正数。 带符号数的最高位为符号位;而无符号数的 最高位为数值位。 ZF(Zero Flag):全零标志,F.6 ZF=1:运算结果为全0。不包括进位的情况 ZF=0:运算结果不为0。,状态标志,PF(Parity Flag):奇偶标志 PF=1: 结果的低8位中有偶数个1。 PF=0: 结果的低8位中有奇数个1。 有些运算操作将影响全部状态标志,如加法、减法运算 有些操作影响部分状态标志,如移位操作 有些指令的操作不影响任何状态标志,如数据传送指令,运算结果最高位为1 SF=1;,例:2个数相加后,分析各标志位的值,第三位向第四位有进位 AF=1;,次高位向最高位有进位 ,最高位向前没有进位,OF=10=1,最高位没有进位 CF=0;,低8位中1的个数为偶数个 PF=1;,运算结果本身0 ZF=0;,运算结果最高位为0 SF=0;,例:2个数相减后,分析各标志位的值,第三位向第四位没有借位 AF=0;,次高位向最高位没有借位 ,最高位向前没有借位,OF=00=0,最高位没有借位 CF=0;,低8位中1的个数为奇数个 PF=0;,运算结果本身0 ZF=0;,控制标志,控制标志位的值不由数据运算的结果决定,而由指令直接赋值 控制标志决定后续指令的执行情况 DF(Direction Flag):方向控制标志位 用于串处理指令,控制从前往后、还是从后往前对字符串进行操作处理 DF=1,每次串处理操作后使变址寄存器SI和DI的值递减,使串处理从高地址向低地址方向处理。 DF=0,每次串处理操作后使变址寄存器SI和DI的值递增,使串处理从低地址向高地址方向处理。,控制标志,IF(Interupt Flag):中断允许/禁止标志位 IF=1, 允许外部可屏蔽中断。CPU可以响应可屏蔽中断请求。 IF=0, 关闭中断。CPU禁止响应可屏蔽中断请求。 IF的状态对不可屏蔽中断和内部软中断没有影响。 TF(Trap Flag):跟踪(陷阱)标志位 TF=1,每执行一条指令后,自动产生一次内部中断,使CPU处于单步执行指令工作方式,便于进行程序调试,用户能检查程序。 TF=0, CPU正常工作,不产生陷阱。,控制标志与状态标志的区别,控制标志的值:由系统程序或用户程序根据需要用指令设置。 状态信息:由中央处理器执行运算指令,并根据运算结果而自动设置。X86 CPU也提供了直接设置状态标志之值的指令,调试状态时,标志位之值的符号表示,AX,BX,CX,DX,8086的通用寄存器,目的变址指针(Destination Index),DI,源变址指针(Source Index),SI,基址指针(Base Pointer),BP,堆栈指针(Stack Pointer),SP,数据寄存器(Data),计数寄存器(Count),基址寄存器(Base),累加器(Accumulator),通用寄存器,一般,通用寄存器可以用于任何指令的任意操作,可以相互替换 16位的数据寄存器可分解为2个8的使用,是同一个物理介质。如果存储了一个16位的数据,不能同时存储另外的1个或2个8位数 地址寄存器不能分解为8位使用 有些操作规定只能使用某个寄存器,即寄存器的特殊用法,通用寄存器的特殊用法(默认用法),8086CPU功能结构图,8位队列总线,总 线 控 制 逻 辑,内部总线16位,20位地址总线,16位数据总线,总线接口部件BIU,二、8086总线接口部件BIU(Bus Interface Unit),BIU负责与 M、I/O 端口传送数据、地址。 访问存储器时,需要生成20位的物理地址; 要不断从内存中取指令并送到指令队列; CPU执行指令时,要配合执行部件从指定的内存单元或者外设端口中取数据,并将数据传送给执行部件;或把执行部件的操作结果传送给指定的M或I/O口,指令队列缓冲器,8088为4字节,8086为6字节。为FIFO(先进先出)结构 指令队列至少保持有一条指令,且只要有一条指令,EU就开始执行; 指令队列只要有空,BIU自动执行取指操作,直到填满为止; 若EU要进行M/IO存取数据,BIU在执行完现行取指操作周期后进行。 当执行转移指令时,EU要求BIU从新的地址中重新取指。队列中原有指令被清除。新取得的第一条指令直接送EU执行,随后取得的指令填入队列,BIU的段寄存器,4个16位段寄存器CS、DS、SS、ES用来识别当前可寻址的四个段,每个段的功能各不相同 CS:Code Segment Register代码段寄存器,指示当前执行程序所在存储器的区域 DS:Data Segment Register数据段寄存器,指示当前程序所用之数据的存储器区域。 SS:Stack Segment Register堆栈段寄存器,指示当前程序所用之堆栈位于的存储器区域 ES:Extra Segment Register附加段寄存器,指示当前程序所用之数据位于的另外存储器区域,在字符串操作中常用到,指令指针,IPInstruction Pointer指令指针寄存器 用来存储代码段中的偏移地址; 程序运行过程中IP始终指向下一次要取出的指令偏移地址 通常不能被直接访问,也不能直接赋值,指令中不会出现IP。 总线控制逻辑 处理器与外界总线联系的转接电路。 包括三组总线:20 位地址总线,16/8位双向数据总线,一组控制总线,地址生成器,CS左移4位,三、EU与BIU的协同工作,在一条指令的执行过程中可以取出下一条(或多条)指令,指令 在指令队列中排队; 在一条指令执行完成后,就可以立即执行下一条指令,减少CPU为取指令而等待的时间,提高CPU的利用率和整个运行速度。,8086/8088的寄存器结构,数据寄存器,地址指针及变址寄存器,控制寄存器组,段寄存器组,AX AH AL 累加器 BX BH BL 基址寄存器 CX CH CL 计数寄存器 DX DH DL 数据寄存器,通用寄存器组,SP 堆栈指针 BP 基址指针 SI 源变址指针 DI 目的变址指针,IP 指令指针 FLAG 标志寄存器,CS 代码段寄存器 DS 数据段寄存器 SS 堆栈段寄存器 ES 附加段寄存器,15 8 7 0,2.2.2 8086/8088引脚信号,AD0AD15地址/数据复用引脚(双向、三态) A16/S3A19/S6地址/状态复用引脚(输出、三态) /S7总线高位允许/状态(输出,三态) 读信号(输出,低电平有效,三态) 测试信号(输入、低电平有效) READY 准备就绪(输入、高电平有效),一、通用信号,状态信号指示当前使用段,一、8086通用引脚信号,INTR可屏蔽中断请求信号(输入、高有效) NMI非屏蔽中断请求(输入,上升沿触发) RESET复位信号(输入,高电平有效) CLK时钟输入端 MN/ 最小/最大模式控制输入端,复位后相关寄存器的初始状态,二、8086最小模式引脚信号,M/ 存储器/IO控制信号(输出、三态) 写信号(输出、低电平有效) 中断响应信号(输出、三态、低电平有效) ALE地址锁存允许信号(输出) DT/ 数据发送/接收控制信号输出(输出、三态) 数据允许信号(输出、三态、低电平有效) HOLD总线保持请求信号(输入、高电平有效) HLDA总线保持响应信号(输出、高电平有效),三、8086最大模式引脚信号,总线周期状态信号(输出、三态) , 总线请求(输入)/总线请求允许信号(输出)(双向、均为低电平有效) 总线封锁信号(输出、三态、低电平有效) QS0,QS1指令队列状态信号(输出),四、8088引脚信号,AD0-AD7:数据/低8位地址复用线 SS0:状态信号 IO/M存储器/地址选择线,五、8088/8086两种工作模式,由第33号引脚(MN/MX)控制 最小模式:系统只有8086或8088一个微处理器。所有控制信号直接由CPU提供 最大模式:由两个或多个微处理器(主处理器和协处理器)组成中(大)规模系统,CPU并不直接向外界提供全部控制信号,而由S0S1S2通过Intel 8288总线控制器提供 不同的工作模式下,CPU有一部分引脚具有不同的功能,2.3 8086系统的组成,总线接口部件 8086的两种组态 存储器组织与存储器分段 堆栈 输入/输出结构,2.3.1 地址锁存器8282内部结构,8282,地址锁存器8282引脚信号,直通,保持,高阻,地址锁存功能,STB为高电平期间,输出等于输入 为下降沿时,输出锁存,与输出无关 OE为有效电平(低电平)时,正常输出;为无效电平(高电平)时,输出高阻 ALE为8088/8086地址锁存允许, 高电平有效, 输出,复用线上出现地址时为高电平 锁存器的DI0-DI7与CPU的地址/数据复用线相连,STB与ALE相连。ALE为正脉冲时,输出地址;为低电平时,输出锁存,与数据无关,双向数据收发器8286内部结构,功能表,双向数据收发器8286引脚信号,两方面的功能 、三态输出直接驱动总线 、具有数据收和发两个方向的传输、隔离控制功能。 常用芯片:Intel8286,Intel8287和74LS245 8286输入输出同相 8287输入输出反相 74LS245的功能与8286相同,双向数据总线收发器,最小模式总线连接,8086最小工作模式下控制核心单元的组成,5V,读写控制,读写控制,读写控制,最小模式总线状态及操作,2.3.2 8288总线控制器,多CPU 8086/8088系统 由总线控制器8288产生总线控制信号 基本功能 根据S2、S1、S0信号译出对应的状态命令 产生地址锁存信号和双向数据驱动器控制信号 使总线控制信号浮空,以允许其他总线控制单元控制总线 产生简单或级联中断逻辑所需的控制信号,8288内部结构,8288引脚信号,8086最大工作模式下控制核心单元的组成,读写控制,读写控制,读写控制,最大模式总线状态,S0S1S2总线周期状态信号(输出、三态),经过8288总线控制器译码产生对存储器、I/O端口访问所需的控制信号,8086最小组态和最大组态的比较,1)不同之处 最小模式下系统控制信号直接由8086CPU提供;最大模式下因系统复杂,芯片数量较多,为提高驱动能力和改善总线控制能力,大多数的系统控制信号由总线控制器8288提供,2)相同之处: 8086的低位地址线与数据线复用,为保证地址信号维持足够的时间,需使用ALE信号将低位地址线锁存(通过锁存器8282),以形成真正的系统地址总线;,8086最小组态和最大组态的比较,2.4 存储器组织,8086有20条地址线,寻址能力为1MB 字节地址:能存储一个字节的存储单元的地址 字地址:占用两个相邻字节单元的地址数值较小的单元地址(低字节地址) 字符串地址:存放在最低地址单元的第一个字节地址 字的存储:低字节在较低地址单元,高字节在较高的相邻地址单元 指针的存储:偏移地址在低地址字单元,段地址在较高地址单元,内存单元既可以存放数据,也可以存放地址指针(包括偏移地址和段地址),此时地址也可以看成是数据,2.4.1 信息存放方式示意图,地址 内容 19H 0CH 1AH 1FH 1BH 01H 1CH 23H 1DH 74H 1EH ABH 1FH 41H 20H 42H 21H 43H 22H 44H 23H 45H,存储器组织,存储器的访问,8086奇偶存储器和总线连接,a)存储器地址空间分配,b)存储体与总线的连接,存储单元的访问,2.4.2 存储器分段,分段原因: 8086有20根地址线,但其内部可以表示的地址最多只能是16位。 为了能寻址1MB空间,8086对存储器进行逻辑分段,每个段最大为64KB,最小为16B(此时最多64K个段)。,存储器分段示例,存储器的逻辑地址和物理地址,8086物理地址PA的形成, 其中的16位偏移量也称为有效地址EA(出现在指令中),物理地址PA与逻辑地址LA的对应,0000,存储器段操作,四个段寄存器(CS、DS、SS、ES)指示四个现行段的段地址。段和段之间可以相互分离、连接、部分重叠或完全重叠。,* 由指令给的出寻址方式所指定的地址,逻辑地址源,物理地址的生成,取指令时:由代码段寄存器CS,再加上IP的16位偏移量 堆栈操作时:由堆栈段寄存器SS,再加上SP所决定的16位偏移量 取数据:ES或DS再加寻址的偏移地址 程序所需的存储空间不超过64KB(包括程序、堆栈和数据),可使CS、SS、DS、ES相等 任务的程序、堆栈以及数据分别不超过64KB,CS,DS,SS可分别置初值,否则用子程序结构,2.4.3 8086系统堆栈操作,堆栈:后进先出的的一段内存 栈顶:永远由地址指针(SS:SP)指示 栈底:最初始的地址指针(SS:SP)指示处 堆栈深度:最大64KB 堆栈的作用:调用子程序(或转向中断服务程序)时,把断点及有关的寄存器、标志位及时正确地保存下来,并保证逐次正确返回 堆栈操作指令:入栈指令PUSH与出栈指令POP 入/出栈操作数:是一个字,而不是一个字节 子程序调用指令或中断响应自动完成时,恢复断点地址则由返回指令(RET或IRET)完成,堆栈初始化操作,堆栈段起始地址,栈底及初始栈顶,入栈操作,先把SPlSP,后AH入SP所指单元 再次使SP1SP,把AL送至SP所指单元,出栈操作,2.4.4 I/O端口组织,特点:将端口看作存储单元,仅以地址范围的不同来区分两者。 优点:对端口的操作和对存储单元的操作完全一样,因此系统简单,并且对端口操作的指令种类较多。 缺点:CPU对存储单元和I/O端口的实际寻址空间都小于其最大寻址空间。,存储单元地址,I/O 端口 地址,特点:系统视端口和存储单元为不同的对象。 优点:系统中存储单元和I/O端口的数量可以达到最大。 缺点:需要专门的信号来指示系统地址线上出现的是存储单元地址 还是端口地址;专用的端口操作指令一般比较单一。,X86的编址方式,三、输入/输出,8086系统通过I/O端口访问外部设备,既可以接收外部信息,又可以把信息送往外设,并可发出命令控制外部设备 8086 CPU具有读端口信息和写端口信息的专用I/O指令,可寻址21664K个字节端口,2.5 8086总线时序,时序图:描述某一操作过程中,芯片/总线上有关引脚信号随时间发生变化的关系图 总线周期:执行一个总线操作所需要的时间 一个基本的总线周期通常包含 4 个T状态,存储器/IO读时序,存储器/IO写时序,单CPU系统8086读操作 总线周期时序,单CPU系统8086写操作 总线周期时序,8086最大模式下的读总线周期时序,( DS )=3000H, (BX)=500CH, (3500CH)=9AH,1.IO/M变低, CPU将对内存进行操作 2. A19A0上出现地址信号0011 0101 0000 0000 1100 3. ALE上出现正脉冲信号 4. DT/R变低, 数据收发器处于接受状态,执行指令MOV AL,BX的时序图T1,5.A19A16上出现状态信号S6S5S44S3=0 IF 1 1,使用DS 6. AD7AD0变高阻态 7. RD变低,CPU将进行读操作 8. DEN 变低,允许

温馨提示

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

评论

0/150

提交评论