2012-06-28 12 views

回答

0

除非我正在讀你的問題,否則我認爲你誤解了SSD的工作原理。

SSD由大塊(通常爲512k)組成,它比我們在文件系統(通常爲4k)中使用的大得多。

擦除通是必要的前什麼可寫入的塊,除非該塊已經是空的。

因此,擦除磁盤的問題是,如果使用4k的512k塊,則必須擦除整個512k塊並寫入原始4k +您正在添加的任何其他內容。這會造成過度的磨損並降低速度,因爲您不需要一次「寫入」就可以進行「讀取擦寫」(稱爲「寫入放大」)。

這簡化了一點,因爲驅動器固件確實有很多聰明的事情要去嘗試,並確保最佳填充模塊,例如它會嘗試保留大量空白塊以避免寫入緩慢。

希望有助於/不會進一步混淆事物!

+0

我不認爲我很清楚。我想問的是:如果只有塊的一部分是空的(我想要寫入的部分),它是否仍然會首先進行擦除? –

+0

是的,它會首先進行擦除。它一次只能寫入一個完整的數據塊,因此不能只寫入要更改的位。它需要執行「讀 - 擦寫」循環。但實際上它會使用一個空白塊(除非磁盤沒有空白塊)。當磁盤不忙時,會將部分寫入的塊合併在一起。這是在磨損和性能之間進行折衷,這是完成這個工作的程度,是驅動器固件之間最大的區別之一。 – u02sgb

1

如果塊中有空白頁面,並且SSD想要寫入這些頁面,它將不會先擦除塊。如果SSD無法找到任何要寫入的空白頁面,則寫入之前SSD只會擦除塊,因爲執行完整的讀取 - 擦除操作非常緩慢。

此外,寫入和擦除的磨損大致相同。兩者都涉及將電子通過氧化層拉向不同的方向。

此外,對於NAND擦除狀態是所有1,然後寫1到0。您需要刪除0拿回來到1

0

在這種情況下,該SSD使用只讀擦除寫入,它首先讀取塊的內容,然後擦除它並寫入新的值。所以它在寫入之前擦除整個塊,但它已經保存了下一次寫入操作的內容。在某些非讀寫擦除的固態硬盤中,當您寫入時,它會寫入新頁面(可能位於同一個塊上,然後無效前一頁)。在這種情況下,只有在確保塊中的每個頁面都無效或已被複制到其他位置後,纔會擦除塊。

相關問題