微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以写入多个在同一PCIe插槽上使用不同PCIe通道的设备?

我正在写一个支持多个设备的Linux设备驱动程序。 我有一个x8 PCIe卡,其中有4个这样的设备。 每个都通过PCIe交换机运行并获得2个PCIe通道。 有没有办法让驱动程序同时写入多个通道? 如果是这样,我该怎么做? 我认为这应该是可能的,因为它全部在一个PCIe插槽上,但我不知道如何从驱动程序完成。

每次创build一个驱动程序的句柄

BugCheck 0xCE:DRIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS

打印机驱动程序之间的差异

降低filter驱动

SetupDiEnumDriverInfo始终返回错误259(没有更多数据可用)

这听起来像你正在寻找PCIe组播。 这与通道的数量没有关系,但是可以简单地作为尽可能有效地向多个目的地提供单个写入的功能。 有一个这样的标准,主要用于背板使用,请参阅: http ://www.pcisig.com/developers/main/training_materials/get_document?doc_id =12f5c260ccf5e054366d4c96ee655fa6827db5b3

看起来这是由一个新的PCI BAR类型支持的,其中多个设备具有相同的映射物理地址范围,并且交换机也将被配置为知道这个多播范围。 但是,这一切都需要操作系统的支持,我还没有发现任何东西在网络上,建议Linux有必要配置设备来做这一切。

由于您的父母链接有足够的带宽饱和所有四个子链接,您没有吞吐量问题。 用多播节省的唯一东西就是内存子系统的带宽。 如果你有一个现代化的建筑,你会节省的金额将在噪音。

换句话说,别担心。 将您的设备视为独立设备(无论如何,这将使您的设备更加干净)并继续您的项目。

PCIe不能像你所想的那样工作。 交换机不会将上行x8链路分成多个x2链路 – 它只是将流量从一个链路转发到另一个链路。 所以你会看到一个到交换机的x8链路,然后是从交换机到下游设备的4个x2链路。 但是,对于不同的交换机和不同的下游设备,同样可能(例如)在每个地方都有x8链路,即从根端口到交换机的x8链路和从交换机到下游设备的x8链路。

但是,就你而言,交换机两端的带宽是相当的,所以设备竞争有限的带宽应该没有问题。 您的驱动程序可以像所有独立链接一样有效地同时与所有设备通话。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐