Bagaimana SSD gagal mendekati akhir masa pakainya?

9

Katakanlah MLC SSD telah bertahan sangat lama dan sel pertama telah mencapai siklus penghapusan terakhir dan menolak untuk menghapus.

Apa yang terjadi setelah itu? Apakah controller mendeteksi itu sebagai blok buruk dan bergerak ke yang berikutnya dan mencoba untuk menghapusnya? Apakah total kapasitas drive akan berkurang secara perlahan seiring waktu?

EDIT

Dan tentu saja kita bisa melupakan leveling pakaian. Ya itu memperpanjang umur drive, tetapi saya tidak berbicara tentang itu. Akhirnya sebuah sel akan mencapai siklus penghapusan terakhirnya.

Pirolistik
sumber

Jawaban:

8

Chip NAND flash memiliki beberapa mekanisme bawaan untuk mendeteksi kegagalan pada operasi tulis dan hapus, dan akan memberi tahu pengontrol jika ada yang gagal. Dalam hal ini, pengontrol dapat mencoba lagi, atau memperlakukan blok itu sebagai buruk dan memetakannya dari algoritma level-keausannya. Setiap halaman di perangkat NAND juga memiliki area cadangan di samping area data utama, yang ditujukan untuk metadata seperti ECC dan bentuk deteksi kesalahan dan toleransi lainnya. Pengontrol dapat memutuskan skema toleransi kesalahan sendiri menggunakan area cadangan. Kode Hamming adalah salah satu skema umum, meskipun ada beberapa, termasuk bit paritas sederhana dan kode Reed-Solomon. Jika beberapa hal tidak cocok dengan operasi baca, sekali lagi, controller bebas untuk melakukan apa yang diinginkan. Idealnya, ini juga akan memetakan blok-blok ini keluar dari algoritma leveling keausan, dan Anda hanya akan kehilangan kapasitas sedikit demi sedikit sampai "terlalu banyak" blok gagal, di mana "terlalu banyak" tergantung pada algoritma dan ukuran struktur perangkat keras dalam pengontrol. Banyak desain pengontrol potongan pertama hanya menyatakan kesalahan pada sistem operasi.

Perhatikan bahwa ini bukan masalah khusus MLC; meskipun sel MLC mungkin lebih rentan terhadap kesalahan baca, karena harus ada margin yang lebih kecil untuk kesalahan, sel SLC gagal dengan sebagian besar mekanisme yang sama, dan dapat ditangani oleh pengontrol dengan cara yang sama.

Matt J
sumber
2

Sama seperti dengan hard disk, terserah implementasi di sistem operasi. Controller hanya akan melaporkan bahwa write (erase sebenarnya adalah operasi tulis) gagal dan terserah driver devide di kernel sistem operasi untuk memutuskan apa yang harus dilakukan. Dari apa yang saya lihat sejauh ini, implementasi Microsoft dan Linux hanya mengembalikan kode kesalahan ke aplikasi panggilan - sehingga menghasilkan kesalahan I / O.

Singkatnya: Anda cukup mendapatkan perangkat "rusak" di beberapa titik.

Milan Babuškov
sumber
Yah, itu menyebalkan. Bukan abstraksi yang sangat bagus ...
Pyrolistic
1
Dan salah. Terutama ini ditangani dalam SSD itu sendiri - bukan driver perangkat. Karena ini adalah operasi normal. Levelling aus akan mencatat sektor gagal dan memetakan kembali sektor tersebut.
TomTom
1

SSD menggunakan sesuatu yang disebut "wear leveling", di mana drive menyimpan statistik tentang penggunaan sektor dan pada titik tertentu atau ketika mendeteksi masalah, ia akan memindahkan sektor ke cadangan, seperti halnya yang terjadi pada hard drive biasa.

Sven
sumber
Ya, tapi saya melihat HD mekanis gagal secara mekanis sebelum kehabisan sektor yang dipesan. Namun SSD mungkin tidak. Apa yang terjadi ketika drive kehabisan sektor yang dipesan?
Pirolistik
Tulis kesalahan. Apa lagi yang Anda harapkan?
TomTom