Bộ xử lý vào-ra

Một phần của tài liệu Cấu trúc máy tính chương 3 hệ thống máy tính (tt) (Trang 179 - 196)

420

1. Vào-ra bằng chương trình

 Nguyên tắc chung:

 Trong chương trình người lập trình chủ động viết các lệnh vào-ra.

 Khi thực hiện các lệnh vào-ra đó, CPU trực tiếp điều khiển việc trao đổi dữ liệu với cổng vào-ra.

Lưu đồ thực hiện

Đọc trạng thái của module vào-ra

Module vào-ra sẵn sàng?

Trao đổi dữ liệu Đúng

Sai

422

Hoạt động

 CPU yêu cầu thao tác vào-ra.

 Module vào-ra thực hiện thao tác.

 Module vào-ra thiết lập các bit trạng thái.

 CPU kiểm tra các bit trạng thái:

 Nếu chƣa sẵn sàng thì quay lại tiếp tục kiểm tra.

 Nếu đã sẵn sàng thì chuyển sang trao đổi dữ liệu với module vào-ra.

Đặc điểm

 Vào-ra do ý muốn của người lập trình

 CPU trực tiếp điều khiển vào-ra

 CPU phải đợi module vào-ra sẵn sàng → tiêu tốn thời gian của CPU

424

2. Vào-ra điều khiển bằng ngắt

 Nguyên tắc chung:

 CPU không phải đợi trạng thái sẵn sàng của module vào-ra.

 CPU đang thực hiện một chương trình nào đó, nếu

module vào-ra sẵn sàng thì nó phát tín hiệu yêu cầu ngắt gửi đến CPU.

 Nếu yêu cầu ngắt đƣợc chấp nhận thì CPU thực hiện chương trình con vào-ra tương ứng để trao đổi dữ liệu.

 Kết thúc chương trình con đó, CPU quay trở lại tiếp tục thực hiện chương trình đang bị ngắt.

Hoạt động

 Hoạt động vào dữ liệu – nhìn từ phía module vào- ra:

 Module vào-ra nhận tín hiệu điều khiển đọc từ CPU.

 Module vào-ra nhận dữ liệu từ thiết bị ngoại vi, trong khi đó CPU làm việc khác.

 Khi đã có dữ liệu, module vào-ra phát tín hiệu ngắt CPU.

 CPU yêu cầu dữ liệu.

 Module vào-ra chuyển dữ liệu đến CPU.

426

Hoạt động (tiếp)

 Hoạt động vào dữ liệu – nhìn từ phía CPU:

 CPU phát tín hiệu điều khiển đọc.

 CPU làm việc khác.

 Cuối mỗi chu trình lệnh, CPU kiểm tra tín hiệu ngắt.

 Nếu bị ngắt, CPU:

 Cất ngữ cảnh hiện tại của chương trình.

 Thực hiện chương trình con phục vụ ngắt để vào dữ liệu.

 Sau khi hoàn thành chương trình con đó, CPU khôi phục ngữ cảnh và trở về tiếp tục thực hiện chương trình đang tạm dừng.

Các vấn đề nảy sinh khi thiết kế

 Làm thế nào để xác định đƣợc module vào-ra nào phát tín hiệu yêu cầu ngắt.

 Khi có nhiều yêu cầu ngắt cùng gửi đến, CPU sẽ xử lý nhƣ thế nào.

428

Các phương pháp nối ghép ngắt

 Sử dụng nhiều đường yêu cầu ngắt

 Kiểm tra vòng bằng phần mềm (Software Poll)

 Kiểm tra vòng bằng phần cứng (Daisy Chain of Hardware Poll)

 Sử dụng bộ điều khiển ngắt (PIC)

Sử dụng nhiều đường yêu cầu ngắt

 Mỗi module vào-ra được nối với 1 đường yêu cầu ngắt

 CPU phải có nhiều đường tín hiệu yêu cầu ngắt

 Hạn chế số lƣợng module vào-ra

Module vào-ra Thanh

ghi yêu cầu ngắt

Module vào-ra

Module vào-ra

Module vào-ra CPU

INTR 0 INTR 1 INTR 2 INTR 3

430

Kiểm tra vòng bằng phần mềm

 CPU thực hiện phần mềm hỏi lần lƣợt từng module vào-ra

 Tốc độ chậm

 Thứ tự các module vào-ra đƣợc hỏi vòng chính là thứ tự ƣu tiên

Module vào-ra Cờ

yêu cầu ngắt

Module vào-ra

Module vào-ra

Module vào-ra CPU

INTR

Kiểm tra vòng bằng phần cứng

Module vào-ra Cờ

yêu cầu ngắt

Module vào-ra

Module vào-ra

Module vào-ra CPU

INTR

INTA

Bus dữ liệu

432

Kiểm tra vòng bằng phần cứng (tiếp)

 CPU phát tín hiệu chấp nhận ngắt (INTA) đến module vào-ra đầu tiên.

 Nếu module vào-ra đó không gây ra ngắt thì nó gửi tín hiệu đến module kế tiếp cho đến khi xác định

đƣợc module gây ngắt.

 Module vào-ra gây ngắt sẽ đặt vector ngắt lên bus dữ liệu.

 CPU sử dụng vector ngắt để xác định nơi chứa chương trình con phục vụ ngắt.

 Thứ tự các module vào-ra kết nối trong chuỗi xác định thứ tự ƣu tiên.

Bộ điều khiển ngắt lập trình đƣợc

 PIC: Programmable Interrupt Controller.

 PIC có nhiều đường yêu cầu ngắt có quy định mức ưu tiên.

 PIC chọn một yêu cầu ngắt không bị cấm có mức ƣu tiên

PIC

Module vào-ra

Module vào-ra

Module vào-ra

Module vào-ra INTR 0

INTR 1 INTR 2 INTR 3

CPU

INTA INTR Bus dữ liệu

434

Tổ chức ngắt của 80x86

IP của INT 0 CS của INT 0

IP của INT 1 CS của INT 1

IP của INT 0 CS của INT 0

IP của INT 1 CS của INT 1

IP của INT 0 CS của INT 0

IP của INT 1 CS của INT 1

IP của INT 0 CS của INT 0

IP của INT 1 CS của INT 1

Vector 0 : Chia cho 0

Vector 1 : Chạy từng lệnh

Vector 2 : Ngắt không che đƣợc (NMI) Vector 3 : Điểm dừng

Vector 4 : Tràn số học

Vector 5

Vector 31

Vector 32

Vector 254

Vector 255

Được định nghĩa trước hoặc dành riêng

Dành cho người lập trình 00000

00002 00004 00006 00008 0000A 0000C 0000E 00010 00012 00014 00016

003F8 003FA 003FC 003FE

Địa chỉ Bộ nhớ

. . .

 Tổ chức kiểu vector ngắt.

 Mỗi ngắt đƣợc đặc trƣng bằng số hiệu ngắt N (00 ÷ FF).

 Bảng vector ngắt:

256 x 4 = 1024 byte 00000 ÷ 003FF

 Gọi CTC phục vụ ngắt bằng lệnh: INT N

Đặc điểm của vào-ra bằng ngắt

 Có sự kết hợp giữa phần cứng và phần mềm:

 Phần cứng: gây ngắt CPU.

 Phần mềm: trao đổi dữ liệu.

 CPU trực tiếp điều khiển vào-ra.

 CPU không phải đợi module vào-ra → hiệu suất sử dụng CPU tốt hơn.

436

Một phần của tài liệu Cấu trúc máy tính chương 3 hệ thống máy tính (tt) (Trang 179 - 196)

Tải bản đầy đủ (PDF)

(213 trang)