Mesajlar Etiketlendi ‘DMA’

DMA (direct memory access) daha öncedeki yazılarımda da bahsettiğim gibi doğrudan bellek erişimi anlamına gelen bir isimlendirmedir. Bazı mikrodenetleyicilerde bu birim bulunur ve işlem yükünü azaltma konusunda oldukça işe yarar.  Hafızadaki verilerin bir yerden başka bir yere taşınması gibi zaman kaybı yaratan işlemleri CPU’ya yaptırmak mikrodenetleyiciye zaman kaybettirerek işlem gücünü azaltmaktadır.  DMA tam olarak burada devreye girerek verilerin hafızada bir yerden bir yere taşınması işlemini üstlenir ve mikrodenetleyici içerisindeki  CPU’yu  ( STM32F407 için konuşursak CPU+FPU’yu)  veri taşıma işlemlerinden kurtarır.

STM32F407 mikrodenetleyicisinde herbirinde 8’er adet akaç (-Stream, türkçe karşılığı yok malesef. Ben de bu sebeple “akaç” kelimesini uydurdum. Veri akışı için kullanılan bir terimdir “Stream” ) bulunan  DMA1 ve DMA2 isminde iki adet DMA birimi bulunur. Bu birimler

  • Peripheral to Memory ( Çevrebirimden hafızaya)
  • Memory to memory (Hafızadan hafızaya)
  • Memory to peripheral (Hafızadan çevrebirime)

veri aktarmaya olanak sağlarlar.  Bu birimler ayrıca Circular buffer management (Dairesel tampon yönetimi) özelliğine de sahiptirler. Bu sayede veri akışının sonuna gelindiğinde , daha açık ifade edecek olursak tampondaki gönderilecek  veri adedinin sonuna gelindiğinde otomatik olarak başa dönerek tekrar harici bir işlem yapmaya gerek kalmadan veri aktarımına devam edebilirler.  DMA aşağıdaki çevresel birimlerle birlikte çalışabilmektedir; (daha&helliip;)

AdsızGelişmiş bilgisayarların çoğunda bulunan bir yapı olan doğrudan bellek erişimi (DMA), CPU’dan bağımsız olarak verileri bir yerden başka bir yere kopyalama işlemi yapılmasına olanak sağlayan bir yapıdır. Mikrodenetleyiciler de aslında komple bir bilgisayar oldukları için, gelişmiş mikrodenetleyicilerin içerisinde de DMA bulunmaktadır.  Özellikle yoğun işlemlerin yapıldığı bir projede CPU’nun bir de bellekteki verileri çevresel birimlere , çevresel birimlerdeki verileri başka çevresel birimlere, çevresel birimlerdeki verileri belleğe veya belleğin bir kısmından başka bir kısmına veri taşıma işlemleri ile uğraşması işlemcinin zaman kaybetmesine yol açacaktır.  Bu zaman kaybını önlemek ve işlemciyi veri kopyalama işlemleri ile uğraştırmamak amacıyla DMA kontrolcüsü kavramı ortaya çıkmıştır. Bu yapı mikrodenetleyiciler içerisinde bulunur ve kullanıcı istekleri doğrultusunda programlanarak verilerin istenilen kaynaktan, istenilen hedefe aktarılması işlemini gerçekleştirir. (daha&helliip;)