SMMUv3 (1)

一些词汇。

DVM: Distributed Virtual Memory,相互传递广播TLB维护操作的消息的协议;

RC: PCI-E的Root Complex,如下图:

Endpoint(EP): 一个PCIE功能,用于一个SMMU client节点设备的context

PASID: Process Address Space ID,一个PASID是一个Endpoint的本地ID,所以一个系统中一个PASID可能用很多遍,注意:PASID除了名字与PE的ASID有点靠近外,其实与ASID完全没关系。

ATS: PCIE提供给远端Endpoint TLB的Address Translation Service。

Split-stage ATS: 两阶段页表转化的SMMU提供的方式,ATS用1阶段页表转换,non-ATS用2阶段页表转换。

PRI:PCIE引入的Page Request Interface,是ATS的一个扩展项,是其允许Endpoint请求OS提供映射了页面的内存给DMA使用。

ATOS:SMMU用系统可访问的寄存器提供VA-IPA/PA转换;额外的,VATOS提供了次要的寄存器组,用于虚拟机直接使用,不过只能做VA-IPA转换。

TT:Translation table,就是页表,arm架构的。

TTD:Translation table discriptor,就是PTE。

HTTU:Hardware Translation Table Update,在访问或写入相关页面后,硬件自动更新相关页面的Access flag、Dirty state,就叫HTTU。

SSD:Secure StateDetermination,将client设备的一段数据流与Secure或Non-secure控制联系起来的方法,确定这段数据流的Secure或Non-secure设置。

STE:Stream table entry,流表条目。

L1STD:1级STE,用于两级流表。

CD:Context Descriptor,Context描述符。

L1CD:1级CD,用于两级CD表。

Client deivce:由SMMU控制访问系统内存行为能力的设备。

Bypass:一种设置,把一个阶段的页表转换不做任何地址转化,这种直通模式就是使用bypass;如果一个SMMU没有实现哪一阶段地址转换,那么这个阶段的地址转换就可以认为是Bypass了。

Stage N-only:一种对一段数据流的转换设置,两阶段转换只转换一个阶段,另一个Bypass掉,可以是设置成这样,也可以是SMMU被实现成这样

E2H:EL2 Host Mode,详见VHE的说明。

TR:Translation Request,用于在一个PCIE ATS的context中,请求SMMU或是其他实现来做请求中心节点做地址转换。

简述:

SMMU的行为与PE的MMU类似,在系统I/O设备的DMA请求发到系统之前进行地址转换。SMMU只为DMA工作。

对DMA的地址进行转换是为了隔离或快捷,为了将设备通讯与转换相关联,还要区分SMMU背后不同的设备,转换请求还需要除了地址、R/W、权限以外的额外属性,用来分辨一个流的属性;不同的流在逻辑上与不同的设备相关联,SMMU可以对不同的流实现不同的转换或检查,就算一个系统装置有一个client设备,SMMU的概念仍然不会变,只是会只有一个流。

一个系统中可能有很多个SMMU,一个SMMU可能为1个或多个设备做转换。

SMMU支持2阶段页表转换的方式与PE的MMU相似,1阶段VA->IPA,2阶段IPA->PA;1阶段转换主要是为了在一个VM内的DMA隔离,2阶段一般在支持虚拟化扩展的设备实现将DMA设备的虚拟化到VM内。

SMMUv1仅支持不多的context/流,通过寄存器设置,有限的可扩展性;SMMUv2把SMMUv1拓展到了ARMv8-A页表转换格式,更大的寻址空间,同样有限的context/流的支持。SMMUv1/v2映射一个数据流到基于寄存器的context内,这个context指示使用什么转换表、转换设置;同样也可能支持2阶段转换,而转换时的流会使用额外生成的ID来标志,还有一个次级ID来标志一个流或一组流的Security状态;基于寄存器的设置限制了context的数量,支持上千个context是不可能的,一个活着的数据流是可能在任意时间触发转换的,而能支持的context量其实就是同时活着的流的数量;比如说1000个连接了但没有数据出现的网卡,虽然此时没有数据出现,但是它的数据可能在任意时间出现,也就是DMA会在任意时间请求转换,所以就会占context,而且不能多设备分时使用SMMU,毕竟这是硬件中断级别的使用,切换SMMU的context足以让硬件里缓存耗尽,数据丢失了吧。

SMMUv3.0特性:

SMMUv3提供了支持PCIE Root Complexes的特性,并通过支持大量并行转换contex支持其他潜在大量I/O的系统。

1. 基于内存的配置结构,支持大量的流;

2. 具体实现可仅1阶段、仅2阶段或两阶段页表转换,从寄存器里可以查到具体实现,其他根据实现选配的参数也可以查到;

3. 最高16bit ASIDs

还有 52% 的精彩内容
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
支付 ¥2.99 继续阅读
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,874评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,102评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,676评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,911评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,937评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,935评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,860评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,660评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,113评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,363评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,506评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,238评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,861评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,486评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,674评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,513评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,426评论 2 352