DE102006019839A1 - Zeitbewusste Systeme - Google Patents

Zeitbewusste Systeme Download PDF

Info

Publication number
DE102006019839A1
DE102006019839A1 DE102006019839A DE102006019839A DE102006019839A1 DE 102006019839 A1 DE102006019839 A1 DE 102006019839A1 DE 102006019839 A DE102006019839 A DE 102006019839A DE 102006019839 A DE102006019839 A DE 102006019839A DE 102006019839 A1 DE102006019839 A1 DE 102006019839A1
Authority
DE
Germany
Prior art keywords
time
task
resources
timing parameters
resource allocation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102006019839A
Other languages
English (en)
Inventor
John C. Loveland Eidson
Jerry J. Loveland Liu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Agilent Technologies Inc
Original Assignee
Agilent Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Agilent Technologies Inc filed Critical Agilent Technologies Inc
Publication of DE102006019839A1 publication Critical patent/DE102006019839A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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.

Description

  • 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 Zeitgebungspara meter 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üh rungsbeispiel 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üh rungsbeispiel 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-) Proble me. 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 orchestrie ren, 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.

Claims (20)

  1. 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.
  2. Zeitbewusstes System gemäß Anspruch 1, bei dem die Zeitgebungsparameter (28) aus einem Satz aus Zeiteinschränkungen (42) hergeleitet sind, die der Aufgabe zugeteilt sind.
  3. Zeitbewusstes System gemäß Anspruch 2, bei dem der Ressourcenzuordnungsmechanismus ein Fehlerereignis erzeugt, wenn die Zeiteinschränkungen (42) nicht erfüllt werden.
  4. 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.
  5. 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.
  6. Zeitbewusstes System gemäß einem der Ansprüche 1 bis 5, bei dem der Ressourcenzuordnungsmechanismus (126) einen Kompilierer (14) umfast, der einen Codesatz an sprechend auf die Zeitgebungsparameter (28) zum Verwalten eines Satzes aus Speicherressourcen emittiert.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. Verfahren gemäß Anspruch 11, das ferner das Herleiten der Zeitgebungsparameter aus einem Satz aus Zeiteinschränkungen aufweist, die der Aufgabe zugeordnet sind.
  13. Verfahren gemäß Anspruch 12, das ferner das Erzeugen eines Fehlerereignisses aufweist, wenn die Zeiteinschränkungen nicht erfüllt werden.
  14. 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.
  15. Verfahren gemäß einem der Ansprüche 11 bis 14, bei dem das Zuordnen das Scharfmachen von einer oder mehreren der Ressourcen umfasst.
  16. 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.
  17. 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.
  18. Verfahren gemäß einem der Ansprüche 11 bis 17, bei dem das Zuordnen das Zuordnen eines Abschnitts eines Kommunikationsschalters zu der Aufgabe umfasst.
  19. 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 ei nen Cache-Speicher ansprechend auf die Zeitgebungsparameter umfasst.
  20. 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.
DE102006019839A 2005-08-24 2006-04-28 Zeitbewusste Systeme Withdrawn DE102006019839A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/210,598 2005-08-24
US11/210,598 US20070050774A1 (en) 2005-08-24 2005-08-24 Time-aware systems

Publications (1)

Publication Number Publication Date
DE102006019839A1 true DE102006019839A1 (de) 2007-03-15

Family

ID=36926599

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102006019839A Withdrawn DE102006019839A1 (de) 2005-08-24 2006-04-28 Zeitbewusste Systeme

Country Status (4)

Country Link
US (1) US20070050774A1 (de)
JP (1) JP2007058854A (de)
DE (1) DE102006019839A1 (de)
GB (1) GB2429550A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009016742A1 (de) * 2009-04-09 2010-10-21 Technische Universität Braunschweig Carolo-Wilhelmina Verfahren zum Betrieb eines Mehrprozessor-Computersystems

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8527975B2 (en) * 2007-11-02 2013-09-03 Hewlett-Packard Development Company, L.P. Apparatus and method for analyzing source code using memory operation evaluation and boolean satisfiability
US8209646B2 (en) * 2007-11-02 2012-06-26 Hewlett-Packard Development Company, L.P. Apparatus and method for analyzing source code using path analysis and Boolean satisfiability
DE102009015920B4 (de) 2009-03-25 2014-11-20 Faro Technologies, Inc. Vorrichtung zum optischen Abtasten und Vermessen einer Umgebung
US9551575B2 (en) 2009-03-25 2017-01-24 Faro Technologies, Inc. Laser scanner having a multi-color light source and real-time color receiver
US8635622B2 (en) * 2009-09-15 2014-01-21 Raytheon Company Method and system for resource management using fuzzy logic timeline filling
US9210288B2 (en) 2009-11-20 2015-12-08 Faro Technologies, Inc. Three-dimensional scanner with dichroic beam splitters to capture a variety of signals
US9113023B2 (en) 2009-11-20 2015-08-18 Faro Technologies, Inc. Three-dimensional scanner with spectroscopic energy detector
US9529083B2 (en) 2009-11-20 2016-12-27 Faro Technologies, Inc. Three-dimensional scanner with enhanced spectroscopic energy detector
DE102009057101A1 (de) 2009-11-20 2011-05-26 Faro Technologies, Inc., Lake Mary Vorrichtung zum optischen Abtasten und Vermessen einer Umgebung
US8630314B2 (en) 2010-01-11 2014-01-14 Faro Technologies, Inc. Method and apparatus for synchronizing measurements taken by multiple metrology devices
US8832954B2 (en) 2010-01-20 2014-09-16 Faro Technologies, Inc. Coordinate measurement machines with removable accessories
WO2011090895A1 (en) 2010-01-20 2011-07-28 Faro Technologies, Inc. Portable articulated arm coordinate measuring machine with multi-bus arm technology
US9628775B2 (en) 2010-01-20 2017-04-18 Faro Technologies, Inc. Articulated arm coordinate measurement machine having a 2D camera and method of obtaining 3D representations
US9607239B2 (en) 2010-01-20 2017-03-28 Faro Technologies, Inc. Articulated arm coordinate measurement machine having a 2D camera and method of obtaining 3D representations
US8677643B2 (en) 2010-01-20 2014-03-25 Faro Technologies, Inc. Coordinate measurement machines with removable accessories
US8615893B2 (en) 2010-01-20 2013-12-31 Faro Technologies, Inc. Portable articulated arm coordinate measuring machine having integrated software controls
US9879976B2 (en) 2010-01-20 2018-01-30 Faro Technologies, Inc. Articulated arm coordinate measurement machine that uses a 2D camera to determine 3D coordinates of smoothly continuous edge features
US9163922B2 (en) 2010-01-20 2015-10-20 Faro Technologies, Inc. Coordinate measurement machine with distance meter and camera to determine dimensions within camera images
US8898919B2 (en) 2010-01-20 2014-12-02 Faro Technologies, Inc. Coordinate measurement machine with distance meter used to establish frame of reference
US8028432B2 (en) 2010-01-20 2011-10-04 Faro Technologies, Inc. Mounting device for a coordinate measuring machine
US8875409B2 (en) 2010-01-20 2014-11-04 Faro Technologies, Inc. Coordinate measurement machines with removable accessories
GB2489370B (en) 2010-01-20 2014-05-14 Faro Tech Inc Coordinate measuring machine having an illuminated probe end and method of operation
DE102010020925B4 (de) 2010-05-10 2014-02-27 Faro Technologies, Inc. Verfahren zum optischen Abtasten und Vermessen einer Umgebung
CN103003713B (zh) 2010-09-08 2015-04-01 法罗技术股份有限公司 具有投影器的激光扫描器或激光***
US9168654B2 (en) 2010-11-16 2015-10-27 Faro Technologies, Inc. Coordinate measuring machines with dual layer arm
DE102012100609A1 (de) 2012-01-25 2013-07-25 Faro Technologies, Inc. Vorrichtung zum optischen Abtasten und Vermessen einer Umgebung
US8997362B2 (en) 2012-07-17 2015-04-07 Faro Technologies, Inc. Portable articulated arm coordinate measuring machine with optical communications bus
DE102012109481A1 (de) 2012-10-05 2014-04-10 Faro Technologies, Inc. Vorrichtung zum optischen Abtasten und Vermessen einer Umgebung
US9513107B2 (en) 2012-10-05 2016-12-06 Faro Technologies, Inc. Registration calculation between three-dimensional (3D) scans based on two-dimensional (2D) scan data from a 3D scanner
US10067231B2 (en) 2012-10-05 2018-09-04 Faro Technologies, Inc. Registration calculation of three-dimensional scanner data performed between scans based on measurements by two-dimensional scanner
DE102015122844A1 (de) 2015-12-27 2017-06-29 Faro Technologies, Inc. 3D-Messvorrichtung mit Batteriepack
US10691501B1 (en) * 2016-10-25 2020-06-23 Amazon Technologies, Inc. Command invocations for target computing resources

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367678A (en) * 1990-12-06 1994-11-22 The Regents Of The University Of California Multiprocessor system having statically determining resource allocation schedule at compile time and the using of static schedule with processor signals to control the execution time dynamically
US5291481A (en) * 1991-10-04 1994-03-01 At&T Bell Laboratories Congestion control for high speed packet networks
US5418953A (en) * 1993-04-12 1995-05-23 Loral/Rohm Mil-Spec Corp. Method for automated deployment of a software program onto a multi-processor architecture
US5902352A (en) * 1995-03-06 1999-05-11 Intel Corporation Method and apparatus for task scheduling across multiple execution sessions
US5887143A (en) * 1995-10-26 1999-03-23 Hitachi, Ltd. Apparatus and method for synchronizing execution of programs in a distributed real-time computing system
US6003061A (en) * 1995-12-07 1999-12-14 Microsoft Corporation Method and system for scheduling the use of a computer system resource using a resource planner and a resource provider
US5878363A (en) * 1996-07-19 1999-03-02 Caterpillar Inc. Control to improve dump while lifting
US5978363A (en) * 1996-10-18 1999-11-02 Telogy Networks, Inc. System and method for multi-dimensional resource scheduling
US6112243A (en) * 1996-12-30 2000-08-29 Intel Corporation Method and apparatus for allocating tasks to remote networked processors
US5913224A (en) * 1997-02-26 1999-06-15 Advanced Micro Devices, Inc. Programmable cache including a non-lockable data way and a lockable data way configured to lock real-time data
US5974439A (en) * 1997-11-21 1999-10-26 International Business Machines Corporation Resource sharing between real-time and general purpose programs
US6687257B1 (en) * 1999-08-12 2004-02-03 Rockwell Automation Technologies, Inc. Distributed real-time operating system providing dynamic guaranteed mixed priority scheduling for communications and processing
WO2002059743A2 (en) * 2001-01-25 2002-08-01 Improv Systems, Inc. Compiler for multiple processor and distributed memory architectures
US8108656B2 (en) * 2002-08-29 2012-01-31 Qst Holdings, Llc Task definition for specifying resource requirements
JP3889726B2 (ja) * 2003-06-27 2007-03-07 株式会社東芝 スケジューリング方法および情報処理システム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009016742A1 (de) * 2009-04-09 2010-10-21 Technische Universität Braunschweig Carolo-Wilhelmina Verfahren zum Betrieb eines Mehrprozessor-Computersystems
DE102009016742B4 (de) * 2009-04-09 2011-03-10 Technische Universität Braunschweig Carolo-Wilhelmina Mehrprozessor-Computersystem
US8515797B2 (en) 2009-04-09 2013-08-20 Technische Universitaet Braunschweig Carolo-Wilhelmina Method for operating a multiprocessor computer system
US9268618B2 (en) 2009-04-09 2016-02-23 Technische Universitaet Braunschweig Carolo-Wilhelmina Method for operating a multiprocessor computer system

Also Published As

Publication number Publication date
GB2429550A (en) 2007-02-28
GB0613476D0 (en) 2006-08-16
JP2007058854A (ja) 2007-03-08
US20070050774A1 (en) 2007-03-01

Similar Documents

Publication Publication Date Title
DE102006019839A1 (de) Zeitbewusste Systeme
DE102009016742B4 (de) Mehrprozessor-Computersystem
DE69614291T2 (de) (n+i) Ein/Ausgabekanälesteuerung, mit (n) Datenverwaltern, in einer homogenen Software-Programmierbetriebsumgebung
CN108667748B (zh) 一种控制带宽的方法、装置、设备和存储介质
DE69429204T2 (de) Ablaufssteuerungsverfahren und -gerät für ein Kommunikationsnetzwerk
US5313638A (en) Method using semaphores for synchronizing communication between programs or processes resident in a computer system
DE60020817T2 (de) Ablaufsteuerung für Betriebsmittel
DE69429279T2 (de) Multiprozessor-programmierbares unterbrechungskontrollersystem mit prozessor-integrierten unterbrechungskontrollern
DE60037065T2 (de) Übertragungsteuerung mit Naben- und Torachitektur
DE19648422C2 (de) Verfahren und Vorrichtung zum Implementieren eines echtzeitfähigen Steuerprogramms in einem nicht-echtzeitfähigen Betriebsprogramm
DE68927375T2 (de) Arbitrierung von Übertragungsanforderungen in einem Multiprozessor-Rechnersystem
DE3850881T2 (de) Verfahren und Vorrichtung zur Nachrichtenübertragung zwischen Quellen- und Zielanwender durch einen anteilig genutzten Speicher.
DE69130620T2 (de) Datenübertragungsadapter und Verfahren zu dessen Betrieb
DE112012000946T5 (de) Versehsagbares Rechnen in virtualisierten verteilten Computersystemen basierend auf der Partitionierung von Rechenleistung und Kommunikationsleistung
DE3642324C2 (de) Multiprozessoranlage mit Prozessor-Zugriffssteuerung
JP2006515690A (ja) 複数のプロセッサを有するデータ処理システムと、複数のプロセッサを有するデータ処理システムのためのタスクスケジューラと、タスクスケジューリングの対応する方法
DE102020102783A1 (de) Verfahren und einrichtungen zum verbessern einer leistungsdatensammlung einer hochleistungsberechnungsanwendung
DE19807872A1 (de) Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl.
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
DE602004012310T2 (de) Speicherschnittstelle für systeme mit mehreren prozessoren und einem speichersystem
CN115858083A (zh) 容器cpu资源调度与隔离方法和装置、存储介质及电子设备
DE112016004367T5 (de) Technologien für automatische Prozessorkern-Zuordnungsverwaltung und -Kommunikation unterVerwendung direkter Datenplatzierung in private Zwischenspeicher
KR20190070273A (ko) 원자 데이터 액세스 요구의 조정
US20140351550A1 (en) Memory management apparatus and method for threads of data distribution service middleware
CN112860387A (zh) 分布式任务调度方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: AGILENT TECHNOLOGIES, INC. (N.D.GES.D. STAATES, US

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20111101