pcie的rc ep ats atc acs at关系

PCIe是一种点对点的总线协议,包括RC、EP和Switch三种节点模式。ATS和ATC处理地址转换,其中ATS在RC进行,ATC在EP缓存。ACS作为安全补充,防止不诚信的地址访问。文章讨论了PCIe报文中的地址可能是虚拟或物理,以及如何通过iommu和安全策略确保访问控制。

# pcie是一种点对点的并且有层次的总线协议,为了完成这种属性设计了三种节点模式

- rc 根管理者模式

- ep 终端节点模式

- switch/bridge/pf 调度节点 类似路由器

# pcie的几个实体

- rc属于cpu芯片的单元

- eswitch 属于芯片

- ep属于某个外设

# pcie地址访问转换机制

术语:

ats 在ep或者rc上? 用于想iommu请求转换地址 虚拟地址iova到pa

atc 地址转换缓存 在ep上 需要ep支持或开启该功能

at tlp报文中2个bit标记是否已经转换

pcie是基于信任的报文,意思是说ep标记at完全靠诚信 也可能没有atc他也标记了

at 是pcie报文中两个bit表示当前访问是否经过了iommu转换了 一般第一次ats转换后 由atc中缓存,下次使用直接atc取然后tlp报文at标记已转换 所以是基于信任的 当然同时带来了问题

pcie,报文里面访问的地址可能是虚拟地址,也可能是物理地址

如果是虚拟地址 就需要到iommu去做地址转换 需要转换就标记at

如果是atc里面存了 就是已转换地址 标记at已转换 

at在全链路路由 到达eswitch 如果at标记已转换 且目的落在本域 直接p2p,如果不在网上层送 类似路由器

# acs作用

acs: 地址控制服务 

pcie因为基于信用 带来问题就是可能不诚信 让ep访存绕过iommu 也就绕过一些检查

怎么办?就需要在调度节点添加一个类似acl的功能

acs就是在调度节点如果开启 那么在路由前 会做检查 如果配置了不允许p2p 就算at标记已转换 也得送到rc到iommu

acs相当于一个安全补丁

总结:

rc ep是节点,不同模式的节点 类似主从的关系节点

ats atc是地址转换的两种功能 s是第一次在rc去请求转运地址 c是第一次转换后的缓存 类似cpu的tbl

at是pcie tlp报文中的字段2bit 表示这个报文是否已经转换地址 如果atc查到就会标记为已转换 同时也可能被恶意标记

acs是类似解决恶意标记等问题 在bridge上打的补丁 哪怕标记at也得到rc走一圈 过iommu的一些安全策略

atc acs都是可开关的功能 简单理解atc在ep上 acs在eswitch上 ats在rc上

以上勘误后期逐渐完善

以上参考来自wikipedia和《软硬件融合 超大规模云计算架构创新之路》

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值