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

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

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

3天內不再提示

系統里面有多少個Timer?

Linux閱碼場 ? 來源:Linux閱碼場 ? 作者:Baron ? 2022-06-29 09:47 ? 次閱讀

說明:

本文講述的是armv8-aarch64、armv9架構在設計模式上,本文帶有一些個人的見解,如有不同的見解,可以評論區或微信群參與討論。

思考:

1、一個大的系統里,有多少個Timer?這些Timer的作用分別是什么?這些Timer有什么區別?它們的精確度有什么不同嗎?

2、Linux Kernel的Tick使用的是哪個Timer?watchdog是用的哪個Timer?

3、一個ARM Core里有又多少個Timer?不同軟件系統中的Timer的使用方式有何不同嗎?

4、應用程序中的 setitimer()這樣的函數是否會調用到底層程序?

5、應用程序要讀取當前系統時間戳的時候,是否需要調用到kernel space? 在glibc中是否就可以實現了?

6、什么是arch timer?什么是SOC Timer、apb timer、memory-mapped timer?

7、對于arch timer,又分為物理timer和虛擬timer?那么什么時候使用物理timer,什么時候使用虛擬timer?為什么?

8、EL1和S-EL1中使用的arch timer是如何隔離的?(這里所說的隔離是指寄存器如何隔離的,中斷如何隔離的)9、EL3 Physical Timer對應的寄存器為什么是xxxEL1, 不應該是xxxEL3嗎?

1、系統里面有多少個Timer?

7d4eeb96-f73f-11ec-ba43-dac502259ad0.png

如上圖所示,在一個SOC中一定/可能存在:

core timer(也叫arch timer),每個core中都有這個Timer

SOC Timer(也叫apb timer、memory-mapped Timer),可能會有多個,可以存在以下這樣的:

(1) 、一個專門給Non-secure 使用的timer

(2) 、一個專門給Secure 使用的timer

(3) 、一個專門用于特定用途的timer

(4) 、綁定core的Timer,例如8個timer,固定某個timer給某個core使用

2、每一個core里面又有多少個Timer

2.1、四個物理Timer

7d6acfd2-f73f-11ec-ba43-dac502259ad0.png

EL1 Physical Timer不區分secure和non-secure,但在ATF的switch cpucontext的時候,會保存和恢復相關寄存器,所以從軟件視角來看是有兩套寄存器,也就是有non-secure EL1PhysicalTimer和secure EL1PhysicalTimer,這也是最最理想的設計方案。然而非常非常非常非常的遺憾的是,寄存器通過軟件switch cpucontext可以變成2套,但中斷呢?中斷是無法同時給non-secure和secure同時使用的,也無法做到中斷在Security State之間的隔離。既然這樣,說明這樣的硬件是一個"非常嚴重"的問題,那么我們看下軟件是怎么使用的呢?

(1)Linux Kernel正常使用,在讀取counter值、counter頻率的同時,也會設置CTL、CVAL、TVAL等相關寄存器,也會觸發和處理30中斷(EL1 Physical Timer的默認中斷號是30);

(2)optee中,僅僅是讀取counter值、counter頻率的同時,就可以計算時間戳了。optee不會讀取CTL、CVAL、TVAL等相關寄存器,當然也不會觸發和處理30中斷了。

以上便是軟件基于“硬件缺陷”而進行的設計,自然也不會出現什么問題。然后你說ARM Timer有缺陷就有缺陷了?你真的懂它們的設計嗎?事實上ARM的設計中,也考慮了上面描述的問題。你仔細看看它的EL3PhysicalTimer,他的寄存器的名字竟然是xxx_EL1(而不是xxx_EL3),也就是說它本身就是想給secure security用的(EL3也屬于secure security)。另外我也參考了具體的arm core trm手冊,發現EL3PhysicalTimer所對應的中斷號(29號中斷)的signal configuration描述為"Secure EL1 Pyhsical Timer"。我們再查一下BL32(Secure EL1)的參考程序trusted-firmware-a/bl32/tsp/tsp_timer.c, 它操作的也正是EL3PhysicalTimer。

總結:

(1)、EL1PhysicalTimer不區分secure和non-secure,在secure和non-secure之間也無法做到隔離。一般情況下它是給NS-EL1使用的。當然S-EL1如果是僅僅讀取counter和頻率獲取當前時間戳,也是可以用的,但這不應該是建議的。因為這樣造車non-secure也可以竊取到secure側的時間戳。

(2)、EL3PhysicalTimer的本意就是想給secure用的,包括EL3和S-EL1

EL2 Physical Timer給non-secure EL2使用的

S-EL2 Physical Timer給secure EL2使用的

EL3 Physical Timer給Secure使用的,包括EL3和S-EL1

2.2、三個虛擬Timer

7d7f9d0e-f73f-11ec-ba43-dac502259ad0.png

EL1VirtualTimer主要是給EL1 OS(guest os)使用的,那么對于一個操作系統,它到底是使用 EL1PhysicalTimer還是使用 EL1VirtualTimer ? 由宏控決定,在編譯的時候就決定了。例如你這個OS沒有跑在VM中,那么就使用 EL1PhysicalTimer,如果你這個OS是要跑在VM中的,那么就使用 EL1VirtualTimer

7d92ed50-f73f-11ec-ba43-dac502259ad0.png

EL2PhysicalTimer是很好理解的,就是給EL2管理程序使用的嘛,但是 EL2VirtualTimer是給誰用的呢? 這里就需要一點虛擬化的概念了, EL2VirtualTimer是給Host App使用的。

審核編輯 :李倩

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

    關注

    31

    文章

    5336

    瀏覽量

    120235
  • Timer
    +關注

    關注

    1

    文章

    64

    瀏覽量

    12784

原文標題:圖解SOC中的Timer(一):系統里有哪些Timer?

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    功放里面有Dc Detect(直流檢測)是什么意思?

    請問下,功放里面有Dc Detect(直流檢測)是什么意思?謝謝!
    發表于 11-05 08:10

    Pcm1861里面有寄存器要配置嗎?

    Pcm1861里面有寄存器要配置嗎,pcm 1861與pcm1865的資料放在一塊分不清楚了
    發表于 10-28 07:59

    網線里面有幾根線

    網線內部通常由8根線組成,這些線也被稱為芯線。它們通常是成對出現的,形成4對雙絞線,具體顏色對分別為白橙和橙、白綠和綠、白藍和藍、白棕和棕。以下是對網線內部結構的詳細解釋: 一、線對與顏色編碼 每對雙絞線中的兩根線顏色不同,這種顏色編碼有助于在布線和維護過程中輕松識別和區分不同的線對。 顏色的不同也有助于減少電磁干擾(EMI)和串擾(crosstalk),提高信號傳輸的質量。 二、網線類型與應用 雖然標準的網線內部是8根線,但在某
    的頭像 發表于 10-14 09:47 ?316次閱讀

    TPA3118底噪里面有滋滋聲音,為什么?

    TPA3118底噪里面有滋滋聲音,電源的輸入電容很靠近芯片了,然后總是有滋滋聲
    發表于 10-12 08:09

    使用PCM5121,里面有用DSP的功能,這個芯片怎么使用?

    大家好! 我需要用到這芯片,里面有用DSP的功能,但是里面的濾波系數手冊沒有說明清楚,是否可以不需要經過這個DSP模塊后直接輸出給DAC?或者給出濾波器的使用詳細信息。感謝!!
    發表于 10-09 09:44

    freertos最多支持多少個任務

    FreeRTOS是一輕量級的實時操作系統(RTOS),其設計初衷就是為了提供簡單、可靠且高效的實時任務管理。關于FreeRTOS最多支持多少個任務的問題,實際上并沒有一固定的上限,
    的頭像 發表于 09-02 14:21 ?848次閱讀

    軟件開發分為多少個階段

    軟件開發分為多少個階段 第一階段:需要分析及確認階段 系統需要分析階段,明確項目需求,確保所有利益相關者對項目目標、功能、性能、安全、用戶接口等方面有共同的理解和期望。 需求分析:對收集到的需求
    的頭像 發表于 08-21 14:27 ?311次閱讀

    請問sdk里面有支持bignum運算的函數嗎?

    sdk里面有支持bignum運算的函數嗎?
    發表于 07-12 08:08

    esp32的blufi例程里面有沒有接口可以接收藍牙廣播包?

    esp32的blufi例程里面有沒有提供接口接收外部藍牙遙控發過來的藍牙廣播包。
    發表于 06-11 08:17

    CYW43455最多可以掃描多少個SSID?

    芯片:CYW43455 請問掃描的 SSID 數量上限是多少? 如果不考慮射頻因素,最多可以掃描多少個 SSID? 可掃描所有 ap)。
    發表于 06-04 07:02

    CYW20829最多有多少個外部中斷?

    CYW20829 最多有多少個外部中斷?
    發表于 05-23 06:13

    visual programmer軟件里面有option Byte字節是什么含義?

    1、st visual programmer 軟件里面有option Byte 字節是什么含義?2、工具欄上面6編程用的按鈕,such as “read current tab
    發表于 04-28 08:34

    cybt343026-01最多能scan到多少個

    我想問一下cybt343026-01的模塊,scan的話,最多能scan到多少個
    發表于 03-01 06:44

    TC377可以運行多少個時鐘周期?

    我正在使用 TC377 主板,我想分析一功能。 它運行多少個時鐘周期? 不知道該怎么做。
    發表于 01-30 08:09

    LTC6804最多能支持多少個電池串聯?

    關于LTC6804,技術文檔里面提到堆疊式架構能支持幾百電池,請問具體最多能支持多少個電池串聯?謝謝!
    發表于 01-05 10:19
    主站蜘蛛池模板: 日本特交大片免费观看| 男生J桶进女人P又色又爽又黄| 黄色a级免费网站| 狠狠射首页| 久久综合视频网站| 欧美zzzoooxxx| 色狠狠AV老熟女| 亚洲国产在线2020最新| 永久免费的无码中文字幕| 国内精品视频久久久久免费| 国产亚洲欧美在线观看三区 | 理论片午午伦夜理片I| 嫩草影院地址一地址二| 日欧一片内射VA在线影院| 亚洲1卡二卡3卡4卡新区在线| 用震蛋调教女性下面视频| a级精品九九九大片免费看| 国产精品爆乳尤物99精品| 精品区2区3区4区产品乱码9| 免费亚洲视频| 无码日韩人妻精品久久蜜桃入口| 亚洲一区综合图区| chinese东北老年tv视频| 国产女人视频免费观看| 开心片色99xxxx| 视频一区精品自拍亚洲| 在线 自拍 综合 亚洲 欧美| 成人免费肉动漫无遮网站| 花蝴蝶在线高清视频观看免费播放| 男女亲吻摸下面吃奶视频| 少妇高潮A片特黄久久精品网| 亚洲午夜精品久久久久久抢| YIN荡的老师系列第6部分视频| 国产色偷偷男人的天堂| 免费可以看污动画软件| 性春院| 97精品国产亚洲AV高清| 国产三级在线观看视频| 女张腿男人桶羞羞漫画| 亚洲天堂999| 古风H啪肉NP文|