Mechanism for interrupt handling in computer systems that...

Electrical computers and digital data processing systems: input/ – Interrupt processing

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06779065

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Technical Field
The present invention relates to computer systems and, in particular to mechanisms for handling interrupts in computer systems that support concurrent execution of multiple threads.
2. Background Art
Modern high-performance processors are designed to execute multiple instructions on each clock cycle. To this end, they typically include extensive execution resources to facilitate parallel processing of the instructions. The efficient use of these resources may be limited by the availability of instructions that can be executed in parallel. The availability of instructions for parallel execution is referred to as instruction level parallelism (ILP). Instruction dependencies limit the ILP available in a single execution thread. If only one execution thread can be processed at a time, instruction throughput is reduced as well.
One approach to increasing instruction throughput is to design processors that are capable of executing instructions from two or more instructions threads concurrently. Since instructions from different threads are independent, concurrent execution of two or more instruction threads increases instruction throughput.
A variety of designs have been implemented to support concurrent execution of multiple threads in a single processor package. For example, multi-core processors include multiple execution cores on a single processor chip. Each execution core can be allocated to a different instruction thread, although various resources may be shared to save die area or to allow some communication among the executing threads. Multiple processor chips may also be incorporated in a multi-chip module that provides a single interface to the rest of the system.
Multi-threaded processors include resources to manage the execution of multiple instructions threads on a single execution core. Thread management units provide on-chip storage of state data for multiple threads and update the data as instructions from different threads are processed by the shared core.
A coarse-grained multi-threaded processor executes instructions from only one thread at a time, but on-chip storage of state data for multiple threads reduces the overhead associated with switching instruction execution between the different threads (context switches). Thread switching may be triggered when the currently executing thread encounters a long latency event (Switch-On-Event Multi-Threading or SOEMT).
A fine-grained multi-threaded processor allows instructions from the multiple threads to execute concurrently. For example, instructions may be issued from multiple threads on each clock cycle, or instructions may be issued from different threads on different clock cycles. In both cases, instructions from multiple threads may be in-flight in the execution core at the same time.
In general, both multi-threaded processors and multi-core processors allow more than one thread's context to be active in the processor at the same time. For multi-core processors, some or all of the cores maybe multi-threaded. Here, context refers to the registers that store a thread's architectural state for a particular processor architecture, and may include general, control and application registers. The performance benefits of these and other processors that support multiple thread contexts (“multiple-context processors”) depend, in part, on the capacity of these processors to appear as multiple, equivalent logical processors. This equivalency greatly facilitates the balancing of workloads among the logical processors, and it simplifies management of the threads by the operating system. The goal, in effect, is to make a multiple-context processor appear as a symmetric multi-processor (SMP) system.
To increase symmetry among the multiple threads, certain resources are replicated for each logical processor of the multiple-context processor. For example, an interrupt unit is typically associated with each logical processor, to provide an interface between the logical processor and system level resources or shared resources of the multiple-context processor. The interrupt unit determines whether an interrupt is to be handled and provides a pointer to the interrupt handling code if the interrupt is accepted.
One disadvantage of providing an interrupt unit for each logical processor is that interrupts, particularly those associated with resources shared by the logical processors, are often seen by all logical processors. For example, a multiple-context processor may provide a single interrupt pin to maintain package-level compatibility with single-threaded designs. Interrupts asserted on the pin are seen by the interrupt units of all logical processors. A fan failure in the system may trigger such an interrupt. Because of their equivalence, each interrupt unit registers the interrupt and its associated logical processor executes the interrupt-handler. Interrupts generated by shared on-chip resources or received on system or dedicated interrupt buses may be seen and processed in a similar manner. In many cases, the interrupt could have been handled by one of the logical processors, but the symmetric configuration of the logical processors obliges each to execute the interrupt code.
The present invention addresses these and other issues associated with interrupt handling in processors that support concurrent execution of multiple threads.


REFERENCES:
patent: 5109522 (1992-04-01), Lent et al.
patent: 5437042 (1995-07-01), Culley et al.
patent: 5915088 (1999-06-01), Basavaiah et al.
patent: 6061710 (2000-05-01), Eickemeyer et al.
patent: 6105127 (2000-08-01), Kimura et al.
patent: 6163829 (2000-12-01), Greim et al.
patent: 6205468 (2001-03-01), Diepstraten et al.
M. Ben-Ari: “Principles of Concurrent and Distributed Programming”, Prentice Hall, 1990 IP002221270, ISBN: 0-13-711821-X, p. 48; figure 4.1, p. 50, line 14-line 21.
Russel Rector-George Alexy: “Das 8086/8088 Buch—Programmieren in Assembler und Systemarchitektur” 1982, TE-WI, Munchen XP002221271, ISBN: 3-921-803-11-X, p. 8-32, line 15-line 17.
Bennet B: “Break the Performance Bottlenecks in Today's Multiprocessor Designs” EDN Electrical Design News, Massachusetts, US, vol. 39, No. 14, Jul. 7, 1994, pp. 113-114, 117-118, XP000469318, ISSN: 0012-7515, p. 113, right-hand column, line 10-page 114, left-hand column, line 22.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Mechanism for interrupt handling in computer systems that... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Mechanism for interrupt handling in computer systems that..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Mechanism for interrupt handling in computer systems that... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3362392

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.