Linux -- PCI、PCIe基础知识点整理

PCI基础知识

  • PCI总线的组成:HOST桥、PCI桥、PCI设备
  • PCI采用的是树型拓扑结构,每一个PCI device相当于树的一个结点或者叶子,对整个PCI Bus的遍历可以采用遍历树的算法,在对树进行遍历之后,可以获得整个PCI Bus的资源需求情况,从而进行统一的分配。
  • PCI总线上有多个设备,当他们需要通信时,都必须向PCI总线仲裁器提出申请,当得到允许后才能在总线中发送数据
  • PCI总线上的设备可以通过四根中断请求信号INTA  INTB  INTC INTD向处理器发出中断请求;其中INTA是单功能设备,其他的是多功能设备
  • 总线x1上的通讯和总线x2上的通讯无关,同一条总线上的设备可以自由通讯
  • PCI总线操作的一具典型的特点就是支持BURST传输。什么是BURST传输呢?首先你得知道PCI的数据总线和地址总线是复用的。这就是说在同样的总线上,一段时间是地址,一段时间是传输数据。如果没有BURST传输,那么完成一次数据传输之前都得发一次地址,这就是总线有一半的时间都在传地址,这使得总线和利用率很低。有了BURST传输,可以先发一个起始地址和数据长度N, 之后传输数据0~N-1就可以直接发数据,不用再发地址了。
  • PCI总线32位中,第一个16位表示域,第二个8位表示一个总线编号,第三个5位表示一个设备号,最后是3位,表示功能号。
  • 在系统引导阶段,PCI硬件设备保持未激活状态,但每个PCI主板均配备有能够处理PCI的固件,固件通过读写PCI控制器中的寄存器,提供了对设备配置地址空间的访问。

HOST桥

  • HOST主桥是用来隔离处理器的存储器域与PCI总线域的特殊桥片,管理PCI总线域。在其所管理的PCI设备中所有设备的配置空间都由HOST主桥通过配置读写总线周期访问的
  • PCI总线上的设备都有自己的设备地址,处理器空间地址和PCI总线地址通过HOST主桥进行隔离。(HOST主桥中有很多的寄存器,可以使得处理器工作的频率和总线工作的频率不一样,通过寄存器缓存数据,当处理器需要访问PCI设备时,需要通过HOST主桥进行地址转换,把处理器地址转换成PCI总线地址,然后才能访问PCI设备;同理,PCI设备中的数据要想往外走,也要通过HOST主桥进行地址转换。说到底,HOST主桥就是一个桥梁)
  • 同一HOST桥中的设备可以通讯(HOST主桥可以通过设置Inbound寄存器来让不同的PCI总线域中的设备进行通讯)
  • 上游总线就是PCI桥靠近HOST主桥的一端总线、下游总线就是另外一端总线
  • 在一个处理器系统中,有几个HOST主桥,就有几个PCI总线域。

PCI桥

  • PCI桥是PCI总线的一个重要组成部件,该部件的存在使得PCI总线极具拓展性。
  • PCI的可扩展性指的是PCI总线上可以挂个PCI桥,然后PCI桥会推出另一条PCI总线,PCI总线上又可以挂载PCI桥,再推出PCI总线...(但是,PCI总线以HOST主桥为树根,连接的设备上限为256,其中包括HOST桥和PCI桥
  • PCI桥的作用可以隔离PCI设备,不影响各条总线的带宽
  • 如果PCI桥出现问题,那么PCI桥下的设备之间可以自由通讯但是无法将数据发送到外面

PCI设备

  • PCI Agent设备:一个PCI设备既可以是主设备也可以是从设备,但是在同一个时刻,这个PCI设备或者为主设备或者为从设备。PCI总线规范将PCI主从设备统称为PCI Agent设备。
  • PCI设备的地址可以由系统软件动态分配,解决了地址冲突。(每个PCI设备有一个独立的配置空间,里面有设备在总线上的地址;注:PCI桥的配置空间中有其PCI子树使用的地址范围)
  • PCI设备与存储器直接进行数据交换的过程也被称为DMA。PCI总线进行DMA操作时,需要得到数据的大小和目的地址(PCI总线域的物理地址,HOST主桥会负责地址转换)
  • PCI设备配置地址空间的前64字节是标准化的,它提供了厂商号,设备号,版本号等信息,唯一标识一个PCI设备。

PCIe基础知识

  • pcie全称叫做:Peripheral Component Interconnect(外围组件互联),属于局部总线,主要功能就是连接外围设备
  • pcie的组成有:RC(根节点)、siwtch(pcie桥)、EP(设备)
  • pcie总线有独立的地址空间,所以CPU想要通过pcie访问外围设备,需要对pcie的地址空间进行映射
  • pcie分多版本的,x1、x2、x4、x8、x16...各级之间传输速率呈倍数增加,但价格也呈倍增加。PCI-E的接口根据总线位宽不同而有所差异,包括X1、X4、X8以及X16,而X2模式将用于内部接口而非插槽模式。
  • pcie传输和网络类似封装成包,有协议栈。
  • pcie使用端到端的连接方式,正常设备与设备之间只能连接一个,但通过pcie桥可以扩展。
  • PCI是并行总线;PCI-X是并行总线;PCIe是高速差分总线

高速差分总线替代并行总线是大势所趋。与单端并行信号相比,高速差分信号可以使用更高的时钟频率,更少的信号线,完成之前许多单端并行数据才能达到的总线带宽。

 

PCI和PCIe的差别

  • PCI使用并行总线结构,同一条总线上的所有外部设备共享总线带宽

PCIe使用高速差分总线,支持更高的时钟频率,达到更高的总线带宽

  • PCI总线上最多支持256个设备

PCIe采用端到端的连接方式,在每一条PCIe链路中只能连接两个设备

猜你喜欢

转载自blog.csdn.net/Ivan804638781/article/details/103757219