DE10115885B4 - Arrangement for prioritizing an interrupt - Google Patents

Arrangement for prioritizing an interrupt Download PDF

Info

Publication number
DE10115885B4
DE10115885B4 DE10115885A DE10115885A DE10115885B4 DE 10115885 B4 DE10115885 B4 DE 10115885B4 DE 10115885 A DE10115885 A DE 10115885A DE 10115885 A DE10115885 A DE 10115885A DE 10115885 B4 DE10115885 B4 DE 10115885B4
Authority
DE
Germany
Prior art keywords
interrupt
level
priority
address
int
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE10115885A
Other languages
German (de)
Other versions
DE10115885A1 (en
Inventor
Reinhard Müller
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.)
Intel Germany Holding GmbH
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE10115885A priority Critical patent/DE10115885B4/en
Publication of DE10115885A1 publication Critical patent/DE10115885A1/en
Application granted granted Critical
Publication of DE10115885B4 publication Critical patent/DE10115885B4/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control

Abstract

Anordnung zur Priorisierung von Interrupts, das in mehreren Ebenen (A–C) kaskadiert aufgebaut ist, mit:
a) einer ersten Ebene (A) mit einem Prioritätsdecoder (10), der mehrere Interrupteingänge (int_i) aufweist, an denen mehrere Interruptquellen (Bn) angeschlossen sind,
b) wenigstens einer weiteren Ebene (B, C) mit mehreren Prioritätsdecodern (Bn, Cn), die die Interruptquellen für eine vorhergehende Ebene (A, B) bilden, und mit
c) Systemeinrichtungen als ursprüngliche Interruptquellen, die jeweils eine Interruptanforderungen senden können,
d) wobei ein Prioritätsdecoder (10, Bn, Cn) einer K-ten Ebene jeweils eines an einem seiner Interrupteingänge (int_i) anliegendes Interruptsignal von einer Interruptquelle in einen vektoriell kodierten Teil-Interrupt-Adressvektor der entsprechenden Interruptquelle der K + 1-ten Ebene umwandelt,
e) wobei jede Ebene (B, C) mit mehreren Prioritätsdecodern (Bn, Cn) mindestens ein zugehöriges Logikgatter (13, 14, 16) aufweist, an dessen Eingänge die Teil-Interrupt-Adressvektoren einer Gruppe der Prioritätsdecodern (Bn, Cn) derselben Ebene (B, C) zugeführt sind und das einen...
Arrangement for prioritizing interrupts, which is cascaded in several levels (A-C), with:
a) a first level (A) having a priority decoder (10) having a plurality of interrupt inputs (int_i) to which a plurality of interrupt sources (Bn) are connected,
b) at least one further level (B, C) with a plurality of priority decoders (Bn, Cn), which form the interrupt sources for a preceding level (A, B), and with
c) system devices as original interrupt sources, which can each send an interrupt request,
d) wherein a priority decoder (10, Bn, Cn) of a K-th plane respectively of an interrupt signal applied to one of its interrupt inputs (int_i) from an interrupt source into a vectorially encoded sub-interrupt address vector of the corresponding K + 1-th level interrupt source converts,
e) each level (B, C) having a plurality of priority decoders (Bn, Cn) having at least one associated logic gate (13, 14, 16) at the inputs of which are the sub-interrupt address vectors of a group of the priority decoders (Bn, Cn) thereof Level (B, C) are fed and the one ...

Figure 00000001
Figure 00000001

Description

Die Erfindung betrifft eine Anordnung zur Priorisierung eines Interrupts, insbesondere in einem Echtzeitsystem.The Invention relates to an arrangement for prioritizing an interrupt, especially in a real-time system.

Die Ressourcen einer Rechen- und Verarbeitungseinheit (CPU) sind üblicherweise begrenzt und müssen daher einzelnen Systemeinheiten sequentiell zur Verfügung gestellt werden. Zur Anforderung von Rechenleistung senden die Systemeinrichtungen sogenannte Interrupts an eine CPU, die daraufhin die angeforderte Aufgabe ausführt. Die Interruptsignale können eine unterschiedliche Priorität aufweisen und werden entsprechend ihrer Priorität abgearbeitet. Ein Beispiel für einen Interrupt mit hoher Priorität ist z.B. derjenige eines FIFO-Speichers, der überzulaufen droht und daher ausgelesen werden muß.The Resources of a computing and processing unit (CPU) are common limited and must Therefore, individual system units are provided sequentially become. The system devices send requests for computing power so-called interrupts to a CPU, which then requested the Task performs. The interrupt signals can a different priority and are processed according to their priority. An example for one High priority interrupt is e.g. that of a FIFO memory, to overflow threatens and therefore must be read out.

Es ist bekannt, Interruptsignale von Systemeinrichtungen an einen sogenannten Host zu übermitteln, der bei Vorliegen einer Interruptanforderung ein Register im Pollingverfahren ausliest, um die Adresse der Interruptquelle zu ermitteln. Der Host liest dabei zunächst das Register aus, ermittelt aus den ausgelesenen Daten die Adresse der Interruptquelle und löst dann eine zugehörige Prozedur aus, die von der CPU abgearbeitet wird.It is known, interrupt signals from system devices to a so-called Host to submit in the event of an interrupt request, a register in the polling procedure to read the address of the interrupt source. The host reads at first the register off, determined from the data read the address the interrupt source and triggers then an associated one Procedure that is processed by the CPU.

Dieses System hat den Nachteil, dass das Auslesen des Registers relativ aufwendig ist, was insbesondere bei einer großen Vielzahl von Interruptquellen zu einer Verlangsamung des Systems führt.This System has the disadvantage that the reading of the register relative is complex, which is especially true for a large variety of interrupt sources slows down the system.

In der WO 98/12634 A2 ist eine Datenverarbeitungsvorrichtung mit einer Interruptverwaltung beschrieben, wobei Gruppen von In terruptanfordernden Einrichtungen kettenartig miteinander verbunden sind. Eine erste Priorisierung erfolgt dabei insbesondere durch die jeweilige Stelle der Einrichtung in der Kette. Ein Interrupt-Adressvektor wird von einer dem Mikroprozessor vorgeschalteten Steuereinrichtung aus einem oberen, eine zweite Priorisierung der Interruptanfrage anzeigenden Adressteil, welcher die Steuereinrichtung erzeugt, und einem unteren von den Interrupt anfordernden Einrichtungen erzeugten Adressteil zusammengestellt. Interruptanfragen durchlaufen dabei immer die gesamte Kette.In WO 98/12634 A2 is a data processing device with a Interrupt management is described, with groups of intrusting institutions are linked together in a chain. A first prioritization takes place in particular by the respective body of the device in the chain. An interrupt address vector is supplied by a microprocessor upstream control device from an upper, a second Prioritization of the interrupt request indicating address part, which the controller generates, and a lower one of the interrupt requesting devices generated address part compiled. Interrupt requests always go through the entire chain.

Es ist daher die Aufgabe der vorliegenden Erfindung, eine Anordnung zur Priorisierung von Interruptanforderugen zu schaffen, die wesentlich einfacher funktioniert und schneller arbeitet.It is therefore the object of the present invention, an arrangement to prioritize interrupt requests that are essential works easier and works faster.

Diese Aufgabe wird durch eine Anordnung mit den Merkmalen des Patentanspruchs 1 gelöst.These The object is achieved by an arrangement having the features of the patent claim 1 solved.

Die wesentliche erfinderische Idee besteht erfindungsgemäß darin, am Ausgang des Systems unmittelbar einen Vektor (Pointer) als Interruptadresse zu liefern, der auf die Interruptquelle zeigt.The essential inventive idea consists according to the invention in at the output of the system immediately a vector (pointer) as an interrupt address to deliver pointing to the interrupt source.

Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche.advantageous Embodiments of the invention are the subject of the dependent claims.

Die Erfindung wird nachstehend anhand der beigefügten Figuren beispielhaft näher erläutert. Es zeigen:The The invention will be explained in more detail below with reference to the accompanying figures. Show it:

1 Den Aufbau eines Interruptsystems gemäß einer bevorzugten Ausführungsform der Erfindung; und 1 The structure of an interrupt system according to a preferred embodiment of the invention; and

2 Ein Flussdiagramm zur Erläuterung der Verwaltung der Interrupts. 2 A flowchart explaining the management of the interrupts.

In 1 ist eine in mehreren Ebenen A, B, C kaskadiert aufgebaute Anordnung zur Priorisierung von Interrupts gezeigt. Die erste Ebene A umfasst dabei einen Prioritätsdecoder 10, mit mehreren Interrupteingängen int_i, an denen mehrere Interruptquellen B1, B2 einer zweiten Ebene B angeschlossen sind. Der Prioritätsdecoder 10 dient zur Priorisierung von Interrupts, d.h. zum Auswählen von Interrupts entsprechend ihrer Priorität, und umfasst ferner einen Interruptausgang int_o, an dem ein Interruptsignal ausgegeben wird, wenn ein am Interrupteingang int_i anliegendes Interruptsignal ausgewählt wurde.In 1 is shown in several levels A, B, C arranged cascaded arrangement for prioritizing interrupts. The first level A comprises a priority decoder 10 , with a plurality of interrupt inputs int_i, to which a plurality of interrupt sources B1, B2 of a second level B are connected. The priority decoder 10 serves to prioritize interrupts, ie to select interrupts according to their priority, and further comprises an interrupt output int_o at which an interrupt signal is issued when an interrupt signal present at the interrupt input int_i has been selected.

Der Prioritätsdecoder 10 hat außerdem eine Schaltung zum Umwandeln eines am Interrupteingang int_i anliegenden Signals in eine vektoriell, binär kodierte Adresse. Der entsprechende Adressvektor wird am Adressausgang addrh ausgegeben, wobei der Adressvektor auf die Interruptquelle (Prioritätsdecoder B1 oder B2) der nächsten Ebene (B) zeigt.The priority decoder 10 also has a circuit for converting a signal applied to the interrupt input int_i into a vectorially binary coded address. The corresponding address vector is output at the address output addrh, the address vector pointing to the interrupt source (priority decoder B1 or B2) of the next level (B).

Der Adressausgang addrh des Prioritätsdecoders 10 ist mit einem Register 17 verbunden, wobei der vom Prioritätsdecoder 10 ausgegebene Adressvektor einen Bestandteil eines Gesamt-Adressvektors bildet, der auf die ursächliche Interruptquelle, d.h. eine bestimmte, eine Bearbeitung anfordernde, Interruptquelle der letzten Ebene, zeigt.The address output addrh of the priority decoder 10 is with a register 17 connected by the priority decoder 10 output address vector forms part of an overall address vector which points to the causative interrupt source, ie a specific, a processing requesting, last-level interrupt source.

Die Interruptquellen der zweiten Ebene B sind weitere Prioritätsdecodern B1, B2, deren Interruptausgang int_o mit dem Interrupteingang int_i des Prioritätsdecoders 10 verbunden sind, und die einen Adressausgang addrm aufweisen, der jeweils mit einem Adresseingang addrm_i eines Logikgatters 16 verbunden ist.The interrupt sources of the second level B are further priority decoders B1, B2 whose interrupt output int_o with the interrupt input int_i of the priority decoder 10 are connected, and having an address output addrm, each with an address input addrm_i a logic gate 16 connected is.

Am Interrupteingang int_i der Prioritätsdecoder B1, B2 der zweiten Ebene B sind wiederum mehrere Interruptquellen angeschlossen, die entsprechende Interruptsignale an die Prioritätsdecoder B1, B2 übermitteln können. Nach der Auswahl eines ggf. eintreffenden Interruptsignals gibt ein Prioritätsdecoder B1, B2 an seinem Adressausgang addrm einen entsprechenden binär kodierten Adressvektor über einen Adressbus an ein Logikgatter 16 aus.At the interrupt input int_i of the priority decoder B1, B2 of the second level B, in turn, a plurality of interrupt sources are connected, which can transmit corresponding interrupt signals to the priority decoder B1, B2. After the selection of an optionally occurring interrupt signal, a priority decoder B1, B2 outputs at its address output addrm a corresponding binary coded address vector via an address bus to a logic gate 16 out.

Im System sollten sämtliche Adressbusse einer Ebene mit einem Gatter verknüpft sein, an dessen Adressausgang addrm_o die am Eingang addrm_i anliegende Adresse durchgeschaltet wird. Bei einem low aktiven System sollten sämtliche Adressbusse einer Ebene mit einem UND-Gatter verknüpft sein, während sie bei einem high aktiven System mit einem ODER-Gatter verknüpft sein sollten.in the System should all Address busses of a level to be linked to a gate at the address output addrm_o the address present at the input addrm_i through connected becomes. In a low active system, all address busses should be one level linked to an AND gate be while they are linked to an OR gate in a high-active system should.

Als Interruptquellen der dritten Ebene C sind mehrere Prioritätsdecoder C1–C6 vorgesehen, die jeweils einen Interrupteingang int_i und einen Interruptausgang int_o aufweisen.When Third level C interrupt sources are multiple priority decoders C1-C6 each having an interrupt input int_i and an interrupt output int_o.

Die Adressausgänge addrl der Prioritätsdecoder C1–C6 sind wiederum über entsprechende Adressbusse mit Adresseingängen addrl_i von zwei Logikgattern 13, 14 verbunden, die insbesondere als UND-Gatter ausgeführt sind.The address outputs addrl the priority decoder C1-C6 are in turn via corresponding address buses with address inputs addrl_i of two logic gates 13 . 14 connected, which are designed in particular as AND gates.

An den Interrupteingängen int_i der Prioritätsdecoder C1–C6 sind jeweils mehrere Systemeinrichtungen (nicht gezeigt) angeschlossen, die mittels eines Interrupts Rechenleistung der CPU anfordern können.At the interrupt inputs int_i the priority decoder C1-C6 are each a plurality of system devices (not shown) connected, which can request computing power of the CPU by means of an interrupt.

Die Prioritätsdecoder C1–C6 geben wiederum einen der jeweiligen Interruptquelle entsprechenden Adressvektor aus, wobei die Adressausgänge addrl einer ersten Gruppe von Prioritätsdecodern C1–C3 mit einem ersten Logikgatter 13, und die Adressausgäng addrl einer zweiten Gruppe von Prioritätsdecodern C4–C6 mit einem zweiten Logikgatter 14 verbunden sind.The priority decoders C1-C6 in turn output an address vector corresponding to the respective interrupt source, the address outputs addrl of a first group of priority decoders C1-C3 having a first logic gate 13 , and the address outputs addrl of a second group of priority decoders C4-C6 with a second logic gate 14 are connected.

Die Adressausgänge addrl_o der Logikgatter 13, 14 sind mit dem Adresseingang addrl_i eines weiteren Logikgatters 15 verbunden. Am Adressausgang addrl_o des Logikgatters 15 wird schließlich die Adresse der ursprünglichen Interruptquelle ausgegeben und über einen Adressbus dem Register 17 zugeführt.The address outputs addrl_o of the logic gates 13 . 14 are connected to the address input addrl_i of another logic gate 15 connected. At the address output addrl_o of the logic gate 15 Finally, the address of the original interrupt source is output and the register via an address bus 17 fed.

Das Register 17 erhält somit die Adresse addrh der Interruptquelle der zweiten Ebene B, die Adresse addrm der Interruptquelle der dritten Ebene C und die Adresse addrl der den Interrupt anfordernden Systemeinrichtung jeweils in Form eines Adressvektors. Die einzelnen Adressvektoren bilden zusammengenommen einen Gesamt-Adressvektor, der direkt auf die ursprüngliche Interruptquelle zeigt.The registry 17 Thus receives the address addrh the interrupt source of the second level B, the address addrm the interrupt source of the third level C and the address addrl of the interrupt requesting system device each in the form of an address vector. The individual address vectors together form a total address vector which points directly to the original interrupt source.

Jeder Prioritätsdecoder 10, Bn, Cn hat vorzugsweise einen Bestätigungseingang und/oder -ausgang (nicht gezeigt), wobei ein Bestätigungsausgang eines Prioritätsdecoders einer Ebene K mit einem Bestätigungseingang eines Prioritätsdecoders einer Ebene K + 1 verbunden ist, um die Auswahl eines bestimmten, an seinem Eingang int_i, anliegenden Interruptsignals zu bestätigen. Nachfolgende Interrupts werden solange nicht mehr angenommen, bis der ausgewählte Interrupt abgearbeitet wurde.Each priority decoder 10 , Bn, Cn preferably has an acknowledgment input and / or output (not shown), an acknowledgment output of a priority decoder of a level K being connected to an acknowledgment input of a priority decoder of a level K + 1 for selecting a particular, at its input int_i, acknowledge incoming interrupt signal. Subsequent interrupts are no longer accepted until the selected interrupt has been processed.

Der Prioritätsdecoder der ersten Ebene (A) wertet vorzugsweise zuerst seine Interrupteingänge aus, wählt einen Prioritätsdecoder der zweiten Ebene (B) aus und bestätigt dies mittels eines Acknowledge-Bits. Dieser wertet dann seine Interrupteingänge aus und wählt einen Prioritätsdecoder der dritten Ebene (C) aus usw. Die Auswertung der Interrupts erfolgt also von einer niedrigeren Ebene K in Richtung einer höheren Ebene K + 1 (von rechts nach links in der Figur).Of the priority decoder the first level (A) preferably first evaluates its interrupt inputs, chooses one priority decoder the second level (B) and confirms this by means of an acknowledge bit. This then evaluates his Interrupt inputs and selects one priority decoder the third level (C) off, etc. The evaluation of the interrupts takes place that is from a lower level K towards a higher level K + 1 (from right to left in the figure).

Der an die CPU zu sendende Interrupt wird vorzugsweise solange zurückgehalten, bis jeweils ein Prioritätsdecoder Bn, Cn der Ebenen B, C seine Interrupteingänge ausgewertet hat. Im dargestellten System mit 3 Ebenen, in dem ein Prioritätsdecoder seine Interrupteingänge int_i in einem Taktzyklus auswertet, dauert es 3 Taktzyklen, bis ein Interrupt vom Prioritätsdecoder 10 ausgegeben wird.The interrupt to be sent to the CPU is preferably retained until each priority decoder Bn, Cn of the levels B, C has evaluated its interrupt inputs. In the illustrated 3-level system in which a priority decoder evaluates its interrupt inputs int_i in one clock cycle, it takes 3 clock cycles to complete an interrupt from the priority decoder 10 is issued.

2a, b zeigt einen typischen Arbeitsablauf, wie er von einem Prioritätsdecoder in einem gemäß 1 aufgebauten System durchgeführt wird, wobei im vorliegenden Beispiel ein low-aktives System angenommen wird. Der Prozessablauf gilt entsprechend auch für ein high-aktives System. 2a , b shows a typical workflow as performed by a priority decoder in accordance with the present invention 1 constructed system is carried out, in the present example, a low-active system is adopted. The process flow also applies accordingly to a high-active system.

Der Prioritätsdecoder prüft zunächst in Schritt 20, ob an seinem Bestätigungsausgang kein Interrupt für eine bestimmte Interruptquelle bestätigt wurde (die Bezeichnung „n" bedeutet negativ bzw. low-aktiv). Falls nein, d.h. es wurde bereits ein Interrupt für diese Adresse bestätigt, wird in Schritt 21 abgefragt, ob kein Interrupt anliegt. Falls nein ist die Prozedur beendet, falls ja wird ein Penalty-Bit und die Variable ack_no für diesen Bestätigungsausgang auf 1 gesetzt. Außerdem werden sämtliche Bits des Adressvektors addr auf 1 gesetzt (siehe Schritt 29).The priority decoder first checks in step 20 whether no interrupt was acknowledged at its acknowledgment output for a particular interrupt source (the designation "n" means negative or low-active) If no, ie an interrupt has already been acknowledged for this address, in step 21 queried if there is no interrupt. If no, the procedure is finished, if so, a penalty bit and the variable ack_no for this confirmation output is set to 1. In addition, all bits of the address vector addr are set to 1 (see step 29 ).

Zurück zu Schritt 20 wird, falls keine Bestätigung für eine bestimmte Adresse erfolgt ist, eine Variable x auf 0 gesetzt (Schritt 22). In Schritt 23 wird abgefragt, ob die Variable kleiner als eine Zahl n ist (n ist gleich der Anzahl der an einem Prioritätsdecoder angeschlossenen Interruptquellen).Back to step 20 If no confirmation is made for a particular address, a variable x is set to 0 (step 22 ). In step 23 it is queried whether the variable is smaller than a number n (n is equal to the number of interrupt sources connected to a priority decoder).

Falls Nein werden in Schritt 27 sämtliche Bits eines Vektors pen und damit sämtliche Penalty-Bits auf 0 gesetzt. Falls Ja wird in Schritt 25 abgefragt, ob an einem Interrupteingang x ein Interrupt anliegt, für den kein Penalty-Bit gesetzt ist. Falls Nein wird der nächste Interrupteingang ausgewertet. Hierfür wird die Variable x in Schritt 24 inkrementiert.If no, in step 27 all bits of a vector pen and thus all penalty bits are set to 0. If yes, in step 25 queried whether an interrupt is present at an interrupt input x, for which no penalty bit is set. If no, the next interrupt input is evaluated. For this, the variable x in step 24 incremented.

Falls Ja wird in Schritt 26 überprüft, ob eine Bestätigung am Bestätigungseingang erfolgt ist (dies ist nur für Prioritätsdecoder der Ebenen B, C, ... erforderlich, nicht für Ebene A). Falls Ja erhält die Adressvariable addr den Wert der Variable x und der Interrupt wird bestätigt (ack_no(x) < = 0; Schritt 28).If yes, in step 26 Verifies that an acknowledgment has been received at the acknowledgment input (this is required only for priority decoder of levels B, C, ..., not level A). If yes, the address variable addr receives the value of the variable x and the interrupt is acknowledged (ack_no (x) <= 0; 28 ).

Das Ende der Routine ist in Schritt 30 erreicht.The end of the routine is in step 30 reached.

Ein vom Prioritätsdecoder 10 der ersten Ebene A an die CPU zu sendender Interrupt wird vorzugsweise solange zurückgehalten, bis jeweils ein Prioritätsdecoder Bn, Cn der Ebenen B, C seine Interrupteingänge ausgewertet hat. Der Ablauf dieses Vorgangs ist in 2b gezeigt.One from the priority decoder 10 The first level A to be sent to the CPU interrupt is preferably retained until each priority decoder Bn, Cn the levels B, C has evaluated its interrupt inputs. The process of this process is in 2 B shown.

Zunächst wird in Schritt 31 überprüft, ob kein Interrupt an einem Interrupteingang mit einer bestimmten Adresse addr anliegt oder keine Bestätigung an diese Adresse ausgegeben wurde. Falls Nein wird eine Verzögerungsvariable intdly auf 0 gesetzt und ein Interrupt am Ausgang des Prioritätsdecoders 10 ausgegeben (vgl. Schritt 33). Andernfalls wird die Verzögerungsvariable intdly auf 1 gesetzt und kein Interrupt ausgegeben (Schritt 32)First, in step 31 checks whether there is no interrupt at an interrupt input with a specific address addr or no acknowledgment has been issued to this address. If no, a delay variable is intdly set to 0 and an interrupt at the output of the priority decoder 10 issued (see step 33 ). Otherwise, the delay variable intdly is set to 1 and no interrupt is issued (step 32 )

Claims (9)

Anordnung zur Priorisierung von Interrupts, das in mehreren Ebenen (A–C) kaskadiert aufgebaut ist, mit: a) einer ersten Ebene (A) mit einem Prioritätsdecoder (10), der mehrere Interrupteingänge (int_i) aufweist, an denen mehrere Interruptquellen (Bn) angeschlossen sind, b) wenigstens einer weiteren Ebene (B, C) mit mehreren Prioritätsdecodern (Bn, Cn), die die Interruptquellen für eine vorhergehende Ebene (A, B) bilden, und mit c) Systemeinrichtungen als ursprüngliche Interruptquellen, die jeweils eine Interruptanforderungen senden können, d) wobei ein Prioritätsdecoder (10, Bn, Cn) einer K-ten Ebene jeweils eines an einem seiner Interrupteingänge (int_i) anliegendes Interruptsignal von einer Interruptquelle in einen vektoriell kodierten Teil-Interrupt-Adressvektor der entsprechenden Interruptquelle der K + 1-ten Ebene umwandelt, e) wobei jede Ebene (B, C) mit mehreren Prioritätsdecodern (Bn, Cn) mindestens ein zugehöriges Logikgatter (13, 14, 16) aufweist, an dessen Eingänge die Teil-Interrupt-Adressvektoren einer Gruppe der Prioritätsdecodern (Bn, Cn) derselben Ebene (B, C) zugeführt sind und das einen Teil-Interrupt-Adressvektor der jeweiligen Ebene (B, C) liefert, und f) wobei ein Teil-Interrupt-Adressvektor eines Prioritätsdecoders (Bn, Cn) oder einer Logikeinrichtung (15) einem Register (17) der ersten Ebene (A) zugeführt ist, wobei die dem Register (17) zugeführten Teil-Interrupt-Adressvektoren einen Gesamt-Interrupt-Adressvektor (addr) bilden, welcher einer der ursprünglichen Interruptquelle entspricht.Arrangement for prioritizing interrupts, which is constructed cascaded in several levels (A-C), comprising: a) a first level (A) with a priority decoder ( 10 ) having a plurality of interrupt inputs (int_i) to which a plurality of interrupt sources (Bn) are connected, b) at least one further level (B, C) having a plurality of priority decoders (Bn, Cn) containing the interrupt sources for a preceding level (A, B), and with c) system devices as original interrupt sources which can each send an interrupt request, d) wherein a priority decoder ( 10 , Bn, Cn) of a K-th plane respectively converts an interrupt signal applied to one of its interrupt inputs (int_i) from an interrupt source into a vectorially encoded part interrupt address vector of the corresponding K + 1th level interrupt source, e) each level (B, C) having a plurality of priority decoders (Bn, Cn) at least one associated logic gate ( 13 . 14 . 16 ), at the inputs of which the sub-interrupt address vectors of a group of the priority decoders (Bn, Cn) of the same level (B, C) are supplied and which provides a sub-interrupt address vector of the respective level (B, C), and f wherein a sub-interrupt address vector of a priority decoder (Bn, Cn) or a logic device ( 15 ) a register ( 17 ) is fed to the first level (A), wherein the register ( 17 ) comprise a total interrupt address vector (addr) corresponding to one of the original interrupt source. Anordnung nach Anspruch 1, dadurch gekennzeichnet, dass ein weiteres Logikgatter (15) vorgesehen ist, dessen Eingang (addrl_i) mit den Adressausgängen (addrl_o) von vorgeschalteten Logikgattern (13, 14) derselben Ebene (C) verbunden ist, und an dessen Adressausgang (addrl_o) ein Teil- Interrupt-Adressvektor der Interruptquelle der nächst höheren Ebene (K + 1) ausgegeben wird.Arrangement according to claim 1, characterized in that a further logic gate ( 15 ) whose input (addrl_i) with the address outputs (addrl_o) of upstream logic gates ( 13 . 14 ) is connected to the same level (C), and at whose address output (addrl_o) a sub-interrupt address vector of the interrupt source of the next higher level (K + 1) is output. Anordnung nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Prioritätsdecoder (10 Cn, Bn) ihre Interrupt-Eingänge (int_i) abtasten, bei Vorliegen mehrerer Interrupts den Interrupt mit der höchsten Priorität auswählen und bestätigen, und die Adresse der zugehörigen Interruptquelle in Form eines Teil-Interrupt-Adressvektors an ihrem Adressausgang (addrl, addrm, addrh) ausgeben.Arrangement according to claim 1 or 2, characterized in that the priority decoder ( 10 Cn, Bn) sample their interrupt inputs (int_i), select and acknowledge the interrupt with the highest priority in the presence of a plurality of interrupts, and the address of the associated interrupt source in the form of a sub-interrupt address vector at its address output (addrl, addrm, addrh ) output. Anordnung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass ein Penalty-Bit für einen ausgewählten Interrupteingang (int_ix) gesetzt wird, das die erneute Auswahl dieses Interrupts verhindert, bis andere am Interrupteingang (int_i) ggf. anliegende Interrupts abgearbeitet wurden.Arrangement according to one of the preceding claims, characterized characterized in that a penalty bit for a selected interrupt input (int_ix) which prevents the reselection of this interrupt, to other interrupts on the interrupt input (int_i) were processed. Anordnung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass sämtliche Interrupteingänge (int_ix) eines Prioritätsdecoders (10, Bn, Cn) während eines Systemtakts abgetastet werden.Arrangement according to one of the preceding claims, characterized in that all interrupt inputs (int_ix) of a priority decoder ( 10 , Bn, Cn) during a system clock. Anordnung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Interrupteingänge (int_i) eines Prioritätsdecoders (10, Bn, Cn) in der Reihenfolge ihrer Priorität abgetastet werden.Arrangement according to one of the preceding claims, characterized in that the interrupt inputs (int_i) of a priority decoder ( 10 , Bn, Cn) are scanned in order of priority. Anordnung nach Anspruch 4, dadurch gekennzeichnet, dass gesetzte Penalty-Bits zurückgesetzt werden, wenn kein Interrupt ohne Penalty-Bit mehr am Interrupteingang (int_i) anliegt.Arrangement according to claim 4, characterized that set penalty-bits are reset, if there is no interrupt without a penalty bit at the interrupt input (int_i) is applied. Anordnung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass ein Prioritätsdecoder (10, Bn, Cn) einer Ebene K einem Prioritätsdecoder (10, Bn, Cn) einer Ebene K + 1 das Auswählen eines Interruptsignals bestätigt und dadurch bewirkt, dass dieser seine Interrupteingänge (int_i) im nächsten Taktzyklus auswertet.Arrangement according to one of the preceding claims, characterized in that a priority decoder (10, Bn, Cn) of a plane K is a priority decoder ( 10 , Bn, Cn) of a plane K + 1 confirms the selection of an interrupt signal and thereby causes it to evaluate its interrupt inputs (int_i) in the next clock cycle. Anordnung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass in einer kaskadiert aufgebauten Anordnung der Prioritätsdecoder der ersten Ebene (A) ein an die CPU zu sendendes Interruptsignal erst dann absendet, wenn sämtliche ausgewählten Prioritätsdecoder nachfolgender Ebenen (B, C, ...) ihre Interrupteingänge (int_i) ausgewertet haben.Arrangement according to one of the preceding claims, characterized in that in a cascaded arrangement of the priority decoder the first level (A) is an interrupt signal to be sent to the CPU only then sends, if all chosen priority decoder subsequent levels (B, C, ...) their interrupt inputs (int_i) have evaluated.
DE10115885A 2001-03-30 2001-03-30 Arrangement for prioritizing an interrupt Expired - Fee Related DE10115885B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE10115885A DE10115885B4 (en) 2001-03-30 2001-03-30 Arrangement for prioritizing an interrupt

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10115885A DE10115885B4 (en) 2001-03-30 2001-03-30 Arrangement for prioritizing an interrupt

Publications (2)

Publication Number Publication Date
DE10115885A1 DE10115885A1 (en) 2002-10-17
DE10115885B4 true DE10115885B4 (en) 2006-09-21

Family

ID=7679750

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10115885A Expired - Fee Related DE10115885B4 (en) 2001-03-30 2001-03-30 Arrangement for prioritizing an interrupt

Country Status (1)

Country Link
DE (1) DE10115885B4 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2879318A1 (en) * 2004-12-15 2006-06-16 St Microelectronics Sa CPU activity sharing method for computing unit, involves dedicating high and low priority lines to interruptions for undertaking operations according to kernel operating system and open operating system, respectively

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4275458A (en) * 1979-12-14 1981-06-23 Gte Automatic Electric Laboratories Incorporated Interrupt expander circuit
US5161228A (en) * 1988-03-02 1992-11-03 Ricoh Company, Ltd. System with selectively exclusionary enablement for plural indirect address type interrupt control circuit
US5560018A (en) * 1994-12-16 1996-09-24 International Business Machines Corporation Providing external interrupt serialization compatibility in a multiprocessing environment for software written to run in a uniprocessor environment
US5619705A (en) * 1993-12-16 1997-04-08 Intel Corporation System and method for cascading multiple programmable interrupt controllers utilizing separate bus for broadcasting interrupt request data packet in a multi-processor system
WO1998012634A2 (en) * 1996-09-20 1998-03-26 Philips Electronics N.V. Solid state data processor with versatile multisource interrupt organization
US5745772A (en) * 1996-08-02 1998-04-28 Micron Electronics, Inc. Advanced programmable interrupt controller
US5828891A (en) * 1995-12-20 1998-10-27 International Business Machines Corporation Multilevel interrupt device
DE19731634A1 (en) * 1997-07-23 1999-01-28 Nokia Telecommunications Oy Apparatus and method for finding an interrupt request associated with a source
US5872982A (en) * 1994-12-28 1999-02-16 Compaq Computer Corporation Reducing the elapsed time period between an interrupt acknowledge and an interrupt vector
WO2000010094A1 (en) * 1998-08-10 2000-02-24 Micron Electronics, Inc. Processor or core logic unit with internal register for peripheral status

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4275458A (en) * 1979-12-14 1981-06-23 Gte Automatic Electric Laboratories Incorporated Interrupt expander circuit
US5161228A (en) * 1988-03-02 1992-11-03 Ricoh Company, Ltd. System with selectively exclusionary enablement for plural indirect address type interrupt control circuit
US5619705A (en) * 1993-12-16 1997-04-08 Intel Corporation System and method for cascading multiple programmable interrupt controllers utilizing separate bus for broadcasting interrupt request data packet in a multi-processor system
US5560018A (en) * 1994-12-16 1996-09-24 International Business Machines Corporation Providing external interrupt serialization compatibility in a multiprocessing environment for software written to run in a uniprocessor environment
US5872982A (en) * 1994-12-28 1999-02-16 Compaq Computer Corporation Reducing the elapsed time period between an interrupt acknowledge and an interrupt vector
US5828891A (en) * 1995-12-20 1998-10-27 International Business Machines Corporation Multilevel interrupt device
US5745772A (en) * 1996-08-02 1998-04-28 Micron Electronics, Inc. Advanced programmable interrupt controller
WO1998012634A2 (en) * 1996-09-20 1998-03-26 Philips Electronics N.V. Solid state data processor with versatile multisource interrupt organization
DE19731634A1 (en) * 1997-07-23 1999-01-28 Nokia Telecommunications Oy Apparatus and method for finding an interrupt request associated with a source
WO2000010094A1 (en) * 1998-08-10 2000-02-24 Micron Electronics, Inc. Processor or core logic unit with internal register for peripheral status

Also Published As

Publication number Publication date
DE10115885A1 (en) 2002-10-17

Similar Documents

Publication Publication Date Title
DE69628127T2 (en) Method and device for displaying the coherence in a multiprocessor system
DE69932400T2 (en) Control device for a port manager for the connection of different functional modules
DE4118331C2 (en) Bus system for use with an information processing device
DE69839194T2 (en) DEVICE AND METHOD OF INITIATING HARDWARE FORCE MANAGEMENT THROUGH SOFTWARE-CONTROLLED REGISTER ACCESS
DE2841041A1 (en) DATA PROCESSING SYSTEM WITH AT LEAST TWO PROCESSORS EQUIPPED WITH A FAST WORKING MEMORY
DE3131341A1 (en) &#34;BUFFER STORAGE ORGANIZATION&#34;
DE2702090A1 (en) DEVICE FOR PROCESSING INTERRUPTIONS IN MICRO-PROCESSING SYSTEMS
DE3535436C2 (en)
DE3642324A1 (en) MULTIPROCESSOR SYSTEM WITH PROCESSOR ACCESS CONTROL
DE3502147A1 (en) Data processing system with improved buffer memory control
DE112010005609T5 (en) Storing data in one of a plurality of buffers in a memory controller
DE69726400T2 (en) SOLID BODY DATA PROCESSOR WITH VERSATILE MULTI-SOURCE INTERRUPTION ORGANIZATION
EP0062141A1 (en) Circuit arrangement for entering control commands into a microcomputer system
DE102004003102A1 (en) System and method for determining a transaction timeout
DE10115885B4 (en) Arrangement for prioritizing an interrupt
DE60209761T2 (en) CONNECTING MULTIPLE PROCESSORS TO EXTERNAL MEMORY WITH BURST MODE
EP1308846B1 (en) Data Transfer Device
DE3247083A1 (en) MULTI-PROCESSOR SYSTEM
EP1435578B1 (en) DMA controller updating descriptors in memory after each access
DE19580638B4 (en) A computer system and method for controlling a peripheral device in a computer system
DE3325791C2 (en) Circuit arrangement for peripheral units cooperating with a central control device
DE10155486A1 (en) Arrangement for managing of peripheral status information by a computer processor in which additional flag register positions are created that are then set to the states of peripheral status registers, thus reducing polling
DE3335549A1 (en) Monitoring device for data processing system
DE102020206312A1 (en) Method of transferring data between a plurality of root complex devices
DE3412805A1 (en) PROCESSOR

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: LANTIQ DEUTSCHLAND GMBH, 85579 NEUBIBERG, DE

R081 Change of applicant/patentee

Owner name: LANTIQ DEUTSCHLAND GMBH, DE

Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 81669 MUENCHEN, DE

Effective date: 20110325

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee