Sejujurnya, garis antara keduanya hampir hilang saat ini dan ada prosesor yang dapat diklasifikasikan sebagai keduanya (AD Blackfin misalnya).
Secara umum:
Mikrokontroler adalah prosesor matematika integer dengan sub sistem interupsi. Beberapa mungkin memiliki unit perkalian perangkat keras, beberapa tidak, dll. Intinya adalah mereka dirancang untuk matematika sederhana, dan sebagian besar untuk mengontrol perangkat lain.
DSP adalah prosesor yang dioptimalkan untuk pemrosesan sinyal streaming. Mereka sering memiliki instruksi khusus yang mempercepat tugas-tugas umum seperti bertambah banyak dalam satu instruksi. Mereka juga sering memiliki instruksi vektor atau SIMD lainnya. Secara historis mereka tidak mengganggu sistem berbasis dan dioperasikan dengan sistem memori non-standar dioptimalkan untuk tujuan mereka membuat mereka lebih sulit untuk diprogram. Mereka biasanya dirancang untuk beroperasi dalam satu lingkaran besar yang memproses aliran data. DSP dapat dirancang sebagai integer, titik tetap atau prosesor titik mengambang.
Secara historis jika Anda ingin memproses stream audio, stream video, melakukan kontrol motorik cepat, apa pun yang diperlukan memproses aliran data dengan kecepatan tinggi Anda akan melihat ke DSP.
Jika Anda ingin mengontrol beberapa tombol, mengukur suhu, menjalankan LCD karakter, mengontrol IC lain yang memproses sesuatu, Anda akan menggunakan mikrokontroler.
Hari ini, Anda sebagian besar menemukan prosesor tipe mikrokontroler tujuan umum dengan instruksi yang dibangun seperti DSP atau dengan co-prosesor chip untuk menangani data streaming atau operasi DSP lainnya. Anda tidak melihat DSP murni banyak digunakan kecuali di industri tertentu.
Pasar prosesor jauh lebih luas dan lebih buram daripada biasanya. Sebagai contoh saya hampir tidak mempertimbangkan ARM cortex-A8 SoC mikro-controller tetapi mungkin cocok dengan definisi standar, terutama dalam paket PoP.
EDIT: Figured saya akan menambahkan sedikit untuk menjelaskan kapan / di mana saya telah menggunakan DSP bahkan pada hari-hari prosesor aplikasi.
Produk terbaru yang saya rancang sedang melakukan pemrosesan audio dengan saluran input X dan saluran output X per 'zona'. Penggunaan yang dimaksudkan untuk produk berarti bahwa sering kali duduk di sana melakukan hal tersebut, memproses saluran audio selama bertahun-tahun tanpa ada yang menyentuhnya. Pemrosesan audio terdiri dari berbagai filter dan fungsi akustik. Sistem ini juga "hot plugable" dengan kemampuan untuk menambahkan beberapa 'zona' independen semua dalam satu kotak. Itu total 3 desain PCB (mainboard, backplane dan plug in module) dan backplane didukung 4 plug in modules. Proyek yang cukup menyenangkan seperti yang saya lakukan solo, saya harus melakukan desain sistem, skema, tata letak PCB dan firmware.
Sekarang saya bisa melakukan semuanya dengan satu inti ARM besar, saya hanya membutuhkan sekitar 50MIPS kerja DSP pada 24bit angka titik tetap per zona. Tetapi karena saya tahu sistem ini akan beroperasi untuk waktu yang sangat lama dan tahu sangat penting bahwa itu tidak pernah klik atau pop atau semacamnya. Saya memilih untuk mengimplementasikannya dengan DSP daya rendah per zona dan mikrokontroler PIC tunggal yang memainkan peran manajemen sistem. Dengan cara ini bahkan jika salah satu fungsi UC jatuh, mungkin serangan DDOS pada port Ethernet-nya, DSP akan dengan senang hati terus menjauh dan kemungkinan tidak ada yang akan tahu.
Jadi mikrokontroler berperan menjalankan 2 karakter garis LCD, beberapa tombol, pemantauan suhu dan kontrol kipas (ada juga beberapa amplifier audio daya yang cukup tinggi di setiap papan) dan bahkan melayani halaman web gaya AJAX melalui ethernet. Itu juga mengelola DSP melalui koneksi serial.
Jadi itulah situasi di mana bahkan pada hari-hari di mana saya bisa menggunakan inti ARM tunggal untuk melakukan segalanya, desainnya menentukan IC pemrosesan sinyal khusus.
Area lain tempat saya mengalami DSP:
* Audio Kelas Atas - Receiver yang sangat kelas atas dan perlengkapan mixing dan pemrosesan kualitas konser
* Pemrosesan Radar - Saya juga menggunakan core ARM untuk ini di aplikasi low-end.
* Pemrosesan Sonar
* Visi komputer waktu nyata
Untuk sebagian besar, ujung rendah dan menengah dari ruang audio / video / serupa telah diambil alih oleh prosesor aplikasi yang menggabungkan CPU tujuan umum dengan mesin co-proc offload untuk berbagai aplikasi.
Banyak prosesor sinyal digital menyertakan beragam fungsi yang tidak ditemukan dalam prosesor 'biasa':
Perhatikan bahwa banyak DSP akan memiliki bus terpisah untuk memungkinkan kedua operand dari akumulasi multiply diambil secara bersamaan; Saya belum pernah melihat non-DSP yang bisa melakukan itu. Sementara saya tidak mengetahui fitur apa pun yang chip harus 'kekurangan' untuk menjadi DSP, ruang silikon tambahan yang diperlukan untuk memungkinkan operasi dua kali pengambilan adalah ruang silikon yang tidak digunakan untuk tujuan lain yang lebih bermanfaat secara umum.
sumber
Satu hal yang tidak disebutkan adalah perilaku overflow numerik. Dalam prosesor normal ini biasanya membungkus sekitar dari nilai maksimal ke nilai minimal.
Untuk penggunaan DSP sering kali setidaknya ada opsi untuk menggunakan saturasi . Yaitu, pada overflow nilainya tetap pada nilai maksimal, yang menghasilkan lebih sedikit distorsi dan lebih baik meniru perilaku sirkuit analog.
sumber
Perbedaan terbesar antara DSP dan uController standar adalah fitur multiply akumulasi (MAC) yang tidak dimiliki UC. Ini berharga jika Anda ingin melakukan matematika pemrosesan sinyal digital sejati seperti FFT (satu contoh). Melakukan FFT dalam mikrokontroler standar akan memakan waktu lama dibandingkan dengan melakukannya pada MAC dari DSP.
Memproses sinyal I2C dan serial tidak sama dengan memproses bentuk gelombang dalam DSP. Pemrosesan yang benar-benar berbeda terjadi karena sinyal serial hanya sedikit.
Berikut diskusi serupa di forum DSP : DSP vs. Microprocessor
sumber
Apa yang digunakan untuk membedakan DSP adalah pengoptimalannya untuk operasi aritmatika, terutama multiplikasi, meskipun saat ini tidak jarang bagi mikrokontroler untuk dianugerahi instruksi perkalian dan pembagian. Mungkin masih ada keunggulan untuk melakukan pemrosesan sinyal dengan chip DSP, sejauh beberapa dari mereka memiliki dukungan perangkat keras untuk matematika titik tetap (misalnya, lib TI 'TMS320s' IQ '), sedangkan micros lebih cenderung hanya mencakup unit integer.
Secara pribadi, ketika dihadapkan dengan memilih antara keduanya untuk desain, saya akan mencoba untuk mengkategorikan apakah aplikasi membutuhkan perhitungan berulang dengan hanya logika perubahan mode sesekali, atau hanya perlu melakukan urutan perhitungan singkat sesuai kebutuhan. Yang pertama adalah DSP, yang kedua adalah mikro.
Dan kemudian, tentu saja, ada hal-hal menyenangkan seperti OMAP yang memiliki keduanya. = P
sumber
Namun fitur lain yang mungkin dimiliki oleh instruksi MAC adalah penambahan secara otomatis register yang mengarah ke multiplikasi. Saya memprogram Zilog DSP yang menggunakan inti Clarkspur (16-bit). Itu adalah variasi pada arsitektur Harvard dengan tiga bus, membiarkannya mengakses tiga area memori secara bersamaan: Memori instruksi, data ram bank 1, dan data ram bank 2. Dengan aliran data di satu bank ram dan koefisien di yang lain, satu bisa lakukan filter FIR dengan satu instruksi siklus tunggal per operasi penambahan MAC / pointer. Dalam C instruksi tunggal terlihat seperti:
Akumulator + = rambank1 [r1 ++] * rambank2 [r2 ++];
Dan tentu saja instruksi ini diulang untuk setiap koefisien.
Juga tidak ditunjukkan sebelumnya, DSP (setidaknya yang lama saya gunakan) umumnya arsitektur RISC dan dirancang dengan banyak atau sebagian besar instruksi mengeksekusi dalam satu siklus (atau dalam jumlah siklus yang sama). Hal ini memungkinkan kemampuan untuk memprogram untuk respons interupsi deterministik (hitungan jam tetap antara jalur interupsi akan aktif dan instruksi pertama dalam ISR dieksekusi), sedangkan sebagian besar prosesor lain merespons interupsi dalam sejumlah variabel siklus clock, tergantung pada apa titik dalam instruksi multi-siklus interupsi terjadi. Waktu eksekusi yang diperbaiki menghilangkan jitter multi-jam-waktu dalam output berulang.
Untuk perbandingan OP tentang Microchip Pic dan DSPic, itu adalah pemahaman saya ketika DSPic diperkenalkan bahwa itu terutama hanya Pic dengan instruksi MAC dan beberapa fitur tambahan lainnya, yang tentunya dapat mempercepat mikrokontroler melakukan fungsi pemrosesan sinyal, tetapi (karena kurangnya fitur-fitur lain yang dibahas) mungkin mendorong terminologi untuk menyebutnya DSP. MSP430 juga tersedia dalam versi dengan MAC perangkat keras, tetapi tidak ada yang menyebut ITU sebuah DSP.
Saya ingat 10 sampai 15 tahun yang lalu membaca bahwa prosesor utama dari Intel menambahkan MAC dan instruksi serupa untuk melakukan pemrosesan sinyal "asli" (bukan pada kartu ekspansi dengan prosesor DSP khusus, yang umum untuk produksi audio pada 1990-an) - beberapa murah Modem bus dialup PC 56k hanyalah konverter A / D dan D / A, dan mengandalkan prosesor utama untuk melakukan fungsi pengkodean dan dekode sinyal modem, sehingga ada permintaan untuk penggunaan prosesor yang lebih efisien di sana. Penggunaan media seperti editing / encoding / decoding video serta rekaman / produksi audio sangat dipercepat oleh instruksi tipe DSP.
sumber
<g>
Kembali pada hari-hari awal C, operator kenaikan dan penurunan dirancang untuk langsung diterjemahkan ke dalam instruksi perangkat keras tunggal pada PDP.