Electrical computers and digital processing systems: processing – Processing control – Branching
Reexamination Certificate
1999-12-09
2002-12-17
Treat, William M. (Department: 2183)
Electrical computers and digital processing systems: processing
Processing control
Branching
C712S216000, C712S218000, C712S001000, C710S262000
Reexamination Certificate
active
06496925
ABSTRACT:
FIELD OF THE INVENTION
The present invention relates generally to the field of multithreaded processors and, more specifically, to a method and apparatus for processing an event occurrence within a multithreaded (MT) processor.
BACKGROUND OF THE INVENTION
Multithreaded (MT) processor design has recently been considered as an increasingly attractive option for increasing the performance of processors. Multithreading within a processor, inter alia, provides the potential for more effective utilization of various processor resources, and particularly for more effective utilization of the execution logic within a processor. Specifically, by feeding multiple threads to the execution logic of a processor, clock cycles that would otherwise have been idle due to a stall or other delay in the processing of a particular thread may be utilized to service a further thread. A stall in the processing of a particular thread may result from a number of occurrences within a processor pipeline. For example, a cache miss or a branch misprediction (i.e., a long-latency operation) for an instruction included within a thread typically results in the processing of the relevant thread stalling. The negative effect of long-latency operations on execution logic efficiencies is exacerbated by the recent increases in execution logic throughput that have outstripped advances in memory access and retrieval rates.
Multithreaded computer applications are also becoming increasingly common in view of the support provided to such multithreaded applications by a number of popular operating systems, such as the Windows NT® and Unix operating systems. Multithreaded computer applications are particularly efficient in the multi-media arena.
Multithreaded processors may broadly be classified into two categories (i.e., fine or coarse designs) according to the thread interleaving or switching scheme employed within the relevant processor. Fine multithreaded designs support multiple active threads within a processor and typically interleave two different threads on a cycle-by-cycle basis. Coarse multithreaded designs typically interleave the instructions of different threads on the occurrence of some long-latency event, such as a cache miss. A coarse multithreaded design is discussed in Eickemayer, R.; Johnson, R.; et al., “Evaluation of Multithreaded Uniprocessors for Commercial Application Environments”,
The
23
rd Annual International Symposium on Computer Architecture
, pp. 203-212, May 1996. The distinctions between fine and coarse designs are further discussed in Laudon, J; Gupta, A, “Architectural and Implementation Tradeoffs in the Design of Multiple-Context Processors”,
Multithreaded Computer Architectures: A Summary of the State of the Art
, edited by R. A. Iannuci et al., pp. 167-200, Kiuwer Academic Publishers, Norwell, Mass., 1994. Laudon further proposes an interleaving scheme that combines the cycle-by-cycle switching of a fine design with the full pipeline interlocks of a coarse design (or blocked scheme). To this end, Laudon proposes a “back off” instruction that makes a specific thread (or context) unavailable for a specific number of cycles. Such a “back off” instruction may be issued upon the occurrence of predetermined events, such as a cache miss. In this way, Laudon avoids having to perform an actual thread switch by simply making one of the threads unavailable.
A multithreaded architecture for a processor presents a number of further challenges in the context of an out-of-order, speculative execution processor architecture. More specifically, the handling of events (e.g., branch instructions, exceptions or interrupts) that may result in an unexpected change in the flow of an instruction stream is complicated when multiple threads are considered. In a processor where resource sharing between multiple threads is implemented (i.e., there is limited or no duplication of functional units for each thread supported by the processor), the handling of event occurrences pertaining to a specific thread is complicated in that further threads must be considered in the handling of such events.
Where resource sharing is implemented within a multithreaded processor it is further desirable to attempt increased utilization of the shared resources responsive to changes in the state of threads being serviced within the multithreaded processor.
SUMMARY OF THE INVENTION
According to the invention, there is provided a method including detecting a first event occurrence for a first thread being processed within a multithreaded processor. Responsive to the detection of the first event occurrence, a second thread being processed within the multithreaded processor is monitored to detect a clearing point for the second thread. Responsive to the detection of the clearing point for the second thread, a functional unit within the multithreaded processor is cleared of data for to both the first and second threads.
Other features of the present invention will be apparent from the accompanying drawings and from the detailed description which follows.
REFERENCES:
patent: 3771138 (1973-11-01), Celtruda et al.
patent: 5357617 (1994-10-01), Davis et al.
patent: 5361337 (1994-11-01), Okin
patent: 5386561 (1995-01-01), Huynh et al.
patent: 5392437 (1995-02-01), Matter et al.
patent: 5404469 (1995-04-01), Chung et al.
patent: 5430850 (1995-07-01), Papadopoulos et al.
patent: 5499349 (1996-03-01), Nikhil et al.
patent: 5524263 (1996-06-01), Griffth et al.
patent: 5586332 (1996-12-01), Jain et al.
patent: 5630130 (1997-05-01), Perotto et al.
patent: 5761522 (1998-06-01), Hisanga et al.
patent: 5787297 (1998-07-01), Lin
patent: 5809271 (1998-09-01), Colwell et al.
patent: 5809522 (1998-09-01), Novak et al.
patent: 5892959 (1999-04-01), Fung
patent: 5968160 (1999-10-01), Saito et al.
patent: 5983339 (1999-11-01), Klim
patent: 5996085 (1999-11-01), Cheong et al.
patent: 6052708 (2000-04-01), Flynn et al.
patent: 6088788 (2000-07-01), Borkenhagen et al.
patent: 6092175 (2000-07-01), Levy et al.
patent: 6105127 (2000-08-01), Kimura et al.
patent: 6212544 (2001-04-01), Borkenhagen et al.
patent: 6256775 (2001-07-01), Flynn
patent: 0 346 003 (1989-12-01), None
patent: 0 352 935 (1990-01-01), None
patent: 0 725 335 (1996-08-01), None
patent: 0 747 816 (1996-12-01), None
patent: 0747816 (1996-12-01), None
patent: 0 768 608 (1997-04-01), None
patent: 0 768 608 (1997-04-01), None
patent: 0 827 071 (1998-03-01), None
patent: 0864960 (1998-03-01), None
patent: 0 856 797 (1998-08-01), None
patent: 0 962 856 (1999-12-01), None
patent: 2311880 (1997-10-01), None
patent: WO 99/21082 (1999-04-01), None
patent: WO99/21088 (1999-04-01), None
patent: PCT/US00/28421 (2000-10-01), None
Agarwal et al., “APRIL: A Processor Architecture for Multiprocessing,”Proceedings of the 17th Annual International Symposium on Computer Architecture, ACM, pp. 104-114, May 1990.*
Zilles et al., “The Use of Multithreading for Exception Handling,” Proceedings of the 32nd Annual Symposium on Microarchitecture, IEEE, pp. 219-229.*
“Architectural and Implementation Tradeoffs in the Design of Multiple-Context Processors”, James Laudon, Anoop Gupta and Mark Horowitz,Multithreaded Computer Architecture: A Summary of the State of the Art, chapter 8, pp. 167-200, Kluwer Academic Publishers 1994.
“Exploiting Choice: Instruction Fetch and Issue on an Implementable Simultaneous Multithreading Processor”, Dean M. Tullsen, Susan J. Eggers, Joel S. Emer, Henry M. Levy, Jack L. Lo and Rebecca L. Stammm,Proceedings of the 23rdAnnual International Symposium on Computer Architecture, May 22-24, 1996, pp. 191-202.
“Evaluation of Multithreaded Uniprocessors for Commercial Application Environments”, Richard J. Eickemeyer, Ross E. Johnson, Steven R. Kunkel, Mark S. Squillante and Shiafun Liu,Proceedings of the 23rdAnnual International Symposium on Computer Architecture. May 22-24, 1996, pp. 203-212.
“Performance Study of a Multithreaded Superscalar Microprocessor”, Manu Gulati and Nader Bagherzadeh,Proceedings Second International Symposium on High-Performance Computer Architecture, Feb. 3-7, 1996
Boggs Darrell
Hsu Rachel
Kota Rajesh
Merchant Amit
Rodgers Dion
Blakely , Sokoloff, Taylor & Zafman LLP
Intel Corporation
Treat William M.
LandOfFree
Method and apparatus for processing an event occurrence... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method and apparatus for processing an event occurrence..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for processing an event occurrence... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2984149