close

前不久,阿明自媒體微信公家號chinastor發佈的一篇文章裡面做了《影響SSD泛起故障的常見問題調查?》,這個調查結果顯示:

Facebook快閃記憶體失效大規模鑽研誘發的深度思考

兩岸商貿,網路創業,創業賺錢思惟,微商平台

其中被調查項目:工作環境的溫度以及SSD存儲單元¥生命週期網友投票至多,後面緊跟系統層級的寫入疲勞以及稀疏的非連續性資料佈局。可見大家對于溫度、存儲單元¥生命週期最為看重。也從中可以發現,大家在快閃記憶體與套用對於可靠性請求方面仍然是有著很明確的目的。

其實,這個調查的底本是參考了卡耐基梅隆大學《Facebook快閃記憶體失效大規模鑽研》論文的內容觀點。藉此,由綠芯科技主辦、阿明自媒體協辦的Greenliant 2015快閃記憶體熱點沙龍流動在6月29日舉辦,尤其針對於「快閃記憶體與套用對於可靠性到底存在什麼需求」 這個核心話題,開展了討論。

Facebook快閃記憶體失效大規模鑽研誘發的深度思考

現場邀請到來自Greenliant亞太行銷副總裁李炫輝,他就《Facebook快閃記憶體失效大規模鑽研》論文開展一系列現場討論的話題。《大話存儲1&2》作者張冬也將帶來他對於該論文的獨家分享。 同時,本次沙龍還邀請到來自達沃時代雷迎春博士、樂日子與愛IT微信號作者也是SDS技術專家Peter Ye,以及人人網李蓓、美圖楊尚剛等網際網路使用者以及專註存儲領功能變數的專業編纂記者。

與此同時,微群技術會:快閃記憶體夏日清涼聊第一波,也同期在技術大圈以及存儲圈微信群開展。

線上線下討論目的,從技術層面來探討卡耐基梅隆大學《Facebook快閃記憶體失效大規模鑽研》論文中提出造成快閃記憶體失效的幾種緣故以及現象,來闡述咱們如何防止以及解除這些潛在風險。從而晉陞業界對于快閃記憶體存儲介質的技術認知,啟迪大家對于快閃記憶體技術的進一步探討與鑽研。

Facebook快閃記憶體失效大規模鑽研論文提到了哪些癥結點?

在此以前,已有不少業界朋友發佈了對於該論文的看法,也有媒體發佈了Facebook快閃記憶體失效大規模鑽研論文的觀點文章,從中咱們也可以發現幾個癥結因素影響,工作環境的溫度、匯流排供電情況、系統層級的寫入疲勞、SSD存儲單元¥生命週期、稀疏的非連續性資料佈局、存儲空間佔用情況,以及不可預知的其他方面。

無非,Greenliant亞太行銷副總裁李炫輝在分析中認為,「A Large-Scale Study of Flash Memory Failures in the Field《Facebook快閃記憶體失效大規模鑽研》的論文題目,立足點很好,它是在一個完整的快閃記憶體產品生命週期裡面,並且在一個真實出產環境裡面,去鑽研以及發現快閃記憶體的可靠性對于現代軟體以及資料中心的影響。因為不少裝置廠商可能只看自己裝置的情況,然而對于下游廠商如何使用自己的裝置套用的情況以及問題,瞭解不多。而且從整個生命週期去理解這個事情,是很有意義的。」

實際上,在這以前,咱們很缺乏一個對于快閃記憶體規模化使用的系統性鑽研講演。Facebook這篇論文的鑽研法子也對比客觀,鑽研時間長度跨度近4年左右。在幾萬¥台伺服器上安裝了資料採集的腳本,自動化採集資料。並且把所有資料又做了完整分析,在裡面也講到把資料採集到Hadoop平台上,再去生成等等。就是說時間跨度足夠長、資料量足夠大,所以頗有代表性。

在一個運行現代程式以及系統軟體的真實資料中心中,在快閃記憶體的整個生命週期瞭解快閃記憶體的可靠性特色是很主要的。

需要指出的是,這個論文第一次展示了快閃記憶體SSD可靠性的大規模鑽研。「他們在 Facebook資料中心通過近四年以及數百萬¥次的動作小時進行資料採集來瞭解快閃記憶體SSD失敗的性質以及趨勢。」

鑽研方向針對於主要幾個SSD的特性,一是從快閃記憶體晶片來看資料讀寫數量;二是資料如何與SSD位址空間映射;三是被快閃記憶體節制器複製、擦除了以及丟棄的資料數量; 四是快閃記憶體板溫度以及匯流排供電。

Facebook為何能做到這樣的鑽研?因為Facebook使用了很多的PCIe SSD,套用到了各個業務平台之上,在這個論文中,就針對於其中的6個平台進行了鑽研。

在論文中也提到了一個觀點,並且這個觀點在整個業界都是認可的。就是跟著Flash密度的增添,在晶片層面的可靠性是降低的。大家都在談快閃記憶體顆粒愈來愈廉價了,譬如說20納米只有25納米80%的價格,16納米大概只有20納米70%的價格,愈來愈廉價了。但問題廉價是廉價了,然而可靠性會降低。這就是為何你會看到儘管成本很高,大部份企業級產品依然選用高製程工藝的快閃記憶體顆粒,並不是低製程的工藝。

為何顆粒廠商都開始注重3D NAND?緣故在於 3D NAND在平面上可以採用更高製程,回到35納米甚至40納米的製程上,通過多層結構增添容量,提高單個晶圓產出率、降低成本。

Facebook快閃記憶體失效大規模鑽研誘發的深度思考

加州理工在2012年專門做了鑽研,增添快閃記憶體密度也帶來了晶片級的可靠性降低,就是製程拉遠帶來的可靠性降低。縱軸是可靠性、可擦除了次數,橫軸是納米製程。

初期在72納米的情況下,MLC的可擦除了次數可以達到1萬¥次。譬如說到了35納米,可擦寫掉到幾千次了。並且這裡面還有bit error rate的變化,就是擦寫過程中會泛起過錯的比例。

現用的,業界提到了一個現象,「SSD將於兩年內突破HDD的容量/價格臨界點」,這個現象也是大家所注意的。那末快閃記憶體又廉價了,是否快閃記憶體卡、SSD盤就廉價了?不是的,消費類的產品可能會廉價,然而企業級方面會慢一些。

你不曉得Facebook論文中的幾個主要發現!

從Facebook論文探討中,有幾個主要發現需要指出:

Facebook快閃記憶體失效大規模鑽研誘發的深度思考

一是SSD失敗並非單純地隨快閃記憶體晶片磨損增添。它們歷經幾個顯明的時代,與失敗如何泛起以及隨後如何被檢驗到相一致。

二是讀干擾過錯並不普遍。但寫一般會有影響的,因為寫是要從新加電,要把電激發到cell,但讀不是,讀是電位感應。

三是跨SSD物理位址空間的稀疏邏輯資料佈局(如不連續資料),需要通過大量的存 儲在SSD內定DRAM快取的metadata來追蹤邏輯位址翻譯,會極大地影響SSD 失敗率。「若果說你的資料佈局以及物理的區功能變數佈局很擴散,就是說原先我在邏輯上是連續的數值,然而在物理上是擴散佈局,這對於損害值會大。這以及咱們磁碟是徹底不同樣的,磁碟是說我一個邏輯上連續的檔案最佳是擴散的佈局。」

四是高溫會帶來高的失敗率,通過截流SSD動作看來可以極大地減少高溫帶來的可靠性負面影響,會帶來潛在的效能降低。對於此,李炫輝指出,「快閃記憶體並非溫度越低效能越高,實際上溫度越低因為電子驅動效能會降低因而還需要適合的工作溫度,50到55攝氏度是對比好的工作環境。既對比流暢,又沒有那末高的激發態會泛起電子流失。若果說過高了,可能電子流失會對比多一點。若果過低了,對于電子動作效能會降低了,所以說還不能過低。」,無非對于這個問題,「所謂限流,直接對於供電進行限制,相對於來說就是降低散熱,降低散熱實際上就變相地降低溫度了。通過限流可以降低溫度、提高可靠性,但問題是這樣又影響到了效能,實際上這是一個矛盾體。這個問題就需要在板卡的設計過程中,怎麼去這個給分攤掉,防止泛起熱點。熱點就是真正的熱點了,就是溫度高點,一個處所的溫度高會造成整個系統溫度高。這就是之所以用分佈式架構的緣故,防止泛起集中式的熱點。」

五是因為SSD節制器的改善以及系統軟體的快取機制,動作系統寫到快閃記憶體SSD的數量 並不能精確地反映快閃記憶體Cell上的擦寫數量。

基於這樣的發現,業界同仁但願在真實工作負載以及真實系統中有所新發現,然後需要瞭解各種不同因素對於快閃記憶體可靠性的影響,內含系統軟體、套用以及SSD節制器;更需要設計更為可靠的快閃記憶體架構以及系統;同時為今後快閃記憶體可靠性鑽研改善評估法子。

安定性測試帶來什麼啟示?

無非,在快閃記憶體層面,可靠性大家探討對比多,但安定性幾乎很少有人探討,緣故在於使用磁碟時,一個15000轉的磁碟,效能是200 IOPS,用上十年仍然是200個IOPS。然而快閃記憶體就徹底不同樣了,實際上快閃記憶體顆粒在使用過程中會越寫越慢,因為bad Block問題,實際的效能會跟著使歷時間以及頻率逐步降低,泛起效能衰減的問題。常理來講,板卡廠商要有一些資料來說明使用者瞭解這個方面的情況,當然需要做一系列的測試、評估。

對于安定性方面,一個產品應該在整個生命週期裡面所定標準應該是99.9%的時間裡面效能不低於90%。李炫輝介紹說,對于安定性,Greenliant有一組測試資料,使用快閃記憶體卡一直在做測試擦寫,全盤擦寫了差不多18000次,效能衰減基本上節制優良,像寫的效能衰減值只有3-4%,讀的效能衰減稍大一點,接近7-8%。這樣的效能表現是在5年的快閃記憶體生命週期最後一段時間裡面,象徵著若果人的壽命是100歲,他已99歲、100歲了,他的經受能力以及20歲時基本上是同樣。作為快閃記憶體專業廠商,這就是做產品化必需斟酌的,這樣的跑卡測試一直在進行著。

Facebook快閃記憶體失效大規模鑽研誘發的深度思考

因為快閃記憶體裝置在長期擦寫情況下,壞塊會逐步 增多,故障率上升,由此會帶來潛在的效能大幅降低。

Greenliant對於產品進行長期擦寫以及效能測試 。在疲勞測試環境中,天天全盤擦寫50次, 超過18000次擦寫後,效能衰減不超過10%。

DWPD是天天全盤擦寫的縮寫(Disk Write Per Day),10 DWPD就是天天全盤擦寫10次,為何會有這樣的資料呢?因為咱們曉得快閃記憶體顆粒有擦寫次數的限制,如3000次,咱們通過架構設計、磨損平衡算法以及配置冗餘的顆粒,來延長快閃記憶體卡的壽命,通過全盤擦寫這個數值,就能推算出快閃記憶體卡的使用壽命。天天擦寫次數越高,其實對於快閃記憶體卡的壽命影響就越大,因為快閃記憶體還有一個特色,就是它需要有一個relax時間,叫放鬆時間。緣故是什麼呢?因為快閃記憶體是電子器件,當進行資料動作的時候,其實是要釋放電子調整電位,當電子隧道驟然打通之後,電子透露到規定的閥值馬上就關閉隧道,實際上裡面的電子依然處於不穩的抖動狀況,需要一個放鬆時間。這個放鬆時間越長,有利於快閃記憶體持久性。這就好像咱們搬東西,一小時搬50塊磚以及五天搬50塊磚的感覺是不同樣的。

Greenliant測試在55度的恆溫環境下,天天50次擦寫, 並且現在還再繼續跑,已跑了一年。最終計劃要把這幾塊卡整個跑到最後不能用, 到底可以到什麼程度。Greenliant當時設計目的是天天10次全盤擦寫,壽命可以用不少於5年。實際上已測到了,10DWPD是保守值,但Greenliant想看實際值究竟能撐到多少?

做快閃記憶體卡設計的時候,GreenLiant每做一次擁有軟體功能的韌體firmware的進級,就要把整個板卡的測試跑一遍。從開發完新的firmware到這個新的firmware能正式通過至少一個月。緣故是什麼呢?快閃記憶體的Firmware進級,可能會對於裝置運行帶來不確定因素。如新的算法帶來元件發燒量或功耗的升高,底層裝置走訪的機制變化與其它代碼以及介面的相容性等等,可能會影響板卡的安定性。並且對于一些BUG修改,或許會帶來一些新的BUG,所以要把整個卡的都要跑一遍。例如以前其它廠商快閃記憶體產品曾經經泛起的意外掉電容量丟失,過錯的指令造成資料丟失等等,都是因為測試不完整造成。

因而,Greenliant每次Firmware的更新,從高溫耐受到整個的功能效能測試都要跑一遍,並且同時在異地兩個試驗室同時做測試,只有兩個試驗室均通過測試後,才會發佈新的Firmware版本。

因而,對于一個專業快閃記憶體廠商來講,快閃記憶體的可靠性設計,實際上必需要將整個的設計以及出產流程斟酌進去。

快閃記憶體節制器其實是針對於顆粒去設計的,譬如說每一種節制器,其裡面的算法以及可靠性的維護都會針對於做評測。評測完後,會在算法裡針對於顆粒來去設計,基本上,節制器是按照最壞的情況去預估。

並且,快閃記憶體節制器是聯絡主電腦以及NAND Flash的橋樑,快閃記憶體節制器需要具備主要幾個快閃記憶體管理功能:Error-correcting code (ECC校驗)、RAID維護機制、Wear leveling(磨損平衡)、Bad block mapping(壞塊管理)、Read/write disturb management(讀寫干擾管理)、Garbage collection(垃圾採集)。快閃記憶體節制器也有其它定製化功能,如加密、安全擦除了或自毀、壓縮或去重。

實際上,在架構設計裡面,就能推算出來大概什麼情況。隨後還要在前期設計每個流程對於顆粒、流片做測試,然後再做整合短期密集的測試,去驗證整個可靠性。同時還會跑實際的情況,長期時間進行測試。

不同批次的顆粒質量都會不同樣,對于封裝廠那邊,質量會直接影響到產品的產出率,就是同樣一個wafer晶圓要切割封裝,若果質量好產出率自然就高,可以達到98%、99%, 質量不好可能到70%多,這就是在wafer切割封裝過程中需要斟酌的情況。

當然這些涉及可靠性方面,從快閃記憶體設計上可以給予很好的支撐,通過短期高密集擦寫來進行驗證,然而對于安定性來講,就需要長期的測試,就像Greenliant這樣一直對於幾塊快閃記憶體卡長期跑下去,從中監測效能與安定性的變化。

為何分佈式ECC可以帶來更好的安定性與可靠性?

安定性測試只是啟示咱們對于快閃記憶體卡安定性以及可靠性的驗證仍然是有所不同,如何做到快閃記憶體卡架構上更好的安定性與可靠性,不得不提到散熱問題,這也是Facebook論文鑽研最為關注的第四個方面。

如何解除效能衰減以及可靠性降低的問題,這就需要在架構設計方面進行立異。Greenliant在快閃記憶體裝置架構上實現了分佈式ECC 設計架構, 在每個NAND Package中都封裝一個快閃記憶體節制器裡面。這樣就防止了前面所講的效能衰減以及可靠性降低的問題。同時為了防止快閃記憶體顆粒故障造成資料丟失,在架構上還實現了板載硬體RAID的功能。

Facebook快閃記憶體失效大規模鑽研誘發的深度思考

Facebook快閃記憶體失效大規模鑽研誘發的深度思考

當然,目前大家都明白了:散熱對於安定性以及可靠性影響很大。過熱的話會造成系統不安定,現在快閃記憶體卡都採納FPGA,FPGA在高溫情況下可能會算犯錯誤的值,系統就會出問題。

Greenliant採納分佈式的架構,因為在整個快閃記憶體卡節制裡面主要存在幾個高效能計算的環境,一是ECC校驗,ECC校驗是計算密集型的;二是XOR RAID也是高計算型的。

過去的情況下,一般來說在一個節制器裡面,一個ECC校驗碼處理整個板卡晶片上的ECC請求,一個XOR晶片處理整個板卡上的所有RAID的請求。這就象徵著這兩個晶片是計算量很高的晶片,就會發生過熱,高密集計算過程中會過熱,這就可能發生安定性問題。

Greenliant的思路就是:把ECC引擎封裝在顆粒裡面做分佈式ECC,一個板卡上可能做40個ECC的引擎,這樣把計算給分開了。原來是1個,現在是40個了。XOR的RAID依據分組是8個晶片,也把計算量分開了,就象徵著總發燒量不變,分攤多了就更低,散熱面更大,所以效能更安定。並且快閃記憶體卡散熱不能靠風扇,要靠熱傳導,至多在節制器上加一個散熱片,而裡面的快閃記憶體顆粒全是靠熱傳匯出來。若果能降低每個顆粒的發燒量,那末實際上就使系統會更為安定、更低,可靠性就更高。這就是為何測完之後Greenliant數值安定性會很高,這是這個分佈式ECC架構帶來的益處。

為何SSD失效並不徹底因為擦寫過度造成?

在針對於Facebook論文探討中,大家確鑿發現到SSD 失效並不徹底是因為擦寫過度造成的,其實是在不同的時代裡面會有不同的緣故造成的。

其中,提到不像磁碟是一個浴盆曲線,剛開始使用的時候故障率高,然後降低到很平穩時代,到了必定時代驟然故障率又增高。

SSD 表現出來的是雙曲線,剛開始使用過程中故障率高,這與磁碟有點相似。也就是說磁碟在剛開始使用的前三個月裡面,故障率最高,只要過了三個月後,基本上效能很安定,很少犯錯,然後到了三年後,故障率又開始增添。

然而SSD表現的曲線就是:剛開始增添,隨後效能降低,之後驟然升高。每個階段的情況仍然是不太同樣,第一個是early detection 的階段,當一個快閃記憶體卡在開始運行過程中,實際上這時就會泛起,因為原來沒有大規模套用讀寫所以顆粒是安定的,當泛起大規模擦寫時一旦有質量不好的顆粒就會壞。而當質量不好的顆粒開始壞時,這時就靠OP,需要過度預留空白顆粒來取代,取代完成自然就行了。無非,有一些情況下,沒有能夠取代完成,那末在後期就會犯錯、泛起失敗。

因而,Facebook論文裡面還提到一個現象,初期取代率高的反而後期是對比安定的,初期取代低的後期可能故障率更高。緣故是什麼呢?緣故是前期會有一些顆粒處於臨界值,初期沒有能夠把處於臨界狀況的顆粒給取代掉,隨後臨界狀況顆粒到後期變為壞的了 。初期泛起的故障可能是壞塊,因為塊造成的SSD失效。

通過這個時間的閱歷之後,會開始安定一段時間,隨後又會泛起一些故障,這個故障才是擦寫次數造成顆粒過度擦寫,這時是算法的問題,算法不好很快就出問題。若果算法的均勻度很高,就能長久一點。所以SSD故障是由兩方面組成的:初期是由壞塊檢驗功能造成的,後期就是wearout磨損造成的,對于wearout可以改善。

那末這裡就需要提到磨損均衡的概念。磨損平衡分為動態以及靜態磨損平衡以及全局磨損平衡。動態磨損平衡寫一個檔案時候,永遠寫在一個空白塊,空白塊寫完之後再寫回到以前的那些資料被移除塊上,這樣迴圈地寫。然而當一個檔案寫到快閃記憶體上就不很少被走訪,而其他塊被寫了幾十上百次,在這種情況下塊與塊的擦寫次數就再也不一致,動態磨損平衡算法就失效了,因而又採納靜態磨損平衡算法,就是當一個塊擦寫次數以及臨近塊次數超過必定閥值時就作一個資料存儲交流,這樣保證擦寫平衡。這樣有利於改善快閃記憶體耐久性,會改善快閃記憶體的效能。此外在顆粒層級會有全局磨損平衡算法,這樣進一步晉陞裝置的可靠性。

當有Wear Leveling磨損均衡的時候,基本上所有的擦寫都是一致的。「你擦了102次,我擦了98次,大家都差不多,這樣大家均勻的一塊兒走向末路,而不會在一個SSD裡面,我這個顆粒很快掛掉了,你那個顆粒還有半年的生命週期。」

全局磨損是在顆粒級再做一次磨損平衡,動態磨損平衡以及靜態磨損平衡其實是在顆粒內定做的, 在顆粒級若果沒做磨損均衡的話,就會碰到一個情況,顆粒會很快地磨損掉 。在顆粒之間的磨損均衡以及在顆粒內的塊之間的磨損均衡都是很有必要的,儘管做磨損均衡效能會降低,但為了壽命會加長,這仍然是必需有的。

按道理來說,每一個快閃記憶體卡廠商都應該提供磨損平衡的測試講演。因為磨損平衡測試需要在物理層面做一些特殊限定才能進行測試,而各個快閃記憶體卡廠商的底層架構並不相同,因而現在尚無很好的通用的磨損平衡的測試手腕。

Facebook快閃記憶體失效大規模鑽研誘發的深度思考

GreenLiant採納的算法是劃定物理的塊規模然後開始進行擦寫,幾十萬¥次高密度擦寫。擦寫完之後監測到每個塊的擦寫次數,獲得值之後看到底是均勻仍然是不均勻,先進的磨損平衡算法可以保證無「熱點」。

怎麼理解快閃記憶體中最癥結的底層東西,譬如Cell?

在談論了這麼對於針對於《Facebook快閃記憶體失效大規模鑽研》論文的話題,相信大家對於SSD內含快閃記憶體的技術架構以及特色有了不少瞭解,無非,這還不夠深刻。譬如你瞭解快閃記憶體中最癥結的Cell嗎?你對於快閃記憶體中最底層的東西有多少瞭解呢?

在日常對于快閃記憶體的討論中,時常會提到Cell,Cell是什麼,怎麼串起來的?這些都是一些常識問題,其底層到底什麼模樣?《大話存儲1&2》作者冬瓜哥(張冬)給出了深刻淺出的詮釋。

Facebook快閃記憶體失效大規模鑽研誘發的深度思考

一個Cell就是一個電晶體,現在叫電晶體不太適合,叫半導體長效應管。這就是兩個電極,給個電壓,這是節制晶片,給了電壓就會發生電場。一旦通電的話,原先是絕緣的,加電壓之後就打通了,電子就流動起來。通電開關打通之後,這就是電晶體。所有的數字電路都是拿開關去堆起來的,內含加法器、計數器等等堆成一個CPU。

然而這個東西讓Flash用作存儲了,是把中間這個處所加了一個floating Gate浮動柵的東西,內定是能儲電的電容。DDRAM也是這麼乾的,然而裡面的電容外面是沒有絕緣體的,充電馬上就漏掉了,漏得很快,所以要不斷重整。然而Flash充進去能夠儲存一部份電,而且能儲存一段時間。無非,其外面也是一個絕緣體,象徵著充電時間就長,所以Flash效能不如DDARM。

Facebook快閃記憶體失效大規模鑽研誘發的深度思考

這是一個Cell,貯存一個bite,怎麼把Cell連起來呢?把正負極串連,把節制器並聯,有32768個列。為何72768?就是除了以8之後是4K,這就是一個Page。

32768列,然後一行一個Page,具體多少行每一個廠商設定也不同樣。譬如一個Block設定512k,那末裡有多少行。

要讀寫Page的話,需要把Block裡面所有其他的Page節制極都加一個電壓。正負級會打通, 開關串連起來,若果把其他開關都打通,然後加一個信號,在另一邊考察信號能不能從上面透下來,若果透不下來證明裡面是中斷的。這就證明裡面存了電,或是說不存電。

其裡面是很繁雜的,裡面存了電。給裡面加正電壓,導通性增強了,若果加負電壓,導通性就降低,絕緣性就更強了。

其實把所有打通之後,還要比擬器,需要在旁邊有預充電的對比電壓,再加一個基準電壓,基準電壓跟對比電壓同樣值,看你這邊漏電的速度有多快。若果多少納秒之後,基本不漏電證明裡面是中斷的。導通性基本不導通的,絕緣性增強了,證明裡面是有電的。

若果對比的時候發現漏電很快,證明這裡面沒有電。沒有電也會漏電,這個開關都是漏電的,所以功耗大,而漏電佔了很大一部份。

如何讀寫?寫是充電,往Cell裡面充,充電是代表0,沒電代表1。標準是充電錶示1,這裡為何是充電代表0呢?因為有SenseAMP拉近器,拉近器的邏輯就是對於充了電反而輸出高電壓是1,所以最後是不安定了。問題是不能同時對於Cell放電又充電,不能寫1又寫0,若果對於它進行放電的話,這一塊就是要加一個高電壓。譬如說起碼要20伏的壓差,當然實際上不會這麼高,在這裡只是舉個例子。這裡起碼要加40伏,40減10等於30,那隻能充電,但不能同時充溢電。

NAND Flash最大的禍首禍首是不能同時充溢電,然而DDARM可以對於每一個Cell同時充溢電,可以對於每一個Cell裡面依據一大堆電路充溢電,正因為這樣電路面積變大了。Flash比DDR密度要高,不用每一個Cell都充電,這就是拿價錢、拿密度來換效能。

再就是寫拉近,正因為不能同時寫,所以每一次都寫到擦好的Block,每一次只寫0就能了,1已寫好了。

若果泛起寫拉近沒有辦法,把整個Block讀出來擦成1再寫回去,這樣的效能就很差了。

3D NAND的底層架構到底是什麼模樣?

目前業界談論最火的3D NAND,如這個圖示,所謂3D NAND以前只有一層,3D NAND就是把整個電晶體給多層排序起來,晉陞密度。每個柵極越做越小,現在是把整個捲起來了。當然這是一種,還有不少的模式,怎麼做都行,要看各自工藝。

Facebook快閃記憶體失效大規模鑽研誘發的深度思考

3D NAND裡面的工藝就有不少東西,若果在硅片上侵蝕一個坑,侵蝕得很不規則,質量就不行。譬如下圖S|A東倒西歪的,這個不圓。下面就是對比優良的工藝,很規整。最後固定Cell的東西都在這兒插著,一根柱子、一根柱子地插在一塊兒。

Facebook快閃記憶體失效大規模鑽研誘發的深度思考

這種東西都是拿半導體工藝一層一層的如 3D列印,只無非是用笨法子一層一層來做,刻了膜把要侵蝕之處漏出來,把不侵蝕之處蓋住。

大家談論TLC、QLC,為何會有LDPC呢?

最有意思的一個問題是,大家談論TLC、QLC,為何會有LDPC呢?

SLC犯錯率很低,因為每一個Cell只存一個位,就一個電壓。TLC犯錯率高了,拿四個電壓存兩個位,假如1.2伏表示00,1.5伏表示01,若果充電衝到1.35伏就無法判斷到底是00仍然是01,還有可能泛起過錯。所以ECC就要增添,你不能無限增值。ECC無限增添是什麼結果?至關於你有1TB的Flash,而拿另一個Flash做了一個對映。這麼做成本就過高了,就需要盡可能少的位冗餘更多的過錯,譬如說4KB裡面有多少個bite校驗位,就能冗餘多少位的過錯。

這已達到理論極限了,就是糾錯能力已達到極限,不能再上了。然而這種算法也是很繁雜,不是確定性的算法,應該是非確定性的,帶有概率預測的算法,所以這裡面算法很繁雜。

若果你用軟體實現沒有問題,拿CPU不斷去算,然而很慢,不可能用在Flash裡面。你就把它硬化,硬化後電路開展之後就很大,用FPGA就搞不定了,FPGA也是笨辦法,把所有結果算好,然後放到RAM裡面,判斷之後從RAM裡面把結果選出來, 這麼一種算法,面積就很大,不精簡,所以必需用ASIC拿電路算出來,而不用是FPGA選出來。

你瞭解快閃記憶體的P/E值以及Data Retention嗎?

冬瓜哥提到:另一個是P/E值,按照改善後的來算,若果真的全盤順序寫一遍,恐怕能夠達到Cell擦寫極限,這個時候恐怕只能用OP來做。不少真正的業務場景一般都是隨機寫,而且有必定的概率寫一個4K塊,就算寫了4K進去,這個時候底下並無真正往下寫4K,而是快取到這裡一段時間。套用主電腦又發過來,又針對於4K改寫了一遍,這頗有可能。兩個4K,廠商算的時候是算成8K,然而實際只耗了4K。這就是寫合併。

再一個概念就是Data Retention,現在有人寫文章說優盤若果七天不用就丟資料,真正感覺沒有這麼誇張。無非,快閃記憶體SSD漏電是不同樣的,每一家的品質不同樣,漏電速度都不同樣,誰也不曉得漏多快。以前某廠商也出了問題,因為沒有節制好漏電的時間把資料丟了。

Greenliant的快閃記憶體卡有專門的Data Retention算法,會主動檢驗Cell內定的電位變化,進行資料維持。當然,這也帶來了少許的效能影響。通過專有的電路維護技術,Greenliant可以保證在系統徹底斷電情況下,資料維持不少於90天。

快閃記憶體顆粒的材料與質量

對於此,李炫輝介紹說,GreenLiant一般是買的裸晶圓(Wafer)自己切割,一個晶圓不可能百分之百應用起來,裡面是有壞塊之處。這不是均勻分佈的,在片上是隨機分佈的。隨機分佈第一是要有自己的切割算法,保證切割下來每個都能知足我的質量請求,如壞塊不能超過多少個。然而切割完之後,可能還會留下來一些邊角料,這些材料是不知足咱們高質量標準請求的,然而這些東西還會有一些廠商去收購,因為廉價嘛。因為大家已把晶圓成本分攤到高質量成品上了,所以這樣的材料就很廉價。同樣都是從上游晶圓廠商出來的,可是質量、標準、價格就會不同樣。

譬如說GreenLiant在卡上是有OP的,譬如說標稱1.8T,其實裸容量是2.75T,多出來的這部份容量就是過度配置的容量,簡稱OP(Over Provision),OP比率越大實際上可靠性越高。然而不少廠商為了降低成本,採納儘可能低OP比率。此外在切割的Die上也有不同,譬如標成4K,可能不是4096,可能是4192,多的那些也是額外的OP,這些東西你是看不見的,在註冊層才會有的,也是做一些壞塊管理,若果在擦寫過程中可以做一些取代。

同樣規格的顆粒價格成本都會不同樣,質量可靠性也會都不同樣。然而對于使用者來說是看不到的,可能看到的是價格以及測試的效能,這是最艱難給使用者解釋之處。

對于使用者採購快閃記憶體的最佳建議?

快閃記憶體是由核心的顆粒組成,電子總會有問題的時候。誠然,它以及磁碟不同樣,快閃記憶體跟著使歷時間延長,效能泛起降低。好顆粒更需要好的架構。然而,咱們在瞭解完由《Facebook快閃記憶體失效大規模鑽研》論文誘發的多個方面思考後,是否對於採購SSD或快閃記憶體卡存在疑慮了呢?

當然不是。

美光關聯人士在出差途中也介入了微群技術會——快閃記憶體夏日清涼聊流動,他指出了幾個方面的情況,理性以及積極進取的認知值得大家參考。這裡阿明將他很精闢幾個觀點分享給各位:

一是,SSD使用上大致分消費級套用以及企業級套用兩種套用場景。消費級套用的特色:a.不會滿盤使用; b.不會隨時隨刻使用; c.幾乎大部份動作都是讀動作、順序位址動作。

企業級套用的特色:a.滿盤使用; b.請求隨時隨刻都在讀寫; c.讀寫比例有請求,不少系統請求更高的隨機位址效能。

二是,針對於這兩種套用場景,消費級SSD更多關注於FOB效能,即新開封狀況,或出廠狀況 (FOB) fresh out of box;企業級SSD更多關注於穩態效能Steady state。

三是,關於穩態效能測試,大家可以搜尋SNIA,有一套成熟可靠以及安定的測試法子。

四是,所有的SSD都有冗餘即OP的存在(over provisioning),只無非有多有少,因為基於NAND結構的容量是1024*1024*1024=1GB,而廠商的SSD標稱容量1G基於1000*1000*1000,所以,就算是消費級的SSD,也至少有1024*1024*1024-1000*1000*1000,即~7%的OP。

五是,再來討論溫度,SSD廠商一般在SSD內定都有temp senser,SMART資訊中也有溫度監控,溫度高了一般做法是SSD自主降速。

六是,個人認為,因為NAND晶體構造,bit過錯更多的是浮柵層的charge loss或charge gain,更低的溫度讓charge更難自主在能級中躍遷。所以,溫度越低,基於NAND的犯錯的幾率越低。

Greenliant李炫輝也補充了一點,快閃記憶體可靠性問題對于客戶、行業以及產業有著重大的影響 ,業界廠商都有相對於應的應答措施。但對于要採購SSD或快閃記憶體卡的使用者來講,效能、可靠性以及成本都顯得很主要,這三者卻很難同時獲取,客戶需要依據套用的特色,依據最主要的特性選取最適合的產品。(阿明)

歡迎關注阿明自媒體微信公家號:chinastor

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 wechat101 的頭像
    wechat101

    兩岸微商網路創業平台

    wechat101 發表在 痞客邦 留言(0) 人氣()