MX500 vs BX500 : DRAM Cache對SSD的影響

01- MX500 BX500 美光 SSD 的電路板與效能差異 cover 1024x512 (1)
  • Post category:SATA-SSD
  • Reading time:25 mins read

美光科技 Crucial MX500 與 BX500 最大的差異在:MX500 有內建 DRAM cache(動態隨機存取記憶體快取),所以價格稍高;而 BX500 就沒有內建 DRAM cache,因此價格相對低廉。

DRAM cache 的主要功能就是:當作業系統傳送過來的資料要寫入 3D NAND Flash 之前,會先把資料存放在 SSD 的高速 DRAM cache 裡面,而在 DRAM cache 的暫時性存放資料,再依照 SSD Firmware(韌體)的資料管理機制,依序寫入 3D NAND Flash 裡面,達到資料保存的目的。通常會把常使用的資料備份在 DRAM cache 裡面,透過有效率的重複使用之前擷取或運算的資料,達到提高 SSD 讀寫速度的目的。

BX500、 MX500 的市場資訊

官方網站:Micron Crucial MX500
官方讀寫效能測試軟體:IOMeter

容量250 GB500 GB1 TB2 TB4 TB
外觀2.5″
單面打件
2.5″
單面打件
2.5″
雙面打件
2.5″
雙面打件
2.5″
雙面打件
控制晶片SM2258SM2258SM2258SM2258SM2258
NAND64L
3D TLC
64L
3D TLC
64L
3D TLC
64L
3D TLC
TBD
耐用性100TB180TB360TB700TB1,000TB
連續讀取560 MB/s560 MB/s560 MB/s560 MB/s560 MB/s
連續寫入510 MB/s510 MB/s510 MB/s510 MB/s510 MB/s
隨機讀取95k IOPS95k IOPS95k IOPS95k IOPS95k IOPS
隨機寫入90k IOPS90k IOPS90k IOPS90k IOPS90k IOPS
Crucial MX500 規格表

Micron Crucial MX500 外觀

Micron Crucial MX500 的外殼採用鋁合金類材質,而 Crucial BX500 的外殼,卻是採用塑膠材質。

02- MX500 基本資料
Micron Crucial MX500 背面照

來自 PChome 的資訊

兩款 SSD 在 PChome 網站的售價差距並不大,看的出來,屬於入門價格導向的 BX500,大概便宜幾張鈔票。

10 MX500 price on pchome
Micron Crucial MX500 市場價格 (上圖)
11 BX500 price on pchome
Micron Crucial BX500 市場價格 (上圖)

Google 找到的文章數量

在 Google 搜索引擎找文章的話,相信你也會發現 MX500 的數量遠多於 BX500 ,我猜可能的原因應該是: 比較早上市販賣,所以累積較多的文章。

12 MX500 google search post count
Micron Crucial MX500 在 Google 上面的文章數量 (上圖)
13 BX500 google search post count
Micron Crucial BX500 在 Google 上面的文章數量 (上圖)

電路板差異: BX500 vs MX500

PCB 大小

從下圖看的出來,BX500 是塑膠外殼,散熱能力差;MX500 是鋁合金外殼,散熱能力佳。

而圖中,也可以看到 MX500 的 PCB ,不僅比較長,也比較寬。

10_ BX500-MX500 PCB
SSD PCB 設計差異 (上圖)

PCB 單面打件

MX500 電路板屬於單面打件,在圖中看到背面完全沒有零件上件。

而電路板的正面,打上了 4 顆 3D NAND Flash 、 1 顆 DDR3 或 DDR3L 、 1 顆 SM2258  控制晶片、電源與被動零件,而在 SM2258 控制晶片上面,還貼了一片散熱材質。

11_ micron crucial PCB top-bottom side
Micron Crucial MX500 電路板屬於單面打件 (上圖)

SSD 技術名詞解釋

更多 SSD 專有名詞的介紹,可以參考:正確選擇M.2 NVMe或SATA固態硬碟。文章中有分享:

如何選擇多大容量的 SSD?
SATA, PCIe Gen 3 與PCIe Gen 4 NVMe SSD 的效能比較
Iometer 測速軟體完整參數介紹
SLC, MLC, TLC, QLC and 3D NAND Flash 的比較表
NAND Flash 先天上的物理限制
延長 SSD 使用壽命的技術
什麼是 2D NAND?3D NAND 呢?

NAND  flash 讀寫速度估算

NAND flash 的讀寫速度計算很複雜,一般來說,需要從使用的 NAND flash datasheet ,找到 AC characteristic table 中以下參數的數據,來計算:

  • tCAD
    • Send address and command
  • tWB + tR
    • Read data from the NAND Flash Array into the data register
  • tDQS、tDBSY、tCK、tCCS、…
  • page 大小
  • Lun 數量
  • plane 數量

而讀取與寫入的操作時序圖,又不一樣。所以,簡單來說,大約可以用 300Mbps 來估算一顆 NAND flash 的讀寫速度。

DRAM Cache 的功能

在下圖中,可以看到整個 SSD 內部介面的理論預估速度。理論上都會支援【寫入快取】的功能,但是假使有支援【讀取快取】的話,廠商會特別註明。

  • SATA 3.0:6Gbps
  • DDR3-1600:25.6Gbps
  • 4 channel NAND flash:~1.2Gbps

所以,當具備 DRAM cache 的SSD,啟動【寫入快取】的話,資料的流向就會從 SATA 介面傳到 SM2258,再從 SM2258 傳送到 DRAM 作暫存,最後才會將 DRAM 的暫存資料寫到 NAND flash。

也就是說,當主機端把資料送到 DRAM cache 後,雖然還沒有真正的寫入 NAND flash ,主機端也會認為已經完成資料寫入的操作了。在這種情況下,整個傳輸資料的瓶頸就會落在 SATA 3.0 的介面。

另一方面,當寫入資料量大於 DRAM 的可暫存容量的話,那麼整個傳輸速度又會降低下來,約落在沒有 DRAM Cache 時的狀況。這種情況可以用 AMD StoreMI 的測試結果,來做類比,當資料量大於 2GB 的話,明顯看到曲線大幅下降的結果。

12_ SSD NAND flash read write throughput
SSD 資料流向示意圖

SSD 的備用電源設計

上圖中,並沒有看到 Micron Crucial MX500 設計了多顆並聯電容,做為電腦不正常斷電時,可以提供備用電源給 SSD 使用,將 DRAM cache 的資料,完整的寫入 NAND flash 。

不過,Micron 官方說法是因為改變了 NAND flash 的寫入方式,降低寫入時的耗電量,所以大量的積層陶瓷電容可以被省略,依然可以在意外斷電時,不會讓資料遺失。

常見在備用電源電路的電容類型:

  • 電解電容
  • 積層陶瓷電容
  • 鉭質電容
  • 鋁聚合物固態電容
13_ backup power capacitor
備用電源( Backup Power )電容種類 (上圖)

效能測試結果

這裡提供的測試數據僅供參考,畢竟是用一般等級的個人電腦,對 MX500 與 BX500 做效能方面的比較。所以,數字並不代表這兩款 SSD 的最佳效能結果,只能說在相同的軟體、硬體條件下,看看這兩款 SSD 的效能差距有多大而已。畢竟在前面章節中,都看到兩款 SSD 確實存在價格的差異。

測試條件

電腦開機後,準備要進行測試的時候,我注意到兩顆 SSD 的待機溫度。只有26度,而BX500卻已經是34度了。看起來,電路板的大小真的對散熱有絕對的關係。

測試平台如下:

  • Operating System
  • CPU
  • RAM
    • 32 GB
  • Motherboard
  • Storage
    • Micron Crucial CT240BX500SSD1
    • Micron Crucial CT250MX500SSD1
    • SanDisk SDSSDXPS240G ( 這顆硬碟會先做 SSD 4K對齊 )
  • 測速軟體:IOmeter
    • Outstanding I/Os:1, 2, 4, 8, 16, 32
    • Data size:512Byte, 4KByte, 16KByte, 32KByte, 64KByte, 256KByte
    • Access:
      • Sequential
        • Read, Write
      • Random
        • Read, Write
    • 測試時間:每個 data size 跑 5 分鐘,結束後會休息 10 秒鐘在跑下一個測試
15_mx500_crystaldiskinfo_smart_500X470
Disk Info (上圖)
14_bx500_crystaldiskinfo_smart_500X573
BX500 Disk Info (上圖)

CrystalDiskMark 測試結果

CrystalDiskMark 這個測試軟體,還蠻普遍被大家拿來測試 SSD 速度。在網路上爬文的過程中,可以很容易看到這個軟體的相關測試截圖。

但是,使用過後卻發現,這個軟體可以調整的參數有點少,只能看到 4KiB 的隨機讀取結果與 1024KiB 的連續讀取結果。既然已經跑完了,就把數據放上來給大家參考好了。下面這張圖是:

  • Seq Q32T1:連續讀取、寫入測試
    • 說明:1024K 位元 / 佇列深度為 32 / 1 個線程
    • 測試總檔案大小:50MiB 到 32GiB
    • 結論:
      • 讀取:只有在小檔案(50MiB)的時候,BX500 會差一點,其餘的檔案大小,兩款 SSD 幾乎是一樣的速度。
      • 寫入:從結果看起來,似乎 BX500 比較好一點。
  • 4KiB Q32T1:隨機讀取、寫入測試
    • 4K 位元組 / 佇列深度為 32 / 1 個線程
    • 測試總檔案大小:50MiB 到 32GiB
    • 結論:
      • 不論是讀取或寫入,數據呈現穩定的水平線,不像 BX500 ,在大檔案的讀寫會降低效能。  
16_ MX500 BX500 CrystalDiskMark result (1)
Sequential R/W vs Random R/W Performance Results (上圖)

下面這張圖則是:

  • 4KiB Q16T1:隨機讀取、寫入測試
    • 4K 位元組 / 佇列深度為 16 / 1 個線程
    • 測試總檔案大小:50MiB 到 32GiB
    • 結論:
      • 趨勢上與【4KiB Q32T1】的結論一致。
  • 4KiB Q1T1:隨機讀取、寫入測試
    • 4K 位元組 / 佇列深度為 1 / 1 個線程
    • 測試總檔案大小:50MiB 到 32GiB
    • 結論:
      • 讀取效能居然比寫入效能差,與觀念有出入,可能要繼續爬文找答案了。不過,大致上的趨勢與【4KiB Q32T1】的結論相近。
17_ MX500 BX500 CrystalDiskMark result- random RW (1)
Random R/W Q1 & Q16 Performance Results (上圖)

IOmeter 測試參數設定

下方兩張圖就是這次用 IOmeter 測試所設定的參數:

  • Topology 欄位:
    • 因為 Ryzen 3600 是 6 cores / 12 threads,所以會看到 12 個 Worker
  • Targets 欄位:
    • 有做格式化的硬碟,會用黃色來表示;未格式化會用藍色來表示。
    • 編號 1 與 2 就是這次要測試的 SSD
      • 編號 1 是 Crucial MX 500
      • 編號 2 是 Crucial BX500
    • 在前方方塊點一下,出現紅色 X 就是等一下要測試的 SSD 。
  • Maximum Disk Size:
    • 預設【 0 】,代表整顆 SSD 的容量都會進行測試。
  • Starting Disk Sector:
    • 預設【 0 】,代表從編號 0 的 sector 開始測試。
  • # of Outstanding I/Os:
    • 就是 Queue Depth 的意思。
  • Run Time:
    • 每個 Script 執行 180 秒。
  • Ramp Up Time:
    • 在記錄每個測試 Script 的速度之前,有 120 秒的效能數據不會被記錄到報告中。
  • Cycling Options:
    • 選擇【Cycle # Outstanding I/Os and Targets — run step outstanding I/Os on step targets at a time】,程式會自動增加 # of Outstanding I/Os 的值,從 1, 2, 4, 8, 16 到 32,跑完後才會進行下一個 Script 。
18-IOmeter setting
IOmeter 測試參數說明- Disk Target (上圖)
19-IOmeter setting
IOmeter 測試參數說明- Test Setup (上圖)

IOmeter Sequential Read / Write 結果

在相同的軟體、硬體條件下,觀察兩款 SSD 效能差距有多大。

  • 藍色曲線:
    • 代表 Crucial MX 500 的效能
  • 橘色曲線:
    • 代表 Crucial BX500 的效能
  • 水平軸的數字:
    • 代表用固定的封包大小 ( 512Byte, 4KiByte, 16KiByte,…, 256KiByte )進行測試,測試時間為 180 秒。
  • 垂直軸數字:
    • 代表每秒可讀/寫多少 MByte
IOmeter result_ sequential Read Write-1 U0618
IOmeter result: Sequential R/W Q=1 & Q=2 (上圖)
IOmeter result_ sequential Read Write-2
IOmeter result: Sequential R/W Q=4 & Q=8 (上圖)
IOmeter result_ sequential Read Write-3
3-4-3、IOmeter result: Sequential R/W Q=16 & Q=32 (上圖)

IOmeter Random Read / Write 結果

下圖使用相同的參數來呈現數據。

IOmeter result_ random Read Write-1
IOmeter result: Random R/W Q=1 & Q=2 (上圖)
IOmeter result_ random Read Write-2
IOmeter result: Random R/W Q=4 & Q=8 (上圖)
IOmeter result_ random Read Write-3
IOmeter result: Random R/W Q=16 & Q=32 (上圖)

結論

1、哪一個值得買呢?

從上面的數據來看,整體而言,Crucial MX500 的效能的確是比 Crucial BX500 來的高,至於這些效能差距是不是值得多花點錢來購買,就見仁見智了。
當然,也有人會說 DRAM cache SSD 的效能,本來就會比 DRAMless 來的好,何必花時間做比較呢?

2、SATA SSD效能無法滿足的話,有其他推薦的產品嗎?

以我而言,工作機的確是將作業系統安裝在 Crucial BX500 ,但是家用機就是使用 WD SN750 PCIe NVMe SSD 。原因不外乎,既然要得到較高的效能,就寧願多花一點錢,買到倍數差異的 PCIe NVMe SSD,而不是幾十%的效能差異。

3、多顆便宜的 SSD 可以做什麼應用呢

通常 Microsoft 的作業系統都會提供儲存空間 ( Storage Space ) 的功能,所以就可以考慮拿 4 或 2 顆 SSD 來安裝,想看看不同的儲存空間 ( Storage Space ) 類型,會不會有不同的讀寫效能結果嗎?
或者也可以考慮主機板 RAID 來建立 RAID 0,也是另一個提升速度或應用的方法。在這一篇文章( Intel VROC SSD RAID 0 效能 )當中,可以看到完整的 RAID 1/5/0/10 效能比較。

延伸閱讀