Ataris neuer Liebling - Das Innenleben des DSP 56001

Ein Unterschied zwischen den PCs (Personal Computer) und den noch etwas leistungsstärkeren Workstations liegt in der besseren Aufgabenverteilung durch mehrere Koprozessoren. Atari rückt durch die Einbindung des digitalen Signalprozessors »DSP 56001 « seine Rechnerfamilie den Workstations ein Stück näher.

Auf der CeBIT präsentierte Atari den Falcon030: einen neuen Rechner, der - obwohl er auch mit dem Hauptprozessor MC68030 des Atari TT arbeitet - das derzeitige Flaggschiff von Atari wahrscheinlich das Fürchten lehrt. Daher stellt sich berechtigterweise die Frage, wo die dazu notwendige Leistung herkommt.

Die Antwort liefert das Konzept der Workstations. Diese zeichnen sich nicht so sehr durch hohe Taktfrequenzen aus, als vielmehr durch zahlreiche Koprozessoren, die den Hauptprozessor bei der Arbeit unterstützen. Der Falcon verwendet zudem den digitalen Signalprozessor DSP56001 von Motorola.

Betrachtet man den Befehlssatz des DSP, handelt es sich um einen sogenannten »general purpose processor«, also einen Prozessor für alle Einsatzgebiete. Nur wie der Name des Prozessors verrät, wurde dieser für spezielle Zwecke, in denen er wesentlich leistungsfähiger ist, konzipiert, nämlich zur Signalverarbeitung. Da Signale in aller Regel kontinuierlich über einen bestimmten Zeitraum fließen, also eine bestimmte Anzahl von Signalen pro Sekunde zu verarbeiten sind, muß ein Signalverarbeiter extrem schnell sein.

Ein Beispiel für eine zeitabhängige Aufgabe ist die Erzeugung eines Übertragungsprotokolls für eine serielle Schnittstelle. Gilt es Daten über eine serielle Schnittstelle zu verschicken, sind diese zunächst zu kodieren. Anhand eines zusätzlichen Übertragungsprotokolls gelingt es dem Empfänger auf einzelne, bei der Übertragung verlorengegangene, Bits entsprechend zu reagieren.

Die Übertragungsprotokolle für Modems sind von dem internationalen Normierungsgremium CCITT (Commite Consultatif International Telegraphique et Telephonique) standardisiert. Ein verbreitetes Protokoll ist das CCU V.32 Protokoll, das einen Datendurchsatz von 9600 Bit/s vorschreibt. Der DSP benötigt zur Dekodierung eines 4-Bit-Datenstroms 700 Befehlszyklen (die Kodierung berechnet der DSP schneller) bei einer Austastung von 15 Prozent. Damit ist der Prozessor in der Lage, eine sechs- bis siebenmal schnellere Übertragung zu verarbeiten, was für die nächsten Jahre mit Sicherheit ausreicht.

Ein weiteres Einsatzgebiet für den DSP wäre die Komprimierung von Daten, so z.B ein Full-Duplex ADPCM (Adaptive Differential Pulse Code Modulation) Sprachkodierer, ebenfalls von CCITT standardisiert. Der DSP komprimiert hier einen Strom von 32 kBit/s zu einem von 64 kBit/s in Echtzeit, was der Qualität einer Telefonübertragung entspricht.

Die 27-MHz-Version des Prozessors berechnet eine 1024 Punkt FFT (Fast Fourier Transformation) (komplex) in 2.45 ms. Damit eignet sich der DSP bestens für Filter oder als Synthesiser mit CD-Qualität. FFTs benutzt man aber auch bei der digitalen Bildverarbeitung oder der Bildmustererkennung. Wozu der DSP hier in der Lage ist, läßt sich heute nicht in vollem Umfang abschätzen.

Doch woher schöpft der DSP die Kraft von 13.5 MI PS (Millionen Instruktionen pro Sekunde)? Die größte Rechenleistung resultiert aus den drei internen unabhängigen Ausführungseinheiten, drei 1 6-Bit-Adreß- und vier bidirektionalen 24-Bit-Datenbussen. Dazu kommen noch sechs verschiedene On-Chip-Speicher (siehe Bild 1), aufgeteilt in drei RAM- und drei ROMBereiche. Im internen ROM des DSP befindet sich eine 256 Einträge umfassende Sinus- und Logarithmustabelle mit jeweils 24 Bit Genauigkeit und eine Boot-Load-Routine zum Laden von externem Programm-ROM nach einem Reset.

Das RAM teilt sich in ein Programm- und zwei Daten-Speicher auf, die Motorola X- und Y-Datenspeicher nennt. Alle drei RAM-Bereiche sind 512 Einträge (24 Bit) groß und lassen sich jeweils um 64k x 24 Bit externes RAM erweitern. Daraus ergibt sich die Aufgabenverteilung der vier Datenbusse: einer für das Programm-RAM, jeweils einer für das X- und das YRAM (wobei sich diese beiden Busse auch als ein 48Bit-Bus nutzen lassen) und ein globaler Bus für die externen Zugriffe. An Registern mangelt es dem DSP ebensowenig. Hier stehen vier 24-Bit-Eingaberegister, zwei 48-Bit-Accumulatoren, zwei 8-Bit-Accumulatorerweiterungen und insgesamt 24 Adressregister zur Wahl. Damit lassen sich dann direkt 24, 48 und 56 Bit breite Daten ansprechen.

Mit diesem Aufbau bearbeitet der »Signalarbeiter« etwa einen Befehls-Prefetch (den nächsten Befehl im voraus holen), eine 24x24-Bit-Multiplikation, eine 56Bit-Addition, zwei Speicherverschiebungen mit den dazugehörenden Address-Pointer-Anpassungen (etwa Postinkrement) in einem einzigen Befehlszyklus. Natürlich dürfen die parallel laufenden Prozesse nicht voneinander abhängen. So ist es nicht erlaubt, zwei Befehle gleichzeitig zu bearbeiten, wenn einer dieser Befehle das Ergebnis des anderen Befehls benötigt.

Als anschauliches Beispiel, wozu sich zweierlei Datenspeicher verwenden lassen, führt Motorola das Rechnen mit komplexen Zahlen auf. Dort werden dann der Realteil im X-RAM und der Imaginärteil im Y-RAM parallel berechnet oder im Zusammenhang mit der Datenkodierung die Eingangs- und Ausgangsdaten in jeweils einem RAM-Bereich aufbewahrt.

Stellt sich noch die Frage, wie man den DSP »parallel« programmiert, ist der Sprachumfang doch auf 62 Assemblerbefehle begrenzt. Des Rätsels Lösung ist die Vielfalt von 12 Millionen Befehlsvariationen, die sich zum einen durch die verschiedenen Adressierungsarten und zum anderen durch die Kombination von drei Grundbefehlen für die drei Ausführungseinheiten erklären. So besteht eine Assemblerprogrammzeile aus bis zu drei Einzelbefehlen, die der Assembler dann zu einem DSP-Befehl zusammenfaßt. Parallel ablaufende Befehle müssen voneinander unabhängig sein; hier ist der Programmierer genauso wie der Assembler (durch entsprechende Fehlermeldungen) gefordert.

Mit der Außenwelt kommuniziert der DSP über drei Ports:

Eine wichtige Frage ist noch offen: Wie kommen die Daten oder Programme letztendlich in den Speicher des DSP? Hier wären Betriebssystemfunktionen sehr wünschenswert. Liefert Atari dann auch gleich vorgefertigte Routinen für Filter, Equalizer und ähnliche Aufgaben, ist die Sache komplett.

Datenblatt

Prozessor: DSP56001 (General Purpose Digital Signal Prozessor CMOS)
Taktfrequenz: 20.5/27/33MHz
Performance: 13.5 Millionen Instruktionen pro Sekunde (MIPS)
1024 Punkt FFT (komplex) in 2.45 ms (27-MHz-Version)
Befehlssatz: 62 Befehle in 12 Millionen Variationen
Datentypen: 24, 48 und 56 Bit


Jürgen Lietzow
Aus: TOS 07 / 1992, Seite

Links

Copyright-Bestimmungen: siehe Über diese Seite