khiển CU để điều khiển các thao tác của CPU và bằng phân quyền, các chươngtrìnhđiềukhiểnhệthốngđiềukhiểnsựthựcthicủacácchươngtrìnhkhác.. Có rấtnhiều thanhghiCPUkhác nhau đượcsửdụngđểđiều
Trang 1BỘGIAO THÔNGVẬNTẢI
TRƯỜNG ĐẠI HỌC HÀNG HẢI
BỘ MÔN: KỸ THUẬT MÁY TÍNH KHOA: CÔNG NGHỆ THÔNG TIN
Trang 2Chương I: GIỚITHIỆUCHUNG
7 1.1.Lịchsửpháttriểnvàphânloại
7 1.1.1.Lịchsửpháttriển
7 1.1.2.Phânloạimáytính
8 1.2.Biểudiễnthôngtintrênmáytính 10
1.2.1.Hệđếm 10
1.2.2.Đổisốthậpphânrasốnhịphânhoặcngượclại 11
1.2.3.Cácloạimã 12
1.2.4.Biểudiễnsốnguyêntheomãnhịphân 12
1.2.5.Biểudiễnsốthựctheomãnhịphân 12
1.2.6.Biểudiễncácdạngthôngtinkhác 13
1.3.Cácloạimáytínhcánhân 13
ChươngII:BỘXỬ LÝTRUNGTÂM 15
2.1.Tổchứcbộxửlý 15
2.2.Tổchứcthanhghi 16
2.2.1.User-VisibleRegisters: 16
2.2.2.ControlandStatusRegisters: 17
2.3.ĐơnvịsốhọcvàlogicALU(Arithmeticandlogicunit)
18 2.4.ĐơnvịđiềukhiểnCU(ControlUnit) 19
2.4.1Tínhiệuđiềukhiển: 20
2.4.2.Đơnvịđiềukhiểnvichươngtrình 21
2.4.3.Mộtsốmởrộngcủa vixửlýmáytínhchođếnngàynay 21
2.5.Cấutrúckếtnối-BUS 22
2.6.TậplệnhvàcácModeđịachỉ 23
2.6.1.TậplệnhcủaCPU 23
2.6.2.CácnhómlệnhcủaCPU 24
2.6.3.Hợpngữ(Assembly) 30
2.6.4.CácModeđịachỉ 34
ChươngIII:HỆTHỐNGNHỚ 37
3.1.Kháiquátvềhệthốngnhớ 37
3.2.Phâncấpbộnhớ 38
3.3.Bộnhớbándẫn 38
3.3.1.Cácloạibộnhớbándẫn 38
3.3.2.Tổchứcbộnhớ 39
3.4.CacheMemory 39
3.4.1.Nguyêntắc 39
3.4.2.Kỹthuậtánhxạbộnhớcache 40
3.5.Quảnlýbộnhớ 43
3.5.1.Cáckỹthuậtquảnlýbộnhớ 43
Trang 3-1
-3.5.2.Bộnhớảo 46
3.5.3.Sựphânđoạn 48
3.6.Kỹthuậtgiảimãđịachỉ 49
3.6.1.Cấutạomộtvimạchnhớ 49
3.6.2.Giảimãđịachỉchobộnhớ 50
ChươngIV:HỆTHỐNGVÀORA 53
4.1.Giớithiệuchung 53
4.1.1.Cácthiếtbịngoạivi 53
4.1.2.Modulvàora 53
4.2.Ghépnốimáytínhvớithiếtbịngoạivi 54
4.2.1.Ghépnốisongsong 54
4.2.2.Ghépnốinốitiếp 56
4.3.Cácphươngphápđiềukhiểnvàora 56
4.3.1.Vàorađiềukhiểnbằngcáchthămdò 56
4.3.2.VàorađiềukhiểnbằngNgắt 57
4.3.3.VàorađiềukhiểnbằngDMA 61
ChươngV:THIẾTBỊNHẬPDỮLIỆU 64
5.1.Giớithiệuchung 64
5.2.Bànphím 64
5.1.1.Kĩthuậtdòphím 64
5.1.2.Kĩthuậtquétphím(Scan) 65
5.3.Chuột 66
5.4.Cácthiếtbịnhậpliệutiêntiến 66
ChươngVI:THIẾTBỊXUẤTDỮLIỆU 67
6.1.Nhữngkháiniệmcơbản 67
6.1.1.Nguyênlýcủaphươngpháphiểnthịhìnhảnhvideo
67 6.1.2.Nhữngđặcđiểmchungcủamànhình 67
6.2.MànhìnhmàuCRT(CathodRayTube) 68
6.2.1.Cấutạo 68
6.2.2.Phươngphápquétdòng 69
6.2.3.Sơđồghépnốivàhoạtđộng: 69
6.2.4.Kĩthuậtlàmtươihìnhảnh 70
6.3.Máyin 70
ChươngVII:THIẾTBỊLƯUTRỮ 71
7.1.Giớithiệuchung 71
7.2.Đĩatừ(Magetic) 71
7.2.1.Thamsốđọcghi(Đầutừ) 71
7.2.2.Thamsốđĩatừ 72
72.3.Cáccôngnghệsảnxuấtđĩatừ 73
7.2.4.Chuẩnbịmộtđĩacứngđểđưavàosửdụng 74
7.3.ĐĩaQuang(OpticalDisk) 74
7.3.1.Đặcđiểm 74
7.3.2.Nguyêntắcđọc/ghithôngtin 74
Trang 4-2
-7.3.3.Phânloại 757.4.Cácthiếtbịlưutrữkhác 75ChươngVIII:THIẾTBỊGHÉPNỐIVÀTRUYỀNTHÔNG
768.1.Giớithiệuchung 768.2.Bộchuyểnđổitínhiệu 768.2.1.Bộchuyểnđổitínhiệusố-tươngtự:DAC(DigitalAnalogConverter)
768.2.2.Bộchuyểnđổitínhiệutươngtự-số:ADC(AnalogDigitalConverter)
778.2.3.Modem(Modulation-Demodulation)điềuchếvàgiảiđiềuchế
788.3.Cácchuẩngiaotiếp 798.3.1.Cácchuẩnchung: 798.3.2.CácchuẩnvềgiaodiệngữaDTEvàDCEbaogồm:
798.3.3.ChuẩnEIA-RS232(ElectronicIndustryAssociation-RecomandStandard)
798.4.Mạchđiềukhiểntruyềnsốliệu 818.4.1.Giớithiệuchung 818.4.2.MạchđiềukhiểntruyềnthôngdịbộvạnnăngUART(VXL8250A)
828.4.3.Mạchđiềukhiểntruyềnthôngđồngbộ-dịbộvạnnăngUSART(VXL8251A)
89
Trang 5-3
-TÊN CHƯƠNG MỤC Chương I :Giới thiệu chung
1.Lịchsửpháttriển
2.Phânloại
3.Hệđếm
4.Cácloạimã
5.Đơnvịthôngtin
6.Biểudiễnsốnguyêntrongmáy
7.Mảngvàngănxếp
Chương II : Bộ xử lý trung tâm
1.Tổchứccủabộxửlítrungtâm
YÊU CẦU VÀ NỘI DUNG CHI TIẾT
Điều kiện tiên quyết:
Sinhviênphảihọcxong cáchọcphầnsaumớiđượcđăngkýhọcphầnnày:
KiếnHệđiều hành,Cấutrúcdữliệu, cácNgônngữlậptrìnhcấpcao,Mạchvàtínhiệu,
Trang 6- PhầnI: Kiếntrúcmáytính- giớithiệu vềcácphương pháp biểudiễnthôngtin trong
máytính, kiếntrúcchungcủa máytính điệntửvà các thànhphầnbêntrong cũngnhư
chứcnăngvàcấutrúctrongcủacácthànhphầnnày
-PhầnII:Cácthiếtbịngoạivi-giớithiệuchungvề hệthốngvàora, cácthiếtbịngoại
vi, chứcnăngvàcấutrúctrongcủachúngcũngnhưquátrìnhghépnốicácthiếtbịnày
vớimáytínhđiệntử
2.CácMôđunvàora
1.Ghépnốinốitiếp
2.Ghépnốisongsong
1.Vàorabằngphươngphápthămdò
2.VàorabằngNgắt
3.Vàorabằngphươngpháptruynhậptrựctiếpbộnhớ
4.Cácthiếtbịnhậpliệutiêntiến 0,5
Nội dung chi tiết của học phần:
Trang 7Chương VIII : Thiết bị ghép nối và truyền thông 12 6 5 1
3.Cácchuẩnghépnốivàtruyềnthông 1
4.Thiếtbịđiềukhiểnghépnốitruyềnthông 2
Nhiệm vụ của sinh viên :
Tham dựcác buổithuyếttrìnhcủa giáoviên, tự học,tựlàm bàitậpdo giáo viêngiao,thamdựcácbuổithựchành,cácbàikiểmtrađịnhkỳvàcuốikỳ,hoànthànhbàitậplớntheoyêucầu
Tài liệu học tập :
-WilliamStalling-ComputerOrganizationandArchitecture,1997
-Mc.Graw-ComputerArchitecture,1997
-VănThếMinh-Kỹthuậtvixửlý-NXBgiáodục1997
-NguyễnKimKhánh-Giáotrìnhkiếntrúcmáytính -ĐHBKHànội
-NguyễnĐìnhViệt-Giáotrìnhkiếntrúcmáytính-ĐHQGHànội
-TrầnTháiBá-Điềukhiểnvàghépnốithiếtbịngoạivi- NXBthốngkê2000
-TrầnQuangVinh-Cấutrúcmáytính-NXBgiáodục1997
-VõVănThành-Máyvitínhsựcốchẩnđoánvàcáchgiảiquyết-NXBthốngkê1996
-WilliamStalling-Computer Architecture Advanced, 1997
Hình thức và tiêu chuẩn đánh giá sinh viên:
-Đánhgiádựatrêntìnhhìnhthamdựbuổihọctrênlớp,cácbuổithựchành,điểmkiểmtrathườngxuyênvàđiểmkếtthúchọcphần
-Hìnhthứcthicuốikỳ:thiviểt
Thang điểm: Thang điểm chữ A, B, C, D, F
Điểm đánh giá học phần Z = 0.3X + 0.7Y.
Bài giảng này là tài liệu chính thức và thống nhất của Bộ môn Kỹ thuật máytính, KhoaCôngnghệThôngtinvàđượcdùngđểgiảngdạychosinhviên
Ngày phê duyệt: 15 / 6 / 2010
Trưởng Bộ môn: ThS Ngô Quốc Vinh
Trang 8-6
-Chương I: GIỚI THIỆU CHUNG
1.1 Lịch sử phát triển và phân loại
Chođếnngàynaymáytínhđãcó nhữngsựpháttriểnvượtbậc,ứngdụngtronghầuhếtcác hoạtđộngcủaxãhộivớirấtnhiều chủngloạithếhệtuỳtheocôngviệc Tuynhiên kểtừ
đóđếnnaycóthểphânmáytínhrathànhcácthếhệsau:
• Về kỹthuật:linhkiệndùngđènđiệntử,độ tincậythấp, tổnhao nănglượng.Tốc
độtínhtoántừvàinghìnđếnvàitrămnghìnphéptính/giây
• Vềphầnmềm:chủyếudùngngônngữmáyđểlậptrình
• Vềứngdụng:mụcđíchnghiêncứukhoahọckỹthuât
Th
• Vềkỹthuật:linhkiệnbándẫnchủyếulàtransistor.Bộnhớcódunglượngkhálớn
• Vềphầnmềm:đãbắtđầusửdụngmộtsốngônngữlậptrìnhbậccao:Fortran,Algol,Cobol,
• Vềứngdụng:thamgiagiảicácbàitoánkinhtếxãhội
Th
• Vềkỹthuật:linhkiệnchủyếusửdụngcácmạchtíchhợp(IC),các thiếtbịngoạiviđượccảitiến,đĩatừđượcsửdụngrộngrãi.Tốcđộtínhtoánđạtvàitriệuphéptoántrêngiây;dunglượngbộnhớđạtvàiMB(Megabytes)
• Vềphầnmềm:Xuấthiệnnhiềuhệđiềuhànhkhácnhau.Xửlísongsong.Phầnmềm
đadạng,chấtlượngcao,chophépkhaithácmáytínhtheonhiềuchếđộkhácnhau
• Vềứngdụng:thamgiatrongnhiềulĩnhvưccủaxãhội
MáyIBM_PC coinhưđượckhởiđầu từmột côngtrìnhcủaphòngthí nghiệmtạiAtlantacủaIBM
o Từnăm1979-1980IBM hoànthànhchiếcmáyDatamaster.Máy nàydùng vi
xửlý16bitcủaIntel
o Năm 1980 kế hoạch sản xuất máy PC bắt đầu được thực hiện Chiếc máy
Trang 9o Năm1981-1982IBMsảnxuấtmáytínhPCsửdụngbộvixửlý8086,8088
o Năm1984máytínhxửdụngchíp80286
o Năm1987máytínhxửdụngbộVXL32bits80386
o Năm1990bộVXL80486rađờivớinhiềutínhnănghơn
-7
-o Năm 1993Bộ VXLPentium rađờimởramộtthếhệ vitínhcá nhânmớivới
64bitsdữliệu,32bitđịachỉ
o 1995-1999 các thế hệ VXL mới như MMX,Pentium II,III với khả năng biểudiễnkhônggian3chiều,nhậndạngtiếngnói
o Từnăm2000cùngvớiMercedmộtthế hệVXL64bitvớicấu trúchoàntoànmớirađờiđãtạoramộtthếhệmáyvitínhmới
• Vềứngdụng:Máytínhđãđượcápdụngtronghầuhếtcáclĩnhvựccủaxãhội
Th
TheođềáncủangườiNhậtchiếcmáytínhđiệntửthếhệthứ5cócấutrúchoàntoànmới,baogồm4khốicơbản.Mộttrongcáckhốicơbảnlàmáytínhđiệntửcócấutrúcnhư hiệnnayvàliên hệtrực tiếp vớingườisửdụngthôngquakhối giao tiếptríthứcgồm3khốicon:bộxửlýgiaotiếp,cơsởtrithứcvàkhốilậptrình
Máytính (computer) là một khái niệm tương đối rộng, tuỳtheo cấu trúc, chức năng,hìnhdáng màcóthểphânranhiềuloạikhácnhau.Vềcănbảnmáytínhđượcphânlàmcácloạichínhsau:
1.1.2.1.Phânloạitheo khảnăng
• Máytínhlớn(mainframecomputer)
• Máytínhcon(minicomputer)
• máyvitính(Microcomputer)
Là những máy tính cỡ lớn, có khả năng hỗ trợ cho hàngtrăm đến hàng ngànngườisửdụng.Cókhảnănggiảinhữngbàitoánlớntốcđộtínhtoánnhanh.Chúngđượcthiếtkếđặcbiệtvớichiềudàibusdữliệurộng64bithoặchơn.Kíchthướcbộnhớlàmviệcrấtlớn.Giáthànhcaochỉđượcchuyêndùngchocácứngdụngtrongquânsự,ngânhàng,khítượng.Thườngđượcsửdụngtrongchếđộcáccôngviệcsắp xếptheo lôlớn(Large-Batch-Job)hoặc xửlý cácgiaodịch(TransactionProcessing), vídụtrongngânhàng
Là một dạng thu nhỏ của máytính lớn Chiều rộng dữ liệu vào khoảng 32 bitđến 64bit Do giá thànhthấp hơn máytính lớn,tính năng mạnhnên máytính con rấtđượcưadùngtrongnghiêncứukhoahọc
Những máy dùng bộ vi xử lý (họ Intel, Motorola) làm cốt lõi, vi điều khiển(microcontroler)vàmáytínhtrongmộtvimạch(one-chipmicrocomputer)đềuthuộchọmáyvitính Đặcđiểmchung vềcôngnghệ củahọnàymức độtổ hợp lớnVLSI(verylargescaleintegration)vàdùngcôngnghệCMOS(complementarymetaloxidesilicon)
đểchế tạocácmạchlogic Tốcđộphát triểncác vixửlý 32bit và64 bithiệnđại làmkhoảngcáchgiữamáytínhlớnvàmáyvitínhngàycàngthuhẹp
Tr
Cũnglàmộtloạimáyvitính,đặcđiểmkhácbiệtsovớimáytínhcá nhânPC là
cókhảnăngđượcnhiềungườicùngxửdụngcùngmộtlúc
Trang 10Chỉ được một người sử dụng Giá thành của chúng rẻ do cấu hình đơn giản,đượcchuẩnhoá,vàđượcsảnxuấthàngloạtvớisốlượnglớn.Cùngvớisựpháttriểncủakhoahọccôngnghệmàmáytínhcánhânngàynayđãcóthểlàmđượcnhữngcôngviệc
màtrướckiavốnchỉlàđặcquyềncủamáytínhlớn
thanhghi(regiser)
ALU(ArithmeticLogicalUnit)
+SIMD(SingleInstructionStream-MultipleDataStream)
T Ýn h iÖu ® iÒu k h iÓn
m e m o ry
Đặcđiểm:
o Cómộtđơnvịđiềukhiển,nphầntửxửlý
o Đơn vị điều khiển: điều khiển đồng thờitất cả các phần tử tại cùng một thờiđiểm các phầntử xử lý thực hiệncùng một thao tác trên các tập dữ liệu khác
Trang 11-9
-+MIMD(MultipleInstructionStream-MultipleDataStream)
TÝnhiÖu®iÒukhiÓn TÝnhiÖu®iÒukhiÓn
memoryĐặcđiểm:
o Máy gồm hai hoặc nhiều bộ vi xử lý tương tự về khả năng, có thể thực hiệnnhữngphéptoánkhácnhautrencácDLkhácnhau
o TấtcảcácCPUcùngchia xẻmộtbộnhớ chung Mộtsốbộnhớcụcbộcũngcóthểđượcdùng
o Tất cảCPUcùngxửdụngchungcác thiếtbịvào ra, có thểdùngchungmộtsốkênhhoặcdùngcáckênhkhácnhaudẫnđếncùngmộtthiếtbị
o Hệthốngđượcđiềukhiểnbởihệthốnghoạtđộngtíchhợp.Nócungcấpsựảnhhưởnglẫnnhau giữaCPUvà các chương trìnhchạytrênchúngởtask,file,cácthànhphầndữliệu
+MISD(MultipleInstructionStream-SingleDataStream)
Đặcđiểm:
o Cónhiềuđơnvịđiềukhiển
o Thựchiệnlệnhtheocáccôngđoạn,tạimộtthờiđiểmmỗiđơnvịđiềukhiển xử
lý một công đoạn như vậy có thể tiết kiệm được số chu kỳmáycần để xử lýlệnh
o Đây cũng lànguyên tắc của Pipeling khichia lệnh thành các côngđoạn: nhậnlệnhF(Fetch), giảimãlệnhD(Decode), thựchiện lệnhE(Execute), vàghikếtquảW(writeback).Nhưvậyvới4lệnhcóthểtiếtkiệmtới9chukỳmáy
1.2 Biểu diễn thông tin trên máy tính
a
Hệ đếm bất kỳ
Bấtkỳmộthệđếmnàođềubiểudiễnmộtsốnguyêntheonguyêntắcsau:
N=an-1 a0=a0.s0+a1.s1+ +an-1.sn-1=
∑a i ⋅s i (1.1)
TrongđóNlàmộtsốnguyêncónchữsố.Chữsốaitạivịtríi(i=0 n-1)đượcgọilàtrị
số(haycòngọilàtrọngsố).Giátrịslàcơsốcủahệđếm.Hệđếmđượcđặttêntheogiátrịcơ
sốs Chẳnghạn,vớis=2tacóhệđếmcơsố2,vớis=10tacóhệđếmcơ số10vàvớis=16ta
cóhệđếm16.Giátrịscũngxácđịnhsốkýtựcầndùngđểbiểudiễntrịsố.Chẳnghạnvớis=2
hệđếmsẽcầnhaikýtựđểbiểudiễn,vìthếtacókháiniệmhệnhịphân(chiaralàmhai).Tươngtựnhưvậy,hệđếm10và16cònđượcgọilàhệthậpphânvàhệthậplụcphân
Trang 12H ệ đ ếm thập phân
Định nghĩa:là hệđếm quenthuộcnhất củanhân loại Có lẽ hệ đếmnàybắt nguồntừviệcngườitiềnsửdùngmườiđầungóntayđểđếmcácđồvậtxungquanh.NgàynaytoànthếgiớithốngnhấtsửdụngnhữngkýtựsốảRập đểbiểudiễnhệthậpphân.Cáckýtựsốđólà:
Vídụbiểudiễnsốnguyên:
N=1547d=1.103+5.102+3.101+7.100c
Hệ đếm nhị phân
ĐượchìnhthànhtrêncơsởđạisốlôgicBoole,xuấthiêntừcuốithếkỷ19.Hệđếmnày
vàcácmôntoánliênquanđếnnóthựcsựpháthuyđượcsứcmạnhkhicómạchđiệnhaitrạngthái.Vớihaiconsố0,1 cóthểbiểudiễnmộtsốnguyênbấtkỳ.Mỗikýtự(haymỗitrịsố)của
hệnhịphânđượcgọilàmộtbit(binarydigit).Đốivớimáytínhđiệntửcácbitđượcbiểudiễnbằngmộthiệuđiệnthếtươngứng:mức0(0V-1V),mức1(2v-5v)
Đểgiảntiện trong việcsửdụng số nhịphân, ngườitacòn đặtnhiều bộisốcủa hệnhịphânnhưsau:
4bitlàmộtnibble
8bitlàmộtbyte
16bitlàmộttừ(word)
32bitlàmộttừkép(doubleword)
210bitlàmộtkilobit(Kbit)
220bitlàmộtMegabit(Mbit)
230bitlàmộtGigabit(Gbit)
Vídụbiểudiễnmộtsốnguyên:
Vídụbiểudiễnmộtsốnguyên:
N=2BC1h=2.163+11.162+12.161+1.160=11201d.
Đểđổisố số thập phânra số nhịphânhaythập lụcphân, tachỉcầnchia số thậpphâncho cơsốcủahệ(2hoặc16).Sốdưlàtrịsố,thươngsốđượcchiatiếpđểtínhtrịsốtiếptheo
Trang 13Trong hệ nhịphân,trịsố đầutiên(ngoài cùngbênphải)được gọilsg LSB(least significantbit)vàtrịsốcuốicùng(ngoàicùngbêntrái)đượcgọilàMSB(mostsignifcantbit).
Dùng7bitđểmãhoá,bitcuốicùnglàbitkiểmtrachẵnlẻ,pháthiệnlỗikhitruyền
Dùngsốnhịphânkhôngdấu:
nbitbiểudiễn2nsốtừ0đến2n-1Dùngsốnhịphâncódấu:
nbitbiểudiễn2nsốtừ-2n-1đến+2n-1-1
Biểu diễn dấu chấm cố định
Cáchbiểu diễndấu chấmcốđịnhtronghệnhịphân hoàntoàngiốngcáchbiểudiễnsốthựcthôngthườngcủahệthậpphân
Trang 14ĐâylàchuẩnđượcmọihãngchấpnhậnvàđượcdùngtrongbộxửlýtoánhọccủaIntẹl.Bitdấunằmởvịtrícao nhất,kíchthướcphầnmũvà khuôndạngphầnđịnhtrịthayđổitheotừngloạisốthực
GiátrịsốthựcIEEE754-1985đượctínhnhưsau:
1.3 Các loại máy tính cá nhân
Đểđảmbảotínhtươngthích, cấutrúcphầncứngbêntrongcácmáyvitínhcánhânvề
cơbảnlàgiốngnhau.Vìthếchúngchỉđượcphânloạitheohìnhdạngvậtlý
• Loạiđểbàn(desktop),loạiđểbànthunhỏ(desktopslim-line)
• Loạiđặtđứng(tower),mini-tower
• Loạixáchtay(notebook)
• Loạibỏtúi(palmtop,palmpilot)
Kiếntrúcchungcủamáytínhđiệntử
ThiÕt bÞ vµoINPUTDEVICE Bé nhí ngoµi ThiÕt BÞ Ra
Trang 15MAIN MEMORY
Bộ Số học -logic
Cácđơnvịchứcnăngcơbảncủamáytínhđiệntử(Các đờng vẽ nét đứt chỉ mối quan hệ Các đờng nét liền là đờng truyền dữ liệu)
• Bộ nhớ trung tõm (Central Memoryor Main Memory) Cú nhiệm vụ chứa nhữngchươngtrỡnhvàdữliệutrướckhichươngtrỡnhđượcthựcthi
• Bộđiềukhiển (ControlUnit-CU) Cúnhiệmvụđiềukhiểnsựhoạtđộngcủatấtcảcỏcthànhphầncủahệthốngmỏytớnhtheochươngtrỡnhmànúđượcgiaothihành
CÂU HỎI VÀ BÀI TẬP
1.1.Trỡnhbàyhiểubiếtcủaanhchịvềcỏcgiaiđoạnphỏttriểncủamỏytớnhđiệntử
1.2.Trỡnhbàyvềphõnloạimỏytớnhtheokiếntrỳc
1.3.Đổisố23786d,-17456dsangsốnhịphõnnguyờncúdấu16bớt
1.4.Đổisố3476,0655dsangsốthựcnhịphõn32bớttheochuẩnIEEE754–1995
1.5.Trỡnhbàycấutrỳcchungmộtmỏytớnhđiệntử
Trang 16• FetchInstructions(chỉlệnhtìmnạp):CPUphảiđọccácchỉlệnhtừbộnhớ.
• InterpretInstructions:chỉlệnhphảiđượcgiảimã đểxácđịnhhànhđộngnào đượcyêucầu
• Fetchdata(dữliệutìmnạp):Sự thihànhmộtchỉlệnhcóthểyêucầuthựchiệnmộtvàithaotácsốhọchoặclôgitrêndữliệu
• WriteData:Nhữngkếtquảcủasựthihànhcóthể yêucầuviếtdữliệu vàobộ nhớhoặcmodulevàora
Thôngthường CPUphảithựchiệncáccông việcnày, nócó thểrõ ràngCPUcầnmộtchỗchứatạmthờiđểchứadữliệu.Nóphảinhớ vịtrícủachỉlệnhsaucùngđếnmứcnócóthểbiếtnơinàochứalệnhtiếptheo Nócầnchứacácchỉlệnhvà dữliệutạmthờitrong khimộtlệnhđượcthựcthi.NóicáchkhácCPUcầnmộtbộnhớtrongnhỏ
DataBUS
AddressBUSSystemBUSHìnhtrênxácđịnhcáckếtnốicủaCPUvớiphầncònlạicủahệthốngthôngquabushệthống Một giaodiện tươngtự có thểcần đếncho tất cáccác cấu trúc kết nối khác.Cácbộphận chínhcủamộtCPU làđơn vịsốhọc và logic(ALU) vàđơn vịđiềukhiển(CU) ALUlàmcôngviệctínhtoánthựcsựhoặcxửlýdữliệu.Đơn vịđiều khiểnCUchuyểndữliệuvà
Trang 17các chỉlệnh vào và ra khỏiCPU vàđiều khiểncácthao tác củaALU Thêm nữa, hìnhtrêncònmôtảmộtbộnhớtrong,làchỗchứatạmthờigọilàthanhghi(Register)
Hìnhảnh chitiết hơn cấutrúc CPUđượcmô tảởtrang sau Cácđườngtruyềndữliệu
vàcácđườngđiềukhiểnlogicđềuđựơcxácđịnh,baogồmmộtthànhphầngắnnhãninternalCPU bus Thành phần này đựơc yêu cầu chuyển dữ liệu giữa các thanh ghi khác nhau vàALU,từALUthựctếhoạtđộngchỉtrêndữliệutrongbộnhớ trongCPU.HìnhvẽcũngmôtảcácthànhphầncơbảntiêubiểucủaALU.Chúýsựtươngtựgiữacấutrúctrongcủamáytính
và cấu trúctrong củaCPU Trongcả haitrường hợp,cómột sựtập hợp củacácthànhphầnchính (computer:CPU, I/O, bộ nhớ; CPU: CU,ALU, các thanh ghi) được kết nốibằng cácđườngdữliệu
-15
ShifterComplementer
Mộthệthốngmáytínhdùngmộthệthốngcấp bậcbộnhớ.Tạicácmứccaohơn trong
hệthốngcấpbậc,bộnhớnhanhhơn,nhỏ hơn,vàđắt hơn(tínhtheobit) TrongCPU,cótậphợp cácthanhghichức nănglà mức nhớtrên bộnhớ chínhvà bộnhớ cache tronghệthốngcấpbậc.CácthanhghitrongCPUphụcvụ2chứcnăngchính:
Asemblythunhỏbộnhớ chínhbằngtốiưuhoáviệcsửdụngcácthanhghi
khiển CU để điều khiển các thao tác của CPU và bằng phân quyền, các chươngtrìnhđiềukhiểnhệthốngđiềukhiểnsựthựcthicủacácchươngtrìnhkhác
Khôngcósựriêngbiệtrõrànggiữacácthanhghitronghailoạitrên.Vídụtrênmộtsốmáychương trìnhđếm là thanh ghiuser-visible(ví dụ VAX)nhưng trênnhiều máykhác lạikhôngphảivậy.Cho cácmụcđíchsẽ đượcthảo luậndướiđây, chúngtasẽ sửdụng hailoạinày
ThanhghiUser-Visiblelà mộttrongnhữngthànhphầnđượcthamchiếubởicáchthứccủangônngữmáyđượcCPUthihành.ThựcsựtấtcảcácthiếtkếCPUđươngthờicungcấpmộtsố cácthanhghi User-Visibleđốilậpvớimộtthanhghi tổngđơn giản.Chúngta cóthể
môtảđặcđiểmcủachúngtrongcácloạisau:
• Mụcđíchchung
Inter nal CP UBu s
Trang 18Trongmộtsốtrường hợpcácthanhghimụcđíchchungcóthểđượcdùngcho cácchứcnăngđịachỉhoá(vídụthanhghigiántiếp,dịchchuyển).Trongcáctrườnghợp khác, cómộtphầnhoặcsự phânchiarõ rànggiãthanhghidữliệu vàthanhghiđịa chỉ Cácthanhghidữliệucóthểđược sửdụngchỉđểgiữdữliệuvà khôngthểđượcdùngtrongviệctínhtoáncủa
• Thanh ghi chỉ số: Được dùng trongchế độ địa chỉ chỉ sốvà có thểđược tự độngđánhchỉsố
• Contrỏngănxếp:Nếucóuser-visiblestackaddressing, sau đóngănxếp tiêubiểu
làtrongbộnhớvàcómộtthanhghichỉđếnđầungănxếp.Nóchophépđánhđịachỉtuyệtđối;đó làpush,pop,vàcácchỉlệnhngănxếp kháccầnkhôngchứamộttoánhạngngănxếprõràng
Có rấtnhiều thanhghiCPUkhác nhau đượcsửdụngđểđiềukhiểnthao táccủa CPU.Hầu hết chúngtrên đasố máylà không hữuhình vớingười dùng.Một vàithanh ghicó thểhữu hình với các lệnh máy thực thi trong chế độ điều khiển hoặc trong operating-systemmode Vớicácmáytínhkhácnhau sẽcó tổchứcthanhghi khácnhau và sửdụngthuậtngữkhácnhau
Bốnthanhghilàcốttuỷđốivớisựthihànhlệnh
• ProgramCounter(PC):chứađịachỉcủamộtchỉlệnhđượctìmnạp
• Thanhghilệnh(InstructionRegister):chứachỉlệnhđượctìmnạpgầnnhất
• Thanh ghiđịachỉ bộnhớ (MemoryAddressRegister): chứađịachỉ củacác vịtrítrongbộnhớ
• Thanhghibộnhớđệm(MemoryFufferRegister):chứmộttừdữliệuđượcghivaotrongbộnhớhoặctừđượcđọcgầnđâynhất
Ví
Cácvídụcungcấptàiliệuđểnghiêncứuvàsosánhtổchứcthanhghicủacáchệthống
cóthểsosánhđược.Trongphầnnày, chúngtasẽxemxét3bộvixửlý16bitđượcthiếtkếởcùng một thờiđiểm: Zilog Z8000(PEUT79), Intel 8086[MORS78,HEYW83], Và MotorolaMC6800[STRI79]
• 8thanhghichung
• 4thanhghidữliệuAX,BX,CX,DX
Trang 19 AX:(AccumulatorRegister)thanhghitíchluỹcáckếtquảtínhtoán.
BX(BaseRegister)thanhghicơ sở:chỉđịachỉcơsởcủavùngnhớthuộcbộnhớ
CX(Counter Register)thanhghiđếm:Khaibáo sốlần1thaotácnàođóphảiđượcthựchiệntrongcácvònglặp,phépdịch,quay
DX(DataRegister)thanhghisốliệu:lưutrữsllàmthôngsố chuyểngiaoCT(2byte)
Khicầntruynhậpchỉvới1bytethìbytecaohaythấpđượcnhậndiệnH,L
• SP (Stackpointer)contrỏngănxếp:địachỉ đỉnhngănxếp.SPchophéptruyxuất
dễdàngcácđịachỉtrongđoạnngănxếpSS(stacksegment).GiátrịtrongSPmôtả
Bộnhớđượcchiathànhcácđoạnlogic(segment)dài64kb.CPUcóthểtruynhập1lầntới4đoạn
Địachỉđoạnchứatrongthanhghiđoạn
• Thanhghi đoạnmã CS (code Segment) nhận diện ĐC bắt đầu củađoạn chươngtrìnhhiệnhànhtrongbộnhớ
• DS(dataSegment)đoạnDL:địachỉbắtđầuđoạnsốliệu
• SS(StackSegment)đoạnngănxếp:địachỉlogicđoạnngănxếp
• EX(extraSegment)đoạnmởrộng:Đ/cDLcácchuỗi
9trongsố16bitcủathanhghinàyđượcsửdụng,mỗibitcóthểđượcthiếtlậphayxoá
dểchỉthịkếtquảcủamỗithaotáctrướcđóhoặctrạngtháihiệnthờibộXL
• CFCarry:nhớ
• PFperity:chẵnlẻ
• ZFzero:kếtquảphéptoán=0
• SFsign:0dương,1âm
• OFoverflow:tràn
2.3 Đơn vị số học và logic ALU (Arithmetic and logic unit)
Đơn vịsố họcvàlogic(ALU)làmộtphầncủamáytínhthựcsựthựchiệncácthaotác
số học và logictrêndữ liệu Tấtcả cácthành phầnkhác củahệ thốngmáytính-đơn vịđiềukhiển, thanhghi,bộnhớ,chủyếumangdữliệuvàochoALUđểALUxửlývàsauđóđưakếtquảrangoài
Đơnvịsốhọcvàlogicvàtấtcảcácthànhphầnđiệntửtrongmáytínhđềudựatrênviệc
sử dụngcácthiết bịsố đơn giảncó thểchứa các consố nhị phân, và thựchiệncác thao tácbooleanlogicđơngiản
ALU
Trang 20Registers Registers
Hìnhtrênchỉratrongmộtgiớihạnchung,ALUđượckếtnốivớiphầncònlạicủaCPUnhưthếnào.DữliệuđượcsẵnsàngchoALUtrongcácthanhghi,vàkếtcủacủamộtthaotácđượcchứatrongcácthanhghikhác Cácthanhghilàchỗ chứatạmthờitrongCPUđượckếtnốibởicácđườngtínhiệutớiALU.ALUsẽđặtcờnhưlàkếtquảcủamộtthaotác.Vídụcótrànđượcđặtlên1 nếukếtquảcủaviệctínhtoánvượtquáchiềudàicủathanhghichứa.Giátrị cờ được chứatrong các thanh ghitrong CPU Đơn vịđiều khiểncung cấp tín hiệu điềukhiểnthaotáccủaALU,vàsựdichuyểndữliệuvàovàrakhỏiALU.(CấutạocủaALUđược
môtảtronghìnhtrangsau)
2.4 Đơn vị điều khiển CU(Control Unit)
NhưđãbiếtcácthànhphầnchứcnăngcơbảncủaCPUlà:
• ĐơnvịsốhọcvàLogic(ALU)
• TậpcácThanhghi
• Cácđườngdữliệutrong
• Cácđườngdữliệungoài
• Đơnvịđiềukhiển(CU)
ALUlàthànhphầnchứcnăngthựcsựcủamáytính,CácthanhghidùngđểchứadữliệutrongCPU,Mộtvàithanhghichứathôngtintrạngtháicầnđểquảnlý chỉlệnhsắp xếpliêntục(vídụtừtrạngtháichươngtrình).NhữngthanhghikhácchứadữliệuđưađếnhoặclấytừALU, bộ nhớ, module vào ra Cácđườngdữ liệu trongđược dùngchuyển dữliệu giữacácthanhghi, giữacácthanhghivàALU.Cácđườngdữliệungoàiliênkếtcácthanhghivớibộnhớvàmodulevào ra.thường bằngphương tiệncủabushệthống Đơnvịđiều khiểntạo racácthaotácxảyratrongCPU
SựthihànhmộtchươngtrìnhbaogồmcácthaotácliênquanđếncácthànhphầnCPU.Như chúng ta đã thấy, các thao tác này bao gồm sự liên tục của các vi thao tác (vi điềukhiển).Tấtcảcácvithaotáclàmộttrongcácloạisau:
• Truyềndữliệutừmộtthanhghiđếnthanhghikhác
• Truyềndữliệutừmộtthanhghiđếnmộtgiaodiệnngoài(vídụsystembus)
Trang 21• Truyềndữliệutừmộtgiaodiệnngoàitớithanhghi.
• Thựchiệnthaotácsốhọcvàlogic,sửdụngthanhghiđểnhậnvàghidữliệu
Tấtcả các vithao tác cầnthực hiệntrongmột chu kỳchỉ lệnh(bao gồmtất cả cácvithaotácđểthựchiệnmọichỉlệnhtrongtậpchỉlệnh, nằmtrongmộttrongnhữngloạitrên)Đơnvịđiềukhiểnthựchiệnhaicôngtácchính:
• Sự sắp xếp chuỗi (sequencing): Đơn vị điều khiển khiến CPU sắp xếp chuỗi vithao tácvào một chuỗi liêntụcthích hợp,dựa trênchươngtrình đangđược thựchiện
• Sự thihành (Execution):Đơn vịđiều khiểnkhiếnmỗivithaotác đượcthựchiện.Đơnvịđiềukhiểnthaotácdựavàoviệcsửdụngcáctín hiệu điều khiển.
-19
Chúngtađãđịnh nghĩacácthành phầnđãtạoraCPU(ALU, thanhghi, đường dẫndữliệu)vàcácvithaotácđangđượcthựchiện.Đốivớiđơnvịđiềukhiểnđểthựchiệncácchứcnăngcủanó, nóphảicó dữliệuvàocho phépnó xácđịnhtrạngtháicủa hệthốngvà mụcrachophép nóđiềukhiểntácđộngcủahệthống.Cócácchitiếtkỹthuậtngoàicủađơn vịđiềukhiển.Nộitại,đơnvịđiềukhiểnphảicólogícyêucầuthựchiệnchuỗivithaotácvàthihànhcácchứcnăng
Các yêu cầu củaphầnnàylà liênquanvớisựtươngtác giữađơn vịđiều khiểnvàcácthànhphầnkháccủaCPU
InstructionRegister
ControlSignalsWithinCPU
Flag
Clock
ControlUnit ControlSystemSignalsbusFrom
ControlSignalstoSystemBusCáctínhiệucủađơnvịđiềukhiểnđượcthểhiệntronghìnhtrên.Baogồm:
Tínhiệuvào
Tínhiệura
a
Các tín hi ệu v ào
- Clock:đâylàcáchđơnvịđiềukhiển“giữthờigian”Đơn vịđiềukhiểntạoramột
vithaotác(hoặcmộttậpcácthaotácđồngthời)đượcthựchiệnvới mỗixungđồng
hồ.Đâylàmộvàilầnnhắcđếnnhưlàchukỳthờigianxửlý, hoặcchukìthờigianđồnghồ
- Thanh ghi ch ỉ lệnh: mã chỉ lệnh hiện tại được dùng để xác định vi thao tác nàođượcthựchiệntrongchukìthihành
- C ờ: Có các yêu cầu bởi đơnvị điều khiểnđể xác địnhtrạng tháicủa CPUvà kếtquả của thao tác ALU trước Ví dụ, đối với chỉ lệnh Increment and skip-if rezo(ISZ),đơnvịđiềukiểnsẽlượnggiaPCnếucờRezođượcđặt
- Các tín hi ệu điều khiển từ bus điều khiển: Khẩu phần bus điều khiển của bus hệthốngcungcấptínhiệuchođơnvịđiềukhiển,nhưlàtínhiệungắtvàsựcôngnhận
Cont rolBu s
Trang 22Các tín hi ệu ra
- Tín hi ệu điều khiển trong CPU : có 2 loại: Nó khiến dữ liệu bị dichuyển từmột
thanhghitớicácthanhghikhác,vàlàmhoạtđộngcácchứcnăngALUcụthể
- Cáctínhiệuđiềukhiểnđiềukhiểnbus:Cũngcó 2loại:cáctínhiệu điềukhiểnbộ
nhớ,vàtínhiệuđiềukhiểnmodulevàora
Thànhphầnmớiđã được giớithiệu trong hình nàylàtín hiệu điều khiển Ba kiểu tín
hiệuđượcsửdụng:kíchhoạtmộtchứcnăngALU,kíchhoạtcácđườngdữliệu,vàlàcáctín
hiệutrênbushệthốngngoàihoặcgiaodiệnngoài.Tấtcảcácdạngtínhiệunàyđượccungcấp
cuốicùngtrựctiếpnhưcáctínhiệuvàohaycáccổnglogicriêngbiệt
-20
-Chúngta hãyxem xét lại chu kỳtìm nạp đểxemcách đơn vịđiều khiển duytri diều
khiển.Đơn vịđiều khiểngiữdấu vếtnơinólàtrongchu kỳtìm nạp.Tạiđiểmquyđịnh, nó
biếtchukỳtìmnạpđựocthựchiệntiếp Bướcđầu tiênlàdichuyểncác nộidungcủaPC và
MAR Đơn vịđiều khiểndùng nóbằngviệckíchhoạt tínhiệu điều khiểnmởcáccổng giữa
cácbitcủaPCvàcácbitcủaMAR.Bướctiếptheo làđọcmộttừtrongbộ nhớvào MBRvà
gialượngPC.Đơnvịđiềukhiểnlàmviệcnàybằngvệcgửicáctínhiệukèmtheođồngthời
• MộttínhiệuđiềukhiểnmởcáccổngchophépnộidungcủaMARđưavàobusđịa
chỉ
• Bộnhớđọctínhiệuđiềukhiểntrênbusđiềukhiển
• Một tínhiệu điều khiểncáccổngcho phép nộidungbusdữliệu được chứatrong
MBR
• Cáctínhiệu điềukhiểnthêmmộtvào nộidungcủaPCvàchứakếtquảtrởlạicho
PC
Theo đó,đơn vịđiều khiển gửitín hiệu điều khiểnmở các cổng giữaMBR (Memory
bufferregister)vàIR(InstructionRegister)
Cácchứcnăngchínhcủađơnvịđiềukhiểnnày:
thinCPU
Trang 23Bus
Đểthựchiệnmộtlệnh,đơnvịlogictuầntựđưaramộtlệnhđọctớibộnhớđiềukhiển
• Từmàđịachỉđượcxácđịnhtrongthanhghiđịachỉđiềukhiểnđượcđọcvàothanhghibộđệmđiềukhiển
• Nộidungcủathanhghibộđệmđiều khiểnphátratínhiệuđiều khiểnvàthongtinđịachỉtiếptheochođơnvịlôgictuầntự
• ĐơnvịlogictuầntựtảiđịachỉmớivàotrongthanhghiđịachỉđiềukhiểndựavàothôngtinđịachỉtiếptheotừthanhghibộđệmđiềukhiểnvàcáccờALU
Tấtcảxảyratrongmộtxungđồnghồ
Từsựpháttriển củacác máytính chứachươngtrìnhđầu tiên nhữngnăm 1950, đãcómộtsốsựcáchtânthựcsựrõrệttrongcáckhuvựccủatổchứcmáytính.Sauđâykhôngphải
làmộtdanhsáchhoànchỉnh,màchỉlàmộtvàitiếnbộchínhkểtừngàysinhcủamáytính
-21
tiếp theo ngaysau đó là DEC vớiPDP-S.Khái niệm gia đình táchriêngkiến trúccủamáytừsựthihànhcủanó.Mộtậphợp cácmáytínhđượcđềnghị,vớisựkhácnhau giữa đặc trưng giá/tính năng đưa ra cùng một kiến trúc cho người dùng.Sựkhácnhautronggiávàhiệusuấtlàbởitạisựthihànhkhácnhaucủacùngmộtkiếntrúc
xuất bởi Wikes năm 1951, và được giới thiệu bới IBM trên hệ thống S/360 linetrongnăm 1964.Lập trình vichương trìnhlàmgiảm bớt côngtác thiếtkế vàthựchiệnđơnvịđiềukhiểnvàhỗtrợchofamilyconcept
Bộ nhớ Cache (cache Memory): Đầu tiên được giớithiệu rộng rãi trên hệ thốngIBM S/360Model85 năm1968.Sự thêmvào thànhphầnnàytrong hệthốngphâncấpbộnhớcảithiệnrõrệthiệusuất
chươngtrìnhchỉlệnhmáy.Cácvídụlàốngdẫnchỉlệnhvàxửlývector
Nhưsựtiến hoácủacác hệthốngmáytính,hiệu suấtcao hơncó thểđượcđạtđượcbởiviệcnắmbắtcáctiếnbộ củasựpháttriểncôngnghệ.Hơn nữa,sựcảitiểntổchứccủaCPUcóthểlàmtănghiệusuất.Chúngtađãcómộtsốvídụvínhưsử dụngcácthanh ghibộihon làsử dụngmột thanhghi chứađơn,và sửdụng bộ nhớ cache Một phương pháp tổ chức khác rất thông dụng làInstructionPipe.(Cònthiếu)
Ống dẫn chỉ lệnh tương tự việc sử dụng một dây chuyền trong kế hoạch sảnxuất Một dâychuyềntạo ra các thuận lợitrong thực tế một sản phẩm điquanhiều trạngthái khác nhau củaquá trình sảnxuất Bằngcách bố trí tiếntrìnhsảnxuấttrongmột dâytruyền, các sảnphẩmởnhữngtrạngthái khác nhaucóthểđượclàmđồngthời.Tiếntrìnhnàycũngđượcquycholàpipelining,Bởivìnhưtrongmộtốngdẫn,mộtsảnphẩm vàomớiđượcchấpnhậnởmộtđầucuốitrước cácsảnphẩmvàođượcchấpnhậntrướcđóxuấthiệnnhưsảnphẩmraởđầucuốikhác
2.5 Cấu trúc kết nối - BUS
Trang 24Mộtmáytínhbao gồmcácbộ phậnhaycácđơn vịcủa bathànhphầnchính:CPU, hệthống nhớ, thiết bị vào ra, được liên lạc với nhau Về thực chất máytính được coi là mộtmạngcủacácđơn vịcơbản.Hơnnữacầnphảicócácđườngđểkếtnốicácđơn vịvớinhau.TậphợpcácđườngkếtnốicácđơnvịđượcgọilàInterconnectionStructure.
CấutrúckếtnốithôngdụngnhấtđượcsửdụngtrongmáytínhlàBUS
BUSlàtậphợpcácđườngdâykếtnốihaihaynhiềuthiếtbịvới nhau.RấtnhiềuthiếtbịkếtnốivớiBUS, mộttínhiệuđượctruyềnđitừbấtkì mộtthíêtbị nàocũngcó thểđượcgửiđếntấtcảcácthiếtbịkếtnốivớiBUS.Nếucóhaithiếtbịcùngtruyềndữliệuđồngthờitrongmộtthờiđiểm,nhữngtínhiệunàysẽgốilênnhauvàsẽbịsailạc,nhưvậychỉmộtthiếtbịcóthểtruyềndữliệuthànhcôngtrongmộtthờiđiểm
Trong nhiều trường hợp, BUS thực sự gồm nhiều đường liên lạc, mỗi đường có khảnăngtruyềncáctínhiệumôtảcácgiátrịnhịphân0,1.Cácsốnhịphânđượctruyềnliêntụcthôngquamộtđường,mộtsốđườngcủaBUStruyềncácbitnhịphânđồngthời(kếtnốisongsong)
Mộthệthốngmáytínhchứađựngmộtsố loạiBUSkhácnhau tuỳthuộccácđườngkếtnốigiữacácbộphậnởcácmứckhácnhaucủahệ thống.BUS kếtnốicácbộphậnchínhcủamáygọilàBUShệthống
-22
-BUS hệthốngbao gồm từ50đến100 đường truyềnriêngbiệt, mỗiđườngđượcphânchiamộtchứcnăng haymộtý nghĩariêngbiệt Mặcdùcó rấtnhiều cáchthíêt kếBUS khácnhau,nhưngtrênbấtkỳcáchnàocácđườngBUScũngphânloạithànhbanhómchính:BUS
dữliệu, BUSđịachỉ,BUSđiềukhiển, ngoàiracóthểcómộtsốđườngcungcấpnănglượngchocácmodulethamgiaBUS
16 hay32 đường,số đườngđược coilàđộrộng củaBUS dữliệu Mỗiđườngchỉcóthểmangmộtbitdữliệutạimột thờiđiểm, số lượngđườngxácđịnhsố lượngbitcóthểđượctruyềntrongmộtthờiđiểm
Địachỉthườnglàđịachỉcáccổngvào/ra,từnhớtrongngănnhớ
liệu.Cácđườngdữliệuvàđịachỉđượcchiasẻchotấtcảcácbộphận,phảicósựđiềukhiểnviệc sửdụngcácđườngđó.Cáctínhiệu điềukhiểntruyềncả lệnhvàthôngtinthờigian giữacácmodule hệthống Tínhiệuthờigianchỉranhữngthôngtinvề địachỉvàdữliệuhợplệ.Cáctínhiệulệnhđịnhrãthaotácđượcthựchiện
địachỉ
• BUSđồngbộ:đượcđiềukhiểnbởinhịpđồnghồvớichukìnhấtđịnh.Hoạtđộngcủa
vixửlýđòihỏithờigianlàbộisốcủachukìmáy
Trang 25• BUS khôngđồng bộ:không hoạt độngtheo xung đồng hồ nhất định, khi truyềntínhiệuthiếtbịtruyềnpháttínhiệuMSYNbáochothiếtbịnhậnchạynhanhnhấtcóthể,sauđókhihoànthànhthiếtbịnhậnphátlạitínhiệuSSYN.
Mãlệnh:chứcnăngcủathaotác
Chươngtrìnhđưavàobộnhớcho máythựchiệntheonhiềudạng,dạngcơbảnnhấtmàmáycóthể hiểungayđượcgọi làngônngữmáy TuỳtheoCPUmà ngônngữmáycódạngnhấtđịnh, chươngtrìnhviếtbằngngônngữmáythựchiệnrấtnhanhvàchiếmítchỗ trongbộnhớ,tuynhiênchươngtrìnhkhóviếtvàkhónhớ
Ngônngữ giúplập trình viênviết chươngtrìnhđẽ dàng hơn, thaycho ngôn ngữmáy.Mộtlệnhcủahợpngữtươngđươngnhưmộtlệnhcủangônngữmáynhưngthayviếtchươngtrìnhdướidạngnhịphânsẽdùngkíhiệutượngtrưng
Đểbiểu diễn các nhóm lệnhCPU, dùngtập lệnhHợp ngữdùngcho VXL8086 Intel
hoặctrựctiếp1sốvào1thanhghihayônhớ
Cúpháp:
Cúpháp:
Chúý:1lệnhtrênkhônghợplệkhicảđíchvànguồnlàcácônhớ
Trang 26Lệnh LEA (load effective address): nạpđịachỉthực(hiệudụng)
Hàm 9hcủa ngắt21h yêu cầu địa chỉtương đốicủa chuỗikí tự chứa trongDX,thựchiệnđiềunàydùnglệnhLEA
Cúpháp:
Trang 27LEA đích,nguồn
Đích:thanhghicôngdụngchungNguồn:ônhớ
b Nhóm lệnh vào/ra
CPUliênlạcvới cácthiếtbịngoạiviquacácthanhghivào/rahaycáccổngvào/ra Có
2lệnhtruynhậptrựctiếpcáccổngđólàlệnhINvàOUT,tuynhiênítsửdụng
A LF(linefeed) Xuốngdòng
D CR(carryreturn) Xuốngdòng,vềđầudòng
TaxemxétcácngắtcủaDOS:
khiểnvềchoDOS(dùngtrongchươngtrìnhđuôi.COM)
Ng ắt 22h -26h: các phục vụ quản lý CTRL + BREAK, các lỗi nghiêm trọng vàtruynhậptrựctiếpđĩa
Ng ắt 27h:kếtthúcchươngtrìnhvàởlạithườngtrú
Ng ắt 21h:gọicáchàm:
Hàm0h:kếtthúcchươngtrìnhHàm1h:vàotừbànphím:đợiđọc1kýtựtừthiếtbịvàochuẩnsauđóđưakí
tựđótớithiếtbịravàtrảvềmãASCIIcủadữliệutrongDL
Trang 28* Chỉ thị ADD (add) và SUB (subtract): Đượcsửdụngđểcộnghoặctrừnộidungcủa2
thanhghi,1thanhghivà1ônhớhoặccộngtrừ1sốvàothanhghihay1ônhớ
dung1thanhghihayônhớ
INC WORD; WORDnhậngiátrịWORD+1
nộidungbởiphầnbù2
Cúpháp:
Toánhạngđíchcóthểlà1thanhghihayônhớ
xét cácsố có dấuvà khôngdấu thì kếtqủathực hiệnphéptoán làkhác nhau, vớicác sốcó
dấutadùnglệnhIMUL,cácsốkhôngdấutadùnglệnhMUL
Cúpháp:
Khinhâncác bytevớinhau, 1 sốđược chứatrongtoánhạng nguồn, số cònlạiđược
giảthiếtđãchứatrongAL.Toánhạngnguồncóthểlà1thanhghihayônhớ
dấuvàkhôngdấuthìkếtqủathựchiệnphéptoánlàkhácnhau,vớicácsốcódấutadùnglệnhIDIV,cácsốkhôngdấutadùnglệnhDIV
Cúpháp:
Dạngbyte:số chia làthanhghi hayô nhớ 1byte, sốbị chia:16bit được giả
địnhchứatrongAXthương8bitchứatrongAL,sốdư8bittrongAH
Dạngword:số chia 16bit, sốbịchia giảđịnhchứatrongDX:AX, thương16
bitchứatrongAX,sốdư16bittrongDX
Trang 29 Lệnh OR: thiết lậpcác bitxác địnhcủatoánhạngđíchkhivẫn giữnguyêncácbitcònlại,cácbitcầnthiếtlậpđượcORvới1
ĐổimãASCIIcủa1sốthànhsốtươngứng:khiđọc1kítựtừbànphím,AL
giátrịthậpphântươngứng
Xoá1thanhghi:
khônglàmthayđổitoánhạngđíchmàchỉthiếtlậpcờ
SF,ZF,PF:phảnánhkếtquảAF:khôngxácđịnh
Trang 30 Lệnh dịch: cácbitbịdịchrakhỏitoánhạngsẽbịmất
bênkiaquay1vịtrí
-Nphépdịchtráisẽđượcthựchiện
CóthểdùnglệnhSHLđểthựchiệnphépnhânnhịphân
Nphépdịchphảisẽđượcthựchiện
CóthểdùnglệnhSHRđểthựchiệnphépchianhịphân
Nphépquayphảisẽđượcthựchiện
Vídụ: đếmsốbit1cótrongthanhghiBXmàkhônglàmthayđổinộidungBX, kếtquảlưutrongAX
Trang 31MOV CX,16;biếnđếmvònglặpTop:
JNC Next;bit0?
INC AX;không,tăngbiếnđếmkếtquảNext:
LOOP Top;quaylại
Dịchcác bít củatoánhạng đíchsang trái Bit MSB đượcđặt vào CF, giá trịcủa CF
đượcđưavàobitphảinhất(LSB)củatoánhạngđích
JG/JNLE Nhảy nếu lớn hơn, nhảy nếu không nhỏ hơn h
aybằng (Jump if Greate, Jump if Not Less than
ZF=0vàSF=0
JGE/JNL Nhảy nếu lớn hơn hay bằng, nhảy nếu không nh
ỏ
SF=OFJL/JNGE Nhảy nếu nhỏ hơn, nhảy nếu không lớn hơn h
ay
SF<>OFJLE/JNG Nhảynếu nhỏ hơn hoặc bằng, nhảynếu không l
ớn
ZF=1haySF=OF
JA/JNBE Nhảy nếu lớnhơn, nhảy nếu không nhỏ hơn ho
ặc
CF=0vàZF=0JAE/JNB/JNC Nhảynếukhôngnhớ(NoCarry) CF=0
JE/JZ Nhảynếukếtquảbằngnhau,nhảynếukếtquảbằ
ng
ZF=1JNE/JNZ Nhảynếukhôngbằngnhau,nếukếtquảkhác0 ZF=0
L
Dịchcácbítcủatoánhạngđíchsangphải.BitLMSBđượcđặtvàoCF,giátrịcủaCF
đượcđưavàobitphảinhất(LSB)củatoánhạngđích
Vídụ:đảocácbittrong1bytehay1word
MOV CX,8;sốlầnlặpEverse:
SHL AL,1;lấy1bitvàoCFRCR BL,1;quay,đưavàoBLLOOP Reverse
Trang 32-MOV AL,BL;đưavàoAL
e.
Các l ệnh điều khiển rẽ nhánh
Chophépchọnlựavàlặplạicácđoạnmãlệnh
* Các lệnh nhảy có điều kiện
Cúpháp:
Nếuđiềukiệncủalệnhnhảythoảmãn,lệnhcónhãnđíchsẽđượcthựchiện.Lệnhnày
cóthểởtrướchoặcsaulệnhnhảy.Nếuđiềukiệnkhôngthoảlệnhngay saulệnhnhảyđượcthựchiện
Phạmvicủalệnhnhảycóđiềukiện:
Nhãnđíchphảiđứngtrướclệnhnhảykhôngquá126bytehoặcđứngsaulệnhnhảykhôngquá127byte
CPU thực hiện 1 lệnh nhảy ntn?
CPUdựavàothanhghicờđểđiềuchỉnhIPchỉđếnnhãnđích
JP/JPE Nhảy nếu chẵn (Jump if Parity, Jump if Parit
y
PF=1JNP/JPO Nhảynếulẻ(JumpifParityOdd) PF=0
CácđiềukiệnnhảythườngđượccungcấpbởilệnhCMP
Trang 33Mỗi lầnthực hiện LOOP thanh ghi CX tự động giảm đi 1, và nếu CX<>0 thì điềukhiểnđược chuyểntớinhãn đích Nếu CX=0 thì lệnh tiếp theo LOOP sẽ được thựchiện
Sửdụng:Nhãnlệnh,tênthủtục,tênbiến
Chươngtrìnhbiêndịchchuyểncáctênthànhđịachỉbộnhớ
Độdài:1đến31kítự(khôngchứadấucách)
Khôngbắtđầubởichữsố
Khôngphânbiệtchữhoa,chữthường
Nếucódấuchấm(.)phảiđặtởđầu
Toántử
Trang 34 Toántửchứamãlệnhdạngtượngtrưng
Mãlệnh:chứcnăngcủathaotác
Dẫn hướngbiên dịch:toán tửchứa toán tử giả(pseudo_op), các toán tử giảnày không được dịch sang mã máy mà chỉ báo cho chương trình dịch làmviệcgìđó
Sốhexa:kếtthúcbằngHhoặch,bắtđầubằngchữsốthậpphân
Cáckýtự:baotrongdấunháykép“”
Cáctoántửgiảđịnhnghĩasốliệu
DB byte
DW word(2byte)
DD doubleword(2word)
DQ quardword(4word)
DT 10byteliêntiếp
b Các biến
Mỗibiếncómộtkiểudữliệuvàđượcchươngtrìnhgánchomộtđịachỉbộnhớ
BiếnkiểuByte
Địnhnghĩa:
Vídụ:
Giớihạnthậpphâncủacácgiátrịkhởitạo:-128đến127hoặc0đến255
Nếudùngdấu?thìbiếnkhôngđượckhởitạo
BiếnkiểuWord
Phầntửđầutiêncủamảngchínhlàtênmảng
Mảngbyte:tên+1làphầntửtiếptheo
Mảngword:tên+1làphầntửtiếptheo
vídụ:
ARRAY DB 4h,5h,6h
Trang 35vídụ:
bytethấp:WORD,nộidung:34hbytecao:WORD+1,nộidung:12hChuỗikítự
CóthểđượckhởitạobằngbảngmãASCII
Kíchthướctốiđacủatệplà64K
Thựchiệnnhanhhơntệp.EXE
DOS khởitạo vùng nhớ256byte offset:0000hgọilàvùng nhớPSP(ProgramSegmentPrefix)
Địnhvịtệptinvàovùngnhớvớioffset100h
CácthanhghiđoạnCS,DS,ES,SStrỏtớiPSP
IPđượcgángiátrị100h
SPđượcgángiátrịFFFEh
Trang 36 Chươngtrìnhcó thểkhaibáo nhiều đoạnkhác nhau,mỗichươngtrìnhcó thể
cónhiềuđoạnchươngtrình,nhiềuđoạndữliệu
Cóthểgọichươngtrìnhcon
Kíchthướccủatệptuỳývàlớnhơn64K
DOS khởitạo vùng nhớ256byte offset:0000hgọilàvùng nhớPSP(ProgramSegmentPrefix)
NạpHeadercủatệpsauPSP
Các thanh ghi đoạn CS, IP được xác định từ Header là địa chỉ bắt đầu củachươngtrình
C
.STACK DATA
Trang 37 TINY:mãvàdữliệunằmtrongphạmvi1đoạn
SMALL:mãnằmtrongphạmviđoạn64K,dữliệunằmtrongđoạnkhác
MEDIUM:mãnằmtrongđoạn>64K,dữliệunằmtrongđoạn64K
COMPACT: mã nằm trong phạm vi đoạn 64K, và dữ liệu nằm trong đoạn
>64K
LARGE:mãvàdữliệunằmtrongđoạn>64K,nhưngmộtmảngdữliệu<64K
HUGE:mãvàdữliệunằmtrongđoạn>64K,mảngdữliệu>64K
.STACK:kíchthướcStackkhicóchươngtrìnhcon
QuiđịnhkíchthướcStacklà512byte(100h)
Mặcđịnh:1K
.CODE:điểmbắtđầuđoạnmãchươngtrình
.DATA:điểmbắtđầuđoạndữliệu
.MAIN PROC
;thân chương trình END MAIN
f Tạo lập và chạy một chương trình
o Dùngcácphầnmềmsoạnthảovănbản(SK, NC ) đểtạolậptệp vănbảnchươngtrìnhgốcbằnghợpngữ,đuôitệplàASM
o Dùng chương trình dịch MASM (Microsoft Macro Assembly) hoặcTASM(Turbo )đểdịchtệp.ASMramãmáydướidạngtệp.OBJ(Object)
o Dùng chương trình LINK hoặc TLINK để kết nối các OBJ lại với nhau thànhchươngtrình.EXE
o Nếu chương trìnhviết rađể dịchra kiểu COM thì dùng chương trình EXE2BINcủaDOSđểdịchtiếptừ.EXEsang.COM
o Chạychươngtrình
Vídụ:viếtchươngtrìnhđưaramànhìnhlờichào“Hello”
Chếđộđịachỉdùngđểxácđịnhtoánhạng,baogồm:
Chếđộđịachỉthanhghi:toánhạnglàthanhghi
Chếđộđịachỉtứcthì:toánhạnglàhằngsố
Chếđộđịachỉtrựctiếp:toánhạnglàbiếnnhớ
-34
-Ch
Địa chỉ offsetcủa toán hạng được chứa trongmột thanh ghi, thanhghi đóngvai trònhưmộtcontrỏtrỏđếncácônhớ
Khuôndạngtoánhạng:[thanhghi]
ThanhghicóthểlàBX,DI,SIhayBP vớicácthanhghiBX,DI,SIsốhiệuđoạncủatoánhạngchứatrongDS,vớithanhghiBPsốhiệuđoạnchứatrongSS
Trang 38XOR AX,AXLEA SI,WTong:
ADD AX,[SI]
ADD SI,2LOOP Tong
Ch
Trong các chếđộ địachỉ nàyđịa chỉoffset củacác toán hạng nhận được bằngcáchcộng1 sốđược gọilàđộdịchvới nộidungcủa1thanhghi Trongđóđộdịchcóthểlà:
Địachỉoffsetcủa1biến
CácthanhghiphảilàBX,SI,DIhayBP
DùngBX,SIhayDIthìsốhiệuđoạnchứatrongDS
DùngBPthìsốhiệuđoạnchứatrongSS
Chếđộđịachỉđuợc gọilàcơ sởnếu dùngBXhayBP,gọilàchỉsốnếudùngSIhayDI
Movax,[alpha+bx] Alpha+2 0456h
trongđoạnđánhđịachỉbởiDS
BXchứa2,offset0002chứa1084h
SIchứa4,offset0004chứa2BACh
DIchứa1
Trang 39CÂU HỎI VÀ BÀI TẬP
2.1 Trình bày kiến trúc chung của máy tính theo nguyên lý VonNewman? Nêuchứcnăngtừngđơnvị?Phânloạimáytínhtheokiếntrúc?
2.2Trình bàysơđồ cấutrúc, chứcnăngnhiệm vụcủabộxửlýtrungtâm(Nêurõ chứcnăngcủatừngđơnvị)
2.3.Trìnhbàytổchứcthanhghitrongvixửlý8086?
2.4.TrìnhbàychứcnăngnhiệmvụcấutạocủađơnvịsốhọcvàlogicALU?
2.5.Cácloạitínhiệuđiềukhiểncủađơnvịxửlýtrungtâm(Vẽsơđồgiảithích)?
2.6.Trìnhbàysơ đồcấutrúc,chứcnăngnhiệmvụcủađơnvịđiềukhiểnvichươngtrình?2.7.TrìnhbàykháiniệmvềBUS?PhânloạiBUS
-36
-Chương III: HỆ THỐNG NHỚ
3.1 Khái quát về hệ thống nhớ
• Vịtrí:
BêntrongCPU(register)
Internalmemory(mainmemory)
Bộnhớngoài(đĩacứng,đĩaquang)
Vớicáclệnh
Ví
Trang 40 Khối(block)làđơnvịtruyềndữliệu lớnhơntừnhớ,thườngđượcdụngtruyền
dữliệuvớibộnhớngoài
• Phươngpháptruynhập
trựctiếpbaohàmviệcchiasẻđọcviếtcơkhí.Nhữngtừnhớcủabảnghicóđịachỉ cơ sở duynhấttrênvịtrí vật lý Việctruynhập được hoànthànhbởitruynhập trựctiếp là điđến vùng lân cận chung cộng với tìm kiếm tuầntự, đếmhoặc đợiđểđiđến vịtrícuối cùng.Thời giantruynhập có thể thayđổiđược.Cácloạiđĩasửdụngphươngpháptruynhậptrựctiếp
nhất.Thờigiantruynhậpcácvịtríđãcho làđộclậpvớidãytruynhậpưutiên
vàlàhằngsố.Nhưvậy,vịtrínàocũngcóthểđượcchọnngẫunhiên,vàđịachỉtrựctiếp.Bộnhớchínhlàtruynhậpngẫunhiên
Truy nh ập li ên k ết: đâylàkiểu truynhập ngẫu nhiêncó thể làmsựso sánhvịtríbíttrongtừchomộtphéptoáncụthểvàlàmviệcnàychotấtcảcáctừđồngthời Vìvậymộttừđựơc tìmlạiđược dựavàochính nộidungcủa nóthayvìđịachỉcủanó.Vớitruynhậpngẫunhiênthôngthường,mỗivịtrícóđịachỉcơkhí củamình,vàthờigiantìmlà hằngsố độclậpvới vịtríhaymẫu hìnhtruynhậpưutiên.Bộnhớcachedùngcáchtruynhậpnày
• Sự thi hành
gianđểthựchiệnhoạtđộngđọcghi.Đólàthờigiantừkhiđịachỉđãsẵnsàngtrongbộnhớđếnkhidữliệuđượccấttrữhoặcđượclàmcóthểsửdụngđược.Đốivớtruynhậpkhôngphảilàngẫunhiênthờigiantruynhậplàthờigianđưa
vịtríđọcviếtcơkhíđếnvịtrímongmuốn