Точно така,
EDM и
getca, че NAND-техологията не е читава - не го знае само този, който не се е занимавал и съответно не е ял дървото! И все пак, SSD-тата са точно това - NAND, обаче
+ контролер! Е, SD/microSD-картите пък са същото това, само че с по-прост контролер, или с почти никакъв
Wear leveling / wear management представлява функция на контролера, която прави статистики кой блок от NAND-паметта колко пъти е презаписван, съответно следващите заявки за запис се "разхвърлят" върху блоковете с най-малък брой записи и така медията се "износва" равномерно. Това обаче става при SSD-тата. Там контролерите са най-сложни и съответно алгоритмите - най-съвършени. В едно SSD на GnusMas - 960 Pro, с големина на дъвка, има процесор с 3 /три/ ARM-ядра! При интензивна работа, те и чиповете памет се загряват до близо 100'С. Сами се сещате, че в една microSD-карта, голяма колкото нокът, кой-знае какъв контролер не може да се набута... Съответно в industrial-серията момчетата от SanDisk, Transcend и Fortasa са направили и невъзможното, за да се случва това в някаква задоволителна степен.
Тази стойност 600TBW, която е дал getca, при хубавите карти представлява именно това - колко информация можеш да запишеш върху картата, преди тя да увехне. При кофтите карти, където няма wear leveling, една платка като Raspberry Pi може да я сиктирдоса само за 1-2 седмици, като "чегърта" само на едно и също място. И да, тъпите контролери само броят колко пъти и какъв обем си писал, и като мине някаква определена граница, направо вдига бялото знаме и хлопва кепенците откъм запис.
Оттук се налагат следните изводи:
1. Взимайте винаги карти, в чиято документация е изрично упоменато, че притежават wear leveling (и то добър);
2. Взимайте такива с колкото се може по-голям капацитет, нищо, че няма да го ползвате всичкия - това не линейно, ами квадратично вдига надеждността и времето ѝ на живот. Гледайте също така и стойността TBW да е дадена и да е колкото се може по-голяма;
3. Не разделяйте картата на партишъни, и особено SWAP-партишън - това е СМЪРТ - да чегърта постоянно на едно ограничено място. По-добре изпозлвайте swap-файл, и то ако е крайно наложително;
4. Ако ползвате Linux, маунтвайте картите с атрибута noatime във fstab, също с отложен commit - веднъж поне на няколко минути (ако не и часа). Ако задачата ви позволява, даже направете изцяло виртуална файлова система, която само се изчита (read only) от картата и се стартира изцяло в паметта, подобно на live-флашка.
5. Ако е възможно - не ползвайте SD/microSD карта изобщо!
eMMC е много по-добрата алтернатива - с добър контролер и многократно по-високи скорости четене/запис (особено 5.0 и 5.1-спецификацията).
Има едни преходници - от microSD-гнездо към eMMC-карта. Цялата работа е малко крехка и стърчи извън платката, но ако това не е от значение си струва галимацията. Единственият недостатък е, че скоростта на четене/запис се ограничава от microSD-интерфейсът.
И естествено, ако имате възможност и бюджет - слагайте SSD и външни дискове без да се замисляте! Това е не в пъти, а в порядъци по-надеждно...