第2章微处理器_第1页
第2章微处理器_第2页
第2章微处理器_第3页
第2章微处理器_第4页
第2章微处理器_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

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

文档简介

第2章微处理器微处理器,又称中央处理单元(CentralProcessingUnit,CPU)是采用大规模(LSI)或超大规模集成电路(VLSI)技术制成的半导体芯片。它将控制单元,寄存器组,算术逻辑单元(ALU)及内部总线集成在芯片上,组成具有运算器和控制器功能的部件。2.18086微处理器的结构8086是Intel系列的第三代16位微处理器,采用了HMOS高密度工艺,每片集成4万多只晶体管,单一+5v电源,主频为5MHz/10MHz。它的内部和外部的数据总线宽度是16位,地址总线宽度20位,可导址空间达220,即1MB。2.1.18086的功能结构

8086微处理器的内部功能结构(如图)由两个独立的工作部件——执行部件EU(ExecutionUnit)和总线接口部件BIU(BusInterfaceUnit)构成:1.执行部件EU:由运算器、寄存器组、控制器等组成,负责指令的执行

2.总线接口部件BIU:由指令队列、地址加法器、总线控制逻辑等组成,负责与系统总线打交道数据寄存器指针和变址寄存器AHALBHBLCHCLDHDLSPBPSIDIAXBXCXDX暂存寄存器ALU标志寄存器FREU控制器ALU数据总线(16位)指令队列缓冲器123456总线控制逻辑8086总线地址加法器CSDSSSESIP内部暂存器AB(20位)执行部件(EU)总线接口部件(BIU)DB(16位)(8位)队列总线

8086CPU的内部功能结构框图1.执行部件EU

(1)EU的功能:A.从BIU的指令队列缓冲器中取出指令,由EU控制器的指令译码器译码产生相应的操作控制信号给各部件B.对操作数进行算术运算和逻辑运算,并将运算结果的状态特征保存到状态寄存器FR中C.EU不直接与CPU外部系统相连,当需要与主存储器或I/O设备交换数据时,EU向BIU发出命令,并提供给BIU16位有效地址及所需传送的数据(2)执行部件EU的组成A.EU由算术逻辑单元ALUB.通用数据寄存器组C.地址指针和变址寄存器D.标志寄存器E.数据暂存寄存器F.EU控制器组成(3)EU的特点:A.通用数据寄存器AX,BX,CX,DX,既可以作16位寄存器使用,也可以分成高、低8位分别作两个8位寄存器使用。地址指针BP,SP和变址寄存器SI,DI都是16位寄存器。B.ALU的核心是16位二进制加法器C.16位状态标志寄存器(7位未用)存放操作后的状态特征和设置的控制标志。如下图所示:D.EU控制器是执行指令的控制电路,实现从队列中取指令、译码、产生控制信号等。D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0CFPFAFZFSFTFIFDFOFPSW

2.总线接口部件BIU(1)

BIU的功能:1)BIU从主存取指令送到指令队列缓冲器2)CPU执行指令时,总线接口单元要配合EU从指定的主存单元或外设端口中取数据,将数据传送给EU或把EU的操作结果传送到指定的主存单元或外设端口中3)计算并形成访问存储器的20位物理地址(3)BIU的组成:1)4个16位段寄存器2)16位指令指针寄存器3)20位物理地址加法器4)6字节指令队列及总线控制逻辑

(3)BIU的特点:1)指令队列是由6个字节的寄存器组成(8088指令队列由4个字节组成),采用“先进先出”原则。2)地址加法器是用来产生20位存储器物理地址的。物理地址的计算公式为:物理地址(20位)=段基址(16位)×16+偏移地址(16位)3)8086分配20条引脚线分时传送20位地址,16位数据和4位状态信息。2.1.28086的寄存器结构8086CPU内部设有三组信息寄存器(通用数据寄存器组,地址指针和变址寄存器,段寄存器组)和一个标志寄存器(指令指针寄存器IP)。1.通用数据寄存器EU中设置了四个16位通用寄存器,它们分别是AX,BX,CX和DX。它们可以拆成两个独立的8位寄存器使用。通用寄存器可参与算术和逻辑运算,但它们还有各自特殊的用途。它们的具体用法如图所示:寄存器一般用法隐含用法AX16位累加器(Accumulator)字乘时提供一个操作数并存放积的低字;字除时提供被除数的低字并存放商ALAX的低8位字节乘时提供一个操作数并存放积的低字节;字节除时提供被除数的低字节并存放商;BCD码运算指令和XLAT指令中作累加器;字节I/O操作中存放8位输入/输出数据AHAX的高8位字节乘时提供一个操作数并存放积的高字节;字节除时提供被除数的高字节并存放余数;LAHF指令中充当目的操作数BX基址(Base)寄存器,支持多种寻址,常用作地址寄存器XLAT指令中提供被查表格中源操作数的间接地址CX16位计数器(Counter)串操作时用作串长计数器;循环操作中用作循环次数计数器CL8位计数器移位或循环移位时用作移位次数计数器DX16位数据(Data)寄存器在间接寻址的I/O指令中提供端口地址;字乘时存放积的高字,字除时提供被除数高字并存放余数表2-18086中通用寄存器的一般用法和隐含用法2.指针及变址寄存器(4个16位寄存器)EU中有两个地址指针寄存器和两个变址寄存器,它们分别为:SP(StackPointer),堆栈指针寄存器BP(BasePointer),基址指针寄存器SI(SourceIndex),源变址寄存器DI(DestinationIndex),目的变址寄存器它们的应用如图所示:寄存器一般用法隐含用法SP堆栈指针(StackPointer),与SS配合指示堆栈栈顶的位置压栈、出栈操作中指示栈顶BP基址指针(BasePointer),它支持间接寻址、基址寻址、基址加变址等多种寻址手段。在子程序调用时,常用它来取压栈的参数SI源变址(SourceIndex)寄存器。它支持间接寻址、变址寻址、基址加变址寻址等多种寻址串操作时用作源变址寄存器,指示数据段(段默认)或其他段(段超越)中源操作数的偏移地址DI目的变址(DestinationIndex)寄存器。它支持间接寻址、变址寻址、基址加变址寻址等多种寻址串操作时用作目的变址寄存器,指示附加段(段默认)中目的操作数的偏移地址表2-28086中地址寄存器的一般用法和隐含用法8086寄存器的特别说明:(1)8086的堆栈及堆栈操作有以下特点:双字节操作。即每次进、出栈的数据均为两字节。且高位字节对应高地址,低位字节对应低地址。无论是源操作数还是目的操作数,也无论是存储器操作数还是寄存器操作数,都必须按这个原则执行。堆栈向低地址方向生成。数据每次进栈时堆栈指针SP向低地址方向移动(减2);反之,数据出栈时,SP向高地址方向移动(加2)(2)BP、BX都被称为基址指针,但两者用法不同。BP只能寻址堆栈段(段缺省),不允许段跨越;BX可以寻址数据段(段缺省),也可以寻址附加段(段跨越)。(3)由于大多数算术和逻辑运算中又可以使用BP、SP和变址寄存器,因而也将这4个寄存器归入通用寄存器组。使用中应该注意这4个寄存器只能用于16位的存取操作3.段寄存器8086CPU中有4个段寄存器,用于存放当前程序所用的各段的起始地址,也称为段的基地址。1.代码段寄存器CS(CodeSegment)其内容左移4位再加上指令指针IP的内容,就形成下一条要执行的指令存放的实际物理地址。2.数据段寄存器DS(DataSegment)DS中的内容左移4位再加上按指令中存储器寻址方式计算出来的偏移地址,即为数据段指定的单元进行读写的地址。3.堆栈段寄存器SS(StackSegment)堆栈是按“后进先出”原则组织的一个特别存储区。操作数的存放地址是由SS的内容左移4位再加上SP的内容而形成的。4.附加段寄存器ES(ExtendedSegment)附加段是在进行字符串操作时作为目的区地址使用的一个附加数据段。在字符串操作指令中SI作为源变址寄存器,DI作为目的变址寄存器,其内容都是偏移地址。

SP,BP,SI,DI与段寄存器联用说明(1)SP,BP与SS联用→确定堆栈段中某一存储器单元的地址,SP用来表示栈顶的偏移地址,BP可作为堆栈区中的一个基地址以便访问堆栈中的其他信息。(2)SI,DI与DS联用→确定数据段中某一存储器单元的地址,SI和DI有自动增量和自动减量的功能。在串处理指令中,SI和DI作为隐含的源变址和目的变址寄存器,SI和DS联用,DI和ES联用,分别达到在数据段和附加段中寻址的目的。(3)DF为1,SI、DI减量,由高地址向低地址处理;DF为0,SI、DI增量,由低地址向高地址处理4.指令指针寄存器和标志寄存器(1)指令指针寄存器IP指令指针寄存器IP是一个16位的表示地址指针的寄存器(2)标志寄存器FR(FlagRegister)标志寄存器也称为程序状态字PSW(ProgramStatusWord)寄存器,它是一个16位的标志寄存器,但仅使用其中的9位。其中CF,OF,AF,ZF,SF,PF为6个状态标志位;DF,IF和TF为3个控制标志位。如下图所示:D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0CFPFAFZFSFTFIFDFOFPSW

图2-28086CPU标志寄存器

状态信息由中央处理机根据计算机的结果自动设置,6位状态位的意义说明如下:OF(OverFlag)溢出标志:溢出为1SF(SignFlag)符号标志:负为1,取最高有效位ZF(ZeroFlag)零标志:是0为1CF(CarryFlag)进位标志:右进位为1AF(AuxiliaryFlag)辅助进位标志:第3位右进位置1(半字节)PF(ParityFlag)奇偶进位标志:结果中1的个数位为偶数置1。控制信息由系统程序或用户程序根据需要用指令设置,控制标志(3个):DF(DirectionFlag)方向标志:DF为1,SI、DI减量,由高地址向低地址处理;DF为0,SI、DI增量,由低地址向高地址处理IF(InteruptFlag)中断标志:IF为1时允许中断TF(TrapFlag)陷阱标志(又叫跟踪标志):每执行一条指令就引起一个内部中断。用于单步方式操作,TF为1,指令执行完后产生陷阱,由系统控制计算机;TF为0,CPU不产生陷阱,正常工作.例题例1:MOVAX,1MOVBX,2ADDAX,BX

指令执行后,(AX)=3,OF=0,CF=0,ZF=0,SF=0例2:MOVAX,FFFFHMOVBX,1ADDAX,BX

指令执行后,(AX)=0,OF=0,CF=1,ZF=1,SF=02.1.38086的工作模式和引脚特性1.芯片引脚特性的描述引脚的功能即引脚信号的定义信号的有效电平指控制引脚使用有效时的逻辑电平。低电平有效的引脚名字上面加有一条横线,引脚名字上无横线者为高电平有效。另有一些引脚高、低电平均有效,分别表示不同的状态或数值。还有些引脚信号为边沿有效。信号流向芯片与其他部件的联系全靠在引脚上传送信息,这些信息可能自芯片向外输出,也可能从外部输入到芯片,还可能是双向的。引脚的复用为了以少量引脚提供更多的功能,会采用引脚复用的做法。三态能力“三态”能力是指有些引脚除了能正常输出或输入高、低电平外,还能输出高阻状态。当它输出高阻状态时,表示芯片实际上已放弃了对该引脚的控制,使之“浮空”。这样,与总线相连接的其它设备就可以获得对总线的控制权,系统转为接受总线的设备控制下工作。2.8086的工作模式8086有两种工作模式:最小模式和最大模式。(1)8086系统处于最小模式,就是系统中的CPU只有8086单独一个处理器。在这种系统中,所有总线控制信息都直接由8086产生,系统中总线控制逻辑电路被减到最少,这些特征就是最小模式名称的由来。最小模式适合于较小规模的系统。(2)在最大模式系统中有多个微处理器,其中必有一个主处理器8086,其他处理器称为协处理器或辅助处理器,承担某一方面的专门工作。3.8086的引脚特性VCCAD15A16/S3A17/S4A18/S5A19/S6BHE/S7MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS1)INTA(QS0)TESTREADYRESETGNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND123456789101112131415161718192040393837363534333231302928272625242322218086有40个引脚,其中第33(最小/最大模式)脚很关键,它是一条输入线,可以加高电平,也可以加低电平,由该线所加电平的高或低电平决定24-31引脚的功能(24-31引脚的功能取决于8086工作在最小模式还是最大模式)其他引脚不受第33引脚的影响,我们把这部分引脚称为一般引脚。最小模式引脚的功能定义直接点击相关引脚进入说明最大模式在最小模式系统中,全部控制信号由8086提供引脚图VCC,GND(电源,地):输入8086VCC接入的电压为+5V±10%GND有两条(1,20脚)CLK该时钟信号的占空比为33%(即1/3周期为低电平,2/3周期为高电平)。系统时钟为CPU和总线控制逻辑电路提供了时序基准(定时手段)。引脚图AD15-AD0(地址/数据):分时复用的存储器或端口的地址/数据总线。传送地址时为单向的三态输出,传送数据时可双向三态输入/输出。在总线周期的T1状态,输出要访问的存储器或I/O端口的地址;T2状态浮置成高阻状态,为传输数据做准备;在T3状态,用于传输数据;T4状态,结束总线周期。当CPU响应中断,DMA方式时,这些线处于浮空状态(高阻态)。注:直接存储器存取(DMA)方式,使数据的传送不经过CPU,由DMA控制器来实现内存与外设,或外设与外设之间的直接快速传送。引脚图A19--A16是地址的高4位,在T1输出地址。S6--S3是CPU的状态信号,在T2-T4时输出CPU状态当访问存储器时,T1输出的A19--A16与AD15--AD0组成20位地址信号而访问I/O端口时A19-A16=0000,AD15--AD0为16位地址信号状态信号的S6=0,表示当前8086与总线相连S5标志中断允许IF的状态S4和S3组合指示当前使用的段寄存器(00,01,10,11)分别指ES,SS,CS,DS在进行DMA方式时,A19-A16/S6-S3浮空引脚图BHEA0操作所用数据引脚00从偶地址读/写一个字AD15~AD010从偶地址读/写一个字节AD7~AD001从奇地址读/写一个字节AD15~AD80110从奇地址读/写一个字(分两个总线周期实现,首先作奇字节读/写,然后作偶字节读/写)AD15~AD8AD7~AD0引脚图ALE(AddressLatchEnable)是8086在每个总线周期的T1状态时发出的,作为地址锁存器的选通信号,表示当前地址/数据复用线上输出的是地址信息,要求进行地址锁存,注意ALE端不能被浮空。引脚图RD=0,表示8086为存储器或I/O端口读操作。当DMA时,此线浮空。WR=0,表示8086为存储器或I/O端口写操作。当DMA时,此线浮空。具体到底是读取存储器某地址单元的内容还是某输入设备输入端口的内容,这取决于M/IO信号。在最小模式中,信号M/IO、WR、RD组合起来决定了系统中数据传送方式引脚图引脚图引脚图RESET引起处理器立即结束现行操作。CPU结束当前操作后,对状态标志寄存器、IP、DS、SS、ES清零,而将CS设置为0FFFFH。当RESET=0时,CPU从0FFFFH开始执行程序。引脚图READY--准备好信号线,输入,高电平有效。当READY=1时,表示内存或I/O设备准备就绪,马上可以进行依次数据传输。CPU在每个总线周期的T3状态开始对READY进行采样,如READY=0,CPU在T3之后,自动插入一个或几个等待状态TW。一旦READY=1,才进入T4状态,完成数据传输过程,从而结束当前总线周期。引脚图TEST--等待测试信号,输入。用于多处理器系统中,且只有在执行WAIT指令时才使用。当CPU执行WAIT指令时,它就进入空转的等待状态,每隔5个时钟周期对该线的输入进行一次测试。若TEST=1,则CPU将停止取下条指令而继续等待,直至TEST=0。_____________________引脚图NMI(Non-MaskableInterrupt)中断请求不受中断允许标志位的影响,也不能用软件进行屏蔽只要此信号一有效,CPU就在现行指令结束后立即响应中断,进入非屏蔽中断处理程序引脚图INTR可屏蔽中断请求:输入,高电平有效。当INTR=1,表示外设提出了中断请求。CPU在执行每条指令的最后一个时钟周期采样此信号,若INTR=1且IF=1(中断允许),则响应中断。所谓中断,是指在CPU正常运行程序时,由于内部事件、外部事件或由程序预先安排的事件所引起的CPU暂时停止正在运行的程序,而转去执行请求CPU服务的内部/外部事件或预先安排事件的服务程序,待服务程序处理完毕后又返回去继续执行被暂停的程序,这个过程称为中断

引脚图INTA(InterruptAcknowledge)有效表示对INTR的外部中断请求作出响应,进入中断响应周期。INTA信号实际上是位于连续周期中的两个负脉冲,在每个总线周期的T2、T3和TW状态,INTA端为低电平。第一个负脉冲通知外部设备的接口,它发出的中断请求已经得到允许;外设接口收到第二个负脉冲后,往数据总线上放中断类型码(中断向量号),从而CPU便得到了有关此中断请求的详尽信息。____________________________引脚图HLDA(HoldAcknowledge)HOLD和HLDA是一对配合使用的总线联络信号。当系统中的其他总线主控部件要占用总线时,向CPU发HOLD=1总线请求。如果此时CPU允许让出总线,就在当前总线周期完成时,发HLDA=1应答信号,且同时使具有三态功能的地址/数据总线和控制总线处于浮空,表示让出总线。总线请求部件收到HLDA=1后,获得总线控制权,在这期间,HOLD和HLDA都保持高电平。当请求部件完成对总线的占用后,HOLD=0总线请求撤消,CPU收到后,也将HLDA=0。这时,CPU又恢复了对地址/数据总线和控制总线的占有权。引脚图最大模式24-31引脚的功能定义VCCAD15A16/S3A17/S4A18/S5A19/S6BHE/S7MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS1)INTA(QS0)TESTREADYRESETGNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND12345678910111213141516171819204039383736353433323130292827262524232221MN/MX=0,8086系统设置为最大模式在最大模式下,许多总线控制信号不是由8086直接产生的,而是通过总线控制器8288产生__返回S0,S1,S2

的组合表示CPU总线周期的操作类型。8288总线控制器依据这三个状态信号产生相关访问存储器和I/O端口的控制命令。下表给出S2,S1,S0对应的数据传输过程的类型。____________S2

S1

S0

操作过程000001010011100101110111发出中断响应信号读I/O端口写I/O端口暂停取指令读存储器(内存)写存储器(内存)无源状态(不起作用)返回QS1,QS0

指令队列状态QS1,QS0组合起来提供前一个时钟周期(指总线周期的前一个状态)中指令队列的状态标志,以便让外部对8086内部指令队列的动作跟踪QS0,QS1,组合与队列状态的对应关系见下表QS1QS0队列状态0

01

10

10

1无操作从队列缓冲器中取出指令的第一字节清除队列缓冲器从队列缓冲器中取出指令的第二字节以后部分返回RQ/GT1、RQ/GT0(总线请求/总线允许)分别是最大模式时裁决总线使用权的信号,可供CPU以外的两个处理器用来发出使用总线的请求信号和接收CPU对总线请求信号的回答信号RQ为输入信号,表示总线请求,GT为输出信号,表示总线允许,当它们两个同时有请求时,RQ/GT0

的优先权更高。当8086使用总线,其RQ/GT为高电平(浮空);这时若8087或8089要使用总线,它们就使RQ/GT0输出低电平(请求,相当于HOLD信号)。经8086检测,若总线处于开放状态,则8086输出的RQ/GT0变为低电平(允许,相当于HLDA信号),再经8087或8089检测出此允许信号,对总线进行使用。待使用完结,将RQ/GT0变成低电平(释放),8086再检测出该信号,又恢复对总线的使用。返回————————————————————————————————LOCK(总线封锁)信号是为避免多个处理器使用共有资源时产生冲突而设置的,为低电平表示CPU独占总线使用权。LOCK信号由指令前缀LOCK产生,在LOCK前缀后面的一条指令执行完后,便撤消了LOCK信号。此外,在8086的中断响应周期,LOCK信号也自动变为有效电平,以防止其他的总线主部件在中断响应过程中占有总线,而使一个完整的中断响应过程被间断。在DMA时,LOCK端处于浮空。_________________________________________________返回2.28086的系统组成和总线时序2.2.18086的系统组成1.系统组成的特点1)MN/MX端接VCC或GND,决定工作在最小模式或最大模式2)8084A为时钟发生器,外接15MHz振荡源,经8284A三分频后,得5MHz主频送到8086系统时钟端CLK。除此之外,8284A还将外部的复位信号RESET和就绪信号READY实现同步后发给8086相应引脚3)用3片8282作地址锁存器,在T1时锁存地址/数据复用线上的地址A19-A0和BHE信号4)当系统所连的存储器和外设较多时,需要增加数据总线的驱动能力5)系统组成还必须有其他的一些,如半导体存储器RAM和ROM,外部设备的I/O接口,中断控制管理部件等组件_____BHECLKREADYRESET等待状态发生A19~A16AD15~AD0地址/数据8286收发器TOE8282锁存器STBD15~D08284ARES8288总线控制器CLKMN/MX80861S0S1S2S0S1S2RDYOEDENDT/RALE2.最小模式系统组成A19~A0MRDCMWTCAMWCIORCIOWCAIOWCINTABHECLKREADYRESET等待状态发生A19~A16AD15~AD0地址/数据8286收发器TOE8282锁存器STBD15~D08284ARES8288总线控制器CLKMN/MX80861S0S1S2S0S1S2RDYOEDENDT/RALE3.最大模式系统组成总线控制器8288最大模式与最小模式在总线部件配置上最主要的差别就是总线控制器8288。系统因包含多个处理器,需要解决主处理器和协处理器之间的协调工作以及对总线的共享控制等问题。为此,最大模式系统中要采用8288总线控制器。系统的许多控制信号不再由8086直接发出,而是由总线控制器8288对8086发出的控制信号进行变换和组合,以得到系统各种总线控制信号。8086最大模式系统的其他组件,例如,协处理器8087或8089,总线仲裁器8289,中断控制器8259,存储器,I/O接口等根据实际系统的需要选配,目的是支持多总线结构,形成一个多处理器系统。地址总线BHE控制总线

S0S1S28086CPUCLK8259A&STB8282锁存器(3片)8286总线收发器(2片)OETDENALECLKS0S1S2AENIOBCENINTAMRDMWT8288总线控制器IORCIOWCMCE/PDEN8259A中断控制器INTAWRDT/RSP/ENRD图2-6总线控制器8288与系统的连接8288的两种工作方式8288提供了两种工作方式,由IOB——I/O总线工作方式信号决定。当IOB接地,8288适用于单处理器系统,称作系统总线方式,此时,还要求AEN接地,CEN接+5V。图2-6给出的就是这种方式的系统的连接。当IOB接+5V,且CEN接+5V,8288则适合工作于多处理器系统,称作局部总线方式。4.存储器组织与分段所谓存储器分段技术就是把1MB空间分成若干逻辑段,每个逻辑段的容量≤64KB。段内地址是连续的,段与段之间是互相独立的。逻辑段可以在整个存储空间浮动,即段的排列可以连续、分开、部分重叠或完全重叠,非常灵活。这里所谓的重叠是指存储单元可以分属于不同的逻辑段。存储器的逻辑分段断开排列A段B段C段D段E段40000H50000H60000H70000H连续排列部分重叠完全重叠

∑偏移地址段基址地址加法器物理地址段寄存器15150190图2-8存储器物理地址的形成存储器物理地址的形成5.I/O组织8086系统和外部设备之间是通过I/O接口进行相互传输信息的。每个I/O接口都有一个或几个I/O端口,一个端口往往对应于接口上一个寄存器或一组寄存器。微机要为每个I/O端口分配一个地址,称端口地址。端口地址和存储单元地址一样,应具有惟一的地址编码。微机I/O端口有两种编址方式(1)统一编址(2)独立编址编址方式统一编址这种编址方式是将I/O端口和存储单元统一编址,即把I/O端口置于存储器空间,也看作是存储单元。因此,存储器的各种寻址方式均可用来寻址I/O端口。在这种方式下I/O端口操作功能强,使用起来也很灵活,I/O接口与CPU的连接和存储器与CPU的连接相似。但是I/O端口占用了一定的存储空间,而且执行I/O操作时,因地址位数长,速度较慢。独立编址这种编址方法是将I/O端口进行独立编址,I/O端口空间与存储器空间相互独立。这就需要设置专门的输入、输出指令对I/O端口进行操作。8086系统采用的就是这种独立的I/O编址方式。端口地址说明8086使用A15~A0这16根地址线作为I/O端口地址线,可访问端口最多可达64K个8位端口或32K个16位端口。和存储器的字单元一样,对于奇地址的16位端口的访问,要进行两次操作才能完成。16位的I/O端口地址无需经过地址加法器产生,因而不使用段寄存器。从AB总线上发出的端口地址仍为20位,只不过最高四位A19~A16为0。2.2.28086的总线时序微型计算机系统内的所有操作都要按统一的时钟节拍进行。每项总线操作也都需要一定的时间,称之为总线周期。不同的总线操作需要不同的总线信号,而“总线时序”则是对这些信号的变化时间顺序的描述。总线周期8086CPU为了要与存储器及I/O端口交换数据,需要执行一个总线周期,即完成一次总线操作。依照数据传输的方向,总线操作分为总线读操作和总线写操作。总线读操作指CPU从存储器或I/O端口读取数据总线写操作指CPU将数据写入存储器或I/O端口一个基本的读/写周期包括4个T状态,即T1、T2、T3、T4。在存储器和外设速度较慢时,要在T3之后插入一个或几个等待周期Tw,以使其在数据传送时能与CPU同步。1.最小模式下的读/写总线周期8086CPU为了要与存储器I/O端口交换数据,需要执行一个总线周期,即完成一次总线操作。依照数据传输的方向,总线操作分为总线读操作和总线写操作。①高为读内存低为读I/O地址输出状态输出地址输出数据输入④BHE③②⑤⑥⑦⑨⑩11输出DT/RDENALERDAD15~AD0A19/S6~A16/S3BHE/S7M/IOCLKT1T2T3Tw(1+n)T4⑧(1)最小模式下的总线读操作(2)最小模式下的总线写周期操作AD15~AD0T1T2T3Tw

T4CLKM/IOA19/S6~A16/S3BHE/S7ALEWRDT/RDEN高为写内存低为写I/O地址输出状态输出地址输出数据输出④BHE⑩⑤⑨③⑧②②①⑥⑦输出(3)总线空闲状态当CPU不执行总线周期时,总线接口部件不与总线打交道,进入总线空闲周期。此时,CPU内部指令队列已满,且EU单元正在进行有效的内部操作。所以说,总线空操作是总线接口部件对执行部件的等待状态。总线空闲周期由一系列T1构成,基本维持前一总线周期时的状态。如果前一个总线周期为写周期,AD15~AD0的数据仍被继续驱动;如果前一个总线周期为读周期,则AD15~AD0在空闲周期处于高阻状态。2.(1)最大模式下的读总线周期T1T2T3T4一个总线周期无源状态S2~S0CLKAD15~AD0BHE/S7A19/S6~A16/S3S2~S0*ALE*MRDC或*IORC*DT/R*DENA19~A16BHES7~S3浮空A15~A0D15~D0地址输入数据T1T2T3T4一个总线周期CLKS2~S0BHE/S7A19/S6~A16/S3AD15~AD0*DT/R*ALE*MRDC或*IORC*MWTC或*IOWC*DEN高电平无源状态A19~A16BHES7~S3A15~A0S2~S0输出数据地址2.(2)最大模式下的写总线周期2.3高档微处理器自1971年推出一般型微处理器4004以来,Intel所设计生产的微处理器一直占有相当大的市场。从8086/8088,80286,80386,80486到Pentium,PentiumPro,PentiumII,PentiumIII以及Pentium4每一次都将微型计算机带向全新的领域。2.3.180386微处理器1.80386微处理器的主要特点采用全32位结构,其内部寄存器、ALU和操作是32位,数据线和地址线均为32位提供32位外部总线接口,最大数据传输率为32MB/s,具有自动切换数据总线宽度的功能具有片内集成的存储器管理部件MMU,可支持虚拟存储和特权保护,虚拟存储器空间可达64太字节(TB)具有实地址方式、保护方式和虚拟8086方式3种工作方式采用了比8086更先进的流水线结构,使其能高效、并行地完成取指、译码、执行和存储管理功能(指令队列16字节长)2.80386的内部结构(1)总线接口部件(BIU)(2)指令预取部件(IPU)(3)指令译码部件(IDU)(4)指令执行部件(EU)(5)分段部件(SU)(6)分页部件(PU)

(1)总线接口部件(BIU)微处理器与系统的接口,其功能是:在取指令、取数据、分段部件请求和分页部件请求时,有效地满足微处理器对外部总线的传输要求。BIU能接收多个内部总线请求,并且能按优先权加以选择,最大限度地利用所提供的总线宽度,为这些请求服务。(2)指令预取部件(IPU)职责是从存储器预先取出指令有一个能容纳16条指令的队列(3)指令译码部件(IDU)职责是从预取部件的指令队列中取出指令字节,对它们进行译码后存入自身的已译码指令队列中,并且作好供执行部件处理的准备工作。如果在预译码时发现是转移指令,可提前通知总线接口部件BIU去取目标地址中的指令,取代原预取队列中的顺序指令。(4)指令执行部件(EU)由控制部件、数据处理部件和保护测试部件组成。控制部件中包含着控制ROM、译码电路等微程序驱动机构。数据处理部件中有8个32位通用寄存器、算术逻辑运算器ALU、一个64位桶形移位器、一个乘除法器和专用的控制逻辑,它负责执行控制部件所选择的数据操作。保护测试部件用于微程序控制下,执行所有静态的与段有关的违章检验。执行部件EU中还设有一条附加的32位的内部总线及专门的总线控制逻辑,以确保指令的正确完成。(5)分段部件(SU)作用是应执行部件的请求,把逻辑地址转换成线性地址。在完成地址转换的同时还执行总线周期的分段合法性检验。该部件可以实现任务之间的隔离,也可以实现指令和数据区的再定位。(6)分页部件(PU)作用是把由分段部件产生的线性地址转换成物理地址,并且要检验访问是否与页属性相符合。为了加快线性地址到物理地址的转换速度,80386内设有一个页描述符高速缓冲存储器(TLB),其中可以存储32项页描述符,使得在地址转换期间,大多数情况下不需要到内存中查页目录表和页表。试验证明TLB的命中率可达98%。对于在TLB内没有命中的地址转换,80386设有硬件查表功能,从而缓解了因查表引起的速度下降问题。分段部件SU和分页部件PU统称为存储器管理部件MMU(MemoryManagementUnit)系统总线分段部件SU分页部件PU执行部件EU预取部件IPU译码部件IDU总线部件BIU线性地址译码指令数据(操作和结果)有效地址物理地址32位指令字节指令六大功能部件之间的关系有效地址总线有效地址总线移位地址加法器乘/除寄存器栈状态标志ALU控制保护检测部件控制控制ROM译码和定序位移总线指令和译码两个译码指令队列指令预译码内部控制总线分段部件输入加法器描述符寄存器界限和属性PLA分页部件加法器页面超高速缓存器控制和特性PLA预取器界限检测器指令预取16字节指令队列指令流线性地址总线请求特权地址驱动器流水线I/O总线宽度控制多路收发器取代码取页数物理地址总线控制总线控制HOLD,INTR,NMI,ERRORBUSY,HLDA,RESETBE0~BE3A2~A3M/IO,D/C,W/R,LOCK,ADS,NA,BSIG,READYD0~D33232323234ALU总线3232六大功能部件的结构与连接图3.80386内部寄存器80286内部寄存器一共有7种:(1)通用寄存器(2)段寄存器(3)系统地址寄存器(4)指针和标志寄存器(5)控制寄存器(6)调试寄存器(7)测试寄存器(1)通用寄存器8个32位的通用寄存器,是由8088/8086/80286的相应16位通用寄存器扩展成32位而成。名字分别是:EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP。每个32位寄存器的16位可单独使用,与8088/8086/80286的相应16位通用寄存器作用相同。同时,AX、BX、CX、DX寄存器的高、低8位也可分别当作8位寄存器使用。段寄存器(2)段寄存器80386设置6个16位段寄存器.CS,SS,DS和ES与8086完全相同,新增加的FS,GS是两个支持当前数据段的段寄存器。(3)系统地址寄存器80386和80286一样设置了4个专用的系统表地址寄存器GDTR,LDTR,IDTR和TR,用于保存保护方式下所需要的有关信息。(4)指令指针和标志寄存器80386设置了一个32位的指令指针EIP和一个32位的标志寄存器EFLAGS。EIP是IP的扩充,它可直接寻址4GB的实存空间。EFLAGS寄存器的低16位与80286标志寄存器完全相同,高16位目前只设置了两个新的标志:虚拟方式标志位VM(D17)和恢复标志位RF(D16)。若VM=1,表示80386是在虚拟8086方式。若RF=1,表示下边指令中的所有调试故障都被忽略。(5)控制寄存器80386设置了4个32位的控制寄存器:CR0,CR1,CR2和CR3。它们和系统地址寄存器一起,保存着全局性的机器状态,主要供操作系统使用。(6)调试寄存器80386设有8个32位调试寄存器DR0~DR7,它们为调试提供了硬件支持。(7)测试寄存器80386设置了8个32位的测试寄存器TR0~TR7,其中TR0~TR5由INTEL公司保留,用户只能访问TR6,TR7。TR6是测试控制寄存器,TR7是测试状态寄存器,保存测试结果的状态。4.80386的工作方式80386有三种工作方式:(1)实地址方式(2)保护虚拟地址方式(3)虚拟8086方式(1)实地址方式系统启动后,80386自动进入实地址方式。寻址方式、存储器管理、中断处理与8086一样。操作数默认长度为16位,但允许访问32位寄存器(在指令前加前缀)。不用虚拟地址,最大地址范围仍限于1MB,只采用分段方式,每段最大64KB。存储器中保留两个固定的区域,一个是初始化程序区FFFFFH-FFFF0H,另一个为中断向量表003FFH-00000H。80386的4特权级,在实地址方式下,程序在最高级0级上执行,80386指令集除了少数指令外,绝大多数指令在实地址方式下都有效。(2)保护虚拟地址方式所谓保护是在执行多任务操作时,对不同任务使用的虚拟存储器空间进行完全的隔离,保护每个任务顺利执行。保护方式是80386最常用的方式,系统启动后先进入实地址方式,完成系统初始化后立即转到保护方式。这种方式提供了多任务环境下的各种复杂功能以及对复杂存储器组织的管理机制。只有在保护方式下,80386才能发挥其强大的功能。保护虚拟地址方式特点1)存储器采用虚拟地址空间、线性地址空间和物理地址空间三种方式来描述。在保护方式下,80386寻址机构不同于8086,与80286类似,是通过描述符的数据结构来实现对内存访问的。2)强大的寻址空间。在保护方式下,80386可以寻址的空间大致64TB(246)。这个空间就是所谓的虚拟地址空间。3)使用80386的4级保护功能,可实现程序与程序、用户与用户、用户与操作系统之间的隔离和保护,为

温馨提示

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

评论

0/150

提交评论