DE102008042088B3 - Vorrichtung zum temporären Abschalten von Interrupts in einem Rechnersystem - Google Patents

Vorrichtung zum temporären Abschalten von Interrupts in einem Rechnersystem Download PDF

Info

Publication number
DE102008042088B3
DE102008042088B3 DE200810042088 DE102008042088A DE102008042088B3 DE 102008042088 B3 DE102008042088 B3 DE 102008042088B3 DE 200810042088 DE200810042088 DE 200810042088 DE 102008042088 A DE102008042088 A DE 102008042088A DE 102008042088 B3 DE102008042088 B3 DE 102008042088B3
Authority
DE
Germany
Prior art keywords
unit
interrupt
counter
execution units
interrupt request
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
Application number
DE200810042088
Other languages
English (en)
Inventor
Markus Ferch
Heinz Tilsner
Yorck Collani
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE200810042088 priority Critical patent/DE102008042088B3/de
Application granted granted Critical
Publication of DE102008042088B3 publication Critical patent/DE102008042088B3/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Die Erfindung betrifft eine Vorrichtung zum temporären Abschalten von Interrupts in einem Rechnersystem, bei welchem mindestens eine externe, eine Unterbrechungsanforderung ausgebende Befehlseinheit (2, 3, 4) an eine Recheneinheit (7, 7a, 7b) führt. Bei einer Vorrichtung, welche eine einfache und zuverlässige Sperrung eines Interrupts ermöglicht, ohne dass zusätzliche Rechenzeit benötigt wird, ist zwischen die Befehlseinheit (2, 3, 4) und die Recheneinheit (7, 7a, 7b) eine Abschalteinheit (5, 5a, 5b, 5c) geschaltet, welche die von der Befehlseinheit (2, 3, 4) ausgegebene Unterbrechungsanforderung für eine vorgegebene Zeitspanne sperrt und nach Ablauf der Zeitspanne die Unterbrechungsanforderung freigibt.

Description

  • Stand der Technik
  • Die Erfindung betrifft eine Vorrichtung gemäß dem Oberbegriff des Patentanspruchs 1 zum temporären Abschalten von Interrupts in einem Rechnersystem, bei welchem mindestens eine externe, eine Unterbrechungsanforderung ausgebende Befehlseinheit an eine Recheneinheit führt.
  • Damit ein Steuergerät durch fehlerhafte Befehlseinheiten, welche ständig Unterbrechungsanfragen an eine Recheneinheit ausgeben, in seinen normalen Betriebsabläufen nicht gestört wird, ist es bekannt, dass die jeweilige Unterbrechungsanfrage nach ihrem Aufruf durch eine Steuergerätesoftware gesperrt wird. Nach dem Ablauf einer Sperrfrist gibt die Steuergerätessoftware die Unterbrechungsanfrage wieder frei.
  • Diese Funktion übernimmt das Betriebssystem der Recheneinheit. Nach dem Sperren der Unterbrechungsanfrage in einem Interrupt Controller wird ein Timerbaustein auf eine Sperrfrist programmiert. Ist die Sperrfrist abgelaufen löst der Timer die Unterbrechungsanfrage aus, auf den das Betriebssystem mit der Freigabe des zuvor gesperrten Interrupts reagiert.
  • Sind mehrere Interrupts gleichzeitig gesperrt, muss, da nur ein Timer vorhanden ist, das Betriebssystem die einzelnen Sperrfristen speichern und bei Ablauf einer Frist die jeweilige verbleibende Frist für den nächsten Interrupt in den Timer programmieren.
  • Der Vorgang des Sperrens und Entsperrens sowie die Verwaltung der einzelnen Zeiten für die Programmierung des Timers, der die Entsperrung der blockierten Interrupts meldet, kostet das Betriebssystem Rechenzeit. Darüber hinaus wird für jeden Interrupt, der ausgelöst wurde, später vom Timerbaustein ein weiterer Interrupt ausgelöst.
  • Die DE 197 00 397 C1 offenbart eine Schutzschaltung für programmgesteuerte elektrische Einrichtungen. Diese Schutzschaltung ist installiert, um ein zu häufiges Auftreten von nicht – maskierten Interrupt-Signalen zu unterbinden. Sie umfasst eine steuerbare Interrupt-Signal-Durchlassschaltung, die je nach Ansteuerung durch eine Steuersignalquelle ein eingehendes nicht maskiertes Interrupt-Signal durchlässt oder sperrt. Die Interrupt-Signal-Durchlassschaltung ist gesperrt, solange sich ein Interrupt-Signal-Zähler auf einem vorbestimmten Zählwert befindet.
  • Offenbarung der Erfindung
  • Der Erfindung liegt die Aufgabe zugrunde, eine Vorrichtung zum temporären Abschalten von Interrupts in einem Mehrrechnersystem anzugeben, welche eine einfache und zuverlässige Sperrung eines Interrupts ermöglicht, ohne das zusätzliche Rechenzeit benötigt wird.
  • Die erfindungsgemäße Vorrichtung zur Lösung dieser Aufgabe temporären Abschalten von Interrupts in einem Mehrrechnersystem mit den Merkmalen des Anspruchs 1 weist den Vorteil auf, dass die Interrupts nicht mehr über die Software sondern in einer Hardware abgeschaltet werden. Dadurch, dass zwischen die Befehlseinheit und die Recheneinheit eine Abschalteinheit geschaltet ist, welche die von der Befehlseinheit ausgegebene Unterbrechungsanforderung für eine vorgegebene Zeitspanne sperrt und nach Anlauf der Zeitspanne die Unterbrechungsanforderung freigibt, wird die Recheneinheit nicht mehr mit der Behandlung von Timer-Interrupts belastet, da dieser nicht mehr ausgelöst wird. Somit wird in der Recheneinheit eine signifikante Menge an Rechenzeit eingespart, da der Vorgang des Sperrens und des Entsperrens sowie die Verwaltung der einzelnen Zeiten für die Programmierung des Timers entfällt, welches das Betriebssystem zeitlich stark beansprucht hat. Da der Timerbaustein als solcher wegfällt, wird auch kein Timerinterrupt mehr ausgelöst, der durch die Recheneinheit behandelt werden muss.
  • Darüber hinaus wird sichergestellt, dass defekte Befehlseinheiten, die als Interruptquellen dienen, die Recheneinheit nicht ununterbrochen mit Interrupt Service Routinen beschäftigen, welche in der Recheneinheit bei einem anstehenden Interrupt ausgelöst werden. Die Recheneinheit kann so ihren eigentlichen Programmablauf mehr oder weniger ungestört ausführen. Durch die Sperrung erhält das, das Rechnersystem umfassende Steuergerät Zeit, einen eventuellen Fehler der Befehlseinheit zu erkennen und diese abzuschalten oder eine Notfallroutine zu aktivieren.
  • Vorteilhafterweise ist die Abschalteinheit als Zähler ausgeführt, wobei für jede Befehlseinheit ein Zähler vorhanden ist. Die Funktionalität des Zählers besteht darin, die Befehlseinheiten, welche die Unterbrechungsanforderungen auslösen, zu kontrollieren, indem die temporäre Sperrung des Interrupts in eine Hardware verlagert wird.
  • In einer einfachen Ausgestaltung ist der Zähler mit einem Vorgabewert konfiguriert und wird taktabhängig dekrementiert, wobei die Freigabe der Unterbrechungsanforderung erfolgt, wenn der Wert des Zählers Null ist. Solange der Zähler für eine Unterbrechungsanfrage ungleich Null ist, wird die Unterbrechungsanforderung nicht an die Recheneinheit weitergeleitet. Somit wird ein Zeitraum geschaffen, um die als Interruptquellen dienenden Befehlseinheiten auf ihre Funktionstüchtigkeit zu überprüfen. Beim Erreichen des Wertes Null des Zählers, wird das Dekrementieren gestoppt und die Sperrung wird aufgehoben.
  • In einer anderen Ausgestaltung umfasst die Abschalteinheit eine monostabile Kippstufe, wobei für jede Befehlseinheit eine solche monostabile Kippstufe vorhanden ist. Dies hat den Vorteil, dass der Zeitraum, für welchen der Interrupt gesperrt werden soll, nicht extra konfiguriert werden muss, sondern durch den Zeitraum vorgegeben wird, in welchem sich die monostabile Kippstufe in einem instabilen Zustand befindet. Durch die schaltungsgemäße Konfiguration der monostabilen Kippstufe wird der gewünschte Zeitraum vorgegeben.
  • In einer Weiterbildung ist die monostabile Kippstufe mit einem Eingang einer Logikeinheit verbunden, deren weiterer Eingang auf die Befehlseinheit führt, wobei die Logikeinheit im instabilen Zustand der monostabilen Kippstufe die von der Befehlseinheit gesendete Unterbrechungsanforderung sperrt. Mittels der Logikeinheit wird eine einfache Sperrung und Freigabe der Unterbrechungsanforderungen realisiert.
  • In einer Ausgestaltung ist die Logikeinheit mit einer Unterbrechungsüberwachungseinheit verbunden, welche ein Register aufweist, das die Unterbrechungsanforderung an die Recheneinheit ausgibt. Die Unterbrechungsanforderungen werden mit Hilfe des Registers, dem so genannten „Pending Interrupt Register” synchronisiert und auch zwischengespeichert, wenn die Recheneinheit für die Abarbeitung eines Interrupts gesperrt ist.
  • Vorteilhafterweise gibt die Recheneinheit nach der Freischaltung eines Interrupts ein Signal aus, welches an die monostabile Kippstufe geführt ist und die monostabile Kippstufe in einen instabilen Zustand versetzt. Zu diesem Zweck lässt sich einfach das so genannte „Acknowledge”-Signal nutzen, welches die Recheneinheit ausgibt, wenn sie das Register nach Übernahme eines Interrupts zurücksetzt. Auf eine zusätzliche Erzeugung des Ansteuersignals kann damit verzichtet werden.
  • In einer anderen Weiterbildung der Erfindung weist der Zähler einen Maximalwert auf, welcher beim Anstehen einer Unterbrechungsanforderung um einen ersten Wert dekrementiert wird, wobei der Zähler periodisch um einen zweiten Wert inkrementiert wird und die Unterbrechungsanforderung nur an die Recheneinheit weitergeleitet wird, wenn der Zähler einen Wert größer Null besitzt. Diese Ausgestaltung hat den Vorteil, dass kurzzeitig viele Interrupts ausgelöst und verarbeitet werden können. Allerdings wird durch diese Ausführung auch ein Zeitraum definiert, in welchem nur eine bestimmte Rate an Interrupts ausgelöst werden kann.
  • Dieser Zeitraum wird dadurch eingestellt, dass der Zähler mit einem Maximalwertregister verbunden ist, welcher dem Zähler seinen Maximalwert vorgibt. Da der Maximalwert durch diese Einstellung nicht überschritten werden kann, wird der Zeitraum begrenzt.
  • Vorteilhafterweise ist dabei der erste Wert, mit welchem der Zähler dekrementiert wird, größer ist, als der zweite Wert, mit welchem der Zähler inkrementiert wird.
  • In einer Weiterbildung der Erfindung sind mindestens zwei Maximalwertregister für den Zähler vorhanden, wobei ein Maximalwertregister aktiviert wird, wenn die mindestens zwei Ausführungseinheiten aufweisende Recheneinheit in einem Modus arbeitet, wo beide Ausführungseinheiten unterschiedliche Programme abarbeiten, während das andere Maximalwertregister aktiviert wird, wenn beide Ausführungseinheiten ein identisches Programm abarbeiten, wobei die Ausgangssignale der beiden Ausführungseinheiten darauf überwacht werden, ob sie eine Differenz aufweisen.
  • Somit kann die Erfindung in einem Betriebsmodus eingesetzt werden, in welchem möglichst viele Aufgaben abgearbeitet werden und wo die Rechenzeit optimal genutzt wird. Dies ist der Fall, wenn auf beiden Ausführungseinheiten unterschiedliche Programme abgearbeitet werden.
  • Aber auch in einem Betriebsmodus bei sicherheitsrelevanten Anwendungen, wo die meisten Aufgaben mit einer hohen Fehlererkennung berechnet werden müssen, ist die Erfindung einsetzbar. In diesem Betriebsmodus bearbeiten beide Ausführungseinheiten ein identisches Programm.
  • In einer anderen Ausgestaltung der Erfindung sind mindestens zwei monostabile Kippstufen vorhanden, wobei die erste monostabile Kippstufe aktiviert wird, wenn die mindestens zwei Ausführungseinheiten aufweisende Recheneinheit in einem Modus arbeitet, wo beide Ausführungseinheiten unterschiedliche Programme abarbeiten, während die zweite monostabile Kippstufe aktiviert wird, wenn beide Ausführungseinheiten ein identisches Programm abarbeiten, wobei die Ausgangssignale der beiden Ausführungseinheiten darauf überwacht werden, ob sie eine Differenz aufweisen.
  • In einer weiteren Ausgestaltung wird mindestens eine Unterbrechungsanforderung, die während einer Sperrung empfangen wird, in der Abschalteinheit gespeichert und erst nach Ablauf der Zeitspanne weitergeleitet. Damit wird sichergestellt, dass Unterbrechungsanforderungen, die von verschiedensten Befehlseinheiten angezeigt werden, sorgfältig bearbeitet werden. Es gibt Befehlseinheiten, die die Unterbrechungsanforderung solange anzeigen, bis durch die Interrupt Service Routine signalisiert wird, dass die Anzeige nicht mehr notwendig ist. Andere Befehlseinheiten zeigen die Unterbrechungsanforderungen nur einen Takt lang an. Insbesondere dieser letzte Fall wird durch die erfindungsgemäße Maßnahme sicher abgedeckt.
  • Vorteilhafterweise ist die Abschalteinheit Bestandteil der Unterbrechungsüberwachungseinheit, wodurch Chipfläche des Rechensystems eingespart wird.
  • In einer Weiterbildung wird jeder Interrupt, der während einer Sperrung empfangen und dessen Weiterleitung verhindert wird, in einer Diagnoseeinheit registriert, was den Vorteil hat, dass jederzeit nachvollzogen werden kann, ob ein Interrupt angestanden hat. Durch Setzen eines Bits in der Diagnoseeinheit wird die Sperrung des Interrupts registriert und beim Herunterfahren des Rechnersystems gespeichert. Dies dient insbesondere zum Testen der erfindungsgemäßen Hardwareeinheit selbst. Es unterstützt aber auch die Werkstatt bei der Suche nach einer fehlerhaften Interrupt Quelle.
  • Kurze Beschreibung der Zeichnung
  • Die Erfindung lässt zahlreiche Ausführungsbeispiele zu. Eines davon soll anhand der in der Zeichnung dargestellten Figuren näher erläutert werden.
  • Es zeigt:
  • 1: erste Prinzipdarstellung der erfindungsgemäßen Vorrichtung
  • 2: zweite Prinzipdarstellung der erfindungsgemäßen Vorrichtung
  • 3: erste Ausführungsform mit einem Zähler als Abschalteinrichtung
  • 4: zweite Ausführungsform mit einem Zähler als Abschalteinrichtung
  • 5: Arbeitweise des Zählers nach 3 bzw. 4
  • 6: dritte Ausführungsform mit einem Zähler als Bestandteil der Abschalteinrichtung
  • 7: Arbeitsweise des Zählers nach 6
  • 8: vierte Ausführungsform mit einer monostabilen Kippstufe als Bestandteil der Abschalteinrichtung
  • 9: Fünfte Ausführungsform mit einer, zwei Rechnerkerne aufweisenden Prozessoreinheit
  • Ausführungsformen der Erfindung
  • Gleiche Merkmale sind mit gleichen Bezugszeichen gekennzeichnet.
  • In 1 ist ein Rechnersystem 1 dargestellt, welches drei verschiedene Interruptquellen 2, 3, 4 aufweist. Die Interruptquelle 2 ist dabei ein Sensor, die Interruptquelle 3 ein Timer und die Interruptquelle 4 ein Baustein, welcher über einen CAN-Bus kommuniziert. Alle drei Interruptquellen 2, 3, 4 sind mit einer Interrupt Abschalteinheit 5 verbunden, welche wiederum an einen Interrupt Controller 6 führt. Der Interrupt Controller 6 ist mit einer Recheneinheit 7 verbunden.
  • Während des normalen Betriebes des Rechnersystems 1 werden von den Interruptquellen 2, 3, 4 Unterbrechungsanforderungen, so genannte Interrupt Requests, ausgelöst, welche eine kurzfristige Unterbrechung des Programms der Recheneinheit 7 fordern, um eine andere zeitkritische Verarbeitung durchzuführen. Wird ein solcher Interrupt Request sofort an die Recheneinheit 7 weitergeleitet, unterbricht die Recheneinheit 7 ihre augenblickliche Programmabarbeitung und startet eine Interrupt Service Routine.
  • Beim Ausführungsbeispiel nach 1 werden die Unterbrechungsanforderungen aber zunächst von der jeweiligen Interruptquelle 2, 3, 4 an die Interrupt Abschalteinrichtung 5 weitergeleitet. Diese Interrupt Abschalteinrichtung 5 leitet den Request an den Interrupt-Controller 6 weiter und schaltet gleichzeitig für weitere Requests die Weiterleitung für einen vorgegebenen Zeitraum ab, wobei zumindest ein weiterer Interrupt in einem nicht weiter dargestellten Halteglied gespeichert ist. Erst nach Ablauf dieses Zeitraumes wird die Unterbrechungsanforderung an den Interrupt Controller 6 wieder weitergegeben, der den Interrupt dann an die Recheneinheit 7 weiterleitet, wenn die Recheneinheit 7 für diesen Interrupt freigegeben ist.
  • Alternativ zu 1 ist in 2 die Interrupt Abschalteinheit 5 Bestandteil des Interrupt Controllers 6, welcher weiterhin ein Register 8 (Pending Interrupt Register) aufweist. Auch bei dieser Ausführung liegen die von den Interruptquellen 2, 3, 4 gesendeten Unterbrechungsanforderungen an der Interrupt Abschalteinrichtung 5 an. Der erste Interrupt Request wird an das Register 8 des Interrupt-Controllers 6 weitergeleitet. Nachfolgende Requests werden für einen definierten Zeitraum gesperrt. Dieses Register 8 hat die Aufgabe die anstehenden Interrupts zu synchronisieren und solange zwischenzuspeichern, bis die Recheneinheit 7 bereit ist, einen Interrupt zu übernehmen und abzuarbeiten.
  • In 3 ist die Abschalteinrichtung als Zähler ausgebildet, wobei jede Interruptquelle 2, 3, 4 einem Zähler 5az, 5bz, 5cz zugeordnet ist. Dabei führt die Interruptquelle 2 an den Zähler 5az, die Interruptquelle 3 an den Zähler 5bz und die Interruptquelle 4 an den Zähler 5cz. Die Zähler 5az, 5bz, 5cz sind mit dem Interrupt Controller 6 verbunden, welcher wiederum auf die Recheneinheit 7 führt.
  • Gemäß 4 sind die Zähler 5az, 5bz, 5cz Bestandteil des Interrupt Controllers 6 und innerhalb diesem mit dem Register 8 verbunden. Auch bei diesem Beispiel ist jeder Zähler 5az, 5bz, 5cz jeweils nur einer Interruptquelle 2, 3, 4 zugeordnet. Die Verwendung von verschiedenen Zählern 5az, 5bz, 5cz hat den Vorteil, dass jede Unterbrechungsanforderung von den Interruptquellen 2, 3, 4 für unterschiedliche Zeiträume unterbrochen werden kann, da durch die einzelnen Zähler 5az, 5bz, 5cz unterschiedlich lange Zeiträume einstellbar sind.
  • Nach Ablauf eines jeweils solchen Zeitraumes wird die Unterbrechungsanforderung an das Register 8 weitergeleitet, das diese an die Recheneinheit 7 ausgibt.
  • Die Funktionsweise der Zähler 5az, 5bz, 5cz wird nun mit Hilfe von 5 erläutert. Im Block 206 wird beim Auftreten einer Unterbrechungsanforderung (Block 201) der Zähler 5az, 5bz, 5cz mit einem Maximalwert geladen, welcher für die drei Zähler 5az, 5bz, 5cz unterschiedlich sein kann. Dieser Maximalwert wird im Block 203 mit jedem Prozessortakt um den Wert 1 dekrementiert. Im Block 205 wird verglichen, ob der Wert I1 größer als der Wert Null ist. Ist dies der Fall, wird der Wert im Block 203 weiter dekrementiert und die Unterbrechungsanforderung ist blockiert (Block 202). Wird im Block 205 festgestellt, dass der Wert I1 gleich Null ist, wird das Dekrementieren gestoppt und die Sperrung im Block 202 der Unterbrechungsanforderung ist aufgehoben. Die gesendete Unterbrechungsanforderung wird nun an die Recheneinheit 7 weitergeleitet (Block 204).
  • In 6 ist eine weitere Möglichkeit zur Ausgestaltung der Interrupt Abschalteinheit 5 dargestellt, bei welcher ein Zähler Bestandteil der Interrupt-Abschalteinheit ist. Um die Ausführungen überschaulicher zu gestalten, wird nur eine Interruptquelle 2 und die dazugehörige Interrupt Abschalteinheit 5a betrachtet. Diese Interruptquelle 2 ist mit der Interrupt Abschalteinheit 5a über eine Interruptleitung 301 verbunden. Die Interruptleitung 301 führt an einen Schalter 302, welcher die Interruptleitung 301 an einen Zähler 303 führt, der mit einem Maximalwertregister 304 verbunden ist. Der Schalter 302, der Zähler 303 und das Maximalwertregister 304 bilden die Interrupt Abschalteinheit 5a, die über den nicht weiter dargestellten Interrupt Controller 6 mit der Recheneinheit 7 verbunden ist. Auch bei diesem Beispiel ist jede Befehlseinheit 2, 3, 4 einer eigenen Interrupt Abschalteinheit 5a, 5b, 5c zugeordnet.
  • Wie in 7 dargestellt, wird der Zähler 303 im Block 401 mit einem Maximalwert IM geladen, der dem Zähler 303 aus dem Maximalwertregister 304 vorgegeben wird. Der Wert des Zählers 303 darf dabei den zugeordneten Maximalwert niemals überschreiten. Wird eine Unterbrechungsanfrage über die Interruptleitung 301 ausgelöst, wird im Block 402 der Zähler um den Wert 1 dekrementiert. Gleichzeitig wird im Block 403 der Zähler 303 mit einer festen Periode wieder inkrementiert, wobei sichergestellt ist, dass der Maximalwert IM nicht überschritten wird (Block 404). Dabei wird der Zähler 303 mit einem größeren Wert dekrementiert und mit einem kleineren Wert inkrementiert.
  • Im Block 405 wird der Zählerwert In dahingehend bewertet, ob er den Wert Null erreicht hat. Ist dies der Fall, wird im Block 406 die Unterbrechungsanforderung über den Schalter 302 blockiert, indem der Schalter mit dem Zähler 303 verbunden ist. Weist der Zähler 303 einen Wert größer Null auf, schließt der Schalter 302 die Verbindung zur Recheneinheit 7 und der Interrupt wird an die Recheneinheit 7 weitergeleitet und dort verarbeitet (Block 407).
  • Durch diese Ausführungsform wird mittels des Zählers 303 ein Zeitraum definiert, innerhalb dessen mehrere Unterbrechungsanforderungen kurz nacheinander an die Recheneinheit 7 weitergeleitet werden können.
  • In 8 beinhaltet die Interrupt Abschalteinrichtung 5a eine monostabile Kippstufe 10, die an den Eingang eines UND-Gatters 9 geführt ist. An einem weiteren Eingang des UND-Gatters 9, das ebenfalls Bestandteil der Interrupt Abschalteinrichtung 5a ist, ist die externe Interruptquelle 2 angeschlossen. Der Ausgang des UND-Gatters 9 führt auf das Register 8 des Interrupt Controllers 6, welcher auch die Interrupt Abschalteinheit 5a umfasst. Das Register 8 gibt ein Ausgangssignal an die Recheneinheit 7 aus, welche wiederum über eine Signalleitung mit der monostabilen Kippstufe 10 der Interrupt Abschalteinheit 5a verbunden ist.
  • Die monostabile Kippstufe 10 ist eine elektronische Schaltung, die nur einen stabilen Zustand besitzt. Durch ein extern zugeführtes Signal wird der Übergang der monostabilen Kippstufe in einen instabilen Zustand veranlasst, aus dem dieser nach einem festgelegten Zeitpunkt, welcher durch die Konfiguration der Schaltung bestimmt wird, wieder in den stabilen Ruhezustand wechselt.
  • Sendet die Interruptquelle 2 eine Unterbrechungsanforderung (logisches Signal 1), wird diese an das UND-Gatter 9 weitergeleitet, das die Unterbrechungsanforderung immer dann an das Register 8 weiterleitet, wenn sich die monostabile Kippstufe 10 im stabilen Ruhezustand (logisches Signal 1) befindet. Im Register 8 wird der Interrupt synchronisiert und zwischengespeichert. Schaltet die Recheneinheit 7 den Interrupt frei, wird durch die Recheneinheit 7 eine Software aufgerufen, die so genannte Interrupt Service Routine. Gleichzeitig generiert die Recheneinheit 7 ein „Acknowledge”-Signal, welches das Register 8 zurücksetzt. Dieses „Acknowledge”-Signal wird gleichzeitig an die monostabile Kippstufe 10 ausgegeben, wodurch diese getriggert wird und in den instabilen Zustand versetzt wird. Solange die monostabile Kippstufe 10 sich im instabilen Zustand befindet, liefert diese eine Null als Eingangssignal für das UND-Gatter 9. Dadurch wird das Ausgangssignal des UND-Gatters 9 ebenfalls zu Null, wodurch anstehenden Unterbrechungsanforderungen unterdrückt werden.
  • 9 zeigt ein Rechnersystem 1 mit einem Zwei-Prozessorsystem, welches zwei Rechnerkerne 7a und 7b aufweist. Die Rechnerkerne 7a und 7b sind mit einer Vergleichseinheit 11 und einem Datenbus 4 verbunden. Der Datenbus 4 führt einmal an den Interrupt Controller 6 und an den Hauptspeicher 12, den Flash-Speicher 13 und eine Diagnoseeinheit 14. Der Interrupt Controller 6 ist weiterhin mit dem Sensor 2 und dem Timer 3 verbunden und führt mit jeweils einem Ausgangssignal an die Rechnerkerne 7a bzw. 7b.
  • Der Interrupt Controller 6 umfasst intern die Interrupt Abschalteinheiten 5a, 5b, 5c, die, wie in Zusammenhang mir 2 beschrieben, mit den Interruptquellen 2, 3, 4 verbunden sind. Darüber hinaus besteht eine Verbindung 15 zwischen dem Interrupt Controller 6 und der Vergleichseinheit 11.
  • Dieses Rechnersystem 1 kann in zwei Betriebsmodi arbeiten. In dem so genannten Performanzmodus arbeiten die Rechnerkerne 7a und 7b unterschiedliche Programme ab, wodurch viel Rechenzeit eingespart wird.
  • Bei sicherheitsrelevanten Anwendungen wie beispielsweise in einem Kraftfahrzeug, muss die Arbeitsweise der Rechnerkerne 7a, 7b überprüft werden, dann arbeiten die Rechnerkerne 7a, 7b im so genannten Vergleichsmodus. Zu diesem Zweck bearbeiten beide Rechnerkerne 7a, 7b ein identisches Programm. Die Ausgangssignale der Rechnerkerne 7a, 7b werden an die Vergleichseinheit 11 weitergegeben, die die Ergebnisse beider Rechnerkerne 7a, 7b vergleicht. Stimmen die Ergebnisse überein, arbeiten die Rechnerkerne 7a, 7b korrekt. Tritt eine Differenz zwischen den Ausgangssignalen der beiden Rechnerkerne 7a, 7b auf, gibt die Vergleichseinheit 11 eine Fehlermeldung aus.
  • Über die Leitung 15 meldet die Vergleichseinheit 11 dem Interrupt Controller 6, in welchem Betriebsmodus das Rechnersystem 1 arbeitet. Davon abhängig wird der Maximalwert für den Zähler 5a (3) im Performanzmodus anders gewählt als im Vergleichsmodus. Genauso kann beim Arbeiten im Vergleichsmodus eine monostabile Kippstufe 10 in der Interrupt Abschalteinheit 5a mit einer anderen Zeitverzögerung ausgewählt werden, als für den Performanzmodus.
  • Über den Datenbus 4 wird der Diagnoseeinheit 14 durch Setzen eines Diagnosebits mitgeteilt, dass während der Sperrung der Interrupts ein entsprechender Interrupt Request empfangen wurde. Die Diagnoseeinheit 14 registriert somit alle Interruptsperrungen über die Laufzeit des Rechnersystems 1, was zu Diagnosezwecken ausgewertet werden kann.

Claims (15)

  1. Vorrichtung zum temporären Abschalten von Interrupts in einem Rechnersystem, bei welchem mindestens eine externe, eine Unterbrechungsanforderung ausgebende Befehlseinheit (2, 3, 4) an eine Recheneinheit (7, 7a, 7b) führt, wobei zwischen die Befehlseinheit (2, 3, 4) und die Recheneinheit (7, 7a, 7b) eine Abschalteinheit (5, 5a, 5b, 5c, 5az, 5bz, 5cz) geschaltet ist, welche die von der Befehlseinheit (2, 3, 4) ausgegebene Unterbrechungsanforderung für eine vorgegebene Zeitspanne sperrt und nach Ablauf der Zeitspanne die Unterbrechungsanforderung freigibt dadurch gekennzeichnet, dass eine erste Zeitspanne gewählt ist, wenn die mindestens zwei Ausführungseinheiten (7a, 7b) aufweisende Recheneinheit in einem Modus arbeitet, wo beide Ausführungseinheiten (7a, 7b) unterschiedliche Programme abarbeiten, während eine zweite Zeitspanne aktiviert wird, wenn beide Ausführungseinheiten (7a, 7b) ein identisches Programm abarbeiten.
  2. Vorrichtung nach Anspruch 1 dadurch gekennzeichnet, dass die Abschalteinheit als Zähler (5az, 5bz, 5cz, 303) ausgeführt ist, wobei für jede Befehlseinheit (2, 3, 4) ein Zähler (5az, 5bz, 5cz, 303) vorhanden ist.
  3. Vorrichtung nach Anspruch 2 dadurch gekennzeichnet, dass der Zähler (5az, 5bz, 5cz) mit einem Vorgabewert konfiguriert ist und taktabhängig dekrementiert wird, wobei die Freigabe der Unterbrechungsanforderung erfolgt, wenn der Wert des Zählers (5az, 5bz, 5cz) Null ist.
  4. Vorrichtung nach Anspruch 1 dadurch gekennzeichnet, dass die Abschalteinheit (5a, 5b, 5c) eine monostabile Kippstufe (10) umfasst, wobei für jede Befehlseinheit (2, 3, 4) eine solche monostabile Kippstufe (10) vorhanden ist.
  5. Vorrichtung nach Anspruch 4 dadurch gekennzeichnet, dass die monostabile Kippstufe (10) mit einem Eingang einer Logikeinheit (9) verbunden ist, deren weiterer Eingang auf die Befehlseinheit (2) führt, wobei die Logikeinheit (9) im instabilen Zustand der monostabilen Kippstufe (10) die von der Befehlseinheit (2) gesendete Unterbrechungsanforderung sperrt.
  6. Vorrichtung nach Anspruch 5 dadurch gekennzeichnet, dass die Logikeinheit (9) mit einer Unterbrechungsüberwachungseinheit (6) verbunden ist, welche ein Register (8) aufweist, das die Unterbrechungsanforderung an die Recheneinheit (7) ausgibt.
  7. Vorrichtung nach Anspruch 6 dadurch gekennzeichnet, dass die Recheneinheit (7) nach der Freischaltung eines Interrupts ein Signal ausgibt, welches an die monostabile Kippstufe (10) geführt ist und die monostabile Kippstufe (10) in einen instabilen Zustand versetzt.
  8. Vorrichtung nach Anspruch 2 dadurch gekennzeichnet, dass der Zähler (303) einen Maximalwert aufweist, welcher bei Anstehen einer Unterbrechungsanforderung um einen ersten Wert dekrementiert wird, wobei der Zähler (303) periodisch um einen zweiten Wert inkrementiert wird und die Unterbrechungsanforderung nur an die Recheneinheit (7) weitergeleitet wird, wenn der Zähler (303) einen Wert größer Null besitzt.
  9. Vorrichtung nach Anspruch 8 dadurch gekennzeichnet, dass der Zähler (303) mit einem Maximalwertregister (304) verbunden ist, welcher dem Zähler (303) seinen Maximalwert vorgibt.
  10. Vorrichtung nach Anspruch 8 oder 9 dadurch gekennzeichnet, dass der erste Wert, mit welchem der Zähler (303) dekrementiert wird, größer ist, als der zweite Wert, mit welchem der Zähler (303) inkrementiert wird.
  11. Vorrichtung nach Anspruch 8 dadurch gekennzeichnet, dass mindestens zwei Maximalwertregister für den Zähler (303) vorhanden sind, wobei ein Maximalwertregister aktiviert wird, wenn die mindestens zwei Ausführungseinheiten (7a, 7b) aufweisende Recheneinheit in einem Modus arbeitet, wo beide Ausführungseinheiten (7a, 7b) unterschiedliche Programme abarbeiten, während der andere Maximalwertregister aktiviert wird, wenn beide Ausführungseinheiten (7a, 7b) ein identisches Programm abarbeiten.
  12. Vorrichtung nach Anspruch 4 dadurch gekennzeichnet, dass mindestens zwei monostabile Kippstufen vorhanden sind, wobei die erste monostabile Kippstufe aktiviert wird, wenn die mindestens zwei Ausführungseinheiten (7a, 7b) aufweisende Recheneinheit in einem Modus arbeitet, wo beide Ausführungseinheiten (7a, 7b) unterschiedliche Programme abarbeiten, während die zweite monostabile Kippstufe aktiviert wird, wenn beide Ausführungseinheiten (7a, 7b) ein identisches Programm abarbeiten.
  13. Vorrichtung nach Anspruch 1 dadurch gekennzeichnet, dass mindestens eine Unterbrechungsanforderung, die während einer Sperrung empfangen wird, in der Abschalteinheit (5, 5a, 5b, 5c) gespeichert wird und erst nach Ablauf der Zeitspanne weitergeleitet wird.
  14. Vorrichtung nach einem der vorhergehenden Ansprüche dadurch gekennzeichnet, dass die Abschalteinheit (5, 5a, 5b, 5c) Bestandteil der Unterbrechungsüberwachungseinheit (6) ist.
  15. Vorrichtung nach einem der vorhergehenden Ansprüche dadurch gekennzeichnet, dass jeder Interrupt der empfangen wird, während er gesperrt ist, in einer Diagnoseeinheit (14) registriert ist.
DE200810042088 2008-09-15 2008-09-15 Vorrichtung zum temporären Abschalten von Interrupts in einem Rechnersystem Expired - Fee Related DE102008042088B3 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE200810042088 DE102008042088B3 (de) 2008-09-15 2008-09-15 Vorrichtung zum temporären Abschalten von Interrupts in einem Rechnersystem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200810042088 DE102008042088B3 (de) 2008-09-15 2008-09-15 Vorrichtung zum temporären Abschalten von Interrupts in einem Rechnersystem

Publications (1)

Publication Number Publication Date
DE102008042088B3 true DE102008042088B3 (de) 2010-04-15

Family

ID=41821542

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200810042088 Expired - Fee Related DE102008042088B3 (de) 2008-09-15 2008-09-15 Vorrichtung zum temporären Abschalten von Interrupts in einem Rechnersystem

Country Status (1)

Country Link
DE (1) DE102008042088B3 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19700397C1 (de) * 1997-01-08 1998-04-23 Sgs Thomson Microelectronics Schutzschaltung für programmgesteuerte elektrische Einrichtungen

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19700397C1 (de) * 1997-01-08 1998-04-23 Sgs Thomson Microelectronics Schutzschaltung für programmgesteuerte elektrische Einrichtungen

Similar Documents

Publication Publication Date Title
DE10049441B4 (de) Verfahren zum Betrieb eines von einem Prozessor gesteuerten Systems
EP2513796B1 (de) Verfahren zum betreiben einer recheneinheit
DE19509150C2 (de) Verfahren zum Steuern und Regeln von Fahrzeug-Bremsanlagen sowie Fahrzeug-Bremsanlage
EP2207097A1 (de) Verfahren und Vorrichtung zum Betreiben eines Steuergerätes
WO1985002475A1 (en) Process for monitoring electronic computing elements, particularly microprocessors
DE4132139C2 (de) Mikrocomputer mit Überwachungszeitgeber
WO2015010831A1 (de) Überwachung von redundanten komponenten
WO2004034261A1 (de) Verfahren zur ereignissynchronisation, insbesondere für prozessoren fehlertoleranter systeme
EP1615087A2 (de) Steuer- und Regeleinheit
EP2241953B1 (de) Verfahren und Vorrichtung zur Realisierung einer fehlersicheren Zeitfunktion
EP2228723B1 (de) Verfahren zur Fehlerbehandlung eines Rechnersystems
WO2003069424A2 (de) Reaktionszeit-beschränkung eines software-prozesses
DE10312553B3 (de) Kraftfahrzeug
DE102008042088B3 (de) Vorrichtung zum temporären Abschalten von Interrupts in einem Rechnersystem
DE102013021231A1 (de) Verfahren zum Betrieb eines Assistenzsystems eines Fahrzeugs und Fahrzeugsteuergerät
DE102004051991A1 (de) Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
DE10036903C1 (de) Elektronische Schaltungsanordnung und zugehöriges Verfahren
EP1927053B1 (de) Mikrocontroller und verfahren zum betrieb
EP3311273A1 (de) Verfahren und vorrichtung zum absichern einer programmzählerstruktur eines prozessorsystems und zum überwachen der behandlung einer unterbrechungsanfrage
EP2338111B1 (de) Verfahren und vorrichtung zum testen eines rechnerkerns in einer mindestens zwei rechnerkerne aufweisenden recheneinheit
DE102020108341A1 (de) Überwachungsschaltung und Verfahren zur Funktionsüberwachung
DE19624140A1 (de) System zum Übertragen von Daten
EP2248021B1 (de) Anordnung zur überprüfung eines programmspeichers einer recheneinheit
EP2328304A1 (de) Schaltungsanordnung und ein Steuergerät für sicherheitsrelevante Funktionen
DE102004051967A1 (de) Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee