1、是指信号高低电平(有效或无效)变化及相互间的时间顺序关系。,时序(Timing):,CPU时序决定系统各部件间的协调与同步。,总线时序描述CPU引脚如何实现总线操作。,2.3.3 8086CPU的总线操作时序,总线操作是指CPU通过总线对外的各种操作。,描述总线操作的微处理器时序有三级:,指令周期,总线周期,时钟周期,2.3.3 8086CPU的总线操作时序,时钟周期:CPU的基本时间单位。 总线周期:CPU访问一次存储器单元或I/O端口所需要的时间。 基本总线周期:由4个时钟周期组成,即称4个T状态,即T1,T2,T3,T4。通常CPU进行一次读写操作只需4个T。例如: 8086CPU的主频
2、是5MHZ,一个时钟周期就是200ns; 80186的主频是10MHZ,一个时钟周期就是100ns;,2.3.3 8086CPU的总线操作时序,T1:CPU发出地址信息,指出要访问的存储器或I/O端口的地址;,T2:CPU撤消地址信息,准备传送数据;,T3:BIU与存储器或I/O端口传送数据;,T4:传送数据并结束本总线周期。,2.3.3 8086CPU的总线操作时序,扩展总线周期:(1)等待周期TW存储器与I/O接口的速度跟不上CPU的读写速度, 就应加等待周期,在总线周期的T3和T4之间插入。(2)空闲周期Ti系统总线处于空闲状态时,即执行空闲周期Ti。 在两个总线周期之间插入。指令周期:
3、是指一条指令经取指、译码、读写操作数到执行完 成的全过程。若干总线周期组成一个指令周期。,基本总线周期由4个T状态组成:T1、T2、T3、T4,等待时钟周期Tw,在总线周期的T3和T4之间插入,空闲时钟周期Ti,在两个总线周期之间插入,等待周期,2.3.3 8086CPU的总线操作时序,课堂思考1: 何时有总线周期?,任何指令的取指阶段都需要存储器读总线周期,读取的内容是指令代码;,任何一条以存储单元为源操作数的指令都将引起存储器读总线周期,任何一条以存储单元为目的操作数的指令都将引起存储器写总线周期;,只有执行IN指令才出现I/O读总线周期,执行OUT指令才出现I/O写总线周期;,CPU响应
4、可屏蔽中断时生成中断响应总线周期。,课堂思考2: 为什么需要扩展总线周期?,CPU总线周期采用同步时序 各部件都以系统时钟信号为基准; 当相互不能配合时,快速部件(CPU)插入等待状态等待慢速部件(I/O和存储器)。CPU与外设接口常采用异步时序 它们通过应答联络信号实现同步操作。,总线操作中实现时序同步是关键!,2.3.3 8086CPU的总线操作时序,一个微型机系统要完成各种任务,其中有一些操作是最基本的。8086的主要的基本操作有:,系统的复位与启动操作;存储器、I/O读写操作;中断响应操作。,80868088的复位和启动操作是在RESET引脚 上加上触发信号来执行的。,2.3.3 80
5、86CPU的总线操作时序,一、系统复位与启动时序,标志寄存器 : 清零指令指针(IP): 0000HCS: FFFFHDS、ES、SS : 0000H指令队列 : 空其它寄存器 : 0000H 复位脉冲的有效电平(高)必须超过4个时钟周期(开启电源引起的复位时间大于50s),2.3.3 8086CPU的总线操作时序,一、系统复位与启动时序,复位后地址总线浮空 复位后,第一条指令的地址: 物理地址为 FFFF0+0000H(IP中)=FFFF0H一般在FFFF0中,存放一条段交叉直接JMP指令,转移到系统程序实际开始处。这个程序往往实现系统初始化、引导监控程序或者引导操作系统等功能,这样的程序叫
6、做引导和装配程序。,2.3.3 8086CPU的总线操作时序,一、系统复位与启动时序,2.3.3 8086CPU的总线操作时序,二、存储器的读周期时序,例:MOV AL,1000H ;M/IO=1T1状态:A19A0上是地址信息,出现ALE信号后,将地址锁存到地址锁存器(8282)。 T2状态:地址信息消失,A19A16从地址信息变为状态信息S6-S3。数据允许信号DEN在T2状态有效。 T3状态:AD0AD15上出现数据。此时RD信号有效即为0。 TW状态:若存储器的工作速度较慢,不能满足基本时序要 求,使用一个产生READY的电路,以使在T3状态之后,插入一个等待周期TW。 T4状态:CP
7、U采样数据,结束一个总线周期。,2.3.3 8086CPU的总线操作时序,二、存储器的读周期时序,例:MOV 1000H, AL ;M/IO=1T1状态:A19A0上是地址信息,出现ALE信号后,将地址锁存到地址锁存器(8282)。 T2状态:地址信息消失,A19A16从地址信息变为状态信息S6S3。 T3状态:AD0AD15上出现数据。WR信号有效(WR=0)。 TW状态:若存储器或外设的工作速度较慢,不能满足基本时序要求,使用一个产生READY信号的电路,以使在T3状态之后,插入一个等待周期TW。 T4状态:CPU认为数据已写入存储器,结束一个总线周期。,2.3.3 8086CPU的总线操
8、作时序,三、存储器的写周期时序,I/O接口读写周期时序与存储器读写周期时序类似。 仅M/IO不同例1:IN AL,40H M/IO=0,RD=0,ALE=1例2:OUT 43H,AL M/IO=0,WR=0,ALE=1,2.3.3 8086CPU的总线操作时序,四、I/O接口的读写周期时序,8086/8088 I/O 的读/写周期时序与M 读/写周期的主要差异是什么? 8086 CPU读写总线周期各包含多少个时钟周期?什么情况下需要插入 Tw 等待周期? 应插入多少个Tw,取决于什么因素?什么情况下会出现空闲状态Ti ?,课堂思考:,外部中断通过INTR或NMI向CPU申请中断。执行中断响应周
9、期。,2.3.3 8086CPU的总线操作时序,五、中断响应周期时序,第一个中断响应周期 T1状态:AD15AD0浮空;IF=1,给出中断响应信号INTA。第二个中断响应周期:被响应的外设数据线送一个字节的中断矢量类型,CPU读入后,从中断矢量表上找到服务程序的入口地址。,2.3.3 8086CPU的总线操作时序,五、中断响应周期时序,思考题:,8086/8088CPU在响应外界中断请求后,需要 进入中断响应周期,分析该周期有什么特点?,8086的中断响应要用两个总线周期。如果在前一个总线周期中,CPU接收到外界的中断请求信号,而中断允许标志IF正好为1,并且正好一条指令执行完毕,那么,CPU
10、会在当前总线周期和下一个总线周期中,从 引腿上往外设接口各发一个负脉冲。这两个负脉冲都将从T2一直维持到T4状态开始。外设接口收到第二个负脉冲以后,立即把中断类型码送到数据总线的低8位D7D0上,通过CPU的地址/数据引腿AD7AD0传输给CPU。这两个总线周期的其余时间, AD7AD0是浮空的。,2.4 8086CPU的存储器和I/O组织,一、存储器的标准结构存储器单元结构,0 1 4 9 16 25 36,数据段,0200,0201,0202,0203,0204,0205,0206,8086CPU 一次可访问16位 数据,即两个存储单元;通常,多个字节的数据存 放规则是:高位在高端低位在低
11、端,2.4 8086CPU的存储器和I/O组织,三、8086存储器的分段,2.4 8086CPU的存储器和I/O组织,三、8086存储器的分段,已知:(DS)= 091DH,(SS)= IE4AH(CS)= 091DH,(SP)= 0024H(IP)= 0012H , (SI)= 0032H,求:正常情况下,取指令的地址是?操作数的地址是?堆栈段的地址是?,2.4 8086CPU的存储器和I/O组织,三、8086存储器的分段,四、逻辑地址与物理地址,2.4 8086CPU的存储器和I/O组织,四、逻辑地址与物理地址,2.4 8086CPU的存储器和I/O组织,一端浮动,指向最后被压入堆栈的数据
12、所在存储单元(栈顶的位置随堆栈中存放数据多少而变化),用来指示当前栈顶的位置。(压入的数据放入哪个单元或从哪个单元弹出数据均由SP决定),堆 栈 段,SS,Bottom,XX,XX,XX,XX,栈底:一端固定,具有最大地址的单元(数据由此向上堆积),栈顶:,堆栈指针:,五、堆栈结构,2.4 8086CPU的存储器和I/O组织,SP-2 SP ;栈顶向上浮动数据(SS:SP),(SS:SP) R/M SP+2 SP数据 ;栈顶向下回落,1、进栈,把数据压入堆栈,在栈顶进行,2、出栈,从栈顶取出数据送入R/M,执行堆栈指令PUSH和POP时,指令地址是由SP给出当前栈顶的偏移地址,故将SP称为堆栈指针寄存器。,BP则是用来存放位于堆栈段中的一个数据区基址的偏移地址的,故将BP称做基址指针寄存器。,五、堆栈结构,2.4 8086CPU的存储器和I/O组织,“后进先出”,2、FFFF0HFFFFFH 共16个字节用于存放系统复位后执行的第一条指令JMP,六、存储区分配,2.4 8086CPU的存储器和I/O组织,I/O接口与I/O端口I/O端口地址:8086只用低16位地址线独立编址存储器与I/O端口编址方式,七、存储器与I/O组织,