PCI和PCIe的区别

4
我已经开始了解关于PCI和PCIe的知识。我看到一个观点是“从软件角度来看,PCI和PCIe设备本质上是相同的。 PCIe设备具有相同的配置空间,BAR以及(通常)支持相同的PCI INTx中断。”
PCIe使用串行接口,而PCI使用并行接口。那么,为PCI编写的Linux驱动程序如何用于PCIe设备呢?我感到困惑,请帮忙解答。
敬礼,
Ajmal

2
从硬件设计的角度来看,您可能会感到困惑,因为总线在几乎所有方面都是不同的。但从软件设计的角度来看,情况则完全不同,它们非常相似,尽管PCIe有一些小的附加功能。 - 0andriy
2
那么,从软件角度来看,我们可以使用相同的驱动程序(Linux)用于PCI和PCIe(+附加功能)吗?总线访问是否相同? - Ajeesh
3
是的。请参考我对下面答案的评论。你所担心的所有内容都已在主机桥/总线驱动程序中完成。 - 0andriy
3
根据我有限的了解,PCI和PCIe不同之处在于PCIe使用与PCI相同的旧配置寄存器(加上一些额外的配置寄存器空间)。从Linux驱动程序的角度来看,无论读/写访问是通过并行总线(PCI)还是串行连接(PCIe)进行,CPU/操作系统都会访问PCI/PCIe端点中相同的配置寄存器。操作系统/驱动程序看到的地址空间是相同的。只要定义的地址空间看起来相同,它就是兼容的。 - hevangel
2个回答

1
PCI和PCIe在物理层面完全不同。PCI是并行的,而PCIe是串行的。PCI总线由所有PCI设备共享,而PCIe具有用于数据传输的专用通道。
这些差异在软件层面得到了处理。因此,程序员不需要担心它。

0
  1. PCI支持256B的配置空间。PCIe有4K的配置空间,并向后兼容前256B。
  2. 是的,PCI是并行的,而PCIe是串行的,这种变化在PHY层中固有。
  3. PCI支持INTx(1-4) SW中断,而PCIe支持来自PCI-X的PCI中断和额外的32个PCIe中断以及2K中断。
  4. PCIe支持高级错误报告(AER)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接