Intel 8259 - Intel 8259

Bir PC XT'den Intel 8259A IRQ yongasının yakından görünümü.
Pin yapısı

Intel 8259 bir Programlanabilir Kesme Kontrolörü (PIC) için tasarlanmış Intel 8085 ve Intel 8086 mikroişlemciler. Başlangıç ​​bölümü 8259'du, daha sonraki bir son ek sürümü 8086 ile uyumlu ve kullanılabilir 8088 işlemci. 8259, birden fazla kesinti giriş kaynağını tek bir kesmek bir sistemde bulunan kesme düzeylerini işlemci yongasında bulunan bir veya iki düzeyin ötesine genişleterek, ana mikroişlemciye çıktı. 8259A, ISA otobüsü orjinalinde IBM PC ve IBM PC AT.

8259, Intel'in bir parçası olarak tanıtıldı MCS 85 ailesi 1976'da. 8259A, 1981'de piyasaya sürülen orijinal PC'ye dahil edildi ve PC / XT 1983'te piyasaya sürüldüğünde. İkinci bir 8259A, PC / AT. 8259, Intel APIC Mimarisi girişinden beri Simetrik Çoklu İşlemci PC'ler. Modern PC'ler, 8259A'yı aşamalı olarak kullanımdan kaldırmaya başladı. Intel APIC Mimarisi. Bununla birlikte, artık ayrı bir yonga olmasa da, 8259A arabirimi hala Platform Denetleyici Hub veya Güneyköprüsü modern yonga seti x86 anakartlar.

Fonksiyonel Açıklama

Bir 8259'daki ana sinyal pinleri aşağıdaki gibidir: IRQ0 ile IRQ7 arasındaki sekiz kesme giriş isteği satırı, bir kesme isteği INTR adlı çıkış satırı, kesme seviyesini veya vektör ofsetini iletmek için INTA, D0 ila D7 olarak adlandırılan kesme bilgilendirme satırı. Diğer bağlantılar arasında, 8259s arasında geçiş için CAS0'dan CAS2'ye kadar bağlantı bulunur.

Sekize kadar köle 8259'lar bir usta 64 IRQ sağlamak için 8259. 8259'lar, birinin INT hattını bağlayarak kademelendirilir köle 8259'dan birinin IRQ hattına usta 8259.

Üç kayıt vardır, bir Maske Kaydını Kes (IMR), bir Kesme İsteği Kaydı (IRR) ve bir Hizmet İçi Kayıt (ISR). IRR, bir maske Onay bekleyen mevcut kesintiler için ISR, bir EOI bekleyen kesintilerin bir maskesini saklar ve IMR, bir alındı ​​bildirimi gönderilmemesi gereken bir kesinti maskesi tutar.

Kesmenin Sonu (EOI) işlemleri, belirli EOI, spesifik olmayan EOI ve otomatik EOI'yi destekler. Belirli bir EOI, ISR'de onayladığı IRQ seviyesini belirtir. Spesifik olmayan bir EOI, ISR'deki IRQ seviyesini sıfırlar. Otomatik EOI, kesinti onaylandıktan hemen sonra ISR'deki IRQ seviyesini sıfırlar.

Kenar ve seviye kesinti tetikleme modları 8259A tarafından desteklenir. Sabit öncelik ve dönüşümlü öncelik modları desteklenir.

8259, 8080/8085 veya 8086/8088 ile çalışacak şekilde yapılandırılabilir. 8086 / 8088'de, kesinti denetleyicisi, bir kesinti meydana geldiğinde veri yolunda bir kesme numarası sağlayacaktır. 8080/8085'in kesme çevrimi, veri yolunda üç bayt yayınlayacaktır (8080/8085 komut setindeki bir CALL komutuna karşılık gelir).

8259A, 8259'a kıyasla ek işlevsellik sağlar (özellikle ara belleğe alınmış mod ve seviye tetiklemeli mod) ve onunla yukarı doğru uyumludur.

Programlama konuları

DOS ve Windows

Orijinalde kullanılan NEC D8259AC IBM PC anakart.

8259 ile bağlantılı olarak programlama DOS ve Microsoft Windows 1981'de piyasaya sürülen orijinal PC'ye kadar uzanan geriye dönük uyumluluk adına bir dizi kafa karıştırıcı sorun ortaya çıkarmıştır.

İlk sorun aşağı yukarı ikinci sorunun temelini oluşturuyor. DOS aygıt sürücülerinin, aygıtlarına servis vermeyi tamamladıklarında 8259'lara özel olmayan bir EOI göndermeleri beklenir. Bu, 8259'un diğer EOI modlarından herhangi birinin DOS'ta kullanılmasını önler ve ana 8259'dan bağımlı 8259'a yeniden yönlendirilen cihaz kesintileri arasındaki farklılaşmayı hariç tutar.

İkinci konu, PC / AT'de bir slave 8259'un piyasaya sürülmesinden itibaren IRQ2 ve IRQ9'un kullanımı ile ilgilidir. Bağımlı 8259'un INT çıkışı, ana birimin IR2'sine bağlanır. Başlangıçta bu IR2'ye bağlı olan ISA veriyolunun IRQ2 hattı, bağımlı birimin IR1'ine yeniden yönlendirildi. Böylece, eski IRQ2 satırı artık CPU'da IRQ9 üretiyor. Hala IRQ2 için ayarlanmış olan DOS aygıt sürücüleriyle geriye dönük uyumluluğa izin vermek için, IRQ9 için BIOS tarafından kesintileri orijinal IRQ2 işleyicisine yeniden yönlendiren bir işleyici yüklenir.

Bilgisayarda, BIOS (ve dolayısıyla DOS) geleneksel olarak ana 8259 kesme isteklerini (IRQ0-IRQ7) vektör ofset 8'i (INT08-INT0F) ve bağımlı 8259'u (PC / AT ve sonrasında) kesme isteklerini (IRQ8) kesmek için eşler -IRQ15) vektör ofset 112'yi (INT70-INT77) kesmek için. Bu, ilk 32 (INT00-INT1F) kesinti vektörlerinin işlemci tarafından dahili istisnalar için ayrılmasına rağmen yapıldı (bu, bazı nedenlerden dolayı bilgisayarın tasarımı için göz ardı edildi). İstisnalar için ayrılmış vektörler nedeniyle, diğer işletim sistemlerinin çoğu (en azından ana) 8259 IRQ'ları (bir platformda kullanılıyorsa) başka bir kesinti vektörü temel uzaklığı ile eşler.

Diğer işletim sistemleri

Diğer işletim sistemlerinin çoğu, aygıt sürücüsü beklentilerinde değişikliklere izin verdiğinden, Otomatik EOI gibi diğer 8259 çalışma modları kullanılabilir. Bu özellikle modern için önemlidir x86 8259'larla iletişim kurarken G / Ç adres alanı gecikmesine önemli miktarda zaman harcanabilecek donanım. Bu ayrıca, 8259'lu çok işlemcili bir x86 sisteminde kritik bölümler gibi senkronizasyonda bir dizi başka optimizasyona da izin verir.

Kenar ve seviye tetiklemeli modlar

ISA veriyolu desteklemediğinden seviye tetiklendi kesmeler, seviye tetiklemeli mod, ISA cihazlarına bağlı kesmeler için kullanılamaz. Bu, PC / XT, PC / AT ve uyumlu sistemlerde 8259'un aşağıdakiler için programlanması gerektiği anlamına gelir: Kenar tetikli modu. MCA sistemlerinde, cihazlar seviye tetiklemeli kesintiler kullanır ve kesinti kontrolörü her zaman seviye tetiklemeli modda çalışmak üzere kabloyla bağlanır. Daha yeni EISA, PCI ve sonraki sistemlerde Edge / Level Control Registers (ELCR'ler), her IRQ hattı için modu kontrol ederek, 8259'un modunu ISA veri yollarına sahip bu tür sistemler için etkisiz hale getirir. ELCR, doğru çalışma için sistem başlangıcında BIOS tarafından programlanır.

ELCR'ler, x86 G / Ç adres alanında 0x4d0 ve 0x4d1'de bulunur. 8 bit genişliğindedirler ve her bit 8259'lardan bir IRQ'ya karşılık gelir. Bir bit ayarlandığında, IRQ seviye tetiklemeli moddadır; aksi takdirde, IRQ kenar tetiklemeli moddadır.

Sahte kesintiler

8259, bir dizi koşula yanıt olarak sahte kesintiler üretir.

Birincisi, onaylanmadan önce geri alınan bir IRQ hattıdır. Bu, IRQ hatlarındaki gürültüden kaynaklanabilir. Kenarla tetiklenen modda, gürültü hattı 100 ns boyunca düşük durumda tutmalıdır. Gürültü azaldığında, bir çekme direnci IRQ satırını yükseğe döndürür, böylece yanlış bir kesme oluşturur. Seviye tetiklemeli modda, gürültü sistem INTR hattında yüksek bir sinyal seviyesine neden olabilir. Sistem bir alındı ​​bildirimi isteği gönderirse, 8259'un çözecek hiçbir şeyi yoktur ve bu nedenle yanıt olarak bir IRQ7 gönderir. Bu ilk durum sahte IRQ7'ler oluşturacaktır.

Benzer bir durum, 8259'un maskesini kaldırdığında ve IRQ giriş reddi düzgün şekilde senkronize edilmediğinde ortaya çıkabilir. Çoğu sistemde, IRQ girişi bir G / Ç yazması ile kaldırılır ve işlemci, yazma G / Ç aygıtına ulaşana kadar beklemez. İşlemci devam ederse ve IRQ girişi kaldırılmadan önce 8259 IRQ'nun maskesini kaldırırsa, 8259 tekrar INTR'yi verecektir. İşlemci bu INTR'yi tanıdığında ve IRQ'yu 8259'dan okumak için bir alındı ​​bildirimi yayınladığında, IRQ girdisi kaldırılabilir ve 8259 sahte bir IRQ7 döndürür.

İkincisi, ana 8259'un IRQ2'sinin, bağımlı 8259'un IRQ hatları bir kesinti onayının düşen kenarında etkin olmadığı zaman yüksek aktif olmasıdır. Bu ikinci durum sahte IRQ15'ler oluşturacaktır, ancak nadirdir.

PC / XT ve PC / AT

PC / XT ISA sistem bir 8259 denetleyiciye sahipken, PC / AT ve sonraki sistemlerde ana ve bağımlı olmak üzere iki 8259 denetleyici vardı. IRQ0 - IRQ7 ana 8259'un kesme hatlarıdır, IRQ8 - IRQ15 ise bağımlı 8259'un kesme hatlarıdır. Bir 8259'daki pimlerdeki etiketler IR0'dan IR7'ye kadardır. IRQ0 - IRQ15, ISA veriyolunun 8259'ların eklendiği hatların isimleridir.

Varyantlar

Model numarasıSıcaklık aralığıYayın tarihiFiyat (USD)[liste 1]
ID numarası-40 ° C ile + 85 ° C[1]Mart / Nisan 1979[2]$23.15
M8259AskeriMart / Nisan 1979[3]$95.00
  1. ^ 100 ve üzeri miktarlarda

Ayrıca bakınız

Referanslar

  1. ^ Intel Corporation, "8086 Endüstriyel ortam için kullanılabilir", Intel Önizleme Özel Sayısı: 16-Bit Çözümler, Mayıs / Haziran 1980, Sayfa 29
  2. ^ Intel Corporation, "Mikrobilgisayar Bileşeni: Yeni endüstriyel sınıf ürün serisi, endüstriyel uygulamalarda çalışmak için yüksek güvenilirliğe sahip bileşenlere olan talebi karşılar.", Intel Preview, Mart / Nisan 1979, Sf. 11
  3. ^ Intel Corporation, "Askeri Ürünler: Intel devam ediyor!", Intel Önizleme, Mart / Nisan 1979, Sf. 19
  • Gilluwe, Frank van. Belgelenmemiş PC. A-W Developers Press, 1997. ISBN  0-201-47950-8
  • McGivern, Joseph. Kesintiye Dayalı Bilgisayar Sistem Tasarımı. Annabooks, 1998. ISBN  0-929392-50-7
  • IBM Kişisel Sistem / 2 Donanım Arayüzü Teknik Referansı - Mimariler. IBM, 1990. IBM Yayını 84F8933

Dış bağlantılar