Bài giảng Thiết bị ngoại vi và kỹ thuật ghép nối: Chương 3 - Bùi Quốc Anh
lượt xem 10
download
Chương 3 - Các phương pháp trao đổi thông tin thuộc bộ "Bài giảng Thiết bị ngoại vi và kỹ thuật ghép nối" do Bùi Quốc Anh biên soạn sẽ hướng đến giới thiệu tới các bạn một số thông tin về phương pháp thăm dò; phương pháp ngắt; direct memory access - dma;...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Thiết bị ngoại vi và kỹ thuật ghép nối: Chương 3 - Bùi Quốc Anh
- Ch. 3. c¸c ph−¬ng ph¸p trao ®æi th«ng tin • Polling - Th¨m dß • Interrupt - ng¾t & • DMA - truy nhËp trùc tiÕp mem - IO P&I Ch3: Methodes 1
- 3.1. Phương pháp thăm dò (polling) • K/n Polling: Dùng phần mềm để kiểm tra các cờ trạng thái @ IO Ports => quyết định trao đổi số liệu hay không. • Nhanh, đơn giản, thường dùng trong các hệ nhỏ hoặc đơn nhiệm - ít thiết bị IO, • Để thử nghiệm, • Dùng với các thiết bị ngoại vi tần suất truy nhập thấp, tốc độ chậm, ví dụ các kênh đo nhiệt độ, • Không phù hợp với ‘đa nhiệm’, đặc biệt trong máy tính P&I Ch3: Methodes 2
- Polling Một l−u ®å : Device #1 Y Device #1 Request ? Service Routine N Device #2 Y Device #2 Request ? Service Routine N Device #n Y Device #n Request ? Service Routine N Quit H×nh 3.1. L−u ®å ph−¬ng ph¸p IO interface polling P&I Ch3: Methodes 3
- 3.2. Ph−¬ng ph¸p ng¾t (Interrupt) • Kh¸i niÖm, • Ph©n lo¹i vµ • ‘Case studies’ P&I Ch3: Methodes 4
- 3.2. Phương pháp ngắt (Interrupt): 3.2.1. Khái niệm • Là sự dừng thực hiện CTC để thực hiện ctc, thường là do TBNV yêu cầu thông qua port. • Khi CPU đang thực hiện CTC, đến dòng lệnh thứ n, ngẫu nhiên, ngoại vi thứ i xin phục vụ bằng cách phát ra tín hiệu IRQ(i) (Interrupt Request) đến CPU. Nói chung, CPU sẽ ngừng xử lý CTC và cất ngữ cảnh (flags và địa chỉ của lệnh tiếp theo) vào Stack Mem, rồi tìm địa chỉ của ctc phục vụ ngắt tương ứng (Interrupt Service Routine - ISR) để thực hiện. • Sau khi thực hiện xong ISR, gặp lệnh iret (reti...), CPU khôi phục lại ngữ cảnh (từ Stack Mem) của CTC và tiếp H×nh 3.2. K/n tục thực hiện. ng¾t P&I Ch3: Methodes 5
- 3.2. Phương pháp ngắt (Interrupt): 3.2.1. Khái niệm: • Đặc điểm: – Là phương pháp vào/ra kết hợp tín hiệu và phần mềm, để thực hiện đa nhiệm. – Đối tượng bị ngắt: CTC bị dừng xử lý để thực hiện ctc. – Là chế độ hoạt động riêng cho các Vi xử lý/ máy tính ON-LINE, – Nguồn ngắt: chủ yếu từ ngoại vi thông qua IO ports, CPU (exceptions, internal), – Xảy ra ngẫu nhiên, – Nhiều IOs • => Tranh chấp => Phải giải quyết ưu tiên ngắt. P&I Ch3: Methodes 6
- 3.2. Ph−¬ng ph¸p ng¾t (Interrupt): 3.2.1. Kh¸i niÖm • Ưu tiên ngắt - Interrupt Priority: - T/bị ưu tiên cao có thể dừng ISR của t/bị ưu tiên thấp - Hệ lớn, nhiều IOs thường dùng PIC (Intel PIC8259A) - Chỉ số ưu tiên do nhà sx qui định cho các t/bị ngoại vi, cố định, mức 0 là cao nhất. Theo hình 3.2: Level (j) > Level(i), i>j. • Ưu tiên phân định do các tín hiệu ngắt trong CPU (Intel 8085: INTR, 5.5, 6.5, 7.5 và TRAP), • Z80 CPU & others: ưu tiên theo kiểu Daisy Chain P&I Ch3: Methodes 7
- 3.2. Interrupt: 3.2.2. ph©n lo¹i: Gåm: Hardware, software, internal, exception, NMI... a. Software Interrupt: • Là việc gọi 1 ctc (Subroutine) được xây dựng riêng mà ctc này còn có thể được gọi bởi thiết bị ngoại vi. • Các lệnh gọi như INT n; (Intel x86) hay SWI n; (Moto). • Tuy nhiên, việc thực hiện lệnh ngắt mềm giống như gọi thủ tục, và đôi khi được hiểu là TRAP, • Ngắt mềm không phải là ngắt P&I Ch3: Methodes 8
- 3.2. Interrupt: 3.2.2. ph©n lo¹i: b. Hardware: • Do Ports phát tín hiệu NMI/ IRQ đến CPU. • Chia thành 2 loại: Maskable & Non Maskable 9 Maskable Interrupt: là các ngắt thông thường, có thể cấm (disable) bởi lệnh CLI hay cho phép (enable) bởi lệnh STI (Intel vs Moto!). Các ngắt sẽ bị cấm (tại CPU) - IF disabled: sau khi CPU reset, trước đó đã có IRQ khác, sau khi th/h lệnh CLI. 9Non Maskable Interrupt, NMI là ngắt có mức ưu tiên cao nhất, thường cho các việc: mất điện, sai số liệu (DRAM parity)... PC hiện nay, thường không dùng NMI. P&I Ch3: Methodes 9
- 3.2. Interrupt: 3.2.2. ph©n lo¹i: c. Internal: Trong một số CPU, để bẫy/ để xử lý các sự kiện trong khi thực hiện, như Intel x86: - Divide by zero: tương ứng thực hiện lệnh, Int 0, - Trap - Single Step: thực hiện từng lệnh, debugger, Int 1, dùng cùng với Trap Flag (Trace). - Break Point: tạo điểm dừng, debugger, Int 3, - Overflow: (tràn số nguyên), Int 4 - ... P&I Ch3: Methodes 10
- 3.2. Interrupt: 3.2.2. ph©n lo¹i: c. Exceptions: Lµ vÊn ®Ò hay ®iÒu kiÖn ®Ó CPU dõng c«ng viÖc ®ang t/h, t×m ®Þa chØ vµ thùc hiÖn 1 ctc, ®−îc thiÕt kÕ ®Ó xö lý sù kiÖn nµy. • Exception gièng Interrupt, thùc hiÖn lÖnh riªng. • Trong PC, Exp kh¸c Intr qua 2 ®iÓm: - Liªn quan tíi viÖc thùc hiÖn ch−¬ng tr×nh, - Cã −u tiªn cao ®Ó dõng ch/tr (Apple Macintosh Computers): c¸c Error, thay ®æi ®iÒu kiÖn, kÓ c¶ ng¾t, ®−îc CPU ph¸t hiÖn trong khi ch−¬ng tr×nh ®ang ho¹t ®éng. P&I Ch3: Methodes 11
- 3.2. Interrupt: 3.2.3. Case study: tæ chøc ng¾t cña c¸c hÖ VXL/M¸y tÝnh a. Intel 8x51 Micro Controllers: Hä Intel 8x51 cã 6 nguån ng¾t: 02 Ext. Interrupts: Int0 vµ Int1, 03 Timer Interrupts: Timer 0, 1, 2 vµ 01 Serial port Interrupt (ph¸t/thu char). øng víi c¸c ng¾t nµy, cã c¸c ®Þa chØ ®Çu cho ISR t−¬ng øng t¹i trang zero @ Prog. Memory: 0003, 000Bh, 0013h, 001Bh, 0023h vµ 002Bh. T¹i c¸c ®Þa chØ nµy th−êng ®Æt lÖnh LJMP nnnn vµ ®−îc ®Æt lÖnh RETI nÕu kh«ng cã ISR. P&I Ch3: Methodes 12
- 3.2. Interrupt: 3.2.3. Case study: ng¾t c¸c hÖ VXL/M¸y tÝnh b. Z80 system: • Z80-CPU, 3 modes ng¾t: C¸c lÖnh ReStart (nh− Intel 8085), NMI vµ Daisy Chain. KiÓu Daisy Chain: • GhÐp nèi víi c¸c Z80-Ports: Z80-PIO, Z80-SIO, Z80-CTC... • IRQs tõ c¸c ports lµ Open Drain, • Khi CPU: M1 & IO Request => INTA ®Õn port1, • NÕu Port1 Resq, sÏ ph¸t m∙ ‘Addr’ lªn data bus, nÕu kh«ng • ChuyÓn INTA ®Õn Port 2... • ¦u tiªn cè ®Þnh/ jumper. P&I Ch3: Methodes 13
- 3.2. Interrupt: 3.2.3. Case study: ng¾t c¸c hÖ VXL/M¸y tÝnh c. x86 & PC interrupt : Real & Protected modes REAL MODE: B¶ng vector ng¾t IVT - Interrupt Vector Table: 1st kilo byte (RAM) b¶ng vector ng¾t 1 KB = 256 elements of 4 bytes Chøa ®Þa chØ ®Çu cña ISR t−¬ng øng CS:IP. Khi khëi t¹o, BIOS n¹p vµo IVT ®c® cña c¸c ISR øng víi IO. §æi vector ng¾t: ®æi néi dung c¸c vector nµy C¸c ng¾t cøng, NMI vμ Internal ®Òu t−¬ng øng víi 1 lÖnh ng¾t mÒm cã cïng vector type, tøc cã vector trong b¶ng IVT. P&I Ch3: Methodes 14
- 3.2. Interrupt: 3.2.3. Case study: x86 & pc IVT P&I Ch3: Methodes 15
- 3.2. Interrupt: 3.2.3. Case study: x86 & pc, int n instruction Software Interrupt: lÖnh Int n, n=0..FFh, n - vector type M« t¶ lÖnh: Tr−íc khi thùc hiÖn lÖnh, ph¶i cã chtr khëi t¹o ng¾t (Intr house-keeping): ®Þnh vÞ ISR vµ ®æi vector ng¾t, Khi gÆp lÖnh Int n, CPU sÏ cÊt 6 byte Flag Reg, CS vµ IP vµo Stack mem, (n x 4) lµ ®Þa chØ IVT, ®äc 4 byte n¹p vµo IP vµ CS t−¬ng øng => ISR b¾t ®Çu ®−îc thùc hiÖn. Khi gÆp lÖnh IRET, CPU kh«i phôc l¹i tõ Stack Mem IP, CS vµ Flag Reg (LIFO!). P&I Ch3: Methodes 16
- 3.2. Interrupt: 3.2.3. Case study: x86 & pc, Hardware Int Hardware Interrupt, irq: IRQ trong PC: dïng 2 PICs - Priority Interrupt Controller PIC 8259A Master PIC (®Þa chØ: 20h, 21h, IO Space), IRQ0..IRQ7 => Int 8..Int 0Fh Slave PIC (®ịa chØ: 0a0h, 0a1h) = IRQ8..IRQ15 => => Int 70h..Int 77h P&I Ch3: Methodes 17
- 3.2. Interrupt: 3.2.3. Case study: x86 & pc, Hardware Int PCI bus dïng chung 1 IRQ P&I Ch3: Methodes 18
- 3.2. Interrupt: 3.2.3. Case study: x86 & pc, Hardware Int Priority Interrupt Controller Intel 8259A 8 Channel (8 I/O ports) ¦u tiªn cè ®Þnh, vßng, vßng ®Þnh tr−íc Nèi tÇng víi Slave PIC(s), më réng thªm IOs NhiÒu chÕ ®é ho¹t ®éng - ICWs & OCWs Dïng víi nhiÒu hÖ VXL cña Intel, IBM-PC ... Tham kh¶o VXL cña MTV P&I Ch3: Methodes 19
- 3.2. Interrupt: 3.2.3. Case study: x86 & pc, Hardware Int Hardware Interrupt, irq: Ho¹t ®éng Hardware Intr trong PC (xem PIC 8259A) Interrupt Housekeeping - chuÈn bÞ: ISR, vÝ dô files.sys[com], gmouse.com - cæng comm 1 Load ISR vµ x¸c ®Þnh ®Þa chØ vËt lý, Thay vector ng¾t, cÇn l−u vector cò? Enabling IRQi @ PIC’s, Mask Reg (OCW1): b(i) = 0, Enabling cê IF trong CPU, lÖnh STI, Set Interrupt Enable Flag, cho phÐp ng¾t. P&I Ch3: Methodes 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Thiết bị ngoại vi và kỹ thuật ghép nối - ĐH BKHN
399 p | 196 | 33
-
Bài giảng Thiết bị ngoại vi và Kỹ thuật ghép nối
23 p | 206 | 26
-
Bài giảng Cấu trúc máy tính - Chương 5: Các thiết bị ngoại vi (2016)
49 p | 272 | 23
-
Bài giảng Bảo trì hệ thống: Chương 3 - TS. Trần Quang Diệu
46 p | 234 | 17
-
Bài giảng Nguyên lý Hệ điều hành - Chương 4: Quản lý files và thiết bị ngoại vi
60 p | 179 | 16
-
Bài giảng Phần cứng máy tính - Bài 7: Thiết bị ngoại và chuẩn giao tiếp
128 p | 75 | 15
-
Bài giảng Phần cứng máy tính: Bài 7 - ThS. Huỳnh Nam
115 p | 59 | 14
-
Driver: Linh hồn của các thiết bị ngoại vi
3 p | 101 | 14
-
Bài giảng Kiến trúc máy tính - Chương 8: Hệ thống vào/ra – Các phương pháp điều khiển vào/ra – Ghép nối máy tính với thiết bị ngoại vi
46 p | 42 | 12
-
Bài giảng Thiết bị ngoại vi và kỹ thuật ghép nối: Chương 2 - Bùi Quốc Anh
31 p | 93 | 11
-
Bài giảng Kiến trúc máy tính - Chương 7: Các thiết bị I/O
80 p | 57 | 11
-
Bài giảng Cấu trúc máy tính - Chương 7: Các thiết bị I/O (Các thiết bị ngoại vi)
80 p | 85 | 10
-
Bài giảng Thiết bị ngoại vi và kỹ thuật ghép nối: Chương 0 - Bùi Quốc Anh
14 p | 107 | 10
-
Bài giảng Thiết bị ngoại vi và kỹ thuật ghép nối: Chương 1 - Bùi Quốc Anh
46 p | 109 | 9
-
Bài giảng Cấu trúc máy tính: Chương 6 - ThS. Nguyễn Thị Phong Dung
27 p | 23 | 7
-
Bài giảng môn học Nguyên lý hệ điều hành: Chương 4 – Đỗ Văn Uy
61 p | 110 | 5
-
Bài giảng Kiến trúc máy tính và Hệ điều hành: Chương 4 - Vũ Thị Thúy Hà
64 p | 7 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn