【PCIE】Device Control Register (Offset 08h)

DCR

Maximum Payload Size

“Maximum Payload Size”
(最大传输负载大小)是PCI Express设备控制寄存器中的一个位域,用于设置设备支持的最大传输负载的大小。

PCI Express使用数据包(Packet)来传输数据,而数据包由头部和有效载荷(Payload)组成。有效载荷是实际要传输的数据部分。最大传输负载大小定义了设备可以支持的最大有效载荷大小。

在"Maximum Payload Size Supported"(MPSS)位域中,[2:0]表示3个比特位,用于编码支持的最大传输负载大小的取值。通常情况下,可能的取值包括:

000: 128字节
001: 256字节
010: 512字节
011: 1024字节
100: 2048字节
101: 4096字节
这些取值表示设备最大支持的有效载荷大小。有效载荷大小的选择会影响PCI Express总线的传输性能和效率。较大的有效载荷大小可以提高带宽利用率和传输效率,但同时也会增加延迟。因此,在配置设备时,需要根据具体应用需求和系统性能要求来选择合适的最大传输负载大小。

请注意,每个设备对最大传输负载大小的支持是有限制的,系统中所有设备的最大传输负载大小应当保持一致,以确保正常的数据传输和兼容性

控制一个TLP可以传输的最大数据长度。作为接收方,必须能处理跟MPS设定大小相同的TLP数据包,作为传输方,不允许创建超过MPS设定的TLP数据包。

PCIe协议允许最大一个Payload可以到4K,但是规定了在整个传输路径上的所有Device,都必须使用相同的MPS设置,同时不能超过该路径上一个设备的MPS能力值。也就是说,MPS capability高的设备要迁就低的设备。以PCIe SSD来说,插到一块老掉牙的主板上(MPS只有128 Byte),你的Payload size再大,也是没有用的。

系统的MPS值设置是在上电以后的设备枚举配置阶段完成的, 以主板上的PCIe RC和PCIe SSD为例,他们都在Device Capability Register里声明自己能支持的各种MPS,OS的PCIe驱动侦测到他们各自的能力值,然后挑低的那个设置到两者的Device Control register中。

PCIe SSD自身的MPS capability则是在其PCIe core初始化阶段设置的。

Maximum Read Request Size

“Maximum Read Request Size”(最大读取请求大小)是PCI Express设备控制寄存器中的一个位域,用于设置设备支持的最大读取请求的大小。

在PCI Express总线上,系统主机可以向设备发送读取请求以获取数据。最大读取请求大小定义了设备可以支持的最大读取请求的数据量。

在"Maximum Read Request Size"(MRRS)位域中,[2:0]表示3个比特位,用于编码支持的最大读取请求大小的取值。通常情况下,可能的取值包括:

000: 128字节
001: 256字节
010: 512字节
011: 1024字节
100: 2048字节
101: 4096字节
这些取值表示设备最大支持的读取请求数据量。较大的读取请求大小可以提高数据传输效率和带宽利用率,因为更多的数据可以在一个请求中传输。然而,读取请求数据量过大也会增加总线传输的延迟。

在配置阶段,OS的PCIe驱动也会配置另外一个参数maximum read request size,用于控制一个Memory read的最大size,最大4K(以128 Byte为单位)
Read request size是可以大于MPS滴,比如给一个MPS=128 Byte的PCIe SSD发一个512 Byte的read request,PCIe SSD可以通过返回多个4个128 Byte的 Cpld,或者8个64 Byte的Cpld,完成这个request的响应。OS 层面可以通过控制PCIe SSD的maximum read request size参数,平衡多个PCIe SSD之间的吞吐量,避免系统带宽(总共40个lane)被某些个SSD霸占。

同时,Read request size也对PCIe SSD的Performance有影响,这个size太小,意味着同样的data,需要发送更多的request去获取,而read request的TLP是不带任何data payload的。

举例来说,要传64K的数据,如果read request=128 byte, 需要512个read TLP,512个TLP的浪费那是不小滴。

为了提高特别是大Block Size data的传输效率,尽量把read request size设的大一点,用更少的次数传递更多的数据,那是很好的。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这种情况可能是因为服务器PCIe设备出现了错误,导致开机时卡在了PCIe设备错误页面。建议您检查服务器PCIe设备是否正常,可以尝试重新插拔PCIe设备或更换PCIe设备,如果问题仍然存在,建议联系Dell技术支持寻求帮助。 ### 回答2: Dell服务器开机卡在PCI-e Device Errors页面表示服务器开机时出现了一些PCI-e设备的错误。由于PCI-e设备是服务器中重要的组件之一,一旦出现问题,可能会对服务器的正常操作产生严重影响。因此,我们需要进一步排查和解决这个问题。 首先,我们可以检查服务器的硬件设备,如网卡、显卡、RAID卡等,是否已正确安装且与主板连接良好。此外,我们还可以检查PCI-e插槽的脏污程度是否会影响设备的连接。如果这些硬件连接顺畅且干净,那么就需要检查设备驱动程序是否已正确安装,并且是否与操作系统兼容。如果设备驱动程序出现了错误,可能会导致设备无法正常工作,从而引起PCI-e设备错误。 如果以上方法都不能解决问题,我们还可以尝试更新BIOS或系统固件,以确保系统与设备的兼容性。如果这些方法都无法解决问题,那么可能需要考虑更换故障设备或者联系厂商进行维修。 总之,对于Dell服务器开机卡在PCI-e Device Errors页面的问题,我们需要从硬件设备、驱动程序、系统固件等多个方面进行排查,以便找出问题所在并加以解决。 ### 回答3: Dell服务器开机卡在PCIe device errors页面,这可能是由多种原因引起的。在这种情况下,我们建议进行以下故障排除。 第一步是重新启动服务器。在重新启动后,如果依然卡在PCIe device errors页面,那么我们需要检查服务器的物理硬件。首先,我们可以检查所有外部设备是否已连接。踢掉并重新插拔所有的外部设备,以确保它们被正确地连接。如果这些步骤都没有解决问题,那么我们可能需要检查服务器的内部设备。 我们可以进入服务器的BIOS菜单,检查所有的PCIe卡和插槽是否连接在正确的位置。如果有任何卡或插槽损坏,我们需要更换它们。此外,我们还可以检查所有设备驱动程序的版本是否最新。如果我们使用的是过时的驱动程序,则可能会导致PCIe设备错误。 如果这些步骤都没有解决问题,那么我们需要考虑重新安装服务器的操作系统。如果我们之前有过类似的问题,则可能是我们的操作系统损坏,重新安装可以解决该问题。如果还出现问题,我们可以考虑联系Dell的客户服务部门。他们可以为我们提供更进一步的支持和解决方案。 在处理这种问题时,我们需要耐心和细心。通过进行逐步排查,并按顺序执行上述步骤,我们通常可以快速分析和解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值