2010-07-22 34 views

回答

0

Wikipedia article似乎至少暗示了答案。看來,「隧道注入」用於寫入和「隧道釋放」用於擦除。我會把它留給物理學家來解釋究竟是什麼。

1

我試圖理解你爲什麼寫信給他們

你不必寫入前擦除閃存單元前擦除單元。但是,一次只能寫入整個單元塊。通常這些單元塊的大小至少爲128KB。

因此,假設您正在向您的SSD寫入4KB文件。那麼,你必須一次寫一個128KB的塊。如果該128KB數據塊中已有數據,則驅動器固件必須將128KB數據塊讀入其內存,修改正在寫入的4KB數據塊,然後將整個128KB數據塊寫回閃存。

+0

寫入整個塊一次是不正確的。 NAND閃存塊分爲多頁。您必須一次寫入整個頁面,而不是整個塊。但是,對整個塊執行擦除操作。 – phandinhlan 2014-08-13 23:12:38

0

現代閃存芯片的設計方式是,在一個方向上比另一個方向編程單元更容易。如果一個芯片容納16,777,216字節的256個65536字節的塊只能作爲一個單元被擦除,那麼它將需要約1.28億個「小」電路來編程個別位,而256個「大」電路擦除這些塊。對於允許擦除256字節頁面的芯片,需要65,536個「大」電路。我不確定該芯片的多少部分會被那麼多的頁擦除電路用完,但這會很重要。使用更大的擦除塊可以使芯片更便宜地製造;對於許多應用來說,具有較大擦除塊的較便宜的芯片優於較小芯片的較昂貴的芯片。

0

下面是如何寫入NAND和擦除作品:

當一個塊被擦除時,所有的比特被設置爲1。要改變的位從1變爲0,位被編程(寫入)。程序不能將位從0更改爲1.

假設您必須存儲11001100.首先需要擦除塊以獲取全1(11111111),然後對特定位進行編程(11001100)。現在,無法將相同的內存位置編程到11111100,因爲編程不能將0更改爲1.

這是NAND找到全1的空閒/空白頁面,然後將特定位從1更改爲0的原因。對於NAND閃存而言,寫入可以將1s更改爲0並且0s更改爲1s的傳統觀點並非如此。 NAND編程操作只能將位從1更改爲0,這意味着我們在開始寫入之前需要全部1個存儲塊。

來源:

https://flashdba.com/2014/06/20/understanding-flash-blocks-pages-and-program-erases/ https://www.micron.com/~/media/documents/products/technical-note/nand-flash/tn2919_nand_101.pdf

相關問題