2013年Apple將PCIe規格的SSD正式導入MacBook Pro系列設計之中,也正式揭開PCIe介面的儲存裝置進入消費型電子市場的序幕。
事實上,當時PCIe SSD早已出現在企業級的應用環境裡,並不是特別新型的技術,只是一直被視為高IOPS、低延遲(Latency)、高價格的固態硬碟產品。隨著SATA Gen 3物理限制的關係,持續開發SATA Gen 4的難度過高,時間也很冗長,加上NAND Flash的演進已經從過去的Legacy Mode轉到Toggle/ONFI Mode,也就是更高速的傳輸介面,SATA Gen 3的理論頻寬已經鉗制住SSD速度的推進。
除此之外,SATA另一個先天上的限制就是擴充性,SATA介面無法像PCIe介面一樣支援Multi-lane的架構,PCIe介面可以從1 Lane往上擴增到16 Lanes,所以消費型電子產品中的儲存裝置從SATA SSD轉向PCIe SSD也是必然的趨勢。
PCIe SSD主要分成兩種傳輸介面–AHCI(Advanced Host Control Interface)與NVMe(Non Volatile Memory Express)。當Apple MacBook Pro在2013年所導入的機種使用AHCI介面,儘管與SATA SSD屬相同的物理層介面,但NVMe介面本身是為了NAND Flash物理特性所設計,所以更能展現固態硬碟的優勢,目前主流的消費型PCIe SSD也是NVMe-based。
PCIe SSD的開始與興起也逐漸帶動儲存裝置的分級,許多新一代高階輕薄型的筆記型電腦搭載PCIe Gen 3×4 SSD,讀寫的理論頻寬可以達到4.0GB/s,但價格也偏高。以消費者的角度來說,比SATA SSD快、但價格仍然親民的PCIe SSD更具換機(或換碟)的吸引力,PCIe Gen 3×2 SSD便成為另一種選擇。
PCIe Gen 3×2 SSD的讀寫理論頻寬可以達到2.0GB/s,儘管速度表現仍為PCIe Gen 3×4 SSD占上風,但PCIe Gen 3×2 SSD的連續寫入和非連續寫入速度仍遠優於SATA SSD。若搭配現在主流的3D NAND Flash,不但提升容量並且讓價格更為親民,也加速PCIe SSD在PC市場的占有率。
選購SSD時,大部分的消費者著重於比較各家儲存裝置的速度表現,但事實上對於PCIe SSD這樣的高速傳輸裝置,提高資料保護能力與高速所產生的熱能處理更為重要。首先,資料保護功能可以分為三個部分(圖1):
|
圖1 PCIe SSD的三層資料保護設計 |
(1)傳輸資料時的保護-端對端資料路徑保護功能(End to End Data Path Protection)。
(2)資料在NAND Flash內的保護-NAND Flash ECC(Error Correction Code)的糾錯效能。
(3)補救無法修護(Uncorrectable)的資料-SmartECC,借用資料與資料之間的連結性,重建無法修護的資料。
End to End Data Protection
當資料被讀取或寫入時,其行走路徑會經過不同的站點,寫入路徑包含Host -->PCIe IP-->Data Buffer-->Flash IP-->NAND Flash,讀取路徑則是反向,如(圖2)。這個保護機制最主要的目的除了確保資料在傳輸受到保護之外,若控制器內部RAM搬動資料發生Soft Error,設計上也能夠有能力偵錯,避免錯誤的資料傳送至主機端。
|
圖2 端對端資料路徑保護概念 |
NAND Flash ECC(Error-Code-Correction)
當資料被寫入到NAND Flash內部時,控制器同時會產生一組校正碼與資料一起存入,資料從NAND讀出來若發生錯誤,控制器會透過校正碼更正資料。若發生的錯誤也無法透過ECC校正碼成功修正回來,這筆資料就會被當作無法修護的資料,進入到SmartECC的補救流程中。
各種ECC設計都有其優勢,如圖3,儘管校正能力(Correction Capability)很重要,同時也要顧慮到ECC電路設計的大小與耗電,甚至針對控制器製程的特性,研發出更具有優勢的NAND ECC架構。
|
圖3 各種ECC IP |
SmartECC
儘管控制器內部的各IP搭配不同的偵錯/除錯設計,但如果已存入的資料無法透過NAND Flash ECC更正回來,這種資料就被視為UNC(Uncorrectable)Data,接下來需要透過SmartECC重建UNC Data。SmartECC的運作機制是當資料被存入到NAND Flash同時,RAID ECC Engine也會產生相對應的校正碼(RAID ECC Parity)。
此校正碼是基於Page與Page之間的連結性所生成,會與資料一同存入NAND Flash內部。當發生UNC Data時,控制器會透過RAID ECC Parity重建這筆資料。對於NAND Flash製程不斷的往前推進,不僅是NAND Flash ECC,SmartECC也是PCIe SSD控制器提高產品可靠度不可或缺的設計(圖4)。
|
圖4 RAID ECC or SmartECC運作概念 |
Thermal Throttling
PCIe SSD的出現除了意味著資料傳輸要更快之外,同時因為SSD產品Form Factor越來越小,也帶出了因高速所產生的熱能問題。SSD處理熱能的方式基本上可以分為兩種:(a)外掛式,例如搭配金屬散熱片或散熱貼片,透過這樣的輔助工具分散高速讀寫所生成的熱能,這樣除了增加BOM Cost(材料成本)外,也不適合在空間有限的系統中使用。(b)熱感調節(Thermal Throttling)。透過韌體控制在特定的溫度條件之下啟動Thermal Throttling,進而有效地散除多餘的熱能,也無需額外增加硬體成本。
各SSD廠商用不同的方式實現Thermal Throttling,最常見的就是減速,也就是當溫度過熱時開始降低PCIe SSD的讀寫速度,降低熱能的產生。同時,降速也可以分成不同階段(Stage)來處理,例如輕量級調節(Light Throttling)與重量級調節(Heavy Throttling),如圖5。當溫度下降到可接受的程度,控制器又會開始加速。
|
圖5 熱感調節運作概念 |
好的溫控設計可以從兩個方面來看:(1)不任意啟動Thermal Throttling。在一般的使用情況下,控制器應將啟動此功能的可能降到最低,也就是說除非使用者大量並且長時間對PCIe SSD讀寫資料,溫度控制功能應該盡量不要啟動,避免SSD使用經驗變差。(2)熱感調節的效率。Thermal Throttling被啟動後是否能夠在短時間內減少熱能的產生,避免熱能對PCBA、NAND Flash、DDR造成老化或永久性的損傷。
另外常見消費者在搭載SSD平台的使用經驗上,出現速度忽快忽慢甚至系統停頓的現象。其中部份原因在於長期使用後系統檔案碎片化,SSD內部在處理碎片回收(Garbage Collection)狀態時無法即時回應主機端的讀寫命令所造成。以群聯電子為例,新一代的PCIe控制器的軔體架構便針對主機端讀寫命令處理和背景的碎片回收處理作了很好的平衡,維持穩定的持續存取效能(Sustained Performance),進而提升系統使用的流暢性,如圖6,帶給消費者更佳的使用體驗。
|
圖6 好的持續存取效能應該要穩定並且避免忽快忽慢的速度表現 |
PCIe SSD進入消費性電子產品已成為進行式,有3D NAND Flash加速SATA/PCIe SSD轉換作後盾外,更需要讓PCIe SSD的價格親民、消費者的PCIe SSD使用經驗感到滿意並超越SATA SSD,PCIe Gen 3×2會是一個很好的選擇。例如群聯電子最新的PCIe Gen 3×2控制器PS5008搭載雙核心、四通道的硬體設計,支援各大廠的3D NAND Flash,提供穩定的高讀寫速度與持續存取效能之外,PS5008搭配三層資料保護設計,包含端對端資料路徑保護功能、專利研發的StrongECC和SmartECC設計。同時,在熱感調節設計上,PS5008能夠有效的在短時間內減少熱能的產生,避免熱能對SSD造成永久性的傷害,提升整體PCIe SSD的可靠度,有助於加速PCIe SSD在消費型筆電上的應用與普及。
(本文作者為群聯電子技術長)