1
P&I Ch3: Methodes 1
CH. 3. C PHƯƠNG PHÁP
TRAO ĐI THÔNG TIN
Polling - Thăm
Interrupt - ngt &
DMA - truy nhp trc tiếp mem - IO
P&I Ch3: Methodes 2
3.1. Phương pháp thăm (polling)
K/n Polling: Dùng phn mmđể kim tra các ctrng
thái @ IO Ports => quyếtđịnh trao đổi sliu hay
không.
Nhanh, đơn gin, thường dùng trong các hnhhoc
đơn nhim - ít thiết bIO,
Tt cho vic thnghim,
th đa nhim cho các đốitượng hng sthi gian
>>, các thiết bngoi vi tn sut truy nhp thp, tcđộ
chm. Ví dcác kênh đo nhitđ,
Không phù hp vi đa nhim’, đặc bit trong máy tính
2
P&I Ch3: Methodes 3
dvPP polling
Cng Comm (RS232) ca máy tính PC:
Thanh ghi Line Status Register có các bit:
b0 – Char received, đã thu xong 1 char,
b1 – Overrun Error, char bxóa đè
b2 – Parity Error
b3 – Framing Error
B4 – Break Interrupt
B5 – TxHR Empty, thanh ghi phát rng, gi tiếp
B6 – Char transmitted
Polling: thu - kim tra b0, phát kim tra b5
P&I Ch3: Methodes 4
Mtlưu đồ
thăm dò:
Polling
Device #1 Y
Request ?
N
Device #2 Y
Request ?
N
Device #n Y
Request ?
N
Device #1
Service Routine
Device #2
Service Routine
Device #n
Service Routine
Quit
Hình 3.1. Lưu đồ phương pháp
IO interface polling
3
P&I Ch3: Methodes 5
3.2. Phương pháp ngt (Interrupt)
Khái nim,
Phân loi
Case studies
P&I Ch3: Methodes 6
sdng thc hin CTC để thc hin
ctc, thường do TBNV yêu cu thông
qua port.
Khi CPU đang thc hin CTC, đến dòng
lnh thn, ngu nhiên, ngoi vi thi xin
phc vbng cách phát ra n hiu IRQ(i)
(Interrupt Request) đến CPU. Nói chung,
CPU sngng x CTC và ct ngcnh
(flags và địa chca lnh tiếp theo) vào
Stack Mem, ri m địa chca ctc phc
vngttương ng (Interrupt Service
Routine - ISR) để thc hin.
Sau khi thc hin xong ISR, gp lnh iret
(reti...), CPU khôi phc li ngcnh (t
Stack Mem) ca CTC và tiếp tc thc
hin.
3.2. Phương pháp ngt (Interrupt):
3.2.1. Khái nim
H×nh 3.2. K/n
ng¾t
4
P&I Ch3: Methodes 7
Đặcđiểm:
phương pháp vào/ra kết hp tín hiu và phn mm,
để thc hinđa nhim.
Đốitượng bngt: CTC bdng xlý đ thc hin ctc.
chế độ hotđng riêng cho các Vi xlý/ máy tính
ON-LINE,
Ngun ngt: chyếu tngoi vi thông qua IO ports,
CPU (exceptions, internal),
Xy ra ngu nhiên,
Nhiu IOs
=> Tranh chp => Phi gii quyếtưu tiên ngt.
3.2. Phương pháp ngt (Interrupt):
3.2.1. Khái nim:
P&I Ch3: Methodes 8
Ưu tiên ngt - Interrupt Priority:
- T/b ưu tiên cao thdng ISR ca t/b ưu tiên thp
- Hln, nhiu IOs thường dùng PIC (Intel PIC8259A)
- Chs ưu tiên do nhà sx qui đnh cho các t/bngoi vi, c
đnh, mc 0 là cao nht.
Theo hình 3.2: Level (j) > Level(i),
i>j.
Ưu tiên phân đnh do các n hiu ngt trong CPU (Intel 8085:
INTR, 5.5, 6.5, 7.5 và TRAP),
Z80 CPU & others: ưu tiên theo kiu Daisy Chain
3.2. Interrupt: 3.2.1. Khái nim
5
P&I Ch3: Methodes 9
a. Software Interrupt:
vic gi 1 ctc (Subroutine) được xây dng riêng mà ctc
này còn th được gi bi thiết bngoi vi.
Các lnh ginhư INT n; (Intel x86) hay SWI n; (Moto).
Tuy nhiên, vic thc hin lnh ngt mm ging như gi th
tc, đôi khi đưc hiu là TRAP,
Ngt mm không phi là ngt
3.2. Interrupt: 3.2.2. Phân loi:
(Hardware, software, internal, exception, NMI...)
P&I Ch3: Methodes 10
Do Ports phát tín hiu NMI/ IRQ đến CPU.
Chia thành 2 loi: Maskable & Non Maskable
Maskable Interrupt: là các ngt thông thường, có thcm
(disable) bi lnh CLI hay cho phép (enable) bi lnh STI
(Intel vs Moto!).
Các ngt sbcm (ti CPU) - IF disabled: sau khi CPU
reset, trướcđóđã IRQ khác, sau khi th/h lnh CLI.
Non Maskable Interrupt, NMI là ngt mcưu tiên cao
nht, thường cho các vic: mtđiện, sai sliu (DRAM
parity)... PC hin nay, thường không dùng NMI.
3.2. Interrupt: 3.2.2. Phân loi: b. Hardware: