Processori dedicati

Spesso si vuole "ottimizzare" il sistema sulla specifica applicazione, dal punto di vista di una delle sue caratteristiche principali (prestazioni, consumo, ingombro,...) o da una combinazione di queste (opportunamente "pesate").

Altre volte, si vuole realizzare in "hardware" una parte critica del sistema per renderlo più difficilmente copiabile da altri.

In tutti questi casi, la soluzione consiste nell'uso di processori e/o co-processori progettati "ad hoc".

Come già discusso in termini generali, questa soluzione fa aumentare (in misura dipendente dalle scelte realizzative) il costo e il tempo di progetto ma, se ben eseguita, riduce il costo (non soltanto economico) di ogni singolo prodotto.

Pertanto, come sempre, la scelta di ricorrere a processori "ad hoc" deve essere valutata caso per caso e confrontata con quella che fa uso di dispositivi standard.

Una volta stabilito di usare dispositivi "ad hoc" si deve affrontare la scelta sulle possibilità di tipo realizzativo.

Da questo punto di vista, si possono distinguere fondamentalmente due alternative:

  1. dispositivi "programmabili" (tra cui, in particolare i Field- Programmable Gate Arrays - FPGAs);
  2. dispositivi ASICs (Application - Specific Integrated Circuits- tipicamente "gate arrays"), che fanno parte di una grande area generalmente denominata "semi-custom" per indicare dispositivi (soltanto) "parzialmente" realizzati per la specifica applicazione a partire da una struttura di tipo generale da "specializzare" mediante pochi passi di tipo tecnologico (in pratica la realizzazione di alcune interconnessioni tra dispositivi elementari già fabbricati per "uso generale").
Queste due soluzioni si confrontano nei seguenti termini fondamentali:

L'uso di dispositivi programmabili non richiede interazioni con i costruttori ed è perciò molto più semplice, rapido ed economico. D'altra parte, questo tipo di dispositivi è meno "piegabile" alla singola applicazione di quanto non siano gli ASIC ben progettati.

Perciò, i dispositivi programmabili danno luogo a progetti più rapidi, facili e "flessibili" (facilmente "cambiabili"). Però, essi portano a prestazioni peggiori, a consumo maggiore a maggiore ingombro,...

Inoltre, i singoli dispositivi programmabili sono abbastanza costosi, perciò adatti alla realizzazione di prodotti da fabbricare in pochi esemplari (piuttosto che non per numeri significativi che consentono un buon ammortamento dei costi di progettazione).