Saturday, November 20, 2010

8086 Data Path - How Its Work



ඔන්න මම අර කිවුව වැඩේ පටන් ගන්න හදන්නෙ. මොකක්ද ඒ වැඩේ. හපොයි ඒ ටිකට මතක නැද්ද???? එහෙනම් මේක බලල ඉන්නකො. අන්න ඒ වැඩේ තමයි පටන් ගන්න හදන්නෙ... හා හා පුරා කියල මොකක්ද subject එක

Subject:CST303 Computer System Architecture
Chapter:Microprocessor Architecture - 8086
Title :8086 Data Path - How Its Work

හරි එහෙනම් කට්ටියම කෑ ගහන එක නවත්තල අහගන්නකො. ඔය තියෙන්නෙ රූපෙ. මොකක්ද මේ Data Path එකක් කියන්නෙ. මේ තියන මාර්ග හරහ තමයි 8086 එක ඈතුලෙ Data එහා මෙහා යන්නෙ. ඒ වගේම process වෙන්නෙ.

හරි... ලේසිම විදියට පටන් ගමු. උදාහරණයක් විදියට හිතන්නකො R1 <-- R2 + R3 කියන ගණිත කරුමය (නෑ නෑ කර්මය) කරන්න ඕන කියල. ඔය R1,R2,R3 කියන්නෙ Registers වලටනෙ. ඈත්තටම Register එකක් කියන්නෙ මොකක්ද?? ඒව Data ටිකක් තියාගන්න පුලුවන් පොඩි ඉඩක් කියල දැනට හිතා ගන්නකො. හරි දැන් එතකොට මොකක්ද කරන්න ඕනෙ? R2 වල තියන අගයයි R3 වල තියන අගයයි එකට එකතු කරල ඒක R1 වලට දාන්න ඕනෙ.හරිම ලේසියි නේද??

හරි පටන්ගමු. දැන් මේ වැඩේ 8086 මහත්තය කරන්නෙ කොහොමද??මුලින්ම R2 register එකේ තියන data එක එලියට ඈදල ගන්න ඕනෙ.හොදට බලන්න හැම register එකක්ම MUX 2කට connect වෙලා නේද?? මොනවද මේ MUX, MUX කියන්නෙ Multiplexer වලට. එයාල මොකද කරන්නෙ. එයාලට තියනව Input pin ගොඩක් සහ එක Output pin එකක්.මෙතනනම් IP 4 යි නේද. මෙයා මේ I/P 4න් එකක් විතරක් තෝරගෙන ඒක එලියට යවනව.හරියට line 4 ක පාරක් පොඩ් මංසන්දියකදි line 1 ක පාරක් වෙනව වගේ දෙයක්. දැන් line 4 කින් එන වාහන කොහොමද එක ලයින් එකකින් යවන්නෙ. ඒකට ඉන්නව පොලිස් මහත්තයෙක්. එයා කියනව හරි දැන් පලවෙනි ලයින් එකේ ආපු අය යන්න. හෝව් හෝව් දැන් එයාල නැවතිල 3වෙනි ලයින් එකේ ආපු අය යන්න. ඒ වගේ. එතකොට මේ MUX එකේ පොලිස් රාළහාමි කෝ??? එය තමයි මේ Input Selector line එක.ඔය උඩ ඉදගෙන MUX එකට එන්නෙ. හරි හරි ආපහු 8086 වලට එමු. එයාට ඕනෙ R2 ගෙ Data A data කියන ලයින් එකට ගන්නනෙ. ඉතින් එයා A selector කියන එකට input signal එකක් දෙනව මට ඕන R2 කියල.දැන් R2, MUX හරහ A data වලට එනව. මේ දිග හෑල්ලම දෙවනි MUX එකත් Follow කරල R3 ව B data ලයින් එකට ගන්නව. දැන් Data 2කම ලයින් දෙකේ තියනව.

හරි දැන් මේ හෙන ගේමක් දීල එලියට ගත්ත Data දෙකම ටික ටික ඉස්සරහට ගනව. එතකොට B Data වලට හම්බවෙනව MUX B කියන එක. එතනදි එයා එන පාරට අමතරව Constant In කියල තවත් පාරක් තියනව.හැබැයි එලියට යන්න තියෙන්නෙ BUS B කියන පාර විතරයි. දැන් B Data බලාගෙන ඉන්නව තමන්ට යන්න දේවිද නැත්නම් Constantට යන්න දේවිද කියල?? බය වෙන්න එපා 8086 MB Selectට කියනව B Data වලට යන්න දෙන්න කියල. දැන් B Data, BUS B වලට එනව. ඈත්තටම ඈයි එහෙම උනේ??? මොකද අපි එකතු කරන්න යන අංක දෙකම තියෙන්නෙ Registers වල. එකක් හරි Constant උනානම්, MB තෝරගන්නෙ එයාව. හරි නේද? දැන් Data 2කම ALU එක ලගටයි Shifter එක ලගටයි යනව.

මෙතනදි Shifter එක වැඩේ මග හරිනව. මොකද 8086 කියනව එයාට (Shifterට) මේකට ඔයා ඕන නෑ මේක ALU තනියම කර ගනීවි කියල. දැන් ALU එක A Data හා B Data දෙකම තියාගෙන බලාගෙන ඉන්නව මම මොකද මේවට කරන්නෙ කියල?? ඉතින් දැන් 8086 ALU ට කියනව ඔය දෙක දිහා බල බල ඉන්නෙ නැතුව එකතු කරන්න කියල.එක කියන්නෙ G Select හරහා පොඩි signal එකක් යවල. ඒ signal ඔක්කොම Predefine. ඒ කියන්නෙ මේ දෙන්න කලින් කථාබහ කරල ගහ ගත්ත සම්මුතිනේ. උදාහරණයක් විදියට G Select signal එක 2 නම් ALU දන්නව මේ කියන්නෙ එවන දෙක එකතු කරන්න ඕනෙ කියල. ඉතින් ALU මේ දෙක එකතු කරල Output line එකෙන් එලියට එවනව. එතකොට මොනවද මේ V, C, N, Z කියල තියන O/P හරි හරි ඒවත් කියන්නම්කො.

අපි හිතමුකො ALU මේ අංක දෙක එකතු කරාම එන උත්තරේ O/P Line එකෙන් එලියට යවන්න බැරි තරම් ලොකුයි කියල. දැන් කොහොමද එයා ඒක එලියට දන්වන්නෙ. මොකද එලියෙ අය බලන් ඉන්නවනෙ O/P එකක් එනකන්. ඉතින් ALU කරන්නෙ මේ V කියන O/P line එක ඔන් (1) කරනව. එතකොට එලියෙ අයට දැනගන්න පුලුවන් ඈතුලෙ අවුලක් කියල. ඒ වගේම අපි හිතමුකො අංක දෙකට අදාල operation 1 කරාම carry 1ක් එනව කියල. එතකොට ALU ඒක මුලු ලෝකෙටම පෙන්න්නෙ C line එක ඔන්(1) කරල. ඒ වගේම උත්තරේ (-) නම් N Line එකත් උත්තරේ බිංදුවනම් Z Line එකත් ඔන්(1) කරන්න කියල ALUට මොන්ටිසෝරි යන කාලෙම කියල දීල තියනව.

ආපහු රූපෙට යමු. දැන් අංක දෙකේ එකතුව ALU එකෙන් එලියට ඈවිත් MUX F වලට එනව.එ් මදිවට Shifter එකෙනුත් එනව.හැබැයි 8086 MF Selector එක හරහා තෝරගන්නෙ ALU එකෙන් එන එක.හරි දැන් මේ Data එක MUX D හරහා Bus D වලට යනව. එතකොට කවුද ඒකට උදවු කරන පොලිස් මහත්තය???... හරියටම හරි MD Select. දැන් උත්තතේ Bus D හරහ උඩට යනව. බලන්න ඒ ලයින් එක ඉහල තියන හැම Register එකකටම connect නේද? හැබැයි මේ Data එක මොකක් හරි Register එකකට වැටෙන්නෙ ඒ Register එකේ Load Line එක ඔන් කරොත් විතරයි. හරි දැන් මොන Load Line එකද ඔන් කරන්න ඔනෙ? ඈයි Data දාන්න හදන්නෙ R1ට නේද? (R1 <-- R2 + R3). දැන් ඒක ඔන් කරනව. කොහොමද? බලන්න Load Enable Line එක, ඔය උඩ්න්ම තියෙන්නෙ, ඒක ඔන් කරනව.දැන් පහල තියන Decoder එකේ දෙවනි ලයින් එක ඔන් කරානම් වැඩේ හරි නේද? (දෙවනි ලයින් එක කියන්නෙ 1 කියල ලියල තියල එක. මොකද මේව Zero Base Index නෙ). AND Gate එකට 1 සහ 1 ලැබෙනව.දැන් ඒකෙන් R1 ලෝඩ් වෙලා, Bus D වලින් ආපු උත්තරේ R1 වලට ගිහින් ඒකෙ පදිංචි වෙනව. Decoder එකේ දෙවනි Line එක ඔන් වෙන විදියට Signal එකක් දෙන්න 8086 දන්නව. බලන්න වැඩේ ඉවරයි. හරිම ලේසියි.

පොඩි ගැටලුවක්.ඔව් අහන්න........දැන් කවුද ඔය 8086 එක ඈතුලෙ හැම තැනම ගිහින් එක එක Select කරන පිස්සා!!!!මිනිහට වෙන වැඩක් නැද්ද?.... හොදයි. ඈත්තම කියනවනම් එහෙම කෙනෙක් නෑ. මොකක්?.... එතකොට කේෂාන් බොරුද කිවුවෙ? නෑ නෑ ඒක කරන්නෙ 16-bit Control Word(Signal) එකකින්. ඒක ගැනත් ඉඩක් ලැබුනු ගමන්ම කියන්නම්. මේක බලල හොද නරක තේරුන නොතේරුන දේවල් වැරදි දේවල් වගේම තවත් add වෙන්න ඕන දේවල් ලියල එවන්න.

නිවාඩු පාඩුවෙ තේකක් බිබී මෙක බලන්න ඕනද?
හැමෝටම බුදු සරණයි.

19 comments:

  1. මට එක හෙන ප්‍රශ්නයක් වුනා උගන්නපු දවසෙ නම්.පස්සෙ බොඩිමට ඇවිත් පොඩි සාකච්චාවක් දැම්ම..එත් කේෂාන් ගෙන් අහල බලන්න ඕනි කියල ටිකක් ඉතුරු වුනා..ඒත් ඉතින් කොහොමද හැම එකටම මූ ගාවට දුවගෙන එන්නෙ වෙන ක්‍රමයක් ලැබෙයි කියල උන්න..අන්තිමට වෙන ක්‍රමයකින් වුනත් කේශාන්ගෙම මේ ලිපියෙන් ඔක්කොම විසඳ ගත්ත...බොහොම පින්...තව තව වැඩි වැඩියෙන් නුවණ දැනුම ලැබිලා හුගාක් සාරවත් ජීවිත වල ඇසුර ලැබිල රට ට දැයට සමාජයට වැඩ දායි කොල්ලෙක් වෙන්න ලැබෙවා කියල හදවතින්ම සුභ පතනව..අපිට එහෙම වෙන බව දැනෙනව

    ReplyDelete
  2. හැමදාම වගේ අදත් හා හා පුරා කියල පැන්ඩගෙන් comment එකක්.
    ස්තූතියි පැන්ඩෝ. මේක නම් කොහොම හරි දිගටම කරගෙන යනව.

    ReplyDelete
  3. niyamai machooo kuppi danna ona na math dongal 1k gannawa anith ayatath keyamu habai ubata meka panayana wadak wei eth anith ayagana hethala me karana de godak watinawa

    ReplyDelete
  4. තව දෙයක් කියන්න ඕනි කේශාන් මචො...ඔන්න ඉතින් පැන්ඩ කේශාන් ට කඩෙ යනව කියල කැ ගහන්න එපා..ඔව් පැන්ඩ කඩෙ යනව තමා ඇයි මොකො ? බර කි.90 උස අඩ් 6 ට අඟලක් අඩුයි මගෙ. හිතාගන්න ඔනිද ගම්‍යතාව? නැද්ද.. එහෙනං කට වහගෙන ඉදින් මේක නොකර :l
    කේෂාන් මගෙ යලුව අපේ කතා වලට කට දාන්න එපා :අ

    මේකයි කේෂාන් මම කියන්න හැදුවෙ,,,උඹ ලියන විදිහ හරිම අපූරුයි,,කොච්චර කම්ප්ලෙක්ස් වුනත් එක බොහොම සරල අපේ සිංහල පපුවට දැනෙන විදිහට කියනව..උදාහරණත් පට්ට..අපිට තෙරෙන්නෙ ඔහොම තමයි.:t

    ReplyDelete
  5. -->THILINA@UWU
    ස්තූතියි comment එකට. මම දන්නව හැමදාව මගේ blog එක බලනව කියල comment නොදැම්මට. හැමදාම උඔලගෙ උදව් එක්ක මේක දිගටම කරගෙන යමු.

    ReplyDelete
  6. -->පැන්da
    මගේ blog එක පටන්ගන්න උදව් කරෙත් උඔ. අද මේත මේ තරමට අරන් එන්නත් උඔ ගොඩක් උදව් කරා. මට ගොඩක් උදව් කරපු යාලුවෙක් විදියට මගේ හිතේ හැමදාම උඔව ඉදීවි.

    ReplyDelete
  7. කේශාන් කියන්නෙ මන් සරසවි අපු මුල්කලයේ ඉදලම මගේ හොද හිතවතෙක්. මන් ඇතුලු තවත් බොහෝ දෙනෙක්ට lecture room එකේදි තේරෙන්නැති හුගක් දේවල්, හුගක් දේවල් ත්මන්ගේ මහන්සියෙන් ඉගනගෙන....කුණු කමක් නැතිව අනිත් අයටත් කියලදිලා,උනුත් ගොඩදාන්න කේශාන් ගත්තු උත්සහයන් මන් හොදින් දන්නවා...!ඒනිසාම මේකරන පින්වලින් උපදින හැම ආත්මයකදිම නැන බල,ආයු ,වර්ණ් ලැබ යෙහෙන් සිටින්නට වාසනව ලැබේවා.....!!!
    Well done....!!!

    ReplyDelete
  8. පට්ට පෝස්ට් එකක් සහෝ... :e
    BCS වල Certificate Level එකේදී Computer & Network Technology වලට තිබ්බ නේ. :r :p
    දැන්නම් මතකත් නැද්ද මන්ද... :a

    ReplyDelete
  9. --> මහා වලසා(Maha Valasa)
    ගොඩක් ස්තූතියි comment එකට. උඔලගෙ මේ comment නිසා දිගටම ලියන්නම හිතෙනව. මම දන්නව මගේ යාලුවො මාත් එක්ක ඉන්නව කියල.

    ReplyDelete
  10. --> ස්තූතියි ෴ හසියා ෴
    පොඩ්ඩක් පරණ දේවල් මතක් කරල මේකට තවත් add වෙන්න දෙයක් තියනවද බලන්න. වැරදි මොනවනත් තියනවනම් පොඩ්ඩක් පෙන්න්න හොදේ?

    ReplyDelete
  11. සිංහල බ්ලොග් අවකාශයේ අති දුර්ලභම දේවල් තමයි ඔයා මේ බ්ලොග් එක හරහා සාකච්චා කරන්නේ. ගොඩාක් ස්තුතියි. මේවා ගැන දන්න අය අනන්තවත් ඇති, ඒත් කියලා දෙන්න ඉදිරිපත් වුනේ කේශාන් විතරයි!

    ReplyDelete
  12. mama download kala me article eka. godak pin keshan. apita article mekatama dana widiyak set karagathoth tawath me wade nagala yai. panda,aya, & other CST guys la ehemath eyala danna dewal daine.
    Mahesh

    ReplyDelete
  13. ගොඩක් ස්තූතියි Kenny Dematagoda
    අපි දන්න දේවල් පුලුවන් විදියට ටික ටික හරි අනිත් අයට කියල දෙන්න තමයි මම උත්සහ කරන්නෙ.

    ReplyDelete
  14. මහේෂ් හරි...මම නම් කියන්නෙ අපි අපිවත් අපේ දැනුම වැඩි කරගමු..මම නම් කියන්නෙ අපි කිප දෙනා එකතු වෙලා ඩොමෙන් එකක් එක්ක පොඩි හොස්ටින් ස්පෙස් එකක් ගමු..ඊට පස්සෙ අපි අපේ දැනුම අපේ ප්‍රශ්න එතෙන්ට එකතු කරමු (forums,articles,videos,everything related to our knowledge...)සියළුම වෙල්ලස්ස වැසියන් හා අනෙකුත් දැනුම සොයන ඕනැම කෙනෙක්ට විවෘත කරම්ය් මේ ඉඩ..සිංහල භාශාවෙන් ක්‍රියාත්මක වෙන මෙහෙම දේවල් වල ලොකු අඩුවක් තියේ..අපි යන කාලෙක අපේ නංගිල මල්ලිලට මේක භාර දෙමු...කවදහරි කාලයක් යන කොට හොඳ දැනුම ගබඩාවක් හැදෙයි..මුලිකව ඕනි මුදල් ටික අපි කීප දෙනා දාමු.

    ReplyDelete
  15. --IMPORTANT NOTICE--
    මම මේක ලිවුවෙ අපිට ලැබුන hand-out එකක් බලාගෙන. මේ ලියල තියන එක hand-out එකේ තියන රූපසටහන අනුව නිවරදියි. නමුත් මම මෙතන දාල තියන රූප සටහනේ MUX B වල INPUT 0 1 මාරු වෙලා තියෙන්නෙ. ඒක නිසා මේ post එක hand out එකේ තියන රූපෙත් එක්ක බලන්න කියල මම ඉල්ලනව. මේ රූපෙත් එක්කනම් බලන්නෙ MUX B input එක 1 නෙමේ 0 වෙන්න ඕනෙ.

    සමාවෙන්න වෙච්ච වැරුද්දට, අද උදේ තමයි කීප දෙනෙක් මට මේත පෙන්නල දුන්නෙ. එයාලටත් ස්තූතියි.

    ReplyDelete

ටිකක් ඡනප්‍රිය ඒව