Sunday, December 9, 2018

Hyperthreading Technology အေၾကာင္းသိေကာင္းစရာ


CPU ကို အလုပ္တစ္ခုထက္ပုိၿပီး မ်ားစြာေသာ အလုပ္ေတြကုိ တၿပိဳင္တည္းလုပ္ေဆာင္ႏိုင္ေစဖို႔
ထုတ္လုပ္လိုက္တဲ့ နည္းပညာ ျဖစ္ပါတယ္။ Super-threading ကုိ အဆင့္ျမင့္ၿပီးထုတ္လုပ္လုိက္ျခင္း ျဖစ္ပါတယ္။ Hyperthreading နည္းပညာအရ Physical တြင္ processor တစ္ခုသာရွိေသာ္လည္း Operation System က processor ႏွစ္ခုရွိတယ္လုိ႕ထင္ေယာင္ထင္မွားျဖစ္ပါတယ္။ အဲလုိ ထင္ေယာင္ထင္မွားျဖစ္တဲ့ virtual processor ကုိအလုပ္လုပ္တဲ့အခါ မွ်ေ၀သုံးစြဲႏုိင္ပါတယ္။ Pentium 4 ကေနစျပီး ဒီစြမ္းရည္ကို ပါ၀င္လာတာပါ။












Hyperthreading မတိုင္မီက Processor ေတြမွာ Clock Speed ကိုသာ ျမန္ႏိုင္သမွ် ျမန္ေအာင္
ထုတ္လုပ္ၾကတာပါ။ ၿပီးေတာ့ Instruction ေတြကို တစ္ၿပိဳင္နက္ေပးႏိုင္ေအာင္ ၿပီးေတာ့
တၿပိဳင္နက္တြက္ခ်က္ေပးႏိုင္ေအာင္ ျပဳလုပ္လာၾကတယ္။ Instructions ေတြကို တစ္ၿပိဳင္္နက္တည္း
တြက္ခ်က္ႏိုင္ဖို႔အတြက္ CPU ထဲမွာ တြက္ခ်က္တဲ့ Unit (Execution Unit) ေတြ
အမ်ားႀကီးထည့္ထားရတာေပါ့။ အဲဒီလို Instruction ေတြ တစ္ၿပိဳင္နက္ အလုပ္လုပ္လို႔ရတဲ့ နည္းပညာကို ILP(Instruction Level Parallism) လို႔ ေခၚပါတယ္။ Clock Circle တစ္ခုုစီတိုင္းမွာ ပုစၧာအမ်ားႀကီးကိုတၿပိဳင္နက္တည္းေျဖ႐ွင္းေပးႏိုင္ဖို႔ ရည္႐ြယ္တာပါ။ဒီေနရာမွာ Clock Circle ဆိုတာကို နည္းနည္းျဖတ္ၿပီး ရွင္းျပခ်င္ပါတယ္။ Clock Circle ဆုိတာ CPUရဲ႕အျမန္ႏႈန္းကို တိုင္းတာတဲ့ Unit ျဖစ္ပါတယ္။ တစ္စကၠန္႔မွာ Circle ေပါင္း ဘယ္ေလာက္သြားႏိုင္သလဲဆိုတာကို တိုင္းတာတာပါ။ သူ႔ရဲ႕ Unit ကေတာ့ Hertz(Hz) ပါ။
Instruction ေတြအမ်ားႀကီးကို တစ္ၿပိဳင္နက္ ေျဖ႐ွင္းေပးႏိုင္တဲ့ Execution Unit ေတြအမ်ားႀကီး ထည့္ထားတာေတာ့ ဟုတ္ပါၿပီ။ Instruction တစ္ခုတည္းေပးမယ္ဆိုရင္ေရာ။ျပသနာေတာ့တက္ၿပီ။ Execution Unit အမ်ားႀကီးက Instruction အမ်ားႀကီးကို အၿမဲတမ္းလိုေနေတာ့မွာေလ။ ၿပီးေတာ့ ေနာက္တစ္္ခု႐ွိေသးတယ္။ Execution Unit ေတြ အမ်ားႀကီးနဲ႔ Processor ကတစ္ၿပိဳင္နက္တည္းအလုပ္လုပ္လိုက္တာ RAM ကေပးသမွ် Instruction ေတြ ကုန္ပါေလေရာ။ RAM သည္ CPU ေလာက္မျမန္တဲ့အတြက္ ေနာက္ထပ္ Instruction ေတြထပ္ေပးဖို႔ ေနာက္က်ေနတာေပါ့။ အဲဒီအတြက္ CPU နဲ႔ RAM ၾကားမွာ Cache Memory ဆိုတာ ထည့္ၿပီးသံုးရ ျပန္ပါတယ္။ Cache ဆိုတာ အလြယ္နည္းနဲ႔မွတ္ရင္ေတာ့ CPU ရဲ႕ ဧည့္ခန္းလို႔ မွတ္လို႔ရပါတယ္။ သူက RAM ကလာတဲ့ Instructions ေတြကိုႀကိဳၿပီးစီထားေပးတယ္။ CPU ကထြက္လာတဲ့ Result ေတြကိုလည္း RAM ကလက္မခံႏိုင္ေသးတဲ့အခ်ိန္အတြင္းမွာ ခဏသိမ္းထားေပးမယ္။ RAM ကသူ႔အလုပ္ေတြ ၿပီးလို႔ Results ေတြယူေတာ့မယ္ဆိုတဲ့အခ်ိန္မွာ Cache ကေန လွမ္းယူလိုက္လို႔ရပါတယ္။ CPU က လိုအပ္တဲ့ အခ်ိန္မွာလည္း Instruction ေတြကိုထုတ္ေပးႏိုင္ၿပီေပါ့။ အဲ ေျပာျပခ်င္တာေတြက မ်ားလြန္းလို႔ ေခ်ာ္ကုန္ၿပီ။ဒါေတြက ဗဟုသုတအျဖစ္ေျပာတာပါ။ တစ္ကယ္ေျပာမွာက Hyperthreading နည္းပညာအေၾကာင္းေနာ္။ ျပန္ဆက္ၾကရေအာင္။ခုနက ILP စနစ္အေၾကာင္းေျပာေနရာက Cache ဆီေရာက္သြားတာ။ ILP ကုိပဲ ျပန္ဆက္တာေပါ့။
အေပၚမွာ ေျပာထားတဲ့ ILP စနစ္ဆိုတာ CPU တစ္လံုးထဲမွာ ျမန္ေအာင္လုပ္တဲ့ စနစ္ပါ။ Intel ကေနာက္တစ္မ်ိဳးစဥ္းစားလိုက္ျပန္တယ္။Hyperthreading ဆိုတာ Processor ေတြတစ္ခုထက္ပိုျပီးသံုးတာနဲ ့Physical Processor ျဖစ္ျဖစ္ Logical Processor ျဖစ္ျဖစ္ CPU တစ္လံုးထက္ပိုသံုးခ်င္တဲ့ရည္ရြယ္ခ်က္နဲ့ပဲဟာ။ အကယ္၍ CPU ႏွစ္လံုးထည့္မယ္ဆိုရင္ေရာ ပိုမျမန္ႏိုင္ဘူးလား။ အဲဒီအေတြးကေန စၿပီး TLP (Thread-Level-Parallism) နည္းပညာ ေပၚထြက္လာခဲ့ပါတယ္။ CPUတစ္္လံုးတည္းမွာ CPU တစ္လံုးထက္ပိုၿပီး အသုံးျပဳထားတဲ့ နည္းပညာပါ။  အရင္ကေတာ့ Multi-threading တို႔ Super-threading တို႔လို႔ အမည္တြင္ခဲ့ပါေသးတယ္။ Hyper Threading မတိုင္မီ TLP နည္းပညာကိုုအေျခခံထားတဲ့ Processor နည္းပညာ အမ်ိဳးမ်ိဳး ေပၚခဲ့ပါေသးတယ္။
Hyperthreading သည္လည္း TLP နည္းပညာကေန ဆင္းသက္လာတာမို႔ Physical Processorတစ္လံုးကေန Logical Processor ႏွစ္လံုးစာ အလုပ္လုပ္ပါတယ္။ Logical Processor ကို တကယ့္ CPU ရဲ႕Architecture State အတိုင္းတည္ေဆာက္ထားတာပါ။ Logical Processor ဆိုတာကိုနည္းနည္းေျပာခ်င္ပါတယ္။ Architecture State အတြင္းမွာ Register ေတြ ပါဝင္ပါတယ္။ မူလArchitecture State အတြင္းမွာ႐ွိတဲ့ Registers ေတြအတိုင္း ေနာက္တဆတိုးလိုက္မယ္ဆိုရင္ ေနာက္ထပ္ Architecture State တစ္ခု ထပ္ရတာေပါ့။ Architecture State ႏွစ္ခု႐ွိတဲ့ CPU သည္ ႐ိုး႐ိုး CPU ႏွစ္လံုးနဲ႔ညီမွ်ပါတယ္တဲ့။ ဒီလိုနဲ႔ Logical Processor ႏွစ္လံုးျဖစ္ေပၚလာပါတယ္။ ဒီ Logical Processor ႏွစ္လံုးကေနPhysical အရတည္႐ွိေနတဲ့ Execution Unit ေတြ အပါအဝင္ အျခား Resources ေတြကိုခြဲေဝသံုးစြဲပါတယ္။ Resourses ေတြဆိုတာက Cache ေတြ၊Execution Units ေတြ Control Logic ေတြ၊Buses စတာေတြကို ေျပာတာပါ။
ILP နည္းပညာမွာတုန္းကလို Instruction လိုေနတဲ့ ျပႆနာေတြ မ႐ွိေတာ့ပါဘူး။ Software အျမင္နဲ႔
ၾကည့္မယ္ဆိုရင္ေတာ့ OS ရဲ႕ အလုပ္ေတြ၊ User Program ရဲ႕အလုပ္ေတြကို Logical Processor ႏွစ္လံုး ကေန ခြဲၿပီးေတာ့ အလုပ္လုပ္တယ္လို႔ ျမင္ရပါမယ္။ CPU အျမင္နဲ႔ ၾကည့္မယ္ဆိုရင္ေတာ့ Instructions ေတြကို Logical Processor ႏွစ္လံုးကေနၿပီးေတာ့ Execution Unit ေတြ ခြဲေဝအသံုးျပဳၿပီးအလုပ္လုပ္တယ္လို႔ ျမင္ရပါမယ္။ ဒီနည္းပညာကို နားလည္ေအာင္ ေအာက္မွာ ပံုႏွင့္တကြ ႐ွင္းျပထားပါတယ္။
 






























Hyperthreading Technology နဲ႔ အလုပ္လုပ္ ႏိုင္ဖို႔အတြက္ CPU ကလည္း Hyperthreading ျဖစ္ရပါမယ္။ Operating System ကလည္း Hyperthreading နည္းပညာကို Support လုပ္ေပးႏိုင္ရပါမယ္။  ဥပမာ- Windows 2000 ဆိုရင္ Hyperthreading Technology ကို Support
မလုပ္ပါဘူး။ Motherboard ကလည္း Hyperthreading Technology ကိုလက္္ခံႏိုင္ရပါမယ္။


















Hyperthreading Technology ရဲ႕ အားသာခ်က္ေတြကေတာ့ -
။ Instruction ေတြအမ်ားႀကီးကို တစ္ၿပိဳင္နက္နီးပါးမွာ လက္ခံႏိုင္ပါတယ္။
။ Instruction ေတြကေပးလာတဲ့ခိုင္းေစမႈအမ်ားႀကီးကိုတစ္ၿပိဳင္နက္တည္းမွာတြက္ခ်က္အေျဖထုတ္ေပးႏိုင္ပါတယ္။
။ Process လုပ္တဲ့အခ်ိန္ ျမန္လာသလို အေျဖျပန္ထုတ္ေပးႏိုင္တဲ့ အခ်ိန္လည္း ျမန္လာပါတယ္။
HT ကို အေျခခံၿပီးေတာ့ ပိုၿပီးျမန္ဆန္တဲ့ Processor နည္းပညာေတြ ေပၚထြက္လာပါတယ္။ ပိုၿပီး လည္းျမန္လာမယ္၊

ပိုၿပီးလည္း ေစ်းသက္သာလာမယ္၊ ပိုၿပီးလည္း Power အစားနည္းလာမယ္ဆိုတဲ့ CPUရဲ႕ အနာဂတ္အတြက္ HT သည္ ႀကီးမားေသာေျပာင္းလဲမႈကို ျဖစ္ေပၚလာေစပါတယ္။ လက္႐ွိမွာေတာ့ HTကို အေျခခံၿပီး ေပၚထြက္လာတဲ့ Dual Core Processor တို႔ Core 2 Duo Processor တို႔ကိုလူသိမ်ားလာပါၿပီ။ ဒီ Processor ေတြရဲ႕ အေျခခံနည္းပညာအေၾကာင္းကုိ ေရးခြင့္ရတဲ့အတြက္အရမ္းကိုေက်နပ္အားရမိပါတယ္။ စာဖတ္ပရိတ္သတ္မ်ားအားလံုး IT  ဗဟုသုတမ်ား တိုးပြားၾကပါေစ။         

No comments:

Post a Comment