DE10115885A1 - Management system for real-time interrupt requests e.g. for computing and processing resources units, includes priority decoder for each of three planes - Google Patents
Management system for real-time interrupt requests e.g. for computing and processing resources units, includes priority decoder for each of three planesInfo
- Publication number
- DE10115885A1 DE10115885A1 DE2001115885 DE10115885A DE10115885A1 DE 10115885 A1 DE10115885 A1 DE 10115885A1 DE 2001115885 DE2001115885 DE 2001115885 DE 10115885 A DE10115885 A DE 10115885A DE 10115885 A1 DE10115885 A1 DE 10115885A1
- Authority
- DE
- Germany
- Prior art keywords
- interrupt
- address
- level
- int
- priority
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
- G06F13/26—Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
Description
Die Erfindung betrifft ein System sowie ein Verfahren zum Verwalten von Interruptanforderungen, insbesondere in einem Echtzeitsystem.The invention relates to a system and a method for Manage interrupt requests, especially in one Real-time system.
Die Ressourcen einer Rechen- und Verarbeitungseinheit (CPU) sind üblicherweise begrenzt und müssen daher einzelnen Sys temeinheiten sequentiell zur Verfügung gestellt werden. Zur Anforderung von Rechenleistung senden die Systemeinrichtungen sogenannte Interrupts an eine CPU, die daraufhin die angefor derte Aufgabe ausführt. Die Interruptsignale können eine un terschiedliche Priorität aufweisen und werden entsprechend ihrer Priorität abgearbeitet. Ein Beispiel für einen Inter rupt 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 usually limited and therefore must have individual sys units are made available sequentially. to The system devices send requests for computing power so-called interrupts to a CPU, which then requests the carries out another task. The interrupt signals can be un have different priorities and will be accordingly processed their priority. An example of an inter rupt with high priority is e.g. B. that of a FIFO Memory that threatens to overflow and is therefore read out got to.
Es ist bekannt, Interruptsignale von Systemeinrichtungen an einen sogenannten Host zu übermitteln, der bei Vorliegen ei ner 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 abge arbeitet wird.It is known to receive interrupt signals from system devices to transmit a so-called host, which, if present, ner interrupt request a register in polling mode reads to determine the address of the interrupt source. The host first reads out the register, determines it the address of the interrupt source and the data read out then triggers an associated procedure that is initiated by the CPU will work.
Dieses System hat den Nachteil, dass das Auslesen des Regis ters relativ aufwendig ist, was insbesondere bei einer großen Vielzahl von Interruptquellen zu einer Verlangsamung des Sys tems führt.This system has the disadvantage that the readout of the register ters is relatively expensive, which is particularly the case with a large Large number of interrupt sources to slow down the sys leads.
Es ist daher die Aufgabe der vorliegenden Erfindung, ein Sys tem sowie ein Verfahren zur Verwaltung von Interruptanforderugen zu schaffen, das wesentlich einfacher funktioniert und schneller arbeitet.It is therefore the object of the present invention to provide a sys system and a procedure for managing interrupt requests to create that works much easier and works faster.
Die wesentliche erfinderische Idee besteht erfindungsgemäß darin, am Ausgang des Systems unmittelbar einen Vektor (Poin ter) als Interruptadresse zu liefern, der auf die Interrupt quelle zeigt.The essential inventive idea is according to the invention in it, a vector (Poin ter) to deliver as the interrupt address that is on the interrupt source shows.
Das erfindungsgemäße System umfasst wenigstens einen Priori tätsdecoder mit mehreren Interrupteingängen, an denen ver schiedene Interruptquellen angeschlossen sind. Der Priori tätsdecoder umfasst eine Schaltung zum Umwandeln eines am In terrupteingang anliegenden Signals in eine vektoriell kodier te Adresse, insbesondere in einen binär kodierten Interrupt- Adressvektor. Der Prioritätsdecoder hat außerdem einen Adress ausgang, an dem der Interrupt-Adressvektor ausgegeben wird, sowie einen Interruptausgang, an dem ein Interruptsignal aus gegeben wird, wobei das Interruptsignal und der Interrupt-Ad ressvektor einer CPU zugeführt werden.The system according to the invention comprises at least one priori tatsdecoder with multiple interrupt inputs at which ver different interrupt sources are connected. The priori tatsdecoder comprises a circuit for converting an am input signal present in a vectorial coding te address, especially in a binary coded interrupt Address vector. The priority decoder also has an address output at which the interrupt address vector is output, as well as an interrupt output from which an interrupt signal is given, the interrupt signal and the interrupt ad ressvektor be fed to a CPU.
Das System ist vorzugsweise kaskadiert aufgebaut, wobei die am Prioritätsdecoder einer Ebene K angeschlossenen Interrupt quellen vorzugsweise wiederum jeweils wenigstens einen Prio ritätsdecoder einer nächsten Ebene K + 1 umfassen, an deren In terrupteingängen jeweils Interruptquellen einer weiteren Ebe ne K + 2 angeschlossen sind. Die Prioritätsdecoder jeder Ebene K umfassen vorzugsweise jeweils eine Schaltung zum Umwandeln eines an ihrem Interrupteingang anliegenden Interruptsignals in eine vektoriell, insbesondere binär, kodierte Adresse der entsprechenden Interruptquelle, die der CPU als Bestandteil eines Gesamt-Adressvektors zugeführt wird.The system is preferably cascaded, the Interrupt connected to the priority decoder of a level K swell preferably again at least one priority each rity decoder of a next level K + 1, at whose In interrupt inputs of another level ne K + 2 are connected. The priority decoder of each level K preferably each comprise a circuit for converting an interrupt signal present at its interrupt input into a vectorially, in particular binary, coded address of the corresponding interrupt source that the CPU as part of an overall address vector is supplied.
Global betrachtet ist das erfindungsgemäße System zur Verwal tung von Interrupts vorzugsweise in mehreren Ebenen kaska diert aufgebaut, wobei jede Ebene (K) wenigstens einen Prio ritätsdecoder umfasst, der eine Interruptquelle für eine vor hergehende Ebene (K - 1) darstellt und an dessen Interrupteingang mehrere Interruptquellen einer nachfolgenden (K + 1-ten) Ebene angeschlossen sind.From a global perspective, the system for administration is processing of interrupts preferably in several levels kaska built up, with each level (K) at least one priority rity decoder, which is an interrupt source for a front level (K - 1) and at its interrupt input several interrupt sources of a subsequent (K + 1-th) Level are connected.
Die Interruptquellen der letzten Ebene Z sind dagegen "ur sächliche" Interruptquellen, d. h. Systemeinrichtungen, die eine Bearbeitungsanforderung an die CPU abgsenden können.The interrupt sources of the last level Z, on the other hand, are "ur neuter "interrupt sources, i.e. system facilities that can send a processing request to the CPU.
Die Prioritätsdecoder einer Ebene K umfassen vorzugsweise ei ne Schaltung zum Umwandeln eines an ihrem Interrupteingang anliegenden Interruptsignals in eine vektoriell kodierte Ad resse der entsprechenden Interruptquelle.The priority decoders of a level K preferably comprise ei ne circuit for converting one at its interrupt input interrupt signal present in a vector-coded ad address of the corresponding interrupt source.
Die Interrupt-Adressvektoren werden jeweils an einem entspre chenden Adressausgang der Prioritätsdecoder einer bestimmten Ebene ausgegeben.The interrupt address vectors each correspond to one corresponding address output of the priority decoder of a specific Level output.
Jede Ebene (ausgenommen der ersten und letzten) umfasst vor zugsweise ein Logikgatter, dessen Eingang mit den Adressaus gängen der Prioritätsdecoder dieser Ebene über Datenbusse verbunden ist und an dessen Ausgang eine am Eingang anliegen de Adresse einer Interruptquelle durchgeschaltet wird.Each level (except the first and last) includes before preferably a logic gate, whose input matches the address the priority decoder of this level over data buses is connected and at the output there is one at the input de address of an interrupt source is switched through.
In jeder Ebene K wird somit ein Adressvektor bereitgestellt, der auf die Interruptquelle einer Ebene K + 1 zeigt.An address vector is thus provided in each level K, which points to the interrupt source of a level K + 1.
Ferner kann ein Adressregister vorgesehen sein, an dessen Eingang die kodierten Adressvektoren, vorzugsweise jeder Ebe ne, geführt sind, und an dessen Ausgang ein aus den am Ein gang anliegenden Adressvektoren gebildeter Gesamt-Adressvek tor ausgegeben wird.Furthermore, an address register can be provided, on the Input the coded address vectors, preferably each level ne, are guided, and at the exit on from the on total address vector formed in the adjacent address vectors gate is output.
Die vorstehend beschriebene Schaltung arbeitet im wesentli
chen nach folgendem Verfahren:
Auswerten der Interrupteingänge eines Prioritätsdecoders;
Auswählen und Bestätigen eines Interrupts mit der höchsten
Priorität;
Umwandeln des Interruptsignals in eine Adresse der entspre
chenden Interruptquelle; und
Ausgeben der Adresse in Form eines kodierten Adressvektors.The circuit described above essentially works according to the following procedure:
Evaluating the interrupt inputs of a priority decoder;
Select and acknowledge an interrupt with the highest priority;
Converting the interrupt signal into an address of the corresponding interrupt source; and
Output of the address in the form of a coded address vector.
Das Bestätigen eines Interrupts durch einen Prioritätsdecoder einer Ebene K bewirkt, dass der Prioritätsdecoder der Ebene K + 1, dessen Interrupt bestätigt wurde, mit dem Auswählen ei nes seiner eigenen Interrupteingänge beginnt. D. h. das Aus wählen eines bestimmten Interrupts durch einen Prioritätsde coder wird erst dann durchgeführt, wenn dies von einem Prio ritätsdecoder der vorhergehenden Ebene (K - 1) durch ein ent sprechendes (Acknowledge-)Signal freigegeben wurde.The acknowledgment of an interrupt by a priority decoder a level K causes the priority decoder of the level K + 1, whose interrupt has been confirmed, by selecting ei one of its own interrupt inputs begins. I.e. the end select a particular interrupt by a priority de coder is only carried out if this is done by a priority rity decoder of the previous level (K - 1) by an ent speaking (acknowledge) signal was released.
Für den ausgewählten Interrupteingang wird vorzugsweise ein Penalty-Bit gesetzt. Dadurch wird der entsprechende Interrup teingang blockiert, und eine erneute Bearbeitungsanfrage der selben Interruptquelle erst dann bearbeitet, wenn andere ge gebenenfalls am Interrupteingang anstehende Interrupts abge arbeitet wurden.A is preferably used for the selected interrupt input Penalty bit set. This will make the corresponding interrupt input blocked, and a new processing request from the same interrupt source is only processed when other ge any interrupts pending at the interrupt input were working.
Umgekehrt werden nur Interrupts ausgewählt, falls für deren Eingang kein Penalty-Bit gesetzt wurde.Conversely, only interrupts are selected, if for their No penalty bit was set at the input.
Das Abtasten sämtlicher Interrupteingänge erfolgt vorzugswei se innerhalb einer Periode des Systemtakts.All interrupt inputs are preferably sampled se within a period of the system clock.
Das System zur Verwaltung von Interrupts ist vorzugsweise im übrigen Deadlock-frei, d. h., nach Auswählen und Bestätigen eines bestimmten Interrupts wird ein nachfolgendes (an einem beliebigen anderen Interrupteingang des Prioritätsdecoders anstehendes) Interruptsignal solange zurückgehalten, bis der ausgewählte Interrupt abgearbeitet wurde.The system for managing interrupts is preferably in remaining deadlock-free, d. that is, after selecting and confirming of a certain interrupt, a subsequent one (on a any other interrupt input of the priority decoder pending) interrupt signal is held until the selected interrupt was processed.
Der Prioritätsdecoder der ersten Ebene (A) wertet vorzugswei se zuerst seine Interrupteingänge aus und wählt einen Priori tätsdecoder der zweiten Ebene (B) aus. 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.The priority decoder of the first level (A) preferably evaluates First select its interrupt inputs and choose a priority second level (B). This then evaluates selects its interrupt inputs and selects a priority decoder the third level (C) etc. The evaluation of the interrupts takes place from a lower level K towards one higher level K + 1.
Der an die CPU zu sendende Interrupt wird vorzugsweise solan ge zurückgehalten, bis jeweils ein Prioritätsdecoder jeder Ebene seine Interrupteingänge ausgewertet hat. In einem Sys tem mit N Ebenen, in dem ein Prioritätsdecoder seine Inter rupteingänge in einem Taktzyklus auswertet, dauert dies N Taktzyklen.The interrupt to be sent to the CPU is preferably solan held until one priority decoder each Level has evaluated its interrupt inputs. In a sys system with N levels in which a priority decoder inter evaluates rupte inputs in one clock cycle, this takes N Clock cycles.
Die Interruptsignale der einzelnen Prioritätsdecoder sind vorzugsweise flankengetriggert.The interrupt signals of the individual priority decoders are preferably edge triggered.
Die Interrupteingänge der Prioritätsdecoder werden vorzugs weise in der Reihenfolge ihrer Priorität abgetastet.The interrupt inputs of the priority decoder are preferred scanned in order of priority.
Die für die Interrupteingänge gesetzten Penalty-Bits werden vorzugsweise zurückgesetzt, wenn kein auswählbarer Interrupt ohne Penalty-Bit mehr am Interrupteingang anliegt.The penalty bits set for the interrupt inputs are preferably reset if no selectable interrupt is present at the interrupt input without a penalty bit.
Die Erfindung wird nachstehend anhand der beigefügten Figuren beispielhaft näher erläutert. Es zeigen:The invention is described below with reference to the attached figures exemplified in more detail. Show it:
Fig. 1 Den Aufbau eines Interruptsystems gemäß einer bevor zugten Ausführungsform der Erfindung; und Fig. 1 shows the construction of an interrupt system in accordance with a prior ferred embodiment of the invention; and
Fig. 2 Ein Flussdiagramm zur Erläuterung der Verwaltung der Interrupts. Fig. 2 is a flow chart to explain the management of the interrupts.
In Fig. 1 ist ein in mehreren Ebenen A, B, C kaskadiert auf gebautes System zur Verwaltung von Interrupts gezeigt. Die erste Ebene A umfasst dabei einen Prioritätsdecoder 10, mit mehreren Interrupteingängen int_i, an denen mehrere Inter ruptquellen B1, B2 einer zweiten Ebene B angeschlossen sind. Der Prioritätsdecoder 10 dient zur Priorisierung von Inter rupts, d. h. zum Auswählen von Interrupts entsprechend ihrer Priorität, und umfasst ferner einer. Interruptausgang int_o, an dem ein Interruptsignal ausgegeben wird, wenn ein am In terrupteingang int_i anliegendes Interruptsignal ausgewählt wurde.In Fig. 1 a cascaded in several levels A, B, C on built system for managing interrupts is shown. The first level A comprises a priority decoder 10 with a plurality of interrupt inputs int_i, to which a number 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 one. Interrupt output int_o, at which an interrupt signal is output if an interrupt signal present at the intupi input int_i has been selected.
Der Prioritätsdecoder 10 hat außerdem eine Schaltung zum Um wandeln 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 present at the interrupt input int_i into a vector, 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 ei nem Register 17 verbunden, wobei der vom Prioritätsdecoder 10 ausgegebene Adressvektor einen Bestandteil eines Gesamt-Ad ressvektors bildet, der auf die ursächliche Interruptquelle, d. h. eine bestimmte, eine Bearbeitung anfordernde, Interrupt quelle der letzten Ebene, zeigt.The address output AddrH of the priority decoder 10 is connected to ei nem register 17, the output from the priority decoder 10 address vector is of an overall ad ressvektors one ingredient, that is, on the causative interrupt a specific, a processing requesting, interrupt source the last level, shows.
Die Interruptquellen der zweiten Ebene B sind weitere Priori tätsdecodern B1, B2, deren Interruptausgang int_o mit dem In terrupteingang int_i des Prioritätsdecoders 10 verbunden sind, und die einen Adressausgang addrm aufweisen, der je weils mit einem Adresseingang addrm_i eines Logikgatters 16 verbunden ist.The interrupt sources of the second level B are further priority decoders B1, B2, the interrupt output int_o of which are connected to the input int_i of the priority decoder 10 , and which have an address output addrm, each of which is connected to an address input addrm_i of a logic gate 16 .
Am Interrupteingang int_i der Prioritätsdecoder B1, B2 der zweiten Ebene B sind wiederum mehrere Interruptquellen ange schlossen, die entsprechende Interruptsignale an die Priori tätsdecoder B1, B2 übermitteln können. Nach der Auswahl eines ggf. eintreffenden Interruptsignals gibt ein Prioritätsdeco der B1, B2 an seinem Adressausgang addrm einen entsprechenden binär kodierten Adressvektor über einen Adressbus an ein Lo gikgatter 16 aus.At the interrupt input int_i of the priority decoder B1, B2 of the second level B, a plurality of interrupt sources are in turn connected, which can transmit appropriate interrupt signals to the priority decoder B1, B2. After the selection of an possibly arriving interrupt signal, a priority deco of B1, B2 outputs a corresponding binary-coded address vector via an address bus to a logic gate 16 at its address output addrm.
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, all address buses on one level should have one Gates linked, at whose address output addrm_o the am Input addrm_i current address is switched through. at In a low active system, all address buses of one Level can be linked with an AND gate while at linked to a high active system with an OR gate should be.
Als Interruptquellen der dritten Ebene C sind mehrere Priori tätsdecoder C1-C6 vorgesehen, die jeweils einen Interruptein gang int_i und einen Interruptausgang int_o aufweisen.There are several priorities as interrupt sources of the third level C. tatsdecoder C1-C6 provided, each an interrupt gang 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 insbeson dere als UND-Gatter ausgeführt sind.The address outputs addrl of the priority decoder C1-C6 are in turn connected via corresponding address buses to address inputs addrl_i of two logic gates 13 , 14 , 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) an geschlossen, die mittels eines Interrupts Rechenleistung der CPU anfordern können.At the interrupt inputs int_i the priority decoder C1-C6 are multiple system devices (not shown) closed by means of an interrupt computing power of CPU can request.
Die Prioritätsdecoder C1-C6 geben wiederum einen der jeweili gen Interruptquelle entsprechenden Adressvektor aus, wobei die Adressausgänge addrl einer ersten Gruppe von Prioritäts decodern C1-C3 mit einem ersten Logikgatter 13, und die Adressausgäng addrl einer zweiten Gruppe von Prioritätsdeco dern 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 with a first logic gate 13 , and the address outputs addrl of a second group of priority decoders C4-C6 with one 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 ver bunden. Am Adressausgang addrl_o des Logikgatters 15 wird schließlich die Adresse der ursprünglichen Interruptquelle ausgegeben und über einen Adressbus dem Register 17 zuge führt.The address outputs addrl_o of the logic gates 13 , 14 are connected to the address input addrl_i of a further logic gate 15 . At the address output addrl_o of the logic gate 15 , the address of the original interrupt source is finally output and the register 17 is supplied via an address bus.
Das Register 17 erhält somit die Adresse addrh der Intetrupt quelle der zweiten Ebene B, die Adresse addrm der Interrupt quelle der dritten Ebene C und die Adresse addrl der den Interrupt anfordernden Systemeinrichtung jeweils in Form eines Adressvektors. Die einzelnen Adressvektoren bilden zusammen genommen einen Gesamt-Adressvektor, der direkt auf die ur sprüngliche Interruptquelle zeigt.The register 17 thus receives the address addrh of the intent source of the second level B, the address addrm of the interrupt source of the third level C and the address addrl of the system requesting the interrupt, each in the form of an address vector. Taken together, the individual address vectors form an overall address vector which points directly to the original interrupt source.
Jeder Prioritätsdecoder 10, Bn, Cn hat vorzugsweise einen Bes tä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 an genommen, bis der ausgewählte Interrupt abgearbeitet wurde.Each priority decoder 10 , Bn, Cn preferably has an actuation input and / or output (not shown), wherein an acknowledgment output of a priority decoder of a level K is connected to an acknowledgment input of a priority decoder of a level K + 1 in order to select a particular one its int_i input to acknowledge the interrupt signal. Subsequent interrupts are no longer accepted until the selected interrupt has been processed.
Der Prioritätsdecoder der ersten Ebene (A) wertet vorzugswei se zuerst seine Interrupteingänge aus, wählt einen Priori tätsdecoder der zweiten Ebene (B) aus und bestätigt dies mit tel eines Acknowledge-Bits. Dieser wertet dann seine Inter rupteingänge aus und wählt einen Prioritätsdecoder der drit ten 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).The priority decoder of the first level (A) preferably evaluates First select its interrupt inputs, select a priority second level (B) and confirms this with tel of an acknowledge bit. This then evaluates its Inter rupte inputs and selects a third-party priority decoder level (C) off etc. The interrupts are evaluated thus from a lower level K towards a higher one Level K + 1 (from right to left in the figure).
Der an die CPU zu sendende Interrupt wird vorzugsweise solan ge 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ätsdeco der seine Interrupteingänge int_i in einem Taktzyklus auswer tet, dauert es 3 Taktzyklen, bis ein Interrupt vom Priori tätsdecoder 10 ausgegeben wird.The interrupt to be sent to the CPU is preferably retained until a priority decoder Bn, Cn of levels B, C has evaluated its interrupt inputs. In the system shown with 3 levels, in which a priority deco which evaluates its interrupt inputs int_i in one clock cycle, it takes 3 clock cycles until an interrupt is output by the priority decoder 10 .
Fig. 2a, b zeigt einen typischen Arbeitsablauf, wie er von ei nem Prioritätsdecoder in einem gemäß Fig. 1 aufgebauten Sys tem durchgeführt wird, wobei im vorliegenden Beispiel ein low-aktives System angenommen wird. Der Prozessablauf gilt entsprechend auch für ein high-aktives System. FIG. 2a, b shows a typical work flow as it is carried out by ei nem priority decoder in FIG. 1 constructed Sys tem, with a low-active system is adopted in the present example. The process flow also applies 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 Pro zedur 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).In step 20 , the priority decoder first checks whether no interrupt for a specific interrupt source has been confirmed at its confirmation output (the designation "n" means negative or low-active). If no, ie an interrupt for this address has already been confirmed, a query is made in step 21 as to whether there is no interrupt. If no, the procedure is ended; if yes, a penalty bit and the variable ack_no are set to 1 for this confirmation output. 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).Returning to step 20 , if no confirmation has been given for a specific address, a variable x is set to 0 (step 22 ). In step 23 , a query is made as to whether the variable is smaller than a number n (n is 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, all bits of a vector pen and thus all penalty bits are set to 0 in step 27 . If yes, a query is made in step 25 as to 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 is incremented in step 24 .
Falls Ja wird in Schritt 26 überprüft, ob eine Bestätigung am Bestätigungseingang erfolgt ist (dies ist nur für Prioritäts decoder 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, it is checked in step 26 whether a confirmation has been received at the confirmation input (this is only required for priority decoders of levels B, C,..., Not for level A). If yes, the address variable addr receives the value of the variable x and the interrupt is confirmed (ack_no (x) <= 0; step 28 ).
Das Ende der Routine ist in Schritt 30 erreicht.The end of the routine is reached in step 30 .
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 Fig. 2b gezeigt. An interrupt to be sent from the priority decoder 10 of the first level A to the CPU is preferably held until a priority decoder Bn, Cn of levels B, C has evaluated its interrupt inputs. The course of this process is shown in Fig. 2b.
Zunächst wird in Schritt 31 überprüft, ob kein Interrupt an einem Interrupteingang mit einer bestimmten Adresse addr an liegt oder keine Bestätigung an diese Adresse ausgegeben wur de. 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 aus gegeben (Schritt 32). First, it is checked in step 31 whether there is no interrupt at an interrupt input with a specific address addr or whether no confirmation has been issued at this address. If no, a delay variable intdly is set to 0 and an interrupt is output at the output of the priority decoder 10 (cf. step 33 ). Otherwise, the delay variable is intdly set to 1 and no interrupt is issued (step 32 ).
A Erste Ebene
B Zweite Ebene
C Dritte Ebene
int Interruptsignal
int_i Interrupteingang
int_o Interruptausgang
addrl Adressausgang
addrm Adressausgang
addrh Adressausgang
addrl1 Adressvektor
addrl2 Adressvektor
B1, B2 Prioritätsdecoder der zweiten Ebene
C1-C6 Prioritätsdecoder der dritten Ebene
A First level
B Second level
C Third level
int interrupt signal
int_i interrupt input
int_o interrupt output
addrl address output
addrm address output
addrh address output
addrl1 address vector
addrl2 address vector
B1, B2 priority decoder of the second level
C1-C6 third level priority decoder
1010
Prioritätsdecoder der ersten Ebene
First level priority decoder
13-1613-16
Logikgatter
logic gates
1717
Adressregister
address register
20-3420-34
Schritte im Verfahrensablauf
Steps in the process
Claims (16)
Abtasten des Interrupteingangs (int_i), Auswählen und Bestätigen eines Interrupts mit der höchsten Priorität; und
Ausgeben der Adresse der zugehörigen Interruptquelle in Form eines Interrupt-Adressvektors am Ausgang (addrl, addrm, addrh) des Prioritätsdecoders (10, Bn, Cn).8. A method for managing interrupt requests from system devices of a system with at least one priority decoder (10, Bn, Cn) with an address output (addrl, addrm, addrh), to whose interrupt input (int_i) several interrupt sources are connected, comprising the following steps:
Sampling the interrupt input (int_i), selecting and acknowledging an interrupt with the highest priority; and
Output of the address of the associated interrupt source in the form of an interrupt address vector at the output (addrl, addrm, addrh) of the priority decoder (10, Bn, Cn).
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 true DE10115885A1 (en) | 2002-10-17 |
DE10115885B4 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) |
Cited By (1)
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)
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 |
-
2001
- 2001-03-30 DE DE10115885A patent/DE10115885B4/en not_active Expired - Fee Related
Patent Citations (10)
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 |
Cited By (1)
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 |
Also Published As
Publication number | Publication date |
---|---|
DE10115885B4 (en) | 2006-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69500074T2 (en) | Modulo-addressed buffer memory | |
DE3300261C2 (en) | ||
EP1101329B1 (en) | Bridge module | |
DE3642324C2 (en) | Multiprocessor system with processor access control | |
DE2809405A1 (en) | PRIORITY CONTROL CIRCUIT | |
DE69018052T2 (en) | Method and system for smoothing and monitoring the data rates of asynchronous time division multiplex transmissions. | |
DE3809831C2 (en) | ||
EP0974901A2 (en) | Method to determine a uniform global view of the system states in a distributed computer network | |
DE2656086A1 (en) | COMPUTER SYSTEM | |
DE10211517A1 (en) | Bus schedule formation method for transmission of information along bus system uses generic algorithm | |
EP0113379B1 (en) | Coupler for processors | |
DE10115885A1 (en) | Management system for real-time interrupt requests e.g. for computing and processing resources units, includes priority decoder for each of three planes | |
DE4129412A1 (en) | METHOD FOR DATA TRANSFER AND DATA PROCESSING SYSTEM WITH DISTRIBUTED COMPUTER NODES | |
DE19830803C2 (en) | CAN module | |
DE112008002253B4 (en) | EDF implementation for real-time systems with static priorities | |
DE69800095T2 (en) | Fast semaphore register with a safe working method without a specific bus protocol | |
EP1308846B1 (en) | Data Transfer Device | |
DE3887862T2 (en) | Cache memory device. | |
WO2002039292A1 (en) | Communication system for exchanging data using an additional processor | |
DE10300030A1 (en) | DMA module and operating procedures therefor | |
DE19935092C1 (en) | Arrangement for transferring address information in serial transmission system, esp. in multiprocessor system, is simple to implement, significantly reduces access addresses transfer time | |
EP0984355A2 (en) | Apparatus for the fast extraction of the n highest values, where n is a preselectable number | |
EP0349905B1 (en) | Priority selection device | |
DE3325791A1 (en) | Circuit arrangement for peripheral units which work with a central control device | |
DE3610523C2 (en) |
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 |