熱門關(guān)鍵詞: 聯(lián)樂 宇瞻工業(yè)級(jí)TF卡 工業(yè)閃存卡品牌 固態(tài)硬盤品牌
掉電一般分兩種。一種是正常掉電,另一種是異常掉電。不管是哪種原因?qū)е碌牡綦姡匦律想姾螅琒SD都需要能從掉電中恢復(fù)過來,繼續(xù)正常工作。
先說正常掉電。在掉電前,主機(jī)會(huì)通過命令通知SSD,比如SATA中的IdleImmediately,SSD收到該命令后,主要會(huì)做以下事情:
主機(jī)等SSD處理完以上事情后,才會(huì)真正停止對(duì)SSD的供電。正常掉電不會(huì)導(dǎo)致數(shù)據(jù)的丟失,重新上電后,SSD只需把掉電前保存的相關(guān)信息(比如映射數(shù)據(jù),閃存塊信息等)重新加載,又能接著掉電前的狀態(tài)繼續(xù)工作。如果SSD世界只存在正常掉電,那么SSD的實(shí)現(xiàn)就會(huì)簡(jiǎn)單很多。
所謂的異常掉電,就是SSD在沒有收到主機(jī)的掉電通知時(shí)就被斷電,或者收到主機(jī)的掉電通知,但還沒有來得及處理上面提到的那些事情,就被斷電了。異常掉電可能會(huì)導(dǎo)致數(shù)據(jù)的丟失,比如緩存在SSD中的數(shù)據(jù)來不及寫到閃存,掉電導(dǎo)致這部分?jǐn)?shù)據(jù)丟失。還有根據(jù)閃存的特性,如果掉電發(fā)生在寫MLC的Upperpage,會(huì)導(dǎo)致其對(duì)應(yīng)的數(shù)據(jù)遭到破壞,也就是意味著之前寫入閃存的數(shù)據(jù)也可能由于異常掉電導(dǎo)致丟失。異常掉電恢復(fù)的目的一方面是盡可能恢復(fù)用戶數(shù)據(jù),把損失減到最低;另一方面是讓SSD經(jīng)歷異常掉電后還能正常工作。
為防止異常掉電導(dǎo)致的數(shù)據(jù)丟失,一個(gè)簡(jiǎn)單的設(shè)計(jì)就是在SSD上加電容,SSD一旦檢測(cè)到掉電,就讓電容開始放電,然后把RAM中的數(shù)據(jù)刷到閃存上面去,從而避免數(shù)據(jù)丟失,企業(yè)級(jí)的SSD一般都帶有電容。帶電容的SSD,還是需要設(shè)計(jì)異常掉電處理模塊,因?yàn)殡娙莶荒?00%保證SSD在掉電前把所有的信息刷入閃存。
還有一個(gè)比較前衛(wèi)的想法,就是把RAM這種Volatile(掉電數(shù)據(jù)丟失)的東西、用Non-Volatile(掉電數(shù)據(jù)不丟失)的東西來替代,但要求這種Non-Volatile的東西性能上接近RAM。這樣,整個(gè)SSD都是Non-Volatile的了。Intel和Micron合作開發(fā)的3DXPoint。可作為一個(gè)選擇。3DXPoint兼有閃存掉電數(shù)據(jù)不丟失和內(nèi)存快速訪問的特點(diǎn)。
RAM中緩存的用戶數(shù)據(jù),主機(jī)自認(rèn)為把它們寫到SSD了(非FUA命令,數(shù)據(jù)寫到緩存,SSD就返回狀態(tài)給主機(jī)),但SSD只是把它們緩存在RAM中,并沒有寫到閃存。異常掉電時(shí),如果SSD上沒有使用電容也沒有使用其他黑科技、這部分?jǐn)?shù)據(jù)便損失無疑。重上電時(shí),主機(jī)是再也讀不到這些數(shù)據(jù)了。
掉電還會(huì)導(dǎo)致RAM中映射表丟失。映射表數(shù)據(jù)很重要,對(duì)一個(gè)邏輯地址,如果SSD查找不到對(duì)應(yīng)的物理地址,它就無法從閃存上讀取數(shù)據(jù)返回給主機(jī)。如果映射表中的數(shù)據(jù)不是最新的,舊的物理地址對(duì)應(yīng)著老的數(shù)據(jù),SSD就會(huì)錯(cuò)誤地把老數(shù)據(jù)返回給主機(jī),這個(gè)問題就嚴(yán)重了。本文標(biāo)簽: 異常掉電!對(duì)SSD來說 沒有“喜” 只有“驚”
咨詢熱線
400-888-2720