DE10062995A1 - Unterbrecher-Steuereinrichtung - Google Patents

Unterbrecher-Steuereinrichtung

Info

Publication number
DE10062995A1
DE10062995A1 DE10062995A DE10062995A DE10062995A1 DE 10062995 A1 DE10062995 A1 DE 10062995A1 DE 10062995 A DE10062995 A DE 10062995A DE 10062995 A DE10062995 A DE 10062995A DE 10062995 A1 DE10062995 A1 DE 10062995A1
Authority
DE
Germany
Prior art keywords
interrupt
processor
address
control device
breaker
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.)
Ceased
Application number
DE10062995A
Other languages
English (en)
Inventor
Joerg Franke
Joachim Ritter
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.)
TDK Micronas GmbH
Original Assignee
TDK Micronas 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 TDK Micronas GmbH filed Critical TDK Micronas GmbH
Priority to DE10062995A priority Critical patent/DE10062995A1/de
Priority to EP01990568A priority patent/EP1417579A2/de
Priority to PCT/EP2001/014792 priority patent/WO2002048880A2/de
Priority to JP2002550524A priority patent/JP2004516547A/ja
Priority to US10/204,122 priority patent/US20030172215A1/en
Publication of DE10062995A1 publication Critical patent/DE10062995A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

Unterbrecher-Steuereinrichtung zur Zugangssteuerung von Unterbrecherquellen (11, 12, 13, 14) an einen Prozessor (100) und zur Steuerung der dazugehörigen Programmverzweigung der aktuell ablaufenden Signalverarbeitung (Rx) mit einer aktuellen Priorität (Px) im Prozessor. Eingangsseitig enthält die Unterbrecher-Steuereinrichtung eine vorgegebene Anzahl von Unterbrecherschnittstellen (21, 22, 23, 24) zum Anschluß der Unterbrecherquellen, wobei jeder Unterbrecherschnittstelle (21, 22, 23, 24) ein Prioritätswert (Pi) und eine Adresse (Adi) zugeordnet ist. Eine Auswahleinrichtung (30) bestimmt aus den aktivierten Unterbrecherschnittstellen diejenige mit dem höchsten Prioritätswert (Pmax). Die Durchschaltung der einzelnen Unterbrecherschnittstellen (21, 22, 23, 24) auf den Prozessor (100) als Interrupt-Request (IR) ist von einem Prioritätsvergleicher (40) und einer Verzweigungslogik (60) abhängig, die in Abhängigkeit von dem ermittelten Prioritätswert (Pmax) und dem aktuellen Prioritätswert (Px) die Auslösung einer Kontextsicherung (I) im Prozessor (100) steuern, wobei die Verzweigungslogik die zugehörigen Verzweigungsadressen (Vi) möglichst erst am Ende der ablaufenden Kontextsicherung (I) bestimmt, um während der Kontextsicherung (I) noch eingehende Unterbrechungsanforderungen zu berücksichtigen.

Description

Die Erfindung betrifft eine Unterbrecher-Steuereinrichtung, mit der der Zugang einer Vielzahl von Unterbrecherquellen zu einem Prozessor gesteuert wird, die dort entsprechend der aktiven Unterbrecherquelle das laufende Progamm umschalten soll. Als Beispiel sei hier ein Prozessor in einem Kraftfahrzeug angegeben, der sich gerade in einem relativ unbedeutenden Programmbetrieb befindet, z. B. Regelung der Heizung und Lüftung. Meldet während dieser Zeit ein Temperatursensor im Motor eine Überhitzung, dann muß der Prozessor rasch auf ein Motorsteuerungsprogramm umschaltet werden, damit dort kein Schaden entsteht. Der Konfliktfall, bei dem zwei oder mehrere Unterbrecherquellen gleichzeitig Signale zum Programmwechsel senden, wird dadurch gelöst, daß die Unterbrecher-Steuereinrichtung die einzelnen Unterbrecherquellen erst nacheinander nach vorgegebenen Prioritäten an den Unterbrecherreingang des Prozessors durchschaltet. Hierzu ist jede Unterbrecherquelle an eine eigene Unterbrecherschnittstelle angeschlossen, die durch eine Adresse und einen vorgegebenen, insbesondere programmierbaren Prioritätswert individualisiert ist. Jeder Unterbrecherschnittstelle sind zudem in der Regel mindestens zwei setzbare Zustandsregister (= Flag) zugeordnet, aus denen die Unterbrecher-Steuereinrichtung einen von der Unterbrecherquelle ausgelösten Unterbrechungswunsch erkennt und andererseits der Unterbrecherquelle die Freigabe oder Sperrung der jeweiligen Unterbrecherschnittstelle anzeigt.
Alle Unterbrecherschnittstellen sind mit einer Auswahleinrichtung verkoppelt, die von den eingehenden Unterbrechungsanforderungen, diejenige mit der höchsten Priorität heraussucht. Im Anschluß daran vergleicht ein Prioritätsvergleicher die von der Auswahleinrichtung ermittelte höchste Priorität mit der Priorität des aktuell ablaufenden Programms und gibt dann ein Unterbrechungsanforderungssignal (= Interrupt Request) an den Unterbrechereingang des Prozessors ab, wenn die angeforderte Priorität höher ist als die Priorität des laufenden Programms. Wenn die Priorität geringer ist, läuft das aktuelle Programm ungestört weiter. Da der Prozessor auch bei einer hohen Priorität der Unterbrechungsanforderung in der Regel nicht sofort in das prioritätshöhere Programm wechseln kann, findet zwischen ihm und der Unterbrecher-Steuereinrichtung ein Austausch von Anforderungs- und Freigabesignalen statt, das üblicherweise als "handshake"-Verfahren bezeichnet wird. Eine Verzweigungslogik in der Unterbrecher-Steuerschaltung ist mit der Priorität oder Adresse der prioritätshöchsten Unterbrecherschnittstelle gespeist, die für die Programmverzweigung vom Prozessor abgefragt wird. Die Verzweigungslogik steuert in der Regel auch das "handshake"-Verfahren und liefert die zugehörigen Signale.
Die von der Verzweigungslogik abgegebenen Verzweigungsbefehle lösen im Prozessor unterschiedliche Unterbrecherroutinen aus (= Interrupt Routine), die der jeweiligen Priorität der durchzuschaltenden Unterbrecherschnittstelle zugeordnet sind, die jedoch immer auch eine Kontextsicherungsroutine enthalten. Während der Kontextsicherungsroutine werden in der Regel folgende Operationen durchgeführt: das im Prozessor laufende Programm wird angehalten, der Inhalt der im Prozessorkern vorhandenen Register wird in separate Speicherbereiche geladen, die Rücksprungadresse in das unterbrochene Programm wird bestimmt und gespeichert und einige Zustandssignale (= Flags) werden gesetzt oder gelöscht. In dem individuellen Teil der jeweiligen Unterbrecherroutinen werden beispielsweise in einige Register des Prozessorkerns neue Inhalte eingelesen, beispielsweise feste Koeffizienten usw.. Durch den bereits erwähnten Austausch von Anforderungs-, Bereitschafts- und Sperrsignalen zwischen der Unterbrecher-Steuereinrichtung und dem Prozessor wird sichergestellt, daß das laufende Programm nur an den dafür zulässigen Stellen unterbrochen werden kann.
Die Zeit der Datensicherung im Prozessor ist dabei nicht vernachläßigbar sondern erfordert je nach Unterbrecherroutine eine Vielzahl von Takten, beispielsweise zwischen 10 und 30 Takten. Während des Ablaufs der individuellen Unterbrecherroutine können neue Unterbrechungsanforderungen nur über das Setzen der entsprechenden Flags in der zugehörigen Unterbrecherschnittstelle erfaßt werden. Das Auswerten dieser gesetzten Flags kann erst wieder erfolgen, wenn die Unterbrecherroutine im Prozessor abgelaufen und dies durch entsprechende Signale der Verzweigungslogik angezeigt ist. Die Sperrzeit für neue Unterbrechungsanforderungen während der Kontextsicherung macht einen Teil der gesammten Sperrzeit, die auch als Latenzzeit bezeichnet wird und in der Regel der gesamten Interruptroutine zugeordnet wird, aus. Eine Verkürzung der Unterbrecherroutine durch eine Parallelisierung der Kontextsicherung und der anderen Operationen greift indessen stark in die Architektur des Prozessers ein und vergrößert dessen Schaltungsaufwand.
Beispielsweise ist im Datenblatt der Firma "Micronas Intermetall" vom 29. Sept. 1999 mit der Bezeichnung "CEVF-3 V3.2 Dashboard Controller-Emulator", Bestellnummer: 6251-479-3PD, Teil 9: "9. Interrupt Controller (IR) V1.5" auf den Seiten 71 bis 79 eine Unterbrecher-Steuereinrichtung beschrieben, die diese Funktionseinheiten enthält, vergleiche das auf Seite 72, in Fig. 9-1: "Block Diagramm" angegebene Blockschaltbild.
Aufgabe der Erfindung ist es, eine Unterbrecher-Steuereinrichtung anzugeben, die in Zusammenarbeit mit üblichen Prozessoren eine relativ geringe Latenzzeit aufweist.
Die Aufgabe wird erfindungsgemäß mit einer Unterbrecher-Steuereinrichtung nach dem Oberbegriff des Anspruchs 1 dadurch gelöst, daß von der Verzweigungslogik die Verzweigungsadresse verzögert, insbesondere erst gegen Ende der von den Unterbrechungssignalen ausgelösten Kontextsicherungsroutine abgegeben wird oder abrufbar ist.
Die Erfindung und vorteilhafte Ausbildung werden anhand der Figuren der Zeichnung näher erläutert:
Fig. 1 zeigt das Blockschaltbild einer Unterbrecher-Steuereinrichtung nach der Erfindung,
Fig. 2 zeigt ein Verzweigungsschema nach dem Stand der Technik,
Fig. 3 zeigt das entsprechende Verzweigunsschema nach der Erfindung und
Fig. 4 zeigt im Zeitdiagramm ein Verzweigungsbeispiel nach der Erfindung.
Das Blockschaltbild nach Fig. 1 zeigt die Funktionsblöcke einer Unterbrecher-Steuereinrichtung, die in der Regel als monolithisch integrierte Schaltung ausgebildet ist. Fig. 1 zeigt ferner vier externe Unterbrecherquellen 11, 12, 13, 14 und einen externen Prozessor 100 (= CPU). Die Unterbrecherquellen können dabei Prozessoren, Gebereinrichtungen oder Sensoren sein, die Daten oder analoge Signale s1, s2, s3, s4 erzeugen, die als Umschaltsignale für den Prozessor 100 dienen. Fig. 1 zeigt lediglich vier Unterbrecherquellen; im Regelfall können jedoch 16 oder mehr Unterbrecherquellen an eine Unterbrecher-Steuereinrichtung angeschlossen werden.
Jeder Unterbrecherquelle 11, 12, 13, 14 ist eine Unterbrecherschnittstelle 21, 22, 23, 24 zugeordnet, die die jeweilige Eingangsschaltung der Unterbrecher-Steuereinrichtung darstellt. Die Unterbrecherschnittstellen können dabei gleich oder je nach der Art der anschließbaren Unterbrecherquellen unterschiedlich ausgebildet sein. Zur Identifizierung enthält jede Unterbrecherschnittstelle eine eigene Adresse Adi und einen zugehörigen Prioritätswert Pi, der vorteilhafterweise über eine nicht dargestellte Busleitung auch programmierbar ist. Jeder Unterbrecherschnittstelle ist ferner ein Zustandsregisterbereich (= Flag-Bereich) zugeordnet, um durch Setzen der entsprechenden Zustandssignale (= Flag) einen externen Unterbrechungswunsch, die Annahmebereitschaft zum Empfang der von der Unterbrecherquelle gesendeten Signale oder andere Zustände anzuzeigen.
Eine Auswahleinrichtung 30 bestimmt aus den aktuellen Unterbrechungsanforderungen diejenige mit der höchsten Priorität Pmax zusammen mit der zugehörigen Adresse Adm. Ein Prioritätsvergleicher 40 vergleicht diesen Prioritätswert Pmax mit einem aktuell gültigen Prioritätswert Px und erzeugt ein Unterbrechungs Anforderungssignal IR, wenn der Prioritätswert Pmax höher als der aktuelle Prioritätswert Px ist. Der neue Prioritätswert Pmax wird nun als neuer aktueller Prioritätswert Px abgespeichert, beispielsweise in einem Register 35, um bei der nächsten Unterbrechungsanforderung wieder für den aktuellen Prioritätsvergleich zur Verfügung zu stehen. Wenn der Prioritätswert Pmax kleiner als der aktuelle Prioritätswert Px ist, dann braucht dieser Wert nicht abgespeichert zu werden.
Wenn der Prioritätsvergleicher 40 aus dem zugeführten Prioritätswert Pmax einen höheren Prioritätswert als den aktuellen Prioritätswert Px erkennt, dann meldet er über ein Unterbrecher- Anforderungssignal IR beim Prozessor 100 einen Unterbrechungswunsch an, der dort, sobald das laufende Programm Rx dies ermöglicht, bearbeitet wird. Die Bearbeitung löst zunächst eine für alle Prioritäsfälle einheitliche Kontextsicherung I (vergl. Fig. 3) des laufenden Programms Rx aus, wobei in der Kontextsicherung außer der Speicherung der Daten Dx auch die Speicherung der Rücksprungadresse Ax in das unterbrochene Programm enthalten ist. Erst nach der Kontextsicherung kann der Prozessorkern auf das neue Programm vorbereitet werden, wozu er natürlich mitgeteilt bekommen muß, welches der gespeicherten Programm er nun bearbeiten soll. Wenn die Kontextsicherung I beendet ist, teilt der Prozessor 100 der Verzweigungslogik 60 über Steuersignale Vs, eventuell ebenfalls über eine "handshake"-Verfahren, mit, daß er von der Unterbrecher- Steuereinrichtung nun die erforderliche Information über das anzusteuernde Programm bekommen will oder er frägt diese Informationen aus der Verzweigungslogik 60 oder einem Register 55, das zuvor von der Verzweigungslogik entsprechend geladen worden ist. Dar Prozessor löst mit dieser Information intern die Verzweigung aus, indem der Programmzeiger auf die Startadresse des zugehörigen Verarbeitungsprogramms springt.
Das Verzweigungsschema von Fig. 2 zeigt den Ablauf bisheriger Unterbrecherroutinen, bei denen die Verzweigungsadressen zu Beginn der Unterbrecherroutine gebildet werden. Zunächst wird davon ausgegangen, daß im Prozessor 100 eine Signalverarbeitung Rx abläuft, der die Priorität Px zugeordnet ist. Während der laufenden Signalverarbeitung Rx wird eine Unterbrecherquelle mit der Priorität Pi aktiv, die beispielsweise größer als die bisherige Priorität Px ist. Wenn die Priorität Pi kleiner als die bisherige Px wäre, dann würde sich in der Signalverarbeitung des Prozessors 100 nichts ändern und das Programm Rx weiterlaufen, vergleiche den Pfeil nach rechts, der auf das Programm Rx hinweist.
Im angenommen Fall mit Pi < Px wird zunächst die Verzweigungslogik 60 mit den möglichen Verzweigungsadressen Vi aktiviert. Als mögliche Verzweigungsadressen sind angegebenen V0, V2, V3, V4 und V6, wobei die kleinere Zahl die größere Priorität angibt. Die zuerst aufgerufene Verzweigungsadresse V6 löst im Prozessor 100 eine Unterbrecherroutine I6 aus, die eine Datensicherung Dx der aktuell laufenden Signalverarbeitung Rx und eine Rücksprungadresse Ax in dieses Programm enthält. Die erforderliche Zeitdauer der Unterbrecherroutine ist durch den nebenstehenden Zeitpfeil t dargestellt. Während der Unterbrecherroutine kann kein neuer Unterbrechungsbefehl bearbeitet werden. Die zugehörige Zeit wird, wie bereits erwähnt, als Latenzzeit bezeichnet, vgl. die Pfeile L6, L4, L3. Nachdem die Unterbrecherroutine I6 abgelaufen ist, läuft der Prozessor 100 im Programm R6. Ein zwischenzeitlich eingegangener Unterbrechungswunsch mit der Priorität P4 kann erst jetzt bearbeitet werden. Die Verzweigungslogik 60 generiert in Abhängigkeit von diesem Unterbrechungswunsch einen Verzweigungsbefehl V4, der die Unterbrecherroutine I4 mit Datensicherung D6 und Rücksprungadresse A6 auslöst. Ein relativ früh eingegangener Unterbrechungswunsch mit der höheren Priorität P3 kann erst nach dem Zeitinterval t3 bearbeitet werden, wenn die Unterbrecherroutine 14 abgeschlossen ist. Der Prozessor 100 befindet sich dann im Signalverarbeitungsprogramm R4. Bis zum Ende von t3 hat der Prozessor signalisiert, daß er sich in einer nicht unterbrechbaren Unterbrecherroutine befindert. Wenn der Prozessor dieses Sperrsignal aufhebt, löst die Verzweigungslogik 60 über den Verzweigungsbefehl V3 das Unterbrechungsprogramm I3 mit der Datensicherung D4 und der Rücksprungadresse A4 aus, das nach der Latenzzeit L3 beendet ist. Der Prozessor 100 befindet sich nun im Programmablauf R3. Dieses Programm wird entweder abgearbeitet oder durch einen Unterbrechungswunsch mit höherer Priorität, also P0, P1 oder P2, unterbrochen. Wenn die Anzahl der Prioritätsstufen geringer als die Anzahl der anschließbaren Unterbrecherquellen ist, dann kann über die Auswahleinrichtung 30 bestimmt werden, daß bei prioritätsgleichen Unterbrechungsanforderungen diejenige sich durchsetzen soll, die die kleinere oder die größere Adresse Adi aufweist.
In Fig. 3 ist im Vergleich zu Fig. 2 das Verzweigungsschema einer Unterbrecher-Steuereinrichtung nach der Erfindung dargestellt. Ausgangspunkt ist wie bei dem Verzweigungsschema von Fig. 2 eine aktuelle Signalverarbeitung Rx im angeschlossenen Prozessor 100, der eine Priorität Px zugeordnet ist. Eine Unterbrechungsanforderung Pi mit dem angenommenen höheren Prioritätswert P6 löst über den Prioritätsvergleicher 40 entsprechend der von ihm abgegebenen Unterbrechungs-Anforderung IR eine einheitliche Kontextsicherung I des laufenden Programms Rx mit Datensicherung Dx und Rücksprungadresse Ax aus. Im Gegensatz zu Fig. 2 wird die Verzweigungslogik erst nach der Kontextsicherung I abgefragt, die dadurch die Möglichkeit hat, die letztgültige Verzweigungsadresse Vi noch bis zum zeitlichen Ende der Kontextssicherung I zu aktualisieren. Die Verzweigung der Programme findet also erst nach der Kontextsicherung statt. In Fig. 3 sind hierbei die möglichen Verzweigungsadressen V6, V4, V3 mit den zugehörigen Programmen R6, R4, R3 angegeben. Nach dem Sprung in das neue Programm gilt dieses Programm nun als aktuelles Programm Rx mit der Priorität Px. Für einen neu eingehenden Unterbrechungswunsch einer Unterbrecherquelle beginnt der Funktionsablauf wieder oben, dies ist in Fig. 3 durch die gestrichelte Linie von R6 zum Anfang des Verzweigungsschemas dargestellt.
Fig. 4 zeigt im Zeitdiagramm anhand eines angenommenen Beispieles einige nach der Erfindung ablaufenden Verzweigungsvorgänge. Die Dauer der einzelnen Kontextsicherungen I ist dabei nicht mehr wie in Fig. 2 an die jeweilige Priorität Pi gekoppelt, sondern es handelt sich um einheitliche Routinen, weil der Prozessor 100 erst am Ende der Kontextsicherung die entsprechende Verzweigungsinformation Vi erhält. Die für die Kontextsicherung I erforderlichen Sperrzeiten L sind in Fig. 3 daher alle gleich groß, denn die ungünstigste Anzahl von zu sichernden Registern muß nun für die einheitliche Kontextsicherung I berücksichtigt werden. Während der Sperrzeit L jeder Kontextsicherung I findet eine Datensicherung Dx, D4, D4' des jeweils aktuell laufenden Programms Rx, R4, R4 mit der Sicherung der zugehörigen Rücksprungadresse Ax, A4, A4' statt. Eine Vorbereitungsphase auf das neue Programm ist während der Sperrzeit L nicht möglich oder nur, wenn sie für alle Prioritäten einheitlich ist. Die Sperrzeiten für die einzelnen Vorbereitungsphasen schließen sich an die Sperrzeit L der zugehörigen Kontextsicherung I an, sind jedoch in Fig. 4 nicht angegeben. Der Zeitgewinn bei Unterbrechungsanfragen wird aus dem Zeitdiagramm von Fig. 4 deutlich.
Zunächst wird das laufende Programm Rx durch eine Unterbrechungsanforderung mit der Priorität P6 unterbrochen. Die zugehörige erste Kontextsicherung I1 erfordert die Zeit L. Ein Unterbrechungswunsch mit der Priorität P4 hat zunächst keine Auswirkungen, denn die I1 läuft während der Zeit L weiter. Erst unmittelbar vor dem Abschluß wird die Verzweigungslogik 60 abgefragt, die als Verzweigungsadresse V4 bestimmt, die dem zeitlich später eingehenden Unterbrechungswunsch mit der Priorität P4 entspricht. Nach Abschluß dieser ersten Kontextsicherung I1 arbeitet der Prozessor 100 mit dem Programm R4. Die erforderliche Sperrzeit bis das angeforderte Programm R4 aktiv wird, ist durch den Pfeil t4 dargestellt. Bei einem Verzweigungsschema entsprechend Fig. 2 wäre mindestens die volle Sperrzeit L zur Zeit t4 hinzugekommen.
Während des Programmablaufs R4 tritt ein Unterbrechungswunsch mit der Priorität P3 auf. Die Kontextsicherungsroutine, zweite Kontextsicherung I2 wird daher von dem Prioritätsvergleicher 40 erneut gestartet und darin die Daten D4 des aktuell laufenden Programms R4 mit der Rücksprungadresse A4 gesichert. Während der Kontextsicherung I2 meldet sich ein weiterer Unterbrechungswunsch mit der Priorität P5, also ein nachgeordneter Prioritätswert, an. Nachdem die Kontextsicherung I2 abgelaufen ist, bestimmt die Verzweigungslogik 60, die Verzweigungsadresse V3. Der Prozessor 100 läuft nun im Programm R3, da kein Unterbrechungswunsch mit höherer Priorität vorliegt. Da dem Programm R3 eine Verzweigung voraus ging, nimmt der Prozessor nach Beendigung dieses Programms (= End) das unterbrochene Programm R4 wieder auf und springt dazu in die festgehaltene Rücksprungadresse A4 der zweiten Kontextsicherung I2. Das Programm R4 kann jedoch nicht zu Ende geführt werden, weil zwischenzeitlich eine Unterbrechungsanforderung mit dem Prioritätswert P2 eingeht. Die Verzweigungslogik 60 löst hierzu wieder eine Kontextsicherungsroutine I2, dritte Kontextsicherung I3, mit einer Datensicherung D4' und einer Rücksprungadresse A4' des nochmals unterbrochenen Programms R4 aus. Kurz vor Ende dieser Routine I3 wird ein neu eingegangener Unterbrechungswunsch mit der höheren Priorität P1 erkannt. Am Ende der Kontextsicherung I3 wird daher die Verzweigungsadresse V1 von der Verzweigungslogik 60 bestimmt. Der Prozessor arbeitet daher im Programm R1 und nicht im Programm R2 weiter. Die zugehörige Sperrzeit t1 ist sehr kurz.
Die späte Ausgabe der Verzweigungsadressen Vi wird auf besonders vorteilhafte Weise über die Modifikation des Inhalts eines in der Unterbrecher-Steuereinrichtung enthaltenen Registers erreicht, das als "Vector-Table-Base"-Register (= VTB) verwendet wird und als Inhalt eine Adresse enthält.
Dieses Register, dessen Inhalt eine Adresse ist, wird am Ende der Kontextsicherung I vom Prozessor 100 abgefragt und aus dem modifizierten Inhalt, der nach wie vor die ursprüngliche Adresse und an vorher nicht verwendeten Stellen die zusätzliche Information enthält, erfährt dann der Prozessor welche Programmadresse abzurufen ist.
Selbstverständlich kann eine Information über die Verzweigungsadresse Vi auch direkt über geeignete Datenverbindungen zum Prozessor gelangen und nicht nur indirekt über eine Adress- oder Datenmodifikation eines vom Prozessor angesteuerten Registers. Darüber hinaus ist auch eine Sicherungseinrichtung zweckmäßig, die beispielsweise über eine Überprüfung der Datenbreite oder der Zugriffsart erkennt, daß die auf dem Datenbus vorhandene Daten gar nichts mit einer möglichen Programmverzweigung zu tun haben. Hierdurch können Daten auf dem Bus, die zufälligerweise auch als Verzweigungsinformation interpretierbar sind, erkannt, gesperrt oder unwirksam macht werden. Informationen über die Zugriffsart können beispielsweise über entsprechende Flags signalisiert werden..
Ob die einzelnen Funktionseinheiten der Unterbrecher-Steuereinrichtung ganz oder teilweise in Hard- oder Software-Technik ausgeführt sind, ist für die Realisierung der Erfindung unwesentlich. Die spezielle Ausführungsart orientiert sich an der Optimierung folgender Kriterien: erforderliche Chipfläche, Anzahl der Anschlußbeine, Verarbeitungsgeschwindigkeit, Flexibilität usw.

Claims (6)

1. Unterbrecher-Steuereinrichtung zur Zugangssteuerung von Unterbrecherquellen (11, 12, 13, 14) zu einem Signaleingang eines Prozessors (100) und zur Verzweigung eines im Prozessor aktuell ablaufenden Programms (Rx), wobei
die Unterbrecher-Steuereinrichtung eingangsseitig eine vorgegebene Anzahl von Unterbrecherschnittstellen (21, 22, 23, 24) zum Anschluß der Unterbrecherquellen enthält,
jeder Unterbrecherschnittstelle (21, 22, 23, 24) ein, insbesondere ein programmierbarer Prioritätswert (Pi) und eine Adresse (Adi) zugeordnet ist,
eine Auswahleinrichtung (30) aus den von den Unterbrecherquellen aktivierten Unterbrecherschnittstellen diejenige mit dem höchsten Prioritätswert (Pmax)und der zugehörigen Adresse (Adm) heraussucht,
rein Prioritätsvergleicher (40), ein Unterbrecher-Anforderungssignal (IR) in Abhängigkeit von dem von der Auswahleinrichtung bestimmten höchsten Prioritätswert (Pmax) und einem aktuellen Prioritätswert (Px) erzeugt, daß im Prozessor (100) eine Kontextsicherung (I) auslöst, und
eine Verzweigungslogik (60) entsprechend dem von der Auswauhleinrichtung (30) bestimmten höchsten Prioritätswert (Pmax) und eine Verzweigungsadresse (Vi) erzeugt,
dadurch gekennzeichnet, daß
die Bestimmung der Verzweigungsadresse (Vi) in der Verzweigungslogik (60) erst gegen Ende der Kontextsicherung durch die Verzweigungslogik (60) erfolgt und an den Prozessor (100) abgegeben wird oder von diesem abrufbar ist, wobei der aktuelle höchste Prioritätswert (Pmax) berücksichtigt wird.
2. Unterbrecher-Steuereinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß bei gleichen Prioritätswerten (Pi) der aktivierten Unterbrecherschnittstellen (21, 22, 23, 24) die Auswahleinrichtung (30) nach einem vorgegebenen Hilfskriterium, insbesondere einer den Adressen (Adi) entsprechenden Wertigkeit, durchführt.
3. Unterbrecher-Steuereinrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Verzweigungsadresse (Vi) den Inhalt eines "Vector-Tabel-Base"-Registers (55), mit dessen Adressierung durch den Prozessor (100) der Unterbrecher-Steuereinrichtung insbesondere die Bereitschaft zur Verzweigung signalisiert wird, derart modifiziert, daß der Prozessor daraus die für den Programmablauf erforderliche eigene Verzweigungsadresse erkennt.
4. Unterbrecher-Steuereinrichtung nach Anspruch 1 oder 3, dadurch gekennzeichnet, daß Verzweigungsadresse (Vi) als Adressenmodifikationen ausgebildet ist.
5. Unterbrecher-Steuereinrichtung nach Anspruch 1 oder 3, dadurch gekennzeichnet, daß die Verzweigungsadresse (Vi) als Datenmodifikation auf einer bestimmten Adresse ausgebildet ist.
6. Unterbrecher-Steuereinrichtung nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß eine Sicherungseinrichtung die irrtümliche Ausgabe einer Unterbrechungs-Anforderung (IR) oder einer Verzweigungsadresse (Vi) vor der Weitergabe an den Prozessor (100) erkennen, sperren oder unwirksam machen.
DE10062995A 2000-12-16 2000-12-16 Unterbrecher-Steuereinrichtung Ceased DE10062995A1 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE10062995A DE10062995A1 (de) 2000-12-16 2000-12-16 Unterbrecher-Steuereinrichtung
EP01990568A EP1417579A2 (de) 2000-12-16 2001-12-14 Unterbrecher-steuereinrichtung
PCT/EP2001/014792 WO2002048880A2 (de) 2000-12-16 2001-12-14 Unterbrecher-steuereinrichtung
JP2002550524A JP2004516547A (ja) 2000-12-16 2001-12-14 中断制御装置
US10/204,122 US20030172215A1 (en) 2000-12-16 2001-12-14 Interrupt- controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10062995A DE10062995A1 (de) 2000-12-16 2000-12-16 Unterbrecher-Steuereinrichtung

Publications (1)

Publication Number Publication Date
DE10062995A1 true DE10062995A1 (de) 2002-07-11

Family

ID=7667591

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10062995A Ceased DE10062995A1 (de) 2000-12-16 2000-12-16 Unterbrecher-Steuereinrichtung

Country Status (5)

Country Link
US (1) US20030172215A1 (de)
EP (1) EP1417579A2 (de)
JP (1) JP2004516547A (de)
DE (1) DE10062995A1 (de)
WO (1) WO2002048880A2 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030004763A (ko) * 2001-07-06 2003-01-15 삼성전자 주식회사 인터럽트 처리장치
CN100382017C (zh) * 2002-07-09 2008-04-16 徐肇昌 子序网模块及其调用方法
WO2004114132A1 (ja) * 2003-06-20 2004-12-29 Fujitsu Limited 割り込み制御方法、割り込み制御装置及び割り込み制御プログラム
EP1531395A1 (de) * 2003-11-17 2005-05-18 Infineon Technologies AG Verfahren zum Ermitteln von Informationen über Prozesse bei der Ausführung eines Programms in einer programmgesteuerten Einheit
US7769937B2 (en) * 2005-02-28 2010-08-03 Koninklijke Philips Electronics N.V. Data processing system with interrupt controller and interrupt controlling method
GB2433794B (en) 2005-12-21 2010-08-18 Advanced Risc Mach Ltd Interrupt controller utiilising programmable priority values
FR2896934A1 (fr) * 2006-02-01 2007-08-03 Parrot Sa Composant integre comprenant des circuits de gestion de l'alimentation et de gestion des etats d'urgence
JP5308383B2 (ja) * 2010-03-18 2013-10-09 パナソニック株式会社 仮想マルチプロセッサシステム
JP7249968B2 (ja) * 2020-03-09 2023-03-31 株式会社東芝 情報処理装置およびストレージ
CN113138949A (zh) * 2021-04-29 2021-07-20 上海阵量智能科技有限公司 中断控制器、中断控制方法、芯片、计算机设备以及介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3984820A (en) * 1975-06-30 1976-10-05 Honeywell Information Systems, Inc. Apparatus for changing the interrupt level of a process executing in a data processing system
US4972342A (en) * 1988-10-07 1990-11-20 International Business Machines Corporation Programmable priority branch circuit
US5287523A (en) * 1990-10-09 1994-02-15 Motorola, Inc. Method for servicing a peripheral interrupt request in a microcontroller
JPH0721035A (ja) * 1993-07-02 1995-01-24 Mitsubishi Denki Eng Kk データ処理装置
US5850555A (en) * 1995-12-19 1998-12-15 Advanced Micro Devices, Inc. System and method for validating interrupts before presentation to a CPU
US6298410B1 (en) * 1997-12-31 2001-10-02 Intel Corporation Apparatus and method for initiating hardware priority management by software controlled register access
US6021458A (en) * 1998-01-21 2000-02-01 Intel Corporation Method and apparatus for handling multiple level-triggered and edge-triggered interrupts
JP3097648B2 (ja) * 1998-02-04 2000-10-10 日本電気株式会社 情報処理装置及び情報処理方法
US6081867A (en) * 1998-05-20 2000-06-27 Sony Corporation Software configurable technique for prioritizing interrupts in a microprocessor-based system
KR100317237B1 (ko) * 1999-10-01 2001-12-22 윤종용 유사 벡터 방식의 인터럽트 컨트롤러 및 그것의 인터럽트 처리 방법

Also Published As

Publication number Publication date
WO2002048880A2 (de) 2002-06-20
WO2002048880A3 (de) 2004-02-26
US20030172215A1 (en) 2003-09-11
JP2004516547A (ja) 2004-06-03
EP1417579A2 (de) 2004-05-12

Similar Documents

Publication Publication Date Title
DE1913059C2 (de) Programmunterbrechungseinrichtung für eine Datenverarbeitungsanlage
DE2744531A1 (de) Elektronische datenverarbeitungsanlage
DE2210704A1 (de) Verfahren und Vorrichtung zur Datenverarbeitung
DE2657848A1 (de) Steuereinheit fuer ein datenverarbeitungssystem
DE3726168C2 (de)
DE10062995A1 (de) Unterbrecher-Steuereinrichtung
DE2801518A1 (de) Datenverarbeitungssystem mit speicher-schutzeinrichtung
EP1230590B1 (de) Prozessorsystem
DE2429067A1 (de) 8speicherschaltung
EP0799441B1 (de) Verfahren zur steuerung von technischen vorgängen
DE10062996B4 (de) Unterbrecher-Steuereinrichtung mit Prioritätsvorgabe
DE4340551A1 (de) Programmspeichererweiterung für einen Mikroprozessor
DE3040429A1 (de) Ueberwachungseinrichtung fuer ein computersystem
DE2838887C2 (de) Datenverarbeitungsanlage mit einer Schaltung für Unterbrechungsanforderungen zur Übernahme des gemeinsamen Busses
EP0677147B1 (de) Controller in einem rechenwerk
DE2632561A1 (de) Steuereinrichtung fuer eine echtzeitsteuerung, insbesondere fuer fernsprechvermittlungsanlagen
DE10027845B4 (de) Submodul für die Kontrolle einer Datenwarteschlange
EP2018604B1 (de) Verfahren zum betreiben eines steuergeräts
DE102009009730B4 (de) Lokale Timer-Zelle deren Verwendung und Verfahren zum Betreiben eines Moduls
DE2612316C3 (de) Anordnung zur Steuerung des Multiplexbetriebes zwischen mehreren Kanälen und einer zentralen Steuerschaltung eines Ein-/Ausgabewerkes in einem Datenverarbeitungssystem
EP0439559B1 (de) Verfahren zur datenübertragung über einen seriellen datenbus in verteilten systemen
DE2462728C2 (de) Einrichtung zur Einstellung sowie zur Steuerung der Abarbeitung von verschiedenen Betriebszuständen einer Datenverarbeitungseinrichtung
DE2606295A1 (de) Verfahren zum ausfuehren einer datenuebertragung zwischen peripheren einheiten und einem arbeitsspeicher ueber einen multiplexkanal
DE102013204037B4 (de) Mikrocomputer
WO2007071589A1 (de) Datenverarbeitungssystem mit mehreren ausführungseinheiten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G06F 9/44 AFI20051017BHDE

8131 Rejection