29/02/2020
Solid-State Drive (SSD)
Hard Disk မှာ Spindle မော်တာကြောင့် လည်ပတ်နေတဲ့ Platter တွေ Platter ပေါ်မှာရှိတဲ့ data တွေသိမ်းထားတဲ့ (track,sector,cluster) တွေကို ဖတ်ဖို့ ရွေ့လျားနေတဲ့ Read / Write Head ပါတဲ့ arm တွေပါရှိပါတယ်။ဒါပေမဲ့ Solid-State Drive (SSD) မှာတော့ လည်ပတ်နေတဲ့ အစိတ်အပိုင်းတွေ မပါ၀င်ပါဘူး။ data တွေကို Flash Memory (same as usb stick) ပေါ်မှာ Block အနေနဲ့သာ သိမ်းထားပါတယ်။ လည်ပတ်နေတဲ့ ပစ္စည်းတွေမပါ၀င်တဲ့ vibration ဖြစ်ခြင်းမရှိ၊ အပူထွက်မူနည်းပါးပြီး HD ထက် အထိအခိုက်ခံတဲ့ အတွက် Solid State Drive လိုခေါ်ဆိုရခြင်းဖြစ်ပါတယ်။
data input-out နုန်းမြန်ဆန်ခြင်း၊ လှုပ်ရှားနေတဲ့ အစိတ်အပိုင်းတွေ မပါ၀င်တဲ့ အတွက် ထိခိုက်ခံမှုမှာ hard disk ထက်သာလွန်ခြင်း၊ ဆူညံမှုနည်းပါခြင်း၊ size သေးငယ်ခြင်း၊ Power အစားသက်သာခြင်း၊ data ပမာဏ သိုလှေင်မှုများလာပြီး စျေးနှုန်းလဲ တစ်ဖြည်းဖြည်းသက်သာ လာခြင်းတို့ကြောင့် နောင်တွင်အသုံးပြုမှု ပိုမိုများပြားလာမှာ ဖြစ်ပါတယ်။
SSD မှာ Data တွေကို အဓိက read- write လုပ်တဲ့ Flash Memory ပေါ်မှာပြုလုပ်ခြင်းဖြစ်ပါတယ်။ SSD Flash Memory မှာ သုံးမျိုးရှိပါတယ်။SSD သက်တမ်းကြာဖို့ TRIM ကိုသုံးနိုင်သလို နောက်ပိုင်း SSD တွေမှာ Wear leveling စနစ်ပါ၀င်လာပါတယ်။
SLC (Single-Level Cell) နဲ့ MLC (Multiple-Level Cell) တို့ဖြစ်ပါတယ်။ SLC မှာတော့ Cell တစ်ခုထဲမှာ 1 နဲ့ 0 ထဲကနေ 1 bit ပမာဏကိုသာသိမ်းထားပြီး MCL မှာတော့ Cell တစ်ခုမှာ 2 bit ပမဏ သိမ်းထားနိုင်ပါတယ်။ Triple Leve Cell မှာတော့ Cell တစ်ခုမှာ 3 bit ပမဏ သိမ်းထားနိုင်ပါတယ်။ TLC Cell (SSD) တွေက Storage များပေးမဲ့ Performance နှေးပြီး SSD Life Time လဲနည်းပါးပါတယ်။ အခု user level မှာ အများဆုံအသုံးပြုနေတာ TLC (SSD) တွေဖြစ်ပါတယ်။
Life time ဆိုတာ SSD မှာ data တွေကို write လုပ်နိုင်တဲ့ အရည်အတွက် ပမာဏ အပေါ်မူတည်ပြီး သတ်မှတ်တဲ့ SSD ရဲ့ သက်တမ်းဖြစ်ပါတယ်။
Controller
Controller Chip ကတော့ SSD ရဲ့ Processor လို့ပြောလို့ရပါတယ်။
အမှန်တစ်ကယ် Data တွေကို သိမ်းထားတဲ့ Flash Memory တွေ နဲ့ SSD ရဲ့ Input-Output Interface ကို ချိတ်ဆက်ပေးပါတယ်။ Error Correction (ECC) အပိုင်းကိုလဲ ဆောင်ရွက်ပေးပါတယ်။
Buffer Memory
Buffer Memory Chip ကတော့ သူအသုံးပြုထားတဲ့ algorithms နဲ့ Type အပေါ်မူတည်ပြီး data တွေကို မြန်ဆန်စွာရရှိစေဖို့ SSD Input-Output Interface နဲ့ SSD Controller ကြားမှာ ဆောင်ရွက်ပေးပါတယ်။
Input-Output Interface နဲ့ Power Connector ကတော့ SSD အမျိုးအစားနဲ့ အသုံးချတဲ့လုပ်ငန်းနဲ့ Device အပေါ်မူတည်ပြီး ကွဲပြားပါတယ်။ ဥပမာ .....
SSD SATA ,SSD M2, SSD msata, SSD U2 , SSD Pcie , SSD sas ,
======================
Garbage Collection
SSD မှာ Hard Disk ကဲ့သို့ လှုပ်ရှားနေတဲ့ အစိတ်အပိုင်းတွေမပါ၀င်တာကြောင့် data တွေကို read လုပ်ရာမှာရော Write လုပ်ရာမှာရော Hard Disk နဲ့ ကွဲပြားခြားနားမှုရှိပါတယ်။ (HD မှာ data တွေကို read-write ဘယ်လိုလုပ်တယ် Operation ကနေ data တွေကို ဖျက်ရင် ဘယ်လိုဖြစ်တ်ဆိုတာ အရင် Post များတွင် ဖော်ပြပြီးဖြစ်ပါတယ်)
SSD Flash Memory မှာ Cell တွေစုစည်ပြီး Page , Page တွေစုစည်းပြီး Block ဆိုပြီးရှိပါတယ်။ data တွေကို သိမ်းရင် Page အဆင့်မှာပဲ သိမ်းထားပေမဲ့ erase လုပ်တဲ့အခါဆိုရင် Block အဆင့်ထိပါ ပြုလုပ်ပါတယ်။ (erase နဲ့ delete မတူပါ)
User က data တွေကို အခြား data သိမ်းထားဆဲဖြစ်တဲ့ Block ပေါ်မှာ သိမ်းချင်တယ်ဆိုရင် ရှိနေတဲ့ Block ထဲက data သိမ်းထားတဲ့ Page တွေကို အခြားလွတ်နေတဲ့ Bock ထဲကူးယူလိုက်ပါတယ်။(ကူးယူပြီးတာနဲ့ flash Controller က ကူးလိုက်တဲ့ data ရှိနေတဲ့ block ရဲ့ logical block address (LBA) ကို အသစ်ထပ်မှတ်လိုက်ပါတယ်။ )
data save မဲ့ page အစုအဝေးဖြစ်တဲ့ Block က Clear ဖြစ်ရင် Erase မလုပ်ပဲ save ပါတယ်။ Clear မဖြစ်ရင် erase လုပ်ပြီးမှ data ကို save ပါတယ်)
program/erase cycles (P/E cycles)
==========================
ပြီးရင် အရင် Block ထဲက data တွေကို Erase လုပ်လိုက်ပါတယ်။ဖျက်ပြီးပြီးဆိုတာနဲ့ နောက် ထပ် data သိမ်းနိုင်ကြောင်း flash Controller က Free Block အဖြစ်မှတ်သားထားလိုက်ပါတယ်။ ဒါက Garbage Collection အပိုင်းဖြစ်ပါတယ်။ HD မှာ bad sector ဖြစ်ရင် သုံးဖို့ extra sector တွေပါသလို SSD မှာလဲ extra block တွေပါ၀င်ပါတယ်။
=============
Wear leveling
Wear leveling ဆိုတာကတော့ SSD တစ်ခုလုံးမှာ ပါတဲ့ Cell တွေကို အကုန်သုံးနိုင်အောင်ပြုလုပ်ပေးတာဖြစ်ပါတယ်။ program/erase cycles (P/E cycles) ကို ထပ်ကာထပ်ကာ အသုံးမပြုပဲ လွတ်နေတဲ့ Block တွေမှာ data တွေကို write တာဖြစ်ပါတယ်။
===========
Trim ( You can use from OS )
Trim ကတော့ Hard Disk Defrag လုပ်သလိုပါပဲ .. data write ဖို့ block ကိုဖျက်တယ် ...ပြီးရင် ပြန် write တယ်.. data write တဲ့ ပမာဏ ( file size)က နည်းလိုက်များလိုက်ဖြစ်လာရင် cell တွေ page တွေ Block တွေက ပျ့ကျဲလာပါတယ်။ SSD က လေးလာမယ်။ Trim ကို on ထားရင် လွတ်နေတဲ့ block တွေကိုကြည့်ပြီး data ကိုဖျက်ထားတယ် ဒါမှ နောက်ထပ် data save ရင်ပိုမြန်လာမယ်။
(Garbage Collection, Wear leveling , Trim ) ကြောင့်ပဲ SSD ကို Forensics လုပ်ရာမှာ challenge တွေရှိလာပါတယ် ...
see You Solid-State Drive (SSD) - Forensics (Part 2 )
:ဘယ်သူတင်မှန်းတော့ မမှတ်မိတော့ပါဘူး crd ပေးပါတယ်