general purpose microprocessor vs DSP(digital signal processor)?
On a basic level, in my opinion, a DSP chip must, as a minimum requirement, be able to optimally perform the convolution summation used to compute the output of an FIR filter.
$$ y[n] = \sum\limits_{k=0}^{K-1} h[k] \, x[n-k] $$
$y[n]$ = FIR filter output
$x[n]$ = FIR filter input
$h[k]$ = impulse response of FIR filter (also FIR coefficients)
To do this in $K$ instructions, one must be able to in one instruction:

Do a multiplication and addition, implemented as a single multiply-accumulate (MAC) instruction.

Fetch both the delayed sample, $x[n-k]$ and the FIR coefficient $h[k]$ for the next MAC.  To do both, this requires at least two data memory spaces: one for coefficient array $h[k]$, one for the signal array $x[n]$.  Both spaces can be accessed in parallel (simultaneously).  This is called a &quot;Harvard Architecture&quot;.

Be able to saturate the results to defined maximum positive or negative values if the result exceeds that range.

Besides being able to saturate to the &quot;rails&quot;, the Arithmetic Logic Unit (ALU) in the DSP should be able to round to the nearest LSB of the high-order bits (that will be output or saved to memory) based on the low-order bits of the accumulator.

To address the delayed samples in memory, the ability to do modulo arithmetic on the pointer to $x[n-k]$ is necessary.  This implements a &quot;circular queue&quot; or &quot;circular buffer&quot; or &quot;first-in-first-out&quot; (FIFO) buffer which, in the audio DSP world, is just called a &quot;delay line&quot;.  The DSP programmer should not have to worry about when a pointer increments beyond the boundary of a circular queue requiring the pointer to be adjusted or wrapped around.  The DSP chip should make that modulo adjustment to the pointer automatically.

In addition, for the FFT, the ability to do bit reversal or bit-reversed addressing is necessary along with some other handy instructions that make for efficient coding of FFT butterflies.


Now, in order to be a &quot;DSP chip&quot;, it really should be able to do all of these operations without explicit instructions in the inner loops.  They build it into the hardware of the ALU the means to perform those operations without explicit effort from the programmer (nor extra machine instruction cycles).  Nothing prevents you from using a normal CPU to do all of these operations, even in a &quot;high-level&quot; language like C/C++ .  And the general purpose CPU chip might be running at 5 GHz while the DSP chip is running at 500 MHz, so the 10x instruction speed might more than make up for the cost of all those extra instructions that the algorithm programmer must code.