Pages

Saturday 11 August 2012

Behind Memory Speed

 

ကၽြန္ေတာ္တို့ေတြ ကြန္ပ်ဳတာမွာသံုးဖို့အတြက္ memory ေတြကို ဝယ္ယူၾကတယ္။ memory အမ်ိဳးအစားျခင္း speed ျခင္းတူတာေတာင္ တခ်ိဳ့ memory ေတြက ပိုေစ်းႀကီးတယ္။ ပိုၿပီး Performance ေကာင္းၾကတယ္။ ဒါဟာ memory ေတြရဲ့Timing ေတြေၾကာင့္ျဖစ္ပါတယ္။ အလယ္အလက္နဲ့ high end memory ေတြမွာ memory
speed ေတြအျပင္ timing ေတြကိုပါထည့္သြင္းေဖာ္ျပလာပါတယ္။ ဥပမာဆိုရင္ DDR2800 MHz 4-4-4-15, DDR2 800MHz 2-3-2-6-T1 စသည္ျဖင့္ေဖာ္ျပလာပါတယ္။


4-4-4-15, 2-3-2-6-T1 တို့ဟာ memory timing ေတြပဲျဖစ္ပါတယ္။ Memory Timingဆိုတာက memory ကအလုပ္တစ္ခုကိုလုပ္ေဆာင္ရာမွာ ၾကာတဲ့အခ်ိန္ျဖစ္ပါတယ္။4-4-4-15, 2-3-2-6-T1, 5-5-5-15 စ သည္ျဖင့္ေဖာ္ျပထားတဲ့ memory timingေတြကေတာ့ CL-tRCD tRP-tRAS-CMD ေတြကို အစဥ္လိုက္ညႊန္း ဆိုပါတယ္။အခုတစ္ခုျခင္းစီရဲ့အေၾကာင္းကိုအေသးစိတ္ရွင္းျပပါမယ္။




CL (CAS) latency

CL ကေတာ့ CPU ကေန ေပးလုိက္တဲ့ command တစ္ခုကို memoryကေနအျမန္ဆံုးျပန္လည္တုန့္ျပန္ေပးႏိုင္ တဲ့ၾကာခ်ိန္ျဖစ္ပါတယ္။ ဥပမာ အားျဖင့္ CPU ကေန data A ကိုထုက္ေပးပါလို ့ေတာင္းဆိုလိုက္တဲ့အခ်ိန္နဲ့ memory ကေနdata A ကိုထုက္ေပးလိုက္တဲ့အခ်ိန္ ႏွစ္ခုၾကားၾကာခ်ိန္ျဖစ္ပါတယ္။ ပိုမိုရွင္းလင္းေအာင္ ေအာက္ပံု ကိုၾကည့္ပါ။

CL တန္ဖိုး 3 နဲ့ 5 ရိွတဲ့ memory ႏွစ္ခုကိုႏိွဳင္းယွဥ္ျပထားပါတယ္။ CPU ကေနၿပီး READ command ကိုေပးလိုက္ တယ္။ ဒီအခါမွာ CL တန္ဖိုး 3 ရိွတဲ့ memory က clock cycle ၃ခုအၿပီးမွာ CPU ဆီကိုdata ကိုျပန္ လည္ေပး ပို့ႏိုင္ တယ္။ read လုပ္ျပီးေပးပို့ႏိုင္တယ္။ CLတန္ဖိုး 5 ရိွတဲ့ memory ကေတာ့ clock cycle ၅ခုျပီးမွ data ကို
ေပး ပို့ႏိုင္ တယ္။ မွတ္သားထားရမွာက ကၽြန္ေတာတို့လက္ရိွသံုးေနတဲ့ DDR 1,2,3memory ေတြက clock cycle တစ္ခုအတြင္းမွာ data ႏွစ္ခု၊ တနည္းအားျဖင့္command ႏွစ္ခုကိုလုပ္ေဆာင္ႏိုင္တယ္။ (DDR ဆိုတာDual Data Rateကိုဆိုလိုတာပါ။ DDR 1, DDR2, DDR3 ဆိုတာေတြက generation ေတြကိုဆိုလိုတာပါ။


DDR2 က 2 data per clock cycle, DDR3 က 3 data per clock cycle မဟုတ္ပါဘူး)Time နဲ့ frequency အတြက္ ပံုေသနည္းတစ္ခုရိွပါတယ္။ T= 1/f ျဖစ္ပါတယ္။ DDR2533 MHz (266.66 MHz x 2) နဲ့ အလုပ္လုပ္တဲ့ memory တစ္ခုအတြက္ clock cycleတစ္ခုရဲ့ၾကာခ်ိန္က 3.75 ns (nanosecond) ရိွပါတယ္။ ဒါေၾကာင့္ CL 3 memory ကCPU ကေတာင္းဆိုတဲ့ data ကိုေပးပို ့ဖို့ဆိုရင္ 11.25 ns (3.75ns x3 )ၾကာၿပီး၊ CL 5ရိွတဲ့ memory က 18.75ns (3.75ns x 5)ၾကာပါတယ္။


ဒါေပမယ့္DDR memories ေတြက brust mode (command တစ္ခုရဲ့ေနာက္မွာ ေနာက္command တစ္ခုဆက္ တိုက္လာျခင္းကိုဆိုလိုသည္) နဲ့အလုပ္လုပ္တဲ့အတြက္ CPU ကေန Command ႏွစ္ခုထက္မကေပးလာတဲ့အခါ CL Latency က ပထမ Command တစ္ခုအတြက္ပဲေစာင့္ရပါတယ္။ ေနာက္ command ေတြအတြက္ ေစာင့္ဆိုင္း စရာ မလိုေတာ့ပါဘူး။
RAS to CAS Delay (tRCD)
Memory chip ေတြရဲ့လုပ္ေဆာင္မွုကို Matrix ပံုစံအားျဖင့္တည္ေဆာက္ထားတယ္။ Matrix မွာ row နဲ့ column ေတြပါဝင္ပါတယ္။ Row နဲ့ column ေတြရဲ့ဆံုမွတ္တိုင္းမွာ capacitor တစ္ခုစီကိုထည့္ထားတယ္။ အဲ့ဒီ့ capacitorတစ္ခုျခင္းက 0 ဒါမွမဟုတ္ 1 ဆိုတဲ့data ႏွစ္ခုကို မွတ္သားထားႏိုင္တယ္။မွတ္သားထားတဲ့ data ကုိ လိုခ်င္တဲ့အခါ CPU ကေန row number ဘယ္ေလာက္၊ column number ဘယ္ေလာက္   မွာ ရိွတဲ့ data ကို Read လုပ္ပါ လို့ memoryကိုခိုင္းေစတယ္။
ဒီအခါမွာ memory ကေန CPU ခိုင္းေစတဲ့ Row နဲ့ Column မွာရိွတဲ့ data ကိုရွာေပးရတယ္။ (technical term အရ ကိုယ္လိုခ်င္တဲ့ row ဒါမွမဟုတ္ column ကို activate လုပ္တယ္လို့ေခၚတယ္)။ Row number အတြက္ RAS (Row AddressStrobe) signal ကေနလုပ္ေဆာင္ၿပီးေတာ့၊ column အတြက္ CAS (Column Address
Strobe) signal ကေနလုပ္ေဆာင္တယ္။ RAS နဲ့ CAS signals ႏွစ္ခုရဲ့ၾကာခ်ိန္ကနည္းေလေလ data ကိုျမန္ျမန္ ဆန္ဆန္ ဖတ္ႏိုင္ေလပဲ။ ၄င္းကို RAS toCAS Delay (tRCD) လို ့ေခၚတယ္။ ပံုမွာ ဆိုရင္ tRCD 3 ရိွတဲ့ memory
ကိုျပထားတယ္။

tRCD 3 ျဖစ္တဲ့အတြက္ RAS ကလုပ္ေဆာင္ျပီး clock cycle ၃ခုၾကာမွသာလွ်င္ data ကို read လုပ္ႏိုင္တယ္။ write command အတြက္လည္းထိုနည္းတူပဲျဖစ္တယ္။

RAS Precharge (tRP)
Data တစ္ခုကို memory ကေနယူၿပီးတဲ့ေနာက္မွာ Precharge command တစ္ခုကိုထုက္ေပးရတယ္။ လက္ရိွ row ကို ပိတ္ၿပီး ေနာက္ row တစ္ခုကို activate လုပ္ျခင္းျဖစ္ပါတယ္။ tRP ဆိုတာဟာ precharge command ကေန activate commandၾကားၾကာခ်ိန္ပဲျဖစ္ပါတယ္။ ပံုမွာဆိုရင္ tRP 3 ရိွတဲ့ memory ရဲ့အလုပ္လုပ္ပံုကိုျပ ထားတယ္။
tRP 3 ျဖစ္တဲ့အတြက္ precharge command ကိုထုက္ေပးျပီး clock cycle ၃ခုၾကာမွ Active commandကိုထုက္ေပး တယ္။

Active to Precharge Delay (tRAS)
Row တစ္ခုကို activate လုပ္္တဲ့အခါၾကာတဲ့အခ်ိန္ျဖစ္ပါတယ္။ Row တစ္ခုဟာ tRAS မျပီးမျခင္း Precharge command ကိုထုက္ေပးလို ့မရပါဘူး။

Command Rate (CMD)
Command တစ္ခုနဲ့တစ္ခု ၾကား ၾကာခ်ိန္ျဖစ္ပါတယ္။ သ့ူကို "T" နဲ့ေဖာ္ျပပါတယ္။ 1T ဆိုရင္ Command တစ္ခုနဲ့ တစ္ခုၾကား clock cycle တစ္ခုျခားၿပီး 2T ဆိုရင္ Command တစ္ခုနဲ့တစ္ခုၾကား 2 clock cycleျခားပါတယ္။

အျခား Timing မ်ား
အျခား timing မ်ားအေနနဲ့ကေတာ့ tRC, tRRD, tRFC, tRW, tRTW/RWT, tWTR, tREF, tWCLတို ့ျဖစ္ပါတယ္။
tRC - row cycle time ျဖစ္ပါတယ္။ cycle တစ္ခုရဲ့ minimum time ျဖစ္ပါတယ္။ ၄င္း cycle က complete full cycle ျဖစ္ဖို ့အတြက္ row ေတြကိုလုပ္ေဆာင္ပါတယ္။ ၄င္းဟာ tRAS + tRP ျဖစ္ပါတယ္။ ဒီအခ်ိန္ကိုနည္းထား လိုက္ရင္ data ဆံုးရံွူးမွဳေတြျဖစ္ႏိုင္ပါတယ္။ ၾကာထားလိုက္ရင္Performance က်သြားႏိုင္ပါတယ္။ ဒါေပမယ့္ system stabilityပိုေကာင္းလာပါတယ္။

tRRD - Row to Row delay သို့ RAS to RAS delay ျဖစ္ပါတယ္။ Row တစ္ခုကေန ေနာက္တစ္ခုကို activate လုပ္ရာမွာၾကာတဲ့အခ်ိန္ျဖစ္ပါတယ္။tRFC - Row Refresh Cycle time ျဖစ္ပါတယ္။ row ကို refresh လုပ္ရာမွာ ၾကာတဲ့အခ်ိန္ျဖစ္ပါတယ္။tRW - Write Recovery Time. Data တစ္ခုကို write လုပ္မွာၾကာတဲ့အခ်ိန္ျဖစ္ပါတယ္။ ၄င္းဟာ data ကို အမွန္တကယ္ write လုပ္ထားလားဆိုတာကို စစ္ေပးပါတယ္။tRTW/tRWT - Read to Write Delay. Write command ကိုရတာနဲ့ memory က ၄င္းကိုစတင္လုပ္ေဆာင္ဖို့ၾကာတဲ့အခ်ိန္ျဖစ္ပါတယ္။ (memory က write command ကိုစတင္လုပ္ေဆာင္ဖို့ၾကာတဲ့အခ်ိန္ပါ။ လုပ္ေဆာင္ၿပီးလို ့CPU ဆီကို
ျပန္လည္ေပးပို ့တဲ့ CL latency နဲ့မတူပါ)


tWTR - Write to Read Delay. Write command နဲ့ Read command ၾကားၾကာခ်ိန္ျဖစ္ပါတယ္။
tREF - capacitor ထဲမွာ သိုေလွာင္ထားတဲ့ charge ကို refreshed မလုပ္ခင္ၾကာတဲ့အခ်ိန္ျဖစ္ပါတယ္။ micro seconds နဲ့တိုင္းတာပါတယ္။tWCL - CAS Number ေတြကိုေရးသားရာမွာၾကာတဲ့အခ်ိန္ျဖစ္ပါတယ္။
မွတ္သားရန္။ ။ Memory Timing ေတြနည္းျခင္းက System ကိုပိုမိုျမန္ေစပါတယ္။ ဒါေပမယ့္ stability မေကာင္းပါဘူး။ Memory Timing ေတြမ်ားျခင္းက System ကိုေႏွးေစပါတယ္။ ဒါေပမယ့္ stability ေကာင္း ပါတယ္။Overclocking လုပ္ရာမွာ timing ေတြကို အနည္းငယ္ျမင့္ေပးရပါတယ္။ CPU ကိုstability ေကာင္းေစ ဖို့ျဖစ္ပါတယ္။ (memory timing ေၾကာင့္ေႏွးသြားတဲ့ speedထက္ CPU stability ျဖစ္လို့ Overclocking လုပ္ရာမွာရရိွတဲ့ CPU speed ကပိုမ်ားပါတယ္)

No comments:

Post a Comment

Related Posts Plugin for WordPress, Blogger...

အေထြးေထြးနည္းပညာမ်ား