01 M.2 PCIe Gen4 SSD 裝在 AMD Ryzen 3000 CPU 與 X570 晶片組的效能差異 cover 1024x512

M.2 PCIe Gen4 SSD裝在CPU與晶片組的效能差異

  • Post category:Drive
  • Reading time:13 mins read

目前 PCIe Gen 4 M.2 SSD 價格還那麼貴,真的是很難入手。看看自己家裡的電腦、筆電,幾乎還是以 SATA SSD 為主,頂多是那台【監視主機 + WordPress 網站 + Plex Sever + 個人雲端】電腦,才用到 WD SN750 的 PCIe Gen 3 NVMe SSD。

Western Digital 新推出的 WD Black 新品中,亮點莫過於這款 PCIe Gen4 NVMe 固態硬碟 WD Black SN850。官方文宣號稱最高速度達連續讀取 7,000 MB/s、連續寫入 5,300 MB/s。就把測試的資料整理一下,跟大家分享。文中包含了:

  • PCIe Gen4 NVMe SSD
    • WD SN850
  • PCIe Gen3 NVMe SSD
    • WD SN750
    • Samsung 970 Evo Plus

PCIe Gen4 是什麼?

Google大師告訴我們,通常 SSD 要清楚外型速度通訊協定(白話文: 溝通方式),這樣子才不會買錯。但是要說出完整描述的話,太長了也像繞口令,所以還是自己先上網找出型號或直接讓店家推薦好了。

  • 外型: M.2 或 2.5吋
  • 速度: PCIe Gen4 或 PCIe Gen3 或 SATA3.0
  • 通訊協定: NVMe 或 SATA
02 M.2 PCIe Gen4 SSD 裝在 AMD Ryzen 3000 CPU 與 X570 晶片組的效能差異 WD SN850
PCIe Gen4 NVMe SSD: WD SN850 500GB

從維基百科可以看到,PCIe Gen4 速度是 PCIe Gen3的一倍,不過這一點是指理論值並不代表使用 SSD 時,資料存取的時間也可以縮短一半。

PCIe Gen4PCIe Gen3
編碼128b/130b128b/130b
原始傳輸率16.0 GT/s8.0 GT/s
x11.969 GB/s0.985 GB/s
x23.938 GB/s1.969 GB/s
x47.877 GB/s3.938 GB/s
x815.754 GB/s7.877 GB/s
x1631.508 GB/s15.754 GB/s
PCIe Gen4 vs Gen3 的理論速度

看到上表後,才明白為何廠商的宣傳重點總是放在

  • PCIe Gen4 SSD: 讀取速度最高達 7,000MB/s
  • PCIe Gen3 SSD: 讀取速度最高達 3,500MB/s

因為考慮 IC 的處理時間、通訊協定的等待時間/header/CRC、編碼效率…的話,廠商的宣傳速度幾乎已經是達到理論的極限值了。

PCIe GEN4/Gen3 SSD 的測試環境

測試平台

  • 處理器:AMD Ryzen 3600
  • 主機板:AMD X570 晶片組(悲劇: 請點我)
  • 記憶體:Micron DDR4-3200 16GB*2
  • 系統碟:WD SN750 500GB
  • 作業系統:Microsoft Windows 10 Pro
  • PCIe Gen4 測試碟:
    • WD SN850 500GB
  • PCIe Gen3 測試碟:
    • WD SN750 500GB
    • Samsung 970 Evo Plus

測試條件

  • IOmeter
    • Data Size:
      • Random R/W 使用 4KB 做測試
      • Sequential R/W 使用 256KB 做測試
    • QD: 1, 2, 4, 8, 16, 32
    • 存取模式
      • Sequential Read
      • Sequential Write
      • Random Read
      • Random Write

PCIe Gen4 M.2 NVMe SSD 連接到 CPU 的效能真的比晶片組好嗎?

關於這個測試,真的是誤打誤撞做出來的。當初沒看主機板說明手冊,就隨便挑一個M.2插槽來安裝 WD SN850 SSD。結果從測試數據來看,都無法解釋為什麼效能比原廠宣稱的還要差。最後才發現,兩個M.2插槽中,一個是從 CPU 拉出來的 PCIe Gen4 插槽;另一個是從 X570 拉出來的 PCIe Gen4 插槽。將 WD SN850 SSD 安裝在 CPU 拉出來的 PCIe Gen4 插槽後,才看到跟原廠宣稱的數據。

WD SN850 NVMe 連續讀取效能

下圖明顯看到,假使 PCIe Gen4 NVMe SSD 插入晶片組插槽的話,連續讀取的速度真的很差。通常 AMD 假使有發表新版驅動程式的話,都會下載安裝在電腦中使用,所以看到這個結果,真的只能聯想到 CPU 到晶片組再到 SSD 的路徑上,花費了多餘的時間,導致 PCIe Gen4 NVMe SSD 的效能表現,只有 PCIe Gen3 的水準(參考前面的表格: PCIe Gen4 vs Gen3 的理論速度)

03 M.2 PCIe Gen4 SSD 裝在 AMD Ryzen 3000 CPU 與 X570 晶片組的效能差異 Sequential read performance
PCIe Gen4 NVMe 連續讀取: CPU插槽 vs 晶片組插槽

WD SN850 NVMe 連續寫入效能

Flash 不同於機械式硬碟( HDD ),所以不能直接把資料覆寫在已有資料的空間,必須先做【抹除( Erase )】把舊資料抹除掉後,才能把新資料做寫入的動作,這一點是物理特性,細節也太專業了就不多做說明了。所以寫入速度遠低於讀取速度,也就不難理解了,因為完成【寫入】前,多了一個【抹除】的動作要先完成。

04 M.2 PCIe Gen4 SSD 裝在 AMD Ryzen 3000 CPU 與 X570 晶片組的效能差異 Sequential write performance
PCIe Gen4 NVMe 連續寫入: CPU插槽 vs 晶片組插槽

WD SN850 NVMe 隨機讀取效能

即使是隨機讀取,也可以看到從 CPU 拉出來的 PCIe Gen4 插槽的效能,還是比晶片組 PCIe Gen4 插槽來的好。

05 M.2 PCIe Gen4 SSD 裝在 AMD Ryzen 3000 CPU 與 X570 晶片組的效能差異 Random read performance
PCIe Gen4 NVMe 隨機讀取: CPU插槽 vs 晶片組插槽

WD SN850 NVMe 隨機寫入效能

隨機寫入的差距應該是這四個比較項目當中差距最小的,就如同前一段說明的,執行【寫入】前要完成【抹除】。那麼為何隨機寫入速度又比連續寫入來的低呢?因為針對隨機寫入時,每次查詢 mapping table ( Physical-to-Logic address, 物理轉換邏輯位址 )後,要【抹除】一個 block size ,通常這個大小是遠大於 4KiB,在寫入 4KiB 的資料量後,又要重複做另一個 4KiB 資料寫入的流程;然而對於連續寫入而言,查詢一次 mapping table 後,【抹除】一個 block size,應該是可以一次完成 256KiB 的資料量,然後再重複做另一個 256KiB 資料寫入的流程。

06 M.2 PCIe Gen4 SSD 裝在 AMD Ryzen 3000 CPU 與 X570 晶片組的效能差異 Random Write performance
PCIe Gen4 NVMe 隨機寫入: CPU插槽 vs 晶片組插槽

不需要使用 PCIe Gen4 SSD 的幾種狀況

看完上面四張圖之後,突然有一種想法,那麼插在晶片組插槽的 PCIe Gen4 NVMe SSD 效能,是不是還會比 PCIe Gen3 NVMe SSD 好呢?所以,接著就把 WD SN850 安裝在 Asrock B550M-ITX/ac 的套裝電腦上面做測試,CPU 是 AMD Ryzen 4650G,記憶體 Micron DDR4-3200 8GB*2。

有人會說: 不同平台怎麼可以拿數據做比較呢?

其實這種說法也不是不正確,可是你有想過一個問題嗎?即使是 PCIe Gen4 NVMe SSD,它的效能瓶頸絕對不在 CPU 或 晶片組,而是在 NAND flash 與 SSD 控制晶片之間。而現在我們只是想看看 PCIe Gen4 NVMe SSD 跑在PCIe Gen3 的速度表現是怎樣子而已,所以這樣做也沒什麼不妥當的地方。

下面四張圖當中:

  • 實線代表 PCIe Gen4 組合
    • 藍色: PCIe Gen4 NVMe SSD + PCIe Gen4 CPU 或
    • 橘色: PCIe Gen4 NVMe SSD + PCIe Gen4 晶片組
  • 虛線代表 PCIe Gen3 組合
    • 粉紅色: PCIe Gen4 NVMe SSD + PCIe Gen3 CPU
    • 紅色: PCIe Gen3 NVMe SSD + PCIe Gen3 CPU
    • 綠色: PCIe Gen3 NVMe SSD + PCIe Gen3 CPU

在下圖中(連續讀取校能),可以看得很清楚,PCIe Gen4 NVMe SSD 要插對插槽,不然真的能得到好處嗎?

07 PCIe Gen4 SSD vs PCIe Gen3 的效能差異 Sequential Read performance
連續讀取校能: Gen4 SSD vs Gen3 SSD

在下面兩張圖(連續寫入校能、隨機讀取校能),就可以很清楚知道,資料傳輸的路徑,越短越好,可以減少不必要的時間,進而提高傳輸速度。

08 PCIe Gen4 SSD vs PCIe Gen3 的效能差異 Sequential Write performance
連續寫入校能: Gen4 SSD vs Gen3 SSD
09 PCIe Gen4 SSD vs PCIe Gen3 的效能差異 Random Read performance
隨機讀取校能: Gen4 SSD vs Gen3 SSD

在下圖(隨機寫入校能)中,也不清楚為何三星 PCIe Gen3 SSD ( 970 EVO Plus ),在隨機寫入居然比 PCIe Gen4 SSD 來的優秀。

10 PCIe Gen4 SSD vs PCIe Gen3 的效能差異 Random Write performance
隨機寫入校能: Gen4 SSD vs Gen3 SSD

Q&A

1. 如何才能得到 PCIe Gen4 M.2 NVMe SSD 的最佳效能呢?

最好優先考慮接在 CPU 的 PCIe Gen4 介面上面。

2. 晶片組有 PCIe Gen 4 的介面,適合使用 PCIe Gen4 SSD 嗎?

在功能方面是可以的。但是,在效能方面,並非所有使用情境都會比 PCIe Gen3 SSD 來的好。

3. 使用 NVMe RAID 的話,效能會是加倍嗎?

從前面幾張測試數據可以做一個假設,那就是建立 NVMe RAID 的話,效能會小於兩倍的 CPU-to-NVMe,但是會大於或等於兩倍的 CPU-to-晶片組-to-NVMe。
例如:
– NVMe RAID-0的效能: Z
– CPU-to-Gen_4_NVMe的效能: 7,000 MB/s
– CPU-to-晶片組-to-Gen_4_NVMe的效能: 3,500 MB/s
7,000 MB/s X 2 < Z <= 3,500MB/s X 2
以上的假設待驗證,若假設錯誤,未來會刪除!

延伸閱讀