34#
原文:“第二种switch的话,我的理解是:将上端的数据队列接收,拆包后判断需要发送到哪个显卡处理(因 ...
ice 发表于 2011-9-24 12:36
你们讨论得确实认真啊!如果是switch的话,PCIe传送数据跟以太网的结构有点不一样,不是把上层的数据加到DL的包头来处理的。具体可以看PCIe的spec chapter3 data link layer Specification,在Data link层传送2种包,DLLP(数据链路层数据包)和TLP(事务层数据包)。DLLP是端到端的,就是从一个PCIe接口到另外一个PCIe接口,负责流量控制,出错重传,电源管理的工作。但是TLP是可以从PCIe device到另外一个PCIe device,比如从某个复杂的PCIe bus端经过好几级的switch到达RC。像你说的NF200允许2张显卡内部通讯,就是利用这个机制,从一个显卡(作为PCIe的Endpoint)到另外一张显卡(另外一个Endpoint)。怎么控制包是传送到某个EP还是RC,得用到TLP的路由机制,这得看TLP具体的类型然后可以分为用地址来路由和用Device ID来做路由,规则比较负责...
时分的概念是在Physical Layer物理层的,这个时分是把一个包拆开分到多个lane传送,链路层应该没有。因为从链路的角度看,就是一条PCIE连线,PCIe的数据传送都是基于包的,必须发完一个包再发另一个包,所以这里的流量控制,qos控制,都是基于包来调度的。
接switch应该不受upstream port所接的downstream port的限制,只要switch能支持PCIe设备的枚举过程,就能让RC发现这个设备并给它分配地址和id,这样就可以正常工作的 |