Wear leveling — flash xotirada erase va program sikllarini fizik bloklar bo‘ylab taqsimlab, ayrim bloklarning boshqalardan ancha oldin eskirishini kamaytiradigan controller usulidir. NAND cell cheklangan program/erase sikliga ega. Bir xil mantiqiy manzil tez-tez yangilansa, controller yozuvni turli fizik joyga ko‘chiradi.
Flash cheklovi
NAND page darajasida dasturlanadi, ammo odatda kattaroq erase block butunlay o‘chiriladi. Mavjud page ustiga to‘g‘ridan-to‘g‘ri qayta yozish o‘rniga yangi page yoziladi va eski nusxa invalid belgilanadi. Flash Translation Layer LBA’ni joriy fizik page’ga xaritalaydi.
Bo‘sh page kamayganda garbage collection valid page’larni boshqa blockka ko‘chirib, eski blockni o‘chiradi. Bu host yozganidan ko‘proq ichki yozuv yaratib, write amplification keltiradi. Over-provisioning controllerga bo‘sh joy va boshqaruv erkinligi beradi.
Dynamic va static usul
Dynamic wear leveling faqat bo‘sh yoki qayta yozilayotgan bloklar orasida erase countni tenglashtiradi. Uzoq vaqt o‘zgarmaydigan cold data turgan bloklar aylanishga kirmaydi. Natijada qolgan kichik maydon ko‘proq eskirishi mumkin.
Static wear leveling cold data’ni vaqti-vaqti bilan ko‘chirib, kam ishlatilgan bloklarni yozuv uchun bo‘shatadi. Bu umumiy eskirishni yaxshiroq tenglashtiradi, ammo qo‘shimcha ko‘chirish va latency yaratadi. Controller workload hamda endurance maqsadiga qarab muvozanat tanlaydi.
Bad block va ECC
NAND ishlab chiqarishdan ayrim bad block bilan chiqishi mumkin; keyinchalik ham bloklar yomonlashadi. Controller bad-block table bilan ularni ishlatmaydi. ECC bit xatolarini tuzatadi, read disturb va retention pasayishi uchun data refresh bajarilishi mumkin.
Wear indicator ko‘pincha o‘rtacha yoki maksimal erase count, spare block va media error asosida hisoblanadi. SMART “percentage used” vendor modeliga bog‘liq; 100 foizga yetish data darhol yo‘qoladi degani emas, lekin kafolatlangan endurance sarflanganini bildiradi.
TRIM va bo‘sh joy
Filesystem faylni o‘chirsa, SSD uning bloklari endi kerak emasligini avtomatik bilmasligi mumkin. TRIM yoki discard mantiqiy bloklarni invalid deb belgilashga imkon beradi. Controller garbage collectionni samaraliroq bajaradi va keraksiz data ko‘chirmaydi.
Doimiy 100 foiz to‘la diskda bo‘sh page kam bo‘lib, write amplification va latency oshadi. Yetarli free space va over-provisioning barqaror write throughputga yordam beradi. Secure erase oddiy TRIMdan boshqa kafolatga ega bo‘lishi mumkin.
Tizim ta’siri
Log, database va swap ko‘p yozuv yaratadi. Write batching, compression va keraksiz syncni kamaytirish endurance’ni oshirishi mumkin, ammo durabilityni buzmasligi kerak. Qimmat “SSD optimizatsiyasi”dan oldin real host writes, NAND writes va workload o‘lchanadi.
Power-loss protection mapping va yozuvni barqaror saqlashga yordam beradi. Wear leveling backup emas: controller xatosi, firmware muammosi yoki kutilmagan failure baribir data yo‘qotishi mumkin. Muhim data mustaqil nusxada saqlanadi.
Host managed flash
Oddiy SSD wear levelingni ichkarida yashiradi. Zoned yoki open-channelga yaqin arxitekturada host data joylashuvi va yozuv ketma-ketligi haqida ko‘proq nazorat olishi mumkin. Bu garbage collection hamda write amplificationni workloadga moslashtiradi, lekin filesystem yoki database murakkabligini oshiradi. Firmware bugi mappingni buzsa barcha blocklar ta’sirlanishi mumkin; shuning uchun controller update power-loss va recovery testidan o‘tadi. Endurance planning faqat drive writes per day emas, real write amplification va retention talabini birga hisoblaydi.
Bog‘liq tushunchalar
NAND flash, Flash Translation Layer, Garbage collection, Write amplification, TRIM, Over-provisioning