PatentDe  


Dokumentenidentifikation DE102006019839A1 15.03.2007
Titel Zeitbewusste Systeme
Anmelder Agilent Technologies, Inc. (n.d.Ges.d.Staates Delaware), Palo Alto, Calif., US
Erfinder Eidson, John C., Loveland, Col., US;
Liu, Jerry J., Loveland, Col., US
Vertreter Schoppe, Zimmermann, Stöckeler & Zinkler, 82049 Pullach
DE-Anmeldedatum 28.04.2006
DE-Aktenzeichen 102006019839
Offenlegungstag 15.03.2007
Veröffentlichungstag im Patentblatt 15.03.2007
IPC-Hauptklasse G06F 9/50(2006.01)A, F, I, 20060428, B, H, DE
IPC-Nebenklasse G06F 15/177(2006.01)A, L, I, 20060428, B, H, DE   
Zusammenfassung Ein zeitbewusstes System, das Mechanismen zum expliziten Adressieren der Zeitgebungsanforderungen liefert, die Aufgaben zugeordnet sind. Ein zeitbewusstes System gemäß den vorliegenden Lehren umfasst einen Satz aus Ressourcen zur Verwendung durch eine Aufgabe und einen Ressourcenzuordnungsmechanismus, der einen Teilsatz der Ressourcen zur Verwendung durch die Aufgabe zuordnet, ansprechend auf einen Satz aus Zeitgebungsparametern, die der Aufgabe zugeteilt sind.

Beschreibung[de]

Eine Vielzahl von Systemen kann einem Satz aus realen Zeiteinschränkungen unterliegen. Zum Beispiel kann ein Mess/Steuer-System einem Satz aus Zeiteinschränkungen unterliegen, die sich auf die getestete Vorrichtung bzw. das Testobjekt beziehen, z. B. Abtastrate, Steuerwertaktualisierungsrate, etc.

Ein System, das einem Satz aus realen Zeiteinschränkungen unterliegt, kann einige Aufgaben umfassen, die den Zeiteinschränkungen unterliegen, und einige Aufgaben, die den Zeiteinschränkungen nicht direkt unterliegen. Eine Aufgabe, die einem Satz von realen Zeiteinschränkungen unterliegt, kann als eine Hart-Echtzeit-Aufgabe (HRT-Aufgabe; HRT = hard real-time) bezeichnet werden. Ein Beispiel einer HRT-Aufgabe ist eine Aufgabe, die ein Datenabtasten bei realen Zeiten, Raten, etc. ausführt, die durch physische Eigenschaften eines Testobjekts bestimmt werden. Ein anderes Beispiel einer HRT-Aufgabe ist eine Aufgabe, die Berechnungen für Steuerwerte ausführt, die an ein System oder eine Vorrichtung bei realen Zeiten/Raten angewendet werden.

Das Zeitgebungsverhalten einer HRT-Aufgabe kann von einer Vielzahl von Faktoren in ihrer Ausführungsumgebung abhängen. Beispiele von Faktoren in einer Ausführungsumgebung umfassen die Anzahl von Aufgaben bzw. Tasks, die gegenwärtig ausgeführt werden, die Rechenintensität der Aufgaben und die Kapazität der Hardwareressourcen die zum Unterstützen dieser Aufgaben verfügbar sind.

Eine bekannte Technik zum Erfüllen eines Satzes aus Zeiteinschränkungen einer HRT-Aufgabe umfasst, dass der HRT-Aufgabe eine relativ hohe Ausführungspriorität zugewiesen wird. Leider adressiert eine solche Technik nicht explizit die Zeitgebungsanforderungen einer HRT-Aufgabe und kann zu nicht mehr als einer Hoffnung führen, dass Zeitgebungs-Anforderungen erfüllt werden können.

Eine andere bekannte Technik zum Erfüllen eines Satzes von Zeiteinschränkungen einer HRT-Aufgabe umfasst das Vermehren von Systemhardwareressourcen in der Hoffnung, das Anweisungsausführungsverhalten zu verbessern. Zum Beispiel kann ein System mit Prozessoren besserer Leistung, großen Speichermengen, etc. versehen sein. Leider ist diese Technik nicht mehr als eine Schätzung, welche Ressourcen wahrscheinlich die Zeiteinschränkung einer HRT-Aufgabe erfüllen.

Es ist die Aufgabe der vorliegenden Erfindung, ein zeitbewusstes System und ein Verfahren zum zeitbewussten Verarbeiten mit verbesserten Charakteristika zu schaffen.

Diese Aufgabe wird durch ein zeitbewusstes System gemäß Anspruch 1 und ein Verfahren zum zeitbewussten Verarbeiten gemäß Anspruch 11 gelöst.

Es ist ein zeitbewusstes Prinzip offenbart, das Mechanismen zum expliziten Adressieren der Zeitgebungsanforderungen schafft, die Aufgaben zugeteilt sind. Ein zeitbewusstes System gemäß den vorliegenden Lehren umfasst einen Satz aus Ressourcen zur Verwendung durch eine Aufgabe und einen Ressourcenzuordnungsmechanismus, der einen Teilsatz der Ressourcen zur Verwendung durch die Aufgabe zuordnet, ansprechend auf einen Satz von Zeitgebungsparametern, die der Aufgabe zugeordnet sind. Ausführungsbeispiele eines Ressourcenzuordnungsmechanismus gemäß den vorliegenden Lehren umfassen Hardwaremechanismen, Softwaremechanismen und Kombinations-Hardware/Software-Mechanismen.

Andere Merkmale und Vorteile der vorliegenden Erfindung werden aus der nachfolgenden detaillierten Beschreibung offensichtlich.

Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:

1 ein zeitbewusstes System, das einen Satz aus Hardwareressourcen und einen Ressourcenzuordnungsmechanismus gemäß den vorliegenden Lehren umfasst;

2 ein Ausführungsbeispiel eines zeitbewussten Systems, bei dem die Hardware-Ressourcen einen Satz aus Prozessoren zum Ausführen eines Programmcodes umfassen;

3 ein Ausführungsbeispiel eines zeitbewussten Systems, bei dem die Hardware-Ressourcen einen Kommunikationsschalter umfassen;

4 ein Ausführungsbeispiel eines zeitbewussten Systems, bei dem die Hardwareressourcen einen Hauptspeicher und einen Cache-Speicher umfassen;

5 einen Kompilierer gemäß den vorliegenden Lehren;

6 ein zeitbewusstes, verteiltes System gemäß den vorliegenden Lehren; und

7 einen Ressourcenzuordnungsmechanismus bei einem zeitbewussten, verteilten System gemäß den vorliegenden Lehren.

1 zeigt ein zeitbewusstes System gemäß den vorliegenden Lehren. Das zeitbewusste System 10 umfasst einen Satz aus Ressourcen 20-26 und einen Ressourcenzuordnungsmechanismus 126. Der Ressourcenzuordnungsmechanismus 126 ordnet einen Teilsatz der Ressourcen 20-26 ansprechend auf einen Satz von Zeitgebungsparametern 28 zu. Die Zeitgebungsparameter 28 können aus einem Satz von Zeiteinschränkungen hergeleitet sein, die einer Aufgabe zugeordnet sind, die in dem zeitbewussten System 10 ausgeführt werden soll. Die Aufgabe, die den Zeitgebungsparametern 28 zugeteilt ist, kann eine HRT-Aufgabe in dem zeitbewussten System 10 sein.

Die Ressourcen 20-26 können Hardwareressourcen zum Unterstützen einer Ausführung von Aufgaben in dem zeitbewussten System 10 umfassen. Beispiele von Hardwareressourcen zum Unterstützen von Aufgaben umfassen Prozessoren, Speicher, spezialisierte Rechenhardware, Kommunikationshardware, Eingabe/Ausgabe-Vorrichtungen, anwendungsspezifische Vorrichtungen, z. B. Sensoren, Betätiger, Messinstrumente, etc.

Der Ressourcenzuordnungsmechanismus 126 kann ein Hardwaremechanismus, ein Softwaremechanismus oder eine Kombination aus Hardware/Software sein. Der Ressourcenzuordnungsmechanismus 126 ordnet Ressourcen zu einer Aufgabe zu, durch Zuweisen von Ressourcen für geeignete Zeitperioden, die benötigt werden, um zu garantieren, dass die Zeitgebungsparameter 28 erfüllt werden.

2 zeigt ein Ausführungsbeispiel des zeitbewussten Systems 10, bei dem die Ressourcen 20-26 einen Satz aus Prozessoren A-D zum Ausführen eines Programmcodes umfassen. Der Ressourcenzuordnungsmechanismus 126 umfasst bei diesem Ausführungsbeispiel eine Uhr 200 und einen Satz aus Registern 210-214. Die Uhr 200 liefert einen Tageszeit-Zeitwert und die Register 210-214 sind zum Halten der Zeitgebungsparameter 28.

Die Zeitgebungsparameter 28 können eine Spezifikation einer Zeitperiode und einen Identifizierer für eine oder mehrere der Ressourcen 20-26 umfassen. Zum Beispiel können die Zeitgebungsparameter 28 eine Startzeit TS und eine Endzeit TE und einen Identifizierer der Hardwareressource 20 spezifizieren, um anzuzeigen, dass die Hardwareressource 20 zum Ausführen einer Aufgabe zugeordnet sein soll, die zur Zeit TS beginnt und zur Zeit TE endet. Die Zeitgebungsparameter 28 können sich wiederholende Zeitintervalle spezifizieren. Die Zeitgebungsparameter 28 können als Parameter für eine „Zeitbombe" oder eine Wiederholungs-„Zeitbombe" zum Zuordnen einer spezifizierten Hardwareressource verwendet werden.

Der Ressourcenzuordnungsmechanismus 126 erzeugt ein Startsignal, wenn die Inhalte der Register 210-214 und die Uhr 200 anzeigen, dass einer oder mehrere der Prozessoren einer Aufgabe zugeordnet sein sollen. Zum Beispiel erzeugt der Ressourcenzuordnungsmechanismus 126 ein Startsignal, wenn die Zeit auf der Uhr 200 mit der Startzeit TS übereinstimmt. Zusätzlich dazu erzeugt der Ressourcenzuordnungsmechanismus 126 ein Endsignal, wenn die Zeit bei der Uhr 200 der Endzeit TE entspricht.

Das Start- und das Stopp-Signal von dem Ressourcenzuordnungsmechanismus 126 werden zu den Prozessoren A-D geliefert, die in den Registern 210-214 spezifiziert sind, die Start- und Stoppsignale können zu einer Interrupt-Leitung zu den Prozessoren A-D oder über ein Eingangsregister oder eine Speicherabbildung geliefert werden, die durch die Prozessoren A-D lesbar ist. Ansprechend auf ein Startsignal ordnet ein Prozessor sich selbst der Aufgabe zu, die dem Startsignal zugeteilt ist, und ansprechend auf das Stoppsignal kehrt der Prozessor zur normalen Verarbeitung zurück.

3 zeigt ein Ausführungsbeispiel des zeitbewussten Systems 10, bei dem die Ressourcen 20-26 einen Kommunikationsschalter 240 umfassen, der einer Aufgabe ansprechend auf die Zeitgebungsparameter 28 zugeordnet sein kann. Der Ressourcenzuordnungsmechanismus 126 erzeugt ein Startsignal, um anzuzeigen, dass Ressourcen bei dem Kommunikationsschalter 240 zu einer bestimmten Aufgabe zugeordnet sein sollen, und erzeugt ein Endsignal, wenn die Zuordnung der Ressourcen bei dem Kommunikationsschalter 240 zu der Aufgabe enden soll.

Der Kommunikationsschalter 240 umfasst eine Schalterstruktur 242 zum Leiten von Meldungen zwischen einem Satz von Eingangs-Ports 246 und einem Satz von Ausgangs-Ports 248. Die Eingangs-Ports 246 umfassen Warteschlangen zum Halten von Meldungen, während die Schalterstruktur 242 belegt bzw. tätig ist. Das Startsignal von dem Ressourcenzuordnungsmechanismus 126 verursacht, dass die Eingangs-Ports 246 eingehende Meldungen, die der bestimmten Aufgabe zugeteilt sind, zu den Ausgangsports 248 über eine Umleitungsweg 244 senden. Der Umleitungsweg 244 trägt Meldungen die der bestimmten Aufgabe zugeteilt sind über den Schalter und umgeht Warteschlangen in den Eingangs-Ports 246, während der Kommunikationsschalter der bestimmten Aufgabe zugeordnet ist. Das Endsignal von dem Ressourcenzuordnungsmechanismus 126 bringt den Schalter in den normalen Modus und die Verwendung der Schalterstruktur 242 zum Übertragen aller Meldungen zwischen den Eingangs- und Ausgangs-Ports 246 und 248 zurückt.

Bei einem anderen Ausführungsbeispiel ist die Schalterstruktur 242 partitioniert und ein Abschnitt der Schalterstruktur 242 ist der bestimmten Aufgabe zugeordnet, ansprechend auf das Start- und End-Signal von dem Ressourcenzuordnungsmechanismus 126. Zum Beispiel kann die Hälfte der Schalterstruktur 242 dem Handhaben von Meldungen zugeordnet sein, die der bestimmten Aufgabe zugeteilt sind, während die verbleibende Hälfte der Schalterstruktur 242 den gesamten anderen Verkehr handhabt. Die Meldungen, die der bestimmten Aufgabe zugeordnet sind, können durch einen vorbestimmten Code in den Meldungen identifiziert sein.

4 zeigt ein Ausführungsbeispiel des zeitbewussten Systems 10, bei dem die Ressourcen 20-26 einen Hauptspeicher 300 und einen Cache-Speicher 302 umfassen. Der Ressourcenzuordnungsmechanismus 126 umfasst bei diesem Ausführungsbeispiel ein Betriebssystem 12, das Hardwareressourcen zu einem Satz aus Anwendungsprogrammen 30-32 zuweist, ansprechend auf Zeitgebungsparameter, die von den HRT-Zeiteinschränkungen hergeleitet sind, die den Anwendungsprogrammen 30-32 zugeteilt sind. Zum Beispiel umfasst das Anwendungsprogramm 30 einen Codesatz 40, der eine HRT-Aufgabe gemäß einem Satz aus HRT-Zeiteinschränkungen 42 ausführt. Der Code 40 kann ein Teilprozess bzw. Thread sein, der unter dem Betriebssystem 12 ausgeführt wird. Die Anwendungsprogramme 30-32 und das Betriebssystem 12 werden durch einen Prozessor 304 ausgeführt.

Bei einem Ausführungsbeispiel verwendet das Betriebssystem 12 den Scharfmach- bzw. Vorbereitungs-Mechanismus, um Daten, die einer HRT-Aufgabe zugeordnet sind, aus dem langsameren Hauptspeicher 300 in den schnelleren Zugriffs-Cache-Speicher 302 zu bewegen. Zum Beispiel bewegt das Betriebssystem 12 Daten, die dem Code 40 zugeordnet sind, aus dem Hauptspeicher 300 in den Cache-Speicher 302 ansprechend auf ein Scharfmach-Signal. Der schnellere Datenzugriff, der durch einen Cache-Speicher 302 geliefert wird, ermöglicht dem zeitbewussten System 10, die HRT-Zeiteinschränkungen 42 zu erfüllen. Der Cache-Speicher 302 liefert Speicherlatenzzeiten, die vorhersagbar sind, während die Latenzzeiten des Hauptspeichers 300 möglicherweise nicht vorhersagbar sind. Wenn der Hauptspeicher 300 z. B. auf einem Bus ist, der gemeinschaftlich mit anderen Vorrichtungen verwendet wird, z. B. Videokarten, können Blockierungen für Hauptspeicherzugriffe auftreten. Der Cache-Speicher 302 ist andererseits ausschließlich in dem Besitz des Prozessors 304. Die Latenzzeit kann daher genau vorhergesagt werden.

Der Prozessor 304 umfasst bei einem Ausführungsbeispiel Anweisungen zum Verwalten des Cache-Speichers 302. Zum Beispiel umfasst der Prozessor 304 Seitenverriegelungsanweisungen zum Verriegeln spezifizierter Speicherseiten in dem Cache-Speicher 302. Die Seitenverriegelungsanweisung kann verwendet werden, um zu garantieren, dass ein Datensatz, der einer HRT-Aufgabe zugeteilt ist, aus dem Cache-Speicher 302 innerhalb einer spezifizierten Zeit geliefert wird, um einen Satz aus HRT-Zeiteinschränkungen zu erfüllen. Die Seitenverriegelungsanweisungen verriegeln Seiten in dem Cache-Speicher 302 gemäß derselben Zeitgebungskonfiguration, wie z. B. Startzeit, Stoppzeit, Dauer. Dies hilft sicherzustellen, dass die Seiten zu der spezifizierten Zeit in dem Cache-Speicher 302 sind.

Das Betriebssystem 12 liefert Systemdienste über eine Anwendungsprogrammierungsschnittstelle (ABI; application programming Interface) 44 zu den Anwendungsprogrammen 30-32. Die Systemdienste ermöglichen eine Zuordnung von Speicherressourcen zu HRT-Aufgaben. Die Systemdienste nehmen als Parameter die Zeitgebungsparameter 28, die eine Zeitspezifikation für eine Speicherressourcenzuordnung umfassen. Eine Zuordnung von ausgewählten Speicherressourcen ermöglicht eine Garantie, dass ein Satz aus HRT-Zeiteinschränkungen, der einer HRT-Aufgabe zugewiesen ist, erfüllt werden kann. Ein Scharfmach-Mechanismus kann verwendet werden, um jegliche Verschwendung bei zugeordneten Speicherressourcen zu minimieren. Zum Beispiel kann eine Speicherressource gemeinschaftlich verwendet werden, bis ein Scharfmach-Signal auftritt, so dass das Scharfmach-Signal verursacht, dass die Speicherressource innerhalb einer bekannten Zeit zu einer zugeordneten und zugewiesenen Ressource einer HRT-Aufgabe übergeht. Die Zuweisung kann mit dem Scharfmachsignal spezifiziert werden oder kann vorab zugewiesen sein.

Ein Scharfmach-Signal zum Zuteilen und/oder Zuordnen einer Speicherressource kann durch Hardware oder Software erzeugt werden. Ein Scharfmachsignal zum Zuteilen und/oder Zuordnen einer Speicherressource kann ein externes Scharfmach-Signal, ein Netzwerk-Scharfmachsignal, ein internes zeitbasiertes Scharfmachen oder ein Scharfmachen, das durch das Betriebssystem 12 initiiert wird, sein. Bei einem Ausführungsbeispiel empfängt das Betriebssystem 12 einen Interrupt von einer IEEE-1588-Uhr, die eine Scharfmach-Periode spezifiziert.

Die Anwendungsprogrammierungsschnittstelle API 44 ermöglicht, dass das Anwendungsprogramm 30 eine Ausführungsumgebungsspezifikation für den Code 40 liefert. Die Ausführungsumgebungsspezifikation kann eine Anzeige umfassen, um den Code 40 einem bestimmten Satz von Speicherressourcen zuzuweisen, z. B. zu einer bestimmten Seite eines Speichers oder zu einem bestimmten Prozessor oder mehreren Prozessoren oder zu einer bestimmten, anwendungsspezifischen Hardware.

Das Betriebssystem 12 erzeugt ein Fehlerereignis, wenn ein Satz aus HRT-Zeiteinschränkungen nicht erfüllt wird. Bei einem Ausführungsbeispiel umfasst das Betriebssystem 12 eine Fertigstellungs-Zeitbombe, die entschärft wird, wenn die Fertigstellung einer HRT-Aufgabe dem Ablauf einer Fertigstellungszeit vorausgeht, die in ihrer HRT-Zeiteinschränkung spezifiziert ist. Die Fertigstellungszeitbombe feuert und erzeugt ein Ereignis, wenn eine HRT-Aufgabe nicht rechtzeitig fertiggestellt wird, um ihre HRT-Zeiteinschränkungen zu erfüllen. Dieser Mechanismus kann für jegliche Fortsetzungsaktion verwendet werden, die eine vorgeschriebene Fertigstellungszeit aufweist. Beispiele umfassen dem Empfang oder das Senden einer bestimmten Meldung auf einem Netzwerk, Einstellen über das Betriebssystem 12 einer Hardwarekonfiguration oder Parameter, wie z. B. Zeitbomben, etc.

Die Anwendungsprogramme 30-32 können zeitbasierte Aufgaben umfassen, die sich wiederholen, z. B. kann das Anwendungsprogramm 30 den Code 40 periodisch wiederholen. Das Betriebssystem 12 setzt sich wiederholende Zeitbomben ein, um den sich wiederholenden, zeitbasierten Code zu unterstützen.

Die API 44 liefert Scharfmach- und Auslöse-Funktionen für die Anwendungsprogramme 30-32. Die API 44 kann verwendet werden, um HRT-Aufgaben an eine zugrundeliegende Hardware zu binden, wodurch die Zuweisung/Zuordnung von spezifizierten Hardwareressourcen zu HRT-Aufgaben ermöglicht wird. Die Hardwareressourcen, die an HRT-Aufgaben gebunden sein können, umfassen Speicherressourcen, z. B. den Cache-Speicher 302 und den Hauptspeicher 300, sowie andere Hardwareressourcen, z. B. Netzwerkkommunikationsressourcen, Prozessorressourcen, anwendungsspezifische Hardware, etc.

Das Betriebssystem 12 präsentiert ein Ereignismodell für zeitbasierte Aktionen für die Anwendungsprogramme 30-32 über die API 44. Die Anwendungsprogramme 30-32 sind als eine Sammlung aus Aktionen mit expliziten Zeitgarantien strukturiert, z. B. wann eine Anwendung beginnt, seine maximale Dauer etc. Das Betriebssystem 12 betrachtet einen Code, der aufgeführt werden soll, als eine Sammlung von Codebruchstücken mit Zeitspezifikationen, z. B. weist der Code 40 die HRT-Zeiteinschränkungen 42 auf. Das Betriebssystem 12 führt die Codebruchstücke zu der (den) spezifizierten Zeit(en) aus und liefert Fehlerindikatoren, wenn Bruchstücke nicht gemäß Zeitspezifikationen fertiggestellt sind.

Der Ressourcenzuordnungsmechanismus 126 bei diesem Ausführungsbeispiel umfasst einen Kompilierer 14. Der Kompilierer 14 erzeugt den Code 40, um einen Speicher zu verwalten, ansprechend auf die HRT-Zeiteinschränkungen 42.

5 stellt die Funktionen des Kompilierers 14 gemäß den vorliegenden Lehren dar. Der Kompilierer 14 erzeugt den Code 40 ansprechend auf einen Quellcode 60. Der Kompilierer 14 macht einen Durchgang durch den Quellcode 60, um Speicherzugriffe zu identifizieren. Der Kompilierer 14 emittiert Speicherverwaltungsanweisungen in dem Code 40, die Speicher-Paging bzw. -Seitenadressierung explizit verwalten und die Speicherseitenadressierung nicht zur Laufzeit dem Betriebssystem 12 überlassen. Der Kompilierer 14 emittiert Speicherverwaltungsanweisungen, um eine Speicherzugriffslatenzzeitvariabilität zu beseitigen.

Der Kompilierer 14 umfasst einen Codeemitter 62, der den Code 40 emittiert, um eine Einhaltung der HRT-Zeiteinschränkungen 42 zu maximieren. Der Kompilierer 14 nimmt einen Satz aus Anweisungsausführungsinformationen 16 als eine Eingabe, die sich auf das Zeitausführungsverhalten von Anweisungen in dem Code 40 beziehen. Die Anweisungsausführungsinformationen 16 spezifizieren die Anzahl von Zyklen, die bestimmte Anweisungen zum Ausführen brauchen, und ob bestimmte Anweisungen möglicherweise blockiert werden, etc.

Der Kompilierer 14 erzeugt ein Flussdiagramm 64 des Codes 40 und sagt die benötigte Zeit zum Ausführen des Codes 40 unter Verwendung der Anweisungsausführungsinformationen 16 vorher. Der Kompilierer 14 sagt einen Zeitbetrag zur Ausführung von Nicht-Speicher-Zugriffsanweisungen bei dem Code 40 unter Verwendung der Anweisungsausführungsinformationen 16 vorher. Der Kompilierer 14 ordnet den Code 40 an, um jegliche variable Speicherlatenzzeit zu beseitigen (angenommen, der Speicher wird nicht gemeinschaftlich verwendet), wenn eine Ausführungszeit von Speicherzugriffsanweisungen bei dem Code 40 vorhergesagt wird. Der Kompilierer 14 führt z. B. einen Durchgang durch den Quellcode 60 aus und identifiziert Regionen, die Speicherzugriff umfassen. Dann emittiert der Kompilierer 14, vor dem Emittieren eines Codes für die Region, einen Code zum Abrufen aller notwendiger Daten aus dem Hauptspeicher 30 in den Cache-Speicher 302. Der Kompilierer 14 emittiert einen Code, um alle Schreiboperationen in den Hauptspeicher 30 in seinen eigenen privaten Cache-Speicher schattenzuspeichern, und vermehrt Speicherabrufanweisungen mit Abrufoperationen aus dem privaten Speicher, um die Ungewissheit beim Speicherzugriff zu beseitigen. Dies liefert einen Kompromiss eines möglichen Verhaltens zur Vorhersagbarkeit. Die Anweisungen, die emittiert werden, um den Speicher zu manipulieren, sind vielleicht nicht die optimalsten, garantieren aber, dass der Code innerhalb einer begrenzten Zeit ausgeführt wird.

Bei einem Ausführungsbeispiel erzeugt der Kompilierer 14 eine Zeitgebungsspezifikation und eine Ressourcenanforderungsliste für den Code 40. Zum Beispiel kann der Kompilierer 14 eine Meldung erzeugen, wie z. B. „diese Binärzahl wird in 5,4 ms für einen 200 MHz Takt in einer X-Klassenarchitektur ausgeführt, mit Anforderungen nach 7 Verarbeitungs-Pipelines, 28 Registern und 250.200 Bytes Cache-Speicher."

6 zeigt ein Ausführungsbeispiel des zeitbewussten Systems 10, bei dem die Ressourcen 20-26 einen Satz aus Knoten 110-114 und eine Kommunikationsinfrastruktur 130 umfassen. Die Knoten 110-114 tauschen Meldungen über die Kommunikationsinfrastruktur 130 aus, wenn eine verteilte Anwendung in dem zeitbewussten System 10 ausgeführt wird.

Eine verteilte Anwendung in dem zeitbewussten System 10 kann einen Satz aus HRT-Zeiteinschränkungen umfassen. Die Fähigkeit des zeitbewussten, verteilten Systems 10, die HRT-Zeitgebungseinschränkungen zu erfüllen, hängt von der Fähigkeit der Kommunikationsinfrastruktur 130 ab, eine Meldungsübertragung zwischen den Knoten 110-114 zu liefern. Zum Beispiel kann die Kommunikationsinfrastruktur 130 eine Latenzzeit und Jitter bei der Zeitgebung der Meldungsübertragung zwischen den Knoten 110-114 verursachen.

Die Latenzzeit und Jitter der Kommunikationsinfrastruktur 130 kann auf einen bestimmten Grad an Genauigkeit begrenzt sein, um die HRT-Zeiteinschränkungen einer verteilten Anwendung in dem zeitbewussten System 10 zu erfüllen. Zusätzlich dazu kann die Übertragung von Meldungen über die Kommunikationsinfrastruktur 130, z. B. Scharfmach-Meldungen und Auslöse-Meldungen, die sich auf das Erfüllen eines Satzes von HRT-Zeiteinschränkungen beziehen, ansprechend auf die Begrenzungen für Latenzzeit und Jitter geplant werden.

7 zeigt Ausführungsbeispiele des Ressourcenzuordnungsmechanismus 126 bei dem Knoten 110. Jeder der Knoten 110-114 kann ähnliche Mechanismen umfassen, wie für den Knoten 110 gezeigt ist.

Der Ressourcenzuordnungsmechanismus 126 bei dem Knoten 110 umfasst eine synchronisierte Uhr 150. Bei einem Ausführungsbeispiel ist die synchronisierte Uhr 150 eine Uhr, die dem IEEE 1588 Takt- bzw. Uhr-Synchronisierungsstandard entspricht. Der Standard IEEE 1588 liefert einen gemeinsamen Zeitsinn für das zeitbewusste, verteilte System 10. Der gemeinsame Zeitsinn ermöglicht, dass Aktionen durch den Knoten 110 basierend auf Zeit spezifiziert werden. Zum Beispiel können Ereignis-Trigger bzw. -Auslöser durch Ereigniszeiten spezifiziert sein, die in Meldungen auf der Kommunikationsinfrastruktur 130 getragen werden. Auf ähnliche Weise können Scharfmach-Perioden durch eine Zeitgebungsspezifikation spezifiziert sein, die in Meldungen auf der Kommunikationsinfrastruktur 130 getragen wird. Die synchronisierte Uhr 150 kann als Hardwarequelle zum Auslösen des entsprechenden Ereignisses und Starten und Beenden der entsprechenden Scharfmach-Funktion verwendet werden, ansprechend auf die Inhalte der Auslöser- und Scharfmach-Meldungen.

Die Auswirkungen von Latenzzeit und Jitter bei der Meldungsübertragung zu und von dem Knoten 110 können die Genauigkeit der synchronisierten Uhr 150 gemäß dem Protokoll IEEE 1588 verschlechtern, da eine Synchronisation auf der Übertragung von Zeitgebungsmeldungen über die Kommunikationsinfrastruktur 130 basiert. Zusätzlich dazu können Latenzzeit und Jitter verhindern, dass eine Meldung an dem Knoten 110 vor einer Ereigniszeit ankommt, die der Meldung zugeordnet ist. Als Konsequenz können Latenzzeit und Jitter bei der Kommunikationsinfrastruktur 130 die Fähigkeit einer verteilten Anwendung beeinflussen, ihre HRT-Zeiteinschränkungen zu erfüllen.

Der Ressourcenzunrdnungsmechanismus 126 bei dem Knoten 110 umfasst ein Betriebssystem 152, das die Übertragung von Meldungen über die Kommunikationsinfrastruktur 130 verwaltet, ansprechend auf die Grenzen auf Latenzzeit und Jitter. Zusätzlich dazu umfasst der Ressourcenzuordnungsmechanismus 126 bei dem Konten 110 eine Trigger-Schaltung 154 zum Auslösen einer Meldungsübertragung zu der Kommunikationsinfrastruktur 130 zu den entsprechenden Zeiten.

Ein Kommunikationsteilsystem 154 bei dem Konten 110 umfasst einen Protokollstapel 160, der eine Meldungsübertragung über die Kommunikationsinfrastruktur 130 ermöglicht. Der Protokollstapel 160 umfasst eine Medienzugriffssteuerung (MAC; media access controller) 162 und eine physische (PHY) Schicht 164. Die MAC 162 umfasst Warteschlangen zum Halten von Meldungen, die übertragen werden sollen, und Meldungen, die empfangen werden. Die MAC 162 und die PHY 164 umfassen Mechanismen zum Reduzieren von Latenzzeit und Jitter bei der Meldungsübertragung.

Bei einem Ausführungsbeispiel umfasst der Ressourcenzuordnungsmechanismus 126 bei dem Knoten 110 reservierte Codes, die bei Meldungen verwendet werden, die HRT-Aufgaben zugeordnet sind. Die MAC 162 fügt die reservierten Codes in Meldungen ein, die von einem Anwendungsprogramm während des Betriebs erhalten werden, und führt die entsprechende Einstellung von Meldungslänge und FCS für eine Meldungsübertragung aus. Die reservierten Codes können allein verwendet werden oder zum Definieren von Segmenten innerhalb einer Meldung, bei der eine Scharfmach- oder Auslöse-Semantik implementiert sein kann. Nach dem Empfang einer Meldung erfasst die MAC 162 die reservierten Codes und erzeugt ansprechend darauf die entsprechende Aktion und zieht die reservierten Codes heraus, so dass die Originalmeldung ungestört ist. Diese Technik kann verwendet werden, um die Latenzzeit zu reduzieren, während eine Meldung dabei ist, auf einem physischen Medium übertragen zu werden. IPV6-Anfangsblöcke können auf ähnliche Weise am Beginn einer Meldungsübertragung verwendet werden.

Bei einem anderen Ausführungsbeispiel umfasst der Ressourcenzuordnungsmechanismus 126 bei dem Knoten 110 einen Mechanismus zum Ändern der Priorität bei den Warteschlangen der MAC 162 in Echtzeit, wodurch Latenzzeit und Jitter bei der Meldungsübertragung reduziert werden. Bei einem anderen Ausführungsbeispiel umfasst der Ressourcenzuordnungsmechanismus 126 bei dem Knoten 110 einen Mechanismus zum Voranordnen von Meldungen innerhalb der MAC 162, wodurch Latenzzeit und Jitter vermieden werden, die durch Protokollpegel verursacht werden, die höher sind als die MAC 162 einschließlich dem Betriebssystem 152. Bei einem anderen Ausführungsbeispiel umfasst der Ressourcenzuordnungsmechanismus 126 bei dem Knoten 110 einen Mechanismus zum Scharfmachen innerhalb der MAC 162, um eine Bandbreite für Meldungen zu reservieren, die einer HRT-Aufgabe zugeordnet sind. Bei einem anderen Ausführungsbeispiel umfasst der Ressourcenzuordnungsmechanismus 126 bei dem Knoten 110 einen Mechanismus zum Signalisieren bei Schicht 1 des Protokollstapels 160, unter bestimmten Umständen. Zum Beispiel kann ein Signalisieren unter Verwendung eines Kanals eines Multiplexes implementiert sein – entweder zeitbasiert, wie bei TDMA (z. B. SERCOS), Wellenlänge oder Frequenz sein.

Bei einem wiederum anderen Ausführungsbeispiel umfasst der Ressourcenzuordnungsmechanismus 126 bei dem Knoten 110 einen Mechanismus zum Codieren bei der PHY 164. Zum Beispiel umfasst die 4B/5B-Codierung, die bei 100 BT und anderen Hochgeschwindigkeitsprotokollen verwendet wird, unbenutzte Bitmuster. Die unbenutzten Bitmuster werden üblicherweise nicht verwendet, da sie üblicherweise andere Signalisierungsanforderungen nicht erfüllen, wie z. B. Durchschnittsübertragungsleistungs- (Null-Mittel-) Probleme. Unter Anbetracht der Tatsache, dass Scharfmachung und Signalisierung üblicherweise wesentlich weniger häufig sind als die Signalisierungsraten, kann eine gelegentliche Verwendung der unbenutzten Codes für Scharfmachen, Auslösen, etc., eingesetzt werden, Die PHY 164 fügt einen der unbenutzten Codes ein, wenn eine Meldung ansprechend auf ein Echtzeitereignis gesendet wird. Die PHY 164 umfasst die unbenutzten Codes und zieht die unbenutzten Codes heraus, wenn eine Meldung empfangen wird, wodurch die Latenzzeit reduziert wird, die anderweitig verursacht werden würde, wenn die Meldungen effektiv eine Symbolzeit lang in die Warteschlange gesetzt werden würde.

Wenn die Kommunikationsinfrastruktur 130 einen Kommunikationsschalter umfasst, dann erkennt der Kommunikationsschalter die unbenutzten Codes in einer Meldung, die an einem Eingans-Port empfangen wird, zieht die unbenutzten Codes heraus, währen sie ihren Ausgangs-Ports signalisiert, die unbenutzten Codes in eine aktuelle ausgehende Meldung einzufügen, wodurch eine Latenzzeit entfernt wird, die anderweitig dem Kommunikationsschalter zugeordnet wäre. Anders ausgedrückt kann ein codiertes Scharfmach-Signal auf einer eingehenden Meldung A zu anderen Konten über eine vollständig unterschiedliche Meldung an anderen Ports verteilt werden. Die Auswahl, auf welchen Knoten die Codierung verteilt werden soll, kann vorkonfiguriert sein, kann in manchen Fällen Teil der Codierung sein oder kann innerhalb des Kommunikationsschalters zeitbasiert sein oder ein Gruppenruf sein.

Der Ressourcenzuordnungsmechanismus 126 kann einen zeitbewussten Kompilierer umfassen, der angepasst ist, um eine Vielzahl von Ressourcen in dem zeitbewussten System 10 zuzuordnen. Die Rolle des bekannten Kompilierers kann gekennzeichnet sein als das Transformieren eines Softwareprogramms, das in einer Programmiersprache dargestellt ist, in einen Satz aus Anweisungen, die die Aktivitäten der verschiedenen Komponenten innerhalb einer CPU orchestrieren, um eine Anweisung auszuführen. Diese können als CPU-Ebenen-Anweisungen bezeichnet werden. Ein bekannter Kompilierer kann Kenntnisse über den Aufbau von unterschiedlichen Klassen von CPUs und die Fähigkeiten der Komponenten der CPUs haben und kann einen Code für eine bestimmte CPU basierend auf Befehlszeilenoptionen emittieren. Zum Beispiel kann ein Kompilierer wissen, dass bestimmte CPUs eine Gleitkommaeinheit (floating point unit) aufweisen, während andere zwei haben können, und kann Sequenzen von Anweisungen entsprechend planen.

Ein zeitbewusster Kompilierer gemäß den vorliegenden Lehren emittiert Anweisungen und Konfigurationseinstellungen, die die Aktionen der Ressourcen des gesamten zeitbewussten Systems 10 orchestrieren, nicht für nur eine CPU auf einem bestimmten Knoten eines Systems, wie bei bekannten Kompilierern. Ein zeitbewusster Kompilierer emittiert binäre Artefakte, um viele Typen von Ressourcen zu steuern, z. B. CPUs, Mess-Front-Ends, Kommunikationsbusse, Networking, etc., ansprechend auf eine zeitliche Beschreibung der Aktivitäten eines gesamten Systems, z. B. die Zeitgebungsparameter 28. Die zeitliche Beschreibung kann in einem Programm dargestellt sein. Die binären Artefakte können in der Form eines traditionellen binären Codes für eine CPU manifestiert sein und können ferner die Form von Konfigurationseinstellungen für andere Ressourcen annehmen, z. B. Konfigurationseinstellungen für eine Messschaltung, eine Kommunikationsvorrichtung, etc. Wenn mehrere CPUs in einem System sind, können Anweisungen für jede CPU emittiert werden. Die verschiedenen Ressourcen müssen nicht explizit miteinander über Meldungen kommunizieren, wie bei bekannten Kompilierern der Fall ist. Stattdessen, wenn eine gemeinsame Zeitvorstellung und synchronisierte Uhren gegeben sind, können die Aktionen für die verschiedenen Ressourcen implizit durch einen Kompilierer synchronisiert werden, wenn die Anweisungen für die verschiedenen Systemressourcen emittiert werden.

Ein zeitbewusster Kompilierer kann sich der internen Zusammensetzung eines Systems bewusst ein, einschließlich Beschreibungen einer Anzahl von Systemen und Kenntnisse von Informationen, wie z. B. Typen von Ressourcen, wie z. B. CPU, Router, Mess-Front-End, etc, und wie die Ressourcen verbunden sind, und das Wesen von Konfigurationseinstellungen, die die Ressourcen akzeptieren, z. B. akzeptiert eine CPU einen binären Code, ein Router kann einen unterschiedlichen binären Code akzeptieren, etc.

Eine Programmiersprache hoher Ebene kann verwendet werden, um ein zeitliches Programm für das zeitbewusste System 10 darzustellen. Eine solche Programmiersprache hoher Ebene kann Konstrukte für einen zeitbewussten Kompilierer umfassen, um Sequenzen von Anweisungen zu emittieren, um Aktionen auszuführen, die z. B. das Konfigurieren eines bestimmten Routers.

Die vorangehende, detaillierte Beschreibung der vorliegenden Erfindung wird zu Zwecken der Darstellung geliefert und soll nicht erschöpfend sein oder die Erfindung auf das präzise offenbarte Ausführungsbeispiel beschränken. Dementsprechend ist der Schutzbereich der vorliegenden Erfindung durch die beiliegenden Ansprüche definiert.


Anspruch[de]
Zeitbewusstes System, das folgende Merkmale aufweist:

einen Satz aus Ressourcen (20-26) zur Verwendung durch eine Aufgabe;

einen Ressourcenzuordnungsmechanismus (126), der einen Teilsatz der Ressourcen (20-26) zur Verwendung durch die Aufgabe zuordnet, ansprechend auf einen Satz aus Zeitgebungsparametern (28), die der Aufgabe zugeordnet sind.
Zeitbewusstes System gemäß Anspruch 1, bei dem die Zeitgebungsparameter (28) aus einem Satz aus Zeiteinschränkungen (42) hergeleitet sind, die der Aufgabe zugeteilt sind. Zeitbewusstes System gemäß Anspruch 2, bei dem der Ressourcenzuordnungsmechanismus ein Fehlerereignis erzeugt, wenn die Zeiteinschränkungen (42) nicht erfüllt werden. Zeitbewusstes System gemäß einem der Ansprüche 1 bis 3, bei dem der Ressourcenzuordnungsmechanismus (126) ein Betriebssystem (12) umfasst, das einen Codesatz (40), der der Aufgabe zugeteilt ist, einer oder mehreren der Ressourcen (20-26) ansprechend auf die Zeitgebungsparameter (28) zuweist. Zeitbewusstes System gemäß einem der Ansprüche 1 bis 4, bei dem der Ressourcenzuordnungsmechanismus (126) einen Scharfmachmechanismus für eine oder mehrere der Ressourcen (20-26) umfasst. Zeitbewusstes System gemäß einem der Ansprüche 1 bis 5, bei dem der Ressourcenzuordnungsmechanismus (126) einen Kompilierer (14) umfast, der einen Codesatz ansprechend auf die Zeitgebungsparameter (28) zum Verwalten eines Satzes aus Speicherressourcen emittiert. Zeitbewusstes System gemäß einem der Ansprüche 1 bis 6, bei dem der Ressourcenzuordnungsmechanismus (126) einen Kompilierer umfasst, der einen Codesatz zum Konfigurieren von einer oder mehreren der Ressourcen ansprechend auf die Zeitgebungsparameter emittiert. Zeitbewusstes System gemäß einem der Ansprüche 1 bis 7, bei dem der Ressourcenzuordnungsmechanismus (126) einen Mechanismus zum Zuordnen eines Abschnitts eines Kommunikationsschalters zu der Aufgabe umfasst. Zeitbewusstes System gemäß einem der Ansprüche 1 bis 8, bei dem der Ressourcenzuordnungsmechanismus (126) ein Betriebssystem (12) umfasst, das einen Datensatz, der der Aufgabe zugeordnet ist, ansprechend auf die Zeitgebungsparameter (28) von einem Hauptspeicher (300) in einen Cache-Speicher (302) bewegt. Zeitbewusstes System gemäß einem der Ansprüche 1 bis 9, bei dem der Ressourcenzuordnungsmechanismus (126) eine synchronisierte Uhr bei jedem des Satzes aus Knoten des zeitbewussten Systems umfasst, derart, dass die synchronisierten Uhren eine Zuordnung der Ressourcen ansprechend auf die Zeitgebungsparameter ermöglichen. Verfahren für eine zeitbewusste Verarbeitung, das folgende Schritte aufweist:

Ausführen einer Aufgabe in dem zeitbewussten System;

Zuordnen eines Teilsatzes der Ressourcen zur Verwendung durch die Aufgabe ansprechend auf einen Satz aus Zeitgebungsparametern, die der Aufgabe zugeordnet sind.
Verfahren gemäß Anspruch 11, das ferner das Herleiten der Zeitgebungsparameter aus einem Satz aus Zeiteinschränkungen aufweist, die der Aufgabe zugeordnet sind. Verfahren gemäß Anspruch 12, das ferner das Erzeugen eines Fehlerereignisses aufweist, wenn die Zeiteinschränkungen nicht erfüllt werden. Verfahren gemäß einem der Ansprüche 11 bis 13, bei dem das Zuordnen das Zuweisen eines Codesatzes, der der Aufgabe zugeteilt ist, zu einer oder mehreren der Ressourcen ansprechend auf die Zeitgebungsparameter umfasst. Verfahren gemäß einem der Ansprüche 11 bis 14, bei dem das Zuordnen das Scharfmachen von einer oder mehreren der Ressourcen umfasst. Verfahren gemäß einem der Ansprüche 11 bis 15, bei dem das Zuordnen das Kompilieren eines Codesatzes umfasst, um einen Satz aus Speicherressourcen ansprechend auf die Zeitgebungsparameter zu verwalten. Verfahren gemäß einem der Ansprüche 11 bis 16, bei dem das Zuordnen das Kompilieren eines Codesatzes umfasst, um eine oder mehrere der Ressourcen ansprechend auf die Zeitgebungsparameter zu konfigurieren. Verfahren gemäß einem der Ansprüche 11 bis 17, bei dem das Zuordnen das Zuordnen eines Abschnitts eines Kommunikationsschalters zu der Aufgabe umfasst. Verfahren gemäß einem der Ansprüche 11 bis 18, bei dem das Zuordnen das Bewegen eines Datensatzes, der der Aufgabe zugeteilt ist, von einem Hauptspeicher in einen Cache-Speicher ansprechend auf die Zeitgebungsparameter umfasst. Verfahren gemäß einem der Ansprüche 11 bis 19, bei dem das Zuordnen das Synchronisieren einer Uhr bei jedem des Satzes aus Knoten des zeitbewussten Systems umfasst, derart, dass die synchronisierten Uhren eine Zuordnung der Ressourcen ansprechend auf die Zeitgebungsparameter ermöglichen.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

  Patente PDF

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com