一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

系統(tǒng)里面有多少個(gè)Timer?

Linux閱碼場(chǎng) ? 來源:Linux閱碼場(chǎng) ? 作者:Baron ? 2022-06-29 09:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

說明:

本文講述的是armv8-aarch64、armv9架構(gòu)在設(shè)計(jì)模式上,本文帶有一些個(gè)人的見解,如有不同的見解,可以評(píng)論區(qū)或微信群參與討論。

思考:

1、一個(gè)大的系統(tǒng)里,有多少個(gè)Timer?這些Timer的作用分別是什么?這些Timer有什么區(qū)別?它們的精確度有什么不同嗎?

2、Linux Kernel的Tick使用的是哪個(gè)Timer?watchdog是用的哪個(gè)Timer?

3、一個(gè)ARM Core里有又多少個(gè)Timer?不同軟件系統(tǒng)中的Timer的使用方式有何不同嗎?

4、應(yīng)用程序中的 setitimer()這樣的函數(shù)是否會(huì)調(diào)用到底層程序?

5、應(yīng)用程序要讀取當(dāng)前系統(tǒng)時(shí)間戳的時(shí)候,是否需要調(diào)用到kernel space? 在glibc中是否就可以實(shí)現(xiàn)了?

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

7、對(duì)于arch timer,又分為物理timer和虛擬timer?那么什么時(shí)候使用物理timer,什么時(shí)候使用虛擬timer?為什么?

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

1、系統(tǒng)里面有多少個(gè)Timer?

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

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

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

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

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

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

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

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

2、每一個(gè)core里面又有多少個(gè)Timer

2.1、四個(gè)物理Timer

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

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

(1)Linux Kernel正常使用,在讀取counter值、counter頻率的同時(shí),也會(huì)設(shè)置CTL、CVAL、TVAL等相關(guān)寄存器,也會(huì)觸發(fā)和處理30中斷(EL1 Physical Timer的默認(rèn)中斷號(hào)是30);

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

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

總結(jié):

(1)、EL1PhysicalTimer不區(qū)分secure和non-secure,在secure和non-secure之間也無法做到隔離。一般情況下它是給NS-EL1使用的。當(dāng)然S-EL1如果是僅僅讀取counter和頻率獲取當(dāng)前時(shí)間戳,也是可以用的,但這不應(yīng)該是建議的。因?yàn)檫@樣造車non-secure也可以竊取到secure側(cè)的時(shí)間戳。

(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、三個(gè)虛擬Timer

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

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

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

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

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5435

    瀏覽量

    124589
  • Timer
    +關(guān)注

    關(guān)注

    1

    文章

    64

    瀏覽量

    13221

原文標(biāo)題:圖解SOC中的Timer(一):系統(tǒng)里有哪些Timer?

文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    cybt343026-01 scan的話,最多能scan到多少個(gè)?

    我想問一下cybt343026-01的模塊,scan的話,最多能scan到多少個(gè)?
    發(fā)表于 07-07 08:14

    CYW20719 最多有多少個(gè)外部中斷?

    CYW20719 最多有多少個(gè)外部中斷?
    發(fā)表于 07-01 07:16

    定時(shí)模塊app_timer用法及常見問題—nRF5 SDK模塊系列二

    app_timer是大家經(jīng)常用到的一個(gè)庫(kù),app_timer的功能就是定時(shí),也就是說,你在某一時(shí)刻啟動(dòng)一個(gè)app timer并設(shè)定超時(shí)時(shí)間,
    的頭像 發(fā)表于 05-12 16:13 ?259次閱讀
    定時(shí)模塊app_<b class='flag-5'>timer</b>用法及常見問題—nRF5 SDK模塊系列二

    ADS1192 ECG-FE source code里面有個(gè)低通濾波器,怎么改參數(shù)使其變?yōu)槠渌慕刂诡l率?

    ADS1192 ECG-FE source code里面有個(gè)低通濾波器,我想問一下,怎么改參數(shù)使其變?yōu)槠渌慕刂诡l率
    發(fā)表于 02-08 06:54

    有內(nèi)部模式讓ADS8363里面有個(gè)AD,能一個(gè)AD工作在全差分,一個(gè)工作在偽差分嗎?

    PDE位只能控制工作2 x 2 fully-differential和4 x 2 pseudo-differential。 有內(nèi)部模式讓ADS8363里面有個(gè)AD,能一個(gè)AD工作在全差分,一
    發(fā)表于 01-02 07:57

    ADS1299套件單次采樣最多可以采集多少個(gè)點(diǎn)?

    想知道ADS1299套件單次采樣最多可以采集多少個(gè)點(diǎn)
    發(fā)表于 12-26 08:28

    CDCM6208掉電會(huì)遺失設(shè)置嗎?里面有沒有非易失存儲(chǔ)器?

    這個(gè)芯片編程設(shè)置好以后,掉電會(huì)遺失設(shè)置嗎?里面有沒有非易失存儲(chǔ)器?
    發(fā)表于 11-12 07:16

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

    請(qǐng)問下,功放里面有個(gè)Dc Detect(直流檢測(cè))是什么意思?謝謝!
    發(fā)表于 11-05 08:10

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

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

    網(wǎng)線里面有幾根線

    網(wǎng)線內(nèi)部通常由8根線組成,這些線也被稱為芯線。它們通常是成對(duì)出現(xiàn)的,形成4對(duì)雙絞線,具體顏色對(duì)分別為白橙和橙、白綠和綠、白藍(lán)和藍(lán)、白棕和棕。以下是對(duì)網(wǎng)線內(nèi)部結(jié)構(gòu)的詳細(xì)解釋: 一、線對(duì)與顏色編碼 每對(duì)雙絞線中的兩根線顏色不同,這種顏色編碼有助于在布線和維護(hù)過程中輕松識(shí)別和區(qū)分不同的線對(duì)。 顏色的不同也有助于減少電磁干擾(EMI)和串?dāng)_(crosstalk),提高信號(hào)傳輸?shù)馁|(zhì)量。 二、網(wǎng)線類型與應(yīng)用 雖然標(biāo)準(zhǔn)的網(wǎng)線內(nèi)部是8根線,但在某
    的頭像 發(fā)表于 10-14 09:47 ?3058次閱讀

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

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

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

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

    freertos最多支持多少個(gè)任務(wù)

    FreeRTOS是一個(gè)輕量級(jí)的實(shí)時(shí)操作系統(tǒng)(RTOS),其設(shè)計(jì)初衷就是為了提供簡(jiǎn)單、可靠且高效的實(shí)時(shí)任務(wù)管理。關(guān)于FreeRTOS最多支持多少個(gè)任務(wù)的問題,實(shí)際上并沒有一個(gè)固定的上限,
    的頭像 發(fā)表于 09-02 14:21 ?2278次閱讀

    軟件開發(fā)分為多少個(gè)階段

    軟件開發(fā)分為多少個(gè)階段 第一階段:需要分析及確認(rèn)階段 系統(tǒng)需要分析階段,明確項(xiàng)目需求,確保所有利益相關(guān)者對(duì)項(xiàng)目目標(biāo)、功能、性能、安全、用戶接口等方面有共同的理解和期望。 需求分析:對(duì)收集到的需求
    的頭像 發(fā)表于 08-21 14:27 ?1048次閱讀

    功分器的端口有多少個(gè)

    。這種功分器通常用于將輸入功率平均分配到兩個(gè)輸出端口,例如,在無線通信系統(tǒng)中,它可以用來將信號(hào)平均分配給兩個(gè)天線或接收器。 三端口 :三分器(3-way power splitter)具有一個(gè)
    的頭像 發(fā)表于 08-14 09:58 ?969次閱讀