Bus PCI hỗ trợ IRQs ngắt phần cứng được dùng bởi những thiết bị PCI để truyền tín hiệu tới bus liên quan. Có 4 ngắt PCI chính được gọi là INTA#, INTB#, INTC# và INTD#.

Đi sâu vào chi tiết

Những ngắt INTX# này nhạy mức độ (level sensitive), nghĩa là chúng được chia sẻ trong số những card PCI. Thực tế, tất cả những chip hay card thiết bị đơn hay PCI chức năng đơn chỉ dùng một ngắt INTA#. Đó là một trong những quy luật trong đặc điểm kỹ thuật PCI. Nếu những thiết bị thêm vào trong con chip hay trên bo card có thể dùng INTB# qua INTD#. Bởi vì có một rất ít chip hay bo PCI đa chức năng, trên thực tế tất cả thiết bị trên bus PCI định sẵn đều chia sẻ INTA#.

Cho bus PCI định chức năng trong một PC những ngắt PCI phải được ánh xạ đến những ngắt ISA. Bởi do những ngắt ISA không thể được chia sẻ, trong phần lớn trường hợp mỗi card PCI dùng INTA# trên bus PCI phải được ánh xạ đến ngắt ISA không thể chia sẻ. Cho ví dụ, bạn có một hệ thống với 4 khe cắm PCI và 4 card PCI được lắp đặt. Mỗi card dùng ngắt PCI INTA#. Những card này, mỗi card được ánh xạ đến yêu cầu ngắt ISA khác nhau, như là IRQ9. IRQ 10,1RQ11 hay IRQ5 trong phần lớn trường hợp.

Tìm những IRQ riêng biệt cho mỗi thiết bị trên ca hai bus ISA và PCI luôn luôn là một vấn đề: đơn giản không có đủ những cái ngắt tự do để đi vòng. Thiết lập hai thiết bị ISA đến cùng IRQ là không thể (cái được 2QR là chia sẻ IRQ of IRQ4 bởi COM 1/3 và IRQ3 bởi COM2/4 không cho phép cả hai cổng COM hoạt động đồng thời), nhưng trong phần lớn hệ thống mới hơn có khả năng chia sẻ những IRQ giữa nhiều thiết bị PCI. Những BIOS hệ thống mới hơn cùng như những hệ điều hành cắm là chạy hỗ trợ chức năng được biết như PCI IRQ Steering. Để hoạt động, cả hai BIOS hệ thống và hệ điều hành máy tính phải hỗ trợ IRQ Steering. Những BIOS hệ thống cũ hơn và Windows 95 hay 95A không có sự hỗ trợ cho PCI IRQ Steering.

Bộ điều khiển ngắt có thể lập trình cao cấp

Như sự thay thế cho cặp bộ điều khiển ngắt 8259. Intel phát triển Bộ điều khiển ngắt có thể lập trình cao cấp (APIC: Advanced Programmable Interrupt Controller) vào giữa năm 1990. Mặc dù tất cả các bộ xử lý từ Pentium cơ bản chứa một APIC, APIC cũng phải được hiện diện trên chipset bo mạch chủ. BIOS và hệ điều hành cùng phải hỗ trợ APIC. Sự hỗ trợ APIC hiện diện trong phần lớn bo mạch chủ gần đây và trong tất cả các Windows OS. Trong một số hệ thống bạn có thể cho phép hoặc vô hiệu sự hỗ trợ APIC trên BIOS hệ thống nhưng hầu hết nó có hiệu lực thường xuyên.

APIC cung cấp hỗ trợ cho đa bộ xử lý nhưng cũng được dùng trên máy tính bộ xử lý đơn. Lợi điểm chính của AP1C cho bộ xử lý đơn là sự hỗ trợ cho trên 15 PCI IRQ. Phần lớn sự thực thi APIC hỗ trợ thực sự lên tởi 24 IRQ. Mặc dầu Windows 2000 có khuynh hướng đặt những IRQ PCI vào hàng ISA cơ bản 0-15. Thậm chí khi AP1C có hiệu lực, Windows và các hệ điều hành máy tính sau này tận dụng mọi sử dụng dịch vụ APIC khi được cài đặt vào hệ thống có APIC. APIC hạn chế chia sẽ IRQ để cho phép những thiết bị hoạt động tốt hơn với xung đột ít hơn. Cho ví dụ. trong hệ thống tiêu biểu với APIC, những IRQ PCI được gán như sau:

PCI IRQ 16: đồ họa audio/AGP trên bo mạch chủ (được chia sẻ)
PCI IRQ 17: bộ điều khiển card USB 1.1 thêm vào (không được chia sẻ)
PCI IRQ 18: bộ điều khiển card USB 1.1 thêm vào (không được chia sẻ)
PCI IRQ 19: thiết bị tiếp hợp Ethernet 10/100 / bộ điều khiển card USB 2.0 thêm vào (được chia sẻ)
PCI IRQ 21: các bộ điều khiển USB 1.1 trên bo mạch chủ (3)/ bộ điều khiển USB 2.0 trên bo mạch chủ (được chia sẻ)

Những IRQ ISA 0-15 cơ bản trên hệ thống mẫu được sử dụng chỉ cho những thiết bị ISA, do vậy ngăn ngừa những xung đột IRQ ISA-PCI.

tìm hiểu bus ngắt phần cứng

Những xung đột (IRQ Conflicts)

Một trong những xung đột IRQ là cái tiềm năng giữa cổng COM2: được tích hợp trong phần lớn bo mạch chủ hiện đại và bộ điều giải ISA bên trong (cơ số card). Gốc vấn đề từ thực tế là những bộ điều giải cơ số card máy tính thực sự (không gọi là WinModems là software based) kết hợp một cổng serial như là thành phần của kết cấu mạch của card, cổng serial này được xem như COM2: bởi mặc định. Máy tính của bạn xem như có hai cổng COM2: mỗi cổng dùng cùng nguồn IRQ và những địa chỉ cổng I/O.

Giải pháp dễ dàng cho vấn đề này: Vào system BIOS Setup và làm vô hiệu cổng COM2: dựng sẵn trong hệ thống. Trong khi bạn có thể suy nghĩ về cách vô hiệu hóa của cổng COM1: bởi vì bạn không thích dùng nó. Làm vô hiệu những cổng COMx: không sử dụng là một trong những phương thức tốt nhất để thả cặp IRQ cho những thiết bị khác sử dụng.

Xung đột IRQ khác cũng liên quan đến những cổng serial (COM). Bạn có thể nhận ra hai bộ phận trước mà hai IRQ được dành cho hai cổng COM. IRQ3 được dùng cho COM2:, và IRQ4 được dùng cho COM1: vấn đề xảy ra khi bạn có nhiều hơn hai cổng serial trong hệ thống. Khi mọi người thêm cổng COM3 và COM4, họ thường không cài đặt chúng ở chế độ ngắt không va chạm, đây nguyên nhân gây xung đột và các cổng không hoạt động.

Một cách dễ dàng để kiểm tra những thiết lập ngắt là sử dụng Device Manager trong Windows. Bằng cách nhấp đúp chuột vào biểu tượng Computer Properties trong Device Manager, bạn lấy được danh sách ngắn gọn của tất cả các nguồn hệ thống được sử dụng. Microsoft cũng bao gồm một chương trình được gọi là System Information (MSinfo32), cho một báo cáo thông tin hệ thống chi tiết.

Để cung cấp số tối đa những ngắt có thể được chia sẻ trong hệ thống không có Slot ISA, tôi đề cử sự thực hiện những bước sau trong hệ thống BIOS:

Vô hiệu bất kỳ cổng kế thừa không sử dụng trong hệ thống BIOS. Cho ví dụ, nếu bạn dùng cổng USB thay vì cổng serial và Parallel, thì vô hiệu cổng serial và Parallel. Việc này có thể thả ra ba IRQ.
Lựa chọn những Select the IRQ tự do trong bước 1 sử dụng cho PCI/Plug and Play. Tùy thuộc vào BIOS, màn hình để sử dụng có thể được xem như màn hình Plug and Play/PCI Resource Exclusion hay màn hình Plug and Play/PCI Configuration.
Cho phép lựa chọn Reset Configuration Data nên những bảng lộ trình IRQ trong CMOS được thông thoáng.
Lưu những thay đổi và thoát khỏi chương trình cài đặt BIOS.