type0 普通设备 也可以叫agent设备 因为他是代理自己内部的很多寄存器行为
type1 桥设备,那本质肯定是转发 会根据收到的tlp修改对应字段转化,是否会从type0转化为type1待研究
pcie拓扑结构是
rc
| - dev1
|- bridge1
|- dev2
发送type0类型只用指定 function number和reg
发送type1类型需要指定bus number和devicebumber 然后是fn和reg
也就是bdf寻址方式在type1采用全
每一个bus number代表的是某一个级别的总线 比如rc下面是bus1,bridge1下面是bus2
每个bridge上面会存储他的上游bus 叫做primary bus,自己叫secondary bus,自己的子节点bus叫。subordinate bus。并且桥的bus number也就是secondary bus number是桥下面所有bus的最大值
总线访问逻辑是 总线上电信号广播 每个设备会读取报文 判断bus是不是在自己bus范围 用自己的secondary bus number判断。
有点类似i2c读取时候在i2c总线上传输地址 每个i2c设备 会监听后判断是自己才处理响应

PCIe拓扑中包括type0和type1设备,type0常指普通设备,而type1是桥设备,负责根据TLP修改字段转发。总线访问使用BDF(Bus-Device-Function)地址,type0只需指定function和reg,type1需指定完整BDF。每级桥设备记录上游(primary)、自身(secondary)和子级(subordinate)总线号,总线广播时设备根据busnumber判断是否响应。该机制类似于I2C的地址匹配过程。
330

被折叠的 条评论
为什么被折叠?



