黃亮 發(fā)表于:14年11月26日 11:51 [原創(chuàng)] DOIT.com.cn
在本月16日舉行的《存儲技術之巔》第一次線下交流活動中,精通Oracle的女神Lunar和Greenliant綠芯科技VP李炫輝先生,分別帶來了“Oracle在非傳統(tǒng)存儲上的應用交流”和“閃存技術及市場發(fā)展趨勢”這2個分享主題。
數(shù)據(jù)庫方面我不專業(yè),因此就班門弄斧分享點閃存方面的收獲和心得。本文是第一篇,后面計劃還有2個小的話題。
在原本我為大家準備的內(nèi)容之前,先插入一段業(yè)內(nèi)高人的討論——這兩天在網(wǎng)上的新發(fā)現(xiàn):)在未經(jīng)確認的情況下,暫時隱去了他們的名字/昵稱。
FPGA搞不定LDPC?在SSD上的生命力能否延續(xù)
F君:“FPGA最大的問題是搞不定ECC,繞不過去的問題,以后必然是ASIC。
至少ECC是在ASIC里,主控另說。”
L君:“FPGA高ECC主要是邏輯資源不夠,Flash通道多后,一個FPGA帶寬就上不去了,每個通道都需要獨立計算ECC。”
F君:“ECC組合邏輯比較大,比如BCH32,在FPGA上能跑100M的頻率就不錯了,提供的帶寬不夠以后性能的增長。而且以后的Flash的BER(bit error rate,誤碼率)越來越大,肯定需要更強ECC,需要資源更大。”
L君:“所以LDPC硬Core成為一個關鍵競爭力。
應該說LDPC Core硬化,做到芯片里,FPGA目前基本沒有合適的能承載LDPC的商用方案。”
在《破解PCIe SSD進化:從踩坑到解決方案》一文中,我曾經(jīng)提到“FPGA(現(xiàn)場可編程門陣列)的特點是設計靈活性強,缺點是封裝尺寸和發(fā)熱量比ASIC較大,數(shù)量達到一定規(guī)模后成本不如ASIC。”
上面這段聊天中,我沒看到來自Fusion-io或者寶存科技的人發(fā)表意見。很早就聽說Fusion-io考慮過自己做ASIC控制器;而國內(nèi)Memblaze最新的PBlaze4在NVMe時代也開始轉向使用PMC的ASIC。
關于BCH糾錯,我首先想起了當年看到的SandForce SSD控制器結構圖,應該是每512byte 55b的ECC引擎。
隨著NAND閃存制程的不斷縮小以及TLC應用的推進,誤碼率確實在提高,因此更好的糾錯算法顯得越發(fā)重要。
上圖來自Altera在Flash Memory Summit2014上的演講資料,可以看到LDPC和BCH的對比優(yōu)勢。
在我印象中,另一位閃存行業(yè)的資深人士曾經(jīng)表示:“在LDPC上面,除了Marvell和LSI都是小學生。”
為什么這樣說呢,因為LDPC技術在硬盤控制器上也發(fā)展了一些年頭。我們知道硬盤的磁記錄密度已經(jīng)非常大了,對模擬信號轉換之后的糾錯也是必不可少的。而今天的硬盤控制器(含前置放大)主要就是Marvell和LSI(與希捷合作)兩家提供。當然硬盤和SSD的速度不可同日而語,那么當初LSI收購SandForce以及最終賣給希捷也有一定技術互補的成分吧。
好奇心使我繼續(xù)翻看上面那個文檔,如上圖中紅圈的部分,FPGA應該也能實現(xiàn)LDPC。
繼續(xù)看上圖,Altera認為并行化的Parity矩陣允許更快的(LDPC)算法執(zhí)行。
李炫輝:“BCH算法需要更強的計算資源,而FPGA資源有限,LDPC則可以在同樣數(shù)量校驗碼的情況下,實現(xiàn)更多位的糾錯,但是只有在錯碼率較高的情況下,LDPC的效率才會高。
因此我推測,轉向LDPC后,利用3D或多層制程技術的高容量NAND顆粒,可以大幅度提升單卡容量,但是性能提升會相對有限。
因此,如何平衡大容量以及性能會是架構設計面臨的問題。”
我的另一位朋友,《存儲技術之巔》Super管理員,擁有FPGA開發(fā)經(jīng)驗的Carol_cao表示:“需要多少資源?高端FPGA那么多資源,不夠?
不過這么貴的產(chǎn)品,做ASIC一定是看到了市場,或者說已經(jīng)做出了部分市場,要不然得玩死;
不走高制程,ASIC價格也下不來,制程高了,很多問題來了;
沒有底蘊沒有實力的不敢這么做呀。”
點評:至于FPGA到底能否實現(xiàn)承載LDPC的商用方案?在效率上有沒有價值?筆者不是SSD設計方面的專家,在這里不敢下什么結論,只是希望為大家進一步的討論拋磚引玉。
文章開頭引用的話中有一句“每個通道都需要獨立計算ECC”,而ONFi和ToggleDDR閃存接口速率也越來越高,這對單芯片ASIC的處理能力會不會也有挑戰(zhàn)呢?(注:PCIe SSD上32個通道是比較普遍的現(xiàn)象)
分布式ECC:NAND封裝閃存控制器
如上圖,未來我們會看到一種將NAND Flash和閃存控制器(包含ECC和FTL)集成于一顆芯片的方案。
Greenliant這家公司是做IC出身,現(xiàn)在也做PCIe SSD,這意味著右邊的芯片要把來自閃存工廠的半導體也封裝進去。那么,我認為已經(jīng)擁有控制器技術的三星、美光等也可能這么干吧。
我還注意到左邊的邏輯單元中沒看到PCIe或者SATA等主機接口,那么這種“NANDrive”應該還需要轉接一下。
上圖中的G-card Controller就是剛才所說的“樞紐芯片”,其內(nèi)部除了PCIe 2.0 x4接口之外,System Controller管理者控制緩存和數(shù)據(jù)緩存,此外還有8個NANDrive ArrayController模塊,各自控制5顆NANDrive組成多個RAID組。
也許就是因為將ECC和FTL這部分閃存控制功能甩了出去(聽李總說還可以做全局FTL),G-card Controller芯片能夠加強其它部分,因此被稱為“板載硬件RAID的控制器架構”。
深夜我忽然想起:上圖中的G-card Controller有沒有可能換成FPGA呢?來看看下面這個圖。
在Violin Memory全閃存陣列中,FPGA的應用就分成了2部分——RAID控制和閃存控制,IBM FlashSystem(TMS)的情況也是類似。這里的Flash Control和閃存尚未封裝在一起,整個存儲系統(tǒng)的規(guī)模也比單卡要大。
李炫輝:“Greenliant下一代產(chǎn)品除了對外的接口會采用標準協(xié)議外,內(nèi)部ASIC與分布式控制器之間,以及控制器與顆粒之間均會采用私有協(xié)議(也就是說FPGA沒法加進來玩了)。同時在算法上也會根據(jù)不同的顆粒特性做調(diào)整。
因此Greenliant的下一代產(chǎn)品也是基于自己的ASIC芯片,現(xiàn)在第一代產(chǎn)品(PCIe SSD,據(jù)說已經(jīng)支持NVMe)用了FPGA。”
未來的幾天中,我還想跟大家分享Host-Based和Device-Based的融合,以及SSD掉電保護的相關內(nèi)容,感謝關注。
本文出自黃亮的微信公眾號,企業(yè)存儲技術(微信號:huangliang_storage),歡迎大家關注!