dsp microcontroller lar neden kullanılır?

Başlatan mir_as82, 11 Ağustos 2014, 11:26:02

mir_as82

Digital Signal Processing Microcontroller  lar neden kullanılır? Bu mikrodenetleyiciler in içinde iki çekirdek mi vardır? İki çekirdek varsa bunlar arasındaki ilişki nasıldır?
Bu konu ile ilgili türkçe veya ingilizce görsel eğitim videoları veya görsel içeriği fazla olan döküman tavsiye edebilir misiniz?

skara1214

Alıntı yapılan: mir_as82 - 11 Ağustos 2014, 11:26:02
Digital Signal Processing Microcontroller  lar neden kullanılır? Bu mikrodenetleyiciler in içinde iki çekirdek mi vardır? İki çekirdek varsa bunlar arasındaki ilişki nasıldır?
Bu konu ile ilgili türkçe veya ingilizce görsel eğitim videoları veya görsel içeriği fazla olan döküman tavsiye edebilir misiniz?
dsp lerin tek kullanım nedeni matematiksel işlemlere özel birimlerinin olmasıdır yani sen 16 bit *16 bit bir işlemi normal bir kodda koştururken sallıyorum 30 cycle alırken  dsp birimiyle 2-3 cycle tutar
Herkes ölür ama herkes gerçekten yaşamaz

Erol YILMAZ

DSP Mcu lar içinde DSP komutlarını daha hızlı yapabilecek donanımlara sahiptir.

http://www.analog.com/static/imported-files/seminars_webcasts/MixedSignal_Sect7.pdf

Misal MAC, single-cycle multiply/accumulate gibi özellikler...

mir_as82

#3
Normal kodu işleten CPU ile bu matematiksel kodlari işleten CPU ayni mi? Yani çekirdek bir tane mi?

mesaj birleştirme:: 11 Ağustos 2014, 12:30:43

Yada biz kodu yazarken zor işlemi veya efektif olmasini istedigimiz islemi DSP birimi ne yönlendir, şu işlemi DSP birimi yapmasın mi diyoruz?

Erol YILMAZ

Alıntı yapılan: mir_as82 - 11 Ağustos 2014, 12:27:48
Normal kodu işleten CPU ile bu matematiksel kodlari işleten CPU ayni mi? Yani çekirdek bir tane mi?

mesaj birleştirme:: 11 Ağustos 2014, 11:30:43

Yada biz kodu yazarken zor işlemi veya efektif olmasini istedigimiz islemi DSP birimi ne yönlendir, şu işlemi DSP birimi yapmasın mi diyoruz?

Öncelikle hangi DSP MCU'dan bahsediyoruz ?
İhtiyaca göre çeşitli tasarımlar yapılmıştır... Çeşit vardır. Genel birşey söylemek mümkün olmayabilir.

mir_as82

Anladım. Yani yapılacak işe göre DSP MCU lar seçiliyor.

Erol YILMAZ

#6
Alıntı yapılan: mir_as82 - 11 Ağustos 2014, 13:30:18
Anladım. Yani yapılacak işe göre DSP MCU lar seçiliyor.

Bence,
Motion controller ile ses veya görüntü işleme DSP leri farklı donanımlara ağırlık vermiş olabilir.
FPGA ise tasarımda daha zor olmasına rağmen,
ihtiyacın hepsi aynı çip içinde toplanabilirse, verimlilik açısından zirve yapacak ürünlere izin verebilir.

Bunları kullanan arkadaşlar daha iyi fikir verebilir...

ferdem

İsimlendirme şuradan geliyor: Digital Signal Processor dijital sinyal işleme amaçlı bir donanım. Dijital sinyal işleme ise sayısal verileri belirli katsayılarla çarpıp sonuçların toplanmasıyla yapılıyor.
Örneğin girişi x dizisi çıkışı y dizisi olan bir DSP şu işlemi yapıyor olabilir: y[n]=A*y[n-1]+B*y[n-2]+C*x[n]+D*x[n-1]
Görüldüğü üzere işlemcinin sürekli çarpıp toplaması gerekiyor ki mikrodenetleyiciler için çarpım işlemi çok çevrim alan işlemdir, bu işlemin hızlı yapılması için MAC(multiply and accumulate) modülü geliştirilmiş. DSP nin işlem kabiliyeti MAC modülünden geliyor. En yalın haliyle DSP=mikrodenetleyici+MAC modülü denilebilir.


z

[ADR] nin anlamı ADR adresindeki veriyi okumak olsun.

DSP de şu işlemler tek "cycle"da yapılabilir.

[ADR+1]=[ADR]   Bu Y(n-1)=Y(n) yani ötelemeye denk gelir.

Accumulator=[ADR]<<n     bu memoryden okunacak veriyi kaydırarak okuma anlamına gelir ki scala işlemidir.

[ADR]=Accumulator<<n     bu da acumulatordeki veriyi kaydırıp yazma demektir.

Acculumator= (P*T)<<n gene tek cycledır.

Accumalator=Accumalator + (P*T)<<n

Acculumator= (P*T)<<n , P=[Adr] gene tek cycle dır.

En önemlisi de saturasyon işlemleridir.

İstenirse, toplama sonucunda overflow olduysa sonuç max değerde sabitlenir. Bunun için ekstra işlem yapmanız gerekmez. Örneğin 16 bit verilerde 0x7FFF + 1 işlemi DSP de 0x7FFF sonucunu verir.

DSP de yaygın MCUlardan faklı olarak Accumlatorlerin uzunluğu mimarideki bit uzunluğunun 2 katıdır.

Örneğin 16 bit DSP de Accumulatorler 32 bitdir.

DSP lerde varsa ADC vs dehşet hızlıdır. 100ns, 200ns de bir çevrim gibi.

Ramın bazı bölgelerine tek cycleda 2 erişim yapabilirsiniz.

Fakat tüm bu iyi özellikler, DSP frekansının 2..4 katı hızda koşan bir işlemci ile de aynı zamanda yapılabilir.

Yaklaşık 10 yıldır sadece DSP kullanarak proje geliştirirken ARM CM3 serisine geçince fazla bir kaybım olmadı hatta kazanımlarım oldu. Hele hele CM4 serisi kullanılırsa DSP ihtiyacına gerek kalmayabilir.

Genel konuşursak, DSP işlemcilerin MPU yetenekleri fazla değil. Page adresleme vsden dolayı  DSP ile MPU işlemleri yapmak biraz sıkıntılı.

Yok DSP yi sadece DSP olarak kullanacağım ve MCU ya yardımcı kullanacağım derseniz o zaman iş değişiyor.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Icarus

ARM -> Neon
Intel -> MMX, SIMD, SIMD2
AMD -> 3dfxNow
etc...

kantirici

Peki bir C derleyicisi kullanıyor olalım, bir dsp için veya içinde dsp komutları bulunduran bir mikrodenetleyici için. Yazdığımız C komutları direk dsp komuları ile eşleştiriliyor mu? Yoksa illa asm ilemi yazmak gerek dsp rutinlerini.

Tagli

DSP işlemciler hakkında çok bilgim yok, bildiklerim dsPIC30F ile sınırlı ama anladığım kadarıyla XC16 doğrudan bir eşleştirme yapmıyor. Ancak XC16 ile gelen DSP kütüphanesi ASM ile yazılmış. Bunlar kullanıldığında söz konusu işlemler donanımdan faydalanılarak performanslı bir şekilde yapılabiliyor.
Gökçe Tağlıoğlu

z

Alıntı yapılan: kantirici - 11 Ağustos 2014, 17:00:02
Peki bir C derleyicisi kullanıyor olalım, bir dsp için veya içinde dsp komutları bulunduran bir mikrodenetleyici için. Yazdığımız C komutları direk dsp komuları ile eşleştiriliyor mu? Yoksa illa asm ilemi yazmak gerek dsp rutinlerini.

C de özel kütüphane gerekiyor diye hatırlıyorum. Örneğin saturasyon aritmetiği kullanacaksan ilgili kütüphaneden fonksiyon çağırman gerekiyordu.
ASM ile yazarsan tadından yenmiyor.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com