SSD 上的 DRAM 是由作業系統還是由韌體管理?

SSD 上的 DRAM 是由作業系統還是由韌體管理?

我使用 SSD 透過SATA轉USB橋連接到Mac來歸檔相對較大的檔案。將其傳輸到 SSD 後,我將其卸載並拔掉它。

此 SSD 具有 DRAM 快取。據我了解,該快取既用於快取寫入,也用於儲存檔案映射的副本。如果我在沒有卸載的情況下或在當前寫入時拔出它,我會認為很可能會丟失DRAM 中緩存的數據,甚至可能會丟失文件,因為指向映射中更改的任何數據的指針也會丟失。

我的問題是:如果我卸載驅動器並在成功卸載後立即拔掉電源,是否有可能在 SSD 將 DRAM 中的內容寫入磁碟之前斷開 SSD 的電源?

作業系統/APFS 是否管理 DRAM 並確保在卸載之前對其進行刷新,或者 SSD 中的韌體是否執行此操作?

答案1

SSD 上的 DRAM 由韌體管理,但作業系統可以告訴韌體使用「屏障」函數呼叫將所有待處理資料刷新到穩定儲存。作業系統還可以告訴 SSD 是否應該啟用寫入快取。

如果您完全卸載驅動器,作業系統將發出所需的函數呼叫以確保所有資料均已完全寫入。

如果您在寫入過程中拔掉它而沒有完全卸載,那麼一切都將失敗,結果將取決於 SSD 韌體、檔案系統和各種其他因素。

答案2

作業系統控制的主機都有 DRAM,SSD 韌體控制的 SSD 內部也有 DRAM。

如另一個答案所述,如果正確彈出,所有這些都應該由 SATA 和 USB 協定中定義明確的機制來處理,以同步主機和 SSD 之間的操作。

如果在寫入過程中將其拔出,則很可能主機的DRAM 和SSD 中的資料都會保持未寫入狀態,並且如果未寫入的資料位於主機的DRAM 或SSD 的DRAM 中,則沒有任何意義。在這種情況下,甚至可能有數據主機已傳送但尚未被 SSD 接收的匯流排。

相關內容