DE10062995A1 - Unterbrecher-Steuereinrichtung - Google Patents
Unterbrecher-SteuereinrichtungInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/4812—Task 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.
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.
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)
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)
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 | 윤종용 | 유사 벡터 방식의 인터럽트 컨트롤러 및 그것의 인터럽트 처리 방법 |
-
2000
- 2000-12-16 DE DE10062995A patent/DE10062995A1/de not_active Ceased
-
2001
- 2001-12-14 EP EP01990568A patent/EP1417579A2/de not_active Withdrawn
- 2001-12-14 US US10/204,122 patent/US20030172215A1/en not_active Abandoned
- 2001-12-14 WO PCT/EP2001/014792 patent/WO2002048880A2/de not_active Application Discontinuation
- 2001-12-14 JP JP2002550524A patent/JP2004516547A/ja active Pending
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 |