Der Einsatz von CORBA in verteilten EDA-Tools Frank Grützmacher Technische Universität Ilmenau Fakultät für Elektrotechnik und Informationstechnik Fachgebiet Mikroelektronische Schaltungen und Systeme
Anforderungen aus der Methodik des Strukturentwurfs analoger Systemkomponenten (1) Ziel : Schaffung eines geeigneten Werkzeugs zur Unterstützung der High -Level Synthese ( Vortrag Dr. Kampe, Session 6 ) Weg : - platformunabhängige Realisierung mit Hilfe von Java - verteilte Architektur mittels CORBA
Anforderungen aus der Methodik des Strukturentwurfs analoger Systemkomponenten (2) Anforderungen : Höchstmaß an Verfügbarkeit Vielzahl graphischer Sichten möglichst große Freiheit bei der Implementierung Gute Skalierbarkeit potentielle Multiuserfähigkeit offene Architektur
CORBA in EDA-Tools? Große, monolithische Gebilde K3 K1 K2 Heutige Tools sind meistens historisch gewachsen, daher oft große, monolithische Gebilde mit einer komplexen Schnittstellenarchitektur Ähnlich wie bei Hardwarebausteinen muß man auch bei Software hin zu vorgefertigten, domainspezifischen Standardbausteinen kommen
Grundlegende Architektur (2) Applikation nicht mehr als ein großes monolithisches Gebilde sondern : seperate Komponenten interne Realisierung wird hinter einen Interface versteckt Verteilung in einer heterogenen Umgebung durch den Einsatz von CORBA möglich freie Wahl der Implementierungsplatform beim Einsatz von Java
Dienstvermittlung in einen verteilten Werkzeug (1) Corba kennt keine fixe Client-Server Beziehung man stellt Dienste bereit ( z.b. einen spez. Router ) der potentielle Client kann über das ihm bekannte Interface auf diesen Dienst zugreifen aber : - Wie erreicht der Client einen Dienst? - Wie erzeugt/zerstört man einen Dienst? - Kennt der Server seine Clients?
Dienstvermittlung in einen verteilten Werkzeug (2) A) mit dem Namensdienst.. Technologie -Server registrieren ihre Objekte unter einen Namen -Clients können über diesen Namen-Referenzen erfragen Mitec AMS 0.25 0.35 0.5 0.8 -z.b. Modulgeneratoren ID Kind objref PCell ModulGen 0.35 0.5 Cadence-PCell-Server
Dienstvermittlung in einen verteilten Werkzeug (2) B) Mit dem Trader-Service Service Offer z.b. Modulgenerator... Service Typ Properties objref Service Type Repository besteht aus Name, Type und Wert z.b. ChannelSize, float, 0.5 0.5 PCell-Server
Dienstvermittlung in einen verteilten Werkzeug (3) Automatischer Start von benötigten Diensten Client-Rechner Client A) Client erfragt die Server-IOR 1. 2. Namingoder Trader- Service Server-Rechner -Server wird durch den Daemon gestartet -Client bekommt die richtige IOR mitgeteilt Server B) Client macht den ersten Aufruf 3. über IIOP Implementation Repository 4. Netzwerk z.b. orbixd bei Orbix
Interfacegestaltung und Design (1) die Kosten für entfernte Aufrufe müssen im Design beachtet werden IIOP Performance Einschränkungen : Wieviele Nachrichten kann der ORB maximal liefern ( Call latency ) Wie groß und wie strukturiert sind die Daten und wie lange braucht der ORB um diese Daten zu konvertieren ( Marshalling Rate ) Der Weg : Vermeidung von fetten Operationen (siehe nächste Folie ) keine zu feingranularen Interfaces ( d.h. Ersetzen von Interfaces durch Daten ) Client-Side-Caching und Smart-Proxies
Interfacegestaltung und Design (2) Bsp.: Für eine fette Operation/Interface interface Cell { }; Vorteil: attribute float wox; attribute float woy; attribute string inst_name; attribute ORIENTATION orient;... - beim Client benötigte Daten werden als Wert übertragen - Resourcen beim Server geschont Nachteil : - jede Teilinformation resultiert in einen Netzwerkcall - jede Zelle benötigt eine Klasse auf Server-Seite enum DIRECTION { MX, MY, MXR90, MYR90, R90, R180, R270, NOT } ; struct Point { float x; float y; }; struct Cell { Point location; string inst_name; DIRECTION orient; };
Bsp.-Komponente : Synthesebibliothek (1) Aufgaben : Anforderungen : Realisierung : - verwaltet persistentes Synthesewissen - ermöglicht Suchen nach Teilmodellen bzw. bestimmten Eigenschaften in den Modellen - mehrere Suchanfragen dürfen die Synthesebibliothek nicht blockieren - Suchergebnisse selbst müssen persistent gespeichert werden - Option auf verteiltes Suchen - Synthesegraphen werden in einem OODBMS gespeichert - Aufsplittung der Funktionalität in Daten- und Suchanfragencontroller
Bsp.-Komponente : Synthesebibliothek (2)
Kopplung zu Standard-Tools - durch eine bidirektionale CORBA/DCOM -Bridge können Standard -Windows Applikationen auch mit verteilten CORBA-EDA-Applikationen interagieren - z.b. wären Reportgeneratoren in Word oder Statistiken in Excel denkbar Router Simulator Schematic... ORB CORBA/DCOM-Bridge z.b. COMET von Iona Inc. Excel Word
EDA-Komponenten Vision? - eine Vielzahl von Standard-EDA-Bausteinen mit klar beschriebener Funktionalität und standardisierten Interface ( in IDL ) - z.b. austauschbare, hot-plugable Router oder Simulatoren Rent a EDA-Tool? - Trennung der eigentlichen GUIs von den komplexen und datenintensiven Teilen.. - GUI beim Nutzer; Berechnungen werden auf High-End Maschinen beim Hersteller ausgeführt