Electrical computers and digital data processing systems: input/ – Interrupt processing – Interrupt prioritizing
Reexamination Certificate
1999-04-13
2003-07-22
Myers, Paul R. (Department: 2123)
Electrical computers and digital data processing systems: input/
Interrupt processing
Interrupt prioritizing
C710S266000, C703S021000
Reexamination Certificate
active
06598105
ABSTRACT:
FIELD OF THE INVENTION
This invention relates generally to the field of data processing and more particularly to an interrupt arbiter for managing interrupt resources in a computing system.
BACKGROUND
Devices inside a computer often need to “interrupt” the processor when they need immediate attention. This is accomplished by generating an interrupt signal to inform the processor that an event has occurred. For example, a keyboard generates an interrupt signal with each keystroke. Device interrupts are fed to the processor using a special piece of hardware called an interrupt controller that receives the interrupt signals from the devices and correctly presents them to the processor.
An operating system running on the computer is responsible for assigning the inputs on the interrupt controller to the devices. Often, proper performance of the computer greatly depends upon the allocation of the computer's interrupt resources. In general, a unique interrupt resource is assigned to each device. Because of the way the computer is designed it is generally not feasible for more than one device to use an interrupt at one time. If more than one device uses an interrupt at one time, the processor can respond to the wrong event and may respond to the wrong device at the wrong time. In some circumstances, however, it may be possible to share the inputs on the interrupt resources between the multiple devices depending on the character of the devices.
Currently, various modules within the operating system are responsible for allocating the interrupt resources. Each device driver specifies a set of ranges and range types that represent all of the possible resources the device could use. The operating system groups these ranges into an interrupt range list such as {{I/O 60-60, 64-64, Interrupt 1}, {I/O 60-60, 64-64, no interrupt}}. In this example, if the operating system were to select the set with no interrupt, it would be forced to “poll” the corresponding device. If, however, the operating system selected the first set then the requesting device would use interrupt 1 to inform the operating system that it needed attention.
Typically, the interrupt resources are allocated via boot code of a computer. If a device subsequently requests an interrupt resource, the operating system uses the current state of the interrupt range list to discover whether a requested range conflicts with a previously allocated range. Thus, in conventional systems the allocation of interrupt resources is a function of previously allocated resources and often produces less than adequate results.
In addition, allocating interrupt resources has become more difficult as the number and variety of devices that may be connected to the computer has expanded. Furthermore, new computers support a “Plug and Play” framework that seeks to automatically configure devices as they are added to the computer. For these reasons, and for other reasons stated below which will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for an improved arbitration mechanism that more effectively allocates interrupt resources.
SUMMARY
An interrupt arbiter for a computer is described. The arbiter allocates interrupt resources to a plurality of devices within a computer such as a modem, keyboard, video controller, serial port, PCMCIA card, etc. As devices request interrupt resources, the inventive arbiter uses the Advanced Configuration and Power Interface (ACPI) to allocate interrupt resources based on the actual hardware topology of the computer. The improved arbiter allocates the interrupt resources by using configuration information that conforms to the ACPI specification and that describes the underlying connection circuitry, such as the multiplexors, routers, switches, etc., that communicates interrupt signals generated by the devices. In one embodiment the arbiter retrieves the configuration information from the computer's basic input/output system (BIOS). In addition, the arbiter reconfigures connection circuitry of the computing system when necessary in order to improve the allocation of interrupt resources.
REFERENCES:
patent: 4628480 (1986-12-01), Floyd
patent: 5369769 (1994-11-01), Martin et al.
patent: 5390350 (1995-02-01), Chung et al.
patent: 5535420 (1996-07-01), Kardach et al.
patent: 5548762 (1996-08-01), Creedon et al.
patent: 5568643 (1996-10-01), Tanaka
patent: 5809329 (1998-09-01), Lichtman et al.
patent: 6105146 (2000-08-01), Tavallaei et al.
patent: 6170020 (2001-01-01), Blakeney et al.
patent: 6219742 (2001-04-01), Stanley
patent: 6219744 (2001-04-01), Bredin et al.
patent: 6308248 (2001-10-01), Welker et al.
patent: 6457069 (2002-09-01), Stanley
Oshins Jacob K.
Thornton Andrew J.
Leydig Voit & Mayer Ltd
Myers Paul R.
Thangavelu Kandasamy
LandOfFree
Interrupt arbiter for a computing system does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Interrupt arbiter for a computing system, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Interrupt arbiter for a computing system will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3016386