දැනට තිබෙන පාඩම්...

Sunday, December 25, 2016

මූලික කරුණු ඉගෙන ගනිමුද? - 2 පාඩම

කලින් පාඩමට ලැබුනු ප්‍රතිචාර නිසාම දෙවෙනි ලිපියත් ඉක්මනටම පළ කරන්නයි හිතුවේ. පළවෙනි ලිපියෙන් අපි කථා කළේ Memory නැත්නම් මතකය කියන කොටස ගැන.
දෙවැනි කොටසෙන් අපි කථා කරන්න හිතුවේ අැත්තටම අපි වැඩ කරනවා වගේ පෙනෙන වැඩසටහනක නැත්නම් programme ඒකක මොකද වෙන්නේ කියලා.
ගොඩක් ලොකු වැඩසටහනක පියවර ගණනත් වැඩි නිසා අපි කථා කරමු සරළ වැඩසටහනක් වැඩකරන්නේ කොහොමද කියලා.
අපි හැමෝම දන්න විදියට පරිගණකයක මූලික කාර්යය වෙන්නේ වැඩසටහන් ක්‍රියාත්මක කිරීම. වැඩසටහනක් ක්‍රියාත්මක වෙන්න නම් ඒ වැඩසටහනට අදාල Instruction Set නැත්නම් උපදෙස් මාලාවක් මතකය තුල අන්තර්ගත වෙන්න ඔින.
උපදෙස් මාලාවකින් උපදෙස් 1ක් ක්‍රියාවට නැංවීම ප්‍රධාන පියවර 2යි.

  1. Fetch කිරීම
  2. Execute කිරීම
Fetch කිරීම යන්නෙන් අදහස් වෙන්නේ, මතකයෙන් උපදෙස බැගින් ගන්නවා CPU විසින් වරකට ඒක බැගින්.
Execute කිරීම යන්නෙන් අදහස් වෙන්නේ, ඒ උපදෙස් ඒක බැගින් ක්‍රියාත්මක කරනවා.
මුලු වැඩසටහනක්ම Execute වෙනවා කියන්නේ කලින් කියපු කරුණු දෙක මාරුවෙන් මාරුවට චක්‍රයක් වගේ සිදුවීමට...
මේ තනි උපදෙසක් Fetch වෙන්න පටන් ගන්න තැන ඉදන් ඒක Execute වෙලා ඉවර වෙන තැන වෙනකන්ම වෙන ක්‍රියාවලියට අපි කියනවා Instruction Cycle කියලා. මේ Cycle ඒක ප්‍රධාන කොටස් 2යි , Fetch Cycle හා Execute Cycle .

 Execution වෙන වැඩසටහනක් නවත්වන්න පුලුවන් ක්‍රම කිහිපයක්ම තියෙනවා.
  1. පරිගණකය ක්‍රියා විරහිත වීම
  2. අායෙත් recover කරගන්න බැරි විදිහේ errors අාවට පස්සේ
  3. වැඩසටහනට අදාල උපදෙස් ප්‍රමාණය ඉවර වුනාට පස්සේ සාමාන්‍ය විදිහට වැඩසටහන අවසන් වීම
සාමාන්‍ය පරිගණකයක වැඩසටහනක් execute වෙද්දී Program Counter කියන කුඩා රෙජිස්තරය භාවිතා වෙනවා, ඊලගට execute වෙන්න තියෙන instruction ඒකේ address ඒක තියාගන්න. අපි කලින් ලිපියේ සදහන් කළා වගේම මතකයන් අවශ්‍ය වෙන ඒක් තැනක් තමයි මේක. 
යම් උපදෙසක් execute වෙලා ඉවර වුනාම pc නැත්නම් program counter විසින් ම ඒකකින් වැඩි කරගන්නවා අගය.

Fetch Cycle -  මේ cycle ඒක පටන් ගන්නේ program counter ඒක ඊලගට execute කරන්න තියෙන උපදෙස නැත්නම් instruction ඒකේ address ඒක  තියාගන්නවා. PC මගින් ඉලක්ක කරපු address ඒක processor ඒක මගින් සොයාගන්නවා. අදාල address ඒකට ගිහින් අදාල උපදෙස අරන් අැවිත් ඒක ගබඩා කරනවා උපදෙස් රෙජිස්තරය නැත්නම් instruction register(IR) තුල.
IRගේ ගබඩා කලාට පස්සේ ඒ instruction ඒක තවදුරටත් ඊලගට execute කරන්න තියෙන උපදෙස වෙන්නෙ නෑ. ඒ නිසා program counterයට ඒ address ඒක තියාගෙන වැඩක් නෑ.
මේ නිසා program counter තමන්ගේ අගය ඒකකයකින් වැඩිකරගෙන ඊලග අගය තියාගන්නවා අළුත් instruction address ඒක. ඊලගට processorය අදාල උපදෙස අරගෙන අදාල action ඒක ක්‍රියාවට නංවනවා.

Execute Cycle - CPU විසින් අදාල උපදෙස් විකේතනය කරලා අදාල ක්‍රියාවලි සිද්ධ කරනවා.
මේ ක්‍රියාවලි ප්‍රධාන පියවර 4ක් වෙනවා.

  • ප්‍රොසෙසරය හා මතකය අතර - දත්ත ප්‍රධාන මතකය වෙත හෝ ප්‍රධාන මතකයෙන් CPU වෙත හුවමාරු වෙන්න පුලුවන්.
  • ප්‍රොසෙසරය හා අාදාන ප්‍රතිදාන උපාංග අතර - පිටින් සවි කරලා තියෙන උපකරණයක හා CPU අතර දත්ත හුවමාරු කිරීමක් වෙන්න පුලුවන්.  
  • දත්ත සැකසීම - processorයට පුලුවන් Arithmetic and Logic Unit මගින් සිදුකරන ගණිත කර්ම වලින් දත්ත පද්ධතියට අවශ්‍ය විදියට නිර්මාණය කරගන්න.
  • පද්ධතිය පාලනය කිරීම - සමහර වෙලාවට execute වෙන උපදෙස් වලින් කියවෙන්නෙ execute කරන instructions ගැන වැදගත් කාරණාවක් වෙන්න පුලුවන්! අන්න ඒ කාරණාවට පුලුවන් වේවි execute වෙන පිළිවෙළ වෙනස් කරන්න.සමහරවිට ඊලග instruction ඒක නැතුව තව 5ක් ඉස්සරහින් තියෙන instruction ඒකක් execute කරන්න කියන්න. නැත්නම් මීට instructions 5කට කලින් තිබ්බ instruction ඒකක් අායෙත් execute කරන්න වගේ instructions වුනත් ලැබෙන්න පුලුවන්.
Instruction - අැත්තටම instruction කියන්නෙ මොකක්ද?  Instruction තමයි program ඒකක කෙරෙන වැඩ පිලිවෙල තේරුම් කරලා දෙන්නේ...
Instruction ඒකක් ප්‍රධාන කොටස් 2යි. Op Code හා Address ඒක.
සාමාන්‍ය 16 bits දිග instruction word ඒකක, 4 bits යනවා opcodeට, 12 bits යනවා address කියන කොටසට.
සාමාන්‍ය 16 bits දිග integer format word ඒකක 1 bit අයින් කරන්නෙ sign bit ඒක විදියට. ඒ කියන්නෙ +ද නැත්නම් - ද  කියන දේ නිවැරදිව සොයාගන්න. ඉතිරි 15 bits වලින් තමයි ඉලක්කම හාෙයාගන්නේ.

දැන් යාලුවන්ට පොඩි හරි අදහසක් අැතිනේ මෙතන මොකක්ද වෙන්නේ කියලා...
අපි ඊලග දවසේ කථා කරමු පොඩි උදාහරණයකුත් අරගෙනම...
කට්ටියටම සුබ නත්තලක් වේවා...


කවුද මේ සුන්දර් පිචායි ??

පිචායි සුන්දර්රාජන් ඔබ දන්නවාද? මං දන්න තරමින් නැහැ. නමුත් ඔබ සුන්දර් පිචායි හදුනනවා විය යුතුයි. ඔහු තමයි Google අායතනයේ ප්‍රධාන විධායක...