DSP

Başlatan serdarkaradeniz, 26 Mayıs 2005, 15:25:00

fatihinanc

Alıntı yapılan: z - 18 Nisan 2012, 01:07:08
Yanlis hatirlamiyorsam FTDI ciplerin basitce JTAG port olusturma gibi bir islevi de vardi. Bu bilgiyi FTDI nin sitesinde gordugumu saniyorum.

Belki bu ozellik diger firmalarin USB ciplerinde yoktur.

Evet ben de bu sebeple FTDI kullanıyorlar diye biliyorum. Mesela TMS320F28027ve ya 069 Control Stick'lerde de aynı şekilde kullanılıyor. Sadece FTDI çipi ile CCS ten debug yapmak mümkün.
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

zaga

#16
DSP si olan islemciler de, mesela dsPicler de 2 float sayiyi carparken chip dsp sini otomatik olarak mi kullaniyor? yoksa dsp yi kullanmak icin extra birseylermi yapmak gerekiyor?
Yani sunu merak ediyorum. Ayni nesil ve ayni hizda 2 tane islemcimizin oldugunu var sayalim.

float a=12.456;
float b=78.456;
float c;

c= a*b;


2 islemcidede bu kodu calistirdigimizi var sayalim. CPU clock umuz, komut isleme hizlarimiz ayni ve islemcilerimiz ayni nesil. Sadece birinde DSP yok digerinde var. DSP li olan bu carpma komutunu daha hizli mi isler ?

iyildirim

dsPIC lerde float sayılarla işlemlerde DSP kullanılamıyor. DSP işlemleri yapmak için fractional tipinde sayılar kullanmak zorundasınız ve DSP instructionları kullanılmalı ve otomatik olarak derlenmiyor.
DSP işlemi yapabilmek için CORCON üzerinden fractional işlem moduna alıp verilerinizi X, Y bellek bölgelerinden okumak için uygun registerleri kullanmak gerekiyor.  Tek bir çarpma işlemi için DSP kullanmak mantıklı da değil zaten..  matris işlemleri gibi sıralı işlemlerde perfomans sağlar. Bunun dışında dsPIC serisi çarpma komutlarını zaten tek clock da işleyebiliyor. 


zaga

#18
Yani sormak istedigim sey aslinda su idi. dspic yada herhangi bir islemci farketmez. Icerisinde dsp bulunan islemcilerde dsp yi kullanmak icin extra birseyler yapmak gerekiyormu? yoksa diyorum ya zor bir math. islem yapiyoruz. Islemci otomatik olarak mi dsp yi kullaniyor ?

muhittin_kaplan

Alıntı Yap•Core: ARM 32-bit Cortex™-M4 CPU with FPU, Adaptive real-time accelerator (ART Accelerator™) allowing 0-wait state execution from Flash memory, frequency up to 168 MHz, memory protection unit, 210 DMIPS/1.25 DMIPS/MHz (Dhrystone 2.1), and DSP instructions

32F407VG yani ülkecek kullandığımız discovery setlerdek işlemci için yazılmış açıklama. FPU -Floating Processor (yada Point) Unit ne iş yapar ?
Ordaki DSP inst. felan diyor o nedir ?

z

Alıntı yapılan: Zaferlerim - 18 Nisan 2012, 16:06:09
Yani sormak istedigim sey aslinda su idi. dspic yada herhangi bir islemci farketmez. Icerisinde dsp bulunan islemcilerde dsp yi kullanmak icin extra birseyler yapmak gerekiyormu? yoksa diyorum ya zor bir math. islem yapıyoruz. Islemci otomatik olarak mi dsp yi kullaniyor ?


Kullandığın işlemci DSP ise zaten komutları DSP komutları olur.  NOP gibi sıradan bir komut bile DSP komutudur.

Yok STM32F4 serisindeki gibi DSP olmayan fakat DSP komutları içeren bir işlemcide ise DSP komutları ile anlatılmak istenen carp ve topla gibi komutları içermesidir.

DSP ler sıradan işlemcilerden farklı olarak komutların nerede ise tamamını tek cycle da işleyecek şekilde oluşturulmuştur.
STM32F4 DSP komutları içerse de bir DSP ile kapışacak güçte değildir.

ASM ile kodlama ayaparken DSP komutlarını kullanmak için ilave bir şey yapmanıza gerek yok. Sonuçta bunları da diğer komutlar gibi kullanmak yeterli. C de ise bu komutları kullanan komutları kullanmak yeterli.

C Derleyicide belki DSP komutlarını kullan yada kullanma gibi bir çentik vardır.

Float komutlar da işlemcinin diğer komutları gibi komutlar. ASM kodlama yaparken komutları doğrudan yazar geçersiniz. Bu komutların kullanımında klasik işlemci registerlerinden ayrı olarak float registerler işin içine giriyor.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

iyildirim

Alıntı yapılan: Zaferlerim - 18 Nisan 2012, 16:06:09
Yani sormak istedigim sey aslinda su idi. dspic yada herhangi bir islemci farketmez. Icerisinde dsp bulunan islemcilerde dsp yi kullanmak icin extra birseyler yapmak gerekiyormu? yoksa diyorum ya zor bir math. islem yapıyoruz. Islemci otomatik olarak mi dsp yi kullaniyor ?

İşlemci daha doğrusu derleyici otomatik olarak DSP kullanmıyor. Bu işlemciden ziyade derleyicinin yapabileceği birşey..  Ancak otomatik olarak math işlemlerinin  DSP olarak işletilmesini optimizasyon vs. ler ile başarılı olarak yapılabileceğini de düşünmüyorum..

Artık çoğu DSP destekli işlemcide bölme dışındaki işlemler tek clock da zaten yapılabiliyor.  DSP nin farkı sıralı işlemlerde ortaya çıkıyor.

Normalde bir çarpma işlemi için iki ayrı registere pointerler veya değerler yüklenir. Sonra çarpma işlemi gerçekleştirilir. 
Değerler pointer olarak gösterilmek şartı ile,  DSP işleminde de başlangıç  aynı  şekilde. 
Farkı ise instruction işletilmeden önce veya işletildikten sonra poniterleri arttırma ve eksiltme işlemi ve pointerlerin gösterdiği yeni adresten verilerin okuması ve saturasyon işlemleri de aynı clock da yapılabiliyor..

Eğer tek bir çarpma işleminden bahsediyorsak görüldüğü gibi DSP instruction kullanmanın bir avantajı yok.. Zaten normal çarpma işleminde de iki değer okunduktan sonra tek clock da çarpma ve saturasyon yapılabiliyor. DSP kullanırsanız artı olarak bir sonraki işlem için gereken ön hazırlık da aynı clock içerisinde yapılabiliyor. Yapıyı daha iyi anlamak için pipeline mekanizmasına bakılabilir.

Bunu sağlamak için işleme girecek iki ayrı operand'ın daha doğrusu dizinin, bellekte özel bölgelerde tutulmaları gerekiyor.  dsPIC ler veya diğer DSP işlemcilerde iki ayrı adres generatörü bulunuyor. dsPIC lerde X ve Y olarak adlandırılıyor. İşleme girecek dizilerin biri X bölgesinde diğeri de Y bölgesinde tutuluyor.

Hangi değişkenlerin nerede tutulacağı tasarlanmadan DSP işlem yapılamıyor.  Ki bunu derleyicinin yapması ne kadar mümkündür ve ya başarılıdır tartışılır.


Alıntı yapılan: muhittin_kaplan - 18 Nisan 2012, 16:15:14
32F407VG yani ülkecek kullandığımız discovery setlerdek işlemci için yazılmış açıklama. FPU -Floating Processor (yada Point) Unit ne iş yapar ?
Ordaki DSP inst. felan diyor o nedir ?

STM32F4 deki FPU single precision floating point işlem yapabiliyor.  Uygun tipte değişkenlerle işlemlerde FPU kullanımı otomatik olarak gerçekleştirilir gibi birşey okumuştum. DSP için genel kurallar bu işlemcide de geçerli.

Ben yazana kadar cevaplar gelmiş ama o kadar yazdım, ziyan olmasın..

atioky_216

Alıntı yapılan: fatihinanc - 18 Nisan 2012, 01:13:18
Evet ben de bu sebeple FTDI kullanıyorlar diye biliyorum. Mesela TMS320F28027ve ya 069 Control Stick'lerde de aynı şekilde kullanılıyor. Sadece FTDI çipi ile CCS ten debug yapmak mümkün.

Sadece CCS mi bu desteği veriyor Fatih Bey? Bildiğim kadarı ile msp430 serisi kullanmışlığınız var, fet-uif olmadan CCS yada IAR'da hiç debug yapabildiniz mi? Yada en azından bir kaynak gösterseniz de incelesem... FDTI hakkında herşey olabilir, örnek araştırdığım eeprom programı yazılması gibi mesela

fatihinanc

Alıntı yapılan: atioky_216 - 19 Nisan 2012, 17:55:45
Sadece CCS mi bu desteği veriyor Fatih Bey? Bildiğim kadarı ile msp430 serisi kullanmışlığınız var, fet-uif olmadan CCS yada IAR'da hiç debug yapabildiniz mi? Yada en azından bir kaynak gösterseniz de incelesem... FDTI hakkında herşey olabilir, örnek araştırdığım eeprom programı yazılması gibi mesela

Merhaba,
Sorunuza geç bir cevap olacak ama eski başlıkları karıştırırken farkettim. Birazcık konu dışı olacak ama...

FET430-UIF'den başka Elptronic diye bir firmanın MSP430 lar için bir programlayıcısı var. Bu firma yazılım desteği de sağlıyor ama kısıtlı. Ayrıca programlayıcıları da çok ucuz değil. FET almak daha mantıklı...
Yine aynı şekilde Olimex'in de mevcut. Olimex'de paralel port programlayıcı da var...

Bir de ücretsiz açık kaynak GoodFET diye bir programlayıcı var. Linux altında bu programa göre çalışan yazılımlar da var. Bu programlayıcı TI FET430 larına pek benzemiyor aslında. Programlayıcı çip olarak MSP430F2618 ve USB-Serial entegresi olarak da FT232 kullanmışlar. Şu şekilde;


Onun haricinde başka bir programlayıcı var mı bilmiyorum. Dangerous Prototypes'da bir ara Bus Pirate ise protokol çözme gibi birşeyler vardı ama tam hatırlamıyorum.

Kolay Gelsin.
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

fatihinanc

Konuyla ilgili olarak bir gelişme aktarayım;
TI çalışanlarından biri aynı LaunchPad gibi bir tasarımı C2000 için de yaptıklarını söylemiş. Hatta bir de resim paylaşmış :)
Bu forumda konuşulmuş : http://www.forum.c2kcentral.com/index.php?/topic/2-hi/page__p__122



Yukarı kısım yine FTDI Emulator ;)

Bu fikir aslında çok iyi ama C2000 ve TI'a bağımlı kalmamak için bence de ARM öğrenmek daha mantıklı. Eğer çok yüksek hız gerekmiyorsa tabi...

Selamlar...
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

fatihinanc

Yukarıda bahsettiğim kit satışa sunulmuş. Fiyat $17.

http://www.ti.com/tool/launchxl-f28027

Üzerinde TMS320F28027 kullanmışlar. Bendeki ControlSTICK i kullandığım zamanlarda bu çipin dökümantasyonu çok iyi değildi. Ve biraz karmaşıktı. Şimdi çoğu dökümanı elden geçirmişler ;) Örnek olarak aşağıya birkaç video ekliyorum.

http://youtu.be/Oxlh3ef5uq0

http://youtu.be/2IyPz3zPb7U

http://youtu.be/l4NFJwtLy8U
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

jrcapa

Alıntı yapılan: z - 18 Nisan 2012, 17:20:08
DSP ler sıradan işlemcilerden farklı olarak komutların nerede ise tamamını tek cycle da işleyecek şekilde oluşturulmuştur.
STM32F4 DSP komutları içerse de bir DSP ile kapışacak güçte değildir.

ARM mı DSP mi diye başlık açacaktım:

Cok hassas analog sinyal ölçümü,filtrelemesi, örneklemesi vs. ile uğraşacağım. STM32F429 ile daha önce çalıştım ancak DSP önerildi. ARM ile çok mu farkı var, sinyal parazitlerini yok etme,hassasiyet,sıcaklıktan etkilenme,emc dayanımı gibi konularda? Kısacası bu  işi ARM ile yapsam olmaz mı?