[心得] PCIe Maximum Payload Size與SSD效能問題
※ [本文轉錄自 Storage_Zone 看板 #1WsS-g0X ]
作者: yuu123 (yuu) 看板: Storage_Zone
標題: [心得] PCIe Maximum Payload Size與SSD效能問題
時間: Mon Jun 28 21:33:12 2021
網頁好讀版
https://www.ptt.cc/Storage_Zone/M.1624887210.A.021
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://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/PC_Shopping/M.1601213630.A.A5E
沒想到是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/Storage_Zone/M.1624887210.A.021
※ 編輯: yuu123 (114.36.80.47 臺灣), 06/28/2021 21:36:31
認真推 似乎也解釋了之前貼的SN850
於X570通道時的降速問題
推實測,清清楚楚,好文讚!
推 認真
我們自己做的時候確實會切MPS驗一驗
如果是單純看主控性能會有差
但把MB/CPU 各種哩哩扣扣算進來後..
好奇這問題可以靠bios更新解決嗎?
像WD論壇那個原PO,真的有夠慘...
回樓樓上 就我的理解 應該無法
實測給推
因為MPS的值與接在晶片組後面的裝置
有關,除非原本那些跑128bytes的設
備,真的能改成用256bytes跑
不然肯定無法解決...
但我覺得裝置可以跑哪種MPS
應該是在設計階段就固定好的
所以我才會說... 晚了!
只能在買的時候避開這些產品
長知識了
如果是PCIE本身設計的問題,那有共
用通道的必然會降速了
就像你買新的4800 ram 客家混插了26
00
沒錯 這個舉例最接近實際狀況
只不過這是版廠選料時沒在管的結果
吧
對啊 所以才導致WD論壇那個苦主出現
看來我買SN550就好了XD
甚至我懷疑高級板子 也會出這種低級
錯
非CPU直連的都買便宜貨就對了XD
推!!沒注意過這個問題 !!
因為marketing 和hw 都是選大家都在
用的
你我都一樣 出事就一起擔
啊 這個也不算什麼 不會搞到要回收
客戶不知道 就沒奇蒙子問題
X570F 通通跑256 原廠網卡是I卡
你這是直通的M2_1啊
實測推!看來遊戲還是CPU直通那條
買容量大點跟系統一起裝省事
系統碟裝在共用通道上就好啦,需要
時常讀寫的還是插直連那槽
感謝詳究及解說!
我的第三張圖 有另外兩張NVME SSD
喔喔 讚啦~ 這樣X570F +1
看來X570F應該沒啥問題,不知道B550
會不會被限制住...
NVME x2和SATA
看來版上先前都說X570F和TUF電供
一樣 但魔鬼藏細節裡
表面上只看到網卡有差(螃蟹/I網)
但用料或設計上還是有點差別
該來拍「板廠沒有說der秘密」s2惹
查到我的intel AX200也是128bit
自己的CPU不支援直連
所以只裝一張便宜NVME跟一張SATA就
算了對吧
最近想組B550+980PRO,這問題...
如果有的話心理會很阿砸,但如果不
說我想我大概還是快快樂樂的使用。
如果去測跑分的話就看得出來
像WD論壇那位苦主 效能剩一半
而且苦主是買MSI的頂板Godlike喔~
I211AT LAN可支援512bit
推一下 有研究精神
cool! push
推
MSI B550i 插在背板第二根M.2 SN550
無線網路卡有支援256 bytes以上嗎?
連AX201也這樣的話 還有什麼選擇呀
原來X570上行原生有PCIe 4.0 x8嗎
回樓上 有喔 只是AMD只開x4給你用
回樓樓上 看起來好像沒得選了
有內建Wifi的板子可能全中標
推認真文
PCIe不是16切給顯卡 4給直連m.2 4給
X570?
M.2可拆的話 還存有未來升級的可能
要避開內建Wifi模組的板子了嗎XD
通常PCIe Ether/Wifi都是128B
推研究
c8dh裝sn850跟p5
JKASON2003大 可以麻煩你幫我看一下
RTL8125是不是只支援128Bytes呢?
推認真
哇~~ 是哪張神板 512byes XD
rog b550-a gaming,sn550和i225-v網
卡,沒藍牙沒wifi,躲過一劫
推研究精神
原來RTL8125也有支援MPS: 512bytes
可是B550i上的RTL8125只有256
那JKASON2003大你把WIFI關了 就很有
可能變256或512byes了
沒差了 因為你有wifi 幫你QQ
先感謝Saber0217大、smallreader大、JKASON2003大 以及keyman2大、dickyjay大提供的線索 這樣看起來 主機板晶片組要跑MPS: 256 bytes 的可能條件如下: 主板設計為無內建WIFI款式,且 網卡僅為Intel I211AT(支援512 bytes) 或Intel I225-V(支援512 bytes) 或RTL8125(支援512 bytes or 256 byes) 同時符合這兩個條件的主機板,MPS很大的機率是256 bytes 目前已知的主機板有: MPS: 256 bytes組 1.ASUS ROG Strix X570-F Gaming MPS: 512 bytes組 1.ASUS ROG STRIX B550-A GAMING 另外統計只能跑MPS: 128 bytes的phy裝置 LAN: 1.Realtek RTL8168_8111 WIFI: 1.Intel AC9260 2.Intel AX200 3.Intel AX201 如果你的主機板上頭的phy是上面這些裝置 那就不用看了一定是MPS: 128 bytes 除非把這些裝置關掉,否則不會有任何改變 寫在最後 如有回報主板晶片組是跑256bytes的熱心板友 一段時間之後會統整編輯文章於最頂端 或另行發文 供其他人於購買時參考 在此先 謝謝各位
※ 編輯: yuu123 (114.36.80.47 臺灣), 06/28/2021 23:50:23雞排板載TB3也只有128
剛剛用停用網卡與藍芽好像一樣128
I225-V不是都出在I家CPU的板子上嗎
所以有人256嗎 慘
I225-V 是完整控制器不是 phy
所以可以出在任何板子上 包含 AMD
感謝說明
剛才研究了一下MPS的功能 愈看愈像
MTU(maximum transmission unit)
好文
rtk的2.5GbE網卡也128bytes QQ
這篇不推不行
推 內建wifi的板子全部一起下去QQ
華擎B550M Steel Legend是256
^rtk的2.5GbE網卡
推實測 說明很清楚
所以買intel板子沒wifi的就沒啥事了
吧?
看起來只插一條高速m.2不成問題
有wifi的把卡拔掉或關掉也行吧
應該不用特別避開
問題是有wifi還關掉,那就買沒wifi
的不就好了...
啊,我看錯了,rtl8125是256才對...
大可以把模組賣了 筆電就真的QQ
推
在Intel平台AX201走CNVi,不走PCIe
所以我想是不影響?
有人可以用AX201驗證一下嗎
走CNVi就沒有影響了。所以難道你要
買intel嗎? XD
能讓大家花錢花得有意義的認真文章
剛剛順手找到這篇
裡面有MPS的傳輸效率公式
花錢買WiFi的板子然後在閹掉它QQ
買沒wifi的不就好了<<那如果都有呢
不過華碩的B550-A看來是首選
五千以上的板子幾乎都強迫中獎wifi
本來覺得CNVi是沒屁用的東西,沒想
到竟然有點用處
難到要為了避開這個問題買中低階板
配5900x嗎
rog x570i SN850 插在正面
你這個SN850是CPU直連沒問題
RTL8111H剛看MPS也是128
剛搜尋不少中低階也是搭這顆
專業
TUR X570 PRO WIFI
直通256
第二條128 QQ
好險我的SSD只支援256...過幾天換去
直通組
記得有某塊妖板把x16拆成x8跟2個m.2
這樣就有3條滿速的SSD 但彈性少很多
哭阿 雞排BIOS不能關AX200
我的aus b550m tuf
插在晶片組提供M2的SN550
然後板子上的RTL8125 因為拔掉AX200
現在是MPS支援256跑256的狀態
CNVi沒用處? 我在懷疑我看了什
根據文件 570475 TBT AR MPS=128
這是限制, 買主機板也避開吧
Z490板無內建WiFi開內建LAN是這樣
有外接x1的AX200,SSD三星980 Pro
AX200 128,其餘裝置256。
最大支援512這應該是各裝置本身吧?
Cnvi 就不同介面 不影響pcie
前陣子M.2_2降速問題查不到原因本
來已經放棄了,感謝這篇文解惑!
實測ASUS B550M WIFI只要去BIOS把W
IFI關掉即可,藍芽不用關掉就能256
,M.2_2速度終於達到SSD標稱,感動
剛剛查了一下,RTL8125B 2.5G
MPS是 256byte 被ax200拖累QQ
主板是b550 tomahawk
外接的ax200在bios裡找得到關閉的
選項嗎
推
因為藍芽是走usb通道吧?
忘了補主機板 技嘉Z490 Vision G,
沒內建WiFi故不是CNVi
可是b550m的m.2有兩槽啊,你插另一
槽就不受影響了
sn850說七月會出新韌體來修正這個
問題
AX210的MPS和其他一樣是128bytes
wifi6網卡現在市面上也沒看到其他
的 螃蟹的方案沒人用
其實不管怎樣你追求最大效能本來就
要直連...
所以Intel晶片組不受影響?
都會 內建低速的東西就送的 只是不
能關的就
Intel也會,但是intel本家網卡i211
i225都是512,所以safe
然後本家新的wifi是走CNVi,所以也
safe。簡單來說理論上intel板子遇到
這個問題的機率比較低,愈新的愈低
但Z490+AX200擴充卡能跑256還是很謎
從截圖出現的階層也無法解釋
擴充卡槽pcie x1也會連到晶片組,
再經DMI3.0x4連上CPU,卻不影響MPS
應該跟階層有關 連到root port的MPS
互相獨立,而連到同個upstream port
of pcie switch各端點要協調最小MPS
稍微整理,可能只有AMD晶片組會這樣
相反地intel晶片組(Cl大的圖)
能夠把通道直接掛到最上層bus呢!
專業推
有沒有A板找到例外的?除了x16、m.2
及usb3 hub以外有找到直通CPU通道的
pch提供root port,A板應該看不到
理論上一個pcie root complex只會有
一個最大公因數的MPS
我google的結果,有些很硬的硬體討
論區有人有提到:某些比較神奇的
pcie switch可以切成複數的complex
此外,某些end point因為多工的特性
它可能會有不同的MPS屬性
這可能是造成例外的原因
謝謝,奇怪的知識增加了
推 這是論文吧XD
感謝分享
29
Re: [新聞] 北市府又爆網軍?整天掛網PTT 她:都在簡單分析一下 9GB = 1024*1024*1024*9 Bytes 一年上班天數三百 所以一天的資料量是32212254.72 bytes 如果用wireshark抓一下封包21
[開箱] 造型內涵兼具 ROG STRIX B550-F GAMING圖文網誌版本 ============================================================================== ==============================================================================7
[請益] 請問我的主機板能裝KC2500這個SSD嗎五年前組的主機 想做些小升級換顯卡跟SSD MB是ASUS B150M-PLUS 查了說明書對儲存裝置的插槽有 Intel B150 Express晶片組 6xSATA 6.0Gb/s7
Re: [閒聊] 潮玩客 SN850偷換硬體又掉速 sn750緩內寫先說結論 2021版本的SN750還是存在這個MPS128問題。 所以,最快的解法就是插到CPU直通M2插槽。 通常是M2.1(較靠近CPU的那個插槽) 次快的解法是參考yuu123大大之前文章,避開所提到的那些AMD主機板內建網卡型號名單- 就是 問號有1 byte 也有2 bytes ios打注音時問號都2 bytes 那問號比較大的
1
[問題] QFIL load partation錯誤請問大能, 手機進入9008 mode,裝置管理員也抓到 Qualcomm HS-USB QDLoader 9008(COM9) Flat Build / ufs 但是Partation manager load 出錯1
[請益] 企業級 SSD 的 namespace 問題請問 我最近買了個二手企業級 SSD D7-P5500 上家把 namespace size 調整的很小 經過一番學習後, 確定其 tnvmcap 是 7681501126656 (bytes) 如果只想把這個 SSD 當做單一 namespace 的倉庫碟- 晚上收到了 DSL DDR3L 1866 4G, 趕緊裝上去測試 DS218+ 分解前建議先看過前人的 YouTube 免得拆了沒必要的螺絲 安裝後實測結果如下: (使用 dmidecode 指令查詢) 從 type 20 的數據看來, 這兩條 RAM 並沒有跑雙通道
- 題目: 假設一人造衛星與地面之距離為 36000 公里,之間有一無線鏈路(Link)之傳輸速率 為 10^6 bit/s,若訊號傳遞速度為光速(3*10^5 km/s),訊框長度為 1000 bytes。若要 充 分利用該鏈路,且送端與收端視窗大小相同,請問送端之滑動視窗(Sliding window ), 其訊框序號空間(Sequence number space)必須為幾個位元(bit)?