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

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 වලින් තමයි ඉලක්කම හාෙයාගන්නේ.

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


Tuesday, December 13, 2016

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

අපි හුගක් වෙලාවට IT පැත්තෙන් ඉගෙන ගන්නවානම් යම් විශේෂ පැත්තක් ගැන අවධානය යොමු කරනවා. නමුත් පරිගණකයක් කියන්නෙ මොකක්ද? ඒකෙ තියෙන සේරම කොටස් ගැන ඔබ කොච්චරක් දුරට දන්නවාද?
අපි හිතුවා අපි දන්න දන්න මාතෘකා ගැන පුලුවන් විදියට තේරුම් කරලා දෙන්න.
පරිගණක වැඩසටහනක් නැත්නම් Software කියන්නෙ මොකක්ද?
මේවා වෙන වෙනම වර්ග කරන්න පුලුවන්ද?
පරිගණකයක් කියන්නෙ මොකක්ද?
අැත්තටම පරිගණකයකට විදුලිය ලැබුන පමණින් මේ තරම් වැඩ ගොඩක් කරන්නෙ කොහොමද?
අද කාලේ වෙනකොට අැතිවෙන සාමාන්‍ය ප්‍රශ්න තමයි මේවා...
පරිගණකයක් හැදිලා තියෙන්නේ පරිපථ ගණනාවක සංකලනයක් විදිහට.මේවාට උපදෙස් ලබා දෙන්න තමයි වැඩසටහන් ලිවීම නැත්නම් programming හදුන්වලා දීලා තියෙන්නේ.

  • මතකය - Memory
 ඔයාලා වොන් නියොමාන් අාකෘතිය ගැන අහලා තියෙනවානම් දන්නවා අැති ඔහුගේ මූලික අදහස් කිහිපය ගැන...
ඒ අතරින් ප්‍රධාන කරුණක් තමයි පරිගණකයකට ලැබෙන දත්ත හා උපදෙස් ගබඩා කරලා තියාගන්න උපාංගයක් තියෙන්න ඔින කියන දේ. අන්න ඒකයි අපට මතකය වැදගත් වෙන්නේ.
පරිගණකයක මතක මොඩියුලය හැදිලා තියෙන්නේ ස්ථාන කිහිපයක ඒකතුවකින්. තවත් පැහැදිලිව කියනවානම් set of locations  වලින් තමයි මේක නිර්මාණය වෙන්නෙ!
මේ location වලින් අදාල වන දත්ත ද්විතියික අංකයක් විදියට තියාගන්නවා. නැත්නම් binary number විදිහට.
මතකය ප්‍රධාන කොටස් 2යි. ප්‍රධාන මතකය හා ද්විතියික මතකය. Main Memory හා Secondary Memory.
 ප්‍රධාන මතකය, දත්ත තියාගන්නෙ තාවකාලිකව. බැරි වෙලාවත් මේ වෙලාවෙ විදුලිය නැතිව ගිහින් පරිගණකය ක්‍රියා විරහිත වුනොත් දත්ත සේරම මැකිලා යනවා. මේ මැකෙන දත්ත අායෙ හොයාගන්න බෑ.
උදාහරණයක් කියනවානම් අපි save කරන්නෙ නැතුව වැඩකරන Word Document ඒකක් ගැන හිතන්න.
අපි ඒකේ පිටු 100ක් type කරලා තිබ්බත් වැඩක් නෑ පරිගණකය off වුනොත් අපේ ලියවිල්ලේ මුකුත්ම අායෙ හොයාගන්නවත් නෑ. අන්න ඒ වගේ තමයි main memoryය වැඩ කරන්නේ.
Secondary Memory ඒක main ඒක තරම්ම දුර්වල නෑ. මෙයා තමයි දත්ත හා තොරතුරු ස්ථිරවම තියාගන්න කෙනා. Hard Disk, CD rom තමයි මේකට උදාහරණ වෙන්නේ.
පරිගණකයක තියෙන මතක පද්ධතිය යම් වර්ගීකරණයන්ට ලක් කරන්න පුලුවන්.

  • ස්ථානය අනුව - ප්‍රධාන කොටස් 2යි.

    1. අැතුලත මතකය
    2. පිටත මතකය
  1.  අැතුලත මතකය - ප්‍රධාන මතකය ගැන තමයි මේ කියන්නේ! තව Central Processing Unit ඒක ගාව තියෙන Registers, Cache memory ඒකත් මේවට තමයි අයිති වෙන්නේ. 
  2. පිටත මතකය - මේකෙන් කියන්නෙ Input/Output devices වලින් සම්බන්ධ වෙන memory parts ගැන.උදාහරණ වෙන්නේ Hard disks, Floppy disks, Tapes වගේ දේවල්.
  • Access කරන ක්‍රමය අනුව කොටස් 4කට බෙදන්න පුලුවන්.
  1. Sequential Access
  2. Direct Access
  3. Random Access
  4. Associative Access
  1. Sequential Access - මේ වචනය කියවද්දීම ඔයාලට තේරෙන්න අැති මොකක් ගැනද මේ කියලා තියෙන්නේ කියලා. මේ Access Method ඒකේදි අපි දත්ත හදුන්වනවා records කියලා. Acess වෙන්නේ රේඛීය පිලිවෙලකට. ඒකයි Sequential කියන්නේ. අාරම්භයෙන් පටන් ගන්න ඔින අවසානය වෙනකන්ම පිලිවෙලට කියවගෙන යන්න ඔින. Access කරන කාලය විචල්‍යයක්. ඒ කියන්නේ වෙනස් වෙන්න පුලුවන්. හොදම උදාහරණය තමයි Tape. අතීතයේ නැත්නම් මේ අපිත් දන්න කාලේ සින්දු, කවි වගේ දේවල් වලට පාවිච්චි වුන කැසට් පීස් ගැන තමයි මේ කියන්නෙ. අනික මේ වර්ගයේදී අපි යම් තැනක් හොයනවානම් හිතන්නකෝ සින්දුවක පදයක් කියලා, මුල ඉදන්ම හෙමින් හෙමින් බලන්න වෙනවාමයි
  2. Direct Access -  මේකෙදි වෙන්නේ සෘජුවම Acess කරනවා මතකය. මේක හුගක් වෙලාවට දෘඩ මතකයට පාවිච්චි කරනවා. දෘඩ මතකය නැත්නම් අපි කියන Hard Disks, දත්ත තියාගන්න sectors භාවිතා කරනවා. Sectors දෙකක් තමන්ගෙ පරතරය තියාගන්න  Inter sector gap තියාගන්නවා. අදාල වෙන ප්‍රදේශයට ළගා වෙන්න Direct Access Method පාවිච්චි කරලා ඒ ප්‍රදේශය ලැබුනාට පස්සේ Sequental Access Method පාවිච්චියෙන් අදාල ප්‍රදේශය තුල සොයාගන්නවා ඔින කරන දත්තය.
  3. Random Access - නමේ විදිහටම මේක random. තවත් විදියකට කියනවා නම් අහඹු ලෙස තමයි මෙයා access කරන්නේ! , මේ නම කියද්දිම ඔයාට පරිගණකයේ වැදගත්ම කොටසක් මතක් වෙන්න ඔින , ඒ තමයි Random Access Memory. නැත්නම් අපි ප්‍රධාන මතකය කියනවා මෙයාට. මේක මතකය ගබඩා වෙන තැන අල්ල ගන්නේ අහඹු ලෙස. Access කරන්නේ directly. 
  4. Associative Access - මේ ක්‍රමයේදි දත්ත access කරනවා වගේ පෙනුනට අැත්තටම දත්ත වලින් කුඩා කොටසක් තමයි access වෙන්නේ.මේ ක්‍රමයේ හොදම උදාහරණය තමයි cache memory. කෑෂ් මතකය ගැන කිව්වොත් අපේ අනික් මතකයන්ට වඩා අපිට පාවිච්චි වෙද්දි දැනෙන මතකයක්. Browserයක සාමාන්‍යයෙන් අපි cache cookies clear කරනවා. මේවා clear කරන්න හේතුව වෙන්නේ cache මතකය අපි කලින් බ්‍රවුසරය භාවිතා කරලා ගිය වෙබ් අඩවි සම්බන්ධ තොරතුරු තියාගන්නවා. තොරතුරු කිවුවට තොරතුරු වල පොඩි ලින්කුවක් වගේ. අදාල ලින්කුවෙන් අපිටම හෝ වෙන කෙනෙක්ට අදාල වෙබ් අඩවියට ලගා වෙන්න පුලුවන්.
අනෙක් ප්‍රධාන කාරණාව තමයි මතක ධූරාවලිය නැත්නම් Memory Hierarchy කියන්නේ.

රූපයෙන් පෙන්වනවා වගේම උඩින්ම තියෙන්නෙ ධාරිතාවයෙන් අඩුම, හැකියාවෙන් උපරිම, මිළ ගණන් වලින් උපරිම, වැයකරන කාලය අඩුම මතක උපාංග. පහළට යන්න යන්න ඒවාගේ අගයන් වැඩි ඒවා අඩු වෙනවා. අඩු දේවල් වැඩි වෙනවා.
රෙජිස්ටර් මතකය
1 මට්ටම් කෑෂ් මතකය
2 මට්ටම් කෑෂ් මතකය
ප්‍රධාන මතකය
දෘඩ මතකය

මෙන්න මේ විදිහටයි ඒ ධුරාවලිය පැවතුනේ...
අද අපි කථා කළේ මතක මොඩියුලය ගැන, ඊලග පාඩමෙන් තවත් මොඩියුලයක් ගැන අපි කථා කරමු.


Entrepreneurship ඉගෙන ගනිමුද? - 1 පාඩම

කෝමද යාලුවනේ? පහුගිය කාලේ තිබ්බ වැඩ කන්දත් ඒක්ක ලිපියක් ලියාගන්න වෙලාව නැති වුනත් චමියාට හිතුනා පොඩි ලිපියක් ලියන්න ව්‍යවසායකත්ව අධ්‍යය...