色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ARM CORE支持中斷嵌套嗎?GIC中斷控制器支持中斷嵌套嗎?

安芯教育科技 ? 來源:Arm精選 ? 2024-08-07 09:29 ? 次閱讀

以下文章來源于Arm精選 ,作者baron

說明:

在默認情況下,本文講述的都是ARMV8-aarch64架構,gicv3, linux kernel 5.14

思考:你是否想過這樣的一個場景:當一個中斷正在處理事務時,又來了一個高優先級中斷把它搶占了?也就是所謂著中斷嵌套。很多人可能都會說“這種場景當然存在了”,但現實中真的存在嗎?不要被網上的博客或書上的一些章節所誤導,今天我們拋開事務看本質,從以下方面著手進行討論:

ARM CORE支持中斷嵌套嗎

GIC中斷控制器支持中斷嵌套嗎?

Linux Kernel操作系統有沒有使用中斷嵌套?

在介紹之前,我們先記下幾個共識(也就是常識,本文不做重復介紹的):

FIQ和IRQ具有同樣的優先級,FIQ只是一種中斷類型,并非所謂著快速中斷。

1、ARM CORE支持中斷嵌套嗎?

首先來看ARM CORE支持中斷嵌套嗎?答案 支持! 但是是有一個前提,在進入中斷處理時,PSTATE的I、F、A等比特位是MASK的,軟件中需要主動unmask后,那么就可以中斷嵌套了。如下圖所示,正是ARM Core支持中斷嵌套的一個示例(或者叫模型):

wKgZomayzjCAbruAAALLD5rSKbg755.png

2、GIC中斷控制器支持中斷嵌套嗎?

繼續看GIC中斷控制器支持中斷嵌套嗎?答案 支持中斷搶占,支持中斷嵌套!。

2.1、先介紹以下優先級和搶占的概念

每個 INTID(中斷號) 都有一個優先級(用寄存器GICD_IPRIORITYn 或 GICR_IPRIORITYn 表示),它是一個 8 位無符號值。0x00 是可能的最高優先級,0xFF 是可能的最低優先級

每個 PE 在其 CPU interface中都有一個優先級掩碼寄存器 (ICC_PMR_EL1)。該寄存器設置將中斷轉發到該 PE 所需的最低優先級。只有優先級高于寄存器值的中斷才會發送給 PE

GICv3 架構具有 運行優先級的概念。當 PE 響應中斷時,它的運行優先級變為該中斷的優先級。當 PE 寫入 EOI 寄存器之一時,運行優先級將返回其先前值。如果 PE 尚未處理中斷,則運行優先級為空閑優先級 (0xFF)。只有優先級高于運行優先級的中斷才能搶占當前中斷

2.2、Without preemption :即關閉搶占,disable running priority

在Without preemption的情況下,高優先級的中斷無法搶占正在active的中斷,只能等active的中斷執行完了、返回了,高優先級的中斷才能發生"搶占"(這里還說搶占,合適嗎?此種情況應屬于搶占pendding中斷)。如下圖所示,便是一個示例:

高優先級的中斷 無法搶占active的中斷

等待active的中斷執行完畢返回了,高優先級的中斷才能發生搶占(也就是搶占pendding中斷)

wKgZomayzjmADbzDAAGd-Q8LuU8039.png

雖然你關閉了搶占,但優先級仍然存在,仍然會發生作用

搶占正在pendding中斷的示例, 這種情況下,一個高優先級的中斷可以搶占一個低優先級的pendding中斷,并非搶占正在執行的中斷,搶占后高優先級的中斷變成pendding。而我們大多數人所說的中斷嵌套是指,一個中斷正在執行時,被另外一個中斷給搶占了。

當 CPU interface上的一個低優先級中斷處于pendding狀態時,更高優先級的中斷也可能會變為pendding狀態。Redistributor 可以為新的更高優先級中斷發送 Set 命令。此 Set 命令將取代之前的 Set 命令,導致 CPU interface為較低優先級的中斷發出 Release。下圖顯示了此類場景的示例。該示例假設 INTID Y 的優先級高于 INTID X。

wKgZomayzk-ASBQQAAGkwZRNNrw364.png

2.3、With preemption

接下來就看 搶占正在active中斷的示例,描述的其實就是:一個中斷正在執行,然后另一個更高優先級的中斷打斷了它, 這也就是正是我們所說的中斷嵌套。

在考慮搶占時,運行優先級的概念很重要。當一個高優先級中斷被發送給一個已經在處理一個低優先級中斷的 PE 時,就會發生搶占。 搶占為軟件帶來了一些額外的復雜性,但它可以防止低優先級中斷阻塞更高優先級中斷的處理。

wKgaomayzlGAcBGBAAHuyycud7o572.png

2.4、那么對于一個gicv3的IP,優先級肯定是有的,它到底是Without preemption 還是With preemption呢?如何配置的呢?

請查略ICC_BPRn_EL1寄存器,該寄存器定義優先級值字段分成兩部分的點,即組優先級字段和子優先級字段。組優先級字段確定組 1 中斷搶占。 換句白話來解釋就是,中斷優先級被分成了兩部分,如下圖所示,ICC_BPRn_EL1寄存器的BIT[2:0]定義了下圖中的N的值

wKgZomayzmWAL-DwAAC8dcnYUlU192.png

對于搶占,僅考慮Group優先級位。Subpriority優先級位被忽略. 然后舉一個例子:

INTID A has priority 0x10

INTID B has priority 0x20

INTID C has priority 0x21

如上有三個中斷,A可以搶占B,但B不可以搶占C,因為B和C的Group priority是一樣的

wKgZomayzm6ABEArAAIWnxcHE7I271.png

3、 Linux Kernel操作系統有沒有使用中斷嵌套?

繼續看Linux Kernel操作系統有沒有使用中斷嵌套?答案 沒有使用!

首先查看ICC_BPRn_EL1寄存器的配置:

wKgZomayznaAXXzPAAFt5-w3KI0935.png

寫入的是0,也就是意味著,N=0, 即下圖的第一行,也就是說搶占是開啟的。

wKgaomayzn-AEXrJAAFUHaS9ja4581.png

繼續看,針對每一個 INTID(中斷號) 的priority的配置,如下所示,在gic初始化階段,給每一個 INTID(中斷號) 都配置成了一樣的優先級,值位0XA5。也就是所有中斷的優先級都是一樣的。

wKgaomayzoaAJTVmAADavH0WhP4232.png

事實上,在gicv3代碼中,提供了一個接口,可以單獨針對某一中斷設置優先級。

查略該函數用途,僅僅是為NMI中斷設置的(注:Linux Kernel中armv8體系目前還沒有該中斷,ARMV9新增了一類NMI中斷),其值為0Xa5 & 0x7f = 0x25,該值小于0XA0,所有該優先級大于其它中斷的優先級。

wKgZomayzo-AcmJRAAIUF0-r28k353.png

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9156

    瀏覽量

    368555
  • 控制器
    +關注

    關注

    112

    文章

    16442

    瀏覽量

    179018
  • Linux
    +關注

    關注

    87

    文章

    11339

    瀏覽量

    210119
  • 中斷嵌套
    +關注

    關注

    0

    文章

    7

    瀏覽量

    6867

原文標題:ARM體系中是否支持中斷嵌套

文章出處:【微信號:Ithingedu,微信公眾號:安芯教育科技】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    嵌套向量中斷控制器NVIC

    8 嵌套向量中斷控制器NVIC
    發表于 04-28 09:23

    ARM中斷控制器

    系統)、hypervisor模式(虛擬化)。 中斷控制器的CPU interface 每一個cpu核都對應一個GIC的cpu interface,cpu interface支持的可編程接口如下: 1
    發表于 08-29 08:39

    NVIC嵌套向量中斷控制器

    文章目錄前言一、NVIC 嵌套向量中斷控制器二、EXIT 外部中斷控制器三 、外部中斷實驗1)初始化用來產生中斷的GPIO2)初始化EXTI
    發表于 08-16 08:32

    STM32的NVIC嵌套向量中斷控制器與EXIT外部中斷控制器介紹

    NVIC是什么?NVIC嵌套向量中斷控制器有何功能?EXIT外部中斷控制器是什么?有何功能?
    發表于 11-16 09:37

    NVIC嵌套向量中斷控制器介紹

    一、NVIC 介紹NVIC 英文全稱是 Nested Vectored Interrupt Controller,中文意思就是嵌套向量中斷控制器,它屬于 M3 內核的一個外設,控制著芯片的中斷
    發表于 12-07 07:51

    簡要介紹配置嵌套向量中斷控制器

    配置嵌套向量中斷控制器static void NVIC_Configuration(void)//OK{NVIC_InitTypeDef NVIC_InitStructure; /* 嵌套向量
    發表于 02-22 08:14

    ARM CoreLink GIC-500通用中斷控制器技術參考手冊

    GIC-500是一個構建時可配置的中斷控制器,最多支持128個內核。GIC-500僅支持實現ARMv8架構的內核,以及具有標準
    發表于 08-02 14:02

    華芯微特MCU的嵌套向量中斷控制器與外部中斷/事件控制器的使用方法

    01. 嵌套向量中斷控制器(NVIC) NVIC的全稱是Nested vectoredinterrupt controller,即嵌套向量中斷控制器。 Cortex-M0和Cortex
    的頭像 發表于 06-04 12:08 ?3626次閱讀
    華芯微特MCU的<b class='flag-5'>嵌套</b>向量<b class='flag-5'>中斷控制器</b>與外部<b class='flag-5'>中斷</b>/事件<b class='flag-5'>控制器</b>的使用方法

    MCU中斷嵌套總結--51,STM32,DSP,ARM

    MCU中斷嵌套總結--51,STM32,DSP,ARM一、51單片機1、默認中斷優先級(邏輯優先級)為:2、IP寄存設置了某一位(物理優先
    發表于 11-05 20:35 ?7次下載
    MCU<b class='flag-5'>中斷</b><b class='flag-5'>嵌套</b>總結--51,STM32,DSP,<b class='flag-5'>ARM</b>

    中斷控制器的驅動解析(上)

    這里主要分析 linux kernel 中 GIC v3 中斷控制器的代碼(drivers/irqchip/irq-gic-v3.c)。設備樹先來看下一個中斷控制器的設備樹信息:
    發表于 12-04 16:36 ?10次下載
    <b class='flag-5'>中斷控制器</b>的驅動解析(上)

    扒開 ARM 中斷控制器的底褲

    GIC 硬件原理GIC,Generic Interrupt Controller。是ARM公司提供的一個通用的中斷控制器。主要作用為:接受硬件中斷
    發表于 12-04 17:36 ?6次下載
    扒開 <b class='flag-5'>ARM</b> <b class='flag-5'>中斷控制器</b>的底褲

    細說STM32的中斷控制器(NVIC)那些事

    ?1、什么是NVIC?來自《CM3技術參考手冊》的官方資料回答:即嵌套向量中斷控制器(Nested Vectored Interrupt Controller)。說白了NVIC的功能就是中斷優先級
    發表于 01-14 15:54 ?6次下載
    細說STM32的<b class='flag-5'>中斷控制器</b>(NVIC)那些事

    ARM通用中斷控制器規范手冊

    本規范描述了ARM通用中斷控制器GIC)體系結構。在本文檔中,對GICGIC的引用是指實現此GIC
    發表于 06-02 11:03 ?1次下載

    關于ARM中斷控制器的介紹

    GIC 硬件原理 GIC,Generic Interrupt Controller。是ARM公司提供的一個通用的中斷控制器。主要作用為:接受硬件中斷
    的頭像 發表于 07-08 09:34 ?2363次閱讀

    LPC800前生今世 第三章-嵌套式向量中斷控制器

    嵌套式向量中斷控制器 NVIC: Nested Vectored Interrupt Controller 中斷是所有的 M CU 都必須具備的功能,由于非常重要的地位, ARM 公司
    的頭像 發表于 09-21 11:55 ?973次閱讀
    LPC800前生今世 第三章-<b class='flag-5'>嵌套</b>式向量<b class='flag-5'>中斷控制器</b>
    主站蜘蛛池模板: 国产69精品久久久久妇女| 用震蛋调教女性下面视频| 精品午夜国产福利观看| 丰满艳妇亲伦| 99久久精品免费国产一区二区三区| 亚洲精品成人| 天美传媒色情原创精品| 日韩黄色免费| 日本69xxxx| 嗯好大好猛皇上好深用力| 久久99免费视频| 九九热视频免费| 久久人妻AV一区二区软件| 国色天香视频在线社区| 国产精品A久久久久久久久| 敌伦小芳的第一次| 国产AV亚洲精品久久久久| 97亚洲狠狠色综合久久久久| 中国二级毛片| 7723日本高清完整版在线观看| 亚洲伊人成综合人影院| 亚洲综合色五月久久婷婷| 伊人久久国产免费观看视频| 亚洲中文字幕永久在线| 亚洲精品国产SUV| 在线日本v二区不卡| 中国人泡妞www免费| 99热这里只有的精品| 国产 亚洲 日韩 欧美 在线观看 | 欧美日韩中文在线字幕视频| 嫩草电影网嫩草影院| 精品视频在线观看视频免费视频| 久久99re2在线视频精品| 欧美亚洲精品午夜福利AV| 入禽太深视频免费视频| 双性诱受灌满哭求饶BL| 亚洲福利视频导航| 97精品国产亚洲AV超碰| 国产乱码二卡3卡四卡| 久久精品中文闷骚内射| 欧美同志高清vivoeso|