hoặc IO DEV Hệ thống kiểm soát BUS VXL 8086 74LS373 74LS245 8258 t n s b ng n a t n s nh p.ầ ố ằ ử ầ ố ị
– F/C là đ u vào đi u khi n, n u có xung m c 1 thì m ch dùng t n s daoầ ề ể ế ứ ạ ầ ố đ ng ngoài đ a vào chân EFI (chân 14), n u m c 0 thì s d ng t n s th ch anhộ ư ế ứ ử ụ ầ ố ạ
– CSYNK (Clock SYNChronization) được s d ng đ đ ng b các ICử ụ ể ồ ộ 8284 khi dùng dùng nhi u chíp nàyề
– RES xung Reset h th ng, khi n nút reset thì tín hi u s tác đ ng vàoệ ố ấ ệ ẽ ộ chân Reset (chân 10), IC s t o ra xung RES có đ công su t đ tác đ ng vào viẽ ạ ủ ấ ể ộ x lý làm kh i đ ng l i toàn h th ngử ở ộ ạ ệ ố
.4.5. H th ng busệ ố
Trong h 8086, bus h th ng đệ ệ ố ược ki m soát b ng m t IC là lo i Intelể ằ ộ ạ 8258 theo s đ t ng th nh hình v .ơ ồ ổ ể ư ẽ
Vi x lý 8086 đử ược đ ng b b i chíp t o nh p 8284 nh trên đã nêu.ồ ộ ở ạ ị ư H th ng ki m soát bus bao g m 3 IC là:ệ ố ể ồ
– 74LS373 là vi m ch ch t đ m dạ ố ệ ữ li uệ
– 74LS245 là vi m ch thu phát busạ
– 8258 là vi m ch phát các tín hi u ki m soát bus.ạ ệ ể
H th ng bus là đệ ố ường liên l c hai chi u gi a vi x lý và các thi t bạ ề ữ ử ế ị ngo i vi, trong quá trình ho t đ ng, d li u liên t c đạ ạ ộ ữ ệ ụ ược đ a lên bus theo c haiư ả fx = 14.31828 MHz
CLK (fCLK =1/3fx )
Lược đồ phân chia tần số - thời gian
chi u. Đ đ ng b các ho t đ ng đó, vi m ch ch t có nhi m v b o đ m dề ể ồ ộ ạ ộ ạ ố ệ ụ ả ả ữ li u trên bus là n đ nh, không b tác đ ng b i các tín hi u khác, vi m ch thu phátệ ổ ị ị ộ ở ệ ạ bus đ m b o chu n b t t đả ả ẩ ị ố ường truy n theo đúng hề ướng (thu hay phát) và toàn b độ ược đ ng b b i vi m ch ki m soát bus.ồ ộ ở ạ ể
.4.6. Chương trình và chương trình con .1 Chương trình máy vi tính
Vi x lý có m t t p các l nh c a nó g i làử ộ ậ ệ ủ ọ t p l nh vi x lý (Instruction Set – IS). Đ đi uậ ệ ử ể ề khi n vi x lý ho t đ ng nh mong mu n thìể ử ạ ộ ư ố ph i l p trình sao cho vi x lý th c hi n l n lả ậ ử ự ệ ầ ượt các l nh vi x lý (còn g i là các vi l nh –ệ ử ọ ệ microcode). T p h p các l nh theo m t trình tậ ợ ệ ộ ự nh t đ nh (g i là thu t toán – algorithm) t o thànhấ ị ọ ậ ạ m t chộ ương trình máy tính.
Khi chương trình được g i, đ u tiên nó đọ ầ ược n p lên b nh và đạ ộ ớ ược hệ đi u hành phân b theo các vùng: vùng mã l nh, vùng d li u, vùng ngăn x p,ề ổ ệ ữ ệ ế sau đó vi x lý s l y t ng l nh theo l n lử ẽ ấ ừ ệ ầ ượt trên b nh vùng mã l nh c aộ ớ ở ệ ủ chương trình. V i 8086 các chớ ương trình thường có kích thước nh , nên đỏ ược b trí trên b nh nh hình v .ố ộ ớ ư ẽ
Đ u ph n b nh dành cho chầ ầ ộ ớ ương trình là Header (t m g i là tiêu đ ),ạ ọ ề tùy theo lo i chạ ương trình mà có kích thước và n i dung khác nhau, nh ng chộ ư ủ y u là mang thông tin c b n v chế ơ ả ề ương trình. Ti p theo là vùng mã l nh, sauế ệ n a là vùng d li u, hai vùng này đữ ữ ệ ược b trí trên cùng m t đo n b nh do đóố ộ ạ ộ ớ CS (đ a ch đo n mã l nh) = DS (đ a ch đo n d li u). N u chị ỉ ạ ệ ị ỉ ạ ữ ệ ế ương trình có lượng d li u l n thì h đi u hành s c p thêm cho nó đo n b nh b sung vàữ ệ ớ ệ ề ẽ ấ ạ ộ ớ ổ đo n này có đ a ch là ES khác v i đo n mã l nh, n u không có thì ES = CS.ạ ị ỉ ớ ạ ệ ế
Bố trí chương trình trên bộ nhớ 00FFh 0000h Mã lệnh Dữ liệu Vùng trống Ngăn xếp Đoạn nhớ (segment) CS =DS =ES =SS Header
nh hình v , ti p theo t ng l nh đư ẽ ế ừ ệ ược n p vào vi x lý và th c hi n theo đúngạ ử ự ệ trình t trên b nh và đự ộ ớ ược g i là th c hi n tu n t .ọ ự ệ ầ ự
.2 Chương trình con
Chương trình con thường được g i v i các thu t ng routine, function,ọ ớ ậ ữ procedure và được d ch là ti u trình, hàm, th t c và tùy theo t ng ngôn ng l pị ể ủ ụ ừ ữ ậ trình mà s d ng các thu t ng đó, nh ng t t c đ u chung m t ý nghĩa.ử ụ ậ ữ ư ấ ả ề ộ
Trong quá trình th c hi n l nh, trong chự ệ ệ ương trình có th có nh ng ph nể ữ ầ (ho c môdun) c n th c hi n nhi u l n. Đ gi i quy t v n đ này v i m c đíchặ ầ ự ệ ề ầ ể ả ế ấ ề ớ ụ t i u hóa chố ư ương trình, có th s d ng các c u trúc l p, tuy nhiên nhi u khi cácể ử ụ ấ ặ ề c u trúc l p cũng không gi i quy t đấ ặ ả ế ược th c s v n đ , ngự ự ấ ề ười ta đ a ra m tư ộ c u trúc cho các môđun này và g i là các chấ ọ ương trình con.
Chương trình con là m t thành ph n đ c bi t c a chộ ầ ặ ệ ủ ương trình, nó có c uấ trúc r t gi ng nh chấ ố ư ương trình, s khác bi t là nó n m trong không gian nhự ệ ằ ớ c a chủ ương trình. Chương trình ch a chứ ương trình con g i là chọ ương trình chính, chương trình con có th là các hàm, th t c (nh trong Turbo Pascal) hayể ủ ụ ư l nh g i (routine, subroutine trong Assemble).ệ ọ
.3 Ho t đ ng khi có chạ ộ ương trình con
N u có chế ương trình con thì chương trình chính c n có l nh g i chầ ệ ọ ương trình con, và là l nh “ệ call <label>”, đây label có th là tên chở ể ương trình con ho c đ a ch c a đi m b t đ u chặ ị ỉ ủ ể ắ ầ ương trình con.
Khi có l nh call thì vi x lý s th c hi n:ệ ử ẽ ự ệ
– T m d ng th c hi n chạ ừ ự ệ ương trình chính theo trình t tu n tự ầ ự
– T đ ng l u c t IP (đ a ch c a l nh ti p theo c n th c hi n) vào ngănự ộ ư ấ ị ỉ ủ ệ ế ầ ự ệ x pế
– T đ ng l u c t các đ a ch đo n c a chự ộ ư ấ ị ỉ ạ ủ ương trình chính (các đ a ch CS,ị ỉ DS, ES, SS) vào ngăn x pế
k t thúc chế ương trình con (nh có l nh return) thì chu n b đ tr v chờ ệ ẩ ị ể ở ề ương trình chính
– Vi x lý đi u khi n khôi ph c các thanh ghi đ a ch đo n (CS, DS, ES,ử ề ể ụ ị ỉ ạ SS)
– Khôi ph c đ a ch l nh IP và th c hi n l nh t i đây.ụ ị ỉ ệ ự ệ ệ ạ
V i cách th c hi n nh v y, khi làm vi c v i chớ ự ệ ư ậ ệ ớ ương trình con, h vi xệ ử lý luôn luôn tr v đúng v trí trở ề ị ước khi nó th c hi n chự ệ ương trình con. Đi uề c n nh là chầ ớ ương trình con s s d ng các thanh ghi khác theo m c đích c a nóẽ ử ụ ụ ủ (gi ng nh chố ư ương trình chính), nên n u có các d li u c n trao đ i gi aế ữ ệ ầ ổ ữ chương trình chính và chương trình con thì ph i s d ng k thu t chuy n giaoả ử ụ ỹ ậ ể d li u.ữ ệ
.4.7. Vi x lý pentium ử
Các máy vi tính ph bi n hi n nay ph n l n d a trên c s x86 (base x86),ổ ế ệ ầ ớ ự ơ ở t c là c u trúc c s là b vi x lý 8086. Dòng máy x86 phát tri n qua các th hứ ấ ơ ở ộ ử ể ế ệ 286, 386, 486 r i pentium. Đ n dòng pentium thì c u trúc và ho t đ ng c a vi xồ ế ấ ạ ộ ủ ử lý đã được thay đ i m nh m , nh ng v n d a trên x86, nh ng có nh ng đ c tínhổ ạ ẽ ư ẫ ự ư ữ ặ tiên ti n vế ượ ột tr i. B ng sau cho th y s phát tri n v c u trúc đi n t bên trongả ấ ự ể ề ấ ệ ử các vi x lý c a Intel.ử ủ
P
Μ Đ/a Bus dữ li uệ
Bus đ aị
chỉ RAM Cache Transistor
s Date 8088 5v 8bit 20bit 1M No 29,000 6/79 8086 5v 16bit 20bit 1M No 29,000 6/78 286 5v 16bit 24bit 16M No 134,000 2/82 386SX 5v 16bit 24bit 16M No 275,000 6/88 386SL 3.3v 16bit 24bit 16M 0K* 855,000 9/90 386DX 5v 32bit 32bit 4G No 275,000 9/85 486SX 5v 32bit 32bit 4G 8K 1,185,000 1/91 486SX2 5v 32bit 32bit 4G 8K 1,185,000 1/94 487SX 5v 32bit 32bit 4G 8K 1,200,000 1/91
486DX 5v 32bit 32bit 4G 8K 1,200,000 1/89 486SL** 3.3v 32bit 32bit 4G 8K 1,400,000 11/92
486DX2 5v 32bit 32bit 4G 8K 1,100,000 3/92 486DX4 3.3v 32bit 32bit 4G 16K 1,600,000 2/94 Pentium 5v 32bit 32bit 4G 2x16K 3,100,000 1/95
Pen
60/66 5v 64bit 32bit 4G 2x8K 3,100,000 3/93 Pen 75+ 3.3v 64bit 32bit 4G 2x8K 3,300,000 3/94
Pen Pro 2.9v 64bit 36bit 64G 2x8K 5,500,000
Các lo i Pentium II có t c đ xung nh p t 233MHz đ n 450 MHz khôngạ ố ộ ị ừ ế t n t i lâu vì đồ ạ ược thay th b i Pentium III và sau đó là Pentium IV nh đế ở ư ược nêu trong b ng sauả
Tên mã Tech T c đ (GHz)ố ộ Bus (MHz) Cache Transistors Năm SX Pen III Katmai 0.25 450550 MHz 100 512 9,500,000 1999 Coppermin e 0.18 533 733MHz 100/133 256 28,100,000 1999 Coppermin e 0.18 0.850 1 100/133 256 28,100,000 2000 Tualatin 0.13 1.2 1.4 256 44,000,000 2001 Pen IV Willamette 0.18 1.41.5 256 42,000,000 2000 Willamette 0.18 1.7 2.0 256 42,000,000 2001 Northwood 0.13 2.0 3.2 400/533 512 55,000,000 2002 Northwood 0.13 3.2 400/533 512 55,000,000 2003 Northwood 0.13 3.2 800 512 55,000,000 IV/2003 Prescott 478 0.09 3.2 3.4 3.6 800 1MB ? II/2004 Prescott 775 0.09 3.2 – 3.6 800 1MB ? III/2004 Prescott 775 0.09 3.8 800 1MB ? IV/2004
.1 C u trúc kh iấ ố
Trên hình là các vi x lý pentium c a Intel và th h tử ủ ế ệ ương đương c aủ AMD, các vi x lý này có chung các đ c tính tiên ti n, có tính ch t cách m ngử ặ ế ấ ạ trong công ngh vi x lý m c dù v n là lo i x86.ệ ử ặ ẫ ạ
C u trúc kh i bên trong c a pentium nh hình vấ ố ủ ư ẽ Lo i pentium đ u tiên ra đ i nămạ ầ ờ
1993 g m 4 l p m ch d n v i sồ ớ ạ ẫ ớ ố lượng tranzixtor r t l n, và đấ ớ ược c uấ t o xung quanh m t lõi (Core), cácạ ộ thành ph n gi ng nh c a 8086 đ uầ ố ư ủ ề được m r ng kích thở ộ ước và b sungổ đ c tính.ặ
Kh i BIU đố ược m r ng v i bở ộ ớ ộ đ m l nh và b đ m d li u riêngệ ệ ộ ệ ữ ệ bi t.ệ
B đ m m c 1 (cache level 1) g m b đ m l nh (code cache) và b đ mộ ệ ứ ồ ộ ệ ệ ộ ệ d li u (data cache). B đ m m c 2 (cache level 2) có dung lữ ệ ộ ệ ứ ượng l n, làm vi cớ ệ v i t c đ vi x lý, có ch c năng tớ ố ộ ử ứ ương đương v i thanh ghi t m trong 8086. ớ ạ
Kh i th c hi n l nh có thêm b tính toán s th c d u ch m đ ng (floatingố ự ệ ệ ộ ố ự ấ ấ ộ point unit FPU) bên c nh các kh i ALU và register, chú ý r ng các thanh ghiạ ố ằ
Một số vi xử lý của hãng Intel
hoàn toàn là lo i 32 bit.ạ
Bus n i b c a pentium là bus 32 bit, n i ra ngoài t i b nh ngoài 32 bit,ộ ộ ủ ố ớ ộ ớ nên không ph i có m ch gi i mã đ a ch nh 8086.ả ạ ả ị ỉ ư
.2 Đ c tính tiên ti nặ ế
Pentium được xây d ng v i các đ c tính vự ớ ặ ượt tr i, d a trên c s c aộ ự ơ ở ủ phương th c l nh đ ng ngo i l theo 3 cách, m i cách đ u có m ch đi n tứ ệ ộ ạ ệ ỗ ề ạ ệ ử th c hi n:ự ệ
– Ph ng đoán nhánh sâu (branch prediction): cho phép gi i mã l nh ngayỏ ả ệ c trên các nhánh r (khi dùng các l nh c u trúc ho c chả ẽ ệ ấ ặ ương trình con)
– Phân tích dòng d li u đ ng (instruction decode and prefetch unit): tữ ệ ộ ự đ ng phân tích dòng d li u đ th c hi n l nh m t cách t i u, liên t c.ộ ữ ệ ể ự ệ ệ ộ ố ư ụ
– Tiên đoán : cho phép n p l nh trạ ệ ướ ảc c con tr l nhỏ ệ
Nh ba phờ ương pháp nêu trên nên vi x lý pentium luôn luôn th c hi n cácử ự ệ l nh v i công su t t i đa, gi m hoàn toàn th i gian ch l nh.ệ ớ ấ ố ả ờ ờ ệ
.5 Các ch đ ho t đ ng c a vi x lýế ộ ạ ộ ủ ử
.5.1. Ch đ th cế ộ ự
Đ i v i Intel 8086 ch có m t ch đ ho t đ ng nh đã mô t trên, trongố ớ ỉ ộ ế ộ ạ ộ ư ả ở đó vi x lý ki m soát 20 bus đ a ch , do đó đi u khi n đử ể ị ỉ ề ể ược 1 MB b nh g m 2ộ ớ ồ b ph n:ộ ậ
640 KB đ u tiên (tính t đ a ch 0h:0000h đ n 9h:FFFFh) g i là b nhầ ừ ị ỉ ế ọ ộ ớ quy ước (conventional memory), và DOS ch ho t đ ng đỉ ạ ộ ược trong ph m vi nàyạ
384 KB ti p theo (tính t đ a ch Ah:0000h đ n Fh:FFFFh) g i là b nhế ừ ị ỉ ế ọ ộ ớ trên hay b nh m r ng, mu n s d ng b nh này ph i có ph n m m qu n lýộ ớ ở ộ ố ử ụ ộ ớ ả ầ ề ả b nh riêng, Microsoft có ph n m m EMM386.EXE, m t s hãng khác cũng cóộ ớ ầ ề ộ ố ph n m m c a mình (nh QEMM386.EXE..).ầ ề ủ ư
đ a ch Ah đị ỉ ược dùng cho màn hình đ h a.ồ ọ
Theo m c đ nh (default) thì DOS s đặ ị ẽ ược n p vào vùng nh quy ạ ớ ước v iớ dung lượng kho ng 300KB, t c là ch còn 340KB cho các chả ≈ ứ ỉ ương trình khác.
Khi ch y m t chạ ộ ương trình thì toàn b chộ ương trình s đẽ ược n p t đĩaạ ừ lên vùng nh quy ớ ước (theo cách b trí nh trên đã xét), nh ng do ch còn ít vùngố ư ư ỉ nh quy ớ ước nên dung lượng c a m i chủ ỗ ương trình ph i đ nh , n u không thìả ủ ỏ ế s thi u b nh (l i insufficien memory). Do v y microsoft s d ng ph n m mẽ ế ộ ớ ỗ ậ ử ụ ầ ề HIMEM.SYS đ n p DOS lên vùng nh cao (trong vùng nh m r ng), có thể ạ ớ ớ ở ộ ể làm b nh quy ộ ớ ướ ỗc r i thêm được 150 200 KB cho các chương trình khác.
Ch đ làm vi c này là ch đ th c (real mode). Trên th c t , khi th cế ộ ệ ế ộ ự ự ế ự hi n các thao tác ki m tra, s a ch a máy vi tính nên s d ng ch đ này b ngệ ể ử ữ ử ụ ế ộ ằ cách kh i đ ng t DOS v i đĩa CD ho c USB.ở ộ ừ ớ ặ
.5.2. Ch đ b o vế ộ ả ệ
Vi x lý 286 b t đ u có kh năng ho t đ ng đa nhi m. Trong ch đ đaử ắ ầ ả ạ ộ ệ ế ộ nhi m, nhi u chệ ề ương trình có th ch y đ ng th i, vì v y c n có m t c ch để ạ ồ ờ ậ ầ ộ ơ ế ể các chương trình đó không nh hả ưởng đ n nhau.ế
Ch đ b o v s d ng 2 c ch là phân đo n và phân trang.ế ộ ả ệ ử ụ ơ ế ạ
Phân đo n chia b nh thành các vùng riêng bi t dành cho mã l nh, dạ ộ ớ ệ ệ ữ li u, ngăn x p đ qu n lý, vì v y nhi u chệ ế ể ả ậ ề ương trình cùng ch y s không b nhạ ẽ ị ả hưởng l n nhau.ẫ
Phân trang s d ng b nh o là m t vùng trên đĩa c ng, chia thành cácử ụ ộ ớ ả ộ ứ trang (page). Các chương trình s d ng các trang đ l u tr t m, ch m t ph nử ụ ể ư ữ ạ ỉ ộ ầ c a chủ ương trình được đ a vào b nh v t lý khi c n thi t. Nh cách qu n lýư ộ ớ ậ ầ ế ờ ả này mà các nhi m v đang ch y đệ ụ ạ ược tách riêng bi t.ệ
.5.3. Đa nhi m và ch đ oệ ế ộ ả
song, m i chỗ ương trình được g i là m t tác v (Task). Ch đ o là ch đ họ ộ ụ ế ộ ả ế ộ ệ đi u hành mô ph ng ho t đ ng nh vi x lý 8086, đó là m t trong các tác v màề ỏ ạ ộ ư ử ộ ụ h đi u hành có th th c hi n song song v i các tác v khác, t c là trong ch đệ ề ể ự ệ ớ ụ ứ ế ộ đa nhi m.ệ
Trong ch đ o, vi x lý t o ra m t máy o (vitual machine – VM) ho tế ộ ả ử ạ ộ ả ạ đ ng ch đ b o v gi ng nh m t máy dùng vi x lý 8086, và có m t s đ cộ ở ế ộ ả ệ ố ư ộ ử ộ ố ặ tính b o v riêng.ả ệ
Vì đây không ph i là m t máy vi tính th c s , nên khi c n can thi p vàoả ộ ự ự ầ ệ ph n c ng thì h đi u hành s b o v , làm cho không th can thi p tr c ti pầ ứ ệ ề ẽ ả ệ ể ệ ự ế vào ph n c ng nh trong ch đ th c. K t qu là ph n l n các ti n ích ch nầ ứ ư ế ộ ự ế ả ầ ớ ệ ẩ đoán và s a l i ph n c ng không th ch y trong ch đ này. Nói cách khác, đử ỗ ầ ứ ể ạ ế ộ ể ch n đoán và s a l i ph n c ng máy vi tính nh t thi t ph i ch y trong ch đẩ ử ỗ ầ ứ ấ ế ả ạ ế ộ DOS mà không th ch y trong windows (th c t hi n nay đã xu t hi n m t sể ạ ự ế ệ ấ ệ ộ ố ph n m m ch y trên windows nh ng ch a ph bi n và khá đ t ti n, khó sầ ề ạ ư ư ổ ế ắ ề ử d ng).ụ
.6 Ng t và DMAắ
.6.1. Ng t (Interrupt)ắ
M t ho t đ ng h t s c quan tr ng c a h vi x lý là ng t. Ng t là vi cộ ạ ộ ế ứ ọ ủ ệ ử ắ ắ ệ t m d ng ho t đ ng hi n t i c a vi x lý đ th c hi n tác v khác theo yêuạ ừ ạ ộ ệ ạ ủ ử ể ự ệ ụ c u, sau đó l i quay tr l i theo ti n trình.ầ ạ ở ạ ế
Đ c tr ng c a ng t là s hi u ng t, và kèm theo m i s hi u ng t làặ ư ủ ắ ố ệ ắ ỗ ố ệ ắ chương trình ph c v ng t (interrupt service routine – ISR)ụ ụ ắ
.1 Các lo i ng tạ ắ
Đ vi x lý nh n bi t và th c hi n ng t, ph i có yêu c u ng t (interruptể ử ậ ế ự ệ ắ ả ầ ắ request – IR). Tùy theo yêu c u ng t do ph n c ng phát ra hay do ph n m m yêuầ ắ ầ ứ ầ ề c u mà có ầ ng t c ngắ ứ (do ph n c ng phát ra) hay ầ ứ ng t m mắ ề (do ph n m m yêuầ ề
c u), ngoài ra còn m t s ng t ầ ộ ố ắ n i bộ ộ do chính vi x lý phát ra. Các ng t có thử ắ ể b t ch i ho c không th b t ch i g i là các ng t che đị ừ ố ặ ể ị ừ ố ọ ắ ược (Maskable Interrupt) hay không che được (none maskable interrupt – NMI). Khi có ng t thìắ m t chộ ương trình được g i đ n đ x lý ng t và đọ ế ể ử ắ ược g i là chọ ương trình ph cụ v ng t (ISR).ụ ắ
.a Ng t n i b : đắ ộ ộ ược chính vi x lý phát ra khi có v n đ trong ho tử ấ ề ạ đ ng c a nó là chia cho 0 (divide by zero), tràn b nh đ m (over flow), bu c viộ ủ ộ ớ ệ ộ x lý ch y t ng l nh, đây là nh ng ng t không che đử ạ ừ ệ ữ ắ ược, b t bu c ph i ph cắ ộ ả ụ v . Theo ng m đ nh thì các ng t n i b ch d ng toàn b ho t đ ng c a h viụ ầ ị ắ ộ ộ ỉ ừ ộ ạ ộ ủ ệ x lý (tình tr ng treo máy), nên mu n x lý các ng t này m t cách có hi u quử ạ ố ử ắ ộ ệ ả thì ngườ ậi l p trình ph i t o ra m t ISR khác s d ng các ng t c a BIOS.ả ạ ộ ử ụ ắ ủ
.b Ng t c ng: ng t c ng do m ch đi n ph n c ng phát ra yêu c u vi xắ ứ ắ ứ ạ ệ ầ ứ ầ ử lý chú ý đ n ph n c ng đó, ví d khi ta n m t phím thì bàn phím phát ra m t tínế ầ ứ ụ ấ ộ ộ hi u ng t, theo ng m đ nh ng t này hệ ắ ầ ị ắ ướng vi x lý đ n b ng mã ký t c aử ế ả ự ủ ROM và làm hi n ký t đó lên màn hình, trên th c t , các h đi u hành đã s aệ ự ự ế ệ ề ử l i chạ ương trình ph c v ng t này đ nó th c hi n nhi m v nhi u h n th vàụ ụ ắ ể ự ệ ệ ụ ề ơ ế chương trình ph c v ng t m i cho ng t c ng thụ ụ ắ ớ ắ ứ ường được g i là các trình đi uọ ề khi n thi t b (device driver). ể ế ị
.c Ng t m m: có 256 ng t đắ ề ắ ược đánh s t 0 ố ừ 255 (0h FFh), bao g mồ ng t c a BIOS, các ng t DOS và các ng t ch a dùng đ n.ắ ủ ắ ắ ư ế
Ng t c a BIOS là các ng t c s ph c v ph n c ng (t 0h ắ ủ ắ ơ ở ụ ụ ầ ứ ừ 1Fh), tương ng v i các ng t c ng và ng t n i b . Ví d ng t s 0 tứ ớ ắ ứ ắ ộ ộ ụ ắ ố ương ng v iứ ớ ng t chia cho 0, ng t s 9 tắ ắ ố ương ng v i ng t bàn phím v.v.. Chú ý r ng cácứ ớ ắ ằ ng t c ng đắ ứ ược gán hoàn toàn cho các thi t b ph n c ng (là m ch đi n t ) nênế ị ầ ứ ạ ệ ử không th thay đ i, mu n t o các trình đi u khi n thi t b thì ph i th c hi nể ổ ố ạ ề ể ế ị ả ự ệ thông qua các ng t c a BIOS tắ ủ ương ng.ứ
Ng t c a DOS (t 20h ắ ủ ừ 60h) được dành cho các ho t đ ng c s c aạ ộ ơ ở ủ DOS nh đi u khi n vào ra, đi u khi n các đĩa, đi u khi n bàn phím, chu tư ề ể ề ể ổ ề ể ộ v.v..
Trong các ng t còn l i còn có ng t c a BASIC (m t ngôn ng l p trình doắ ạ ắ ủ ộ ữ ậ Bil Gate sáng t o ra) t 80h ạ ừ F0h, ngoài ra là các ng t ch a dùng đ n và đây làắ ư ế n i mà ngơ ườ ậi l p trình không chuyên có th s d ng cho các chể ử ụ ương trình c aủ mình.
.2 Ho t đ ng c a vi x lý khi có ng t:ạ ộ ủ ử ắ
Khi có yêu c u ng t thì chân s 18 c a 8086 (chân INTR) có tín hi u m cầ ắ ố ủ ệ ứ cao, n u chân s 17 (chân NMI) có m c th p thì ng t không đế ố ứ ấ ắ ược th c hi n, cònự ệ n u chân này có m c cao thì h vi x lý s th c hi n tu n t các vi c:ế ở ứ ệ ử ẽ ứ ệ ầ ự ệ
– L u thanh ghi c (t đ ng POPF),ư ờ ự ộ – Ra l nh c m m i ng t khác,ệ ấ ọ ắ
– L u các thanh ghi đo n (th c hi n t đ ng c t vào ngăn x p)ư ạ ự ệ ự ộ ấ ế – L u thanh ghi con tr l nh IPư ỏ ệ
– L y đ a ch c a chấ ị ỉ ủ ương trình ph c v ng t (ISR) và th c hi n chụ ụ ắ ự ệ ương trình này
– Khi k t thúc chế ương trình ph c v ng t (l nh tr v IRET) thì th cụ ụ ắ ệ ở ề ự hi n các vi c trên theo th t ngệ ệ ứ ự ượ ạc l i.
Khi có nhi u ng t c ng đ ng th i yêu c u thì h 8086 ph i x lý b ng bề ắ ứ ồ ờ ầ ệ ả ử ằ ộ m ch x lý u tiên ng t (vi m ch 8259A).ạ ử ư ắ ạ
Chú ý:
Nên nh r ng DOS (ớ ằ Disk Operating System) nghĩa là h đi u hành t đĩaệ ề ừ (được n p t đĩa) khác v i trạ ừ ớ ước đây, h đi u hành đ t s n trong ROM nhệ ề ặ ẵ ư ROM BASIC, còn MS – DOS là h đi u hành DOS c a Microsoft, s d ng cácệ ề ủ ử ụ ng t DOS c a ROM, ngoài MS – DOS còn có r t nhi u h đi u hành DOS khácắ ủ ấ ề ệ ề
nh FreeDOS, IBMDOS, v.v..ư .6.2. DMA
.1 Gi i thi u:ớ ệ
Trong đi u ki n bình thề ệ ường, khi có yêu c u chuy n d li u thì ph i raầ ể ữ ệ ả l nh cho vi x lý (MOV, REP), các l nh này th c hi n r t hi u qu n u ch cóệ ử ệ ự ệ ấ ệ ả ế ỉ m t kh i lộ ố ượng nh d li u c n chuy n, nh ng vì các l nh này có th i gianỏ ữ ệ ầ ể ư ệ ờ th c hi n l n (4ự ệ ớ 6 chu k bus cho m t l nh MOV) nên khi c n chuy n lỳ ộ ệ ầ ể ượng l n d li u (nh đ c d li u t đĩa c ng) thì lãng phí th i gian và hi u qu sớ ữ ệ ư ọ ữ ệ ừ ứ ờ ệ ả ử d ng vi x lý th p.ụ ử ấ
Trong máy vi tính, k t đ i 8086 đã có m t IC đ m nhi m vi c đi uể ừ ờ ộ ả ệ ệ ề khi n trao đ i lể ổ ượng l n d li u gi a thi t b ngo i vi và b nh , g i là DMAớ ữ ệ ữ ế ị ạ ộ ớ ọ (Direct Memory Access – truy c p tr c ti p b nh ) và dùng IC 8237. ậ ự ế ộ ớ
IC 8237 là m ch đi u khi n truy c p tr c ti p b nh (DMAC) có 4 kênhạ ề ể ậ ự ế ộ ớ DMA, m i kênh có b nh trong riêng đ m b o chuy n d li u liên t c gi a bỗ ộ ớ ả ả ể ữ ệ ụ ữ ộ nh và thi t b ngo i vi, do đó cho phép vi x lý t p trung vào vi c x lý l nhớ ế ị ạ ử ậ ệ ử ệ mà không c n quan tâm đ n vi c đi u khi n lu ng d li u vào/ra do đó tăng t cầ ế ệ ề ể ồ ữ ệ ố đ làm vi c chung c a c h th ng.ộ ệ ủ ả ệ ố
Khi thi t b ngo i vi có yêu c u DMA thì DMAC phát ra tín hi u yêu c uế ị ạ ầ ệ ầ HOLD (tín hi u yêu c u treo) vào th i đi m b t đ u chu k bus, vi x lý k tệ ầ ờ ể ắ ầ ỳ ử ế thúc chu k bus hi n t i thì đ a ra tín hi u ch p nh n treo HDLA (ỳ ệ ạ ư ệ ấ ậ HoLD Aknowledge) và t tách ra kh i bus, t c là h th ng đi u khi n bus trao quy nự ỏ ứ ệ ố ề ể ề đi u khi n cho DMAC.ề ể
.2 M ch đi u khi n DMA (DMAC) ạ ề ể
M ch đi u khi n DMA là IC 8237 có s đ chân nhạ ề ể ơ ồ ư hình v , nó có 4 kênh DMA. Ngay khi kh i đ ng máy vi tínhẽ ở ộ thì vi x lý đã xác l p đi u ki n làm vi c ban đ u choử ậ ề ệ ệ ầ
U25 5 6 12 13 11 7 19 18 17 16 36 1 2 32 33 34 35 37 38 39 40 30 29 28 27 26 23 22 21 25 24 14 15 VX READY CLK RESET CS HLDA DRQ0 DRQ1 DRQ2 DRQ3 EOP IOR IOW A0 A1 A2 A3 A4 A5 A6 A7 DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 DAK0 DAK1 DAK2 DAK3
DMAC, tùy theo các xác l p trong BIOS SETUP mà nó đ t cho các thi t b ngo iậ ặ ế ị ạ vi được n i vào đố ường nào.
Kênh s 0 ( u tiên cao nh t) luôn đố ư ấ ược dành cho h th ng làm tệ ố ươi RAM, còn l i 3 kênh s 1, 2, 3 đạ ố ượ ẵc s n sàng cho các thi t b ngo i vi bao g m đi uế ị ạ ồ ề