什么是PCI
PCI(Peripheral Component Interconnect)是一种计算机总线标准,用于连接计算机内部的各种外部设备。它是一种串行总线架构,广泛应用于个人电脑和服务器系统。
PCI总线提供了一种标准的接口和通信协议,用于连接主板和各种外设,如显卡、网卡、声卡、磁盘控制器等。它通过在主板上提供插槽和插槽连接器,使得外部设备可以轻松地插入和拔出,实现了设备的热插拔功能。
PCI总线的特点包括:
-
高带宽:PCI总线提供了高带宽的数据传输能力,使得外设可以与计算机系统快速通信。
-
通用性:PCI总线是一种通用的总线标准,允许连接各种类型的设备,从显卡和网卡到存储控制器和音频设备等。
-
热插拔支持:PCI总线支持热插拔功能,允许在计算机运行时插入或拔出设备,而无需重新启动系统。
-
多设备支持:PCI总线支持多设备连接,通过在主板上提供多个插槽,可以同时连接多个外设。
随着时间的推移,PCI总线的不同版本相继发布,包括PCI、PCI-X和PCI Express(PCIe)。PCIe是一种更高性能的PCI总线标准,提供更高的带宽和更快的数据传输速度,成为现代计算机系统中常用的总线接口之一。
PCI
PCI总桥由HOST主桥和PCI桥推出,HOST主桥与主存储器控制器在同一级总线上,因此PCI设备可以方便地通过HOST主桥访问主存储器,即进行DMA操作。
PCI设备的DMA操作需要与处理器系统的Cache进行一致性操作,当PCI设备通过HOST主桥访问主存储器时,Cache一致性模块将进行地址监听,并根据监听的结果改变Cache的状态。因此,设计HOST主桥时需要重点考虑Cache一致性操作。
每一个HOST主桥都管理了一棵PCI总线树,在同一棵PCI总线树上的所有PCI设备属于同一个PCI总线域。
PCI总线规定在同一时刻内,在一棵PCI总线树上有且只有一个HOST处理器。
PCI总线树的实际管理者是HOST主桥,而不是HOST处理器。
每一个PCI主设备都具有独立的总线仲裁信号,并与PCI总线仲裁器一一相连。而总线仲裁器需要保证在通过一个时间段内,只有一个PCI设备可以使用当前总线。
PCI桥跨接在两个PCI总线之间,其中距离HOST主桥较近的PCI总线被称为该桥片的上有总线,距离较远的PCI总线被称为该桥片的下游总线。
PCI 中断
处理器的速度跟外围硬件设备的速度往往不在一个数量级上,让硬件在需要的时候再向内核发出信号(变内核主动为硬件主动)。这就是中断机制。
中断随时可以产生。因此,内核随时可能因为新到来的中断而被打断。
同步中断
:是当指令执行时由 CPU 控制单元产生,之所以称为同步,是因为只有在一条指令执行完毕后 CPU 才会发出中断,而不是发生在代码指令执行期间,比如系统调用。
异步中断
:是指由其他硬件设备依照 CPU 时钟信号随机产生,即意味着中断能够在指令之间发生,例如键盘中断。
handle_irq
:上层的通用中断处理函数指针,如果未设置则默认为__do_IRQ()
。通常针对电平触发或者边沿触发有不同的处理函数。每个中断线可分别设置;
Posted和Non-Posted传送方式
Delay传送方式处理Non-Posted总线事务
Split总线事务
PCI和PCIe的区别
PCI(Peripheral Component Interconnect)和PCIe(PCI Express)是两种不同的计算机总线标准,用于连接计算机内部的外部设备。它们之间有以下几点区别:
-
架构和带宽:PCI是一种并行总线架构,而PCIe是一种串行总线架构。PCIe提供了更高的带宽和更快的数据传输速度,相比之下,PCI的带宽较低且速度较慢。
-
插槽类型:PCI插槽是较大的白色插槽,而PCIe插槽通常是较小的黑色插槽。PCIe插槽可以向下兼容PCI卡,但PCI插槽无法支持PCIe卡。
-
插槽数量和通道:PCI总线通常提供较少的插槽数量,而PCIe总线可以支持更多的插槽,并且每个插槽都有独立的通道,可以同时进行数据传输。
-
扩展性和性能:由于PCIe的串行架构和高带宽,它提供了更好的扩展性和性能。PCIe可以通过添加更多的通道和使用更高的速率来增加带宽,而PCI的扩展性有限。
-
版本和兼容性:PCI和PCIe有多个版本,每个版本都有不同的规范和性能特征。PCIe 3.0和PCIe 4.0是当前常用的版本,提供更高的带宽和性能。PCIe插槽通常是向后兼容的,可以支持较旧版本的PCIe卡,但不支持PCI卡。
总的来说,PCIe是一种更现代化和高性能的总线标准,提供更高的带宽和更快的数据传输速度,逐渐取代了传统的PCI总线。PCIe在现代计算机系统中被广泛使用,尤其是用于连接高性能图形卡、存储控制器和其他高速外设。