Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR PRODUCING COMPUTER-ASSISTED REAL-TIME SYSTEMS
Document Type and Number:
WIPO Patent Application WO/2002/021261
Kind Code:
A2
Abstract:
The invention relates to a method for producing a computer-assisted real-time system that comprises at least one processing unit. Data exchange between said processing unit and the environment or one or more additional processing units is synchronous or asynchronous. At least one real clock is allocated to the processing unit to correlate data exchange, said clock being defined by the following relation (a).

Inventors:
MUENZENBERGER RALF (DE)
SLOMKA FRANK (DE)
DOERFEL MATTHIAS (DE)
BRINGMANN OLIVER (DE)
Application Number:
PCT/DE2001/003349
Publication Date:
March 14, 2002
Filing Date:
September 03, 2001
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
UNIV FRIEDRICH ALEXANDER ER (DE)
MUENZENBERGER RALF (DE)
SLOMKA FRANK (DE)
DOERFEL MATTHIAS (DE)
BRINGMANN OLIVER (DE)
International Classes:
H04Q11/04; G04C15/00; G04F5/00; G06F1/04; G06F1/14; G06F9/00; H04L12/56; (IPC1-7): G06F9/00
Foreign References:
EP0903655A21999-03-24
Other References:
MARCHIORO G F ET AL: "Transformational partitioning for codesign" IEE PROCEEDINGS: COMPUTERS AND DIGITAL TECHNIQUES, IEE, GB, Bd. 145, Nr. 3, 26. Mai 1998 (1998-05-26), Seiten 181-195, XP006010840 ISSN: 1350-2387
PATEL A ET AL: "A timestamp model for determining real-time communications in intelligent networks" COMPUTER COMMUNICATIONS, ELSEVIER SCIENCE PUBLISHERS BV, AMSTERDAM, NL, Bd. 20, Nr. 4, 1. Juni 1997 (1997-06-01), Seiten 211-218, XP004126679 ISSN: 0140-3664
KOPETZ H ET AL: "CLOCK SYNCHRONIZATION IN DISTRIBUTED REAL-TIME SYSTEMS" IEEE TRANSACTIONS ON COMPUTERS, IEEE INC. NEW YORK, US, Bd. C-36, Nr. 8, August 1987 (1987-08), Seiten 933-940, XP001042040 ISSN: 0018-9340 in der Anmeldung erwähnt
Attorney, Agent or Firm:
Gassner, Wolfgang (Nägelsbachstr. 49A Erlangen, DE)
Download PDF:
Claims:
Patentansprüche
1. Verfahren zur Herstellung eines computergestützten Echt zeitsystems mit mindestens einer Verarbeitungseinheit (Vla, Vlb,...), wobei ein Datenaustausch zwischen der Verarbeitungseinheit Vla, Vlb,...) und der Umgebung oder einer oder mehreren wei teren Verarbeitungseinheiten (V2a, V2b,...) synchron oder asynchron durchgeführt wird, und wobei zur Korrelation des in einer Computeranlage erfolgenden Datenaustauschs der Verarbeitungseinheit (Vla, Vlb,...) min destens eine reale Uhr zugeordnet wird, dadurch gekennzeich net, daß die reale Uhr durch folgende Beziehung definiert ist : wobei Cr (t) e R in [sec] Rv : Wertebereich, R, C fR+ in [sec], Gr : Granularität, G C R+ in [sec], wobei Gr und Rv auf den kleinste auftretende Einheit normiert sind.
2. T : Taktperiode, T C R+, in [sec], Cc (t) = [1+g] # Ci (t) + G (p#, t) + So, wobei Cc (t) C R in [sec] Ci (t) = t; t e R, in [sec] g : Genauigkeit der Uhr, g # R, z. B. die Quarzgenauigkeit in ppm. g (p#, t) Genauigkeitsänderung der Uhr über der Zeit in Ab hängigkeit von physikalischen Größen, dargestellt durch den Vektor p# z. B. der Temperatur, g (p#, t) C als wirksame Genauigkeitsänderung in einem Zeitintervall (t2t1) So : Startoffset, So C R in [sec].
3. Verfahren nach Anspruch 1, wobei ein der Verarbeitungs einheit (Vla, Vlb,...) zugeordneter numerischer Zähler mit tels der Uhr gemäß der folgenden Beziehung gesteuert wird. wobei CA (t) : S Z T : Taktperiode der diskreten realen Uhr, T C R+ in [sec], NA : Anzahl der Änderungen, NA C N+ GA : Granularität des abgeleiteten Zählers, GA C N+, RA : Wertebereich des abgeleiteten Zählers, RA C N+, T : Verzögerungszeit, T C + U {O} in [sec].
4. Verfahren nach einem der vorhergehenden Ansprüche, wobei eine der Uhren als Referenzuhr zur Synchronisation der ande ren Uhren dient.
5. Verfahren nach einem der vorhergehenden Ansprüche, wobei zur Steuerung oder Regelung eines technischen Prozesses der Datenaustausch mit den Verarbeitungseinheiten (Via, Vlb,... V2a, V2b,...) real zeitgesteuert durchgeführt wird.
6. Verfahren nach einem der vorhergehenden Ansprüche, wobei ein von einer Verarbeitungseinheit (Via, Vlb,... V2a, V2b,...) empfangener aus einer Abfolge von Datenpakten gebildeter Da tenstrom und ein gesendeter Datenstrom entkoppelt werden, so daß der gesendete Datenstrom eine vom empfangenen Datenstrom verschiedene Abfolge der Datenpakete aufweist.
7. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Verarbeitungseinheit (Via, Vlb,...) eine Warteschlange zugeordnet wird.
8. Verfahren nach Anspruch 6, wobei die Warteschlange mit der Uhr, vorzugsweise mit der als Referenzuhr dienenden Uhr, zeitgesteuert wird.
9. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Datenpakete mit einer von der Uhr erzeugten realen Zeit marke versehen werden.
10. Verfahren nach einem der vorhergehenden Ansprüche, wobei mit der Uhr Zeitschranken, insbesondere Zeitbedingungen oder Zeitanforderungen, definiert werden.
11. Computeranlage hergerichtet zur Durchführung des Verfah rens nach einem der vorhergehenden Ansprüche.
Description:
Beschreibung Verfahren zur Herstellung von computergestützten Echtzeitsy- stemen Die Erfindung betrifft ein Verfahren zur Herstellung von com- putergestützten Echtzeitsystemen mit mindestens einer Verar- beitungseinheit nach dem Oberbegriff des Anspruchs 1. Sie be- trifft ferner eine zur Durchführung des Verfahrens hergerich- tete Computeranlage.

Unter Echtzeitsystemen werden allgemein Systeme verstanden, die zu einem vorgegebenen Zeitpunkt und/oder nach Ablauf ei- ner vorgegebenen Zeitspanne ein bestimmtes Rechenergebnis liefern müssen. Z. B. beträgt der Zeitaufwand zur Umwandlung von Sprache in digitale Signale sowie deren Übertragung und die anschließende Rückumwandlung der digitalen Signale in ein analoges Tonsignal etwa 250 ms, d. h. die Kommunikation via mobiler Telefongeräte erfolgt mit einer Zeitverzögerung von 250 ms. Wenn die Zeitverzögerung größer als 250 ms ist, dann ist die übertragene Sprache nicht mehr verständlich.

Computergestützte Echtzeitsysteme mit mehreren Verarbeitungs- einheiten, sogenannte verteilte Echtzeitsysteme, sind nach dem Stand der Technik weit verbreitet. Z. B. handelt es sich bei mobilen Telefonen, deren Vermittlungsanlagen und Netzen um ein solches verteiltes Echtzeitsystem.

Ein verteiltes Echtzeitsystem kann aus mehreren Verarbei- tungseinheiten bestehen. Es kann sich um Bestandteile ein und derselben Vorrichtung handeln. Es kann aber auch sein, daß Verarbeitungseinheiten, wie z. B. ein mobiles Telefon und eine Vermittlungsanlage, räumlich voneinander getrennt sind.

Die Herstellung verteilter Echtzeitsysteme erfolgt auf der Grundlage abstrakter Spezifikationen, wie z. B. der unter der Abkürzung"SDL"bekannten"Specification and Description Lan- guage" (ITU-T. Z. 100, Appendix I. ITU, SDL Methodology Guideli- nes, ITU, 1993). SDL beruht auf dem technischen Prinzip, daß jeder Verarbeitungseinheit bzw. jedem Prozeß eine Warte- schlange zugeordnet ist. Es ist zwingend erforderlich, daß der üblicherweise über einen Bus erfolgende Datenaustausch bzw. die Kommunikation zwischen den Verarbeitungseinheiten ausschließlich über die Warteschlange erfolgt, wobei sämtli- che Prozesse parallel laufen.

Zur Korrelation des Datenaustauschs ist jeder Verarbeitungs- einheit außerdem mindestens ein sogenanntes Timer-Modul zuge- ordnet. Dabei handelt es sich um einen numerischen Zähler.

Dessen Zählperiode ist nicht normiert ; sie kann vom Prozes- sortakt abgeleitet sein. Sie ist abhängig von der jeweils ge- wählten Hardware und/oder vom jeweiligen Programm. Dadurch bedingt ist es bisher nicht zuverlässig möglich, eine ab- strakte Spezifikation von Hard-und Software der echtzeitab- hängigen Schichten eines Kommunikationssystems automatisch zu implementieren. Die Implementationen sind entweder zu langsam oder sie erfüllen nicht die zeitlichen Randbedingungen. Um diesem Nachteil entgegenzuwirken, wird die Hardware mit Hilfe von Schaltplänen oder mittels Hardwarebeschreibungssprachen spezifiziert und dann implementiert. Die Software wird meist mittels Programmiersprachen implementiert. Das bekannte Ver- fahren ist zeit-und kostenaufwendig und fehleranfällig.

Neben SDL gibt es auch andere Implementierungs-Sprachen, in die Uhren als Komponenten eingebunden sein können. Z. B. kann bei der unter der Abkürzung"UML"bekannten Unified Modelling

Language auf Uhren zugegriffen werden. Eine weitere Implemen- tierungs-Sprache ist die unter der Abkürzung"VHDL"bekannte Very High speed integrated circuit hardware Description Lan- guage. Sowohl UML als auch WHDL kommen ohne das Vorsehen von Warteschlangen aus.

Aus Kopetz, H., Ochsenreiter, W. : Clock Syncronisation in Di- stributed Real-Time Systems ; in IEEE Trans. on Computers, Vol. C-36, No. 8, August 1987, ist ein gattungsgemäßes Verfah- ren zur Herstellung eines computergestützten Echtzeitsystems bekannt. Nicht bekannt aus dem vorgenannten Dokument ist eine Spezifikation einer realen Uhr, welche die vorgenannten Nach- teile aus dem Stand der Technik beseitigt.

Aufgabe der Erfindung ist es, die Nachteile nach dem Stand der Technik zu beseitigen. Es soll insbesondere ein Verfahren angegeben werden, mit dem Echtzeitsysteme einfach, rasch und kostengünstig herstellbar sind. Es soll eine automatische Im- plementierung einer abstrakten Spezifikation von Echtzeitsy- stemen ermöglicht werden. Weiteres Ziel der Erfindung ist es, Fehler bei der Herstellung von Echtzeitsystemen zu vermeiden.

Diese Aufgabe wird durch die Merkmale der Ansprüche 1 und 10 gelöst. Zweckmäßige Ausgestaltungen ergeben sich aus den Merkmalen der Ansprüche 2 bis 9.

Nach Maßgabe der Erfindung ist ein Verfahren zur Herstellung eines computergestützten Echtzeitsystems mit mindestens einer Verarbeitungseinheit vorgesehen, bei dem die reale Uhr durch folgende Beziehung definiert ist :

mod Rv,, wobei Cr (t) # R in [sec] wobei Rv : Wertebereich, Rv C IR+ in [sec], Gr : Granularität, Gr # IR+ in [sec], wobei Gr und Rv auf den kleinsten auftretenden Wert normiert sind, T : Taktperiode, T C IR+ in [sec], wobei Cc (t) = [1+g] # Ci (t) + G (p9, t) + So, wobei Cc (t) C R in [sec] Ci (t) = t ; t C R in [sec], g : Genauigkeit der Uhr, g eR, z. B. die Quarzgenauigkeit in ppm. g (p#, t) : Genauigkeitsänderung der Uhr über der Zeit in Ab- hängigkeit von physikalischen Größen, dargestellt durch den Vektor p, z. B. der Temperatur, g (p#, t) als wirksame Genauigkeitsänderung in einem Zeitintervall (t2-tl),

G (p9, t) R in [sec] So : Startoffset, So (R in [sec] Das erfindungsgemäße Verfahren ermöglicht es, Daten, Datenpa- kete oder Datenströme in einer Computeranlage mit einer von der Systemlogik unabhängigen genauen Zeitmarke zu markieren.

Das eröffnet völlig neue Freiheiten in der Spezifikation, insbesondere von verteilten Echtzeitsystemen. Mit einer nach dem erfindungsgemäßen Verfahren hergestellten Spezifikation entfallen die Implementierungsprobleme nach dem Stand der Technik. Es kann bereits bei der Analyse des funktionalen und zeitlichen Verhaltens sowie der nachfolgenden Spezifikation die reale Zeit berücksichtigt werden. Das vorgeschlagene Ver- fahren ermöglicht die Angabe eines universellen Entwurfsmu- sters, welches sich für die Herstellung, insbesondere von verteilten Echtzeitsystemen in den unterschiedlichsten Anwen- dungsbereichen eignet. Die mit dem erfindungsgemäßen Verfah- ren mögliche formale Berücksichtigung von Zeitanforderungen ermöglicht es außerdem, die echtzeitabhängigen Schichten ei- nes Kommunikationssystems zu spezifizieren und daraus effizi- ente Implementierungen automatisch abzuleiten.

Des weiteren ist es möglich, in verteilten Echtzeitsystemen, die nicht in einer Vorrichtung realisiert sind, Beziehungen zwischen den Uhren zu definieren. So ergibt sich z. B. der Offset zweier Uhren zur Zeit t durch die Beziehung :

Oìi(t) = Ci (t) Ci (t) r r Unter Verwendung dieses Modells können z. B. Synchronisati- onsalgorithmen spezifiziert und validiert werden.

Ein der Verarbeitungseinheit zugeordneter numerischer Zähler kann mittels der Uhr gesteuert werden. Bei der Verwendung von mehreren der Uhren dient vorteilhafterweise eine der Uhren als Referenzuhr zur Synchronisation der anderen Uhren. Das ermöglicht einen geordneten Datenaustausch zwischen den Ver- arbeitungseinheiten.

Unter dem Begriff"Umgebung"wird hier ein technischer Prozeß verstanden. Zur Steuerung oder Regelung eines technischen Prozesses kann der Datenaustausch mit den Verarbeitungsein- heiten zweckmäßigerweise real zeitgesteuert durchgeführt wer- den. Bei den technischen Prozessen kann es sich in diesem Zu- sammenhang z. B. um die Steuerung einer chemischen Fabrik, ei- nes Antiblockiersystems eines Kraftfahrzeugs, eines Mobil- funknetzes und dgl. handeln.

Ein von einer Verarbeitungseinheit empfangener, aus einer Ab- folge von Datenpaketen gebildeter Datenstrom und ein gesende- ter Datenstrom können zweckmäßigerweise entkoppelt werden, so daß der gesendete Datenstrom eine vom empfangenen Datenstrom verschiedene Abfolge der Datenpakete aufweisen kann. Damit ist es möglich, verschiedene echtzeitabhängige Datenströme im Internet zu verwalten. Für bestimmte Datenströme kann die Übertragungsgeschwindigkeit drastisch erhöht werden. Es ist nicht mehr erforderlich, die bei der Verarbeitungseinheit an- kommende Abfolge von Datenpaketen sequentiell abzuarbeiten und in gleicher Reihenfolge wieder abzusenden.

Der Verarbeitungseinheit kann eine Warteschlange zugeordnet werden. Vorteilhafterweise wird die Warteschlange, vorzugs- weise mit der als Referenzuhr dienenden weiteren erfindungs- gemäßen Uhr, zeitgesteuert. Es können so zeitgesteuert Daten in die Warteschlage geschrieben oder aus der Warteschlange ausgelesen werden.

Nach einem weiteren Ausgestaltungsmerkmal werden die Datenpa- kete mit einer von der Uhr erzeugten realen Zeitmarke verse- hen. Die Markierung mittels realer Zeitmarken ermöglicht es, eine vorgegebene Abfolge von Datenpaketen zu senden, wobei zur Übertragung die Abfolge geändert und anschließend die vorgegebene Abfolge der Datenpakte wieder hergestellt wird.

Dadurch kann die Übertragungsgeschwindigkeit erhöht werden.

Besonders vorteilhaft ist es, mit der Uhr Zeitschranken, ins- besondere Zeitbedingungen oder Zeitanforderungen, zu definie- ren. Unter Zeitbedingungen werden Bedingungen verstanden, un- ter denen das System zu einer vorgegebenen Zeit eine vorgege- bene Aktion ausführt. Zeitanforderungen sind dagegen Anforde- rungen an das System, daß nach Ablauf einer vorgegebenen Zeit ein bestimmtes Ereignis eingetreten ist. Dabei kann es sich auch um ein externes Ereignis handeln.

Nach weiterer Maßgabe der Erfindung ist eine Computeranlage vorgesehen, welche zur Durchführung des erfindungsgemäßen Verfahrens geeignet ist. Mittels einer solchen Computeranlage ist eine präzise automatische Implementierung abstrakter Spe- zifikationen von Soft-und Hardware für Echtzeitsysteme schnell und einfach durchführbar.

Nachfolgend werden bevorzugte Ausführungsbeispiele des erfin- dungsgemäßen Verfahrens näher erläutert. Es zeigen : Fig. 1 einen Grafen zur Definition der realen Uhr, Fig. 2 schematisch den SDL-Prozeß mit einer realen Uhr, Fig. 3 ein synchronisiertes verteiltes Echtzeitsystem in SDL, Fig. 4a die Spezifikation von Uhren und den Zugriff über abstrakte Datentypen, Fig. 4b die Spezifikation von Zeitschranken und den Zugriff über abstrakte Datentypen, Fig. 5 die Spezifikation von Zeitanforderungen und den Zu- griff über abstrakte Datentypen, Fig. 6 die Implementierung eines Entwurfsmusters, Fig. 7 die Spezifikation eines Vermittlungsrechners mit Verkehrsüberwachung und Fig. 8 den Aufbau der Ausgänge des Vermittlungsrechners nach Fig. 7.

Fig. 9a-d die Spezifikation mit verschiedenen Architekturva- rianten, Fig. 1 erläutert die Unterschiede zwischen einer idealen, ei- ner kontinuierlich realen, einer diskreten realen und eines

abgeleiteten Zählers. Eine ideale Uhr ist definiert durch ei- ne lineare Funktion.

Ideale Uhr : Die durchgezogene Linie in Fig. 1 gibt die Funktion der idea- len Uhr gemäß der folgenden Formel wieder : Ci (t) = t ; t e R in [sec] Die kontinuierliche reale Uhr erfordert weitere Parameter.

Die kontinuierliche reale Uhr besitzt eine konstante Genauig- keit. Diese Genauigkeit wird meist in Millionstel-Teilen an- gegeben (ppm).

Zusätzlich muß berücksichtigt werden, daß die Taktperiode ei- ner kontinuierlichen realen Uhr, bedingt durch Schwankungen von physikalischen Parametern, wie z. B. der Temperatur, schwanken kann. Dies wird ausgedrückt durch eine Funktion g (p', t). Wobei p'ein Vektor mit den benötigten physikalischen Parametern in Abhängigkeit von deren zeitlichen Änderungen ist. In die Gleichung der kontinuierlichen, realen Uhr wird allerdings nicht die Funktion g (pi, t) eingesetzt, sondern da es sich um periodische Schwankungen handelt kann, die Funkti- on der wirksamen Genauigkeitsänderung G (pi, t) C R in [sec]

Treten z. B. periodische Schwankungen auf, kann es passieren, daß sich die Ungenauigkeiten der Uhr über ein Zeitintervall (t2-ti) herausmitteln. Mit diesen Definitionen ist die kon- tinuierliche reale Uhr durch folgende Gleichung beschrieben : Cc (t) = [1+g] # Ci (t) + G (pi, t) + So, wobei Cc (t) C R in [sec] Ci (t) = t ; t # R in [sec] wobei g : Genauigkeit der Uhr, g C R, z. B. die Quarzgenauigkeit in ppm. g (p^, t) Genauigkeitsänderung der Uhr über der Zeit in Ab- hängigkeit von physikalischen Größen, dargestellt durch den Vektor p#, z. B. der Temperatur, g (p9, t) als wirksame Genauigkeitsänderung in einem Zeitintervall (t2-tl) G (p9, t) # R in [sec] So : Startoffset, So # IR in [sec] Ein technischer Prozeß kann nicht in unendlich kleine Zeitab- schnitte aufgelöst werden. Jede technische Uhr schwingt mit einer endlichen Frequenz. Die Frequenz korreliert zur Taktpe- riode T der Uhr. Das kleinste ablesbare Intervall der diskre- ten realen Uhr ist definiert als Granularität G. Die formale

Abbildung der idealen Uhr auf die diskrete reale Uhr ist ge- geben durch die folgende Beziehung : Diskrete reale Uhr : mod RV, wobei Cr (t) C R in [sec] wobei Rv : Wertebereich, Rv C R in [sec], GA : Granularität, G C R in [sec], wobei G und Rv auf die kleinste auftretende Einheit normiert sind.

T : Taktperiode, T C R in [sec].

Die Diskretisierung der Zeit ist durch die Operatior beschrieben. Rv beschreibt den Wertebereich der diskreten realen Uhr. Nach Rv Zeiteinheiten zeigt die diskrete reale Uhr wieder 0 an. Das wird in der Gleichung durch die Modulo- Operation beschrieben. Die Ungenauigkeit G (pi, t) taucht hier nicht direkt auf. Die Taktperiode T, die Granularität Gr der Startoffset So und der Wertebereich Rv sind in Sekunden anzu- geben.

Ein von der diskreten Uhr gesteuerter Zähler wird durch folgende Beziehung beschrieben

wobei CA (t) # c T : Taktperiode der diskreten realen Uhr, T C IR+ in [sec], NA : Anzahl der Änderungen, NA C N+ GA : Granularität des abgeleiteten Zählers, GA C IN+, RA : Wertebereich des abgeleiteten Zählers, RA C N+, T : Verzögerungszeit, T 6 IR+ # {o} in [sec].

Die Verzögerungszeit zum Stellen des abgeleiteten Zählers ist T. NA beschreibt die Anzahl der Anzeigeänderungen der diskre- ten realen Uhr, bis sich die Anzeige des Zählers einmal än- dert. Die Granularität GA gibt die Intervalländerung der An- zeige an. RA beschreibt den Wertebereich des abgeleiteten Zählers.

Fig. 2 zeigt schematisch die Struktur einer Verarbeitungsein- heit in SDL bzw. einen sogenannten"SDL-Prozeß". Ein oder mehrere nach dem herkömmlichen SDL-Konzept vorgesehener Timer sind erfindungsgemäß mit einer realen Uhr verbunden. Wie aus

Fig. 3 ersichtlich ist, ist es damit möglich, die Timer ver- schiedener SDL-Prozesse zu synchronisieren.

Ein in den Fig. 2 und 3 gezeigtes eingehendes Signal kann mit einem Zeitstempel versehen werden, wobei es sich hierbei um eine reale Zeitmarke handelt.

Fig. 4a zeigt die Definition eines Satzes abstrakter Datenty- pen in SDL, mit der es möglich ist, auf die Anzeige der rea- len Uhren zuzugreifen, die realen Uhren zurückzusetzen oder zu bestimmten realen Zeiten auf vorgegebene Werte zu stellen.

Mit dem erfindungsgemäßen Verfahren lassen sich Entwurfsmu- ster zur automatischen Ableitung von Hard-und Software von eingebetteten verteilten Echtzeitsystemen angeben. Ein zweck- mäßiger Bestandteil eines solchen Entwurfsmusters ist die Formulierung von Zeitschranken. Zu diesem Zweck ist es insbe- sondere erforderlich, daß die verwendete Programmiersprache Zeitmarken generieren kann. Das kann z. B. durch Abfrage der Systemzeit erfolgen. Mögliche Zeitanforderungen für ein sol- ches Entwurfsmuster-wie z. B. in Fig. 5 gezeigt-sind : a) Eine erste Zeitanforderung für das periodische Auftreten des Zustands READ, d. h. für die Ausführung des Kontrollzweigs und eines Zustandsübergangs 1. Die erste Zeitanforderung er- gibt sich aus der Rate des empfangenen Datenstroms. Sie schreibt vor, daß im statistischen Mittel genau so viele Da- tenworte aus der Warteschlange gelesen werden können, wie ma- ximal hineingeschrieben werden. Die erste Zeitanforderung gilt nur dann, wenn Datenworte sich in der Warteschlange be- finden.

b) Die zweite Zeitanforderung schreibt vor, daß bei einem die Datenrate R unterstützenden Medium alle 1/R Zeiteinheiten ein Signal"Output"zur Auslastung des Mediums erzeugt werden muß. Die zweite Zeitanforderung gilt nur dann, wenn im Spei- cher des Entwurfsmusters Datenworte abgelegt sind.

Der in Fig. 4b gezeigte Datentyp"Eventclass"stellt u. a. folgende Operationen zur Verfügung, die zur Definition von Zeitbedingungen und Zeitanforderungen geeignet sind : Append : Trägt die aktuelle Systemzeit in eine Li- ste von Zeitstempeln ein ; Durationevent : Errechnet die Zeitdauer zwischen zwei in der Liste eingetragenen Zeitstempeln und Monitor : Protokolliert im Fehlerfall die Ergebnis- se der Zeitüberprüfung und schreibt diese auf ein entsprechendes Ausgabegerät.

ThrowException : Ruft eine Ausnahmeverarbeitung im Fehler- fall auf, um das System z. B. in einen si- cheren Zustand zu fahren.

Beispiele zur Realisierung von Bausteinen mit Hilfe des Mu- sters : Die jeweilige Funktionalität des Musters in unterschiedlichen Anwendungen oder als Baustein wird letztendlich durch die Funktionen Sortlnto () und SortOut () festgelegt. Wird das Ent- wurfsmuster in Kommunikationssystemen eingesetzt, z. B. zur Realisierung von Ablaufplanungsalgorithmen, Zeit-oder Fre- quenzmultiplexern oder Bandbreitenzuteilungen, versieht die

Funktion Sortlnto () jedes Datenwort mit einem Zeitstempel.

SortOut () liest dann die Datenworte in einer definierten Rei- henfolge gemäß ihrer Zeitstempel aus. Ferner ist es möglich, in der Funktion SortInto () eine Verkehrsüberwachung (Policy) durchzuführen. Dabei wird ermittelt, ob der Sender eines Da- tenstroms eine vereinbarte Dienstgüte (QoS : Quality of Ser- vice) einhält. An dieser Stelle kann u. a. auch die Wegeinfor- mation (Adresse, Telefonnummer, oder Pfadnummer in ATM) des Paketes ausgewertet und das Ziel der Sendefunktion festgelegt werden.

Bei der Realisierung von Steuer-oder Regelungsalgorithmen dagegen wird die jeweilige Stellwertberechnung in der Funkti- on SortOut vorgenommen, während die Funktion Sortlnto () die Sensorwerte (Regelgrößen) abspeichert.

Auf diese Weise können zunächst mehrere Werte gesammelt wer- den, bevor die eigentliche Berechnung durchgeführt wird.

Automatische Ableitung von gemischten HW/SW Systemen : Das im vorherigen Abschnitt beschriebene Entwurfsmuster kann sehr einfach in eine Implementierung überführt werden. Zu diesem Zweck werden Zustandsübergang 1 und Zustandsubergang 2 getrennt betrachtet. Durch die Entkopplung ist es nämlich möglich, ein eigenes Software-oder Hardwaremodul für jeden Zustandsübergang zu definieren. Dabei kann das jeweilige Ein- bzw. Ausgangsmodul auch wieder eine gemischte HW/SW- Implementierung darstellen. Eingangs-und Ausgangsübergang des Moduls können dabei durchaus überlappend ausgeführt wer- den (pipelining), da eine Synchronisation zwischen den beiden Zustandsübergängen über den gemeinsamen Speicher des internen Puffers erfolgen kann. Ein solches Vorgehen erlaubt es, den

Implementierungsaufwand drastisch zu reduzieren und die Aus- führungsgeschwindigkeit merklich zu erhöhen. In Fig. 6 ist beispielhaft gezeigt, wie das Entwurfsmuster implementiert werden kann. Jeder Teil des Musters kann dabei entweder in Hardware oder in Software implementiert werden. Folgende Kom- binationen sind bei der Implementierung möglich : Alle Module werden in Hard-bzw. Software implementiert, der Zustandsubergang 1 und Sort-Tnto () werden in Hardware implementiert, während Zustandsubergang 2 und SortOut () in Software implementiert werden, der Zustandsubergang 1 und Sort-Tntoo werden in Software implementiert, während Zustandsubergang 2 und SortOut () in Hardware implementiert werden, # SortInto() wird in Hardware implementiert, alle anderen Teile in Software, SortOut () wird in Hardware implementiert, alle anderen Teile in Software, Sortlnto () und SortOut () werden in Hardware, der Rest des Prozesses wird in Software implementiert.

Ein großer Vorteil dabei ist, daS für alle vier Teilaufgaben unterschiedliche Synthesetechniken verwendet werden können.

Geeignete Synthesetechniken sind aus O. Bringmann et al., Mixed Abstraction Level Hardware Synthesis from SDL for Rapid Prototyping, 10th IEEE International Workshop on Rapid System Prototyping, Clearwater, June 1999 bekannt. Da die Funktionen SortInto () und SortOut () meist einen hohen algorithmischen Anteil haben, bietet sich für diese die Architektursynthese an, d. h. für die Funktionen wird mit Hilfe eines Werkzeugs ein spezieller, anwendungsspezifischer Prozessor generiert.

Werden die beiden Zustandsübergänge in Hardware implemen- tiert, können sie direkt ohne den Einsatz optimierender Ver-

fahren (Synthese) in eine einfache Hardwarebeschreibung auf der Register-Transfer-Ebene (RTL : register transfer level) überführt werden. Durch diese konzeptionelle Trennung wird die Hardware/Software-Partitionierung des jeweiligen Zu- standsübergangs ebenfalls wesentlich erleichtert.

Die überlappende Ausführung (pipelining) der beiden Module ist dann möglich, wenn beide Module nicht gleichzeitig auf die gleiche Speicherzelle des Speichers zugreifen wollen. Die Semantik des Entwurfsmusters bleibt stets gewahrt, da bei ei- nem gleichzeitigen Zugriff eine der beiden Funktionen ange- halten wird und wartet, bis die andere Funktion fertig ist.

Entwurf komplexer Systeme mit den Bausteinen : Der Aufbau eines komplexeren Systems mit Hilfe von Baustei- nen, die aus dem beschriebenen Entwurfsmuster abgeleitet wer- den können, wird am Beispiel eines Vermittlungsrechners für Datendienste mit QoS-Anforderungen erläutert. Die Grundbau- steine Verkehrsüberwachung (Policy) und Bandbreitenzuteilung (Scheduler) werden durch Instanzen des Entwurfsmusters reali- siert.

Die linke Seite von Fig. 7 zeigt den grundliegenden Aufbau des Systems. Die eingehenden Datenströme, im Beispiel sind dies 2, werden mit Hilfe einer Verkehrsüberwachung (Policy) analysiert. Die Verkehrsüberwachung wird mit Hilfe des Ent- wurfsmusters realisiert (rechte Seite in Fig. 7). Zu diesem Zweck wurde die Funktion Sortlnto (), wie in Fig. 7 gezeigt, definiert.

Bei einem solchen Vermittlungsrechner wird noch unterschieden zwischen Steuerinformationen und Nutzdaten. Enthält der Da-

tenstrom Steuerinformationen, werden diese an das Kontrollmo- dul Control geschickt. In diesem Modul werden dann die übli- chen Telekommunikationsprotokolle abgewickelt. In Control werden die Informationen generiert, die den Datenfluß (Ver- mittlung) durch das System beschreiben. Dazu wird die Varia- ble OutPID in der Verkehrsüberwachung von Control gesetzt.

Die Vermittlung wird dadurch realisiert, daß es mehrere In- stanzen des Moduls Scheduler (Fig. 8) gibt, z. B. für jede Ausgangsleitung eine, und die Datenworte von der Ver- kehrsüberwachung an den entsprechenden Bandbreitenzuteiler gesendet werden. Durch die Adressierung (durch die Variable OutPID) des entsprechenden Bandbreitenzuteilers (Scheduler) erfolgt die Zuordnung eines Datenstroms zu einem Ausgangska- nal.

Prinzipiell ist es möglich, daß es am Eingang mehrere Ver- kehrsüberwachungen gibt (n Eingänge) und am Ausgang mehrere Module des Typs Scheduler (m Ausgänge).

Die Festlegung, welcher bandbreitenbegrenzte Kanal an dieser Stelle implementiert wird, hängt von den Kosten und den An- forderungen an das System ab. Prinzipiell ist die Bandbreite des verbindenden Kanals unendlich groß. Einige mögliche Vari- anten werden beispielhaft im folgenden Abschnitt beschrieben.

Automatische Ableitung eines komplexen Systems : Fig. 9a zeigt den Grundaufbau des Vermittlungsrechners auf der Spezifikationsebene. Davon können nun verschiedene Archi- tekturen abgeleitet werden. Softwaremodule werden auf Prozes- soren realisiert (Abk. CPU), während Hardwaremodule in ASICs (application specific integrated circuit)"gegossen"werden.

Im Bild soll ein gefüllter Kreis jeweils eine Instanz eines

Entwurfsmusters darstellen, wobei als Abkürzungen P für Po- licy bzw. S für Scheduler, C für Control verwendet werden.

Kommunikationskanäle können auf Busse oder Vermittlungsbau- steine abgebildet werden.

Die Implementierung in Fig. 9b besitzt einen Prozessor zur Abarbeitung der beiden Verkehrsüberwachungsinstanzen (Po- licy), drei Hardwaremodule für die Bandbreitenzuteilungsmodu- le (Scheduler), einen Bus zur Übertragung von Datenworten und einen Bus für Steuerinfomationen. Im Gegensatz dazu besteht die Architektur in Fig. 9c aus drei Prozessoren für die Kon- troll-und Verkehrsüberwachungsinstanzen und einem Hardware- modul zur Realisierung der Scheduler.

In Fig. 9d wird dagegen die Vermittlungsfunktionalität nicht mit Hilfe eines gemeinsamen Busses, sondern über einen Ver- mittlungsbaustein (Raummultiplexer) realisiert.

Natürlich sind alle anderen Kombinationen von Software-und Hardwaremodulen auch denkbar. z. B. könnte nur ein Teil des Schedulers in Hardware realisiert werden und der restliche Teil in Software. Bis auf das Modul Control zur Realisierung der Telekommunikationsprotokolle können alle Bausteine des Vermittlungsrechners durch verschiedene Instanzen des Ent- wurfsmusters realisiert werden.