← Back to Patent Explorer
US5287523A Expired / Lapsed US ⏱️ 0.0 years remaining

Method for servicing a peripheral interrupt request in a microcontroller

Assignee: Visteon Global Technologies Inc
•
Filing: 1990-10-09
•
Granted: 1994-02-15
•
Expires: 2010-10-09
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method for servicing peripheral interrupt requests in a data processing system is provided. A state vector register stores a current state of a state machine which controls the interrupt-generating peripheral. In addition, the state vector register simultaneously stores an interrupt source identifier, which indicates the source of the highest priority interrupt request currently pending for the interrupt-generating peripheral. When the processor receives an interrupt request, the value stored in the state vector register of the interrupt-generating peripheral is read into an index register in the processor. The processor then uses the value as an index into a jump table, stored in memory, which contains the interrupt service routines. The use of the state vector register in conjunction with existing internal signals enables the processor to rapidly retrieve the appropriate interrupt service routine from memory, while minimizing the system overhead associated with servicing the interrupt request.

Inventors

  • 👤 Nigel J. Allison
  • 👤 Janice L. Benzel
  • 👤 Joseph F. Kowalski

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-23 15:00
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3861; G06F13/00; G06F13/14; G06F13/20; G06F13/24

Claims Analysis

Total Claims: 11
Claim 1
Independent Claim 278 words
In a data processing system having a processor for executing a sequence of instructions provided by a memory in response to a sequence of instruction addresses, and having a selected number of peripheral devices coupled to said processor via an internal communications bus a method for servicing an interrupt request from one of the selected number of peripheral devices, comprising the steps of: storing an index value in an addressable register in an interrupting peripheral device, in response to said interrupting peripheral device generating an interrupt request, said index value comprising at least a first bit field representing a current state identifier for identifying a state of a state machine which controls said interrupting peripheral device, and a second bit field representing an incremental byte boundary identifier, said incremental byte boundary identifier being determined by entry alignment in a table in said memory of each of a plurality of interrupt service routines; providing said index value to said processor, via said internal communications bus, said processor using said index value to access a corresponding interrupt service routine, stored in said table in said memory, for responding to said interrupt request; updating, during execution by said processor of said interrupt service routine, said current state identifier stored in said addressable register with a next state identifier, by modifying said first bit field of said index value, in response to said state machine changing states as result of an occurrence in said interrupting peripheral device of a predefined event, said next state identifier and said incremental byte boundary identifier forming a new index value in said addressable register; and executing said interrupt service routine to clear said interrupt service request.
Claim 2
Dependent Claim 278 words
In a data processing system having a processor for executing a sequence of instructions provided by a memory in response to a sequence of instruction addresses, and having a selected number of peripheral devices coupled to said processor via an internal communications bus a method for servicing an interrupt request from one of the selected number of peripheral devices, comprising the steps of: storing an index value in an addressable register in an interrupting peripheral device, in response to said interrupting peripheral device generating an interrupt request, said index value comprising at least a first bit field representing a current state identifier for identifying a state of a state machine which controls said interrupting peripheral device, and a second bit field representing an incremental byte boundary identifier, said incremental byte boundary identifier being determined by entry alignment in a table in said memory of each of a plurality of interrupt service routines; providing said index value to said processor, via said internal communications bus, said processor using said index value to access a corresponding interrupt service routine, stored in said table in said memory, for responding to said interrupt request; updating, during execution by said processor of said interrupt service routine, said current state identifier stored in said addressable register with a next state identifier, by modifying said first bit field of said index value, in response to said state machine changing states as result of an occurrence in said interrupting peripheral device of a predefined event, said next state identifier and said incremental byte boundary identifier forming a new index value in said addressable register; and executing said interrupt service routine to clear said interrupt service request.
Claim 3
Dependent Claim 56 words
The method for servicing an interrupt request according to claim 1 further comprising the step of providing said new index value to said processor, via said internal communications bus, said new index value being used by said processor to access a new interrupt service routine, in said table in said memory, for a new interrupt request.
Claim 4
Dependent Claim 324 words
In a data processing system comprising: a processor; an internal communications bus coupled to said processor; a memory coupled to said internal communications bus, said memory storing a plurality of table entries for a plurality of interrupt service routines; a predetermined number of peripheral devices coupled to said processor, via said internal communications bus, a selected peripheral device having a plurality of addressable registers for storing control information, for providing status information, and for allowing the exchange of a plurality of data bytes to and from said processor; a method for servicing an interrupt request received by said processor for an interrupting peripheral, comprising the steps of: storing a current state identifier, for a state machine which controls said interrupting peripheral device, in a first bit field in a first addressable register in said interrupting peripheral device; storing an interrupt priority identifier in a second bit field in said first addressable register, said interrupt priority identifier signifying a source in said interrupting peripheral device of said interrupt service request, according to an interrupt priority scheme; storing a value in a third bit field of said first addressable register, said value being based upon an incremental byte boundary determined by alignment in said memory of each of said plurality of table entries for said plurality of interrupt service routines; updating, during execution by said processor of said interrupt service routine, said current state identifier stored in said first addressable register with a next state identifier, in response to said state machine changing states, said next state identifier, said interrupt priority field, and said third bit field forming an index offset value in said first addressable register; and providing said index offset value to said processor, said index offset value being used by said processor as an index into said plurality of table entries in said memory, said processor executing a corresponding one of said plurality of interrupt service routines to clear said interrupt service routine.
Claim 5
Dependent Claim 324 words
In a data processing system comprising: a processor; an internal communications bus coupled to said processor; a memory coupled to said internal communications bus, said memory storing a plurality of table entries for a plurality of interrupt service routines; a predetermined number of peripheral devices coupled to said processor, via said internal communications bus, a selected peripheral device having a plurality of addressable registers for storing control information, for providing status information, and for allowing the exchange of a plurality of data bytes to and from said processor; a method for servicing an interrupt request received by said processor for an interrupting peripheral, comprising the steps of: storing a current state identifier, for a state machine which controls said interrupting peripheral device, in a first bit field in a first addressable register in said interrupting peripheral device; storing an interrupt priority identifier in a second bit field in said first addressable register, said interrupt priority identifier signifying a source in said interrupting peripheral device of said interrupt service request, according to an interrupt priority scheme; storing a value in a third bit field of said first addressable register, said value being based upon an incremental byte boundary determined by alignment in said memory of each of said plurality of table entries for said plurality of interrupt service routines; updating, during execution by said processor of said interrupt service routine, said current state identifier stored in said first addressable register with a next state identifier, in response to said state machine changing states, said next state identifier, said interrupt priority field, and said third bit field forming an index offset value in said first addressable register; and providing said index offset value to said processor, said index offset value being used by said processor as an index into said plurality of table entries in said memory, said processor executing a corresponding one of said plurality of interrupt service routines to clear said interrupt service routine.
Claim 6
Dependent Claim 71 words
The method of servicing an interrupt request according to claim 3 further comprising the step of simultaneously updating said second bit field with a next priority interrupt identifier to form a new index offset value in said first addressable register, said new offset value being provided to said processor, and said processor using said new index offset value as a new index into said plurality of table entries in said memory.
Claim 7
Dependent Claim 51 words
The method for servicing an interrupt request according to claim 4 wherein said step of simultaneously updating said second bit field with said next priority interrupt identifier is repeated in said data processing system until a value stored in said second bit field indicates that no further interrupt request are pending.
Claim 8
Dependent Claim 236 words
In a data processing system having a processor for executing a sequence of instructions provided by a memory in response to a corresponding sequence of instruction addresses, and having a selected number of peripheral devices coupled to said processor, via an internal communications bus, a method for servicing an interrupt request from an interrupting peripheral device comprising the steps of: storing a current state identifier in a first bit field in a software addressable register in said interrupting peripheral device, said current state identifier signifying a current state of said interrupting peripheral device; storing an interrupt priority identifier in a second bit field in said software addressable register, said interrupt priority identifier signifying a source in said interrupting peripheral device of said interrupt service request, according to a predetermined interrupt priority scheme; updating, during execution by said processor of said interrupt service routine, said current state identifier stored in said software addressable register with a next state identifier, in response to said interrupting peripheral changing states, said next state identifier and said interrupt priority identifier forming an index offset value in said software addressable register; providing said index offset value to said processor, via said internal communications bus, said index offset value being used, by said processor as an index into a jump table in said memory, to retrieve a corresponding interrupt service routine; and executing said interrupt service routine to clear said interrupt service request.
Claim 9
Dependent Claim 236 words
In a data processing system having a processor for executing a sequence of instructions provided by a memory in response to a corresponding sequence of instruction addresses, and having a selected number of peripheral devices coupled to said processor, via an internal communications bus, a method for servicing an interrupt request from an interrupting peripheral device comprising the steps of: storing a current state identifier in a first bit field in a software addressable register in said interrupting peripheral device, said current state identifier signifying a current state of said interrupting peripheral device; storing an interrupt priority identifier in a second bit field in said software addressable register, said interrupt priority identifier signifying a source in said interrupting peripheral device of said interrupt service request, according to a predetermined interrupt priority scheme; updating, during execution by said processor of said interrupt service routine, said current state identifier stored in said software addressable register with a next state identifier, in response to said interrupting peripheral changing states, said next state identifier and said interrupt priority identifier forming an index offset value in said software addressable register; providing said index offset value to said processor, via said internal communications bus, said index offset value being used, by said processor as an index into a jump table in said memory, to retrieve a corresponding interrupt service routine; and executing said interrupt service routine to clear said interrupt service request.
Claim 10
Dependent Claim 57 words
The method of servicing an interrupt request according to claim 6 further comprising the step of updating said second bit field with a lower priority interrupt identifier to provide a new index offset value to said processor, said new index offset value being used by said processor to retrieve a new interrupt service routine from said memory.
Claim 11
Dependent Claim 50 words
The method of servicing an interrupt request according to claim 7 wherein said step of updating said second bit field with said lower priority interrupt identifier is repeated in said data processing system until a value, stored in said second bit field, indicates that no further interrupt requests are pending.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-02-14 1997-08-16 1998-02-15 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-02-14 2001-08-16 2002-02-15 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-02-14 2005-08-16 2006-02-15 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag