Friday, December 29, 2017

EMMC သို႔ ခ်ည္းကပ္ျခင္း အပိုင္း (၂)

 ဟုိးအရင္တုန္းက phone ေတြက သံုးရတာ စက္ဟန္းဟန္းသြားတတ္ပါတယ္။ application ၂ ခုေလာက္မ်ားဖြင့္မိလိုက္လို႔ကေတာ့ Touch Screen ေသသြားတယ္ေလ။ ဒီအားနည္းခ်က္ကိုေျဖရွင္းဖို႔ Hardware Developer ေတြက EMMC ထဲကို LPDDR2 ဆိုတဲ့ နည္းပညာကိုေပါင္းထည့္ေပးလိုက္ပါတယ္။ LPDDR2 ဆိုတာ ကြန္ပ်ဴတာမွာ RAM ေခ်ာင္းကိုေျပာတာဗ်။ 2Gb RAM ေခ်ာင္းထည့္ထားတဲ့ Computer နဲ႔ 4Gb RAM ေခ်ာင္းထည့္ထာ့တဲ့ Computer မွာ 4GB RAM သမားက Computer ပိုျမန္ပါတယ္။ ကြ်န္တာ္ computer ကိုလာသံုးတဲ့ သူငယ္ခ်င္းေတြ ကြ်န္ေတာ္ကြန္ပ်ဴတာကို အရမ္းသေဘာက်ၾကပါတယ္။ မၾကပဲေနမလားဗ်။ သူတို႔ကြန္ပ်ဴတာက RAM 2 Gb တစ္ေခ်ာင္းပဲစိုက္ထားတာ။ ကြ်န္ေတာ္မွာ 8GB ၂ေခ်ာင္းကို Dual ေျပးထားတာ။ အခုဆိုရင္ LPDDR3 နည္းပညာကို EMMC 64 GB ေတြမွာ အသံုးျပဳလာေပမယ့္ အေျခလြတ္သြားမွာစိုးလို႔ LPDDR2 EMMC 8GB, 16GB, 32GB အေၾကာင္းေတြပဲေျပာျပေပးပါမယ္။ LPDDR2 နည္းပညာကို EMMC version 4.41 ကေနစတင္အသံုးျပဳလာပါတယ္။ Data Bus Width ကလည္း 1 bit က Default ျဖစ္ေပမဲ့ Box နဲ႔ EMMC Data သြင္းမယ့္သူေတြ 4 bit or 8 bit ကို စိတ္ၾကိဳက္လုပ္ႏိုင္ပါတယ္။ DATA STROBE လမ္းေၾကာင္းကို အရင္း version ေတြမွာ single direction ပဲသြားႏိုင္သလို႔ Double-data rate architecture လိုေခၚတဲ့ LPDDR2/3 နည္းပညာပိုင္းမွာေတာ့ bidirectional transfer ကို လမ္းေၾကာင္းထပ္တိုးၿပီး ျပဳလုပ္နိုင္ေအာင္ upgrade ျပဳလုပ္ထားေပးေတာ့။ Game ေဆာ့ေနရင္ Facebook ေျပာင္းသံုးလည္း သင္တို႔ဖုန္းေတြ စက္မဟန္းေတာ့တာပါ။ အရင္ post မွာလည္းေျပာခဲ့ပါတယ္။ EMMC ဆိုတာ EMMC Device Controller နဲ႔ Memory ႏွစ္ပိုင္းေပါင္းထားပါတယ္။ အခု versionေတြမွာ ေတာ့ EMMC ဆိုတာ EMMC Device Controller + Storage Memory (SDRAM) + LPDDR2 S4 ဆိုတဲ့ အပိုင္း (၃) ပိုင္းပါလာေပ့မယ္။ LPDDR2 နဲ႔ stroage Memory ကို NAND Flash Memory မျဖစ္ တစ္ခုတည္းသာ သတ္မွတ္ထားၾကပါေသးတယ္။ ဒါေပ့မယ့္ EMMC 32 GB မွာ LPDDR2 ရဲ႕ space က 8Gb ပါတယ္။ ဒီ LPDDR2 8 GB က 32 GB ထဲပ ခြဲယူထားတာဟုတ္ဘူးေနာ္။ computer ရဲ႔ Hard Disk 500 Gb မွာ RAM 2 GB နဲ႔ မဆိုင္သလိုေပါ့ဗ်ာ။ ေျပာခ်င္တာက EMMC 32 GB ဆိုတာ LPDDR2 width ရဲ႔ 8 GB မပါပါဘူး။ အားလံုးတြက္ရင္ 40 Gb ရွိတာေပ့ါဗ်ာ။
EMMC chip or EMMC IC တစ္လံုးတြင္ EMMC device controller ႏွင့္ NAND Flash Memory Array အခန္းႏွစ္ခန္းပါရာ controller အတြက္ ေပးသြင္းေသာ Supply Voltage ကို VDD (or) VCC အျဖစ္လည္းေကာင္း၊ Memory ခန္းအတြက္ ေပးသြင္းေသာ Supply Voltage ကို VDDF (or) VCCQ အျဖစ္ schematic diagram မ်ားတြင္ေတြ႔ေနပါဦးမည္။

ဆက္ေဖာ္ျပပါဦးမည္...........................

EMMC သို႔ ခ်ည္းကပ္ျခင္း အပိုင္း (၁)

 Emmc ဆိုသည္မွာ code ႏွင့္ data မ်ားကို သိုေလွာင္ထားၿပီး ထိုအရာမ်ားကို manage ျပဳလုပ္ႏိုင္ေသာ Memory တစ္ခုပဲျဖစ္ပါသည္။ EMMC ၏ code ႏွင့္ data မ်ားစီးဆင္းရာလမ္းေၾကာင္းမ်ားစြာရွိသည့္အနက္ advanced 11-signal bus ဟုေခၚေသာ လမ္းေၾကာင္း (၁၁) သည္သည္ ပင္မေသြးေၾကာလမ္းေၾကာင္းမ်ားျဖစ္သည္။ တစ္နည္္း computer ပညာရွင္တို႔သည္ signal bus type ကို communication protocol ဟုသမုတ္ၾကသည္။ စင္စစ္တြင္မူ EMMC သည္ ကြ်န္ေတာ္တို႔ photo, video, image မ်ား သိမ္းေသာ USB stick (or) SD card တစ္ခုသာျဖစ္သည္။ သိုေသာ EMMC တြင္ cpu ေပါင္းထည့္ထားသည္။ သို႔ေသာ ထို cpu ကို Device Controller ဟုသာ ေခၚတြင္ေစၿပီး၊ ျပင္ပ main CPU ကို တန္ဖိုးထိန္းသိမ္းထားဟန္တူပါသည္။ ထိုေၾကာင့္ EMMC IC တစ္ခုတြင္ Device Controller စက္ခန္းႏွင့္ Memory ခန္းဟူ၍ အခန္း (၂) ပါသည္ကို သိရွိေစလိုပါသည္။ EMMC သည္ active ျဖစ္ရန္အလို႔ငွာ Supply Voltage အား လိုအပ္သည္။




               EMMC သည္  အထက္တြင္ ေဖၚျပထားသည္အတိုငး္ အခန္း (၂) ခန္းရွိရာ၊ အခန္းတစ္ခန္းစီအတြက္ Supply Volate တစ္ခုစီလိုအပ္ပါမည္။ Emmc Device Controller စက္ခန္းအတြက္ Communication Voltage လိုေခၚၿပီး၊ Vccq အျဖစ္ စံသတ္မွတ္ျပီး၊ Emmc Memory သိုေလွာင္ခန္းအတြက္ Memory Access Voltage လို႔ေခၚၿပီး၊ Vcc အျဖစ္စံသတ္မွတ္ပါသည္။ Vccq အတြက္ လိုအပ္ေသာ Supply Voltage သည္ 2.7 V မွ 3.6 V အတြင္းတစ္ခုခုျဖစ္ႏိုင္ပါသည္။ Vcc အတြက္ Supply Voltage သည္လည္း 2.7 V မွ 3.6 V အတြင္းတစ္ခုခုျဖစ္ႏိုင္ပါသည္။ အခ်ဳ႔ိေသာ EMMC မ်ားကို Vccq အတြက္ Supply Voltage လမ္းေၾကာင္းႏွစ္ေၾကာင္းေပးၾကသည္ကမ်ားသည္။ ထိုသို႔ေသာ EMMC ကို Dual Voltage EMMC လို႔ေခၚပါသည္။ သိုပါေသာေၾကာင့္ Vccq အတြက္ Dual Voltage သည္ 1.1 V မွ 1.3 V (or) 1.7 V မွ 1.95 V (or) 2.7 V မွ 3.6 V တို႔မွ supply voltage (၂) မ်ိဳးျဖစ္ေနမည္။ Momory ခန္းအတြက္မူ 1.7 V မွ 1.95 V (or) 2.7 V မွ 3.6 V တို႔မွျဖစ္ေနပါမည္။ Power Management IC နားရွိ Capacitor ႏွင့္ Coil မ်ားထိပ္တြင္ ထို႔ Voltage မ်ားထြက္ေနလွ်င္ ထိုလမ္းေၾကာင္းမ်ားသည္ ဘယ္သို႔သြားမည္ကို သေဘာပါလိမ့္မည္။


               EMMC Device သည္ Data မ်ား သယ္ယူပိုေဆာင္ရာတြင္ အထက္တြင္ေဖာ္ျပပါ။ communication signal bus လမ္းေၾကာင္း (၁၁) ကိုသာ အသံုးျပဳသည္။ ၎ တို႔မွာ။

  1. CLK
  2. Data Strobe
  3. CMD
  4. DAT0
  5. DAT1
  6. DAT2
  7. DAT3
  8. DAT4
  9. DAT5
  10. DAT6
  11. DAT7    စသည္တို႔သာျဖစ္သည္။
 CLK
          CLK သည္ Clock Siglan Bus လမ္းေၾကာင္းလို႔ေခၚပါသည္။ CLK သည္ Data မ်ားကို Main CUP ႏွင့္ EMMC device ၾကားတြင္ အသြားအျပန္လုပ္ႏိုင္ေသာေၾကာင္ bidirected Bud လမ္းေၾကာင္းျဖစ္သည္။ CLK လမ္းေၾကာင္းေပၚတြင္ သယ္ေဆာင္ႏိုင္ေသာ Data width သည္ 1 bit or 2 bit အတြင္းျဖစ္ႏိုင္ၿပီး၊ Frequency သည္ sleep mode ျဖစ္ေနခ်ိန္တြင္ 0 MHz မွ Active or boot mode ခ်ိန္တြင္ 1 to 200 MHz (ကြဲျပားႏိုင္) ျဖစ္ႏိုင္သည္။ 1 bit data width သည္ Default ျဖစ္သည္။

Data Strobe
               Data Strobe Signal Bus လမ္းေၾကာင္းသည္ EMMC မွ main CPU သို႔ တစ္ဘက္တည္းသာစီးဆင္းသည္။ Data Strobe လမ္းေၾကာင္းေပၚတြင္ data transfer speed သည္ တစ္စကၠအကန္႔အတြင္း 400Mb အထိပို႔ေဆာင္ေပးႏိုင္သည္။ ထို speed ကို HS400 mode ဟုေခၚပါသည္။ Data Strobe လမ္းေၾကာင္းသည္ သယ္ေဆာင္ႏိုင္ေသာ Data Width သည္ 2 bit ျဖစ္၍ ထို 2 bit တြင္ 1 bit သည္ positive signal ေခၚ positive edge ျဖစ္ၿပီး က်န္ေသာ 1 bit သည္ negative edge ျဖစ္သည္။ သို႔ေသာ Main CPU သည္ negative signal edge ကို လ်စ္လွ်ူရွဳသြားမည္ျဖစ္သည္။

 CMD
           CMD signal Bus လမ္းေၾကာင္းသည္ အသြားအျပန္ရွိေသာ bidirectional command လမ္းေၾကာင္းျဖစ္ၿပီး EMMC Device ကို initialization (အသက္၀င္ေစျခင္း) ႏွင့္ command မ်ား transfer လုပ္ရာတြင္ အသံုးျပဳသည္။ command ဆိုသည္မွာ လိုအပ္ခ်က္၊ ေပးသြင္းျခင္း ဟု အေဆာင္ေဆာင္သည္။ ထိုေၾကာင့္ Main CPU သည္လည္း EMMC ကို command လုပ္ႏိုင္ၿပီး၊ EMMC သည္လည္း အျခား IC မ်ားသို command လုပ္ႏိုင္ပါသည္။

DAT0-DAT7
             DAT0 မွ DAT7 အထိေသာ Data Transfer Bus လမ္းေၾကာင္း (၈) ေၾကာင္းသည္ bidirectional data bus ျဖစ္သည္။ EMMC ႏွင့္ Main CPU တို႔ data အေပးအယူလုပ္ေနခ်ိန္ကို pull-put mode ခ်ိန္လို႔ေခၚပါသည္။ ၎ emmc ႏွင့္ cpu တို႔သည္ တစ္ခု pull လ်င္ က်န္တစ္ခုက put ျဖစ္ရမည္။ Device တစ္ခုတည္းတြင္ pull-put မလုပ္ႏိုင္ပါ။ EMMC သည္ ပထမဆံုး Active ျဖစ္ခ်ိန္တြင္ DAT0 လမ္းေၾကာင္းတစ္ေၾကာင္းတည္းသည္ Data ကို transfer လုပ္ပါသည္။ ေနာက္ပိုင္းဆို Main CPU ၏လုိအပ္ခ်က္အရ DAT0-DAT3 (လမ္း ၄ ေၾကာင္း) အုပ္စုျဖင့္လည္းေကာင္း လမ္းေၾကာင္းစံုျဖင့္လည္းေကာင္း ခုတ္ေမာင္းေစပါသည္။ Phone တစ္လုး ဖြင့္သည္ကို power on သည္ဟုေခၚဆိုေသာ္လည္း IC တစ္လံုး ဖြင့္သည့္ Active ျဖစ္ေစသည္ကို reset သည္ဟုေခၚသည္။ ဤသင္ခန္းစာခန္းတြင္ Host ကို Main CPU or Other IC လိုမွတ္သားေစခ်င္ပါသည္။

ဆက္လက္ေဖာ္ျပပါဦးမည္.......................
             

EMMC partition မ်ားအား ေလ့လားျခင္း

MTK chip ႏွင့္တဲြဖက္အလုပ္လုပ္မည္ျဖစ္ေသာ eMMC ေခၚ NAND flash memory ကို partition (၁၄) ပိုင္းဖြင့္ ခြဲထြက္ေမာင္းႏွင္းေစပါသည္။

NAND 14 Partition Layout


1 PRELOADER

2 DSP_BL


3 NVRAM


4 SECCFG


5 UBOOT


6 BOOTIMG


7 RECOVERY


8 SEC_RO


9 MISC


10 LOGO


11 EXPDB


12 ANDROID


13 CACHE


14 USRDATA
  စသည့္တိုျဖစ္ပါသည္။

1. PRELOADER
          PRELOADER partition အပိုင္းသည္ emmc တြင္း က်န္ေသာ partition 13 ခုအတြင္း၀င္ေရာက္ေနရာယူမည္ (download) Data မ်ားကို ခ်ဳပ္ကိုင္ၿပီး CPU Hot controller ႏိုးထေစမည္၊ မႏိုးထေစမည္ကို Kernal ႏွင့္ Firmware Data တိုကို တိုက္ယူၿပီး secure ျဖစ္မျဖစ္ မွတ္တမ္းယူသည္။

2. DSP_BL
            DSP boot loader လို႔ေခၚပါတယ္။ ကိုယ္ပိုင္ OS အား USER မ်ားမွ ျပင္ဆင္ခြင့္မရွိေအာင္ security ျပဳလုပ္ရမည့္ apk ႏွင့္ data မ်ားကို passcode ခတ္၍ထိန္းသိမ္းထားေသာ partition အပိုင္းျဖစ္သည္။ DSP boot loader ကို နားလည္းေအာင္ေလ့လာႏိုင္လွ်င္ Stock Rom အား Custom Rom အျဖစ္ေျပာင္းလဲႏိုင္ျခင္း၊ Root ေဖာက္ႏိုင္ျခင္း၊ System Application  (Call apk, Contact apk) စသည့္တိုကို ေျပာင္းလဲထည့္သြင္းလာႏိုင္မည္။ 

3. U-boot
               U-boot ကို Second loader image လို႔လည္းေခၚပါတယ္။ တပ္ဆင္ခ်ိတ္ဆက္ထားေသာ Hardware မ်ားသည္ Linux Kernal version က လက္ခံႏိုင္မည္မခံႏိုင္မည္ကို တိုက္စစ္ေသာေစေသာ partition ျဖစ္သည္။

4. Boot
               Linux kernel image လို႔ေခၚတဲ့ Hardware ႏွင့္ OS ခ်ိတ္ဆက္အလုပ္လုပ္ရန္အလိုငွာ program data တစ္ခုပဲျဖစ္ပါသည္။

5. Recovery
               OS တစ္ခုလံုးကို backup, recovery, default, update ျပဳလုပ္ႏိုင္ေသာ program data တည္ရွိေသာ partition အပိုင္းျဖစ္ပါသည္။

6. Logo
           Boot-up logo image ေခၚ phone စဖြင့္ခ်င္းျမင့္ရမည့္ Brand တံဆိပ္ပံု တည္ရွိရာအပိုင္းျဖစ္သည္။ (samsung logo, Huawei logo, ViVo logo) စသည့္ျဖင့္...

7. NVRAM
                NVRAM partition သည္ wireless devices တို႔၏ မွတ္တမ္းမ်ား တနည္းဆိုေတာ္ network address မ်ားကို မွတ္တမ္းတင္သိမ္းစည္းေပးေသာေနရာျဖစ္သည္။ ဥမာ wifi (MAC address), Phone Call (IMEI)

8. SECCFG & 9. SEC_RO
          HARDWARE, OS SYSTEM, USER APPLICATION တို သေဘာတူညီမူရွိမရွိ security ကို လုပ္ေဆာင္ေပးတယ္။ ဥပမာ - ၂၀၁၇ ထြက္ facebook application မ်ားအား Android version 2.3.... တြင္ လက္ခံမည္မဟုတ္ပါ။

10 MISC
           Suddenly Power Shut Down ျဖစ္ခ်ိန္ေတြင္ OS system data မ်ား Loss ျဖစ္ျခင္းမွကာကြယ္ေပးရန္ recovery data မ်ား ထည့္သြင္းသြင္းဆည္းရာ အပိုင္းျဖစ္တယ္။

11. Cache
          Internet ဆိုင္ရာ Cache ႏွင့္ User Cache မ်ားမွတ္တမ္းတင္သိမ္းဆည္ရာ အပိုင္းျဖစ္သည္။ ဥပမာ- Internet Browser apk ကို clear cache လုပ္လိုက္လွ်င္ username ႏွင့္ password မ်ားကို ေနာက္တစ္ၾကိမ္ျပန္ထည့္ေပးရလိမ့္မည္။ Clash of Clan ဂိမ္းကို Clear cache ျပဳလုပ္လိုက္လွ်င့္ Login ၀င္ထားေသာ အေကာင့္မွတ္တမ္းမ်ားကို ျပန္ထည့္ေပးရလိမ့္မည္။ Contact application အား clean cache လွ်င့္ မွတ္ထားေသာ phone storage အတြင္းက မိတ္ေဆြမ်ား၏ phone number မ်ားေျပာက္ပ်က္သြားပါလိမ္မည္။ တစ္ခါတစ္ရံ Camera Cache ျပည့္ေနလွ်င့္ Camera Error တက္လာလိမ္မည့္။


12. EXPDB
hardware ႏွင့္ software ပစၥည္းမ်ားမည့္သို႔အလုပ္ႏိုင္ေၾကာင္းကို  Linux Kernel အျဖစ္ message ေျပာင္းယူျပီး၊ CPU သို႔တင္ျပရန္ ထို message မ်ားအားသိမ္းဆည္းရာ အပိုင္းျဖစ္သည္။


13. ANDROID
          ANDROID or System patition အပိုင္းသည္ Device တို ရွင္သန္ႏိုးထလာေစမည္ အေရးၾကီးဆိုးေသာ System Data မ်ားကို သိမ္းဆည္းေပးမည္ အပိုင္းျဖစ္သည္။ firmware တစ္ခု Default or Factory Application မ်ား တည္ရွိရာအပိုင္းျဖစ္သည္။

 14. USRDATA
                User တို ထပ္မံသိမ္းဆည္မ်ား user's photo, user's video, user data မ်ား သိမ္းစည္းႏိုင္ေသာ storage space အမ်ားဆံုးေသာ partition သည္။

ေနာက္ပိုင္းတြင္ upgrade ျပဳလုပ္လာေသာ အျခားေသာ partition ပိုင္းအေၾကာင္းမ်ားကိုလည္း ဆက္တင္ျပပါဦးမည္.....................................