Der Einsatz von CORBA in verteilten EDA-Tools - Frank Grützmacher Technische Universität Ilmenau

Die Seite wird erstellt Petra-Hortensia Appel
 
WEITER LESEN
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 ?
                                  K1
    Große, mono-
    lithische Gebilde                     K2
                             K3

Heutige Tools sind      Ähnlich wie bei
meistens „historisch“   Hardwarebausteinen
gewachsen , daher oft   muß man auch bei
große, monolithische    Software hin zu
Gebilde mit einer       vorgefertigten, domain-
komplexen Schnitt-      spezifischen Standard-
stellenarchitektur      bausteinen 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 ..       -Server registrieren ihre
                                  Objekte unter einen Namen
                                 -Clients können über
                                  diesen Namen-Referenzen
            Technologie           erfragen
    Mitec              AMS

 0.25    0.35    0.5   0.8
                                              0.35

        -z.B. Modulgeneratoren                  0.5
           ID      Kind objRef           Cadence-PCell-Server
         PCell ModulGen
Dienstvermittlung in einen
            verteilten Werkzeug (2)
B) Mit dem Trader-Service

  „Service Offer“                 z.B. Modulgenerator

              Service Typ
                                  besteht aus Name, Type
              Properties          und Wert
                                  z.B. „ChannelSize“ ,
               objRef                  float , 0.5
  ...

                                           0.5
        Service Type Repository       PCell-Server
Dienstvermittlung in einen
            verteilten Werkzeug (3)
         Automatischer Start von benötigten Diensten
Client-Rechner                 Naming-        Server-Rechner
                                oder       -Server wird durch den
                               Trader-     Daemon gestartet
 Client                  1.
                               Service     -Client bekommt die
                                           „richtige“ IOR mitgeteilt
 A) Client „erfragt“      2.
    die Server-IOR
                                                         Server
 B) Client macht
    den ersten Aufruf
                                                                4.
                              über IIOP    Implementation
                         3.                Repository

                               Netzwerk
                                            z.B. „orbixd“ bei Orbix
Interfacegestaltung und Design (1)
                    • die „Kosten“ für entfernte Aufrufe
                      müssen im Design beachtet werden

IIOP Performance    • Wieviele Nachrichten kann der ORB
                      maximal liefern ( „Call latency“ )
Einschränkungen :
                    • Wie groß und wie strukturiert sind die
                      Daten und wie lange braucht der ORB
                      um diese Daten zu konvertieren
                      („Marshalling Rate“ )

                    ✏ Vermeidung von „fetten“ Operationen
                      (siehe nächste Folie )
                    ✏ keine zu feingranularen Interfaces
   Der Weg :          ( d.h. Ersetzen von Interfaces durch
                        Daten )
                    ✏ Client-Side-Caching und Smart-Proxies
Interfacegestaltung und Design (2)
     Bsp.: Für eine„fette“ Operation/Interface
                                          Nachteil :
interface Cell {
                                          - jede Teilinformation resultiert
        attribute float woX;                in einen Netzwerkcall
        attribute float woY;              - jede Zelle benötigt eine
        attribute string inst_name;         Klasse auf Server-Seite
        attribute ORIENTATION orient;
        ...                             enum DIRECTION { MX, MY, MXR90,
                                        MYR90, R90, R180, R270, NOT } ;
};
                                        struct Point {
                                           float x;
 Vorteil:                                  float y;
                                        };
 - beim Client benötigte Daten
                                        struct Cell {
   werden als Wert übertragen
                                            Point location;
 - Resourcen beim Server                    string inst_name;
                                            DIRECTION orient;
   geschont                             };
Bsp.-Komponente :
                 Synthesebibliothek (1)
                  - verwaltet persistentes Synthesewissen
Aufgaben :
                  - ermöglicht Suchen nach Teilmodellen
                    bzw. bestimmten Eigenschaften in den Modellen

Anforderungen :   - mehrere Suchanfragen dürfen die Synthese-
                    bibliothek nicht blockieren
                  - Suchergebnisse selbst müssen persistent gespeichert
                    werden
                  - Option auf verteiltes Suchen

Realisierung :    - 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
Sie können auch lesen