bilgiz.org

I/O, irq, dma ve Plug-and-Play

  • Adres Aralığı (Hexadecimal) Kullanan Aygıt Türü
  • Plug and Play Teknolojisi
  • Plug and Play İçin Gerekenler
  • Plug and Play Nasıl Çalışır
  • Windows da Device Manager ın Kullanılması
  • Kesmeler (IRQ) Nasıl Çalışır
  • Kesmelerin (IRQ) Seçilmesi
  • Kesme Hattı Aygıt Açıklama
  • Kanal Kullanımı Genişlik
  • USB Veri Yolu ve Getirdiği Yenilikler
  • USB’nin Getirdiği Avantajlar



  • Tarih29.12.2017
    Büyüklüğü63.32 Kb.
    TipiYazı

    Indir 63.32 Kb.

    I/O, IRQ, DMA ve Plug-and-Play
    Bu yazımızda sizlere I/O, IRQ , DMA ve Plug-and-Play gibi sık sık karşılaştığımız terimlerin ne anlam ifade ettiğini ve sistem yapılandırılması sırasında dikkat edilmesi gereken bazı hususlar hakkında bilgiler sunmaya çalışacağız. Ayrıca sık rastlanılan I/O, IRQ ve DMA değerlerine ait tablolar bulacaksınız. Şayet her sistem yapılandırması sırasında sık sık çakışmalarla karşılaşıyor, yeni bir kart alıp sisteminize taktıktan sonra bir çok sorunla uğraşmak zorunda kalıyorsanız yazımızı dikkatlice okumanızı tavsiye ederiz. Sanırım diğer terimlerin daha kolay anlaşılabilmesi için işe I/O ile başlamakta fayda var.

    I/O Nedir ?

    Bilgisayarımızın patronu olan CPU' nun çevre aygıtlarıyla ve devre kartları (Ses Kartı, Ethernet Kartı vs.) ile iletişim kurmak ve bu aygıtları birbirinden ayırt edebilmek için kullandığı Giriş/Çıkış (Input/Output) adresleridir. Bu adresler "port adresleri" veya "donanım adresleri" olarak da bilinir. Zaten CPU' nun dış dünya ile iletişim kurmak için kullandığı iki yol vardır denilebilir. Bunlardan biri bilgisayarımızın ana belleğinin adresleri diğeri de bahsedildiği üzere I/O adresleridir.

    Çoğu aygıtın kullanabileceği tek bir I/O adresi vardır. Mesela CPU klavye ile iletişim kurarken 60 ile 64 arasındaki (Hexadecimal tabanda) adres değerlerini kullanır. Bu adres aralığı klavye denetleyicisine (Keyboard Controller) ayrılmıştır. Yine aynı şekilde COM1 portunun I/O adres aralığı da 3F8-3FF 'dir. Bu adres başka bir aygıt tarafından kullanılamaz. Ancak bazı örnekler vardır ki (Ses kartı gibi) varsayılan I/O adresini başka bir donanıma tahsis etmiş olsanız da kendisi, başka bir adresi kullanacak şekilde kartı ayarlamanıza izin verebilir. Aşağıda sık karşılaşılan bazı I/O adresleri ve bunların hangi aygıtlar tarafından kullanıldığına ilişkin bir tablo sunulmuştur.

    Adres Aralığı (Hexadecimal)

    Kullanan Aygıt Türü

    00-0F

    DMA Denetleyicisi

    20-21

    Programlanabilir Kesme Denetleyicisi - IRQ 0-7

    60-64

    Klavye Denetleyicisi

    A0-A1

    Programlanabilir Kesme Denetleyicisi - IRQ 8-15

    1F0-1F8

    Birinci sabit disk denetleyicisi

    220-22F

    Wav aygıtı (Sound Blaster varsayılan)

    278-27F

    LPT2

    2E8-2EF

    COM4 seri port

    2F8-2FF

    COM2 seri port

    300-30F

    Ethernet Kartı (Standart değil)

    330-33F

    MIDI portu (Standart değil)

    378-37F

    LPT1 Yazıcı portu

    3D0-3DF

    Grafik adaptörü

    3E8-3EF

    COM3 portu

    3F0-3F7

    Disk denetleyicisi

    3F8-3FF

    COM1 seri portu


    I/O Adres Çakışmaları

    Daha öncede belirttiğimiz gibi çoğu çevre birimi ve kartlar tek bir I/O adres aralığını kullanır. En basit şekliyle klavyenizin kullandığı I/O adres aralığını başka bir kart kullanmaya kalkarsa, bu kart çalışmayacak, bununla birlikte klavyenizde devre dışı kalacaktır. Zaten kart üretilirken klavyenin I/O adresini kullanacak bir kart tasarımı yapılmaz. Çünkü bu adres sabitdir ve klavye denetleyicisi tarafından kullanılmaktadır ve bir standart haline gelmiştir. Kartlar üretilirken bunlar göz önünde bulundurulan önemli kriterlerdir. "Peki o zaman I/O çakışmaları nasıl olabilir?" diye bir soru gelebilir aklınıza. Tablodan da görüleceği üzere bazı I/O değerleri standart değildir sorunlarda zaten bu aralık değerlerini kullanan kartlarda görülmektedir. Şayet aynı adresi birden fazla kart için ayarlarsanız çakışmaya sebep olacağı için kartlar görevlerini yapamayacaktır. Sistemde fazlalık olmaktan öteye gidemeyecektir. Fakat şunu da belirtmekte fayda var güncel sistemler ve işletim sistemlerinin "Plug and Play" (Tak ve Çalıştır) özelliğine sahip olması sebebiyle sistem yapılandırması eskisi kadar zor değildir. Eğer şansınız yaver giderse ilk seferde tüm ayarlar sizin için işletim sisteminiz tarafından yapılacaktır. İsterseniz şimdi "Plug and Play" teknolojisi ile ilgili bir kaç önemli noktaya değinelim.



    Plug and Play Teknolojisi 

    Bu teknoloji ile sistem yapılandırılması kabus olmaktan biraz olsun çıkmış ve donanım ayarları daha kolay yapılır hale gelmiştir. Bir PnP (Plug and Play) aygıtını konfigüre etmesi için kullanıcının yapması gereken aygıtı fiziksel olarak bilgisayara yüklemesidir. Bilgisayarınızı açtığınız zaman işletim sisteminiz (Windows 95/98 gibi) yeni aygıtı otomatik olarak teşhis edecek ve gerekli ayarları sizin için yapacaktır. Ama her zaman işler bu kadar kolay olmayabilir. İşte o zaman iş size düşecek ve sistem konfigürasyonunu bu yazımızda belirtilen kriterlere dikkat ederek yapmanız gerekebilecek.



    Plug and Play İçin Gerekenler

    PnP' ın işlev görebilmesi için üç şeye ihtiyacı vardır.



    • PnP destekli bir işletim sistemi

    • PnP destekli bir anakart

    • PnP destekli aygıt

    Güncel çoğu anakart ve aygıt PnP desteğine sahiptir. Bununla birlikte, işletim sistemlerinde durum biraz farklıdır. Windows 95/98, Windows 2000 işletim sistemleri PnP'yi destekler. Windows NT 4.0 ve Linux ise PnP'yi sadece ISA kartlar için desteklerler.

    NOT: Plug and Play bir işletim sistemi kullanıyorsanız, sistem BIOS'undaki "Plug and Play Operating System" veya benzeri ("PnP OS Installed" gibi) bir ayarı mutlaka devreye sokun. Tüm sistemlerde bu tür bir ayar yoktur. Şayet BIOS'unuzda  bu tür bir ayar yoksa endişelenmeyin. 

    Plug and Play Nasıl Çalışır ?

    Plug and Play her şeyden önce Plug and Play uyumlu bir anakartla başlar. Bu anakartımızın Plug and Play' ı anlayan bir BIOS' u vardır. Artık günümüzde üretilen kartların hemen hemen hepsi Plug and Play uyumlu olarak üretilmektedir.

    Windows 95/98 her başlatıldığında Configuration Manager adındaki bir yazılım ögesi, sisteminizde bulunan tüm kartlara hangi kaynaklara gereksinimi olduğunu ve hangi kaynak arasını kabul edeceğini sorar. Her aygıtın Windows' a ne tip bir aygıt olduğunu nasıl ayarlaması gerektiğini söyleyen bir tanımlayıcısı (sürücüsü) vardır. Configuration Manager daha sonra kartlara gerekli kaynakları atayarak çakışmalarını önler. Bunları kurarken, her aygıtın kurulum ile bilgisini de Registry' de saklar.

    Her yeniden başlatılma sırasında Windows 95/98 sahip olması gereken bütün Play and Play aygıtların mevcut olup olmadığına bakar ve yeni eklenen bir aygıtın olup olmadığını araştırır.



    Windows 'da Device Manager 'ın Kullanılması

    Windows 'da donanım bilgilerine Control Panel/System Properties/Device Manager 'dan veya masaüstünde bulunan "My Computer" ögesinin üzerinde mouse'unuzun sağına tıklayıp "Properties" seçeneğinden "Device Manager" tablosuna ulaşabilirsiniz. Burada Windows 'un çalışırken RAM 'de tüm aygıtlar için oluşturduğu donanım bilgileri mevcuttur. Bu kısımdan birçok aygıt ayarını istediğiniz şekilde düzenleyebilirsiniz.

    "Device Manager" sizin donanımla ilgili ayarlamalar yapmanıza olanak sağlarken aynı zamanda size yol gösterici bilgiler sunar. Örneğin bir aygıtın sistemle uyumlu olup olmadığını, sistemle aygıtın çakışıp çakışmadığının analizini yapar.

    Şekilde görüldüğü üzere ünlem işareti, Windows 'un o aygıtın düzgün çalışmadığına inandığının bir göstergesidir. Windows tarafından size sunulan problemin ne olduğunu öğrenmek için ünlem işareti olan aygıtın üzerine çift tıklayabilirsiniz ya da aygıt seçili iken "Properties" butonuna basarak Windows 'un size çakışmanın sebebi ile igili sunduğu bilgilere ulaşabilirsiniz. Soruna uygun olarak hemen gerekli düzeltmeleri ve ayarları yapabilirsiniz. Her zaman olmasa bile sorunu çözme olasılığınız var.

    "Device Manager" ile yapabileceğiniz herşeyi Registry ile de yapmak mümkün. Ancak Registy editörü tarafından sağlanan ayrıntılı denetim genellikle donanım ayarları için kullanışlı değildir.

    Plug and Play aygıtları, artık günümüzde çoğunlukla yazılım yardımıyla kaynak-düzenlemeli (Resource-Configurable) olarak çalışır. Yine bazı kartlarda I/O, DMA ve IRQ gibi ayarların Jumper' lar veya DIP anahtarları ile yapılabilir. Ama belirttiğimiz gibi bunun sayısı gitgide azalmaktadır.



    IRQ Nedir ?

    IRQ (Interrup Request), Türkçe karşılığı olarak kesme talebi anlamındadır. Donanım kesmeleri ve Yazılım kesmeleri olmak üzere iki kısımda incelemek mümkün ancak biz bu yazımızda sizlere hep donanım kesmelerinden bahsediyor olacağız. Bilgisayarımızın merkezi işlem ünitesi olaran CPU çevre birimleri ile olan tüm iletişimleri de başlatır, onların yönetimini elinde tutar. Peki herhangi bir çevre birimi CPU' nun kendisi ile ilgilenmesini nasıl sağlayacak, onun dikkatini nasıl çekecek. İşte bu noktada IRQ (Donanım Kesmeleri) devreye girer. IRQ, çevre birimlerininin dikkat çekmek için kullandığı iki yöntemden bir tanesidir. Diğer yöntem ise Polling (Oylama) olarak bilinir. Bu yöntemden de yazımızın ilerleyen kısmında bahsedilecektir. Aşağıdaki şekilde benim sistemime ait olan IRQ dağılımları görülmektedir.



    Konunun tam olarak anlaşılabilmesi için isterseniz bir örnek üzerinde IRQ 'nün işlevine bakalım. Çevre birimi olarak yazıcımızı ele alalım. CPU, -yazımızın I/O kısmında öğrendiğimiz üzere- yazıcımız ile iletişimi 378 nolu I/O adresi üzerinden sağlar. Şimdi yazıcımıza yazdırılmak üzere birtakım veriler gönderdiğimizi düşünelim. Yazıcıya gönderdiğimiz veriler basıldıktan sonra yazıcının kendisine gelen verileri yazdırdığını yeni bir görev için hazır olduğunu bildiren bir sinyal yollaması gerekir ki CPU verilerin devamını da yollayabilsin. Çok görevli bir işletim sisteminde aynı anda bir kaç işin yapılabilmesi için CPU' nun artık yazıcı ile ilgilenmesini bırakıp sistemin diğer işlerini yapması gerekli. Şayet tek görevli bir işletim sisteminde çalışıyorsanız (DOS gibi) CPU' nun zaten yapacak bir işi olmayacaktır. Bu ancak çok görevli işletim sistemlerinde bizim için çok büyük bir kazanç olacaktır. İşte IRQ ile yazıcı, CPU' nun dikkatini çekerek, görevinin bittiğini yeni görev için hazır olduğunu söyler. Bu yöntem çevre birimlerinin dikkat çekmek için kullandığı en iyi yöntemdir. Diğer yönteme gelince...



    Polling (Oylama)

    Bu yöntemi kesmelerden ayıran en büyük özellik CPU' nun aynı anda birden fazla işi yapabilmesine izin vermemesidir. Bu durumda işletim sisteminizin çok görevli (Windows 95/98 gibi) veya tek görevli (DOS gibi) olmasıda bir şeyi değiştirmeyecektir. Önceki örnekte yazıcı işini bitirdiği zaman CPU' yu uyaran bir sinyal göndererek işini bitirdiğini bildirir demiştik. İşte burda tüm yük CPU' ya kalıyor. CPU yazıcıyı sürekli gözetleyerek, işini bitirip bitirmediğini öğrenmeye çalışır. İlk etapda gönderdiği verilerin basılıp bittiğini anlayınca yeni veriler göndermeye devam eder. Çok görevli işletim sistemlerinin yaygın olarak kullanıldığı günümüzde bu yöntemin kullanılmamasının sebebi sanırım anlaşılmıştır.



    Kesmeler (IRQ) Nasıl Çalışır ?

    Bilgisayarımızdaki kesmeler Intel 8259 öncelikli kesme denetleyicisi (PIC) tarafından sağlanır. Önceleri ayrı bir çip olarak bulunan bu kesme denetleyicisi, günümüz bilgisayarlarında anakartın çip setinde yerleşik olarak bulunmaktadır. Bir kesme talebi geldiğinde 8259 Cpu' yu elindeki işi geçici olarak durdurmaya ve hemen bu kesmeyi yönetmesine olanak sağlayan bir programı çalıştırmaya iter. CPU kesme hizmet programına dallanırken dönüş adresini yığın hafızada saklar ve işi bitince tekrar kaldığı işleme yine kaldığı yerden devam eder. Bir çok aygıt aynı anda kesme hizmeti isteyebilir. Sistem tarafından belirlenmiş öncelik sırasına göre talepler karşılanır. Genelde kesme hizmet programı yüksek önceliğe sahip bir işlem tarafından kesilebilir. Ama daha öncelikli veya eşit seviyedeki bir cihazdan kesme talebi gelirse o anki kesme programı bitene kadar bu istek saklanır.



    Kesmelerin (IRQ) Seçilmesi

    Intel 8259' da sekiz adet IRQ hattı bulunur. Bunların bir tanesi zamanlayıcı diğeri de klavye için ayrıldığı zaman geriye altı adet (IRQ 3-7) IRQ hattı kalmaktaydı. Bu bilgisayarların konfigüre edilmesinde daha sonraları yetmemeye başladı ve ikinci bir 8259' un daha kullanılmasını gerekli kıldı. Bu sayede IRQ seviyeleri onaltıya ulaşmış oldu. Aşağıdaki tabloda sık kullanılan IRQ seviyeleri açıklamalarıyla birlikte sunulmakta.



    Kesme Hattı

    Aygıt

    Açıklama

    0

    Sistem zamanlayıcısı

    Çevre Birimleri tarafından Erişilemez

    1

    Klavye

    Çevre Birimleri tarafından Erişilemez

    2

    8-15 numaralı IRQ'lar

    İkinci 8259 için

    3

    Com2

    Aynı zamanda Com4. Ancak sadece biri

    4

    Com1

    Aynı zamanda Com4. Ancak sadece biri

    5

     

    Genellikle serbesttir

    6

    Disket Denetleyicisi

     

    7

    LPT1

     

    8

    Gerçek zaman saati

    Çevre Birimleri tarafından Erişilemez

    9

     

    Yönlendirilmiş IRQ2

    10

     

    Genellikle serbesttir

    11

     

    Genellikle serbesttir

    12

    PS/2 tipi fare portu

    Muhtemelen IRQ12 yi kullanır

    13

    Ek işlemci

     

    14

    Birinci sabit disk arabirimi

    Birincil PCI EIDE arabirimi (HD)

    15

    İkincil sabir disk arabirimi

    İkincil PC EIDE arabirimi (Ayrılmış)

    Bir kart taktığınız zaman IRQ ya gereksinim duyuyorsa yapacağınız en iyi şey ilk önce IRQ 9, 10, 11 veya 5' i belirtilen sırada aramaktır. Şayet Paralel portu kullanmıyorsanız LPT1 ' i devre dışı bırakarak IRQ 7 'yi de kullanabilirsiniz. Eğer bir tane sabit disk ve CD-ROM sürücünüz varsa IRQ 'den tasarruf etmek için bunları aynı EIDE arabirimini kablosuna bağlayabilirsiniz. Daha sonra ikinci EIDE birimini devre dışı bırakarak, ikincil EIDE birimi için ayrılmış olan IRQ 15 'i de kullanma imkanınız doğacaktır. Ancak şunu söylemek gerekir ki tüm sistemler ikinci EIDE birimini devre dışı bırakmanıza izin vermeyebilir.

    DMA Kanalları

    Bu kanallar sistem belleğine bazı aygıtların (Ses kartı, Ethernet kartı gibi) erişimini hızlandırmak için kullanılırlar. Bir sabit disk disk denetleyicisi sabit diskten bazı verileri aldıktan sonra bunları RAM' e depolamak ister. Aynı şekilde yerel iletişim ağı (Ethernet kartı) kartından da veri geldiğinde bunların RAM' e depolanması gerekebilir. Bunları I/O adresleri üzerinden CPU'ya oradan da RAM' e göndermek yerine bazı kartların kullabildiği DMA (Direct Memory Access - Direk Bellek Erişimi) kanalları vasıtasıyla daha hızlı ve CPU' yu da meşgul etmeden direk RAM' e ulaştırmak mümkün. Bu sayede CPU meşgül edilmemiş olacak vede bizim isteğimiz daha hızlı bir şekilde yerine getirilmiş olacaktır.Tekrar özetlersek DMA verileri bir çevre biriminden RAM' e veya RAM' den çevre birimini CPU' nun müdahalesine gerek kalmadan aktarabilmeyi sağlar. Çevre birimlerinin birbirine direk ulaşmasına imkan sağlayamaz. Sisteminize DMA kullanmak üzere kaç tane kart takılabileceği sınırlıdır.

    Günümüz sistemlerinde iki adet 8237A DMA denetleyici çipi vardır. Birbirine seri bağlı olan bu iki çip toplam 7 adet DMA kanalının kullanılmasına olanak sağlar. Buna ilişkin tablo aşağıda verilmiştir.

    Kanal

    Kullanımı

    Genişlik

    0

    Dinamik RAM Güncelleme

    8-bit

    1

    Genelde Ses kartları kullanır

    8-bit

    2

    Disket denetleyicisi

    8-bit

    3

    Ayrılmış

    8-bit

    4

    DMA1-DMA2 seri bağlantısı

    -

    5

    Ayrılmış

    16-bit

    6

    Ayrılmış

    16-bit

    7

    Ayrılmış

    16-bit

    Günümüzde kullanılan PCI veri yolu için yapılmış çoğu kart Cpu' ya gerek duymadan veri yolunun desteklediği maksimum hızda veri transferi yapabilir. Onun için veri yolu yönetimi DMA' nın ciddi bir alternatifi olarak karşımıza çıkmakta.

    USB Veri Yolu ve Getirdiği Yenilikler

    USB (Universal Serial Bus = Evrensel Veri Yolu) 1995’te ortaya çıkmıştır. USB bağlantı standardı sayesinde farklı tipte konnektörlere, DMA kanal değişikliklerine gerek duyulmayacak, IRQ çakışmaları ortaya çıkmayacak, jumperlara gerek olmayacak; bir tek PC’ye 127 adede kadar cihaz bağlanabilecektir. USB, bilinen birçok PC konnektörünün (Centronics paralel, RS-232 seri, Mini-DIN ve Sub-D (Oyun portları, printer portları, klayve ve mouse konnektörleri, modem ve birçok network adaptörü) vb.) yerini alacaktır. Sonuç olarak USB, ana güç, yüksek hızlı video ve çok yüksek hızlı networkler dışında birçok harici bağlantının yerini alacaktır.

    USB veriyolunu kullanan cihazlar direk olarak PC'lere bağlanabilecekleri gibi, USB hubları aracılığı ile de bağlantı kurabilirler. USB, star (yıldız) topolojiyi kullanır (Şekil 1). Bu topolojide cihazlar bağlandıkları bilgisayardan veya USB hublarından en fazla 5 m. uzaklıkta olabilir. USB, İki adet veri transfer hızını desteklemektedir: 1,5 Mbps ve 12 Mbps; bu band genişlikleri PC kamera, monitör, modem, printer, scanner, mouse, joystick, klavye, ses kartları ve ses sistemleri, telefon, network cihazları ve daha birçok cihazın çalışabilmesi için yeterlidir . USB, senkron (eş zamanlı) ve asenkron veri transferini desteklemektedir. Bütün USB cihazlar tek tip konnektör kullanmaktadır



    Şekil1: USB Topolojisi

    USB, aralarında Intel, Microsoft, Compaq, IBM gibi firmaların da bulunduğu 400 ‘ün üzerinde kuruluş tarafından desteklenmektedir. Son zamanlarda üretilen hemen bütün sistemlerde ve anakartlarda USB desteği bulunmaktadır.



    USB’nin Getirdiği Avantajlar:

    1. Tek bir PC’ye 127 adede kadar cihaz bağlayabilme

    1. Hiçbir sürücüye, IRQ ayarlarına, DMA kanallarına ve I/O adreslerine, genişleme yuvalarına gerek duymadan kolay kurulum

    1. Çevresel cihazlar için PC’yi kapatıp açmadan Tak ve Çalıştır fonksiyonelliği

    1. Bütün cihazlar için tek tip konnektör

    2. PC’yi kapatmadan cihaz ekleme ve kaldırma özelliği






        Ana sayfa


    I/O, irq, dma ve Plug-and-Play

    Indir 63.32 Kb.