irq kesme numarası ne için kullanılır? Sistem kesintileri işlemciyi yükler

Çatışma, birkaç nesnenin aynı anda yalnızca bir tanesine yönelik bir kaynağa erişmeye çalıştığı bir durumdur. Bir kesme çakışması, birden çok aygıt bir istek sinyali göndermek için aynı kesme hattını kullandığında ve eşzamanlı istekleri işlemek için bir mekanizma olmadığında meydana gelir. Kontrolü alan sürücü, isteği gönderen cihazla çalışmıyorsa, bir arıza meydana gelir veya cihazlardan biri çalışmaz.

Soru ortaya çıkıyor: birkaç cihaz aynı kesme hattını kullanabilir mi, yoksa prensipte imkansız mı? Sonuçta, sürücü talebin tam olarak kimden geldiğini belirleyebiliyorsa, diğerlerini yok sayarak yalnızca "kendi" cihazından gelen sinyallere yanıt verecektir. Ancak bu bir şekilde önceden kararlaştırılmalıdır, aksi takdirde çatışma kaçınılmazdır.

Yerel PCI veri yolu, kesinti paylaşımı düşünülerek tasarlanmıştır. Her PCI aygıtı, diğer PCI aygıtlarıyla aynı kesme hattı üzerinde doğru şekilde çalışmalıdır. Bu, şu şekilde yapılır: kesme hattında bir sinyalin varlığı, kenar tarafından değil, yani. voltaj seviyesindeki bir değişiklik, ancak belirli bir voltajın varlığı gerçeğiyle. Birkaç cihaz, hattaki voltajı bir kerede değiştirebilir ve adeta servis kuyruğunda olabilir.

Bu nedenle, aynı IRQ'nun birkaç PCI aygıtı tarafından paylaşılması, tanım gereği bir çelişki oluşturmaz (Şek.). Ancak bazen sorunlar ortaya çıkıyor. İlk olarak, tüm PCI aygıtları diğerleriyle aynı kesme hattında düzgün çalışmaz. İkincisi, bazen sürücüler, diğer sürücülere müdahale ederek, sinyal kaynağını doğru bir şekilde belirleyemedikleri için hatalara sahiptir. Üçüncüsü, tüm aygıtlar PCI veri yolunda çalışmaz; örneğin, COM / LPT bağlantı noktası denetleyicilerini içeren ISA cihazları, kesintileri başkalarıyla paylaşamaz.

Pirinç. Win2000 Aygıt Yöneticisi IRQ Haritası - IO PIC Intel 440BX Chipset

Pirinç. Win2000 IRQ MAP - IO APIC - KT266a Chipset Üzerinden

Sonuç olarak, bilgisayar sık ​​sık donmaya başladığında, herhangi bir işlevi yerine getirmeyi reddettiğinde veya hatta basitçe sözde düştüğünde durumlar mümkündür " Mavi ekranölümün".

Apic (Gelişmiş Programlanabilir Kesme Denetleyicisi)

Yukarıda gösterildiği gibi, kesme hattı bir bilgisayar için çok kıt bir kaynaktır. Ancak bilgisayar endüstrisinin gelişmesiyle birlikte bilgisayardaki çeşitli harici cihazların sayısı sürekli artmaktadır. Örneğin, bir anakartta 5-6 PCI yuvası, AGP yuvası, yerleşik IDE denetleyicisi, yerleşik SCSI denetleyicisi, yerleşik 1/2 bağlantı noktalı ağ bağdaştırıcısı vb. olabilir. Ve tüm bu aygıtların kesintiye ihtiyacı vardır. 16 IRQ hattı yavaş yavaş eksikti.

APIC 16 yerine 24 donanım kesintisi kullanmanıza izin veren bir kesme denetleyicisidir. 1982'den beri değişmeyen 16 donanım kesintisi sınırı, kişisel bir bilgisayara ek aygıtların kurulumunu engelledi. 2001'in sonunda APIC'li ilk anakartlar ortaya çıktı.

Pirinç. Çok işlemcili bir ortamda kesinti sistemi.

Önceki açıklama, tek işlemcili sistemler için tasarlanmış PIC'ler içindi. Sistem iki veya daha fazla işlemci içeriyorsa, bu yaklaşıma artık izin verilmez ve daha karmaşık PIC'ler gerekir.

Her şey modern işlemciler x86, yerel APIC'yi içerir. Her yerel APIC'nin 32 bitlik kayıtları, bir dahili saati, bir yerel zamanlayıcısı ve yerel APIC kesintileri için ayrılmış iki ek IRQ satırı, LINT0 ve LINT1 vardır. Tüm yerel APIC'ler harici bir G/Ç APIC'sine bağlıdır.

I/O APIC, 24 IRQ hattı seti, 24 girişli kesme yönlendirme tablosu, programlanabilir kayıtlar ve APIC veriyolunda mesaj göndermek ve almak için bir mesaj bloğu içerir. 8259A'nın IRQ pinlerinden farklı olarak, kesme önceliği pin numarasına bağlı değildir.

Kesme yönlendirme tablosundaki her giriş, kesme vektörünü ve önceliğini, kesmeyi işleyecek işlemciyi ve bu işlemcinin nasıl seçileceğini gösterecek şekilde ayrı ayrı programlanabilir. Kesinti yönlendirme tablosundaki bilgiler, her bir harici sinyali APIC veri yolu üzerinden bir veya daha fazla yerel APIC'ye yönelik bir mesaja çevirmek için kullanılır.

Statik dağıtım

IRQ sinyali, uygun kesme yeniden yönlendirme tablosu girişinde listelenen yerel APIC'lere teslim edilir. Kesinti, belirli bir CPU'ya, birden çok CPU'ya veya tüm CPU'lara teslim edilir.

Dinamik ayırma

IRQ sinyali, işlemi en düşük önceliğe sahip olarak yürüten işlemcinin yerel APIC'sine iletilir.

Her yerel APIC, mevcut işlemin önceliğini hesaplamak için kullanılan programlanabilir bir iş önceliği kaydına sahiptir. Intel, bu kaydın her işlem anahtarında işletim sistemi çekirdeği tarafından değiştirilmesini bekler.

Kesintileri işlemciler arasında dağıtmaya ek olarak, çoklu APIC sistemi, CPU'nun işlemciler arası kesintiler oluşturmasına izin verir. Bir CPU başka bir CPU'ya bir kesme göndermek istediğinde, kesme vektörünü ve hedef yerel APIC kimliğini yerel APIC'sinin Kesme Komut Kaydı'nda (ICR) saklar. Mesaj daha sonra APIC veri yolu üzerinden CPU'suna uygun kesmeyi veren hedef yerel APIC'ye gönderilir.

Şu anda birçok tek işlemcili sistem, iki şekilde yapılandırılabilen bir I/O APIC yongası içerir:

1. CPU'ya bağlı standart bir 8259A PIC olarak. Yerel APIC devre dışı bırakılır ve iki satır LINT0 ve LINT1 INTR ve NMI pinleri olarak yapılandırılır.

2. Standart bir harici G/Ç APIC'si olarak. Yerel APIC etkinleştirilir ve tüm harici kesmeler I/O APIC üzerinden alınır.

  • Alieva Elena Viktorovna, Öğrenci
  • Ufa Devlet Havacılık Teknik Üniversitesi
  • KESİNTİ DENETLEYİCİ
  • KONTROLÖR
  • DONANIM KESİNTİSİ
  • KESMEK

Kesinti, donanım veya programın çalışmasından kaynaklanan bazı planlı veya plansız eylemleri gerçekleştirmek için ana hesaplama sürecinin geçici olarak kesintiye uğraması anlamına gelir. Kesinti mekanizması donanım düzeyinde desteklenir. Donanım kesintileri, mikroişlemcinin bazı cihazlardan (klavye, sistem saati, klavye, HDD vb.), bu kesintiler meydana gelme zamanına göre eşzamansızdır, yani. rastgele zamanlarda meydana gelir. Kesinti denetleyicisi, gelen hizmet isteklerini işlemek ve tahkim etmek için tasarlanmıştır. Merkezi işlem birimiçevresel cihazlardan. Kesintilerin belirli bir önceliği vardır, bu da kesme denetleyicisinin aşağıdakileri tercih etmesine izin verir. şu an bir cihaza zaman, başka bir cihaza değil. Modern bir bilgisayarda, kesme oluşturan 16'ya kadar harici ve çevresel aygıt vardır.

  • Bir üretim işletmesinin deposundaki belge akışının otomasyonu
  • Çağrılar-teknolojiler, özellikler, uygulama ve verimlilik
  • İşletme sözleşmelerinin desteklenmesi ve sonuçlandırılması için hukuk departmanının bilgi sistemi modelinin geliştirilmesi

Tanıtım

Kesinti, donanım veya programın çalışmasından kaynaklanan bazı planlı veya plansız eylemleri gerçekleştirmek için ana hesaplama sürecinin geçici olarak kesintiye uğraması anlamına gelir. Onlar. mikroişlemciyi geçici olarak başka bir programı yürütmek üzere değiştiren ve ardından kesintiye uğrayan programa geri dönen bir işlemdir. Klavyede bir tuşa basarak, tuşu tanıyan, kodunu başka bir program tarafından okunacağı klavye arabelleğine koyan programa anında bir çağrı başlatırız. Onlar. mikroişlemci yürütmeyi bir süreliğine keser mevcut program ve kesme işleyicisi olarak adlandırılan kesme işleyicisine geçer. Kesme işleyicisi işini tamamladıktan sonra, kesintiye uğrayan program, askıya alındığı noktadan yürütmeye devam edecektir. Kesme işleyicisinin adresi, kesme vektör tablosundan hesaplanır.

Kesinti mekanizması donanım düzeyinde desteklenir. Kaynağa bağlı olarak, kesintiler şu şekilde ayrılır:

  • donanım- mikroişlemcinin bazı cihazlardan (klavye, sistem saati, klavye, sabit disk, vb.) gelen fiziksel bir sinyale tepkisi olarak ortaya çıkar, bu kesintiler meydana gelme zamanında eşzamansızdır, yani. rastgele zamanlarda meydana gelir;
  • programlı- programdan (int) karşılık gelen komutun yardımıyla yapay olarak çağrılır, işletim sisteminin bazı eylemlerini gerçekleştirmesi amaçlanır, senkronize edilir;
  • istisnalar- belirli bir program komutunun yürütülmesi sırasında mikroişlemcinin içinde ortaya çıkan standart olmayan bir duruma mikroişlemcinin tepkisidir (sıfıra bölme, TF bayrağı (iz) ile kesme).

Kesinti sistemi donanımı

Bir kesme sistemi, kesme mekanizmasını uygulayan bir yazılım ve donanım koleksiyonudur.

Kesinti sistemi donanımı şunları içerir:

  • mikroişlemci çıkışları - üzerlerinde, mikroişlemciye bazı harici aygıtların "dikkat istediğini" (INTR) veya bazı olayların veya katastrofik hatanın (NMI) acil olarak işlenmesi gerektiğini bildiren sinyaller üretilir.
  • INTR - kesme isteği giriş sinyali için pin,
  • NMI - maskelenemeyen kesinti giriş sinyali için pin
  • INTA - kesme sinyalinin mikroişlemci tarafından alındığının onayının çıkış sinyali için çıkış (bu sinyal, 8259A denetleyici mikro devresinin aynı adlı girişine beslenir;
  • 8259A programlanabilir kesinti kontrolörü (sekiz farklı harici cihazdan gelen kesinti sinyallerini sabitlemek için tasarlanmıştır; bir mikro devre şeklinde yapılır; genellikle iki seri bağlı mikro devre kullanılır, bu nedenle sayı olası kaynaklar 15'e kadar harici kesme artı bir maskelenemez kesme; kesme vektör numarasını oluşturan ve veri yolunu veren kişidir);
  • harici cihazlar (zamanlayıcı, klavye, manyetik diskler vesaire.)

kesinti işleme

Bir kesme, hem donanımda hem de donanımda meydana gelen bir dizi olayı tetikler. yazılım... İncirde. 1, bu olayların tipik bir sırasını gösterir.

G/Ç cihazı bittiğinde aşağıdakiler gerçekleşir:

  • Cihaz, işlemciye bir kesme sinyali gönderir.
  • Bir kesmeye yanıt vermeden önce, işlemci mevcut komutun yürütülmesini tamamlamalıdır (bkz. Şekil 1).
  • İşlemci bir kesinti olup olmadığını kontrol eder, bunu algılar ve bu kesmeyi gönderen cihaza başarılı bir alım sinyali bildirerek gönderir. Bu sinyal, cihazın kesme sinyalini temizlemesini sağlar.
Şekil 1. Program Zamanlaması: Yavaş G/Ç

Şimdi işlemcinin, kontrolü kesme işleyicisine aktarmaya hazırlanması gerekiyor. Önce hepsini kaydetmelisin önemli bilgi, böylece daha sonra mevcut programın duraklatıldığı yere dönebilirsiniz. Minimum gerekli bilgi, program durum kelimesi ve program sayacında bulunan bir sonraki yürütülen komutun adresidir. Bu veriler sistem kontrol yığınına gönderilir.

Şekil 2. Basit bir kesmeyi işleme

Ayrıca, bu kesmeyi işlemekten sorumlu olan kesme işleyicisinin girişinin adresi, işlemcinin program sayacına yüklenir. Bilgisayarın mimarisine ve işletim sisteminin aygıtına bağlı olarak, tüm kesmeleri işlemek için tek bir program olabilir veya her aygıt ve her bir kesme türü için kendi işleme programı olabilir. Kesintileri işlemek için birden fazla program varsa, işlemci hangisini arayacağını belirlemelidir. Bu bilgi orijinal kesme sinyalinde bulunabilir; aksi takdirde, gerekli bilgiyi elde etmek için işlemcinin, kesmeyi hangisinin gönderdiğini belirlemek için sırayla tüm cihazları sorgulaması gerekir.

Program sayacına yeni bir değer yüklenir yüklenmez, işlemci onu bellekten almaya başlayarak bir sonraki komut döngüsüne geçer. Komut, sayısı program sayacının içeriği tarafından belirlenen konumdan alındığından, kontrol kesme rutinine geçer. Bu programın yürütülmesi aşağıdaki işlemleri gerektirir.

Program sayacının içeriği ve kesintiye uğrayan programın durum kelimesi sistem yığınında zaten depolanmıştır. Ancak, yürütülebilir programın durumuna ilişkin tüm bilgiler bu değildir. Örneğin, kesme işleyicisi tarafından bu kayıtlara ihtiyaç duyulabileceğinden, işlemci kayıtlarının içeriğini kaydetmeniz gerekir. Bu nedenle, programın durumuyla ilgili tüm bilgileri kaydetmek gerekir. Tipik olarak, bir kesme işleyicisi, tüm yazmaçların içeriğini yığına yazarak başlar. Saklanması gereken diğer bilgiler Bölüm 3, "Süreçleri Tanımlama ve Kontrol Etme"de tartışılmaktadır. İncirde. N hücresinden bir talimat yürütüldükten sonra kullanıcı programının kesintiye uğradığı basit bir örnek gösterilmektedir. Tüm kayıtların içeriği ve bir sonraki talimatın adresi (N + 1), toplamda M kelimesini oluşturur, yığının üzerine itilir. Yığın işaretçisi daha sonra yığının yeni tepesini gösterecek şekilde güncellenir. Program sayacı da kesme rutininin başladığını gösterecek şekilde güncellenir.

Kesme işleyicisi artık çalışmasına başlayabilir. Kesinti işleme, G/Ç işlemleri veya kesintiyi tetikleyen diğer olaylarla ilgili durum bilgilerinin kontrol edilmesini içerir. Bu, I/O cihazlarına ek talimatlar veya bildirim mesajları göndermeyi de içerebilir.

Kesinti işlemenin tamamlanmasından sonra, daha önce saklanan değerler yığından çıkarılır, bunlar tekrar kayıtlara konur, böylece kesintiden önceki durumlarına devam edilir.

Son adım, program durum kelimesini ve program sayacının içeriğini yığından geri yüklemektir. Sonuç olarak, kesintiye uğrayan programın komutu daha sonra yürütülecektir.

Kesinti, programdan çağrılan bir alt yordam olmadığı için, tam bir kurtarma için kesintiye uğrayan programın tüm durum bilgilerinin tutulması önemlidir. Ancak, kullanıcı programında herhangi bir zamanda ve herhangi bir yerde bir kesinti meydana gelebilir. Bu olay tahmin edilemez.

Kesinti denetleyicisi

Kesinti denetleyicisi, çevresel cihazlardan merkezi işlemciye gelen hizmet taleplerini işlemek ve hakemlik etmek için tasarlanmıştır. Benzetme yoluyla, kesme denetleyicisinin işlevi, bazı patronların sekreteriyle karşılaştırılabilir. Sekreter, patronun verdiği önceliklere ve ziyaretçinin durumuna göre hangi ziyaretçilerin önce patrona kabul edileceğine ve daha sonra kimlerin kabul edileceğine karar vermelidir. Aynı şekilde bir bilgisayar sisteminde, birkaç çevresel aygıtın bir kesme sinyali veya bir kesme isteği göndermesi mümkündür. Bilgisayar literatüründe bu sinyale IRQ (Kesme Talebi) denir.

Yukarıda bahsedildiği gibi, kesintilerin belirli bir önceliği vardır, bu da kesme denetleyicilerinin belirli bir zamanda bir cihazı diğerine tercih etmelerine izin verir. Modern bir bilgisayarda 16'ya kadar harici ve çevresel aygıtlar kesintiler üretiyor. Bu cihazlar:
–IRQ 0, sistem zamanlayıcısı; –IRQ 1, klavye; –IRQ 2, kademeli olarak bağlanan cihazları sorgulamak için kullanılır; –IRQ 8, gerçek zamanlı saat; –IRQ 9, saklıdır; –IRQ 10, saklıdır; –IRQ 11, saklıdır; –IRQ 12, ps / 2 – fare; –IRQ 13, yardımcı işlemci; –IRQ 14, sabit disk denetleyicisi; –IRQ 15, saklıdır; –IRQ 3, COM2, COM4 bağlantı noktaları; –IRQ 4, COM1, COM3 bağlantı noktaları; –IRQ 5, bağlantı noktası LPT2; –IRQ 6, disket sürücü denetleyicisi; –IRQ 7, LPT1 bağlantı noktası, yazıcı.

Burada sinyaller azalan öncelik sırasına göre listelenir. IRQ 2'den sonra IRQ 8'in geldiğini görebilirsiniz. Gerçek şu ki, bir zamanlar kesme denetleyicisi iki mikro devreden oluşuyordu, biri diğerine bağlıydı. Bu ikinci mikro devre, IRQ 2 hattına bağlanarak bir kaskad oluşturur. IRQ8 – IRQ 15 hatlarına hizmet eder. Ardından ilk mikro devrenin hatları gelir.

Kesinti denetleyicisi işlemi

Kesinti kontrolörleriçip tabanlı kabul edilen Intel 8259A, 386 serisine kadar işlemcilere sahip çok eski bilgisayarlarda kullanılıyordu. Bu bilgisayarlarda genellikle birbiri ardına, yani kademeli olarak bağlı 2 8259A yongası vardı. Kesinti talep hattı aracılığıyla doğrudan işlemciye bağlanan mikro devrelerden biri ana veya ana devredir. Master'a benzer pinlerle bağlanan geri kalanına slave denir.


Şekil 3. Kesinti denetleyicilerinin bağlantı şeması ve merkezi işlemci ile etkileşimleri

Şekil 3, kesme denetleyicilerinin bağlantı şemasını ve bunların merkezi işlemci ile etkileşimini göstermektedir. Çevresel aygıtlardan veya bağımlı denetleyicilerden gelen kesme sinyalleri, ana denetleyicinin IR0 – IR7 girişlerine gönderilir. Ana denetleyicinin dahili mantığı, gelen istekleri öncelik açısından işler. Cihaz talebinin önceliği yeterliyse, işlemcinin INTR girişine beslenen denetleyicinin INT çıkışında bir sinyal üretilir. Aksi takdirde, istek engellenir.

İşlemci kesintilere izin veriyorsa, mevcut komutun yürütülmesini tamamladıktan sonra, INTA hattında bağımlı denetleyiciyi gelen yeni kesme isteklerine ve ayrıca denetleyicinin dahili kayıtlarından gelen bilgilere karşı bağışıklık kazandıran bir sinyal dizisi üretir. işlemcinin kesme türünü tanıdığı denetleyicinin dahili kayıtlarından veri hattına çıktıdır.

İşlemci, kesme iznini veri yolu denetleyicisi aracılığıyla kesme denetleyicisine aktarır. RD sinyali, kesme denetleyicisinin dahili kayıtların içeriğini veri yoluna yerleştirmesi için tasarlanmıştır. WR sinyalinde, kesme denetleyicisi, aksine, aynı adlı veri yolundan veri alır ve bunu dahili kayıtlara yazar. Buna göre, bu, kesme denetleyicisinin çalışma modunu etkiler.

CS girişi adres veriyoluna bağlanır ve bu sinyal belirli bir kesme kontrolörünü tanımlamak için kullanılır. A0 girişi, G / Ç alanındaki kesme denetleyici bağlantı noktasına işaret eder.

IR0 – IR7 girişleri, çevresel aygıtlardan ve bağımlı denetleyicilerden gelen kesme isteklerini almak için tasarlanmıştır.

CAS0 – CAS2 çıkışları, belirli bir bağımlı denetleyiciyi tanımlamak için tasarlanmıştır.

Makale, donanım kesintilerini ve cihaz, işlevler, kesme denetleyicisinin çalışması. Bu kontrolör PC uyumlu ilk bilgisayarlarda kesintiler ortaya çıktı. O zamandan beri, bazı noktalar kalmasına rağmen, hem işlemciler hem de bilgisayarın kendisi çok değişti. Bu nedenle, daha net hale getirmek için 8295A kesme denetleyicisinin organizasyonu düşünülmüştür.

Yukarıdaki şema, yalnızca bağımlı ve ana kesme denetleyicilerine değil, aynı zamanda diğer bağımlı aygıtlara da gelen sinyalleri göstermektedir. Ancak, bilgisayarınızda veya dizüstü bilgisayarınızda aslında yukarıda belirtildiği gibi 2 kesme denetleyicisi vardır: ana ve bağımlı. Ama kendin yaratabilirsin bilgisayar sistemleri böylece 64 adede kadar bağımlı kesme denetleyicisi kullanılır.

Modern bilgisayarlarda uzun süre kesme denetleyici işlevleri 8259A mikro devreleri tarafından değil, güney köprüsü tarafından gerçekleştirilir. Ancak, tüm programlar ve cihazlar için her şey aynı kalır. Ayrıca, kesme denetleyicisi programlanabilir ve dahili kayıtlara ve bağlantı noktalarına 8259A denetleyicisi ile aynı şekilde erişilmelidir.

Çözüm

Bu yazıda, kesmeler, yani donanım kesme işleme ve kesme işleme ilkesi ele alınmıştır. Ayrıca kesinti kontrolörleri ve çalışma prensipleri olarak kabul edilir.

Kesinti, donanım veya programın çalışmasından kaynaklanan bazı planlı veya plansız eylemleri gerçekleştirmek için ana hesaplama sürecinin geçici olarak kesintiye uğraması anlamına gelir. Kesinti mekanizması donanım düzeyinde desteklenir. Donanım kesintileri, bir mikroişlemcinin bir aygıttan (klavye, sistem saati, klavye, sabit disk, vb.) rastgele zamanlarda meydana gelir.

Kesinti denetleyicisiçevresel cihazlardan merkezi işlemciye gelen hizmet taleplerini işlemek ve tahkim etmek için tasarlanmıştır. Kesintilerin belirli bir önceliği vardır, bu da kesme denetleyicisi belirli bir zamanda bir cihazı diğerine tercih etme. Modern bir bilgisayarda, kesme oluşturan 16'ya kadar harici ve çevresel aygıt vardır.

bibliyografya

  1. Ders. Kesintiler. E-posta Kaynak. http://hromatron.narod.ru/_lekcii/prerivania_lekcia_g2013.htm
  2. Sistem Kesintileri | Donanım kesintisi | Kesinti işleme http://life-prog.ru/view_os.php?id=16
  3. Kesinti denetleyicisi. E-posta Kaynak http://sdelaycomputersam.ru/Controller_irq.php,
  4. Kesintiler. Kesinti denetleyicisi. Cihaz, fonksiyonlar, iş. E-posta Kaynak http://sdelaycomputersam.ru/Controller_irq.php
  5. Intel 8259A kesinti denetleyicisinin yapısı ve başlatılması E-kaynağı https://dev64.wordpress.com/2012/05/30/8259-programming/
Montaj veya planlı modernizasyondan sonra bilgisayar ilk kez başlatıldığında ve istikrarlı ve sorunsuz çalıştığında iyidir. Beklenmeyen sorunlar ortaya çıkarsa çok daha kötüdür - kendiliğinden yeniden başlatmalar ve donmalar, program çökmeleri, cihazların çalışmaması veya "görünmezliği" vb. Bu durumda genellikle akla gelen ilk sebep bir kesinti çakışmasıdır. Bu olgunun doğasını iyi biliyor muyuz, onunla savaşmaya yeterince hazır mıyız?

IRQ nedir
Kesintiler, sistemin ortaya çıkan olaylara tepkisinin temel mekanizmasıdır. Genellikle IRQ (Interrupt ReQuest) olarak adlandırılan donanım kesmeleri, fiziksel sinyaller, bunun yardımıyla cihaz denetleyicisi işlemciyi bazı istekleri işleme ihtiyacı hakkında bilgilendirir. Geleneksel olarak, kesme işleme şeması şöyle görünür:
1) işlemci bir kesme sinyali ve numarasını alır;
2) verilen sayı ile kesmeyi işlemekten sorumlu programın adresini bulmak için özel bir tablo kullanılır - kesme işleyicisi;
3) işlemci askıya alınır mevcut iş ve işleyicinin yürütülmesine geçer (genel durumda, bu bir tür sürücüdür);
4) sürücü aygıta erişim kazanır ve kesintinin nedenini kontrol eder;
5) istenen eylemler başlatılır - başlatma, cihaz yapılandırması, veri alışverişi vb.
6) sürücü çıkar ve işlemci kesintiye uğrayan göreve geri döner.
Açıktır ki, kesme mekanizmasının doğru çalışması için iki koşulun karşılanması gerekir: birincisi, istek sinyalinin işlemciye ulaşması ve ikincisi, işleyici sürücüsünün bu sinyale doğru şekilde yanıt vermesi gerekir. Bir çakışma durumunda, ikinci koşul karşılanmaz: kesme sinyali gelir, ancak buna verilen tepkinin yanlış olduğu ortaya çıkar, bunun sonucunda (en iyi ihtimalle) çalışmayan bir cihaza sahibiz.

Çatışma
Bir çatışmanın, birkaç nesnenin aynı anda yalnızca bir tanesine yönelik bir kaynağa erişmeye çalıştığı bir durum olduğunu söyleyebiliriz. Bir kesme çekişmesi, birden fazla cihaz bir istek sinyali göndermek için aynı kesme hattını kullandığında ve eşzamanlı istekleri işlemek için bir mekanizma olmadığında meydana gelir. Kontrolü alan sürücü, isteği gönderen cihazla çalışmıyorsa, bir arıza meydana gelir veya cihazlardan biri çalışmaz.
Soru ortaya çıkıyor: birkaç cihaz aynı kesme hattını kullanabilir mi, yoksa prensipte imkansız mı? Sonuçta, sürücü talebin tam olarak kimden geldiğini belirleyebilirse, diğerlerini göz ardı ederek yalnızca "kendi" cihazından gelen sinyallere yanıt verecektir. Ancak bu bir şekilde önceden kararlaştırılmalıdır, aksi takdirde çatışma kaçınılmazdır.
Yerel PCI veri yolu, kesinti paylaşımı düşünülerek tasarlanmıştır. Her PCI aygıtı, diğer PCI aygıtlarıyla aynı kesme hattı üzerinde doğru şekilde çalışmalıdır. Bu, şu şekilde yapılır: kesme hattında bir sinyalin varlığı, kenar tarafından değil, yani. voltaj seviyesindeki bir değişiklik, ancak belirli bir voltajın varlığı gerçeğiyle. Birkaç cihaz, hattaki voltajı bir kerede değiştirebilir ve adeta servis kuyruğunda olabilir.
Bu nedenle, aynı IRQ'yu birden çok PCI aygıtı arasında paylaşmak, tanım gereği bir çelişki değildir. Ancak bazen sorunlar ortaya çıkıyor. İlk olarak, tüm PCI aygıtları diğerleriyle aynı kesme hattında düzgün çalışmaz. İkincisi, bazen sürücüler, diğer sürücülere müdahale ederek, sinyal kaynağını doğru bir şekilde belirleyemedikleri için hatalara sahiptir. Üçüncüsü, tüm aygıtlar PCI veri yolunda çalışmaz; örneğin, COM / LPT bağlantı noktası denetleyicilerini içeren ISA cihazları, kesintileri başkalarıyla paylaşamaz. Çatışmaları nasıl önleyebileceğiniz veya çözebileceğiniz konusunda net olmak için IRQ'ların nasıl yönetildiğini anlamanız gerekir.

Kişisel bir bilgisayarda donanım kesintilerinin organizasyonu
Bildiğin gibi, kişisel bilgisayarlar IBM PC ile başladı. Mimarisi, özel bir denetleyici tarafından kontrol edilen sekiz donanım kesme (IRQ) hattı içeriyordu. Her birine, kesmenin önceliğini ve işleyicisinin adresini (kesme vektörü olarak adlandırılan) belirleyen bir numara verildi. Yeni mimari, IBM PC AT, birinci denetleyicinin kesme hatlarından birine bağlı ikinci bir denetleyicinin kullanıldığı sekiz kesme hattı daha sağladı. Ne yazık ki, bu mimari, IBM'in oluşturduğu platformun gelişimini yönetme yeteneğini kaybetmesinden sonraki son mimariydi, bu nedenle tüm modern bilgisayarlarda hala biri ikinci denetleyici tarafından kullanılan yalnızca on altı kesme var.
IBM PC AT bilgisayarında, aygıtların işlemci ve bellek ile iletişim kurabileceği tek bir veri yolu vardı - ISA. Kesinti hatlarının çoğu standart ISA cihazlarına atanmış, geri kalanı geleceğe ayrılmıştır. Bu gelecek geldiğinde, yeninin evrensel otobüs PCI yalnızca dört ücretsiz kesinti aldı. Bu nedenle, kesintileri paylaşmak (IRQ Paylaşımı) ve sayıların dinamik olarak yeniden tanımlanması (IRQ Yönlendirme veya Haritalama) için akıllı bir mekanizma icat edildi.
PCI aygıt kesme kontrol mekanizmasının özü aşağıdaki gibidir. Genel olarak, PIRQ0, PIRQ1, PIRQ2 ve PIRQ3 olarak adlandırılan dört fiziksel PCI kesme hattı vardır. Kesinti denetleyicisine bağlanırlar. Her PCI aygıtının kendi adına, INT A, INT B, INT C ve INT D olarak adlandırılan dört konektörü var gibi görünüyor. Hatları herhangi bir sırada konektörlere bağlayabilirsiniz. Örneğin, ilk PCI yuvası için aşağıdaki kablolamayı yapabilirsiniz: PIRQ0 - INT A, PIRQ1 - INT B, PIRQ2 - INT C, PIRQ3 - INT D. Ve ikincisi için - farklı bir şekilde: PIRQ0 - INT B , PIRQ1 - INT C, PIRQ2 - INT D, PIRQ3 - INT A. Genellikle aygıt, INT A'ya bağlı yalnızca bir kesme hattı gerektirir. İlk yuvaya takıldığında, aygıt PIRQ0 hattını kullanır ve ikinci yuvada Aynı pin üzerinde PIRQ1 hattı. Böylece farklı slotlardaki cihazlar farklı fiziksel kesme hatları kullanacaklardır. Aralarındaki bir donanım çakışması ortadan kalkacaktır.
Aslında özel bir PCI modifikasyonu olan AGP veri yolu, aynı zamanda PIRQ hatlarından birini kullanır - genellikle PIRQ0.
Modern sistemler için dört hat yeterli değildir, bu nedenle yeni yonga setleri genellikle aynı şekilde farklı kombinasyonlarda PCI yuvalarına ve kartta yerleşik aygıtlara bağlanan sekiz PIRQ hattı kullanır.
PIRQ hatları, kesme denetleyicisine bağlanır. Diğer satırlar gibi bunlara da mantıksal IRQ numaraları atanır. Aynı fiziksel hatta birden fazla cihaz varsa (ve buna izin veriliyorsa), hepsinin aynı IRQ numarası olacaktır. Aygıtlar farklı fiziksel hatlarda olsalar bile aynı IRQ numaralarını alabilirler. Normal sürücüler, PCI veri yolu hala yalnızca bir aygıt tarafından yakalanabildiğinden, performanstan ödün vermeden özgürce çalışmasına izin verecektir. Ana şey, sinyalin hangi cihazdan geldiğini tanımaktır.
Ünlü Tak ve Çalıştır mekanizması sayesinde PIRQ satır numaraları otomatik olarak atanır. Ancak Tak ve Çalıştır ISA cihazları da vardır. Ayrıca otomatik olarak bir IRQ numarası alma yeteneğine de sahiptirler. Ama onların kesme hatları münhasıran onlara aittir ve eğer PIRQ hatlarından biri aynı sayıyı alırsa, çözülemez bir çatışma ortaya çıkacaktır.
Böylece PCI aygıtlarının IRQ çakışması sorunlarından arınmış olması gerektiğini anladık. Tabii ki doğru çalışıyorlarsa ve bu her zaman böyle değildir. Ayrıca, sürücülerin kesinti paylaşımını desteklemesi gerekir. ISA cihazları, kesme hatlarını nasıl paylaşacaklarını bilmiyorlar ve bu nedenle çatışma provokatörleri. Sonuç olarak, çakışmaları ortadan kaldırma sorunu, sayıların doğru tahsisine (sorunların kaynağı ISA aygıtları ve "çarpık" sürücülerdir) veya farklı fiziksel hatlar ("çarpık" PCI denetleyicileri) boyunca ayrılmaya indirgenir.
Sistemde sayıların nasıl tahsis edildiğine ve bu süreci nasıl etkileyebileceğimize bakalım.

Haritayı kes
Dediğim gibi, IRQ numaralarının çoğu zaten standart cihazlar tarafından işgal edilmiş veya daha doğrusu onların kesme hatlarına atanmış durumda. Sıralamaya geçelim:
0 - sistem zamanlayıcısı (numara her zaman meşgul);
1 - tuş takımı (numara her zaman meşgul);
2 - ikinci kesme denetleyicisi (her zaman meşgul);
3 - COM2 bağlantı noktası (devre dışı bırakılabilir ve numara serbest bırakılabilir);
4 - COM1 bağlantı noktası (devre dışı bırakılabilir ve numara serbest bırakılabilir);
5 - LPT2 bağlantı noktası (genellikle numara ücretsizdir);
6 - disket denetleyicisi (devre dışı bırakılabilir ve numara serbest bırakılabilir);
7 - LPT1 bağlantı noktası (EPP veya ECP modunda değilse, numara ücretsizdir);
8 - gerçek zamanlı saat (her zaman meşgul);
9 - ücretsiz;
10 - ücretsiz;
11 - ücretsiz;
12 - PS / 2 fare (böyle bir fare yoksa ücretsiz olabilir);
13 - yardımcı işlemci (her zaman meşgul);
14 ve 15 - kontrolör sabit sürücüler(devre dışı bırakılabilir ve numara boşalır).
Tipik bir sistemde 5, 7, 9-11 sayıları, yani on beşte beşi mevcuttur. Ayrıca, COM2 ve LPT1 bağlantı noktalarını güvenle devre dışı bırakarak boş numara sayısını yediye yükseltebilirsiniz. Ücretsiz, meşgul olmadıkları anlamına gelmez, sadece aralarında ücretsiz karıştırma mümkündür.
Herhangi bir sistemin üç standart PCI aygıtı vardır - ACPI, USB denetleyicileri ve her biri bir numara alacak bir video kartı. Karmaşık bir cihaz (örneğin, ses kartı) birden fazla satır gerektirebilir - INT A, INT B, vb. birbirleriyle çelişmeyecek (sonuçta farklı fiziksel hatlar), ancak diğer cihazlarla - kolayca.
Kesinti numaralarının şu anda nasıl tahsis edildiğini çeşitli şekillerde öğrenebilirsiniz. Bilgisayar önyüklemesinin en başında bir metin yapılandırma tablosu belirir. Hemen ardından, atanmış IRQ numarasına sahip bir PCI aygıt listesi vardır (ekran görüntüsüne bakın). Başka bir yol, Windows 9x'te çalışır. Kontrol panelinde bir "Sistem" simgesi ve çağrılan uygulamada "Aygıtlar" sekmesi vardır. "Bilgisayar" cihazının özelliklerini seçiyoruz ve tüm cihazlar burada IRQ'larını belirterek listelenecek (ekran görüntüsüne bakın).
Windows 2000'de, kesme yönetimine erişimimiz yok, bu nedenle IRQ listesini görüntülemek için standart bilgi yardımcı programını kullanmamız gerekiyor (Denetim Masası / Yönetimsel Araçlar / Bilgisayar Yönetimi / Sistem Bilgileri / Donanım Kaynakları).

BIOS IRQ tahsisi
Sistemde IRQ numaraları fiziksel hatlar arasında iki kez tahsis edilir. Bu ilk kez sistem önyüklemesinde sistem BIOS'u tarafından yapılır. Her Tak ve Çalıştır aygıtına (tüm PCI, modern ISA, tümleşik aygıtlar) veya daha doğrusu kesme hattına on olası sayıdan biri atanır. Yeterli sayı yoksa, birkaç satır ortak bir satır alır. Bunlar PIRQ satırlarıysa, sorun değil - normal sürücüler ve işletim sisteminden gelen destek varsa (bunun için aşağıya bakın), her şey işe yarayacaktır. Ve birkaç ISA cihazı veya PCI ve ISA cihazı aynı numarayı alırsa, çatışma kaçınılmazdır ve o zaman dağıtım sürecine müdahale etmek gerekir.
Her şeyden önce, kullanılmayan tüm ISA aygıtlarını devre dışı bırakmanız gerekir (ISA yuvaları olmayan sistemlerde de bulunurlar) - COM1, COM2 bağlantı noktaları ve bir disket sürücüsü. LPT bağlantı noktasının EPP ve ECP modlarını da devre dışı bırakabilirsiniz, ardından IRQ7 kesmesi kullanılabilir hale gelecektir.
V BIOS kurulumu"PCI / PNP Konfigürasyonu" bölümüne ihtiyacımız var. IRQ numaralarının tahsisini etkilemenin iki temel yolu vardır: belirli bir numarayı engelleyin ve doğrudan bir PIRQ satır numarası atayın.
İlk yöntem tüm BIOS'lar için geçerlidir: "IRQ x tarafından kullanılan:" öğelerinin listesini bulun (içinde yeni BIOS"IRQ Kaynakları" alt menüsünde gizli). Özel olarak ISA cihazlarına atanması gereken bu kesmeler "Eski ISA" olarak ayarlanmalıdır. Böylece PCI aygıtlarına numara atarken bu kesintiler atlanacaktır. Bu, bir ISA aygıtı, her ikisi de çalışmadığı için bir PCI aygıtıyla bir kesintide devam ederse yapılmalıdır. Ardından bu IRQ'nun numarasını bulup BIOS Kurulumunda bloke ediyoruz. PCI aygıtı yeni numara IRQ, ancak ISA aygıtı kalır. Çatışma çözüldü.
IRQ numaralarını kontrol etmenin ikinci, daha uygun yolu doğrudan atamadır. Aynı BIOS Kurulum alt menüsünde, "Slot X IRQ kullan" (diğer adlar: "PIRQx IRQ kullan", "PCI Yuva x önceliği", "INT Pin x IRQ") biçiminde öğeler olabilir.
Onların yardımıyla, dört PIRQ hattının her birine belirli bir numara atanabilir. Bu arada, yeni AwardBIOS 6.00'da tam olarak hangi cihazların (yerleşik olanlar dahil) bu veya bu hattı kullandığını görebilirsiniz. sadece bak Sağ Taraf BIOS Kurulum ekranı: fotoğraf, imleci "Slot 1/5 use IRQ no." öğesinin üzerine nasıl getirdiğimi gösteriyor ve sağda "Display Contr." yazısı belirdi. Yani, ilk PIRQ satırı video kartı tarafından kullanılır. Şimdi "Otomatik" yerine belirli bir numara koyarsam, video kartı bu kesintiye geçecektir.

IRQ numaralarının tahsisi Windows araçları
Kesme numaralarının ikinci kez tahsis edilmesi işletim sistemi... Deneylerimde gösterildiği gibi, Windows "98, BIOS tarafından gerçekleştirilen eylemlere müdahale etmeye başlar" ohm sadece aşırı durumlarda. Normal bir BIOS'unuz varsa burada açıklanan tekniklere gerek yoktur.
IRQ paylaşımının ve dinamik ayırma mekanizmalarının doğru çalışması, Windows'un yonga setini tanımasını gerektirir. anakart ve IRQ Miniport'u indirdim. Windows ne kadar yeni sürüme sahipse, kendi miniportunu (PCIIMP.PCI) daha fazla yonga seti destekler. Ancak, güvenli oynamak ve en yeni yonga seti sürücülerini yüklemek her zaman en iyisidir.
Windows 98'de, IRQ tahsis sistemi standart aygıt yöneticisi tarafından kontrol edilir. Listede sistem cihazları PCI veri yolunu bulmanız gerekir. Özelliklerinde özel bir sekme var (ekran görüntüsüne bakın). Her şey doğru şekilde yapılandırılırsa, miniport burada ("başarıyla yüklendi") belirtilir ve kontrol PCI veri yolu(Direksiyon) etkinleştirilecektir. Bu nedenle, Windows "98, kesme sayılarının fiziksel hatlar arasındaki dağılımını kontrol etmek için bir araca sahiptir. Ancak BIOS genellikle bununla iyi başa çıktığı için, bu mekanizma dahil değildir.
Ama bazen sadece gerekli. Daha önce de söylediğim gibi, aynı mantıksal kesmeyi kullanıyorlarsa PCI aygıtları çakışmamalıdır. Başka bir şey, COM ve LPT bağlantı noktalarını da içeren ISA cihazlarıdır. Aygıt Tak ve Çalıştır özelliğinde değilse, BIOS meşgul olduğu kesmeyi PCI aygıtına vererek bunu fark etmeyebilir. O zaman kesmeyi rezerve etmeniz gerekir. Bu, dağıtıcıda yapılır Windows cihazları"98:" Bilgisayar "cihazını seçin, özelliklerini çağırın, ikinci sekmeye geçin. O zaman her şey açıktır.
Yedeklemeye ek olarak, cihaz için doğrudan kesme numarasını ayarlayabilirsiniz. Bunu yapmak için, özelliklerinde "Kaynaklar" sekmesini bulmanız, devre dışı bırakmanız gerekir. otomatik ayar ve atanan kesme numarasını değiştirmeyi deneyin.
Ne yazık ki, bu her zaman işe yaramaz.
Windows 2000 özel bir sistemdir. eğer varsa modern bilgisayar o zaman muhtemelen ACPI yapılandırma arayüzünü destekler. Bu durumda, Windows 2000, BIOS eylemlerini tümüyle yok sayar ve tüm PCI aygıtlarını tek bir mantıksal kesmede "askıya alır". Genel olarak bu iyi çalışır (ISA olmadığında), ancak bazen sorunlar olur. Kesinti numaralarını değiştirebilmek için, HAL çekirdeğini değiştirmeniz veya BIOS'ta ACPI devre dışı bırakılmış olarak Windows 2000'i yeniden yüklemeniz gerekir. Çekirdeğin değiştirilmesi şu şekilde yapılır: aygıt yöneticisinde "Bilgisayar" / "ACPI'li Bilgisayar" öğesini seçin, sürücüyü " olarak değiştirin standart bilgisayar", yeniden başlatın. Bu işe yaramazsa, Windows 2000'i yeniden yüklemeniz gerekir.
Umarım yukarıdaki bilgiler donanım hatalarına karşı mücadelenizde size yardımcı olur. Ve unutmayın: ortaya çıkan sorunların çoğu, düşük seviye bilgisayar okuryazarlığı bilgisayarın ana bilgisayarı. Bu nedenle, her zaman kendi kendine eğitim için çaba göstermelisiniz, o zaman daha az sorun olacak ve ortaya çıkanlar çözümsüz görünmeyecek.

Muhtemelen en yaygın kesinti çakışması (IRQ), modern cihazlarda bulunan tümleşik COM2 seri bağlantı noktasıyla ilişkilidir. anakartlar, ve bir dahili modem (WinModem olarak da adlandırılan bir yazılım modemi değil, tam teşekküllü bir dahili PC modemi anlamına gelir). Gerçek şu ki, tam teşekküllü bir dahili modem zaten belirli bir bağlantı noktasını destekliyor; varsayılan olarak, bu bağlantı noktası COM2'ye atanır ve sistem genellikle ikinci seri bağlantı noktasını da etkinleştirir. Böylece sistem aynı kaynakları kullanan iki özdeş porta (kesmeler ve I/O port adresleri) sahip olur.

Bu sorunun çözümü oldukça basittir: sistem BIOS Kurulumuna girin ve yerleşik COM2 bağlantı noktasını devre dışı bırakın. Ayrıca, nadiren kullanılan COM1 bağlantı noktasını devre dışı bırakmayı da düşünebilirsiniz. Kullanılmayan COMx bağlantı noktalarını devre dışı bırakmak, daha iyi yollar diğer cihazlar için kesmeleri (IRQ'lar) serbest bırakın.

Diğer bir yaygın çatışma ise seri bağlantı noktalarıdır. Standart kesme eşleme tablosunda, IRQ3'ün COM2'ye ve IRQ4'ün COM1'e atandığını fark etmiş olabilirsiniz. Sorun, sisteme ek COM3 ve / veya COM4 bağlantı noktaları eklendiğinde ve bunlara manuel olarak ücretsiz kesintiler atanmadığında ortaya çıkar (varsayılan olarak aynı IRQ3 ve IRQ4'ü kullanırlar).

Bazı bağlantı noktası kartlarının IRQ3 ve IRQ4 dışındaki kesintilerin seçimine izin vermemesi, ek komplikasyonlara neden olur. Sonuç olarak, IRQ3'ü COM4'e ve IRQ4'ü COM3'e atamak, bu kesmeleri de kullanan COM1 ve COM2 ile çakışmaya neden olur: iki bağlantı noktası aynı kesme kontrol kanalını aynı anda kullanamaz. DOS'ta çalışırken, bir seferde yalnızca bir görev gerçekleştirilebildiğinden buna izin verildi, ancak Windows ve OS / 2'de bu tamamen imkansız. Bir bilgisayarda ikiden fazla paralel COM bağlantı noktasının kullanılabilmesi için, 3 ve 4 numaralı kesmelere ek olarak ek kesmelerin kullanımına izin veren bir çoklu bağlantı kartı gereklidir. Kesintilerin paylaşılması, prensip olarak, normalde aynı anda (veya sürekli olarak) çalışmayan cihazlar için kabul edilebilir. Bağlantı noktaları bu cihaz kategorisine girmez. Tarayıcı ve modem için kesmeyi birlikte kullanmak mümkündür, ancak bu durumda aynı anda kullanılırlarsa bir çakışma ortaya çıkacaktır. Neyse ki, daha önce bağlantı noktalarını kullanan çoğu aygıt (fareler, etiket yazıcıları ve harici modemler) şimdi USB bağlantı noktalarına bağlanın, bu nedenle birden çok bağlantı noktasını destekleme ihtiyacı ile ilgili sorunlar var. modern kullanıcılar bilgisayarlar görünmemelidir.

Hâlâ birden çok seri bağlantı noktası kullanmanız gerekiyorsa, en iyi çözümçakışmayan kesintiler ayarlama yeteneği sağlayan veya bir sistem kesintisinin birkaç bağlantı noktası arasında dağıtılmasına izin veren kendi işlemcisini içeren çok bağlantı noktalı bir kartın satın alınması olacaktır. Bazı eski çoklu bağlantı noktalı kartların bir ISA arabirimi vardı, ancak bugün bunların yerini performans avantajları da sunan PCI kartları aldı.

Tabloda belirtilen aygıtlardan bazıları eksikse (örneğin, yerleşik bir fare bağlantı noktası (IRQ12) veya ikinci bir paralel bağlantı noktası (IRQ5)), kesintileri kullanılabilir olarak kabul edilebilir. Örneğin, ikinci paralel bağlantı noktası son derece nadirdir, bu nedenle kendisine atanan IRQ5 kesmesi en sık ses bağdaştırıcı kartı için kullanılır. Benzer şekilde, ikincil IDE denetleyicisi için IRQ15 kesmesi kullanılır. Sistemde ikincil IDE kanalına bağlı herhangi bir disk aygıtı yoksa, BIOS'ta bu denetleyiciyi devre dışı bırakabilir, böylece diğer aygıtlar için başka bir kesme serbest bırakabilirsiniz.

Kesinti ayarlarınızı kontrol etmenin en kolay yolunun Windows Aygıt Yöneticisi'nde olduğuna dikkat edilmelidir. Windows 95b'de HWDIAG programı vardır ve Windows 98 ve üzeri sürümlerde sonraki sürümler- Konsol Sistem Bilgileri. Bu yardımcı programlar, sistemdeki kaynakların kullanımı hakkında ayrıntılı bir rapor almanın yanı sıra yüklü sürücüler aygıtlar ve her aygıt için Windows kayıt defteri girdileri. V Windows sistemleri XP ve Vista için sistem bilgileri Msinfo32 programı tarafından sağlanır.

ISA bağlaçları olmayan modern bir sistemde mümkün olan en yüksek sayıda paylaşılan kesintiyi sağlamak için sistem BIOS'unda aşağıdaki adımları kullanın.

  1. Sistem BIOS'unda kullanılmayan tüm bağlantı noktalarını devre dışı bırakın. Örneğin, seri ve paralel portlar yerine kullanılıyorsa USB bağlantı noktaları, devre dışı bırakın. Sonuç olarak, en fazla üç kesme serbest bırakılabilir.
  2. PCI / PnP aygıtları için kullanılabilir kesmeler listesinde 1. adımda yayınlanan IRQ kesmesini belirtin. Bağlı olarak BIOS sürümü karşılık gelen parametreler PnP / PCI Kaynak Hariç Tutma veya PnP / PCI Yapılandırma bölümünde mevcuttur.
  3. CMOS belleğindeki IRQ yönlendirme tablolarını temizlemek için Yapılandırma Verilerini Sıfırla seçeneğini etkinleştirin.
  4. Değişiklikleri kaydedin ve BIOS kurulum programından çıkın.

Montajdan veya planlı modernizasyondan sonra bilgisayar ilk seferde kararlı ve sorunsuz bir şekilde başlatıldığında ve çalıştığında iyidir. Beklenmeyen sorunlar ortaya çıkarsa çok daha kötüdür - kendiliğinden yeniden başlatmalar ve donmalar, program çökmeleri, cihazların çalışmaması veya "görünmezliği" vb. Bu durumda genellikle akla gelen ilk sebep bir kesinti çakışmasıdır. Bu olgunun doğasını iyi biliyor muyuz, onunla savaşmaya yeterince hazır mıyız?

IRQ nedir


Kesintiler, sistemin ortaya çıkan olaylara tepkisinin temel mekanizmasıdır. Genellikle IRQ'lar (Interrupt ReQuest) olarak adlandırılan donanım kesintileri, işlemciyi bazı istekleri işlemesi için bilgilendirmek için aygıt denetleyicisi tarafından kullanılan fiziksel sinyallerdir. Geleneksel olarak, kesme işleme şeması şöyle görünür:
1) işlemci bir kesme sinyali ve numarasını alır;
2) verilen sayı ile kesmeyi işlemekten sorumlu programın adresini bulmak için özel bir tablo kullanılır - kesme işleyicisi;
3) işlemci mevcut işi askıya alır ve işleyicinin yürütülmesine geçer (genel durumda, bu bir tür sürücüdür);
4) sürücü aygıta erişim kazanır ve kesintinin nedenini kontrol eder;
5) istenen eylemler başlatılır - başlatma, cihaz yapılandırması, veri alışverişi vb.
6) sürücü çıkar ve işlemci kesintiye uğrayan göreve geri döner.
Açıktır ki, kesme mekanizmasının doğru çalışması için iki koşulun karşılanması gerekir: birincisi, istek sinyalinin işlemciye ulaşması ve ikincisi, işleyici sürücüsünün bu sinyale doğru şekilde yanıt vermesi gerekir. Bir çakışma durumunda, ikinci koşul karşılanmaz: kesme sinyali gelir, ancak buna verilen tepkinin yanlış olduğu ortaya çıkar, bunun sonucunda (en iyi ihtimalle) çalışmayan bir cihaza sahibiz.

Çatışma

Bir çatışmanın, birkaç nesnenin aynı anda yalnızca bir tanesine yönelik bir kaynağa erişmeye çalıştığı bir durum olduğunu söyleyebiliriz. Bir kesme çekişmesi, birden fazla cihaz bir istek sinyali göndermek için aynı kesme hattını kullandığında ve eşzamanlı istekleri işlemek için bir mekanizma olmadığında meydana gelir. Kontrolü alan sürücü, isteği gönderen cihazla çalışmıyorsa, bir arıza meydana gelir veya cihazlardan biri çalışmaz.
Soru ortaya çıkıyor: birkaç cihaz aynı kesme hattını kullanabilir mi, yoksa prensipte imkansız mı? Sonuçta, sürücü talebin tam olarak kimden geldiğini belirleyebilirse, diğerlerini göz ardı ederek yalnızca "kendi" cihazından gelen sinyallere yanıt verecektir. Ancak bu bir şekilde önceden kararlaştırılmalıdır, aksi takdirde çatışma kaçınılmazdır.
Yerel PCI veri yolu, kesinti paylaşımı düşünülerek tasarlanmıştır. Her PCI aygıtı, diğer PCI aygıtlarıyla aynı kesme hattı üzerinde doğru şekilde çalışmalıdır. Bu, şu şekilde yapılır: kesme hattında bir sinyalin varlığı, kenar tarafından değil, yani. voltaj seviyesindeki bir değişiklik, ancak belirli bir voltajın varlığı gerçeğiyle. Birkaç cihaz, hattaki voltajı bir kerede değiştirebilir ve adeta servis kuyruğunda olabilir.
Bu nedenle, aynı IRQ'yu birden çok PCI aygıtı arasında paylaşmak, tanım gereği bir çelişki değildir. Ancak bazen sorunlar ortaya çıkıyor. İlk olarak, tüm PCI aygıtları diğerleriyle aynı kesme hattında düzgün çalışmaz. İkincisi, bazen sürücüler, diğer sürücülere müdahale ederek, sinyal kaynağını doğru bir şekilde belirleyemedikleri için hatalara sahiptir. Üçüncüsü, tüm aygıtlar PCI veri yolunda çalışmaz; örneğin, COM / LPT bağlantı noktası denetleyicilerini içeren ISA cihazları, kesintileri başkalarıyla paylaşamaz. Çatışmaları nasıl önleyebileceğiniz veya çözebileceğiniz konusunda net olmak için IRQ'ların nasıl yönetildiğini anlamanız gerekir.

Kişisel bir bilgisayarda donanım kesintilerinin organizasyonu


Bildiğiniz gibi kişisel bilgisayarlar IBM PC ile başladı. Mimarisi, özel bir denetleyici tarafından kontrol edilen sekiz donanım kesme (IRQ) hattı içeriyordu. Her birine, kesmenin önceliğini ve işleyicisinin adresini (kesme vektörü olarak adlandırılan) belirleyen bir numara verildi. Yeni mimari, IBM PC AT, birinci denetleyicinin kesme hatlarından birine bağlı ikinci bir denetleyicinin kullanıldığı sekiz kesme hattı daha sağladı. Ne yazık ki, bu mimari, IBM'in oluşturduğu platformun gelişimini yönetme yeteneğini kaybetmesinden sonraki son mimariydi, bu nedenle tüm modern bilgisayarlarda hala biri ikinci denetleyici tarafından kullanılan yalnızca on altı kesme var.
IBM PC AT bilgisayarında, aygıtların işlemci ve bellek ile iletişim kurabileceği tek bir veri yolu vardı - ISA. Kesinti hatlarının çoğu standart ISA cihazlarına atanmış, geri kalanı geleceğe ayrılmıştır. O gelecek geldiğinde, yeni evrensel PCI veri yolunun yalnızca dört ücretsiz kesintiye sahip olduğu ortaya çıktı. Bu nedenle, kesintileri paylaşmak (IRQ Paylaşımı) ve sayıların dinamik olarak yeniden tanımlanması (IRQ Yönlendirme veya Haritalama) için akıllı bir mekanizma icat edildi.
PCI aygıt kesme kontrol mekanizmasının özü aşağıdaki gibidir. Genel olarak, PIRQ0, PIRQ1, PIRQ2 ve PIRQ3 olarak adlandırılan dört fiziksel PCI kesme hattı vardır. Kesinti denetleyicisine bağlanırlar. Her PCI aygıtının kendi adına, INT A, INT B, INT C ve INT D olarak adlandırılan dört konektörü var gibi görünüyor. Hatları herhangi bir sırada konektörlere bağlayabilirsiniz. Örneğin, ilk PCI yuvası için aşağıdaki kablolamayı yapabilirsiniz: PIRQ0 - INT A, PIRQ1 - INT B, PIRQ2 - INT C, PIRQ3 - INT D. Ve ikincisi için - farklı bir şekilde: PIRQ0 - INT B , PIRQ1 - INT C, PIRQ2 - INT D, PIRQ3 - INT A. Genellikle aygıt, INT A'ya bağlı yalnızca bir kesme hattı gerektirir. İlk yuvaya takıldığında, aygıt PIRQ0 hattını kullanır ve ikinci yuvada Aynı pin üzerinde PIRQ1 hattı. Böylece farklı slotlardaki cihazlar farklı fiziksel kesme hatları kullanacaklardır. Aralarındaki bir donanım çakışması ortadan kalkacaktır.
Aslında özel bir PCI modifikasyonu olan AGP veri yolu, aynı zamanda PIRQ hatlarından birini kullanır - genellikle PIRQ0.
Modern sistemler için dört hat yeterli değildir, bu nedenle yeni yonga setleri genellikle aynı şekilde farklı kombinasyonlarda PCI yuvalarına ve kartta yerleşik aygıtlara bağlanan sekiz PIRQ hattı kullanır.
PIRQ hatları, kesme denetleyicisine bağlanır. Diğer satırlar gibi bunlara da mantıksal IRQ numaraları atanır. Aynı fiziksel hatta birden fazla cihaz varsa (ve buna izin veriliyorsa), hepsinin aynı IRQ numarası olacaktır. Aygıtlar farklı fiziksel hatlarda olsalar bile aynı IRQ numaralarını alabilirler. Normal sürücüler, PCI veri yolu hala yalnızca bir aygıt tarafından yakalanabildiğinden, performanstan ödün vermeden özgürce çalışmasına izin verecektir. Ana şey, sinyalin hangi cihazdan geldiğini tanımaktır.
Ünlü Tak ve Çalıştır mekanizması sayesinde PIRQ satır numaraları otomatik olarak atanır. Ancak Tak ve Çalıştır ISA cihazları da vardır. Ayrıca otomatik olarak bir IRQ numarası alma yeteneğine de sahiptirler. Ama onların kesme hatları münhasıran onlara aittir ve eğer PIRQ hatlarından biri aynı sayıyı alırsa, çözülemez bir çatışma ortaya çıkacaktır.
Böylece PCI aygıtlarının IRQ çakışması sorunlarından arınmış olması gerektiğini anladık. Tabii ki doğru çalışıyorlarsa ve bu her zaman böyle değildir. Ayrıca, sürücülerin kesinti paylaşımını desteklemesi gerekir. ISA cihazları, kesme hatlarını nasıl paylaşacaklarını bilmiyorlar ve bu nedenle çatışma provokatörleri. Bu nedenle, çakışmaları ortadan kaldırma sorunu, sayıların doğru tahsisine (sorunun kaynağı ISA aygıtları ve "çarpık" sürücülerdir) veya farklı fiziksel hatlar ("çarpık" PCI denetleyicileri) boyunca ayrılmaya bağlıdır.
Sistemde sayıların nasıl tahsis edildiğine ve bu süreci nasıl etkileyebileceğimize bakalım.

Haritayı kes

Dediğim gibi, IRQ numaralarının çoğu zaten standart cihazlar tarafından alınır veya daha doğrusu kesme hatlarına atanır. Sıralamaya geçelim:
0 - sistem zamanlayıcısı (numara her zaman meşgul);
1 - tuş takımı (numara her zaman meşgul);
2 - ikinci kesme denetleyicisi (her zaman meşgul);
3 - COM2 bağlantı noktası (devre dışı bırakılabilir ve numara serbest bırakılabilir);
4 - COM1 bağlantı noktası (devre dışı bırakılabilir ve numara serbest bırakılabilir);
5 - LPT2 bağlantı noktası (genellikle numara ücretsizdir);
6 - disket denetleyicisi (devre dışı bırakılabilir ve numara serbest bırakılabilir);
7 - LPT1 bağlantı noktası (EPP veya ECP modunda değilse, numara ücretsizdir);
8 - gerçek zamanlı saat (her zaman meşgul);
9 - ücretsiz;
10 - ücretsiz;
11 - ücretsiz;
12 - PS / 2 fare (böyle bir fare yoksa ücretsiz olabilir);
13 - yardımcı işlemci (her zaman meşgul);
14 ve 15 - sabit disk denetleyicisi (devre dışı bırakılabilir ve numara serbest bırakılabilir).
Tipik bir sistemde 5, 7, 9-11 sayıları, yani on beşte beşi mevcuttur. Ayrıca, COM2 ve LPT1 bağlantı noktalarını güvenle devre dışı bırakarak boş numara sayısını yediye yükseltebilirsiniz. Ücretsiz, meşgul olmadıkları anlamına gelmez, sadece aralarında ücretsiz karıştırma mümkündür.
Herhangi bir sistemin üç standart PCI aygıtı vardır - ACPI, USB denetleyicileri ve her biri bir numara alacak bir video kartı. Karmaşık bir cihaz (örneğin, bir ses kartı) birkaç satır gerektirebilir - INT A, INT B, vb. birbirleriyle çelişmeyecek (sonuçta farklı fiziksel hatlar), ancak diğer cihazlarla - kolayca.
Kesinti numaralarının şu anda nasıl tahsis edildiğini çeşitli şekillerde öğrenebilirsiniz. Bilgisayar önyüklemesinin en başında bir metin yapılandırma tablosu belirir. Hemen ardından, atanmış IRQ numarasına sahip bir PCI aygıt listesi vardır (ekran görüntüsüne bakın). Başka bir yol, Windows 9x'te çalışır. Kontrol panelinde bir "Sistem" simgesi ve çağrılan uygulamada "Aygıtlar" sekmesi vardır. "Bilgisayar" cihazının özelliklerini seçiyoruz ve tüm cihazlar burada IRQ'larını belirterek listelenecek (ekran görüntüsüne bakın).
Windows 2000'de, kesme yönetimine erişimimiz yok, bu nedenle IRQ listesini görüntülemek için standart bilgi yardımcı programını kullanmamız gerekiyor (Denetim Masası / Yönetimsel Araçlar / Bilgisayar Yönetimi / Sistem Bilgileri / Donanım Kaynakları).

BIOS IRQ tahsisi

Sistemde IRQ numaraları fiziksel hatlar arasında iki kez tahsis edilir. Bu ilk kez sistem önyüklemesinde sistem BIOS'u tarafından yapılır. Her Tak ve Çalıştır aygıtına (tüm PCI, modern ISA, tümleşik aygıtlar) veya daha doğrusu kesme hattına on olası sayıdan biri atanır. Yeterli sayı yoksa, birkaç satır ortak bir satır alır. Bunlar PIRQ satırlarıysa, sorun değil - normal sürücüler ve işletim sisteminden gelen destek varsa (bunun için aşağıya bakın), her şey işe yarayacaktır. Ve birkaç ISA cihazı veya PCI ve ISA cihazı aynı numarayı alırsa, çatışma kaçınılmazdır ve o zaman dağıtım sürecine müdahale etmek gerekir.
Her şeyden önce, kullanılmayan tüm ISA aygıtlarını devre dışı bırakmanız gerekir (ISA yuvaları olmayan sistemlerde de bulunurlar) - COM1, COM2 bağlantı noktaları ve bir disket sürücüsü. LPT bağlantı noktasının EPP ve ECP modlarını da devre dışı bırakabilirsiniz, ardından IRQ7 kesmesi kullanılabilir hale gelecektir.
BIOS Kurulumunda "PCI / PNP Konfigürasyonu" bölümüne ihtiyacımız var. IRQ numaralarının tahsisini etkilemenin iki temel yolu vardır: belirli bir numarayı engelleyin ve doğrudan bir PIRQ satır numarası atayın.
İlk yöntem tüm BIOS'lar için mevcuttur: "IRQ x tarafından kullanılan:" öğelerinin listesini bulun (yeni BIOS'ta "IRQ Kaynakları" alt menüsünde gizlidir). Özel olarak ISA cihazlarına atanması gereken bu kesmeler "Eski ISA" olarak ayarlanmalıdır. Böylece PCI aygıtlarına numara atarken bu kesintiler atlanacaktır. Bu, bir ISA aygıtı, her ikisi de çalışmadığı için bir PCI aygıtıyla bir kesintide devam ederse yapılmalıdır. Ardından bu IRQ'nun numarasını bulup BIOS Kurulumunda bloke ediyoruz. PCI aygıtı yeni IRQ numarasına taşınır, ancak ISA aygıtı kalır. Çatışma çözüldü.
IRQ numaralarını yönetmenin ikinci, daha uygun yolu doğrudan atamadır. Aynı BIOS Kurulum alt menüsünde, "Slot X IRQ kullan" (diğer adlar: "PIRQx IRQ kullan", "PCI Yuva x önceliği", "INT Pin x IRQ") biçiminde öğeler olabilir.
Onların yardımıyla, dört PIRQ hattının her birine belirli bir numara atanabilir. Bu arada, yeni AwardBIOS 6.00'da tam olarak hangi cihazların (yerleşik olanlar dahil) bu veya bu hattı kullandığını görebilirsiniz. BIOS Kurulum ekranının sağ tarafına bir göz atın: fotoğraf, imleci "Slot 1/5 use IRQ no." öğesinin üzerine nasıl getirdiğimi gösteriyor ve sağda "Display Contr" yazısı belirdi. Yani, ilk PIRQ satırı video kartı tarafından kullanılır. Şimdi "Otomatik" yerine belirli bir numara koyarsam, video kartı bu kesintiye geçecektir.

Windows Kullanarak IRQ'ları Ayırma

İkinci kez kesme sayıları işletim sistemi tarafından tahsis edilir. Deneylerimde gösterildiği gibi, Windows "98, BIOS tarafından gerçekleştirilen eylemlere müdahale etmeye başlar" ohm sadece aşırı durumlarda. Normal bir BIOS'unuz varsa burada açıklanan tekniklere gerek yoktur.
IRQ paylaşımı ve dinamik ayırma mekanizmalarının düzgün çalışması için Windows'un anakart yonga setini tanıması ve IRQ Miniport'u yüklemesi gerektiği unutulmamalıdır. Windows ne kadar yeni sürüme sahipse, kendi miniportunu (PCIIMP.PCI) daha fazla yonga seti destekler. Ancak, güvenli oynamak ve en yeni yonga seti sürücülerini yüklemek her zaman en iyisidir.
Windows 98'de, IRQ tahsis sistemi standart aygıt yöneticisi kullanılarak kontrol edilir. Sistem aygıtları listesinde PCI veri yolunu bulun. Özelliklerinde özel bir sekme var (ekran görüntüsüne bakın). Her şey doğru yapılandırılmışsa, orada bir miniporttan bahsedilecektir ("başarıyla yüklendi") ve PCI veri yolu yönetimi (Yönlendirme) etkinleştirilecektir. Bu nedenle, Windows "98, kesme sayılarının fiziksel hatlar arasındaki dağılımını kontrol etmek için bir araca sahiptir. Ancak BIOS da bununla iyi başa çıktığı için bu mekanizma dahil değildir.
Ama bazen sadece gerekli. Daha önce de söylediğim gibi, aynı mantıksal kesmeyi kullanıyorlarsa PCI aygıtları çakışmamalıdır. Başka bir şey, COM ve LPT bağlantı noktalarını da içeren ISA cihazlarıdır. Aygıt Tak ve Çalıştır özelliğinde değilse, BIOS meşgul olduğu kesmeyi PCI aygıtına vererek bunu fark etmeyebilir. O zaman kesmeyi rezerve etmeniz gerekir. Bu, Windows 98 Aygıt Yöneticisi'nde yapılır: Bilgisayar aygıtını seçin, özelliklerini çağırın, ikinci sekmeye geçin.
Yedeklemeye ek olarak, cihaz için doğrudan kesme numarasını ayarlayabilirsiniz. Bunu yapmak için, özelliklerinde "Kaynaklar" sekmesini bulmanız, otomatik yapılandırmayı devre dışı bırakmanız ve atanan kesme numarasını değiştirmeyi denemeniz gerekir.
Ne yazık ki, bu her zaman işe yaramaz.
Windows 2000 özel bir sistemdir. Modern bir bilgisayarınız varsa, muhtemelen ACPI yapılandırma arayüzünü destekler. Bu durumda, Windows 2000, BIOS eylemlerini tümüyle yok sayar ve tüm PCI aygıtlarını tek bir mantıksal kesmede "askıya alır". Genel olarak bu iyi çalışır (ISA olmadığında), ancak bazen sorunlar olur. Kesinti numaralarını değiştirebilmek için, HAL çekirdeğini değiştirmeniz veya BIOS'ta ACPI devre dışı bırakılmış olarak Windows 2000'i yeniden yüklemeniz gerekir. Çekirdeğin değiştirilmesi şu şekilde yapılır: aygıt yöneticisinde "Bilgisayar" / "ACPI'li Bilgisayar" öğesini seçin, sürücüyü "Standart bilgisayar" olarak değiştirin, yeniden başlatın. Bu işe yaramazsa, Windows 2000'i yeniden yüklemeniz gerekecektir.
Umarım yukarıdaki bilgiler donanım hatalarına karşı mücadelenizde size yardımcı olur. Ve unutmayın: ortaya çıkan sorunların çoğu, bilgisayar sahibinin düşük bilgisayar okuryazarlığı düzeyiyle ilişkilidir. Bu nedenle, her zaman kendi kendine eğitim için çaba göstermelisiniz, o zaman daha az sorun olacak ve ortaya çıkanlar çözümsüz görünmeyecek.