Tài liu môn hc: Ghép ni và ñiu khin thit b ngoi vi
Ging viên: Nguyn Văn Minh Trí 59
CHƯƠNG 5: GHÉP NI VÀO RA ðIU KHIN BNG DMA
5.1 Khái nim DMA cơ b$n
5.1.1 Khái nim DMA
Phương pháp trao ñ%i d liu theo chương trình s, chm do:
- VXL phi gii mã và thc hin lnh
- Trao ñ%i d liu t(ng byte thông qua thanh cha AX c"a VXL.
K$ thut vào ra DMA (direct memory access) phương pháp truy cp trc tip t!i b
nh! hoc I/O không s tham gia c"a CPU. Phương pháp này trao ñ%i d liu gia
b nh! thit b ngoi vi v!i tc ñ cao ch& b hn ch bi tc ñ c"a b nh! hoc
c"a b ñiu khin DMA. Tc ñ truyn DMA th ñt t!i 10 ÷ 12 Kbyte/s v!i c b
nh! RAM có tc ñ cao. DMA ñưc ng dng trong nhiu mc ñích nhưng thông thưng
ñưc dùng trong quá trình "refresh" DRAM, xut màn hình, ñc ghi ñĩa, truyn d
liu gia các vùng nh! v!i tc ñ cao .
5.1.2 Hot ñng DMAC (DMA Controller) cơ bn
Hai tín hiu ñ yêu cu và xác nhn trong h thng VXL HOLD ñưc s dng ñ yêu
cu DMA HLDA ñu ra xác nhn DMA. Khi tín hiu HOLD hot ñng (HOLD =
1), DMA ñưc yêu cu. B VXL tr li b#ng cách kích hot tín hiu HLDA, xác nhn
yêu cu, ñ'ng thi th n%i các công vic hin thi cùng các bus d liu ña ch&, ñiu
khin ñưc ñt trng thái tr kháng cao. Trng thái y cho phép các thit b I/O bên
ngoài hoc các b VXL khác nm quyn ñiu khin bus h thng ñ truy cp trc tip b
nh! . Tín hiu HOLD mc ưu tiên cao hơn INTR hoc ñu vào NMI (ngt không che
ñưc) và ch& sau RESET. Tín hiu HOLD luôn có hiu lc ti bt k thi ñim nào trong
sut quá trình thc hin các lnh khác c"a VXL. Chú ý r#ng t( lúc tín hiu HOLD thay
ñ%i cho ñn khi tín hiu HLDA thay ñ%i ñã tri qua mt s chu k clock .
DMA thưng ñưc thc hin gia thit b I/O và b nh!. Quá trình ñc DMA là quá trình
ñưa d liu t( b nh! ra thit b I/O, và ngưc li quá trình ghi DMA là quá trình ñưa d
liu t( I/O t!i b nh!. Trong c hai chu trình này thit b I/O b nh! ñưc ñiu khin
ñ'ng thi d4n ñn cn c tín hiu ñiu khin khác nhau. Ð ñiu khin quá trình ñc
DMA ta cn hai tín hiu hot ñng MEMR (ñc b nh! ) IOW (ghi I/O). Ð ñiu
khin quá trình ghi ta hai tín hiu MEMW (ghi b b nh!) và IOR (ñc I/O). B ñiu
khin DMA cung cp ña ch& b nh! và tín hiu chn thit b I/O cho 8088 trong sut quá
trình DMA. Do tc ñ truyn DMA ph thuc vào tc ñ c"a b nh! tc ñ c"a b
ñiu khin DMA nên trong trưng hp tc ñ c"a b ñiu khin DMA nh- hơn so v!i b
nh! thì b ñiu khin DMA s, làm gim tc ñ chung c"a h thng .
Hình v, sau minh ho quá trình hot ñng DMA cơ bn cùng ñ' th thi gian ñc / ghi
DMA :
Tài liu môn hc: Ghép ni và ñiu khin thit b ngoi vi
Ging viên: Nguyn Văn Minh Trí 60
Ð' th thi gian ñc / ghi DMA .
Tài liu môn hc: Ghép ni và ñiu khin thit b ngoi vi
Ging viên: Nguyn Văn Minh Trí 61
5.1.3. Các ch ñ trao ñi d liu DMA
+ Trao ñ%i d liu theo khi: trao ñ%i nhiu li d liu, ñm t( giá tr n ñn 0.
+ Trao ñ%i ly lén chu k t(ng phn: DMA phát hin data bus r2i, r'i thc hin trao
ñ%i d liu DMA.
DMAC phi có:
- Thit b phát hin ñưng dây r2i
- Thit b bo ñm VXL b treo cho t!i khi DMAC không s dng ñưng dây,
khin VXL ch mt thi gian Tw
t!i khi DMAC thc hin trao ñ%i xong trong
mt phn c"a trao ñ%i d liu và tip tc nt phn ly lén chu k sau cho t!i
khi kt thúc trao ñ%i c t( d liu DMA.
+ Trao ñ%i ly lén chu k trong sut: ging ch ñ trên, nhưng DMA bt VXL ch t!i
khi trao ñ%i xong mt t( d liu trn v5n.
Tài liu môn hc: Ghép ni và ñiu khin thit b ngoi vi
Ging viên: Nguyn Văn Minh Trí 62
5.2 B! ñi-u khi.n DMA – 8237A
Vi mch 8237A mt b ñiu khin DMA cung cp ña ch& b nh! tín hiu ñiu
khin trong sut quá trình DMA truyn s liu v!i tc ñ cao gia b nh! thit b
vào ra. 8237 là vi mch có 4 kênh tương thích v!i b VXL 8088, các kênh này có th m
rng thêm nhiu kênh khác mc ñi v!i h thng nh- thì 4 kênh này là a ñ". 8237
kh năng thc hin truyn DMA lên t!i 1.6Mbyte/s .M2i kênh kh năng ñánh ña
ch& t!i 64 Kbyte b nh! và có th truyn 64 Kbyte theo chương trình.
5.2.1 Sơ ñ khi và chc năng các khi ca vi mch 8237A
1. Sơ ñ khi
Hình 5.1: Vi m#ch 8237A -5
Tài liu môn hc: Ghép ni và ñiu khin thit b ngoi vi
Ging viên: Nguyn Văn Minh Trí 63
Hình 5.2: Sơ ñ* kh"i chi ti1t c'a 8237
- CLK : Ðưc ni v!i tín hiu ñ'ng h' h thng .
- CS :Tín hiu chn mch, thông thưng ni v!i ñu ra c"a mt b gii mã ña ch&.
- RESET : Xoá các thanh ghi tm, thanh ghi trng thái , thanh ghi lnh,thanh ghi yêu cu.
- READY : to trng thái ch cho 8237A-5 ñi v!i b nh! hoc I/O có tc ñ thp.
- HLDA (hold Acknowledge): tín hiu thông báo CPU ñã th n%i bus ña ch&, d liu,
ñiu khin c"a nó.
- DREQ
0
- DREQ
3
(DMA request) : Ðu vào yêu cu truyn DMA cho m2i kênh c"a
8237A-5, cc tính c"a các tín hiu vào này là có th lp trình ñưc .
- DB
0
- DB
7
(data bus ): Chân ni v!i bus d liu c"a b VXL 8088 ñưc s dng trong
quá trình trao ñ%i d liu
- IOR và IOW : ñiu khin ñc và ghi I/O .
- EOP (end of process ) : tín hiu hai chiu báo kt thúc DMA ti cui chu k DMA .
- A
0
- A
3
: Chn thanh ghi ni cn lp trình mt phn ña ch& truyn DMA trong quá
trình DMA .
- A
7
- A
4
: Cung cp 1 phn ña ch& còn li c"a DMA .