\nuovoarticolo{Eugenio Castellani e PierGiorgio Sartor}{Scheda DSP (Digital
Signal Processor) per \amiga{}}{%
AXXEL Computer \& Software \\
Viale Anconetta 119 \\
I-36100 Vicenza VC \\
Tel.:~(0444)325592 \\
fax:~(0444)321145
}{%
Internet:~aj2@maya.dei.unipd.it~(Castellani) \\
~~~~~~~~~~red@maya.dei.unipd.it~(Sartor)
}{italian}{\selectlanguage{english}%
Congratulations!  You have purchased an extremely fine device that
would give you thousands of years of trouble-free service, except that
you undoubtably will destroy it via some typical bonehead consumer
maneuver.  Which is why we ask you TO PLEASE FOR GOD'S SAKE READ THIS
OWNER'S MANUAL CAREFULLY BEFORE YOU UNPACK THE DEVICE.  YOU ALREADY
UNPACKED IT, DIDN'T YOU?  YOU UNPACKED IT AND PLUGGED IT IN AND TURNED
IT ON AND FIDDLED WITH THE KNOBS, AND NOW YOUR CHILD, THE SAME CHILD
WHO ONCE SHOVED A POLISH SAUSAGE INTO YOUR VIDEOCASSETTE RECORDER AND
SET IT ON ``FAST FORWARD'', THIS CHILD ALSO IS FIDDLING WITH THE KNOBS,
RIGHT?  AND YOU'RE JUST NOW STARTING TO READ THE INSTRUCTIONS,
RIGHT???  WE MIGHT AS WELL JUST BREAK THESE DEVICES RIGHT AT THE
FACTORY BEFORE WE SHIP THEM OUT, YOU KNOW THAT?}{Dave Barry, ``Read This First!''}

%\section*{Scheda DSP (Digital Signal Processor) per \amiga{}}

\sez{Prefazione}
Il seguente progetto di scheda DSP per \amiga{} è tuttora in fase di sviluppo
e studio. Attualmente abbiamo realizzato un primo prototipo funzionante sul
quale ci si baserà per la produzione del secondo che dovrebbe vedere la luce
entro la fine dell'anno. Questa sarà una scheda Zorro II autoconfigurante,
dotata di librerie matematiche sostitutive e di un primo modulo digitalizzatore
audio.

È ancora presto parlare di prezzi finali, ma si ritiene che la scheda base in tale
configurazione dovrebbe costare circa 400\,000 lire all'utente finale. Prima della
commercializzazione della scheda sarà disponibile una versione beta in vendita a costo di
realizzo ai soli sviluppatori interessati alla produzione di software dedicato.

\sez{Processori}

\begin{itemize}
\item TMS320C25 40-50 MHz, 1088 byte (544 word) di memoria interna.
\item TMS320C26 40 MHz, 3136 byte (1568 word) di memoria interna.
\end{itemize}

Si tratta di 3 versioni dello stesso DSP integer 16 bit, con una
seriale veloce (5~Mbit/s) full-duplex, 3 livelli di interrupt,
10 MIPS, timer interno, capacità di calcolo avanzate (per esempio FFT)
e altro ancora, prodotti dalla Texas Instruments.

\sez{Memoria}

16~Kbyte (8~Kword) di memoria statica ad alta velocità (25~ns) 0 wait states, espandibile a
64~Kbyte (32~Kword). La memoria è gestita come se fosse di tipo Dual Port, cioè è accessibile
sia dal DSP che dall'\amiga{} in maniera assolutamente trasparente all'utente.

\sez{Controllo}

\amiga{} è in grado di controllare completamente il DSP. È possibile:

\begin{itemize}
\item bloccare il DSP per accedere alla memoria in modo esclusivo;
\item dare il segnale di RESET al DSP per reinizializzarlo;
\item generare un interrupt verso il DSP;
\item controllare un flag usato dal DSP come interrupt veloce;
\end{itemize}

Il DSP può:

\begin{itemize}
\item controllare un flag leggibile dall'\amiga{};
\item generare interrupt verso l'\amiga{}.
\end{itemize}

\sez{Espansione}

Sulla scheda è previsto un bus di espansione, che può contenere fino a 16
schede in cascata, per uso generale del DSP. Potranno per esempio essere
inseriti convertitori A/D-D/A, sistemi di acquisizione dati come misuratori
di frequenza, hard disk, o memoria aggiuntiva, anche se più lenta.

\sez{Software}

Il software di base (non ancora completo) comprende:

\begin{enumerate}
\item Cross-Assemblatore per questi particolari DSP;
\item libreria (¶{dsp.library}) per controllare il DSP ad alto livello.
Tramite la libreria si potrà leggere e scrivere la memoria del DSP
e inoltre realizzare tutti gli altri controlli descritti.
La libreria prevede già la possibilità di avere più di una scheda DSP,
consentendo di gestire un sistema multiprocessore nel modo più trasparente
possibile. Diversi task potrebbero usare uno o più DSP  senza
nessun problema. Per utilizzare un singolo DSP sarà necessario allocarlo,
e quindi accedere alle funzioni di libreria. Una modalità di accesso
alternativo prevede l'allocazione di più DSP per realizzare calcolo
parallelo.

\item demo vari (Mandelbrot, JPEG decompressor, FFT, filtri audio);
\item sostituzione delle librerie matematiche standard dell'\amiga{}.

\end{enumerate}

Usando il DSP in emulazione di un processore in virgola mobile è possible
aumentare le prestazioni matematiche di \amiga{} (68000 a 7.09~MHz),
da 10 a 100 volte (valori stimati).

\sez{Uso}

La scheda è pensata come sistema di sviluppo per uso didattico e per un uso
il più generale possibile. Non è esplicitamente progettata per applicazioni
specifiche come la sintesi audio, ma nessuna possibilità è preclusa.

\sez{Utilizzo}

\begin{enumerate}
\item stazione audio indipendente, con acquisizione, elaborazione,
sintesi e riproduzione sonora;
\item supporto audio per \amiga{}. La scheda DSP potrebbe operare come
un convertitore A/D ed essere collegata alla porta parallela di \amiga{}
tramite un'apposita espansione. I dati elaborati sarebbero acquisiti
dall'\amiga{} mediante un programma commerciale standard (per esempio AudioMaster),
in modo assolutamente trasparente a quest'ultimo (multiprocessing);
\item elaborazione grafica, filtri video,
\discretionary{compressione/}{decompressione}{compressione/decompressione},
manipolazione e sintesi di immagini;
\item number crunching, ovvero calcolo ``pesante'', magari distribuito tra
più schede DSP e anche \amiga{}.
\end{enumerate}

\sez{Futuro}

\begin{itemize}
\item Schede di espansione avanzate per il DSP:

\begin{itemize}
\item Hard Disk;
\item RAM dinamica;
\item convertitore A/D-D/A su seriale;
\item scheda video indipendente;
\item scheda di acquisizione multicanale.
\end{itemize}
\item Singola scheda con più DSP;
\item \label{ref1} Passaggio a DSP superiore, sempre con interi a 16bit, come il TMS320C50
(Texas Instruments) e derivati;
\item \label{ref2} passaggio a DSP in virgola mobile, come il TMS320C31 (Texas Instruments)
o il DSP3210 (AT\&T), che a prezzi relativamente bassi danno prestazioni di
calcolo superiori (80~MFLOPS).
\end{itemize}

Per gli ultimi due punti sarà necessario riscrivere parte del
software.

Come avrete intuito questo è uno di quei progetti che è di moda definire
``ad ampio respiro'', con molteplici possibilità di sviluppo ed utilizzo da
una parte e costi di realizzazione bassi dall'altra. La parte più complessa
riguarda la scelta del DSP e quindi la sua successiva programmazione.

\finearticolo
