李 煒
(中電??导瘓F有限公司研究院,浙江 杭州 311121)
隨著大數(shù)據(jù)和云計算的發(fā)展,海量的數(shù)據(jù)需要進行存儲。另一方面,隨著新型存儲介質(zhì)技術(shù)的發(fā)展,NAND閃存(NAND FLASH)工藝的進步和良率的不斷提升,QLC等先進閃存的不斷產(chǎn)品化,固態(tài)硬盤(Solid State Disk,下文中簡稱SSD)的成本已經(jīng)下降至接近企業(yè)級機械硬盤 (Hard Disk Drive)的水平。SSD在服務(wù)器、數(shù)據(jù)中心、存儲系統(tǒng)以及日常消費電子產(chǎn)品中的應(yīng)用越來越廣泛。
SSD有兩種典型應(yīng)用場景,即消費級應(yīng)用和企業(yè)級應(yīng)用。在消費級應(yīng)用領(lǐng)域,SSD主要是以卡、便攜式移動硬盤以及筆記本電腦、手機移動存儲的形式出現(xiàn),比如在蘋果手機中,已經(jīng)內(nèi)嵌了BGA封裝的NVMe SSD。在企業(yè)級應(yīng)用領(lǐng)域,SSD主要是以PCIe接口的板卡、SAS/SATA企業(yè)存儲盤的形式出現(xiàn),接口形態(tài)一般是U.2、EDSFF等。
SSD的功耗指標,直接影響到產(chǎn)品競爭力。在筆記本及手機等便攜式移動設(shè)備中,SSD過高的功耗會造成待機時間縮短,從而影響用戶體驗。在企業(yè)應(yīng)用中,由于企業(yè)級SSD大多運用在數(shù)據(jù)中心,一個數(shù)據(jù)中心里會有成千上萬的服務(wù)器,每個服務(wù)器機柜里都會有幾十塊乃至上百塊固態(tài)硬盤,SSD過高的功耗會造成數(shù)據(jù)中心整體發(fā)熱量增大、耗電量上升和企業(yè)用戶整體擁有成本 (Total Cost of Ownership,TCO)增加,也會造成服務(wù)器的散熱設(shè)計難度增大;同時,高溫環(huán)境會嚴重影響NAND FLASH介質(zhì)的壽命,從而減少SSD的壽命,影響整個數(shù)據(jù)中心的穩(wěn)定性。
如圖1所示,主流的固態(tài)硬盤由下面幾個主要部件組成。
(1)固態(tài)硬盤控制器芯片(SoC)
控制器芯片作為SSD的大腦,控制著數(shù)據(jù)和命令的傳輸流程。SSD主控的低功耗設(shè)計,直接影響到整個SSD的功耗和性能,這也是我們在低功耗設(shè)計方案中需要重點考慮的部分。
SSD主控芯片的功耗,通常由兩部分組成:一部分是芯片內(nèi)部晶體管不斷翻轉(zhuǎn)造成的動態(tài)功耗;另一部分是芯片內(nèi)部晶體管在上電狀態(tài)下源極和漏級產(chǎn)生的漏電流,俗稱靜態(tài)功耗。動態(tài)功耗通常跟電壓、操作頻率有關(guān),靜態(tài)功耗跟晶體管的工藝、Track值以及標準單元的門限電壓有關(guān)。
圖1 基本的固態(tài)硬盤組成
圖2描述了SSD主控芯片內(nèi)部的幾大基本組成部分以及基本的SSD數(shù)據(jù)流、命令流??梢钥吹?,SSD主控芯片的主要功耗產(chǎn)生在下面幾個部分:
①由于主機需要通過PCIe控制器發(fā)送命令和數(shù)據(jù),因此SSD主控內(nèi)部的PCIe接口模塊信號總是在翻轉(zhuǎn),產(chǎn)生大量的動態(tài)功耗;
②內(nèi)部Memory總是運行在全速模式,產(chǎn)生了大量動態(tài)功耗;
③內(nèi)部邏輯模塊,主要是算法IP,比如LDPC編解碼部分的晶體管總是在翻轉(zhuǎn),產(chǎn)生大量的動態(tài)功耗;
④芯片內(nèi)部高Track的CMOS晶體管的高漏電產(chǎn)生了一定的靜態(tài)功耗;
⑤Flash的IO接口總是處在上電狀態(tài),產(chǎn)生一定的靜態(tài)電流與功耗。
圖2 SSD組成部件中的功耗來源
(2)NAND FLASH 顆粒
NAND FLASH顆粒占據(jù)整個固態(tài)硬盤80%以上的空間,是SSD功耗的最大組成部分。NAND介質(zhì)顆粒本身的芯片功耗,由提供介質(zhì)顆粒的廠家自行設(shè)計,用戶無法改動。通常,對于介質(zhì)顆粒的功耗控制,是與SSD控制器芯片配合一起進行整體的低功耗設(shè)計;主控芯片的設(shè)計人員可以通過對Flash IO接口的頻率、工作模式以及介質(zhì)廠家開放的測試模式,來對介質(zhì)顆粒進行一定的功耗調(diào)整和優(yōu)化。
(3)DRAM 顆粒
DRAM在SSD中用來存儲表項和部分重要元數(shù)據(jù),在系統(tǒng)不需要DRAM工作的時候,我們盡量讓DRAM處在自刷新狀態(tài)。但是由于DRAM的原理所限,為了維持數(shù)據(jù),DRAM還是需要每隔一段時間對所存儲的數(shù)據(jù)進行自刷新,在系統(tǒng)IDLE模式下,DRAM仍然會產(chǎn)生一定的動態(tài)功耗。
(4)NOR 顆粒
NOR顆粒在SSD中主要用來存儲固件,因此在上電時會產(chǎn)生動態(tài)功耗。由于NOR是一種非易失性介質(zhì),因此在關(guān)閉時沒有靜態(tài)功耗的產(chǎn)生。
總體來講,DRAM和NOR產(chǎn)生的功耗相對較少,而且無法進行優(yōu)化。由于NAND FLASH顆粒大多采用英特爾、美光、東芝、三星等原廠顆粒,我們無法對顆粒內(nèi)部進行改動,所以NAND介質(zhì)的功耗控制通常結(jié)合控制器芯片進行一體化設(shè)計。本文主要研究固態(tài)硬盤控制器芯片的低功耗設(shè)計方法。
對于NVMe SSD的控制器芯片,我們采用了多種設(shè)計以降低功耗。
當前NVMe SSD的主機接口通常基于PCIe,其功耗在整個主控中所占比例相當大。如表1所示,為了降低PCIe控制器的功耗,PCIe的標準協(xié)議規(guī)定了幾種低功耗模式,允許用戶根據(jù)實際的負載情況,在幾種模式中進行有效地切換,從而達到控制功耗的目的。
我們可以看到,在PCIe協(xié)議的規(guī)定中,從L0到L2,PCIe接口逐漸從全速工作模式變化到深度節(jié)能的低功耗模式,隨著性能的不斷降低,功耗也在不斷降低。結(jié)合芯片的其他主要部件的工作模式,我們?yōu)檎麄€主控設(shè)計了5種低功耗模式,如表2所示。
表1 PCIe低功耗模式
表2 主控芯片的低功耗模式
該方案一共設(shè)計有5種功耗模式(Power State),從PS0到PS5,性能和功耗都是逐步降低的。固態(tài)工程師可以根據(jù)系統(tǒng)的應(yīng)用場景和IO負載,控制主控芯片在這幾種功耗模式之間進行切換,在不同的應(yīng)用場景下,最小化整個系統(tǒng)的功耗。
SoC的功耗分為靜態(tài)功耗和動態(tài)功耗。隨著半導(dǎo)體工藝的演進,電壓越來越低,動態(tài)功耗下降很明顯,靜態(tài)功耗所占的比例越來越顯著。減少靜態(tài)功耗的方法通常包括使用門限電壓較高的標準單元庫、電源門控等;用來減少動態(tài)功耗的手段通常有時鐘門控、多電壓域設(shè)計、動態(tài)降頻調(diào)壓、襯底電壓偏置技術(shù)等。
針對SSD主控SoC芯片,我們設(shè)計了如下低功耗方案:
(1)為了降低靜態(tài)功耗,對于邏輯單元比較多的模塊,特別是LDPC算法模塊,在網(wǎng)表實現(xiàn)時盡可能采用低Track、高門限電壓的標準單元。
(2)在各類操作模式下,在用Design Compiler進行邏輯綜合時,針對數(shù)據(jù)路徑模塊(Data Path)采用自動門控插入(Auto-Clock Gating)技術(shù),減小動態(tài)功耗。
(3)針對Flash通道的模塊,在該模塊功能處于IDLE時,盡可能地進行電源門控(Power-Gating)。
(4)盡可能采用異步時鐘設(shè)計的高密度Memory單元,特別是針對CPU模塊,減少CPU的時鐘樹上產(chǎn)生的大量動態(tài)功耗。
(5)對于Memory的睡眠模式和關(guān)斷模式要靈活地運用。
(6)在不必要的時候關(guān)斷整個SoC的頂層,最小化Memory和CPU指令消耗。
總而言之,所有這些手段的核心在于盡量根據(jù)應(yīng)用場景來控制內(nèi)部邏輯和Memory單元的工作狀態(tài),盡量避免內(nèi)部信號的無謂翻轉(zhuǎn);同時,在可以關(guān)閉的時候盡可能關(guān)閉模塊的電源,降低整體的漏電流。
對于NAND介質(zhì)以及Flash IO通道上的功耗控制,我們采用了如下幾種方法:
(1)功耗壓制技術(shù)(Power throttling)
在SSD固件程序中設(shè)定一個溫度門限值,當主控溫度傳感器檢測到溫度高于該門限溫度時,固件主動對主CPU和Flash IO進行降頻操作,必要時停止對Flash總線上的數(shù)據(jù)和命令訪問。該方案能顯著降低NAND介質(zhì)的動態(tài)功耗,提升可靠性和壽命。流程如圖3所示。
(2)通道壓制技術(shù)(Channel throttling)
SSD控制器為了提高并發(fā)寫入的速度,通常在Flash后端采用多通道并發(fā)讀寫設(shè)計。當前主流的企業(yè)級SSD控制器一般都采用8通道或者16通道,在提高了并發(fā)讀寫性能的同時,帶來的問題是功耗的顯著上升。
為了降低Flash功耗,同時也為了保護NAND介質(zhì)的壽命,我們采用了通道壓制技術(shù),即在固件中設(shè)置一定的負載門限,如讀寫帶寬值、正在工作的Flash Die的數(shù)量等。系統(tǒng)在操作的過程中,由固件實時監(jiān)控IO的帶寬和正在工作的Flash Die的數(shù)量并定時上報,當系統(tǒng)檢測到所監(jiān)控數(shù)值高于門限時,控制器主動取消對于NAND介質(zhì)的命令及數(shù)據(jù)傳輸,靜默總線操作,通過這種方式,有效地降低動態(tài)功耗的產(chǎn)生。另外隨著生命周期內(nèi)NAND介質(zhì)壽命的不斷減少,門限值也可以動態(tài)地進行調(diào)整。該方法能夠顯著降低Flash介質(zhì)功耗,但不可避免地犧牲了瞬時性能,在用戶看來會有一定的掉速,因此門限數(shù)值的選擇要非常謹慎。
圖3 功耗壓制技術(shù)操作流程圖
表3 實驗數(shù)據(jù)和指標
結(jié)合以上幾種低功耗設(shè)計方法,我們基于NVMe SSD的原型在EDA里進行仿真,結(jié)果如表3所示。結(jié)果顯示,采用了多種低功耗設(shè)計手段的SSD主控配合Flash介質(zhì),良好控制了動態(tài)功耗和峰值功耗,與主流SSD廠家如美光、三星等在產(chǎn)品相關(guān)的參數(shù)指標上處在同一檔次水平。
本文針對固態(tài)硬盤及其主控的低功耗設(shè)計進行了研究,提出了一系列低功耗設(shè)計方法。實驗結(jié)果顯示,綜合運用這一系列的低功耗設(shè)計方法,可以在固態(tài)硬盤的設(shè)計中顯著地降低整體盤片的動態(tài)功耗及待機功耗,具有良好的應(yīng)用前景和推廣價值。