Wer künftig die Time-to-Market für komplexe Systems-on-a-Chip konkurrenzfähig gering halten will, ist auf flexible, konfigurierbare, in durchgängige Entwicklungsumgebungen eingebundene Lösungen angewiesen. Dies ist nur mit sehr leistungsfähigen und auf mehreren Ebenen konfigurierbaren DSP-Cores erreichbar.
Die Kommunikationsindustrie steht vor den größten Herausforderungen ihrer Geschichte. Die Menge der Daten, die bearbeitet werden muss, wächst schneller denn je. Die Technologiezyklen werden fast schon kürzer als die Design-Zyklen. Zu der Zeit, zu der mit der Entwicklung von ICs begonnen werden muss, stehen Standards oft noch gar nicht fest. Zusätzlich herrscht auf dem Consumermarkt ein hoher Preisdruck. Die Konsumenten erwarten höchste Qualität, sind aber nicht geneigt, dafür viel Geld auf den Tisch zu legen. Consumergeräte, die oberhalb einer magischen Preisschwelle liegen, enden als Flops – unabhängig davon, welche interessanten technischen Möglichkeiten sie bieten. Der traditionelle Ansatz vieler Hersteller, alles im eigenen Haus zu entwerfen, nimmt inzwischen viel zu viel Zeit in Anspruch. Wer diesen Ansatz weiterverfolgt, wird schlicht aus dem Rennen geworfen. Die Lebenszyklen von Consumerprodukten sind bereits auf unter ein Jahr gesunken. Designs von Grund auf neu zu beginnen, dauert einfach zu lange. Große Hoffnung setzen deshalb viele Hersteller darauf, ‚Intellectual Property‘, also fertig entworfene größere Funktionsblöcke, einfach in komplexe ICs zu integrieren. So wie bisher verschiedene ICs auf der Leiterplatte zu einem System zusammengesetzt wurden, so ließen sich doch auch IPs in ein System-on-a-Chip integrieren – jedenfalls in der Theorie. In der Praxis hat dieser Ansatz allerdings bisher meist zu Enttäuschungen geführt. Nicht ausgereifte Entwicklungsumgebungen, nicht voraussagbare Performance, mangelnde oder gar nicht erst vorhandene Unterstützung beim Test, große Schwierigkeiten mit unterschiedlichen Schnittstellen – das sind mittlerweile allzu bekannte Probleme, die im Umgang mit IPs auftreten. Aber es handelt sich dabei eher um Anfangsschwierigkeiten. Die IP-Industrie entwickelt sich rasch weiter und es kommt darauf an, den richtigen IP-Partner zu finden. Mit dem richtigen Partner dürften sich die genannten Probleme überwinden lassen.
IP-Cores und Flexibilität
Damit hat man aber noch nicht alle Klippen umschifft: Ein IP-Core passt meistens nur auf ein bestimmtes, bestenfalls auf einige wenige Produkte. Wenn aber viele verschiedene IP-Cores für die unterschiedlichen Zielanwendungen vorgehalten werden müssen, so bedeutet das einen zu hohen Aufwand an Zeit und Geld. Insbesondere wenn Produkte für einen Markt entwickelt werden, in dem sich noch keine endgültigen Standards herausgebildet haben. IPs sollten also eine gewisse Flexibilität aufweisen, so dass sie sich an die Erfordernisse späterer Produkte einfach anpassen lassen. Ist ein IP-Core nicht oder nur eingeschränkt skalierbar, so muss man für die nächste Generation ein vollständig neues Core heranziehen. Das kann einen ganz neuen Systemansatz erforderlich machen – einschließlich der Entwicklung neuer Software. Glücklicherweise gibt es bereits IP-Cores, die das nötige Maß an Flexibilität bieten. Dazu gehört der ‚Star‘-Core vom Typ SP5 von 3DSP, ein kompletter digitaler Signalprozessor, der sich auf mehreren Ebenen an die Erfordernisse der jeweiligen Applikation anpassen lässt.
Konfiguration
Eines der grundlegenden Architekturmerkmale des ‚Star‘-DSPs besteht in seiner superskalaren Architektur, die dem Anwender die freie Wahl lässt, was die Anzahl und die Breite der Multiplizierer, der Addierer, der Akkumulatoren und der Register betrifft. Außerdem steht eine vielfältige Auswahl an Peripherie-Schnittstellen zur Verfügung, so dass er sich leicht in Systems-on-a-Chip (SoCs) integrieren lässt. Auf diese Weise kann der Anwender den DSP-Core genau auf seine Anwendung hin auslegen, was insbesondere auch für eine möglichst geringe Leistungsaufnahme von großer Relevanz ist. Eine Auswahl der konfigurierbaren Komponenten und ihrer Parameter zeigt Tabelle 1. Die Konfiguration der Daten- und Programmspeicher stellt ebenfalls einen wichtigen Faktor, wettbewerbsfähige Produkte entwickeln zu können, dar. Es sollten also sowohl Dual-Port- als auch Single-Port-RAMs unterstützt werden, um dem Entwickler die freie Entscheidung zu ermöglichen, ob er sein Design auf einen möglichst geringen Preis oder möglichst hohe Leistungsfähigkeit optimieren will. Die Memory-Management-Einheit des ‚Star‘-DSP unterstützt 2-D-Transfer, Infinite Transfer und Chained Transfer. Der Programmspeicher lässt sich als SRAM oder Set Associative Cache konfigurieren. Eine derartig hohe Flexibilität ist erforderlich, um das DSP-Core über alle Mitglieder einer Produktfamilie ohne großen Aufwand wieder benutzen zu können.
Leistungsfähigkeit
Während die Konfigurierbarkeit eine der Bedingungen für flexible Lösungen ist, ist die Leistungsfähigkeit des DSP-Cores von grundlegender Bedeutung, um wettbewerbsfähige Lösungen realisieren zu können. Leistungsfähigkeit kann einmal eine hohe Geschwindigkeit bedeuten, beispielsweise um die für 3G-Applikationen benötigte Rechenleistung zur Verfügung zu stellen. Leistungsfähigkeit kann aber auch bedeuten, die Verarbeitung zu parallelisieren, um die Anzahl der benötigten Chips zu reduzieren, etwa in Audio-Applikationen. Leistungsfähigkeit lässt sich aber auch in eine möglichst geringe Leistungsaufnahme übersetzen. Sie ist für den Einsatz in tragbaren Geräten von großer Wichtigkeit, aber auch für Applikationen, bei denen nicht die Energieversorgung sondern der zur Verfügung stehende Platz limitiert ist. Denn je weniger Verlustwärme die Bausteine in den Geräten erzeugen, desto weniger Aufwand muss für die Kühlung betrieben werden. 3DSP versteht unter Leistungsfähigkeit darüber hinaus noch die Möglichkeit, die Fläche, die der Core auf dem IC einnimmt, so gering wie möglich zu halten. Je kleiner der Chip, um so geringer die Kosten für die Fertigung. Eine kleine Chipfläche kann dadurch erreicht werden, dass der Chip genau auf die Erfordernisse einer bestimmten Applikation angepasst wird, dass also kaum Overhead auf dem Chip vorhanden ist. Aber auch ein Maximum an paralleler Verarbeitung auf einen Chip zu realisieren, reduziert die Chipfläche, da so eine sehr gutes Verhältnis von Performance zu Chipfläche erreicht wird. Alle Hersteller von Telekommunikationsgeräten sehen sich diesen verschiedenen Anforderungen an die Leistungsfähigkeit der DSPs gegenüber. Je nach dem, in welchen Produkttypen die Chips zum Einsatz kommen sollen, müssen sie auf die unterschiedlichen Performance-Arten optimiert werden. Der Star-DSP bietet den Anwendern die Möglichkeit, die Optimierungen in die genannten Richtungen durchzuführen. Was leistet der Star-DSP-Core nun? Bei einer Taktfrequenz von 350 MHz kann der SP5 bis zu 1,4 Milliarden Multiplizier-Akkumulier-Operationen pro Sekunde durchführen. Das entspricht 5,6 Milliarden RISC-äquivalenter Operationen. Wird das Core mit Hilfe eines 0,13-µm-CMOS-Prozesses gefertigt, so nimmt es eine Siliziumfläche weniger als 1 mm² ein. Die Leistungsaufnahme eines FIR-Filters beträgt weniger als 35 mW bei einer Spannungsversorgung von 1 V. Ein weiteres Beispiel: pro Frame nimmt ein GSM EFR Vocoder (EFR steht für Extended Frequency Range) 0,04 mJ auf. Die Performance lässt sich deutlich erhöhen, wenn mehrere DSP-Cores zum Einsatz kommen. So können in Gateways mehr als 300 Kanäle über einen einzigen Chip laufen. Jeder Ingenieur versucht, so viel Leistungsfähigkeit wie möglich aus den Chips zu holen. DSP-Entwickler kennen dazu eine Reihe von Tricks. Auf Basis der Cores von 3DSP steht dem Entwickler eine Besonderheit zur Verfügung: Es lassen sich kundenspezifische Befehle zum vorhandenen Befehlssatz des DSP hinzufügen. Die neuen Befehle werden automatisch in den Microcode übersetzt und in einem Zyklus abgearbeitet. Diese einzigartige Eigenschaft bietet die Möglichkeit, die Leistungsfähigkeit des Cores deutlich zu erhöhen und die eigenen Produkte gegenüber denen des Wettbewerbs zu differenzieren. Die Star-DSPs verfügen über verschiedene Eigenschaften, die den Speicherbedarf reduzieren. Das Datenmanagement wird beispielsweise über Hardware ausgeführt. Deshalb gibt es keine ‚NOP‘, die Speicherplatz – und Ausführungszeit – in Anspruch nehmen. Um den Designer bei der Optimierung der DSPs auf die jeweilige Applikation zu unterstützen, analysiert die Design-Umgebung potentielle Schwierigkeiten im Handling der Daten und zeigt die Programmschritte, die sie verursachten. Der Entwickler kann also das Programm sehr genau für die schnellsten Ausführungszeiten auslegen.
Implementation
Das beste IP-Core nützt wenig, wenn die interne Performance aufgrund der Implementation wieder verloren geht. Es kommt also darauf an, dass es sich ohne Leistungsverlust einfach und möglichst sehr schnell in ein System-on-a-Chip einpassen lässt – nur so kann der Anwender sowohl die technischen Anforderungen erfüllen als auch sein Marktfenster treffen. Deshalb hat 3DSP nicht nur das leistungsfähige DSP-Core entwickelt, sondern auch die zur Realisierung von DSP-basierten Systems-on-a-Chip erforderliche Designumgebung. Dies geschieht auf mehreren Ebenen: Erstens lassen sich Peripherie-Komponenten durch einfaches Anklicken automatisch von der Entwicklungsumgebung in das Design integrieren. Für bestimmte Parameter wie die Zahl und die Breite von Multiplizierern, Registern usw. gilt das selbe. Zweitens muss die jeweilige Konfiguration automatisch in das SoC integriert werden. Drittens muss die gesamte Software exakt auf die Hardware des neuen SoC kompiliert werden. Das sollte auch für kundenspezifische Befehle gelten, die in C geschrieben sind. Sie sollten vollkommen transparent in den C-Compiler implementiert werden, der automatisch Assembler-Befehle und Microcode generiert. Die Entwicklungsumgebung sollte aber auch einen einfachen Weg bieten, den fertigen Chip zu testen. Also muss ein Full-Scan-Design und ein JTAG-Debug-Port zur Verfügung stehen. Außerdem wird der Test durch Breaks im Programmzähler, in den Statusregistern und in den Speicheradressen erleichtert. Sehr häufig benötigen DSP-basierte SoCs neben dem DSP auch noch einen weiteren Controller- oder Prozessorkern. Doch wenn lediglich eine eingeschränkte Zahl von zusätzlichen Prozessorfunktionen gebraucht wird, wäre es nicht gerade sinnvoll, nur dafür einen ausgewachsenen Prozessor zu integrieren. Beispielsweise erfordern Audio-Anwendungen wie MP3 eine sehr guten DSP und eine Menge einfache Controller-Funktionen. Der Star-DSP-Kern verfügt über einen ‚eingebauten‘ RISC-Prozessor. Er kann bis zu 32 priorisierte Interrupts verwalten, verfügt über verschiedene indirekte Adressierungen, bedingte Befehle, und einen Hardware-Stack und Push/Pop für Task-Wechsel. Auf diese Weise kann der Star-DSP ohne zusätzliche Controller-Cores in vielen Fällen genügend Controller-Funktionen zur Verfügung stellen, um einen zusätzlichen Controller überflüssig zu machen. Wer jedoch die Funktionalität eines Controllers benötigt, dem hilft die Entwicklungsumgebung von DSP. Derzeit lassen sich Controller-Kerne von MIPS und ARM in die SoCs integrieren. Wie bei den Peripheriekomponenten genügt es, die Controller anzuklicken und die Entwicklungsumgebung übernimmt die Integration. 3DSP stellt sogar den vollständigen AMBA-Bus zur Verfügung, so dass sich der ARM-Core nahtlos in das Design einfügen lässt. Die Entwicklungsumgebung ist also speziell auf den Entwurf von DSP-basierten SoCs ausgelegt. Bisher gibt es derartige voll funktionsfähige Umgebungen nicht, wie die Ingenieure wissen, die sich schon mit dem Entwurf von SoCs befasst haben. Erst wenn beides vorhanden ist, ein leistungsfähiger konfigurierbarer DSP-Kern und die Entwicklungsumgebung für SoCs, kann der Anwender die Erfordernisse seiner Kunden erfüllen. Die Umgebung von 3DSP ist so einfach ausgelegt, dass Systemingenieure ohne weiteres mit ihr zurechtkommen. Sie können sich also ausschließlich auf die Entwicklung des Systems konzentrieren, ohne auf Gatterebene hinabsteigen zu müssen. Das wird das Design von DSP-basierten SoCs deutlich beschleunigen.
|
| |
|
 |
|