The reason why FIQ (fast interrupt) in ARM responds faster than IRQ (normal interrupt)

Publisher:达文西happyLatest update time:2022-08-02 Source: csdnKeywords:ARM  FIQ  IRQ  response Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

What are FIQ and IRQ

FIQ (fast interrupt) and IRQ (normal interrupt) are two processor modes in ARM processors. ARM has 7 processing modes. Both modes are used to handle interrupts. The concept of interrupts will not be elaborated here. If you are not familiar with ARM's exception handling mechanism and registers, it is recommended to read the blog "Detailed Explanation of ARM's 37 Registers and Exception Handling Mechanism". The following content will involve related concepts.


Difference between FIQ and IRQ

Essentially, both are interrupts, but FIQ has a higher priority than IRQ, and the response time of FIQ is also faster than IRQ. Simply put, FIQ is the VIP in IRQ and enjoys privileges. In ARM, you can generally set an interrupt as FIQ. When an interrupt is set as FIQ, it can jump the queue, and the next interrupt to be processed is FIQ. Some can even directly interrupt the currently processed IRQ. This is divided into preemptive and non-preemptive.


Why are interrupts divided into FIQ and IRQ

Today's systems need to interact with users frequently, and the user experience depends largely on the response time. Imagine how you would feel if the system takes a minute to respond after you click the mouse. The system does not know when an interrupt will occur. When multiple interrupts occur, the system usually handles the interrupts in the order in which they occur. However, the urgency of the interrupts is different. For example, two interrupts are generated now, one is generated by the background program, and the other is when the user clicks the mouse. If you handle the interrupt generated by the background program first and then respond to the mouse, the user will feel that the system is stuck and the response is very slow. In fact, it is no big deal if the background program is processed slowly, and the user is not in a hurry now. In this case, we can respond to the mouse first and set the mouse to FIQ to improve the user experience.


The reason why FIQ responds faster than IRQ

1. FIQ has a higher processing priority than IRQ and can even interrupt the executing IRQ;

2. FIQ mode has its own unique registers, while IRQ needs to share registers with other modes, which will be faster in the protection/recovery scene of interrupt processing;

3. In the exception vector table, FIQ is at the very end. In the exception vector table, IRQ can only store the first address of the interrupt handler, and a jump is required when IRQ occurs; while FIQ is at the very end, so the interrupt handler in FIQ mode can be directly stored next to it, so there is one less jump when processing FIQ.

Keywords:ARM  FIQ  IRQ  response Reference address:The reason why FIQ (fast interrupt) in ARM responds faster than IRQ (normal interrupt)

Previous article:ARM chip development learning (S5PV210) - icache, dcache introduction and how to turn on and off icache
Next article:ARM chip learning (S5PV210 development) - GPIO control LED

Recommended ReadingLatest update time:2024-11-16 07:50

2. Simple implementation of assembly code
The reason for using assembly is very simple, that is, the efficiency of assembly code. When the machine starts, the efficiency of assembly is used to initialize the hardware and provide conditions for loading the kernel. There are currently two commonly used ARM assembly instructions: *
[Microcontroller]
2. Simple implementation of assembly code
ARM processor stack and function call, and comparison with Sparc
STACK AND FUNCTIONS In this part we will look into a special memory region of the process called the Stack. This chapter covers Stack's purpose and operations related to it. Additionally, we will go through the implementation, types and differences of functions in ARM. The stack is a special memory a
[Microcontroller]
ARM processor stack and function call, and comparison with Sparc
Panasonic Automotive Electronics Systems and Arm Join Forces to Promote Standardization of Software-Defined Vehicles
Panasonic Automotive Systems Co., Ltd. (PAS) and Arm recently announced a strategic collaboration to jointly promote the standardization of software-defined vehicle (SDV) architecture. Based on a common vision, the two parties are committed to co-creating a flexible software stack that can meet current and fut
[Automotive Electronics]
New Arm GPUs Unleash Gaming and AI Innovation in Consumer Electronics Devices Market
As an integral part of people's daily digital lives, Arm GPUs enable everything from immersive gaming on today's smartphones to all kinds of edge artificial intelligence (AI) experiences. Arm partners have shipped more than 10 billion GPUs, and this outstanding achievement is attributed to our industry-leading ecosy
[Embedded]
New Arm GPUs Unleash Gaming and AI Innovation in Consumer Electronics Devices Market
【Technical Support】Building the Qt environment for ARM9 development board
Note: Do not use the QT that comes with the package or installed using apt-get. If there is any, delete it. The development board must be able to mount NFS. This article uses other people's teaching materials, but I have slightly modified them. Because when I first looked for files to do it, I found many mistakes th
[Microcontroller]
Arm: Focusing on efficient computing platforms, we work together to build a sustainable future
The development of technologies such as artificial intelligence (AI), cloud computing, and edge computing is driving innovation and upgrading in all walks of life. This process is also accompanied by a sharp increase in demand for computing resources, which has led to new challenges in energy consumption and envir
[Embedded]
Latest Microcontroller Articles
  • Download from the Internet--ARM Getting Started Notes
    A brief introduction: From today on, the ARM notebook of the rookie is open, and it can be regarded as a place to store these notes. Why publish it? Maybe you are interested in it. In fact, the reason for these notes is ...
  • Learn ARM development(22)
    Turning off and on interrupts Interrupts are an efficient dialogue mechanism, but sometimes you don't want to interrupt the program while it is running. For example, when you are printing something, the program suddenly interrupts and another ...
  • Learn ARM development(21)
    First, declare the task pointer, because it will be used later. Task pointer volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • Learn ARM development(20)
    With the previous Tick interrupt, the basic task switching conditions are ready. However, this "easterly" is also difficult to understand. Only through continuous practice can we understand it. ...
  • Learn ARM development(19)
    After many days of hard work, I finally got the interrupt working. But in order to allow RTOS to use timer interrupts, what kind of interrupts can be implemented in S3C44B0? There are two methods in S3C44B0. ...
  • Learn ARM development(14)
  • Learn ARM development(15)
  • Learn ARM development(16)
  • Learn ARM development(17)
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号