郑州大学微机原理第二章课件_第1页
郑州大学微机原理第二章课件_第2页
郑州大学微机原理第二章课件_第3页
郑州大学微机原理第二章课件_第4页
郑州大学微机原理第二章课件_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

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

文档简介

1第二章微处理器(CPU)

根据微型计算机的概念结构,微处理器是微机系统的核心部件,是处理实施的场所。它本身并不等于微型计算机存储器I/O接口输入设备I/O接口地址总线AB输出设备CPU数据总线DB控制总线CBI/O接口28086为16位CPU、AB宽度20位8086的编程结构从功能上分成两部分:*总线接口部件BIU(BusInterfaceUnit)*执行部件EU(ExecutionUnit)2.18086CPU结构

2.1.18086CPU的功能结构

3内部暂存器

IP

ES

SSDSCS输入/输出控制电路外部总线执行部分控制电路∑ALU标志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令队列执行部件(EU)总线接口部件(BIU)16位20位16位8位123456算术逻辑单元ALU:主要是加法器。大部分指令的执行由加法器完成。6字节的指令队列指令队列共6字节,总线接口部件BIU从内存取指令,取来的总是放在指令队列中;执行部件EU从指令队列取指令,并执行。20位地址加法器专用寄存器4总线接口部件BIU(BusInterfaceUnit)

功能:负责与存储器和I/O端口传送数据。

CPU的所有对外操作均由BIU负责进行,包括预取指令到指令队列、访问内存或外设中的操作数、响应外部的中断请求和总线请求等。执行部件EU(ExecutionUnit)功能:负责指令的译码和执行。该单元无直接对外的接口,要译码的指令将从BIU的指令队列中获取,除了最终形成20位物理地址的运算需要BIU完成功能外,所有的逻辑运算,包括形成16位有效地址EA的运算均由EU来完成。51、总线接口部件BIU

(BusInterfaceUnit)

组成:

4个段地址寄存器CS、DS、SS、ES

指令指针IP(16位的寄存器)

20位地址加法器 指令队列6字节(8086)或4字节(8088) 总线控制逻辑:

处理器与外界总线联系的转接电路6BIU功能:负责与内存、I/O端口传送数据。

总线接口部件要从内存取指令送到指令队列

当指令队列有两个空字节时,BIU自动取指令

CPU执行指令时,要配合执行部件从指定的内存单元或者外设端口中取数据,将数据传送给执行部件;把执行部件的操作结果传送给指定的内存单元或I/O口

20位地址加法器完成内存单元的物理地址PA的产生7

指令执行顺序顺序指令执行:指令队列存放执行指令后面的那一条指令。执行转移指令:BIU清除指令队列中的内容,从新的地址取入指令,立即送往执行单元。说明

指令队列

8086的指令队列为6个字节,8088为4个字节。指令按“先进先出”的原则顺序存放。

16位指令指针下一条指令的偏移地址,一般自动加一,或由指令改变。

总线控制电路

8EU的工作过程①若是运算操作:操作数→暂存器→ALU;运算结果→经“ALU总线”→相应Reg,并置FR。②若从外设取数:EU→BIU→访问MEM或I/O→内部通用寄存器→向“ALU数据总线”传送数据。从BIU的指令队列中取指→译码电路分析→相应控制命令→控制数据经过“ALU数据总线”的流向:2、执行部件EU(ExecutionUnit)组成: ALU、通用寄存器、专用寄存器、标志寄存器、指令译码逻辑(它负责指令的译码执行和数据运算。)9总线接口部件BIU和执行部件EU的动作管理

两个部件相互独立,并行工作,分别完成各自操作。两个部件相互配合,按照一定的规则,实现指令取指和执行的流水线操作。10取指令指令译码取操作数执行指令存放结果CPU执行一条指令的过程类似于工厂生产流水线,被分解为多个小的步骤,称为指令流水线。原料调度分配生产线成品仓库出厂数据和程序指令控制器的调度分配ALU等功能部件处理后的数据存储器输出流水线操作:指令的一般执行过程:11串行工作方式:8086以前的CPU采用串行工作方式:取指令1执行1取操作数2执行2CPUBUS忙碌忙碌忙碌忙碌存结果1取指令21)CPU访问存储器(存取数据或指令)时要等待总线操作完成

2)CPU执行指令时总线处于空闲状态缺点:CPU无法全速运行解决:总线空闲时预取指令,使CPU需要指令时能立刻得到12并行工作方式:8086CPU采用并行工作方式取指令2取操作数BIU存结果取指令3取操作数取指令4执行1执行2执行3

EUBUS忙碌忙碌忙碌忙碌忙碌忙碌实现的关键:指令缓冲队列(IPQ)BIU不断地从存储器取指令送入IPQ,EU不断地从IPQ取出指令执行EU和BIU构成了一个简单的2工位流水线13指令预取队列的存在使EU和BIU两个部分可同时进行工作,从而带来了以下两个好处:提高了CPU的效率降低了对存储器存取速度的要求新型CPU将一条指令划分成更多的阶段,以便可以同时执行更多的指令例如,PIII为14个阶段,P4为20个阶段(超级流水线)142.1.28086CPU的寄存器含14个16位寄存器,按功能可分为四类

4个数据寄存器

4个指针与编制寄存器

4个段寄存器(BIU)(IP:BIU)

2个控制寄存器(FR:EU)通用(EU)15数据寄存器8086含4个16位数据寄存器,它们也可分为8个8位寄存器:AXAH,ALBXBH,BLCXCH,CLDXDH,DL常用来存放参与运算的操作数或运算结果

执行部件(EU)设有8个通用寄存器,用于在运算过程中存放数据或地址指针。

数据寄存器(AXBXCXDX)地址指针寄存器(SPBP)变址寄存器(SIDI)1.通用寄存器16数据寄存器特有的习惯用法AX(Accumulator):累加器。多用于存放中间运算结果。所有I/O指令必须都通过AX与接口传送信息BX(Base):基址寄存器。间接寻址中用于存放基地址CX(Counter):计数寄存器。用于在循环或串操作指令中存放循环次数或重复次数;DX(Data):数据寄存器。在32位乘除法运算时与AX结合使用,存放高16位数;在间接寻址的I/O指令中存放I/O端口地址。地址指针寄存器SP(StackPointer)

:堆栈指针寄存器。栈顶的偏移地址(专用)BP(BasePointer):基址指针寄存器。常用于在访问内存时存放内存单元的偏移地址。

作为通用寄存器的一种,SP和BP可以存放数据。但它们更多地用于堆栈区的访问,与SS联用.1717变址寄存器SI(SourceIndex):源变址寄存器DI(DestinationIndex):目标变址寄存器变址寄存器常用于指令的间接寻址或变址寻址。特别是在串操作指令中,用SI存放源操作数的偏移地址,而用DI存放目标操作数的偏移地址。BX与BP在应用上的区别作为通用寄存器,二者均可用于存放数据;作为基址寄存器,BX通常用于寻址数据段,一般与DS或ES搭配使用;BP则通常用于寻址堆栈段,一般与SS搭配使用。182.段寄存器:用于存放逻辑段的段基地址8086CPU可直接寻址1M字节的存储器空间,直接寻址需要20位地址码,而所有内部寄存器都是16位的,只能直接寻址64K字节,因此采用分段技术来解决。将1M字节的存储空间分成若干逻辑段,每段最长64K字节。CS(CodeSegment)代码段寄存器:存放指令代码段基址

DS(DataSegment)数据段寄存器:存放数据段基址

ES(ExtraSegment)附加段寄存器:存放附加段基址

SS(StackSegment)堆栈段寄存器堆栈段开辟程序执行中所要用的堆栈区,采用先进后出(FILO)的方式访问它。各个段寄存器指明了一个规定的现行段,且不可互换使用。19控制寄存器IP(InstructionPointer)指令指针寄存器其内容为下一条要执行的指令的偏移地址FR(FlagRegister)标志寄存器状态标志:存放运算结果的特征控制标志:控制某些特殊操作

6个状态标志位(CF,PF,AF,SF,ZF,OF)3个控制标志位(TF,IF,DF)作用:存放ALU的操作结果的特征标志,这种标志可作为条件,用于判断是否控制程序转移。20状态标志寄存器(PSW)CFPFAFZFSFTFIFDFOF进位标志CF(CarryFlag):当结果的最高位(D15或D7)产生一个进位或借位,则CF=1,否则CF=0。溢出标志OF(OverflowFlag):当带符号数的运算结果超出-2n-1~2n-1-1

时,溢出,OF=1,否则OF=0。符号标志SF(SignFlag):结果的最高位(D15或D7)为1,则SF=1,否则SF=0。零标志ZF(ZeroFlag):若运算的结果为0,则ZF=1,否则ZF=0。奇偶标志PF(ParityFlag):若运算结果的低8位中‘1’的个数为偶数,则

PF=1,否则,PF=0。辅助进位标志AF(AuxiliaryFlag):在进行8位或16位数运算时,由低4位向高4位(D3向D4有进位或借位,则AF=1,否则AF=0。状态标志控制标志方向标志DF(DirectionFlag):

DF=1,串操作时地址自动减量;

DF=0,串操作时地址自动增量。中断允许标志IF(InterruptEnableFlag):IF=1,允许CPU接收外部中断请求,IF=0,屏蔽外部中断请求。追踪标志TF(TraceFlag):

TF=1,使处理进入单步方式,以便于调试。2121引脚定义的方法可大致分为:每个引脚只传送一种信息(RD等);引脚电平的高低为不同的信号(M/IO等);CPU工作于不同方式有不同的名称和定义(WR/LOCK

等);分时复用引脚(AD15

~AD0

等);引脚的输入和输出分别传送不同的信息(RQ/GT0,RQ/GT1等)。2.1.38086引脚信号与功能22外部特性表现在其引脚信号上,学习时请特别关注以下几个方面:⑴引脚的功能⑵信号的流向⑶有效电平⑷三态能力指引脚信号的定义、作用;通常采用英文单词或其缩写表示。信号从芯片向外输出,还是从外部输入芯片,或者是双向的起作用的逻辑电平:高、低电平有效上升、下降边沿有效输出正常的低电平、高电平外,还可以输出高阻的第三态8086微处理器有两种工作模式:最小模式(最小组态)最大模式(最大组态)两种模式构成两种不同规模的应用系统在CPU的引脚接线上也有所不同231、最小模式

最小模式用于由单微处理器组成的小系统。特点:在最小模式的系统中,由8086CPU直接产生系统所需要的全部控制信号。由于所有的控制信号都由8086直接产生,系统中的总线控制逻辑电路被减少到最少,因此系统结构简单。最小模式引脚大致分为:(1)数据和地址引脚(2)读写控制引脚(3)中断请求和响应引脚(4)总线请求和响应引脚(5)其它引脚248086GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND

VCCAD15A16/S3A17/S4A18/S5A19/S6BHE/S7MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET地址/数据线非屏蔽中断可屏蔽中断时钟地址状态线高8位数据总线允许/状态线读信号复位信号准备好信号:表示内存或I/O设备准备好,可以进行数据传输。测试信号:执行WAIT指令,CPU处于空转等待;TEST有效时,结束等待状态。最小最大模式控制MN/MX=1,最小模式MN/MX=0,最大模式中断允许信号地址锁存允许信号数据允许信号数据收发信号存储器/IO控制信号M/IO=1,选中存储器M/IO=0,选中IO接口写信号总线保持请求信号总线保持响应信号最小模式25

补充:指令周期——

一条指令从取出到执行完毕所持续的时间。机器周期——

CPU完成某个独立操作所需要的时间(取指,存储器读、写)。

时钟周期——CPU的基本时间计量单位,由μP的主频决定。例:主频5MHz,则T=200ns

一个指令周期由若干个机器周期构成。在8086/8088中,机器周期称为总线周期。一个基本总线周期由4个时钟周期T构成,称为T1、T2、T3和T4。T1:CPU经多路复用总线发地址信息,指出寻址单元或端口地址。T2:CPU从总线上撤消地址,成浮空状态(16位),而A19~A16

用来输出本总线周期状态信息。T3:连续提供状态信息,传送数据。T4:结束状态。26AD15~AD0(Address/Data)-地址/数据分时复用引脚,双向、三态在访问存储器或外设的总线操作周期中,这些引脚在第一个时钟周期输出存储器或I/O端口的低16位地址A15~A0其他时间用于传送16位数据D15~D0

(1)数据和地址引脚注意AD0--低8位数据的选通信号CPU的传输特性决定了:只要是和偶地址单元传输数据,则CPU必定通过数据总线的低8位(D7~D0)来传输数据。在T1状态,AD0输出低电平,表示在T2、T3、T4状态,低8位数据线D7~D0上的数据有效。27A19/S6~A16/S3(Address/Status)-地址/状态分时复用引脚,输出、三态这些引脚在访问存储器的第一个时钟周期输出高4位地址A19~A16在访问外设的第一个时钟周期全部输出低电平无效其他时间输出状态信号S6~S3S6:总为低电平。S5:表示了中断允许标志的状态。当IF=1时S5置1。S4和S3:指示是哪一个段寄存器正在被使用。28M/(InputandOutput/Memory)

-存储器或I/O访问,输出、三态该引脚输出高电平时,表示CPU将访问存储器,这时地址总线A19~A0提供20位存储器地址该引脚输出低电平时,表示CPU将访问I/O端口,这时地址总线A15~A0提供16位I/O端口地址8086与8088在这个信号是相反的(2)读写控制引脚

(Write)

-写控制,输出、三态、低电平有效有效时,表示CPU正在写出数据给存储器或I/O端口。

(Read)-读控制,输出、三态、低电平有效有效时,表示CPU正在从存储器或I/O端口读入数据。29M/、和是最基本的控制信号组合后,控制4种基本的总线周期总线周期M/存储器读高高低存储器写高低高I/O读低高低I/O写低低高30ALE(AddressLatchEnable)-地址锁存允许,输出、三态、高电平有效送给地址锁存器8282的控制信号,ALE在每个总线周期的T1输出高电平。由于地址信息在复用引脚上出现的时间很短暂,所以系统可以利用ALE引脚将地址锁存起来CLK(Clock)-时钟输入时钟发生器8284通过该引脚为CPU和总线控制器提供定时基准。最高频率对8086为5MHz。占空比0.33(1/3周期高电平,2/3周期低电平)。31

(DataEnable)-数据允许,输出、三态、低电平有效送给总线收发器8286的控制信号有效时,表示当前数据总线上正在传送数据,可利用他来控制对数据总线的驱动

DT/(DataTransmit/Receive)-数据发送/接收,输出、三态8086提供给8286的控制信号该信号表明当前总线上数据的流向高电平时数据自CPU输出(发送)低电平时数据输入CPU(接收)32READY

-存储器或I/O口就绪,输入、高电平有效在总线操作周期中,8088CPU会在第3个时钟周期的前沿测试该引脚如果测到高有效,CPU直接进入第4个时钟周期如果测到无效,CPU将插入等待周期TwCPU在等待周期中仍然要监测READY信号,有效则进入第4个时钟周期,否则继续插入等待周期Tw。

/S7(

BusHighEnable/Status)

-高8位数据允许/状态,输出,低电平有效在T1状态输出低电平时,选择奇地址存储体表示高8位数据线上数据有效

和AD0配合表示当前总线的使用情况。33(3)中断请求和响应引脚NMI(Non-MaskableInterrupt)

-不可屏蔽中断请求,输入、上升沿有效当系统发生紧急情况时,可通过它向CPU申请不可屏蔽中断服务有效时,表示外界向CPU申请不可屏蔽中断。不受IF的影响,CPU会在当前指令结束之后,去处理。INTR(InterruptRequest)

-可屏蔽中断请求,输入、高电平有效有效时,表示请求设备向CPU发出可屏蔽中断请求。CPU在每个指令周期的最后一个T状态对其采样,若为高电平,且IF=1则CPU在结束当前指令后去响应该中断,执行中断响应周期。34

(InterruptAcknowledge)

-可屏蔽中断响应,输出、低电平有效有效时,表示来自INTR引脚的中断请求已被CPU响应,CPU进入中断响应周期。中断响应周期是连续的两个总线周期,每个周期的T2、T3、TW都发出有效的低电平响应信号,以便通知外设他们的中断请求已被响应、并令有关设备将中断类型号送到数据总线。35(4)总线请求和响应引脚HOLD-总线保持(即总线请求),输入、高电平有效有效时,表示总线请求设备向CPU申请占有总线,CPU在每个T状态的上升沿检测HOLD。若CPU允许就会在当前总线周期的T4发出响应信号,同时让出总线的使用权该信号从有效回到无效时,表示总线请求设备对总线的使用已经结束,通知CPU收回对总线的控制权

HLDA(HOLDAcknowledge)-总线保持响应(即总线响应),输出、高电平有效有效时,表示CPU已响应总线请求并已将总线释放此时CPU的地址总线、数据总线及具有三态输出能力的控制总线将全都呈现高阻,使总线请求设备可以顺利接管总线待到总线请求信号HOLD无效,总线响应信号HLDA也转为无效,CPU重新获得总线控制权36

HOLD:当DMA操作或外部处理器要求通过总线传送数据时,HOLD信号为高,表示外界请求现有主CPU让出对总线的控制权

HLDA:当CPU同意让出总线控制权时,输出HLDA高电平信号,通知外界可以使用总线。同时,现有主CPU所有具“三态”的线,都进入浮空状态;当HOLD变为低电平时,现有主CPU也把HLDA变为低电平,此时它又重新获得总线控制权。HOLDHLDA

MEM

CPU

I/O

DMA37(5)其它引脚RESET-复位请求,

该信号有效,将使CPU复位到初始状态;指令队列清零,F、IP、DS、ES、SS清零,CS=FFFFH。该信号至少要维持4个时钟周期的高电平才能完成复位过程,之后,当它返回低电平时,CPU将重新开始启动。复位后CS=FFFFH、IP=0000H,所以程序入口在物理地址FFFF0H。复位后CPU内部内容标志位清除指令指针(IP)0000HCS寄存器FFFFHDS寄存器0000HSS寄存器0000HES寄存器0000H指令队列空输入、高电平有效38

-测试,输入、低电平有效该引脚与WAIT指令配合使用当CPU执行WAIT指令时,他将在每个时钟周期对该引脚进行测试:如果无效,则程序踏步并继续测试;如果有效,则程序恢复运行。即:WAIT指令使CPU产生等待,直到引脚有效为止通过引脚和WAIT指令,可使处理器与外部硬件的操作保持同步Vcc——电源输入,向CPU提供+5V电源GND——接地,向CPU提供参考地电平MN/(Minimum/Maximum)模式选择,输入接高电平时,8086引脚工作在最小模式;反之,8086工作在最大模式。

39“引脚”小结CPU引脚是系统总线的基本信号可以分成三类信号:16位数据线:D0~D1520位地址线:A0~A19控制线:ALE、DEN、DT/R、M/IO、WR、RD、READY、BHE、CLKINTR、INTA、NMI、HOLD、HLDAMN/MX、RESET、TEST、Vcc、GND40

8088CPU是双列直插式芯片,共有40条引脚;

引脚33决定工作模式:

接地,最大模式接+5V,最小模式

在两种模式下引脚24~31

有不同的名称和意义8088GNDA14A13A12A11A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND最大组态(最小组态)VCCA15A16/S3A17/S4A18/S5A19/S6(HIGH)(SSO)MN/MXRDRQ/GT0(HOLD)RQ/GT1(HLDA)LOCK(WR)S2(IO/M)S1(DT/R)S0(DEN)QS0(ALE)QS1(INTA)TESTREADYRESET8088引脚信号418088与8086引脚功能的区别

1.8086:16条地址/数据复用,引脚AD15~AD0。

8088:只有AD7~AD0

2.8086的PIN34:BHE/S78088中为:SS0PIN34是高8位数据总线的允许和状态信息复用引脚。

8086在T1时,CPU输出BHE有效信息,在T2、T3、TW和T4期间,CPU输出S7状态信息。S7低电平有效。在DMA工作方式,它为浮空状态。

3.8088:PIN28为IO/M,存贮器/输入输出信号,输出、三态。 当IO/M=0时,表示访问存贮器。 当IO/M=1时,表示访问I/O端口。

它和8086的PIN28(M/IO)意义正好相反。8088CPU中SS0与IO/M和DT/R一道,通过编码指示CPU在最小模式下的8种工作状态421、最小模式的典型配置——MN/MX引脚接+5V。2.1.48086系统配置8086CPU

总线收发器8286×2

地址锁存器8282×3

时钟发生器8284×14343DI7~DI0:8位数据输入;DO7~DO0:8位数据输出;STB:选通信号;OE:输出允许信号。地址锁存器Intel8282Intel8282是8位三态输出的透明锁存器

(类似有Intel8283和通用数字集成电路芯片74LS373)锁存器的输出能够跟随输入变化STB:选通信号,输入,下降沿有效

高电平时,锁存器是透明的由高—低的下降沿时,实现数据的锁存OE:输出允许信号,输入低电平时,允许锁存器从DO0~DO7上输出高电平时,锁存器输出为高阻状态448282与8086系统总线信号的连接AD7~AD0AD15~AD88086ALEA19/S6~A16/S38282STBA19~A16A15~A8A7~A08282STB8282STBOEOEOEBHEBHE需要锁存的内容包括20位地址和1位BHE信号,共需3片8282。3片8282的STB端都与8086的地址锁存允许信号ALE相连。3片8282的输入端分别和8086的AD0~AD15,A16/S3~A19/S6,BHE相连,输出为A0~A19的20条地址线和BHE控制线。A0~A19称为系统地址总线。在不用DMA控制器的8086单处理器系统中,8282的OE引脚接地45总线收发器Intel8286Intel8286是8位三态双向缓冲器(类似功能的器件还有Intel8287、74LS245等)A7~A0:输入/输出数据线B7~B0:输入/输出数据线T:控制数据传送方向,OE:输出允许信号468286有两组对称的数据引脚:A7~A0用于输入,B7~B0用于输出;也可以反方向传送,即B7~B0用于输入,A7~A0

用于输出。输出允许引脚OE:决定是否允许数据通过8286发送引脚T:控制数据的流向OE=0,导通

T=1A→BT=0A←BOE=1,不导通47BHEA19~A16AD15~AD0地址锁存储器8282(3片)BHEDT/R8286(2片)8086OETDENA0~A19D0~D158286与8086系统总线信号的连接A7~A0B7~B016条数据线需用两片8286收发器。AD0~AD15与8286的A数据端相连。

8286的B数据端相连的16条数据线D0~D15即为系统数据总线。两片8286的OE引脚与8086的数据允许信号DEN相连,发送引脚T与8086的数据收发信号DT/R相连。这样,当8086与存储器、IO端口数据传送时,DEN成为低电平,从而使OE有效,控制8286进行数据传送。48

当CPU向AD0~AD15上发送地址信息期间,无论是读周期还是写周期,加在OE端上的DEN信号均为高电平,使8286呈高阻状态,阻止地址信息通过8286进入系统数据总线。只有当CPU撤消地址信息之后,DEN

信号才由高电平变为有效低电平,允许数据通过8286进行传送。问题

何时成为有效低电平?49

如果是读周期,加在T端的DT/R信号在整个总线周期内保持低电平,8286进行反向传送,把被访问的存储单元或I/O端口的数据信息经过8286传送给CPU。若是写周期,DT/R信号在整个总线周期内保持高电平,8286进行正向传送,把CPU在地址/数据总线上发出的数据信息经过8286传送给系统数据总线。50

微机系统为了实现自身的功能,需要执行多种操作,这些操作均在统一的时钟信号CLK控制下,按时间顺序一步一步进行。了解CPU的操作时序,是掌握微机系统的重要基础,也是了解系统总线功能的手段。

时钟周期总线周期(重点)

指令周期2.1.58086CPU的时序

1、51(1)时钟周期如:8086的时钟频率为5MHz,故时钟周期为200ns。

相邻两个时钟脉冲上升沿(下降沿)之间的时间间隔称为时钟周期(ClockCycle),也称为T状态。由计算机的主频决定(主频的倒数),T状态是总线操作的最小时间单位。TCLK

每个T状态包括:下降沿、低电平、上升沿、高电平。52(2)总线周期8086CPU通过总线对外部(存储器或I/O接口)进行一次访问所需的时间称为一个总线周期。

CPU通过总线对外的各种操作称为总线操作。

8088的总线操作主要有:存储器读、I/O读操作存储器写、I/O写操作中断响应操作总线请求及响应操作53(3)指令周期CPU从内存取一条指令并执行该条指令所用的时间。不同指令的指令周期长度是不同的。

CPU每执行一条指令,至少要通过总线对存储器访问一次(取指令)。指令周期又可以划分为若干个总线周期。何时有总线周期?54任何指令的取指阶段都需要存储器读总线周期,读取的内容是指令代码。任何一条以存储单元为源操作数的指令都将引起存储器读总线周期,任何一条以存储单元为目的操作数的指令都将引起存储器写总线周期。只有执行IN指令才出现I/O读总线周期,执行OUT指令才出现I/O写总线周期。CPU响应可屏蔽中断时生成中断响应总线周期。何时有总线周期?

当指令队列满,且EU无总线请求时,CPU的BIU进入空闲状态Ti。

55一个基本的总线周期通常包括4个时钟周期即T1,T2,T3和T4。T1T2T3T4

一个总线周期

在每个T状态中,CPU执行不同的操作,具体来说:CLKT1状态:CPU把要访问的存储单元或I/O端口的地址输出到地址总线(A0~A19)上。且发出地址锁存信号ALE,和M/IO信号以区分存储器和IO操作

T2状态:撤销地址,将本总线周期的状态送高4位地址,发出读/写信号,控制数据的传送方向。

T3状态:数据出现在数据线(D0~D15)上。

T4状态:CPU完成读/写数据,本总线周期结束56

考虑到CPU和慢速的存储器或I/O接口之间传送的实际情况,8086具有在总线周期的T3和T4之间插入若干个附加时钟周期的功能。这种附加时钟周期称为等待时钟周期TW。

TW

状态:总线上保持T3时的信息状态。等待时钟周期TW

T1T2T3

Tw

Tw

TwT4CLKREADY前沿检测57在读写总线周期中,判断是否插入Tw:1.在T3的前沿(下降沿)检测READY引脚是否为有效高电平。2.如果READY无效,在T3和T4之间插入一个Tw

,转1。3.如果READY有效,执行完该T状态,进入T4状态。指令周期总线周期……总线周期时钟周期时钟周期时钟周期时钟周期…………总结58T4CLKT1T2T3TWA19~A16/S6~S3BHES6~S3A19~A16M/IO高M低IOALERDDT/RDEN高M低IO状态输出S6~S3A19~A162、存储器/IO读时序READY数据地址AD15~AD0数据输入地址输出BHE59A19~A16/S6~S3BHES6~S3A19~A16M/IO高M低IOCLKT1T2T3T4ALEWR高M低IO状态输出S6~S3A19~A16BHE数据地址AD15~AD0地址输出数据输出3、存储器/IO写时序DT/RDEN60

存储器写周期和存储器读周期的时序基本类似。不同点:

(3)写周期DT/R在T1输出高电平,持续整个写周期,它和T2有效的DEN相配合,选通8286的发送通道,使AD15~AD0的数据得以通过它发送到数据线上。

(2)写周期在T2状态,WR信号有效,进行写入。

(1)写周期在T2状态,CPU就把要写入存储器的数据,放在AD15~AD0上。

IO读/写总线周期与存储器读/写总线周期的时序基本类似,不同在于:

T1状态——输出16位I/O地址A15~A0,高四位A19~A16为低电平。同时M/IO输出低电平,表示I/O操作;614、系统的复位和启动操作

8086/8088的复位和启动是由引脚上的RESET信号触发的,触发时要求该信号至少维持4个时钟周期的高电平,如果是上电复位,则要求该信号至少维持50μs的高电平。无论何时,只要RESET一进入高电平,8086/8088CPU就会结束现行操作,开始复位,并且,只要RESET停留在高电平状态,CPU就维持在复位状态。复位时序为:628086/8088复位时总线信号的状态63复位时各内部寄存器的初值寄存器名称初值标志寄存器(PSW)清零指令指针(IP)0000HCS寄存器FFFFHDS寄存器0000HSS寄存器0000HES寄存器0000H其它寄存器0000H指令队列空

64

由表可见,复位时,代码段寄存器CS和指令指针IP的值分别被初始化成FFFFH和0000H。因此,8086/8088启动后从内存的FFFF0H处开始执行指令。一般在FFFF0H处放一条无条件转移指令,转移到系统程序的入口处。

复位时,标志寄存器被清零。

在时序上,RESET信号从高到低的跳变会触发CPU内部一个复位逻辑电路,经过7个时钟周期之后,CPU就被启动而进入正常工作,即从FFFF0H处开始执行程序。复位时各内部寄存器的初值655、中断响应周期

当①INTR脚为高电平,向CPU提出中断请求。

②IF=1,表示中断允许则CPU在执行完当前指令后响应中断,进入中断响应时序,其中包含两个中断响应周期:CPU在每条指令的最后一个时钟周期去检测INTR引脚

第一个周期:送INTA,表示①响应中断,②外设取消INTR信号用。

第二个周期:又送INTA,通知外设送中断类型码到低八位数据线上,以便CPU取得该中断服务程序入口地址,转入该中断服务。66

中断响应周期的几点说明:1、INTR是一个电平信号,必须维持2个时钟周期的高电平2、外设中断类型号通过低八位数据总线传给80863、在两个中断响应总线周期中,地址/数据/状态总线是浮空的,M/IO为低电平,ALE在每个总线周期的T1状态输出一个高电平脉冲4、INTR和HOLD信号同时出现时,总线保持请求服务优先5、软件中断和非屏蔽中断不是这种时序。67

CPU在每个时钟脉冲的上升沿测试HOLD引脚。

如HOLD为高,且CPU允许时,在当前总线周期的T4或Ti的下降沿发高电平的HLDA信号予以响应。CPU所有三态输出都进入高阻状态。总线使用权授予提出请求的主控设备,进入总线保持状态。直到该主控设备撤消总线请求为止。注意:在总线保持阶段,已在指令队列中的指令将继续执行,直到指令需要使用总线为止。6、总线请求和响应操作的总线周期(进入和退出保持状态的时序)

主控设备使用完后撤消HOLD。CPU在时钟脉冲的上升沿测试到低电平的HOLD信号后,使HLDA信号在该时钟脉冲的下降沿置为低电平。恢复总线控制权。但在执行一条总线操作之前,总线依然保持浮空状态。687、总线空闲周期

CPU不与MEM或I/O之间传送数据时,则不执行总线周期,BIU则不和总线打交道,此时进入总线空闲周期T。进入总线周期之前:①若当前是写周期,则在总线空闲周期中,地址/数据复用脚上还会继续有驱动前一个总线周期的数据D15~D0。②若当前是读周期,则在总线周期中,AD15~AD0处于高阻态。而S6~S3保持不变,维持前一个总线周期电平。在CPU内部,EU仍在工作。

所以总线空闲周期,是CPU总线空操作,BIU对EU的等待。69必须遵循以下原则:

1.8086的MN/MX引脚直接接高电平VCC;

2.8086的M/IO、RD、WR和INTA引脚直接接在MEM和I/O端口相应控制线上;

3.地址线、地址/数据线接到地址锁存器上(CPU的ALE→STB);4.经过数据总线驱动器接到数据总线上

(DEN、DT/R)。

5.8086CPU的CLK时钟由8284时钟发生器提供。

708086、8088的存储器空间20根地址线220=1MByte8086/8088率先打破微处理器只能访问64KB存储空间的限制,可寻址1MB。

00000H

FFFFFH

……A19地址A010010111001011010101972D5H2.28086CPU对存储器的管理972D5H

12H[972D5H]=12H物理地址..60000H60001H60002H60003H60004H...12HF0H1BH08H存储器的操作完全基于物理地址。问题:8088的内部总线和内部寄存器均为16位,如何生成20位地址?解决:存储器分段物理地址8088/8086:20根地址线,可寻址220(1MB)个存储单元,编号为00000H-FFFFFHCPU送到AB上的20位的地址称为物理地址

2.2.1存储器的分段管理方式

8086系统把存储空间分成多个逻辑段对逻辑段而言,段和段之间可以是连续的,若以64KB为一段,整个存储空间就分为16个段,也可以是分开的或重叠的,这样段的数目就不止16个。

对存储器单元而言,它可能出现在两个重叠的段中,但其实际地址是唯一的,这就涉及到段的管理策略。逻辑段是以首地址进行区分的,20位首地址既能便捷的采用16位寄存器进行存放,又能管理整个逻辑段。因此,首地址采用后4位为零的选择原则,即逻辑段的20位首地址能够被16整除。存储器分段高地址低地址段首地址段首地址段首地址段首地址最大64KB,最小16B段i-1段i段i+12.物理地址的形成

8086系统将段的20位起始地址的前16位(即去掉末尾的4个0)放在段寄存器中,称为“段基址”。

从段的首地址开始到段内某个单元的相对偏移位置,段内“偏移地址”,这个偏移地址也是一个16位地址,因此存储器的物理地址可通过计算得到(BIU中20位地址加法器完成功能)+物理地址=段基址×10H+偏址在程序和指令中往往采用逻辑地址表达存储器单元地址,由段基址和偏移地址组成。存储器单元的物理地址是唯一的,而逻辑地址是不唯一的。

逻辑地址段基地址和段内偏移组成了逻辑地址

段地址偏移地址(偏移量)

格式为:段地址:偏移地址物理地址=段基地址×16+偏移地址60002H00H12H60000H0000段基地址(16位)段首地址××ו••×××偏移地址=0002H根据物理地址的形成方法:段首物理地址在选择时要求能被16整除(即物理地址编号的低四位是0)

物理地址的形成......20000H25F60H25F61H25F62H25F63H2000H段基址逻辑地址段内偏移地址5F62H逻辑地址与物理地址段基址00003210150偏移地址基址加法器物理地址015019BIU的地址加法器774个段寄存器CS、DS、SS、ES

分别指示存储区起始地址(段基地址),用来识别当前可寻址的四个段,不可互换使用偏移地址可以放在指令指针寄存器IP中,或16位通用寄存器中由存储器中存放的信息属性,分成4种段,存放3类信息:代码数据中间结果和断点地址这4种段分别由4个段寄存器CS、DS、SS、ES来指定。3.逻辑地址来源78物理地址的形成操作在8086运行过程中,物理地址的形成因操作而异:取指令时,CPU就会选择代码段寄存器CS,再和指令指针IP的内容一起形成指令所在单元的20位物理地址堆栈操作时,CPU就会选择堆栈段寄存器SS,再和堆栈指针SP或者基址指针BP形成20位堆栈地址内存读/写数据时,CPU就会选择数据段寄存器DS或附加段寄存器ES,再加上16位偏移量(有效地址)形成操作数所在存储单元的20位物理地址。而16位偏移量,可以是包含在指令中的直接地址,也可以是某一个16位地址寄存器(SI、DI、BX)也可以是指令中的位移量加上16位地址寄存器中的值。79段寄存器和其他寄存器组合指向存储单元示意图(ES)

指令地址 (CS)*10H+(IP)

数据地址 (DS)*10H+EA

堆栈地址(SS)*10H+(SP)

附加段地址 (ES)*10H+EA

指令中逻辑地址来源操作类型正常使用或隐含段基址可替换段地址偏移地址物理地址计算取指令CS无IP(CS)16d+(IP)堆栈操作SS无SP、BP(SS)16d+(SP)BP间址SSCS,DS,ES有效地址EA(SS)16d+EA存取变量DSCS,ES,SS有效地址EA(DS)16d+EA源字符串DSCS,ES,SSSI(DS)16d+(SI)目标字符串ES无DI(ES)16d+(DI)EA:依据寻址方式由计算得到[例]:已知CS=1055H,DS=250AH,ES=2EF0H,SS=8FF0H,

DS段有一操作数,其偏移地址=0204H,

1)画出各段在内存中的分布

2)指出各段首地址

3)该操作数的物理地址=?10550H250A0H2EF00H8FF00HCSSS

CSDSES解:

各段分布及段首址见右图所示。操作数的物理地址为:

250AH×10H+0204H=252A4H82设当前执行的程序中某条指令的物理地址为2A1F3H,则程序所在的段的段地址=?当前CS的内容为多少?解:(有多个解,求出任意一个即可)思考题:设当前数据段位于存储器的A8000H到B7FFFH的地址空间,问DS的内容应是什么才能访问该数据段的所有存储单元?2A1F3H=2A10H×10H+00F3H

所以,段地址=2A10H,CS的内容为2A10H

想一想,还有哪些解?分段组织的好处可使大部分指令只涉及16位地址,减少指令长度.为程序的浮动装配创造了条件.(新的软件在内存的任何区域都可正确运行)

要求:

系统根据当时内存情况自动将新引入的软件装配在合适的地方.(MS-

温馨提示

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

评论

0/150

提交评论