I/O Metotları

Vikipedi, özgür ansiklopedi
Atla: kullan, ara

Bellek haritalı I/O (Memory-mapped I/O (MMIO))[değiştir | kaynağı değiştir]

Bellek haritalı I/O ve bağlantı kapılı I/O (port I/O (PMIO)) bilgisayarda CPU ve I/O aygıtları arasındaki I/O işlevini yerine getirmek için kullanılan iki metottur. Başka bir metot ise ayrı bir I/O işlemcisi kullanılarak yapılan bir metottur. (IBM'in büyükboy bilgisayarlarında kullanılmaktadır.

Bellek haritalı I/O, bellek ve I/O aygıtları arasında I/O işlemleri için tek bir veriyolu kullanır ve I/O aygıtlarına erişim için CPU talimatlarından yararlanır. CPU I/O aygıtlarına hafızadan daha fazla yer ayırır. I/O aygıtları CPU'nun adres veri yolunu gözlemler ve CPU'nun atanan adres alanlarına erişimine yanıt verir. I/O aygıtları adresleri donanım yazmaçları ile eşler.

Bağlantı kapılı I/O, I/O işlemlerini yerine getirmek için CPU'nun özel birimlerini kullanır. Bağlantı kapılı I/O Intel microişlemcilerde bulunmaktadır. Bu sayede CPU giriş ve çıkış talimatları ile I/O aygıtından bir byte okuma ve yazma yapabilmektedir.

Bellek haritalı I/O ve bağlantı kapılı I/O Metotlarına ilişkin yararlar[değiştir | kaynağı değiştir]

Bağlantı kapılı I/O'daki en önemli avantaj CPU üzerinde limitli adresleme yeteneğidir. Çünkü bağlantı kapılı I/O, I/O'a erişim ile memory erişimini ayırabilmektedir.

Bellek haritalı I/O'daki avantaj ise bağlantı kapılı I/O'nun getirdiği fazla karmaşıklığı yok edebilmesidir. Bu sayede CPU daha az dahili 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 bir ç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ı I/O $C000 - $C0FF 256 bytes
Ses Denetleyici $D000 - $D0FF 256 bytes
Video Denetleyici $E000 - $E7FF 2048 bytes

Ö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.

Bakınız[değiştir | kaynağı değiştir]

Kaynakça[değiştir | kaynağı değiştir]