STE 包含每個(gè)stream的配置,指示:
? 是否啟用來自device的流量。
? 是否進(jìn)行stage 1 translation,獲取stage 1 translation tables的配置。
? 是否進(jìn)行stage 2 translation以及相關(guān)的stage 2 translation tables和VMID。
如果啟用了stage 1,則STE中的S1ContextPtr字段包含一個(gè)或多個(gè)cd的基址。CD將StreamID與stage 1 translation table基指針(將VA轉(zhuǎn)換為IPA)、per-stream配置和ASID關(guān)聯(lián)起來。
如果多個(gè)devices與一個(gè)特定的虛擬機(jī)相關(guān)聯(lián),這意味著它們共享stage 2 translation tables,也就是說多個(gè)ste可能會(huì)映射到一個(gè)stage 2 translation table。
通常來說,Stream table和stage 2 translation table由hypervisor管理,而與devices相關(guān)的cd和stage 1 translation tables由guest OS管理。此外,hypervisor可以使用單獨(dú)的hypervisor stage 1 translations。
在不使用hypervisor的情況下,裸機(jī)操作系統(tǒng)管理Streamtable和CDs。
當(dāng)輸入事務(wù)啟用SubstreamID時(shí),SubstreamID索引CDs以選擇 stage 1 translation context。如果沒有提供SubstreamID,行為取決于ST.S1DSS:
當(dāng)STE.S1DSS == 0b00,所有流量都有SubstreamID,不帶有SubstreamID的輸入事務(wù)則被中止并記錄一個(gè)事件。
當(dāng)STE.S1DSS == 0b01,沒有SubstreamID的事務(wù)視為配置stage 1-bypass。
當(dāng)STE.S1DSS == 0b10,沒有SubstreamID的事務(wù)使用Substream=0的CD。在此配置下,SubstreamID=0的事務(wù)將被中止,并記錄一個(gè)事件。
當(dāng)stage 1被啟用時(shí),STE.S1ContextPtr字段給出了以下地址之一(由配置STE.S1Fmt和STE.S1CDMax)確定:
一張CD。
single-level table of CDs的起始地址。
L1CDs的起始地址,L1CD.L2Ptr都指向一個(gè)L2CDs的起始地址。L1CDs由SubstreamID的高位索引,L2CDs由SubstreamID的較低位索引。用于L1CDs和L2CDs索引的SubstreamID位由STE.S1Fmt配置。
當(dāng)同時(shí)使用stage 1和stage 2時(shí),S1ContextPtr和L2Ptr地址為IPA,僅使用stage1時(shí)為PA。
由CD和STE提供的ASID和VMID值是TLB tag的一部分,用于區(qū)分不同之間的地址空間,或者在接收到TLB invalidation操作時(shí)匹配無效的TLB。
Configuration structure example
上圖顯示了一個(gè)示例配置,其中StreamID從linear Stream table中選擇一個(gè)Ste,Ste指向stage2的translation table,并指向單個(gè)stage1的CD配置, 然后CD指向stage1的translation tables。
上圖顯示了一個(gè)配置,其中一個(gè)STE指向包含多個(gè)cd的數(shù)組。SubstreamID選擇其中一個(gè)cd,最終確認(rèn)要用的stage1頁表。
Multi-level Stream and CD tables
上圖顯示了一個(gè)更復(fù)雜的布局,其中使用了一個(gè)multi-level Stream table。其中兩個(gè)STE指向一張CD或一個(gè)CD數(shù)組,而第三個(gè)STE指向一個(gè)multi-level CD table 。
審核編輯:劉清
-
ARM
+關(guān)注
關(guān)注
134文章
9028瀏覽量
366496 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6689瀏覽量
123141 -
虛擬機(jī)
+關(guān)注
關(guān)注
1文章
905瀏覽量
28021 -
TLB電路
+關(guān)注
關(guān)注
0文章
9瀏覽量
5246
原文標(biāo)題:ARM SMMU Data structure之Context Descriptors
文章出處:【微信號(hào):芯片驗(yàn)證工程師,微信公眾號(hào):芯片驗(yàn)證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論