EP1417579A2 - Interrupt-controller - Google Patents

Interrupt-controller

Info

Publication number
EP1417579A2
EP1417579A2 EP01990568A EP01990568A EP1417579A2 EP 1417579 A2 EP1417579 A2 EP 1417579A2 EP 01990568 A EP01990568 A EP 01990568A EP 01990568 A EP01990568 A EP 01990568A EP 1417579 A2 EP1417579 A2 EP 1417579A2
Authority
EP
European Patent Office
Prior art keywords
interrupt
processor
address
control device
branch
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP01990568A
Other languages
German (de)
French (fr)
Inventor
Jörg 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
Publication of EP1417579A2 publication Critical patent/EP1417579A2/en
Withdrawn legal-status Critical Current

Links

Classifications

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

Definitions

  • the invention relates to an interrupter control device, with which the access of a plurality of interrupter sources to a processor is controlled, which there corresponds to the active one
  • Interrupt source should switch the current program.
  • a processor in a motor vehicle that is currently in a relatively insignificant program mode, e.g. Regulation of heating and ventilation. If a temperature sensor in the motor reports overheating during this time, the processor must be quickly switched to an engine control program so that there is no damage.
  • the conflict in which two or more interrupter sources simultaneously send signals for changing the program is solved in that the interrupter control device only switches through the individual interrupter sources one after the other according to predetermined priorities to the interrupter input of the processor.
  • each breaker source is connected to its own breaker interface, which is individualized by an address and a predetermined, in particular programmable, priority value.
  • All interrupt interfaces are coupled to a selector that selects the one with the highest priority from the incoming interrupt requests.
  • interrupt routine which are assigned to the respective priority of the interrupt interface to be switched through, but which always also contain a context-saving routine.
  • the following operations are usually carried out during the context-saving routine: the program running in the processor is stopped, the contents of the registers present in the processor core are loaded into separate memory areas, the
  • the time of data backup in the processor is not negligible but, depending on the interrupt routine, requires a large number of cycles, for example between 10 and 30 cycles.
  • new interrupt requests can only be detected by setting the corresponding flags in the associated interrupt interface. These set flags can only be evaluated again when the interrupt routine in the processor has expired and this is indicated by corresponding signals from the branch logic.
  • the lockout time for new interrupt requests during the context backup makes up part of the total lockout time, which is also referred to as latency and is usually assigned to the entire interrupt routine.
  • a shortening of the interrupt routine by a parallelization of the context protection and the other operations intervenes strongly in the architecture of the processor and increases its switching effort. For example, in the data sheet of the company "Micronas Intermetall" from September 29, 1999 with the
  • the object of the invention is to provide an interrupter control device which, in cooperation with conventional processors, has a relatively low latency.
  • the object is achieved with an interrupter control device according to the preamble of claim 1 in that the branching address is delayed by the branching logic, in particular is only released or can be called up towards the end of the context-saving routine triggered by the interrupt signals.
  • FIG. 1 shows the block diagram of an interrupter control device according to the invention
  • FIG. 2 shows a branching diagram according to the prior art
  • Figure 3 shows the corresponding branching scheme according to the invention and Figure 4 shows in the timing diagram a branching example according to the invention.
  • FIG. 1 shows the functional blocks of an interrupter control device, which is generally designed as a monolithically integrated circuit.
  • the interrupt sources can be processors, transmitter devices or sensors that generate data or analog signals sl, s2, s3, s4 that serve as switchover signals for the processor 100.
  • Figure 1 shows only four interrupt sources; as a rule, however, 16 or more interrupter sources can be connected to an interrupter control device.
  • Each breaker source 11, 12, 13, 14 is assigned an breaker interface 21, 22, 23, 24, which represents the respective input circuit of the breaker control device.
  • the interrupter interfaces can be designed the same or different depending on the type of connectable interrupter sources. Each contains for identification
  • Interrupt interface has its own address Adi and an associated priority value Pi, which is advantageously also programmable via a bus line (not shown).
  • a selection device 30 determines from the current interrupt requests the one with the highest priority Pmax together with the associated address Adm.
  • a priority comparator 40 compares this priority value Pmax with a currently valid priority value Px and generates an interrupt request signal IR if the priority value Pmax is higher than the current priority value Px.
  • the new priority value Pmax is now stored as the new current priority value Px, for example in a register 35, in order to be available again for the current priority comparison at the next interrupt request. If the priority value Pmax is less than the current priority value Px, then this value need not be saved.
  • the processing first triggers a context backup I (see FIG. 3) of the current program Rx, which is uniform for all priority cases, the context backup not only storing the data Dx but also storing the
  • Return address Ax is included in the interrupted program. Only after the context has been saved can the processor core be prepared for the new program, for which it must of course be informed which of the stored programs it should now process.
  • the processor 100 notifies the branching logic 60 via control signals Vs, possibly also via a "handshake" method, that it now wants to get the required information about the program to be controlled or that it asks from the interrupt control device this information from the branch logic 60 or a register 55 which has previously been loaded accordingly by the branch logic. With this information, the processor triggers the branch internally by jumping the program pointer to the start address of the associated processing program.
  • the branching diagram of FIG. 2 shows the sequence of previous interrupt routines in which the branch addresses are formed at the beginning of the interrupt routine.
  • a signal processing Rx is running in the processor 100, which is assigned the priority Px.
  • an interrupter source with the priority Pi becomes active, which for example is greater than the previous priority Px. If the priority Pi were lower than the previous Px, then nothing would change in the signal processing of the processor 100 and the program Rx would continue, compare the arrow pointing to the right, which indicates the program Rx.
  • the branch logic 60 with the possible branch addresses Vi is first activated.
  • V0, V2, V3, V4 and V6 are given as possible branch addresses, the smaller number indicating the higher priority.
  • the first called branch address V6 triggers an interrupt routine 16 in the processor 100, which contains a data backup Dx of the signal processing Rx currently running and a return address Ax in this program.
  • the required time duration of the interrupt routine is shown by the adjacent time arrow t. No new interrupt command can be processed during the interrupt routine.
  • the associated time is referred to as latency, cf. arrows L6, L4, L3.
  • the processor 100 runs in the program R6. An interruption request received in the meantime with priority P4 can only be processed now.
  • the branch logic 60 generates a branch instruction V4 depending on this interrupt request
  • Interrupt routine 14 with data backup D6 and return address A6 is triggered.
  • a relatively early interrupt request with the higher priority P3 can only be processed after the time interval t3 when the interrupt routine 14 has been completed.
  • the processor 100 is then in the signal processing program R4. By the end of t3, the processor has signaled that it is in an uninterruptible interrupt routine. If the processor releases this blocking signal, the branch logic 60 triggers the interrupt program 13 with the data backup D4 and the return address A4 via the branch instruction V3, which ends after the latency period L3.
  • Processor 100 is now in program sequence R3. This program is either processed or interrupted by an interrupt request with a higher priority, i.e. PO, PI or P2.
  • FIG. 3 the branching diagram of an interrupter control device according to the invention is shown in comparison to FIG.
  • the starting point is current signal processing Rx in the connected processor 100, to which a priority Px is assigned.
  • An interrupt request Pi with the assumed higher priority value P6 triggers a uniform context backup I of the current program Rx with data backup Dx and return address Ax via the priority comparator 40 in accordance with the interrupt request IR it issues.
  • FIG. 3 the branching diagram of an interrupter control device according to the invention is shown in comparison to FIG.
  • the starting point is current signal processing Rx in the connected processor 100, to which a priority Px is assigned.
  • An interrupt request Pi with the assumed higher priority value P6 triggers a uniform context backup I of the current program Rx with data backup Dx and return address Ax via the priority comparator 40 in accordance with the interrupt request IR it issues.
  • FIG. 3 the branching diagram of an interrupter control device according to the invention is shown in comparison to FIG.
  • the starting point is current signal processing Rx in
  • the branch logic is only queried for the context save I, which thereby has the possibility of updating the last valid branch address Vi up to the end of the context save I.
  • the programs are only branched after the context has been saved. 3 shows the possible branch addresses V6, V4, V3 with the associated programs R6, R4, R3. After jumping into the new program, this program is now considered the current program Rx with priority Px. For a new incoming interrupt request from an interrupter source, the functional sequence starts again at the top, this is shown in FIG. 3 by the dashed line from R6 to the beginning of the branching scheme.
  • FIG. 4 shows in the time diagram, using an assumed example, some branching processes taking place according to the invention.
  • the duration of the individual context backups I is no longer linked to the respective priority Pi, as in FIG. 2, but rather it is a matter of uniform routines because the processor 100 only receives the corresponding branch information Vi at the end of the context backup.
  • the blocking times L required for context saving I are therefore all of the same size in FIG. 3, because the most unfavorable number of registers to be saved must now be taken into account for uniform context saving I.
  • a data backup Dx, D4, D4 'of the currently running program Rx, R4, R4 with the backup of the associated return address Ax, A4, A4' takes place.
  • a preparation phase for the new program is not possible during the blocking period L or only if it is uniform for all priorities.
  • the blocking times for the individual preparation phases follow the blocking time L of the associated context protection I, but are not indicated in FIG. 4.
  • the time saved in the case of interruption requests is clear from the time diagram in FIG. 4.
  • the running program Rx is interrupted by an interrupt request with priority P6.
  • the associated first context protection Ii requires time L.
  • An interruption request with priority P4 initially has no effect, because I) continues to run during time L.
  • branch logic 60 Only immediately before completion is the branch logic 60 queried, which determines as branch address V4, which corresponds to the interrupt request with the priority P4 which is received later.
  • the processor 100 works with the program R4.
  • the required blocking time until the requested program R4 becomes active is shown by the arrow t4. With a branching scheme according to FIG. 2, at least the full blocking time L would have been added at time t4.
  • the branch logic 60 determines the branch address V3.
  • the branching logic 60 again triggers a context backup routine I 2 , third context backup I, with a data backup D4 'and a return address A4' of the again interrupted program R4.
  • branch address VI is therefore determined by branch logic 60.
  • the processor therefore continues to work in program R1 and not in program R2.
  • the associated blocking time tl is very short.
  • This register the content of which is an address, is queried by the processor 100 at the end of the context save I, and the processor then learns which program address to retrieve from the modified content, which still contains the original address and the additional information at previously unused locations is.
  • branch address Vi can also reach the processor directly via suitable data connections and not only indirectly via an address or data modification of a register controlled by the processor.
  • a security device is also expedient, which recognizes, for example, by checking the data width or the type of access, that the data on the data bus have nothing to do with a possible program branching.
  • data on the bus which can also be interpreted as branch information, can be recognized, blocked or rendered ineffective.
  • Information about the type of access can be signaled, for example, by means of corresponding flags.

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

The invention relates to an interrupt controller for controlling the accessing of a processor (100) by interrupt sources (11, 12, 13, 14) and for controlling the associated branching of the signal processing programme (Rx) that is being executed with a current priority (Px) in the processor. The input side of the interrupt controller contains a predetermined number of interrupt interfaces (21, 22, 23, 24) for connecting the interrupt sources and a priority value (Pi) and an address (Adi) is allocated to each interrupt interface (21, 22, 23, 24). A selection device (30) determines the interrupt interfaces that have the highest priority value (Pmax) amongst the activated interrupt interfaces. The multiplexing of the individual interrupt interfaces (21, 22, 23, 24) to the processor (100) as an interrupt request (IR) is dependent on a priority comparator (40) and a branching logic (60), which control the triggering of a context backup (I) in the processor (100), based on the determined priority value (Pmax) and the current priority value (Px). If possible, the branching logic only determines the associated branching addresses (Vi) at the end of the context backup (I) that is being executed, in order to take into consideration the interrupt requests that are received during said context backup (I).

Description

Unterbrecher-Steuereinrichtung Interrupt controller means
Die Erfindung betrifft eine Unterbrecher-Steuereinrichtung, mit der der Zugang einer Vielzahl von Unterbrecherquellen zu einem Prozessor gesteuert wird, die dort entsprechend der aktivenThe invention relates to an interrupter control device, with which the access of a plurality of interrupter sources to a processor is controlled, which there corresponds to the active one
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.Interrupt source should switch the current program. As an example, here is a processor in a motor vehicle that is currently in a relatively insignificant program mode, e.g. Regulation of heating and ventilation. If a temperature sensor in the motor reports overheating during this time, the processor must be quickly switched to an engine control program so that there is no damage. The conflict in which two or more interrupter sources simultaneously send signals for changing the program is solved in that the interrupter control device only switches through the individual interrupter sources one after the other according to predetermined priorities to the interrupter input of the processor. For this purpose, each breaker source is connected to its own breaker interface, which is individualized by an address and a predetermined, in particular programmable, priority value. Each interrupt interface is generally also assigned at least two settable status registers (= flag), from which the interrupt control device recognizes an interrupt request triggered by the interrupt source and, on the other hand, indicates to the interrupt source that the respective interrupt interface has been enabled or disabled.
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.All interrupt interfaces are coupled to a selector that selects the one with the highest priority from the incoming interrupt requests. A priority comparator then compares the highest priority determined by the selection device with the priority of the program currently running and then sends an interrupt request signal (= interrupt request) to the interrupt input of the processor if the requested priority is higher than the priority of the current program. If the priority is lower, the current program continues undisturbed. Since the processor, as a rule, cannot immediately switch to the higher priority program even when the interrupt request has a high priority, an exchange of request and release signals takes place between it and the interrupter control device, which signals are usually referred to as "handshake" methods. Branch logic in the breaker control circuit is fed with the priority or address of the highest priority breaker interface that is for the Program branch is queried by the processor. The branching logic usually also controls the “handshake” method and supplies the associated signals.
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, dieThe branch instructions issued by the branch logic trigger different interrupt routines in the processor (= interrupt routine), which are assigned to the respective priority of the interrupt interface to be switched through, but which always also contain a context-saving routine. The following operations are usually carried out during the context-saving routine: the program running in the processor is stopped, the contents of the registers present in the processor core are loaded into separate memory areas, the
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.Return address to the interrupted program is determined and saved and some status signals (= flags) are set or deleted. In the individual part of the respective interrupt routines, for example, new contents are read into some registers of the processor core, for example fixed coefficients, etc. The exchange of request, ready and blocking signals between the interrupt controller and the processor already mentioned ensures that this running program can only be interrupted at the permissible points.
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 derThe time of data backup in the processor is not negligible but, depending on the interrupt routine, requires a large number of cycles, for example between 10 and 30 cycles. During the course of the individual interrupt routine, new interrupt requests can only be detected by setting the corresponding flags in the associated interrupt interface. These set flags can only be evaluated again when the interrupt routine in the processor has expired and this is indicated by corresponding signals from the branch logic. The lockout time for new interrupt requests during the context backup makes up part of the total lockout time, which is also referred to as latency and is usually assigned to the entire interrupt routine. A shortening of the interrupt routine by a parallelization of the context protection and the other operations intervenes strongly in the architecture of the processor and increases its switching effort. For example, in the data sheet of the company "Micronas Intermetall" from September 29, 1999 with the
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.Description "CEVF-3 V3.2 Dashboard Controller Emulator", order number: 6251-479-3PD, part 9: "9. Interrupt Controller (IR) V1.5" on pages 71 to 79 an interrupter control device described, which contains these functional units, compare the block diagram given on page 72, in Fig. 9-1: "Block diagram".
Aufgabe der Erfindung ist es, eine Unterbrecher-Steuereinrichtung anzugeben, die in Zusammenarbeit mit üblichen Prozessoren eine relativ geringe Latenzzeit aufweist.The object of the invention is to provide an interrupter control device which, in cooperation with conventional processors, has a relatively low latency.
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.The object is achieved with an interrupter control device according to the preamble of claim 1 in that the branching address is delayed by the branching logic, in particular is only released or can be called up towards the end of the context-saving routine triggered by the interrupt signals.
Die Erfindung und vorteilhafte Ausbildung werden anhand der Figuren der Zeichnung näher erläutert: Figur 1 zeigt das Blockschaltbild einer Unterbrecher-Steuereinrichtung nach der Erfindung, Figur 2 zeigt ein Verzweigungsschema nach dem Stand der Technik,The invention and advantageous embodiment are explained in more detail with reference to the figures of the drawing: FIG. 1 shows the block diagram of an interrupter control device according to the invention, FIG. 2 shows a branching diagram according to the prior art,
Figur 3 zeigt das entsprechende Verzweigunsschema nach der Erfindung und Figur 4 zeigt im Zeitdiagramm ein Verzweigungsbeispiel nach der Erfindung.Figure 3 shows the corresponding branching scheme according to the invention and Figure 4 shows in the timing diagram a branching example according to the invention.
Das Blockschaltbild nach Figur 1 zeigt die Funktionsblöcke einer Unterbrecher-Steuereinrichtung, die in der Regel als monolithisch integrierte Schaltung ausgebildet ist. Figur 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 sl, s2, s3, s4 erzeugen, die als Umschaltsignale für den Prozessor 100 dienen. Figur 1 zeigt lediglich vier Unterbrecherquellen; im Regelfall können jedoch 16 oder mehr Unterbrecherquellen an eine Unterbrecher-Steuereinrichtung angeschlossen werden.The block diagram according to FIG. 1 shows the functional blocks of an interrupter control device, which is generally designed as a monolithically integrated circuit. Figure 1 also shows four external interrupt sources 11, 12, 13, 14 and an external processor 100 (= CPU). The interrupt sources can be processors, transmitter devices or sensors that generate data or analog signals sl, s2, s3, s4 that serve as switchover signals for the processor 100. Figure 1 shows only four interrupt sources; as a rule, however, 16 or more interrupter sources can be connected to an interrupter control device.
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 jedeEach breaker source 11, 12, 13, 14 is assigned an breaker interface 21, 22, 23, 24, which represents the respective input circuit of the breaker control device. The interrupter interfaces can be designed the same or different depending on the type of connectable interrupter sources. Each contains for identification
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.Interrupt interface has its own address Adi and an associated priority value Pi, which is advantageously also programmable via a bus line (not shown). A status register area (= flag area) is also assigned to each interrupt interface in order to by setting the corresponding status signals (= flag) to indicate an external interruption request, the readiness to accept the signals sent by the interrupter source or other statuses.
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.A selection device 30 determines from the current interrupt requests the one with the highest priority Pmax together with the associated address Adm. A priority comparator 40 compares this priority value Pmax with a currently valid priority value Px and generates an interrupt request signal IR if the priority value Pmax is higher than the current priority value Px. The new priority value Pmax is now stored as the new current priority value Px, for example in a register 35, in order to be available again for the current priority comparison at the next interrupt request. If the priority value Pmax is less than the current priority value Px, then this value need not be saved.
Wenn der Prioritätsvergleicher 40 aus dem zugeführten Prioritätswert Pmax einen höherenIf the priority comparator 40 increases from the supplied priority value Pmax
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 derRecognizes the priority value as the current priority value Px, then it uses an interrupt request signal IR to report an interrupt request to the processor 100, which is processed there as soon as the running program 'Rx makes this possible. The processing first triggers a context backup I (see FIG. 3) of the current program Rx, which is uniform for all priority cases, the context backup not only storing the data Dx but also storing the
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 fragt diese Informationen aus der Verzweigungslogik 60 oder einem Register 55, das zuvor von der Verzweigungslogik entsprechend geladen worden ist. Der Prozessor löst mit dieser Information intern die Verzweigung aus, indem der Programmzeiger auf die Startadresse des zugehörigen Verarbeitungsprogramms springt.Return address Ax is included in the interrupted program. Only after the context has been saved can the processor core be prepared for the new program, for which it must of course be informed which of the stored programs it should now process. When the context protection I has ended, the processor 100 notifies the branching logic 60 via control signals Vs, possibly also via a "handshake" method, that it now wants to get the required information about the program to be controlled or that it asks from the interrupt control device this information from the branch logic 60 or a register 55 which has previously been loaded accordingly by the branch logic. With this information, the processor triggers the branch internally by jumping the program pointer to the start address of the associated processing program.
Das Verzweigungsschema von Figur 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.The branching diagram of FIG. 2 shows the sequence of previous interrupt routines in which the branch addresses are formed at the beginning of the interrupt routine. First of all assumed that a signal processing Rx is running in the processor 100, which is assigned the priority Px. During the ongoing signal processing Rx, an interrupter source with the priority Pi becomes active, which for example is greater than the previous priority Px. If the priority Pi were lower than the previous Px, then nothing would change in the signal processing of the processor 100 and the program Rx would continue, compare the arrow pointing to the right, which indicates the program Rx.
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 16 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 16 abgelaufen ist, läuft der Prozessor 100 im Programm R6. Ein zwischenzeitlich eingegangener Unterbrechungs wünsch mit der Priorität P4 kann erst jetzt bearbeitet werden. Die Verzweigungslogik 60 generiert in Abhängigkeit von diesem Unterbrechungswunsch einen Verzweigungsbefehl V4, der dieIn the assumed case with Pi> Px, the branch logic 60 with the possible branch addresses Vi is first activated. V0, V2, V3, V4 and V6 are given as possible branch addresses, the smaller number indicating the higher priority. The first called branch address V6 triggers an interrupt routine 16 in the processor 100, which contains a data backup Dx of the signal processing Rx currently running and a return address Ax in this program. The required time duration of the interrupt routine is shown by the adjacent time arrow t. No new interrupt command can be processed during the interrupt routine. As already mentioned, the associated time is referred to as latency, cf. arrows L6, L4, L3. After the interrupt routine 16 has expired, the processor 100 runs in the program R6. An interruption request received in the meantime with priority P4 can only be processed now. The branch logic 60 generates a branch instruction V4 depending on this interrupt request
Unterbrecherroutine 14 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 13 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 PO, PI 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 Figur 3 ist im Vergleich zu Figur 2 das Verzweigungsschema einer Unterbrecher-Steuereinrichtung nach der Erfindung dargestellt. Ausgangspunkt ist wie bei dem Verzweigungsschema von Figur 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 Figur 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.Interrupt routine 14 with data backup D6 and return address A6 is triggered. A relatively early interrupt request with the higher priority P3 can only be processed after the time interval t3 when the interrupt routine 14 has been completed. The processor 100 is then in the signal processing program R4. By the end of t3, the processor has signaled that it is in an uninterruptible interrupt routine. If the processor releases this blocking signal, the branch logic 60 triggers the interrupt program 13 with the data backup D4 and the return address A4 via the branch instruction V3, which ends after the latency period L3. Processor 100 is now in program sequence R3. This program is either processed or interrupted by an interrupt request with a higher priority, i.e. PO, PI or P2. If the number of priority levels is less than the number of interrupt sources that can be connected, then it can be determined via the selection device 30 that, in the case of interrupt requests of the same priority, the one with the smaller or the larger address Adi should prevail. In FIG. 3, the branching diagram of an interrupter control device according to the invention is shown in comparison to FIG. As in the branching scheme of FIG. 2, the starting point is current signal processing Rx in the connected processor 100, to which a priority Px is assigned. An interrupt request Pi with the assumed higher priority value P6 triggers a uniform context backup I of the current program Rx with data backup Dx and return address Ax via the priority comparator 40 in accordance with the interrupt request IR it issues. In contrast to FIG. 2, the branch logic is only queried for the context save I, which thereby has the possibility of updating the last valid branch address Vi up to the end of the context save I. The programs are only branched after the context has been saved. 3 shows the possible branch addresses V6, V4, V3 with the associated programs R6, R4, R3. After jumping into the new program, this program is now considered the current program Rx with priority Px. For a new incoming interrupt request from an interrupter source, the functional sequence starts again at the top, this is shown in FIG. 3 by the dashed line from R6 to the beginning of the branching scheme.
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 Figur 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 Figur 4 deutlich. Zunächst wird das laufende Programm Rx durch eine Unterbrechungsanforderung mit der Priorität P6 unterbrochen. Die zugehörige erste Kontextsicherung Ii erfordert die Zeit L. Ein Unterbrechungswunsch mit der Priorität P4 hat zunächst keine Auswirkungen, denn die I) 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 Ii 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 Figur 2 wäre mindestens die volle Sperrzeit L zur Zeit t4 hinzugekommen.FIG. 4 shows in the time diagram, using an assumed example, some branching processes taking place according to the invention. The duration of the individual context backups I is no longer linked to the respective priority Pi, as in FIG. 2, but rather it is a matter of uniform routines because the processor 100 only receives the corresponding branch information Vi at the end of the context backup. The blocking times L required for context saving I are therefore all of the same size in FIG. 3, because the most unfavorable number of registers to be saved must now be taken into account for uniform context saving I. During the blocking time L of each context backup I, a data backup Dx, D4, D4 'of the currently running program Rx, R4, R4 with the backup of the associated return address Ax, A4, A4' takes place. A preparation phase for the new program is not possible during the blocking period L or only if it is uniform for all priorities. The blocking times for the individual preparation phases follow the blocking time L of the associated context protection I, but are not indicated in FIG. 4. The time saved in the case of interruption requests is clear from the time diagram in FIG. 4. First, the running program Rx is interrupted by an interrupt request with priority P6. The associated first context protection Ii requires time L. An interruption request with priority P4 initially has no effect, because I) continues to run during time L. Only immediately before completion is the branch logic 60 queried, which determines as branch address V4, which corresponds to the interrupt request with the priority P4 which is received later. After completion of this first context protection Ii, the processor 100 works with the program R4. The required blocking time until the requested program R4 becomes active is shown by the arrow t4. With a branching scheme according to FIG. 2, at least the full blocking time L would have been added at time t4.
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 weitererAn interruption request with priority P3 occurs during program run R4. The context save routine, second context save I 2 is therefore started again by the priority comparator 40 and the data D4 of the currently running program R4 with the return address A4 are saved therein. Another message appears during the context save I 2
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 I , 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 PI erkannt. Am Ende der Kontextsicherung I3 wird daher die Verzweigungsadresse VI von der Verzweigungslogik 60 bestimmt. Der Prozessor arbeitet daher im Programm Rl und nicht im Programm R2 weiter. Die zugehörige Sperrzeit tl ist sehr kurz.Interruption request with priority P5, i.e. a subordinate priority value. After the context save I 2 has expired, the branch logic 60 determines the branch address V3. The processor 100 now runs in the program R3 since there is no request for an interrupt with a higher priority. Since the program R3 was preceded by a branch, the processor resumes the interrupted program R4 after the end of this program (= End) and jumps to the fixed return address A4 of the second context protection I 2 . However, program R4 cannot be completed because an interrupt request with priority value P2 has been received in the meantime. For this purpose, the branching logic 60 again triggers a context backup routine I 2 , third context backup I, with a data backup D4 'and a return address A4' of the again interrupted program R4. Shortly before this routine I 3 ends, a newly received interrupt request with the higher priority PI is recognized. At the end of context protection I 3 , branch address VI is therefore determined by branch logic 60. The processor therefore continues to work in program R1 and not in program R2. The associated blocking time tl is very short.
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.The late output of the branch addresses Vi is achieved in a particularly advantageous manner by modifying the content of a register contained in the interrupter control device, which is used as a "vector table base" register (= VTB) and contains an address as content. This register, the content of which is an address, is queried by the processor 100 at the end of the context save I, and the processor then learns which program address to retrieve from the modified content, which still contains the original address and the additional information at previously unused locations is.
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 Übeφrü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..Of course, information about the branch address Vi can also reach the processor directly via suitable data connections and not only indirectly via an address or data modification of a register controlled by the processor. In addition, a security device is also expedient, which recognizes, for example, by checking the data width or the type of access, that the data on the data bus have nothing to do with a possible program branching. As a result, data on the bus, which can also be interpreted as branch information, can be recognized, blocked or rendered ineffective. Information about the type of access can be signaled, for example, by means of corresponding flags.
Ob die einzelnen Funktionseinheiten der Unterbrecher-Steuereinrichtung ganz oder teilweise in Hard- oder Software-Teclmik 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. It is immaterial for the implementation of the invention whether the individual functional units of the interrupter control device are implemented in whole or in part in hardware or software technology. The special design is based on the optimization of the following criteria: required chip area, number of connecting legs, processing speed, flexibility, etc.

Claims

Patentansprüche claims
1. Unterbrecher-Steuereinrichtung zur Zugangssteuerung von Unterbrecherquellen (11, 12, 13, 14) zu einem Signal eingang eines Prozessors (100) und zur Verzweigung eines im Prozessor aktuell ablaufenden Programms (Rx), wobei1. Breaker control device for access control of breaker sources (11, 12, 13, 14) to a signal input of a processor (100) and for branching a program (Rx) currently running in the processor, wherein
- die Unterbrecher-Steuereinrichtung eingangsseitig eine vorgegebene Anzahl von- The breaker control device on the input side a predetermined number of
Unterbrecherschnittstellen (21, 22, 23, 24) zum Anschluß der Unterbrecherquellen enthält,Contains interrupt interfaces (21, 22, 23, 24) for connecting the interrupt sources,
-jeder Unterbrecherschnittstelle (21, 22, 23, 24) ein, insbesondere ein programmierbarer Prioritätswert (Pi) und eine Adresse (Adi) zugeordnet ist,each interrupt interface (21, 22, 23, 24) is assigned, in particular a programmable priority value (Pi) and an address (Adi),
- 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,a selection device (30) looks for the one with the highest priority value (Pmax) and the associated address (Adm) from the interrupt interfaces activated by the interrupt sources,
- ein 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- A priority comparator (40), an interrupter request signal (IR) in dependence on the highest priority value (Pmax) determined by the selection device and a current priority value (Px) that triggers a context protection (I) in the processor (100), and
- eine Verzweigungslogik (60) entsprechend dem von der Auswauhleinrichtung (30) bestimmten höchsten Prioritätswert (Pmax) und eine Verzweigungsadresse (Vi) erzeugt,a branch logic (60) corresponding to the highest priority value (Pmax) determined by the selection device (30) and a branch address (Vi) are generated,
dadurch gekennzeichnet, daßcharacterized in that
- 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. - The branching address (Vi) in the branching logic (60) is only determined towards the end of the context saving by the branching logic (60) and is delivered to the processor (100) or can be called up by the latter, taking into account the current highest priority value (Pmax) becomes.
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.2. Interrupter control device according to claim 1, characterized in that with the same priority values (Pi) of the activated interrupt interfaces (21, 22, 23, 24), the selection device (30) according to a predetermined auxiliary criterion, in particular a value corresponding to the addresses (Adi) , performs.
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ß der3. Breaker control device according to claim 1 or 2, characterized in that the branch address (Vi) the content of a "vector table base" register (55), with its addressing by the processor (100) of the breaker control device in particular the willingness to branch is signaled, modified in such a way that the
Prozessor daraus die für den Programmablauf erforderliche eigene Verzweigungsadresse erkennt.Processor recognizes the own branch address required for the program execution.
4. Unterbrecher-Steuereinrichtung nach Anspruch 1 oder 3, dadurch gekennzeichnet, daß Verzweigungsadresse (Vi) als Adressenmodifikationen ausgebildet ist.4. Interrupter control device according to claim 1 or 3, characterized in that branch address (Vi) is designed as address modifications.
5. Unterbrecher-Steuereinrichtung nach Anspruch 1 oder 3, dadurch gekennzeichnet, daß die Verzweigungsadresse (Vi) als Datenmodifikation auf einer bestimmten Adresse ausgebildet ist.5. Interrupt control device according to claim 1 or 3, characterized in that the branch address (Vi) is designed as a data modification to a specific address.
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. 6. Interrupt control device according to one of claims 1 to 5, characterized in that a security device recognize, block or render ineffective the erroneous output of an interrupt request (IR) or a branch address (Vi) before forwarding to the processor (100) ,
EP01990568A 2000-12-16 2001-12-14 Interrupt-controller Withdrawn EP1417579A2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE10062995A DE10062995A1 (en) 2000-12-16 2000-12-16 Interrupt controller means
DE10062995 2000-12-16
PCT/EP2001/014792 WO2002048880A2 (en) 2000-12-16 2001-12-14 Interrupt-controller

Publications (1)

Publication Number Publication Date
EP1417579A2 true EP1417579A2 (en) 2004-05-12

Family

ID=7667591

Family Applications (1)

Application Number Title Priority Date Filing Date
EP01990568A Withdrawn EP1417579A2 (en) 2000-12-16 2001-12-14 Interrupt-controller

Country Status (5)

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

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030004763A (en) * 2001-07-06 2003-01-15 삼성전자 주식회사 Interrupt processing apparatus
CN100382017C (en) * 2002-07-09 2008-04-16 徐肇昌 Subsequence network module and call
WO2004114132A1 (en) * 2003-06-20 2004-12-29 Fujitsu Limited Interrupt control method, interrupt control device, and interrupt control program
EP1531395A1 (en) * 2003-11-17 2005-05-18 Infineon Technologies AG Method of determining information about the processes which run in a program-controlled unit during the execution of a program
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 (en) * 2006-02-01 2007-08-03 Parrot Sa INTEGRATED COMPONENT COMPRISING POWER MANAGEMENT AND EMERGENCY MANAGEMENT CIRCUITS
JP5308383B2 (en) * 2010-03-18 2013-10-09 パナソニック株式会社 Virtual multiprocessor system
JP7249968B2 (en) * 2020-03-09 2023-03-31 株式会社東芝 Information processing equipment and storage
CN113138949A (en) * 2021-04-29 2021-07-20 上海阵量智能科技有限公司 Interrupt controller, interrupt control method, chip, computer device, and medium

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 (en) * 1993-07-02 1995-01-24 Mitsubishi Denki Eng Kk Data processor
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 (en) * 1998-02-04 2000-10-10 日本電気株式会社 Information processing apparatus and information processing method
US6081867A (en) * 1998-05-20 2000-06-27 Sony Corporation Software configurable technique for prioritizing interrupts in a microprocessor-based system
KR100317237B1 (en) * 1999-10-01 2001-12-22 윤종용 Interrupt controller supporting similar vectored interrupt mode and an interrupt handling method of the same

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO0248880A3 *

Also Published As

Publication number Publication date
WO2002048880A3 (en) 2004-02-26
US20030172215A1 (en) 2003-09-11
DE10062995A1 (en) 2002-07-11
WO2002048880A2 (en) 2002-06-20
JP2004516547A (en) 2004-06-03

Similar Documents

Publication Publication Date Title
DE1913059C2 (en) Program interruption device for a data processing system
DE2744531A1 (en) ELECTRONIC DATA PROCESSING SYSTEM
DE2350884A1 (en) DATA PROCESSING SYSTEM
DE3320858A1 (en) MEMORY MANAGEMENT ARRANGEMENT FOR MICROPROCESSOR SYSTEMS
DE3500804A1 (en) INTERRUPT CONTROL CIRCUIT
EP1417579A2 (en) Interrupt-controller
DE2747633A1 (en) IT SYSTEM WITH AN INTERRUPTION DEVICE
EP0764906A2 (en) Method of operating a real time computer system controlled by a real time operating system
EP1230590B1 (en) Processor system
DE2429067A1 (en) 8 MEMORY CIRCUIT
EP0799441B1 (en) System for controlling technical processes
DE4340551A1 (en) Program memory extension for a microprocessor
DE2759120A1 (en) PROCESSOR FOR DATA PROCESSING SYSTEMS
EP1417578A2 (en) Interrupt-controller with priority specification
EP0499213A2 (en) Modular structured ISDN communication system
DE2838887C2 (en) Data processing system with a circuit for interrupt requests to take over the common bus
EP2018604B1 (en) Procedure for operating a control unit
DE2632561A1 (en) CONTROL DEVICE FOR REAL-TIME CONTROL, IN PARTICULAR FOR TELEPHONE SWITCHING SYSTEMS
DE10027845B4 (en) Submodule for controlling a data queue
DE102009009730B4 (en) Local timer cell its use and method of operating a module
EP0010193A1 (en) Cycle control device for a microprocessor with multiple processing-speed control memories
DE2612316C3 (en) Arrangement for controlling the multiplex operation between several channels and a central control circuit of an input / output unit in a data processing system
DE2462728C2 (en) Device for setting and controlling the processing of various operating states of a data processing device
WO2007071589A1 (en) Data processing system comprising a plurality of execution units
DE2606295A1 (en) PROCEDURE FOR EXECUTING A DATA TRANSFER BETWEEN PERIPHERAL UNITS AND A WORKING MEMORY VIA A MULTIPLEX CHANNEL

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR

17P Request for examination filed

Effective date: 20040826

17Q First examination report despatched

Effective date: 20050128

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20050908