Patent US5603035A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5603035A Expired / Lapsed US ⏱️ 0.0 years remaining

Programmable interrupt controller, interrupt system and interrupt control process

Assignee: Telemecanique SA
•
Filing: 1994-05-27
•
Granted: 1997-02-11
•
Expires: 2014-05-27
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A programmable interrupt controller connected to a microprocessor has a register for storing a prevailing vector which is the highest priority vector in service in the microprocessor system. When the microprocessor is executing an interrupt routine, if the programmable interrupt controller or a second programmable interrupt controller connected to the microprocessor receives an interrupt request higher in priority than the executing interrupt, the microprocessor writes the higher priority interrupt vector into the register for storing the prevailing vector of all connected interrupt controllers. Once the higher priority interrupt routine has finished executing, the microprocessor then writes the lower priority previously executing interrupt vector into the register of the prevailing vector of all interrupt controllers and the previously executing interrupt routine continues executing in the microprocessor. The structure of the interrupt controller allows a plurality of interrupt controllers to be connected to the microprocessor without having one of the controllers act as a master and the others as slaves. The order of the priorities of the interrupts for each controller can be programmed using software.

Inventors

  • 👤 Dominique Erramoun
  • 👤 Jean-Francois Karcher

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-23 13:21
CPC Classifications
G; G06; G06F; G06F13/00; G06F13/14; G06F13/20; G06F13/24; G06F13/26

Claims Analysis

Total Claims: 42
Claim 1
Independent Claim 151 words
A programmable interrupt controller for a microprocessor interrupt system, comprising: interrupt request register means, connected to a plurality of interrupt sources through a plurality of interrupt lines and connected to an internal bus, for storing interrupt requests from the interrupt sources; interrupt mask register means, connected to the internal bus, for programmably masking interrupt levels; means for storing a highest priority vector in service, connected to the internal bus; interface means, connected to the internal bus and an external bus, for transmitting the vector stored in the means for storing a highest priority vector in service to the external bus and for simultaneously receiving a signal which is present on the external bus having a priority; and determining means, connected to the interface means, for determining if said highest priority vector in service has a higher priority than the priority of the received signal which is present on the external bus.
Claim 2
Dependent Claim 151 words
A programmable interrupt controller for a microprocessor interrupt system, comprising: interrupt request register means, connected to a plurality of interrupt sources through a plurality of interrupt lines and connected to an internal bus, for storing interrupt requests from the interrupt sources; interrupt mask register means, connected to the internal bus, for programmably masking interrupt levels; means for storing a highest priority vector in service, connected to the internal bus; interface means, connected to the internal bus and an external bus, for transmitting the vector stored in the means for storing a highest priority vector in service to the external bus and for simultaneously receiving a signal which is present on the external bus having a priority; and determining means, connected to the interface means, for determining if said highest priority vector in service has a higher priority than the priority of the received signal which is present on the external bus.
Claim 3
Dependent Claim 88 words
A programmable interrupt controller according to claim 1, wherein the determining means, comprises: means for validating a transmission, by the interface means, to the external bus, of a predetermined weight bit of the highest priority vector stored in the means for storing a highest priority vector in service, only if there is equivalence between a bit, one higher in weight then the predetermined weight bit of the highest priority vector in service and a bit, one higher in weight then the predetermined weight bit, of the received signal.
Claim 4
Dependent Claim 53 words
A programmable interrupt controller according to claim 1, wherein the interface means comprises: means for validating transmission of a bit of the highest priority vector in service to the external bus if the bit is in a dominant state and for not validating the transmission if the bit is in a recessive state.
Claim 5
Dependent Claim 132 words
A programmable interrupt controller according to claim 1, further comprising: means for storing a plurality of interrupt vectors, connected to the internal bus, each stored interrupt vector having an interrupt priority and corresponding to one of the interrupt sources; means for comparing, connected to the internal bus, the interrupt priorities, which are stored in said means for storing a plurality of interrupt vectors, of active and non-masked interrupt vectors with a priority of the highest priority vector in service to determine the highest priority vector and loading said means for storing a highest priority vector in service with the determined highest priority vector; sequencer means, connected to the internal bus, for sequentially sending active and non-masked interrupts from the means for storing a plurality of interrupt vectors to the means for comparing.
Claim 6
Dependent Claim 48 words
A programmable interrupt controller according to claim 4, further comprising: register means for storing a state of the sequencer means and storing a prevailing interrupt source; and a control logic unit means for controlling a loading of the register means for storing a state of the sequencer means.
Claim 7
Dependent Claim 99 words
A programmable interrupt controller according to claim 1, wherein the means for storing a highest priority vector in service comprises: a register means accessible by a microprocessor, wherein when the microprocessor is executing a first interrupt routine from the programmable interrupt controller and a first interrupt vector is stored in the register means of the means for storing a highest priority vector in service, and the microprocessor is instructed to perform a higher priority interrupt routine, the microprocessor writes a higher priority interrupt vector into the register means of the means for storing a highest priority vector in service.
Claim 8
Dependent Claim 85 words
A programmable interrupt controller according to claim 6, wherein: the register means of the means for storing a highest priority vector in service is accessible by the microprocessor such that when the microprocessor is finished executing the higher priority interrupt routine, the microprocessor writes the first interrupt vector into the register means of the means for storing a highest priority vector in service, thereby giving the programmable interrupt controller a priority of the first interrupt vector, and the microprocessor resumes processing the first interrupt routine.
Claim 9
Dependent Claim 53 words
An apparatus according to claim 1, further comprising: means for writing an interrupt vector, corresponding to the received signal, in the means for storing a highest priority vector in service when the determining means determines that said received signal indicates a higher priority than the priority of said highest priority vector in service.
Claim 10
Dependent Claim 72 words
A programmable interrupt controller according to claim 1, wherein: the internal bus comprises a transmitting bus and a receiving bus; and the interface means comprises: an output buffer means, connected between the transmitting bus and the external bus, which selectively allows transmission of bits of the vector stored in the means for storing a highest priority vector in service; and an input buffer connected between the outer bus and the external bus.
Claim 11
Dependent Claim 81 words
A programmable interrupt controller according to claim 9, wherein the determining means comprises: a comparator circuit means for each bit of the vector stored in the means for storing the highest priority in service, each of the comparator circuit means compares a bit of the highest priority vector in service with a corresponding bit of the received signal and outputs an indication of whether said bit has a higher priority than a priority of the corresponding bit of the received signal.
Claim 12
Dependent Claim 47 words
A programmable interrupt controller according to claim 10, further comprising: a plurality of resistors, each connected to a corresponding bit line of the external bus, which places a lower priority signal on the corresponding bit line when the higher priority signal is absent from the bit line.
Claim 13
Dependent Claim 47 words
A programmable interrupt controller according to claim 1, further comprising: a plurality of resistors, each connected to a corresponding bit line of the external bus, which places a lower priority signal on the corresponding bit line when the higher priority signal is absent from the bit line.
Claim 14
Dependent Claim 16 words
A programmable interrupt controller according to claim 1, wherein: the external bus is a data bus.
Claim 15
Dependent Claim 266 words
A microprocessor interrupt system, comprising: a plurality of interrupt controllers, each interrupt controller comprising: interrupt request register means, connected to a plurality of interrupt sources through a plurality of interrupt lines, for storing interrupt requests from the interrupt sources; interrupt mask register means, connected to the internal bus, for programmably masking interrupt levels; means for storing a plurality of interrupt vectors, connected to the internal bus, each stored interrupt vector having an interrupt priority and corresponding to one of the interrupt sources; means for storing a highest priority vector in service, connected to the internal bus; means for comparing, connected to the internal bus, the priorities, which are stored in said means for storing a plurality of interrupt vectors, of active and non-masked interrupt vectors and the highest priority vector in service to determine a highest priority vector and loading said means for storing a highest priority vector in service with the determined highest priority vector; interface means, connected to the internal bus and an external bus, for transmitting the vector stored in the means for storing a highest priority vector in service to the external bus and for simultaneously receiving a signal having a priority which is present on the external bus, said received signal being a combination of said vector transmitted by the interface means and vectors transmitted by interface means of others of said plurality of interrupt controllers; and determining means, connected to the interface means, for determining if said highest priority vector in service has a higher priority than the priority of the received signal which is present on the external bus.
Claim 16
Dependent Claim 266 words
A microprocessor interrupt system, comprising: a plurality of interrupt controllers, each interrupt controller comprising: interrupt request register means, connected to a plurality of interrupt sources through a plurality of interrupt lines, for storing interrupt requests from the interrupt sources; interrupt mask register means, connected to the internal bus, for programmably masking interrupt levels; means for storing a plurality of interrupt vectors, connected to the internal bus, each stored interrupt vector having an interrupt priority and corresponding to one of the interrupt sources; means for storing a highest priority vector in service, connected to the internal bus; means for comparing, connected to the internal bus, the priorities, which are stored in said means for storing a plurality of interrupt vectors, of active and non-masked interrupt vectors and the highest priority vector in service to determine a highest priority vector and loading said means for storing a highest priority vector in service with the determined highest priority vector; interface means, connected to the internal bus and an external bus, for transmitting the vector stored in the means for storing a highest priority vector in service to the external bus and for simultaneously receiving a signal having a priority which is present on the external bus, said received signal being a combination of said vector transmitted by the interface means and vectors transmitted by interface means of others of said plurality of interrupt controllers; and determining means, connected to the interface means, for determining if said highest priority vector in service has a higher priority than the priority of the received signal which is present on the external bus.
Claim 17
Dependent Claim 24 words
An interrupt system according to claim 14, wherein each of said plurality of interrupt controllers has an equal control of said microprocessor interrupt system.
Claim 18
Independent Claim 149 words
A method for processing interrupts in a microprocessor system, comprising the steps of: receiving an interrupt request from at least one of a plurality of interrupt sources and storing the interrupt request; storing a plurality of interrupt vectors, each interrupt vector corresponding to an interrupt source; individually inhibiting and enabling said interrupt vectors; systematically comparing the priorities of active and enabled vectors with the stored highest priority vector in service to determine a highest priority vector currently in service; storing the highest priority vector currently in service as the highest priority vector in service; transmitting the highest priority vector in service to a data bus while simultaneously receiving a signal which is on the data bus, the received signal having a priority; and determining if said highest priority vector in service has a higher priority than the priority of the received signal which is present on the data bus.
Claim 19
Independent Claim 149 words
A method for processing interrupts in a microprocessor system, comprising the steps of: receiving an interrupt request from at least one of a plurality of interrupt sources and storing the interrupt request; storing a plurality of interrupt vectors, each interrupt vector corresponding to an interrupt source; individually inhibiting and enabling said interrupt vectors; systematically comparing the priorities of active and enabled vectors with the stored highest priority vector in service to determine a highest priority vector currently in service; storing the highest priority vector currently in service as the highest priority vector in service; transmitting the highest priority vector in service to a data bus while simultaneously receiving a signal which is on the data bus, the received signal having a priority; and determining if said highest priority vector in service has a higher priority than the priority of the received signal which is present on the data bus.
Claim 20
Dependent Claim 65 words
A method according to claim 16, further comprising the step of: validating a transmission on the data bus of a predetermined weight bit of the highest priority vector in service when an one higher weight bit then the predetermined weight bit of the highest priority vector in service is equivalent to an one higher weight bit then the predetermined weight bit a of input data.
Claim 21
Dependent Claim 45 words
A method according to claim 16, further comprising the step: validating the transmission of a bit of the highest priority vector in service only if the bit is in a dominant state and not validating the transmission if the bit is in a recessive state.
Claim 22
Dependent Claim 16 words
A programmable interrupt controller according to claim 16, wherein: the external bus is a data bus.
Claim 23
Dependent Claim 260 words
A programmable interrupt controller for a microprocessor interrupt system for use with a microprocessor, comprising: a control logic circuit unit for controlling a transmission of an interrupt request to the microprocessor and for receiving interrupt authorization from the microprocessor; interrupt request register means, connected to a plurality of interrupt sources through a plurality of interrupt lines, for storing interrupt requests from the interrupt sources; interrupt mask register means, connected to an internal data bus, for programmably masking interrupt levels; means for storing a plurality of interrupt vectors, connected to the internal data bus, each stored interrupt vector defining an interrupt priority and corresponding to one of the interrupt sources; storing means for storing a highest priority vector in service, connected to the internal data bus; means for comparing, connected to the internal data bus, each active and non-masked interrupt vector of said stored interrupt vectors with the vector stored in the storing means for storing a highest priority vector in service in order to determine a new highest priority vector and loading said new highest priority vector in the said storing means for storing a highest priority vector; and a send/receive unit including: interface means for receiving data present on an external bus and transmitting said data received from the external bus to the internal data bus; contention means for comparing the data of the internal bus with the highest priority vector stored in the storing means and for determining a new highest priority vector and transmitting the new highest priority vector to the external bus via the interface means.
Claim 24
Dependent Claim 260 words
A programmable interrupt controller for a microprocessor interrupt system for use with a microprocessor, comprising: a control logic circuit unit for controlling a transmission of an interrupt request to the microprocessor and for receiving interrupt authorization from the microprocessor; interrupt request register means, connected to a plurality of interrupt sources through a plurality of interrupt lines, for storing interrupt requests from the interrupt sources; interrupt mask register means, connected to an internal data bus, for programmably masking interrupt levels; means for storing a plurality of interrupt vectors, connected to the internal data bus, each stored interrupt vector defining an interrupt priority and corresponding to one of the interrupt sources; storing means for storing a highest priority vector in service, connected to the internal data bus; means for comparing, connected to the internal data bus, each active and non-masked interrupt vector of said stored interrupt vectors with the vector stored in the storing means for storing a highest priority vector in service in order to determine a new highest priority vector and loading said new highest priority vector in the said storing means for storing a highest priority vector; and a send/receive unit including: interface means for receiving data present on an external bus and transmitting said data received from the external bus to the internal data bus; contention means for comparing the data of the internal bus with the highest priority vector stored in the storing means and for determining a new highest priority vector and transmitting the new highest priority vector to the external bus via the interface means.
Claim 25
Dependent Claim 94 words
A programmable interrupt controller according to claim 20, wherein the contention means comprises: means for validating a transmission, by the interface means, to the external data bus, of a predetermined weight bit of the highest priority vector stored in the storing means for storing a highest priority vector in service, only if there is equivalence between a bit, one higher in weight then the predetermined weight bit of the highest priority vector in service and a bit, one higher in weight then the predetermined weight bit, of input data from the internal data bus.
Claim 26
Dependent Claim 54 words
A programmable interrupt controller according to claim 20, wherein the interface means comprises: means for validating transmission of a bit of the highest priority vector in service to the external data bus if the bit is in a dominant state and for not validating the transmission if the bit is in a recessive state.
Claim 27
Dependent Claim 52 words
A programmable interrupt controller according to claim 20, wherein the control logic unit assures the acknowledgement of said interrupt request register means validates a transmission contention of the prevailing vector by said send/receive unit, and controls a loading of the prevailing vector in the storing means for storing a highest priority vector.
Claim 28
Dependent Claim 40 words
A programmable interrupt controller according to claim 20, further comprising: sequencer means, connected to the internal bus means, for sequentially sending active and non-masked interrupts from the means for storing a plurality of interrupt vectors to the means for comparing.
Claim 29
Dependent Claim 48 words
A programmable interrupt controller according to claim 24, further comprising: register means for storing a state of the sequencer means and storing a prevailing interrupt source; and a control logic unit means for controlling a loading of the register means for storing a state of the sequencer means.
Claim 30
Dependent Claim 99 words
A programmable interrupt controller according to claim 20, wherein the means for storing a highest priority vector in service comprises: a register means accessible by a microprocessor, wherein when the microprocessor is executing a first interrupt routine from the programmable interrupt controller and a first interrupt vector is stored in the register means of the means for storing a highest priority vector in service, and the microprocessor is instructed to perform a higher priority interrupt routine, the microprocessor writes a higher priority interrupt vector into the register means of the means for storing a highest priority vector in service.
Claim 31
Dependent Claim 85 words
A programmable interrupt controller according to claim 26, wherein: the register means of the means for storing a highest priority vector in service is accessible by the microprocessor such that when the microprocessor is finished executing the higher priority interrupt routine, the microprocessor writes the first interrupt vector into the register means of the means for storing a highest priority vector in service, thereby giving the programmable interrupt controller a priority of the first interrupt vector, and the microprocessor resumes processing the first interrupt routine.
Claim 32
Dependent Claim 53 words
An apparatus according to claim 20, further comprising: means for writing an interrupt vector, corresponding to the received signal, in the means for storing a highest priority vector in service when the contention means determines that said received data indicates a higher priority than the priority of said highest priority vector in service.
Claim 33
Dependent Claim 64 words
A programmable interrupt controller according to claim 20, wherein the interface means comprises: an output buffer means, connected between the transmitting data bus and the external data bus means, which selectively allows transmission of bits of the vector stored in the means for storing a highest priority vector in service; and an input buffer connected between the outer bus and the internal data bus.
Claim 34
Dependent Claim 86 words
A programmable interrupt controller according to claim 29, wherein the contention means comprises: a comparator circuit means for each bit of the vector stored in the means for storing the highest priority in service, each of the comparator circuit means compares a bit of the highest priority vector in service with a corresponding bit of the received data on the internal data bus and outputs an indication of whether said bit has a higher priority than a priority of the corresponding bit of the received data.
Claim 35
Dependent Claim 37 words
A programmable interrupt controller according to claim 30, wherein the comparator circuit means comprises a plurality of gates that each receives a bit of the prevailing vector as the corresponding bit present on the internal data bus.
Claim 36
Dependent Claim 47 words
A programmable interrupt controller according to claim 20, further comprising: a plurality of resistors, each connected to a corresponding bit line of the external bus means, places a lower priority signal on the corresponding bit line when the higher priority signal is absent from the bit line.
Claim 37
Dependent Claim 258 words
A microprocessor interrupt system, comprising: a plurality of interrupt controllers, each interrupt controller comprising: a control logic circuit unit for controlling a transmission of an interrupt request to the microprocessor and for receiving interrupt authorization from the microprocessor; interrupt request register means, connected to a plurality of interrupt sources through plurality of interrupt lines, for storing interrupt requests from the interrupt sources; interrupt mask register means, connected to an internal data bus, for programmably masking interrupt levels; means for storing a plurality of interrupt vectors, connected to the internal data bus, each stored interrupt vector defining an interrupt priority and corresponding to one of the interrupt sources; storing means for storing a highest priority vector in service, connected to the internal data bus; means for comparing, connected to the internal data bus, each active and non-masked interrupt vector of said stored interrupt vectors with the vector stored in the storing means for storing a highest priority vector in service in order to determine a new highest priority vector and loading said new highest priority vector in the said storing means for storing a highest priority vector; and a send/receive unit including: interface means for receiving data present on an external bus and transmitting said data received from the external bus to the internal data bus; contention means for comparing the data of the internal bus with the highest priority vector stored in the storing means and for determining a new highest priority vector and transmitting the new highest priority vector to the external bus via the interface means.
Claim 38
Dependent Claim 258 words
A microprocessor interrupt system, comprising: a plurality of interrupt controllers, each interrupt controller comprising: a control logic circuit unit for controlling a transmission of an interrupt request to the microprocessor and for receiving interrupt authorization from the microprocessor; interrupt request register means, connected to a plurality of interrupt sources through plurality of interrupt lines, for storing interrupt requests from the interrupt sources; interrupt mask register means, connected to an internal data bus, for programmably masking interrupt levels; means for storing a plurality of interrupt vectors, connected to the internal data bus, each stored interrupt vector defining an interrupt priority and corresponding to one of the interrupt sources; storing means for storing a highest priority vector in service, connected to the internal data bus; means for comparing, connected to the internal data bus, each active and non-masked interrupt vector of said stored interrupt vectors with the vector stored in the storing means for storing a highest priority vector in service in order to determine a new highest priority vector and loading said new highest priority vector in the said storing means for storing a highest priority vector; and a send/receive unit including: interface means for receiving data present on an external bus and transmitting said data received from the external bus to the internal data bus; contention means for comparing the data of the internal bus with the highest priority vector stored in the storing means and for determining a new highest priority vector and transmitting the new highest priority vector to the external bus via the interface means.
Claim 39
Independent Claim 129 words
A method for processing interrupts in a microprocessor system, comprising the steps of: receiving an interrupt request from at least one of a plurality of interrupt sources and storing the interrupt request; storing a plurality of interrupt vectors, each interrupt vector corresponding to an interrupt source; individually inhibiting and enabling said interrupt vectors; systematically comparing the priorities of active and non-masked vectors with the stored highest priority vector in service to determine a highest priority vector currently in service; storing the highest priority vector currently in service as the highest priority vector in service; transmitting the highest priority vector to the external data bus by comparison between the priority vector stored in the storing means and the data of the internal data bus received from the external data bus.
Claim 40
Independent Claim 129 words
A method for processing interrupts in a microprocessor system, comprising the steps of: receiving an interrupt request from at least one of a plurality of interrupt sources and storing the interrupt request; storing a plurality of interrupt vectors, each interrupt vector corresponding to an interrupt source; individually inhibiting and enabling said interrupt vectors; systematically comparing the priorities of active and non-masked vectors with the stored highest priority vector in service to determine a highest priority vector currently in service; storing the highest priority vector currently in service as the highest priority vector in service; transmitting the highest priority vector to the external data bus by comparison between the priority vector stored in the storing means and the data of the internal data bus received from the external data bus.
Claim 41
Dependent Claim 65 words
A method according to claim 34, further comprising the step of: validating a transmission on the data bus of a predetermined weight bit of the highest priority vector in service when an one higher weight bit then the predetermined weight bit of the highest priority vector in service is equivalent to an one higher weight bit then the predetermined weight bit a of input data.
Claim 42
Dependent Claim 45 words
A method according to claim 34, further comprising the step: validating the transmission of a bit of the highest priority vector in service only if the bit is in a dominant state and not validating the transmission if the bit is in a recessive state.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-02-11 2000-08-12 2001-02-11 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-02-11 2004-08-12 2005-02-11 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-02-11 2008-08-12 2009-02-11 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag