欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

固態(tài)硬盤里的HMB主機內(nèi)存緩沖區(qū)是什么? NAND Flash介紹

  發(fā)布時間:2024-10-18 15:48:00   作者:佚名   我要評論
本文介紹了HMB主機內(nèi)存緩沖器技術在固態(tài)硬盤SSD中的應用,它利用主機內(nèi)存來提升存儲設備性能,推動了固態(tài)硬盤技術的進一步發(fā)展

科技進步的背后有一條真理:發(fā)明者和工程師們首先理解并實現(xiàn)新技術的基礎原理,接著才去考慮如何在性能和成本上做進一步優(yōu)化。這個原則在 SSD 固態(tài)存儲領域同樣適用,也就是人們常說的從實驗室到量產(chǎn)階段。

接下來,我們將介紹一項近年來固態(tài)硬盤技術的重要進展——主機內(nèi)存緩沖區(qū) (Host Memory Buffer,HMB),它利用主機內(nèi)存來提升存儲設備性能,推動了固態(tài)硬盤技術的進一步發(fā)展。

SSD 緩存設計的權衡因素

在固態(tài)硬盤 (SSD) 設計中,增加 NAND Flash 存儲單元(閃存顆粒)可以提升容量和性能。然而,正如所有產(chǎn)品設計一樣,工程師需要在資源和成本之間找到平衡。

目前,有兩種主要方式可以提升存儲單元的現(xiàn)有性能:一是提升 NAND Flash 密度,二是增加額外的閃存顆粒,但這會占用更多物理空間。由于硬盤的 PCB 空間都有限,增加閃存顆粒通常意味著就要減少其他元件。

有緩方案(DRAM)

DRAM 代表動態(tài)隨機存取存儲器,該閃存模塊安裝在固態(tài)硬盤的印刷電路板 (PCB) 上,用于存儲數(shù)據(jù)映射表,這些表記錄了所有的邏輯塊及其物理位置。簡單來說,DRAM 讓固態(tài)硬盤能夠更快處理隨機數(shù)據(jù)請求,還用于緩存寫入數(shù)據(jù),提高寫入性能。但 DRAM 會顯著提高 SSD 的成本,它的成本可能是普通 NAND Flash 的數(shù)倍。

無緩方案(沒有 DRAM)

為了降低成本,目前,許多廠商選擇移除快速但昂貴的 DRAM,也就是人們常說的「無緩方案」。然而,DRAM 是一種高速的易失性存儲器,并不能被輕易取消。沒有 DRAM 的設計在數(shù)據(jù)傳輸,尤其是處理高容量隨機讀取時,會面臨性能下降和信號完整性的挑戰(zhàn)。DRAM 的存在能讓數(shù)據(jù)訪問更快,缺少它可能會顯著影響硬盤的整體性能。

什么是 HMB 主機內(nèi)存緩沖區(qū)

那么,工程師要如何解決無緩 SSD 的性能問題呢?簡單來說,就是使用 HMB(主機內(nèi)存緩沖區(qū))技術。HMB 允許 SSD 利用主機的內(nèi)存資源,主動提升性能。

為 SSD 分配主機內(nèi)存

NVMe 1.2 規(guī)范首次引入了 HMB 功能,規(guī)定了 HMB 如何將主機內(nèi)存分配給 SSD 使用:

  • NVMe (NVM Express) 是一個開放標準,用于定義如何訪問非易失性存儲設備,如 NAND Flash。
  • NVMe 1.2 規(guī)范規(guī)定了 HMB 如何將主機內(nèi)存分配給 SSD 使用。經(jīng)過適當配置的 SSD 可以與主機通信,申請指定的最小緩沖區(qū) (Buffer) 大小。
  • NVMe 1.2 還設置了各種條件和限制,以確保在 SSD 意外斷開連接時,數(shù)據(jù)不會丟失或損壞。
  • 要使用 HMB,還需要 SSD 和操作系統(tǒng)都必須同時支持。比如,從 2017 年發(fā)布的 Windows 10 1703 版本開始,Windows 系統(tǒng)就已經(jīng)支持 HMB 技術;Linux 內(nèi)核從 4.14 版本開始也全面支持HMB。

HMB 通常用于存儲 FTL(Flash Translation Layer)映射表,而不是直接存儲用戶數(shù)據(jù)。

為什么選擇 HMB?從有緩到無緩 SSD

早期的 SSD 設計中,同時使用了非易失性閃存和易失性 RAM 來提高數(shù)據(jù)處理效率。具體來說,DRAM 設備被用作緩沖區(qū),主要有兩個原因:

  • DRAM 是易失性的,斷電后數(shù)據(jù)會丟失,因此不適合長期數(shù)據(jù)存儲。
  • RAM 設備的讀寫速度比閃存設備更快。這個特性讓 RAM 能夠作為「中繼站」,在數(shù)據(jù)傳輸時提供臨時存儲,為持續(xù)處理任務的 NAND Flash 提供緩解。

緩存中最關鍵的信息是邏輯地址到物理存儲位置的映射,即 L2P(邏輯到物理)表。該表會隨著 SSD 的讀寫頻繁更新:

  • 關機時,L2P 表會存儲在 NAND Flash 中,防止在斷電時丟失。
  • 開機后,這些表會被加載到 DRAM 中,由控制器繼續(xù)實時更新。

DRAM 緩存空間越大,通常意味著更靈活的數(shù)據(jù)管理和更快的響應速度,特別是在處理「隨機讀取」任務時。

SSD 有 DRAM 緩存運行機制

然而,DRAM 是一種按密度計算的昂貴資源,價格通常是 NAND Flash 的數(shù)倍左右,而且短期內(nèi)也不會改變。因此,盡管 DRAM 具備顯著優(yōu)勢,但過去十來年,無 DRAM 的 SSD 也逐漸開始流行。這些 SSD 體積小、成本低,但因緩存空間受限,對 SSD 性能也會有所影響。

無緩 SSD 也將 L2P 表保存在 NAND Flash 中,當控制器需要訪問 L2P 表時,會將表加載到控制器的內(nèi)部 SRAM 中進行更新,然后再次存儲在 NAND Flash 中。

無 DRAM 和無 HMB 的 SSD 緩存操作機制

然而,SRAM 的成本更高,容量也較小,典型的 Flash 控制器也只有幾兆字節(jié)的 SRAM,因此無緩 SSD 的性能通常不如有緩設計。

無 DRAM 和有 HMB 的 SSD 緩存操作機制

這也正是 HMB 技術誕生的根本原因。HMB 允許 SSD 將 L2P 表從 NAND Flash 加載到主機內(nèi)存中,并通過主機不斷刷新緩存,這種「神操作」跟 DRAM 的方法十分相似。

啟用了 HMB 的 SSD 在處理隨機工作負載時,性能損失并不明顯。接下來,我們將展示一些實際測試數(shù)據(jù),看看 HMB 對 SSD 性能的影響。

有無 HMB 性能提升對比

在啟用 HMB 后,SSD 在「隨機讀取」操作時的性能會得到顯著提升。然而,HMB 的性能提升也會因為工作負載的不同而有所變化。這是因為:主機不總能提供足夠的內(nèi)存空間給 NAND Flash 控制器來使用。

「隨機讀取」指的是控制器根據(jù)主機請求,從 NAND Flash 中不規(guī)則的位置提取特定大小的數(shù)據(jù)。

以下圖表展示了在不同工作負載下,使用 HMB 后,數(shù)據(jù)處理從 1 GB 到 32 GB 時的性能非線性提升:

1GB 數(shù)據(jù)隨機讀取

8GB 數(shù)據(jù)隨機讀取

32GB 數(shù)據(jù)隨機讀取

  • 出現(xiàn)這種非線性是由于 HMB 的緩存容量有限,在處理 L2P 表和大量中間數(shù)據(jù)時,性能提升會逐漸減緩。
  • 比如,在處理 32 GB 數(shù)據(jù)時,IOPS 的增幅相比 8 GB 數(shù)據(jù)并不太明顯,這突顯了 HMB 的性能提升存在一定的上限。
  • 即便如此,在處理 32 GB 數(shù)據(jù)時,HMB 仍能帶來超過 100000 IOPS 的額外提升,這個提升非常顯著。要知道,即使是通過精細的固件優(yōu)化,也很難實現(xiàn)如此大幅度的性能增長。

IOPS(每秒輸入/輸出操作)是衡量存儲設備性能的關鍵指標,直接反映了設備處理數(shù)據(jù)請求的速度。

如何在 Windows 中使用 HMB

如前所述,要使用 HMB 功能,需要你使用的 SSD 和操作系統(tǒng)同時支持。通常情況下:

  • 在 SSD 的固件中,通常會預設 HMB 的最小和最大內(nèi)存占用值。
  • 在 Windows 10 1703 及更高版本 Windows 系統(tǒng)中,默認支持 HMB 緩存功能。

如果你安裝了 SSD 廠商的官方硬盤驅動或管理程序,通??梢钥吹绞欠裰С植⒂?HMB 功能,這個需要你自己去探索使用;如果你沒有安裝 SSD 廠商的應用,Windows 會使用系統(tǒng)自帶的 StorNVMe 存儲控制器驅動程序,該驅動的 HMB 容量上限默認為 64MB。

你可以通過更改注冊表,來調(diào)整 HMB 容量:

1、使用Windows + R快捷鍵打開「運行」對話框,執(zhí)行regedit打開注冊表編輯器。

2、導航到以下路徑:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorPort

3、新建一個名為HmbAllocationPolicy的 DWORD (32 位) 值 ,并將其值設置為:

  • 0:禁用 HMB 功能。
  • 1:啟用 HMB,并嘗試分配 SSD 固件允許的最小值。
  • 2:啟用 HMB,并嘗試分配 SSD 固件的首選值。
  • 3:基于設備使用情況,由 SSD 固件控制緩沖區(qū)大小。

設置 HmbAllocationPolicy 注冊表值

相關文章

最新評論