寫入保護

寫入保護

本文說明目前常見的SSD寫入保護(Write Protect)的作法,並逐一分析各種作法的優缺點和複雜度。

在工業應用中,產品的可靠度一直是最重要的環節之一;如何確保產品的品質及提高可靠度,也是所有廠商一直努力的目標。為確保資料的完整性,就需要採用SSD的「寫入保護」技術。其主要的原理是透過硬體或軟體的設定來開啟此功能,當SSD韌體偵測到寫入保護的功能被開啟時,雖然仍會接收主機的寫入命令,但並不會將資料寫入NAND Flash,也就是會將磁碟變成Read-only的模式,主機對於SSD的寫入動作將會失效,如此便可保護SSD內資料的完整性。

Figure 1

如上圖所示,第一種常見的作法是透過軟體來設定寫入保護功能,使用者藉由主機端軟體的設定,發送vendor command給SSD,SSD韌體在收到此指令後,首先會將寫入保護的訊息紀錄下來,以確保斷電後此設定仍然有效,並同時通知FTL (Flash Translation Layer)寫入保護已開啟。FTL收到後,對於之後所有寫入相關的命令,包含TRIM、security erase等,均不會執行寫入NAND的動作;但對於SSD本身background寫入的功能,例如Data Scan、Refresh、Flush Log等,仍會繼續執行。這種作法的優點是不用改變硬體,僅靠軟體跟韌體的修改就可以達到防寫的效果。

Figure 2

如上圖所示,另一種寫入保護的作法是透過硬體的設定來啟動。首先在SSD的電路板上,設計一個開關,接著將此開關連接到SSD控制器上的GPIO pin。使用者若要開啟寫入保護功能,便可打開此開關;這時SSD內部的韌體偵測到此GPIO pin的訊號,就會通知FTL寫入保護已開啟,接下來的動作則跟第一種作法相同。此作法的優點是使用者只要透過硬體開關即可開啟防寫設定,不需要藉由軟體,較為簡便;很多SD卡也是用此種方法達到防寫的效果。

Figure 3

如上圖所示,第三種就是純硬體的作法:同樣也是在SSD上設計一個開關,但此開關是直接連接到NAND Flash的write protect pin,所以SSD韌體不需要修改。此種作法的優點是設計電路板的廠商就能獨立完成寫入保護的功能,但由於NAND完全無法寫入,因此SSD韌體的一些功能,如Prevent Read Disturb、Data Retention、Flush Log等,也無法正常執行。

還有一種寫入保護是由SSD韌體自行啟動:由於NAND Flash有一定的壽命,當SSD韌體發現NAND Flash使用期限將至時,或是壞塊超過設定的上限時,SSD韌體就會自動開啟寫入保護,避免使用者因為繼續將重要資料寫入此SSD,而導致資料毀損。這種寫入保護是自己開啟的,不需使用者做任何設定,且目前市售的SSD幾乎都有此功能。