PCIe SSD NVMe AHCI SATA

NVMe主機平台漸趨成熟    PCIe SSD搶進PC儲存主流

2017-06-19
AHCI是基於SATA而設計,支援SATA獨有的功能來發揮優勢,適用於傳統HDD。而英特爾主推的NVMe介面標準是結合PCIe匯流排來最佳化SSD性能的新架構,隨著新製程降低成本、開發平台發展漸趨成熟,儼然有後來居上的態勢。
固態硬碟(Solid-State Drive, SSD)問世以來,體驗過的使用者,大多有一個明確的回應:享受過SSD的快速、安靜、省電和不怕摔,幾乎不想再回去使用傳統機械式硬碟(Hard-Disk Drive, HDD)了。 

至於價錢方面,占SSD物料成本比例最高的NAND Flash,由於二維(2D) MLC (Multi-Level Cell)到2D TLC (Triple-Level Cell),再到三維(3D) NAND的推出,大幅降低了整個SSD的物料成本,也就讓SSD的終端售價更加親民,來到一個消費者可以接受的範圍。因此,未來消費者將追求和期待更高速的SSD體驗。 

PCIe/NVMe SSD的推出,將成為滿足大家期待的新一代個人電腦(PC)儲存裝置。一個SSD的核心是控制器,主要成本是NAND Flash,以下就幾個不同面向來探討PCIe/NVMe SSD的技術發展、挑戰以及趨勢。 

從SATA到PCIe 而AHCI轉NVMe

串列式先進附加技術(SATA)和PCIe都是匯流排(Bus)的標準,SATA規格從Rev. 1.0、Rev. 2.0到Rev. 3.0/3.1,速度從1.5Gb/s、3.0Gb/s到6.0Gb/s,雖然有新版Rev. 3.2的規格進化,速度也可以提升至16.0Gb/s,但後續就沒有新一代的SATA規格制定,而目前主流的SATA SSD就是6.0Gb/s (Rev. 3.0/3.1)。至於PCIe,從Gen. 1、Gen. 2到Gen. 3,速度從2.5Gb/s、5.0Gb/s到8.0Gb/s,Gen. 4新一代的規格也完成制定,速度更將提升至16.0Gb/s。 

不同於SATA,只有一個輸入/輸出(I/O)接口,PCIe是個匯流排,可以增加多個平行通道(Lane)來提升更高的傳輸速度(最多可達32通道)。因此,不同的主機接口,能支援的最大頻寬就會因是SATA或PCIe而有著不同倍數的提升。如表1和圖1所示,從目前主流的SATA Rev. 3.0/3.1一路進化到主流的PCIe Gen. 3 x4 Lanes,已可提升達八倍速,將來進化到PCIe Gen. 4 x4 Lanes,更可達十六倍之多。 

圖1 根據SATA/PCIe介面實體層速度,扣除Line Coding(8b/10b、128b/130b) 的冗餘,SATA Rev. 3.0/3.1最大頻寬約500∼560MB/s,PCIe Gen. 3 x4 Lanes最大頻寬約4,000MB/s,Gen. 4將可提升至8,000MB/s。
 

以上所述,是實體層(Physical Layer)的物理傳輸速度,須要搭配上層的驅動支援才能發揮到實體層的頻寬優勢。 

過去的進階主機控制介面(Advanced Host Controller Interface, AHCI)是基於SATA而設計的,而且是作業系統端的介面標準,支援SATA獨有的功能如熱插拔和原生指令佇列(Native Command Queue, NCQ)等來發揮SATA的優勢,適用於傳統機械硬碟。 

至於非揮發性記憶體(Non-Volatile Memory Express, NVMe),與AHCI一樣扮演著儲存裝置和作業系統端的介面標準,是由英特爾(Intel)主推制定,結合PCIe匯流排來最佳化SSD性能的新架構;NVMe主要將NCQ功能更加強化(表2)。AHCI可支援NCQ,最多的Queued Commands是32個;到了PCIe時代,AHCI將會限制PCIe的實體層頻寬使用效率,因此英特爾制定NVMe規範,主要大幅增加能平行處理的Command Queues及單一Command Queue能處理的Commands,如此可以體現PCIe/NVMe SSD的高效能。 

當PCIe實體層頻寬急遽地提升後,SSD的效能也能因此發揮到極致。所以,NVMe平台(包含硬體、驅動、及作業系統)的漸趨成熟,讓PCIe SSD的高效能讓使用者完全體現,進而產生新一波的需求。 

普及PCIe/NVMe SSD 解決平台相容性不容緩 

每個通訊介面的引入,必定會經歷相容性問題,所謂的相容性問題包含合規性(Compliance)和互通性(Interoperability)兩個層面。合規性是在驗證實作的能力和正確性,確認實作的結果符合規範裡定義的功能性和數據規格,SATA協會有SATA Compliance Test,PCIe SIG也有PCIe Compliance Test,包含了電性測試(Electrical Testing)、配置空間測試(Configuration Space Testing, CV Test),以及鏈路和事務層測試(Link and Transaction Protocol Testing, PTC Test),透過這些標準測試可以判定Host和Device端是否符合規範。 

即使Host和Device都做得合規,也還未必能彼此運作順利,必須經過互相調適來達成順暢地運作,這就是所謂的互通性,PCI-SIG IOT和NVMe Plugfest就提供一個平台環境來讓Host和Device廠家來彼此做互通性驗證測試。 

隨著英特爾CPU支援PCIe/NVMe (Haswell、Sky Lake、Kaby Lake、下一代Cannon Lake),支援PCIe/NVMe的主機平台也越來越多,不過由於Device端SSD還在早期普及推廣,因此與各平台相容性是目前的主要問題,越早推出的SSD產品就有機會來與現有的主機端彼此調適,有些問題須要Host端來修正或改善,必須靠著升級基本輸入輸出系統(BIOS)或是更新驅動來兼容各廠家推出的PCIe/NVMe SSD。 

消費者其實也不用太擔心,一般來說個人電腦/筆記型電腦(NB)內建的SSD,製造商都會基於該個人電腦/筆記型電腦的主機平台做完整測試驗證以確認儲存裝置與主機和作業系統的相容性;零售市場上的SSD,製造商也必須在現行的主機和作業系統平台上做完整測試驗證以確保相容性(若有需要在平台上做些更新,也會在產品上標明建議的方法),讓消費者買回去,即使置換於各種不同的主機平台,都能很順利地運行起來,如此免除消費者對相容性的疑慮,就能提升購買慾望,進而創造需求。 

因應不同應用市場 各式板型符合多樣需求 

在PCIe SSD板型(Form Factor)方面,根據不同應用,可以分為以下幾種。隨著尺寸變小,除了要保有效能,還要能解決功耗和散熱的問題;低功耗才適用於行動裝置、才能延長電池使用壽命;有良好散熱才能讓系統穩定運作並保持高速的體驗。 

AIC板卡(Add-In Card)是類似於以前的顯示卡、網路卡、音效卡那樣的一片大板卡,可以直接插在個人電腦的PCIe插槽上,這種類型的SSD通常用於高效能或電競個人電腦中。除了SSD高速讀寫功能外,還會設計酷炫的外殼、加上發光二極體(LED)燈條(或呼吸燈)、散熱板或氣流設計,甚至水冷裝置,這類型的SSD通常價格較高。 

再來就是常見的M.2,這種板型有輕薄的好處,常見的尺寸是22毫米(mm)×80毫米,也有更長的22毫米×110毫米或是較短的22毫米×42毫米板型,甚至更短的22毫米×30毫米板型,這類M.2板型大多應用於筆記型電腦(有些個人電腦也會使用),有些板型設計更只有單面上件,更進一步降低厚度,以滿足超輕薄筆電(Ultrabook)的應用需求。 

此外還有U.2,就是以前所謂的SFF-8639,這像是以前SATA的2.5吋SSD的板型,這類板型的PCIe SSD在一般消費型應用較少見,大多用於企業伺服器或資料中心的儲存裝置上。 

近來,由於Chromebook、微軟(Microsoft) Surface Pro以及平板(Tablet)這類的行動產品,興起更小SSD板型的需求,也就是球狀閘格陣列(BGA)SSD(將控制器和NAND Flash封裝一起),就可以直接焊接上主機板,體積小更省空間,更能符合輕薄的行動裝置來使用(圖2)。 

圖2 不同應用需要有不同板型,目前主流應用板型是AIC和M.2,BGA將適用於超輕薄的行動裝置上。隨著板型越來越小,功耗及散熱問題也成為PCIe SSD方案必須要解決的問題。
高速PCIe SSD成敗 端視功耗管理/溫度調控 

由於PCIe SSD的速度快,因此控制器內部頻寬和運行速度也必須更加提升,才能夠滿足高速性能需求,而高速運作下,高功耗及發熱就會是需要處理解決的問題,這個問題可以從幾個角度來探討。 

首先,PCIe規範內有定義數個不同的連結狀態(Link State),例如L0、L0S、L1、L1.1、和L1.2,L0/L0S是屬於工作模式(Active Mode)下的連線狀態,L1/L1.1/L1.2大多用於省電或休眠狀態;而NVMe驅動層也支援數個可以自定義的Power State (最多可達三十二個Power State),各個Power State將因應不同的運作模式而有不同的系統功耗。 

目前大部分常見的設計多分成五個Power State,例如PS0∼PS4;PS0/1/2是屬於Active Mode,PS3/PS4是不同程度的省電休眠狀態。省電設計的代價,就是喚醒或回復延遲(Exit Latency),因此進入越省電的模式,當要回復時就必須花費較長的時間。SSD方案提供廠商須從系統層面來考量,設計推出一個平衡的作法,既滿足省電又能及時回應Host的要求。 

表3顯示了一般常見定義的電源管理機制,不同的NVMe Power State配合著不同的PCIe Link State,因此決定相對應的系統功耗和回復延遲。如表內資料所示,進入越低功耗的省電模式,其回復延遲就會相對較長。 

在Active Mode下,因為高速而產生熱的問題,控制器和韌體必須要有自我保護以及確保SSD維持正常運作的機制,因此必須根據不同的SSD溫度來做速度調控,也就是溫控調頻(Thermal Throttling)。當SSD運行高速而導致溫度升高時,韌體將調整控制器內部及介面時脈來降速而讓SSD系統溫度下降。一般可以做兩段式調控,包括Light Throttle和Heavy Throttle,若在Heavy Throttle後還無法及時降溫,就可以進入Shutdown模式來自保。 

以上所述,是屬於系統層面的技術來降低功耗及避免過熱的問題,而在控制器本身特定應用積體電路(ASIC)設計上,也有些技術可以來幫助實現低功耗。 

一個直接有效的方式,就是採用先進的製程,這部分可以有效地降低Active Mode下的功耗,如表4所示,越先進製程可以享有較低的功耗,例如從55奈米(nm)進到28奈米,幾乎可以降低一半的功耗,而這個代價就是更高的研發投資。 

而另一方面是可以在控制器的設計中,引入不同Power Domain的概念(圖3),讓控制器可以在不同的系統運行狀態下,關閉不必要的模組來達到省電效果。不過,進入越省電的模式,要回復的時間也就越長,所以如何在控制器和韌體實作上達到一個功耗和回復時間平衡,就是PCIe SSD解決方案的關鍵技術。 

圖3 配合SSD系統功耗的需求,SSD控制器的在ASIC設計時可以將整個晶片分為數個Power Domain,在非運行狀態可關閉PD #1(如LDPC/RAID、NAND Flash Controller、DMA)來達到省電效果。在睡眠模式下,進一步關閉PD #2(如CPU、DRAM)以達最低功耗,配合韌體的調整和設定達到最佳的功耗管理。
3D NAND製程成主流 有助PCIe SSD大量推廣 

NAND Flash成本是整個SSD的主要物料成本。從2016年開始,各家NAND廠就開始導入3D NAND,並且成功應用在SSD上(三星是第一個將自家3D NAND用於SSD產品的廠商)。過去的2D NAND,從MLC到TLC,是在平面上發展來增加單位面積的容量;進到3D NAND時代,就轉往垂直面向來發展,靠著堆疊越多層來提高單位面積的容量,單位容量的成本也就因此而大幅下降。 

如圖4所示,以美光(Micron)的NAND技術為例,32層堆疊的3D TLC成本就可以比2D 16奈米的TLC來得低,堆疊越多層成本就可以更進一步往下降。根據TrendForce最新的報導指出,今年第三季,3D NAND Flash產出比重將突破50%大關,正式成為主流製程。目前除了三星(Samsung)的48層和英特爾/美光的32層3D NAND Flash為主要SSD使用的3D NAND,各家NAND廠都在積極地往更多層(64或72層)堆疊的3D NAND發展,各家都努力調適製程來達到較高良率,進而產出大量的3D NAND來供應市場需求。因此,新一代的PCIe SSD,必定得支援3D NAND,並且要能廣泛且迅速地支援各家不同的3D NAND Flash,才能及時提供各種不同符合市場需求的PCIe SSD產品。 

圖4 3D NAND的發展是從更多的堆疊製程來達到成本的下降,如美光對於自家的NAND Flash發展和成本預估,在32層堆疊的3D TLC已低於2D 16奈米TLC,因此越多堆疊的3D NAND勢必帶來更多的成本優勢,對於SSD的推動,是個重要關鍵元件技術。
在SSD應用上,不是換上3D NAND就能快速直接降低成本,3D NAND有著製程上的困難和挑戰,也就有著本質上容易錯誤的模式,而這些錯誤的模式得有強力的解錯還原機制來修正,也就是NAND Flash發生錯誤時,可以透過控制器內部的錯誤校正碼(Error Correction Code, ECC) Engine和韌體實現的解錯還原機制將錯誤的資料給修正回來。 

BCH Code(Bose–Chaudhuri–Hocquenghem Code)是常見且成熟應用於的NAND Flash儲存裝置控制器的ECC Engine,LDPC Code (Low-Density Parity-Check Code)由於引進Soft Decoding及Iterative Decoding的解碼方式,可以提供更強大的解錯能力。 

除了ECC以外,還有RAID(Redundant Array of Independent“Dice”,應用在SSD內部,是操作在不同NAND Flash Die之間)來提供進一步的保護。LDPC是將一個Page切成多個Chunk來做ECC保護,RAID則是串聯多個不同Flash Die上的資料再做一次的ECC保護,用這樣雙層保護的機制來強化解錯還原能力。 

不同的3D NAND可能有不同的錯誤分布機率,可以設計不同RAID串聯Flash Die上資料的方式(控制器硬體和韌體實現)來因應不同NAND Flash,強化還原資料的能力。總之儲存裝置最重要的使命,就是要確保資料的完整性,解錯還原能力正是儲存裝置控制器最關鍵的核心技術之一(圖5)。 

圖5 LDPC加上RAID提供雙層保護;LDPC是第一個維度的ECC,當一個Page內的各個Chunk(亦即Codeword)裡的數據資料出錯時,能發揮解錯能力還原資料;RAID是將各不同Die間的Page再做第二個維度的ECC,當某個Page裡的資料都錯誤而LDPC無法修正時,還可以透過RAID將資料給還原。這樣的雙重資料還原能力,為3D NAND提供的更佳的保護。
平台/控制器/3D NAND Flash到位 推升PCIe/NVMe SSD市場力道 

綜合以上所探討的技術發展和挑戰,總結來說,隨著PCIe/NVMe平台的成熟和普及,PCIe/NVMe SSD解決方案的進展,包含控制器、韌體以及3D NAND的支援,解決了相容性、功耗和散熱問題,對於各種不同的應用,如高效能電競市場、主流筆記型電腦/個人電腦的替換需求、超輕薄筆電或平板行動裝置需求,都可推出對應的板型SSD產品來滿足不同應用或客群的需求,PCIe/NVMe SSD從今年下半年開始,勢必將成為新一代儲存裝置的主流需求。 

(本文作者為慧榮產品企劃經理)

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!