Altering thread priorities in a multithreaded processor
Patent 6212544 Issued on April 3, 2001. Estimated Expiration Date: October 23, 2017. Estimated Expiration Date is calculated based on simple USPTO term provisions. It does not account for terminal disclaimers, term adjustments, failure to pay maintenance fees, or other factors which might affect the term of a patent.
A system and method for performing computer processing operations in a data processing system includes a multithreaded processor and thread switch logic. The multithreaded processor is capable of switching between two or more threads of instructions which can be independently executed. Each thread has a corresponding state in a thread state register depending on its execution status. The thread switch logic contains a thread switch control register to store the conditions upon which a thread switch will occur. The thread switch logic has a time-out register which forces a thread switch when execution of the active thread in the multithreaded processor exceeds a programmable period of time. Thread switch logic also has a forward progress count register to prevent repetitive unproductive thread switching between threads in the multithreaded processor. Thread switch logic also is responsive to a software manager capable of changing the priority of the different threads and thus superseding thread switch events.
"Priority Inversion in Real-Time Communication", Hideyuki Tokuda, 1989, IEEE.
"An Introduction to Operating Systems", Second Edition Harvey M. Deitel, Feb. 1990.
Mike Johnson, "Superscalar Microprocessor Design," Prentice Hall, pp. 21, 46-47, 233-235, 268-272, 1991
Bradley J. Kish and Bruno R. Preiss, "Hobbes: A Multi-Threaded Superscalar Architecture," University of Waterloo, 1994
Bernard Karl Gunther, "Superscalar Performance in a Multithreaded Microprocessor," University of Tasmania Hobart, Chapters 2 and 3, Dec. 1993
Elkateeb, Ali et al; IEEE Pacific Rim Conference 1993, pp. 141-144, "A Task Allocation by Priority Strategy for RISC Architecture Supported with Non-Overlapped Multiple Register Set: A Complexity Study"
Fiske, Stuart et al; Future Generation Computer Systems 11, Oct. 1995, No. 6, pp. 503-518, "Thread Prioritization: A Thread Scheduling Mechanism for Multiple-Context Parallel Processors"
Inohara, Shigekazu et al; IEEE, 1993, pp. 149-155, "Unstable Threads Kernel Interface for Minimizing the Overhead of Thread Switching"
Bolychevsky, A. et al; IEE Proc-Computer Digit Tech, vol. 143, No. 5, Sep. 1996, pp. 309-317, "Dynamic Scheduling in RISC Architectures"
Dubey, Pradeep K. et al; IEEE, 1995, pp. 110-122, "Analytic Performance Modeling for a Spectrum of Multithreaded Processor Architectures"
IBM Technical Disclosure Bulletin, vol. 38, No. 5, May 1995, pp. 271-276, "Deterministic Priority Inversion Method for Personal Computers"
IBM Technical Disclosure Bulletin, vol. 33, No. 9, Feb. 1991, pp. 446-447, "Generic Unix Off-Level Interrupt Handling Invocation Algorithm"
IBM Technical Disclosure Bulletin, vol. 38, No. 9, Sep. 1995, pp. 563-565, "Deadline Monotonic Server"
Weinberg, William; Posix, Real-Time Magazine 97-2, pp. 51-54, "Meeting Real-Time Performance Goals With Kernel Threads"
Atwood, J. William; Computer Magazine, Oct. 1976, pp. 18-26, "Concurrency in Operating Systems"
Aschenbrenner, R. et al, "Intrinsic Multiprocessing", AFIPS Conference Proceedings, vol. 30, 1967 Spring Joint Computer Conference, pp. 81-86
Hatch, T. F. Jr. et al, "Hardware/Software Interaction on the Honeywell Model 8200", AFIPS Conference Proceedings, vol. 33, Part 1, 1968, Fall Joint Computer Conference, pp. 891-901
Foster, C. C., "Uncoupling Central Processor and Storage Device Speeds", The Computer Journal, vol. 14, No. 1, pp. 45-48
Anderson, D. W. et al, "The IBM System/360 Model 91: Machine Philosophy and Instruction-Handling", IBM Journal of Research and Development, vol. 11, 1967, pp. 8-24
Cook, Robert W. et al, "System Design of a Dynamic Microprocessor", IEEE Transactions on Computers, vol. C-19, No. 3, Mar. 1970, pp. 213-222
Cull, Thomas C., The Honeywell 8200', Datamation, vol. 11, No. 7, Jul. 1965, pp. 90-91
Nisenoff, N., "Scratchpad Memories at Honeywell: Past, Present, and Future", AFIPS Conference Proceedings, vol. 27, Part 1, 1965, Fall Joint Computer Conference, pp. 679-688
"Honeywell 800 System", from the collections of the University of Toledo Libraries, pp. 0-42
Dreyfus, P., "Programming Design Features of the GAMMA 60 Computer", Proceedings of the Eastern Joint Computer Conference, Dec. 3-5, 1958, pp. 174-181
Miller, Edward F. Jr., "A Multiple-Stream Registerless Shared-Resource Processor", IEEE Transactions on Computers, vol. C-23, No. 3, Mar. 1974, pp. 277-285
Culler, Arvind and David E., "Dataflow Architectures", Annual Review Computer Science, 1986, pp. 225-253
Buehrer, Richard et al, "Incorporating Data Flow Ideas into von Neumann Processors for Parallel Execution", IEEE Transactions on Computers, vol. C-36, No. 12, Dec. 1987, pp. 1515-1522
Halstead, Robert H. Jr. et al, "MASA: A Multithreaded Processor Architecture for Parallel Symbolic Computing", 15th Annual International Symposium on Computer Architecture, 1988, pp. 443-451
Agarwal, A. et al, "APRIL: A Processor Architecture for Multiprocessing", Proceedings of the 17th Annual Symposium on Computer Architecture, May 1990, pp. 104-114
Agarwal, A., "Analysis of Cache Performance for Operating Systems and Multiprogramming", Dissertation Abstracts International, vol. 48, No. 7, Jan. 1988, pp. 2024-B
Dally, William J. et al, "Architecture of a Message-Driven Processor", 14th Annual International Symposium on Computer Architecture, Jun. 1987, pp. 189-196
Arvind et al, "A Critique of Multiprocessing von Neumann Style", Proceedings of the 10th ACM International Symposium on Computer Architecture, Jun. 1983, pp. 426-436
Flynn, Michael J. et al, "An Unconventional Computer Architecture: Shared Resource Multiprocessing", Computer, Mar./Apr. 1972, pp. 20-28
Shar, Leonard E. et al, "A Multiminiprocessor System Implemented Through Pipelining", Computer, Feb. 1974, pp. 42-51
Kaminski, W. J. et al, "Developing a Multiple-Instruction-Stream Single-Chip Processor", Computer, Dec. 1979, pp. 66-76
Konsek, Marian B. et al, "Context Switching With Multiple Register Windows: A RISC Performance Study", Stanford Technical Report No. UIUCDCS-R-87-1377, Oct. 1987, pp. 0-32
Kishi, Masasuke et al, "DDDP: A Distributed Data Driven Processor", Proceedings of 10th International Symposium on Computer Architecture, 1983, pp. 236-242
Ohr, Stephen "RISC Machines", Electronic Design, vol. 33, Jan. 10, 1985, pp. 174-190
Ragan-Kelley, Robert et al, "Applying RISC Theory to a Large Computer", Computer Design, vol. 22, No. 13, Nov. 1983, pp. 191-198
Mayhew, David et al, "Overlapping Register Windows with Transparent Spill and In-Line Subroutine Expansion", Conference Proceedings IEEE Southeastcon '87, Apr. 1987, pp. 627-630
Markoff, John "RISC Chips--RISC Means Longer Programs but Faster Execution", BYTE, vol. 9, No. 12, Dec. 1984, pp. 191-206
Seitz, Charles L., "The Cosmic Cube", Communications of the ACM, vol. 28, No. 1, Jan. 1985, pp. 22-33
Smith, Bob "Chips in Transition", PC Tech Journal, vol. 4, No. 4, Apr. 1986, pp. 56-63
Kuehn, James T. et al, "The Horizon Supercomputing System: Architecture and Software", Proceedings of Supercomputing '88, pp. 28-34
Snelling, David F. et al, "MIMD Processing and the Denelcor HEP", Multiprocessing in Meterorological Models, Springer-Verlag, pp. 89-95
Willis, I. C. et al, "RapidGraph: An Object Flow Multiprocessor", Proceedings of the International Workshop on Programming Environments for Intelligent Systems, 1985
Whitby-Strevens, Colin "The Transputer", IEEE Proceedings of the 12th Annual International Symposium Computer Architecture, Jun. 1985, pp. 292-300
Smith, Burton J. et al, Architecture and Applications of the HEP Multiprocessor Computer System', Proceedings of the Conference on Peripheral Array Processors, Oct. 1982, pp. 159-170
Smith, Burton J. "Architecture and Applications of the HEP Multiprocessor Computer System", Proceedings of SPIE--The Int'l. Society for Optical Engineering, Vo. 298, Aug. 1981, pp. 241-248
Smith, Burton J. "A Pipelined, Shared Resource MIMD Computer", Proceedings of the 1978 Int'l. Conference on Parallel Processing, Aug. 1978, pp. 6-8
Thistle, Mark R. et al, "A Processor Architecture for Horizon", IEEE Supercomputing 3 88, pp. 35-41
Okamoto, Kazuaki et al, "Multithread Execution Mechanisms on RICA-1 for Massively Parallel Computation", Proceedings of the 1996 Conference on Parallel Architectures and Compilation Techniques (PACT '96), pp. 116-121
Hofmann, Rick "Dual-Port Register File with Overlapped Register Windowing", IBM Technical Report TR54.660, Apr. 20, 1992, pp. 0-37
Ghose, Kanad et al, "Using Method Lookup Caches and Register Windowing to Speed Up Dynamically-Bound Object-Oriented Applications", Proceedings of the 22nd EUROMICRO Conference, EUROMICRO 96, pp. 441-448
Hidaka, Yasuo et al, "Multiple Threads in Cyclic Register Windows", Proceedings of the 20th Annual Int'l. Symposium on Computer Architecture, May 1993, pp. 131-142
Topham, Nigel P. et al, "Context Flow: An Alternative to Conventional Pipelined Architectures", The Journal of Supercomputing, vol. 2, No. 1, 1988, pp. 29-53
Athas, William C. et al, "Multicomputers: Message-Passing Concurrent Computers", Computer, vol. 21, No. 8, Aug. 1988, pp. 9-24
Wallich, Paul "Toward Simpler, Faster Computers", IEEE Spectruam, vol. 22, No. 8, Aug. 8, 1985, pp. 38-45
Cheng, Ching Yuang et al, "RPM: A Fast RISC Type Prolog Machine", Proceedings VLSI and Computers, First Int'l. Conference onComputer Technology, Systems and Applications, Hamburg, May 11-15, 1987
Chang, Yen et al, "Use Structured Arrays for High-Performance Data Processing", Electronic Design News, vol. 32, No. 8, Apr. 1987, pp. 177-184
Wilson, Ron "Higher Speeds Push Embedded Systems to Multiprocessing", Computer Design, Jul. 1, 1989, pp. 72-83
Sporer, Michael et al, "An Introduction to the Architecture of the Stellar Graphics Supercomputer", Proceedings of Compcon Spring '88, 33rd IEEE Computer Society Int'l. Conference, pp. 464-467
Lorin, Harold "Introduction to Computer Architecture and Organization", A Wiley-Interscience Publication, John Wiley & Sons, pp. 41-53
Fujita, Tetsuya "A Multithreaded Processor Architecture for Parallel Symbolic Computation", MIT Laboratory for Computer Science, MIT/LCS/TM-338, Sep. 1987, pp. 0-71
"Sigma 7", Scientific Data Systems, pp. 0-24
"Sigma 7 in the News", Scientific Data Systems, pp. 0-27
"SDS Sigma 7 Computer Reference Manual", Scientific Data Systems, May 1966, pp. 0-95
"Sigma 7", Scientific Data Systems, pp. 0-21
Papadopoulos, Gregory M., "Implementation of a General Purpose Dataflow Multiprocessor", MIT Electrical Engineering and Computer Science PHD Thesis, Aug. 1988, pp. 0-155
Thornton, J. E., "Design of a Computer--The Control Data 6600", Scott, Foresman and Company, 1970, pp. 115-17