Apa yang bisa dilakukan dsPIC yang tidak dapat dilakukan mikrokontroler PIC sederhana?

10

Saya belum menggunakan chip DSP. Yang saya tahu adalah bahwa arsitektur mereka sedemikian rupa sehingga mereka dapat melakukan perhitungan dengan cukup cepat, biasanya dalam satu siklus jam, mereka memiliki instruksi yang bertambah banyak dalam set instruksi mereka dan mereka memiliki DMA sehingga CPU tidak perlu membuang waktu yang berharga untuk memindahkan data. sekitar. Saya pikir ada lebih dari itu, tetapi ini adalah beberapa poin dasar.

Saya dapat melihat bahwa Microchip memiliki dsPIC yang merupakan lini chip DSP mereka. Tidak bisakah kita menggunakan PIC18 atau PIC32 yang juga memiliki pengganda untuk melakukan DSP juga? Bagaimana dsPIC berbeda dari PIC normal?

Pertanyaan utama saya adalah ini, Mengapa kita perlu memiliki sesuatu yang terpisah dan berbeda yang disebut chip DSP dan tidak mengintegrasikan kemampuan perhitungan unit floating point presisi tinggi pada semua mikrokontroler? Tentunya dengan teknologi proses yang kita miliki sekarang, ini seharusnya tidak memakan banyak ruang.

Juga, bagaimana saya tahu bahwa saya perlu menggunakan chip DSP dalam proyek saya daripada mikrokontroler normal>

quantum231
sumber
1
Ada jawaban bagus untuk pertanyaan serupa di sini: electronics.stackexchange.com/questions/3067/…
David

Jawaban:

3

Secara umum "DSP ..." berarti 'tenaga kuda yang lebih relevan dan / atau perangkat keras yang lebih relevan pada saat produk diperkenalkan .'
Prosesor umum cenderung untuk mengejar ketinggalan dengan perangkat spesialis lama.
DSPIC sudah berusia [lebih dari 10 tahun - Olin akan tahu.

[Item dalam kurung berhubungan dengan beberapa contoh DSPIC - tidak lengkap].

Dalam produk DSP mengharapkan beberapa campuran dari:
Mengharapkan hal-hal seperti barel shifter,
jalur pipa cepat lebar dan waktu eksekusi
satu siklus cepat, instruksi siklus tunggal lebar,
DMA [6 atau 8 saluran, buffer port RAM ganda] rentang pengalamatan memori linier besar [4 program Mword , Data 64 kB] fitur berorientasi aritmatika spesialis
Mungkin:
periferal khusus seperti kontrol motor,
perangkat keras untuk beberapa standar com yang berbeda [CAN, IIC, UART, IIS, AC97, ...] lebih dalam daripada buffer com biasa [4 byte] lebih cepat dan / atau lebih luas dari biasanya ADC [2 Msps, 10 atau 12 bit]

Anda akan menemukan sebagian besar ini dalam keluarga DSPIC - dan semakin meningkat dalam keluarga prosesor gp.
Dalam kasus ekstrem Anda mendapatkan mikrokode pengguna dan banyak lagi.

Russell McMahon
sumber
1
Jika saya ingat benar, saya pertama kali mendengar tentang upaya desain dsPIC pada tahun 1999, sampel pertama diberikan pada awal tahun 2002 dengan bagian-bagian produksi akhir tahun 2002 atau awal tahun 2003. Saya masih memiliki 30F2010 yang dikencangkan dengan tangan dalam paket DIP 28 pin keramik yang secara tidak sengaja dilabeli sebagai 30F6010. Itu hanya berjalan pada 1/3 kecepatan penuh akhirnya, dan ditandai sebagai # 55 atau sesuatu.
Olin Lathrop
1
Mereka juga dapat clock hingga 200 atau 260MHz sedangkan garis PIC hanya mendukung hingga 4 hingga 20MHz. Menjadi 10+ kali lebih cepat adalah hal yang perlu dipertimbangkan.
Havenard
1
@Havenard - Memperhatikan bahwa ini adalah T&J 2014: Dia menyebutkan PIC32 sebagai alternatif yang memungkinkan untuk DSPIC. PIC32MX 2007 memiliki Cmax (frekuensi clock maks) 80 MHz. PIC32MZ 2013 memiliki Cmax 252 MHz. || Berguna meskipun perbandingan tidak lengkap di sini {Wikipedia}.
Russell McMahon
11

Beberapa keuntungan dari dsPIC dibandingkan PIC arsitektur sebelumnya, seperti PIC 16 dan 18 keluarga:

  1. Jalur data 16 bit lebar dan ALU, sebagaimana ditambahkan ke 8.

  2. Kemampuan untuk mengatasi secara langsung (versi selanjutnya dari kedua arsitektur memperluas ini dengan berbagai cara yang tidak jelas) lebih banyak memori data. PIC 16 dasar dapat mengatasi 128 byte secara langsung, 512 dengan perbankan. PIC 16F1xxx yang lebih baru telah memperluas perbankan untuk memungkinkan menangani lebih banyak memori data. Arsitektur PIC 18 terbatas pada 4k byte. Arsitektur dsPIC dapat menangani 64k byte atau 32k 16-bit kata-kata secara langsung, meskipun karena berbagai alasan hanya setengah dari yang tersedia untuk RAM dalam arsitektur dasar. Skema perbankan dalam beberapa model selanjutnya telah memperluas itu.

  3. Lebih cepat. 30F asli dapat berjalan pada 30 MIP, dengan 40 bagian MIP menjadi norma sekarang. Seri E baru dapat berjalan hingga 70 MIP, meskipun ada lebih banyak alasan mungkin menunda menunggu sesuatu daripada model yang lebih lambat sebelumnya. Mereka masih secara signifikan lebih cepat rata-rata.

  4. Kemampuan DSP. Mesin DSP memiliki dua akumulator 40-bit dan perangkat keras biasa untuk melakukan urutan operasi MAC pada array satu MAC per siklus instruksi (lihat jawaban Dave Tweed). MAC dan instruksi terkait tumpang tindih pengindeksan array dan penghentian loop dengan akumulasi multiply yang sebenarnya.

  5. 15 "register kerja" yang dapat digunakan oleh perangkat lunak, bukan register 8-bit W tunggal dari arsitektur PIC 8 bit.

  6. Barrel shifter.

  7. Siklus tunggal 16x16 -> 32 bit dikalikan.

  8. Kesenjangan perangkat keras. Operasi 32 div 16 -> 16 bit membutuhkan 18 siklus.

  9. Banyak instruksi 3-operan. Misalnya, Anda dapat menambahkan konten dari dua register yang berfungsi dan menempatkan hasilnya menjadi yang ketiga, semua dalam satu siklus. Ini berlaku untuk sebagian besar operasi matematika, logika, dan shift.

  10. Secara keseluruhan set instruksi lebih teratur dan simetris.

  11. Interupsi vektor. PIC 16 memiliki vektor interupsi tunggal, dan PIC 18 memiliki dua. Pada bagian 16 bit (PIC 24, dsPIC 30 dan 33), setiap sumber interupsi memiliki vektor sendiri. Ini mengurangi latensi dalam rutin interupsi karena tidak perlu menghabiskan siklus mencari tahu mana interupsi untuk layanan.

    Ini juga memungkinkan untuk arsitektur perangkat lunak yang lebih baik. Rutin interupsi untuk periferal tertentu dapat berada dalam modul yang sama dengan kode lain yang menangani periferal itu, alih-alih harus memiliki satu rutin interupsi global.

  12. Berbagai keunggulan lain yang jatuh dari arsitektur yang lebih luas.

Olin Lathrop
sumber
8

Biasanya, fitur pembeda utama DSP bila dibandingkan dengan CPU serba guna adalah bahwa DSP dapat menjalankan operasi pemrosesan sinyal tertentu dengan sedikit, jika ada, siklus CPU yang terbuang pada instruksi yang tidak menghitung hasil.

Salah satu operasi paling mendasar dalam banyak algoritma kunci DSP adalah operasi MAC (multiply-akumulasi), yang merupakan langkah mendasar yang digunakan dalam produk matrix dot and cross, FIR dan IIR filter serta FFT. DSP biasanya memiliki register dan / atau organisasi memori dan jalur data yang memungkinkannya melakukan setidaknya 64 operasi MAC pada pasangan data unik secara berturut-turut tanpa ada jam yang terbuang pada loop overhead atau pergerakan data. CPU tujuan umum umumnya tidak memiliki cukup register untuk menyelesaikan ini tanpa menggunakan instruksi tambahan untuk memindahkan data antara register dan memori.

Dave Tweed
sumber
1
+1 untuk penekanan pada operasi MAC. Ini tidak diragukan lagi inti dari sebagian besar operasi DSP.
Matt Young