关于“最大中断延迟”:当FIQ使能时,最坏情况是正在执行一条装载所有寄存器的指令“LDM”(它耗时最长),同时发生了FIQ和数据中止异常,在响应FIQ中断之前要先把正在执行的指令完成,然后先进入数据中止异常,再马上跳转到FIQ异常入口,所以延迟时间包含: (1)Tsyncmax,请求通过同步器的最长时间。为2个处理器周期(由内核决定); (2)Tldm,最长的指令执行需要的时间。Tldm在零等待状态系统中的执行时间为20个周期。注意,是在零等待状态系统中。一般的基于ARM7核的芯片的存储器系统比内核速度慢,造成其不是零等待的; (3)Texc,数据中止入口的时间。Texc为3个周期(由内核决定); (4)Tfiq,FIQ入口的时间。Tfiq为2个周期(由内核决定)。 “FIQ总的延迟时间”= syncmax +Tldm +Texc +Tfiq=27个周期 在40MHz处理器时钟时,最大延迟时间略少于0.7us。在此时间结束后,ARM7TDMI执行位于0x1C处的指令。 最大的IRQ延迟时间与之相似,但必须考虑到这样一种情况,当更高优先级的FIQ和IRQ同时申请时,IRQ要延迟到FIQ处理程序允许IRQ中断时才处理(可能需要对中断控制器进行相应的操作)。IRQ延迟时间也要相应增加。 关于“最小中断延迟”:FIQ或IRQ的最小中断延迟是请求通过同步器的时间Tsyncmin加上Tfiq(共4个处理器周期)。 |