閃存芯片不能執行覆蓋寫操作——你知道嗎?

閃存芯片不能執行覆蓋寫操作——你知道嗎?

基於閃存的固態硬盤,底層的數據存儲由閃存芯片完成。為了利用並行性來提高閃存的讀寫性能,閃存芯片的內部被設計為一種多層次的組織結構,一般情況下,一個芯片由外向內包括五個層次,依次是芯片(chip)、晶圓(die)、分組(plane)、塊(block)、頁(page)。

頁的大小在2KB到16KB不等,塊由幾十到幾百個頁組成,分組則由幾百到幾千個塊組成。不同廠商生產的芯片,結構參數往往不同。在美光生產的MT29F32G08CBACA型號的MLC芯片中,一個頁的大小為4KB,一個塊由256個頁組成,一個分組由4096個塊組成。

閃存芯片不能執行覆蓋寫操作——你知道嗎?

不同於傳統的磁介質,閃存芯片支持的基本操作除了讀(read)、寫(program)操作外,還有一個擦除(erase)操作,其中寫操作也往往稱為編程操作。

讀、寫操作的基本單位是頁,擦除操作的基本單位是塊。為了提高讀寫性能,一個分組內往往會設置一個數據寄存器,其大小與一個頁的大小相同,用於暫存該分組內的某一個數據頁。

由於閃存介質本身的特點,閃存在使用過程中具有以下特點:(1)讀寫操作不對稱;(2)必須要先擦除後寫入;(3)擦寫次數有限。

從本質上來說,閃存利用浮柵晶體管中的閾值電壓存儲具體的比特信息,讀取數據時,通過一系列預先設定的參考電壓與存儲單元的閾值電壓進行比較即可檢測出閾值電壓的範圍,確定具體的數據信息;對存儲單元編程時,則需要重複一系列注入電子、檢測閾值電壓的步驟,直到閾值電壓提高到指定的範圍。由於編程操作比讀操作要經歷更復雜的步驟,編程操作的執行時間會遠遠大於讀操作的執行時間。對於SLC閃存芯片,讀操作需要20us,寫操作需要200us;對於MLC閃存芯片,讀操作需要30us,寫操作則需要300us~2ms。

閃存芯片不能執行覆蓋寫操作——你知道嗎?

閃存在執行編程操作時,只能將每個比特位從"1"寫為"0",而不能反過來將"0"寫為"1",這就意味著閃存不能執行覆蓋寫操作。擦除操作的作用,是將閃存中每個位恢復為"1"的狀態,因此,每個塊只有先擦除,其中的頁才能寫入數據。

閃存在編程和擦除操作中,會通過對閃存單元施加高電壓來使得電子注入或流出存儲單元的浮柵,這一個過程會對浮柵晶體管造成一定的磨損,當擦寫超過一定的次數,可能導致晶體管被擊穿而無法正常存儲數據,因此,閃存在使用時擦寫次數是有限的。


分享到:


相關文章: