版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
80x86CPU的体系结构图8086/8088CPU引脚信号一、8086/8088CPU内部编程结构1.功能结构
8086/8088CPU内部结构从功能上可以分为两部分:
总线接口单元BIU(BusInterfaceUnit):负责完成CPU与存储器或I/O设备之间的数据传送。
执行单元EU(ExecutionUnit):不与系统外部直接相连,负责译码和执行指令。
图8086CPU基本结构框图20位总线接口单元BIU的组成:①4个段地址寄存器:CS、DS、SS、ES。②IP—16位的指令指针寄存器。③20位物理地址加法器和总线控制电路。④6个字节的指令队列缓冲器。执行单元EU的组成:①16位算术逻辑单元ALU。②16位标志寄存器FLAGS。③16位通用寄存器组:AX、BX、CX、DX、SP、BP、SI、DI。④数据暂存寄存器:暂存数据。⑤EU控制电路:是控制、定时与状态逻辑电路,接收从BIU中指令队列取来的指令,经过指令译码形成各种定时控制信号,对EU的各个部件实现定时操作。二、8086/8088的内部寄存器
1.通用寄存器通用寄存器(8个):包括四个数据寄存器AX(AH/AL),BX(BH/BL),CX(CH/CL),DX(DH/DL),两个地址指针寄存器(SP,BP)和两个变址寄存器(SI,DI)。
①数据寄存器AX、BX、CX、DX
数据寄存器一般用于存放参与运算的操作数或运算结果。每个数据寄存器都是16位的,可将高、低8位分别作为两个独立的8位寄存器来用。高8位分别记作AH、BH、CH、DH,低8位分别记作AL,BL,CL,DL。AX(Accumulator):累加器,是算术运算主要寄存器,此外,所有的I/O指令都使用该寄存器与外设端口交换信息。BX(Base):基址寄存器,8086/8088CPU中有两个基址寄存器BX和BP。在计算存储器地址时,常用BX存放操作数在内存中数据段内的基准地址,而BP用来存放操作数在堆栈段内的基准地址。CX(Counter):计数寄存器,在设计循环程序时使用该寄存器存放循环次数,在数据串操作指令中用来存放数据串元素的个数。DX(Data):数据寄存器。在寄存器间接寻址的I/O指令中存放I/O端口地址;在做双字运算时,DX与AX一起存放一个双字长操作数,DX存放高16位数,AX存放低16位数。
②地址指针寄存器SP、BP
SP(StackPointer):堆栈指针寄存器。在使用堆栈操作指令(PUSH或POP)对堆栈进行操作时,每执行一次进栈或出栈操作,系统会自动将SP的内容减2或加2,以使其始终指向栈顶,与SS联用。
BP(BasePointer):基址指针寄存器。作为通用寄存器,它可以用来存放数据,但更经常更重要的用途是存放操作数在堆栈段内的基准地址。
③
变址寄存器SI、DISI(SourceIndex):源变址寄存器。
DI(DestinationIndex):目的变址寄存器。
这两个寄存器通常用在字符串操作时存放操作数的偏移地址,其中SI存放源串在数据段内的偏移地址,DI存放目的串在附加数据段内的偏移地址。
2.段寄存器
8086/8088CPU具有寻址1MB字节存储空间的能力,但是其指令中给出的寄存器只有16位的,使CPU不能直接寻址1MB的空间。为此,8086/8088对存储器进行分段管理,即将程序代码或数据分别放在代码段、数据段、堆栈段或附加数据段中,每个逻辑段最长可为64KB。段地址分别放在对应的段寄存器中,代码或数据在段内的偏移地址由有关寄存器或立即数给出。CS(CodeSegment):代码段寄存器。用来存储程序当前使用的代码段的段地址。CS的内容左移四位再加上指令指针寄存器IP的内容就是下一条要读取的指令在存储器中的20位物理地址。DS(DataSegment):数据段寄存器。用来存放程序当前使用的数据段的段地址。DS的内容左移四位再加上由指令中存储器寻址方式给出的偏移地址即得到对数据段指定单元进行读写的20位物理地址。SS(StackSegment):堆栈段寄存器。用来存放程序当前所使用的堆栈段的段地址。堆栈是存储器中开辟的按先进后出原则组织的一个特殊存储区,主要用于调用子程序或执行中断服务程序时保护断点和现场。
ES(ExtraSegment):附加段寄存器。用来存放程序当前使用的附加数据段的段地址。附加数据段常用来存放字符串操作时的目的字符串。
3.控制寄存器
IP(InstructionPointer):指令指针寄存器。用来存放下一条要读取的指令在代码段内的偏移地址,与CS段寄存器联用,用户程序不能直接访问IP。
FLAGS:标志寄存器。它是一个16位的寄存器,但只用了其中9位,这9位包括6个状态标志位,3个控制标志位,如下图所示。图8086/8088的标志寄存器状态标志位:6位
CF(CarryFlag):进位标志位。当进行加减运算时,若最高位发生进位或借位则CF=1,否则为0。通常用于判断无符号数运算结果是否超出了计算机所能表示的无符号数的范围。
PF(ParityFlag):奇偶标志位。当指令执行结果中含有偶数个1时,PF=1,否则PF=0。
AF(AuxiliaryFlag):辅助进位标志位。当执行加法或减法运算指令时,低半部分向高半部分有进位或借位,则AF=1,否则为0。
ZF(ZeroFlag):零标志位。若当前的运算结果为0,则ZF=1,否则为0。
SF(SignFlag):符号标志位。当运算结果的最高位为1时,SF=1,否则为0。
OF(OverflowFlag):溢出标志位。当运算结果超出了带符号数所能表示的数值范围,即溢出时,OF=1,否则为0。用来判断带符号数运算结果是否溢出。
控制标志位:3位
用来控制CPU的操作,由程序设置或清除。它们是:
TF(TrapFlag):跟踪(陷阱)标志位。为测试程序的方便而设置。若将TF置1,则CPU处于单步工作方式,每执行一条指令,自动产生一次单步中断,可使用户逐条检查指令执行结果;若TF=0,则程序正常运行。IF(InterruptEnableFlag):中断允许标志位。是用来控制可屏蔽中断的标志位。若IF=1,表示允许CPU响应外部从INTR引脚上发来的可屏蔽中断请求;若IF=0,则禁止CPU响应可屏蔽中断请求信号。IF的状态对非屏蔽中断和内部中断没有影响。
DF(DirectionFlag):方向标志位。若将DF置1,则串处理指令操作后使变址寄存器SI和DI递减;若将DF置0,则串处理指令操作后使变址寄存器SI和DI递增。一、8086/8088的引脚信号
8086与8088CPU内部结构基本相同,外部采用40条引脚的双列直插式封装,如下图所示引脚信号。
8086/8088CPU具有两种工作模式:最小模式和最大模式,8条引脚(24~31脚)在两种工作模式中具有不同的功能。2.28086/8088引脚信号及工作模式图8086/8088CPU引脚信号8086是Intel系列的16位微处理器,采用N沟道、耗尽型的硅栅工艺(HMOS)制造,内部包含约29000个晶体管。
8086有40条引脚,有16根数据线和20根地址线,可寻址的地址空间为220即1MB。时钟频率:8086为5MHz,8086-2为8MHz,8086-1为10MHz。
8088一种准16位微处理器,推出8088的主要目的是为了与当时已有的一整套Intel外围接口芯片直接兼容使用。8088的内部寄存器、内部运算部件以及内部操作与8086基本相同,但外部性能有区别。8086的外部数据总线是16位的,但8088外部的数据总线是8位的。2.18086/8088CPU的编程结构
1.各引脚功能
(1)地址/数据总线AD15~AD0(AddressDataBus)
分时复用的地址数据线。传输地址时三态输出,传输数据时可双向三态输入/输出。(2)地址/状态线A19/S6~A16/S3(Address/Status)
分时复用的地址状态线,三态输出。在总线周期的T1状态作为地址总线的高4位,A19~A16与AD15~AD0一起构成访问存储器的20位物理地址,当CPU访问I/O端口时,A19~A16保持为“0”;在总线周期的其它时间作为状态线用,S6~S3用来输出状态信息,其中:S4和S3用于表示当前使用的段寄存器,如下表所示。对I/O端口或中断矢量寻址时,不需要使用段寄存器。S5用来表示中断标志位状态。当IF
1时,S5置“1”,表示CPU可以响应可屏蔽中断,否则置为“0”,表示CPU禁止一切可屏蔽中断;S6恒保持为“0”。表S4与S3的代码组合和对应的状态S4S3状态00当前正在使用ES01当前正在使用SS10当前正在使用CS,或未使用任何段寄存器11当前正在使用DS
(3)/S7(BusHighEnable/Status)高8位数据总线有效/状态复用引脚,三态输出。在总线周期的T1状态时输出,S7在T2—T4时输出。在8086中,该引脚输出信号时,表示总线高8位AD15-AD8上的数据有效,在8088中,该引脚被赋予另外的含义。
(4)(Read)读控制信号,三态,输出。低电平有效,表示当前CPU正在读存储器或I/O端口。
(5)READY信号准备就绪信号,由外部输入。高电平有效,表示被访问的内存或I/O端口已准备好,CPU可以进行数据传送。当CPU采集到READY为低时,自动插入等待周期Tw,直到READY信号变为高电平后,CPU才脱离等待状态,完成数据传送过程。
(6)INTR(InterruptRequest)可屏蔽中断请求信号,由外部输入,高电平有效。INTR有效时,表示外设向CPU提出中断请求。CPU在每条指令的最后一个时钟周期对INTR进行采样,一旦测试到有中断请求,并且当前中断允许标志IF
1时,则暂停执行下条指令转入中断响应周期。
(7)NMI(Non-MaskableInterruptReguest)
非屏蔽中断请求信号,由外部输入,上升沿触发,不受IF状态的影响。CPU一旦测试到NMI请求有效,待当前指令执行完就自动从中断入口地址表中找到类型2中断服务程序的入口地址,并转去执行。显然,这是一种比INTR高级的请求。
(8)
测试信号,由外部输入,低电平有效。用于多处理器系统中且只有当CPU执行WAIT指令时才使用。每隔5个时钟周期对其进行一次测试。若测试到无效,则CPU处于踏步等待状态,直到有效,CPU才继续执行下一条指令。等待期间允许外部中断。
(9)RESET
复位信号,由外部输入,高电平有效。要求RESET信号至少保持4个时钟周期。CPU接收到RESET信号后,停止进行操作,并将标志寄存器、段寄存器、IP和指令队列等复位到初始状态。如下表所示:内部寄存器状态内部寄存器状态FLAGS0000HDS0000HIP0000HSS0000H指令队列清除ES0000HCSFFFFH其余寄存器0000H
表复位后内部寄存器的状态
(10)MN/(Minimun/Maximun)工作模式选择信号,由外部输入。MN/为高电平,表示CPU工作在最小模式系统中;低电平时,表示CPU工作在最大模式系统中。(11)CLK(Clock)主时钟信号,由8284时钟发生器输入。8086CPU可使用的时钟频率随芯片型号不同而不同,8086为5MHz,8086-1为10MHz,8086-2为8MHz。(12)VCC(电源)和地线GND8086CPU只需要单一的+5V电源,由VCC输入。地线GND有两条,均应该接地。
二、8086/8088工作模式
8086/8088有两种工作模式:最大模式和最小模式。最小模式是单处理机模式,最大模式是多处理机模式。两种模式下系统配置不同。MN/引脚为高电平时工作在最小模式;为低电平时工作在最大模式。(一)总线接口芯片在实际使用8086/8088微处理器时,还必须配有时钟发生器(8284A)、地址锁存器(8282/8283或74LS373)和总线驱动器(8286/8287),才能构成系统总线。
1.时钟发生器8284A
8284A除为CPU和系统提供时钟信号外,还提供经时钟同步的复位信号RESET和就绪信号READY。
8284A能为CPU提供的最高时钟信号频率为8MHz。而8284A-1可提供10MHz时钟信号。为使8284A正常工作,只要外接一片晶体振荡器即可。(1)时钟信号发生器时钟信号发生器提供系统所需要的时钟信号,有两个来源:一个是F/C为低电平时,由X1、X2引脚间14.31818MHz晶体振荡器信号被8284A作3分频产生4.77MHz时钟信号CLK(占空比为1∶3);另一个是F/C为高电平时,由EFI引脚输入的方波信号被8284A做3分频产生时钟信号。
OSC:14.31818MHz晶振信号。外设时钟PCLK:由4.77MHz的CLK再经2分频后产生,频率为2.385MHz(占空比为1∶2)。CSYNC:多个8284工作时的同步信号,为高时,8284内部计数器复位,为低时,8284开始工作,使用晶振时必须接地。(2)复位生成电路输入信号RES在8284延迟和同步后产生系统复位信号RESET,高电平有效,使系统初始化。
(3)设备就绪控制电路就绪控制电路有两组输入信号,每一组都有允许信号AEN和设备就绪信号RDY,AEN是低电平有效信号,用以控制其对应的RDY信号的有效。这种工作方式用于能保证满足RDY建立时间要求的同步设备中。
2.8282/8283地址锁存器
由于8086/8088CPU的地址/数据和地址/状态总线是分时复用的,而存储器或I/O接口电路通常要求在与CPU进行数据传输时,在整个总线周期内须保持稳定的地址信息,因而必须在总线周期的第一个时钟周期内将地址锁存起来。
8282(不反相)和8283(反相)是适用于8086/8088以及MCS-85等系列微型计算机的8位双极型具有三态输出的锁存缓冲器,可用于缓冲或多路传输。
DI0-DI7为8位数据输入端OE为输出允许信号,低电平有效DO0-DO7为8位数据输出端STB为选通信号
3.8286/8287数据收发器
为提高8086/8088系统数据总线的驱动能力,并提供一种在多主控器系统应用环境下的控制手段,在8086/8088CPU和系统数据总线之间必须接入数据双向缓冲器,Intel公司提供的8286(不反相)和8287(反相)就是一种具有三态输出的8位双极型数据收发器,具有很强的总线驱动能力。A0-A7为A组8根数据线B0-B7为B组8根数据线OE为门控端,低电平时有效,可以传输数据T为方向控制端,高电平时数据由A组送B组,低电平时由B组送A组
(二)最小模式当处理器的引脚在+5V时,系统工作于最小模式,即单处理器模式,它适合较小规模的应用。如下为一种典型的最小模式系统配置及引脚信号含义。
(1)(InterruptAcknowledge)
中断响应信号,向外部输出,低电平有效,表示CPU响应了外部发来的INTR信号,在中断响应周期,可用来作为读选通信号。
(2)ALE(AddressLatchEnable)
地址锁存允许信号,向外部输出,高电平有效,该信号是8086/8088提供给地址锁存器(如:8282/8283)的控制信号。
(3)SSO(SystemStatusOutput)
系统状态信号,输出,低电平有效,只用于8088。
(4)(Write)
写控制信号,三态,输出。低电平有效,表示当前CPU正在写存储器或I/O端口。(5)M/IO(Memory/InputOutput)
存储器或I/O端口访问信号,三态输出。高电平时表示当前CPU正在访问存储器;低电平时,表示CPU正在访问I/O端口,8088中该引脚为IO/M。
(6)HLDA(HoldAcknowlege)
总线保持响应信号,向外部输出,高电平有效。当CPU接收到HOLD信号后,就在当前总线周期结束时,使HLDA有效,表示响应这一总线请求,并立即让出总线使用权。CPU中的EU可继续工作到下一次要求使用总线为止,一直到HOLD无效,CPU才将HLDA置成无效,并收回对总线的使用权,继续操作。
(7)DT/(DataTransmit/Receive)
数据发送/接收控制信号,三态输出。该信号用来控制数据总线收发器(如:8286/8287)的数据传输方向。为高电平时,CPU向内存或I/O端口发送数据;为低电平时,CPU从内存或I/O端口接收数据。在DMA操作时被置为高阻态。(8)(DataEnable)
数据允许信号,三态输出,低电平有效。在最小模式系统中用来作为数据收发器8286/8287的选通信号。有效时,表示CPU当前准备发送或接收数据。在DMA操作时被置为高阻态。(9)HOLD(HoldRequest)
总线请求信号,由外部输入,高电平有效。在最小模式系统中表示有其他共享总线的主控者向CPU请求使用总线。
(三)最大模式
1.系统配置及相关引脚信号当处理器的引脚接地时,系统工作于最大模式,它适合较大规模的应用。如下为一种典型的最大模式系统配置及相关引脚信号含义。最大模式和最小模式的主要区别是外加有8288总线控制器。最小模式下,控制总线直接从8086/8088得到,最大模式下,通过8288对CPU发出的控制信号进行变换和组合,以得到对存储体和I/O端口的读写信号和对锁存器8282及数据总线收发器8286的控制信号,使得总线控制功能更加完善。最大模式是多处理机模式,需要协调主处理体和协处理器的工作问题及对总线的共享控制问题。
(1)S2、S1、S0(BusCycleStatus)
总线周期状态信号,输出,低电平有效,连接到总线控制器8288的输入端,8288对这些信号进行译码后产生内存及I/O端口的读写控制信号。下表为这三个状态信号的代码组合使、对应的操作及8288产生的控制信号。
(2)LOCK(Lock)
引脚29,总线封锁信号,输出。当LOCK为低电平时,系统中其他总线设备不能获得系统总线的控制权而占有总线。LOCK信号由指令LOCK产生,LOCK指令后面的一条指令执行完后,便撤消了LOCK信号。另外,在DMA期间,LOCK被浮空而处于高阻状态。
(3)RQ/GT1、RQ/GT0(Request/Grant)
总线请求信号输入/总线请求允许信号输出。这两个信号可供8086/8088以外的2个总线主设备向8086/8088发出使用总线的请求信号RQ(相当于最小方式时的HOLD信号)。而8086/8088在现行总线周期结束后让出总线,发出总线请求允许信号GT(相当于最小方式的HLDA信号),此时,外部总线主设备便获得了总线的控制权。其中RQ/GT0比RQ/GT1的优先级高。(4)QS1、QS0(InstructionQueueStatus)
指令队列状态信号,输出。QS1、QS0两个信号电平的不同组合指明了指令队列的状态,其代码组合对应的含义如下表所示。QS1QS0含义00无操作01从指令队列的第一字节中取走代码10队列为空11除第一字节外,还取走了后续字节中的代码2.最大模式下系统总线的构成
(1)8288总线控制器当8086/8088CPU工作于最大模式时,不直接产生总线控制信号,而是在每个总线周期开始之前输出状态信息和用于指示该总线周期的操作类型。8288总线控制器对总线状态信息进行译码,产生所需要的总线命令信号和控制信号。总线控制器
由8288总线控制器参与构成的工作于最大方式的单处理器总线如下图所示:
如果希望在一个系统中能包含多个共享总线的主控者,那么必须在系统中增设总线仲裁器8289。
(2)总线仲裁器8289
总线仲裁器8289与总线控制器8288配合,将8086/8088CPU与8089IOP、8087NDP等主控者连接到总线上,构成多主控的微机系统。每一个主控者必须配备一个8288总线控制器和一个8289总线仲裁器。8289对主控者是透明的,对于任何一个主控者来说,都好像自己独占总线一样。当有多个主控者同时要求使用总线时,由8289总线仲裁器进行仲裁将使用权赋给优先级别高的主控者。一、指令周期、总线周期和T状态
指令周期(InstructionCycle):指CPU从取指令到指令执行完毕所需要的时间,指令周期可以划分为一个个的总线周期。
总线周期(BusCycle):指CPU从存储器或I/O端口存取一个字节所需要的时间。按照数据的传送方向来分,总线周期可分为“读”总线周期(CPU从存储器或I/O端口读取数据)和“写”总线周期(CPU将数据写入存储器或I/O端口)。
T状态(Tstate):T状态是CPU中处理动作的最小时间单位,每个T状态就是一个时钟周期(ClockCycle),8086/8088CPU的每个总线周期通常包含4个T状态,即T1、T2、T3、T4,如下图所示:2.38086/8088总线操作时序图8086/8088基本总线周期①8086/8088CPU基本的总线周期由4个时钟周期组成,时钟周期是CPU的基本时间计量单位,由CPU主频决定。如8086主频f=5MHz,则一个时钟周期tc=1/f=200ns。一个时钟周期又称为一个T状态,因此基本总线周期用T1、T2、T3、T4表示。②在T1状态CPU把要读/写的存储单元的地址或I/O端口的地址放到地址总线上。若是“写”总线周期,CPU从T2起到T4把数据送到总线上,并写入存储器单元或I/O端口;若是“读”总线周期,CPU则从T3起到T4从总线上接收数据,T2状态时总线浮空,允许CPU有个缓冲时间把输出地址的写方式转换成输入数据的读方式。③图b是具有空闲状态的总线周期。如果在一个总线周期之后不立即执行下一个总线周期,即CPU此时执行的指令不需要对存储器或I/O端口进行访问,且目前指令队列满而不需要到内存中读指令,那么系统总线就处于空闲状态,即执行空闲周期。在空闲周期中可包括一个或多个时钟周期,在这期间,在高4位的总线上,CPU仍驱动前一个总线周期的状态信息;而在低16位的总线上,则根据前一个总线周期是读还是写周期来决定。若前一个周期为写周期,CPU会在总线的低16位继续驱动数据信息;若前一个总线周期为读周期,CPU则使总线的低16位处于浮空状态。在空闲周期,尽管CPU对总线进行空操作,但在CPU内部,仍然进行着有效的操作,如执行某个运算、在内部寄存器之间传送数据等。④图c是具有等待状态的总线周期。在T3状态结束之前,CPU测试READY信号线,如果为高电平,则说明数据已准备好,可进入T4状态;若READY为低电平,则说明数据没有准备好,CPU在T3之后插入1个或多个等待周期TW,直到检测到READY为高电平后,CPU会自动脱离TW而进入T4状态。这种延长总线周期的措施允许系统使用低速的存储器芯片。
(1)8088存储器读周期
8088存储器读周期时序如图所示。一个基本的存储器读周期由四个T状态组成。
T1状态:
①IO/M变为有效。由IO/M信号来确定是对存储器还是对外设进行操作。②从T1开始,A19/S6~A16/S3、A15~A8、AD7~AD0线上出现20位地址。③ALE有效,地址信息被锁存到地址锁存器8282中。④DT/R为低电平。
T2状态:
①A19/S6~A16/S3复用线上由地址信号变为状态信号。
②信号变为低电平,和DT/一起作为双向数据总线驱动器8286的选通信号。打开它的接收通道,使数据线上的信息得以通过它传送到CPU的AD7~AD0。T3状态:
CPU在T3的下降沿采样数据线获取数据。
T4状态:
8088使控制信号变为无效。如果存储器工作速度较慢,不能满足正常工作时序要求,则须采用一个产生READY信号的电路,使8088在T3和T4状态之间插入TW状态。8088在T3状态前沿采样READY线,若为低,则T3状态结束后插入TW状态,以后在每一个TW前沿采样READY线,直到它变为高电平,在TW结束后进入T4状态。在TW状态8088的控制和状态信号不变,如图所示。
图有TW的存储器读周期时序(2)存储器写周期存储器写周期如下图所示,也由四个T状态组成,存储器写周期和存储器读周期的时序基本类似。图存储器写周期2.48086/8088存储器的组织和管理
一、存储器的组织
8086/8088有20根地址线,具有220
1M字节的存储器地址空间,其地址范围为00000~FFFFFH。存储器按字节组织,每一个单元都可存储一个字节,每个存储单元都有一个唯一的20位地址编号,这个地址称为内存单元的物理地址
00000H00001HFFFFFH21000H21001H34H12H偶地址字(规则字)82001H82002H78H56H奇地址字(非规则字)读/写规则字需要一个总线周期读/写非规则字需两个总线周期80868086/8088ABCd34000H34001H34002H34003H(1)若存放的数据是8位的字节信息,按顺序存放。(2)如果在存储器中存放一个字符串(按字节序列),那么字符串的第一个字节放在地址较低的单元中,以后依次存放。(3)任何两个相邻的字节单元可以存放一个16位的数据,称为一个字,在一个字中则将字的低字节放在低地址中,高字节放在高地址中。每个字节都有一个字节地址,低位字节的地址作为该数据字的地址。(4)对于存放的16位数据,其低字节可以在奇数地址中存放,也可以在偶数地址中存放。当从偶数地址中存放时,称为规则存放,这样的字称为规则字。当从奇地址开始存放16位数据时,称为非规则存放,这样的字称为非规则字。8086中访问字节的指令也有访问字的指令,不论读存储器还是写存储器,每次总是进行16为操作。当执行访问字节指令时,只用了8位,另外8位则被忽略了。对于16位的字如果第一个字节是从偶地址开始存放的,即规则字,可以通过一次访问其功能。对于非规则字,CPU必须读写两个连续的偶地址字,两次访问存储单元,每次都忽略掉不需要的半个字,并对剩下的两个字节进行某种形式的字节颠倒。于是读/写偶地址字的指令读/写操作只需访问一次存储器(一个总线周期);而读/写奇地址的字的指令则必须两次访问存储器(两个总线周期)分别地取它所需要的那半个字,并进行某种形式的字节调整,以形成指令所需要的字。8088的外部数据总线是8位的,所以8088总是以字节为单位访问内存。取指令也是一个总线周期读取一个字节的指令代码。2.48086/8088存储器的组织和管理
1.8086系统中存储器的结构
8086系统中,将1M字节的存储空间分成两个512K字节的存储体,一个存储体中包含偶数地址,另一个存储体中包含奇数地址,两个存储体之间采用字节交叉编址方式,利用A0和实现对奇偶存储体的选择,A0=0选择偶存储体,=0时选择奇存储体,如下图表所示。图字节交叉编址方式图存储体与总线的连接A0操作00奇、偶存储体同时选择,读/写一个字01访问奇地址存储体,读/写高字节(D15-D8)的信息10访问偶地址存储体,读/写低字节(D7-D0)的信息11无操作,数据处于高阻状态和A0的控制作用2.8088系统中存储器的结构
8088系统中,可直接寻址的存储器空间同样为1M字节,但是整个1M字节的存储空间同属一个单一的存储体,它与总线之间的连接方式如图所示。8088CPU每访问一次存储器只能读/写一个字节信息,因此8088系统的存储器中不存在对准存放的概念,任何数据字都需要两次访问存储器才能完成读/写操作。因此,在8088系统中,程序运行速度会比在8086系统中慢些。
二、存储器的分段
8086/8088系统中,可寻址的存储器空间达1M字节,要对整个存储器空间寻址,需要20位长的地址码,而机内所有的寄存器都只有16位,只能寻址64K字节。因此在8086/8088系统中,把整个存储空间分成许多逻辑段,这些逻辑段容量最多可为64K字节。各个逻辑段之间可以紧密相连,也可以相互重叠(完全重叠或部分重叠),逻辑段可以分为四种类型:代码段、数据段、堆栈段、附加段,如下图所示。图存储器分段示意图图存储器分段示意图从0000H单元开始,每连续16个字节单元为1个小段,段起始地址要求为小段的起始地址,其20位物理地址的低4位为0,故可以省略低4位,将高16位地址放入段寄存器中,既得到段地址。
任何一个物理地址可以唯一地被包含在一个逻辑段中,也可包含在多个相互重叠的逻辑段中,只要能得到它所在段的首地址和段内的相对地址,就可对它进行访问。在8086/8088存储空间中,把连续的16字节存储空间称为一节(Paragraph,也叫小段)。为了简化操作,要求各个逻辑段从节的起始地址开始,也就是说,保证段首地址的低4位地址码总是为“0”。于是将段首地址的高16位地址码称为“段地址”,把它存放在相应的段寄存器中;而段内的相对地址可以用系统中的16位通用寄存器来存放,被称为“偏移地址”。
三、存储器中的物理地址和有效地址
在1MB的存储器里,每一个存储单元都有一个唯一的20位地址,称为物理地址。
物理地址由段地址和偏移地址构成。偏移地址指某一个存储单元距离所在段起始地址的单元数,为16位的无符号数,简称为偏移地址,也称为有效地址EA,其范围为0000H—FFFFH。当CPU需要访问存储器时,必须完成如下的地址运算:物理地址
段地址×16
偏移地址这是在CPU的总线接口部件BIU的地址加法器中完成的,其操作如下图所示。图物理地址的形成过程表逻辑地址来源操作类型段地址偏移地址正常来源其他来源取指令CS无IP堆栈操作SS无SP存/取变量DSCS,ES,SS有效地址EA取源串DSCS,ES,SSSI存/取目标串ES无DI通过BP间接寻址SSCS,ES,SS有效址址EA2.5多处理器系统8086的协处理器主要有8087、8089数值数据处理器8087:主要是提高系统处理数值数据运算能力。输入/输出协处理器8089:主要是提高系统输入/输出处理功能。除了完成输入/输出操作外,还可以对传送的数据进行交换、校验和比较等多种功能。由于多处理器都挂在同一组公共系统总线上,设计多处理器系统时必须考虑的两个问题:(1)多个处理器对总线的争用(2)多个处理器之间的相互通信最大模式下:多处理器系统的三种基本组态(1)协同处理器(2)紧耦合(3)松耦合在协处理器和紧耦合组态中,CPI和协处理器不仅共用存储器与I/O子系统,而且共用相同的总线控制逻辑与时钟发生器,8086/8088是主处理器,而附加处理器是从处理器,总线控制信号由CPU提供,总线请求信号来自于CPU连接的附加处理器。松耦合组态用于中型到大型系统,它们包括两个或两个以上的主处理器8086/8088,并且各个模块均有自己的本机总线控制逻辑、时钟以及本机存储器与I/O设备本章问题(1)8086最大模式和最小模式的区别是什么?(2)什么是总线周期、时钟周期、指令周期,总线周期和时钟周期的关系是什么?(3)8086物理地址,偏移地址、段地址三者的关系是什么?(4)8086总线接口单元有哪些基本组成,执行单元有哪些组成?(5)8086和8088的区别有哪些?引脚,数据线地址线,存储模式,(6)8086/8088最小模式下需几片8282和几片8286?8282的作用是什么?8286的作用是什么(7)8086/8088最大模式下需几片8284,8282、几片8286、几片8288,8288的作用是什么?(8)8086从存储器中读或写一个字需要几个总线周期?
8088从存储器中读或写一个字需要几个总线周期?8088从存储器中读或写一个字节需要几个总线周期?(9)什么叫规则字?什么叫非规则字?(10)复位后内部寄存器的状态怎样?(11)最小模式下典型引脚的作用如MN/MX见下页NMIRESET
M/IOALEDT/RHLDAHOLDINTR本章作业2.12.7(1)(3)(5)2.92.13
一、80286微处理器基本结构1.80286CPU的特点
1982年,Intel公司推出了高性能的16位微处理器80286,该芯片内部集成了约13万个晶体管,以8MHz的时钟工作,它有68条引脚。与8086相比,80286具有以下特点:①它有24根地址线,最多可寻址16MB的实际存储空间和64KB的I/O地址空间。②数据线和地址线完全分离。在一个总线周期中,当有效数据出现在数据总线上的时候,下一个总线周期的地址已经送到地址总线,形成总线周期的流水作业。③具有“实地址方式(RealAddressMode)”和“保护虚地址方式(ProtectedVirtualAddressMode)”两种工作方式,分别简称为“实方式”和“保护方式”。2.680x86典型微处理器介绍
实方式:用于向上兼容8086,此时80286的24根地址线中只有低20位地址有效,其寻址空间和寻址方法与8086完全相同,即8086的应用程序不需要修改就可以移到该方式下运行,但是速度要快。
保护方式:该方式下,其24根地址线全部有效,可寻址16MB的实存空间;通过存储管理和保护机构,可为每个任务提供多达1GB的虚拟存储空间和保护机制(将每个任务的230B=1GB的虚拟地址映射到224B的物理地址中),有力地支持了多用户、多任务的操作。④在保护方式下,80286的存储管理仍然分段进行,每个逻辑段的最大长度为64KB,这种方式增加了许多管理功能,其中最重要的功能就是虚拟存储。就是说,80286的物理存储空间为16MB,但每个任务可使用的逻辑空间却高达1GB。
在保护方式下,那些内存装不下的逻辑段,将以文件形式存在外存储器中,当处理器需要对它们进行存取操作时就会产生中断,通过中断服务程序把有关的程序或数据从外存储器调入到内存,从而满足程序运行的需要。⑤在保护方式下,80286提供了保护机制,它们由硬件提供支持,一般不会增加指令的执行时间,这些保护包括:对逻辑段的操作属性(可执行、可读、只读、可写)和长度界限(1~64KB)进行检查,禁止错误的段操作。
为不同程序设置了四个特权级别(PrivilegeLevel),提供若干特权级参数,可让不同程序在不同的特权级别上运行。8086系统程序和用户程序处于同一级别,并存放在同一存储空间,所以系统程序有可能遭到用户程序的破坏。而80286依靠这一机制,可支持系统程序和用户程序的分离,并可进一步分离不同级别的系统程序,大大提高了系统运行的可靠性。提供任务间的保护。80286为每个任务提供多达0.5GB的全局存储空间,防止错误的应用任务对其他任务进行不正常的干预。2.80286微处理器结构
80286微处理器内部结构如下,其内部由四个独立的部件组成:执行部件(EU)、总线接口部件(BIU)、指令部件(IU)和地址部件(AU)。这四个独立的部件通过内部总线进行连接,相互配合完成一条指令的执行过程。图80286微处理器内部结构
执行部件(EU):由地址锁存器、控制器、算术逻辑运算单元(ALU)和微代码只读存储器等部分组成,负责执行由指令部件(IU)译码后的指令。微代码只读存储器存放的是执行部件在执行指令时使用的微程序,执行部件不断地从已经译码后的指令队列中取出指令并执行。总线接口部件(BIU):由地址锁存器、地址驱动器、协处理器扩展接口、总线控制器、数据收发器、预取指器和六字节预取指令队列组成,是CPU与系统之间的高速接口部件,使CPU以最高速率向外部取代码和读/写数据。
指令部件(IU):由指令译码器和三条已被译码的指令队列组成。指令部件的作用是不断地从总线单元BU内的预取指令队列中取出指令,译码后存放到已被译码的指令队列中,准备接受执行部件的读取。
IU的引入进一步改善了流水线操作,IU内部始终存放着三条已译码的指令,执行单元EU执行的总是这些已译码的指令,IU和EU的并行操作,缩短了指令的执行时间,提高处理速度,这种操作被称为80286的流水操作。地址部件(AU):由地址偏移量加法器、段界限检查器、段基址寄存器、段容量寄存器、物理地址加法器等组成。地址部件的功能:根据执行部件(EU)的请求,从EU的寄存器中取出寻址信息,形成物理地址,然后把产生的物理地址送到总线接口部件BIU的地址锁存器和总线驱动器中,所产生的地址是物理存储器地址或I/O设备的端口地址。3.80286寄存器的构成
80286微处理器的内部寄存器分为四组。分别为通用寄存器、段寄存器、状态及控制寄存器以及系统表寄存器,它们构成了80286基本寄存器集。如下图所示:图80286基本寄存器集
(1)通用寄存器通用寄存器有AX、BX、CX、DX、BP、SP、DI、SI等八个寄存器。(2)状态和控制寄存器
①指令指针寄存器IP
用来指示下一条要执行指令的偏移地址。②标志寄存器FLAG
标志寄存器用来记录由算术或逻辑运算类指令操作结果所设置的状态以及系统的状态,该寄存器为16位的寄存器,如下图所示。图状态标志寄存器IOPL:特权标志位。占用D13D12两个位,用以指示I/O操作处于0-3特权层中的哪一层,只使用于保护方式。NT:嵌套标志位。NT=1,表示当前执行的任务嵌套在另一个任务中,执行完该任务后,要返回到原来的任务中去,否则,NT=0。该标志位只适用于保护方式。③机器状态字寄存器MSW
机器状态字寄存器用来表示当前处理器所处的状态。如下图所示,MSW寄存器是一个80286中新设计的16位寄存器,仅用了其中的四位。图机器状态寄存器保护方式允许PE:PE=1,保护方式允许;PE=0,表示80286被置于实地址方式。不能被清除,只有通过硬件复位(RESET)才能从保护方式返回实地址方式。监督协处理器MP:协处理器工作时,MP=1,否则。协处理器仿真状态位EM:当MP=0时,协处理器未工作,若EM=1,表示系统可用软件仿真协处理器80287的功能,若EM=0,表示将允许协处理器操作码在80287上执行。任务切换位TS:当两个任务正在切换时,TS=1,此时,不允许协处理器工作;当两个任务切换完成时,TS=0。80286复位时,TS被清“0”。对于机器状态字寄存器中的有效标志位,其中的PE位用来使CPU进入虚地址保护方式,其余3位则具有控制协处理器接口的作用。
(3)段寄存器
80286的段寄存器包括:代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS、附加段寄存器ES,在程序中四个段寄存器分别用来指示不同段的起始地址。每个段寄存器都是16位的,但实际上每个段寄存器都是由一个16位的段选择器和一个48位的段高速缓冲寄存器组成,如下图所示。只有16位的段选择器可直接进行访问,而高速缓冲寄存器不能被程序直接访问,其作用是在寻址方式的控制下,参与实际物理地址的形成。它是80286在实现存储器管理功能时内部使用的寄存器。图80286的段高速缓冲寄存器(4)描述符寄存器和任务寄存器
80286中的描述符寄存器分为GDTR(全局描述符寄存器)、LDTR(局部描述符寄存器)和IDTR(中断描述符寄存器),分别用来在虚地址保护方式下管理相应描述符表,这些描述符表为GDT(全局描述符表)、LDT(局部描述符表)、IDT(中断描述符表)。
TR(任务寄存器):存放正在执行任务的状态,用来对TSS(任务状态段)进行寻址。任务状态段用来存放任务环境。对TR寄存器的访问是由指令LTR、STR来实现的。
GDTR、IDTR既可以在实地址方式下使用,也可以在虚地址保护方式下使用,LDTR、TR只能在虚地址保护方式下使用。二、80386微处理器基本结构1.80386微处理器结构
80386微处理器是Intel公司于1985年10月推出的一种高性能的32位CPU,其内部操作和寄存器都是32位的,采用132个引脚封装,数据线32条,地址线32条,最初的时钟频率为16Mhz,其运算速度可达3-4MIPs(每秒百万条指令),其内部结构如下图所示。图80386微处理器内部结构示意图80386由中央处理器(CPU)、存储器管理部件(MMU)和总线接口部件(BIU)三大模块组成。
CPU包括指令预取、指令译码、指令执行部件;MMU包括分段部件(SU)和分页部件(PU);加上BIU部件,这样80386共有六个功能部件,六个功能部件可并行工作,构成六级流水线结构。存储器管理部件中的分段部件可通过附加寻址部件对逻辑地址空间进行管理,可以实现任务之间的隔离,也可实现指令和数据区的再定位。分页部件的功能是管理物理地址空间,把分段部件和指令预取部件产生的线性地址送到分页部件中,并转换为物理地址。每个段可划分为1--4KB的页,为了实现虚拟存储系统,80386对于页面故障和段故障有完整的再启动功能。2.80386的工作方式
80386有三种工作方式:实地址方式、保护虚拟地址方式和虚拟8086方式(VM86方式)。在实地址方式下,80386就是一个工作速度极快的8086。实地址方式主要用于建立处理机状态,以便进入保护工作方式。在保护工作方式下,用户可使用处理器的复杂存储管理、分页及特权功能。在保护方式下,通过软件可以实现任务切换,进入虚拟8086方式。虚拟8086任务可以被隔离和保护。3.80386的寄存器结构
80386含有通用寄存器、段寄存器、指令指针、标志寄存器、控制寄存器、系统地址寄存器、排错寄存器、测试寄存器等8类32个寄存器,它们包括了16位8086和80286的全部寄存器。①通用寄存器、段寄存器、指令指针和标志寄存器图通用寄存器组80386中的标志寄存器是名为EFLAGS的32位寄存器。虚拟8086方式标志位恢复标志位80386扩展的标志位是VM和RF,它们的功能是:
虚拟8086方式位VM(Virtual8086Mode):当VM=1时,80386转为虚拟8086方式。只能在保护方式下用IRET指令将VM置1。恢复标志位RF(ResumeFlag):用于调试寄存器断点处理。当RF=1时,对执行下一条指令而言,一切故障调试均被忽略,在每条指令(除IRET、POPF、JMP、CALL、INT等指令)成功地完成后RF自动清0。4.段寄存器和段描述符寄存器
80386中用六个16位的段寄存器存放段选择器值,指示可寻址的存储空间。在保护方式下,分段大小在4GB之内变化。在实地址方式下,最大分段固定为64KB。
在任何时刻,可寻址的6段由段寄存器CS、SS、DS、ES、FS、GS的内容确定。CS中的内容指示当前代码段;SS指示当前堆栈段;DS、ES、FS、GS指示当前数据段。段寄存器如下图所示。图中右边是段描述符寄存器,每个描述符寄存器装有一个32位的段基地址,一个32位的段界限值,还有其他段属性。描述符寄存器与段寄存器一一对应。每当访问存储器时,段描述符自动介入访问处理,32位的段基地址变成计算线性地址的一个分量,32位界限值用于界限检查操作。不必去查表而得到段基地址,从而加快了存储器访问速度。图80386段寄存器和段描述符寄存器三、80486微处理器
80486微处理器是在80386微处理器的基础上改进并发展起来的32位机。内部寄存器和数据总线宽度都是32位,地址总线也是32位,使得可寻址的内存空间达到4GB。虚拟内存空间达到64TB。80486CPU将浮点运算部件(FPU)、8KB高速缓冲(Cache)存储器等集成在一块芯片内。
80486微处理器采用了一些新技术,如:RISC---ReducedInstructionSetComputer(精减指令集计算机)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合规学术探究与诚信交流承诺书6篇
- 护理专业授课能力竞赛模板
- 技术实施流程标准作业手册
- (新教材)2026年部编人教版三年级下册语文 第19课《肥皂泡》(第一课时) 教学课件
- 财产保护不挪用承诺书9篇范文
- 边缘计算部署与优化方案
- 技术开发流程管理操作手册
- 企业内外部沟通协调平台使用指南
- 职责任务高效完成承诺书8篇
- 534水彩花卉背景的“文艺の繁花”艺术教育培训公开课模板下载 2
- 第一单元第1课《认识标识》课件-一年级美术下册(苏少版2024)
- 新教科版小学四年级下册科学教案全册(计划及教学进度表)
- 无人机装调检修技术与人工智能应用课件:无人机人工智能应用场景
- 轨道交通 第三轨受流器 征求意见稿
- 《一元二次方程》复习2省公开课获奖课件说课比赛一等奖课件
- DL∕T 1659-2016 电力作业用软梯技术要求
- 小学国学经典《弟子规》第1课总叙()(部编)课件
- GB/T 748-2023抗硫酸盐硅酸盐水泥
- 渭南市东涧峪水库及输水管线工程环境影响报告
- 《摩托车和轻便摩托车用电线束总成》
- 新湘科版小学六年级下册科学同步全册教案
评论
0/150
提交评论