《微机原理与汇编语言》课堂讲义(编号:003)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《微机原理与汇编语言》课堂讲义(编号:003)
2.最大模式下的总线的形成
现以PC/XT机为例,介绍最大组态下系统总线的形成。
最大组态下PC/XT计算机的总线形成如图2-7所示。
图2-7 最大组态下(PC/XT)的总线形成
注:1、#MRDC为存储器读信号,
#AMWC为存储器写信号;
#IORC为I/O设备读信号,
#AIOWC为I/O设备写信号。
最大模式与最小模式在对于存储器和
I/O设备的读写控制上有不同之处。
2、#AEN和CEN与DMA操作有关,当处
于DMA操作时,DMA控制器抑制8288
产生控制信号。
3.8086与8088的不同
(1)8088内部数据总线为16位,外部数据总线均为8位;8086是一个真正的16位微处理器,其内部数据处理和外部数据总线均为16位。
(2)8086的存储器组织,注意它分为偶、奇两个存储体,即所有的偶
地址单元集中于偶存储体,所有的奇地址单元集中于奇存储体。
偶
存储器用于存放低8位数据,奇存储器用于存放高8位数据。
偶、
奇存储体分别用引脚信号A0=0和BHE=0来选中,其数据线分别
连接着AD7~AD0和AD15~AD8,如图所示。
在进行“字访问”
时,偶地址的字访问可以一次完成,因为要访问的存储体与数据总
线是“对齐”的;
(3)8088的第34号引脚为SS0(HIGH),8086的对应引脚为BHE/S7,该引脚复用;在T1时输出信号有效时,表示高8位复用总线AD15~AD8将在后续的总线周期(T2~T4)里传送数据,由于仅在T1时出现,所以系统需要对它进行锁存;在T2~T4,该引脚输出状态信号S7,但系统未定义它的功能。
(4)在最小组态下,8088选择访问对象的信号为IO/M,而8086的对应信号为M/IO,前者是为了兼容8085CPU 而设计的。
(5)8088指令队列长度为4字节,当队列中有一个字节的空缺时,它将自动取指;并且队列中只要有一个指令字节,8088即开始执行指令。
8086的指令队列长度为6个字节,在出现两个字节的空缺时,它才会自动取址;
在队列中有两个指令字节时,才开始执行指令,这是由于8086的数据总线宽度为16位,一次可读取两个字节的缘故。
2.3 8086CPU总线的操作时序
【知识回顾】
时钟周期:计算机最小时间单位,若f
clk =4MHz,则T
clk
=0.25sμ,简记为T,称为“状态”;
机器周期:又称“总线周期”,指CPU完成一个基本操作的时间或分时复用总线上至少完成一次功能转换的时间,一个机器周期等于4T,即1sμ;
指令周期:执行一条指令所需要的时间,指令又可分为单周期指令(1个机器周期)、双指令周期等。
时序:主要用于阐述在一个总线周期内究竟发生了什么,它是指CPU在操作进行过程中各个环节在时间
上的先后顺序。
指令从存储器读入指令译码器,进行指令译码操作,是在时序的控制下一步一步
实现的。
计算机的一切操作都是在时序控制下进行的。
一般来说,主要产生的状态有以下五种:
存储器读、存储器写、I/O设备读、I/O设备写、中断响应。
2.3.1 8088最小模式下的总线时序
1.8088CPU最小模式下的总线读周期
图2-9为CPU从存储器或I/O端口读取数据的时序。
最基本的读操作包含4个状态,即T1、T2、T3和T4。
当存储器或I/O设备的速度慢于CPU速度时,在T3和T4状态之间插入1个或几个等待状态TW。
2.8088CPU最小模式下的总线写周期
图2-10为CPU从存储器或I/O端口写入数据的时序。
和读操作一样,最基本的写操作周期也包含4个T状态,若慢速的存储器或I/O端口来不及接收数据,也是在T3和T4状态之间插入一个或几个等待状态TW。
3、对于下面两个图的比较解释:
(1)AD
7~AD
先输出地址信号,再传输数据信号;
(2)T1表示地址输出阶段,T2表示状态输出阶段(控制信号),#RD、DT/#R、#DEN开始变得有效,T3为数据准备阶段,T4为总线结束阶段;
★(3)当READY信号无效时,会在T3和T4之间加插TW信号,不立即进入T4状态,在T3开始的时候检测READY信号,若无效,在T3结束的时候加插TW信号,进入TW周期后继续检测READY信号,等到有效后再进入T4阶段。
图2-9 图2-10
(4)对于读而言,由于地址和状态量都由CPU直接给出,而数据从外部取出,需要有一系列的准备时间,故会有一段延迟才会给出;对于写而言,数据亦由CPU给出,故不存在延迟。
(5)由于ALE早于地址信号有效而有效,早于地址信号无效而无效,故锁存器高电平触发。
★(6)DMA操作和中断操作信号的检测和加插:对于DMA操作,HOLD信号在每个总线周期T4开始时检测。
由于CPU正在进行总线访问时不能打断,只能在前次总线访问和下次访问之间即只能在本次T4后下次T1之间加插,故只能在T4开始时检测,又由于CPU需要一定的响应处理时间,在T4结束时关闭在总线连接,给出HOLD响应信号。
T是CPU执行的最小时间,中断和DMA操作必须在当前总线周期结束时加插(对于一条只需要一个总线周期就能执行的指令而言),由于DMA只是让出总线,总线结构并未改变而INTR则不同,所以INTR在当前指令结束的最后一个总线周期T4之前检测(一条执行的指令可能需要多个指令周期,这也是DMA比中断更易执行的原因:对于一条需要多个总线周期才能执行的指令而言,DMA在每个总线周期结束前的T4之前都会被检测,而INTR只是在当前指令结束的最后一个总线周期T4之前才被检测)。
2.3.2 8088最大模式下的总线时序
如果系统选择了最大组态,许多控制信号不再由8088直接提供,改由总线控制器8288提供,也就是说,系统总线将由8088和8288共同形成。
8088在最大模式下的总线读周期如图2-11所示,总线写周期如图2-12所示。
图2-11 图2-12
2.3.3 中断响应操作
1、可屏蔽中断的产生条件:(1)INTR需要有中断请求且必须要持续足够长时间已被CPU检测到,即必须有足够
长的中断请求信号;(2)IF=1;(3)当前指令结束;(4)特殊指令执行完不允许相应中断(如中断返回指令和对IF操作指令等)。
2、中断源:能够发出中断申请的设备或部件。
每个中断源有自己唯一的中断类型号,通过某种特殊的手段将中断
类型号放在数据总线上传输至CPU。
3、中断是由于某种原因要求CPU不再执行现在执行的程序而转去执行申请源所需要的程序。
申请源称为中断源,
转去执行的程序称为中断服务程序。
执行完中断服务程序后,CPU返回被中断的程序处继续顺序执行程序。
从CPU中止现行程序转到中断服务程序这一过程为中断响应周期,中断响应周期的时序图如下图所示。
第一个INTA:用来指示外部中断控制器,
告之它所发出的信号被响应;
型号送入DB(中断类型号读选通)。
控制器所决裁的中断优先级高的中断类
第二个INTA:把第一次指示的外部中断。