捷比信高精密电阻EE / RX / RJ 电阻产品与技术资料联系业务人员

FIQ比IRQ快,为什么会更快?

FIQ和IRQ是两种不同类型的中断。为了支持这两种不同的中断,ARM提供了相应的处理器模式,称为FIQ和IRQ(ARM具有7种处理模式)。在通用中断控制器中,我们可以配置连接到控制器的中断输入是FIQ还是IRQ,因此可以将中断指定为FIQ或IRQ。出于某种原因,要求系统响应速度更快,并且处理自身所需的时间也短。将短中断设置为FIQ,否则将设置IRQ。如果将中断设置为IRQ,则在生成中断时,中断处理器会通过IRQ请求线告知ARM ARM知道即将出现IRQ中断,然后ARM切换到IRQ模式以运行。同样,如果将中断设置为FIQ,则在生成中断时,中断处理器会通过FIQ请求线告知ARM,ARM知道FIQ中断即将到来,然后切换到FIQ模式运行。一个简单的比较是FIQ比IRQ更快。为什么会更快? ARM的FIQ模式提供了更多的存储寄存器,从r8到r14和SPSR,而IRQ模式没有对应于R8,R9,R10,R11,R12的那么多存储寄存器,这意味着在ARM在IRQ模式下,中断处理程序本身必须保存寄存器R8至R12,然后程序在退出中断处理程序时必须恢复这些寄存器。在FIQ模式下,由于这些寄存器具有存储区寄存器,因此CPU将自动切换模式。将这些值保存到存储的寄存器中,并在退出FIQ模式时自动恢复,因此FIQ在此过程中比IRQ更快。 FIQ的优先级高于IRQ。如果同时生成FIQ和IRQ,将首先处理FIQ。在Symbian系统中,当CPU处于FIQ模式下以处理FIQ中断时,预取指令异常,未定义指令异常,软件中断被禁用,并且所有中断都被屏蔽。因此,FIQ将被快速执行,并且不会被其他异常或中断打断,因此它比IRQ更快。 IRQ是不同的。当ARM处理IRQ模式以处理IRQ中断时,如果FIQ中断请求到来,正在执行的IRQ中断处理程序将被抢占,并且ARM切换到FIQ模式以执行FIQ,因此FIQ也比IRQ快。很多。另外,FIQ的入口地址为0x1c,IRQ的入口地址为0x18。