intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Chương 4- Các phương pháp vào ra dữ liệu

Chia sẻ: Hoang Anh Tuan | Ngày: | Loại File: PPT | Số trang:76

834
lượt xem
72
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

I. Phương pháp vào/ra dữ liệu bằng ngắt 1. Khái niệm ngắt Ngắt là khả năng dừng chương trình chính đang chạy để thực hiện một chương trình khác gọi là chương trình con xử lý ngắt. Khi CPU đang thực hiện chương trình chính đế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 khi nhận được yêu cầu xin phục vụ của các ngoại vi nó sẽ thực hiện: •Ngừng xử lý chương trình chính. •Cất ngữ cảnh của chương trình hiện tại vào Stack mem. •Tìm địa chỉ...

Chủ đề:
Lưu

Nội dung Text: Chương 4- Các phương pháp vào ra dữ liệu

  1. I. Phương pháp vào/ra dữ liệu bằng ngắt 1. Khái niệm ngắt •Ngắt là khả năng dừng chương trình chính đang chạy để thực hiện một chương trình khác gọi là chương trình con xử lý ngắt. •Khi CPU đang thực hiện chương trình chính đế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.
  2. I. Phương pháp vào/ra dữ liệu bằng ngắt 1.Khái niệm ngắt Nói chung, CPU khi nhận được yêu cầu xin phục vụ của các ngoại vi nó sẽ thực hiện: •Ngừng xử lý chương trình chính. •Cất ngữ cảnh của chương trình hiện tại vào Stack mem. •Tìm địa chỉ của chương trình con phục vụ ngắt tương ứng (Interrupt Service Routine- ISR) để thực hiện. •Khôi phục ngữ cảnh của chương trình đã xuất hiện yêu cầu phục vụ (nhờ lệnh IRET ở cuối chương trình phục vụ ngắt) •Tiếp tục thực hiện chương trình
  3. I. Phương pháp vào/ra dữ liệu bằng ngắt Main Prog ISRj ISRi n: IRQi m: IRQj n+1 m+1 IRET IRET
  4. Đặc điểm Interrupt -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. -Là chế độ hoạt động riêng cho các vi xử lý/máy tính kiểu ONLINE. -Nguồn ngắt: Chủ yếu từ ngoại vi, CPU. -Xảy ra ngẫu nhiên -Nhiều IOs, ngẫu nhiên  =>  Tranh chấp  =>  Giải quyết ưu tiên ngắt.
  5. 2. Ưu tiên Interrupt -Thiết bị ưu tiên cao có thể dừng ISR của thiết bị ưu tiên thấp. -Hệ lớn, nhiều IOs thường dùng PIC (Intel PIC 8259A) -Chỉ số ưu tiên do nhà sản xuất qui định cho các ngoại vi cố định, mức 0 là cao nhất. -Theo hình trên: 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
  6. 3. Ngắt trong hệ vi xử lý 8086 3.1. Phân loại ngắt Trong hệ vi xử lý 8086 có thể xếp các nguyên nhân gây ra ngắt CPU vào 3 nhóm như sau: -Nhóm các ngắt cứng: Đó là các yêu cầu ngắt CPU do các tín hiệu đến từ các chân INTR và NMI. Ngắt cứng INTR là các yêu cầu ngắt che được. Các lệnh CLI và STI có ảnh hưởng trực tiếp đến trạng thái của cờ IF trong BVXL, tức ảnh hưởng tới việc CPU có nhận biết yêu cầu ngắt tại chân này hay không. Nó có thể có kiểu ngắt N nằm trong khoảng từ 00h đến FFh. Kiểu ngắt này phải được đưa vào Bus dữ liệu để CPU có thể đọc được khi có xung INTA trong chu kỳ trả lời chấp nhận ngắt.
  7. 3. Ngắt trong hệ vi xử lý 8086 -Nhóm các ngắt mềm: Khi CPU thực hiện các lệnh ngắt dạng INT N, trong đó N là số hiệu (kiểu) ngắt nằm trong khoảng 00h đến FFh. -Nhóm các ngắt ngoại lệ: Đó là các ngắt do các lỗi nảy sinh trong quá trình hoạt động của CPU như phép chia cho 0, xảy ra tràn khi tính toán.
  8. 3. Ngắt trong hệ vi xử lý 8086 3.2. x86 và PC Interrupt Bảng vector ngắt IVT (Interrupt Vector Table- Real mode) -CPU x86: 1st kilo byte (RAM) bảng vector ngắt. -1st KB=256 elements of 4 byte -Chứa địa chỉ đầu của ISR tương ứng. Khi khởi tạo, BIOS nạp vào IVT địa chỉ đầu của các ISR ứng với IO. -Khi đổi vector ngắt: Đổi nội dung của 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.
  9. 3. Ngắt trong hệ vi xử lý 8086 00014 Print Screen CS hi 00010 Over Flow 0000C Break Point CS low 00008 NMI IP hi 00004 Single Step IP low 00000 Divide by zero 4 byte Vector Element
  10. 3. Ngắt trong hệ vi xử lý 8086 CS của CTPVN FFh 03FEh-03FFh IP của CTPVN FFh 03FCh-03FDh CS của CTPVN 20h 0082h-0083h IP của CTPVN 20h 0080h-0081h CS của CTPVN 2h 000Ah-000Bh IP của CTPVN 2h 0008h-0009h CS của CTPVN 1h 0006h-0007h IP của CTPVN 1h 0004h-0005h CS của CTPVN 0h 0002h-0003h IP của CTPVN 0h 0000h-0001h Bảng vectơ ngắt của 8088 tại 1st KB RAM
  11. 3. Ngắt trong hệ vi xử lý 8086 Các yêu cầu ngắt sẽ được CPU kiểm tra thường xuyên tại chu kỳ đồng hồ cuối cùng của mỗi lệnh. Để đưa số hiệu ngắt N vào Bus dữ liệu trong khi cũng tạo ra yêu cầu ngắt đưa vào chân INTR tương ứng của 8086. Giả thiết trong một thời điểm nhất định chỉ có một yêu cầu ngắt nhất định IRi được tác động và khi đó đầu ra của mạch NAND sẽ có xung yêu cầu ngắt đến CPU. Tín hiệu IRi được đồng thời đưa qua mạch khuếch đại đệm để tạo ra số hiệu ngắt tương ứng, số hiệu ngắt này sẽ được CPU đọc vào khi nó đưa ra tín hiệu trả lời INTA.
  12. 3. Ngắt trong hệ vi xử lý 8086 7 6 5 4 3 2 1 0 N AD IR IR IR IR IR IR IR 1 1 1 1 1 1 1 0 FEh (254) 1 1 1 1 1 1 0 1 FDh (253) 1 1 1 1 1 0 1 1 FBh (251) 1 1 1 1 0 1 1 1 F7h (247) 1 1 1 0 1 1 1 1 EFh (239) 1 1 0 1 1 1 1 1 DFh (223) 1 0 1 1 1 1 1 1 BFh (191) Quan hệ giữa IRi và số hiệu ngắt n tương ứng
  13. 3. Ngắt trong hệ vi xử lý 8086 3.3. Đáp ứng của CPU khi có yêu cầu ngắt Khi có yêu cầu ngắt kiểu N đến chân CPU và nếu yêu cầu đó được phép (Nếu ngắt có số hiệu N kích hoạt và có hiệu lực), CPU thực hiện các công việc sau: Bước 1: CPU kết thúc lệnh đang thực hiện Bước 2: 1. (SP)  (SP) – 2 chỉ ra đỉnh mới của ngăn xếp {SP}  FR Cất giá trị thanh ghi cờ vào đỉnh NX
  14. 3. Ngắt trong hệ vi xử lý 8086 2. IF  0, TF  0 Cấm các ngắt khác tác động vào CPU, cho CPU chạy ở chế độ bình thường) 3. (SP)  (SP) – 2 chỉ ra đỉnh mới của ngăn xếp Cất giá trị Segment vào đỉnh NX {SP}  (CS) 4. (SP)  (SP) – 2 chỉ ra đỉnh mới của ngăn xếp Cất giá trị Offset vào đỉnh NX {SP}  (IP) Bước 3: Cất giữ nội dung các TG đa năng khác (nếu cần) vào NX
  15. 3. Ngắt trong hệ vi xử lý 8086 Bước 4: {N*4}  IP, {N*4+2}  CS Bước 5: Thực hiện chương trình con Bước 6: Khôi phục trạng thái cũ của các TG đa năng Bước 7: Tại cuối chương trình phục vụ ngắt khi gặp lệnh IRET: {SP}  (IP), (SP)  (SP) +2 {SP}  (CS), (SP)  (SP) +2 {SP}  FR, (SP)  (SP) +2 BXL quay lại CT chính tại địa chỉ trở về và khôi phục lại giá trị của TG cờ trước khi thực hiện ngắt.
  16. II. Chíp điều khiển ngắt PIC 8259A (Priority Interrupt Controller) Có một vấn đề thực tế đặt ra là nếu tại cùng một thời điểm có nhiều yêu cầu ngắt khác nhau cùng đòi hỏi CPU phục vụ thì CPU xử lý các yêu cầu ngắt đó như thế nào? Câu trả lời là CPU xử lý các yêu cầu ngắt theo thứ tự ưu tiên với nguyên tắc ngắt nào có mức ưu tiên và được phục vụ trước.
  17. II. Chíp điều khiển ngắt PIC 8259A (Priority Interrupt Controller) 1. Các chân tín hiệu của PIC 8259A
  18. Chức năng các chân - CS: Lối vào chọn chíp. - RD: 8259 ra số liệu, CPU có thể đọc số liệu từ 8259 - WR: 8259 ra số liệu từ Bus số liệu, CPU có thể viết số liệu vào thanh ghi bên trong 8259 - D0-D7: Bus số liệu hai hướng - CAS0-CAS2: Các đường nối tầng giữa các PIC. 1 PIC chủ có thể chọn 1 trong 8 PIC tớ qua 3 đường này. Do đó có thể coi đây là Bus địa chỉ cụ bộ của PIC. - GND: Tín hiệu nối đất
  19. Chức năng các chân - SP/EN: Trong chế độ đệm, EN điều khiển bộ đệm ngoài. Trong chế độ không đệm, nếu SP=1 thì 8259 là chủ, SP=0 thì 8259 là tớ.  - INT: Nối trực tiếp với đầu vào INTR của CPU. - IR0-IR7: Nối với các đầu ra tín hiệu ngắt của các TBNV. - INTA: Tín hiệu chấp nhận ngắt từ CPU. - A0: Cùng với các tín hiệu CS, WR và RD phân biệt các lệnh khác nhau từ CPU và cung cấp các thông tin trạng thái. - VCC: Nguồn nuôi.
  20. 2. Sơ đồ khối PIC 8259A
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
12=>0