Executing speculative parallel instructions threads with forking and inter-thread communication
Patent 5812811 Issued on September 22, 1998. Estimated Expiration Date: September 22, 2015. 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.
712/216, DYNAMIC INSTRUCTION DEPENDENCY CHECKING, MONITORING OR CONFLICT RESOLUTION712/23, Superscalar712/200, ARCHITECTURE BASED INSTRUCTION PROCESSING712/215, Simultaneous issuance of multiple instructions712/221, Arithmetic operation instruction processing718/106Dependency based cooperative processing of multiple programs working together to accomplish a larger task
A central processing unit (CPU) in a computer that permits speculative parallel execution of more than one instruction thread. The CPU uses Fork-Suspend instructions that are added to the instruction set of the CPU, and are inserted in a program prior to run-time to delineate potential future threads for parallel execution. The CPU has an instruction cache with one or more instruction cache ports, a bank of one or more program counters, a bank of one or more dispatchers, a thread management unit that handles inter-thread communications and discards future threads that violate dependencies, a set of architectural registers common to all threads, and a scheduler that schedules parallel execution of the instructions on one or more functional units in the CPU.
Other References
Chiun-Shin Chen and Chien-Chuo Tseng, "Integrated Support to Improve Inter-thread Communication and Synchronization in a Multithreaded Processor", IEEE, Parallel and Distributed Systems, 1994 Int'l. conference, pp. 481-486
Robert D. Blumofe et al, "Scheduling Multithreaded Computations by Work Stealing", IEEE, Foundations of Computer Science, 1994 35th Annual Symposium, pp. 356-358
Computer Architecture News, vol. 20, No. 2, 1 May 1992, pp. 136-145, XP000277761, Hiroaki Hirata et al: "An Elementary Processor Architecture with Simultaneous Instruction Issuing from Multiple Threads", pp. 137-142, sections 2.1-2,3
Proceedings 26th Hawaii International Conference On System Sciences, 5-8 Jan. 1993, Wailea, HI,US, pp. 448-456, XP002003093 Donalson et al.: "DISC: Dynamic Instruction Stream Computer--An evaluation of performance" p. 448, right column, line 7-24; p. 449, section 3.1; figure 1; p. 450, right column, lines 22-30; p. 451, section 3.5
Parallel Architectures and Compilation Techniques. IFIP WG10.3 Working Conference, 24-26 Aug. 1994, Montreal, Que, CA, pp. 335-338, XP002003094 Mendelson And Mendelson: "Towards a general-purpose multi-stream system" the whole document
PowerPC Architecture, Customer Reorder Number 52G7487, IBM Corporation, M/S 04TS-1310, 11400 Burnet Road, Austin, TX 78758-3493, May 1993
PowerPC and Power2: Technical Aspects of the New IBM RISC System/6000, SA23-2737-00, IBM Corporation, 11400 Burnet Road, Austin, TX 78758-3493, 1994
R. Cytron, J. Ferrante, B. Rosen, M. Wegman and F. Zadeck, Efficiently Computing Static Single Assignment Form and the Control Dependence Graph, ACM Transactions on Programming Languages and Systems, vol. 13, No. 4, Oct. 1991, pp.451-490
M. Lam, B. Wilson, "Limits of Control Flow on Parallelism", Proc. of the 19th Annual International Symposium on Computer Architecture, May 1992, pp. 46-57
P. Hsu, E. Davidson, "Highly Concurrent Scalar Processing", Proc. 13th Annual Symposium on Computer Architecture, Jun. 1986, pp. 386-395
M. Smith, M. Horowitz, M. Lam, "Efficient Superscalar Performance Through Boosting", Fifth International Conference on Architectural Support for Programming Lanuages and Operating Systems, Sep. 1992, pp. 248-259
Goossens et al, "Multithreading to Improve Cycle Width and CPI in Superpipelined Superscalar Processors", IEEE, Parallel architectures, algorithms, and networks, 1996 Second International Symposium, pp. 36-42, Jun. 1996
Yamin, Ii et al, "The Effects Of STEF In Finely Parallel Multithreaded Processors", IEEE, High-Performance Computer architecture, 1995 First IEEE Symposium, pp. 318-325, Jan. 1995
Roh et al, "Design of Storage Hierarchy in Multithreaded Architectures", IEEE, Microarchitecture, 1995 28th Annual International Symposium, pp. 271-278, Nov. 199