0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FIQ比IRQ快,为什么快呢?

电子工程师 来源:FPGA设计论坛 作者:FPGA设计论坛 2020-11-10 17:22 次阅读

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模式提供了更多的banked寄存器,r8到 r14还有SPSR,而IRQ模式就没有那么多,R8,R9,R10,R11,R12对应的banked的寄存器就没有,这就意味着在ARM的IRQ模式下,中断处理程序自己要保存R8到R12这几个寄存器,然后退出中断处理时程序要恢复这几个寄存器,而FIQ模式由于这几个寄存器都有banked寄存器,模式切换时CPU自动保存这些值到banked寄存器,退出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。

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5027

    浏览量

    117710
  • IRQ
    IRQ
    +关注

    关注

    0

    文章

    16

    浏览量

    10599
  • FIQ
    FIQ
    +关注

    关注

    0

    文章

    9

    浏览量

    2231

原文标题:FIQ和IRQ

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ADSP-CM403BSWZ-CF和ADSP BF518相比到底谁速度?

    1. 如题,ADSP-CM403BSWZ-CF(240Mhz)和SHARCDSP 比如ADSP-21479 (300Mhz)综合到底谁强?如果只浮点DSP性能(速度)?比如FIR,DFFT
    发表于 01-15 06:04

    使用c语言给单片机编写的程序在运行的时候if语句运行的还是switch语句执行的速度

    请问使用c语言给单片机编写的程序在运行的时候if语句运行的,还是switch语句执行的速度?在优化之前的人写的程序,有人看到程序中使用了大量的if条件判断语句,就说这个程序运行的效率低,写的不好!说switch语句好,执行效率高。请问是这样吗?但是我觉得对于单片机来说
    发表于 11-08 06:55

    Bl31中断处理流程概述

    中断处理需要软件和硬件配合完成,GICv3根据中断分组情况以及系统当前运行的异常等级确定中断是以IRQ还是FIQ触发。 CPU通过设置SCR_EL3.IRQ和SCR_EL3.FIQ确定
    的头像 发表于 11-07 17:43 287次阅读
    Bl31中断处理流程概述

    GIC中断 redistributor介绍

    是ARMv8-A的架构spec里,关于timer的图。我们可以看到,core的timer会发PPI,而中断控制器返回FIQ或者IRQ给core。细心的同学可能会问了,在redistributor上面
    的头像 发表于 11-07 17:38 274次阅读
    GIC中断 redistributor介绍

    8-100V 高压输入 5/9/20V 3A 12V/5A USB充方案#PD

    usbPD
    久宇盛电子
    发布于 :2023年10月25日 10:01:57

    如何在特权模式下用arm汇编指令使能和禁止irq中断?

    如何在特权模式下用arm汇编指令使能和禁止irq中断? 在 ARM 系统中,中断是非常常见的一种事件。在特权模式下,可以使用 ARM 汇编指令来使能或禁止 IRQ 中断。中断服务程序可以在中断发生
    的头像 发表于 10-19 16:42 784次阅读

    freerots任务怎么建才

    freerots任务怎么建才
    发表于 10-13 07:43

    IRQ domain支持几种映射方式

    IRQ domain IRQ domain用于将硬件的中断号,转换成Linux系统中的中断号(virtual irq, virq),来张图: 每个中断控制器都对应一个IRQ Domai
    的头像 发表于 09-28 15:21 296次阅读
    <b class='flag-5'>IRQ</b> domain支持几种映射方式

    arm处理器的异常模式包括哪些

    正确处理,处理器可能会崩溃或数据损毁。ARM处理器有七种异常模式,即:重置模式、用户模式、FIQ模式、IRQ模式、监督模式、中断模式和异常模式。 1. 重置模式 当ARM处理器启动时,它将进入重置模式。在这种模式下,处理器处于其最初状态
    的头像 发表于 09-05 16:22 2306次阅读

    推断FP32模型格式的速度CPU上的FP16模型格式是为什么?

    在 CPU 上推断出 FP32 模型格式和 FP16 模型格式。 FP32 模型格式的推断速度 FP16 模型格式。 无法确定推断 FP32 模型格式的原因 CPU 上的 FP16 模型格式
    发表于 08-15 08:03

    QCY40W氮化镓双头可折叠充头,收纳设计,出行携带更方便

    小红郡猪
    发布于 :2023年07月04日 10:09:43

    关于sw3518s充模块

    做了一块sw3518s100W全协议充开始很好没问题,现在触发充十几秒就保护重启 普通充电没问题,重启时安全插座灯亮跟短路样。大神们帮看下哪里的问题。谢谢了! 附上图纸,图纸4个mos管用的都是swt40n45d3n沟道mosfet管。
    发表于 06-19 14:55

    Linux Kernel的中断处理函数中是否会被其它程序(中断/异常)打断?

    当一个irq/fiq正在执行时 ,是否可能会其它的irq/fiq打断呢?
    的头像 发表于 06-07 17:27 750次阅读
    Linux Kernel的中断处理函数中是否会被其它程序(中断/异常)打断?

    iMX8M Plus USB口快充/充吗?

    iMX8M Plus USB口快充/充吗?
    发表于 05-19 06:37