Dễ thấy rằng một phần lớn của chương trình chính đang lặp qua chukỳ kiểm tra liên tục này và phương pháp như vậy sẽ ảnh hưởng nghiêm trọng đến lưu lượng hệ thống, giảm hiệu suất công việ
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO
Kiến Trúc Máy Tính Và Hệ Điều Hành
Đề tài:
Nghiên cứu tìm hiểu về vi mạch điều khiển ưu tiên ngắt PIC 8259A
(Priority Interrupt Controller)
Giảng viên hướng dẫn : TH.S Nguyễn Thanh Hải
Nhóm thực hiện : Nhóm 13
Hà Nội, ngày 21 tháng 11 năm 2023.
Trang 2BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO
Kiến Trúc Máy Tính Và Hệ Điều Hành
Đề tài:
Nghiên cứu tìm hiểu về vi mạch điều khiển ưu tiên ngắt PIC 8259A
(Priority Interrupt Controller)
Vũ Tuấn Minh Nguyễn Thị Oanh
Lê Xuân Trường
Vũ Văn Tuyên
Hà Nội, ngày 21 tháng 11 năm 2023.
Trang 3M c l c ụ ụ
1 Khái niệm, chức năng và phân loại mạch ngắt 5
1.1 Khái niệm về mạch PIC 8259A 5
1.2 Chức năng của vi mạch PIC 8259A 6
1.3 Phân loại mạch ngắt 6
1.3.1 Ngắt cứng 7
1.3.2 Các ngắt mềm 8
1.3.3 Các ngắt địa chỉ 8
2 Sơ đồ chân và các chức năng các chân tín hiệu 9
2.1 Sơ đồ chân 9
2.2 Chức năng các chân tín hiệu 10
3 Sơ đồ khối, chức năng của khối và các thanh ghi 11
3.1 Sơ đồ khối 11
3.2 Chức năng của các khối 12
3.3 Chức năng của các thanh ghi 13
4 Sơ đồ phối ghép và nguyên tắc hoạt động của vi mạch và hệ thống ngắt cứng PIC 8259A 14
4.1 Sơ đồ phối ghép 14
4.2 Nguyên tắc hoạt động của vi mạch PIC 8259A 16
5 Lập trình cho vi mạch PIC 8259A 17
5.1 Các từ lệnh khởi tạo (ICW) 18
5.1.1 ICW1, ICW2 18
5.1.2 ICW3 19
5.1.3 ICW4 20
5.2 Các từ lệnh hoạt động 22
5.2.1 OCW1 23
5.2.2 OCW2 24
5.2.3 OCW3 24
5.3 Các chế độ hoạt động 24
5.3.1 Chế độ hoạt động đầy đủ (Fully Nested Mode) 24
Trang 45.3.2 Chế độ hoán đổi thứ tự ưu tiên (Rotating Priority Mode) 25
5.3.3 Chế độ tự động (Auto Mode) 25
5.3.4 Chế độ đặc biệt (Specific Mode) 25
5.3.5 Chế độ che đặc biệt 26
5.3.6 Chế độ quay vòng 26
5.3.7 Cascading 27
Kết luận 28
Trang 5Lời nói đầu
Trong thời đại ngày nay, với sự phổ cập và tích hợp ngày càng sâu rộng của công nghệ vào cuộc sống hàng ngày, nhu cầu về hiệu suất và quản lý ngắt trong hệ thống máy tính trở nên ngày càng quan trọng Một trong những thành phần quan trọng
đó là vi mạch điều khiển ưu tiên ngắt, đặc biệt là PIC 8259A Bằng cách giới thiệu về nghiên cứu này, nhóm em bước đầu khám phá sâu rộng về cấu trúc và nguyên tắc hoạt động của PIC 8259A và xem xét vai trò quan trọng của nó trong quản lý ngắt và đảm bảo ổn định trong hệ thống máy tính
Với mục đích tìm hiểu về vi mạch điều khiển ưu tiên ngắt PIC 8259A (Priority interrupt controller) Nhóm sinh viên chúng em đã tìm hiểu về khái niệm và phân loại mạch ngắt, sơ đồ chân và các chức năng tín hiệu, chức năng của các thanh ghi, nguyên tắc ghép nối và sơ đồ phối ghép của vi mạch và hệ thống ngắt cứng PIC 8259A, sơ đồ ghép nối và lập trình vi mạch 8259A
Mặc dù đã cố gắng hết sức nhưng bài tiểu luận của chúng em không thể tránh khỏi những sai sót, rất mong sự đóng góp ý kiến của các bạn và thầy cô Nhóm tác giả xin chân thành cảm ơn mọi người đã đọc cuốn bài tiểu luận này, cũng như đóng góp ý kiến để bài tiểu luận của chúng em được hoàn thiện hơn
Trang 61 Khái niệm, chức năng và phân loại mạch ngắt
- Tại sao cần sử dụng vi mạch ngắt PIC?
o Thiết kế hệ thống vi xử lý đòi hỏi các thiết bị ngoại vi như bàn phím, màn hình, cảm biến và các thành phần khác nhận được dịch vụ một cách hiệu quả để một lượng lớn công việc của hệ thống tổng có thể được thực hiện bởi vi xử lý mà không ảnh hưởng đến lưu lượng
o Phương pháp phổ biến nhất để cung cấp dịch vụ cho các thiết bị như vậy là phương pháp Polled Điều này có nghĩa là bộ xử lý phải kiểm tra từng thiết
bị theo trình tự và thực tế "hỏi" từng thiết bị xem nó cần được phục vụ hay không Dễ thấy rằng một phần lớn của chương trình chính đang lặp qua chu
kỳ kiểm tra liên tục này và phương pháp như vậy sẽ ảnh hưởng nghiêm trọng đến lưu lượng hệ thống, giảm hiệu suất công việc có thể được thực hiện bởi vi xử lý và giảm hiệu quả chi phí của việc sử dụng các thiết bị như vậy
o Một phương pháp mong muốn hơn sẽ là cho phép vi xử lý thực hiện
chương trình chính của nó và chỉ dừng lại để phục vụ các thiết bị ngoại vi khi nó được báo hiệu làm như vậy bởi chính thiết bị đó Thực tế, phương pháp này sẽ cung cấp một đầu vào bất đồng bộ bên ngoài mà thông báo cho
bộ xử lý rằng nó nên hoàn thành bất kỳ lệnh nào đang được thực hiện và lấy một chương trình mới để phục vụ thiết bị yêu cầu Tuy nhiên, sau khi dịch vụ này hoàn tất, bộ xử lý sẽ tiếp tục chính xác từ nơi nó dừng lại
o Phương pháp này được gọi là Ngắt Dễ thấy rằng lưu lượng hệ thống sẽ tăng đáng kể, từ đó vi xử lý có thể thực hiện thêm công việc để tăng cường hiệu suất chi phí của nó
1.1 Khái niệm về mạch PIC 8259A.
M̀i khi một thiết bị phần cứng hay một chương trình cần đến sự giúp đỡ của CPU nó gửi đi một tín hiệu hoặc lệnh gọi là ngắt đến bộ vi xử lý chỉ định một công việc cụ thể nào đó mà nó cần CPU thực hiện Khi bộ vi xử lý nhận được tín hiệu ngắt
Trang 7nó thường tạm ngưng tất cả các hoạt động khác và kích hoạt một chương trình con đang có trong bộ nhớ gọi là chương trình xử lý ngắt tương ứng với từng số liệu ngắt cụ thể Sau khi chương trình xử lý ngắt làm xong nhiệm vụ, các hoạt động của máy tính sẽtiếp tục lại từ nơi đã bị tạm dừng lúc xảy ra ngắt.
1.2 Chức năng của vi mạch PIC 8259A.
Bộ Điều khiển Ngắt Có thể Lập trình (PIC) hoạt động như một quản lý tổng thể trong môi trường Hệ thống Điều khiển bằng Ngắt Nó chấp nhận các yêu cầu từ thiết bịngoại vi, xác định yêu cầu nào đang có mức ưu tiên cao nhất, xác định xem yêu cầu đang đến có giá trị ưu tiên cao hơn mức đang được phục vụ hiện tại hay không, và phátngắt đến CPU dựa trên quyết định này
M̀i thiết bị ngoại vi hoặc cấu trúc thường có một chương trình hoặc "quy trình"đặc biệt được liên kết với yêu cầu chức năng hoặc vận hành cụ thể của nó; điều này được gọi là "quy trình dịch vụ" PIC, sau khi phát ngắt đến CPU, phải somehow đưa thông tin vào CPU có thể "trỏ" Bộ Đếm Chương Trình đến quy trình dịch vụ liên quan đến thiết bị yêu cầu "Trỏ" này là địa chỉ trong một bảng vector và thường được đề cập đến trong tài liệu này như dữ liệu vectoring
8259A là một thiết bị được thiết kế đặc biệt để sử dụng trong các hệ thống máy tính vi xử lý thời gian thực, dựa trên ngắt Nó quản lý tám mức hoặc yêu cầu và có các tính năng tích hợp để mở rộng cho các 8259A khác (lên đến 64 mức) Nó được lập trình bởi phần mềm hệ thống như một thiết bị ngoại vi I/O Người lập trình có thể chọn
từ một loạt các chế độ ưu tiên để cấu hình cách yêu cầu được xử lý bởi 8259A sao cho phù hợp với yêu cầu hệ thống của người dùng
Các chế độ ưu tiên có thể được thay đổi hoặc cấu hình lại động bất kỳ lúc nào trong chương trình chính Điều này có nghĩa là cấu trúc ngắt hoàn chỉnh có thể được định nghĩa theo yêu cầu, dựa trên môi trường hệ thống tổng thể
1.3 Phân loại mạch ngắt.
- Có 3 loại ngắt chính:
Trang 8o Đầu tiên là các ngắt được tạo ra bởi mạch điện của máy tính nhằm đáp lại một sự kiện nào đó như nhấn phím trên bàn phím Các ngắt này được
bộ điều khiển ngắt 8259A quản lý, 8259A sẽ ấn định mức độ ưu tiên chotừng ngắt rồi gửi đến CPU
o Sau đó là các ngắt do CPU tạo ra khi gặp phải một kết quả bất thường trong khi thực hiện chương trình như chia cho 0 chẳng hạn
o Cuối cùng là các ngắt do chính chương trình tạo ra nhằm gọi các chươngtrình con ở xa đang nằm trong ROM hoặc RAM, các ngắt này gọi là ngắtmềm chúng thường là bộ phận của các chương trình con phục vụ của ROM-BIOS hoặc của DOS
1.3.1 Ngắt cứng
Trang 9Hình 1.1: Mô tả quá trình ngắt cứng
Ngắt cứng là sự kiện CPU phải tạm dừng tiến trình đang thực hiện để chuyển sang thực hiện tiến trình phục vụ ngắt khi có yêu cầu ngắt từ phần mạch bên ngoài gửi đến CPU Các tín hiệu này đến từ các chân INTR và NMI
Ngắt cứng NMI là yêu cầu ngắt không che được tương đương với ngắt mềm INT2
Ngắt cứng INTR là yêu cầu ngắt che được Yêu cầu ngắt tại chân INTR có thể
có kiểu ngắt N nằm trong khoảng 0-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
1.3.2 Các ngắt mềm
Ngắt mềm là loại ngắt được gọi bằng một lệnh trong chương trình ngôn ngữ máy Ngắt mềm được thực hiện trên hợp ngữ thông qua lệnh INT Đối với các ngôn ngữ bậc cao hơn, vẫn cho phép được thực hiện gọi ngắt nhưng phải được biên dịch thành lệnh INT trong hợp ngữ rồi mới thực hiện
Những ngắt này là một phần của các chương trình ROM – BIOS, các số hiệu dành cho các ngắt của ROM- BIOS là 5, từ 10h đến 1C hex và 48h
Ngoài ra còn có các ngắt DOS và ngắt BASIC phục vụ hệ điều hành DOS và chương trình BASIC
1.3.3 Các ngắt địa chỉ
Ba trong số các ngắt này trỏ đến ba bảng rất quan trọng đó là bảng khởi tạo màn hình, Bảng cơ sở đĩa và bảng ký tự đồ thị Các bảng này chứa các tham số được ROM BIOS dùng khi khởi động hệ thống và tạo các ký tự đồ thị Các số hiệu dành cho các ngắt này là từ 1Dhex đến 1 Fhex
Trang 102 Sơ đồ chân và các chức năng các chân tín hiệu
2.1 Sơ đồ chân
Hình 2.1: Sơ đồ chân của PIC 8259A
- PIC 8259A gồm có 28 chân (như hình vẽ) Trong
o 1 chân SP/EN là chân số 16
o 1 chân INT là chân số 17
Trang 11o 1 chân Vcc là chân số 28
2.2 Chức năng các chân tín hiệu
- Vcc: Supply - Cung cấp điện áp 5V
- SP/EN: Slave Program/Enable Buffer - Đây là một chân có chức năng kép Khi ở chế độ Buffered Mode, nó có thể được sử dụng như một đầu ra để kiểm soát bộ truyền gói dữ liệu (EN) Khi không ở chế độ Buffered, nó được sử dụng như một đầu vào để chỉ định là chính (SP = 1) hoặc phụ (SP = 0)
- INT: Interrupt - Chân này trở cao m̀i khi có yêu cầu ngắt hợp lệ được đề xuất Nóđược sử dụng để ngắt CPU, do đó được kết nối với chân ngắt của CPU
- IR0 – IR7: Interrupt Requests - Các đầu vào không đồng bộ Một yêu cầu ngắt được thực hiện bằng cách đưa một đầu vào IR lên (thấp lên cao) và giữ nó ở mức cao cho đến khi nó được xác nhận (Chế độ Trigger theo Cạnh), hoặc chỉ bằng cáchgiữ ở mức cao trên một đầu vào IR (Chế độ Trigger theo Mức)
- INTA: Interrupt Acknowledge - Chân này được sử dụng để kích hoạt dữ liệu vector ngắt của 8259A lên bus dữ liệu thông qua một chùi xung xác nhận ngắt được phát ra bởi CPU
Trang 12- A0: Ao Address Line - Chân này hoạt động cùng với các chân CS, WR và RD Nó được sử dụng bởi 8259A để giải mã các Command Word khác nhau mà CPU viết
và trạng thái mà CPU muốn đọc Thông thường, nó được kết nối với đường địa chỉ CPU A0 (A1 cho 8086, 8088)
3 Sơ đồ khối, chức năng của khối và các thanh ghi
3.1 Sơ đồ khối
Hình 3.1: Sơ đồ khối
8259A
Trang 133.2 Chức năng của các khối.
Priority Resolver: Khối logic này xác định ưu tiên của các bit được đặt trong BảngĐăng ký Yêu cầu Ngắt (IRR) Ưu tiên cao nhất được chọn và đưa vào bit tương ứng của Bảng Đăng ký Đang Phục vụ (ISR) trong suốt xung INTA
Bảng đăng ký mặt nạ ngắt (IMR): lưu trữ các bit được sử dụng để mặt nạ các đường ngắt IMR hoạt động trên Bảng Đăng ký Yêu cầu Ngắt (IRR) Việc mặt nạ một đầu vào có độ ưu tiên cao sẽ không ảnh hưởng đến các đường yêu cầu ngắt có chất lượng thấp hơn
Ngắt (INT): Tín hiệu này được đưa trực tiếp vào ngõ ngắt của CPU Mức VOH trên đường này được thiết kế để hoàn toàn tương thích với các mức đầu vào của CPU 8080A, 8085A và 8086
Xác nhận ngắt (INTA): Các xung INTA sẽ khiến cho 8259A phát thông tin
vectoring ra Bus Dữ liệu Định dạng của dữ liệu này phụ thuộc vào chế độ hệ thống (µPM) của 8259A
Bộ đệm Bus dữ liệu: Bộ đệm 8 bit hai chiều, có ba trạng thái này được sử dụng để kết nối 8259A với Bus Dữ liệu hệ thống Các từ lệnh điều khiển và thông tin trạng thái được chuyển qua Bộ Đệm Bus Dữ liệu
Logic điều khiển đọc/viết: Chức năng của khối này là chấp nhận các lệnh xuất (Output) từ CPU Nó chứa các thanh ghi lệnh khởi tạo (ICW) và các thanh ghi lệnh hoạt động (OCW) lưu trữ các định dạng điều khiển khác nhau cho hoạt động của thiết
bị Khối chức năng này cũng cho phép trạng thái của 8259A được chuyển ra Bus Dữ liệu
Chip Select (CS): Mức thấp trên đầu vào này kích hoạt 8259A Không có việc đọchoặc ghi vào chip nếu thiết bị không được chọn
Ghi (WR): Mức thấp trên đầu vào này kích hoạt CPU để ghi các từ lệnh điều khiển (ICWs và OCWs) vào 8259A
Đọc (RD): Mức thấp trên đầu vào này kích hoạt 8259A để gửi trạng thái của BảngĐăng ký Yêu cầu Ngắt (IRR), Bảng Đăng ký Đang Phục vụ (ISR), Bảng Đăng ký Mặt
nạ Ngắt (IMR), hoặc mức ngắt ra Bus Dữ liệu
Địa chỉ 0 (A0): Tín hiệu đầu vào này được sử dụng cùng với tín hiệu WR và RD
để ghi các lệnh vào các thanh ghi lệnh khác nhau, cũng như đọc các thanh ghi trạng thái khác nhau của vi mạch Đường này có thể được kết nối trực tiếp với một trong các đường địa chỉ
Trang 143.3 Chức năng của các thanh ghi.
Các thanh ghi yêu cầu ngắt từ các thiết bị ngoại vi tới IRi được xử lý bởi 3 thanh ghi 8 bit, m̀i bit tương ứng với một yêu cầu ngắt IRi (i = 0 – 7)
Thanh ghi này dùng để cấm hoặc cho phép từng lối vào yêu cầu ngắtriêng biệt M̀i bit của nó tương ứng với một lối vào có cùng chỉ số
i Để cho phép một lối vào ngắt, phải gửi đi (ghi) một từ lệnh có bit tương ứng lối vào ấy bằng 0
Thanh ghi này có nhiệm vụ ghi nhớ để theo dõi các yêu cầu ngắt đang yêu cầu phục vụ (có tại các IRi) Tín hiệu yêu cầu ngắt có tại lối vào nào thì bit tương ứng với lối vào đó của IRR sẽ được lập Tínhiệu yêu cầu ngắt phải tồn tại trên lối vào IRRQ cho tới khi xuất hiện sườn xuống của xung INTA thứ nhất
Thanh ghi này ghi nhớ yêu cầu ngắt nào đang được phục vụ trong sốcác yêu cầu ngắt IRi Với m̀i IRi đang được phục vụ thì bit thứ i tương ứng với nó trong ISR để quyết định một yêu cầu ngắt IRi nào
đó có được gửi tới CPU 8088 thông qua chân INT của khối logic điều khiển tại một thời điểm hiện tại hay bắt nó phải chờ
4 Sơ đồ phối ghép và nguyên tắc hoạt động của vi mạch và hệ thống ngắt cứng PIC 8259A.
4.1 Sơ đồ phối ghép
Trang 15Hình 4.1 Giao diện 8259A tới Bus hệ thống tiêu chuẩn
Hình 4.2 Sơ đồ ghép nối 8259 với bộ VXL
- Các bước tiến hành xử lý ngắt từ thiết bị ngoại vi:
o Một trong các đường IR0 – IR7 nâng lên mức cao, bit tương ứng trong IRR được thiết lập
o 8259 gửi tín hiệu đến chân INT của bộ VXL
o VXL nhận tín hiệu INT và phát xung thứ nhất ra chân INTA (nếu cờ IF được thiết lập)
o Bit ưu tiên cao nhất trong IRR được xóa, bit tương ứng được thiết lập trong ISR
o VLX xuất xung thứ hai ra chân INTA, VLX đưa số hiệu ngắt lên bus, VLX đọc
Trang 165 0DH Hard disk
Trong máy tính thế hệ cũ chỉ sử dụng 1 IC 8259A thì thứ tự ưu tiên là 0, 1, 2, 3,
4, 5, 6, 7 Trong các máy tính hiện đại sử dụng hai IC 8259A thì thứ tự ưu tiên là 0, 1, 2(8, 9, 10, 11, 12, 12, 14, 15), 3, 4, 5, 6, 7 Các IRQs từ 8 đến 15 thay thế IRQ2
- Các IRQs cách sử dụng được thể hiện trong bảng sau:
2 (reouted)No n/a Bộ điều khiển bànphím Modem, card video, COM
3
(cổng nối tiếp thứ 3), COM4
(cổng nối tiếp thứ tư)
3 8/16-bit 11 COM2 (second serial
port)
COM4 (cổng nối tiếp thứ tư),modem, card âm thanh, mạnglưới thẻ, accelerator thẻ
4 8/16-bit 12 COM1 (first serial
port)
COM3 (cổng nối tiếp thứ ba),modem, card âm thanh, mạnglưới thẻ, accelerator thẻ
5 8/16-bit 14 Floppy disk controller
LPT2 (hai cổng song song),LPT3 (cổng song song thứ ba),COM3, COM4, modem, cardmạng, bộ điều khiển đĩa cứng
7 8/16-bit 15 LPT1 (first parallelport)
LPT2, COM3, COM4, modem,thẻ âm thanh, mạng lưới thẻ,băng accelerator thẻ
9 16-bitonly 4
Card mạng, card âm thanh,SCSI bộ thích ứng chủ, PCIthiết bị ấn định tuyến đường
lai IRQ2
10 16-bitonly 5 SCSI bộ thích ứng chủ, trungCard mạng, card âm thanh,
kênh IDE, thiết bị PCI
11 16-bit
Card mạng, card âm thanh,máy chủ SCSI, card màn hình,quaternary kênh IDE, thiết bị
PCI
12 16-bitonly 7 PS/2 mouse