CPU中断响应时间
发布时间:2014/6/8 20:56:34 访问次数:3715
中断响应时间。CPU不是在任何情况下都对中断请求予以响应,而且不同的情况下对中断响应的时间也是不同的。现以外部中断为例,说明中断响应的最短时间。
在每个机器周期的ssP2期间,INTO和INT1引脚的电平被锁存到TCON的IEO和IE1标志位,CPU在下一个机器周期才会查询这些值。这时,如果满足中断响应条件,SAA6713AH/V1则下一条要执行的指令将是一条长调用指令。长调用指令本身要花费两个机器周期。这样,从外部中断请求有效到开始执行中断服务程序的第一条指令,中间要隔3个机器周期,这是最短的响应时间。
如果遇到中断受阻的情况,则中断响应时间会更长一些。例如,一个同级或高优先级的中断正在进行,则附加的等待时间将取决于正在进行的中断服务程序。如果正在执行的一条指令还没有进行到最后一个机器周期,则附加的等待咐间为1—3个机器周期。因为一条指令的最长执行时间为4个机器周期(MUL和DIV指令)。如果正在执行的是RETI指令或者是读/写IE或IP的指令,则附加的时间在5个机器周期之内(为完成正在执行的指令,还需要1个机器周期,加上为完成下一条指令所需的最长时间为4个机器周期,故最长为5个机器周期)。
若系统中只有一个中断源,则响应时间在3~8个机器周期之间。
中断响应任务。中断系统硬件自动完成下列任务,以实现响应:
①将相应触发器置1(以阻断后来的同级或低级的中断请求)。
②执行一条硬件LCALL指令,即把程序计数器PC的内容压入堆栈保护,再将相应的中断服务的入口地址送入。
80C51中断源的中断服务入口地址是由硬件设计人员规定好的,如表6-6所示。不难发现,两个入口地址之间的距离为8,也就是说一个中断服务程序的占用空间不能超过8个存储单元。这在实际应用中肯定是不够的,所以通常在中断入口地址单元处放一条无条件转移指令(如AJMP指令),使中断服务程序可灵活地安排在64KB程序存储器的任何空间。
中断响应时间。CPU不是在任何情况下都对中断请求予以响应,而且不同的情况下对中断响应的时间也是不同的。现以外部中断为例,说明中断响应的最短时间。
在每个机器周期的ssP2期间,INTO和INT1引脚的电平被锁存到TCON的IEO和IE1标志位,CPU在下一个机器周期才会查询这些值。这时,如果满足中断响应条件,SAA6713AH/V1则下一条要执行的指令将是一条长调用指令。长调用指令本身要花费两个机器周期。这样,从外部中断请求有效到开始执行中断服务程序的第一条指令,中间要隔3个机器周期,这是最短的响应时间。
如果遇到中断受阻的情况,则中断响应时间会更长一些。例如,一个同级或高优先级的中断正在进行,则附加的等待时间将取决于正在进行的中断服务程序。如果正在执行的一条指令还没有进行到最后一个机器周期,则附加的等待咐间为1—3个机器周期。因为一条指令的最长执行时间为4个机器周期(MUL和DIV指令)。如果正在执行的是RETI指令或者是读/写IE或IP的指令,则附加的时间在5个机器周期之内(为完成正在执行的指令,还需要1个机器周期,加上为完成下一条指令所需的最长时间为4个机器周期,故最长为5个机器周期)。
若系统中只有一个中断源,则响应时间在3~8个机器周期之间。
中断响应任务。中断系统硬件自动完成下列任务,以实现响应:
①将相应触发器置1(以阻断后来的同级或低级的中断请求)。
②执行一条硬件LCALL指令,即把程序计数器PC的内容压入堆栈保护,再将相应的中断服务的入口地址送入。
80C51中断源的中断服务入口地址是由硬件设计人员规定好的,如表6-6所示。不难发现,两个入口地址之间的距离为8,也就是说一个中断服务程序的占用空间不能超过8个存储单元。这在实际应用中肯定是不够的,所以通常在中断入口地址单元处放一条无条件转移指令(如AJMP指令),使中断服务程序可灵活地安排在64KB程序存储器的任何空间。
上一篇:中断服务程序的入口地址