PCIe TLP 仅写入数据包地址 31:2 位

PCIe TLP write packet address only 31:2 bits

Let's take a sample write packet : Suppose that the CPU wrote the value 0x12345678 to the physical address 0xfdaff040 using 32-bit addressing

This example is from this site (I didn't understand the explanations in the original post)

  1. 为什么地址从第二位开始[31 : 2]
  2. 为什么地址不一样

对齐的 32 位块的地址在地址末尾始终有两个零位。您可以将此视为将块的地址写入 32 位槽,或者将除以 4 的地址写入地址的第 2 位到第 31 位。结果是一样的,因为除以四相当于向右移动两位位置。