- Bus de données et d'adresses séparés (architecture Harvard). Souvent double ou multiple architecture Harvard, c’est-à-dire plusieurs bus de données séparés dans l'espace mémoire.
- Instructions spéciales pour opérations SIMD (Single Instruction, Multiple Data). Une seule instruction permet d'effectuer plusieurs opérations simultanées dans les différents blocs du DSP.
- Seulement des processus parallèles, pas de multitâche. Des contraintes sont imposées car les DSP n'ont qu'une gestion rudimentaire des interruptions quand ils en ont une.
- La possibilité d'être utilisé comme un périphérique à accès direct à la mémoire dans un environnement hôte.
- Peut prendre ses données digitales d'un convertisseur analogique digital (ADC), appliquer un traîtement sur ces données et les restituer au monde extérieur par un convertisseur digital analogique (DAC).
entrée analogique----->ADC---->DSP---->DAC---> sortie analogique
^^^
traitement du
signal digital
Les DSP peuvent être combinés avec d'autres composants dans le même boîtier. Par exemple, un ou plusieurs DSP peuvent être combinés avec un microprocesseur classique et des convertisseurs ADC et DAC. Ce type d'assemblage (circuits intégrés dédiés) permet de réduire les coûts dans des fabrications de grande série. Les fonctions de traitement de signal peuvent également être réalisés à l'aide de FPGA, qui peuvent incorporer des « cœurs DSP » (en général des MAC). La reconfiguration matérielle permet alors d'accroître le parallélisme des opérations. Les différents types d'architecture disponibles permettent d'adapter les circuits de traitement aux besoins spécifiques de l'application.
L'unité de calcul de la majorité des DSP utilisent des nombres entiers. L'usage de nombres entiers rend le composant meilleur marché et il est également plus facile à programmer tout en garantissant une vitesse de traitement rapide des données. Un multiplieur entier est en effet beaucoup plus simple qu'un multiplieur à virgule flottante. Les nombres entiers permettent d'obtenir une précision suffisante pour la plupart des applications.
Cependant, certains DSP possèdent des unités de calcul en virgule flottante comme le TMS320C67x ou le ADSP-TS20x. Des applications scientifiques ou, d'une manière générale, des applications qui nécessitent une grande précision relative des résultats ou une large dynamique des valeurs peuvent imposer le choix d'un DSP à virgule flottante.
De manière à optimiser la vitesse de traitement, les DSP utilisent des registres internes très larges. Par exemple, pour la famille DSP56k de Motorola, nous trouvons dans l'ALU (unité arithmétique et logique) quatre registres d'entrée de 24 bits, deux registres accumulateurs de 48 bits et deux extensions de 8 bits des registres accumulateurs. Ces dernières permettent d'obtenir une précision de 56 bits sur les registres accumulateurs, laquelle offre une bonne précision sur des calculs successifs et simplifie la gestion des erreurs pour le programmeur.
La ligne de démarcation entre les microprocesseurs à usages généraux et les DSP n'est pas toujours claire. Ainsi par exemple, l'extension MMX des processeurs Pentium comprend, selon Intel, « 57 nouvelles instructions puissantes désignées pour manipuler et traiter efficacement les données vidéo, audio et graphique. Ces instructions sont destinées aux séquences répétitives et hautement parallèles qui sont souvent présentes dans les applications multimédia. »
Les DSP proposent des performances étonnantes. Par exemple, le DSP AD1460 qui est composé de 4 ADSP-21060 dans le même boîtier a une puissance de calcul maximum de 460 MFLOPS (460 millions d'opérations en virgule flottante par seconde). Un autre modèle, l'ADSP-21160 opère à 100 MHz, a un bus accéléré de mémoire d'une bande passante de 1600 mégaoctets par seconde, 2 bus de données en 64 bits et 4 accumulateurs de 80 bits pour les calculs sur des entiers. Au total, l'ADSP-21160 exécute une transformation de Fourier 1024 points en seulement 46 μs.