为什么显卡的 MaxPayload 显示最大只支持 256 字节,但通过寄存器还能配置成 1024 字节并且正常运行?

大家好,

我在使用 NVIDIA 显卡时遇到一个关于 PCIe MaxPayload 的问题,想请教下大家。

在通过 PCIe 配置空间查看显卡时,MaxPayload 显示最大支持 256 字节(即 0x30)。但我发现,通过直接修改寄存器,可以将 MaxPayload 配置成 1024 字节(即 0x70),而且显卡仍然可以正常运行,没有出现崩溃或性能问题。

我有几个问题想请教:

1、为什么显卡报告的 MaxPayload 是 256 字节,但通过修改寄存器可以配置成更大的 1024 字节?这是硬件的默认限制还是兼容性考虑?
2、手动将 MaxPayload 设置为比报告值更大是否存在潜在风险?会对显卡的稳定性产生影响吗?

我了解到增大 MaxPayload 理论上可以减少传输开销、提高带宽利用率,但不确定是否在实际应用中会出现不兼容或其他问题。

希望各位能给出一些技术上的解释或建议,非常感谢!