Gömülü sistemler günümüzde neredeyse bütün elektronik cihazların bünyelerinde bulunur. Bu sistemler, içinde bulunduğu cihaza akıllılık özelliğini veren yapılardır. Bu işlemi düzgün bir şekilde yerine getirebilmek için yapılarında pek çok donanım bulundurur. Bu donanımların içinde önemli olanlardan biri DMA yapısıdır. Şimdi bu yapıyı biraz inceleyelim.
İşlemci Çalışma Yapısı
Mikrodenetleyiciler yapılarında tek bir çekirdek bulundurur. Bu da gömülü bir cihazın paralel olarak farklı işlemleri aynı anda yerine getiremeyeceği anlamına gelir. Bu sebeple işlemci herhangi bir çevre birimi ile işlem gerçekleştirecekse o iş ile ilgilenir. Çünkü işlemleri sequential (sıralı) bir biçimde yerine getirir. İşte burada devreye DMA girer.
Nedir?
Açılımı ” Direct Memory Access”. Türkçe’ye “Doğrudan Bellek Erişimi” olarak çevrilebilir. Bir mikrodenetleyice, üzerinde sürmesi zaman alan işlemler konusunda yardımcı bir donanım görevi görür. Bu olaya en güzel örnek olarak UART haberleşmesi verilebilir. UART uzerinden alınacak datanın uzunluğuna ve haberleşmenin baud hızına bağlı olarak veri alımı çok uzun sürebilir. Böyle bir durumda direkt olarak işlemcinin UART hattını dinlemesi, yapması gereken diğer işlemlerde önemli gecikmelere sebebiyet verebilir ve sistemin çalışma prensibinde bozulmalar ortaya çıkabilir. Ama eğer yapılacak işlem DMA üzerinden gerçekleştirilirse işlemcinin tek yapması gereken Dma ayarlarını yapmak ve gerekli adresleri belirlemek.
Nasıl Çalışır?
Dma aşağıdaki görüntüden anlaşılacağı gibi mikrodenetleyicinin içinde ayrı bir birim olarak görev alır. İşlemci yapılacak işleme göre Dma’ye gerekli ayarları set eder. Bu ayarlar, verinin uzunluğu,alınan verinin depolama adresi ve mod ayarlarıdır. Artık yapılacak işlemde merkezi işlem birimi aradan çıkmış olur.
Dma içinde bir kontrolcü bulunur. Bu kontrolcü direkt olarak bellekten çevre birimine okuma ve ya yazma işlemini gerçekleştirir. Bu işlemi yerine getirirken gerekli olan busların(hatların) kontrolünü ayarlanışına göre işlemciden devralır. Alınan veriler, başlangıçta belirlenen adreslerden itibaren belleğe yerleştirilir ve gerekli iterasyon işlemleri yerine getirilir. Sonunda veri sayısı başlangıçta ayarlanan boyuta ulaşınca Dma kontrol birimi işlemciye, işin tamamlandığı bildiren bir interrupt(kesme) gönderir ve işini tamamlamış olur.
Genel çalışma yapısına baktığımız Dma, tek çekirdekli işlemci bulunduran sistemlerde olmazsa olmaz bir yapıdır. Giriş çıkış birimleri ile bellek üzerinde doğrudan iletişim imkanı sağlayıp işlemciyi aradan çıkartarak sistem yükünde büyük bir hafiflemeye neden olur.
Kaynakça
itu.edu.tr
techopedia.com

