noimage

İçeriği Paylaş:

Bellek Eşlemeli G/Ç (Memory Mapped İ/O)

Bellek Eşlemeli G/Ç (Memory Mapped  İ/O)İşlemcinin kontrolcünün yazmaçlarını okuyup buralara veri yazabilmesi için iki seçeneği vardır.Birinci olarak, her kontrol yazmacının bir port(kapı) numarası vardır. I/O işlemleri için özel assembly komutları kullanılır.IN REG,PORT OUT PORT,REG gibi.Bu sistemde bellek ve I/O için kullanılan adres uzayı farklıdır. image004Birinci   yöntem                                                                                                                İkinci yöntemİkinci yaklaşımda, tüm kontrol yazmaçları bellekteki belli bir alan ile eşleştirilirler.Her kontrol yazmacı belirli bir adrese atanır.Bu sisteme bellek eşlemeli G/Ç (memory mapped I/O) denilir.Bu şekilde işletim sistemi kullanıcı süreçleri ile I/O işlemleri arasındaki korumayı kolaylıkla gerçekleştirir. yazmaçların bulunduğu bellek alanını kullanıcının sanal bellek uzayına koymayarak kullanıcının bu alanları direkt kullanmasına engel olur.Doğrudan Bellek Erişimi (DMA-Direct Memory Access)İşlemci doğrudan aygıt sürücüsünü kullanırsa her seferinde I/O verisini alacak ve örneğin belleğe koyacaktır. işlemci bu işlemlerde verinin içeriğini hiç kullanmaz. Taşıma için işlemci zamanı israf edilmiş olur.Bu durumlarda işlemci eğer var ise, kontrolcü üzerindeki DMA yı kullanır.Her aygıt için farklı DMA olabileceği gibi, birden fazla aygıt için ortak bir DMA da olabilir.DMA sistem yoluna(bus) işlemciden bağımsız olarak erişebilen bir donanımdır.image006DMA’da işlemci tarafından okunup/ değiştirilebilen birkaç yazmaç vardır. Bir bellek yazmacı, bir sayaç yazmacı, bir veya daha fazla kontrol yazmacı vardır.DMA olmadan yapılacak disk okuma işlemi şu şekilde gerçekleşir;Kontrolcü aygıttan verileri okur, okuduğu verileri bit bit kendi içindeki tampon(buffer)’a koyar. Okunan veride hataolup olmadığını kontrol eder. Veri depolandıktan sonra işlemciye bir kesme(interrupt) gönderilir.İşletim sistemi bu kesme sonucunda kontrolcünün iç yapısından bu veriyi okur ve belleğe yazar.DMA kullanıldığında durum biraz farklıdır; işlemci DMA yı programlar. Bu program, DMA ya nereden hangi veriyi alacağını, nereye koyacağını belirtir.İşlemci DMA ile birlikte okumak istedği aygıta da(örneğin disk) gerekli bilgileri gönderir, böylece aygıt okuduğu verileri iç tamponuna koyar.DMA işlemci gibi davranarak aygıta (örn: disk kontrolcüsüne) okuma (read) komutunu gönderir. Disk kontrolcüsü veriyi belleğe koyar ve DMA yı bilgilendirir. DMA kontrolcüsü sayacı bir azaltır ve sonraki bellek bilgisini disk kontrolcüsüne gönderir. Sayaç=0 olduğunda DMA işlemciye kesme(interrupt) gönderir.

İçeriği Paylaş:
İlginizi Çekebilir
Yorum Yapılmamış

Henüz Hiç Yorum Yapılmadı..

Yorum Yaz

Bellek Eşlemeli G/Ç (Memory Mapped İ/O)

İşletim Sistemleri

23/08/2017 | Yorum Yok | 54 | Mustafa Küçükakarsu