Pemproses isyarat digital

**Pemproses isyarat digital** atau **DSP** ialah mikropemproses khas yang direka khusus untuk pemprosesan isyarat digital, biasanya dalam masa-nyata.

## Ciri DSP

* Prestasi optimum dengan data tidak henti-henti.
* Ingatan program dan data yang berasingan (seni bina Harvard).
* Arahan khusus untuk operasi SIMD (Satu Arahan, Banyak Data - *Single Instruction, Multiple Data*).
* Cuma pemprosesan selari, tiada multitugas.
* Kebolehan bertindak sebagai peranti capaian ingatan terus jika dalam suasana penganjur.
* Mengambil data digital dari penukar analog ke digital (ADC) untuk diproses dan kemudian menghantar hasil ke penukar digital ke analog (DAC) untuk ditukar kembali ke analog.

      masukan analog -----> ADC ----> DSP ----> DAC ---> keluaran analog
                                      ^^^
                            pemprosesan data digital

## Pemprosesan isyarat digital
Pemprosesan isyarat digital boleh dilakukan menggunakan mikropemproses biasa. DSP boleh mengoptimumkan:

### Pengendali data
* Aritmetik tepu, di mana operasi yang menghasilkan limpahan (*overflow*) akan kekal di nilai maksimum (atau minimum) yang boleh ditampung daftar dan tidak terlepas (maksimum+1 tidak sama dengan minimum seperti dalam CPU am, sebaliknya kekal pada maksimum). Kadangkala pelbagai cara operasi bit lekit (*sticky bit*) tersedia.
* Operasi darab-tumpuk (MAC), yang bagus untuk mana-mana operasi matriks, seperti perlingkaran untuk penapisan, hasil darab bintik, ataupun penilaian polinomial (lihat skim Horner, juga darab-tambah terlakur). MAC kitaran tunggal merupakan anggapan dalam banyak DSP, jadi kebanyakan dari ciri berikut diterbitkan (terutamanya seni bina Harvard dan penalian paip).
* Arahan khas untuk pengalamatan bermodul dalam penimbal gelang dan mod pengalamatan bit-terbalik untuk rujukan-silang FFT.

### Aliran atur cara
* Penalian paip yang dalam. Ini mengakibatkan kesilapan meramal cabang mahal, namun ia meningkatkan daya pemprosesan sistem.
* Ramalan cabang. Sama ada dengan jadual dinamik atau dikod keras sebagai penggelungan overhed-sifar. Untuk meringankan hentaman cabang akibat pelaksanaan arahan gelung-dalam yang kerap, sesetengah pemproses mempunyai ciri ini. Terdapat dua cara pengendalian: satu suruhan berulang dan gelung multi-suruhan.

## Sejarah
Pada 1978, Intel mengeluarkan pemproses 2920 sebahai "pemproses isyarat analog". Ia mempunyai ADC/DAC atas-cip dengan pemproses isyarat dalaman, namun ia tidak mempunyai pendarab perkakasan dan tidak begitu laku. Tahun berikutnya, AMI mengeluarkan AMI S2811. Ia direka bentuk sebagai persisian mikropemproses dan perlu diset semula oleh hos. AMI S2811 juga tidak berapa terjual di pasaran.

Pada 1979 juga, Bell Labs memperkenalkan cip DSP tunggal pertama, Mikropemproses Mac 4. Kemudian pada 1980 DSP lengkap tersendiri yang pertama -- NEC µPD7720 dan AT&T DSP1 -- dipertunjukkan di Persidangan Litar Keadaan-Pepejal Antarabangsa IEEE '80. Kedua-dua pemproses diilhamkan oleh penyelidikan dalam telekomunikasi PSTN.
Altamira DX-1 merupakan satu lagi DSP awal, ia menggunakan talian paip integer kuad dengan cabang lengah dan ramalan cabang.

DSP pertama yang dikeluarkan Texas Instruments (TI), TMS32010 pada 1983, mendapat kejayaan yang besar, dan TI kini menguasai pasaran DSP tujuan am / pelbagai guna. Satu lagi reka bentuk yang berjaya ialah Motorola 56000.

Kira-kira lima tahun kemudian, generasi kedua DSP mula tersebar. Generasi ini mempunyai 3 ingatan untuk menyimpan dua kendalian serentak dan menyertakan perkakasan untuk memecut gelungan, selain mempunyai unit pengalamatan yang boleh mengalamat gelung. Sesetengah DSP ini boleh mengendalikan pemboleh ubah 24-bit dan model tipikal cuma memerlukan kira-kira 21ns untuk proses MAC (*multiply-accumulate*). Contoh DSP generasi ini ialah DSP16A AT&T atau DSP56001 Motorola.

Kemajuan utama dalam generasi ketiga ialah kemunculan unit dan arahan penggunaan-khusus dalam laluan data, atau kadang-kadang sebagai pemproses bersama. Ini membolehkan pemecutan perkakasan terus masalah matematik rumit yang amat khusus, seperti penjelmaan Fourier dan operasi matriks. Sesetengah cip, seperti MC68356 Motorola, malah mempunyai lebih dari satu teras pemproses yang bekerja secara selari. Contoh DSP dari generasi ini ialah TMS320C541 dan TMS320C80 dari TI yang dikeluarkan pada 1995.

Generasi keempat DSP dicirikan oleh perubahan dalam set arahan dan pengekodan/penyahkodan arahan. Sambungan SIMD dan MMX ditambah, VLIW dan seni bina superskalar muncul. Seperti biasa, kelajuan-jam telah bertambah, operasi MAC kini boleh dilakuakan dalam 3ns sahaja.

Prestasi DSP kini jauh lebih hebat. Puncanya adalah dari kemajuan kedua-dua teknologi dan seni bina seperti peraturan reka bentuk, cache dua-peringkat, litar (E)DMA dan sistem bas luas. Tentu sahaja, terdapat banyak jenis DSP untuk pelbagai tugas khas, dari semurah 1.50 hinggalah 300 dolar. 

Kebanyakan DSP menggunakan aritmetik titik-tetap, kerana dalam pemprosesan isyarat dunia nyata, julat tambahan yang disediakan oleh titik terapung tidak diperlukan, dan terdapat manfaat kelajuan yang besar; namun DSP titik terapung yang lebih berkuasa biasa digunakan untuk tujuan saintifik atau bila julat tambahan atau ketepatan diperlukan. CPU tujuan am mendapat idea dan dipengaruhi daripada DSP dengan sambungan seperti sambungan MMX dalam set suruhan seni bina (ISA) Intel IA-32.

Umumnya, DSP merupakan litar bersepadu khusus, namun fungsi DSP boleh juga dicapai menggunakan cip FPGA.

## Lihat juga
* FPGA
* Mikropengawal