Giáo trình Vi xử lý 1

pdf 338 trang ngocly 110
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Vi xử lý 1", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_vi_xu_ly_1.pdf

Nội dung text: Giáo trình Vi xử lý 1

  1. TrˆÙ¯ng —aễi Hoễc Sˆ Phaễm Kyı Thua‰t Khoa —ie‰n Tˆ˚ ủ Bo‰ mo‚n Co‚ng Nghe‰ Vie„n Tho‚ng oOo NGUYE√N —ÃNH PHUŸ NA M 2006
  2. L‘ÿI NOŸI —A¿U Bo‰ vi xˆ˚ ly˘ nga¯y ca¯ng pha˘t trieÂn hoa¯n thie‰n va¯ ềˆÙễc sˆ˚ duễng ha‡u heãt trong ca˘c he‰ thoãng ềie‡u khieÂn trong co‚ng nghie‰p cuıng nhˆ trong ca˘c˘c thieãtthieãt bÚbÚ da‚nda‚n duễng.duễng. ChènhChènh nhÙ¯nhÙ¯ vaivai tro¯tro¯,tro¯,,, chˆ˘c naÍng cu˚a vi xˆ˚ ly˘ ềaı ềem llaễiaễi nhie‡u ˆu ềieÂm, nhie‡u tènh naÍngnaÍng ềaẻc bie‰t cchoho ca˘c he‰ thoãng ềie‡u khieÂn. Ca˘c nha¯ nghie‚n cˆ˘u kho‚ng ngˆ¯ng nghie‚n cˆ˘u ca˘c he‰ thoãng ềie‡u khieÂn va¯ sˆ˚ duễng vi xˆ˚ ly˘˘ ềeÂềe thay theãtheã,, va¯ cuıng chènh vẽ theã ềaı thu˘c ềaÂy lÛnhlÛnh vvvˆễcvˆˆễễccˆễc vi xˆ˚ ly˘ phapha˘t˘t˘t trieÂntrieÂn nga¯ynga¯y ca¯ngca¯ng hoa¯nhoa¯n ha˚oha˚o thèchthèchthèch nghi vÙ˘i ye‚u ca‡u ềie‡u khieÂn. —e ềÙn gia˚n bÙ˘t sˆễ phˆ˘c taễp cu˚a pha‡n cˆ˘ng khi du¯ng vi xˆ˚ ly˘ ne‚n ca˘c nha¯ nghie‚n cˆ˘u ềaı tèch hÙễp he‰ vi xˆ˚ ly˘ tha¯nh mmmo‰tmo‰to‰to‰t ic goễi la¯ vi ềie‡u khieÂn. No‰i dung cuoãn sa˘sa˘chch na¯y ềˆÙễc bie‚n soaễn go‡m 777 chˆÙng, trong ềo˘ chˆÙng 1 giÙ˘i thie‰u ve‡ lÚch ssˆ˚ˆ˚ pha˘t trieÂn cu˚a vi xˆ˚ ly˘ly˘,, chˆÙng 2 trẽnh ba¯y caãucaãu tru˘c cu˚a vi xˆ˚ ly˘ 8 bit, chˆÙng 3 trẽnh ba¯yba¯y ve‡ caãu tru˘c vi xˆ˚ ly˘ 16 bit 8086/8088, chˆÙng 4 trẽnh ba¯yba¯y veve‡‡‡ vivi ềie‡uềie‡u khieÂnkhieÂn 88 bitbit hoễhoễ MCS51,MCS51, chˆÙngchˆÙngchˆÙng 55 trẽnh ba¯y ve‡ la‰p trẽnh baậng hÙễp ngˆı cho vi ềie‡u khieÂn, chˆÙng 6 trẽnh ba¯y ve‡ ca˘c IC soã va¯ ca˘c IC ngoaễi vi thˆÙ¯ng du¯ng trong ca˘c he‰ thoãng vi xˆ˚˚ ly˘ly˘ va¯va¯ vivi ềie‡uềie‡u khieÂn.khieÂn. ChˆÙng 777 trẽnh ba¯y ca˘c giao tieãp thˆÙ¯ng gaẻp trong thˆễc teã giˆıa vi ềie‡u khieÂn vÙ˘i ca˘c thieãt bÚ ngoaễi vivi No‰i dung trong cuoãn ssa˘cha˘ch nhaậm trang bÚ ca˘c kieãnkieãn thˆ˘c cÙ ba˚n ve‡ vi xˆ˚ ly˘ va¯ vi ềie‡u khieÂn cho sinh vie‚n nga¯nh ềie‰n ủủủ ềie‰n tˆ˚tˆ˚,, ềaẻc bie‰t la¯ vi ềie‡u khieÂn hoễ MCS51 va¯ ca˘c ˆ˘ng duễng giiao tieãp va¯ ềie‡u khieÂn cÙ ba˚nba˚n Moễi ềo˘ng go˘p xa‚y dˆễng xin haıy gÙ˚i ve‡ ta˘c gia˚ theo ềÚa chấ [email protected] xin ccha‚nha‚n tha¯nh ca˚m Ùn.
  3. MUœC LUœC L‘ÿI NOŸI —A¿U CHữ‘NG 1. L“CH SữÔ PHAŸT TRIE≈N VI XữÔ LYŸ 111 I. GI‘ŸI THIEƒU L“CH SữÔ PHAŸT TRIE≈N CUÔA CAŸC HEƒ VI XữÔ LYŸ 222 1.1.1. GiÙ˘i thie‰u lÚch sˆ˚ pha˘t trieÂn cu˚a ca˘c vi xˆ˚ ly˘ 222 2.2.2. Chˆ˘c naÍng cu˚a vi xˆ˚ ly˘ 333 3.3.3. Ma˘y vi tènh 444 II. CAŸC KHAŸI NIEƒM C‘ BAÔN VE¿ CAĂU TRUŸC CUÔA VI XữÔ LYŸ 555 1.1.1. Chie‡u da¯i tˆ¯ dˆı lie‰u. 555 2.2.2. Kha˚ naÍng truy xuaãt bo‰ nhÙ˘. 555 3.3.3. Toãc ềo‰ la¯m vie‰c cu˚a vi xˆ˚ ly˘. 666 4.4.4. Ca˘c thanh ghi cu˚a vi xˆ˚ ly˘. 666 5.5.5. Ca˘c le‰nh cu˚a vi xˆ˚ ly˘. 666 6.6.6. Ca˘c kieÂu truy xuaãt bo‰ nhÙ˘. 777 7.7.7. Ca˘c loaễi bo‰ nnhÙ˘.hÙ˘.hÙ˘.hÙ˘. 777 8.8.8. Ca˘c maễch ềie‰n giao tieãp ngoaễi vi cu˚a vi xˆ˚ ly˘. 101010 CHữ‘NG 2. CAĂU TRUŸC VI XữÔ LYŸ 8 BIT VAÿ TAƒP LEƒNH 131313 I. S‘ —O¿ KHOĂI CPU 8 BIT C‘ BAÔN 141414 1.1.1. SÙ ềo‡ khoãi cu˚a vi xˆ˚ ly˘. 141414 2.2.2. Khoãi ALU. 141414 II. TO≈ CHữŸC CAŸC THANH GHI 151515 1.1.1. Ca˘c thanh ghi be‚n trotrongng vi xˆ˚ ly˘. 151515 2.2.2. Chˆ˘c naÍng ca˘c thanh ghi. 161616 III. LEƒNH CUÔA VI XữÔ LYŸ 224424 1.1.1. Ta‰p le‰nh cu˚a vi xˆ˚ ly˘. 224424 2.2.2. Tˆ¯ gÙễi nhÙ˘. 252525 3.3.3. Ca˘c nho˘m le‰nh cÙ ba˚n 252525 4.4.4. ca˘c kieÂu truy xuaãt ềÚa chấ cu˚a vi xˆ˚ ly˘ 226626 IV. VI XữÔ LYŸ Z80 272727 1.1.1. SÙ ềo‡ caãu tru˘c be‚n trong cu˚a vi xˆ˚ ly˘ Z80. 272727 2.2.2. To chˆ˘c thanh ghi be‚n trong vi xˆ˚ ly˘ Z80. 292929 3.3.3. Chˆ˘c naÍng ca˘c cha‚n cu˚a vi xˆ˚ ly˘ Z80. 313131 4.4.4. Gia˚n ềo‡ thÙ¯i gian cu˚a vi xˆ˚ ly˘ Z80. 333333 5.5.5. —a˘p ˆ˘ng ye‚u ca‡u ngaẩt cu˚a vi xˆ˚ ly˘ Z80. 338838 6.6.6. Pha‡n cˆ˘ng va¯ pha‡n me‡m cu˚a vi xˆ˚ ly˘ Z80. 414141 V. VI XữÔ LYŸ 8085A 556656 1.1.1. SÙ ềo‡ caãu tru˘c be‚n trong cu˚a vi xˆ˚ ly˘ 8085A. 556656 2.2.2. To chˆ˘c thanh ghi be‚n trong cu˚a vi xˆ˚ ly˘ 8085A. 575757 3.3.3. SÙ ềo‡ cha‚n cu˚a vi xˆ˚ ly˘ 8085A. 575757 4.4.4. Gia˚n ềo‡ thÙ¯i gian cu˚a vi xˆ˚ ly˘ 8085A. 616161
  4. 5.5.5. Gia˚i ềa hÙễp ềÚa chấ va¯ dˆı lie‰lie‰uu cho vi xˆ˚ ly˘ 8085A 662262 6.6.6. Ta‰p le‰nh cu˚a vi xˆ˚ ly˘ 8085A 662262 VI. TOŸM TA T ủ CAơU HOÔI OơN TAƒP ủ BAÿI TAƒP 727272 1.1.1. To˘m taẩt. 727272 2.2.2. Ca‚u ho˚i o‚n ta‰p ủủủ ba¯i ta‰p. 747474 CHữ‘NG 3. CAĂU TRUŸC VI XữÔ LYŸ 16 BIT 8086 77 I. CAĂU TRUŸC VI XữÔ LYŸ 8086/8088 787878 1.1.1. Caãu tru˘c be‚n trong vi xˆ˚ ly˘ 8086/8088. 880080 2.2.2. Ca˘c thanh ghi be‚n trong vi xˆ˚ ly˘ly˘ 880080 3.3.3. Bo‰ nhÙ˘ pha‚n ềoaễn cu˚a vi xˆ˚ ly˘. 878787 4.4.4. Reset vi xˆ˚ ly˘. 889989 5.5.5. To˘m taẩt pha‡n cˆ˘ng vi xˆ˚ ly˘ 8086. 889989 II. CAŸC PHữ‘NG PHAŸP —“NH —“A CH∆ CUÔA VI XữÔ LYŸ 8086 979797 III. TAƒP LEƒNH CUÔA VI XữÔ LYŸ 8086 110110110 1.1.1. Maı le‰nh cu˚a vi xˆ˚ ly˘ 8086/80888086/8088 110110110 2.2.2. ToÂng quan ve‡ ta‰p le‰nh cu˚a vi xˆ˚ ly˘ 80868086 111111111 3.3.3. Kha˚o sa˘t ta‰p le‰nh cu˚a vi xˆ˚ ly˘ 8086. 116116116 IV. CAơU HOÔI VAÿ BAÿI TAƒP 117117117 CHữ‘NG 4. HOœ VI —IE¿U KHIE≈N 8051 119 I. GI‘ŸI THIEƒU VI —IE¿U KHIE≈N MCS51 112200120 II. KHAÔO SAŸT PHA¿N CữŸNG VI —IE¿U KHIE≈N MCS51 121121121 1.1.1. SÙ ềo‡ caãu tru˘c be‚n trong vi ềie‡u khieÂn MCS51 121212112 111 2.2.2. Kha˚o sa˘t sÙ ềo‡ cha‚n 89C51 112233123 3.3.3. SÙ ềo‡ maễch keãt noãi mo‰t soã ˆ˘ng duễng ềÙn gia˚n du¯ng bo‰ nhÙ˘ no‰i 112266126 III. CAĂU TRUŸC BOƒ NH‘Ÿ CUÔA VI —IE¿U KHIE≈N 113300130 1.1.1. To chˆ˘c bo‰ nhÙ˘ 113300130 2.2.2. Ca˘c thanh ghi co˘ chˆ˘c naÍng ềaẻc bie‰t 113333133 IV. KHAÔO SAŸT TAƒP LEƒNH CUÔA VI —IE¿U KHIE≈N 113377137 1.1.1. GiÙ˘i thie‰u 113377137 2.2.2. Ca˘c kieÂu ềềÚnhÚnhÚnh ềÚaềÚa chấchấ 113388138 3.3.3. Kha˚o sa˘t ta‰p le‰nh vi ềie‡u khieÂn 141141141 V. KHAÔO SAŸT HOAœT —OƒNG TIMER/COUNTER CUÔA VI —IE¿U KHIE≈N 117766176 1.1.1. GiÙ˘i thie‰u 117766176 2.2.2. Thanh ghi choễn kieÂu la¯m vie‰c cho timer ủủủ Mode Register 117777177 3.3.3. Thanh ghi ềie‡u khieÂn timer ủủủ Control Register 117788178
  5. 4.4.4. Ca˘c kieÂu hoaễt ềo‰ng cu˚a timer va¯ cÙ¯ tra¯n 117788178 5.5.5. Ca˘c nguo‡n xung ềeãm 118800180 6.6.6. —ie‡u khieÂn ca˘c timer hhoaễtoaễt ềo‰ng 181181181 7.7.7. KhÙ˚i taễo va¯ truy xuaãt ca˘c cu˚a timer/counter 118822182 8.8.8. Kha˚o sa˘t timer T2 cu˚a hoễ vi ềie‡u khieÂn MCS52 118833183 VI. HOAœT —OƒNG TRUYE¿N Dữ’ LIEƒU CUÔA VI —IE¿U KHIE≈N 118866186 1.1.1. GiÙ˘i thie‰u 118866186 2.2.2. Thanh ghi ềie‡u khieÂn truye‡n dˆı lie‰u noãi tieãp 118877187 3.3.3. CCaa˘˘ccCa˘c kieÂu truye‡n dˆı lie‰u noãi tieãp 118877187 4.4.4. KhÙ˚i taễo va¯ truy xuaãt ca˘c thanh ghi truye‡n dˆı lie‰ulie‰u noãinoãi tieãptieãp 191191191 5.5.5. Truye‡n dˆı lie‰u noãi tieãp trong he‰ thoãng nhie‡u vi ềie‡u khieÂn 119922192 6.6.6. Thieãt la‰p toãc ềo‰ truye‡n dˆı lie‰u noãi tieãp 119933193 VII. HOAœT —OƒNG NGA T CUÔA VI —IE¿U KHIE≈N 119966196 1.1.1. GiÙ˘i thie‰u 119966196 2.2.2. Thanh ghi ềie‡u khieÂn truye‡n dˆı lie‰u noãi tieãp 119977197 3.3.3. Ca˘c kieÂu truye‡n dˆı lie‰u noãi tieãp 119988198 4.4.4. KhÙ˚i taễo va¯ truy xuaãt ca˘c thanh ghi truye‡n dˆı lie‰ulie‰u noãinoãi tieãptieãp 119999199 5.5.5. Truye‡n dˆı lie‰u noãi tieãp trong hhe‰e‰ thoãng nhie‡u vi ềie‡uềie‡u khieÂn 200 6.6.6. Thieãt la‰p toãc ềo‰ truye‡n dˆı lie‰u noãi tieãp 201 VIII. BAÿI TAƒP 203 CHữ‘NG 5. LAƒP TRÃNH CHO VI —IE¿U KHIE≈N 80C51 205 1.1.1. GiÙ˘i thie‰u 206 2.2.2. Hoaễt ềo‰ng cu˚a trẽnh bie‚n dÚch assembler 206 3.3.3. Caãu tru˘c cu˚a Trẽnh dÚch hÙễp nngˆıgˆıgˆıgˆı 207 4.4.4. —a˘nh gia˘ bieÂu thˆ˘c trong thÙ¯i gian dÚch 221100210 5.5.5. Ca˘c chấ da„n cho assembler 221144214 6.6.6. Ca˘c ềie‡u khieÂn cu˚a trẽnh dÚcch hÙễp ngˆı. 221199219 7.7.7. Hoaễt ềo‰ng lie‚n keãt 222200220 8.8.8. sˆ˚ duễng Macro 222200220 9.9.9. Ca˘ch vieãt chˆÙng trẽnh hÙễp ngˆı 222233223 CHữ‘NG 6. KHAÔO SAŸT CAŸC IC NGOAœI VI VAÿ THIEĂT KEĂ HEƒ THOĂNG VI XữÔ LYŸ 229 I. CAŸC LINH KIEƒN SOĂ 223300230 1.1.1. ICIC choãtchoãt 223300230 2.2.2. ICIC gia˚igia˚i maımaı 223311231 3.3.3. ICIC ềe‰mềe‰m 223333233 4.4.4. ICIC nhÙ˘nhÙ˘ ERERPOMER POM va¯ RAM 223355235 II. CAŸC LINH KIEƒN IC NGOAœI VI 242
  6. 1.1.1. ICIC ngoaễingoaễi vivi la‰pla‰p trẽnhtrẽnh 8255A8255A 242 2.2.2. ICIC ngoaễingoaễi vivi la‰pla‰p trẽnhtrẽnh 82798279 225500250 III. THIEĂT KEĂ HEƒ THOĂNG VI XữÔ LYŸ 225555255 1.1.1. Ba¯i thieãt keã soã 1 225555255 2.2.2. Ba¯i thieãt keã soã 2 262 IV. BAÿI TAƒP 266 CHữ‘NG 7. GIAO TIEĂP ữŸNG DUœNG DUÿNG VI —IE¿U KHIE≈N 1. Vi —ie‡u KhieÂn Giao Tieãp VÙ˘i Led 222626668888 1.1.1. GGGiaoGiaoiao tieãptieãp vÙ˘ivÙ˘i ledled ềÙnềÙn 222626669999 2.2.2. GGGiaoGiaoiao tieãptieãp vÙ˘i led 7 ềoaễn 222727771111 2. VI —IE¿U KHIE≈N GIAO TIEĂP V‘ŸI PHếM NHAĂN 2227277777 1.1.1. GGGiaoGiaoiao tieãptieãp vÙ˘i 1 hoaẻc 222 nnnun uuu˘t˘t˘t˘t nhaãn 222727778888 2.2.2. GGGiaoGiaoiao tieãptieãp vvÙ˘Ù˘iivÙ˘i ma tra‰n phèm 222828880000 3. VI —IE¿U KHIE≈N GIAO TIEĂP V‘ŸI ADC VAÿ DAC 285 1.1.1. GGGiaoGiaoiao tieãptieãp vÙ˘i ADC 0809 222828885555 2.2.2. GGGiaoGiaoiao tieãptieãp vÙ˘i ADC 7109 229911291 3.3.3. GGGiaoGiaoiao tieãptieãp vÙ˘i DAC 0808 229933293 4. VI —IE¿U KHIE≈N GIAO TIEĂP V‘ŸI RELAY VAÿ —OƒNG C‘ Bữ‘ŸC 222929994444 1.1.1. GGGiaoGiaoiao tieãptieãp vvÙ˘Ù˘iivÙ˘i RRRELAYRELAY 222929994444 2.2.2. GGGiaoGiaoiao tieãptieãp vvÙ˘Ù˘iivÙ˘i ềo‰ng cÙ bˆÙ˘c 222929996666 5. VI —IE¿U KHIE≈N GIAO TIEĂP V‘ŸI LCD 333023020202 6. VI —IE¿U KHIE≈N GIAO TIEĂP V‘ŸI LED MA TRAƒN 333113111111 7. VI —IE¿U KHIE≈N GIAO TIEĂP V‘ŸI REALTIME 333163161616 Ta¯i lie‰u tham kha˚o.
  7. ChˆÙng 1 GI‘ŸI THIEƒU L“CH SữÔ PHAŸT TRIE≈N CUÔA CAŸC HEƒ VI XữÔ LYŸ 1.1.1. GiÙ˘i thie‰u lÚch sˆ˚ pha˘t trieÂn cu˚a ca˘c vi xˆ˚ ly˘ 2.2.2. Chˆ˘c naÍng cu˚a vi xˆ˚ ly˘ 3.3.3. Ma˘y vi tènh CAŸC KHAŸI NIEƒM C‘ BAÔN VE¿ CAĂU TRUŸC CUÔA VI XữÔ LYŸ 1.1.1. Chie‡u da¯i tˆ¯ dˆdˆııı lie‰u.lie‰u. 2.2.2. Kha˚ naÍng truy xuaãt bo‰ nhÙ˘. 3.3.3. Toãc ềo‰ la¯m vie‰c cu˚a vi xˆ˚ ly˘. 4.4.4. Ca˘c thanh ghi cu˚a vi xˆ˚ ly˘. 5.5.5. Ca˘c le‰nh cu˚a vi xˆ˚ ly˘. 6.6.6. Ca˘c kieÂu truy xuaãt bo‰ nhÙ˘. 7.7.7. Ca˘c loaễi bo‰ nhÙ˘. 8.8.8. Ca˘c maễch ềie‰n giao tieãp ngoaễi vi cu˚a vi xˆ˚ ly˘.
  8. ChˆÙng 1. GiÙ˘i thie‰u lÚch sˆ˚ pha˘t trieÂn cu˚a vii xˆ˚xˆ˚ ly˘.ly˘. SPKT I. GI‘ŸI THIEƒU L“CH SữÔ PHAŸT THE≈N CUÔA CAŸC HEƒ VI XữÔ LYŸ: 1. GiÙ˘i thie‰u lÚch sˆ˚ pha˘t trieÂn cu˚a ca˘c he‰ vi xˆ˚ ly˘: Ma˘y tènh soã la¯ mo‰t he‰ thoãng bao go‡m ca˘c maễch ềie‰n tˆ˚ xˆ˚ ly˘ tèn hie‰u daễng soã ềˆÙễc ềie‡u khieÂn bÙ˚i chˆÙng trẽnh, co˘ the la¯m nhˆıng co‚ng vie‰c ma¯ con ngˆÙ¯i mong muoãn. ChˆÙng trẽnh seı ềie‡u khieÂn ca˘c maễch ềie‰n soã ca˘ch di chuyeÂn va¯ xˆ˚ ly˘ dˆı lie‰u (data) baậng ca˘ch ềie‡u khieÂn ca˘c maễch logic soã hoễc, ca˘c bo‰ nhÙ˘ (memory), ca˘c thieãt bÚ xuaãt / nha‰p (Input/output). Ca˘ch thˆ˘c ca˘c maễch ềie‰n logic cu˚a ma˘y tènh soã keãt hÙễp laễi vÙ˘i nhau taễo tha¯nh ca˘c maễch logic soã hoễc, ca˘c vi maễch nhÙ˘ va¯ ca˘c thieãt bÚ xuaãt / nha‰p ềˆÙễc goễi la¯ caãu tru˘c. Vi xˆ˚ ly˘ co˘ caãu tru˘c gioãng nhˆ ma˘y tènh soã va¯ co˘ the xem no˘ la¯ ma˘y tènh soã vẽ ca˚ hai ềe‡u tènh toa˘n dˆÙ˘i sˆễ ềie‡u khieÂn cu˚a chˆÙng trẽnh. LÚch sˆ˚ pha˘t trieÂn cu˚a vi xˆ˚ ly˘ gaẩn lie‡n vÙ˘i sˆễ pha˘t trieÂn cu˚a ca˘c vi maễch ềie‰n tˆ˚ vẽ vi xˆ˚ ly˘ la¯ vi maễch ềie‰n tˆ˚ cheã taễo theo co‚ng nghe‰ LSI (large scale integrated) cho ềeãn VLSI (very large scale integrated). VÙ˘i sˆễ kha˘m pha˘ ra transistor va¯ pha˘t trieÂn cu˚a co‚ng nghe‰ cheã taễo vi maễch SSI, MSI, ma˘y tènh va„n co¯n la¯ mo‰t nho˘m go‡m nhie‡u IC keãt hÙễp laễi vÙ˘i nhau, cho ềeãn tha‰p nie‚n 70, vÙ˘i sˆễ pha˘t trieÂn cu˚a co‚ng nghe‰ LSI, caãu tru˘c ma˘y tènh ềˆÙễc ru˘t goễn bÙ˚i ca˘c nha¯ thieãt keã va¯ ềˆÙễc cheã taễo tha¯nh mo‰t IC duy nhaãt ềˆÙễc goễi la¯ vi xˆ˚ ly˘ (microprocessor). Vi xˆ˚ ly˘ keãt hÙễp vÙ˘i ca˘c thieãt bÚ kha˘c taễo ra ca˘c ma˘y tènh co˘ kha˚ naÍng tènh toa˘n raãt lÙ˘n nhˆ ma˘y vi tènh va¯ co˘ the taễo ra ca˘c sa˚n phaÂm kha˘c ca˘c ma˘y ềie‰n thoaễi, ca˘c toÂng ềa¯i ềie‰n thoaễi, ca˘c he‰ thoãng ềie‡u khieÂn tˆễ ềo‰ng Vi xˆ˚ ly˘ ềa‡u tie‚n co˘ kha˚ naÍng xˆ˚ ly˘ 4 bit dˆı lie‰u, ca˘c vi xˆ˚ ly˘ na¯y co˘ toãc ềo‰ xˆ˚ ly˘ raãt cha‰m, ca˘c nha¯ thieãt keã ca˚i tieãn tha¯nh vi xˆ˚ ly˘ 8bit, sau ềo˘ la¯ vi xˆ˚ ly˘ 16 bit va¯ 32 bit. Sˆễ pha˘t trieÂn ve‡ dung lˆÙễng ca˘c bit cu˚a vi xˆ˚ ly˘ la¯m taÍng the‚m soã lˆÙễng ca˘c le‰nh ềie‡u khieÂn va¯ ca˘c le‰nh tènh toa˘n phˆ˘c taễp. LÚch sˆ˚ pha˘t trieÂn cu˚a vi xˆ˚ ly˘ gaẩn lie‡n vÙ˘i haıng INTEL: • Tha˘ng 4 naÍm 1971, Intel sa˚n xuaãt ra vi xˆ˚ ly˘ 4 bit co˘ maı soã 4004 co˘ the truy xuaãt 4096 o‚ nhÙ˘ 4 bit va¯ co˘ 45 le‰nh. • Tha˘ng 4 naÍm 1972, Intel ca˚i tieãn va¯ cho ra vi xˆ˚ ly˘ 8 bit co˘ maı soã 8008 co˘ the truy xuaãt 16K o‚ nhÙ˘ 8 bit va¯ co˘ 48 le‰nh. • Tha˘ng 4 naÍm 1974, Intel ca˚i tieãn vi xˆ˚ ly˘ 8008 tha¯nh vi xˆ˚ ly˘ 8080 co˘ the truy xuaãt 64Kbyte bo‰ nhÙ˘ va¯ co˘ nhie‡u le‰nh hÙn, chaễy nhanh gaãp 10 la‡n so vÙ˘i 8008. • Tha˘ng 4 naÍm 1976, Intel ca˚i tieãn vi xˆ˚ ly˘ 8080 tha¯nh vi xˆ˚ ly˘ 8085 co˘ the‚m maễch taễo xung clock ềˆÙễc tèch hÙễp be‚n trong, co˘ nhie‡u ngaẩt tre‚n chip phuễc vuễ cho nhie‡u ˆ˘ng duễng va¯ tèch hÙễp maễch ềie‡u khieÂn he‰ thoãng tre‚n chip. • Tha˘ng 6 naÍm 1978, Intel sa˚n xuaãt vi xˆ˚ ly˘ 16 bit co˘ maı soã la¯ 8086: co˘ 20 ềˆÙ¯ng ềÚa chấ cho phe˘p truy xuaãt 1MB bo‰ nhÙ˘ va¯ bus dˆı lie‰u be‚n trong va¯ be‚n ngoa¯i ềe‡u la¯ 16bit. • Tha˘ng 6 naÍm 1979, Intel sa˚n xuaãt vi xˆ˚ ly˘ 16 bit co˘ maı soã la¯ 8088 chu˚ yeãu dˆễa va¯o vi xˆ˚ ly˘ 8086 nhˆng kha˘c vÙ˘i vi xˆ˚ ly˘ 8086 la¯ bus dˆı lie‰u be‚n ngoa¯i chấ co˘ 8 bit 2 Vi xˆ˚ ly˘
  9. ChˆÙng 1. GiÙ˘i thie‰u llÚchÚchÚch sˆ˚sˆ˚ pha˘tpha˘t trieÂntrieÂn cu˚acu˚a vivi xˆ˚xˆ˚ ly˘.ly˘. SPKT nhˆng bus dˆı lie‰u be‚n trong vi xˆ˚ ly˘ la¯ 16 bit, muễc ềèch ca˚i tieãn na¯y nhaậm haễ gia˘ tha¯nh he‰ thoãng va¯ trÙ˚ tha¯nh vi xˆ˚ ly˘ trong ma˘y tènh IBM-PC/XT. • Va¯o cuoãi naÍm 1981 va¯ 1982, Intel cho ra ềÙ¯i vi xˆ˚ ly˘ 80186 va¯ phie‚n ba˚n mÙ˚ ro‰ng cu˚a vi xˆ˚ ly˘ 8086 co˘ ho trÙễ qua˚n ly˘ bo‰ nhÙ˘ theo pha‚n ềoaễn va¯ ba˚o ve‰ bo‰ nhÙ˘, bus ềÚa chấ co˘ 24 ềˆÙ¯ng cho phe˘p truy xuaãt 16Mbyte bo‰ nhÙ˘. • Tha˘ng 2 naÍm 1982, Intel cho ra ềÙ¯i vi xˆ˚ ly˘ 80286 cuıng la¯ vi xˆ˚ ly˘ 16 bit va¯ chu˚ yeãu cuıng pha˘t trieÂn tˆ¯ vi xˆ˚ ly˘ 8086 co˘ the‚m nhie‡u chˆ˘c naÍng nhˆ maễch ềÚnh thÙ¯i ềˆÙễc tèch hÙễp, maễch ềie‡u khieÂn DMA, maễch ềie‡u khieÂn ngaẩt va¯ maễch choễn chip bo‰ nhÙ˘ ềˆÙễc thieãt keã rie‚ng cho ca˘c ˆ˘ng duễng nhu˘ng vÙ˘i gia˘ chip thaãp. • Tha˘ng 10 naÍm 1985, Intel cho ra ềÙ¯i vi xˆ˚ ly˘ 80386 chènh la¯ vi xˆ˚ ly˘ 32bit, co˘ qua˚n ly˘ bo‰ nhÙ˘ theo trang va¯ pha‚n ềoaễn bo‰ nhÙ˘, bus dˆı lie‰u be‚n trong va¯ be‚n ngoa¯i ềe‡u la¯ 32 bit, ta‰p thanh ghi ềˆÙễc mÙ˚ ro‰ng. • Tha˘ng 4 naÍm 1989, Intel cho ra ềÙ¯i vi xˆ˚ ly˘ 80486, co˘ ca˚i thie‰n kieãn tru˘c ềe taÍng hie‰u suaãt, cung caãp bo‰ nhÙ˘ cache tre‚n board, ềÙn vÚ daãu chaãm ềo‰ng tre‚n board. Co˘ the‚m 6 le‰nh so vÙ˘i vi xˆ˚ ly˘ 80386. Le‰nh ềÚnh thÙ¯i ềˆÙễc ca˚i tieãn ềe taÍng hie‰u suaãt. • Tha˘ng 3 naÍm 1993, Intel cho ra ềÙ¯i vi xˆ˚ ly˘ Pentium la¯ vi xˆ˚ ly˘ 64 bit co˘ ềÙn vÚ daãu chaãm ềo‰ng hie‰u suaãt cao. Le‰nh ềÚnh thÙ¯i ềˆÙễc ca˚i tieãn so vÙ˘i 80486. • Tha˘ng 3 naÍm 1995, Intel cho ra ềÙ¯i vi xˆ˚ ly˘ Pentium Pro co˘ 2 caãp cache co˘ saán. • Tha˘ng 3 naÍm 1997, Intel cho ra ềÙ¯i vi xˆ˚ ly˘ Pentium II - Pentium Pro + MMX. • NaÍm 1999, Intel cho ra ềÙ¯i vi xˆ˚ ly˘ Pentium III ủ IA64, mÙ˚ ro‰ng taễo luo‡ng SIMD • NaÍm 2000, Intel cho ra ềÙ¯i vi xˆ˚ ly˘ Pentium IV. 2. Chˆ˘c naÍng cu˚a vi xˆ˚ ly˘ Vi xˆ˚ ly˘ du¯ng ca˘c coÂng logic gioãng nhˆ ca˘c coÂng logic ềˆÙễc sˆ˚ duễng trong ềÙn vÚ xˆ˚ ly˘ trung ta‚m (central processing unit) cu˚a ma˘y tènh soã. Do caãu tru˘c gioãng nhˆ CPU va¯ ềˆÙễc xa‚y dˆễng tˆ¯ ca˘c maễch vi ềie‰n tˆ˚ ne‚n co˘ te‚n la¯ vi xˆ˚ ly˘: microprocessor. Gioãng nhˆ CPU, microprocessor co˘ ca˘c maễch ềie‰n tˆ˚ cho vie‰c ềie‡u khieÂn dˆı lie‰u (data) va¯ tènh toa˘n dˆı lie‰u dˆÙ˘i sˆễ ềie‡u khieÂn cu˚a chˆÙng trẽnh. Ngoa¯i ra microprocessor la¯ mo‰t ềÙn vÚ xˆ˚ ly˘ dˆı lie‰u. Co‚ng vie‰c xˆ˚ ly˘ dˆı lie‰u la¯ chˆ˘c naÍng chènh cu˚a vi xˆ˚ ly ˘. Vie‰c xˆ˚ ly˘ dˆı lie‰u bao go‡m tènh toa˘n va¯ ềie‡u khieÂn dˆı lie‰u. Vie‰c tènh toa˘n ềˆÙễc thˆễc hie‰n bÙ˚i ca˘c maễch ềie‰n logic ềˆÙễc goễi la¯ ềÙn vÚ xˆ˚ logic soã hoễc (arithmetic logic unit: ALU ) co˘ the thˆễc hie‰n ca˘c phe˘p toa˘n nhˆ Add, Subtract, And, Or, Compare, Increment, Decrement. ALU kho‚ng the thˆễc hie‰n mo‰t phe˘p toa˘n ma¯ kho‚ng co˘ dˆı lie‰u, vè duễ ALU co‰ng 2 dˆı lie‰u vÙ˘i nhau thẽ 2 dˆı lie‰u pha˚i ềaẻt ều˘ng vÚ trè trˆÙ˘c khi co‰ng. ALU kho‚ng the thˆễc hie‰n vie‰c chuyeÂn dˆı lie‰u tˆ¯ nÙi na¯y ềeãn nÙi kha˘c. —e ALU co˘ dˆı lie‰u cho vie‰c xˆ˚ ly˘ thẽ ngoa¯i maễch ềie‰n ALU, vi xˆ˚ ly˘ co¯n co˘ ca˘c maễch ềie‰n logic kha˘c ềe ềie‡u khieÂn dˆı lie‰u. Ca˘c maễch ềie‰n logic ềie‡u khieÂn dˆı lie‰u seı di chuyeÂn dˆı lie‰u va¯o ều˘ng vÚ trè ềe khoãi ALU xˆ˚ ly˘ dˆı lie‰u. Sau khi thˆễc hie‰n xong, khoãi ềie‡u khieÂn seı di chuyeÂn dˆı lie‰u ềeãn baãt cˆ˘ nÙi na¯o mong muoãn. —e xˆ˚ ly˘ dˆı lie‰u, vi xˆ˚ ly˘ pha˚i ềie‡u khieÂn ca˘c maễch logic, ềe vi xˆ˚ ly˘ ềie‡u khieÂn ca˘c maễch logic thẽ ca‡n pha˚i co˘ chˆÙng trẽnh. ChˆÙng trẽnh la¯ ta‰p hÙễp ca˘c le‰nh ềe xˆ˚ ly˘ dˆı lie‰u thˆễc hie‰n tˆ¯ng le‰nh ềaı ềˆÙễc lˆu trˆı trong bo‰ nhÙ˘, co‚ng vie‰c thˆễc hie‰n le‰nh bao go‡m ca˘c bˆÙ˘c nhˆ Vi xˆ˚ ly˘ 3
  10. ChˆÙng 1. GiÙ˘i thie‰u lÚch sˆ˚ pha˘t trieÂn cu˚a vii xˆ˚xˆ˚ ly˘.ly˘. SPKT sau: ềo˘n le‰nh tˆ¯ bo‰ nhÙ˘, sau ềo˘ ca˘c maễch logic ềie‡u khieÂn seı gia˚i maı le‰nh va¯ sau cu¯ng thẽ ca˘c maễch logic ềie‡u khieÂn seı thˆễc hie‰n le‰nh sau khi maı gia˚i maı. Do ca˘c le‰nh lˆu trˆı trong bo‰ nhÙ˘ ne‚n co˘ the thay ềoÂi ca˘c le‰nh neãu ca‡n. Khi thay ềoÂi ca˘c le‰nh cu˚a vi xˆ˚ ly˘ tˆ˘c la¯ thay ềoÂi ca˘ch thˆ˘c xˆ˚ ly˘ dˆı lie‰u. Ca˘c le‰nh lˆu trˆı trong bo‰ nhÙ˘ seı quyeãt ềÚnh co‚ng vie‰c ma¯ vi xˆ˚ ly˘ seı la¯m. To˘m taẩt: Chˆ˘c naÍng chènh cu˚a vi xˆ˚ ly˘ la¯ xˆ˚ ly˘ dˆı lie‰u. —e la¯m ềˆÙễc ềie‡u na¯y vi xˆ˚ ly˘ pha˚i co˘ ca˘c maễch logic cho vie‰c xˆ˚ ly˘ va¯ ềie‡u khieÂn dˆı lie‰u va¯ ca˘c maễch logic ềie‡u khieÂn. Ca˘c maễch logic xˆ˚ ly˘ seı di chuyeÂn dˆı lie‰u tˆ¯ nÙi na¯y sang nÙi kha˘c va¯ thˆễc hie‰n ca˘c phe˘p toa˘n tre‚n dˆı lie‰u, maễch logic ềie‡u khieÂn seı quyeãt ềÚnh maễch ềie‰n na¯o cho vie‰c xˆ˚ ly˘ dˆı lie‰u. vi xˆ˚ ly˘ thˆễc hie‰n mo‰t le‰nh vÙ˘i trẽnh tˆễ nhˆ sau: ềo˘n le‰nh tˆ¯ bo‰ nhÙ˘, tieãp theo maễch logic ềie‡u khieÂn seı gia˚i maı le‰nh ềe xem le‰nh ềo˘ ye‚u ca‡u vi xˆ˚ ly˘ thˆễc hie‰n co‚ng vie‰c gẽ, sau ềo˘ vi xˆ˚ ly˘ seı thˆễc hie‰n ều˘ng co‚ng vie‰c cu˚a le‰nh ềaı ye‚u ca‡u, qua˘ trẽnh na¯y ềˆÙễc goễi la¯ chu ky¯ ềo˘n - va¯ - thˆễc hie‰n le‰nh (fetch / execute cycle). Ngoa¯i chˆ˘c naÍng ềo˘n va¯ thˆễc hie‰n le‰nh, ca˘c maễch logic ềie‡u khieÂn co¯n ềie‡u khieÂn ca˘c maễch ềie‰n giao tieãp be‚n ngoa¯i keãt noãi vÙ˘i vi xˆ˚ ly˘. Vi xˆ˚ ly˘ ca‡n pha˚i co˘ sˆễ trÙễ giu˘p cu˚a ca˘c maễch ềie‰n be‚n ngoa¯i. Ca˘c maễch ềie‰n du¯ng ềe lˆu trˆı le‰nh ềe vi xˆ˚ ly˘ xˆ˚ ly˘ ềˆÙễc goễi la¯ bo‰ nhÙ ˘, ca˘c maễch ềie‰n giao tieãp ềe di chuyeÂn dˆı lie‰u tˆ¯ be‚n ngoa¯i va¯o be‚n trong vi xˆ˚ ly˘ va¯ xuaãt dˆı lie‰u tˆ¯ be‚n trong vi xˆ˚ ly˘ ra ngoa¯i ềˆÙễc goễi la¯ ca˘c thieãt bÚ I/O hay ca˘c thieãt bÚ ngoaễi vi . 3. 4a˘y vi tènh (Microcomputer) : Vi xˆ˚ ly˘ la¯ mo‰t IC chuye‚n ve‡ xˆ˚ ly˘ dˆı lie‰u va¯ ềie‡u khieÂn co¯n ma˘y vi tènh la¯ mo‰t he‰ thoãng ma˘y tènh hoa¯n chấnh ềˆÙễc xa‚y dˆễng tˆ¯ mo‰t vi xˆ˚ ly˘. Ma˘y vi tènh hoa¯n chấnh bao go‡m mo‰t vi xˆ˚ ly˘, bo‰ nhÙ˘ va¯ ca˘c coÂng I/O. SÙ ềo‡ khoãi cu˚a mo‰t he‰ thoãng ma˘y vi tènh nhˆ hẽnh 1-1: Video Disk keyboard CPU Disk CPU and IO Video controller P U Disk A clock Graphic R T Microcomputer bus Power supply Hẽnh 1-1. Caãu tru˘c cu˚a mo‰t ma˘y vi tènh. Ma˘y vi tènh to chˆ˘c theo card bao go‡m: CPU card, card bo‰ nhÙ˘ RAM, card ềie‡u khieÂn ềÛa, card ềie‡u khieÂn ma¯n hẽnh, ngoa¯i ra ma˘y vi tènh co¯n co˘ ma¯n hẽnh video, ba¯n phèm Taãt ca˚ ca˘c card trong ma˘y vi tènh ềˆÙễc keãt noãi vÙ˘i vi xˆ˚ ly˘ tho‚ng qua bus, bus bao go‡m nhie‡u ềˆÙ¯ng tèn hie‰u ềe pha‚n bie‰t va¯ xˆ˚ ly˘ ca˘c card kha˘c nhau. 3 Vi xˆ˚ ly˘
  11. ChˆÙng 1. GiÙ˘i thie‰u llÚchÚchÚch sˆ˚sˆ˚ pha˘tpha˘t trieÂntrieÂn cu˚acu˚a vivi xˆ˚xˆ˚ ly˘.ly˘. SPKT Trong card CPU co˘ maễch taễo xung Clock du¯ng ềe taễo ra tèn hie‰u clock cho vi xˆ˚ ly˘. Card CPU co¯n co˘ ca˘c IC giao tieãp ềe na‚ng cao kha˚ naÍng giao tieãp cu˚a CPU. Bo‰ nhÙ˘ ROM du¯ng ềe lˆu trˆı ca˘c le‰nh cu˚a chˆÙng trẽnh ềe cho phe˘p naễp ca˘c chˆÙng trẽnh tˆ¯ ềÛa me‡m , card bo‰ nhÙ˘ RAM bao go‡m ca˘c IC RAM ềe vi xˆ˚ ly˘ lˆu trˆı chˆÙng trẽnh va¯ dˆı lie‰u khi xˆ˚ ly˘. Trong card bo‰ nhÙ˘ co˘ pha‡n xuaãt nha‰p data noãi tieãp UART ( Universal asynchronous receiver - transmitter ), hai khoãi na¯y co˘ the ta˘ch rÙ¯i. UART du¯ng ềe chuyeÂn ềoÂi dˆı lie‰u song song tha¯nh noãi tieãp ềe ma˘y vi tènh co˘ the giao tieãp vÙ˘i ma˘y in, ca˘c modem, va¯ ca˘c thieãt bÚ ềie‡u khieÂn kha˘c. —e giao tieãp vÙ˘i ma¯n hẽnh video ca‡n pha˚i co˘ card video, be‚n caễch ca˘c IC giao tieãp vÙ˘i bus cu˚a vi xˆ˚ ly˘ co¯n co˘ ca˘c IC ềie‡u khieÂn ma¯n hẽnh Video. Ma¯n hẽnh Video du¯ng ềe hieÂn thÚ no‰i dung cu˚a mo‰t vu¯ng nhÙ˘ ềaẻc bie‰t trong bo‰ nhÙ˘ RAM do ềo˘ Card video co˘ ca˘c IC RAM. Khoãi nguo‡n cung caãp ềie‰n cho taãt ca˚ ca˘c he‰ thoãng. II. CAŸC KHAŸI NIEƒM C‘ BAÔN VE¿ CAĂU TRUŸC CUÔA VI XữÔ LYŸ: 1. Chie‡u da¯i tˆ¯ dˆı lie‰u: Vi xˆ˚ ly˘ ềa‡u tie‚n co˘ chie‡u da¯i tˆ¯ dˆı lie‰u la¯ 4 bit, tieãp theo la¯ ca˘c vi xˆ˚ ly˘ 8 bit, 16 bit, 32 bit va¯ 64 bit. Mo„i vi xˆ˚ ly˘ co˘ chie‡u da¯i tˆ¯ dˆı lie‰u kha˘c nhau seı co˘ mo‰t kha˚ naÍng ˆ˘ng duễng kha˘c nhau, ca˘c vi xˆ˚ ly˘ co˘ chie‡u da¯i tˆ¯ dˆı lie‰u lÙ˘n, toãc ềo‰ la¯m vie‰c nhanh, kha˚ naÍng truy xuaãt bo‰ nhÙ˘ lÙ˘n ềˆÙễc du¯ng trong ca˘c co‚ng vie‰c xˆ˚ ly˘ dˆı lie‰u, ềie‡u khieÂn phˆ˘c taễp, ca˘c vi xˆ˚ ly˘ co˘ chie‡u da¯i tˆ¯ dˆı lie‰u nho˚ hÙn, kha˚ naÍng truy xuaãt bo‰ nhÙ˘ nho˚ hÙn, toãc ềo‰ la¯m vie‰c thaãp hÙn ềˆÙễc sˆ˚ duễng trong ca˘c co‚ng vie‰c ềie‡u khieÂn va¯ xˆ˚ ly˘ ềÙn gia˚n, chènh vẽ theã ca˘c vi xˆ˚ ly˘ na¯y va„n to‡n taễi. Ca˘c vi xˆ˚ ly˘ 16 bit, 32 bit ềˆÙễc sˆ˚ duễng raãt nhie‡u trong ma˘y tènh. Ma˘y vi tènh ềa‡u tie‚n cu˚a IBM sˆ˚ duễng vi xˆ˚ ly˘ 8088 va¯o naÍm 1981. Caãu tru˘c be‚n trong cu˚a vi xˆ˚ ly˘ 8088 co˘ the xˆ˚ ly˘ ca˘c tˆ¯ dˆı lie‰u 16 bit, nhˆng bus dˆı lie‰u giao tieãp be‚n ngoa¯i chấ co˘ 8 bit. Do caãu tru˘c be‚n trong 16 bit ne‚n ca˘c ma˘y tènh PC sˆ˚ duễng bo‰ vi xˆ˚ ly˘ 8088 co˘ the tˆÙng thèch vÙ˘i ca˘c ma˘y tènh mÙ˘i sˆ˚ duễng ca˘c vi xˆ˚ ly˘ 16 bit: 286, hoaẻc ca˘c vi xˆ˚ ly˘ 32 bit: 386, 486 va¯ bo‰ vi xˆ˚ ly˘ Pentium. Ha‡u heãt ca˘c ˆ˘ng duễng ềˆÙễc ềie‡u khieÂn bÙ˚i ma˘y tènh toãt hÙn nhie‡u so vÙ˘i vi xˆ˚ ly˘ va¯ tu¯y theo ye‚u ca‡u ềie‡u khieÂn ma¯ choễn ềie‡u khieÂn baậng ma˘y tènh hay ềie‡u khieÂn baậng vi xˆ˚ ly˘. Ca˘c lÛnh vˆễc ềie‡u khieÂn baậng vi xˆ˚ ly˘ nhˆ: co‚ng nghie‰p, khoa hoễc, y hoễc Mo‰t lÛnh vˆễc ềie‡u khieÂn phˆ˘c taễp la¯ robot khi ềo˘ ca˘c bo‰ vi xˆ˚ ly˘ 16 bit va¯ 32 bit la¯ thèch hÙễp. Tu¯y theo ye‚u ca‡u ềo‰ phˆ˘c taễp ma¯ choễn bo‰ vi xˆ˚ ly˘ thèch hÙễp. Vi xˆ˚ ly˘ 32 bit la¯ sˆễ pha˘t trieÂn cu˚a vi xˆ˚ ly˘ 16 bit va¯ ˆ˘ng duễng ềa‡u tie‚n cu˚a ca˘c vi xˆ˚ ly˘ 32 bit la¯ ca˘c ma˘y tènh 32 bit. Ca˘c vi xˆ˚ ly˘ 32 bit co˘ kha˚ naÍng la¯m vie‰c nhanh hÙn vẽ mo„i la‡n laãy dˆı lie‰u tˆ¯ bo‰ nhÙ˘ vi xˆ˚ ly˘ co˘ the laãy mo‰t la‡n 4 byte, trong khi ềo˘ ca˘c vi xˆ˚ ly˘ 8 bit thẽ pha˚i la¯m 4 la‡n, vÙ˘i vi xˆ˚ ly˘ 16 bit pha˚i thˆễc hie‰n 2 la‡n. Va‰y neãu so vÙ˘i vi xˆ˚ ly˘ 8 bit thẽ vi xˆ˚ ly˘ 32 bit co˘ toãc ềo‰ taÍng gaãp 4, vÙ˘i vi xˆ˚ ly˘ 16 bit thẽ toãc ềo‰ vi xˆ˚ ly˘ 32 bit taÍng gaãp ềo‚i. —e taÍng toãc ềo‰ la¯m vie‰c cu˚a vi xˆ˚ ly˘ la¯ muễc tie‚u ha¯ng ềa‡u cu˚a ca˘c nha¯ cheã taễo vi xˆ˚ ly˘. Kha˘i nie‰m Bus dˆı lie‰u : la¯ ềˆÙ¯ng truye‡n dˆı lie‰u 2 chie‡u ềe chuyeÂn dˆı lie‰u giˆıa vi xˆ˚ ly˘ va¯ ca˘c tha¯nh pha‡n kha˘c cu˚a he‰ thoãng nhˆ bo‰ nhÙ˘, IC ngoaễi vi. Vi xˆ˚ ly˘ 8 bit thẽ bus dˆı lie‰u seı la¯ 8 bit, vi xˆ˚ ly˘ 16 bit thẽ bus dˆı lie‰u giao tieãp cuıng la¯ 16 bit ngoaễi trˆ¯ vi xˆ˚ ly˘ 8088. 2. Kha˚ naÍng truy xuaãt bo‰ nhÙ˘: Vi xˆ˚ ly˘ 5
  12. ChˆÙng 1. GiÙ˘i thie‰u lÚch sˆ˚ pha˘t trieÂn cu˚a vii xˆ˚xˆ˚ ly˘.ly˘. SPKT Iung lˆÙễng bo‰ nhÙ˘ ma¯ vi xˆ˚ ly˘ co˘ the truy xuaãt la¯ mo‰t pha‡n trong caãu tru˘c cu˚a vi xˆ˚ ly˘. Ca˘c vi xˆ˚ ly˘ ềa‡u tie‚n bÚ giÙ˘i haễn ve‡ kha˚ naÍng truy xuaãt bo‰ nhÙ˘: vi xˆ˚ 4004 co˘ 14 ềˆÙ¯ng ềÚa chấ ne‚n co˘ the truy xuaãt ềˆÙễc 2 14 = 16384 o‚ nhÙ˘, vi xˆ˚ ly˘ 8 bit co˘ 16 ềˆÙ¯ng ềÚa chấ ne‚n co˘ the truy xuaãt ềˆÙễc 2 16 = 65536 o‚ nhÙ˘, vi xˆ˚ ly˘ 16 bit co˘ 20 ềˆÙ¯ng ềÚa chấ ne‚n co˘ the truy xuaãt 2 20 = 1024000 o‚ nhÙ˘, vi xˆ˚ ly˘ 32 bit nhˆ 386 hay 68020 co˘ the truy xuaãt 4 G o‚ nhÙ˘. Vi xˆ˚ ly˘ co˘ kha˚ naÍng truy xuaãt bo‰ nhÙ˘ ca¯ng lÙ˘n ne‚n co˘ the xˆ˚ ly˘ ca˘c chˆÙng trẽnh lÙ˘n. Tu¯y theo ˆ˘ng duễng cuễ the ma¯ choễn mo‰t vi xˆ˚ ly˘ thèch hÙễp. Kha˘i nie‰m Bus ềÚa chấ la¯ taãt ca˚ ca˘c ềˆÙ¯ng ềÚa chấ cu˚a vi xˆ˚ ly˘ du¯ng ềe xa˘c ềÚnh ềÚa chấ cu˚a mo‰t o‚ nhÙ˘ hay mo‰t thieãt bÚ ngoaễi vi trˆÙ˘c khi thˆễc hie‰n vie‰c truy xuaãt dˆı lie‰u. Kha˘i nie‰m Bus ềie‡u khieÂn la¯ taãt ca˚ ca˘c ềˆÙ¯ng ma¯ vi xˆ˚ ly˘ du¯ng ềe ềie‡u khieÂn ca˘c ềoãi tˆÙễng kha˘c trong he‰ thoãng nhˆ ềie‡u khieÂn ềoễc bo‰ nhÙ˘, ềie‡u khieÂn ghi bo‰ nhÙ˘, ềie‡u khieÂn ềoễc IO, ềie‡u khieÂn ghi IO. 3. Toãc ềo‰ la¯m vie‰c cu˚a vi xˆ˚ ly˘: Ta‡n soã xung clock cung caãp cho vi xˆ˚ ly˘ la¯m vie‰c quyeãt ềÚnh ềeãn toãc ềo‰ la¯m vie‰c cu˚a vi xˆ˚ ly˘, vi xˆ˚ ly˘ co˘ toãc ềo‰ la¯m vie‰c ca¯ng lÙ˘n thẽ kha˚ naÍng xˆ˚ ly˘ le‰nh ca¯ng nhanh. Ta‡n soã xung clock la¯m vie‰c cu˚a ca˘c vi xˆ˚ ly˘ ềˆÙễc cho bÙ˚i ca˘c nha¯ cheã taễo: Vi xˆ˚ ly˘ Ta‡n soã xung clock chie‡u da¯i tˆ¯ dˆı lie‰u 8051 12MHz 8-bit Z80A 4MHz 8-bit Z80B 6MHz 8-bit 286 16MHz 16-bit 486DX2-66 66Mhz 32-bit Pentium 66MHz 32-bit 4. Ca˘c thanh ghi cu˚a vi xˆ˚ ly˘: Ca˘c thanh ghi la¯ mo‰t pha‡n quan troễng trong caãu tru˘c cu˚a vi xˆ˚ ly˘. Ca˘c thanh ghi be‚n trong cu˚a vi xˆ˚ ly˘ du¯ng ềe xˆ˚ ly˘ dˆı lie‰u, co˘ nhie‡u loaễi thanh ghi kha˘c nhau cho ca˘c chˆ˘c naÍng kha˘c nhau trong vi xˆ˚ ly˘, soã lˆÙễng ca˘c thanh ghi ềo˘ng mo‰t vai tro¯ raãt quan troễng ềoãi vÙ˘i vi xˆ˚ ly˘ va¯ ngˆÙ¯i la‰p trẽnh. Ca˘c vi xˆ˚ ly˘ kha˘c nhau seı co˘ soã lˆÙễng va¯ chˆ˘c naÍng cu˚a ca˘c thanh cuıng kha˘c nhau. Neãu vi xˆ˚ ly˘ co˘ soã lˆÙễng thanh ghi nhie‡u thẽ ngˆÙ¯i la‰p trẽnh co˘ the vieãt ca˘c chˆÙng trẽnh ềie‡u khieÂn vi xˆ˚ ly˘ ềÙn gia˚n hÙn, la¯m taÍng toãc ềo‰ xˆ˚ ly˘ chˆÙng trẽnh. Neãu vi xˆ˚ ly˘ co˘ soã lˆÙễng thanh ghi èt thẽ chˆÙng trẽnh seı phˆ˘c taễp hÙn, toãc ềo‰ xˆ˚ ly˘ chˆÙng trẽnh cha‰m hÙn. —e hieÂu roı ca˘c thanh ghi be‚n trong cu˚a mo‰t vi xˆ˚ ly˘ ca‡n pha˚i kha˚o sa˘t mo‰t vi xˆ˚ ly˘ cuễ theÂ. Va‰y soã lˆÙễng ca˘c thanh ghi be‚n trong vi xˆ˚ ly˘ cuıng a˚nh hˆÙ˚ng ềeãn toãc ềo‰ va¯ kha˚ naÍng xˆ˚ ly˘ chˆÙng trẽnh. 5. Ca˘c le‰nh cu˚a vi xˆ˚ ly˘: Ta‰p le‰nh cu˚a vi xˆ˚ ly˘ la¯ mo‰t trong nhˆıng yeãu toã cÙ ba˚n ềe ềa˘nh gia˘ toãc ềo‰ la¯m vie‰c cu˚a vi xˆ˚ ly˘. Neãu vi xˆ˚ ly˘ co˘ nhie‡u maễch ềie‰n logic be‚n trong ềe thˆễc hie‰n thẽ soã le‰nh ềie‡u khieÂn cu˚a vi xˆ˚ ly˘ ca¯ng nhie‡u, khi ềo˘ vi xˆ˚ ly˘ ca¯ng lÙ˘n va¯ ềo‰ phˆ˘c taễp ca¯ng lÙ˘n. Vè duễ so sa˘nh 2 ta‰p le‰nh 6 Vi xˆ˚ ly˘
  13. ChˆÙng 1. GiÙ˘i thie‰u llÚchÚchÚch sˆ˚sˆ˚ pha˘tpha˘t trieÂntrieÂn cu˚acu˚a vivi xˆ˚xˆ˚ ly˘.ly˘. SPKT cu˚a 2 vi xˆ˚ ly˘ 8 bit la¯ 80C51 va¯ Z80 thẽ 80X51 co˘ 111 le‰nh kha˘c nhau co¯n Z80 co˘ 178 le‰nh. Ta‰p le‰nh cu˚a mo‰t vi xˆ˚ ly˘ ca¯ng nhie‡u raãt co˘ èch khi la‰p trẽnh hay vieãt chˆÙng trẽnh cho vi xˆ˚ ly˘. 6. Ca˘c kieÂu truy xuaãt bo‰ nhÙ˘: Mo‰t yeãu toã quyeãt ềÚnh sˆễ me‡m de˚o trong la‰p trẽnh la¯ soã lˆÙễng ca˘c kieÂu truy xuaãt bo‰ nhÙ˘ kha˘c nhau cu˚a vi xˆ˚ ly˘, vi xˆ˚ ly˘ co˘ nhie‡u kieÂu truy xuaãt bo‰ nhÙ˘ seı co˘ kha˚ naÍng xˆ˚ ly˘ ca¯ng nhanh va¯ caãu tru˘c ca˘c maễch ềie‰n be‚n trong ca¯ng phˆ˘c taễp. Ca˘c kieÂu truy xuaãt bo‰ nhÙ˘ cu˚a ca˘c vi xˆ˚ ly˘ 8 bit va¯ 16 bit: KieÂu truy xuaãt bo‰ nhÙ˘ ( Addressing Vi xˆ˚ ly˘ 6800 Vi xˆ˚ ly˘ Z80 Vi xˆ˚ ly˘ 8088 mode ) Implied - hieÂu nga‡m. x x x 8-bit x x x 16-direct x x x 8-bit immediate x x x 16-bit immediate x x x 8-bit relative x x x 8-bit index x x x 16-bit index x Bit x x 8-bit indirect x 16-bit indirect x x 16-bit computed x 8-bit I/O x x 16-bit I/O x Vi xˆ˚ ly˘ 16 bit va¯ 32 bit co˘ soã lˆÙễng ca˘c kieÂu truy xuaãt bo‰ nhÙ˘ raãt lÙ˘n, tuy¯ thuo‰c va¯o ye‚u ca‡u ềie‡u khieÂn ma¯ choễn vi xˆ˚ ly˘ thèch hÙễp. 7. Bo‰ nhÙ˘: OI nh5& Bit la¯ mo‰t ềÙn vÚ nhÙ˘ nho˚ nhaãt, o‚ nhÙ˘ bit la¯ o‚ nhÙ˘ chấ co˘ the lˆu ềˆÙễc dˆı lie‰u 1 bit la¯ soã nhÚ pha‚n chấ co˘ 1 trong 2 gia˘ trÚ ở0ớ hay ở1ớ. Oơ nhÙ˘ bit thˆÙ¯ng ềˆÙễc tèch hÙễp trong ca˘c vi xˆ˚ ly˘ ềie‡u khieÂn co‚ng nghie‰p. Oơ nhÙ˘ Byte la¯ mo‰t o‚ nhÙ˘ co˘ the chˆ˘a ềˆÙễc dˆı lie‰u soã nhÚ pha‚n 8 bit. Oơ nhÙ˘ Word la¯ mo‰t o‚ nhÙ˘ co˘ the chˆ˘a ềˆÙễc dˆı lie‰u soã nhÚ pha‚n 16 bit ủ thˆÙ¯ng la¯ sˆễ keãt hÙễp cu˚a 2 o‚ nhÙ˘ byte keãt noãi song song. Mo„i mo‰t o‚ nhÙ˘ co˘ 1 ềÚa chấ duy nhaãt, ềÚa chấ cu˚a bo‰ nhÙ˘ la¯ soã nhÚ pha‚n va¯ dˆı lie‰u lˆu trong o‚ nhÙ˘ cuıng la¯ soã nhÚ pha‚n. Ca˘c loaễi bo‰ nhÙ˘: Bo‰ nhÙ˘ RAM (Random Access Memory) la¯ loaễi bo‰ nhÙ˘ cho phe˘p ềoễc ghi dˆı lie‰u Ù˚ baãt ky¯ o‚ nhÙ˘ na¯o trong bo‰ nhÙ˘. —ie‡u na¯y kha˘c vÙ˘i bo‰ nhÙ˘ bo‰ nhÙ˘ baÍng tˆ¯ la¯ kho‚ng the ềoễc ghi tuy¯ y˘. Bo‰ nhÙ˘ ba˘n da„n ềˆÙễc la¯m tˆ¯ ca˘c flip flop, khi ta lˆu dˆı lie‰u va¯o flip flop thẽ dˆı lie‰u se ềˆÙễc lˆu laễi va¯ dˆı lie‰u thay ềoÂi khi ta thay ềoÂi dˆı lie‰u va¯ dˆı lie‰u seı maãt ềi khi maãt ềie‰n. Loaễi RAM na¯y ềˆÙễc goễi la¯ SRAM. Bo‰ nhÙ˘ DRAM (Dynamic RAM = RAM ềo‰ng) sˆ˚ duễng tuễ ềie‰n gate ủ source (coÂng nguo‡n) cu˚a MOSFET ềe lˆu trˆı tho‚ng tin nhˆ ềie‰n tèch tre‚n tuễ. Do co˘ ro¯ rÛ ềie‰n tèch trong tuễ Vi xˆ˚ ly˘ 7
  14. ChˆÙng 1. GiÙ˘i thie‰u lÚch sˆ˚ pha˘t trieÂn cu˚a vii xˆ˚xˆ˚ ly˘.ly˘. SPKT ie‰n ne‚n khi sˆ˚ duễng DRAM thẽ pha˚i ca‡n la¯m tˆÙi sau mo„i mo‰t thÙ¯i gian va¯i ms (thˆÙ¯ng khoa˚ng 2 ềeãn 10ms). Qua˘ trẽnh la¯m tˆÙi bo‰ nhÙ˘ thˆÙ¯ng ềˆÙễc thˆễc hie‰n baậng IC ềie‡u khieÂn bo‰ nhÙ˘ ềo‰ng hoaẻc cheã taễo saán nhˆıng ềˆÙ¯ng ềie‡u khieÂn la¯m tˆÙi bo‰ nhÙ˘ trong CPU. Ca˚ 2 loaễi bo‰ nhÙ˘ SRAM va¯ DRAM ềe‡u la¯ bo‰ nhÙ˘ bay hÙi (maãt ềie‰n thẽ maãt dˆı lie‰u). ROM (Read Only Memory) la¯ loaễi bo‰ nhÙ˘ chấ ềoễc no‰i dung bo‰ nhÙ˘ ềaı ềˆÙễc ghi trˆÙ˘c, qua˘ trẽnh ghi dˆı lie‰u ềˆÙễc keãt hÙễp vÙ˘i qua˘ trẽnh sa˚n xuaãt. Dˆı lie‰u do ngˆÙ¯i du¯ng cung caãp cho nha¯ sa˚n xuaãt. Dˆı lie‰u trong bo‰ nhÙ˘ kho‚ng bÚ maãt khi maãt ềie‰n. ROM thˆÙ¯ng ềˆÙễc du¯ng ềe lˆu ca˘c dˆı lie‰u coã ềÚnh ủ kho‚ng thay ềoÂi. Bo‰ nhÙ˘ na¯y kho‚ng cho phe˘p xoa˘ va¯ ghi laễi dˆı lie‰u mÙ˘i. PROM (Programmable ROM) gioãng nhˆ bo‰ nhÙ˘ ROM nhˆng vie‰c ghi dˆı lie‰u va¯o bo‰ nhÙ˘ ềo‰c la‰p vÙ˘i qua˘ trẽnh sa˚n xuaãt, nha¯ sa˚n xuaãt ra ca˘c PROM chˆa co˘ dˆı lie‰u va¯ ngˆÙ¯i du¯ng co˘ the thˆễc hie‰n vie‰c ghi dˆı lie‰u tuy¯ y˘ va¯o bo‰ nhÙ˘ va¯ chấ ềˆÙễc phe˘p ghi 1 la‡n. Dˆı lie‰u be‚n trong maẻc nhie‚n la¯ dˆı lie‰u 1 va¯ ngˆÙ¯i la‰p trẽnh thay ềoÂi traễng tha˘i tˆ¯ 1 ve‡ 0 baậng ca˘ch ềoãt ca‡u chẽ be‚n trong PROM. EPROM (Erasable PROM) gioãng nhˆ bo‰ nhÙ˘ PROM nhˆng cho phe˘p xoa˘ va¯ ghi laễi dˆı lie‰u nhie‡u la‡n, khi xoa˘ pha˚i du¯ng tia cˆễc tèm chieãu va¯o cˆ˚a so the kho‚i phuễc laễi traễng tha˘i dˆı lie‰u 1. Sau khi ghi xong dˆı lie‰u thẽ pha˚i che cˆ˚a so laễi ềe tra˘nh tia cˆễc tèm la¯m maãt dˆı lie‰u. EEPROM (Electrically EPROM) gioãng nhˆ bo‰ nhÙ˘ EPROM nhˆng cho phe˘p xoa˘ baậng xung ềie‰n thay vẽ xoa˘ baậng tia cˆễc tèm va¯ cho phe˘p ghi laễi dˆı lie‰u. Qua˘ trẽnh naễp xoa˘ co˘ the thˆễc hie‰n ềˆÙễc tˆ¯ 1000 ềeãn 100000 la‡n. Dung lˆÙễng bo‰ nhÙ˘: Mo‰t bo‰ nhÙ˘ co˘ N ềˆÙ¯ng ềÚa chấ va¯ m ềˆÙ¯ng dˆı lie‰u thẽ seı co˘ dung lˆÙễng la¯ 2 N ◊ m. Dung lˆÙễng bo‰ nhÙ˘ ềˆÙễc tènh theo kilobyte (KB), megabyte (MB) va¯ gigabyte (GB) vÙ˘i m = 8. Caãu tru˘c bo‰ nhÙ˘: Ma˚ng bo‰ nhÙ˘ ( memory array ): pha‡n chènh cu˚a bo‰ nhÙ˘ la¯ ma˚ng bo‰ nhÙ˘, mo„i ha¯ng cu˚a ca˘c teã ba¯o nhÙ˘ ( memory cell ) ềˆÙễc ềie‡u khieÂn bÙ˚i ềˆÙ¯ng tˆ¯ (word line ). Khi mo‰t ha¯ng cuễ the ềˆÙễc kèch hoaễt qua ềˆÙ¯ng tˆ¯, ca˘c gia˘ trÚ dˆı lie‰u cu˚a nhˆıng ha¯ng teã ba¯o cu˚a ha¯ng ềo˘ co˘ the ềˆÙễc ềoễc hay ghi va¯o qua ca˘c ềˆÙ¯ng bit ( bit line ). Vè duễ: sÙ ềo‡ cu˚a bo‰ nhÙ˘ 16 bit ềˆÙễc to chˆ˘c theo ma˚ng 4◊4 nhˆ hẽnh 1-2 Hẽnh 1-2. To chˆ˘c ma˚ng bo‰ nhÙ˘ 4◊4. Ca˘c kieÂu bo‰ nhÙ˘ kha˘c nhau ềˆÙễc pha‚n bie‰t chu˚ yeãu dˆễa va¯o ca˘ch thˆ˘c lˆu trˆı teã ba¯o nhÙ˘. I Vi xˆ˚ ly˘
  15. ChˆÙng 1. GiÙ˘i thie‰u llÚchÚchÚch sˆ˚sˆ˚ pha˘tpha˘t trieÂntrieÂn cu˚acu˚a vivi xˆ˚xˆ˚ ly˘.ly˘. SPKT Maễch ho trÙễ: Ngoa¯i ma˚ng bo‰ nhÙ˘ co¯n co˘ maễch ho trÙễ ềe giao tieãp vÙ˘i ca˘c thieãt bÚ be‚n ngoa¯i. SÙ ềo‡ khoãi cu˚a mo‰t bo‰ nhÙ˘ nhˆ hẽnh 1-3: Hẽnh 1-3. Maễch ho trÙễ cho bo‰ nhÙ˘. Maễch ho trÙễ co˘ chˆ˘c naÍng: - Gia˚i maı ềÚa chấ ềe xa˘c ềÚnh o‚ nhÙ˘ ca‡n truy xuaãt. - Cung caãp ca˘c tèn hie‰u ềie‡u khieÂn ềe ềoễc va¯ ghi ma˚ng bo‰ nhÙ˘. Ca˘c tèn hie‰u ềie‡u khieÂn: Tèn hie‰u CS (chip select): la¯ tèn hie‰u choễn chip: neãu CS =1 thẽ bo‰ nhÙ˘ kho‚ng ềˆÙễc choễn va¯ ca˘c ềˆÙ¯ng dˆı lie‰u seı Ù˚ traễng tha˘i toÂng trÙ˚ cao, neãu CS = 0 thẽ bo‰ nhÙ˘ ềˆÙễc phe˘p truy xuaãt ghi hay ềoễc. Tèn hie‰u OE (Output Enable): cho phe˘p xuaãt dˆı lie‰u tˆ¯ bo‰ nhÙ˘ ềˆa ra ngoa¯i cho ca˘c thieãt bÚ kha˘c vè duễ nhˆ vi xˆ˚ ly˘ ềie‡u khieÂn cha‚n OE ềe ye‚u ca‡u bo‰ nhÙ˘ xuaãt dˆı lie‰u. Tèn hie‰u WR (Write Enable): cho phe˘p ghi dˆı lie‰u tˆ¯ be‚n ngoa¯i va¯ bo‰ nhÙ˘ vè duễ nhˆ vi xˆ˚ ly˘ ềie‡u khieÂn cha‚n WR ềe ye‚u ca‡u bo‰ nhÙ˘ nha‰n dˆı lie‰u tˆ¯ bus dˆı lie‰u ềe caãt va¯o o‚ nhÙ˘. Gia˚n ềo‡ thÙ¯i gian ềoễc va¯ ghi dˆı lie‰u cu˚a bo‰ nhÙ˘ nhˆ hẽnh 1-4: Vi xˆ˚ ly˘ 9
  16. ChˆÙng 1. GiÙ˘i thie‰u lÚch sˆ˚ pha˘t trieÂn cu˚a vii xˆ˚xˆ˚ ly˘.ly˘. SPKT Hẽnh 1-4. Gia˚n ềo‡ thÙ¯i gian ềoễc ghi bo‰ nhÙ˘. 8. Ca˘c maễch ềie‰n giao tieãp ngoaễi vi cu˚a vi xˆ˚ ly˘: Ngoa¯i giao tieãp vÙ˘i bo‰ nhÙ˘, vi xˆ˚ ly˘ co˘ ca˘c maễch ềie‰n giao tieãp vÙ˘i ca˘c maễch ềie‰n be‚n ngoa¯i ềe ềie‡u khieÂn hay mÙ˚ ro‰ng kha˚ naÍng ềie‡u khieÂn. Ca˘c maễch ềie‰n be‚n ngoa¯i la¯ ca˘c IC va¯ ềˆÙễc goễi la¯ IC ngoaễi vi. Mo„i IC ngoaễi vi co˘ mo‰t chˆ˘c naÍng rie‚ng, tu¯y thuo‰c va¯o ye‚u ca‡u ềie‡u khieÂn ma¯ choễn ca˘c IC ngoaễi vi. Ba˚ng danh sa˘ch sau ềa‚y trẽnh ba¯y ca˘c IC ngoaễi vi co˘ the giao tieãp vÙ˘i Z80: Maı soã IC Chˆ˘c naÍng daễng voı 8410 Direct memory access controller 40 pin -DIP 8420 Parallel input/output controller 40 pin -DIP 8430 Counter timer circuit 28 pin -DIP 8440 Serial input/output controller 40 pin -DIP 8470 Dual channel asynchronous receiver transmitter 40 pin -DIP 8530 Serial communications controller 40 pin -DIP 10 Vi xˆ˚ ly˘
  17. ChˆÙng 1. GiÙ˘i thie‰u llÚchÚchÚch sˆ˚sˆ˚ pha˘tpha˘t trieÂntrieÂn cu˚acu˚a vivi xˆ˚xˆ˚ ly˘.ly˘. SPKT Da˚ng danh sa˘ch sau ềa‚y trẽnh ba¯y ca˘c IC ngoaễi vi co˘ the giao tieãp vÙ˘i 8088/80286: Maı soã IC Chˆ˘c naÍng daễng voı 8087/80287 Arithmetic coprocessor 40 pin -DIP 8116 Dual baud rate clock generator (programmable) 18 pin -DIP 8202 Dynamic RAM controller 40 pin -DIP 8224 Clock generator/driver 16 pin -DIP 8250 Asynchronous communications element 40 pin -DIP 8253 Programmable interval timer 24 pin -DIP 8272 Floppy disk controller 40 pin -DIP Vi xˆ˚ ly˘ 11
  18. ChˆÙng 1. GiÙ˘i thie‰u lÚch sˆ˚ pha˘t trieÂn cu˚a vii xˆ˚xˆ˚ ly˘.ly˘. SPKT 12 Vi xˆ˚ ly˘
  19. ChˆÙng 2 I. S‘ —O¿ KHOĂI CPU 8 BIT C‘ BAÔN 1.1.1. SÙ ềo‡ khoãi cu˚a vi xˆ˚ ly˘. 2.2.2. Khoãi ALU. II. TO≈ CHữŸC CAŸC THANH GHI 1.1.1. Ca˘c thanh ghi be‚n trong vi xˆ˚ ly˘. 2.2.2. Chˆ˘c naÍng ca˘c thanh ghi. III. LEƒNH CUÔA VI XữÔ LYŸ 1.1.1. Ta‰p le‰nh cu˚a vi xˆ˚ ly˘. 2.2.2. Tˆ¯ gÙễi nhÙ˘. 3.3.3. CCaa˘˘ccCa˘c nho˘m le‰nh cÙ ba˚n 4.4.4. ca˘c kieÂu truy xuaãt ềÚa chấ cu˚a vi xˆ˚ ly˘ IV. VI XữÔ LYŸ Z80 1.1.1. SÙ ềo‡ caãu tru˘c be‚n trong cu˚a vi xˆ˚ ly˘ Z80. 2.2.2. To chˆ˘c thanh ghi be‚n trong vi xˆ˚ ly˘ Z80. 3.3.3. Chˆ˘c naÍng ca˘c cha‚n cu˚a vi xˆ˚ ly˘ Z80. 4.4.4. Gia˚n ềo‡ thÙ¯i gian cu˚a vi xˆ˚ ly˘ Z80. 5.5.5. —a˘p ˆ˘ng ye‚u ca‡u ngaẩt cu˚a vi xˆ˚ ly˘ Z80. 6.6.6. Pha‡n cˆ˘ng va¯ pha‡n me‡m cu˚a vi xˆ˚ ly˘ Z80. V. VI XữÔ LYŸ 8085A 1.1.1. SÙ ềo‡ caãu tru˘c be‚n trong cu˚a vi xˆ˚ ly˘ 8085A. 2.2.2. To chˆ˘c thanh ghi be‚n trong cu˚a vi xˆ˚ ly˘ 8085A. 3.3.3. SÙ ềo‡ cha‚n cu˚a vi xˆ˚ ly˘ 8085A. 4.4.4. Gia˚n ềo‡ thÙ¯i gian cu˚a vi xˆ˚ ly˘ 8085A. 5.5.5. Gia˚i ềa hÙễp ềÚa chấ va¯ dˆı lie‰u cho vi xˆ˚ ly˘ 8085A 6.6.6. Ta‰p le‰nh cu˚a vi xˆ˚ ly˘ 8085A VI. TOŸM TA T ủ CAơU HOÔI OơN TAƒP ủ BAÿI TAƒP 1.1.1. To˘m taẩt. 2.2.2. Ca‚u ho˚i o‚n ta‰p ủủủ ba¯i ta‰p.
  20. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT I. S‘ —O¿ KHOĂI CPU 8 BIT C‘ BAÔN: 1.1.1. SÙ ềo‡ khoãi cu˚a vi xˆ˚ ly˘::: Caãu tru˘c cu˚a taãt ca˚ ca˘c vi xˆ˚ ly˘ ềe‡u co˘ ca˘c khoãi cÙ ba˚n gioãng nhau nhˆ ALU, ca˘c thanh ghi, khoãi ềie‡u khieÂn la¯ ca˘c maễch logic. —e naẩm roı nguye‚n ly˘ la¯m vie‰c cu˚a vi xˆ˚ ly˘ ca‡n pha˚i kha˚o sa˘t nguye‚n ly˘ keãt hÙễp ca˘c khoãi vÙ˘i nhau ềe xˆ˚ ly˘ mo‰t chˆÙng trẽnh. SÙ ềo‡ khoãi cu˚a vi xˆ˚ ly˘ seı trẽnh ba¯y caãu tru˘c cu˚a mo‰t vi xˆ˚ ly˘. Mo„i mo‰t vi xˆ˚ ly˘ kha˘c nhau seı co˘ caãu tru˘c kha˘c nhau. Vè duễ vi xˆ˚ ly˘ 8 bit seı co˘ caãu tru˘c kha˘c vÙ˘i vi xˆ˚ ly˘ 16 bit VÙ˘i mo„i vi xˆ˚ ly˘ ềe‡u co˘ mo‰t sÙ ềo‡ caãu tru˘c be‚n trong va¯ ềˆÙễc cho trong ca˘c so tay cu˚a nha¯ cheã taễo. SÙ ềo‡ caãu tru˘c Ù˚ daễng khoãi raãt tie‰n lÙễi va¯ de„ trẽnh ba¯y nguye‚n ly˘ hoaễt ềo‰ng cu˚a vi xˆ˚ ly˘. Hẽnh 2-1 trẽnh ba¯y sÙ ềo‡ khoãi cu˚a vi xˆ˚ ly˘ 8 bit: Hẽnh 2-1. SÙ ềo‡ caãu tru˘c be‚n trong cu˚a vi xˆ˚ ly˘. Trong sÙ ềo‡ khoãi cu˚a vi xˆ˚ ly˘ bao go‡m ca˘c khoãi chènh nhˆ sau: khoãi ALU, ca˘c thanh ghi va¯ khoãi control logic. Ngoa¯i ra sÙ ềo‡ khoãi co¯n trẽnh ba¯y ca˘c ềˆÙ¯ng truye‡n ta˚i tèn hie‰u tˆ¯ nÙi na¯y ềeãn nÙi kha˘c be‚n trong va¯ be‚n ngoa¯i he‰ thoãng. 22 2. KKKhoãiK hoãi ALU: ALU la¯ khoãi quan troễng nhaãt cu˚a vi xˆ˚ ly˘, khoãi ALU chˆ˘a ca˘c maễch ềie‰n logic chuye‚n ve‡ xˆ˚ ly˘ dˆı lie‰u. Khoãi ALU co˘ 2 ngoı va¯o co˘ te‚n la¯ ỡINợ chènh la¯ ca˘c ngoı va¯o dˆı lie‰u cho ALU xˆ˚ ly˘ va¯ 1 ngoı ra co˘ te‚n la¯ ỡOUTợ chènh la¯ ngoı ra keãt qua˚ dˆı lie‰u sau khi ALU xˆ˚ ly˘ xong. 141414 Vi xˆ˚ ly˘
  21. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT A& lie‰u trˆÙ˘c khi va¯o ALU ềˆÙễc chˆ˘a Ù˚ thanh ghi taễm thÙ¯i (Temporarily Register) co˘ te‚n la¯ TEMP 1 va¯ TEMP 2 . Bus dˆı lie‰u be‚n trong vi xˆ˚ ly˘ ềˆÙễc keãt noãi vÙ˘i 2 ngoı va¯o ỡINợ cu˚a ALU tho‚ng qua 2 thanh ghi taễm thÙ¯i. Vie‰c keãt noãi na¯y cho phe˘p ALU co˘ the laãy baãt ky¯ dˆı lie‰u na¯o tre‚n bus dˆı lie‰u be‚n trong vi xˆ˚ ly˘. ThˆÙ¯ng thẽ ALU luo‚n laãy dˆı lie‰u tˆ¯ mo‰t thanh ghi ềaẻc bie‰t co˘ te‚n la¯ accumulator (A). Ngoı ra OUT cu˚a ALU cho phe˘p ALU co˘ the gÙ˚i keãt dˆı lie‰u sau khi xˆ˚ ly˘ xong le‚n bus dˆı lie‰u be‚n trong vi xˆ˚ ly˘, do ềo˘ thieãt bÚ na¯o keãt noãi vÙ˘i bus be‚n trong ềe‡u co˘ the nha‰n dˆı lie‰u na¯y. ThˆÙ¯ng thẽ ALU gÙ˚i dˆı lie‰u sau khi xˆ˚ ly˘ xong tÙ˘i thanh ghi Accumulator. Vè duễ khi ALU co‰ng 2 dˆı lie‰u thẽ mo‰t trong 2 dˆı lie‰u ềˆÙễc chˆ˘a trong thanh ghi Accumulator, sau khi phe˘p co‰ng ềˆÙễc thˆễc hie‰n bÙ˚i ALU thẽ keãt qua˚ seı gÙ˚i trÙ˚ laễi thanh ghi Accumulator va¯ lˆu trˆı Ù˚ thanh ghi na¯y. ALU xˆ˚ ly˘ mo‰t dˆı lie‰u hay 2 dˆı lie‰u tu¯y thuo‰c va¯o le‰nh hay ye‚u ca‡u ềie‡u khieÂn, vè duễ khi co‰ng 2 dˆı lie‰u thẽ ALU seı xˆ˚ ly˘ 2 dˆı lie‰u va¯ du¯ng 2 ngoı va¯o ỡINợ ềe nha‰p dˆı lie‰u, khi taÍng mo‰t dˆı lie‰u na¯o ềo˘ le‚n 1 ềÙn vÚ hay laãy bu¯ mo‰t dˆı lie‰u, khi ềo˘ ALU chấ xˆ˚ ly˘ 1 dˆı lie‰u va¯ chấ ca‡n mo‰t ngoı va¯o ỡINợ. Khoãi ALU co˘ the thˆễc hie‰n ca˘c phe˘p toa˘n xˆ˚ ly˘ nhˆ sau: Add Complement OR Exclusive OR Subtract Shift right Increment AND Shift left Decrement To˘m Taẩt: Chˆ˘c naÍng chènh cu˚a khoãi ALU la¯ la¯m thay ềoÂi dˆı lie‰u hay chuye‚n ve‡ xˆ˚ ly˘ dˆı lie‰u nhˆng kho‚ng lˆu trˆı dˆı lie‰u. —e hieÂu roı the‚m chˆ˘c naÍng ềaẻc bie‰t cu˚a ALU ca‡n pha˚i kha˚o sa˘t mo‰t vi xˆ˚ ly˘ cuễ theÂ. II. TO≈ CHữŸC CAŸC THANH GHI: 1.1.1. Ca˘c thanh ghi be‚n trong cu˚a vi xˆ˚ ly˘: Ca˘c thanh ghi be‚n trong co˘ chˆ˘c naÍng lˆu trˆı taễm thÙ¯i ca˘c dˆı lie‰u khi xˆ˚ ly˘. Trong soã ca˘c thanh ghi co˘ mo‰t va¯i thanh ghi ềaẻc bie‰t khi thˆễc hie‰n ca˘c le‰nh ềaẻc bie‰t, ca˘c thanh ghi co¯n laễi goễi la¯ ca˘c thanh ghi tho‚ng duễng. VÙ˘i sÙ ềo‡ khoãi minh hoễa Ù˚ tre‚n, ca˘c thanh ghi tho‚ng duễng co˘ te‚n Reg B, Reg C, Reg D, Reg E. Ca˘c thanh ghi tho‚ng duễng raãt hˆıu duễng cho ngˆÙ¯i la‰p trẽnh du¯ng ềe lˆu trˆı dˆı lie‰u phuễc vuễ cho co‚ng vie‰c xˆ˚ ly˘ dˆı lie‰u va¯ ềie‡u khieÂn, khi vieãt chˆÙng trẽnh chu˘ng ta luo‚n sˆ˚ duễng ca˘c thanh ghi na¯y. Soã lˆÙễng ca˘c thanh ghi tho‚ng duễng thay ềoÂi tu¯y thuo‰c va¯o tˆ¯ng vi xˆ˚ ly˘. Soã lˆÙễng va¯ ca˘ch sˆ˚ duễng ca˘c thanh ghi tho‚ng duễng tu¯y thuo‰c va¯o caãu tru˘c cu˚a tˆ¯ng vi xˆ˚ ly˘, nhˆng chu˘ng co˘ mo‰t va¯i ềieÂm cÙ ba˚n gioãng nhau. Ca¯ng nhie‡u thanh ghi tho‚ng duễng thẽ vaãn ềe‡ la‰p trẽnh ềÙn gia˚n hÙn. Ca˘c thanh ghi cÙ ba˚n luo‚n co˘ trong mo‰t vi xˆ˚ ly˘ la¯ thanh ghi A ( Accumulator register ), thanh ghi bo‰ ềeãm chˆÙng trẽnh PC ( Program Counter register ), thanh ghi con tro˚ ngaÍn xeãp SP ( Stack pointer register ), thanh ghi traễng tha˘i F ( Status register ủFlag register ), ca˘c thanh ghi tho‚ng duễng, thanh ghi le‰nh IR ( Instruction register ), thanh ghi ềÚa chấ AR ( address register ). Vi xˆ˚ ly˘ 15
  22. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT H(nh 2-2. SÙ ềo‡ minh hoễa ca˘c thanh ghi be‚n trong cu˚a Microprocessor ềˆÙễc to‚ ềa‰m. 2.2.2. Chˆ˘c naÍng cu˚a ca˘c thanh ghi: Thanh ghi Accumulator: Thanh ghi A la¯ mo‰t thanh ghi quan troễng cu˚a vi xˆ˚ ly˘ co˘ chˆ˘c naÍng lˆu trˆı dˆı lie‰u khi tènh toa˘n. Ha‡u heãt ca˘c phe˘p toa˘n soã hoễc va¯ ca˘c phe˘p toa˘n logic ềe‡u xa˚y ra giˆıa ALU va¯ Accumulator. Vè duễ khi thˆễc hie‰n mo‰t le‰nh co‰ng 1 dˆı lie‰u A vÙ˘i mo‰t dˆı lie‰u B, thẽ mo‰t dˆı lie‰u pha˚i chˆ˘a trong thanh ghi Accumulator gia˚ sˆ˚ la¯ dˆı lie‰u A, sau ềo˘ seı thˆễc hie‰n le‰nh co‰ng dˆı lie‰u A (chˆ˘a trong Accumulator) vÙ˘i dˆı lie‰u B (co˘ the chˆ˘a trong o‚ nhÙ˘ hoaẻc trong mo‰t thanh ghi tho‚ng duễng), keãt qua˚ cu˚a le‰nh co‰ng la¯ dˆı lie‰u C seı ềˆÙễc ềaẻt trong thanh ghi A thay theã cho dˆı lie‰u A trˆÙ˘c ềo˘. Chu˘ y˘: Keãt qua˚ sau khi thˆễc hie‰n ALU thˆÙ¯ng gÙ˚i va¯o thanh ghi Accumulator la¯m cho dˆı lie‰u trˆÙ˘c ềo˘ chˆ˘a trong Accumulator seı maãt. Mo‰t chˆ˘c naÍng quan troễng kha˘c cu˚a thanh ghi Accumulator la¯ ềe truye‡n dˆı lie‰u tˆ¯ bo‰ nhÙ˘ hoaẻc tˆ¯ ca˘c thanh ghi be‚n trong cu˚a vi xˆ˚ ly˘ ra ca˘c thieãt bÚ ềie‡u khieÂn be‚n ngoa¯i thẽ dˆı lie‰u ềo˘ pha˚i chˆ˘a trong thanh ghi Accumulator. Thanh ghi Accumulator co¯n nhie‡u chˆ˘c naÍng quan troễng kha˘c seı ềˆÙễc thaãy roı qua ta‰p le‰nh cu˚a mo‰t vi xˆ˚ ly˘ cuễ theÂ, soã bit cu˚a thanh ghi Accumulator chènh la¯ ềÙn vÚ ềo cu˚a vi xˆ˚ ly˘, vi xˆ˚ ly˘ 8 bit thẽ thanh ghi Accumulator co˘ ềo‰ da¯i 8 bit. Thanh ghi bo‰ ềeãm chˆÙng trẽnh PC (Program counter): Thanh ghi PC la¯ mo‰t thanh ghi co˘ vai tro¯ quan troễng nhaãt cu˚a vi xˆ˚ ly˘. ChˆÙng trẽnh la¯ mo‰t cuoãi ca˘c le‰nh noãi tieãp nhau trong bo‰ nhÙ˘ cu˚a vi xˆ˚ ly˘, ca˘c le‰nh na¯y seı ye‚u ca‡u vi xˆ˚ ly˘ thˆễc hie‰n chènh xa˘c ca˘c co‚ng vie‰c ềe gia˚i quyeãt mo‰t vaãn ềe‡. 161616 Vi xˆ˚ ly˘
  23. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT Tˆ ng le‰nh pha˚i ềÙn gia˚n va¯ chènh xa˘c va¯ ca˘c le‰nh pha˚i theo ều˘ng mo‰t trẽnh tˆễ ềe chˆÙng trẽnh thˆễc hie‰n ều˘ng. Chˆ˘c naÍng cu˚a thanh ghi PC la¯ qua˚n ly˘ le‰nh ềang thˆễc hie‰n va¯ le‰nh seı ềˆÙễc thˆễc hie‰n tieãp theo. Thanh ghi PC trong vi xˆ˚ ly˘ co˘ chie‡u da¯i tˆ¯ dˆı lie‰u lÙ˘n hÙn chie‡u da¯i tˆ¯ dˆı lie‰u cu˚a vi xˆ˚ ly˘. Vè duễ ềoãi vÙ˘i ca˘c vi xˆ˚ ly˘ 8 bit co˘ the giao tieãp vÙ˘i 65536 o‚ nhÙ˘ thẽ thanh ghi PC pha˚i co˘ chie‡u da¯i la¯ 16 bit ềe co˘ the truy xuaãt tˆ¯ng o‚ nhÙ˘ baẩt ềa‡u tˆ¯ o‚ nhÙ˘ thˆ˘ 0 ềeãn o‚ nhÙ˘ thˆ˘ 65535. Chu˘ y ˘ no‰i dung chˆ˘a trong thanh ghi PC cuıng chènh la¯ no‰i dung chˆ˘a trong thanh ghi ềÚa chấ. TrˆÙ˘c khi vi xˆ˚ ly˘ thˆễc hie‰n mo‰t chˆÙng trẽnh thẽ thanh ghi PC pha˚i ềˆÙễc naễp mo‰t con soã : ỡ —o˘ chènh la¯ ềÚa chấ cu˚a o‚ nhÙ˘ chˆ˘a le‰nh ềa‡u tie‚n cu˚a chˆÙng trẽnh ợ. —Úa chấ cu˚a le‰nh ềa‡u tie‚n ềˆÙễc gÙ˚i ềeãn IC nhÙ˘ tho‚ng qua bus ềÚa chấ 16 bit. Sau ềo˘ bo‰ nhÙ˘ seı ềaẻt no‰i dung cu˚a o‚ nhÙ˘ le‚n bus dˆı lie‰u, no‰i dung na¯y chènh la¯ maı le‰nh, qua˘ trẽnh na¯y goễi la¯ ềo˘n le‰nh tˆ¯ bo‰ nhÙ˘. Tieãp theo vi xˆ˚ ly˘ tˆễ ềo‰ng taÍng no‰i dung cu˚a thanh ghi PC ềe chuaÂn bÚ ềo˘n le‰nh keã. PC chấ ềˆÙễc taÍng khi vi xˆ˚ ly˘ baẩt ềa‡u thˆễc hie‰n le‰nh ềˆÙễc ềo˘n trˆÙ˘c ềo˘. Le‰nh ềang thˆễc hie‰n co˘ chie‡u da¯i bao nhie‚u byte thẽ thanh ghi PC taÍng le‚n ều˘ng baãy nhie‚u byte. Mo‰t va¯i le‰nh trong chˆÙng trẽnh co˘ the naễp va¯o thanh ghi PC mo‰t gia˘ trÚ mÙ˘i, khi le‰nh la¯m thay ềoÂi thanh ghi PC sang gia˘ trÚ mÙ˘i ềˆÙễc thˆễc hie‰n thẽ le‰nh keã co˘ the xa˚y ra Ù˚ mo‰t ềÚa chấ mÙ˘i ủ ềoãi vÙ˘i ca˘c le‰nh nha˚y hoaẻc le‰nh goễi chˆÙng trẽnh con. Thanh ghi traễng tha˘i (Status Register): Hẽnh 2-3. Caãu tru˘c cu˚a mo‰t thanh ghi traễng tha˘i. Thanh ghi traễng tha˘i co¯n ềˆÙễc goễi la¯ thanh ghi cÙ¯ (Flag register) du¯ng ềe lˆu trˆı keãt qua˚ cu˚a mo‰t soã le‰nh kieÂm tra. Vie‰c lˆu trˆı ca˘c keãt qua˚ kieÂm tra cho phe˘p ngˆÙ¯i la‰p trẽnh thˆễc hie‰n vie‰c reı nha˘nh trong chˆÙng trẽnh. Khi reı nha˘nh, chˆÙng trẽnh seı baẩt ềa‡u taễi mo‰t vÚ trè mÙ˘i. Trong trˆÙ¯ng hÙễp reı nha˘nh co˘ ềie‡u kie‰n thẽ chˆÙng trẽnh reı nha˘nh chấ ềˆÙễc thˆễc hie‰n khi keãt qua˚ kieÂm tra ều˘ng ềie‡u kie‰n. Thanh ghi traễng tha˘i seı lˆu trˆı ca˘c keãt qua˚ kieÂm tra na¯y. Vi xˆ˚ ly˘ 17
  24. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT Ca˘c bit thˆÙ¯ng co˘ trong mo‰t thanh ghi traễng tha˘i ềˆÙễc trẽnh ba¯y Ù˚ hẽnh 2-3. Ca˘c le‰nh xa˚y ra trong khoãi ALU thˆÙ¯ng a˚nh hˆÙ˚ng ềeãn thanh ghi traễng tha˘i, vè duễ khi thˆễc hie‰n mo‰t le‰nh co‰ng 2 dˆı lie‰u 8 bit, neãu keãt qua˚ lÙ˘n hÙn 11111111 2 thẽ bit carry seı mang gia˘ trÚ la¯ 1. NgˆÙễc laễi neãu keãt qua˚ cu˚a phe˘p co‰ng nho˚ hÙn 11111111 2 thẽ bit carry baậng 0. Vè duễ le‰nh taÍng hay gia˚m gia˘ trÚ cu˚a mo‰t thanh ghi, neãu keãt qua˚ trong thanh ghi kha˘c 0 thẽ bit Z luo‚n baậng 0, ngˆÙễc laễi neãu keãt qua˚ baậng 0 thẽ bit Z baậng 1. Vè duễ ve‡ reı nha˘nh khi kieÂm tra bit trong thanh ghi traễng tha˘i: haıy vieãt mo‰t chˆÙng trẽnh gia˚m gia˘ trÚ cu˚a mo‰t thanh ghi co˘ gia˘ trÚ la¯ 10. 1. Naễp va¯o thanh ghi mo‰t soã nhÚ pha‚n co˘ gia˘ trÚ la¯ 10. 2. Gia˚m no‰i dung cu˚a thanh ghi ềi 1. 3. KieÂm tra bit Zero cu˚a thanh ghi traễng tha˘i co˘ baậng 1 hay kho‚ng ? 4. Neãu kho‚ng nha˚y ềeãn thˆễc hie‰n tieãp le‰nh Ù˚ bˆÙ˘c 2 5. Neãu ều˘ng keãt thu˘c chˆÙng trẽnh. YŸ nghÛa cu˚a ca˘c bit trong thanh ghi traễng tha˘i: M3N. Carry/borrow (cÙ¯ tra¯n/mˆÙễn): la¯ bit carry khi thˆễc hie‰n mo‰t phe˘p co‰ng co˘ gia˘ trÚ tu¯y thuo‰c va¯o keãt qua˚ cu˚a phe˘p co‰ng. Keãt qua˚ tra¯n thẽ bit carry =1, ngˆÙễc laễi bit carry = 0. La¯ bit borrow khi thˆễc hie‰n mo‰t phe˘p trˆ¯: neãu soã bÚ trˆ¯ lÙ˘n hÙn soã trˆ¯ thẽ bit borrow = 0, ngˆÙễc laễi bit borrow =1. Bit carry hay bit borrow la¯ 1 bit chấ ềˆÙễc pha‚n bie‰t khi thˆễc hie‰n le‰nh cuễ theÂ. [b]. Zero: bit Z baậng mo‰t khi keãt qua˚ cu˚a phe˘p toa˘n baậng 0, ngˆÙễc laễi bit Z=1. [c]. Negative (cÙ¯ soã a‚m): bit N = 1 khi bit MSB cu˚a thanh ghi co˘ gia˘ trÚ la¯ 1, ngˆÙễc laễi N=0. [d]. Intermediate carry (cÙ¯ tra¯n phuễ): gioãng nhˆ bit Carry nhˆng chấ co˘ ta˘c duễng ềoãi vÙ˘i phe˘p co‰ng hay trˆ¯ 4 bit thaãp. [e]. Interrupt Flag (cÙ¯ ba˘o ngaẩt): Bit IF co˘ gia˘ trÚ la¯ 1 khi ngˆÙ¯i la‰p trẽnh muoãn cho phe˘p ngaẩt, ngˆÙễc laễi thẽ kho‚ng cho phe˘p ngaẩt. [f]. Overflow (cÙ¯ tra¯n soã co˘ daãu): bit na¯y baậng 1 khi bit tra¯n cu˚a phe˘p toa˘n co‰ng vÙ˘i bit daãu cu˚a dˆı lie‰u. [g]. Parity (cÙ¯ chaán le˚): bit na¯y co˘ gia˘ trÚ la¯ 1 khi keãt qua˚ cu˚a phe˘p toa˘n la¯ soã chaán, ngˆÙễc laễi la¯ soã le˚ thẽ bit P = 0. Soã lˆÙễng ca˘c bit co˘ trong thanh ghi traễng tha˘i tu¯y thuo‰c va¯o tˆ¯ng vi xˆ˚ ly˘. Trong mo‰t soã vi xˆ˚ ly˘ co˘ the xo˘a hoaẻc ềaẻt ca˘c bit cu˚a thanh ghi traễng tha˘i. Thanh ghi con tro˚ ngaÍn xeãp (Stack Pointer Register): Thanh ghi con tro˚ ngaÍn xeãp la¯ mo‰t thanh ghi quan troễng cu˚a vi xˆ˚ ly˘, ềo‰ da¯i tˆ¯ dˆı lie‰u cu˚a thanh ghi SP baậng thanh ghi PC, chˆ˘c naÍng cu˚a thanh ghi SP ga‡n gioãng nhˆ thanh ghi PC nhˆng no˘ du¯ng ềe qua˚n ly˘ bo‰ nhÙ˘ ngaÍn xeãp khi muoãn lˆu trˆı taễm thÙ¯i dˆı lie‰u va¯o ngaÍn xeãp. 181818 Vi xˆ˚ ly˘
  25. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT Tioãng nhˆ thanh ghi PC, thanh ghi SP cuıng tˆễ ềo‰ng chấ ềeãn o‚ nhÙ˘ keã. Trong ha‡u heãt ca˘c vi xˆ˚ ly˘, thanh ghi SP gia˚m (ềe chấ ềeãn o‚ nhÙ˘ tieãp theo trong ngaÍn xeãp) sau khi thˆễc hie‰n le‰nh caãt dˆı lie‰u va¯o ngaÍn xeãp. Do ềo˘ khi thieãt la‰p gia˘ trÚ cho thanh ghi SP la¯ ềÚa chấ cuoãi cu¯ng cu˚a bo‰ nhÙ˘. Thanh ghi SP pha˚i chấ ềeãn mo‰t o‚ nhÙ˘ do ngˆÙ¯i la‰p trẽnh thieãt la‰p, qua˘ trẽnh na¯y goễi la¯ khÙ˚i taễo con tro˚ ngaÍn xeãp. Neãu kho‚ng khÙ˚i taễo, con tro˚ ngaÍn xeãp seı chấ ềeãn mo‰t o‚ nhÙ˘ nga„u nhie‚n. Khi ềo˘ dˆı lie‰u caãt va¯o ngaÍn xeãp co˘ the ghi ềe¯ le‚n dˆı lie‰u quan troễng kha˘c la¯m chˆÙng trẽnh xˆ˚ ly˘ sai hoaẻc thanh ghi SP chấ ềeãn vu¯ng nhÙ˘ kho‚ng pha˚i la¯ bo‰ nhÙ˘ RAM la¯m chˆÙng trẽnh thˆễc hie‰n kho‚ng ều˘ng vẽ kho‚ng lˆu trˆı ềˆÙễc dˆı lie‰u ca‡n caãt taễm va¯o bo‰ nhÙ˘ ngaÍn xeãp. To chˆ˘c cu˚a ngaÍn xeãp la¯ va¯o sau ra trˆÙ˘c (LAST IN FIRST OUT : LIFO). Thanh ghi ềÚa chấ bo‰ nhÙ˘ (address Register): Mo„i khi vi xˆ˚ ly˘ truy xuaãt bo‰ nhÙ˘ thẽ thanh ghi ềÚa chấ pha˚i taễo ra ều˘ng ềÚa chấ ma¯ vi xˆ˚ ly˘ muoãn. Ngoı ra cu˚a thanh ghi ềÚa chấ ềˆÙễc ềaẻt le‚n bus ềÚa chấ 16 bit. Bus ềÚa chấ du¯ng ềe lˆễa choễn mo‰t o‚ nhÙ˘ hay lˆễa choễn 1 port Input/Output. No‰i dung cu˚a thanh ghi ềÚa chấ o‚ nhÙ˘ va¯ no‰i dung cu˚a thanh ghi PC la¯ gioãng nhau khi vi xˆ˚ ly˘ truy xuaãt bo‰ nhÙ˘ ềe ềo˘n le‰nh, khi le‰nh ềang ềˆÙễc gia˚i maı thẽ thanh ghi PC taÍng le‚n ềe chuaÂn bÚ ềo˘n le‰nh tieãp theo, trong khi ềo˘ no‰i dung cu˚a thanh ghi ềÚa chấ bo‰ nhÙ˘ kho‚ng taÍng, trong suoãt chu ky¯ thˆễc hie‰n le‰nh, no‰i dung cu˚a thanh ghi ềÚa chấ phuễ thuo‰c va¯o le‰nh ềang ềˆÙễc thˆễc hie‰n, neãu le‰nh ye‚u ca‡u vi xˆ˚ ly˘ truy xuaãt bo‰ nhÙ˘ thẽ thanh ghi ềÚa chấ bo‰ nhÙ˘ ềˆÙễc du¯ng la‡n thˆ˘ 2 trong khi thˆễc hie‰n mo‰t le‰nh. Trong taãt ca˚ ca˘c vi xˆ˚ ly˘, thanh ghi ềÚa chấ bo‰ nhÙ˘ co˘ chie‡u da¯i baậng vÙ˘i thanh ghi PC. Thanh ghi le‰nh (instruction Register): Thanh ghi le‰nh du¯ng ềe chˆ˘a maı le‰nh vi xˆ˚ ly˘ ềang thˆễc hie‰n. Mo‰t chu ky¯ le‰nh bao go‡m ềo˘n le‰nh tˆ¯ bo‰ nhÙ˘ va¯ thˆễc hie‰n le‰nh. —a‡u tie‚n la¯ le‰nh ềˆÙễc ềo˘n tˆ¯ bo‰ nhÙ˘, sau ềo˘ PC chấ ềeãn le‰nh keã trong bo‰ nhÙ˘. Khi mo‰t le‰nh ềˆÙễc ềo˘n co˘ nghÛa la¯ dˆı lie‰u trong o‚ nhÙ˘ ềo˘ ềˆÙễc copy va¯o vi xˆ˚ ly˘ tho‚ng qua bus dˆı lie‰u ềeãn thanh ghi le‰nh. Tieãp theo le‰nh seı ềˆÙễc thˆễc hie‰n, trong khi thˆễc hie‰n le‰nh bo‰ gia˚i maı le‰nh ềoễc no‰i dung cu˚a thanh ghi le‰nh. Bo‰ gia˚i maı seı gia˚i maı le‰nh ềe ba˘o cho vi xˆ˚ ly˘ thˆễc hie‰n chènh xa˘c co‚ng vie‰c ma¯ le‰nh ye‚u ca‡u. Chie‡u da¯i tˆ¯ dˆı lie‰u cu˚a thanh ghi le‰nh tu¯y thuo‰c va¯o tˆ¯ng vi xˆ˚ ly˘. Thanh ghi le‰nh do vi xˆ˚ ly˘ sˆ˚ duễng ngˆÙ¯i la‰p trẽnh kho‚ng ềˆÙễc sˆ˚ duễng thanh ghi na¯y. Thanh ghi chˆ˘a dˆı lie‰u taễm thÙ¯i (Temporary data Register): Thanh ghi lˆu trˆı dˆı lie‰u taễm thÙ¯i du¯ng ềe ALU thˆễc hie‰n ca˘c phe˘p toa˘n xˆ˚ ly˘ dˆı lie‰u. Do ALU chấ xˆ˚ ly˘ dˆı lie‰u kho‚ng co˘ chˆ˘c naÍng lˆu trˆı dˆı lie‰u, baãt ky¯ dˆı lie‰u na¯o ềˆa ềeãn ngoı va¯o cu˚a ALU, la‰p tˆ˘c seı xuaãt hie‰n Ù˚ ngoı ra. Dˆı lie‰u xuaãt hie‰n taễi ngoı ra cu˚a ALU ềˆÙễc quyeãt ềÚnh bÙ˚i le‰nh trong chˆÙng trẽnh ye‚u ca‡u ALU thˆễc hie‰n. ALU laãy dˆı lie‰u tˆ¯ bus dˆı lie‰u be‚n trong vi xˆ˚ ly˘, xˆ˚ ly˘ dˆı lie‰u, sau ềo˘ ềaẻt dˆı lie‰u vˆ¯a xˆ˚ ly˘ xong trÙ˚ laễi thanh ghi Accumulator, do ềo˘ ca‡n pha˚i co˘ thanh ghi lˆu trˆı Vi xˆ˚ ly˘ 19
  26. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT dˆ& lie‰u taễm thÙ¯i ềe ALU thˆễc hie‰n. NgˆÙ¯i la‰p trẽnh kho‚ng ềˆÙễc phe˘p xˆ˚ duễng ca˘c thanh ghi taễm thÙ¯i. Soã lˆÙễng ca˘c thanh ghi na¯y tu¯y thuo‰c va¯o tˆ¯ng vi xˆ˚ ly˘ cuễ theÂ. Khoãi ềie‡u khieÂn logic (control logic) va¯ khoãi gia˚i ma¯ le‰nh (instruction decoder): Chˆ˘c naÍng cu˚a khoãi gia˚i maı le‰nh la¯ nha‰n le‰nh tˆ¯ thanh ghi le‰nh sau ềo˘ gia˚i maı ềe gÙ˚i tèn hie‰u ềie‡u khieÂn ềeãn cho khoãi ềie‡u khieÂn logic. Chˆ˘c naÍng cu˚a khoãi ềie‡u khieÂn logic (control logic) la¯ nha‰n le‰nh hay tèn hie‰u ềie‡u khieÂn tˆ¯ bo‰ gia˚i maı le‰nh, sau ềo˘ seı thˆễc hie‰n ều˘ng ca˘c ye‚u ca‡u cu˚a le‰nh. Khoãi ềie‡u khieÂn logic ềˆÙễc xem la¯ mo‰t vi xˆ˚ ly˘ nho˚ naậm trong mo‰t vi xˆ˚ ly˘. Ca˘c tèn hie‰u ềie‡u khieÂn cu˚a khoãi ềie‡u khieÂn logic la¯ ca˘c tèn hie‰u ềie‡u khieÂn bo‰ nhÙ˘, ềie‡u khieÂn ca˘c thieãt bÚ ngoaễi vi, ca˘c ềˆÙ¯ng tèn hie‰u ềoễc-ghi va¯ ca˘c tèn hie‰u ềie‡u khieÂn vi xˆ˚ ly˘ tˆ¯ ca˘c thieãt bÚ be‚n ngoa¯i. Ca˘c ềˆÙ¯ng tèn hie‰u na¯y seı ềˆÙễc trẽnh ba¯y cuễ the trong sÙ ềo‡ cu˚a tˆ¯ng vi xˆ˚ ly˘ cuễ theÂ. Ngoı tèn hie‰u va¯o quan troễng nhaãt cu˚a khoãi ềie‡u khieÂn logic la¯ tèn hie‰u clock ca‡n thieãt cho khoãi ềie‡u khieÂn logic hoaễt ềo‰ng. Neãu kho‚ng co˘ tèn hie‰u clock thẽ vi xˆ˚ ly˘ kho‚ng la¯m vie‰c. Maễch taễo xung clock la¯ ca˘c maễch dao ềo‰ng, tèn hie‰u ềˆÙễc ềˆa ềeãn ngoı va¯o clock cu˚a vi xˆ˚ ly˘. Co˘ nhie‡u vi xˆ˚ ly˘ co˘ tèch hÙễp maễch taễo dao ềo‰ng Ù˚ be‚n trong, khi ềo˘ chấ ca‡n the‚m tuễ thaễch anh Ù˚ be‚n ngoa¯i. Bus dˆı lie‰u be‚n trong vi xˆ˚ ly˘: Bus dˆı lie‰u du¯ng ềe keãt noãi ca˘c thanh ghi be‚n trong va¯ ALU vÙ˘i nhau, taãt ca˚ ca˘c dˆı lie‰u di chuyeÂn trong vi xˆ˚ ly˘ ềe‡u tho‚ng qua bus dˆı lie‰u na¯y. Ca˘c thanh ghi be‚n trong co˘ the nha‰n dˆı lie‰u tˆ¯ bus hay co˘ the ềaẻt dˆı lie‰u le‚n bus ne‚n bus dˆı lie‰u na¯y la¯ bus dˆı lie‰u 2 chie‡u. Bus dˆı lie‰u be‚n trong co˘ the keãt noãi ra bus be‚n ngoa¯i khi vi xˆ˚ ly˘ ca‡n truy xuaãt dˆı lie‰u tˆ¯ bo‰ nhÙ˘ be‚n ngoa¯i hay ca˘c thieãt bÚ IO. Bus dˆı lie‰u be‚n ngoa¯i cuıng la¯ bus dˆı lie‰u 2 chie‡u vẽ vi xˆ˚ ly˘ co˘ the nha‰n dˆı lie‰u tˆ¯ be‚n ngoa¯i hay gÙ˚i dˆı lie‰u ra. —e bieãt trẽnh tˆễ la¯m vie‰c cu˚a bus dˆı lie‰u be‚n trong vi xˆ˚ ly˘ hoaễt ềo‰ng, haıy cho vi xˆ˚ ly˘ thˆễc hie‰n mo‰t le‰nh co‰ng 2 soã nhÚ pha‚n chˆ˘a trong thanh ghi 2 thanh ghi: thanh ghi Accumulator (goễi taẩt la¯ A) =1101 1110 2 va¯ thanh ghi D=1101 1010 2. Trẽnh tˆễ co‰ng nhˆ sau: ♦ TrˆÙ˘c khi thˆễc hie‰n le‰nh co‰ng, no‰i dung cu˚a 2 thanh ghi pha˚i chˆ˘a 2 dˆı lie‰u va¯ 2 thanh ghi na¯y co˘ the ềang keãt noãi vÙ˘i ca˘c thieãt bÚ kha˘c. —e thˆễc hie‰n le‰nh co‰ng no‰i dung 2 thanh ghi A va¯ D thẽ thanh ghi le‰nh pha˚i mang ều˘ng maı le‰nh cu˚a phe˘p co‰ng na¯y va¯ gia˚ sˆ˚ maı le‰nh ềo˘ la¯ ADD. —ˆÙễc trẽnh ba¯y Ù˚ hẽnh 2-4. 220020 Vi xˆ˚ ly˘
  27. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT H(nh 2-4. TrˆÙ˘c khi co‰ng dˆı lie‰u. ♦ Dˆı lie‰u cu˚a thanh ghi A ềˆÙễc ềaẻt le‚n bus dˆı lie‰u be‚n trong vi xˆ˚ ly˘, mo‰t trong 2 thanh ghi lˆu trˆı dˆı lie‰u taễm thÙ¯i ềˆÙễc keãt noãi vÙ˘i Bus dˆı lie‰u. Thanh ghi taễm thÙ¯i seı copy dˆı lie‰u chˆ˘a trong thanh ghi A. Chấ co˘ thanh ghi A va¯ thanh ghi taễm thÙ¯i ềˆÙễc keãt noãi vÙ˘i bus taễi thÙ¯i ềieÂm na¯y. Xem hẽnh 2-5 ♦ Dˆı lie‰u cu˚a thanh ghi D ềˆÙễc keãt noãi vÙ˘i bus dˆı lie‰u va¯ thanh ghi taễm thÙ¯i co¯n laễi cuıng ềˆÙễc phe˘p keãt noãi vÙ˘i bus dˆı lie‰u. Thanh ghi taễm thÙ¯i seı copy no‰i dung cu˚a thanh ghi D. Chấ co˘ thanh ghi D va¯ thanh ghi taễm thÙ¯i ềˆÙễc keãt noãi vÙ˘i bus taễi thÙ¯i ềieÂm na¯y. Xem hẽnh 2-6. ♦ ALU seı co‰ng trˆễc tieãp 2 dˆı lie‰u taễi 2 ngoı va¯o. Ngoı ra cu˚a ALU ềˆÙễc keãt noãi vÙ˘i thanh ghi A, keãt qua˚ cu˚a phe˘p co‰ng ềˆÙễc naễp va¯o thanh ghi A. Xem hẽnh 2-7. ♦ Sau khi ềaẻt keãt qua˚ va¯o trong thanh ghi A va¯ caẻp nha‰t sˆễ thay ềoÂi ca˘c bit trong thanh ghi traễng tha˘i thẽ sˆễ keãt noãi giˆıa thanh A va¯ khoãi ALU chaãm dˆ˘t, ca˘c thanh ghi taễm thÙ¯i trÙ˚ laễi traễng tha˘i sa˙n sa¯ng cho le‰nh tieãp theo. Xem hẽnh 2-8 Phe˘p co‰ng 2 soã nhÚ pha‚n: 1101 1110 + 1101 1010 1 1011 1000 Carry negative Vi xˆ˚ ly˘ 21
  28. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT H(nh 2-5. Dˆı lie‰u thanh ghi A ềˆÙễc ềˆa ềeãn thanh ghi Temp1. Hẽnh 2-6. Dˆı lie‰u thanh ghi D ềˆÙễc ềˆa ềeãn thanh ghi Temp2. 222222 Vi xˆ˚ ly˘
  29. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT H(nh 2-7. Keãt qua˚ lˆu trÙ˚ laễi thanh ghi A. Hẽnh 2-8. Ca˘c thanh ghi taễm trÙ˚ laễi traễng tha˘i ban ềa‡u. Vi xˆ˚ ly˘ 23
  30. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT III. LEƒNH CUÔA VI XữÔ LYŸ: 1.1.1. TTTa‰pTa‰p le‰nh cu˚a vi xˆ˚ ly˘::: Le‰nh cu˚a vi xˆ˚ ly˘ la¯ mo‰t dˆı lie‰u soã nhÚ pha‚n, khi vi xˆ˚ ly˘ ềoễc mo‰t le‰nh thẽ tˆ¯ dˆı lie‰u nhÚ pha‚n na¯y seı ye‚u ca‡u vi xˆ˚ ly˘ la¯m mo‰t co‚ng vie‰c ềÙn gia˚n. Mo„i mo‰t tˆ¯ dˆı lie‰u tˆÙng ềˆÙng vÙ˘i mo‰t co‚ng vie‰c ma¯ vi xˆ˚ ly˘ pha˚i la¯m. Ha‡u heãt ca˘c le‰nh cu˚a vi xˆ˚ ly˘ la¯ ca˘c le‰nh chuyeÂn dˆı lie‰u va¯ xˆ˚ ly˘ dˆı lie‰u. Khi no˘i ềeãn ta‰p le‰nh cu˚a vi xˆ˚ ly˘ tˆ˘c no˘i ềeãn taãt ca˚ ca˘c le‰nh ma¯ vi xˆ˚ ly˘ co˘ the hieÂu va¯ thˆễc hie‰n ềˆÙễc. Neãu ta‰p le‰nh cu˚a mo‰t vi xˆ˚ ly˘ gioãng vÙ˘i ta‰p le‰nh cu˚a mo‰t vi xˆ˚ ly˘ kha˘c thẽ caãu tru˘c cu˚a 2 vi xˆ˚ ly˘ gioãng nhau. —o‰ da¯i cu˚a mo‰t le‰nh baậng vÙ˘i ềo‰ da¯i tˆ¯ dˆı lie‰u cu˚a vi xˆ˚ ly˘, ềoãi vÙ˘i vi xˆ˚ ly˘ 8 bit thẽ ềo‰ da¯i cu˚a mo‰t le‰nh la¯ 8 bit, ềoãi vÙ˘i vi xˆ˚ ly˘ 16 bit thẽ ềo‰ da¯i cu˚a mo‰t le‰nh la¯ 16 bit Trong chu ky¯ ềo˘n le‰nh, maı le‰nh seı ềˆÙễc gÙ˚i ềeãn thanh ghi le‰nh, bo‰ gia˚i maı le‰nh, va¯ bo‰ ềie‡u khieÂn logic cu˚a vi xˆ˚ ly˘. Chˆ˘c naÍng cu˚a ca˘c khoãi seı xa˘c ềÚnh le‰nh na¯y la¯m gẽ va¯ seı gÙ˚i ca˘c tèn hie‰u ềie‡u khieÂn ềeãn ca˘c maễch ềie‰n logic kha˘c trong vi xˆ˚ ly˘, ca˘c tèn hie‰u logic na¯y seı thˆễc hie‰n ều˘ng chˆ˘c naÍng ma¯ le‰nh ye‚u ca‡u. Hẽnh 2-9 minh hoễa chu ky¯ thˆễc hie‰n le‰nh: —o˘n le‰nh tˆ¯ bo‰ nhÙ˘ Gia˚i maı le‰nh Thˆễc hie‰n le‰nh Hẽnh 2-9. Chu ky¯ thˆễc hie‰n le‰nh cu˚a vi xˆ˚ ly˘. Mo‰t le‰nh ềˆÙễc thˆễc hie‰n ca‡n pha˚i ho‰i ều˚ 2 yeãu toã: Yeãu toã thˆ˘ nhaãt la¯ le‰nh seı ye‚u ca‡u vi xˆ˚ ly˘ thˆễc hie‰n co‚ng vie‰c gẽ. Vè duễ ye‚u ca‡u vi xˆ˚ ly˘ thˆễc hie‰n mo‰t le‰nh co‰ng: ADD, mo‰t le‰nh dÚch chuyeÂn dˆı lie‰u MOV la¯ nhˆıng le‰nh ma¯ vi xˆ˚ ly˘ co˘ thˆễc hie‰n ềˆÙễc. Yeãu toã thˆ˘ hai la¯ le‰nh pha˚i cho vi xˆ˚ ly˘ bieãt ca˘c tho‚ng tin ềÚa chấ tˆ˘c la¯ vÚ trè cu˚a ca˘c dˆı lie‰u ma¯ vi xˆ˚ ly˘ pha˚i thˆễc hie‰n. Vè duễ khi thˆễc hie‰n mo‰t le‰nh co‰ng no‰i dung 2 thanh ghi A va¯ B, hoaẻc no‰i dung thanh ghi A va¯ dˆı lie‰u chˆ˘a trong mo‰t o‚ nhÙ˘. Yeãu toã thˆ˘ 2 trong trˆÙ¯ng hÙễp na¯y la¯ ca˘c thanh ghi A va¯ B, hoaẻc thanh ghi A va¯ ềÚa chấ cu˚a o‚ nhÙ˘. Yeãu toã thˆ˘ nhaãt goễi la¯ maı le‰nh : op code (operation code) va¯ yeãu toã thˆ˘ 2 goễi la¯ ềÚa chấ. Maı le‰nh seı ba˘o cho vi xˆ˚ ly˘ la¯m gẽ va¯ ềÚa chấ seı cho vi xˆ˚ ly˘ bieãt vÚ trè cu˚a dˆı lie‰u. 224424 Vi xˆ˚ ly˘
  31. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT , ềo‡ hẽnh 2-10 minh hoễa cho caãu tru˘c 1 le‰nh. Op code Op code hoaẻc Address Address Address H(nh 2-10. Caãu tru˘c cu˚a mo‰t le‰nh bao go‡m maı le‰nh va¯ ềÚa chấ. Tˆ¯ dˆı lie‰u ềa‡u tie‚n luo‚n la¯ maı le‰nh, ca˘c tˆ¯ dˆı lie‰u tieãp theo la¯ ềÚa chấ. —oãi vÙ˘i ca˘c le‰nh chấ co˘ mo‰t tˆ¯ dˆı lie‰u thẽ ềÚa chấ ềaı ềˆÙễc hieÂu nga‡m. Do co˘ nhie‡u ca˘ch chấ cho vi xˆ˚ ly˘ bieãt ềÚa chấ cu˚a dˆı lie‰u ềˆÙễc goễi la¯ ca˘c kieÂu truy xuaãt bo‰ nhÙ˘. Khi sˆ˚ duễng mo‰t vi xˆ˚ ly˘ ca‡n pha˚i bieãt ca˘c kieÂu truy xuaãt na¯y. 2.2.2. Tˆ¯ gÙễi nhÙ˘ (Mnemonics) ::: Mo‰t le‰nh cu˚a vi xˆ˚ ly˘ la¯ ca˘c con soã nhÚ pha‚n. —oãi vÙ˘i le‰nh chấ co˘ mo‰t byte thẽ raãt kho˘ nhÙ˘, neãu le‰nh da¯i 2, 3, 4 hoaẻc nhie‡u hÙn nˆıa thẽ kho‚ng the na¯o nhÙ˘ heãt. —e gia˚m bÙ˘t sˆễ phˆ˘c taễp cu˚a soã nhÚ pha‚n co˘ the du¯ng soã Hex ềe thay theã, khi ềo˘ ca˘c le‰nh de„ vieãt va¯ de„ ềoễc hÙn nhie‡u nhˆng cuıng kho‚ng the na¯o giu˘p ngˆÙ¯i sˆ˚ duễng nhÙ˘ heãt ềˆÙễc va¯ quan troễng nhaãt la¯ khi vieãt chˆÙng trẽnh cuıng nhˆ lu˘c gÙı roãi chˆÙng trẽnh. —e gia˚i quyeãt vaãn ềe‡ na¯y le‰nh ềˆÙễc vieãt tha¯nh ca˘c tˆ¯ gÙễi nhÙ˘ raãt ga‡n vÙ˘i chˆ˘c naÍng va¯ y˘ nghÛa cu˚a ca˘c le‰nh. Trong ha‡u heãt ca˘c tˆ¯ gÙễi nhÙ˘ cu˚a le‰nh, maı le‰nh ềˆÙễc ru˘t goễn chấ co¯n khoa˚ng 3 ky˘ tˆễ. Vè duễ le‰nh di chuyeÂn dˆı lie‰u co˘ tˆ¯ gÙễi nhÙ˘ la¯ MOV, le‰nh trˆ¯ la¯ SUB Khi le‰nh co˘ ca˘c ềÚa chấ ềi sau thẽ ca˘c ềÚa chấ na¯y va„n la¯ ca˘c con soã. Vè duễ le‰nh nha˚y ềeãn mo‰t o‚ nhÙ˘ vieãt nhˆ sau: JMP FA90 H. Khi sˆ˚ duễng ca˘c tˆ¯ gÙễi nhÙ˘ na¯y giu˘p ngˆÙ¯i la‰p trẽnh raãt de„ nhÙ˘ taãt ca˚ ca˘c le‰nh cu˚a vi xˆ˚ ly˘, khi vieãt chˆÙng trẽnh ngˆÙ¯i la‰p trẽnh du¯ng ca˘c tˆ¯ gÙễi nhÙ˘ ềe vieãt chˆÙng trẽnh, ca˘c tˆ¯ gÙễi nhÙ˘ na¯y taễo tha¯nh mo‰t ngo‚n ngˆı goễi la¯ Assembly ủ khi vieãt chˆÙng trẽnh baậng ngo‚n ngˆı Assembly thẽ vi xˆ˚ ly˘ seı kho‚ng hieÂu ủ muoãn vi xˆ˚ ly˘ hieÂu va¯ thˆễc hie‰n chˆÙng trẽnh thẽ pha˚i sˆ˚ duễng chˆÙng trẽnh bie‚n dÚch Assembler ềe chuyeÂn ca˘c le‰nh vieãt dˆÙ˘i daễng ngo‚n ngˆı Assembly tha¯nh ca˘c le‰nh daễng soã nhÚ pha‚n va¯ ca˘c ềÚa chấ daễng nhÚ pha‚n tˆÙng ˆ˘ng ro‡i naễp va¯o bo‰ nhÙ˘ thẽ vi xˆ˚ ly˘ mÙ˘i co˘ the thˆễc hie‰n ềˆÙễc. 3.3.3. Ca˘c nho˘m le‰nh cÙ ba˚n cu˚a vi xˆ˚ ly˘::: —oãi vÙ˘i ha‡u heãt ca˘c vi xˆ˚ ly˘ ta‰p le‰nh ềˆÙễc chia ra la¯m 9 nho˘m le‰nh cÙ ba˚n: ♦ Nho˘m le‰nh truye‡n dˆı lie‰u: Data transfers. ♦ Nho˘m le‰nh trao ềoÂi, truye‡n khoãi dˆı lie‰u, le‰nh tẽm kieãm: Exchanges, Block transfers, Searches. ♦ Nho˘m le‰nh soã hoễc va¯ logic: arithmetic and logic. ♦ Nho˘m le‰nh xoay va¯ dÚch: Rotates and shifts. ♦ Nho˘m le‰nh ềie‡u khieÂn CPU. Vi xˆ˚ ly˘ 25
  32. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT ♦ Nho˘m le‰nh ve‡ bit: Bit set, bit reset, and bit test. ♦ Nho˘m le‰nh nha˚y: Jumps. ♦ Nho˘m le‰nh goễi, trÙ˚ ve‡ va¯ nho˘m le‰nh baẩt ềa‡u: Calls, Return, and Restarts. ♦ Nho˘m le‰nh xuaãt nha‰p: Input and Output. Ca˘c maı gÙễi nhÙ˘ va¯ ca˘c maı nhÚ pha‚n cu˚a taãt ca˚ ca˘c le‰nh seı ềˆÙễc cho trong ca˘c so tay cu˚a nha¯ cheã taễo ềoãi vÙ˘i tˆ¯ng vi xˆ˚ ly˘ cuễ theÂ. 4.4.4.1. Ca˘c kieÂu truy xuaãt ềÚa chấ cu˚a mo‰t vi xˆ˚ ly˘::: Nhˆ ềaı trẽnh ba¯y Ù˚ ca˘c pha‡n tre‚n, vi xˆ˚ ly˘ co˘ the truy xuaãt bo‰ nhÙ˘ baậng nhie‡u ca˘ch ềe laãy dˆı lie‰u. Vi xˆ˚ ly˘ co˘ nhie‡u ca˘ch truy xuaãt thẽ chˆÙng trẽnh khi vieãt seı ca¯ng ngaẩn goễi raãt co˘ lÙễi cho ngˆÙ¯i la‰p trẽnh va¯ la¯m gia˚m thÙ¯i gian thˆễc hie‰n chˆÙng trẽnh. Chu˘ YŸ: Danh tˆ¯ truy xuaãt bo‰ nhÙ˘ co˘ nghÛa la¯ taễo ra ềÚa chấ ềe truy xuaãt dˆı lie‰u, vi xˆ˚ ly˘ truy xuaãt dˆı lie‰u co˘ the la¯ laãy dˆı lie‰u tˆ¯ o‚ nhÙ˘ na¯y hoaẻc lˆu trˆı dˆı lie‰u va¯o o‚ nhÙ˘ na¯y. Co˘ the goễi la¯ ca˘c kieÂu ềÚa chấ ho˘a bo‰ nhÙ˘ hay ca˘c kieÂu taễo ềÚa chấ ềe truy xuaãt bo‰ nhÙ˘. —e bieãt vi xˆ˚ ly˘ co˘ bao nhie‚u ca˘c truy xuaãt bo‰ nhÙ˘ ca‡n pha˚i kha˚o sa˘t tˆ¯ng vi xˆ˚ ly˘ cuễ theÂ. Ca˘c kieÂu truy xuaãt na¯y ềˆÙễc cho trong ca˘c so tay cheã taễo. Ca˘c kieÂu truy xuaãt ềÚa chấ cÙ ba˚n cu˚a mo‰t vi xˆ˚ ly˘ (ềˆÙễc goễi taẩt la¯ kieÂu ềÚnh ềÚa chấ): ♦ KieÂu ềÚnh ềÚa chấ nga‡m ềÚnh (Implied Addressing Mode). ♦ KieÂu ềÚnh ềÚa chấ tˆ˘c thÙ¯i (Immediate Addressing Mode). ♦ KieÂu ềÚnh ềÚa chấ trˆễc tieãp (Direct Addressing Mode). ♦ KieÂu ềÚnh ềÚa chấ gia˘n tieãp du¯ng thanh ghi (Register Indirect Addressing Mode). ♦ KieÂu ềÚnh ềÚa chấ chấ soã (Indexed Addressing Mode). ♦ KieÂu ềÚnh ềÚa chấ tˆÙng ềoãi (Relative Addressing Mode). a.a.a. KieÂu ềÚnh ềÚa chấ nga‡m ềÚnh ::: —e hieÂu ca˘c kieÂu truy xuaãt pha˚i du¯ng ta‰p le‰nh cu˚a mo‰t vi xˆ˚ ly˘ 8 bit. Vè duễ le‰nh co‰ng: ADD reg Le‰nh na¯y ềˆÙễc hieÂu la¯ no‰i dung cu˚a thanh ghi A ềˆÙễc co‰ng vÙ˘i no‰i dung cu˚a thanh ghi Reg keãt qua˚ lˆu trˆı va¯o thanh ghi A. b.b.b. KieÂu ềÚnh ềÚaềÚaềÚa chấ tˆ˘c thÙ¯i::: Mo‰t le‰nh ềˆÙễc chia ra la¯m 2 pha‡n thˆ˘ nhaãt la¯ maı le‰nh hay co¯n goễi la¯ maı co‚ng ta˘c, pha‡n thˆ˘ 2 la¯ ềÚa chấ. —oãi vÙ˘i kieÂu ềÚa chấ tˆ˘c thÙ¯i thẽ pha‡n thˆ˘ 2 la¯ dˆı lie‰u kho‚ng pha˚i la¯ ềÚa chấ. Vè duễ le‰nh naễp mo‰t dˆı lie‰u tˆ˘c thÙ¯i va¯o thanh ghi A ềˆÙễc vieãt nhˆ sau: MVI A, FE H. Trong ềo˘ MVI la¯ maı gÙễi nhÙ˘, FE la¯ dˆı lie‰u daễng soã Hex. Vẽ thanh ghi A chấ co˘ 8 bit ne‚n dˆı lie‰u tˆ˘c thÙ¯i co˘ ềo‰ da¯i la¯ 8 bit. c.c.c. KieÂu ềÚnh ềÚa chấ trˆễc tieãp: 226626 Vi xˆ˚ ly˘
  33. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT Vè duễ le‰nh di chuyeÂn no‰i dung cu˚a mo‰t o‚ nhÙ˘ co˘ ềÚa chấ 8000 H va¯o thanh ghi A: LDA 8000 H. LDA la¯ maı gÙễi nhÙ˘, ềÚa chấ 8000 H ềˆÙễc vieãt trˆễc tieãp trong ca‚u le‰nh, vÙ˘i vi xˆ˚ ly˘ 8 bit co˘ 16 ềˆÙ¯ng ềÚa chấ ne‚n pha˚i du¯ng 4 soã Hex ềe chấ ềÚnh mo‰t o‚ nhÙ˘. —oãi vÙ˘i nhˆıng le‰nh du¯ng kieÂu ềÚa chấ trˆễc tieãp thẽ le‰nh co˘ ềo‰ da¯i la¯ 3 byte: mo‰t byte la¯ maı le‰nh, 2 byte co¯n laễi la¯ ềÚa chấ cu˚a o‚ nhÙ˘ (ềoãi vÙ˘i vi xˆ˚ ly˘ 8 bit). d.d.d. KieÂu ềÚnh ềÚa chấ gia˘n tieãp du¯ng thanh ghi: —e minh hoễa kieÂu ềÚa chấ gia˘n tieãp du¯ng thanh ghi ta du¯ng le‰nh sau: Vè duễ: MOV A,M. Le‰nh na¯y seı di chuyeÂn no‰i dung cu˚a o‚ nhÙ˘ M co˘ ềÚa chấ chˆ˘a trong mo‰t caẻp thanh ghi. —oãi vÙ˘i vi xˆ˚ ly˘ 8085 thẽ ềÚa chấ na¯y thˆÙ¯ng chˆ˘a trong caẻp thanh ghi HL, vẽ ềÚa chấ 16 bit ne‚n pha˚i du¯ng caẻp thanh ghi mÙ˘i chˆ˘a heãt 16 bit ềÚa chấ. Chu˘ y˘ khi du¯ng le‰nh kieÂu na¯y ngˆÙ¯i la‰p trẽnh pha˚i qua˚n ly˘ gia˘ trÚ trong caẻp thanh ghi. e.e.e. KieÂu ềÚnh ềÚa chấ chấ soã: —oãi vÙ˘i mo‰t va¯i vi xˆ˚ ly˘ co˘ ca˘c thanh ghi chấ soã (Index register) ềˆÙễc du¯ng cho kieÂu ềÚa chấ chấ soã. KieÂu ềÚa chấ na¯y ềˆÙễc thˆễc hie‰n baậng ca˘ch co‰ng byte thˆ˘ 2 cu˚a le‰nh vÙ˘i no‰i dung cu˚a thanh ghi chấ soã ID. Vè duễ: le‰nh co‰ng no‰i dung thanh ghi A vÙ˘i no‰i dung cu˚a o‚ nhÙ˘ co˘ ềÚa chấ chˆ˘a trong thanh ghi chấ soã ID vÙ˘i byte dˆı lie‰u thˆ˘ 2: ADD A, (ID +n). n la¯ mo‰t soã co˘ chie‡u da¯i 8 bit. f.f.f. KieÂu ềÚnh ềÚa chấ tˆÙng ềoãi: KieÂu ềÚa chấ na¯y ga‡n gioãng nhˆ kieÂu ềÚa chấ chấ soã nhˆng thanh ghi ID ềˆÙễc thay theã baậng thanh ghi PC. —Úa chấ cu˚a o‚ nhÙ˘ ca‡n truy xuaãt ềˆÙễc tènh baậng ca˘ch co‰ng no‰i dung hie‰n taễi chˆ˘a trong thanh ghi PC co‰ng vÙ˘i byte dˆı lie‰u thˆ˘ 2. Vè duễ le‰nh JP 05 H : nha˚y ềeãn tÙ˘i thˆễc hie‰n le‰nh co˘ ềÚa chấ ca˘ch bo‰ ềeãm chˆÙng trẽnh PC la¯ 5 byte. IV. KHAÔO SAŸT VI XữÔ LYŸ 8 BIT Z80: Sau khi kha˚o sa˘t mo‰t vi xˆ˚ ly˘ toÂng qua˘t ba‚y giÙ¯ chu˘ng ta ca‡n kha˚o sa˘t mo‰t va¯i vi xˆ˚ ly˘ 8 bit cuễ the ềˆÙễc sˆ˚ duễng pho bieãn trong ca˘c he‰ thoãng ềie‡u khieÂn. Maẻc du¯ hie‰n taễi ca˘c vi xˆ˚ ly˘ nga¯y ca¯ng maễnh ve‡ soã bit, cao toãc ềo‰ la¯m vie‰c, kha˚ naÍng truy xuaãt bo‰ nhÙ˘ lÙ˘n nhˆng ca˘c vi xˆ˚ ly˘ 8 bit va„n to‡n taễi vẽ chu˘ng ềˆÙễc sˆ˚ duễng trong ca˘c he‰ thoãng ềie‡u khieÂn nho˚ vÙ˘i lˆÙễng dˆı lie‰u xˆ˚ ly˘ kho‚ng nhie‡u vè duễ nhˆ ma˘y giaẻt tˆễ ềo‰ng thẽ vi xˆ˚ ly˘ chấ thˆễc hie‰n ca˘c co‚ng vie‰c nhˆ ềie‡u khieÂn ềo‰ng cÙ quay thua‰n nghÚch theo thÙ¯i gian, hieÂn thÚ thÙ¯i gian tre‚n led 7 ềoaễn, kieÂm tra ca˘c valve ềe ềo˘ng mÙ˚ nˆÙ˘c, kieÂm tra mˆễc nˆÙ˘c, lˆÙễng dˆı lie‰u xˆ˚ ly˘ kho‚ng nhie‡u neãu so vÙ˘i lˆÙễng dˆı lie‰u ma¯ ca˘c vi xˆ˚ ly˘ cu˚a ma˘y tènh xˆ˚ ly˘. Trong pha‡n na¯y chu˘ng ta kha˚o sa˘t 2 vi xˆ˚ ly˘ 8 bit: vi xˆ˚ ly˘ 8085 cu˚a ha˚ng Intel va¯ vi xˆ˚ ly˘ Z80 cu˚a haıng Zilog. Vi xˆ˚ ly˘ Z80 cu˚a haıng Zilog ềˆÙễc pha˘t trieÂn tˆ¯ vi xˆ˚ ly˘ goãc 8080 cu˚a haıng Intel. 1.1.1. SÙ ềo‡ caãu tru˘c be‚n trong cu˚a vi xˆ˚ ly˘ Z80Z80:::: Vi xˆ˚ ly˘ 27
  34. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT Caãu tru˘c cu˚a vi xˆ˚ ly˘ Z80 nhˆ hẽnh 2-11 : Hẽnh 2-11. SÙ ềo‡ caãu tru˘c be‚n trong cu˚a vi xˆ˚ ly˘ Z80. Trong sÙ ềo‡ caãu tru˘c cu˚a vi xˆ˚ ly˘ Z80 co˘: Khoãi ALU cu¯ng vÙ˘i 2 thanh ghi co˘ te‚n la¯ Latch co˘ chˆ˘c naÍng gioãng nhˆ ềaı kha˚o sa˘t. Khoãi ca˘c thanh ghi go‡m co˘: thanh ghi A, B, C, D, H, L, F, Aớ, Bớ, Cớ, Dớ, Hớ, Lớ, Fớ, IP, PC, SP, IX va¯ IY. Bus dˆı lie‰u 2 chie‡u D0 ˜ D7 du¯ng giao tieãp dˆı lie‰u vÙ˘i ca˘c thieãt bÚ ne‚n ngoa¯i ủ khoãi ềe‰m bus dˆı lie‰u co˘ chˆ˘c naÍng ềe‰m ềe cho phe˘p keãt noãi nhie‡u thieãt bÚ hay taÍng fan_out. Bus dˆı lie‰u be‚n trong cho phe˘p lie‚n laễc dˆı lie‰u giˆıa ca˘c khoãi. 228828 Vi xˆ˚ ly˘
  35. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT Eus ềÚa chấ mo‰t chie‡u go‡m co˘ 16 ềˆÙ¯ng co˘ chˆ˘c naÍng ta˚i ềÚa chấ ềe truy xuaãt bo‰ nhÙ˘ va¯ thieãt bÚ ngoaễi vi, khoãi ềe‰m bus ềÚa chấ du¯ng ềe taÍng fan-out. Khoãi gia˚i maı le‰nh du¯ng ềe gia˚i maı le‰nh cho khoãi ềie‡u khieÂn thˆễc hie‰n le‰nh. Khoãi ềie‡u khieÂn ngaẩt. Ca˘c khoãi co¯n bao go‡m: khoãi ềie‡u khieÂn bus, khoãi ềie‡u khieÂn ềoễc ghi bo‰ nhÙ˘, ềoễc ghi IO, khoãi ềie‡u khieÂn vi xˆ˚ ly˘, khoãi reset va¯ la¯m tˆÙi. Nguo‡n sˆ˚ duễng cho vi xˆ˚ ly˘ la¯ +5V, xung clock ềˆÙễc cung caãp tˆ¯ be‚n ngoa¯i. 2.2.2. To chˆ˘c thanh ghi be‚n trong cu˚a vi xˆ˚ ly˘ Z80Z80:::: Vi xˆ˚ ly˘ Z80 co˘ 16 thanh ghi 8 bit va¯ 4 thanh ghi 16 bit ềˆÙễc trẽnh ba¯y nhˆ hẽnh 2-12. Taãt ca˚ ca˘c thanh ghi cu˚a vi xˆ˚ ly˘ Z80 ềˆÙễc sˆ˚ duễng gioãng nhˆ ca˘c o‚ nhÙ˘ RAM tÛnh. Ca˘c thanh ghi bao go‡m 2 nho˘m thanh ghi tho‚ng duễng co˘ the sˆ˚ duễng mo‰t ca˘ch ềo‰c la‰p nhˆ nhˆıng thanh ghi 8 bit hoaẻc co˘ the keãt hÙễp laễi taễo tha¯nh nhˆıng caẻp thanh ghi 16 bit. Mo„i nho˘m thanh ghi go‡m 6 thanh ghi tho‚ng duễng, mo‰t thanh ghi tèch luıy A va¯ mo‰t thanh ghi traễng tha˘i. Hẽnh 2-12. SÙ ềo‡ cha‚n cu˚a vi xˆ˚ ly˘ Z80. Thanh ghi PC: thanh ghi na¯y gioãng nhˆ thanh ghi PC ềaı trẽnh ba¯y. Thanh ghi na¯y chˆ˘a ềÚa chấ cu˚a le‰nh hie‰n ha¯nh ềang ềˆÙễc ềo˘n tˆ¯ bo‰ nhÙ˘. No‰i dung cu˚a thanh ghi PC ềˆÙễc taÍng le‚n ềe qua˚n ly˘ le‰nh tieãp theo sau khi no‰i dung cu˚a no˘ ềˆÙễc chuyeÂn sang bus ềÚa chấ. Khi thˆễc hie‰n le‰nh Jump thẽ ềÚa chấ cu˚a le‰nh nÙi nha˚y ềeãn seı ềˆÙễc ềaẻt va¯o thanh ghi PC va¯ seı ghi ềe¯ le‚n gia˘ trÚ ềaı taÍng. Thanh ghi SP: thanh ghi na¯y gioãng nhˆ thanh ghi SP ềaı trẽnh ba¯y. Thanh ghi SP chˆ˘a ềÚa chấ hie‰n ha¯nh cu˚a bo‰ nhÙ˘ ngaÍn xeãp naậm trong vu¯ng bo‰ nhÙ˘ RAM. Vu¯ng nhÙ˘ RAM be‚n ngoa¯i ềˆÙễc to chˆ˘c theo kieÂu va¯o sau ra trˆÙ˘c (LIFO). Dˆı lie‰u cu˚a ca˘c thanh ghi ềˆÙễc caãt va¯o ngaÍn xeãp hoaẻc ềˆÙễc laãy ra kho˚i ngaÍn xeãp baậng ca˘ch thˆễc hie‰n ca˘c le‰nh PUSH va¯ POP. Bo‰ nhÙ˘ ngaÍn xeãp co¯n ềˆÙễc du¯ng ềe lˆu trˆı ềÚa chấ cu˚a thanh ghi PC khi thˆễc hie‰n le‰nh goễi chˆÙng trẽnh con hay khi CPU bÚ ngaẩt. Thanh ghi chấ soã IX va¯ IY: 2 thanh ghi chấ soã lˆu ềÚa chấ 16 bit ềˆÙễc du¯ng cho kieÂu ềÚnh ềÚa chấ du¯ng chấ soã. Trong kieÂu ềÚnh ềÚa chấ na¯y thẽ mo‰t thanh ghi seı qua˚n ly˘ ềÚa chấ cu˚a vu¯ng dˆı lie‰u ềˆÙễc lˆu trˆı hoaẻc qua˚n ly˘ ềÚa chấ cu˚a vu¯ng dˆı lie‰u ca‡n di chuyeÂn. Vi xˆ˚ ly˘ 29
  36. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT Ngoa¯i ra 2 thanh ghi na¯y co¯n ềˆÙễc sˆ˚ duễng trong kieÂu ềÚnh ềÚa chấ du¯ng chấ soã co˘ ềo‰ dÙ¯i seı tie‰n èch hÙn khi ba˚ng dˆı lie‰u ềˆÙễc sˆ˚ duễng. Thanh ghi lˆu ềÚa chấ ngaẩt (I): thˆÙ¯ng thẽ ca˘c ngaẩt cu˚a vi xˆ˚ ly˘ co˘ 1 ềÚa chấ ngaẩt coã ềÚnh vè duễ nhˆ ngaẩt kho‚ng ngaÍn ềˆÙễc NMI thẽ khi vi xˆ˚ ly˘ ềa˘p ˆ˘ng ngaẩt na¯y no˘ seı thˆễc hie‰n chˆÙng trẽnh phuễc vuễ ngaẩt taễi ềÚa chấ 0066H do nha¯ thieãt keã qui ềÚnh. VÙ˘i kieÂu nhˆ va‰y thẽ chấ co˘ mo‰t chˆÙng trẽnh con phuễc vuễ ngaẩt va¯ pha˚i baẩt ềa‡u taễi ềÚa chấ qui ềÚnh. —e ềa˘p ˆ˘ng ềˆÙễc nhie‡u chˆÙng trẽnh con phuễc vuễ ngaẩt kha˘c nhau thẽ nha¯ thieãt keã vi xˆ˚ ly˘ Z80 sˆ˚ duễng ngaẩt INT va¯ vie‰c xˆ˚ ly˘ ềÚa chấ nhˆ sau: ềÚa chấ cu˚a chˆÙng trẽnh con phuễc vuễ ngaẩt la¯ 16 bit, trong ềo˘ 8 bit cao ềˆÙễc lˆu trong thanh ghi I, co¯n 8 bit ềÚa chấ thaãp thẽ do thieãt bÚ ye‚u ca‡u ngaẩt cung caãp. Caãu tru˘c na¯y cho phe˘p ca˘c chˆÙng trẽnh con phuễc vuễ ngaẩt co˘ the ềÚnh vÚ taễi baãt ky¯ vÚ trè na¯o trong vu¯ng nhÙ˘ vÙ˘i thÙ¯i gian nha˚y ềeãn thˆễc hie‰n chˆÙng trẽnh con phuễc vuễ ngaẩt la¯ toãi thieÂu. Thanh ghi la¯m tˆÙi bo‰ nhÙ˘ R (refresh register): vi xˆ˚ ly˘ Z80 co˘ mo‰t bo‰ ềeãm la¯m tˆÙi bo‰ nhÙ˘ ềe cho phe˘p sˆ˚ duễng bo‰ nhÙ˘ ềo‰ng DRAM gioãng nhˆ SRAM. 7 bit cu˚a thanh ghi 8 bit na¯y chènh la¯ bo‰ ềeãm seı tˆễ ềo‰ng taÍng gia˘ trÚ sau mo„i chu ky¯ ềo˘n le‰nh tˆ¯ bo‰ nhÙ˘. Bit thˆ˘ 8 co¯n laễi co˘ the la‰p trẽnh ềˆÙễc tˆ¯ le‰nh ỡ LD R, A ợ. Dˆı lie‰u ềeãm trong bo‰ ềeãm 7 bit ềˆÙễc gÙ˚i ềeãn bus ềÚa chấ thaãp cu¯ng vÙ˘i tèn hie‰u la¯m tˆÙi bo‰ nhÙ˘ khi CPU ềang gia˚i maı le‰nh va¯ thˆễc hie‰n le‰nh ềaı ềo˘n ve‡. VÙ˘i kieÂu la¯m tˆÙi bo‰ nhÙ˘ nhˆ theã seı kho‚ng la¯m cha‰m toãc ềo‰ la¯m vie‰c cu˚a CPU. Trong khoa˚ng thÙ¯i gian la¯m tˆÙi bo‰ nhÙ˘ thẽ no‰i dung cu˚a thanh ghi I ềˆÙễc ềaẻt le‚n 8 bit cao cu˚a bus ềÚa chấ. Thanh ghi Accumulator va¯ thanh ghi Flag: vi xˆ˚ ly˘ Z80 co˘ 2 thanh ghi A va¯ 2 thanh ghi cÙ¯ 8 bit. Hoaễt ềo‰ng cu˚a ca˘c thanh ghi na¯y gioãng nhˆ ềaı trẽnh ba¯y Ù˚ pha‡n trˆÙ˘c. Ca˘c thanh ghi tho‚ng duễng: vi xˆ˚ ly˘ Z80 co˘ 2 nho˘m thanh ghi tho‚ng duễng ủ mo„i nho˘m co˘ 8 thanh ghi 8 bit co˘ the sˆ˚ duễng nhˆ nhˆıng thanh ghi 8 bit ềo‰c la‰p hay cuıng co˘ the sˆ˚ duễng nhˆ nhˆıng caẻp thanh ghi 16 bit. Mo‰t nho˘m ềˆÙễc goễi la¯ BC, DE va¯ HL trong khi nho˘m co¯n laễi la¯ BCớ, DEớ va¯ HLớ. Taễi mo„i mo‰t thÙ¯i ềieÂm, ngˆÙ¯i la‰p trẽnh co˘ the lˆễa choễn 1 trong 2 nho˘m thanh ghi ềe la¯m vie‰c tho‚ng qua le‰nh. Trong nhˆıng he‰ thoãng ềo¯i ho˚i ềa˘p ˆ˘ng ngaẩt nhanh thẽ nho˘m ca˘c thanh ghi tho‚ng duễng cu¯ng vÙ˘i thanh ghi A, thanh ghi cÙ¯ co˘ the ềˆÙễc ềe da¯nh sˆ˚ duễng cho chˆÙng trẽnh con phuễc vuễ ngaẩt ye‚u ca‡u ềa˘p ˆ˘ng nhanh ủ chấ ca‡n thˆễc hie‰n 1 le‰nh trao ềoÂi ềe chuyeÂn sang chˆÙng trẽnh con. Chˆ˘c naÍng na¯y la¯m thÙ¯i gian ềa˘p ˆ˘ng ye‚u ca‡u ngaẩt nhanh hÙn vẽ neãu kho‚ng co˘ chˆ˘c naÍng na¯y thẽ pha˚i tieãn ha¯nh caãt dˆı lie‰u cu˚a ca˘c thanh ghi va¯o bo‰ nhÙ˘ ngaÍn xeãp la¯m toãn nhie‡u thÙ¯i gian trˆÙ˘c khi thˆễc hie‰n chˆÙng trẽnh con phuễc vuễ ngaẩt. Khoãi ALU: khoãi ALU be‚n trong vi xˆ˚ ly˘ Z80 co˘ chˆ˘c naÍng thˆễc hie‰n ca˘c le‰nh soã hoễc va¯ le‰nh logic. Khoãi ALU keãt noãi vÙ˘i ca˘c thanh ghi be‚n trong va¯ bus dˆı lie‰u be‚n ngoa¯i tho‚ng qua bus dˆı lie‰u be‚n trong. Ca˘c le‰nh ềˆÙễc thˆễc hie‰n bÙ˚i khoãi ALU bao go‡m: Le‰nh co‰ng, le‰nh trˆ¯, le‰nh AND, le‰nh OR, le‰nh EX-OR, le‰nh so sa˘nh , le‰nh dÚch tra˘i, dÚch pha˚i, le‰nh xoay, le‰nh taÍng, le‰nh gia˚m, le‰nh set bit, le‰nh reset bit le‰nh test bit. Thanh ghi le‰nh IR va¯ khoãi ềie‡u khieÂn CPU: mo„i maı le‰nh ềˆÙễc ềo˘n ve‡ tˆ¯ bo‰ nhÙ˘ seı lˆu trong thanh ghi le‰nh IR va¯ seı ềˆÙễc gia˚i maı. Ca˘c tha¯nh pha‡n cu˚a khoãi ềie‡u khieÂn seı thˆễc hie‰n chˆ˘c naÍng na¯y, sau ềo˘ khoãi ềie‡u khieÂn taễo ra va¯ cung caãp ca˘c tèn hie‰u ềie‡u khieÂn ca‡n thieãt ềe 330030 Vi xˆ˚ ly˘
  37. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT oễc dˆı lie‰u tˆ¯ ca˘c thanh ghi hoaẻc ghi dˆı lie‰u le‚n ca˘c thanh ghi, ềie‡u khieÂn khoãi ALU thˆễc hie‰n phe˘p toa˘n va¯ taễo ra ca˘c tèn hie‰u ềie‡u khieÂn ca˘c ềoãi tˆÙễng be‚n ngoa¯i. 3.3.3.0. Chˆ˘c naÍng ca˘c cha‚n cu˚a vi xˆ˚ ly˘ Z80Z80:::: Vi xˆ˚ ly˘ Z80 co˘ sÙ ềo‡ cha‚n nhˆ hẽnh 2-13: Hẽnh 2-13. SÙ ềo‡ cha‚n cu˚a vi xˆ˚ ly˘ Z80. Vi xˆ˚ ly˘ Z80 co˘ 40 cha‚n, trong ềo˘: Bus ềÚa chấ co˘ 16 cha‚n tˆ¯ A0 ˜ A15. Bus dˆı lie‰u co˘ 8 cha‚n tˆ¯ D0 ˜ D7. Bus ềie‡u khieÂn he‰ thoãng co˘ 6 cha‚n: M1, MREQ , IORQ , RD , WR , RFSH —ie‡u khieÂn CPU co˘ 5 cha‚n: HALT , WAIT , INT , NMI , RESET —ie‡u khieÂn bus co˘ 2 cha‚n: BUSRQ , BUSACK Nguo‡n cung caãp 2 cha‚n: Vcc va¯ GND. Nguo‡n nha‰n xung clock 1 cha‚n CLK. Gioãng nhˆ vi xˆ˚ ly˘ toÂng qua˘t thẽ chˆ˘c naÍng cu˚a bus ềÚa chấ du¯ng ềe ta˚i ềÚa chấ khi vi xˆ˚ ly˘ truy xuaãt bo‰ nhÙ˘ hoaẻc ngoaễi vi IO. Chˆ˘c naÍng cu˚a bus dˆı lie‰u la¯ ta˚i dˆı lie‰u giˆıa vi xˆ˚ ly˘ vÙ˘i bo‰ nhÙ˘ hoaẻc thieãt bÚ ngoaễi vi. Hai bus ềÚa chấ va¯ dˆı lie‰u du¯ng ềe keãt noãi vÙ˘i bo‰ nhÙ˘ va¯ ngoaễi vi IO. Vi xˆ˚ ly˘ 31
  38. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT T0n hie‰u RD , WR , MREQ , IORQ : la¯ ca˘c cha‚n xuaãt tèn hie‰u, khi vi xˆ˚ ly˘ ềie‡u khieÂn ca˘c cha‚n RD , WR cu¯ng vÙ˘i tèn hie‰u MREQ ềe thˆễc hie‰n qua˘ trẽnh ềoễc hoaẻc ghi dˆı lie‰u giˆıa vi xˆ˚ ly˘ vÙ˘i bo‰ nhÙ˘. Khi vi xˆ˚ ly˘ ềie‡u khieÂn ca˘c cha‚n RD , WR cu¯ng vÙ˘i tèn hie‰u IORQ ềe thˆễc hie‰n qua˘ trẽnh ềoễc hoaẻc ghi dˆı lie‰u giˆıa vi xˆ˚ ly˘ vÙ˘i thieãt bÚ ngoaễi vi IO. Trong he‰ thoãng ta pha˚i sˆ˚ duễng ca˘c cha‚n na¯y ềe giao tieãp vÙ˘i bo‰ nhÙ˘ va¯ ngoaễi vi IO. Tèn hie‰u RFSH du¯ng ềe ềie‡u khieÂn la¯m tˆÙi bo‰ nhÙ˘ RAM. Khi kho‚ng ca‡n la¯m tˆÙi thẽ cha‚n na¯y ềe troãng. Tèn hie‰u M1 la¯ tèn hie‰u ba˘o hie‰u mo‰t chu ky¯ ma˘y. Tèn hie‰u M1 keãt hÙễp vÙ˘i tèn hie‰u MREQ ềe xa˘c ềÚnh chu ky¯ ma˘y hie‰n taễi la¯ chu ky¯ ềo˘n le‰nh trong qua˘ trẽnh thˆễc hie‰n le‰nh. Tèn hie‰u M1 keãt hÙễp vÙ˘i tèn hie‰u IORQ ềe xa˘c ềÚnh chu ky¯ tra˚ lÙ¯i ngaẩt. Tèn hie‰u INT la¯ tèn hie‰u ye‚u ca‡u ngaẩt tˆ¯ be‚n ngoa¯i hay tˆ¯ thieãt bÚ ngoaễi vi tèch cˆễc mˆ˘c thaãp. CPU seı thˆễc hie‰n ye‚u ca‡u ngaẩt sau khi thˆễc hie‰n xong le‰nh ềang thˆễc hie‰n va¯ trˆ¯ khi ngaẩt na¯y ềˆÙễc cho phe˘p bÙ˚i pha‡n me‡m. Khi sˆ˚ duễng thẽ ngoı va¯o na¯y thˆÙ¯ng noãi vÙ˘i ềie‰n trÙ˚ ke˘o le‚n ềe khi ta˘c ềo‰ng thẽ xuoãng mˆ˘c thaãp. Tèn hie‰u NMI la¯ tèn hie‰u ye‚u ca‡u ngaẩt tˆ¯ be‚n ngoa¯i hay tˆ¯ thieãt bÚ ngoaễi vi tèch cˆễc caễnh xuoãng. Ngaẩt NMI cao hÙn so vÙ˘i ngaẩt INT va¯ la¯ tèn hie‰u ngaẩt kho‚ng the ngaÍn ềˆÙễc . CPU seı thˆễc hie‰n ye‚u ca‡u ngaẩt sau khi thˆễc hie‰n xong le‰nh ềang thˆễc hie‰n, ềÚa chấ cu˚a chˆÙng trẽnh con phuễc vuễ ngaẩt taễi ềÚa chấ 0066H. Tèn hie‰u RESET la¯ tèn hie‰u ngoı va¯o tèch cˆễc mˆ˘c thaãp, khi ngoı va¯o reset bÚ ta˘c ềo‰ng thẽ CPU seı reset taãt ca˚ ca˘c bit cho phe˘p ngaẩt, xoa˘ thanh ghi PC, ca˘c thanh ghi I va¯ R thieãt la‰p traễng tha˘i ngaẩt Ù˚ mode 0. Trong khoa˚ng thÙ¯i gian ngaẩt thẽ ca˘c bus ềÚa chấ va¯ bus dˆı lie‰u Ù˚ traễng tha˘i toÂng trÙ˚ cao, taãt ca˚ ca˘c ềˆÙ¯ng tèn hie‰u ềie‡u khieÂn ềe‡u Ù˚ traễng tha˘i kho‚ng tèch cˆễc. Chu˘ y˘ tèn hie‰u reset pha˚i Ù˚ traễng tha˘i tèch cˆễc trong khoa˚ng thÙ¯i gian èt nhaãt la¯ 3 chu ky¯ xung clock. Tèn hie‰u WAIT la¯ tèn hie‰u ngoı va¯o tèch cˆễc mˆ˘c thaãp, tèn hie‰u na¯y (khi Ù˚ mˆ˘c cao) du¯ng ềe ba˘o cho CPU bieãt o‚ nhÙ˘ ềang truy xuaãt hay thieãt bÚ ngoaễi vi ềang truy xuaãt chˆa saán sa¯ng cho vie‰c nha‰n hay gÙ˚i dˆı lie‰u. CPU seı va¯o traễng tha˘i chÙ¯ cho ềeãn khi tèn hie‰u WAIT trÙ˚ laễi traễng tha˘i tèch cˆễc mˆ˘c thaãp. Tèn hie‰u HALT la¯ tèn hie‰u ngoı ra tèch cˆễc mˆ˘c thaãp, tèn hie‰u na¯y (khi Ù˚ mˆ˘c cao) du¯ng ềe ba˘o cho thieãt bÚ be‚n ngoa¯i bieãt: CPU ềang thˆễc hie‰n le‰nh HALT va¯ ềang ềÙễi mo‰t trong 2 ye‚u ca‡u ngaẩt xa˚y ra trˆÙ˘c khi kho‚i phuễc laễi hoaễt ềo‰ng bẽnh thˆÙ¯ng. Trong khoa˚ng thÙ¯i gian HALT thẽ CPU thˆễc hie‰n le‰nh NOP ềe tieãp tuễc giˆı hoaễt ềo‰ng la¯m tˆÙi bo‰ nhÙ˘. Tèn hie‰u BUSRQ la¯ tèn hie‰u ngoı va¯o tèch cˆễc mˆ˘c thaãp, tèn hie‰u na¯y co˘ mˆ˘c ˆu tie‚n cao hÙn ngaẩt kho‚ng che ềˆÙễc NMI va¯ no˘ seı ềˆÙễc thˆễc hie‰n ngay sau mo„i chu ky¯ ma˘y hay chu ky¯ xung clock. Tèn hie‰u na¯y seı ye‚u ca‡u vi xˆ˚ ly˘ ềie‡u khieÂn bus ềÚa chấ, bus dˆı lie‰u va¯ ca˘c ềˆÙ¯ng tèn hie‰u ềie‡u khieÂn MREQ , IORQ , RD , WR Ù˚ traễng tha˘i toÂng trÙ˚ cao va¯ thieãt bÚ kha˘c co˘ the sˆ˚ duễng ca˘c bus trong he‰ thoãng. Tèn hie‰u BUSACK la¯ tèn hie‰u ngoı ra tèch cˆễc mˆ˘c thaãp, tèn hie‰u na¯y xa˘c ềÚnh CPU ềie‡u khieÂn bus ềÚa chấ, bus dˆı lie‰u va¯ ca˘c ềˆÙ¯ng tèn hie‰u ềie‡u khieÂn MREQ , IORQ , RD , WR Ù˚ 323232 Vi xˆ˚ ly˘
  39. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT traễng tha˘i toÂng trÙ˚ cao va¯ thieãt bÚ kha˘c co˘ the sˆ˚ duễng ca˘c bus trong he‰ thoãng. Ta co˘ the xem tèn hie‰u BUSACK la¯ tèn hie‰u tra˚ lÙ¯i cu˚a CPU khi CPU nha‰n tèn hie‰u ye‚u ca‡u nhˆÙ¯ng bus BUSRQ . 4.4.4.1. Gia˚n ềo‡ thÙ¯i gian cu˚a vi xˆ˚ ly˘ Z8Z80000:::: Vi xˆ˚ ly˘ Z80 thˆễc hie‰n ca˘c le‰nh theo tˆ¯ng bˆÙ˘c tho‚ng qua ca˘c hoaễt ềo‰ng cÙ ba˚n bao go‡m: • —oễc hoaẻc ghi bo‰ nhÙ˘. • —oễc hoaẻc ghi IO. • Tra˚ lÙ¯i ngaẩt. Taãt ca˚ ca˘c le‰nh la¯ mo‰t chuo„i hoaễt ềo‰ng cÙ ba˚n noãi tieãp nhau. Mo„i mo‰t hoaễt ềo‰ng co˘ the thˆễc hie‰n tˆ¯ 3 chu ky¯ xung clock ềeãn 6 chu ky¯ xung clock ềe hoa¯n taãt hoaẻc co˘ the bÚ ke˘o da¯i hÙn ềe ềo‡ng bo‰ toãc ềo‰ la¯m vie‰c cu˚a CPU vÙ˘i toãc ềo‰ la¯m vie‰c cu˚a ca˘c thieãt bÚ be‚n ngoa¯i. Ca˘c chu ky¯ xung clock ềˆÙễc xem la¯ ca˘c chu ky¯ T (time) va¯ ca˘c hoaễt ềo‰ng ềˆÙễc xem la¯ ca˘c chu ky¯ ma˘y M (machine). Hẽnh 2-14 minh hoaễ ca˘c chu ky¯ xung clock T va¯ chu ky¯ ma˘y M khi CPU thˆễc hie‰n lie‚n tuễc ca˘c le‰nh: H(nh 2-14. SÙ ềo‡ cha‚n cu˚a vi xˆ˚ ly˘ Z80. Chu˘ y˘ le‰nh na¯y bao go‡m 3 chu ky¯ ma˘y M1, M2 va¯ M3. ‘Ô chu ky¯ ma˘y thˆ˘ nhaãt cu˚a baãt ky¯ le‰nh na¯o chènh la¯ chu ky¯ ềo˘n le‰nh tˆ¯ bo‰ nhÙ˘ ủ chu ky¯ na¯y ca‡n tˆ¯ 4, 5 hoaẻc 6 chu ky¯ xung clock T. Chu ky¯ ềo˘n le‰nh ềˆÙễc sˆ˚ duễng ềe ềo˘n maı le‰nh cu˚a le‰nh keã ềe thˆễc hie‰n. Tieãp theo la¯ ca˘c chu ky¯ di chuyeÂn dˆı lie‰u (ềoễc hoaẻc ghi) giˆıa CPU va¯ bo‰ nhÙ˘ hoaẻc thieãt bÚ ngoaễi vi IO xa˚y ra khoa˚ng tˆ¯ 3 ềeãn 5 chu ky¯ xung clock T. Trong khoa˚ng thÙ¯i gian T2 va¯ mo„i chu ky¯ ềÙễi Tw theo sau thẽ CPU seı laãy ma„u tèn hie‰u ngoı va¯o WAIT khi co˘ caễnh xuoãng cu˚a xung clock. Neãu tèn hie‰u WAIT Ù˚ traễng tha˘i tèch cˆễc thẽ mo‰t chu ky¯ ềÙễi tieãp theo seı ềˆÙễc thˆễc hie‰n. Sˆ˚ duễng kyı thua‰t na¯y ềe CPU co˘ the ke˘o da¯i thÙ¯i gian ềoễc hoaẻc ghi ềe tˆÙng thèch vÙ˘i baãt ky¯ loaễi bo‰ nhÙ˘ na¯o. Chu ky¯ —o˘n le‰nh: hẽnh 2-15 la¯ gia˚n ềo‡ thÙ¯i gian cu˚a chu ky¯ ềo˘n le‰nh tˆ¯ bo‰ nhÙ˘ hay chu ky¯ M1. Trong chu ky¯ na¯y CPU ềaẻt ềÚa chấ le‚n bus ềÚa chấ taễi thÙ¯i ềieÂm baẩt ềa‡u cu˚a chu ky¯ M1. Sau nˆıa chu ky¯ cu˚a xung clock: thẽ tèn hie‰u MREQ chuyeÂn sang traễng tha˘i tèch cˆễc. Taễi thÙ¯i ềieÂm na¯y ềÚa chấ tre‚n bus ềaı co˘ ều˚ thÙ¯i gian ềe oÂn ềÚnh, do ềo˘ caễnh xuoãng cu˚a tèn hie‰u MREQ ềˆÙễc du¯ng nhˆ xung clock cho phe˘p chip ềoãi vÙ˘i bo‰ nhÙ˘ ềo‰ng. Vi xˆ˚ ly˘ 33
  40. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT T0n hie‰u RD cuıng chuyeÂn sang traễng tha˘i tèch cˆễc ềe xa˘c ềÚnh raậng dˆı lie‰u ềoễc tˆ¯ bo‰ nhÙ˘ seı ềˆÙễc phe˘p va¯o bus dˆı lie‰u cu˚a CPU. CPU seı laãy ma„u dˆı lie‰u tˆ¯ bo‰ nhÙ˘ tre‚n bus dˆı lie‰u khi co˘ caễnh le‚n cu˚a xung clock Ù˚ chu ky¯ T3 va¯ ềo‡ng thÙ¯i CPU seı chuyeÂn ca˘c tèn hie‰u MREQ , RD traễng tha˘i kho‚ng tèch cˆễc. Va‰y CPU ềaı laãy dˆı lie‰u trˆÙ˘c khi chuyeÂn tèn hie‰u RD sang traễng tha˘i kho‚ng tèch cˆễc. Ca˘c chu ky¯ T3 va¯ T4 du¯ng ềe la¯m tˆÙi ca˘c bo‰ nhÙ˘ RAM ềo‰ng. CPU seı du¯ng ca˘c khoa˚ng thÙ¯i gian na¯y ềe gia˚i maı le‰nh va¯ thˆễc hie‰n le‰nh ềaı ềˆÙễc ềo˘n ne‚n seı kho‚ng co˘ hoaễt ềo‰ng na¯o ềˆÙễc thˆễc hie‰n tong khoa˚ng thÙ¯i gian cu˚a T3 va¯ T4. Chu˘ y˘ dˆı lie‰u ềoễc Ù˚ chu ky¯ na¯y la¯ maı le‰nh. Hẽnh 2-15. Chu ky¯ ềo˘n maı le‰nh. Chu ky¯ ềoễc hoaẻc ghi dˆı lie‰u : hẽnh 2-16 la¯ gia˚n ềo‡ thÙ¯i gian cu˚a chu ky¯ ềoễc hoaẻc ghi dˆı lie‰u giˆıa CPU vÙ˘i bo‰ nhÙ˘ kha˘c vÙ˘i chu ky¯ ềo˘n le‰nh. Tèn hie‰u MREQ va¯ tèn hie‰u RD ềˆÙễc ềie‡u khieÂn gioãng nhau trong chu ky¯ ềoễc dˆı lie‰u. Trong chu ky¯ ghi dˆı lie‰u le‚n bo‰ nhÙ˘, tèn hie‰u MREQ cuıng Ù˚ traễng tha˘i tèch cˆễc khi ềÚa chấ tre‚n bus ềaı oÂn ềÚnh ne‚n no˘ ềˆÙễc du¯ng nhˆ la¯ tèn hie‰u cho phe˘p ềoãi vÙ˘i bo‰ nhÙ˘ ềo‰ng. Tèn hie‰u WR seı chuyeÂn sang traễng tha˘i tèch cˆễc khi dˆı lie‰u tre‚n bus ềaı oÂn ềÚnh ne‚n no˘ ềˆÙễc du¯ng ềe ềie‡u khieÂn cha‚n WR cu˚a bo‰ nhÙ˘ ềe ye‚u ca‡u bo‰ nhÙ˘ caãt dˆı lie‰u tre‚n bus dˆı lie‰u. Tèn hie‰u WR seı chuyeÂn sang traễng tha˘i kho‚ng tèch cˆễc trˆÙ˘c khi ềÚa chấ va¯ dˆı lie‰u tre‚n bus thay ềoÂi hay trˆÙ˘c khi chuyeÂn sang chu ky¯ ma˘y keã tieãp. 334434 Vi xˆ˚ ly˘
  41. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT Hẽnh 2-16. Chu ky¯ ềoễc hoaẻc ghi bo‰ nhÙ˘. Chu ky¯ ềoễc hoaẻc ghi ngoaễi vi : hẽnh 2-17 la¯ gia˚n ềo‡ thÙ¯i gian cu˚a chu ky¯ ềoễc hoaẻc ghi dˆı lie‰u giˆıa CPU va¯ thieãt bÚ ngoaễi vi. Trong khoa˚ng thÙ¯i gian ềoễc /ghi IO thẽ CPU thˆÙ¯ng tˆễ ềo‰ng xen va¯o 1 chu ky¯ ềÙễi. Ly˘ do che¯n the‚m 1 chu ky¯ ềÙễi la¯ do khoa˚ng thÙ¯i gian CPU ềie‡u khieÂn cha‚n IORQ sang traễng tha˘i tèch cˆễc cho ềeãn khi laãy ma„u raãt ngaẩn. Neãu kho‚ng che¯n the‚m chu ky¯ ềÙễi thẽ ca˘c thieãt bÚ IO loaễi MOS seı kho‚ng baẩt kÚp toãc ềo‰ la¯m vie‰c cu˚a CPU. Trong khoa˚ng thÙ¯i gian ềÙễi thẽ tèn hie‰u ềÙễi WAIT seı ềˆÙễc laãy ma„u. Trong hoaễt ềo‰ng ềoễc dˆı lie‰u tˆ¯ IO thẽ tèn hie‰u RD ềˆÙễc du¯ng ềe ye‚u ca‡u thieãt bÚ IO ềaı chấ ềÚnh xuaãt dˆı lie‰u, trong hoaễt ềo‰ng ghi dˆı lie‰u le‚n IO thẽ tèn hie‰u WR ềˆÙễc du¯ng ềe ye‚u ca‡u thieãt bÚ IO ềaı chấ ềÚnh nha‰n dˆı lie‰u. Hẽnh 2-17. Chu ky¯ ềoễc hoaẻc ghi thieãt bÚ ngoaễi vi. Chu ky¯ ye‚u ca‡u bus/tra˚ lÙ¯i ye‚u ca‡u bus : hẽnh 2-18 la¯ gia˚n ềo‡ thÙ¯i gian cu˚a chu ky¯ ye‚u ca‡u bus /tra˚ lÙ¯i bus. Tèn hie‰u BUSRQ ềˆÙễc CPU laãy ma„u khi co˘ caễnh le‚n cu˚a xung clock Vi xˆ˚ ly˘ 35
  42. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT cuoãi cu¯ng cu˚a mo„i chu ky¯ ma˘y. Neãu tèn hie‰u BUSRQ Ù˚ traễng tha˘i tèch cˆễc thẽ CPU thieãt la‰p bus ềÚa chấ, bus dˆı lie‰u va¯ ca˘c tèn hie‰u ềie‡u khieÂn 3 traễng tha˘i sang traễng tha˘i toÂng trÙ˚ cao ngay khi co˘ caễnh le‚n cu˚a xung clock keã. Taễi thÙ¯i ềieÂm na¯y baãt ky¯ thieãt bÚ na¯o be‚n ngoa¯i co˘ the ềie‡u khieÂn ca˘c bus ềe chuyeÂn dˆı lie‰u giˆıa bo‰ nhÙ˘ va¯ ca˘c thieãt bÚ ngoaễi vi IO (hoaễt ềo‰ng na¯y thˆÙ¯ng ềˆÙễc goễi la¯ truy xuaãt bo‰ nhÙ˘ trˆễc tieãp DMA (direct memory access). ThÙ¯i gian toãi ềa ềe CPU ềa˘p ˆ˘ng ye‚u ca‡u nhˆÙ¯ng bus da¯i ều˘ng baậng 1 chu ky¯ ma˘y va¯ thieãt bÚ ye‚u ca‡u nhˆÙ¯ng bus pha˚i giˆı tèn hie‰u ềie‡u khieÂn BUSRQ Ù˚ traễng tha˘i tèch cˆễc trong khoa˚ng ều˘ng baậng 1 chu ky¯ ma˘y. Neãu thÙ¯i gian ye‚u ca‡u nhˆÙ¯ng bus qua˘ da¯i va¯ neãu he‰ thoãng sˆ˚ duễng bo‰ nhÙ˘ ềo‰ng thẽ thieãt bÚ ye‚u ca‡u nhˆÙ¯ng bus pha˚i thˆễc hie‰n co‚ng vie‰c la¯m tˆÙi bo‰ nhÙ˘. TrˆÙ¯ng hÙễp na¯y chấ xa˚y ra khi khoãi lˆÙễng dˆı lie‰u qua˘ lÙ˘n ca‡n pha˚i di chuyeÂn bÙ˚i DMA. Trong khoa˚ng thÙ¯i gian thˆễc hie‰n ye‚u ca‡u nhˆÙ¯ng bus thẽ CPU kho‚ng the thˆễc hie‰n baãt ky¯ ye‚u ca‡u ngaẩt na¯o cho du¯ la¯ ngaẩt kho‚ng che ềˆÙễc. Hẽnh 2-18. Chu ky¯ ềoễc hoaẻc ghi thieãt bÚ ngoaễi vi. Chu ky¯ ye‚u ca‡u ngaẩt/tra˚ lÙ¯i ngaẩt : hẽnh 2-19 la¯ gia˚n ềo‡ thÙ¯i gian thˆễc hie‰n ye‚u ca‡u ngaẩt cu˚a CPU. CPU laãy ma„u tèn hie‰u INT khi co˘ caễnh le‚n cu˚a xung clock cuoãi cu¯ng cu˚a mo„i chu ky¯ ềo˘n maı le‰nh. Tèn hie‰u ngaẩt INT seı kho‚ng ềˆÙễc ềa˘p ˆ˘ng neãu nhˆ bÚ caãm bÙ˚i pha‡n me‡m hoaẻc tèn hie‰u ye‚u ca‡u nhˆÙ¯ng bus ềang Ù˚ traễng tha˘i tèch cˆễc. Trong khoa˚ng thÙ¯i gian cu˚a chu ky¯ M1 keã tieãp, tèn hie‰u IORQ trÙ˚ ne‚n tèch cˆễc ềe xa˘c ềÚnh raậng thieãt bÚ ye‚u ca‡u ngaẩt co˘ the ềaẻt vector ềÚa chấ ngaẩt le‚n bus dˆı lie‰u. Hai chu ky¯ traễng tha˘i ềÙễi ềˆÙễc tˆễ ềo‰ng the‚m va¯o trong chu ky¯ ềa˘p ˆ˘ng ye‚u ca‡u ngaẩt. Hai traễng tha˘i na¯y ềˆÙễc the‚m va¯o ềe ều˚ thÙ¯i gian cho ca˘c tèn hie‰u ềe oÂn ềÚnh va¯ xa˘c ềÚnh thieãt bÚ ye‚u ca‡u ngaẩt na¯o ca‡n pha˚i ềˆa vector ềÚa chấ ngaẩt. 336636 Vi xˆ˚ ly˘
  43. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT Hẽnh 2-19. Chu ky¯ ngaẩt va¯ ềa˘p ˆ˘ng ye‚u ca‡u ngaẩt. —a˘p ˆ˘ng ngaẩt kho‚ng ngaÍn ềˆÙễc : hẽnh 2-20 la¯ gia˚n ềo‡ thÙ¯i gian thˆễc hie‰n ye‚u ca‡u ngaẩt kho‚ng ngaÍn ềˆÙễc NMI cu˚a CPU. CPU laãy ma„u tèn hie‰u NMI gioãng nhˆ ngaẩt INT nhˆng ye‚u ca‡u ngaẩt NMI co˘ mˆ˘c ềo‰ ˆu tie‚n cao nhaãt va¯ kho‚ng the caãm baậng pha‡n me‡m. Ngaẩt na¯y thˆÙ¯ng ềˆÙễc sˆ˚ duễng ềe CPU ềa˘p ˆ˘ng tˆ˘c thÙ¯i cho nhˆıng ye‚u ca‡u quan troễng nhˆ sˆễ coã ho˚ng cu˚a nguo‡n ềie‰n. CPU ềa˘p ˆ˘ng ye‚u ca‡u ngaẩt kho‚ng ngaÍn ềˆÙễc NMI tˆÙng tˆễ nhˆ hoaễt ềo‰ng ềoễc bo‰ nhÙ˘ bẽnh thˆÙ¯ng. Sˆễ kha˘c bie‰t la¯ no‰i dung cu˚a dˆı lie‰u tre‚n bus bÚ bo˚ qua trong khi ềo˘ vi xˆ˚ ly˘ tˆễ ềo‰ng lˆu trˆı no‰i dung cu˚a thanh ghi PC ( la¯ ềÚa chấ le‰nh keã) va¯o bo‰ nhÙ˘ ngaÍn xeãp be‚n ngoa¯i va¯ thˆễc hie‰n chˆÙng trẽnh taễi ềÚa chấ 0066H. ChˆÙng trẽnh con phuễc vuễ ngaẩt pha˚i ềˆÙễc vieãt taễi ềÚa chấ na¯y. Hẽnh 2-20. Gia˚n ềo‡ thÙ¯i gian cu˚a ngaẩt kho‚ng ngaÍn ềˆÙễc NMI . Le‰nh Halt: khi thˆễc hie‰n le‰nh Halt thẽ CPU thˆễc hie‰n le‰nh NOP cho ềeãn khi CPU nha‰n ềˆÙễc tèn hie‰u ye‚u ca‡u ngaẩt ( INT hoaẻc NMI ). Hai tèn hie‰u ngaẩt na¯y ềˆÙễc laãy ma„u khi co˘ caễnh le‚n cu˚a xung clock Ù˚ mo„i chu ky¯ T4 nhˆ hẽnh 2-21. Vi xˆ˚ ly˘ 37
  44. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT Khi co˘ ye‚u ca‡u ngaẩt kho‚ng ngaÍn ềˆÙễc NMI hoaẻc ngaẩt INT ềˆÙễc cho phe˘p bÙ˚i pha‡n me‡m thẽ sau ềo˘ CPU seı thoa˘t kho˚i traễng tha˘i Halt khi co˘ caễnh le‚n cu˚a xung clock keã. Chu ky¯ tieãp theo la¯ ềa˘p ˆ˘ng ye‚u ca‡u ngaẩt tu¯y thuo‰c va¯o ngaẩt nha‰n ềˆÙễc. Neãu ca˚ 2 ngaẩt cu¯ng xa˚y ra thẽ ngaẩt co˘ mˆ˘c ˆu tie‚n cao hÙn seı ềˆÙễc ềa˘p ˆ˘ng chènh la¯ ngaẩt NMI . Chˆ˘c naÍng thˆễc hie‰n le‰nh NOP khi CPU Ù˚ traễng tha˘i Halt nhaậm ềe la¯m tˆÙi bo‰ nhÙ˘ RAM ềo‰ng. Mo„i chu ky¯ trong traễng tha˘i Halt ềˆÙễc xem la¯ chu ky¯ M1 (ềo˘n le‰nh) chấ ngoaễi trˆ¯ dˆı lie‰u nha‰n tˆ¯ bo‰ nhÙ˘ bÚ bo˚ qua va¯ le‰nh NOP ềˆÙễc thˆễc hie‰n be‚n trong vi xˆ˚ ly˘. Tèn hie‰u tra˚ lÙ¯i HALT seı Ù˚ traễng tha˘i tèch cˆễc ềe ba˘o cho bieãt vi xˆ˚ ly˘ ềang Ù˚ traễng tha˘i HALT. Hẽnh 2-21. Gia˚n ềo‡ thÙ¯i gian cu˚a ngaẩt kho‚ng ngaÍn ềˆÙễc NMI . 5.5.5. —a˘p ˆ˘ng ye‚u ca‡u nngaẩtgaẩt cu˚a vi xˆ˚ ly˘ Z80Z80:::: GiÙ˘i thie‰u: Mo‰t ye‚u ca‡u ngaẩt cho phe˘p ca˘c thieãt bÚ ngoaễi vi ngˆ¯ng hoaễt ềo‰ng cu˚a CPU va¯ ye‚u ca‡u CPU pha˚i thˆễc hie‰n chˆÙng trẽnh con phuễc vuễ ngaẩt cu˚a thieãt bÚ ye‚u ca‡u ngaẩt ềo˘. ChˆÙng trẽnh con phuễc vuễ ngaẩt bao go‡m ca˘c co‚ng vie‰c trao ềoÂi dˆı lie‰u, traễng tha˘i hoaẻc ca˘c tho‚ng tin ềie‡u khieÂn giˆıa CPU va¯ thieãt bÚ ngoaễi vi. Khi chˆÙng trẽnh phuễc vuễ ngaẩt keãt thu˘c thẽ CPU trÙ˚ laễi thˆễc hie‰n tieãp chˆÙng trẽnh ềang gia˘n ềoaễn. Cho phe˘p/caãm ngaẩt: Vi xˆ˚ ly˘ Z80 co˘ 2 ngoı va¯o ngaẩt: mo‰t la¯ ngaẩt co˘ the che ềˆÙễc (cho phe˘p/caãm baậng pha‡n me‡m ) INT va¯ mo‰t ngaẩt kho‚ng the che ềˆÙễc NMI . Ngaẩt kho‚ng the che ềˆÙễc co˘ nghÛa la¯ kho‚ng the caãm baậng pha‡n me‡m, ngaẩt na¯y thˆÙ¯ng ềˆÙễc sˆ˚ duễng cho ca˘c chˆ˘c naÍng quan troễng ềˆÙễc lˆễa choễn bÙ˚i ngˆÙ¯i la‰p trẽnh. —oãi vÙ˘i ngaẩt co˘ the che ềˆÙễc INT thẽ Z80 co˘ mo‰t flip flop cho phe˘p ngaẩt (interrupt flip flop = IFF) va¯ ngˆÙ¯i la‰p trẽnh co˘ the set hay reset baậng ca˘ch du¯ng ca˘c le‰nh cho phe˘p ngaẩt EI (enable interrupt) va¯ le‰nh caãm ngaẩt DI (disable interrupt). Khi bit IFF bÚ reset thẽ CPU seı kho‚ng thˆễc hie‰n ye‚u ca‡u ngaẩt INT . Co˘ 2 bit flip flop nhˆ hẽnh 2-22: Hẽnh 2-22. Hai bit flip flop IFF1 va¯ IFF2 cu˚a ngaẩt INT . 338838 Vi xˆ˚ ly˘
  45. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT Khi CPU bÚ reset thẽ CPU seı reset ca˚ 2 bit IFF1 va¯ IFF2 ềe caãm ngaẩt. Ca˘c ye‚u ca‡u co˘ the ềˆÙễc phe˘p taễi baãt ky¯ thÙ¯i ềieÂm na¯o phuễ thuo‰c va¯o le‰nh EI cu˚a ngˆÙ¯i la‰p trẽnh. Khi le‰nh EI ềˆÙễc thˆễc hie‰n thẽ baãt ky¯ ye‚u ca‡u ngaẩt na¯o ềang ềÙễi (vẽ chˆa ềˆÙễc phe˘p) thẽ seı ềˆÙễc ềa˘p ˆ˘ng ngay sau khi CPU thˆễc hie‰n xong le‰nh EI. Mo‰t le‰nh trẽ hoaın la¯ raãt ca‡n thieãt ềˆÙễc thˆễc hie‰n trˆÙ˘c khi thˆễc hie‰n le‰nh keãt thu˘c chˆÙng trẽnh con phuễc vuễ ngaẩt trÙ˚ laễi chˆÙng trẽnh chènh. Ca˘c ye‚u ca‡u ngaẩt kho‚ng ềˆÙễc phe˘p cho ềeãn khi thˆễc hie‰n xong le‰nh trÙ˚ ve‡. Khi CPU thˆễc hie‰n ye‚u ca‡u ngaẩt co˘ the che ềˆÙễc thẽ ca˚ 2 bit IFF1 va¯ IFF2 bÚ reset ềe caãm ca˘c ye‚u ca‡u ngaẩt kha˘c cho ềeãn khi thˆễc hie‰n laễi le‰nh EI. Vai tro¯ cu˚a bit IFF2 la¯ caãt traễng tha˘i cu˚a IFF1 khi xa˚y ra ye‚u ca‡u ngaẩt kho‚ng ngaÍn ềˆÙễc NMI . Khi ye‚u ca‡u ngaẩt NMI ềˆÙễc chaãp nha‰n thẽ bit IFF1 bÚ reset ềe caãm ca˘c ye‚u ca‡u ngaẩt kha˘c xa˚y ra cho ềeãn khi ềˆÙễc cho phe˘p trÙ˚ laễi bÙ˚i ngˆÙ¯i la‰p trẽnh. Va‰y sau khi ngaẩt NMI ềˆÙễc chaãp nha‰n, ca˘c ye‚u ca‡u ngaẩt co˘ the ngaÍn ềˆÙễc bÚ caãm nhˆng traễng tha˘i trˆÙ˘c ềo˘ cu˚a IFF1 ềˆÙễc caãt ềe tieãp tuễc cho phe˘p ngaẩt sau khi CPU thˆễc hie‰n xong ye‚u ca‡u ngaẩt NMI . Khi le‰nh ỡLD A,Iợ hoaẻc le‰nh ỡLD A,Rợ ềˆÙễc thˆễc hie‰n thẽ traễng tha˘i cu˚a IFF2 ềˆÙễc copy va¯o cÙ¯ chaán le˚ trong thanh ghi traễng tha˘i ềe kieÂm tra hay ềe lˆu trˆı. Mo‰t phˆÙng pha˘p kha˘c ềe kho‚i phuễc laễi traễng tha˘i cu˚a IFF1 baậng ca˘ch thˆễc hie‰n le‰nh trÙ˚ ve‡ tˆ¯ le‰nh ngaẩt kho‚ng ngaÍn ềˆÙễc RETI (return from non ủ mask able interrupt). Le‰nh RETI la¯ le‰nh keãt thu˘c chˆÙng trẽnh con phuễc vuễ ngaẩt ềe trÙ˚ ve‡ chˆÙng trẽnh chènh va¯ no‰i dung cu˚a IFF2 ềˆÙễc copy trÙ˚ laễi IFF1 ềe cho traễng tha˘i cu˚a IFF1 trˆÙ˘c khi chaãp nha‰n ye‚u ca‡u ngaẩt kho‚ng ngaÍn ềˆÙễc tˆễ ềo‰ng kho‚i phuễc. Ba˚ng lie‰t ke‚ traễng tha˘i ca˘c flip flop cho phe˘p /caẩm ngaẩt: Hoaễt ềo‰ng IFF1 IFF2 Die„n gia˚i Khi CPU bÚ reset 0 0 Ngaẩt ngaÍn ềˆÙễc bÚ caãm Thˆễc hie‰n le‰nh DI 0 0 Ngaẩt ngaÍn ềˆÙễc bÚ caãm Thˆễc hie‰n le‰nh EI 1 1 Ngaẩt ngaÍn ềˆÙễc ềˆÙễc phe˘p Thˆễc hie‰n le‰nh LD A,I * * IFF2 cÙ¯ chaán le˚ Thˆễc hie‰n le‰nh LD A,R * * IFF2 cÙ¯ chaán le˚ Thˆễc hie‰n ngaẩt NMI 0 * Ngaẩt ngaÍn ềˆÙễc bÚ caãm Thˆễc hie‰n le‰nh RETI IFF2 * IFF2  xa˘c ềÚnh keãt thu˘c chˆÙng trẽnh con phuễc vuễ ngaẩt kho‚ng the ngaÍn ềˆÙễc. Ba˚ng 2-1. Ba˚ng lie‰t ke‚ ca˘c traễng tha˘i bit IFF1 va¯ IFF2. Ngaẩt kho‚ng ngaÍn ềˆÙễc: CPU thˆÙ¯ng chaãp nha‰n ye‚u ca‡u ngaẩt kho‚ng ngaÍn ềˆÙễc. Khi ngaẩt na¯y xa˚y ra thẽ CPU kho‚ng thˆễc hie‰n le‰nh keã ma¯ tieãn ha¯nh thˆễc hie‰n le‰nh baẩt ềa‡u taễi ềÚa chấ 0066H. Hoaễt ềo‰ng na¯y cu˚a CPU gioãng nhˆ thˆễc hie‰n le‰nh khÙ˚i ềo‰ng laễi nhˆng kha˘c ềÚa chấ. Le‰nh khÙ˚i ềo‰ng ềÙn thua‡n chấ la¯ le‰nh goễi chˆÙng trẽnh taễi mo‰t ềÚa chấ ềaẻc bie‰t trong trang thˆ˘ 0 cu˚a bo‰ nhÙ˘. CPU co˘ the ềˆÙễc la‰p trẽnh ềe ềa˘p ˆ˘ng ngaẩt kho‚ng ngaÍn ềˆÙễc baậng mo‰t trong 3 ca˘ch. Mode 0: Vi xˆ˚ ly˘ 39
  46. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT Trong mode na¯y thieãt bÚ ye‚u ca‡u ngaẩt co˘ the ềaẻt baãt ky¯ le‰nh na¯o le‚n bus dˆı lie‰u va¯ CPU seı thˆễc hie‰n. Do ềo˘ thieãt bÚ ye‚u ca‡u ngaẩt cung caãp le‰nh keã ềe ềˆÙễc thˆễc hie‰n. ThˆÙ¯ng la¯ le‰nh khÙ˚i ềo‰ng laễi bÙ˚i vẽ thieãt bÚ ye‚u ca‡u ngaẩt chấ ca‡n cung caãp mo‰t byte maı le‰nh duy nhaãt. TˆÙng tˆễ ềoãi vÙ˘i le‰nh kha˘c cha˙ng haễn nhˆ le‰nh call (co˘ 3 byte maı le‰nh) thẽ chˆÙng trẽnh co˘ the thˆễc hie‰n taễi baãt ky¯ vÚ trè na¯o trong bo‰ nhÙ˘. Soã lˆÙễng chu ky¯ xung clock ca‡n thieãt ềe thˆễc hie‰n ềa˘p ˆ˘ng ngaẩt nhie‡u hÙn thˆễc hie‰n le‰nh bẽnh thˆÙ¯ng 2 chu ky¯ xung clock. Ly˘ do la¯ CPU tˆễ ềo‰ng the‚m va¯o 2 chu ky¯ ềÙễi ềe chu ky¯ ềa˘p ˆ˘ng ye‚u ca‡u ngaẩt co˘ ều˚ thÙ¯i gian thˆễc hie‰n. Sau khi reset thẽ CPU seı tˆễ ềo‰ng hoaễt ềo‰ng Ù˚ mode 0. Mode 111:1::: Khi mode 1 ềˆÙễc lˆễa choễn bÙ˚i ngˆÙ¯i la‰p trẽnh thẽ CPU ềa˘p ˆ˘ng ngaẩt baậng ca˘ch thˆễc hie‰n chˆÙng trẽnh baẩt ềa‡u taễi ềÚa chấ 0038H gioãng nhˆ ngaẩt kho‚ng ngaÍn ềˆÙễc thẽ thˆễc hie‰n Ù˚ ềÚa chấ 0066H. Soã lˆÙễng chu ky¯ ye‚u ca‡u ềe thˆễc hie‰n nhie‡u hÙn 2 chu ky¯ do CPU co‰ng the‚m 2 chu ky¯ ềÙễi. Mode 222:2::: —a‚y la¯ mode maễnh nhaãt trong ca˘c mode ềa˘p ˆ˘ng ye‚u ca‡u ngaẩt. VÙ˘i byte 8 bit duy nhaãt tˆ¯ ngˆÙ¯i du¯ng thẽ mo‰t le‰nh goễi gia˘n tieãp co˘ the ềˆÙễc thˆễc hie‰n Ù˚ baãt ky¯ o‚ nhÙ˘ na¯o. Trong mode na¯y ngˆÙ¯i la‰p trẽnh thieãt la‰p mo‰t ba˚ng ca˘c ềÚa chấ baẩt ềa‡u 16 bit cho mo„i chˆÙng trẽnh con phuễc vuễ ngaẩt nhˆ hẽnh 2-23. Ba˚ng na¯y co˘ the ềˆÙễc ềÚnh vÚ Ù˚ baãt ky¯ vÚ trè na¯o trong bo‰ nhÙ˘. Khi ngaẩt ềˆÙễc chaãp nha‰n thẽ con tro˚ 16 bit pha˚i ềˆÙễc thieãt la‰p ềe co˘ ềˆÙễc ềÚa chấ baẩt ềa‡u chˆÙng trẽnh con phuễc vuễ ngaẩt ye‚u ca‡u trong ba˚ng ềÚa chấ. 8 bit ềÚa chấ cao cu˚a con tro˚ ềˆÙễc thieãt la‰p tˆ¯ no‰i dung cu˚a thanh ghi I, thanh ghi I pha˚i ềˆÙễc naễp gia˘ trÚ ềÚa chấ cu˚a chˆÙng trẽnh con bÙ˚i ngˆÙ¯i la‰p trẽnh baậng le‰nh ỡLD I,Aợ. Khi CPU bÚ reset thẽ gia˘ trÚ trong thanh ghi I baậng 00H. 8 bit ềÚa chấ thaãp cu˚a con tro˚ pha˚i ềˆÙễc cung caãp bÙ˚i thieãt bÚ ngaẩt. Chấ co˘ 7 bit ềˆÙễc ye‚u ca‡u tˆ¯ thieãt bÚ ye‚u ca‡u ngaẩt co¯n bit LSB pha˚i baậng 0. —ie‡u na¯y la¯ baẩt buo‰c bÙ˚i vẽ con tro˚ ềˆÙễc sˆ˚ duễng ềe laãy 2 byte lie‚n tieãp ềe taễo ềÚa chấ baẩt ềa‡u cu˚a chˆÙng trẽnh con phuễc vuễ ngaẩt 16 bit va¯ ca˘c ềÚa chấ pha˚i luo‚n baẩt ềa‡u taễi o‚ nhÙ˘ co˘ ềÚa chấ chaán. H(nh 2-23. —a˘p ˆ˘ng ngaẩt Ù˚ mode 2. 440040 Vi xˆ˚ ly˘
  47. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT Eyte thˆ˘ nhaãt trong ba˚ng la¯ byte ềÚa chấ thaãp. NgˆÙ¯i la‰p trẽnh pha˚i thieãt la‰p ềa‡y ều˚ ềÚa chấ chènh xa˘c trˆÙ˘c khi ye‚u ca‡u ềˆÙễc chaãp nha‰n. NgˆÙ¯i la‰p trẽnh co˘ the thay ềoÂi ba˚ng ềÚa chấ ềe mo‰t ye‚u ca‡u ngaẩt co˘ the thˆễc hie‰n nhie‡u chˆÙng trẽnh con phuễc vuễ ngaẩt kha˘c nhau. Khi thieãt bÚ ye‚u ca‡u ngaẩt cung caãp ềÚa chấ thaãp ềeãn con tro˚ thẽ CPU tˆễ ềo‰ng caãt ềÚa chấ cu˚a thanh ghi PC va¯o bo‰ nhÙ˘ ngaÍn xeãp, nha‰n ềÚa chấ baẩt ềa‡u cu˚a chˆÙng trẽnh con phuễc vuễ ngaẩt tˆ¯ ba˚ng va¯ baẩt ềa‡u thˆễc hie‰n chˆÙng trẽnh taễi ềÚa chấ ềo˘. Mode na¯y ca‡n 19 chu ky¯ xung clock ềe thˆễc hie‰n (7 chu ky¯ ềe ềo˘n 8 bit ềÚa chấ thaãp tˆ¯ thieãt bÚ ye‚u ca‡u ngaẩt, 6 chu ky¯ ềe caãt no‰i dung thanh ghi PC va¯o bo‰ nhÙ˘ ngaÍn xeãp va¯ 6 chu ky¯ ềe nha˚y ềeãn ềÚa chấ cu˚a chˆÙng trẽnh con phuễc vuễ ngaẩt). 6.6.6. Pha‡n cˆ˘ng va¯ pha‡n me‡m cu˚a vi xˆ˚ ly˘ Z80Z80:::: Pha‡n cˆ˘ng : He‰ thoãng toãi thieÂu ::: Trong pha‡n na¯y seı giÙ˘i thie‰u ca˘c he‰ thoãng ˆ˘ng duễng du¯ng vi xˆ˚ ly˘ Z80. Hẽnh 2-24 trẽnh ba¯y mo‰t he‰ thoãng ềÙn gia˚n du¯ng Z80. Hẽnh 2-24. Hai bit flip flop IFF1 va¯ IFF2 cu˚a ngaẩt INT . Baãt ky¯ he‰ thoãng du¯ng vi xˆ˚ ly˘ Z80 ềe‡u pha˚i co˘ ca˘c khoãi sau:  Khoãi nguo‡n cung caãp 5V.  Khoãi dao ềo‰ng.  Ca˘c IC nhÙ˘.  Ca˘c maễch ềie‰n keãt noãi vÙ˘i thieãt bÚ ngoaễi vi.  CPU Z80. Vi xˆ˚ ly˘ 41
  48. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT Eo‰ nhÙ˘ ngoaễi cu˚a Z80 co˘ the la¯ toÂng hÙễp 2 bo‰ nhÙ˘ chuaÂn RAM, ROM hoaẻc PROM. Trong hẽnh 2-24 co˘ bo‰ nhÙ˘ ROM 8Kbit (1kbyte), ca˘c thanh ghi be‚n trong ều˚ ềe la¯m ca˘c o‚ nhÙ˘ co˘ the ềoễc ghi ne‚n kho‚ng ca‡n the‚m bo‰ nhÙ˘ Ram be‚n ngoa¯i. Ca˘c maễch IO cho phe˘p he‰ thoãng giao tieãp vÙ˘i ca˘c thieãt bÚ be‚n ngoa¯i. Trong hẽnh 2-24 co˘ 8 ngoı ra ềie‡u khieÂn va¯ co˘ 8 ngoı va¯o nha‰n tèn hie‰u tˆ¯ be‚n ngoa¯i. Ca˘c dˆı lie‰u tˆ¯ be‚n ngoa¯i co˘ the ềˆa va¯o be‚n trong vi xˆ˚ ly˘ tho‚ng khoãi ềie‡u khieÂn 3 traễng tha˘i, khoãi ngoı ra ềˆÙễc choãt bÙ˚i maễch choãt du¯ng TTL chuaÂn. IC IO Z80 PIO seı thˆễc hie‰n chˆ˘c naÍng na¯y. MÙ˚ ro‰ng bo‰ nhÙ˘ RRAMAM ::: Ha‡u heãt ca˘c he‰ thoãng ma˘y tènh ềe‡u du¯ng bo‰ nhÙ˘ mÙ˚ ro‰ng Read/Write ềe lˆu trˆı dˆı lie‰u va¯ la¯m bo‰ nhÙ˘ ngaÍn xeãp. Hẽnh 2-25 trẽnh ba¯y bo‰ nhÙ˘ co˘ 256 byte bo‰ nhÙ˘ RAM tÛnh ềˆÙễc the‚m va¯o he‰ thoãng Ù˚ hẽnh 2-24. Kho‚ng gian bo‰ nhÙ˘ ềˆÙễc the‚m va¯o co˘ ềÚa chấ nhˆ sau: —Úa chấ cu˚a bo‰ nhÙ˘ ềˆÙễc mo‚ ta˚ Ù˚ daễng soã HEX. Khi pha‚n tèch ra tha¯nh soã nhÚ pha‚n thẽ bit ềÚa chấ A10 seı la¯ ềˆÙ¯ng pha‚n chia bo‰ nhÙ˘ ROM va¯ bo‰ nhÙ˘ RAM ne‚n seı du¯ng ềˆÙ¯ng ềÚa chấ na¯y ềe ềie‡u khieÂn choễn chip. Khi lˆÙễng bo‰ nhÙ˘ mÙ˚ ro‰ng kha˘ lÙ˘n co˘ nhie‡u RAM, nhie‡u ROM thẽ pha˚i du¯ng maễch gia˚i maı TTL ềe thˆễc hie‰n choễn chip. H(nh 2-25. MÙ˚ ro‰ng the‚m bo‰ nhÙ˘. —ie‡u khieÂn toãc ềo‰ bo‰ nhÙ˘ ::: Bo‰ nhÙ˘ co˘ toãc ềo‰ thaãp thẽ gia˘ tha¯nh cuıng thaãp da„n ềeãn gia˘ tha¯nh cu˚a he‰ thoãng cuıng thaãp. Tèn hie‰u WAIT cu˚a vi xˆ˚ ly˘ cho phe˘p vi xˆ˚ ly˘ co˘ the la¯m vie‰c vÙ˘i ca˘c bo‰ nhÙ˘ co˘ toãc ềo‰ baãt ky¯ nhanh hay cha‰m. Nhˆ ềaı trẽnh ba¯y Ù˚ pha‡n gia˚n ềo‡ thÙ¯i gian truy xuaãt bo‰ nhÙ˘, taãt ca˚ ca˘c chu ky¯ truy xuaãt bo‰ nhÙ˘ seı hoa¯n taãt trong khoa˚ng thÙ¯i gian nˆıa chu ky¯, tuy nhie‚n trong mo‰t soã trˆÙ¯ng hÙễp ca‡n pha˚i the‚m mo‰t chu ky¯ ềÙễi trong chu ky¯ M1 ềe co˘ the sˆ˚ duễng ca˘c bo‰ nhÙ˘ co˘ toãc ềo‰ cha‰m. 442242 Vi xˆ˚ ly˘
  49. ChˆÙng 2: Caãu tru˘c vi xˆ˚ ly˘ va¯ ta‰p le‰nh SPKT 5+nh 2-26 la¯ mo‰t maễch ềie‰n ềÙn gia˚n ềe co‰ng the‚m mo‰t chu ky¯ ềÙễi. Maễch ềie‰n hẽnh 2-26 co˘ the thay ềoÂi nhˆ hẽnh 2-27 ềe co˘ the co‰ng the‚m mo‰t chu ky¯ ềÙễi ềe truy xuaãt baãt ky¯ bo‰ nhÙ˘ na¯o. H(nh 2-26. The‚m mo‰t chu ky¯ ềÙễi va¯o chu ky¯ M1. Hẽnh 2-27. The‚m mo‰t chu ky¯ ềÙễi ềe truy xuaãt bo‰ nhÙ˘ baãt ky¯. Giao iao tieãp vÙ˘i bo‰ nhÙ˘ ềo‰ngềo‰ng:::: Mo„i bo‰ nhÙ˘ RAM ềo‰ng co˘ ca˘c tho‚ng soã la¯m vie‰c. Hẽnh 2-28 minh hoaễ maễch ềie‰n du¯ng ca˘c coÂng logic ềe giao tieãp bo‰ nhÙ˘ RAM ềo‰ng 8 kbyte sˆ˚ duễng 2 bo‰ nhÙ˘ 4Kbyte. Gia˚ sˆ˚ ềˆÙ¯ng ềÚa chấ A12 ềˆÙễc du¯ng la¯m ềˆÙ¯ng ềie‡u khieÂn choễn chip select. Trong khoa˚ng thÙ¯i gian la¯m tˆÙi bo‰ nhÙ˘, taãt ca˚ ca˘c bo‰ nhÙ˘ trong he‰ thoãng pha˚i ềˆÙễc ềoễc. CPU cung caãp ềÚa chấ la¯m tˆÙi bo‰ nhÙ˘ tre‚n ca˘c ềˆÙ¯ng ềÚa chấ tˆ¯ A0 ềeãn A6. Khi mÙ˚ ro‰ng bo‰ nhÙ˘ cho he‰ thoãng na¯y thẽ chấ ca‡n thay theã ca˘c coÂng logic hoaễt ềo‰ng vÙ˘i ềˆÙ¯ng ềÚa chấ A12 baậng maễch gia˚i maı hoaễt ềo‰ng vÙ˘i ca˘c ềˆÙ¯ng ềÚa chấ co¯n laễi tuy¯ dung lˆÙễng bo‰ nhÙ˘ mÙ˚ ro‰ng the‚m. Ca‡n pha˚i co˘ ca˘c bo‰ ềe‰m cho ca˘c ềˆÙ¯ng ềÚa chấ khi he‰ thoãng giao tieãp nhie‡u bo‰ nhÙ˘. Vi xˆ˚ ly˘ 43