DE102005039771B3 - Einheit zur Verwaltung von Echtzeitprozessen ohne asynchrone Unterbrechungen - Google Patents
Einheit zur Verwaltung von Echtzeitprozessen ohne asynchrone Unterbrechungen Download PDFInfo
- Publication number
- DE102005039771B3 DE102005039771B3 DE200510039771 DE102005039771A DE102005039771B3 DE 102005039771 B3 DE102005039771 B3 DE 102005039771B3 DE 200510039771 DE200510039771 DE 200510039771 DE 102005039771 A DE102005039771 A DE 102005039771A DE 102005039771 B3 DE102005039771 B3 DE 102005039771B3
- Authority
- DE
- Germany
- Prior art keywords
- register
- der
- die
- data
- parameter
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Die asynchrone Arbeitsweise herkömmlicher rechenprozessorientierter Echtzeitsysteme verlangt beträchtlichen Aufwand, um Anwendungsprogramme auf ihr zeitgerechte Ausführbarkeit hin zu überprüfen. Das Konzept der prozessorientierten Echtzeitverarbeitung ohne asynchrone Unterbrechnungen, bei dem die einzelnen Rechenprozesse in Abschnitte eingeteilt sind, die in diskreten, stets gleich langen Verarbeitungsintervallen ausgeführt werden, weist ein besonders einfaches Zeitverhalten auf, erleichtert so die Ausführbarkeitsanalyse und wird den Entwurfsrichtlinien der Norm IEC 61508 in besonderem Maße gerecht. Allerdings gab es hierfür bisher keine Implementierung, die vertretbaren gerätetechnischen Aufwand mit kurzen Reaktionszeiten verbindet. DOLLAR A Dies bietet die hier offenbarte Verwaltungseinheit. Durch schaltungstechnische Realisierung der Prozessverwaltungsfunktionen werden extrem kurze Reaktionszeiten ermöglicht, ohne den Nachteil einer besonders umfangreichen und komplexen Systemarchitektur in Kauf nehmen zu müssen. Eine wie bei konventionellen Echtzeitbetriebssystemen übliche Gliederung der Prozessverwaltung in Schichten sowie eine Minimierung des Rechenaufwands durch Wahl eines primitiven und anwendungsunangemessenen prioritätsbasierten Prozessorzuteilungsverfahrens ist somit nicht notwendig. Darüber hinaus wird die Verarbeitung UTC-konformer Zeitdaten erleichtert. Das resultierende Echtzeitsystem zeichnet sich durch besondere Einfachheit der Systemarchitektur und des ...
Description
- Das hier beschriebene Schaltungskonzept einer Verwaltungseinheit für Echtzeitrechenprozesse ohne asychrone Unterbrechungen ist dem technischen Gebiet Programmierbare Elektronische Systeme (PES) für sicherheitskritische Anwendungen zuzuordnen.
- Als nächstkommender Stand der Technik kann die folgende Schrift angesehen werden:
- • Skambraks, M.: Concepts for Real-Time Execution in Safety-Critical Applications. In: Proceedings of the 16th IFAC World Congress, Prague, CZ, July 4-8, 2005. <http://www.nt.ntnu.no/users/skoge/prost/proceedings/ifac2005/Papers/Paper2962.htm1>
- Nachfolgend werden die wesentlichen Details zum Stand der Technik, die teilweise auch in der genannten Schrift erläutert werden, beschrieben.
- Obwohl PES heutzutage in vielen sicherheitskritischen Anwendungen eine maßgebliche Rolle spielen, ist die Sicherheitszertifizierung solcher kombinierter Programm- und Gerätesysteme immer noch problematisch. Die hierbei auftretenden Probleme resultieren weniger aus der Berücksichtigung unvermeidbarer spontaner physikalischer Ausfälle als vielmehr aus der Komplexität solcher Systeme, die einen enormen Aufwand zu ihrer Verifikation nach sich zieht.
- Die Sicherheitsnorm IEC 61508 begrenzt die Komplexität solcher Systeme indirekt, indem sie den Einsatz einiger konventioneller Verarbeitungsmethoden einschränkt. Von ausschlaggebender Bedeutung sind hierbei die Programmentwurfsrichtlinien, welche für Applikationen, die den beiden höheren Sicherheitsanforderungsklassen SIL 3 und SIL 4 genügen müssen, den Gebrauch von Unterbrechungen, dynamischen Objekten und Variablen sowie Zeigern nur in begründeten Ausnahmefällen zulassen (Teil 3, Tabelle B1). Zudem schreibt die Norm für Anwendungen auf dem Niveau von SIL 4 die Verwendung formaler Methoden zur Verifikation vor (Teil 3, Tabelle A1). Letzteres ist nur bei Systemen mit Zeitverhalten geringer Komplexität mit vertretbarem Aufwand möglich.
- In Abhängigkeit von der internen Arbeitsweise können die derzeit in sicherheitsgerichteten Anwendungen eingesetzten Systeme in periodisch arbeitende PES und (rechen prozessorientierte PES eingeteilt werden. In der Automatisierungstechnik werden zunehmend auch Mischformen eingesetzt, die in der Sicherheitstechnik jedoch keine wesentliche Bedeutung haben.
- Periodisch arbeitende PES
- Diese PES-Kategorie führt Anwendungsprogramme in Verarbeitungszyklen konstanter, fest vorgegebener Dauer aus. Dabei wird jedes Anwendungsprogramm innerhalb eines jeden Zyklusses vollständig durchlaufen. Die strikt periodische Arbeitsweise erlaubt bedingungsgesteuerte Verzweigungen lediglich in begrenztem Umfang; ein vollständig vom externen Prozess gesteuerter Programmfluss ist nicht möglich. Daher ist das Einsatzfeld auf einfache Steuerungsaufgaben beschränkt. Darüber hinaus ist die zyklische Programmierung nicht problemorientiert. Typische Vertreter dieser PES-Kategorie sind die speicherprogrammierbaren Steuerungen (SPS), welche üblicherweise gemäß dem Funktionsblockparadigma der IEC 61131-3 programmiert werden.
- Alle Steuerungsaufgaben müssen im Takt der 'globalen' Zykluszeit bearbeitet werden; individuelle Zeitbedingungen können nur durch zusätzlichen Programmieraufwand im Zeitraster der Zyklen realisiert werden. Umfangreiche Algorithmen führen entweder zu langen Zykluszeiten oder müssen über mehrere Zyklen verteilt werden. Ersteres erhöht die Reaktionszeit eines Systems, letzteres die Komplexität des Anwendungsprogramms. Darüber hinaus ist die Handhabung mehrerer Aufgaben mit stark variieren den Antwortzeitbedingungen problematisch. Der Programmcode wird üblicherweise nicht in direktem Bezug zum weltweiten Zeitnormal (UTC) ausgeführt, weshalb zusätzlicher Aufwand zur Synchronisation mit externen Systemen und zur UTC-bezogenen Ablaufprotokollierung notwendig ist. Insbesondere letzteres ist für die meisten sicherheitskritischen Anwendungen unabdingbar.
- Der bedeutendste Vorteil dieser PES-Kategorie liegt in der bewerkenswert geringen Komplexität der Geräte und des Zeitverhaltens. Hierdurch wird der Aufwand zur Sicherheitszertifizierung minimiert. Obwohl diese PES-Kategorie prinzipiell für Anwendungen des höchsten Sicherheitsniveaus (SIL 4) geeignet ist, sind die derzeit verfügbaren Systeme höchstens bis SIL 3 zertifiziert.
- Prozessorientierte PES
- Diese PES-Kategorie führt ihre Anwendungsprogramme unterbrechungsgesteuert aus. Hierdurch sind sowohl beliebige, durch die externen Prozesse gesteuerte Programmflüsse als auch die asynchrone Verarbeitung unterschiedlicher Aufgaben möglich. Einerseits erhöht die asynchrone Arbeitsweise die Systemkomplexität, da spezielle Synchronisationsmechanismen, wie z. B. Semaphore, notwendig sind; andererseits ist sie flexibler und auch für umfangreiche Anwendungen geeignet. Wenngleich die asynchrone, prozessorientierte Programmierung wesentlich problemangepasster – und somit auch überschaubarer – ist, so besitzt diese PES-Klasse dennoch eine unvermeidbar hohe Komplexität. Diese resultiert aus der Komplexität der Gerätee, der erforderlichen Echtzeitbetriebssysteme und deren Zusammenspiel mit den Anwendungsprogrammen.
- Eine Gerätekomponente, die ein komplexes Zeitverhalten eines Gesamtsystems nach sich zieht, ist das Unterbrechungswerk des Prozessors. Unterbrechungen werden stets mit Hilfe eines (Stapel-) Zeigers und eines dynamischen Objekts (Stapelspeicher) verarbeitet, was eigentlich den Anforderungen der IEC 61508 an Applikationen der beiden höheren Sicherheitsanforderungsklassen widerspricht. Allein der formale Nachweis, dass ein Stapelspeicher in einer gegebenen Anwendung mit asynchron auftretenden Unterbrechungen unter keinen Umständen überlaufen kann, verlangt einen meistens unakzeptabel hohen Aufwand – wenn er nicht gar ganz unmöglich ist.
- Die Komplexität von Betriebssystemen ist meistens durch die verfolgten Leistungsgesichtspunkte bedingt. Um die Reaktionszeit von Echtzeitsystemen möglichst kurz zu halten, sind Echtzeitbetriebssyteme i.d.R. in mehrere Schichten gegliedert. Dabei bearbeitet die unterste Schicht besonders zeitkritische Aufgaben geringen Ausmaßes; umfangreichere Aufgaben werden von höheren Schichten bearbeitet. Minimierung des Rechenaufwandes der Betriebssystemkernfunktionen ist eine weitere Möglichkeit, um Reaktionszeiten kurz zu halten. Daher werden fast ausschließlich prioritätenbasierte (Prozessor-) Zuteilungsstrategien eingesetzt, obwohl zeitbasierte Strategien, die einen höheren Rechenaufwand verursachen, den Anforderungen an Echtzeitsysteme viel besser gerecht werden. Sofern Prozessoren überhaupt zeitbasiert zugeteilt werden, entspricht die verwendete Zeit meist nicht dem UTC-Standard. Eine auf UTC bezogene Ablaufprotokollierung verlangt daher eine Umrechnung der Systemzeit in UTC. Die Notwendigkeit solcher Zeitumrechnungen sowie die oben genannte Gliederung von Betriebssystemen in Schichten erhöhen die Komplexität von Echtzeitbetriebssystemen beträchtlich.
- Die Komplexität des Zusammenspiels von Prozessor, Betriebssystem und Anwendungsprogrammen ergibt sich maßgeblich aus der Abhängigkeit des Programmablaufs vom externen Prozess. Aus diesem Grund ist der Nachweis der zeitgerechten Ausführbarkeit eines Anwendungsprogramms ein wesentlicher Bestandteil seiner Entwicklung. Nicht nur die Mechanismen zur Synchronisation des Ablaufs von Rechenprozessen erschweren diesen Nachweis, sondern auch die von Unterbrechungen hervorgerufenen Kontextumschaltungen des Prozessors, welche die tatsächlichen Antwortzeiten aller aktivierten Rechenprozesse beeinflussen. Darüber hinaus erschwert die Einteilung in unterbrechbare und nicht unterbrechbare Programmteile den Ausführbarkeitsnachweis. Obwohl der Gebrauch asynchroner Unterbrechungen eigentlich den Richtlinien der IEC 61508 für die Sicherheitsanforderungsklassen SIL 3 und SIL 4 widerspricht, wurden bereits prozessorientierte Echtzeitbetriebssysteme für SIL 3 zertifiziert
- Prozessverarbeitung ohne asynchrone Unterbrechungen
- Aufgrund der spezifischen Vor- und Nachteile der beiden beschriebenen PES-Klassen ist für jede sicherheitskritische Anwendung ein Kompromiss zu schließen und ein PES-Typ auszuwählen. Eine Lösung, die die Vorteile beider PES-Klassen kombiniert und so die Kompromissbildung vermeidet, existiert bereits, wenngleich die Lösung in der industriellen Praxis wegen ihrer Neuheit bisher noch nicht eingesetzt wird. Die Lösung basiert auf dem nachfolgend beschriebenen Konzept der Rechenprozessverarbeitung ohne asynchrone Unterbrechungen.
- Bei diesem Konzept werden Prozessausführung und -verwaltung strikt voneinander getrennt. Zur Prozessausführung (PA) zählt ausschließlich die Bearbeitung anwendungsspezifischen Programmcodes; die Prozessverwaltung (PV) ist verantwortlich für Prozessadministration und Prozessorzuteilung. Für letzteres wird im Idealfall die Strategie nach nächsten ablaufenden Antwortzeiten (frühesten Fertigstellungsterminen) eingesetzt, da diese in jedem Fall eine zeitgerechte Prozessorbelegung erzeugt, sofern die Einhaltung der Zeitbedingungen einer gegebenen Prozessenge theoretisch überhaupt möglich ist. Die Zeit wird in diskrete, gleich lange Verarbeitungsintervalle eingeteilt, die den periodischen, synchronen Arbeitstakt der PA und der PV bestimmen. Prozesse setzen sich aus einer Anzahl an Prozessabschnitten zusammen, die folgende Eigenschaften besitzen:
- • Jeder Prozessabschnitt kann vollständig innerhalb eines Verarbeitungsintervalles ausgeführt werden.
- • Die Ausführung eines Prozessabschnittes ist nicht unterbrechbar.
- • Prozessabschnitte tauschen Daten über den Datenspeicher aus; der Inhalt der Prozessorregister geht am Ende eines Verarbeitungsintervalls verloren.
- • Jeder Prozessabschnitt besitzt einen Identifikator.
- • Die Abschnitte eines Prozesses müssen nicht in einer fest vorgegebenen Reihenfolge ausgeführt werden. Für jeden Prozess speichert die PV einen Abschnittszeiger, der den als nächsten auszuführenden Prozessabschnitt identifiziert.
- Zu Beginn eines jeden Verarbeitungsintervalls gibt die PV den Identifikator des gemäß dem Terminzuteilungsverfahren als nächsten auszuführenden Prozessabschnittes aus. Dieser Identifikator entspricht dem gespeicherten Abschnittszeiger des gemäß dem Prozessorzuteilungsalgorithms auszuführenden Prozesses. Die PA liest den Identifikator und führt den zugehörigen Abschnitt aus. Gegen Ende des Verarbeitungsintervalls, wenn der Abschnitt abgearbeitet worden ist, übergibt die PA einen Identifikator an die PV. Dieser Identifikator, welcher den nächsten auszuführenden Abschnitt des soeben ausgeführten Prozesses kennzeichnet, wird von der PV als neuer Abschnittszeiger gespeichert. Das Flussdiagramm in
1 veranschaulicht diese Arbeitsweise. - Wenn der ausgeführte Abschnitt der letzte war, d. h. der zugehörige Prozess vollständig abgearbeitet worden ist, signalisiert die PA dies der PV (z. B. durch Ubergabe des Identifikatorwertes 'nil'). In diesem Fall veranlasst die PV einen Zustandsübergang, so dass sich der Prozess nicht länger im Zustand 'aktiviert' befindet. Gleichzeitig wird das Bearbeitungsende bei der Bestimmung des Identifikators des als nächsten auszuführenden Prozessabschnitts berücksichtigt.
- Diese Arbeitsweise kommt ohne Synchronisationsmechanismen, wie z. B. Semaphore, aus, da jeder Prozess während eines Verarbeitungsintervalls ununterbrechbaren, exklusiven Zugriff auf den Prozessor hat. Prozesse können über den Datenspeicher miteinander kommunizieren, ohne beim Schreiben von Nachrichten der Gefahr von Unterbrechungen ausgesetzt zu sein. Sich wechselseitig ausschließender Zugriff auf Systemkomponenten kann einfach mit Hilfe von Variablen im Datenspeicher implementiert werden. In ähnlicher Weise können abwechselnde Zugriffe mehrerer Prozesse realisiert werden; hierzu ist nur die programmgesteuerte Suspendierung und Fortführung von Prozessen notwendig. Die Entbehrlichkeit von Synchronisationsmechanismen vereinfacht dieses PES-Konzept wesentlich.
- Wie im vorigen Abschnitt bereits erläutert, gehört das Unterbrechungswerk zu den komplexeren Bestandteilen eines Prozessors und die formale Verifikation eines auf asynchrone Unterbrechungen basierenden Systems ist meist unakzeptabel aufwendig, wenn nicht gar unmöglich. Dementsprechend erleichtert die Prozessverarbeitung ohne asynchrone Unterbrechungen sowohl die Prozessorarchitektur als auch die Verifikation des Gesamtsystems. Da nicht nur auf asynchrone Unterbrechungen, sondern auch auf einen Stapelspeicher, der einen Zeiger und ein dynamisches Objekt verlangen würde, verzichtet wird, wird die beschriebene Arbeitsweise den Anforderungen der IEC 61508 an höchst sicherheitskritische Applikationen besser als herkömmliche prozessorientierte PES gerecht.
- Ausführbarkeit der Anwendungsprogramme: Durch die hier vorgestellte Arbeitsweise wird das Einsatzfeld nicht so stark eingeschränkt wie das der zyklisch arbeitenden PES. Ohne Gebrauch asynchroner Unterbrechungen werden beliebige von den externen Prozessen abhängige Programmablaufpfade ermöglicht. Wie bei anderen prozessorientierten Echtzeitsystemen verlangt diese Fähigkeit zu prozessgesteuerten Programmflüssen, Anwendungsprogramme auf zeitgerechte Ausführbarkeit hin zu überprüfen.
- Auch dieses Problem ist bereits gelöst. Die Ausführbarkeitsanalyse vereinfacht sich, wenn bei der Auswahl des für die interne Verarbeitung der PV verwendeten Prozesszustandsmodells die Möglichkeiten formaler Verifikationsmethoden berücksichtigt werden. Ein Modell, welches für das hier beschriebene Konzept der Prozessverarbeitung besonders geeignet ist, basiert auf drei Ausführungseigenschaften: maximale Ausführungszeit tAusfZeit, maximale Antwortzeit tAusfZeit und minimale Aktivierungsperiode tUntZeit. Diese Parameter erlauben die Spezifikation der Zeitbedingungen einer jeden aus periodischen und sporadischen Rechenprozessen bestehenden hybriden Prozessmenge.
2 veranschaulicht das Modell. Es unterscheidet sich von anderen durch den Zustand unterdrückt. - Die minimale Aktivierungsperiode entspricht der minimalen Zeitdauer zwischen zwei Prozessaktivierungen; sie begrenzt die maximal hervorgerufene Prozessorlast indirekt. Nur ein sich im Zustand bekannt befindender Prozess kann aktiviert werden. Wird die Bearbeitung eines Prozesses vor Ablauf der Zeit tUntZeit abgeschlossen, so wird dieser Prozess in den Zustand unterdrückt überführt. Erst nach Ablauf von tUntZeit wird er wieder in den Zustand bekannt versetzt, wodurch eine erneute Aktivierung möglich wird. Der Zustand suspendiert dient Synchronisationszwecken.
- Alle Zustandsübergänge stehen unter der Kontrolle der PV. Wird die Bearbeitung eines Prozesses abgeschlossen, so wird der Übergang beenden automatisch veranlasst. Die Übergänge suspendieren und fortführen werden zwar von der PV durchgeführt, können aber nur von einem Anwendungsprogramm veranlasst werden. Da die Anwendungsprogramme in ununterbrechbaren Intervallen ausgeführt werden, finden Zustandsübergänge nur am Ende eines Intervalls statt. Dementsprechend wird eine durch einen Prozessabschnitt veranlasste Suspendierung erst gegen Ende des auslösenden Intervalls wirksam. Ein Prozess kann nur sich selbst suspendieren, aber das Fortführen aller anderen Prozesse in die Wege leiten. In Verbindung mit der periodischen Arbeitsweise wird so die Realisierung von Vorgänger-Nachfolger-Relationen möglich, was z. B. zur Implementierung eines abwechselnden Betriebsmittelzugriffs zwingend notwendig ist.
- Es empfiehlt sich, das Zustandsmodell so in die PV zu implementieren, dass für jeden Prozess zu jeder Zeit nur eine Instanz existieren kann. Dies erhöht die Konformität mit der IEC 61508, welche die dynamische Instanziierung von Objekten in höchst sicherheitsbezogenen Applikationen verbietet (Teil 3, Tabelle B1). Bei Berücksichtigung der Beschränkung auf eine Prozessinstanz erlauben die Ausführungsparameter tAusfZeit, tAntZeit und tUntZeit den formalen Nachweis der Ausführbarkeit einer Menge von Prozessen bzw. Anwendungsprogrammen. Geeignete Beweismethoden werden in zahlreichen Veröffentlichungen beschrieben.
- Implementierung der Prozessverwaltung: Zur Implementierung der PV eignet sich die nachfolgend beschriebene Arbeitsweise, die ebenfalls zum aktuellen Stand der Technik gezählt werden kann. Das Konzept basiert auf zwei physisch voneinander getrennten Einheiten. Die Prozessausführungseinheit (PAE) führt die Prozessabschnitte der Anwendungsprogramme aus. Sie besteht im wesentlichen aus einem Prozessor ohne Unterbrechungswerk. Die Prozessverwaltungseinheit (PVE), welche zur Prozessadministration dient und die auszuführenden Prozessabschnitte bestimmt, wird durch ein digitales Schaltwerk realisiert.
- Ein wesentlicher Bestandteil der PVE ist die Prozessliste. In der Prozessliste ist für jeden Rechenprozess ein Parametersatz bestehend aus Aktivierungsbedingungen, Ausführungseigenschaften und Zustandsinformationen abgelegt. Alle Prozesse einer Anwendung müssen bereits während der Konfigurierung des Systems in die Prozessliste eingetragen werden; dynamische Instanziierung von Prozessen (bzw. Objekten) ist gemäß den Anforderungen der IEC 61508 an Applikationen auf dem Niveau SIL 4 nicht möglich. Lediglich die Aktivierungsbedingungen eines Prozesses können programmgesteuert verändert werden.
- Die Aktivierungsbedingungen eines Prozesses können sowohl auf Zeitplänen basieren als auch asynchrone Meldungssignale mit einbeziehen. Es empfiehlt sich, Aktivierungspläne gemäß dem Verarbeitungskonzept der Echtzeitprogrammiersprache PEARL90 [DIN 66253-2] zu verwenden, da diese besonders allgemein gefasst sind und daher den Anforderung von Echtzeitsystemen bestens gerecht werden. Sie erlauben, periodische Prozessaktivierungen innerhalb gegebener Zeitfenster direkt zu spezifizieren. Die Syntax eines solchen Aktivierungsplans lautet:
AT {cock-expression | [asynchronous-event-expression] + duration1}
EVERY duration2 DURING duration3 ACTIVATE task-name - Die Ausführungseigenschaften umfassen die Parameter tAusfZeit, tAntZeit und tUntZeit des Prozesszustandsmodells. Die Zustandsinformationen beschreiben den aktuellen Zustand eines Prozesses eindeutig. Hierzu gehört unter anderem der Zeitpunkt der letzten Aktivierung, anhand dessen – in Kombination mit der Ausführungseigenschaft tAusfZeit – der nächste Fertigstellungstermin bestimmt werden kann. Der den als nächsten auszuführenden Abschnitt eines Prozesses identifizierenden Abschnittszeiger gehört ebenfalls zu den Zustandsinformationen.
- Die Realisierung der PVE basiert auf einer Kombination aus sequenzieller und paralleler Verarbeitung. Die Algorithmen können so strukturiert werden, dass alle auf einen einzelnen Prozess bezogenen Operationen parallel durchgeführt werden, die gesamte Prozessmenge hingegen sequenziell verarbeitet wird.
3 veranschaulicht diese Arbeitsweise. Sie zeigt die Hauptkomponenten der PVE: die Prozessparameterverwaltung (PPV) und die Prozesszustandssteuerung (PZS). - Während der sequenziellen Prozessadministration (SPA) wird für jeden Prozess ein Drei-Phasen- Vorgang abgearbeitet:
- 1. Zunächst greift die PPV auf die Prozessliste zu und überträgt die Prozessparameter in dafür vorgesehene Eingangsregister der PZS.
- 2. Dann verarbeitet die PZS die Prozessparameter mit Hilfe einer kombinatorischen Logikschaltung innerhalb eines Taktzyklusses.
- 3. Abschließend liest die PPV die aktualisierten Prozessparameter von der PZS ein und speichert diese in der Prozessliste.
- Dabei erstreckt sich die Zuständigkeit der PZS auf folgende Aufgaben:
- 1. Überprüfung der Aktivierungsbedingungen,
- 2. Koordinierung von Prozesszustandsübergängen,
- 3. Generierung der aktualisierten Prozessparameter,
- 4. Berechnung der geforderten Antwortzeiten,
- 5. Bestimmung der Prozesse mit der nächsten und der übernächsten Antwortzeit,
- 6. Ausgabe des Identifikators des als nächsten auszuführenden Prozessabschnittes.
- Die ersten vier Aufgaben können für jeden Prozess separat durchgeführt werden. Dies ermöglicht deren zeitgleiche Bearbeitung durch eine rein kombinatorische Digitalschaltung. Die fünfte Aufgabe verlangt, die Antwortzeiten aller aktivierten Prozesse zu vergleichen. Dies wird sequenziell mit den Iterationen des Drei-Phasen-Vorgangs vorgenommen, wobei nach jeder Iteration die Identifikatoren und geforderten Fertigstellungstermine der beiden am dringendsten zu verarbeitenden Prozesse zwischengespeichert werden. Es wird somit nicht nur der Prozess mit der nächsten Antwortzeit, sondern auch der mit der übernächsten Antwortzeit ermittelt. Dies ist notwendig, da die SPA durchgeführt wird, während die PAE einen Prozessabschnitt ausführt. Dadurch kann es vorkommen, dass die Bearbeitung des Prozesses, der von der SPA als der mit dem nächsten Fertigstellungstermin identifiziert wird, im laufenden Verarbeitungsintervall abgeschlossen wird, d. h. die PAE führte während der SPA den letzten Prozessabschnitt aus. In diesem Fall kann, da der Prozess mit der übernächsten Antwortzeit bereits bestimmt wurde, unmittelbar, d. h. ohne erneute Durchführung der SPA, der Identifikator des im nächsten Verarbeitungsintervall auszuführenden Abschnitts ausgegeben werden.
- Probleme
- Obwohl das beschriebene Verfahren zur Rechenprozessausführung ohne asynchrone Unterbrechungen zum aktuellen Stand der Technik gezählt werden kann, wird es in der industriellen Praxis noch nicht eingesetzt. Der Grund dafür ist wohl darin zu sehen, dass sich keine nennenswerte Vorteile ergeben, solange die Prozessverwaltungseinheit (PVE) mit Hilfe eines herkömmlichen Prozessors implementiert wird. Die Einteilung der Zeit in diskrete Verarbeitungsintervalle ließe sich nur durch Verwendung des Unterbrechungswerkes realisieren und extrem kurze Reaktionszeiten, d. h. kurze Verarbeitungsintervalle, würden eine Einteilung des Betriebssystems in mehrere Schichten verlangen. Zudem würde die Prozesseinplanung in direktem Bezug zum UTC-Zeitnormal besonderen Aufwand verursachen, da herkömmliche Prozessoren nicht zur Verarbeitung von Zeitwerten in UTC-konformer Darstellung optimiert sind.
- Die Vorteile des Verfahrens zur Rechenprozessausführung ohne asynchrone Unterbrechungen entfalten sich erst, wenn die PVE in Form einer anwendungsspezifischen integrierten Logikschaltung implementiert wird. Allerdings gibt es hierfür bisher kein zufriedenstellendes Schaltungskonzept, welches ein vertretbares Optimum aus gerätetechnischem Aufwand und Reaktionszeit (bzw. Verarbeitungszeit) bietet. Insbesondere fehlen effiziente Lösungen zu folgenden Problem- bzw. Fragestellungen:
- (A) Aufgrund der parallelen Ausführung der SPA und eines Prozessabschnittes ist die Speicherung der Zustandsinformationen in der Prozessliste problematisch. Einerseits dürfen sich die bereitgestellten Zustandsinformationen innerhalb eines Verarbeitungsintervalls nicht verändern, damit die Anwendungsprogramme zu jedem beliebigen Zeitpunkt lesend darauf zugreifen können und unabhängig vom Zeitpunkt des Zugriffs der gleiche Wert ausgegeben wird; andererseits müssen nach jeder Iteration des in Abschnitt 1.3 beschriebenen Drei-Phasen-Vorgangs die neuen Zustandsinformationen eines Prozesses abgelegt werden. Prinzipiell ließe sich das Problem umgehen, indem mit der Ausführung des Prozessabschnittes erst begonnen wird, nachdem die SPA abgeschlossen wurde. Dies würde jedoch die Rechenleistung des Systems signifikant mindern und hätte, da PVE und PAE in diesem Fall nur abwechselnd aktiv wären, eine sehr ineffiziente Auslastung der eingesetzten Geräteressourcen zur Folge.
- (B) Prinzipiell kann die Ausführung des in Abschnitt 1.3 beschriebenen Drei-Phasen-Vorgangs beschleunigt werden, indem die Eingangsregister der PZS mit den Parametern des nächsten Prozesses geladen werden, während die aktualisierten Parameter des vorigen Prozesses in die Prozessliste zurückgegeben werden. Das bedeutet, dass die Ausführung der ersten und die der dritten Phase des Drei-Phasen-Vorgangs überlagert werden. Unter Berücksichtigung des Problems (A) gestaltet sich eine schaltungstechnische Lösung jedoch schwierig.
- (C) In jedem Verarbeitungsintervall führt die PVE die SPA durch. Gleichzeitig führt die PAE den Prozessabschnitt aus, auf den der von der PVE ausgegebene Identifikator hinweist (Identifikator des auszuführenden Prozessabschnittes). Gegen Ende des Verarbeitungsintervalls übergibt die PAE den Identifikator des als nächsten auszuführenden Abschnittes des soeben bearbeiteten Prozesses an die PVE. Dieser Identifikator muss nicht nur als neuer Abschnittszeiger in der Prozessliste abgelegt werden, er muss darüber hinaus auch unmittelbar, d. h. noch im selben Verarbeitungsintervall, bei der Bestimmung des im nächsten Intervall auszuführenden Abschnittes berücksichtigt werden. Eine schaltungstechnische Lösung dieses Problems muss sich zusammen mit den Lösungen der Probleme (A) und (B) in ein Gesamtkonzept integrieren lassen.
- (D) Da die SPA durchgeführt wird, während die PAE einen Prozessabschnitt ausführt, ist es problematisch, die Aktivierungs- und Ausführungsbedingungen programmgesteuert zu konfigurieren. Einerseits sollten diese Parameter innerhalb eines Verarbeitungsintervalls konstant gehalten werden, da sonst die Ergebnisse der SPA davon abhängen, ob die Parameteränderungen stattfinden, bevor oder nachdem die SPA den zugehörigen Prozess behandelt; andererseits sollte die Konfigurierung dieser Parameter zu jedem beliebigen Zeitpunkt eines Verarbeitungsintervalls zulässig sein und – unabhängig vom Zeitpunkt – stets zum selben Ergebnis führen. Eine schaltungstechnische Lösung dieser Problematik muss mit den Lösungen der Probleme (A) bis (C) vereinbar sein. Die Zeitpunkte, zu denen die SPA auf die Parameter eines Prozesses zugreift, sind – bezogen auf den Beginn eines Verarbeitungsintervalls – konstant und bekannt (vorausgesetzt, die SPA verarbeitet die Prozesse bzw. deren Parameter immer in der gleichen Reihenfolge). Daher gibt es prinzipiell zwei Alternativen, um das Problem zu umgehen: Entweder werden Parametermodifikationen nur zu bestimmten Zeitpunkten zugelassen (z. B. indem mit der Ausführung der Prozessabschnitte erst begonnen wird, nachdem die SPA abgeschlossen wurde), oder der Zeitpunkt des Zugriffs der SPA wird bei der Programmentwicklung berücksichtigt. Die erstgenannte Alternative zieht eine nur bedingt tolerierbare Einschränkung der Leistungsfähigkeit nach sich; bei der zweiten Variante wird die Programmentwicklung bzw. deren Verifikation erschwert. Beide Alternativen sind somit unbefriedigend.
- (E) Ebenso wie die programmgesteuerte Konfigurierung der Prozessparameter ist die programmgesteuerte Suspendierung und Fortführung von Prozessen problematisch. Innerhalb eines Verarbeitungsintervalls muss die PVE die Suspendierungs- und Fortführungsbefehle der PAE entgegennehmen, während sie die Suspendierungs- und Fortführungsbefehle des vorigen Verarbeitungsintervalls ausführt. Eine schaltungstechnische Lösung muss mit den Lösungen der Probleme (A) bis (D) vereinbar sein.
- (F) Asynchron auftretende Ereignisse lassen sich prinzipiell leicht behandeln. Es ist lediglich notwendig, deren Auftretenszeitpunkte in Form von Zeitstempeln in einem Register zwischenzuspeichern. Diese Zeitstempel müssen an die Logikschaltung der PZS geleitet werden, welche dann die asynchronen Ereignisse bei der SPA berücksichtigt. Werden die Zeitwerte allerdings in einem UTC-konformen Format verarbeitet, so wird eine große Datenwortbreite zur Speicherung benötigt. (Bei einer zeitlichen Auflösung von 10 μs werden mehr als 40 Bit benötigt, um den für Echtzeitanwendungen typischen Einsatzzeitraum von mehreren Jahrzehnten abzudecken.) Paralleles Weiterleiten der Zeitstempel mehrerer asynchroner Meldungseingänge an die Logikschaltung der PZS würde dementsprechend schnell zu einem nicht mehr vertretbar hohen Verdrahtungsaufwand führen; der Einsatz einer seriellen Übertragungstechnik würde dagegen den Schaltungsaufwand erhöhen. Eine schaltungstechnische Lösung, die geringen Verdrahtungsaufwand mit minimalem Schaltungsaufwand kombiniert und sich mit den anderen Problemlösungen vereinen lässt, ist daher wünschenswert.
- (G) Arithmetische Berechnungen mit UTC-konformen Zeitwerten, wie sie z. B. zur Bestimmung der Fertigstellungstermine notwendig sind, mit Hilfe von Addier- bzw. Subtrahierschaltwerken durchzuführen, ist problematisch. Da die zwölf Monate eines Jahres nicht die gleiche Anzahl an Tagen besitzen und da eine Minute gemäß dem UTC-Standard in Ausnahmefällen um eine Schaltsekunde verlängert sein kann, ist die Übertragsberechnung schaltungstechnisch schwierig zu realisieren bzw. verlangt unzumutbar hohen Aufwand.
- Lösung
- Aufgabe der vorliegenden Erfindung ist die Verwaltung der Prozesse einer Echtzeitanwendung gemäß dem in Abschnitt 1.3 beschriebenen Verfahren der Rechenprozessausführung ohne asynchrone Unterbrechungen. Dabei löst die Erfindung die in Abschnitt 2 geschilderten Probleme mittels der in den Patentansprüchen 1 bis 5 aufgeführten Schaltungskonzepte bzw. Merkmale. Die Erfindung stellt eine schaltungstechnische Realisierung der Prozessverwaltung dar, die ein vertretbares Optimum aus Geräteaufwand und Reaktionszeit (bzw. Verarbeitungszeit) bietet.
- Nachfolgend werden die Lösungen der Probleme (A) bis (G) im einzelnen geschildert. Die beschriebenen Lösungen zeichnen sich dadurch aus, dass sie aufeinander abgestimmt sind und in ein ganzheitliches Schaltungskonzept münden. Auf die Integration dieser Lösungen und deren Zusammenspiel in der PVE wird im Abschnitt "5 Ausführungsbeispiel" vertieft eingegangen.
- (I) Das Problem (A) wird gelöst, indem zur Speicherung der Prozessliste zwei gleich große Speicherblöcke SA und SB verwendet werden, die jeweils über zwei voneinander unabhängige Zugriffsschnittstellen verfügen. Eine Schnittstelle der Speicherblöcke dient jeweils ausschließlich der internen Verarbeitung der PVE; mit der zweiten Schnittstelle wird der PAE der lesende Zugriff auf die Prozessparameter ermöglicht. Dabei wird von Speicherblöcken mit getrennten Datenein- und Datenausgängen ausgegangen; mit geringem zusätzlichen Aufwand lässt sich der hier beschriebene Lösungsansatz jedoch auch durch Speicherblöcke mit kombinierten Datenein- und -ausgängen realisieren. Letzteres ist bei der Integration der PVE in einem einzigen integrierten Schaltkreis jedoch unvorteilhaft, da dabei zusätzliche Dreizustandsausgänge notwendig wären. Mit Hilfe von Multiplexern werden die beiden Speicherblöcke so angesteuert, dass sowohl das zeitgleiche Laden und Auslesen der Eingangs- bzw. Ausgangsregister der Prozesszustandssteuerung (PZS) möglich ist als auch die Anwendungsprogramme auf die Zustandsinformationen der Prozesse zugreifen können. Innerhalb eines Verarbeitungsintervalls wird auf einen der beiden Blöcke nur lesend zugegriffen, während auf den anderen nur schreibend zugegriffen wird. Der Block, auf den lesend zugegriffen wird, stellt die Prozessparameter für das aktuelle Verarbeitungsintervall zur Verfügung. Während der SPA werden diesem Block sämtliche Parameter (d. h. Aktivierungsbedingungen, Ausführungseigenschaften und Zustandsinformationen) aller Prozesse entnommen und der PZS zugeführt. Zeitlich versetzt, aber innerhalb der SPA, stellt die PZS für jeden Prozessparameter den im nächsten Intervall gültigen Wert zur Verfügung. Diese Werte werden in dem Speicherblock abgelegt, auf den im aktuellen Intervall schreibend zugegriffen wird. Gegen Ende der SPA sind in diesem Block alle Prozessparameter gespeichert. Zu Beginn des nächsten Verarbeitungsintervalls wechseln sich die beiden Speicherblöcke in ihrer Funktion ab: auf den Block, auf den ursprünglich lesend zugegriffen wurde, wird im nächsten Intervall schreibend zugegriffen, und umgekehrt. Schaltungstechnisch wird der abwechselnde Zugriff auf die Speicherblöcke mit Hilfe eines alternierenden binären Signals und mehreren 2-auf-1-Multiplexern realisiert. Das alternierende Signal sAlt, dessen binärer Wert zu Beginn eines jeden Verarbeitungsintervalls wechselt, wird vom Steuerwerk der PVE generiert. Abbildung 4 veranschaulicht das in den nächsten beiden Absätzen beschriebene Schaltungskonzept. Eine Schnittstelle der Speicherblöcke ist jeweils wie folgt beschaltet. Das alternierende Binärsignal sAlt ist an den Auswahleingang für Schreiben oder Lesen der Speicherblöcke angeschlossen, und zwar einmal in unveränderter und einmal in negierter Form. Somit wird auf einen Block lesend, auf den anderen schreibend zugegriffen. Es werden zwei 2-auf-1-Muliplexer M1 und M2 verwendet, um die Zugriffsadressen an die Adresseingänge von SA und SB weiterzuleiten. Diese Muliplexer schalten komplementär, d. h. während ein Multiplexer die Adresse des lesenden Zugriffs weiterleitet, leitet der andere die Adresse des schreibenden Zugriffs weiter. An die Dateneingänge werden jeweils die Datenleitungen des schreibenden Zugriffs angeschlossen. Die Datenausgänge werden auf einen Multiplexer M3 geführt, der so durch das alternierende Binärsignal sAlt angesteuert wird, dass stets der Datenausgang des lesbaren Speicherblocks weitergeleitet wird. Da die zweite Schnittstelle der Speicherblöcke ausschließlich dem lesenden Zugriff dient, ist dessen Auswahleingang für Schreiben oder Lesen jeweils auf einen konstanten logischen Wert gelegt. An den Adresseingängen sind die Adressleitungen der PAE-Schnittstelle angeschlossen. Die Datenausgänge sind an die Signaleingänge eines 2-auf-1-Multiplexers (M4) angeschlossen, der vom alternierenden Binärsignal sAlt des Steuerwerks so angesteuert wird, dass der Datenausgang des im aktuellen Verarbeitungsintervall lesbaren Speicherblocks an die Datenleitungen der PAE-Schnittstelle übergeben wird.
- (II) Zur Lösung
von Problem (B) muss das unter Punkt (I) beschriebene Schaltungskonzept
lediglich geringfügig
erweitert werden. Da auf zwei Speicherblöcke komplementär zugegriffen
wird, sind die schreibenden und die lesenden Zugriffe voneinander
unabhängig.
Die Prozessparameterverwaltung (PPV) und die -zustandssteuerung
(PZS) werden über
zwei getrennte Datenbusse BA und BB miteinander verbunden. Über BA werden
die Prozessparameter der PZS zur Verfügung gestellt, über BB werden später die aktualisierten Parameter
ausgelesen.
Der Datentransfer wird vom Steuerwerk koordiniert.
Neben mehreren anderen Steuersignalen gibt das Steuerwerk hierzu
die beiden Adressen LadeAdresse und SpeicherAdresse aus. Bei LadeAdresse
handelt es sich um die Adresse des Datenwortes, das als nächstes von
einem der Speicherblöcke
der PPV gelesen und an ein Eingangsregister der PZS übergeben
werden soll. Die Adresse besteht aus zwei Teilen: dem ProzessIdentifikator
und dem ParameterIdentifikator. Der ProzessIdentifikator entspricht
der dual codierten Identifikationsnummer des jeweiligen Prozesses
und der ParameterIdentifikator kennzeichnet den Prozessparameter
(bzw. den Teil eines Prozessparameters), dem das unter der Adresse
LadeAdresse in SA bzw. SB gespeicherte
Datenwort zugeordnet ist. SpeicherAdresse kennzeichnet die Adresse,
unter der das vom Ausgangsregister der PZS ausgelesene Datenwort
im Speicherblock SA bzw. SB gespeichert
werden soll. Sie setzt sich ebenfalls aus den Bestandteilen ProzessIdentifikator
und ParameterIdentifikator zusammen.
5 veranschaulicht diesen Zusammenhang. Die PZS verfügt nicht nur über Eingangsregister für jedes Datenbit des Parametersatzes eines Prozesses, sondern auch über entsprechende Ausgangsregister. Die Ein- und die Ausgangsregister sind entsprechend den Prozessparametern organisiert. Ein Prozessparameter kann sowohl Teil eines in SA bzw. SB gespeicherten Datenwortes sein (z. B. ist der 2-Bit-Parameter 'Prozesszustand' Teil eines Datenwortes von SA bzw. SB), er kann sich allerdings auch aus mehreren gespeicherten Datenworten zusammensetzen (z. B. setzt sich ein 48-Bit-Zeitwert aus mehreren in SA bzw. SB gespeicherten Datenworten zusammen). Jeweils nSP Datenbits des Ein- bzw. des Ausgangsregisters ist ein gemeinsamer ParameterIdentifikator zugeordnet, wobei nSP der Wortbreite der Speicherblöcke SA bzw. SB entspricht. Dieser ParameterIdentifikator entspricht dem Adresswert, über den die zugehörigen Datenbits des Ein- bzw. Ausgangsregisters angesprochen werden. Die vom Steuerwerk ausgegebenen Adressen LadeAdresse und SpeicherAdresse kennzeichnen somit nicht nur eine Speicherzelle in SA bzw. SB eindeutig, sondern auch die diesem Datenwort zugehörigen Datenbits des Ein- bzw. Ausgangsregisters der PZS. Der Datenbus BA ermöglicht wortweises Beschreiben des Eingangs- und der Bus BB wortweises Lesen des Ausgangsregisters. Der ParameterIdentifikator von LadeAdresse bzw. SpeicherAdresse wird dabei direkt auf die Adressleitung des Datenbusses BA bzw. BB geschaltet.6 veranschaulicht dieses Schaltungskonzept. Die Steuereinheit koordiniert die SPA wie folgt. Zu Beginn lädt sie das Eingangsregister RER mit den Parametern des ersten Prozesses, indem sie entsprechende Werte für LadeAdresse generiert. Nachdem alle Eingangsregister über den Bus BA geladen sind, gibt das Steuerwerk einen mit Zwischenspeichern bezeichneten Signalimpuls aus. Dieser veranlasst das Ausgangsregister RAR der PZS und das unter Punkt (III) beschriebene Prozessadministrationshilfsschaltwerk (PAHSW) dazu, die Ergebnisse der Logikschaltung L, welche zentraler Bestandteil der PZS ist, zu überneh men. Anschließend generiert das Steuerwerk die Werte für SpeicherAdresse, die notwendig sind, um die Inhalte des Ausgangsregisters über BB zur PPV zu übertragen. Gleichzeitig sorgt das Steuerwerk mit Hilfe entsprechender Werte von LadeAdresse dafür, dass das Eingangsregister mit dem Parametersatz des nächsten Prozesses geladen wird. Anschließend gibt das Steuerwerk erneut einen Signalimpuls Zwischenspeichern aus. Dieses gleichzeitige Laden und Auslesen der Ein- und Ausgangsregister der PZS, d. h. die gleichzeitige Ausführung der ersten und dritten Phase des Drei-Phasen-Vorganges gefolgt von Impulsen zur Zwischenspeicherung, wird solange fortgeführt, bis der Parametersatz des letzten Prozesses in die PZS geladen wurde. Nachdem anschließend der aktualisierte Parametersatz des letzten Prozesses über BB in die PPV zurückgeschrieben wurde, ist die SPA abgeschlossen. - (III) Die im vorigen Abschnitt unter Punkt (C) angesprochene
Problematik wird durch das nachfolgend beschriebene und in
7 dargestellte Prozessadministrationshilfsschaltwerk (PAHSW) beseitigt. Das Schaltwerk umfasst • zwei Hilfsregister, RHRA und RHRB, zur Zwischenspeicherung von Informationen über die beiden Prozesse mit dem nächsten und dem übernächsten Fertigstellungstermin, • zwei Abschnittsidentifikatorregister (AID-Reg.), RAIDA und RAIDB, zur Zwischenspeicherung der von der PAE zurückgegebenen Abschnittsidentifikatoren, und • ein Schaltwerk zur Bestimmung und temporären Speicherung der Identifikatoren des auszuführenden Prozessabschnittes, nachfolgend mit BSIAP bezeichnet. Die Hilfsregister RHRA und RHRB unterstützen die Logikschaltung L bei der Bestimmung der beiden Prozesse mit den nächsten Fertigstellungsterminen. Jedes Register speichert einen Prozessidentifikator (P-ID), einen Abschnittsidentifikator (A-ID) und einen Fertigstellungstermin (FT). Die gespeicherten Werte gehören stets einem einzigen Prozess an. Dabei wird in das Register A-ID der Abschnittszeiger eines Prozesses abgelegt, welcher auf den nächsten auszuführenden Prozessabschnitt zeigt. Bezogen auf die bei der SPA des aktuellen Verarbeitungsintervalls bisher verwalteten Prozesse werden in RHRA stets die Daten des Prozesses mit dem nächsten Fertigstellungstermin abgelegt. Das Register RHRB speichert in gleicher Weise die Daten des Prozesses mit dem übernächsten Fertigstellungstermin. Die Inhalte beider Register werden zu Beginn eines Verarbeitungsintervalls zurückgesetzt. Dabei werden die gespeicherten FT auf den größten darstellbaren Zeitwert gesetzt. Den Registern P-ID wird ein Wert zugewiesen, der keinem gültigen Prozessidentifikator entspricht. Dieser ungültige Wert weist darauf hin, dass die gespeicherten Werte A-ID und FT keinem Prozess zugehören. Die von den beiden Hilfsregistern ausgegebenen Werte P-IDIII, A-IDIII und FTIII bzw. P-IDIV, A-IDIV und FTIVwerden der Logikschaltung L zugeführt (vgl.8 ), welche sie bei der SPA berücksichtigt. Während der SPA werden die Prozesse sequenziell abgearbeitet, wobei der Logikschaltung L nacheinander die Parameter der einzelnen Prozesse zugeführt werden. Die Logikschaltung vergleicht dabei stets die von den Hilfsregistern RHRA und RHRB bereitgestellten Werte FTIII und FTIV mit dem FT dem aktuell behandelten Prozess und bestimmt von diesen drei Terminen den nächsten und den übernächsten. Die Logikschaltung leitet nicht nur diese beiden Fertigstellungstermine (FTI und FTII ) selbst an die Hilfsregister RHRA und RHRB weiter, sondern auch die zugehörigen Prozessidentifikatoren (P-IDI und P-IDII) und Abschnittszeiger (A-IDI und A-IDII ). Nach Abschluss der zweiten Phase des Drei-Phasen-Vorganges, welcher während der SPA für jeden verwalteten Prozess durchgeführt wird, gibt das Steuerwerk jeweils einen mit Zwischenspeichern bezeichneten Signalimpuls aus. Dieser veranlasst RHRA und RHRB, die von der Logikschaltung L ausgegebenen neuen Werte P-IDI, A-IDI und FTI bzw. P-IDII, A-IDII und FTII zu übernehmen. Diese Arbeitsweise führt dazu, dass nach Abschluss der SPA in RHRA bzw. RHRB die Daten des Prozesses mit dem nächsten bzw. dem übernächsten Fertigstellungstermin abgelegt sind. Zum schreibenden Zugriff auf die beiden Abschnittsidentifikatorregister RAIDA und RAIDB dienen die Anschlüsse RegAktiv, Adresse und Dateneingang (DE). Nur wenn logisch '1' am Eingang RegAktiv anliegt, können Datenworte in ein Register geschrieben werden. Diese Eingänge der beiden Register werden komplementär angesteuert. Hierzu liegt jeweils das alternierende Binärsignal satt an, einmal in unveränderter und einmal in negierter Form. Somit wechselt mit jedem Verarbeitungsintervall das Register, auf das die PAE schreibend zugreifen kann. Beiden Registern ist die gleiche Adresse zugeordnet. Um nach Abschluss der Ausführung eines Prozessabschnittes den Identifikator des als nächsten auszuführenden Abschnittes der PVE zu übergeben, muss die PAE lediglich einen Schreibbefehl auf die Adresse von RAIDA bzw. RAIDB durchführen. Dabei wird der neue Abschnittsidentifikator über den Dateneingang zugeführt. Beide Abschnittsidentifikatorregister geben stets den gespeicherten Identifikator an ihrem Ausgang A-ID# aus. Mit Hilfe des 2-auf-1-Multiplexers M5, an dessen Steuereingang das alternierende Binärsignal satt anliegt, wird der Ausgabewert des Registers weitergeleitet, auf das die PAE im aktuellen Verarbeitungsintervall schreibend zugreifen kann. Der weitergeleitete Wert wird dem mit BSIAP bezeichneten Schaltwerk übergeben, auf dessen Funktion im nächsten Abschnitt eingegangen wird. Der 2-auf-1-Multiplexer M6 leitet den Ausgabewert des Registers, auf das die PAE aktuell nicht zugreifen kann, an den Ausgang A-ID** des PAHSW weiter. Somit handelt es sich bei A-ID**um den im vorigen Verarbeitungsintervall von der PAE übergegebenen Abschnittsidentifikator. Dieser Wert wird an die Logikschaltung L weitergeleitet, welche diesen bei der SPA berücksichtigt. Dies ist notwendig, da dieser Identifikator noch nicht in der Prozessliste abgelegt wurde. Anhand des Prozessidentifikators des zuletzt ausgeführten Prozesses (P-ID**), welcher vom nachfolgend beschriebenen BSIAP-Schaltwerk bereitgestellt wird, identifiziert die Logikschaltung L den Prozess, welchem der im letzten Verarbeitungsintervall zurückgegebene Abschnittsidentifikator zugewiesen werden muss. Über den von der Logikschaltung neu bestimmten Parametersatz, welcher mit Hilfe des Datenbusses BB von der PZS zur PPV übertragen wird, gelangt dieser Abschnittsidentifikator als neuer Abschnittszeiger schließlich in die Prozessliste. Das Schaltwerk zur Bestimmung und temporären Speicherung der Identifikatoren des auszuführenden Prozessabschnittes (BSIAP) gibt an seinem Ausgang P&A-ID* die Identifikatoren des im aktuellen Verarbeitungsintervall auszuführenden Prozessabschnittes aus. Der Ausgabewert wird nur zu Beginn eines Verarbeitungsintervalls geändert. Die PAE liest diesen Wert ein und führt den zugehörigen Prozessabschnitt aus. Daneben gibt das Schaltwerk BSIAP an seinem Ausgang P-ID** den Prozessidentifikator des Prozesses aus, der dem im letzten Verarbeitungsintervall ausgeführten Prozess angehört. Wie im vorigen Abschnitt beschrieben, wird dieser Wert von der Logikschaltung L verwendet, um im Zuge der SPA den von der PAE im letzten Verarbeitungsintervall zurückgegebenen Abschnittsidentifikator des zugehörigen Prozesses zuzuordnen und in der Prozessliste abzulegen. Das mit Intervallbeginn bezeichnete Impulssignal des Steuerwerks initiert die Bestimmung neuer Ausgabewerte P&A-ID* und P-ID**, welche über das gesamte folgende Verarbeitungsintervall hinweg in Registern innerhalb des BSIAP gespeichert werden. Die Werte werden schaltungstechnisch gemäß folgender Verarbeitungsvorschriften bestimmt (Bei den in der nachfolgenden Liste aufgeführten Betrachtungen wird davon ausgegangen, dass das Impulssignal 'Intervallbeginn' ein neues Verarbeitungsintervall beginnt; mit dem 'letzten Verarbeitungsintervall' ist demnach das zuvor beendete gemeint.): • Wenn der im letzten Verarbeitungsintervall ausgeführte Prozess nicht gleich dem ist, der im letzten Verarbeitungsintervall als der Prozess mit dem nächsten Fertigstellungstermin identifiziert wurde, dann werden P&A-ID* die in RHRA gespeicherten Identifikatoren des Prozesses mit dem nächsten Fertigstellungstermin zugewiesen (P-IDIII und A-IDIII). • Wenn der im letzten Verarbeitungsintervall ausgeführte Prozess gleich dem ist, der im letzten Verarbeitungsintervall als der Prozess mit dem nächsten Fertigstellungstermin identifiziert wurde, und der im letzten Verarbeitungsintervall zurückgegebene Abschnittsidentifikator, welcher dem BSIAP-Schaltwerk am Eingang A-ID zur Verfügung gestellt wird, nicht den Abschluss der Bearbeitung dieses Prozesses signalisiert, dann setzen sich die P&A-ID* zugewiesenen Identifikatoren aus dem in RHRA gespeicherten Prozessidentifikator (P-IDIII) und dem im aktuellen Verarbeitungsintervall von der PAE zurückgegebenen Abschnittsidentifikator A-ID#zusammen. • Wenn der im letzten Verarbeitungsintervall ausgeführte Prozess gleich dem ist, der im letzten Verarbeitungsintervall als der Prozess mit dem nächsten Fertigstellungstermin identifiziert wurde, und der im letzten Verarbeitungsintervall zurückgegebene Abschnittsidentifikator den Abschluss der Bearbeitung dieses Prozesses signalisiert, dann werden P&A-ID* die in RHRB gespeicherten Identifikatoren des Prozesses mit dem übernächsten Fertigstellungstermin zugewiesen (P-IDIV und A-IDIV). Diese Verfahrensvorschrift ist notwendig, da das Bearbeitungsende des im aktuellen Verarbeitungsintervall ausgeführten Prozesses bei der zeitgleich durchgeführten SPA noch nicht berücksichtigt wurde und daher das Bearbeitungsende noch nicht in den im aktuellen Intervall ausgelesenen Prozessparametern verzeichnet ist. • Dem Ausgang P-ID** wird bei Auftreten des Impulses Intervallbeginn in jedem Fall der Prozessidentifikator zugewiesen, der bis zu dem Zeitpunkt unter P&A-ID* ausgegeben wurde.8 veranschaulicht die Integration des PAHSW in die PZS. - (IV) Das Problem (D) wird durch ein spezielles, mit Konfigurierungsschaltwerk (KSW) bezeichnetes, Schaltwerk gelöst. Dieses besitzt zwei Registersätze RA und RB, auf die die PVE selbst und die PAE abwechselnd komplementär lesend und schreibend zugreifen. Während die PVE lesend auf den einen Registersatz zugreift, besitzt die PAE schreibenden Zugriff auf den anderen Registersatz. Dabei wechselt der Zugriff mit Beginn eines jeden Verarbeitungsintervalls.
- Die Registersätze
umfassen die Aktivierungsbedingungen und Ausführungseigenschaften eines Prozesses.
Sie sind in Datenworten organisiert, die denen zur Speicherung der
Prozessparameter in SA und SB entsprechen;
d. h., die Aufteilung der Prozessparameter in Datenworte ist identisch.
Jedem Datenwort (DW) ist ein Statusbit (SB) zugeordnet, dessen binärer Wert
kennzeichnet, ob es sich um ein vom Anwendungsprozessor neu übergebenen
Wert handelt, der im nächsten
Verarbeitungsintervall während
der SPA dem Registersatz eines Prozesses zugewiesen werden soll.
Zudem ist jedem Registersatz ein Register zur Speicherung eines
ProzessIdentifikators zugeordnet, der auf den Prozess hinweist,
dem die neuen Parameterwerte zugewiesen werden sollen.
Die
beiden Registersätze
sind so aufgebaut, dass jeweils eine Schnittstelle für lesenden
und eine für
schreibenden Zugriff zur Verfügung
steht. Zur Schnittstelle für
schreibenden Zugriff zählen
die Anschlüsse
RegAktiv, RücksetzenStatusbit,
RegAdr. und Dateneingang (DE). Für
den lesenden Zugriff besitzt jeder Registersatz die Anschlüsse Zugriffsadresse,
Datenausgang (DA) und Statusbit.
9 illustriert den Aufbau des KSW. Nur wenn eine logische '1' am Eingang RegAktiv anliegt, können Datenworte in den Registersatz geschrieben oder dessen Statusregister zurückgesetzt werden. Zur komplementären Ansteuerung von RA und RB liegt am Eingang RegAktiv jeweils das alternierende Binärsignal sAlt an, einmal in unveränderter und einmal in negierter Form. Rücksetzen der Statusbits wird durch eine positive Signalflanke am Eingang RücksetzenStatusbit veranlasst. Ein entsprechender Impuls wird vom Steuerwerk zu Beginn eines jeden Verarbeitungsintervalls generiert – kurz nach dem Zustandswechsel des alternierenden Binärsignals sAlt. Der Adresseingang RegAdr bzw. der Dateneingang DE der beiden Registersätze ist jeweils mit dem KSW-Eingang Registeradresse bzw. Dateneingang verbunden. Diese Schnittstelle ermöglicht der PAE schreibenden Zugriff auf den Registersatz des KSW, der im aktuellen Verarbeitungsintervall beschreibbar ist. Sowohl das Register zur Speicherung des ProzessIdentifikators als auch die Register zur Speicherung der einzelnen Datenworte besitzen hierzu jeweils eine eigene Adresse. Auf den lesbaren Registersatz greift die PVE mittels der LadeAdresse zu, die vom Steuerwerk generiert wird und bereits in der PPV zum Auslesen von SA bzw. SB dient. Diese spezifiziert sowohl den aktuell behandelten Prozess (ProzessIdentifikator) als auch das Datenwort (ParameterIdentifikator) (vgl.5 ). Stimmt der ProzessIdentifikator mit dem gespeicherten ProzessIdentifikator des Registersatzes überein, so gibt das KSW sowohl das gespeicherte Datenwort aus, auf das ParameterIdentifikator hinweist, als auch das zugehörige Statusbit. Es werden zwei 2-auf-1-Multiplexer (M7 und M8) verwendet, um die beiden Ausgänge DA und Statusbit der Registersätze an die entsprechenden Ausgänge des KSW weiterzuleiten. Diese werden durch das alternierende Binärsignal sAlt des Steuerwerks so angesteuert, dass stets die Ausgänge des Registersatzes weitergeleitet werden, auf das die PAE im aktuellen Verarbeitungsintervall nicht schreibend zugreifen kann. Zu Beginn eines Verarbeitungsintervalls werden die Statusregister des Registersatzes, auf den der Anwendungsprozessor schreibenden Zugriff erhält, zurückgesetzt. Dies wird durch ein mit Intervallbeginn bezeichnetes Impulssignal des Steuerwerks initiiert. Sollen die Aktivierungs- und/oder die Ausführungsbedingungen eines Prozesses neu konfiguriert werden, so muss dem KSW zunächst der Identifikator (die dual codierte Nummer) des Prozesses übergeben werden. Dazu dient ein entsprechender Schreibzugriff der PAE auf das KSW. Werden nun neue Datenworte in den Registersatz geschrieben, so wird das jeweilig zugeordnete Statusbit gesetzt. Im darauf folgenden Verarbeitungsintervall leiten die Multiplexer M7 und M8 die Ausgänge dieses Registersatzes weiter. Während die Datenworte des Parametersatzes des durch den gespeicherten ProzessIdentifikator spezifizierten Prozesses über BA in die Eingangsregister der PZS geladen werden, werden die gespeicherten Datenworte und Statusbits vom KSW ausgegeben. Mit dem Statusbit wird ein Multiplexer (M11) so angesteuert, dass die neu konfigurierten Datenworte – gekennzeichnet durch ein gesetztes Statusbis (logisch '1') – anstatt der in der Prozessliste gespeicherten dem Eingangsregister RER übergeben werden.12 veranschaulicht die Integration des KSW in die PVE. - (V) Das Problem (E) wird durch ein spezielles, mit Suspendierungsschaltwerk
(SSW) bezeichnetes, Schaltwerk gelöst. Zu dessen wesentlichen
Bestandteilen gehören
zwei Registersätze
RSA und RSB. Auf
diese wird abwechselnd komplementär zugegriffen, wobei der Zugriffswechsel
zu Beginn eines jeden Verarbeitungsintervalls stattfindet. Während die
PVE den einen Registersatz ausliest, um die darin gespeicherten
Befehle bei der SPA zu berücksichtigen,
kann die PAE neue Suspendierungs- und Fortführungsbefehle in den anderen
Registersatz schreiben.
Jeder Registersatz speichert zwei Datenbits
für jeden
der verwalteten Prozesse. Das Befehlsbit kennzeichnet die Befehlsart,
d. h. ob der zugehörige
Prozess suspendiert oder fortgeführt
werden soll. Die andere Bitinformation – das Ausführungsbit – kennzeichnet, ob von der
PAE (bzw. dem dort ausgeführten
Prozessabschnitt) ein entsprechender Suspendierungsbefehl im letzten
Verarbeitungsintervall übergeben
wurde. Zu Beginn eines Verarbeitungsintervalls werden bei dem Registersatz,
auf den nachfolgend schreibend zugegriffen wird, die Ausführungsbits
zurückgesetzt.
Dies wird durch das mit Intervallbeginn bezeichnete Impulssignal
des Steuerwerks initiiert.
Wie bei dem KSW sind die beiden
internen Registersätze
des SSW so aufgebaut, dass jeweils eine Schnittstelle für lesenden
und eine für
schreibenden Zugriff zur Verfügung
steht. Die Ansteuerung der Schnittstellen entspricht weitgehend
der des KSW. Die Schnittstelle für
schreibenden Zugriff umfasst die Eingänge RegAktiv, RücksetzenAusführungsbits,
RegAdr. und Dateneingang (DE). Die PAE kann nur über eine Adresse schreibend
auf das SSW zugreifen. Für
den lesenden Zugriff stehen die Anschlüsse ProzessIdentifikator und
Datenausgang (DA) zur Verfügung.
Während
der SPA wird an den Eingang ProzessIdentifikator stets der gleichnamige
Teil der LadeAdresse übergeben,
woraufhin der Registersatz die dem Prozess zugehörigen, gespeichertern Datenbits
ausgibt. Mit Hilfe des 2-auf-1-Multiplexers M9 werden
die Datenausgänge
des Registersatzes, in das die PAE im aktuellen Verarbeitungsintervall
keine neue Suspendierungsbefehle ablegen kann, an den Ausgang des
SSW weitergeleitet.
10 veranschaulicht den Aufbau des SSW. Um eine Suspendierung bzw. Fortführung eines Prozesses zu veranlassen, führt die PAE einen Schreibbefehl auf das SSW aus, wobei die geschriebenen Datenbits sowohl den Prozess als auch die Befehlsart (Suspendierung oder Fortführung) identifizieren. Daraufhin werden in dem aktuell beschreibbaren Registersatz das dem Prozess zugehörige Befehls- und Ausführungsbit entsprechend gesetzt. Erst im nächsten Verarbeitungsintervall wird dieses Register ausgelesen, d. h. übergebene Befehle werden erst im folgenden Verarbeitungsintervall bei der SPA berücksichtigt. Hierzu wird dem SSW während der SPA stets der Identifikator des aktuell behandelten Prozesses übergeben (d. h. der ProzessIdentifikator von Ladeadresse), woraufhin die beiden zugehörigen Datenbits (Befehls- und Ausführungsbit) des aktuell lesbaren Registersatzes ausgegeben werden. Die Logikschaltung L der PZS verwendet das Befehls- und das Ausführungsbit, um gegebenenfalls die Suspendierung oder Fortführung des Prozesses zu veranlassen. Die Integration des SSW in die PVE wird in12 veranschaulicht. - (VI) Das Problem (F) wird – ähnlich wie
die Probleme (D) und (E) – durch
ein spezielles, mit Ereignisschaltwerk (ESW) bezeichnetes, Schaltwerk
gelöst.
Zu dessen wesentlichen Bestandteilen gehören zwei Registersätze REA und REB. Jeder
Registersatz beinhaltet für
jeden der asynchronen Meldungseingänge einen Zeitpunktspeicher
(ZP). Während
eines Verarbeitungsintervalls werden in einem Registersatz die Zeitstempel
der auftretenden asynchronen Ereignisse (d. h. Signalflanken an
den Meldungseingängen)
abgelegt, die Inhalte des anderen Registersatzes bleiben unverändert und
werden während
der SPA ausgelesen. Zu Beginn eines jeden Intervalls wechseln sich
die beiden Register in ihrer Funktion ab.
Zu Beginn eines Verarbeitungsintervalls
werden alle Zeitpunktspeicher des Registersatzes, in dem nachfolgend
Zeitstempel abgelegt werden, auf den größten darstellbaren Wert gesetzt.
Dies wird durch ein mit Intervallbeginn bezeichnetes Impulssignal
des Steuerwerks initiiert. Der größte darstellbare Zeitwert signalisiert
der PZS, dass am zugehörigen
Meldungseingang kein Ereignis registriert wurde. Sobald an einem Meldungseingang
ein Ereignis detektiert wird, wird der aktuelle Zeitwert der UTC-synchronisierten
Uhr im zugehörigen
Zeitpunktregister abgelegt.
Das in der PZS umgesetzte Format
eines Aktivierungsplanes (vgl. Seite 5) ermöglicht die extern ereignisgesteuerte
Aktivierung eines Prozesses ausgehend lediglich von einem der Meldungseingänge, d.
h. es kann nur ein Meldungseingang ausgewählt werden, der zur Aktivierung
dient. Dementsprechend muss das ESW bei der SPA nur jeweils einen
gespeicherten Zeitwert an die PZS weiterleiten, und zwar den, der
zu dem Meldungseingang gehört,
mit dem der aktuell behandelte Prozess aktiviert werden kann. Diese
Technik schränkt
das Einsatzfeld der PVE nicht ein, reduziert jedoch dessen internen
Verdrahtungsaufwand signifikant.
11 veranschaulicht den Aufbau des ESW. Am Eingang RegAktiv der beiden Registersätze liegt jeweils das alternierende Binärsignal satt des Steuerwerks an, einmal in unveränderter und einmal in negierter Form. Nur der Registersatz, der durch ein entsprechendes Binärsignal (logisch '1') am Eingang RegAktiv aktiviert ist, speichert bei Auftreten von Ereignissen Zeitstempel ab und kann durch einen Impuls an RücksetzenZeitpunkte zurückgesetzt werden. Mit dem Eingang EreignisIdentifikator wird der Meldungseingang ausgewählt, dessen zugehöriger Zeitwert über den Zeitpunktausgang ausgegeben wird. Der EreignisIdentifikator entspricht einem der Prozessparameter und wird während der SPA vom Eingangsregister der PZS zur Verfügung gestellt. Mit Hilfe eines 2-auf-1-Multiplexers (M9) wird der ausgegebene Zeitwert des Registersatzes weitergeleitet, dessen Inhalt im aktuellen Verarbeitungsintervall nicht verändert werden kann (d. h., der im aktuellen Verarbeitungsintervall keine neuen Zeitwerte speichert).12 veranschaulicht die Integration des ESW in die PVE. Der Meldungseingang, der zur ereignisgesteuerten Aktivierung eines Prozesses ausgewählt ist, wird direkt durch einen der Prozessparameter identifiziert. Dementsprechend kann dieser Prozessparameter vom Eingangsregister der PZS direkt an den Eingang EreignisIdentifikator des ESW geleitet werden. - (VII) Das Problem (G) ergibt sich nur bei der Berechnung absoluter Zeitwerte; die Verarbeitung relativer Zeitwerte ist davon nicht betroffen, da relative Zeitwerte weder Schaltsekunden beinhalten, noch mit einer variierenden Anzahl an Monatstagen verarbeitet werden. Das Problem wird gelöst, indem zunächst mit einer festen Anzahl an Tagen pro Monat bzw. Sekunden pro Minute gerechnet wird und UTC-Zeitinformationen, welche z. B. weltweit via GPS verfügbar sind, zur Korrektur der Zeitwerte genutzt werden. Zur Umsetzung der in Abschnitt 1.3 beschriebenen Aktivierungspläne in die Logikschaltung L sind mehrere Additionschaltwerke zur Berechnung absoluter Zeitwerte notwendig. Diese addieren jeweils einen relativen zu einem absoluten Zeitwert und dienen unter anderem zur Berechnung der geforderten Fertigstellungstermine und des nächsten Aktivierungszeitpunktes. Die Übertragsberechnung dieser Addierwerke ist dabei so ausgelegt, als hätte jeder Monat 28 Tage und jede Minute 60 Sekunden. Dies führt zwar zu falschen absoluten Zeitwerten, die Größer-Kleiner-Relationen der Ergebnisse untereinander sind allerdings korrekt. Das bedeutet, die zeitliche Reihenfolge der fehlerbehafteten Ergebnisse (z. B. Fertigstellungstermine) entspricht der Reihenfolge, die sich bei korrekter Übertragsberechnung ergibt. Somit führt die vereinfachte Übertragsberechung zu keinem Fehler bei der Zuteilungsstrategie nach nächstem Fertigstellungstermin, bei der die beiden am dringendsten zu verarbeitenden Prozesse ermittelt werden müssen. Die durch die vereinfachte Übertragsberechung verursachten Fehler werden von der Logikschaltung L während der SPA korrigiert, indem jeder aus einer Addition mit vereinfachter Übertragsberechung hervorgegangene absolute Zeitwert im ersten Verarbeitungsintervall nach Auftreten eines Datumswechsels zum 29., 30. oder 31. Tag eines Monats bzw. nach dem Auftreten einer Schaltsekunde, d. h. einer 61. Sekunde, entsprechend dekrementiert wird (im erstgenannten Fall um einen Tag, im zweiten Fall um eine Sekunde). Dekrementiert wird dabei ebenfalls unter der Annahme, dass jeder Monat 28 Tage und jede Minute 60 Sekunden besitzt. Liegt das Ergebnis dieser Dekrementierung in der Zukunft, so kann es von der Logikschaltung direkt im Rahmen der SPA verwendet werden; liegt das Ergebnis der Dekrementierung jedoch in der Vergangenheit, so wird dessen Monatstag bzw. Sekundenwert auf den des aktuellen Zeitwertes gesetzt, bevor er zur Bestimmung der neuen Prozessparameter im Rahmen der SPA herangezogen wird. Beispielsweise wird beim Datumswechsel zum 29. April hin der absolute Zeitwert 1. Mai 01:00 Uhr zunächst auf den Wert 28. April 01:00 Uhr dekrementiert; da dieser Wert zum Zeitpunkt der Dekrementierung in der Vergangenheit liegt, wird der Monatstag durch den des aktuellen Zeitwertes ersetzt, was zu dem Ergebnis 29. April 01:00 Uhr führt. Die Integration der zur Durchführung dieser Korrektur notwendigen digitalen Schaltungskomponenten in die Logikschaltung L bereitet keine Schwierigkeiten und erhöht deren Schaltungsumfang nur geringfügig.
- Erreichte Vorteile
- Die im vorangegangenen Abschnitt geschilderten Problemlösungen ermöglichen eine besonders effiziente schaltungstechnische Realisierung des im Abschnitt "1 Stand der Technik" beschriebenen Verfahrens zur Rechenprozessausführung ohne asynchrone Unterbrechengen. Eine entsprechend aufgebaute PVE benötigt zur Durchführung der SPA eine extrem geringe Anzahl an Taktzyklen, so dass die Intervallzyklen sehr kurz gehalten werden können. Die Länge der Verarbeitungsintervalle hat wiederum direkten Einfluss auf die erreichbare Reaktionszeit – einem wesentlichen Leistungsmerkmal von Echtzeitsystemen mit harten Zeitbedingungen. Aus diesem Grund stellen die geschilderten schaltungstechnischen Problemlösungen einen für industrielle Belange besonders geeigneten Kompromiss zwischen geringem Geräteaufwand und kurzer Reaktionszeit dar. Dabei besitzt die Gerätestruktur der PVE eine sehr geringe Komplexität, insbesondere im Vergleich zu einer programmtechnischen Realisierung der PVE auf einem eigenen Prozessor. Hierdurch wird der Aufwand einer Sicherheitszertifizierung minimiert. Dieser Aspekt ist von besonderer Bedeutung, da das Verfahren zur Prozessausführung ohne asynchrone Unterbrechungen aufgrund seines inhärent einfachen Zeitverhaltens besonders für sicherheitsgerichtete Echtzeitsysteme geeignet ist.
-
12 veranschaulicht die Integration der beschriebenen schaltungstechnischen Lösungen in ein Gesamtkonzept. Die Abbildung stellt alle wesentlichen Komponenten der Prozessverwaltungseinheit (PVE) schematisch dar. Auf Details, die sich aus den hier angeführten Beschreibungen unmittelbar ergeben und die zum Verständnis nicht direkt notwendig sind (z. B. Ansteuerung der Selektionseingänge der Speicherblöcke), wurde bewusst verzichtet. - Die Funktion und die Arbeitsweise der Komponenten Prozessparameterverwaltung (PPV), Konfigurierungsschaltwerk (KSW), Suspendierungsschaltwerk (SSW), Ereignisschaltwerk (ESW) und Prozessadministrationshilfsschaltwerk (PAHSW) sowie die der Eingangs- und Ausgangsregister (RER und RAR) der Prozesszustandssteuerung (PZS) wurden bereits Abschnitt "3 Lösung" eingehend beschrieben, weshalb hier auf deren Erklärung verzichtet wird.
- Das Steuerwerk: Ein Bestandteil von zentraler Bedeutung ist das Steuerwerk, welches die zugeführte UTC-Zeitinformation zur Synchronisation der Verarbeitungsintervalle mit dem weltweiten Zeitnormal UTC nutzt. Das Steuerwerk koordiniert die zyklisch synchrone Arbeitsweise von PVE und PAE. Hierzu generiert es zahlreiche Steuersignale, durch die das Zusammenspiel der einzelnen Schaltungskomponenten organisiert wird. Aus Gründen der Ubersichtlichkeit sind in der Abbildung jedoch nur die zum Verständnis notwendigen Steuersignale skizziert. Hierzu gehören die bereits in Abschnitt " 3 Lösung" beschriebenen Steuersignale AlternierendesBinärsignal (sAlt), LadeAdresse und SpeicherAdresse. Die Steuersignale, auf deren Darstellung verzichtet wurde, sind durch den Ausgang weitere Steuersignale angedeutet. Hierzu gehören unter anderem die Steuersignale zur zeitlichen Synchronisation der Lese- und Schreibvorgänge.
- Zwei der nicht dargestellten Steuersignale sind die Impulssignale Intervallbeginn und Zwischenspeichern. Ersteres wird von zahlreichen Schaltungskomponenten verwendet und kennzeichnet den Beginn eines jeden Verarbeitungsintervalls durch einen Impuls. Das KSW und das SSW nutzen dieses Signal, um das Rücksetzen der Statusbits bzw. der Ausführungsbits zu veranlassen. Die PAE synchronisiert anhand dieses Impulses ihre Programmausführung. Durch einen Impuls auf seinem digitalen Ausgang Zwischenspeichern signalisiert das Steuerwerk das Ende der zweiten Phase des in Abschnitt 1.3 beschriebenen Drei-Phasen-Vorgangs der SPA und veranlasst so die PZS, die Ausgabewerte der Logikschaltung L in das Ausgangsregister RAR zu übernehmen. Daneben wird das Steuersignal auch zum Zwischenspeichern von Werten in den Hilfsregistern des PAHSW verwendet.
- Die PAE-Schnittstelle: Die PAE ist mit der PVE über die PAE-Schnittstelle verbunden. Alle schreibenden und lesenden Zugriffe der PAE auf Register bzw. Speicherblöcke der PVE führen über diese Schnittstelle. Gemäß den Ausführungen in Abschnitt "3 Lösung" sind lesende Zugriffe auf jeweils einen der beiden Speicherblöcke SA und SB möglich; schreibend kann auf das KSW und das SSW zugegriffen werden, sowie auf die beiden Abschnittsidentifikatorregister RAIDA und RAIDB des PAHSW. Der 2-auf-1-Multiplexer M12, dessen Schaltzustand von der Zugriffsadresse der PAE-Schnittstelle abhängt, ermöglicht zudem lesenden Zugriff auf den vom PAHSW ausgegebenen Identifikator des auszuführenden Prozessabschnitts.
- Die Prozesszustandssteuerung (PZS): Wie in
12 ersichtlich, setzt sich die PZS aus dem Eingangsregister RER, dem Ausgangsregister RAR, dem Schaltwerk PAHSW und der Logikschaltung L zusammen. Auf die Arbeitsweise der Logikschaltung L soll anhand eines exemplarischen Parametersatzes vertieft eingegangen werden. Die nachfolgend definierten Prozessparameter zeigen eine Möglichkeit auf, die in Abschnitt "1 Stand der Technik" beschriebenen Aktivierungspläne zu definieren. Andere – umfangreichere – Konzepte sind sicherlich denkbar. - Der Parametersatz eines Prozesses umfasst seine Aktivierungs- und Ausführungsbedingungen sowie seine Zustandsinformationen. Die Aktivierungs- und Ausführungsbedingungen eines Prozesses werden vom Anwender festgelegt, bzw. können über das KSW vom Anwendungsprogramm konfiguriert werden. Zu ihnen gehören:
- APVorh
- Dieser binäre Parameter gibt an, ob ein Aktivierungsplan definiert ist. Besitzt dieser Parameter den Wert 'nicht vorhanden', so kann der zugehörige Prozess zu keinem Zeitpunkt aktiviert werden. (APVorh = {vorhanden|nicht vorhanden})
- APEntf
- Dieser binäre Parameter gibt an, ob ein Aktivierungsplan nach seiner Ausführung gelöscht werden soll. Ein Aktivierungsplan wird gelöscht, indem APVorh auf 'nicht vorhanden' gesetzt wird. Wird dieser Parameter auf 'entfernen' gesetzt, so wird ein Aktivierungsplan nach seiner Ausführung gelöscht. Dabei ist zu beachten, dass der Aktivierungsplan zum Zeitpunkt seiner letzten Prozessaktivierung gelöscht wird. Das bedeutet, nachdem der Parameter APVorh auf 'nicht vorhanden' gesetzt wurde, wird der Prozess ein letztes Mal ausgeführt. Soll ein Aktivierungsplan wiederholt durch ein externes Ereignis gestartet werden, so ist dieser Parameter auf 'nicht entfernen' zu setzen. (APEntf = {entfernen|nicht entfernen})
- APStZeit
- Hierbei handelt es sich um einen absoluten Zeitwert, der den Zeitpunkt des Starts eines Aktivierungsplanes festlegt. Erst wenn ein Aktivierungsplan gestartet ist, werden die zugehörigen Prozesseinplanungen vorgenommen. Soll ein Aktivierungsplan direkt bei Einschalten des Systems gestartet werden, so ist dieser Parameter auf den größten darstellbaren Zeitwert zu setzen.
- APStSig
- Hierbei handelt es sich um eine Dualzahl, welche die Nummer des zum Starten des Aktivierungsplans verwendeten asynchronen Meldungseingangs festlegt. Soll ein Aktivierungsplan nicht durch ein externes Ereignis sondern zeitgesteuert gestartet werden, so ist dieser Parameter auf den größten darstellbaren dualen Wert zu setzen; diesem Wert ist kein Meldungseingang zugeordnet.
- APVerzög
- Hierbei handelt es sich um einen relativen Zeitwert, der die Verzögerung zwischen dem Start eines Aktivierungsplans und der ersten Prozessaktivierung festlegt. Dieser Parameter ist unwirksam bei zeitgesteuert gestarteten Aktivierungsplänen, d. h. wenn APStSig = max. darst. Wert; bei solchen Aktivierungsplänen findet die erste Prozessaktivierung unverzögert statt.
- tAntZeit
- Hierbei handelt es sich um einen relativen Zeitwert, der die Zeitspanne festlegt, die zur Ausführung eines Prozesses zur Verfügung steht. Ist Takt der Zeitpunkt der Aktivierung eines Prozesses, so ist der zugehörige Fertigstellungstermin durch TFT = TAkt + tAntZeit gegeben.
- tUntZeit
- Dieser relative Zeitwert legt die Zeitspanne fest, innerhalb derer nach einer Prozessaktivierung keine erneute Aktivierung zulässig ist. Ein erneuter Start des Aktivierungsplans innerhalb dieser Zeitspanne wird unterdrückt. Es muss tUntZeit ≥ tAntZeit gelten.
- tAktDauer
- Dieser relative Zeitwert legt die Zeitspanne fest, innerhalb derer im Anschluss an die erste Prozessaktivierung eines Aktivierungsplans weitere Aktivierungen stattfinden. Soll der Prozess bis zum Abschalten des Systems in periodischen Abständen aktiviert werden, d. h. ist die Zeitspanne für weitere Aktivierungen unbegrenzt, so ist diesem Parameter der maximal darstellbare Wert zuzuweisen.
- tAktFreq
- Dieser relative Zeitwert definiert den zeitlichen Abstand, in dem die Prozessaktivierungen eines Aktivierungsplans stattfinden. Soll ein Prozess nach einem externen Ereignis dreimal im Abstand von 200ms aktiviert werden, so ist dieser Parameter auf 200ms zu setzen. Der Parameter tAktDauer muss einen Wert im Bereich 400ms ≤ tAktDauer < 600ms besitzen. Es muss tAktFreq ≥ tUntZeit gelten.
- Die Zustandsinformationen ergeben sich aus dem Prozessablauf. Auf diese Parameter hat das Anwendungsprogramm nur lesenden Zugriff. Zu ihnen gehören:
- APGest
- Dieser binäre Parameter gibt an, ob ein Aktivierungsplan bereits gestartet wurde. Der Start kann durch ein externes Ereignis (Signalflanke an asynchronem Meldungseingang) oder zeitgesteuert initiiert werden. Bei der letzten Prozessaktivierung eines Aktivierungsplans wird dieser Parameter zurück in den Zustand 'nicht gestartet' versetzt. (APGest = {gestartet|nicht gestartet}).
- ZZustand
- Dieser Parameter speichert den aktuellen Zustand eines Prozesses. Es sind die vier Zustände 'bekannt', 'bereit/laufend', 'suspendiert' und 'unterdrückt' möglich. (ZZustand = {bekannt|bereit/laufend|suspendiert|unterdrückt})
- TAktZeit
- Dieser Parameter speichert den absoluten Zeitwert der letzten Prozessaktivierung. Er dient unter anderem zur Berechnung des geforderten Fertigstellungstermins.
- ZNächstAbs
- Dieser Parameter wird durch eine Dualzahl repräsentiert. Er dient zur Speicherung des Identifikators des als nächster auszuführenden Prozessabschnitts. Sein Wert wird auf 0001|hex gesetzt, sobald ein Prozess aktiviert wird. Hierdurch wird gewährleistet, dass die Bearbeitung eines Prozesses stets mit dem durch 0001|hex identifizierten Prozessabschnitt beginnt.
- tRestZeit
- Mit diesem Parameter wird die zur periodischen Prozessaktivierung verbleibende Zeitspanne gespeichert. Beim Start eines Aktivierungsplans wird dem Parameter der Wert tAktDauer zugewiesen. Fortan wird mit jeder Prozessaktivierung der Wert tAktFreq abgezogen. Dabei kann ein Prozess nur aktiviert werden, solange tRestZeit > 0 gilt.
- TNächstAkt
- Dieser Parameter speichert den absoluten Zeitwert der nächsten Prozessaktivierung. Beim Start eines Aktivierungsplans wird diesem Parameter der Wert T + APVerzög zugewiesen, wobei T den Startzeitpunkt kennzeichnet. Fortan wird bei jeder Prozessaktivierung der Wert tAktFreq addiert, bis der Aktivierungsplan abgelaufen ist.
- Die kombinatorische Logikschaltung (L): Wie in Abschnitt 1.3 beschrieben, wird im Rahmen der SPA ein Drei-Phasen-Vorgang für jeden Prozess durchgeführt. Dabei führt die Logikschaltung L innerhalb der zweiten Phase sämtliche, auf einen einzelnen Prozess bezogenen Prozessverwaltungsfunktionen aus. Neben dem Parametersatz eines Prozesses verwendet die Logikschaltung L hierbei den Identifikator des aktuell behandelten Prozesses P-IDaktuell, den aktuellen Zeitwert Taktuell, den vom ESW ausgegebenen Zeitwert ZW, die vom SSW ausgegebenen Suspendierungsinformationen SI, sowie die vom PAHSW bereitgestellten Identifikatoren bzw. Fertigstellungstermine P-IDIII, P-IDIV, A-IDIII, A-IDIV, FTIII und FTIV. Mit diesen Werten ermittelt die Logikschaltung einen aktualisierten Parametersatz, sowie die neuen Identifikatoren bzw. Fertigstellungstermine P-IDI, P-IDII, A-IDI, A-IDII, FTI und FTII. Die Logikschaltung L beinhaltet keine Speicherelemente; sie arbeitet rein kombinatorisch. Dabei ist zu beachten, dass der vom Steuerwerk bereitgestellte Zeitwert Taktuell innerhalb eines Verarbeitungsintervalls stets konstant ist. Sein Wert entspricht dem UTC-Zeitwert zu Beginn des jeweiligen Verarbeitungsintervalls.
- Nachfolgend wird die Schaltfunktion anhand von 17 Fällen beschrieben, die sich gegenseitig ausschließen und direkt in eine digitale Logikschaltung umgesetzt werden können. Bei den dabei aufgeführten Gleichungen ist zu beachten, dass Zeitwerte stets positiv sind; das Ergebnis einer Subtraktion von Zeitwerten kann also minimal Null sein – nicht negativ. Wird die Beziehung 'kleiner als' (<) in Verbindung mit absoluten Zeitwerten verwendet, so bedeutet A < B, dass der Zeitpunkt A vor dem Zeitpunkt B liegt (A < B). Darüber hinaus wird der Term 'Bereit zur Aktivierung' mehrfach zur formalen Beschreibung verwendet. Dieser Term repräsentiert die Bedingung
- Die Bedingung 'Bereit zur Aktivierung' ist also erfüllt, wenn
- • sich der aktuell behandelte Prozess im Zustand 'bekannt' befindet,
- • die Ausführung des aktuell behandelten Prozesses im letzten Verarbeitungsintervall abgeschlossen wurde und die Zeitspanne tUntZeit,Ein (soeben) verstrichen ist, oder
- • sich der aktuell behandelte Prozess im Zustand 'unterdrückt' befindet und die Zeitspanne tUntZeit,Ein (soeben) verstrichen ist.
- Ist diese Bedingung erfüllt, so ist eine Aktivierung des Prozesses im aktuellen Intervall zulässig. Die Tabellen 1 bis 4 zeigen die Bedingungen und Wertzuweisungen der nachfolgend beschriebenen 17 Fälle auf, welche die Funktionen zur Bestimmung des aktualisierten Parametersatzes vollständig beschreiben. In der Spalte 'Wertzuweisungen' sind jeweils nur die entscheidenden Parameteränderungen aufgeführt, alle nicht explizit genannten Prozessparameter bleiben im jeweiligen Fall unverändert, d. h. APVorh,Aus := APVorh,Ein, APEntf,Aus := APEntf,Ein, etc.
- 1. Fall Die diesem Fall zugeordnete Bedingung beschreibt die folgende Situation: Ein Aktivierungsplan ist vorhanden; dieser Aktivierungsplan kann gestartet werden, da er sich noch nicht im Zustand 'gestartet,' befindet; der Prozess kann im aktuellen Intervall aktiviert werden; der Aktivierungsplan kann nur zeitgesteuert gestartet werden, da der Parameter APStSig,Ein den maximal darstellbaren Wert besitzt; im Rahmen des Aktivierungsplans wird der Prozess mehr als einmal aktiviert, da die Zeitspanne für Prozessaktivierungen tAktDauer,Ein mindestens die Dauer einer Aktivierungsperiode tAktFreq,Ein besitzt; der Aktivierungsplan soll nicht gleich beim Einschalten des Echtzeitsystems gestartet werden, sondern zu einem explizit festgelegten Zeitpunkt. Die diesem Fall zugeordneten Wertzuweisungen besitzen die folgende Bedeutung: Der Aktivierungsplan wird gestartet; der Prozess wird aktiviert, wobei gleichzeitig der Identifikator des als nächster auszuführenden Prozessabschnittes festgelegt wird; als Aktivierungszeitpunkt wird der Startzeitpunkt APStZeit,Ein des Aktivierungsplans gespeichert; die verbleibende Zeitspanne für weitere Prozessaktivierungen und der Zeitpunkt der nächsten Prozessaktivierung werden neu zugewiesen.
- 2. Fall Die diesem Fall zugeordnete Bedingung unterscheidet sich von der des 1. Falls lediglich dadurch, dass der Aktivierungsplan gleich beim Einschalten des Echtzeitsystems gestartet werden soll. Hierauf weist der Parameter APStZeit,Ein hin, wenn ihm der maximal darstellbare Wert zugeordnet ist. Im Unterschied zum 1. Fall wird in diesem Fall als Aktivierungszeitpunkt der aktuelle Zeitwert Taktuell verwendet. Tabelle 1: Fälle 1 bis 4
- 3. Fall Die diesem Fall zugeordnete Bedingung unterscheidet sich von der des 1. Falls lediglich dadurch, dass der Prozess im Rahmen des Aktivierungsplans nur einmal aktiviert wird, da die Zeitspanne für Prozessaktivierungen tAktDauer,Ein kleiner als die Aktivierungsperiode tAktFreq,Ein ist. Im Unterschied zum 1. Fall wird in diesem Fall der Aktivierungsplan in den Zustand 'nicht gestartet' überführt, da die aktuelle Prozessaktivierung zugleich die letzte Aktivierung des Aktivierungsplans ist. Darüber hinaus wird der Aktivierungsplan in jedem Fall, d. h. unabhängig vom Wert des Prozessparameters APEntf,Ein, gelöscht, da eine mehrfache Ausführung eines zeitgesteuert gestarteten Aktivierungsplans nicht sinnvoll ist. Hierzu wird dem Parameter APVorh,Aus der Wert 'nicht vorhanden' zugewiesen. Eine verbleibende Zeitspanne für weitere Prozessaktivierungen und der Zeitpunkt der nächsten Prozessaktivierung werden nicht neu zugewiesen, da der Aktivierungsplan nur Prozessaktivierung umfasst.
- 4. Fall Die diesem Fall zugeordnete Bedingung unterscheidet sich von der des 3. Falls lediglich dadurch, dass der Aktivierungsplan gleich beim Einschalten des Echtzeitsystems gestartet werden soll. Dementsprechend unterscheiden sich die Wertzuweisungen dieses Falls dadurch, dass in diesem Fall als Aktivierungszeitpunkt der aktuelle Zeitwert Taktuell verwendet wird.
- 5. Fall Die diesem Fall zugeordnete Bedingung beschreibt die folgende Situation: Ein Aktivierungsplan ist vorhanden; dieser Aktivierungsplan kann gestartet werden, da er sich noch nicht im Zustand 'gestartet' befindet; der Prozess kann im aktuellen Intervall aktiviert werden; der Ak- Tabelle 2: Fälle 5 bis 8 tivierungsplan kann nur durch ein Impulssignal am Meldungseingang APStSig,Ein gestartet werden; im letzten Verarbeitungsintervall trat ein Signalimpuls am Meldungseingang APStSig,Ein auf, worauf der vom ESW ausgegebene Zeitwert ZW hinweist; die erste Prozessaktivierung soll um APVerzög,Ein verzögert stattfinden. Die in diesem Fall durchgeführten Wertzuweisungen besitzen folgende Bedeutung: Der Aktivierungsplan wird gestartet; der Prozess wird noch nicht aktiviert; als verbleibende Zeitspanne für weitere Prozessaktivierungen wird tAktDauer,Ein zugewiesen; die erste Prozessaktivierung wird zum Zeitpunkt (ZW + APVerzög,Ein) eingeplant.
- 6. Fall Die diesem Fall zugeordnete Bedingung unterscheidet sich von der des 5. Falls dadurch, dass die erste Prozessaktivierung nicht verzögert werden soll. Zudem verlangt die Bedingung, dass der Prozess im Rahmen des Aktivierungsplans mehr als einmal aktiviert wird. Im Unterschied zum 5. Fall wird in diesem Fall der Prozess aktiviert und der Identifikator des als nächster auszuführenden Prozessabschnittes wird festgelegt. Zudem wird der Zeitpunkt ZW als Aktivierungszeitpunkt verwendet und die verbleibende Zeitspanne für weitere Prozessaktivierungen sowie der Zeitpunkt der nächsten Prozessaktivierung werden neu zugewiesen.
- 7. Fall Die diesem Fall zugeordnete Bedingung unterscheidet sich von der des 6. Falls lediglich da Tabelle 3: Fälle 9 bis 12 durch, dass der Prozess im Rahmen des Aktivierungsplans nur einmal aktiviert wird. Zudem besagt die Bedingung, dass der Aktivierungsplan nach seiner Ausführung nicht gelöscht werden soll. Im Unterschied zum 6. Fall wird in diesem Fall der Aktivierungsplan in den Zustand 'nicht gestartet' überführt, da es sich bei der aktuellen Prozessaktivierung zugleich um die letzte Aktivierung des Aktivierungsplans handelt. Eine verbleibende Zeitspanne für weitere Prozessaktivierungen und der Zeitpunkt der nächsten Prozessaktivierung werden nicht neu zugewiesen, da der Aktivierungsplan nur eine Prozessaktivierung umfasst.
- 8. Fall Die diesem Fall zugeordnete Bedingung unterscheidet sich von der des 7. Falls lediglich dadurch, dass der Aktivierungsplan nach seiner Ausführung gelöscht werden soll. Im Unterschied zum 6. Fall wird dem Parameter APVorh,Aus in diesem Fall daher der Wert 'nicht vorhanden' zugewiesen, womit der Aktivierungsplan gelöscht wird.
- 9. Fall Die diesem Fall zugeordnete Bedingung beschreibt die folgende Situation: Ein Aktivierungsplan ist bereits gestartet; der Prozess kann im aktuellen Intervall aktiviert werden, d. h. alle bisherigen Prozessaktivierungen des Aktivierungsplans wurden bereits vollständig bearbeitet; der Zeitpunkt der nächsten Prozessaktivierung des Aktivierungsplan ist bereits erreicht; der Aktivierungsplan ist von begrenzter Dauer, da der Parameter tAktDauer,Ein nicht den maximal darstellbaren Wert besitzt; innerhalb der verbleibenden Zeitspanne für Prozessaktivierungen wird der Prozess wenigstens noch zweimal aktiviert, da tRestZeit,Ein mindestens noch eine Aktivierungsperiode tAktFreq,Ein vollständig einschließt. Die diesem Fall zugeordneten Wertzuweisungen besitzen die folgende Bedeutung: Der Prozess wird aktiviert, wobei gleichzeitig der Identifikator des als nächster auszuführenden Prozessabschnittes festgelegt wird; als Aktivierungszeitpunkt wird TNächstAkt,Ein gespeichert; die verbleibende Zeitspanne für weitere Prozessaktivierungen und der Zeitpunkt der nächsten Prozessaktivierung werden neu zugewiesen.
- 10. Fall Die diesem Fall zugeordnete Bedingung unterscheidet sich von der des 9. Falls lediglich dadurch, dass der Prozess im weiteren Ablauf des Aktivierungsplans nur noch einmal aktiviert wird. Zudem besagt die Bedingung, dass der Aktivierungsplan nach seiner Ausführung nicht gelöscht werden soll. Im Unterschied zum 9. Fall wird in diesem Fall der Aktivierungsplan in den Zustand 'nicht gestartet' überführt, da es sich bei der aktuellen Prozessaktivierung zugleich um die letzte Aktivierung des Aktivierungsplans handelt. Darüber hinaus werden die verbleibende Zeitspanne für weitere Prozessaktivierungen tRestZeit,Ein und der Zeitpunkt der nächsten Prozessaktivierung TNächstAkt,Ein nicht neu zugewiesen, da der Aktivierungsplan keine weitere Prozessaktivierung umfasst.
- 11. Fall Die diesem Fall zugeordnete Bedingung unterscheidet sich von der des 10. Falls lediglich dadurch, dass der Aktivierungsplan nach seiner Ausführung gelöscht werden soll. Darauf wird entweder durch den Parameter APEntf,Ein direkt hingewiesen, oder durch Parameter APStSiy,Ein indirekt. Wenn APStSig,Ein den maximal darstellbaren Wert besitzt, handelt es sich um einen zeitgesteuert gestarteten Aktivierungsplan. Zeitgesteuert gestartete Aktivierungspläne müssen nach ihrer Ausführung gelöscht werden. Im Unterschied zum 10. Fall wird dem Parameter APVorh,Aus in diesem Fall daher der Wert nicht vorhandenzugewiesen, womit der Aktivierungsplan gelöscht wird.
- 12. Fall Die diesem Fall zugeordnete Bedingung unterscheidet sich von der des 9. Falls dadurch, dass die Zeitspanne für Prozessaktivierungen unbegrenzt ist, d. h. der Aktivierungsplan bleibt bis zum Ausschalten des Systems in Kraft. Im Unterschied zum 9. Fall braucht in diesem Fall die verbleibende Zeitspanne für weitere Prozessaktivierungen tRestZeit,Ein nicht neu bestimmt zu werden.
- 13. Fall Die diesem Fall zugeordnete Bedingung beschreibt die folgende Situation: Bei dem momentan verwalteten Prozess handelt es sich um den Prozess, der im letzten Verarbeitungsintervall ausgeführt wurde; die Bearbeitung des Prozesses wurde dabei allerdings nicht abgeschlossen; es trat kein Befehl zur Suspendierung des Prozesses auf. In diesem Fall wird dem Parameter ZNächstAbs,Aus, welcher auf den als nächster auszuführenden Prozessabschnitt zeigt, der im letzten Verarbeitungsintervall vom AP zurückgegebene Abschnittsidentifikator zugewiesen.
- 14. Fall Die diesem Fall zugeordnete Bedingung unterscheidet sich von der des 13. Falls dadurch, dass im letzten Verarbeitungsintervall ein Befehl zur Suspendierung des Prozesses auftrat. Daher wird in diesem Fall der Prozess in den Zustand 'suspendiert' überführt. Darüber hinaus wird – wie im 13. Fall – dem Parameter ZNächstAbs,Aus der im letzten Verarbeitungsintervall vom AP zurückgegebene Abschnittsidentifikator zugewiesen.
- 15. Fall Die diesem Fall zugeordnete Bedingung beschreibt die Situation, dass sich der momentan verwaltete Prozess im Zustand 'suspendiert' befindet und dass im letzten Verarbeitungsintervall Tabelle 4: Fälle 13 bis 17 ein Befehl zur Fortführung des Prozesses auftrat. In diesem Fall wird daher der Prozess in den Zustand 'bereit/laufend' überführt.
- 16. Fall Die diesem Fall zugeordnete Bedingung beschreibt die folgende Situation: Bei dem momentan verwalteten Prozess handelt es sich um den Prozess, der im letzten Verarbeitungsintervall ausgeführt wurde; die Bearbeitung des Prozesses wurde dabei abgeschlossen; allerdings ist die Zeitspanne tUntZeit,Ein, innerhalb derer nach einer Prozessaktivierung keine erneute Prozessaktivierung zulässig ist, noch nicht verstrichen. In diesem Fall wird der Prozess in den Zustand 'unterdrückt' überführt.
- 17. Fall Die diesem Fall zugeordnete Bedingung beschreibt die folgende Situation: Obwohl der Parameter den Wert 'nicht gestartet' besitzt, befindet sich der momentan verwaltete Prozess in einem der Zustände 'bereit/laufend', 'suspendiert' oder 'unterdrückt' (Diese Situation kann nur nach der letzten Prozessaktivierung eines Aktivierungsplans eintreten!); der momentan verwaltete Prozess befindet sich im Zustand 'unterdrückt' und die Zeitspanne tUntZeit,Ein ist (soeben) verstrichen, oder die Bearbeitung des momentan verwalteten Prozesses wurde im letzten Verarbeitungsintervall abgeschlossen und die Zeitspanne tUntZeit,Ein ist (soeben) verstrichen; die zum Start eines Aktivierungsplans durch ein Impulssignal notwendigen Bedingungen sind nicht erfüllt. In diesem Fall wird der Prozess in den Zustand 'bekannt' überführt.
- Die neu zugewiesenen Parameterwerte werden von der Logikschaltung L bereits zur Bestimmung der Identifikatoren bzw. Fertigstellungstermine P-IDI, P-IDII, A-IDI, A-IDII, FTI und FTII verwendet. Tabelle 5 zeigt die entsprechenden Wertzuweisungen. Dabei werden drei Fälle unterschieden: Im ersten Fall ist der momentan verwaltete Prozess im Zustand 'bereit/laufend' und sein geforderter Fertigstellungstermin ist früher als FTIII; im zweiten Fall ist der momentan verwaltete Prozess im Zustand 'bereit/laufend' und sein geforderter Fertigstellungstermin ist später als FTIII aber früher als FTIV; der dritte Fall tritt ein, wenn sich der Prozess nicht im Zustand 'bereit/laufend' befindet oder sein Fertigstellungstermin später als FTIV ist.
- Ein Impuls des vom Steuerwerk ausgegebenen Signals Zwischenspeichern veranlasst das Ausgangsregister der PZS dazu, den aktualisierten Parametersatz zu übernehmen. Gleichzeitig werden die neuen Werte von P-IDI, P-IDII, A-IDI, A-IDII, FTI und FTII in den Registern RHRA und RHRB des PAHSW abgelegt und stehen somit zur Durchführung des Drei-Phasen-Vorganges für den nächsten Prozess wieder zur Verfügung. Gegen Ende eines Verarbeitungsintervalls bestimmt das BSIAP-Schaltwerk des PAHSW den Identifikator des im nächsten Verarbeitungsintervall auszuführenden Prozessabschnittes. Sobald ein Intervallbeginnimpuls erscheint, wird dieser Identifikator in einem Register des BSIAP-Schaltwerks gespeichert und an dessen Ausgang P&A-ID*ausgegeben.
Claims (5)
- Schaltungstechnisch realisierte Einheit zur Verwaltung von Echtzeitrechenprozessen (PVE) ohne asynchrone Unterbrechungen, – welche die in diskreten Verarbeitungsintervallen vollzogene Ausführung aus Rechenprozessen bestehender Echtzeitanwendungen steuert und hierzu mit einer Prozessausführungseinheit (PAE) kooperiert, – bei der innerhalb eines jeden Verarbeitungsintervalls alle Prozesse während eines mit sequenzielle Prozessadministration (SPA) bezeichneten Vorgangs nacheinander abgearbeitet werden, indem der Parametersatz eines jeden Prozesses zunächst einer parallel arbeitenden Prozesszustandssteuerung (PZS) vollständig zugeführt und nach einem anschließend durchgeführten Arbeitsschritt ein aktualisierter Parametersatz entnommen wird, – bei der die Parametersätze aller Prozesse zu Verarbeitungszwecken derart in Datenworte – nachfolgend mit Prozessparameterdatenworte (PP-Datenworte) bezeichnet – der Wortbreite nSP eingeteilt sind, dass ein einzelner Prozessparameter sowohl ein Teil eines PP-Datenwortes sein als sich auch aus mehreren PP-Datenworten zusammensetzen kann, – und die zur Speicherung der Parameter aller Prozesse einen speziellen, nachfolgend mit Prozessparameterverwaltung (PPV) bezeichneten Schaltungsteil besitzt, dadurch gekennzeichnet, dass a) zur Speicherung der die Aktivierungsbedingungen, Ausführungseigenschaften und Zustandsinformationen umfassenden Parametersätze aller Prozesse zwei gleich große Speicherblöcke SA und SB dienen, die jeweils über zwei voneinander unabhängige Zugriffsschnittstellen verfügen und die Datenwortbreite nSp besitzen, b) über die erste der beiden Zugriffsschnittstellen der Speicherblöcke SA und SB – nachfolgend mit Schnittstelle A bezeichnet – abwechselnd komplementär lesend und schreibend zugegriffen wird, und zwar derart, dass über diese Schnittstelle innerhalb eines Verarbeitungsintervalls auf den einen Block nur lesend und auf den anderen nur schreibend zugegriffen wird, wobei die Zugriffsart zu Beginn eines jeden Verarbeitungsintervalls wechselt und der lesbare Block – nachfolgend mit aktueller Lesespeicherblock der PPV bezeichnet – stets die im aktuellen Verarbeitungsintervall gültigen Prozessparameterwerte bereitstellt, während in den anderen Block – nachfolgend mit aktueller Schreibspeicherblock der PPV bezeichnet – die im aktuellen Intervall neu berechneten Prozessparameterwerte, welche erst im nächsten Verarbeitungsintervall gültig sind, abgelegt werden, c) die zweite der beiden Zugriffsschnittstellen der Speicherblöcke – nachfolgend mit Schnittstelle B bezeichnet – ausschließlich dem lesenden Zugriff der PAE dient, d) die Adresse, unter der ein PP-Datenwort des Parametersatzes eines Prozesses in den Speicherblöcken SA und SB abgelegt wird, aus den beiden aneinander gefügten Bestandteilen ProzessIdentifikator und ParameterIdentifikator besteht, wobei der ProzessIdentifikator der dual codierten Nummer des Prozesses entspricht, welcher das PP-Datenwort zugeordnet ist, und der ebenfalls dual codierte ParameterIdentifikator, welcher nPI Binärstellen besitzt, auf die Prozessparameter oder Teile davon hinweist, denen die einzelnen Datenbits des PP-Datenwortes angehören, e) die PZS nicht nur über einen Eingangsregistersatz RER, welcher ein Register für jedes Datenbit des Parametersatzes eines Prozesses umfasst, verfügt, sondern auch über einen Ausgangsregistersatz RAR, der ebenfalls zur Speicherung sämtlicher Datenbits des Parametersatzes eines Prozesses ausgelegt ist, f) auf den Eingangsregistersatz RER und den Ausgangsregistersatz RAR über zwei Datenbusse BA und BB, deren Datenwortbreite mit der PP-Datenwortbreite nSP der Speicherblöcke SA und SB übereinstimmt und deren Adressteil genau nPI Binärstellen besitzt, unabhängig voneinander zugegriffen werden kann, wobei der Inhalt von RER über BA beschreibbar und der Inhalt von RAR über BB lesbar ist, g) jedem einzelnen binären Register des Eingangsregistersatzes RER eine der nSP Datenleitungen des Datenbusses BA und jeweils einer Gruppe von nSP dieser binären Register eine gemeinsame Adresse zugeordnet ist, und zwar derart, dass der gesamte Parametersatz eines Prozesses wortweise über den Datenbus BA in den Eingangsregistersatz geschrieben werden kann, indem der ParameterIdentifikator der Adresse, die zum lesenden Zugriff über Schnittstelle A des aktuellen Lesespeicherblocks der PPV dient, direkt als Adressteil von BA zur Adressierung der Register des Eingangsregistersatzes verwendet und über die Datenleitungen von BA direkt das aus dem aktuellen Lesespeicherblock der PPV ausgelesene PP-Datenwort übertragen wird, h) jedem einzelnen binären Register des Ausgangsregistersatzes RAR eine der nSP Datenleitungen des Datenbusses BB und jeweils einer Gruppe von nSP dieser binären Register eine gemeinsame Adresse zugeordnet ist, und zwar derart, dass der neu berechnete Parametersatz eines Prozesses wortweise über den Datenbus BB vom Ausgangsregistersatz RAR zum aktuellen Schreibspeicherblock der PPV übertragen werden kann, indem der ParameterIdentifikator der Adresse, die zum speichernden Zugriff über Schnittstelle A des aktuellen Schreibspeicherblocks der PPV dient, direkt als Adressteil von BB zum Auslesen der Register des Ausgangsregistersatzes verwendet und über die Datenleitungen von BB direkt das aus RAR ausgelesene PP-Datenwort übertragen wird, i) jeweils die Schnittstelle A der Speicherblöcke SA und SB, die dem komplementären lesenden und schreibenden Zugriff dient, getrennte Datenein- und ausgänge besitzt und der komplementäre Zugriff mit Hilfe von drei mehrkanaligen 2-auf-1-Multiplexern (M1, M2 und M3) realisiert ist, und zwar derart, dass Multiplexer M1 die Adresse des lesenden oder schreibenden Zugriffs an den Adresseingang der Schnittstelle A von SA weiterleitet, Multiplexer M2 komplementär zu M1 die Adresse des schreibenden oder lesenden Zugriffs an den Adresseingang der Schnittstelle A von SB weiterleitet und Multiplexer M3 das über Schnittstelle A des aktuellen Lesespeicherblocks der PPV ausgelesene PP-Datenwort weiterleitet, j) jeweils an den Adresseingang der Schnittstelle B der Speicherblöcke SA und SB der Adressbus der PAE-Schnittstelle angeschlossen ist und jeweils der Datenausgang der Schnittstelle B der Speicherblöcke an die beiden Eingänge eines mehrkanaligen 2-auf-1-Multiplexers M4 angeschlossen sind, der so angesteuert wird, dass das vom aktuellen Lesespeicherblock der PPV ausgegebene PP-Datenwort an die PAE-Schnittstelle weitergeleitet wird.
- Schaltungstechnische Realisierung einer PVE gemäß dem Patentanspruch 1, die zur Konfigurierung der Aktivierungsbedingungen und Ausführungseigenschaften der Rechenprozesse ein spezi elles, nachfolgend mit Konfigurierungsschaltwerk (KSW) bezeichnetes, Schaltwerk besitzt, dadurch gekennzeichnet, dass a) das KSW zwei identisch aufgebaute Registersätze RA und RB besitzt, die jeweils zur temporären Speicherung der neu zu konfigurierenden Aktivierungsbedingungen und Ausführungseigenschaften eines einzelnen Prozesses dienen, b) innerhalb der Registersätze RA und RB die neu zu konfigurierenden Prozessparameter in Datenwortregistern (DW) gespeichert werden, die jeweils zur Aufnahme eines bestimmten PP-Datenwortes dienen, und jedem dieser Datenwortregister ein binäres Statusregister (ST) zugeordnet ist, dessen binärer Wert anzeigt, ob in dem zugehörigen Datenwortregister ein neu zu konfigurierendes PP-Datenwort gespeichert ist, c) die Registersätze RA und RB des KSW neben den neu zu konfigurierenden PP-Datenwörtern, die lediglich den Aktivierungsbedingungen und Ausführungseigenschaften eines einzelnen Prozesses angehören können, auch die mit ProzessIdentifikator bezeichnete, dual codierte Nummer des zugehörigen Task speichern, d) die beiden Registersätze RA und RB abwechselnd – in komplementärer Art und Weise – schreibend und lesend genutzt werden, und zwar derart, dass • innerhalb eines Verarbeitungsintervalls in den einen Registersatz – nachfolgend mit aktueller Schreibregistersatz des KSW bezeichnet – ausschließlich die aktuell von der PAE übergebenen neu zu konfigurierenden PP-Datenworte geschrieben werden, während aus dem anderen Registersatz – nachfolgend mit aktueller Leseregistersatz des KSW bezeichnet – die von der PAE im letzten Verarbeitungsintervall übergebenen PP-Datenworte ausgelesen werden, • und sich die beiden Registersätze zu Beginn eines jeden Verarbeitungsintervalls in ihrer Funktion abwechseln, e) die PAE, um dem KSW neu zu konfigurierende PP-Datenwörter oder den ProzessIdentifikator zu übergeben, schreibend auf das KSW zugreift, wobei jedes der Datenwortregister sowie das Register zur Speicherung des ProzessIdentifikators durch eine eigene Adresse angesprochen wird, f) zu Beginn eines jeden Verarbeitungsintervalls alle Statusregister des aktuellen Schreibregistersatzes der KSW auf einen Wert zurückgesetzt werden, der anzeigt, dass in dem jeweils zugehörigen Datenwortregister kein neu zu konfigurierendes PP-Datenwort gespeichert ist, g) jedesmal, wenn die PAE ein neu zu konfigurierendes PP-Datenwort in das KSW schreibt, nicht nur der neue Wert des zu konfigurierenden PP-Datenwortes in das entsprechende Datenwortregister des aktuellen Schreibregistersatzes der KSW abgelegt wird, sondern in diesem Registersatz auch das dem Datenwortregister zugeordnete binäre Statusregister (SB) gesetzt wird, wodurch das Vorhandensein eines neu zu konfigurierenden PP-Datenwortes angezeigt wird, h) die Adresse, die bereits zum lesenden Zugriff über Schnittstelle A des aktuellen Lesespeicherblocks der PPV dient, direkt zum Auslesen der in den Registern RA und RB gespeicherten, neu zu konfigurierenden PP-Datenworte dient, indem mit dem Adressteil ParameterIdentifikator das auszulesende Datenwortregister sowie das zugehörige Statusregister adressiert werden, deren gespeicherte PP-Datenwort und Statusinformation jedoch nur dann ausgegeben werden, wenn der Adressteil ProzessIdentifikator mit dem im Registersatz gespeicherten ProzessIdentifikator übereinstimmt, i) ein mehrkanaliger 2-auf-1-Multiplexer M7 und ein einkanaliger Multiplexer M8 verwendet werden, um die ausgegebenen Werte des im aktuellen Verarbeitungsintervall lesbaren Registersatzes des KSW, bestehend aus einem PP-Datenwort und der zugehörigen Statusinformation, an die entsprechenden Ausgänge – bezeichnet mit Datenausgang und Statusbit – des KSW weiterzuleiten, j) das mit Statusbit bezeichnete binäre Ausgangssignal des KSW an den Steuereingang eines mehrkanaligen 2-auf-1-Multiplexers M11 angeschlossen ist, welcher in Abhängigkeit dieses Steuersignals entweder das an den Datenleitungen des Datenbusses BB anliegende oder das vom Datenausgang des KSW ausgegebene PP-Datenwort an das Eingangsregister RER weiterleitet, wodurch entweder die neu zu konfigurierenden PP-Datenworte oder die in dem aktuellen Lesespeicherblock der PPV gespeicherten PP-Datenworte der Logikschaltung L zugeführt werden.
- Schaltungstechnische Realisierung einer PVE gemäß den Patentansprüchen 1 und 2, die zur Unterstützung der programmgesteuerten Suspendierung und Fortführung von Rechenprozessen ein spezielles, nachfolgend mit Suspendierungsschaltwerk (SSW) bezeichnetes, Schaltwerk besitzt, dadurch gekennzeichnet, dass a) das SSW zwei identisch aufgebaute Registersätze RSA und RSB besitzt, die zur temporären Speicherung der von der PAE ausgegebenen Suspendierungs- und Fortführungsbefehle dienen und hierzu jeweils für jeden der von der PVE verwalteten Prozesse ein Befehlsbit (BB), welches die Art des Befehls (Suspendierung oder Fortführung) kennzeichnet, und ein Ausführungsbit (AB), welches anzeigt, ob ein Suspendierungs- oder ein Ausführungsbefehl von der PAE an das SSW übergeben wurde, in entsprechenden Registern – nachfolgend mit Befehlsbit- und Ausführungsbitregister bezeichnet – speichern, b) die beiden Registersätze RSA und RSB abwechselnd – in komplementärer Art und Weise – schreibend und lesend genutzt werden, und zwar derart, dass • innerhalb eines Verarbeitungsintervalls in den einen Registersatz – nachfolgend mit aktueller Schreibregistersatz des SSW bezeichnet – ausschließlich die von der PAE aktuell ausgegebenen Suspendierungs- bzw. Fortführungsbefehle abgelegt werden, während aus dem anderen Registersatz – nachfolgend mit aktueller Leseregistersatz des SSW bezeichnet – ausschließlich die im vorigen Verarbeitungsintervall von der PAE ausgegebenen Suspendierungs- bzw. Fortführungsbefehle ausgelesen werden • und sich die beiden Registersätze zu Beginn eines jeden Verarbeitungsintervalls in ihrer Funktion abwechseln, c) die PAE, um Suspendierungs- oder Fortführungsbefehle an das SSW zu übergeben, nur über eine einzige Adresse schreibend auf das SSW zugreift und die Befehlsart, bei der es sich um Suspendierung oder Fortführung eines Prozesses handeln kann, sowie die Nummer des zu suspendierenden oder fortzuführenden Prozesses durch das geschriebene Datenwort mitgeteilt wird, d) jedesmal, wenn die PAE dem SSW einen Suspendierungs- oder Fortführungsbefehl übergibt, nicht nur die Befehlsart in dem dem zu suspendierenden oder fortzuführenden Prozess zugeordneten Befehlsbitregister des aktuellen Schreibregistersatzes des SSW abgelegt wird, sondern in diesem Registersatz auch das dem Befehlsbit zugeordnete Ausführungs bit gesetzt wird, wodurch das Vorhandensein eines im folgenden Intervall auszuführenden Suspendierungs- oder Fortführungsbefehls angezeigt wird, e) zu Beginn eines jeden Verarbeitungsintervalls alle Ausführungsbitregister des aktuellen Schreibregistersatzes der SSW auf einen logischen Wert gesetzt werden, der anzeigt, dass kein Suspendierungs- oder Ausführungsbefehl in dem jeweils zugehörigen Befehlsbitregister gespeichert ist, f) der ProzessIdentifikator der Adresse, die bereits zum lesenden Zugriff über Schnittstelle A des aktuellen Lesespeicherblocks der PPV dient, direkt zum Auslesen der in den Registern RSA und RSB gespeicherten Suspendierungs- und Fortführungsbefehle verwendet wird, indem durch ihn das Befehlsbit- und das Ausführungsbitregister ausgewählt werden, deren gespeicherte Suspendierungsinformation, bestehend aus einem Befehls- und einem Ausführungsbit, an einem dafür vorgesehenen Ausgang ausgegeben werden, g) ein mehrkanaliger 2-auf-1-Multiplexer M9 verwendet wird, um die von dem aktuellen Leseregistersatzes des SSW ausgegebenen Suspendierungsinformation an den entsprechenden Ausgang – ebenfalls mit Suspendierungsinformation bezeichnet – des SSW weiterzuleiten.
- Schaltungstechnische Realisierung einer PVE gemäß den Patentansprüchen 1 bis 3, die zur Unterstützung einer durch externe Ereignisse – welche asynchron zu den Verarbeitungsintervallen auftreten können – steuerbaren Programmausführung ein spezielles, nachfolgend mit Ereignisschaltwerk (ESW) bezeichnetes, Schaltwerk besitzt, dadurch gekennzeichnet, dass a) das ESW zwei identisch aufgebaute Registersätze REA und REB besitzt, die zur temporären Speicherung der innerhalb eines Verarbeitungsintervalls auftretenden externen Ereignisse dienen und hierzu jeweils für jeden der Meldungseingänge für asynchrone Ereignisse (MAE) des ESW ein Zeitpunktregister besitzen, in dem der Zeitpunkt (ZP) des Auftretens eines über den zugehörigen MAE mitgeteilten externen Ereignisses gespeichert wird, b) die beiden Registersätze REA und REB des ESW abwechselnd – in komplementärer Art und Weise – zum Zwischenspeichern und Auslesen genutzt werden, und zwar derart, • dass innerhalb eines Verarbeitungsintervalls einer der beiden Registersätze – welcher nachfolgend mit aktueller Leseregistersatz des ESW bezeichnet wird – ausschließlich ausgelesen wird, während in den anderen Registersatz – nachfolgend mit aktueller Schreibregistersatz des ESW bezeichnet – ausschließlich die ZP des Auftretens der über die MAE registrierten externen Ereignisse gespeichert werden – und sich die Registersätze zu Beginn eines jeden Verarbeitungsintervalls in ihrer Funktion abwechseln, c) jedes der beiden Registersätze REA und REB zum Auslesen der gespeicherten ZP über einen Eingang – nachfolgend mit EreignisIdentifikator bezeichnet – verfügt, an den die Nummer des MAE angelegt wird, dessen zugehöriger ZP ausgelesen werden soll, und einen Ausgang – nachfolgend mit Zeitpunktausgang bezeichnet – besitzt, an dem der gespeicherte ZP des dem ausgewählten MAE zugeordneten Zeitpunktegisters ausgegeben wird, c) die Eintragung des maximal darstellbaren ZP im Zeitpunktregister anzeigt, dass bisher kein externes Ereignis am zugehörigen MAE registriert worden ist, d) zu Beginn eines jeden Verarbeitungsintervalls alle Zeitpunktregister des aktuellen Schreibregistersatzes des ESW auf den maximal darstellbaren ZP gesetzt werden, e) ein mehrkanaliger 2-auf-1-Multiplexer M9 verwendet wird, um den am Zeitpunktausgang des aktuellen Leseregistersatzes des ESW ausgegebenen ZP an den entsprechenden Ausgang des ESW – ebenfalls mit Zeitpunktausgang bezeichnet – weiterzuleiten.
- Schaltungstechnische Realisierung einer Verwaltungseinheit für Rechenprozesse gemäß den Patentansprüchen 1 bis 4, bei der eine Logikschaltung L, • welche während der SPA die neuen, im nächsten Verarbeitungsintervall gültigen Prozessparameter bestimmt • und die – in Kombination mit einem speicherbehafteten Prozessadministrationshilfsschaltwerk (PAHSW) – iterativ die Prozesse mit dem nächsten und dem übernächsten Fertigstellungstermin bestimmt, intern Zeitwerte in dem allgemein üblichen Format (Tag.Monat.Jahr Stunde:Minute:Sekunde Millisekunden Mikrosekunden) verarbeitet, dadurch gekennzeichnet, a) dass die in der Logikschaltung L zur Berechnung von Zeitwerten integrierten Addierwerke so ausgelegt sind, als ob jeder Monat 28 Tage und jede Minute 60 Sekunden besäße, b) und dass die dadurch auftretenden Übertragsrechenfehler von der Logikschaltung L während der SPA korrigiert werden, indem • jeder aus einer solch fehlerbehafteten Addition hervorgegangene absolute Zeitwert im ersten Verarbeitungsintervall nach Auftreten eines Datumswechsel zum 29., 30. oder 31. Tag eines Monats oder nach dem Auftreten einer Schaltsekunde (61. Sekunde) entsprechend dekrementiert wird – im erstgenannten Fall um einen Tag, im zweiten Fall um eine Sekunde – • und in dem Fall, dass das Ergebnis dieser Dekrementierung in der Vergangenheit liegt, dessen Monatstag bzw. Sekundenwert auf den des momentanen Zeitpunktes – bereitgestellt durch eine interne Uhr des PVE – gesetzt wird, bevor der korrigierte absolute Zeitwert zur weiteren Verarbeitung innerhalb der Logikschaltung L herangezogen wird.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE200510039771 DE102005039771B3 (de) | 2005-08-23 | 2005-08-23 | Einheit zur Verwaltung von Echtzeitprozessen ohne asynchrone Unterbrechungen |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE200510039771 DE102005039771B3 (de) | 2005-08-23 | 2005-08-23 | Einheit zur Verwaltung von Echtzeitprozessen ohne asynchrone Unterbrechungen |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| DE102005039771B3 true DE102005039771B3 (de) | 2006-12-28 |
Family
ID=37513805
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE200510039771 Expired - Fee Related DE102005039771B3 (de) | 2005-08-23 | 2005-08-23 | Einheit zur Verwaltung von Echtzeitprozessen ohne asynchrone Unterbrechungen |
Country Status (1)
| Country | Link |
|---|---|
| DE (1) | DE102005039771B3 (de) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP2544389A1 (de) * | 2011-07-08 | 2013-01-09 | Siemens Aktiengesellschaft | Verfahren zur Integration von Systemen mit nur einer Sync-Domain für Uhrzeit- und Taktsynchronisation in eine globale Uhrzeit-Synchronisationsdomain |
| EP2544388A1 (de) * | 2011-07-08 | 2013-01-09 | Siemens Aktiengesellschaft | Verfahren zur Arbeitstakt- und Zeittaktsynchronisation in einem Automatisierungsnetzwerk |
| CN102866682B (zh) * | 2011-07-08 | 2016-11-30 | 西门子公司 | 用一个同步域将系统集成到全球钟面时刻同步域中的方法 |
-
2005
- 2005-08-23 DE DE200510039771 patent/DE102005039771B3/de not_active Expired - Fee Related
Non-Patent Citations (2)
| Title |
|---|
| Skambraks,M. Concepts for Real-Time Execution in Safety-Critical Applications. In: Proceedings of the 16th IFAC World Congress, Prague, CZ, July 4- 8, 2005. <http://www.nt.ntnu.no/users/skoge/prost/ proceedings/ifac2005/Papers/Paper2962.html> |
| Skambraks,M. Concepts for Real-Time Execution in Safety-Critical Applications. In: Proceedings of the 16th IFAC World Congress, Prague, CZ, July 4- 8, 2005. <http://www.nt.ntnu.no/users/skoge/prost/proceedings/ifac2005/Papers/Paper2962.html> * |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP2544389A1 (de) * | 2011-07-08 | 2013-01-09 | Siemens Aktiengesellschaft | Verfahren zur Integration von Systemen mit nur einer Sync-Domain für Uhrzeit- und Taktsynchronisation in eine globale Uhrzeit-Synchronisationsdomain |
| EP2544388A1 (de) * | 2011-07-08 | 2013-01-09 | Siemens Aktiengesellschaft | Verfahren zur Arbeitstakt- und Zeittaktsynchronisation in einem Automatisierungsnetzwerk |
| CN102866682A (zh) * | 2011-07-08 | 2013-01-09 | 西门子公司 | 用一个同步域将系统集成到全球钟面时刻同步域中的方法 |
| US8892934B2 (en) | 2011-07-08 | 2014-11-18 | Siemens Aktiengesellschaft | Method for integration of systems with only one sync domain for time of day and clock pulse synchronization into a global time of day synchronization domain |
| US9081371B2 (en) | 2011-07-08 | 2015-07-14 | Siemens Aktiengesellschaft | Method for synchronizing an operating clock with a time clock of an automation network |
| CN102866682B (zh) * | 2011-07-08 | 2016-11-30 | 西门子公司 | 用一个同步域将系统集成到全球钟面时刻同步域中的方法 |
| EP2544388B1 (de) | 2011-07-08 | 2017-09-27 | Siemens Aktiengesellschaft | Verfahren zur Arbeitstakt- und Zeittaktsynchronisation in einem Automatisierungsnetzwerk |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0762274B1 (de) | Einrichtung und Verfahren zur Echtzeit-Verarbeitung einer Mehrzahl von Tasks | |
| EP2067081B1 (de) | Verfahren zum synchronisieren zweier steuereinrichtungen und redundant aufgebaute automatisierungsvorrichtung | |
| EP1146432A2 (de) | Umkonfigurierungs-Verfahren für programmierbare Bausteine während der Laufzeit | |
| DE2251876A1 (de) | Datenverarbeitungsanlage | |
| EP1238318B1 (de) | Automatisierungsgerät und aufdat-verfahren | |
| WO2011063869A1 (de) | Verfahren zum ermöglichen einer sequentiellen, nicht blockierenden abarbeitung von anweisungen in nebenläufigen tasks in einer steuereinrichtung | |
| EP3176696A1 (de) | Verfahren zur realisierung und zum ausführen einer umfangreichen echtzeitcomputeranwendung | |
| DE102010011652A1 (de) | Applikationsplattform und Verfahren zum Betrieb einer Datenverarbeitungseinrichtung mit einer solchen | |
| DE2412634C3 (de) | Prozessor für eine Kleinstrechenanlage | |
| DE102005039771B3 (de) | Einheit zur Verwaltung von Echtzeitprozessen ohne asynchrone Unterbrechungen | |
| DE102017130552B3 (de) | Verfahren zur Datenverarbeitung und speicherprogrammierbare Steuerung | |
| DE102009001898A1 (de) | Schaltungsanordnungen und Verfahren zur Steuerung eines Datenaustauschs in einer Schaltungsanordnung | |
| DE2245284A1 (de) | Datenverarbeitungsanlage | |
| EP1548603B1 (de) | Verfahren und Vorrichtung zum Steuern eines Speicherzugriffs | |
| EP2090948A1 (de) | Automatisierungssystem und Verfahren zum Betrieb eines solchen Automatisierungssystems | |
| DE2644180C3 (de) | Datenverarbeitungssystem | |
| DE3814622A1 (de) | Ausgangsimpuls-erzeugungsvorrichtung | |
| DE102022109055A1 (de) | Verfahren zur Dokumentation von auf einem Rechnerkern eines Prozessors ausgeführten Rechenschritten eines Echtzeitsystems, Prozessor und Echtzeitsystem | |
| DE60015032T2 (de) | Verteiltes Echtzeit-Betriebssystem | |
| EP1870787B1 (de) | Verfahren zur Überwachung eines zyklischen Steuerungsprogramms | |
| DE102005054081B3 (de) | Schaltungstechnisch realisierte Einheit zur nahezu verzögerungsfreien, nach Altersklassen sortierten Ausgabe zuvor sequenziell zugeführter Datenwortmengen | |
| EP3872582A1 (de) | Redundant ausgelegtes automatisierungssystem | |
| EP2998805A1 (de) | Verfahren und Vorrichtung zur Erzeugung eins Überwachungs-Funktionsbausteins für die Überwachung einer Automatisierungsanordnung | |
| EP0970426B1 (de) | Abhängigkeitssteuerung für überlappende speicherzugriffe | |
| WO1996033450A1 (de) | Verfahren zum betrieb einer numerischen steuerung mit zeitkritischen und nicht zeitkritischen prozessen in einem echtzeitsystem |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8100 | Publication of the examined application without publication of unexamined application | ||
| 8320 | Willingness to grant licenses declared (paragraph 23) | ||
| 8364 | No opposition during term of opposition | ||
| 8339 | Ceased/non-payment of the annual fee |