微处理器及其系统_第1页
微处理器及其系统_第2页
微处理器及其系统_第3页
微处理器及其系统_第4页
微处理器及其系统_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

关于微处理器及其系统第1页,共47页,2023年,2月20日,星期四

30多年来,在微处理器领域,Intel系列CPU一直占着主导地位。尽管8086/8088后续的80286、80386、80486以及Pentium系列CPU结构与功能已经发生很大变化,但从基本概念与结构以及指令格式上来讲,它们仍然是经典的8086/8088CPU的延续与提升。第2页,共47页,2023年,2月20日,星期四3.18086/8088微处理器

8086是Intel系列的16位微处理器。

8086有16根数据线和20根地址线,可以处理8位或16位数据,寻址1MB的存储单元和64KB的I/O端口。 在推出8086之后不久,Intel公司还推出了准16位微处理器8088。8088的内部寄存器、运算器以及内部数据总线都是按16位设计的,但外部数据总线只有8条。这样设计的目的主要是为了与Intel原有的8位外围接口芯片直接兼容。在本节中,对8088也将加以说明。第3页,共47页,2023年,2月20日,星期四3.1.1

8086/8088CPU的内部结构

从功能上讲,8086可分为两个部分,即总线接口单元BIU(BusInterfaceUnit)和执行单元EU(ExecutionUnit)。

具体组成见下一页图:第4页,共47页,2023年,2月20日,星期四AHALAXBHBLBXCHCLCXDHDLDXSPBPDISI通用寄存器暂存寄存器ALU标志执行部分控制电路123456CSDSSSESIP内部暂存器总线控制电路地址加法器AB20位16位DB8位队列总线指令队列缓冲器8086数据总线16位执行部件(EU)总线接口部件(BIU)8086CPU结构图ALU数据总线16位

BIU内有4个16位段地址寄存器CS(代码段寄存器,CodeSegment)、DS(数据段寄存器,DataSegment)、SS(堆栈段寄存器,StackSegment)和ES(附加段寄存器,ExtraSegment),16位指令指针IP,6字节指令队列缓冲器,20位地址加法器和总线控制电路。(1)16位算术逻辑单元(ALU):

(2)16位标志寄存器F:

(3)数据暂存寄存器:

(4)通用寄存器组:

(5)EU控制电路:第5页,共47页,2023年,2月20日,星期四(一)总线接口单元BIU

功能:完成CPU与存储器或I/O设备之间的数据传送(1)从内存取指令送到指令队列。(2)CPU执行指令时,配合EU从指定的内存单元或者外设端口中取数据,将数据传送给EU,或者把EU的操作结果传送到指定的内存单元或外设端口中。

第6页,共47页,2023年,2月20日,星期四

1)指令队列缓冲器:

8086的指令队列为6个字节,而8088的指令队列为4个字节。在执行指令的同时,从内存中取下面1条或几条指令,取来的指令依次放在指令队列中。

“先进先出”的原则:

(1)取指时当指令队列缓冲器中存满1条指令后,EU执行。

(2)指令队列缓冲器中只要空出2个(对8086)或空出1个

(对8088)指令字节时,BIU自动执行取指操作,直到

填满。

第7页,共47页,2023年,2月20日,星期四(3)在EU执行指令的过程中,指令需要对存储器或I/O设备

存取数据时,BIU将在执行完现行取指的存储器周期后的

下一个存储器周期,对指定的内存单元或I/O设备进行

存取操作,交换的数据经BIU由EU进行处理。(4)当EU执行完转移、调用和返回指令时,则要清除指令队

列缓冲器,并要求BIU从新的地址重新开始取指令,新取

的第1条指令将直接经指令队列送到EU去执行,随后取来

的指令将填入指令队列缓冲器。第8页,共47页,2023年,2月20日,星期四2)地址加法器和段寄存器:

8086有20根地址线,内部寄存器有16位,采用了16位的段寄存器与16位的偏移地址即“段加偏移”的技术。 利用各段寄存器分别来存放确定各段的起始地址的16位段地址信息,而由IP提供或由EU按寻址方式计算出寻址单元的16位偏移地址(又称为逻辑地址或简称为偏移量),然后,将它与左移4位后的段寄存器的内容同时送到地址加法器进行相加,最后形成一个20位的实际地址(又称为物理地址),以对存储单元寻址。第9页,共47页,2023年,2月20日,星期四+段寄存器值偏移量物理地址16位4位16位20位存储器物理地址的计算方法+逻辑地址物理地址第10页,共47页,2023年,2月20日,星期四如何计算物理地址?要形成某指令码的物理地址(即实际地址),就将IP的值与代码段寄存器CS(CodeSegment)左移4位后的内容相加。【例3.1】假设CS=4000H,IP=0300H,则指令的物理地址PA=4000H×16+0300H=40300H。第11页,共47页,2023年,2月20日,星期四3)16位指令指针IP(InstructionPointer)

其功能与8位CPU中的PC类似。正常运行时,IP中含有BIU要取的下1条指令(字节)的偏移地址。IP在程序运行中能自动加1修正,使之指向要执行的下1条指令(字节)。第12页,共47页,2023年,2月20日,星期四2.执行单元EU

执行单元EU并不与系统的总线控制电路直接相连。EU的功能只是负责执行指令;执行的指令从BIU的指令队列缓冲器中取得,执行指令的结果或执行指令所需要的数据,都由EU向BIU发出请求,再由BIU经总线控制电路对存储器或外设存取。

EU由下列部分组成。第13页,共47页,2023年,2月20日,星期四(1)16位算术逻辑单元(ALU):

它可以用于进行算术、逻辑运算,也可以按指令的

寻址方式计算出寻址单元的16位偏移量。(2)16位标志寄存器F:

它用来反映CPU运算的状态特征或存放控制标志。(3)数据暂存寄存器:

它协助ALU完成运算,暂存参加运算的数据。(4)通用寄存器组:

它包括4个16位数据寄存器AX、BX、CX、DX和4个16位指针与变址寄存器SP、BP与SI、DI。第14页,共47页,2023年,2月20日,星期四(5)EU控制电路:它是控制、定时与状态逻辑电路,接收从BIU中指令队列取来的指令,经过指令译码形成各种定时控制信号,对EU的各个部件实现特定的定时操作。

EU中所有的寄存器和数据通道(除队列总线为8位外)都是16位的宽度,可实现数据的快速传送。

8088CPU内部结构与8086的基本相似,只是8088BIU中指令队列长度为4个字节;8088BIU通过总线控制电路与外部交换数据的总线宽度是8位,总线控制电路与专用寄存器组之间的数据总线宽度也是8位。第15页,共47页,2023年,2月20日,星期四8086/8088的内部寄存器编程结构共有13个16位寄存器和1个只用了9位的标志寄存器。3.1.28086/8088的寄存器结构AXAHAL累加器BXBHBL基址寄存器CXCHCL计数寄存器DXDHDL数据寄存器SP堆栈指针BP基址指针SI源变址寄存器DI目的变址寄存器IP指令指针FLAGS标志寄存器CS代码段寄存器DS数据段寄存器ES附加段寄存器SS堆栈段寄存器Accumulator

Base

Count

Data

StackPointer

BasePointer

SourceIndex

DestinationIndex

InstructionPointerCodeSegment

DataSegment

StackSegment

ExtraSegment

第16页,共47页,2023年,2月20日,星期四1.通用寄存器(1)数据寄存器: 执行单元EU中有4个16位数据寄存器AX、BX、CX和DX.每个数据寄存器分为高字节H和低字节L,它们均可作为8位数据寄存器独立寻址,独立使用。

数据寄存器是用在算术运算或逻辑运算指令中,用来进行算术逻辑运算。在有些指令中,它们则有特定的用途:如AX作累加器;BX作基址寄存器,在查表指令XLAT中存放表的起始地址;CX作计数寄存器,在使用带有重复前缀(如REP)的数据串操作指令中用来存放数据串元素的个数;DX作数据寄存器,在字的除法运算指令DIV中存放余数。第17页,共47页,2023年,2月20日,星期四(2)指针寄存器和变址寄存器:

指针寄存器是指堆栈指针寄存器SP和堆栈基址指针寄存器BP,简称为P组。变址寄存器是指源变址寄存器SI和目的变址寄存器DI,简称为I组。它们都是16位寄存器,一般用来存放偏移地址。

指针寄存器SP和BP都用来指示存取位于当前堆栈段中的数据所在的地址,但SP和BP在使用上有区别。入栈(PUSH)和出栈(POP)指令是由SP给出栈顶的偏移地址,故称为堆栈指针寄存器。而BP则是存放位于堆栈段中的一个数据区基地址的偏移地址,故称为堆栈基址指针寄存器。显然,由SP所指定的堆栈存储区的栈顶和由BP所指定的堆栈段中某一块数据区的首地址是两个不同的意思,不可混淆。第18页,共47页,2023年,2月20日,星期四2.段寄存器

8086/8088CPU有20条地址线,具有寻址1MB存储空间。8086/8088指令中给出的地址码仅有16位,指针寄存器和变址寄存器也只有16位长,不能直接寻址1MB大小的内存空间。

第19页,共47页,2023年,2月20日,星期四

在8086/8088CPU内部设计了一组16位的段寄存器,用这些段寄存器的内容作为段地址,再由段寄存器左移4位形成20位的段起始地址,被称为段基地址或段基址;这样,8086/8088就有可能寻址1MB存储空间并将其分成为若干个逻辑段,使每个逻辑段的长度为64KB(它由16位的偏移地址限定)。第20页,共47页,2023年,2月20日,星期四CS0000IP代码段DS或ES0000SI、DI或BXSS0000SP或BP数据段堆栈段存储器段寄存器和偏移地址寄存器组合关系第21页,共47页,2023年,2月20日,星期四3.标志寄存器

标志寄存器F:9位作标志位,即6个状态标志位,3个控制标志位。

(1)CF(CarryFlag)进位标志:当执行一个加法或减法运算使最高位产生进位或借位时,则CF为1;否则为0。(2)PF(ParityFlag)奇偶性标志:当指令执行结果的低8位中含有偶数个“1”时,则PF为 1;否则为0。D15D0OFDFIFTFSFZFAFPFCF(3)AF(AuxiliaryCarryFlag)辅助进位标志:1-低4位向高4位有进、借位0-低4位向高4位无进、借位第22页,共47页,2023年,2月20日,星期四(4)ZF(ZeroFlag)零标志:

零标志表示一个算术或逻辑操作的结果是否为零。若当前的运算结果为零,ZF为1;否则为0。(5)SF(SignFlag)符号标志:

符号标志保持算术或逻辑运算指令执行后结果的算术符号。它和运算结果的最高位相同。(6)OF(OverflowFlag)溢出标志:

溢出标志用于判断在有符号数进行加法或减法时是否可能出现溢出。第23页,共47页,2023年,2月20日,星期四控制标志有3个,用来控制CPU的操作,由程序设置或清除。(1)DF(DirectionFlag)方向标志:

它用来控制数据串操作指令的步进方向。1:数据串操作过程中地址会自动递减;0:数据串操作过程中地址会自动递增。(2)IF(InterruptEnableFlag)中断允许标志:

控制可屏蔽中断的标志。1:表示允许8086/8088CPU接受外部从其INTR引脚上发来的可屏蔽中断请求信号;0:禁止CPU接受外来的可屏蔽中断请求信号。IF的状态不影响非屏蔽中断(NMI)请求,也不影响CPU响应内部的中断请求。(3)TF(TrapFlag)跟踪(陷阱)标志:

若将TF标志置为1,则8086/8088CPU处于单步工作方式;否则,将正常执行程序。第24页,共47页,2023年,2月20日,星期四3.1.3总线周期的概念

总线周期:CPU通过总线与存储器或I/O接口进行一次数据传输所需的时间。一个最基本的总线周期由4个时钟周期组成。T状态(时钟周期):CPU处理动作的最小单位。由CPU主频决定。CPU在4个状态中的基本作用:1、T1状态:CPU往多路复用总线上发送地址信息,以选中所要寻址的存储单元或外设端口的地址。(A19-A0)2、T2状态:从总线上撤销地址,并使总线的低16位浮置成高阻状态,为传送数据做准备。总线高4位(A19-A16)用来输出本总线周期的状态信息(S6-S3)。第25页,共47页,2023年,2月20日,星期四3、T3状态:多路总线的高4位继续提供状态信息(S6-S3),而低16/8位上出现由CPU写出或读入的数据(D15/D7-D0).4、在有些情况下,由于外设或者存储器的速度较慢,不能及时地配合CPU传送数据。READY=0时,CPU会在T3之后自动插入1个或多个TW等待状态,此时CPU在总线上的信息情况和T3状态的信息情况一样。当READY=1时,CPU自动脱离TW状态进入T4状态。5、T4状态:总线周期结束T1T2T3TWT4总线周期第26页,共47页,2023年,2月20日,星期四01020304050607080910111213141516171819204039383736353433323130292827262524232221GNDAD14/A14AD13/A13AD12/A12AD11/A11AD10/A10AD9/A9AD8/A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCC(5V)AD15/A15A16/S3A17/S4A18/S5A19/S6/BHE/S7

HIGH(SSO)MN//MX/RDHOLD(/RQ//GT0)HLDA(/RQ//GT1)/WR(/LOCK)M//IO(/S2)DT//R(/S1)/DEN(/S0)ALE(QS0)/INTA(QS1)/TESTREADYRESET8086/80883.1.48086/8088的引脚信号和功能第27页,共47页,2023年,2月20日,星期四(8086/8088)A15-A0:单向输出,三态。(8086)D15-D0:双向,三态。(8088)D7-D0:双向,三态。复用总线、分时工作,T1状态:输出地址信息;T2状态:高阻;T3状态:传输数据;T4状态:结束总线周期1、地址/数据总线AD15-AD0第28页,共47页,2023年,2月20日,星期四分时工作,T1状态:输出地址的高4位信息;T2、T3、T4状态:输出CPU的工作状态信息。当访问存储器时,T1状态时输出的A19-A16送到锁存器8282锁存,与AD15-AD0组成20位的地址;而访问I/O端口时候,A19-A16=0S6:指示8086/8088当前是否与总线相连,S6=0表示相连。S5:表明中断允许标志IF当前的设置。S5=0,表示CPU中断是关闭的,禁止一切可屏蔽中断源的中断请求;S4、S3:指示当前使用哪个段寄存器。(见P49,表3.2)2、地址/状态总线A19/S6-A16/S3复用引脚,输出,三态。第29页,共47页,2023年,2月20日,星期四(1)、/S7(Bushighenable/Status):高8位数据总线允许/状态复用引脚。T1状态:输出信号,表示高8位数据线D15-D8上的数据有效。T2-T4状态时:输出S7状态信号。3、控制总线A0总线使用情况

00从偶地址单元开始,在16位数据总线上进行字传送01从奇地址单元开始,在高8位数据总线上进行字节传送10从偶地址单元开始,在低8位数据总线上进行字节传送11无效S7:8086中无定义,备用状态线。P56页图3.11第30页,共47页,2023年,2月20日,星期四(2)、:(Read)读信号,三态输出,低电平有效。/RD=0,表示当前CPU正在对存储器或I/O端口进行读操作。(3)、:(Write)写信号,三态输出,低电平有效。(4)、:(Memory/IO)存储器或IO端口访问信号,三态输出。=1,表示CPU正在访问存储器;(5)、READY:准备就绪信号,输入,高电平有效。READY=1,表示CPU访问的存储器或I/O端口已准备好传送数据。若CPU在总线周期T3状态检测到READY=0,表示未准备好,CPU自动插入一个或多个等待状态TW,直到READY=1为止。第31页,共47页,2023年,2月20日,星期四和中断有关的引脚

INTR可屏蔽中断请求信号输入,高电平有效。当INTR=1,表示外设向CPU发出中断请求若此时,IF=1,CPU响应中断中断响应信号输出。表示CPU响应了外设发来的中断请求信号INTR。NMI不可屏蔽中断请求信号输入,上升沿触发。一旦该信号有效,则执行完当前指令后立即响应中断。该请求信号不受IF状态的影响,也不能用软件屏蔽,InterruptRequestInterruptAcknowledgeNon-MaskableInterruptRequest第32页,共47页,2023年,2月20日,星期四(9)、:等待测试信号,输入,低电平有效。用于多处理器系统且在执行WAIT指令时才使用。当CPU执行WAIT指令时,每隔5个时钟周期对进行一次测试,若=1,继续等待,直到=0。(10)、RESET:复位信号,输入,高电平有效。RESET信号至少要保持4个时钟周期。复位时:标志寄存器、IP、DS、SS、ES为0,CS=FFFFH,复位后CPU从FFFF0H处开始执行。(11)、ALE:(AddressLatchEnable)地址锁存允许信号,输出,高电平有效。用来锁存地址信号A15-A0,分时使用AD15-AD0地址/数据总线。第33页,共47页,2023年,2月20日,星期四(12)、:(DataTransmit/Receive)数据发送/接收控制信号,三态输出。此信号控制数据总线上的收发器8286的数据传送方向,=1,发送数据----写操作;=0,接收数据--读操作。(13)、:(DataEnable)数据允许信号,三态输出,低电平有效。作为数据总线上收发器8286的选通信号。(14)、HOLD:(Holdrequest)总线请求信号,输入,高电平有效。当系统中CPU之外的另一个控制器要求使用总线时,通过它向CPU发一高电平的请求信号。(15)、HLDA:(HoldAcknowledge)总线请求响应信号,输出,高电平有效。当HLDA有效时,表示CPU对其它控制器的总线请求作出响应,与此同时,所有与三总线相接的CPU的线脚呈现高阻抗状态,从而让出总线。第34页,共47页,2023年,2月20日,星期四(16)、:(Minimun/Maximum)工作模式选择信号,输入。=1,表示CPU工作在最小模式系统;=0,表示CPU工作在最大模式系统。(17)、CLK:(Clock)主时钟信号,输入。8086/8088的时钟频率为5MHZ。4、电源线和地线8086/8088采用单+5V,1、20引脚为地线。40引脚为电源第35页,共47页,2023年,2月20日,星期四3.2

8086/8088系统的最小/最大工作方式 由8086/8088CPU构成的微机系统,有最小方式和最大方式两种系统配置。3.2.1最小方式

当MN/MX接电源电压时,系统工作于最小方式,即单处理器系统方式,它适合于较小规模的应用。 第36页,共47页,2023年,2月20日,星期四8284A为时钟发生/驱动器;8282为8位地址锁存器;8286为具有三态输出的8位数据总线收发器。第37页,共47页,2023年,2月20日,星期四3.2.2最大方式

8086与8088也都可以按最大方式来配置系统。当MN/线接地,则系统就工作于最大方式了。最大方式系统与最小方式系统的主要区别是外加有8288总线控制器,通过它对CPU发出的控制信号进行变换和组合,以得到对存储器和I/O端口的读/写信号和对锁存器8282及对总线收发器8286的控制信号,使总线控制功能更加完善。通常,在最大方式系统中,一般包含2个或多个处理器。第38页,共47页,2023年,2月20日,星期四最大方式第39页,共47页,2023年,2月20日,星期四/S2、/S1、/S0:总线周期状态信号,三态输出。

/S2、/S1、/S0状态信号的编码/S2/S1/S0操作过程产生信号000发中断响应信号/INTA001读I/O端口IORC010写I/O端口IOWC011暂停无100取指令/MRDC101读存储器/MRDC110写存储器/MWTC111无作用无第40页,共47页,2023年,2月20日,星期四3.38086/8088的存储器3.3.1存储器组织

8086/8088有20条地址线,可寻址1MB的存储空间。存储器仍按字节组织,每个字节只有惟一的一个地址。若存放的信息是8位的字节,将按顺序存放;若存放的数为1个字时,则将字的低位字节放在低地址中;当存放的是双字形式(这种数一般作为指针),其低位字是被寻址地址的偏移量;高位字是被寻址地址所在的段地址。 第41页,共47页,2023年,2月20日,星期四3.3.2存储器的分段

8086/8088CPU的指令指针I

温馨提示

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

评论

0/150

提交评论