3 số ngắt irq được sử dụng để làm gì. xung đột IRQ

Thật tốt khi sau khi lắp ráp hoặc nâng cấp theo kế hoạch, máy tính khởi động lần đầu tiên và hoạt động ổn định, không gặp trục trặc. Sẽ tệ hơn nhiều nếu các sự cố không mong muốn phát sinh - khởi động lại và đóng băng tự phát, lỗi chương trình, không thể hoạt động hoặc "tàng hình" của thiết bị, v.v. Lý do đầu tiên thường xuất hiện trong trường hợp này là xung đột gián đoạn. Chúng ta có biết rõ bản chất của hiện tượng này và chúng ta có chuẩn bị đầy đủ để chống lại nó không?

IRQ là gì
Ngắt là cơ chế cơ bản để hệ thống phản ứng với các sự kiện mới xuất hiện. Ngắt phần cứng, thường được gọi là IRQ (Interrupt ReQuest), là các tín hiệu vật lý mà bộ điều khiển thiết bị thông báo cho bộ xử lý về nhu cầu xử lý yêu cầu. Thông thường, mạch xử lý ngắt trông như thế này:
1) bộ xử lý nhận được tín hiệu ngắt và số của nó;
2) bằng cách sử dụng một bảng đặc biệt, người ta tìm thấy địa chỉ của chương trình chịu trách nhiệm xử lý ngắt với một số nhất định - trình xử lý ngắt;
3) bộ xử lý tạm dừng công việc hiện tại và chuyển sang thực thi trình xử lý (trong trường hợp chung, đây là một số trình điều khiển);
4) trình điều khiển truy cập thiết bị và kiểm tra nguyên nhân gây ra gián đoạn;
5) các hành động được yêu cầu được khởi chạy - khởi tạo, cấu hình thiết bị, trao đổi dữ liệu, v.v.
6) trình điều khiển thoát và bộ xử lý quay lại tác vụ bị gián đoạn.
Rõ ràng, để cơ chế ngắt hoạt động chính xác, phải đáp ứng hai điều kiện: thứ nhất, tín hiệu yêu cầu phải đến được bộ xử lý và thứ hai, trình xử lý trình điều khiển phải phản hồi chính xác tín hiệu này. Trong trường hợp xảy ra xung đột, điều kiện thứ hai không được đáp ứng: tín hiệu ngắt đến, nhưng phản hồi lại không chính xác, kết quả là chúng ta (tốt nhất) là một thiết bị không thể hoạt động.

Xung đột
Chúng ta có thể nói rằng xung đột là tình huống trong đó một số đối tượng đồng thời cố gắng truy cập vào tài nguyên chỉ dành cho một trong số chúng. Tranh chấp ngắt xảy ra khi nhiều thiết bị sử dụng cùng một đường ngắt để gửi tín hiệu yêu cầu và không có cơ chế xử lý các yêu cầu cạnh tranh. Nếu trình điều khiển khi nhận điều khiển không hoạt động với thiết bị đã gửi yêu cầu thì có thể xảy ra lỗi hoặc đơn giản là một trong các thiết bị không hoạt động.
Câu hỏi đặt ra là: nhiều thiết bị có thể sử dụng cùng một đường ngắt không, hay điều này về cơ bản là không thể? Rốt cuộc, nếu người lái xe có thể xác định chính xác yêu cầu đến từ ai, thì nó sẽ chỉ phản hồi các tín hiệu từ thiết bị “của nó”, bỏ qua tất cả những tín hiệu khác. Nhưng điều này phải được thỏa thuận trước theo cách nào đó, nếu không thì xung đột là không thể tránh khỏi.
Bus PCI cục bộ được thiết kế để chia sẻ các ngắt. Mỗi thiết bị PCI phải hoạt động chính xác trên cùng một đường ngắt như các thiết bị PCI khác. Điều này được thực hiện như sau: sự hiện diện của tín hiệu trên đường ngắt không được xác định bởi cạnh, tức là. sự thay đổi về mức điện áp, nhưng thực tế là có sự hiện diện của một điện áp nhất định. Một số thiết bị có thể thay đổi điện áp trên đường dây cùng một lúc, xếp hàng chờ bảo trì.
Do đó, việc chia sẻ cùng một IRQ với nhiều thiết bị PCI theo định nghĩa không phải là xung đột. Tuy nhiên, đôi khi vấn đề vẫn phát sinh. Đầu tiên, không phải tất cả các thiết bị PCI đều hoạt động chính xác trên cùng một đường ngắt như các thiết bị khác. Thứ hai, đôi khi driver có lỗi khiến chúng không thể phát hiện chính xác nguồn tín hiệu, gây nhiễu cho các driver khác. Thứ ba, không phải tất cả các thiết bị đều hoạt động trên bus PCI; ví dụ: các thiết bị ISA, bao gồm bộ điều khiển cổng COM/LPT, không thể chia sẻ các ngắt với thiết bị khác. Để hiểu rõ cách tránh hoặc giải quyết xung đột, bạn cần hiểu cơ chế kiểm soát IRQ.

Tổ chức các ngắt phần cứng trong máy tính cá nhân
Như bạn đã biết, máy tính cá nhân bắt đầu từ IBM PC. Kiến trúc của nó bao gồm tám đường ngắt phần cứng (IRQ), được điều khiển bởi bộ điều khiển đặc biệt. Mỗi người trong số họ được gán một số xác định mức độ ưu tiên của ngắt và địa chỉ của trình xử lý nó (cái gọi là vectơ ngắt). Kiến trúc mới, IBM PC AT, cung cấp thêm tám đường ngắt, trong đó bộ điều khiển thứ hai được sử dụng, được kết nối với một trong các đường ngắt của bộ điều khiển thứ nhất. Thật không may, kiến ​​trúc này đã trở thành kiến ​​trúc cuối cùng sau khi IBM mất khả năng kiểm soát sự phát triển của nền tảng mà nó tạo ra, vì vậy tất cả các máy tính hiện đại vẫn chỉ có 16 ngắt, một trong số đó được sử dụng bởi bộ điều khiển thứ hai.
Máy tính IBM PC AT chỉ có một bus mà các thiết bị có thể giao tiếp với bộ xử lý và bộ nhớ - ISA. Hầu hết các đường ngắt được gán cho các thiết bị ISA tiêu chuẩn, phần còn lại được dành riêng cho tương lai. Khi tương lai này đến, hóa ra bus PCI đa năng mới chỉ có bốn ngắt miễn phí. Do đó, một cơ chế tinh vi để chia sẻ các ngắt (Chia sẻ IRQ) và xác định lại động các con số (Chỉ đạo hoặc Ánh xạ IRQ) đã được phát minh.
Bản chất của cơ chế quản lý ngắt thiết bị PCI như sau. Nhìn chung, có bốn đường ngắt PCI vật lý, được gọi là PIRQ0, PIRQ1, PIRQ2 và PIRQ3. Chúng được kết nối với bộ điều khiển ngắt. Về phần mình, mỗi thiết bị PCI có bốn đầu nối, được gọi là INT A, INT B, INT C và INT D. Bạn có thể kết nối đường dây với các đầu nối theo bất kỳ thứ tự nào. Ví dụ: đối với khe cắm PCI đầu tiên, bạn có thể tạo bố cục sau: PIRQ0 - INT A, PIRQ1 - INT B, PIRQ2 - INT C, PIRQ3 - INT D. Và đối với khe thứ hai - khác: PIRQ0 - INT B, PIRQ1 - INT C, PIRQ2 - INT D, PIRQ3 - INT A. Thông thường thiết bị chỉ cần 1 đường ngắt kết nối với INT A. Khi lắp vào slot đầu tiên, thiết bị sử dụng đường PIRQ0, còn ở slot thứ 2 sẽ có một đường PIRQ1 trên cùng một pin. Do đó, các thiết bị ở các khe cắm khác nhau sẽ sử dụng các đường ngắt vật lý khác nhau. Xung đột phần cứng giữa chúng sẽ được loại bỏ.
Bus AGP, về cơ bản là một sửa đổi chuyên biệt của PCI, cũng sử dụng một trong các đường PIRQ - thường là PIRQ0.
Đối với các hệ thống hiện đại, bốn dòng là không đủ, vì vậy các chipset mới thường sử dụng tám dòng PIRQ, chúng cũng được kết nối theo các cách kết hợp khác nhau với các khe cắm PCI và các thiết bị được tích hợp trong bo mạch.
Các đường PIRQ được kết nối với bộ điều khiển ngắt. Chúng, giống như các dòng khác, được gán các số IRQ logic. Nếu có một số thiết bị trên cùng một đường dây vật lý (và điều này có thể chấp nhận được) thì tất cả chúng sẽ có cùng số IRQ. Nếu các thiết bị nằm trên các đường dây vật lý khác nhau, chúng vẫn có thể nhận được cùng số IRQ. Trình điều khiển thông thường sẽ cho phép chúng hoạt động tự do mà không bị giảm hiệu suất, vì bus PCI vẫn chỉ có thể được bắt bởi một thiết bị. Điều chính là nhận ra tín hiệu đến từ thiết bị nào.
Các số cho dòng PIRQ được gán tự động nhờ cơ chế Plug&Play khét tiếng. Nhưng cũng có những thiết bị ISA hỗ trợ Plug&Play. Họ cũng có khả năng tự động nhận số IRQ. Nhưng đường ngắt của chúng là dành riêng cho chúng và nếu một trong các đường PIRQ nhận được cùng một số, một xung đột không thể giải quyết sẽ nảy sinh.
Vì vậy, chúng tôi phát hiện ra rằng các thiết bị PCI sẽ không gặp phải vấn đề xung đột IRQ. Tất nhiên, nếu chúng hoạt động chính xác, nhưng điều này không phải lúc nào cũng đúng. Ngoài ra, trình điều khiển phải hỗ trợ cơ chế chia sẻ ngắt. Các thiết bị ISA không thể chia sẻ các đường ngắt và do đó gây ra xung đột. Do đó, nhiệm vụ loại bỏ xung đột phụ thuộc vào việc phân phối chính xác các con số (nguồn gốc của vấn đề là các thiết bị ISA và trình điều khiển “quanh co”) hoặc phân phối dọc theo các đường vật lý khác nhau (các bộ điều khiển PCI (“quanh co”).
Hãy xem cách các con số được phân phối trong hệ thống và cách chúng ta có thể tác động đến quá trình này.

Bản đồ ngắt
Như tôi đã nói, hầu hết các số IRQ đều đã được sử dụng bởi các thiết bị tiêu chuẩn, hay chính xác hơn là được gán cho các đường ngắt của chúng. Chúng ta hãy đi qua nó theo thứ tự:
0 - bộ đếm thời gian hệ thống (số luôn bận);
1 - bàn phím (số luôn bận);
Bộ điều khiển ngắt 2 - giây (luôn bận);
3 - Cổng COM2 (có thể tắt và giải phóng số);
4 - Cổng COM1 (có thể bị vô hiệu hóa và số được giải phóng);
5 - Cổng LPT2 (thường là số miễn phí);
6 - bộ điều khiển đĩa mềm (có thể tắt và giải phóng số);
7 - Cổng LPT1 (nếu không ở chế độ EPP hoặc ECP thì số đó miễn phí);
8 - đồng hồ thời gian thực (luôn bận);
9 - miễn phí;
10 - miễn phí;
11 - miễn phí;
12 - Chuột PS/2 (có thể miễn phí nếu không có chuột đó);
13 - bộ đồng xử lý (luôn bận);
14 và 15 - bộ điều khiển ổ cứng (có thể tắt và số có thể được giải phóng).
Trong một hệ thống điển hình, có sẵn các số 5, 7, 9-11, tức là năm trên mười lăm. Ngoài ra, bạn có thể vô hiệu hóa cổng COM2 và LPT1 một cách an toàn, tăng số lượng số còn trống lên bảy. Rảnh rỗi không có nghĩa là không bận rộn, chỉ là có thể tự do xáo trộn giữa chúng.
Bất kỳ hệ thống nào cũng có ba thiết bị PCI tiêu chuẩn - ACPI, bộ điều khiển USB và card màn hình, mỗi thiết bị sẽ chiếm một số. Một thiết bị phức tạp (ví dụ: card âm thanh) có thể yêu cầu nhiều dòng - INT A, INT B, v.v. đối với các thành phần của nó, các thành phần này sẽ không xung đột với nhau (xét cho cùng là các dòng vật lý khác nhau), nhưng với các thiết bị khác - một cách dễ dàng.
Có một số cách để tìm hiểu xem các số ngắt hiện được phân phối như thế nào. Khi máy tính bắt đầu khởi động, một bảng văn bản cấu hình sẽ xuất hiện. Ngay sau đó là danh sách các thiết bị PCI cho biết số IRQ được gán cho chúng (xem ảnh chụp màn hình). Một phương pháp khác hoạt động trên Windows 9x. Trong bảng điều khiển có biểu tượng “Hệ thống”, trong applet được gọi lên có tab “Thiết bị”. Chúng tôi chọn các thuộc tính của thiết bị “Máy tính” và tất cả các thiết bị sẽ được liệt kê ở đó, cho biết IRQ của chúng (xem ảnh chụp màn hình).
Trong Windows 2000, chúng ta không có quyền truy cập vào quản lý ngắt, vì vậy để xem danh sách IRQ, chúng ta cần sử dụng tiện ích thông tin tiêu chuẩn (Control Panel/Administrative Tools/Computer Management/System Information/Hardware Resources).

Phân phối số IRQ bằng BIOS
Trong hệ thống, số IRQ được phân phối giữa các dòng vật lý hai lần. Lần đầu tiên việc này được BIOS hệ thống thực hiện là khi hệ thống khởi động. Mỗi thiết bị Plug&Play (tất cả PCI, ISA hiện đại, thiết bị tích hợp), hay chính xác hơn là đường ngắt của nó, được gán một số trong số mười có thể. Nếu không đủ số thì nhiều dòng nhận một số chung. Nếu đây là những dòng PIRQ thì không sao - nếu bạn có trình điều khiển bình thường và sự hỗ trợ từ hệ điều hành (xem bên dưới để biết thêm thông tin về điều này), mọi thứ sẽ hoạt động. Và nếu một số thiết bị ISA hoặc thiết bị PCI và ISA nhận được một số, thì xung đột là không thể tránh khỏi và khi đó bạn cần phải can thiệp vào quá trình phân phối.
Trước hết, bạn cần vô hiệu hóa tất cả các thiết bị ISA không sử dụng (chúng cũng có trong các hệ thống không có khe cắm ISA) - cổng COM1, COM2 và ổ đĩa. Bạn cũng có thể tắt chế độ EPP và ECP của cổng LPT, khi đó ngắt IRQ7 sẽ khả dụng.
Trong BIOS Setup chúng ta cần có phần "Cấu hình PCI/PNP". Có hai cách cơ bản để tác động đến việc gán số IRQ: chặn một số cụ thể và gán trực tiếp số dòng PIRQ.
Phương pháp đầu tiên có sẵn cho tất cả các BIOS: tìm danh sách các mục “IRQ x được sử dụng bởi:” (trong các BIOS mới, nó bị ẩn trong menu con “Tài nguyên IRQ”). Những ngắt được gán riêng cho các thiết bị ISA phải được đặt thành "ISA kế thừa". Do đó, khi phân phối số tới các thiết bị PCI, các ngắt này sẽ bị bỏ qua. Điều này nên được thực hiện nếu bất kỳ thiết bị ISA nào cố tình chia sẻ cùng một ngắt với thiết bị PCI, đó là lý do tại sao cả hai đều không hoạt động. Sau đó, chúng tôi tìm thấy số IRQ này và chặn nó trong BIOS Setup. Thiết bị PCI chuyển sang số IRQ mới, nhưng thiết bị ISA vẫn còn. Cuộc xung đột đã được giải quyết.
Cách thứ hai thuận tiện hơn để quản lý số IRQ là gán trực tiếp. Trong cùng menu con Thiết lập BIOS có thể có các mục như “Slot X use IRQ” (tên gọi khác: “PIRQx use IRQ”, “PCI Slot x Priority”, “INT Pin x IRQ”).
Với sự giúp đỡ của họ, mỗi dòng trong số bốn dòng PIRQ có thể được gán một số cụ thể. Nhân tiện, trong AwardBIOS 6.00 mới, bạn có thể xem thiết bị nào (bao gồm cả thiết bị tích hợp) sử dụng một dòng cụ thể. Chỉ cần nhìn vào phía bên phải của màn hình Thiết lập BIOS: ảnh cho thấy cách tôi di chuột qua tùy chọn "Slot 1/5 use IRQ no." và "Display Contr." Nghĩa là, dòng PIRQ đầu tiên được card màn hình sử dụng. Nếu bây giờ tôi đặt bất kỳ số cụ thể nào thay vì "Tự động", card màn hình sẽ được chuyển sang chế độ ngắt này.

Phân phối số IRQ bằng Windows
Lần thứ hai, số ngắt được hệ điều hành phân bổ. Như các thử nghiệm của tôi đã chỉ ra, Windows 98 bắt đầu can thiệp vào các hành động do BIOS thực hiện chỉ trong những trường hợp cực đoan. Nếu bạn có BIOS bình thường thì các kỹ thuật được mô tả ở đây sẽ không cần thiết.
Cần lưu ý rằng để cơ chế phân bổ động và chia sẻ IRQ hoạt động chính xác, Windows phải nhận dạng chipset bo mạch chủ và tải IRQ Miniport. Phiên bản Windows càng mới thì cổng miniport (PCIIMP.PCI) của chipset càng hỗ trợ nhiều chipset. Tuy nhiên, tốt hơn hết là bạn nên chơi an toàn và cài đặt trình điều khiển chipset mới nhất.
Trong Windows 98, hệ thống phân phối IRQ được quản lý bằng trình quản lý thiết bị tiêu chuẩn. Trong danh sách các thiết bị hệ thống, bạn cần tìm bus PCI. Có một tab đặc biệt trong thuộc tính của nó (xem ảnh chụp màn hình). Nếu mọi thứ được cấu hình đúng, cổng mini sẽ được đề cập ("khởi động thành công") và tính năng điều khiển bus PCI (Chỉ đạo) sẽ được bật. Do đó, Windows "98 có các công cụ để kiểm soát việc phân phối số ngắt giữa các dòng vật lý. Nhưng vì BIOS thường xử lý tốt điều này nên cơ chế này không được sử dụng.
Nhưng đôi khi nó chỉ đơn giản là cần thiết. Như tôi đã nói, các thiết bị PCI sẽ không xung đột nếu chúng sử dụng cùng một ngắt logic. Một điều nữa là các thiết bị ISA, chúng cũng bao gồm các cổng COM và LPT. Nếu thiết bị không phải là Plug&Play, BIOS có thể không nhận thấy điều đó, khiến thiết bị PCI bị gián đoạn. Sau đó, bạn cần phải đặt trước sự gián đoạn. Điều này được thực hiện trong Windows Device Manager 98: chọn thiết bị "Máy tính", gọi các thuộc tính của nó, chuyển sang tab thứ hai. Sau đó, mọi thứ đều rõ ràng.
Ngoài tính năng dự phòng, bạn có thể cài đặt trực tiếp số ngắt cho thiết bị. Để thực hiện việc này, bạn cần tìm tab "Tài nguyên" trong thuộc tính của nó, tắt cấu hình tự động và cố gắng thay đổi số ngắt được chỉ định.
Thật không may, điều này không phải lúc nào cũng hoạt động.
Windows 2000 là một hệ thống đặc biệt. Nếu bạn có một máy tính hiện đại thì có thể nó hỗ trợ giao diện cấu hình ACPI. Trong trường hợp này, Windows 2000 sẽ hoàn toàn bỏ qua các hành động của BIOS và “treo” tất cả các thiết bị PCI trên một ngắt logic. Nói chung điều này sẽ hoạt động tốt (khi không có ISA), nhưng đôi khi có vấn đề xảy ra. Để có thể thay đổi số ngắt, bạn cần thay đổi kernel HAL hoặc cài đặt lại Windows 2000 với ACPI bị tắt trong BIOS. Việc thay thế kernel được thực hiện như sau: trong trình quản lý thiết bị, chọn “Máy tính” / “Máy tính có ACPI”, thay đổi trình điều khiển thành “Máy tính tiêu chuẩn”, khởi động lại. Nếu điều này không giúp ích được gì, bạn sẽ phải cài đặt lại Windows 2000.
Tôi hy vọng những thông tin trên sẽ giúp bạn trong cuộc chiến chống lại các trục trặc về phần cứng. Và hãy nhớ rằng: hầu hết các vấn đề phát sinh đều liên quan đến trình độ hiểu biết về máy tính của chủ sở hữu máy tính còn thấp. Vì vậy, bạn phải luôn nỗ lực tự học thì sẽ ít xảy ra vấn đề hơn và những vấn đề nảy sinh dường như không phải là không thể giải quyết được.

Mikhail Tychkov hay còn gọi là Hard

Ngày tốt.

Hãy xem xét tình huống này: bộ xử lý xử lý một số dữ liệu, bất kể là gì. Lúc này, một số thiết bị cũng có dữ liệu cần xử lý. Phải làm gì? Chúng tôi cần yêu cầu bộ xử lý quyết định chú ý đến yêu cầu và quyết định xem nên xử lý dữ liệu này ngay bây giờ hay sau này. Vì vậy, yêu cầu này là IRQ hoặc các ngắt (thực ra có hai loại ngắt: phần cứng (bên ngoài) và phần mềm (nội bộ), nhưng vì phần của tôi có tên là “Phần cứng và Mạng” nên tôi sẽ chỉ nói về các ngắt phần cứng). Nói đúng ra, IRQ là các kênh yêu cầu ngắt được tất cả các loại thiết bị sử dụng để thông báo cho bộ xử lý rằng cần phải xử lý một yêu cầu cụ thể. Về mặt vật lý, IRQ được thể hiện bằng các đường dây (dây dẫn) được đặt riêng biệt và các điểm tiếp xúc tương ứng với các đường này trong giao diện. Rõ ràng tất cả điều này đều nằm trên bo mạch chủ. Các đường IRQ chỉ nhằm mục đích truyền các yêu cầu ngắt.

Chà, hãy cùng tìm hiểu xem tất cả những chuyện rác rưởi này xảy ra với IRQ như thế nào. Vì vậy, sau khi nhận được yêu cầu ngắt, hòn đá sẽ lưu trữ nội dung của các thanh ghi vào ngăn xếp. Sau đó, nó truy cập vào bảng vectơ ngắt, trong đó có danh sách các địa chỉ bộ nhớ chương trình tương ứng với các số ngắt cụ thể. Số ngắt xác định chương trình nào sẽ được khởi chạy. Về cơ bản, các chương trình này là các trình điều khiển liên quan đến thiết bị đã gửi yêu cầu (và các trình điều khiển thực sự không biết công việc của mình và sẽ tìm hiểu xem phải làm gì tiếp theo). Sau tất cả những điều này, quy trình xử lý sẽ trả về từ ngăn xếp những gì viên đá đang làm việc, hay nói một cách đơn giản hơn, quyền kiểm soát hệ thống được trao cho chương trình đang hoạt động trước khi có yêu cầu gián đoạn. Và cứ thế mọi lúc. Bản thân bảng này nằm trong RAM và bao gồm 256 phần tử, mỗi phần tử 4 byte và bắt đầu tại địa chỉ 0000:0000. Nó chiếm 1024 KB. Tôi hy vọng rằng bạn đã học được một sự thật đơn giản: nếu bạn cần xử lý ít nhất một byte mới từ bất kỳ thiết bị nào, trước tiên bạn phải xử lý IRQ của thiết bị này.

Để tránh nhầm lẫn, IRQ có hệ thống phân cấp hay nói cách khác là mức độ ưu tiên. Số ngắt càng thấp thì mức độ ưu tiên càng cao và ngược lại, số ngắt càng cao thì mức độ ưu tiên càng thấp. Chỉ có 16 IRQ có mức ưu tiên cao nhất là IRQ 0 và thấp nhất là IRQ 15. Đây là bảng phân cấp:

Chức năng tiêu chuẩn

Hẹn giờ hệ thống

Bộ điều khiển bàn phím

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

Cổng nối tiếp COM 2

Cổng nối tiếp COM 1

Bộ điều khiển đĩa mềm tiêu chuẩn

Cổng song song LPT

CMOS và đồng hồ

Âm thanh hoặc card mạng hoặc miễn phí

Miễn phí

USB hoặc SCSI hoặc miễn phí

Cổng chuột tương thích PS/2

Bộ đồng xử lý

Bộ điều khiển IDE chính

Bộ điều khiển IDE bổ sung

Bạn có muốn xem sự gián đoạn của bạn? Chọn “Bắt đầu – Chạy”, gõ “msinfo32”. Trong cửa sổ “Thông tin hệ thống” xuất hiện, ở bên trái, chọn tab “Tài nguyên phần cứng - Ngắt IRQ”.

Khi bị gián đoạn, bệnh trĩ cũng xảy ra. Nếu một số lượng lớn IRQ được tạo ra, ngăn xếp có thể bị tràn và sau đó... sau đó bạn với lấy nút. Nếu loại rác này xảy ra thường xuyên thì bạn cần tăng tham số Stacks trong tệp Config.sys. Ngoài ra, hai thiết bị PCI khác nhau có thể được gán cùng một ngắt. Về mặt lý thuyết, điều này không nên xảy ra, nhưng trên thực tế thì nó lại xảy ra. Trong trường hợp này, bạn sẽ phải tự mình gán một ngắt cho một trong các thiết bị bị lỗi. Làm thế nào để làm nó? Nhấp chuột. Cửa sổ “Thuộc tính: Hệ thống” bật lên. Chọn tab “Thiết bị”, tìm trong danh sách thiết bị có IRQ mà chúng tôi sẽ sửa và nhấp chuột vào thiết bị đó vài lần. Cửa sổ thuộc tính của nó sẽ bật lên, nơi chúng tôi chọn tab “Tài nguyên” và bỏ chọn hộp kiểm “Cấu hình tự động”. Sau đó, ngay bên dưới, chọn “Yêu cầu ngắt” và nhấp đúp lần nữa. Một cửa sổ sẽ xuất hiện nơi bạn có thể thay đổi số IRQ. Chuyện đó không có gì to tát và khó khăn. Nhưng... Bạn cần phân bổ sự gián đoạn một cách khôn ngoan. Kiểm tra bảng: IRQ nào được dùng để làm gì. Hãy tự kiểm tra xem cái nào có sẵn. Có thể xảy ra trường hợp bạn sẽ không bị gián đoạn miễn phí. Bạn có nghĩ vậy không, đồ khốn? KHÔNG! Tất nhiên, bạn sẽ không thêm IRQ mới nhưng hãy suy nghĩ xem liệu bạn có cần tất cả các thiết bị hay không. Ví dụ: tần suất bạn sử dụng cổng COM. Tôi đã không sử dụng chúng trong ba năm qua. Chà, đuổi chúng ra khỏi hệ thống. Điều này có thể được thực hiện từ BIOS. Và đây là IRQ miễn phí của bạn. Nói tóm lại, để giải quyết một vấn đề như vậy, bạn cần phải dồn hết tâm trí vào công việc và mọi việc sẽ giải quyết ổn thỏa cho bạn. Và tôi muốn cảnh báo tất cả các chuyên gia tuyệt vời ở đó ngay lập tức - đừng viết cho tôi những lá thư như: "Sau bài viết của bạn, khách hàng bắt đầu mang những chiếc máy tính có cài đặt lộn xộn đến cửa hàng của chúng tôi!" Tôi không chịu trách nhiệm về hành động của những người có đầu và tay mọc cùng chỗ với chân. Ngày xửa ngày xưa, bản thân tôi cũng không hiểu được điều gì về điều này, nhưng tôi đã tìm ra. Và không ai giải thích điều gì cho tôi. Người đi sẽ làm chủ con đường!

Tiếp tục nào. Nói chung, cần lưu ý rằng các kênh yêu cầu ngắt là tài nguyên hệ thống. Tôi sẽ đưa ra một định nghĩa ngắn gọn nhưng rất phù hợp: tài nguyên hệ thống là các kênh liên lạc, địa chỉ và tín hiệu được các nút máy tính sử dụng để trao đổi dữ liệu bằng xe buýt. Cứ như vậy, đơn giản và rõ ràng. Ngoài IRQ, tài nguyên hệ thống bao gồm: địa chỉ bộ nhớ, kênh truy cập bộ nhớ trực tiếp và địa chỉ cổng I/O. Nhưng nhiều hơn về điều đó trong các bài viết khác. Đó là tất cả cho ngày hôm nay. Chúc may mắn trong nỗ lực của bạn.

Thật tốt khi sau khi lắp ráp hoặc nâng cấp theo kế hoạch, máy tính khởi động lần đầu tiên và hoạt động ổn định, không gặp trục trặc. Sẽ tệ hơn nhiều nếu các sự cố không mong muốn phát sinh - khởi động lại và đóng băng tự phát, lỗi chương trình, không thể hoạt động hoặc "tàng hình" của thiết bị, v.v. Lý do đầu tiên thường xuất hiện trong trường hợp này là xung đột gián đoạn. Chúng ta có biết rõ bản chất của hiện tượng này và chúng ta có chuẩn bị đầy đủ để chống lại nó không?

IRQ là gì


Ngắt là cơ chế cơ bản để hệ thống phản ứng với các sự kiện mới xuất hiện. Ngắt phần cứng, thường được gọi là IRQ (Interrupt ReQuest), là các tín hiệu vật lý mà bộ điều khiển thiết bị thông báo cho bộ xử lý về nhu cầu xử lý yêu cầu. Thông thường, mạch xử lý ngắt trông như thế này:
1) bộ xử lý nhận được tín hiệu ngắt và số của nó;
2) bằng cách sử dụng một bảng đặc biệt, người ta tìm thấy địa chỉ của chương trình chịu trách nhiệm xử lý ngắt với một số nhất định - trình xử lý ngắt;
3) bộ xử lý tạm dừng công việc hiện tại và chuyển sang thực thi trình xử lý (trong trường hợp chung, đây là một số trình điều khiển);
4) trình điều khiển truy cập thiết bị và kiểm tra nguyên nhân gây ra gián đoạn;
5) các hành động được yêu cầu được khởi chạy - khởi tạo, cấu hình thiết bị, trao đổi dữ liệu, v.v.
6) trình điều khiển thoát và bộ xử lý quay lại tác vụ bị gián đoạn.
Rõ ràng, để cơ chế ngắt hoạt động chính xác, phải đáp ứng hai điều kiện: thứ nhất, tín hiệu yêu cầu phải đến được bộ xử lý và thứ hai, trình xử lý trình điều khiển phải phản hồi chính xác tín hiệu này. Trong trường hợp xảy ra xung đột, điều kiện thứ hai không được đáp ứng: tín hiệu ngắt đến, nhưng phản hồi lại không chính xác, kết quả là chúng ta (tốt nhất) là một thiết bị không thể hoạt động.

Xung đột

Chúng ta có thể nói rằng xung đột là tình huống trong đó một số đối tượng đồng thời cố gắng truy cập vào tài nguyên chỉ dành cho một trong số chúng. Tranh chấp ngắt xảy ra khi nhiều thiết bị sử dụng cùng một đường ngắt để gửi tín hiệu yêu cầu và không có cơ chế xử lý các yêu cầu cạnh tranh. Nếu trình điều khiển khi nhận điều khiển không hoạt động với thiết bị đã gửi yêu cầu thì có thể xảy ra lỗi hoặc đơn giản là một trong các thiết bị không hoạt động.
Câu hỏi đặt ra là: nhiều thiết bị có thể sử dụng cùng một đường ngắt không, hay điều này về cơ bản là không thể? Rốt cuộc, nếu người lái xe có thể xác định chính xác yêu cầu đến từ ai, thì nó sẽ chỉ phản hồi các tín hiệu từ thiết bị “của nó”, bỏ qua tất cả những tín hiệu khác. Nhưng điều này phải được thỏa thuận trước theo cách nào đó, nếu không thì xung đột là không thể tránh khỏi.
Bus PCI cục bộ được thiết kế để chia sẻ các ngắt. Mỗi thiết bị PCI phải hoạt động chính xác trên cùng một đường ngắt như các thiết bị PCI khác. Điều này được thực hiện như sau: sự hiện diện của tín hiệu trên đường ngắt không được xác định bởi cạnh, tức là. sự thay đổi về mức điện áp, nhưng thực tế là có sự hiện diện của một điện áp nhất định. Một số thiết bị có thể thay đổi điện áp trên đường dây cùng một lúc, xếp hàng chờ bảo trì.
Do đó, việc chia sẻ cùng một IRQ với nhiều thiết bị PCI theo định nghĩa không phải là xung đột. Tuy nhiên, đôi khi vấn đề vẫn phát sinh. Đầu tiên, không phải tất cả các thiết bị PCI đều hoạt động chính xác trên cùng một đường ngắt như các thiết bị khác. Thứ hai, đôi khi driver có lỗi khiến chúng không thể phát hiện chính xác nguồn tín hiệu, gây nhiễu cho các driver khác. Thứ ba, không phải tất cả các thiết bị đều hoạt động trên bus PCI; ví dụ: các thiết bị ISA, bao gồm bộ điều khiển cổng COM/LPT, không thể chia sẻ các ngắt với thiết bị khác. Để hiểu rõ cách tránh hoặc giải quyết xung đột, bạn cần hiểu cơ chế kiểm soát IRQ.

Tổ chức các ngắt phần cứng trong máy tính cá nhân


Như bạn đã biết, máy tính cá nhân bắt đầu từ IBM PC. Kiến trúc của nó bao gồm tám đường ngắt phần cứng (IRQ), được điều khiển bởi bộ điều khiển đặc biệt. Mỗi người trong số họ được gán một số xác định mức độ ưu tiên của ngắt và địa chỉ của trình xử lý nó (cái gọi là vectơ ngắt). Kiến trúc mới, IBM PC AT, cung cấp thêm tám đường ngắt, trong đó bộ điều khiển thứ hai được sử dụng, được kết nối với một trong các đường ngắt của bộ điều khiển thứ nhất. Thật không may, kiến ​​trúc này đã trở thành kiến ​​trúc cuối cùng sau khi IBM mất khả năng kiểm soát sự phát triển của nền tảng mà nó tạo ra, vì vậy tất cả các máy tính hiện đại vẫn chỉ có 16 ngắt, một trong số đó được sử dụng bởi bộ điều khiển thứ hai.
Máy tính IBM PC AT chỉ có một bus mà các thiết bị có thể giao tiếp với bộ xử lý và bộ nhớ - ISA. Hầu hết các đường ngắt được gán cho các thiết bị ISA tiêu chuẩn, phần còn lại được dành riêng cho tương lai. Khi tương lai này đến, hóa ra bus PCI đa năng mới chỉ có bốn ngắt miễn phí. Do đó, một cơ chế tinh vi để chia sẻ các ngắt (Chia sẻ IRQ) và xác định lại động các con số (Chỉ đạo hoặc Ánh xạ IRQ) đã được phát minh.
Bản chất của cơ chế quản lý ngắt thiết bị PCI như sau. Nhìn chung, có bốn đường ngắt PCI vật lý, được gọi là PIRQ0, PIRQ1, PIRQ2 và PIRQ3. Chúng được kết nối với bộ điều khiển ngắt. Về phần mình, mỗi thiết bị PCI có bốn đầu nối, được gọi là INT A, INT B, INT C và INT D. Bạn có thể kết nối đường dây với các đầu nối theo bất kỳ thứ tự nào. Ví dụ: đối với khe cắm PCI đầu tiên, bạn có thể tạo bố cục sau: PIRQ0 - INT A, PIRQ1 - INT B, PIRQ2 - INT C, PIRQ3 - INT D. Và đối với khe thứ hai - khác: PIRQ0 - INT B, PIRQ1 - INT C, PIRQ2 - INT D, PIRQ3 - INT A. Thông thường thiết bị chỉ cần 1 đường ngắt kết nối với INT A. Khi lắp vào slot đầu tiên, thiết bị sử dụng đường PIRQ0, còn ở slot thứ 2 sẽ có một đường PIRQ1 trên cùng một pin. Do đó, các thiết bị ở các khe cắm khác nhau sẽ sử dụng các đường ngắt vật lý khác nhau. Xung đột phần cứng giữa chúng sẽ được loại bỏ.
Bus AGP, về cơ bản là một sửa đổi chuyên biệt của PCI, cũng sử dụng một trong các đường PIRQ - thường là PIRQ0.
Đối với các hệ thống hiện đại, bốn dòng là không đủ, vì vậy các chipset mới thường sử dụng tám dòng PIRQ, chúng cũng được kết nối theo các cách kết hợp khác nhau với các khe cắm PCI và các thiết bị được tích hợp trong bo mạch.
Các đường PIRQ được kết nối với bộ điều khiển ngắt. Chúng, giống như các dòng khác, được gán các số IRQ logic. Nếu có một số thiết bị trên cùng một đường dây vật lý (và điều này có thể chấp nhận được) thì tất cả chúng sẽ có cùng số IRQ. Nếu các thiết bị nằm trên các đường dây vật lý khác nhau, chúng vẫn có thể nhận được cùng số IRQ. Trình điều khiển thông thường sẽ cho phép chúng hoạt động tự do mà không bị giảm hiệu suất, vì bus PCI vẫn chỉ có thể được bắt bởi một thiết bị. Điều chính là nhận ra tín hiệu đến từ thiết bị nào.
Các số cho dòng PIRQ được gán tự động nhờ cơ chế Plug&Play khét tiếng. Nhưng cũng có những thiết bị ISA hỗ trợ Plug&Play. Họ cũng có khả năng tự động nhận số IRQ. Nhưng đường ngắt của chúng là dành riêng cho chúng và nếu một trong các đường PIRQ nhận được cùng một số, một xung đột không thể giải quyết sẽ nảy sinh.
Vì vậy, chúng tôi phát hiện ra rằng các thiết bị PCI sẽ không gặp phải vấn đề xung đột IRQ. Tất nhiên, nếu chúng hoạt động chính xác, nhưng điều này không phải lúc nào cũng đúng. Ngoài ra, trình điều khiển phải hỗ trợ cơ chế chia sẻ ngắt. Các thiết bị ISA không thể chia sẻ các đường ngắt và do đó gây ra xung đột. Do đó, nhiệm vụ loại bỏ xung đột phụ thuộc vào việc phân phối chính xác các con số (nguồn gốc của vấn đề là các thiết bị ISA và trình điều khiển “quanh co”) hoặc phân phối dọc theo các đường vật lý khác nhau (các bộ điều khiển PCI (“quanh co”).
Hãy xem cách các con số được phân phối trong hệ thống và cách chúng ta có thể tác động đến quá trình này.

Bản đồ ngắt

Như tôi đã nói, hầu hết các số IRQ đều đã được sử dụng bởi các thiết bị tiêu chuẩn, hay chính xác hơn là được gán cho các đường ngắt của chúng. Chúng ta hãy đi qua nó theo thứ tự:
0 - bộ đếm thời gian hệ thống (số luôn bận);
1 - bàn phím (số luôn bận);
Bộ điều khiển ngắt 2 - giây (luôn bận);
3 - Cổng COM2 (có thể tắt và giải phóng số);
4 - Cổng COM1 (có thể bị vô hiệu hóa và số được giải phóng);
5 - Cổng LPT2 (thường là số miễn phí);
6 - bộ điều khiển đĩa mềm (có thể tắt và giải phóng số);
7 - Cổng LPT1 (nếu không ở chế độ EPP hoặc ECP thì số đó miễn phí);
8 - đồng hồ thời gian thực (luôn bận);
9 - miễn phí;
10 - miễn phí;
11 - miễn phí;
12 - Chuột PS/2 (có thể miễn phí nếu không có chuột đó);
13 - bộ đồng xử lý (luôn bận);
14 và 15 - bộ điều khiển ổ cứng (có thể tắt và số có thể được giải phóng).
Trong một hệ thống điển hình, có sẵn các số 5, 7, 9-11, tức là năm trên mười lăm. Ngoài ra, bạn có thể vô hiệu hóa cổng COM2 và LPT1 một cách an toàn, tăng số lượng số còn trống lên bảy. Rảnh rỗi không có nghĩa là không bận rộn, chỉ là có thể tự do xáo trộn giữa chúng.
Bất kỳ hệ thống nào cũng có ba thiết bị PCI tiêu chuẩn - ACPI, bộ điều khiển USB và card màn hình, mỗi thiết bị sẽ chiếm một số. Một thiết bị phức tạp (ví dụ: card âm thanh) có thể yêu cầu nhiều dòng - INT A, INT B, v.v. đối với các thành phần của nó, các thành phần này sẽ không xung đột với nhau (xét cho cùng là các dòng vật lý khác nhau), nhưng với các thiết bị khác - một cách dễ dàng.
Có một số cách để tìm hiểu xem các số ngắt hiện được phân phối như thế nào. Khi máy tính bắt đầu khởi động, một bảng văn bản cấu hình sẽ xuất hiện. Ngay sau đó là danh sách các thiết bị PCI cho biết số IRQ được gán cho chúng (xem ảnh chụp màn hình). Một phương pháp khác hoạt động trên Windows 9x. Trong bảng điều khiển có biểu tượng “Hệ thống”, trong applet được gọi lên có tab “Thiết bị”. Chúng tôi chọn các thuộc tính của thiết bị “Máy tính” và tất cả các thiết bị sẽ được liệt kê ở đó, cho biết IRQ của chúng (xem ảnh chụp màn hình).
Trong Windows 2000, chúng ta không có quyền truy cập vào quản lý ngắt, vì vậy để xem danh sách IRQ, chúng ta cần sử dụng tiện ích thông tin tiêu chuẩn (Control Panel/Administrative Tools/Computer Management/System Information/Hardware Resources).

Phân phối số IRQ bằng BIOS

Trong hệ thống, số IRQ được phân phối giữa các dòng vật lý hai lần. Lần đầu tiên việc này được BIOS hệ thống thực hiện là khi hệ thống khởi động. Mỗi thiết bị Plug&Play (tất cả PCI, ISA hiện đại, thiết bị tích hợp), hay chính xác hơn là đường ngắt của nó, được gán một số trong số mười có thể. Nếu không đủ số thì nhiều dòng nhận một số chung. Nếu đây là những dòng PIRQ thì không sao - nếu bạn có trình điều khiển bình thường và sự hỗ trợ từ hệ điều hành (xem bên dưới để biết thêm thông tin về điều này), mọi thứ sẽ hoạt động. Và nếu một số thiết bị ISA hoặc thiết bị PCI và ISA nhận được một số, thì xung đột là không thể tránh khỏi và khi đó bạn cần phải can thiệp vào quá trình phân phối.
Trước hết, bạn cần vô hiệu hóa tất cả các thiết bị ISA không sử dụng (chúng cũng có trong các hệ thống không có khe cắm ISA) - cổng COM1, COM2 và ổ đĩa. Bạn cũng có thể tắt chế độ EPP và ECP của cổng LPT, khi đó ngắt IRQ7 sẽ khả dụng.
Trong BIOS Setup chúng ta cần có phần "Cấu hình PCI/PNP". Có hai cách cơ bản để tác động đến việc gán số IRQ: chặn một số cụ thể và gán trực tiếp số dòng PIRQ.
Phương pháp đầu tiên có sẵn cho tất cả các BIOS: tìm danh sách các mục “IRQ x được sử dụng bởi:” (trong các BIOS mới, nó bị ẩn trong menu con “Tài nguyên IRQ”). Những ngắt được gán riêng cho các thiết bị ISA phải được đặt thành "ISA kế thừa". Do đó, khi phân phối số tới các thiết bị PCI, các ngắt này sẽ bị bỏ qua. Điều này nên được thực hiện nếu bất kỳ thiết bị ISA nào cố tình chia sẻ cùng một ngắt với thiết bị PCI, đó là lý do tại sao cả hai đều không hoạt động. Sau đó, chúng tôi tìm thấy số IRQ này và chặn nó trong BIOS Setup. Thiết bị PCI chuyển sang số IRQ mới, nhưng thiết bị ISA vẫn còn. Cuộc xung đột đã được giải quyết.
Cách thứ hai thuận tiện hơn để quản lý số IRQ là gán trực tiếp. Trong cùng menu con Thiết lập BIOS có thể có các mục như “Slot X use IRQ” (tên gọi khác: “PIRQx use IRQ”, “PCI Slot x Priority”, “INT Pin x IRQ”).
Với sự giúp đỡ của họ, mỗi dòng trong số bốn dòng PIRQ có thể được gán một số cụ thể. Nhân tiện, trong AwardBIOS 6.00 mới, bạn có thể xem thiết bị nào (bao gồm cả thiết bị tích hợp) sử dụng một dòng cụ thể. Chỉ cần nhìn vào phía bên phải của màn hình Thiết lập BIOS: ảnh cho thấy cách tôi di chuột qua tùy chọn "Slot 1/5 use IRQ no." và "Display Contr." Nghĩa là, dòng PIRQ đầu tiên được card màn hình sử dụng. Nếu bây giờ tôi đặt bất kỳ số cụ thể nào thay vì "Tự động", card màn hình sẽ được chuyển sang chế độ ngắt này.

Phân phối số IRQ bằng Windows

Lần thứ hai, số ngắt được hệ điều hành phân bổ. Như các thử nghiệm của tôi đã chỉ ra, Windows 98 bắt đầu can thiệp vào các hành động do BIOS thực hiện chỉ trong những trường hợp cực đoan. Nếu bạn có BIOS bình thường thì các kỹ thuật được mô tả ở đây sẽ không cần thiết.
Cần lưu ý rằng để cơ chế phân bổ động và chia sẻ IRQ hoạt động chính xác, Windows phải nhận dạng chipset bo mạch chủ và tải IRQ Miniport. Phiên bản Windows càng mới thì cổng miniport (PCIIMP.PCI) của chipset càng hỗ trợ nhiều chipset. Tuy nhiên, tốt hơn hết là bạn nên chơi an toàn và cài đặt trình điều khiển chipset mới nhất.
Trong Windows 98, hệ thống phân phối IRQ được quản lý bằng trình quản lý thiết bị tiêu chuẩn. Trong danh sách các thiết bị hệ thống, bạn cần tìm bus PCI. Có một tab đặc biệt trong thuộc tính của nó (xem ảnh chụp màn hình). Nếu mọi thứ được cấu hình đúng, cổng mini sẽ được đề cập ("khởi động thành công") và tính năng điều khiển bus PCI (Chỉ đạo) sẽ được bật. Do đó, Windows "98 có các công cụ để kiểm soát việc phân phối số ngắt giữa các dòng vật lý. Nhưng vì BIOS thường xử lý tốt điều này nên cơ chế này không được sử dụng.
Nhưng đôi khi nó chỉ đơn giản là cần thiết. Như tôi đã nói, các thiết bị PCI sẽ không xung đột nếu chúng sử dụng cùng một ngắt logic. Một điều nữa là các thiết bị ISA, chúng cũng bao gồm các cổng COM và LPT. Nếu thiết bị không phải là Plug&Play, BIOS có thể không nhận thấy điều đó, khiến thiết bị PCI bị gián đoạn. Sau đó, bạn cần phải đặt trước sự gián đoạn. Điều này được thực hiện trong Windows Device Manager 98: chọn thiết bị "Máy tính", gọi các thuộc tính của nó, chuyển sang tab thứ hai. Sau đó, mọi thứ đều rõ ràng.
Ngoài tính năng dự phòng, bạn có thể cài đặt trực tiếp số ngắt cho thiết bị. Để thực hiện việc này, bạn cần tìm tab "Tài nguyên" trong thuộc tính của nó, tắt cấu hình tự động và cố gắng thay đổi số ngắt được chỉ định.
Thật không may, điều này không phải lúc nào cũng hoạt động.
Windows 2000 là một hệ thống đặc biệt. Nếu bạn có một máy tính hiện đại thì có thể nó hỗ trợ giao diện cấu hình ACPI. Trong trường hợp này, Windows 2000 sẽ hoàn toàn bỏ qua các hành động của BIOS và “treo” tất cả các thiết bị PCI trên một ngắt logic. Nói chung điều này sẽ hoạt động tốt (khi không có ISA), nhưng đôi khi có vấn đề xảy ra. Để có thể thay đổi số ngắt, bạn cần thay đổi kernel HAL hoặc cài đặt lại Windows 2000 với ACPI bị tắt trong BIOS. Việc thay thế kernel được thực hiện như sau: trong trình quản lý thiết bị, chọn “Máy tính” / “Máy tính có ACPI”, thay đổi trình điều khiển thành “Máy tính tiêu chuẩn”, khởi động lại. Nếu điều này không giúp ích được gì, bạn sẽ phải cài đặt lại Windows 2000.
Tôi hy vọng những thông tin trên sẽ giúp bạn trong cuộc chiến chống lại các trục trặc về phần cứng. Và hãy nhớ rằng: hầu hết các vấn đề phát sinh đều liên quan đến trình độ hiểu biết về máy tính của chủ sở hữu máy tính còn thấp. Vì vậy, bạn phải luôn nỗ lực tự học thì sẽ ít xảy ra vấn đề hơn và những vấn đề nảy sinh dường như không phải là không thể giải quyết được.

  • Bài viết
  • IRQ - cách giải quyết vấn đề ngắt

    Ví dụ: hãy tưởng tượng tình huống bạn cài đặt modem Dial-Up trên PC, mọi thứ hoạt động tốt cho đến khi bạn kết nối Internet bằng modem và con trỏ chuột trên cổng PC/2 bắt đầu di chuyển một cách tự nhiên. Sau một thời gian (sau một thời gian), PC khởi động lại. Hơn nữa, việc cài đặt lại trình điều khiển cũng như cài đặt lại Windows đều không giúp ích được gì.
    Vấn đề này vốn có ở IRQ, khi một số thiết bị cản trở công việc của nhau.
    Vì vậy, sự gián đoạn hoặc IRQ (Yêu cầu ngắt)- đây là những tín hiệu thông báo cho bộ xử lý rằng cần phải xử lý yêu cầu nhận được từ thiết bị và bộ điều khiển của chính thiết bị này sẽ gửi những tín hiệu này đến bộ xử lý, tức là. Sử dụng IRQ, bộ xử lý sẽ phản hồi các sự kiện khác nhau.
    Vì vậy, lỗi hoặc xung đột sẽ phát sinh khi một số thiết bị (nếu trình điều khiển của ít nhất một thiết bị được viết “không chính xác”) cố gắng hoạt động trên cùng một ngắt.
    Điều này rất có vấn đề, bởi vì nhiều thiết bị hiện đại, đặc biệt là card âm thanh, bộ điều khiển, bộ thu sóng TV, ... mang theo nhiều thiết bị cùng một lúc. Ngay cả những card âm thanh đơn giản nhất cũng có ít nhất bốn thiết bị trên bo mạch.
    TRONG bàn Dưới đây là bản đồ ngắt trông như thế nào trong một máy tính hiện đại.

    IRQ

    Sự miêu tả

    0
    1

    Bàn phím

    2

    Bộ điều khiển IRQ 8-15

    3
    4
    5

    Card âm thanh hoặc card mạng LPT2, ISA và PCI. Card âm thanh hiện đại xử lý sự gián đoạn này chỉ nhằm mục đích tương thích với các chương trình cũ hơn. Cũng có sẵn để sử dụng với các thiết bị khác

    6

    Bộ điều khiển FDD

    7
    8
    9

    Card âm thanh hoặc card mạng, hoặc miễn phí

    10

    Miễn phí

    11

    Xe buýt USB hoặc SCSI. Đối với các thiết bị khác, ngắt này chỉ có thể khả dụng sau khi vô hiệu hóa các bus này trong BIOS

    12

    PS/2 (cho chuột)

    13

    Trước đây có bộ đồng xử lý nhưng bây giờ nó được dành riêng cho các chương trình cũ

    14

    Bộ điều khiển ổ cứng chính

    15

    Bộ điều khiển ổ cứng bổ sung


    Điều đáng lưu ý là các ngắt bổ sung có thể (và có thể) được giải phóng bằng cách vô hiệu hóa các thiết bị khác nhau đang sử dụng chúng. Để đảm bảo rằng bạn đúng, hãy đi tới “Thông tin hệ thống” (Bắt đầu > Tất cả chương trình > Phụ kiện > Công cụ hệ thống > Thông tin hệ thống).
    Trong cửa sổ “Tài nguyên phần cứng” ở bên trái, tôi đã chọn mục “Ngắt IRQ” và modem chắc chắn không bị gián đoạn (IRQ chịu trách nhiệm về các cổng COM).
    Khi hệ thống khởi động, BIOS phân phối các ngắt như sau: các dòng IRQ của tất cả các thiết bị hỗ trợ công nghệ Plug and Play và đây đều là các thiết bị hiện đại, nhận một ngắt miễn phí. Nếu các ngắt kết thúc nhưng vẫn còn các thiết bị chưa được phát hiện, BIOS sẽ phân phối chúng ở vòng thứ hai, đó là lý do tại sao một số thiết bị nhận được một ngắt.
    Sau khi BIOS phân phối số IRQ cho các thiết bị, Windows bắt đầu tham gia phân phối. Để làm được điều này, bạn phải luôn có trình điều khiển bo mạch chủ mới nhất.
    Điều này rất quan trọng, đặc biệt nếu bạn mua/chế tạo một máy tính hiện đại có bo mạch chủ trên chipset mới hoặc tương đối mới. Để hệ thống hoạt động bình thường, đặc biệt khi ngắt được chia sẻ, Windows cần nhận dạng chipset và tải IRQ Miniport.
    Sau đó, tôi khởi động lại PC và vào BIOS. Tôi tìm thấy một phần đặc biệt “Cấu hình PnP/PCI”, chứa các cài đặt tài nguyên (có thể có tên tương tự) trong phần “Nâng cao”.
    Ngoài các tham số phân phối IRQ, DMA và các tài nguyên khác, phần này có thể chứa các cài đặt ảnh hưởng đến hoạt động của hệ thống video và một số thiết bị khác.
    Trong các bo mạch chủ hiện đại, tất cả tài nguyên được phân bổ tự động và số lượng tham số trong phần Cấu hình PnP/PCI có thể giảm xuống còn hai hoặc ba tham số quan trọng nhất. Nó chứa một số điểm:
    “Plug and Play OS” hoặc “PNP OS Installed” - tham số này xác định ai sẽ phân bổ tài nguyên: BIOS hoặc hệ điều hành. Những giá trị khả thi:
    Đúng- BIOS sẽ cấu hình các thiết bị cần thiết để khởi động, các thiết bị còn lại sẽ do hệ điều hành cấu hình, hệ điều hành này phải hỗ trợ Plug and Play;
    KHÔNG- cấu hình của tất cả các thiết bị và phân bổ tài nguyên sẽ được thực hiện bằng BIOS.
    Bắt đầu với Windows XP, hệ điều hành Windows có giao diện cấu hình đặc biệt - ACPI (Cấu hình nâng cao và Giao diện nguồn), cho phép bạn hiển thị tối đa 256 IRQ trong hệ thống (240 địa chỉ, nói một cách nhẹ nhàng: “ảo”, tức là chúng thực sự bị “rải rác” tại các địa chỉ IRQ 0-15).

    Các quy trình hệ thống mà người dùng máy tính thông thường thường không biết đến thường có thể gây tăng tải cho tài nguyên máy tính của máy tính. Đặc biệt, chúng bao gồm cái gọi là ngắt hệ thống. Hầu hết mọi người không biết đây là gì và thường cố gắng tắt dịch vụ này trực tiếp trong “Trình quản lý tác vụ”, nơi hiển thị tải CPU và RAM. Nhìn về phía trước một chút, cần phải nói rằng trong mọi trường hợp, bạn không nên tham gia vào những việc như vậy. Nhưng làm thế nào để đưa hệ thống vào cuộc sống? Đề xuất nói về vấn đề này chi tiết hơn, đặc biệt là khi xem xét vấn đề chính, các vấn đề khác cũng có thể xuất hiện liên quan đến hoạt động không chính xác của các thành phần phần cứng, bản thân hệ điều hành Windows và phần mềm được cài đặt trong môi trường của chúng. Nhưng điều đầu tiên trước tiên.

    nó là gì?

    Trước khi thực hiện bất kỳ bước khắc phục sự cố nào, bạn nên tìm hiểu thành phần hệ thống này là gì. Trong “Trình quản lý tác vụ”, quy trình “Ngắt hệ thống”, chạy liên tục, chịu trách nhiệm về hoạt động của nó.

    Nhưng nó là gì? Không đi sâu vào chi tiết kỹ thuật và nói chúng là gì, các ngắt hệ thống có thể được so sánh với một loại phép thử hoặc chỉ báo bằng giấy quỳ báo hiệu rằng một số thiết bị đang gặp trục trặc trong hệ thống. Ngoài ra, việc tăng tải tài nguyên cũng có thể liên quan đến sự không tương thích giữa phần mềm và phần cứng của máy tính. Ở trạng thái bình thường, tải trên bộ xử lý từ quá trình này thường không vượt quá năm phần trăm hoặc hơn một chút, đủ để chẩn đoán tất cả các thiết bị “phần cứng” hiện đang sử dụng có hoạt động chính xác hay không. cần khẩn trương xác định nguyên nhân và loại bỏ các sự cố với thiết bị.

    Cách thức hoạt động: lời giải thích đơn giản nhất

    Nhưng hãy xem những gián đoạn hệ thống nào trong Windows 7 hoặc các sửa đổi khác bằng một ví dụ đơn giản. Cần lưu ý ngay rằng liên quan đến phần mềm, hoạt động của thành phần này gắn liền với các thành phần chương trình không thể thực thi, chẳng hạn như có thể được tải vào RAM (thư viện động, trình điều khiển thiết bị, v.v.).

    Giả sử bạn đã cài đặt một số trò chơi hiện đại trên máy tính của mình nhưng card màn hình chỉ đáp ứng các yêu cầu hệ thống tối thiểu hoặc cấu hình dưới ngưỡng này. Nếu chip đồ họa không thể xử lý các thành phần phần mềm, điều này dẫn đến tải của nó tăng lên, thì hệ thống có thể bị gián đoạn. Do đó, quá trình xử lý lệnh được chuyển hướng đến bộ xử lý trung tâm, bộ xử lý này cố gắng giúp card màn hình đối phó với số lượng yêu cầu ngày càng tăng. Theo đó, sự gia tăng tải được quan sát thấy trong phần quy trình được mô tả trong “Trình quản lý tác vụ”. Và thường thì việc xảy ra những tình huống như vậy không chỉ dẫn đến việc toàn bộ hệ thống bị treo mà thậm chí còn dẫn đến xuất hiện màn hình xanh. Điều tương tự cũng áp dụng khi thiết bị bắt đầu hỏng hóc. Thật không may, nếu các thành phần “phần cứng” của hệ thống bị hỏng, tất cả những điều này đều có thể áp dụng cho bất kỳ thành phần nào trong số chúng (ví dụ: ổ cứng bị hỏng, dải RAM bị hỏng, v.v.).

    Hệ thống ngắt tải bộ xử lý: phải làm gì đầu tiên?

    Dựa trên thông tin lý thuyết ở trên, chúng ta hãy chuyển sang các biện pháp thực tế có thể loại bỏ các vấn đề mới nổi và khắc phục những tình huống đó. Đầu tiên phải làm gì? Nghe có vẻ kỳ lạ, đôi khi chỉ cần thực hiện khởi động lại đơn giản là đủ, cho phép bạn tắt tất cả các thành phần phần mềm của bên thứ ba. Nhưng khi bạn khởi động lại một ứng dụng, tình trạng này có thể lặp lại. Trong trường hợp này, bạn nên kiểm tra ngay trạng thái của trình điều khiển bằng Trình quản lý thiết bị. Rất có thể xung đột giữa các bộ phận phần mềm và phần cứng chính xác là do chúng gây ra.

    Nếu có thể, hãy cài đặt phần mềm điều khiển cho các thiết bị có vấn đề, có thể được đánh dấu bằng hình tam giác màu vàng có dấu chấm than trong Trình quản lý và cập nhật trình điều khiển cho tất cả các thiết bị khác bằng các tiện ích tự động như Driver Booster.

    Theo dõi tải bằng tiện ích đặc biệt

    Nếu việc cài đặt và cập nhật trình điều khiển không mang lại kết quả như mong muốn, bạn sẽ phải sử dụng các phương pháp khác. Than ôi, không có công cụ nào như vậy trong bộ công cụ của hệ thống Windows.

    Do đó, nếu nhận thấy rằng các ngắt hệ thống đang tải tài nguyên, hầu hết các chuyên gia khuyên bạn nên sử dụng một chương trình nhỏ có tên là Trình kiểm tra độ trễ DPC, chương trình này được trình bày ở dạng di động và không yêu cầu cài đặt trên PC. Trong đó, điều đầu tiên bạn cần làm là kích hoạt tính năng quét, sau đó kết quả quét sẽ đưa ra các khuyến nghị để khắc phục sự cố. Tuy nhiên, hầu hết chúng thường chỉ liên quan đến việc hoàn thành một số quy trình tương ứng với cả chương trình và thiết bị hiện đang được sử dụng hoặc sẽ được đưa ra khuyến nghị liên hệ với “Trình quản lý thiết bị”. Nhưng đây là những gì chúng ta cần sử dụng, để tiện ích chẩn đoán hoạt động như một loại phương tiện thay đổi theo dõi tải. Đừng nhầm lẫn các tải hiển thị trong chương trình này với các tải hiển thị trong Trình quản lý tác vụ.

    Vô hiệu hóa các thành phần trong Trình quản lý thiết bị

    Đối với phần quản lý thiết bị này, bản chất của việc khắc phục sự cố là ngắt kết nối tuần tự các thiết bị được cài đặt trong hệ thống và sau đó kiểm tra tải bằng tiện ích nêu trên.

    Xin lưu ý rằng nghiêm cấm vô hiệu hóa thiết bị được trình bày trong phần “Máy tính”, “Bộ xử lý” và “Thiết bị hệ thống”, vì những hành động như vậy có thể dẫn đến việc tắt và khởi động lại máy tính trái phép. Điều tốt là toàn bộ hệ điều hành cũng sẽ bị lỗi.

    Đối với các thành phần còn lại, trước đó đã bật hiển thị các thiết bị ẩn trong menu xem, mỗi thành phần phải bị tắt thông qua menu RMB và sau đó chẩn đoán sẽ được kích hoạt lại trong chương trình theo dõi tải. Khi kết quả kiểm tra cho thấy sau khi tắt thiết bị, tải sẽ giảm xuống mức bình thường và rõ ràng thành phần cụ thể này bị lỗi. Nếu cài đặt lại trình điều khiển không giúp ích, thiết bị sẽ phải được thay thế.

    Phải làm gì nếu vấn đề tải vẫn tiếp diễn?

    Nhưng nó là gì? Các ngắt hệ thống vẫn làm tăng tải cho bộ xử lý. Điều gì khác có thể ảnh hưởng đến sự xuất hiện của tình huống như vậy? Vì lý do nào đó (và điều này là đúng), trong hầu hết các trường hợp, nguyên nhân cốt lõi của hành vi hệ thống này được cho là do sự cố với thiết bị âm thanh tích hợp hoặc lỗi thời trên bo mạch chủ, trong đó có liên quan đến hiệu ứng âm thanh được cải thiện.

    Ngoài ra, trong cài đặt âm thanh bằng Windows, hãy tắt mục này, thao tác này sẽ tự động tắt tất cả các hiệu ứng đã cài đặt. Xin lưu ý rằng chúng thuộc loại phần mềm, không phải loại phần cứng nên việc tắt thiết bị chính có thể không có tác dụng gì.

    Sự cố với hệ thống I/O chính

    Cuối cùng, nhiều chuyên gia không loại trừ khả năng xảy ra sự cố trong hoạt động của hệ thống BIOS/UEFI chính, có thể liên quan đến sự lỗi thời của phần sụn gốc. Trong trường hợp này, thiết bị mới và hiện đại hơn có thể không được phát hiện chính xác. Như đã rõ, giải pháp sẽ là tải xuống và cài đặt bản cập nhật chương trình cơ sở. Tuy nhiên, nếu bạn có thể chạy trực tiếp các quy trình như vậy cho UEFI trong hệ điều hành đang chạy, thì bạn nên cực kỳ cẩn thận với các thử nghiệm trong BIOS. Phần sụn không phù hợp hoặc cài đặt không đúng có thể khiến toàn bộ hệ thống máy tính ngừng hoạt động.

    Bản tóm tắt ngắn gọn

    Tóm lại đó là tất cả về các lệnh gọi hệ thống ngắt. Dựa trên những điều đã nói ở trên, nên giải quyết các vấn đề mới phát sinh bằng cách sử dụng chương trình chẩn đoán được chỉ định bằng cách tắt thiết bị liên tục. Nếu cần thiết, các thành phần bị lỗi sẽ phải được thay thế. Là một công cụ bổ sung có thể được sử dụng để xác định các vấn đề với thanh RAM, bạn nên sử dụng tiện ích Memtest86+, nhưng nếu không có kiến ​​​​thức cần thiết thì tiện ích này sẽ không có tác dụng.