G/Ç metotları
Bu madde hiçbir kaynak içermemektedir. (Nisan 2015) (Bu şablonun nasıl ve ne zaman kaldırılması gerektiğini öğrenin) |
Bellek haritalı G/Ç ve bağlantı kapılı G/Ç (İngilizce: port I/O (PMIO)), bilgisayarda CPU ve G/Ç cihazları arasındaki G/Ç işlevini yerine getirmek için kullanılan iki metottur. Başka bir metot ise ayrı bir G/Ç işlemcisi kullanılarak yapılan bir metottur. (IBM'in büyükboy bilgisayarlarında kullanılmaktadır.
Bellek haritalı G/Ç, bellek ve G/Ç cihazları arasında G/Ç işlemleri için tek bir veriyolu kullanır ve G/Ç cihazlarına erişim için CPU talimatlarından yararlanır. CPU G/Ç cihazlarına hafızadan daha fazla yer ayırır. G/Ç cihazları CPU'nun adres veri yolunu gözlemler ve CPU'nun atanan adres alanlarına erişimine yanıt verir. G/Ç cihazları adresleri donanım yazmaçları ile eşler.
Bağlantı kapılı G/Ç, G/Ç işlemlerini yerine getirmek için CPU'nun özel birimlerini kullanır. Bağlantı kapılı G/Ç Intel mikroişlemcilerde bulunmaktadır. Bu sayede CPU giriş ve çıkış talimatları ile G/Ç cihazından bir byte okuma ve yazma yapabilmektedir.
Bellek haritalı G/Ç ve bağlantı kapılı G/Ç metotlarına ilişkin yararlar
[değiştir | kaynağı değiştir]Bağlantı kapılı G/Ç'deki en önemli avantaj CPU üzerinde limitli adresleme yeteneğidir. Çünkü bağlantı kapılı G/Ç, G/Ç'ye erişim ile memory erişimini ayırabilmektedir.
Bellek haritalı G/Ç'deki avantaj ise bağlantı kapılı G/Ç'nin getirdiği fazla karmaşıklığı yok edebilmesidir. Bu sayede CPU daha az dahilî mantık gereksinimi duyar. Dolayısıyla daha hızlı, daha ekonomik ve yapımı daha kolay olmaktadır. Bu mantık bilgisayarın kullandığı komutların büyük çoğunluğunu kapsayan bir yalın komut kümesinin hızlı ve verimli gerçekleşmesine dayalı mikroişlemci tasarımının temel prensibidir. Bunun sonucunda 16-bit'lik CPU mimarisi yerini 32-bit ve 64-bit'lik mimarilere bırakmıştır.
Örnek
[değiştir | kaynağı değiştir]8 bitlik mikroişlemci etrafına kurulmuş basit bir sistem düşünelim. Örneğin bir CPU 16-bit adres hatlarını desteklesin, hafızanın 64K baytlık adreslemesine izin versin. Bu sistem ilk 32K'lık adres uzayını RAM'e, 16K'dan daha fazlasını ROM'a ve kalan kısmı farklı aygıtlara yani zamanlayıcılar, sayaçlar, video görüntü chipleri, ses aygıtları ve bunun benzerlerine paylaştırır. Sistemin donanımındaki adres veriyolu üzerindeki aygıtlar sadece kendilerine ait özel adreslere cevap verir, diğer adresler engellenir. Bu adres çözümleme devresinin bir işidir ve bu sistemin bellek haritasını oluşturur. Bazı basit çözümleme devreleri aygıtların çok farklı adreslere yanıt vermesine izin verir, memory haritası içinde farklı bölgelerde aygıtların etkin ama gerçek olmayan kopyalarını oluşturur. Sadece gerçek bir aygıt olduğundan basitleştirici çözücüler hariç bunu yapmanın ayrı bir avantajı yoktur. Kendisini çözümlemesi programlanabilir, yeniden şekillendirmek için kendi bellek haritası gereklidir. Genellikle bu yapılır.
Aygıt | Adres aralığı | Boyut |
---|---|---|
RAM | $0000 - $7FFF | 32K |
ROM | $8000 - $BFFF | 16K |
Genel Amaçlı G/Ç | $C000 - $C0FF | 256 bayt |
Ses Denetleyici | $D000 - $D0FF | 256 bayt |
Video Denetleyici | $E000 - $E7FF | 2048 bayt |
Örnek olarak eğer video denetleyicisinin dördüncü yazmacı ekranın arka plan rengini ayarlarsa, CPU bellek konumuna $E003 normal bellek komutunu yazarak bu rengi ayarlayabilir. Aynı metodu kullanarak RAM'in özel bir kısmına video denetleyicisi ile karakter değerleri yazılarak, ekranda karakterler görüntülenebilir.