介紹
幾千年來,人類已經開發出一種陳舊且經過時間考驗的公式來實現技術進步。發明家和設計師首先專注於弄清楚新技術的一般機制,然後再轉向成本效率和性能改進。
這一基本經驗法則適用於固態存儲領域,也適用於任何其他學科或行業。在本文中,我們將探討一項有助於提高固態硬盤技術性能的最新重要發展:主機內存緩衝區 (HMB)。
SSD內存設計的權衡
在固態硬盤 (SSD) 的設計中,額外的閃存可以增加整體驅動器容量,同時提高性能。然而,與任何其他產品設計一樣,工程師必須在資源和成本之間進行權衡。
對於SSD設計,有兩種方法可以提高每個單元的性能超出其現有能力:要么增加閃存的密度,要么以額外的物理空間為代價安裝額外的閃存。然而,無論選擇何種驅動器外形尺寸,印刷電路板 (PCB) 空間都是有限的,這通常是以省略板上其他組件為代價的。
許多供應商現在選擇從其驅動器設計中去除快速但昂貴的 DRAM(動態隨機存取存儲器),以降低成本。然而,作為一種高速易失性存儲器,DRAM 有其自身的用途,並且不易被替代。無 DRAM 設計在數據傳輸過程中的性能和信號完整性調整方面也面臨著自己的問題,尤其是在大容量隨機讀取情況下。
什麼是主機內存緩衝區?
那麼設計人員如何解決無 DRAM SSD 的弱點呢?簡潔的答案是主機內存緩衝區(HMB)技術。 HMB 是一種允許 SSD 通過利用主機 CPU 的內存資源主動追求更高性能的技術。
NVMe(NVM Express 或 Non-Volatile Memory Express)是一種開放標準,定義瞭如何訪問計算機的非易失性存儲器,例如 NAND 閃存和 SSD。 NVMe 1.2規範首先引入了主機內存緩衝區功能。
具體來說,NVMe 1.2 概述了 HMB 如何允許分配主機內存以供 SSD 使用。任何具有正確配置的 SSD 都可以與主機通信以指定其所需的最小緩衝區大小。 NVMe 1.2 規範還包括用於各種目的的條件和限制,例如確保在意外移除驅動器時數據不會丟失或損壞。
要使用 HMB 功能,驅動器和操作系統都必須支持它。幸運的是,微軟從 2017 年發布的 Windows 10 Creators Update(即版本 1703)開始就允許 HMB 支持。
為什麼選擇HMB?從使用 DRAM 到不使用 DRAM SSD
早期的 SSD 設計同時使用非易失性閃存設備和易失性 RAM 來提高數據處理效率。具體來說,DRAM 設備用作緩衝區有兩個原因:
-
-
- DRAM 設備具有易失性,當電源關閉時會丟失數據。這意味著RAM不適合長期存儲數據。
- RAM 設備的讀取或寫入速度比閃存設備更高。此屬性允許 RAM 充當“中繼站”,即來自主機的數據的臨時停止,同時在閃存持續處理任務時給予閃存存儲喘息的機會。
-
緩存到 DRAM 或從 DRAM 檢索的最重要信息是將邏輯地址轉換為 NAND 閃存陣列中存儲數據的物理位置的映射信息。此信息存儲在稱為 L2P(邏輯到物理)表的映射表中,並隨著 SSD 將數據移入和移出閃存存儲而頻繁更新。在關機期間,L2P 表存儲在閃存中,因為如果沒有連續供電,DRAM 很快就會變得無法運行。
另一方面,在上電情況下,L2P表會上傳到DRAM,以便控制器不斷更新。 DRAM 尺寸越大,可供控制器使用的可用空間就越多。這通常意味著更靈活的數據放置,從而在接收命令時有更好的反應時間。就典型數據工作負載而言,需要所謂“隨機讀取”序列的操作從充足的 DRAM 空間中獲益最多。
然而,與閃存相比,DRAM 等寶貴資源的成本很高。控制密度後,目前 DRAM 的價格是 NAND 閃存平均價格的 10 倍以上,而且沒有跡象表明這種情況會很快改變。
儘管 DRAM 具有諸多優勢,但過去十年出現了不安裝 DRAM 的 SSD。這些“無 DRAM”驅動器具有成本更低、物理尺寸更小的優勢。
但無 DRAM 的 SSD 也不完全是“一刀切”的解決方案。由於為中間數據和映射表保留的緩存空間固有的缺陷,無 DRAM 的 SSD 的性能通常會受到影響。
儘管無 DRAM 設計也將 L2P 表保留在 NAND 存儲器中,但它們與安裝 DRAM 的設計有重要區別。當控制器嘗試從 NAND 閃存訪問這些表時,信息會在更新和使用時加載到控制器的內部 SRAM(靜態 RAM)中。之後,這些表又被放入NAND閃存中進行存儲。
這裡的主要區別是使用 SRAM 作為緩存空間。然而,SRAM 是一種寶貴的高性能資源,其成本甚至比 DRAM 更高。此外,典型的閃存控制器通常只有幾兆字節的 SRAM。由於更大的緩衝區空間通常會帶來更高的效率,因此從性能角度來看,這些無 DRAM 的設計可能被認為是次優的。
這個缺點正是 HMB 功能被設計的原因。在SSD操作期間,L2P表可以直接從NAND閃存加載到HMB。這些表可以從主機端連續刷新在緩衝存儲器中,幾乎與傳統的 DRAM 方法相同。
啟用 HMB 的 SSD 在處理隨機工作負載的效率方面通常會顯著減少甚至可能不會降低。在下一節中,我們將探討一些有關 HMB 性能的具體實際測試數據。
HMB 性能改進:使用與不使用
啟用 HMB 後,SSD 通常會在所謂的“隨機讀取”中看到性能提升。這些操作是指通過控制器級操作根據主機請求檢索預定大小的數據(但來自閃存內不可預測的位置)。
然而,HMB 性能提昇在不同的工作負載下也會有所不同。這是因為主機可能並不總是能夠提供閃存控制器所需的實際內部存儲器空間量。
這些圖表展示了使用 HMB 帶來的非線性性能提升,將工作負載從處理 1 GB 的數據擴展到 32 GB。這是由於 HMB 的 DRAM 容量限制。
當我們處理 L2P 表並處理大量中間數據時,我們達到了一個閾值,在該閾值中,對所提供的 HMB 空間的加載操作開始呈指數增長。因此,32 GB 數據的 IOPS(每秒輸入/輸出操作數)的增加不如 8 GB 數據顯著。這表明,HMB 與任何硬件技術一樣,其性能提升也有限。
然而,即使有 32 GB,使用 HMB 時我們仍然可以獲得超過 100,000 次額外的 IOPS。這顯然是一個顯著的提升——即使是煞費苦心的固件優化也只能得到幾千 IOPS 的回報。
群聯如何使用 HMB 打造世界上最好的 SSD
自首次發布以來,無 DRAM 的 SSD 已作為供應商所謂的“價值線”的一部分得到了廣泛部署,由於其硬件配置而提供了成本效率優勢。群聯已在自己的 SSD 中實施了 HMB,利用我們的硬件和固件專業知識來提高性能,而不會濫用控制器硬件資源。
根據 NVMe 協議中的定義,如果在使用 HMB 時意外移除 SSD,閃存控制器必須保證數據丟失或損壞的可能性為零。為了滿足這一標準,群聯的控制器解決方案使用專有固件,旨在消除數據傳輸錯誤並在操作過程中確認數據完整性。
此外,群聯利用其豐富的知識和經驗來測試和驗證其SSD設計。群聯進行控制器級和系統級測試,以進行徹底的功能和物理驗證。
下面的圖表顯示了群聯製造的哪些無 DRAM 產品適合各種行業應用。欲了解更多信息,請訪問 群聯網絡.