PCIe : Maximum Payload Size (MPS) vs. Maximum Read Request Size (MRS) 兩個參數說明


• Note: Max_Payload_Size applies only to TLPs with data payloads; Memory Read Requests are not restricted in length by Max_Payload_Size. The size of the Memory Read Request is controlled by the Length field • Completions must not include more data than permitted by Max_Payload_Size. • Receivers must check for violations of this rule. Refer to Section 2.2. • Memory Read Requests may be completed with one, or in some cases, multiple Completions • Software must set Max_Read_Request_Size of an isochronous-configured device with a value that does not exceed the Max_Payload_Size set for the device.

 

maximum read request size參數,避免系統帶寬被某些個SSD霸占。

想要和SSD攻城獅還有全世界的大牛討論SSD及存儲相關技術?加nanoarch為微信好友,拉你進ssdfans微信群。

最近PCIe在SSDFans上鏡率挺高,那我們來聊兩句MAX_READ_REQUEST_SIZE 和MAX_PAYLOAD_SIZE。

這兩個東西都在PCIe Capability Structure 08h (Device Control Register)里

 

 

 

Maximum Payload Size (簡稱MPS)

控制一個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

在配置階段,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 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM