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

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

3天內不再提示

介紹redistributor的相關知識

安芯教育科技 ? 來源:老秦談芯 ? 2023-02-08 09:25 ? 次閱讀

接下來該看redistributor了。

26a18cae-a74d-11ed-bfe3-dac502259ad0.png

圖1 GIC-600 redistributor

跟distributor連接的部分就不說了。Cpu\_active是指示cluster或core的狀態(tài),可以用于idle管理。ppi\_id用于多核設計時,區(qū)分每個redistributor。PPIs就是PPI中斷線,在GIC-600是這么描述PPI的:

26b70142-a74d-11ed-bfe3-dac502259ad0.png

圖2 PPI描述

從上面可以看出來,所謂的“私有”是說這些中斷信號是core專有的。對于PPI,ARMv8定義了三種規(guī)格,8,12和16。所以對于不同的core來說,可能PPI數量不一樣。

26dc3b10-a74d-11ed-bfe3-dac502259ad0.png

圖3Generic timer

上面是ARMv8-A的架構spec里,關于timer的圖。我們可以看到,core的timer會發(fā)PPI,而中斷控制器返回FIQ或者IRQ給core。細心的同學可能會問了,在redistributor上面沒有FIQ和IRQ的信號???其實在第一篇文章里就說了,在現有的GICv3架構下,關于中斷FIQ和IRQ,以及系統寄存器等放在了cluster/core端,對外留出了一組接口,叫cpu interface(在GICv2中實現在中斷控制器這一側),也就是圖1中最下面的接口。其實這是一組簡化的AXI4-Stream。

26eab53c-a74d-11ed-bfe3-dac502259ad0.png

圖4 GIC stream協議接口

由于是雙向,所以是兩組信號

27034e3a-a74d-11ed-bfe3-dac502259ad0.png

圖5redistributor到CPU的信號

27245e40-a74d-11ed-bfe3-dac502259ad0.png

圖6 CPU到redistributor的信號

既然是簡化的總線協議,為了更便于CPU和redistributor通信,ARM又規(guī)定了具體的數據包格式。下圖是CPU端發(fā)出的命令格式,具體的解釋請查閱GICv3的文檔,此處就不過多的貼圖了。

275078fe-a74d-11ed-bfe3-dac502259ad0.png

圖7 CPU interface命令

至此,就剩下最復雜的ITS了,這一部分是為了實現基于消息的中斷。前面介紹過,LPI是一種基于消息的中斷。也就是中斷信息不在通過中斷線進行傳遞。ITS就是要將接收到的LPI中斷進行解析。

276b357c-a74d-11ed-bfe3-dac502259ad0.png

圖8 GIC-600的ITS組件

既然是信息中斷,就一定要有區(qū)分這些中斷的方法,這樣才能找到合適的中斷處理對策。所以這里有兩個概念。

EventID,用來表示外設發(fā)送中斷的事件類型

DeviceID,用來表示哪一個外設發(fā)起LPI

而ITS需要將外設發(fā)送的DeviceID,eventID,通過一系列查表,得到LPI的中斷號,再使用LPI中斷號查表得到該中斷的目標CPU。為此,ITS需要維護幾張表,分別是device table,interrupt translation tableh和collection。

2781fce4-a74d-11ed-bfe3-dac502259ad0.png

圖9 ITS表

當外設寫GITS\_TRANSLATER寄存器,產生了LPI。這時ITS首先要拿著DeviceID,從device table中選擇索引為DeviceID的表項。從該表項中,得到interrupt translation table的位置;然后再根據EventID,從interrupt translation table中選擇索引為EventID的表項。得到中斷號,以及中斷所屬的collection號;最后,使用collection號,從collection table中,選擇索引為collection號的表項。得到redistributor的映射信息,最后根據collection表項的映射信息,將中斷信息路由發(fā)送給對應的redistributor。

最后,提一句,GICv3中開始支持親和性路由(affinity routing)。請原諒我偷點懶,直接把文檔中的部分貼出來:

27920210-a74d-11ed-bfe3-dac502259ad0.png

這里要解釋一下什么是親和性,我最初接觸這個概念的時候簡直是一頭霧水,直到有一天看操作系統相關的書才明白是咋回事(忽略我的無知吧~~)。CPU親和性是一種調度屬性(scheduler property),Linux調度器會根據affinity的設置讓指定的進程運行在"綁定"的CPU上,而不會在別的CPU上運行。其中有一個好處是,可以提高cache的命中率。當一個進程在某個CPU上運行時,會在該CPU的緩存中維護許多狀態(tài)。下次該進程在相同的CPU上運行時,由于緩存中的數據而執(zhí)行的更快。

因此,多處理器的調度器應該考慮這種親和性,盡可能的進程保持在同一個CPU上。同理,對于并發(fā)程序也是有好處的。感慨一下,做CPU設計,到了最后肯定要與操作系統相愛相殺,哈哈哈~~~





審核編輯:劉清

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

    關注

    134

    文章

    9097

    瀏覽量

    367604
  • 寄存器
    +關注

    關注

    31

    文章

    5343

    瀏覽量

    120385
  • 中斷
    +關注

    關注

    5

    文章

    898

    瀏覽量

    41505
  • gic
    gic
    +關注

    關注

    0

    文章

    14

    瀏覽量

    6273
  • FIQ
    FIQ
    +關注

    關注

    0

    文章

    9

    瀏覽量

    2308

原文標題:技術分享 | ARM系列 -- 中斷(三)

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

收藏 人收藏

    評論

    相關推薦

    電阻式傳感器原理及相關知識詳細介紹

    電阻式傳感器原理及相關知識詳細介紹 電阻式傳感器種類繁多,應用廣泛,其基本原理就是將被測物理量的變化轉換成電阻值的變化
    發(fā)表于 12-01 13:51 ?2478次閱讀

    STM***F3的USART部分相關知識介紹

    本文介紹STM***F3的USART(串口)部分相關知識。
    發(fā)表于 01-05 06:18

    介紹UG編程的基本操作及相關加工工藝知識

    UG編程基本操作及工藝介紹分析本章主要介紹UG編程的基本操作及相關加工工藝知識,讀者學習完本章后將會對UG編程知識有一個總體的認識,懂得如何
    發(fā)表于 09-01 06:36

    介紹PMIC硬件電路相關的一些知識

    PMIC 電源管理集成電路(Power Management IC)在之前項目中,驅動最小系統,對于PMIC這塊兒很懵懂,故抽時間查看一些優(yōu)秀博文及資料,加強對電源管理的理解。本文介紹 PMIC 硬件電路相關的一些知識,在此作一
    發(fā)表于 11-17 07:24

    介紹一下EMC相關知識

    部分更新從EMC概念、EMC標準、EMC測試的意義、EMC測試項目以及具體測試方法來介紹一下EMC相關知識(未更新完),對有源醫(yī)療器械研發(fā)、測試、注冊、法規(guī)、生產、體系等相關人員應該有
    發(fā)表于 12-29 07:23

    手機電池相關知識介紹

    手機電池相關知識介紹 一、手機電池的幾個重要概念 1、容量: 對一個手機電池來說最重要的參數就是它所能儲存的電量大小,該詞用專業(yè)術語
    發(fā)表于 10-26 16:59 ?1872次閱讀

    導線連接器相關知識介紹

    導線連接器相關知識介紹      現代汽車由于電控器件的不斷增多,其連接導線的數量也不可避免地呈增大趨勢,為保證導線連接的正確性
    發(fā)表于 11-27 10:08 ?1229次閱讀

    消毒柜相關知識

    消毒柜相關知識 為使大家進一步了解消毒柜基本知識,現簡單介紹一些消毒柜相關知識。  
    發(fā)表于 01-14 16:40 ?1346次閱讀

    現代雷達技術的相關知識

    介紹現代雷達技術的相關知識 有興趣的朋友可以下來參考下
    發(fā)表于 12-24 10:53 ?0次下載

    RRC和RB等LTE接口與承載相關基礎知識介紹

    本文介紹了LTE接口與承載相關基礎知識,介紹了E-RAB在LTE系統中的位置和組成以及RB的功能和管理等知識
    發(fā)表于 10-13 13:05 ?7次下載
    RRC和RB等LTE接口與承載<b class='flag-5'>相關</b>基礎<b class='flag-5'>知識</b><b class='flag-5'>介紹</b>

    復合管的相關知識介紹

    本文介紹了復合管的相關知識。
    發(fā)表于 11-23 14:58 ?12次下載
    復合管的<b class='flag-5'>相關</b><b class='flag-5'>知識</b>的<b class='flag-5'>介紹</b>

    043-ACMICPC相關知識

    043-ACMICPC相關知識(開關電源中高壓電容怎么選擇)-ACMICPC相關知識;ACMICPC相關
    發(fā)表于 07-26 11:56 ?12次下載
    043-ACMICPC<b class='flag-5'>相關</b><b class='flag-5'>知識</b>

    時鐘的相關知識

    幾乎稍微復雜的數字設計都離不開時鐘。時鐘也是所有時序邏輯建立的基礎。前面介紹建立時間和保持時間時也涉及過時鐘偏移的概念。下面將總結下時鐘的相關知識,以便更好的進行數字設計。
    的頭像 發(fā)表于 03-28 13:56 ?1980次閱讀
    時鐘的<b class='flag-5'>相關</b><b class='flag-5'>知識</b>

    GIC中斷 redistributor介紹

    跟distributor連接的部分就不說了。Cpu_active是指示cluster或core的狀態(tài),可以用于idle管理。ppi_id用于多核設計時,區(qū)分每個redistributor。PPIs
    的頭像 發(fā)表于 11-07 17:38 ?680次閱讀
    GIC中斷 <b class='flag-5'>redistributor</b><b class='flag-5'>介紹</b>

    Spring事務傳播性的相關知識

    本文主要介紹了Spring事務傳播性的相關知識
    的頭像 發(fā)表于 01-10 09:29 ?447次閱讀
    Spring事務傳播性的<b class='flag-5'>相關</b><b class='flag-5'>知識</b>