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

Mutual exclusion for computer system

Assignee: Intel Corp
•
Filing: 1992-08-17
•
Granted: 1995-08-01
•
Expires: 2012-08-17
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Method and apparatus of mutual exclusion for executing protected code in a computer system. If an interrupt occurs during the execution of protected code, then the computer system is reconfigured to exclude interrupts having a lower priority than the current exclusion level and the interrupt is either deferred (if it has a lower priority than the current dessired exclusion level) or serviced (if it has a priority higher than the current desked exclusion level). In some embodiments, for computer systems which use a programmable interrupt controller (PIC), the PIC is reprogrammed. In other systems using a software-controlled interrupt handling, the kernel of the operating system is informed of the change in exclusion level. In summary, the system is only configured to a new exclusion level if an interrupt actually occurs, and thus, the latency resulting from reconfiguration is not incurred if an interrupt is not generated during the execution of the protected code.

Inventors

  • 👤 Robert T. Adams
  • 👤 Vincent R. Slyngstad
  • 👤 Seckin Unlu

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-24 21:17
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/48; G06F9/4806; G06F9/4812; G06F9/4818

Claims Analysis

Total Claims: 26
Claim 1
Independent Claim 395 words
In a computer system comprising a central processing unit (CPU), a programmable interrupt controller (PIC) coupled to said CPU, a plurality of devices coupled to said CPU and said PIC, each of said devices having a different priority levels of interrupt, and an operating system for controlling the operation of said computer system a method of mutual exclusion for executing protected code in said computer system, said method comprising the following steps: a. storing a current exclusion level of said computer system as an old exclusion level; b. setting a desired exclusion level for the execution of said protected code in the operating system of said computer system as the current exclusion level; c. executing said protected code; d. if an interrupt occurs during the execution of said protected code, then determining whether the interrupt has a priority level higher than said current exclusion level; e. if said interrupt does not have a higher priority level than said current exclusion level, then performing the following steps: i. programming said PIC to exclude interrupts having a lower priority than said current exclusion level; ii. storing an address of a first interrupt handling routine for said interrupt as a deferred interrupt; f. otherwise, if said interrupt has a higher priority level than said current exclusion level, then performing the following steps: i. programming said PIC to exclude interrupts having a lower priority level than said interrupt; ii. calling a second interrupt handling murine to service said interrupt; iii. programming said PIC to exclude interrupts having a lower priority level than said current exclusion level; g. continuing to execute said protected code, and if an interrupt occurs during the execution of said protected code then determining whether the interrupt has a priority level higher than said current exclusion level and returning to step e; h. upon the completion of execution of said protected code, then determining whether a deferred interrupt has been stored, and if so, then calling the first interrupt handling routine to service said deferred interrupt; i. resetting the exclusion level in said operation system of said computer system to the old exclusion level; j. determining whether the PIC is excluding more interrupts than the old exclusion level; and k. if the PIC is excluding more interrupts than the old exclusion level then programming the PIC to exclude lower level interrupts than the old exclusion level.
Claim 2
Dependent Claim 395 words
In a computer system comprising a central processing unit (CPU), a programmable interrupt controller (PIC) coupled to said CPU, a plurality of devices coupled to said CPU and said PIC, each of said devices having a different priority levels of interrupt, and an operating system for controlling the operation of said computer system a method of mutual exclusion for executing protected code in said computer system, said method comprising the following steps: a. storing a current exclusion level of said computer system as an old exclusion level; b. setting a desired exclusion level for the execution of said protected code in the operating system of said computer system as the current exclusion level; c. executing said protected code; d. if an interrupt occurs during the execution of said protected code, then determining whether the interrupt has a priority level higher than said current exclusion level; e. if said interrupt does not have a higher priority level than said current exclusion level, then performing the following steps: i. programming said PIC to exclude interrupts having a lower priority than said current exclusion level; ii. storing an address of a first interrupt handling routine for said interrupt as a deferred interrupt; f. otherwise, if said interrupt has a higher priority level than said current exclusion level, then performing the following steps: i. programming said PIC to exclude interrupts having a lower priority level than said interrupt; ii. calling a second interrupt handling murine to service said interrupt; iii. programming said PIC to exclude interrupts having a lower priority level than said current exclusion level; g. continuing to execute said protected code, and if an interrupt occurs during the execution of said protected code then determining whether the interrupt has a priority level higher than said current exclusion level and returning to step e; h. upon the completion of execution of said protected code, then determining whether a deferred interrupt has been stored, and if so, then calling the first interrupt handling routine to service said deferred interrupt; i. resetting the exclusion level in said operation system of said computer system to the old exclusion level; j. determining whether the PIC is excluding more interrupts than the old exclusion level; and k. if the PIC is excluding more interrupts than the old exclusion level then programming the PIC to exclude lower level interrupts than the old exclusion level.
Claim 3
Dependent Claim 27 words
The method of claim 1 wherein said programming of said PIC comprises issuing an interrupt mask value to an output port of said CPU to said PIC.
Claim 4
Dependent Claim 17 words
The method of claim 2 wherein the mask value contains values indicating interrupts which should be serviced.
Claim 5
Dependent Claim 31 words
The method of claim 1 wherein the programming of said PIC further comprises the step of attempting to read from a port until a value can be read from said port.
Claim 6
Dependent Claim 22 words
The method of claim 1 wherein the programming of said PIC further comprises waiting until the circuitry of said PIC has settled.
Claim 7
Dependent Claim 318 words
In a computer system, a method of mutual exclusion for executing protected code, said method comprising the following steps: a. storing a current exclusion level of said computer system as an old exclusion level; b. storing a desired exclusion level as the current exclusion level of said computer system for the execution of said protected code; c. executing said protected code; d. if an interrupt occurs during the execution of said protected code, then determining whether the interrupt has a priority level higher than said current exclusion level; e. if said interrupt does not have a higher priority level than said current exclusion level, then performing the following steps: i. configuring said computer system to exclude interrupts having a lower priority than said current exclusion level; ii. storing an address of a first interrupt handling routine for said interrupt as a deferred interrupt; f. otherwise, if said interrupt has a higher priority level than said current exclusion level, then performing the following steps: i. configuring said computer system to exclude interrupts having a lower priority level than said interrupt; ii. calling a second interrupt handling routine to service said interrupt; iii. reconfiguring said computer system to exclude interrupts having a lower priority level than said current exclusion level; g. continuing to execute said protected code, and if an interrupt occurs during the execution of said protected code then determining whether the interrupt has a priority level higher than said current exclusion level and returning to step e; h. upon the completion of execution of said protected code, then determining whether a deferred interrupt has been stored, and if so, then calling the first interrupt handling routine to service said deferred interrupt; and i. if the computer system has bccn rcconfigurcd to operate at the desired exclusion level as the current exclusion level then configuring the computer system to have an exclusion level cqual to the old exclusion level.
Claim 8
Dependent Claim 318 words
In a computer system, a method of mutual exclusion for executing protected code, said method comprising the following steps: a. storing a current exclusion level of said computer system as an old exclusion level; b. storing a desired exclusion level as the current exclusion level of said computer system for the execution of said protected code; c. executing said protected code; d. if an interrupt occurs during the execution of said protected code, then determining whether the interrupt has a priority level higher than said current exclusion level; e. if said interrupt does not have a higher priority level than said current exclusion level, then performing the following steps: i. configuring said computer system to exclude interrupts having a lower priority than said current exclusion level; ii. storing an address of a first interrupt handling routine for said interrupt as a deferred interrupt; f. otherwise, if said interrupt has a higher priority level than said current exclusion level, then performing the following steps: i. configuring said computer system to exclude interrupts having a lower priority level than said interrupt; ii. calling a second interrupt handling routine to service said interrupt; iii. reconfiguring said computer system to exclude interrupts having a lower priority level than said current exclusion level; g. continuing to execute said protected code, and if an interrupt occurs during the execution of said protected code then determining whether the interrupt has a priority level higher than said current exclusion level and returning to step e; h. upon the completion of execution of said protected code, then determining whether a deferred interrupt has been stored, and if so, then calling the first interrupt handling routine to service said deferred interrupt; and i. if the computer system has bccn rcconfigurcd to operate at the desired exclusion level as the current exclusion level then configuring the computer system to have an exclusion level cqual to the old exclusion level.
Claim 9
Dependent Claim 25 words
The method of claim 6 wherein the steps of configuring the computer system comprise programming a programmable in terrupt controller (PIC) in said computer system.
Claim 10
Dependent Claim 31 words
The method of claim 7 wherein said programming of said PIC comprises issuing an interupt mask value to an output port of a processor in said computer system to said PIC.
Claim 11
Dependent Claim 17 words
The method of claim 8 wherein the mask value contains values indicating interrupts which should be serviced.
Claim 12
Dependent Claim 33 words
The method of claim 7 wherein the programming of said PIC further comprises the step of attempting to read from an output port until a value can be read from said output port.
Claim 13
Dependent Claim 22 words
The method of claim 7 wherein the programming of said PIC further comprises waiting until the circuitry of said PIC has settled.
Claim 14
Dependent Claim 31 words
The method of claim 6 wherein the steps of configuring the computer system comprise informing a kernel of an operating system in said computer system to operate at an exclusion level.
Claim 15
Dependent Claim 222 words
In a computer system, a method of mutual exclusion for executing code, said method comprising the following steps: a. storing a desired exclusion level as a current exclusion level of said computer system for the execution of said code; b. executing said code; c. upon the occurrence of an interrupt, if said interrupt does not have a higher priority level than said current exclusion level. then reconfiguring said computer system to exclude interrupts having a lower priority than said current exclusion level and storing said interrupt as a deferred interrupt; d. if said interrupt has a higher priority level than said current exclusion level, then reconliguring said computer system to exclude interrupts having a lower priority level than said interrupt, calling a first interrupt handling routine to service said interrupt and, after completion of said first interrupt handling routine, reconfiguring said computer system to exclude interrupts having a lower priority level than said current exclusion level; e. continuing to execute said code; f. upon the completion of execution of said code, if a deferred interrupt has been stored, then calling a second interrupt handling rontine to service said deferred interrupt; and g. if the computer system has been rcconfigurcd to operate at the current exclusion level then reconfiguring the computer system to have an exclusion level equal to an old exclusion level.
Claim 16
Dependent Claim 222 words
In a computer system, a method of mutual exclusion for executing code, said method comprising the following steps: a. storing a desired exclusion level as a current exclusion level of said computer system for the execution of said code; b. executing said code; c. upon the occurrence of an interrupt, if said interrupt does not have a higher priority level than said current exclusion level. then reconfiguring said computer system to exclude interrupts having a lower priority than said current exclusion level and storing said interrupt as a deferred interrupt; d. if said interrupt has a higher priority level than said current exclusion level, then reconliguring said computer system to exclude interrupts having a lower priority level than said interrupt, calling a first interrupt handling routine to service said interrupt and, after completion of said first interrupt handling routine, reconfiguring said computer system to exclude interrupts having a lower priority level than said current exclusion level; e. continuing to execute said code; f. upon the completion of execution of said code, if a deferred interrupt has been stored, then calling a second interrupt handling rontine to service said deferred interrupt; and g. if the computer system has been rcconfigurcd to operate at the current exclusion level then reconfiguring the computer system to have an exclusion level equal to an old exclusion level.
Claim 17
Dependent Claim 135 words
In a computer system, a method of mutual exclusion for handling interrupts, said method comprising the following steps: a. storing a desired exclusion level and a current exclusion level for the execution of code in said computer system; b. executing said code; c. upon the occurrence of an interrupt having a lower priority than said desired exclusion level, configuring said computer system to exclude interrupts having said lower priority than said desired exclusion level by programming a programmable interrupt controller (PIC) and storing said interrupt; d. completing the execution of said code; e. if the computer system has been configured to operate at the desired exclusion level then calling a first interrupt handling routine to service said stored interrupt and configuring the computer system to have an exclusion level equal to said current exclusion level.
Claim 18
Dependent Claim 135 words
In a computer system, a method of mutual exclusion for handling interrupts, said method comprising the following steps: a. storing a desired exclusion level and a current exclusion level for the execution of code in said computer system; b. executing said code; c. upon the occurrence of an interrupt having a lower priority than said desired exclusion level, configuring said computer system to exclude interrupts having said lower priority than said desired exclusion level by programming a programmable interrupt controller (PIC) and storing said interrupt; d. completing the execution of said code; e. if the computer system has been configured to operate at the desired exclusion level then calling a first interrupt handling routine to service said stored interrupt and configuring the computer system to have an exclusion level equal to said current exclusion level.
Claim 19
Dependent Claim 31 words
The method of claim 14 wherein said programming of said PIC comprises issuing an interrupt mask value to an output port of a processor in said computer system to said PIC.
Claim 20
Dependent Claim 17 words
The method of claim 15 wherein the mask value contains values indicating interrupts which should be serviced.
Claim 21
Dependent Claim 33 words
The method of claim 16 wherein the programming of said PIC further comprises the step of attempting to read from an output port until a value can be read from said output port.
Claim 22
Dependent Claim 21 words
The method of claim 15 wherein the programing of said PIC further comprises waiting until circuitry of said PIC has settled.
Claim 23
Dependent Claim 145 words
In a computer system, a method of mutual exclusion for handling interrupts, said method.comprising the following steps: a. storing a desired exclusion level and a current exclusion level for the execution of code in said computer system; b. executing said code; c. upon the occurrence of an interrupt having a lower priority than said desired exclusion level, configuring said computer system to exclude interrupts having said lower priority than said desired exclusion level by informing a kernel of an operating system in said computer system to operate at said desired exclusion level and storing said interrupt; d. completing the execution of said code; e. the computer system has been configured to operate at the desired exclusion level then calling a first interrupt handling routine to service said stored interrupt and configuring the computer system to have an exclusion level equal to said current exclusion level.
Claim 24
Dependent Claim 145 words
In a computer system, a method of mutual exclusion for handling interrupts, said method.comprising the following steps: a. storing a desired exclusion level and a current exclusion level for the execution of code in said computer system; b. executing said code; c. upon the occurrence of an interrupt having a lower priority than said desired exclusion level, configuring said computer system to exclude interrupts having said lower priority than said desired exclusion level by informing a kernel of an operating system in said computer system to operate at said desired exclusion level and storing said interrupt; d. completing the execution of said code; e. the computer system has been configured to operate at the desired exclusion level then calling a first interrupt handling routine to service said stored interrupt and configuring the computer system to have an exclusion level equal to said current exclusion level.
Claim 25
Independent Claim 358 words
An apparatus for performing mutual exclusion for executing protected code and scowicing interrupts in a computer system comprising: a. means for storing a current exclusion level of said computer system as an old exclusion level; b. means for storing a desired exclusion level as the current exclusion level of said computer system for the execution of said protected code; c. means for executing said protected code; d. means for determining if an interrupt occurs during the execution of said protected code and means for determining whether the interrupt has a priority level higher than said current exclusion level; c. means for determining if said interrupt does not have a higher priority level than said current exclusion level, and if said means determines that the interrupt does not have a higher priority level than said current exclusion level then a means for activating an apparatus including: i. means for reconfiguring said computer system to exclude interrupts having a lower priority than said current exclusion level; ii. means for storing an address of a first interrupt handling routine for said interrupt as a deferred interrupt; f. a means for activating an apparatus as follows if said means for determining determines that said interrupt has a higher priority level than said current exclusion level said apparatus including: i. means for reconfiguring said computer system to exclude interrupts having a lower priority level than said interrupt; ii. means for calling a second interrupt handling routine to service said interrupt; iii. means for reconfiguring said computer system to exclude interrupts having a lower priority level than said current exclusion level; g. means for completing the execution of said protected code; h. means for determining whether a deferred interrupt has been stored upon the completion of execution of said protected code, and a means for calling the first interrupt handling routine to service said deferred interrupt responsive to said determining means; and i. means for determining if the computer system has been reconfigured to operate at the desired exclusion level as the current exclusion level and a means for reconfiguring the computer system to have an exclusion level equal to the old exclusion level.
Claim 26
Independent Claim 358 words
An apparatus for performing mutual exclusion for executing protected code and scowicing interrupts in a computer system comprising: a. means for storing a current exclusion level of said computer system as an old exclusion level; b. means for storing a desired exclusion level as the current exclusion level of said computer system for the execution of said protected code; c. means for executing said protected code; d. means for determining if an interrupt occurs during the execution of said protected code and means for determining whether the interrupt has a priority level higher than said current exclusion level; c. means for determining if said interrupt does not have a higher priority level than said current exclusion level, and if said means determines that the interrupt does not have a higher priority level than said current exclusion level then a means for activating an apparatus including: i. means for reconfiguring said computer system to exclude interrupts having a lower priority than said current exclusion level; ii. means for storing an address of a first interrupt handling routine for said interrupt as a deferred interrupt; f. a means for activating an apparatus as follows if said means for determining determines that said interrupt has a higher priority level than said current exclusion level said apparatus including: i. means for reconfiguring said computer system to exclude interrupts having a lower priority level than said interrupt; ii. means for calling a second interrupt handling routine to service said interrupt; iii. means for reconfiguring said computer system to exclude interrupts having a lower priority level than said current exclusion level; g. means for completing the execution of said protected code; h. means for determining whether a deferred interrupt has been stored upon the completion of execution of said protected code, and a means for calling the first interrupt handling routine to service said deferred interrupt responsive to said determining means; and i. means for determining if the computer system has been reconfigured to operate at the desired exclusion level as the current exclusion level and a means for reconfiguring the computer system to have an exclusion level equal to the old exclusion level.

References Cited (Backward Citations)

US4271468A Cited
US4604500A Cited
US4631670A Cited
US4779195A Cited
US4768149A Cited
US4860190A Cited
US4833598A Cited
US5163152A Cited
US5161228A Cited
US5101497A Cited
US5255379A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1998-07-31 1999-01-30 1999-08-01 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2002-07-31 2003-01-30 2003-08-01 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2006-07-31 2007-01-30 2007-08-01 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag