Chế độ ngắt và phân loại ngắt của BVXL

Một phần của tài liệu THIẾT KẾ HỆ VI XỬ LÝ ĐA NĂNG 16 BÍT 80X86 INTEL (Trang 54 - 56)

256 mức điện áp, 1 mức =1/ Uma

2.2.1Chế độ ngắt và phân loại ngắt của BVXL

Chế độ ngắt là chế độ đặc biệt mà bất kỳ BVXL nào cũng được trang bị để tạo cơ chế điều khiển mềm dẻo, linh hoạt khi trong hệ có nhiều thiết bị ngoại vi được ghép nối và hoạt động. Trong chế độ ngắt, các yêu cầu được phục vụ đến từ phía ngoại vi và hệ vi xử lý không biết trước về mặt thời gian. Như vậy, BVXL có thể tiến hành công việc theo chế độ chính là chế độ làm việc theo chương trình, chỉ khi nào xuất hiện yêu cầu trao đổi dữ liệu từ phía ngoại vi thì BVXL mới tạm dừng công việc hiện tại để phục vụ việc trao đổi dữ liệu với ngoại vi đó. Sau khi hoàn thành việc trao đổi dữ liệu thì BVXL lại phải quay về để làm tiếp công việc đang bị gián đoạn. Cách làm việc theo kiểu này gọi là ngắt CPU để trao đổi dữ liệu. Cơ chế ngắt được minh hoạ trên hình 2.16.

Hình 2.16 Hoạt động của cơ chế ngắt trong hệ vi xử lý

Với cách làm này, một hệ thống có thể đáp ứng rất nhanh với các yêu cầu trao đổi dữ liệu trong khi vẫn có thể làm được các công việc khác. Muốn đạt được điều này ta phải có cách tổ chức hệ thống sao cho có thể tận dụng được khả năng thực hiện được các chương trình phục vụ ngắt tại các địa chỉ xác định của CPU.

Hình 2.17 giới thiệu các loại ngắt có trong 8086.

Là ngắt được gọi bằng một lệnh ở trong chương trình ngôn ngữ máy. Lệnh đó là INT, được sử dụng cùng với số hiệu ngắt. Các ngắt mềm cho phép gọi trực tiếp các chương trình con phục vụ ngắt chứa trong thư viện chương trình. Điều này không những thực hiện được ở mức ngôn ngữ Assembly mà còn bằng cả ngôn ngữ bậc cao.

Hình 2.17 Các loại ngắt có trong BVXL 8086

Ngắt cứng

Trong phần tìm hiểu chung về BVXL 8086, ta đã thấy nó có các chân tín hiệu INTR và NMI, các chân này sẽ được sử dụng để đưa các yêu cầu ngắt từ ngoại vi đến CPU. Loại ngắt được khởi động bởi các thành phần có trong phần cứng của hệ vi xử lý này được gọi là ngắt cứng. Đây là một cơ cấu đơn giản và hiệu quả để BVXL phản ứng kịp thời với các sự kiện không đồng bộ xảy ra trong hệ.

Với loại ngắt này, ta còn phân biệt chúng thành ngắt che được (INTR) và ngắt không che được (NMI).

- Ngắt che được INTR: là các ngắt bị cấm bằng lệnh Assembly CLI (Clear Interrupt Flag). Khi một ngắt bị cấm thì dù được gọi, chương trình con tương ứng cũng không được thực hiện. Để hủy bỏ chế độ cấm ngắt, người ta dùng lệnh STI (Set Interrupt Flag), lệnh này cho phép các ngắt bị cấm trở lại hoạt động bình thường.

- Ngắt không che được (ngắt qua chân NMI): là các ngắt luôn được thực hiện, kể cả khi ngắt này được gọi sau lệnh CLI. Chương trình con phục vụ ngắt này thường là chương trình có chức năng thông báo các sự kiện quan trọng nhất đối với hệ như: sự cố nguồn nuôi, sự cố thời gian thực…

Ngoài ra, ta còn có loại ngắt cứng nội bộ. Các ngắt này không bị kích hoạt bởi các thiết bị ngoài mà bởi các IC bổ trợ nằm trong hệ như ngắt thời gian khi nó được gọi bởi bộ tạo thời gian thực TIMER LSI 8253.

Một phần của tài liệu THIẾT KẾ HỆ VI XỬ LÝ ĐA NĂNG 16 BÍT 80X86 INTEL (Trang 54 - 56)