NVMe SSD具備端到端的數據保護功能,接下來我們可以了解下NVMe SSD是怎樣為我們的數據保駕護航的。
一端是主機的內存空間,一端是SSD的閃存空間。我們主要保護的是用戶數據。SSD與主機之間,數據傳輸的最小單元是邏輯塊(Logical Block,LB)每個邏輯塊大小可以是512/1024/2048/4096等字節,主機在格式化 SSD的時候,邏輯塊大小就定好了,然后兩者就按這個邏輯塊大小進行數據交互。數據從主機到SSD,首先要經過PCIe傳輸到SSD的控制器,接著控制器再把數據寫入閃存;反過來,主機想從S SD上讀取數據,首先必須由SSD控制器從閃存上獲得數據,然后經過PCIe把數據傳送給主機。
SSD與主機之間,數據在PCIe上傳輸的時候,由于信道噪聲的存在(說白了就是存在干擾),可能導致數據出錯;其次,在SSD內部,控制器與閃存之間,數據也可能發生錯誤。為確保主機與閃存之間數據的完整性,即主機寫入閃存的數據與最初主機寫的數據必須一致,以及主機讀到的數據與最初從閃存上讀上來的數據也一致,這就是NVMe SSD提供的一個端到端的數據保護功能。
除了邏輯塊數據本身,NVMe還允許每個邏輯塊帶個助理,叫作元數據(Meta Data)這個助理的職責,NVMe雖然沒有明確要求,但如果數據需要保護,這個助理就必須能充當保駕護航的角色。