《位微处理器》PPT课件.ppt
四、16位微处理器,0.本章知识脉络,微处理器的发展历程8086/8088CPU的结构8086/8088CPU的引脚信号和工作模式8086/8088的主要操作功能,1.微处理器的发展历程,提到微处理器的历史,不得不说的一家公司,Fair Child,仙童,1.微处理器的发展历程,1879 美 爱迪生 白炽灯1904 英 弗莱明 真空二极管1907 美 李 德弗雷斯特 真空三极管1950 贝尔实验室 肖克莱、巴丁、布拉顿 晶体三极管,1.微处理器的发展历程,提到微处理器,不得不说的几个名字,1.微处理器的发展历程,Intel 创立者:鲍勃诺依斯和戈登摩尔时 间:1968年7月18日1971年11月15日 霍夫 世界上第一个微处理器 4004,1.微处理器的发展历程,Intel 4004(第一代CPU的代表,4位时代)4位微处理器具备45条指令每秒能执行5万条指令性能不如ENIAC集成度却要高很多,微处理器从此诞生。,1.微处理器的发展历程,1972年Intel 8008(第二代CPU的代表 8位时代)性能是4004的两倍主频只有200KHZ只能做基本的整数运算同类处理器M6800、Z-80,1.微处理器的发展历程,1978年Intel i8086(第三代 16位CPU的代表)3微米制造技术集成度达到29000个晶体管内部和外部总线都是16位,寻址20位主频达4.77MHZ同类处理器M68000、Z8000,1.微处理器的发展历程,1978年Intel 80888088并非8086的升级版,甚至性能还不如8086因为在IBM个人电脑中的使用,产生了PC的概念取得巨大的商业成功,因而名垂史册。同时,Intel提出了协处理器的概念8088可以搭配8087使用8087协处理器主要负责浮点方面的运算,直到486的推出,才将浮点和整数运算单元合并在一起。,1.微处理器的发展历程,1982年Intel 8028616位数据总线,24位地址总线1.5um技术制造主频12MHz以上它的效率是8088的4倍以上与8086二进制兼容建立了CISC(复杂指令集)结构,1.微处理器的发展历程,1985 Intel 80386 DX/SX(第四代 32位CPU的代表)32位数据总线、32位地址总线(可寻址4GB)其中386SX是准32位CPU,即内部数据通道为32位,外部数据通道为16位,为了兼容采用286的系统设备40MHz主频,2.8086/8088 CPU 的结构,8088/8086 CPU,完成取指令和存取数据操作,负责分析指令和执行指令,4.2.1 执行部件(Execution Unit),AXBXCXDX,累加器基地址寄存器计数器数据寄存器,通用寄存器,15 0,算术逻辑单元 ALU,EU 控制器,EU,4.2.1 执行部件(Execution Unit),OF,DF,IF,TF,SF,ZF,AF,PF,CF,15 11 10 9 8 7 6 5 4 3 2 1 0,进位标志,奇偶标志,半进位标志,零标志,符号标志,中断标志,单步标志,溢出标志,方向标志,控制标志,状态标志,FR 寄存器各位的含义,未使用,4.2.2 总线接口部件(Bus Interface Unit),20位的地址加法器,BIU,总线控制逻辑,4.2.2 总线接口部件(Bus Interface Unit),BIU和EU是并行工作的(流水线技术)当8086指令队列中有2个(8088有1个)空字节时,BIU自动把指令取到队列中EU从指令队列取指,执行。执行过程中如果要访问存储器或I/O,若此时BIU正在取指,则取指完成后,响应EU的总线请求。当指令队列已满,EU又没有总线访问,BIU进入空闲状态执行转移、调用和返回指令时,指令队列中的原有内容自动消除,BIU开始往指令队列中装入目标程序段中的指令。,4.2.3 存储器结构,寻址能力CPU 所能访问的最大地址空间由CPU对外的地址线条数决定寻址空间=2地址线条数,4.2.3 存储器结构,寻址能力CPU 所能访问的最大地址空间由CPU对外的地址线条数决定寻址空间=2地址线条数,4.2.3 存储器结构,存储器的分段为什么要分段?8086外部地址线为20条故对外寻址能力为220=1MB8086内部地址线为16条故内部寻址能力为 216=64KB分段的目的,正式为了解决用16位内部地址,访问1MB内存空间的问题,4.2.3 存储器结构,举个例子假如你的手机电话本仅能存储8位的电话号码你如何存储朋友们的手机号?,4.2.3 存储器结构,内存分段方法将1MB内存空间分为若干个逻辑段每个逻辑段的容量64KB各个段起始地址低4位必须全部为0(段首址可被16整除)各个段可以部分重叠、完全重叠、连续排列、断续排列,4.2.3 存储器结构,逻辑地址到物理地址的转换:地址加法器逻辑地址:程序员使用的地址、CPU内部总线上的地址(16位)物理地址:CPU访问内存或I/O设备所使用的地址(20位),4.2.3 存储器结构,3 2 1 0,0 0 0 0,19 物 理 地 址 0,物理地址=段基址16+偏移地址,4.2.3 存储器结构,例若当前IP=2200H CS=1000H,则存放下一条待取指令的内存地址是?10000 H 2200 H=12200 HP77 图4-4,4.2.4 8086的总线工作周期,指令周期执行一条指令所需要的时间取指令分析指令执行指令总线周期CPU存取一次存储器或I/O端口所需要的时间总线周期由4个以上的时钟周期构成每个时钟周期又称作一个T状态,4.2.4 8086的总线工作周期,指令周期 与 总线周期的关系一般情况下一个指令周期包含若干个总线周期如:取指阶段,至少需要一个总线周期 取数阶段,至少需要一个总线周期 存数阶段,至少学要一个总线周期在8086中,一般以时钟周期作为基本时间单位时钟周期=1/主频,4.2.4 8086的总线工作周期,指令周期,总线周期,总线周期,4.3 8086/8088 CPU的引脚信号和工作模式,引脚信号的类型与数量电源+地=2条20条地址线16条数据线时钟信号、复位信号等控制信号至少40+n 条 引脚,4.3 8086/8088 CPU的引脚信号和工作模式,1234567891011121314151617181920,4039383736353433323130292827262524232221,8086CPU,地AD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLK地,VCC(5V)AD15A/S2A/S4A/S5A/S6BHE/S2MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(SD)ALE(QSD)INTA(QS4)TESTREADYRESET,芯片的引脚过多,会导致制造技术的困难,所以通常采用“引脚复用”技术来实现“一脚多用”从而减少芯片引脚数量,4.3 8086/8088 CPU的引脚信号和工作模式,小知识:芯片的封装形式为了工业生产的标准化,集成电路的外形及引脚分布有一定的规范,称为封装形式常见的封装形式有:双列直插 DIP、QFP、SO等,4.3 8086/8088 CPU的引脚信号和工作模式,复用引脚的具体形式分时复用:不同时刻用作不同功能模式复用:不同工作模式下用作不同功能,1234567891011121314151617181920,4039383736353433323130292827262524232221,8086CPU,地AD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLK地,VCC(5V)AD15A/S2A/S4A/S5A/S6BHE/S2MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(SD)ALE(QSD)INTA(QS4)TESTREADYRESET,4.3.1 8086/8088的引脚信号和功能,分时复用引脚AD15AD0(8088中只有AD7 AD0)地址/数据复用总线,双向,三态总线周期的T1状态输出地址T2、T3状态输出数据A19/S6A16/S3,地址/状态线复用,输出,三态总线周期的T1状态输出地址其余状态输出状态信息,4.3.1 8086/8088的引脚信号和功能,BHE/S7(8086)高8位数据线允许/状态信息复用引脚,输出,4.3.1 8086/8088的引脚信号和功能,单一功能引脚NMI,非屏蔽中断,输入INTR,可屏蔽中断请求信号,输入RD,读信号,输出,三态,低电平有效CLK,时钟信号,输入RESET,复位信号,输入,4.3.1 8086/8088的引脚信号和功能,单一功能引脚READY,准备好信号,输入TEST,测试信号,输入,低电平有效MN/MX,最小/最大模式控制引脚,输入此引脚接电源(高电平)时8086工作于最小模式此引脚接地(低电平)时8086工作于最大模式GND地和VCC电源引脚,4.3.2 最小工作模式,最小工作模式的含义系统中只有8086或8088一个微处理器所有总线控制信号直接来自8086或8088相对地最大工作模式是指系统中包含多个微处理器的情况一般由8086或8088作为主处理器,8087作为数值运算协处理器,8089作为输入输出协处理器,4.3.2 最小工作模式,最小模式下的系统框图,为何要使用地址锁存和数据收发?,1、地址和数据引脚是分时复用的,这就需要对不同时刻发送的数据(地址或数据)进行区分和保存2、CPU的运行速度相对于内存和外设是很高的,这就需要有个暂存部件,将CPU发出的“转瞬即逝”的数据保存下来。3、当系统外部电路较多或信号传输线路较长时,需要增加输出信号的强度(电流)。,4.3.2 最小工作模式,地址总线相关引脚AD0AD15、A16、A17、A18、A19BHEALE(Address Latch Enable):地址所存允许(输出)向地址锁存器发出的所存信号,收到该信号后,地址锁存器将当前地址线上发过来的信号锁存起来,4.3.2 最小工作模式,数据总线相关引脚AD0AD15DEN(Data Enable):数据允许信号(输出)CPU发送至数据总线收发器的控制信号表示CPU准备发送或接受一个数据数据总线收发器将其作为“使能”信号DT/R(Data Transmit/Receive):数据收发控制(输出)指示数据总线收发器的数据传送方向1:发送 0:接收,4.3.2 最小工作模式,控制信号相关引脚INTRINTA(Interrupt Acknowledge):中断响应信号(输出)HOLD(Hold Request):总线保持请求信号(输入)HLDA(Hold Acknowledge):总线保持响应信号(输出)WR(Write):写信号(输出)M/IO(Memory/IO):存储器/输入输出设备选择信号(输出),4.3.2 最小工作模式,8088 与 8086 引脚的不同8086数据线有16条(AD0AD15)8088数据线仅 8条(AD0AD7)8086第34脚 为BHE8088第34脚 为SS0(最小模式)HIGH(最大模式)8086第28脚 为 M/IO8088第28脚 为 M/IO,4.3.2 最小工作模式,8088的 M/IO、DT/R、SS0 代码组合对应操作,M/IO DT/R SS0 操作,发中断响应信号,读I/O端口,写I/O端口,暂停,取指令,读内存,写内存,无源状态,1 0 0,1 0 1,1 1 0,1 1 1,0 0 0,0 0 1,0 1 0,0 1 1,4.3.2 最小工作模式,也可使用3片74LS373,也可使用2片74LS245,4.3.2 最小工作模式,8086与地址锁存器8282的连接,8282,AD0AD1AD2AD3AD4AD5AD6AD7AD8AD9AD15A16A17A18A19BHE,数据,DI0 DO0DI1 DO1DI2 DO2DI3 DO3DI4 DO4DI5 DO5DI6 DO6DI7 DO7,DI0 DO0DI1 DO1DI7 DO7,ALE,STB,STB,STB,8086,8282,8282,OE,4.3.2 最小工作模式,8086与数据收发器8286的连接,8286,T,8088,数据总线,AD0AD1AD2AD3AD4AD5AD6AD7,A0A1A2A3A4A5A6A7,B0B1B2B3B4B5B6B7,接地址锁存器,4.3.2 最小工作模式,8086与时钟发生器8284A的连接,8284A,EFIF/CRDYRES,READYRESET,CLK,X1 X2,8086/8088,CLK,RESETREADY,控制总线,4.3.3 最大工作模式,最大模式“大”在哪里?处理器数目由1个变为多个(增加8087、8089等)因此,控制信号更加复杂需要解决主处理器与协处理器之间的协同工作以及对总线共享的控制问题,4.3.3 最大工作模式,8086最大工作模式第24-31引脚的含义,4.3.3 最大工作模式,指令队列状态信号,4.3.3 最大工作模式,总线周期状态对应操作,4.3.3 最大工作模式,总线控制器8288,状态译码器,控制电路,命令信号发生器,控制信号发生器,状态信号,控制输入,总线命令信号,总线控制信号,相当于WR和M/IO的组合,4.3.3 最大工作模式,总线仲裁控制器8289总线控制器8288完成CPU状态到总线状态的译码根据当前CPU的工作需要向总线发出各种控制信号(好比交通信号灯)总线仲裁控制器8289则是在多处理机的情况下决定各个处理机对总线的使用权,实现多处理机合理地共享外部总线(好比交通调度中心),4.4 8086/8088的主要操作功能,系统的复位和启动操作总线操作最小模式下的总线读操作最小模式下的总线写操作中断操作最小工作模式下的总线保持,4.4.1 系统的复位和启动操作,复位和启动信号要求从 RESET 引脚输入复位信号:至少4个时钟周期的高电平(开机)启动信号:大于50us的高电平,4.4.1 系统的复位和启动操作,信号时序,CLK,4.4.1 系统的复位和启动操作,复位时的机器状态CPU停止执行指令输出线处于高阻态(三态线)或无效状态(非三态线)指令队列清空CS寄存器置为FFFFH,其余寄存器全部清零,4.4.1 系统的复位和启动操作,复位后开始执行指令的过程RESET 信号恢复为低电平(RESET信号保持高电平期间CPU保持停机状态)触发复位逻辑电路,7个时钟周期后从FFFF0H 处开始执行程序该地址指向的存储单元位于BIOS中,实际上就是启动BIOS中的上电自检(POST)程序,然后BIOS将引导磁盘0扇区的代码调入内存,开始启动OS,4.4.2 最小模式下的总线读写操作,T1 T2 T3 T4,CLK,ALE,M/IO,A19A16S6S3,AD15AD0,T1 状态1.M/IO信号有效并持续整个总线周期2.A0-A19输出地址3.BHE信号有效4.ALE下降沿到来,锁存地址及BHE信号,T2 状态地址信号消失A19/S6-A16/S3输出状态信息A0-A19高阻RD信号有效数据收发器控制信号有效,T3 状态D0-D15数据有效2.T3前沿检测READY信号,决定是否插入Tw周期,T4 状态在与前面一个状态交界的下降沿处采样数据信号,想一想8088有何不同?,4.4.2 最小模式下的总线读写操作,具有等待状态的总线读操作,CLK,ALE,M/IO,A19A16S6S3,AD15AD0,READY,4.4.2 最小模式下的总线读写操作,最小模式下的总线写操作,T1 T2 T3 T4,CLK,ALE,M/IO,A19A16S6S3,WR,AD15AD0,想一想写操作和读操作有哪些异同?,4.4.3 中断操作,中断概述什么是中断?CPU处理随机(突发)事件的方法和过程随机(突发)事件:电源故障用户要求访问外部设备除数为0、运算结果溢出,4.4.3 中断操作,一个实际生活中的例子某人看书 执行主程序 正常程序电话铃响 产生中断信号INTR 中断请求暂停看书 暂停执行主程序 中断响应书中作记号 当前CS/IP入栈 保护断点接听电话 执行中断服务程序 中断服务继续看书 返回主程序 中断返回,4.4.3 中断操作,4.4.3 中断操作,中断的特点与用途即保证CPU的高工作效率,又能及时处理突发事件用途:分时系统实时系统故障处理输入输出系统程序控制(查询)方式中断方式DMA(直接内存存取)方式通道方式,4.4.3 中断操作,中断的概念所谓中断,是一个过程,即CPU在正常执行程序的过程中,遇到外部或内部(硬件或软件产生)的紧急事件需要处理,暂时中断当前程序的执行,而转去为事件服务,待服务完毕,再返回到暂停处(断点)继续执行原来的程序产生需处理的事件的程序或设备称为中断源为事件服务的程序称为中断服务程序或中断处理程序中断源向CPU发出请求信号称为中断请求(NMI、INTR)CPU接受中断源的请求称为中断响应(INTA),4.4.3 中断操作,中断的分类硬件中断(外部中断)(中断源为外部硬件电路)非屏蔽中断(通过NMI引脚发送中断请求信号)该类中断整个系统中只有一个只要有请求,CPU会无条件响应通常用于严重事故(如电源异常)的处理可屏蔽中断(通过INTR引脚发送中断请求信号)该类中断可以有多个CPU是否响应该类中断,取决与中断允许标志IF的状态通常用于一般外部设备的常规操作(如输入输出等),4.4.3 中断操作,中断的分类软件中断(内部中断)(中断源来自CPU内部)可以由特定的指令(INT n)产生也可由标志寄存器中的标志状态变化(如溢出标志由0变为1)产生与硬件电路无关,4.4.3 中断操作,INT n 指令,中断逻辑,INT3指令,INT1指令,单步中断,除数为0中断,非屏蔽中断请求,可屏蔽中断请求,软中断,硬中断,NMI,INTR,256种中断,4.4.3 中断操作,中断向量(中断处理程序的入口地址)8086的内存中0000:0000H 至 0000:03FFH 共1024个内存单元的区域为 中断向量表每个中断向量占4个内存单元,4.4.3 中断操作,例:类型号为17H的中断处理子程序存放在2345:7890H开始的内存区域中17H号中断的中断向量存放地址是什么?该中断向量中四个内存单元的内容分别是什么?中断向量起始地址=中断号4,CS:高字节:23H,CS:低字节:45H,IP:高字节:78H,IP:低字节:90H,0000:005FH,0000:005EH,0000:005DH,0000:005CH,4.4.3 中断操作,中断向量表的分配总容量:256个中断向量类型0类型4:专用中断(0000H0013H)0:除数为0中断1:单步中断2:非屏蔽中断3:断点中断4:溢出中断,4.4.3 中断操作,中断向量表的分配类型5类型31:保留中断(0014H007EH)保留给系统使用,用户一般不应使用其余244个:供用户自定义使用,4.4.3 中断操作,可屏蔽中断的响应条件有中断请求(INTR引脚为高电平)中断允许标志IF=1当前指令已执行完毕,4.4.3 中断操作,结束当前指令,内部中断?,非屏蔽中断?,非屏蔽中断?,执行下一指令,IF=1?,取中断类型码,中断过程,是,是,是,是,否,否,否,否,4.4.3 中断操作,中断过程,标志入栈,TEMP=TF,IF、TF清0,CS、IP入栈,转入中断服务程序,有NMI?,TEMP=1?,执行中断服务程序,弹出CS、IP,弹出标志,返回断点,是,是,否,否,4.4.3 中断操作,一般的中断流程,4.4.3 中断操作,中断的优先级与中断嵌套,主程序,中断1,中断2,4.4.3 中断操作,可屏蔽中断响应时序每个指令的最后一个T采样INTR若INTR为高并且IF=1开始执行两个中断响应周期第一个周期发出INTA负脉冲,通知中断源:CPU准备响应中断,请其准备好中断类型码2-3个空闲状态后,开始第二个周期再次发出INTA负脉冲,此时中断源将发出一个8位的中断码,4.4.3 中断操作,T1 T2 T3 T4 T1 T1 T1 T1 T2 T3 T4,三个空闲状态,LCK,ALE,AD7AD0,中断类型,4.4.3 中断操作,中断码左移2位(4)得到中断向量起始地址执行一个总线写周期,标志寄存器入栈修改标志寄存器,将TF和IF清0执行一个总线写周期,将CS内容入栈执行一个总线写周期,将IP内容入栈执行一个总线读周期,读取中断向量低两字节的IP执行一个总线读周期,读取中断向量高两字节的CS如果是软件中断或非屏蔽中断,则直接从第二步开始,4.4.3 中断操作,软件中断8086具有一条中断指令“INT 中断码”该指令的功能是触发中断向量=中断码4的中断特点:“三不”不需要执行中断响应总线周期不从数据总线读取中断类型码不受中断允许标志IF的影响软件中断的优先级一般较非屏蔽和可屏蔽中断低,4.4.4 最小模式下的总线保持,CPU对其他部件总线使用权的管理当其他部件需要使用总线时,需要向CPU申请通过HOLD引脚向CPU发出申请信号CPU在每个时钟上升沿检测HOLD引脚信号若为高电平且CPU此时没有使用总线则在T4或T1空闲状态后的下一个时钟周期发出HLDA信号,让出总线使用权知道HOLD引脚恢复低电平,则收回总线,4.4.4 最小模式下的总线保持,CLK,HOLD,HLDA,所有三态总线,