处理器是不是正在执行指令的最后一个机器周期
发布时间:2016/7/15 21:15:20 访问次数:859
①当前机器周期内,处理器是不是正在执行指令的最后一个机器周期,如果不是,则还需E28F016SA-100 5.0V要等到当前指令执行完成。例如,正在执行除法指令的第―个机器周期,则需要等待的机器周期数是3个机器周期(乘除法指令是4周期指令)。
②若当前正在执行ⅡrI指令或其他读/写与中断有关的寄存器IE、IP的指令,则需要在执行完该指令后,再执行一条指令,然后再转入中断服务子程序。当上述情况没有遇到或者己经完成等待后,会由硬件自动执行一个长跳转LCALL指令(2周期指令),跳转到相应的中断服务子程序入口地址,开始执行由用户编写的中断服务程序。综合上面的讨论,我们可以估计出,从中断申请到执行第一条中断服务程序的最短时间是3个时间周期(优先权扫描1个周期,LCALL指令2个周期)。最长的响应时间为8个机器周期,除了必需的3个机器周期外,考虑最坏的情况,比如执行ⅢⅡI的第一个机器周期,那么还必须1个机器周期去等待RETI指令完成,同时,执行完ⅢⅡI指令后还必须再执行一个指令,这个指令最长是一个4机器周期指令,那么总共还需要额外等待5个机器周期,加上必需的3个机器周期,可以估算出最长的等待时间为8个机器周期。所以中断响应时间为3~8个机器周期,可以参看图7.6。当然还有一种情况是,目前正在执行同级或者更高级别的中断服务子程序,则需要等到中断执行完毕,等待的时间将更长。不是最后一个机器周期,执行RETI、
①当前机器周期内,处理器是不是正在执行指令的最后一个机器周期,如果不是,则还需E28F016SA-100 5.0V要等到当前指令执行完成。例如,正在执行除法指令的第―个机器周期,则需要等待的机器周期数是3个机器周期(乘除法指令是4周期指令)。
②若当前正在执行ⅡrI指令或其他读/写与中断有关的寄存器IE、IP的指令,则需要在执行完该指令后,再执行一条指令,然后再转入中断服务子程序。当上述情况没有遇到或者己经完成等待后,会由硬件自动执行一个长跳转LCALL指令(2周期指令),跳转到相应的中断服务子程序入口地址,开始执行由用户编写的中断服务程序。综合上面的讨论,我们可以估计出,从中断申请到执行第一条中断服务程序的最短时间是3个时间周期(优先权扫描1个周期,LCALL指令2个周期)。最长的响应时间为8个机器周期,除了必需的3个机器周期外,考虑最坏的情况,比如执行ⅢⅡI的第一个机器周期,那么还必须1个机器周期去等待RETI指令完成,同时,执行完ⅢⅡI指令后还必须再执行一个指令,这个指令最长是一个4机器周期指令,那么总共还需要额外等待5个机器周期,加上必需的3个机器周期,可以估算出最长的等待时间为8个机器周期。所以中断响应时间为3~8个机器周期,可以参看图7.6。当然还有一种情况是,目前正在执行同级或者更高级别的中断服务子程序,则需要等到中断执行完毕,等待的时间将更长。不是最后一个机器周期,执行RETI、