前面讲了树,理清了PCIe架构的大概框架;讲了链路,知道了框架中的路径。而对于树上的树叶/果实,即最终的PCIe设备,它们在系统中是是怎样存在的?今天开始逐步对PCIe设备的内部细节和协议的分层实现细节展开讲解。

在PCIe系统中,对于每一个PCIe设备,都具有三种类型的资源。具有了资源,PCIe设备才具有了被访问、被使用的基本能力。这三种资源分别是:

  • ID Resource

ID资源:即设备在系统中的定位和身份证。用总线号(Bus)、设备号(Device)和功能号(Function)三个变量定义。

  • Memory Resource

内存资源:即设备具备哪些可以提供给外部或内部使用的内存。

  • IO Resource

IO资源:即设备具有哪些可以使用的IO空间。

       在一个PCIe系统中的每一个PCIe设备,如上的三种资源分配都是唯一的。不会有两个设备具备相同的资源

       我们看一个实例,如下这个PCIe tree。红框标注的这个设备是张网卡。

       这个设备的ID资源是:总线号3,设备号0,功能号0。

       我们可以使用lspci命令查看它的memory和IO资源:

      它的IO资源位于d00处,大小256。

       它的Memroy资源有两个,一个是位于f7a00000大小为4K,一个是位于f0000000大小16K。

       后面会依次详细讲解每种资源的申请、分配和使用。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注