Suchen

Feldprogrammierbare Logikbausteine FPOA bietet höhere Leistungsfähigkeit als FPGA

| Redakteur: Holger Heller

FPOA steht für „Field Programmable Object Array“, einen reprogrammierbaren Baustein, der die vierfache Leistungsfähigkeit eines FPGA bieten soll. Bei der zweidimensionalen Anordnung der „Silicon Objects“ handelt es sich um konfigurierbare 16-Bit-Rechenwerke wie etwa eine ALU-, eine MAC-Einheit oder um ein Register-File.

Firma zum Thema

( Archiv: Vogel Business Media )

In den FPOAs der Arrix-Familie, der Highend-Baureihe von MathStar, sind drei verschiedene Typen von Silicon Objects auf die Array-Struktur verteilt: die Arithmetic Logic Unit (ALU), der Multiply Accumulator (MAC) und das Register-File (RF). Innerhalb des Arrays steht außerdem internes RAM zur Verfügung, das sich durch direkt anschließbares externes DRAM ergänzen lässt. Das Verhalten des einzelnen Silicon Objects als auch die Verknüpfung der Silicon Objects untereinander sind im Feld programmierbar.

Die Möglichkeit, das Array sowohl an Highspeed-LVDS-I/Os als auch an universelle I/Os anzuschließen, ermöglicht sowohl hohe Bandbreite als auch flexible I/O-Konfigurationen. Durch das zahlenmäßige Verhältnis und die Platzierung der verschiedenen Silicon Objects sind die Voraussetzungen für leistungsfähige DSP-Applikationen gegeben (Bild 1).

Bildergalerie
  • Arithmetic Logic Units (ALUs): 256,
  • Register Files (RFs): 80,
  • Multiply Accumulators (MACs): 64,
  • Gesamtzahl der Silicon Objects: 400.

Die Arrix-Familie als zweite FPOA-Generation von MathStar eignet sich für eine Reihe von Anwendungen und bietet folgende Leistungsmerkmale:

  • 400 Silicon Objects für bis zu 1 GHz Taktfrequenz,
  • 256 ALUs,
  • 64 MACs,
  • 80 RFs,
  • zwei bidirektionale 500-MHz-DDR/16-Bit-LVDS-Ports (Bandbreite: 64 GBit/s),
  • 96 LVCMOS-GPIO-Pins für den synchronen oder asynchronen Betrieb bis 100 MHz,
  • 12 interne 500-MHz-SRAM-Bänke (57 GByte/s),
  • Zwei 266-MHz/36-Bit-DDR-RLDRAM-II-Controller (72-Bit pro Zyklus) für Zugriffe auf externen Speicher (4,8 GByte/s).

FPOA-Eigenschaften

Ein FPOA kann hinsichtlich der Größe des Arrays, der Zusammenstellung und Anordnung von Silicon Objects, der eingebauten Speicherkapazität und der Art der I/O-Funktionen individuell konfiguriert werden. Jede FPOA-Familie zielt dabei auf ein bestimmtes Anwendungsgebiet und kann mehrere unterschiedliche Arraygrößen und Silicon-Object-Kombinationen enthalten. Die Silicon Objects stellen Hunderte heterogener Verarbeitungsobjekte mittleren Umfangs (Medium Grained) dar; der Daten- und Steuerungspfad sind innerhalb des Arrays locker miteinander verbunden und werden unabhängig voneinander konfiguriert.

Während der Datenpfad 16 Bit breit ist, weist der Steuerungspfad eine Breite von 5 Bit auf. Aus mehreren Objekten können breitere Datenpfade zusammengesetzt werden. Jedes Silicon Object verfügt über seine eigenen Programm- und Datenspeicher und kann autonom, also ohne globale Steuerungseingriffe operieren. Die Objekte im FPOA verteilen sich auf zwei Bereiche: die Kernzone (Core) und die Peripherie.Die Core-Objekte arbeiten mit Taktfrequenzen bis 1 GHz und übernehmen den Großteil der Verarbeitungsaufgaben. Die Peripherie-Objekte stellen zusätzliche RAM-Ressourcen zur Verfügung und übernehmen die I/O-Zugriffe.

Im Core-Bereich eines FPOA finden sich ALUs für logische und mathematische Funktionen, MACs für 16×16-Bit-Operationen und das Register-File zum Puffern von Daten als FIFO oder konfigurierbares RAM. In der Peripheriezone des FPOA finden sich zusätzlich weitere interne RAM-Objekte sowie Controller-Objekte für den Zugriff auf externes RAM. Das Array lässt sich an schnelle LVDS-I/Os und an universelle I/Os anschließen, um eine große Speicherbandbreite und flexible I/O-Konfigurationen möglich zu machen. Das zahlenmäßige Verhältnis und die Platzierung der verschiedenen Silicon Objects schaffen die Voraussetzungen für leistungsfähige digitale Signalverarbeitung.

Interne Kommunikation

Die Kommunikation der Silicon Objects untereinander geschieht über zwei Mechanismen: Zunächst kann jedes Objekt mit Hilfe von Nearest-Neighbour-Verbindungen Daten ohne jede Latenz mit seinen acht direkten Nachbarn austauschen. Wird die Distanz zwischen den Objekten größer, richten Party-Line-Verbindungen eine Pipeline-Verbindung ein, was Datentransfers mit der vollen vom Core unterstützten Taktrate ermöglicht.

Bei FPOAs mit 1 GHz Taktfrequenz können Party-Line-Verbindungen in einem einzigen Taktzyklus die Datenübertragung bis zu einer Distanz von drei Objekten übernehmen. Objekte sind in der Lage, ihr Kommunikationsschema von einem Taktzyklus zum anderen zu wechseln. Jede ALU enthält einen acht Instruktionen fassenden Programmspeicher, in dem sowohl die Operation als auch die Kommunikationsrichtungen abgelegt werden. Die Instruktionen werden nach dem Einschalten der Betriebsspannung geladen, können aber vom Host-System auch nachträglich noch geändert werden.

Der Steuerungspfad lenkt die Programmverarbeitung, während die Übertragung der Daten über den 16-Bit-Datenpfad erfolgt. So betrachtet, sind die Instruktionen der Mechanismus, der die eigentlich voneinander unabhängigen Steuerungs- und Datenpfade innerhalb des Arrays zusammenhält.

Initialisierung und Steuerung des FPOA

In die Initialisierung und Steuerung des FPOA sind drei Schnittstellen involviert. Der PROM-Controller überwacht den Lade- und Initialisierungsprozess des FPOA. Ein JTAG-Controller stellt eine alternative Möglichkeit zum Laden einer FPOA-Konfiguration zur Verfügung und erlaubt den Zugriff auf den Speicher (z.B. IRAM) als Hilfestellung beim Debugging. Das Control-Objekt kann zum Anhalten des Core-Takts verwendet werden. Es enthält zusätzlich eine PLL-Stufe, die durch Multiplikation eines externen Referenztakts den Core-Takt für das FPOA generiert.

Die FPOA-Designsoftware von MathStar dient zum Entwerfen, Verifizieren, Programmieren und Debuggen ihrer Algorithmen auf der Arrix-Produktfamilie. Der Design-Flow (Bild 2) bedient sich industrieweit anerkannter EDA-Tools, die durch MathStar-eigene Bibliotheken und Tools speziell für die FPOA-Architektur ergänzt werden und beginnt mit der Eingabe des Designs mit Hilfe der integrierten Entwicklungsumgebung (IDE) Visual Elite von Summit Design.

MathStar hält Vorlagen bereit, welche die unterschiedlichen Programmieroptionen für jedes Silicon Object im FPOA demonstrieren. Der Anwender muss diese Vorlagen lediglich editieren, um ALU, MAC, RF und andere Objekte zu konfigurieren. Die Visual Elite IDE wird durch eigene Simulationsmodelle für die zügige Funktionsverifikation ergänzt. Der eingebaute Simulator von Visual Elite und die in der Umgebung vorhandenen Tools zum Darstellen von Signalverläufen unterstützen den Entwickler beim Debuggen seines Designs mit Hilfe von Funktionssimulationen.

Ist das Logikdesign abgeschlossen, kann der Designer die Ausarbeitung der physischen FPOA-Implementierung in Angriff nehmen. Das COAST-Tool von MathStar bietet eine grafische Benutzeroberfläche für die Platzierung und Verdrahtung der Silicon Objects im Arrix-FPOA (Bild 3). COAST ermöglicht das Platzieren der einzelnen Funktionsblöcke und unterstützt ebenfalls das Verlegen der Kommunikationswege. Darüber hinaus ist das Compilieren der in Visual Elite erstellten Applikation unter Verwendung des in COAST erarbeiteten Mappings zu einem FPOA Load Image File möglich, mit dem die eigentliche Konfiguration des FPOA erfolgt. COAST stellt das Debug-Tool, um dieses File per JTAG in den Chip zu übertragen oder ein PROM-Image zu erstellen.

FPOA contra FPGA

Für eingefleischte Signalverarbeiter ist es eigentlich nicht neu: Signalflussdiagramme können sowohl in ein Mikroprozessorprogramm (meist eher für DSPs) implementiert werden, aber eigentlich könnte man den Signalfluss z.B. für einen IIR- oder FIR-Filter auch direkt in Operationen umsetzen. Und genau das ermöglichen FPOAs deren wesentlicher Unterschied zu den FPGAs in der Abkehr von der Einzelbitoperation hin zu arithmetischen Operationen besteht. Aus diesem Unterschied resultieren einige Vorteile, z.B. wird das Timing im Baustein wesentlich einfacher. FPOAs zielen direkt auf reguläre Algorithmen, bei denen vergleichsweise kleine Programme große Datenströme bewältigen, also auf die klassische Signalverarbeitung.

Bleibt noch das Softwareinterface zur Programmerstellung: MathStar bietet eine Hardwarebeschreibungssprache (OHDL) bzw. eine grafische Entwicklungsoberfläche (Visual Elite, Mentor Graphic) an – mit allen Problemen für sequenziell denkende Softwareentwickler. Ein Algorithmus wird nicht nur einfach anhand der Operationen beschrieben, auch das Placement der Operationen im zweidimensionalen Silizium-Array ist notwendig (und entscheidend für die Performance), und meist muss der Entwickler auch noch ein Pipelining beachten: Wie bei RISC-Prozessoren wird der Durchsatz erheblich beschleunigt, wenn die Bearbeitung in mehrere Zeitphasen eingeteilt wird und die Daten im Fließband dort durchlaufen.

Anders ausgedrückt: Ohne Pipelining wird viel Performance verschenkt, und dieses Pipelining ist jetzt applikationsspezifisch. So sind die FPOAs ein Schritt in die richtige Richtung: Sehr effiziente, schnelle, programmierbare Bausteine insbesondere für Datenflussalgorithmen, aber auf den zweiten Schritt – dies mit einem Compiler für Programmiersprachen aus der Softwarewelt zu versehen – müssen wir wohl noch warten.

Nach Unterlagen der Firma MathStar, Hillsboro, Oregon.

(ID:207278)