Ch 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 3.1 Phương pháp thăm dị (polling) • K/n Polling: Dùng phần mềm để kiểm tra cờ trạng thái @ IO Ports => định trao đổi số liệu hay khơng • Nhanh, đơn giản, thường dùng hệ nhỏ đơn nhiệm - thiết bị IO, • Để thử nghiệm, • Dùng với thiết bị ngoại vi tần suất truy nhập thấp, tốc độ chậm, ví dụ kênh đo nhiệt độ, • Không phù hợp với ‘đa nhiệm’, đặc biệt máy tính P&I Ch3: Methodes Polling Một l−u ®å : Device #1 Request ? Y Device #1 Service Routine Y Device #2 Service Routine N Device #2 Request ? N Device #n Request ? Y Device #n Service Routine N Quit P&I Hình 3.1 Lu đồ phơng pháp IO interface polling Ch3: Methodes 3.2 Phơng pháp ngắt (Interrupt) ã Khái niệm, ã Phân loại ã Case studies P&I Ch3: Methodes 3.2 Phương pháp ngắt (Interrupt): 3.2.1 Khái niệm • • • Là dừng thực CTC để thực ctc, thường TBNV yêu cầu thông qua port Khi CPU thực CTC, đến dòng lệnh thứ n, ngẫu nhiên, ngoại vi thứ i xin phục vụ cách phát tín hiệu IRQ(i) (Interrupt Request) đến CPU Nói chung, CPU ngừng xử lý CTC cất ngữ cảnh (flags địa lệnh tiếp theo) vào Stack Mem, tìm địa ctc phục vụ ngắt tương ứng (Interrupt Service Routine - ISR) để thực Sau thực xong ISR, gặp lệnh iret (reti ), CPU khôi phục lại ngữ cảnh (từ Stack Mem) CTC tiếp tc thc hin P&I Ch3: Methodes Hình 3.2 K/n ngắt 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 phần mềm, để thực đa nhiệm – Đối tượng bị ngắt: CTC bị dừng xử lý để thực ctc – Là chế độ hoạt động riêng cho 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 ngẫu nhiên, – Nhiều IOs • => Tranh chấp => Phải giải ưu tiờn ngt P&I Ch3: Methodes 3.2 Phơng pháp ngắt (Interrupt): 3.2.1 Khái niệm ã u tiờn ngt - Interrupt Priority: - T/bị ưu tiên cao dừng ISR 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 nhà sx qui định cho t/bị ngoại vi, cố định, mức cao Theo hình 3.2: Level (j) > Level(i), i>j • Ưu tiên phân định tín hiệu ngắt CPU (Intel 8085: INTR, 5.5, 6.5, 7.5 TRAP), • Z80 CPU & others: ưu tiên theo kiểu Daisy Chain P&I Ch3: Methodes 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 ctc (Subroutine) xây dựng riêng mà ctc gọi thiết bị ngoại vi • Các lệnh gọi INT n; (Intel x86) hay SWI n; (Moto) • Tuy nhiên, việc thực lệnh ngắt mềm giống gọi thủ tục, hiểu TRAP, • Ngắt mềm khơng phải ngắt P&I Ch3: Methodes 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 loại: Maskable & Non Maskable Maskable Interrupt: ngắt thơng thường, cấm (disable) lệnh CLI hay cho phép (enable) lệnh STI (Intel vs Moto!) Các ngắt bị cấm (tại CPU) - IF disabled: sau CPU reset, trước có IRQ khác, sau th/h lệnh CLI 9Non Maskable Interrupt, NMI ngắt có mức ưu tiên cao nhất, thường cho việc: điện, sai số liệu (DRAM parity) PC nay, thường không dùng NMI P&I Ch3: Methodes 3.2 Interrupt: 3.2.2 phân loại: c Internal: Trong số CPU, để bẫy/ để xử lý kiện thực hiện, Intel x86: - Divide by zero: tương ứng thực lệnh, Int 0, - Trap - Single Step: thực lệnh, debugger, Int 1, dùng với Trap Flag (Trace) - Break Point: tạo điểm dừng, debugger, Int 3, - Overflow: (tràn số nguyên), Int - P&I Ch3: Methodes 10