BỘ NHỚ hoặc

Một phần của tài liệu Giáo trình cấu trúc máy tính trần văn dũng (chủ biên) (Trang 36 - 81)

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, sub­routine 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 8­bit 20­bit 1M No 29,000 6/79 8086 5v 16­bit 20­bit 1M No 29,000 6/78 286 5v 16­bit 24­bit 16M No 134,000 2/82 386SX 5v 16­bit 24­bit 16M No 275,000 6/88 386SL 3.3v 16­bit 24­bit 16M 0K* 855,000 9/90 386DX 5v 32­bit 32­bit 4G No 275,000 9/85 486SX 5v 32­bit 32­bit 4G 8K 1,185,000 1/91 486SX2 5v 32­bit 32­bit 4G 8K 1,185,000 1/94 487SX 5v 32­bit 32­bit 4G 8K 1,200,000 1/91

486DX 5v 32­bit 32­bit 4G 8K 1,200,000 1/89 486SL** 3.3v 32­bit 32­bit 4G 8K 1,400,000 11/92

486DX2 5v 32­bit 32­bit 4G 8K 1,100,000 3/92 486DX4 3.3v 32­bit 32­bit 4G 16K 1,600,000 2/94 Pentium 5v 32­bit 32­bit 4G 2x16K 3,100,000 1/95

Pen 

60/66 5v 64­bit 32­bit 4G 2x8K 3,100,000 3/93 Pen 75+ 3.3v 64­bit 32­bit 4G 2x8K 3,300,000 3/94

Pen Pro 2.9v 64­bit 36­bit 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 450­550 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.4­1.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ế ị ạ ồ ề  

Một phần của tài liệu Giáo trình cấu trúc máy tính trần văn dũng (chủ biên) (Trang 36 - 81)

Tải bản đầy đủ (PDF)

(169 trang)