[心得] PCIe Maximum Payload Size與SSD效能問題

看板PC_Shopping (個人電腦購買)作者 (yuu)時間4年前 (2021/06/28 21:36), 4年前編輯推噓84(840156)
留言240則, 54人參與, 最新討論串1/2 (看更多)
※ [本文轉錄自 Storage_Zone 看板 #1WsS-g0X ] 作者: yuu123 (yuu) 看板: Storage_Zone 標題: [心得] PCIe Maximum Payload Size與SSD效能問題 時間: Mon Jun 28 21:33:12 2021 網頁好讀版 https://www.ptt.cc/bbs/Storage_Zone/M.1624887210.A.021.html PTT的標題長度不夠。 老實說我原本想下的題目應該是以下這串。 淺談PCIe Maximun Payload Size大小與SSD效能之間的問題 暨ASUS TUF GAMING X570-PLUS (WIFI)實測與回溯研究 因為整篇廢文很多,所以把一點也不懶人的懶人包直接寫在最前面。               不是摘要 本文研究目的僅在證實PCIe Maximum Payload Size(MPS)對SSD效能之影響, 當系統處於MPS於較低的128 bytes時,會導致SSD的寫入及讀取速度,較256 bytes時有所不足。 就測試結果來看,WD SN750 於MPS: 128 bytes時似乎有天花板限制。 參照網路上其他人的測試,例如PCIe 4.0的SN850或980PRO也有相同的狀況。 深入研究後,發現是由於主機板晶片組所提供之PCIe Maxmium Payload Size 雖然支援到512 bytes,但接在主機板晶片組後方的設備大多為256 bytes, 少部份僅支援128 bytes。 由於主機板晶片組的Maxmium Payload Size協定,會以所有接在晶片組後方的 設備中最低的MPS值為準。故在使用ASUS TUF GAMINMG X570-PLUS (WIFI)這張 主機板時,在一般正常狀態下。 所有接在晶片組後方的裝置,僅能運作於128 bytes。 會導致此問題,是由於主機板上的LAN及WIFI&藍芽裝置,僅支援PCIe Max Payl oad Size: 128 bytes。故若於BIOS內將LAN, WIFI, Bluetooth之功能關閉之後 。所有接在主機板後方的裝置,皆可運作於PCIe Maxmium Payload Size: 256 bytes。 且由於各家SSD廠商及主控對於PCIe Maximum Payload Size的支援度不同, 各家主機板廠商也從未於產品規格內,說明產品於主機板晶片組的PCIe Maxi mum Payload Size的值,導致有些消費者購入SSD後效能無法完整發揮。 是故在此拋磚引玉,希望有空能幫忙做測試的熱心鄉民,一起來統計各家產品 的MPS值,以供消費者購入時的參考。 好了寫完了又臭又長的summry之後感覺就開始有點懶了, 所以下面的正文我就隨便打了。 https://i.imgur.com/bmaB9jR.png
一、引言與研究背景 之所以會發現這個不知道該說是Issue還是Problem的東西, 是因為這篇Reddit鄉民的文章: Fixed Maximum Payload Size. Now I don't have internet.[1] https://www.reddit.com/r/AverMedia/comments/hoq07g/fixed_maximum_payload_size_now_i_dont_have/ 縮網址 https://tinyurl.com/3jb3nzww 拿MPS隨便咕狗之後發現一篇更勁爆的: SN850 1TB NVME - slow write speeds (3100) on x570 using M2 Chipset slots (PCH) - confirmed as a problem on MSI, ASRock, Gigabyte and Asus motherboards [4] https://community.wd.com/t/sn850-1tb-nvme-slow-write-speeds-3100-on-x570-using-m2-chipset-slots-pch-confirmed-as-a-problem-on-msi-asrock-gigabyte-and-asus-motherboards/265038 縮網址 https://tinyurl.com/mwprpdah 整串看完無意識喊出一聲:晚了! 我不好容易存了一筆錢,買了SN850。 我還得把LAN關掉、還得連WIFI關掉、還得看他喵MPS的臉色。 那我不成了跪著要飯的嗎? https://i.imgur.com/6el2X6b.png
你要這麼說,買SSD測分數,還真就是跪著要飯的。 就這,多少人想跑3100以上還沒這個門子呢。 速度嘛,跑分,插直通! 不過網路文章畢竟是網路文章。 而消費級的直通通道真他喵少, 所以看起來只能驗證一下MPS與SSD效能之間的關系了。 口說無憑,就實際來開測吧。 二、PCIe Maxmium Payload Size 首先去下載HWiNFO64,來查看裝置的Maxmium Payload Size數值。 網站在此:https://www.hwinfo.com/download/ 按Run進去之後,在Bus欄位可以找到主機板的PCIe通道分配與連接方式。 順便附一下AMD X570晶片組的PCIe通道規畫 https://i.imgur.com/P1jttQY.jpg
以本次測試標的,華碩 TUF X570-PLUS (WIFI)來說, 可以看到第一條M.2 是CPU直通通道, 是穩穩的支援PCIe 4.0 x4, 以及Support Maxmium Payload Size: 512 bytes. https://i.imgur.com/5QkEIC5.png
可以看到X570晶片組本身,也支援Maximum Payload Size: 512 bytes. https://i.imgur.com/9aX7GU9.png
註:因為Maxmium Payload Size(MPS)打起來實在是有點長, 所以本文以後的段落皆使用縮寫MPS。 只是因為插在M.1_1上頭的,是有點年紀的Plextor M9PEG。 僅支援128bytes,所以只能跑MPS: 128bytes. https://i.imgur.com/XrIxt7x.png
再接著看接在X570晶片組後方的設備, 首先是也是本文的重點M.2_2, 在HWiNFO 顯示出的PCIe裝置, 是 "AMD 500-Series Chipset - PCIe GPP Bridge" 雖然支援MPS:512 bytes,但不意外地跑MPS: 128bytes。 https://i.imgur.com/G1Aokuv.png
可以看到SN750雖然支援MPS:512 bytes, 但運作模式被限制在128 bytes。 https://i.imgur.com/QFRoVcb.png
由於PCIe的設計原理,是在所有同通道內的裝置, 共用同一組MPS的數值,以最低的裝置為限。 因此所有接在主機板晶片組,以此例是接在X570後方的裝置, 其MPS值以連接裝置中最低的值為主。 所以就來找找所有接在X570後方的裝置,哪些是128bytes的。 可以看到與無線網卡連接的PCIe通道,是支援MPS: 256 bytes的。 https://i.imgur.com/DyKjjyB.png
但Intel AC 9260 僅支援MPS: 128bytes https://i.imgur.com/c1fEoYK.png
有線網卡的狀況也是類似,PCIe通道本身支援MPS: 256bytes. https://i.imgur.com/q9dg6Cx.png
但RTL8168_8111 僅支援MPS: 128bytes. https://i.imgur.com/tHlDLsr.png
X570連接USB3的PCIe通道,也支援MPS: 256bytes, 運作速度被限制在128bytes. https://i.imgur.com/qTj7N3a.png
兩個USB3的控制器都一樣狀態 https://i.imgur.com/hVV1oK6.png
接著來看SATA部份 AMD Internal PCIe GPP Bridge 支援MPS: 512bytes https://i.imgur.com/P9bEbt0.png
AMD FCH SATA AHCI Controller 支援MPS: 256bytes 運作速度被限制在128bytes https://i.imgur.com/lyit6r6.png
另一條AMD Internal PCIe GPP Bridge 的狀態也一樣 AMD Internal PCIe GPP Bridge 支援MPS: 512bytes https://i.imgur.com/Jf2f0vo.png
AMD FCH SATA AHCI Controller 支援MPS: 256bytes 但運作速度被限制在128bytes https://i.imgur.com/wQGO6NZ.png
所以在此可以得到一個結果: 由於LAN:RTL8168_8111 以及 WIFI:Intel AC 9260都僅支援MPS: 128bytes。 所以實驗的變因, 就是將這兩個裝置的功能開啟或關閉。 看看是否能將所有接在X570晶片組後方的裝置, MPS皆恢復成256bytes。 三、實驗結果 進BIOS將LAN、WIFI跟Bluetooh都關閉之後, 馬上可以看到X570晶片組的MPS,運作於256bytes。 https://i.imgur.com/2Uoc7ox.png
證實了Intel的說法[5] 也可以看到SN750終於運作於MPS: 256bytes。 https://i.imgur.com/u8Ay1Uf.png
接著來看USB3的部份, 關閉網卡功能後 AMD USB3 XHCI Controller 運作於MPS: 256bytes。 https://i.imgur.com/K9i1pOL.png
SATA的部份, AMD FCH SATA AHCI Controller 運作於MPS: 256bytes https://i.imgur.com/6Nc6AUr.png
已確認所有接在X570晶片組後方的裝置, 都處於Maximum Payload Size: 256 bytes之後, 來開測CDM快樂表: CDM 8.0.1 SN750 運作於MPS: 256bytes https://i.imgur.com/5WgsoS5.png
作為對比,SN750 1TB CDM 8.0.1 運作於MPS: 128bytes https://i.imgur.com/3i5EaU0.png
四、結論 CDM比較結果 https://i.imgur.com/Yf7sTND.png
可以看到循序讀取終於突破3100的大關,符合WD原廠標示的數值。 無論是大檔還是4K小檔,所有效能皆往上提升。 在去年的測試中,我一直以為是我測試環境不乾淨的關系。 reference: https://www.ptt.cc/bbs/PC_Shopping/M.1601213630.A.A5E.html 沒想到是PCIe Maximum Payload Size的問題。 所以如果要發揮SN750的實力,建議插在CPU直通通道的M.2_1, 跑滿速的MPS: 512bytes。 或是購買接在晶片組後方的裝置,皆是MPS: 256bytes的主機板。 不過我有點懷疑符合這項條件的主機板有多少? 因為主機板廠商沒有任何一家有標示關於MPS的這部份, 另外一點也是本篇文章的遺珠之憾,無法證實在SN850 980PRO 這類效能更高的PCIe 4.0 SSD,是否如文章所說有相同的狀況。 是故在此拋磚引玉, 希望如果有空能幫忙做測試的熱心鄉民,一起來統計各家產品 的MPS值,最好附上SSD的HWiNFO MPS狀態抓圖。 以供廣大消費者購入主機板時的參考。 以上。 參考文獻: 1. Fixed Maximum Payload Size. Now I don't have internet. https://www.reddit.com/r/AverMedia/comments/hoq07g/fixed_maximum_payload_size_now_i_dont_have/ https://tinyurl.com/3jb3nzww 2. Live Gamer 4K (GC573) not Operating at 256 bytes for Max Payload Size https://www.reddit.com/r/AverMedia/comments/g5mmhp/live_gamer_4k_gc573_not_operating_at_256_bytes/ https://tinyurl.com/2usrurem 3. BEWARE: If you have a internal WIFI card it may be limiting your Live Gamer 4K's bandwidth. https://www.reddit.com/r/AverMedia/comments/hop1qq/beware_if_you_have_a_internal_wifi_card_it_may_be/ https://tinyurl.com/8v8tducd 4. SN850 1TB NVME - slow write speeds (3100) on x570 using M2 Chipset slots (PCH) - confirmed as a problem on MSI, ASRock, Gigabyte and Asus motherboards https://community.wd.com/t/sn850-1tb-nvme-slow-write-speeds-3100-on-x570-using-m2-chipset-slots-pch-confirmed-as-a-problem-on-msi-asrock-gigabyte-and-asus-motherboards/265038 https://tinyurl.com/mwprpdah 5. Why does the IP compiler for PCI Express not support Max Payload Size (MPS) up to 4096 bytes as specified in the PCIe Specification? https://www.intel.com/content/www/us/en/programmable/support/support-resources/knowledge-base/solutions/rd08222011_674.html https://tinyurl.com/wzwaamvp -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.36.80.47 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Storage_Zone/M.1624887210.A.021.html ※ 編輯: yuu123 (114.36.80.47 臺灣), 06/28/2021 21:36:31 ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: yuu123 (114.36.80.47 臺灣), 06/28/2021 21:36:49

06/28 21:44, 4年前 , 1F
認真推 似乎也解釋了之前貼的SN850
06/28 21:44, 1F

06/28 21:45, 4年前 , 2F
於X570通道時的降速問題
06/28 21:45, 2F

06/28 21:53, 4年前 , 3F
推實測,清清楚楚,好文讚!
06/28 21:53, 3F

06/28 21:54, 4年前 , 4F
推 認真
06/28 21:54, 4F

06/28 21:54, 4年前 , 5F
我們自己做的時候確實會切MPS驗一驗
06/28 21:54, 5F

06/28 21:55, 4年前 , 6F
如果是單純看主控性能會有差
06/28 21:55, 6F

06/28 21:55, 4年前 , 7F
但把MB/CPU 各種哩哩扣扣算進來後..
06/28 21:55, 7F

06/28 21:55, 4年前 , 8F
好奇這問題可以靠bios更新解決嗎?
06/28 21:55, 8F

06/28 21:55, 4年前 , 9F
像WD論壇那個原PO,真的有夠慘...
06/28 21:55, 9F

06/28 21:57, 4年前 , 10F
回樓樓上 就我的理解 應該無法
06/28 21:57, 10F

06/28 21:58, 4年前 , 11F
實測給推
06/28 21:58, 11F

06/28 22:03, 4年前 , 12F
因為MPS的值與接在晶片組後面的裝置
06/28 22:03, 12F

06/28 22:03, 4年前 , 13F
有關,除非原本那些跑128bytes的設
06/28 22:03, 13F

06/28 22:03, 4年前 , 14F
備,真的能改成用256bytes跑
06/28 22:03, 14F

06/28 22:03, 4年前 , 15F
不然肯定無法解決...
06/28 22:03, 15F

06/28 22:04, 4年前 , 16F
但我覺得裝置可以跑哪種MPS
06/28 22:04, 16F

06/28 22:04, 4年前 , 17F
應該是在設計階段就固定好的
06/28 22:04, 17F

06/28 22:04, 4年前 , 18F
所以我才會說... 晚了!
06/28 22:04, 18F

06/28 22:04, 4年前 , 19F
只能在買的時候避開這些產品
06/28 22:04, 19F

06/28 22:06, 4年前 , 20F
長知識了
06/28 22:06, 20F

06/28 22:08, 4年前 , 21F
如果是PCIE本身設計的問題,那有共
06/28 22:08, 21F

06/28 22:08, 4年前 , 22F
用通道的必然會降速了
06/28 22:08, 22F

06/28 22:11, 4年前 , 23F
就像你買新的4800 ram 客家混插了26
06/28 22:11, 23F

06/28 22:11, 4年前 , 24F
00
06/28 22:11, 24F

06/28 22:12, 4年前 , 25F
沒錯 這個舉例最接近實際狀況
06/28 22:12, 25F

06/28 22:12, 4年前 , 26F
只不過這是版廠選料時沒在管的結果
06/28 22:12, 26F

06/28 22:12, 4年前 , 27F
06/28 22:12, 27F

06/28 22:13, 4年前 , 28F
對啊 所以才導致WD論壇那個苦主出現
06/28 22:13, 28F

06/28 22:13, 4年前 , 29F
看來我買SN550就好了XD
06/28 22:13, 29F

06/28 22:14, 4年前 , 30F
甚至我懷疑高級板子 也會出這種低級
06/28 22:14, 30F

06/28 22:14, 4年前 , 31F
06/28 22:14, 31F

06/28 22:14, 4年前 , 32F
非CPU直連的都買便宜貨就對了XD
06/28 22:14, 32F

06/28 22:14, 4年前 , 33F
推!!沒注意過這個問題 !!
06/28 22:14, 33F

06/28 22:15, 4年前 , 34F
因為marketing 和hw 都是選大家都在
06/28 22:15, 34F

06/28 22:15, 4年前 , 35F
用的
06/28 22:15, 35F

06/28 22:15, 4年前 , 36F
你我都一樣 出事就一起擔
06/28 22:15, 36F

06/28 22:16, 4年前 , 37F
啊 這個也不算什麼 不會搞到要回收
06/28 22:16, 37F

06/28 22:17, 4年前 , 38F
客戶不知道 就沒奇蒙子問題
06/28 22:17, 38F

06/28 22:24, 4年前 , 39F
X570F 通通跑256 原廠網卡是I卡
06/28 22:24, 39F
還有 161 則推文
還有 1 段內文
06/29 12:37, 4年前 , 201F
問題
06/29 12:37, 201F

06/29 12:38, 4年前 , 202F
AX210的MPS和其他一樣是128bytes
06/29 12:38, 202F

06/29 12:52, 4年前 , 203F
wifi6網卡現在市面上也沒看到其他
06/29 12:52, 203F

06/29 12:52, 4年前 , 204F
的 螃蟹的方案沒人用
06/29 12:52, 204F

06/29 13:17, 4年前 , 205F
其實不管怎樣你追求最大效能本來就
06/29 13:17, 205F

06/29 13:18, 4年前 , 206F
要直連...
06/29 13:18, 206F

06/29 14:43, 4年前 , 207F
所以Intel晶片組不受影響?
06/29 14:43, 207F

06/29 18:03, 4年前 , 208F
都會 內建低速的東西就送的 只是不
06/29 18:03, 208F

06/29 18:03, 4年前 , 209F
能關的就
06/29 18:03, 209F

06/29 18:50, 4年前 , 210F
Intel也會,但是intel本家網卡i211
06/29 18:50, 210F

06/29 18:50, 4年前 , 211F
i225都是512,所以safe
06/29 18:50, 211F

06/29 18:50, 4年前 , 212F
然後本家新的wifi是走CNVi,所以也
06/29 18:50, 212F

06/29 18:51, 4年前 , 213F
safe。簡單來說理論上intel板子遇到
06/29 18:51, 213F

06/29 18:51, 4年前 , 214F
這個問題的機率比較低,愈新的愈低
06/29 18:51, 214F

06/29 19:49, 4年前 , 215F
但Z490+AX200擴充卡能跑256還是很謎
06/29 19:49, 215F

06/29 19:51, 4年前 , 216F
從截圖出現的階層也無法解釋
06/29 19:51, 216F

06/29 19:54, 4年前 , 217F
擴充卡槽pcie x1也會連到晶片組,
06/29 19:54, 217F

06/29 19:55, 4年前 , 218F
再經DMI3.0x4連上CPU,卻不影響MPS
06/29 19:55, 218F

06/29 22:28, 4年前 , 219F
應該跟階層有關 連到root port的MPS
06/29 22:28, 219F

06/29 22:28, 4年前 , 220F
互相獨立,而連到同個upstream port
06/29 22:28, 220F

06/29 22:28, 4年前 , 221F
of pcie switch各端點要協調最小MPS
06/29 22:28, 221F

06/29 22:51, 4年前 , 222F

06/29 22:51, 4年前 , 223F
稍微整理,可能只有AMD晶片組會這樣
06/29 22:51, 223F

06/29 22:54, 4年前 , 224F
相反地intel晶片組(Cl大的圖)
06/29 22:54, 224F

06/29 22:54, 4年前 , 225F
能夠把通道直接掛到最上層bus呢!
06/29 22:54, 225F

06/30 14:39, 4年前 , 226F
專業推
06/30 14:39, 226F

06/30 18:29, 4年前 , 227F
有沒有A板找到例外的?除了x16、m.2
06/30 18:29, 227F

06/30 18:29, 4年前 , 228F
及usb3 hub以外有找到直通CPU通道的
06/30 18:29, 228F

06/30 18:39, 4年前 , 229F
pch提供root port,A板應該看不到
06/30 18:39, 229F

06/30 19:48, 4年前 , 230F
理論上一個pcie root complex只會有
06/30 19:48, 230F

06/30 19:48, 4年前 , 231F
一個最大公因數的MPS
06/30 19:48, 231F

06/30 19:48, 4年前 , 232F
我google的結果,有些很硬的硬體討
06/30 19:48, 232F

06/30 19:49, 4年前 , 233F
論區有人有提到:某些比較神奇的
06/30 19:49, 233F

06/30 19:50, 4年前 , 234F
pcie switch可以切成複數的complex
06/30 19:50, 234F

06/30 19:50, 4年前 , 235F
此外,某些end point因為多工的特性
06/30 19:50, 235F

06/30 19:50, 4年前 , 236F
它可能會有不同的MPS屬性
06/30 19:50, 236F

06/30 19:51, 4年前 , 237F
這可能是造成例外的原因
06/30 19:51, 237F

06/30 23:36, 4年前 , 238F
謝謝,奇怪的知識增加了
06/30 23:36, 238F

08/16 03:02, , 239F
推 這是論文吧XD
08/16 03:02, 239F

10/28 01:23, , 240F
感謝分享
10/28 01:23, 240F
文章代碼(AID): #1WsT1omg (PC_Shopping)
文章代碼(AID): #1WsT1omg (PC_Shopping)