WO2000068778B1 - Multiple-thread processor with single-thread interface shared among threads - Google Patents

Multiple-thread processor with single-thread interface shared among threads

Info

Publication number
WO2000068778B1
WO2000068778B1 PCT/US2000/012800 US0012800W WO0068778B1 WO 2000068778 B1 WO2000068778 B1 WO 2000068778B1 US 0012800 W US0012800 W US 0012800W WO 0068778 B1 WO0068778 B1 WO 0068778B1
Authority
WO
WIPO (PCT)
Prior art keywords
thread
cache
threads
execution
processor according
Prior art date
Application number
PCT/US2000/012800
Other languages
French (fr)
Other versions
WO2000068778A3 (en
WO2000068778A9 (en
WO2000068778A2 (en
Inventor
William N Joy
Marc Tremblay
Gary Lauterbach
Joseph I Chamdani
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of WO2000068778A2 publication Critical patent/WO2000068778A2/en
Publication of WO2000068778A3 publication Critical patent/WO2000068778A3/en
Publication of WO2000068778B1 publication Critical patent/WO2000068778B1/en
Publication of WO2000068778A9 publication Critical patent/WO2000068778A9/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • G06F9/30127Register windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Abstract

A processor includes logic (612) for tagging a thread identifier (TID) for usage with processor blocks that are not stalled. Pertinent non-stalling blocks include caches, translation look-aside buffers (TLB) (1258, 1220), a load buffer asynchronous interface, an external memory management unit (MMU) interface (320, 330), and others. A processor (300) includes a cache that is segregated into a plurality of N cache parts. Cache segregation avoids interference, 'pollution', or 'cross-talk' between threads. One technique for cache segregation utilizes logic for storing and communicating thread identification (TID) bits. The cache utilizes cache indexing logic. For example, the TID bits can be inserted at the most significant bits of the cache index.

Claims

AMENDED CLAIMS[received by the International Bureau on 27 April 2001 (27.04.01 ), original claims 1 and 28 amended; remaining claims unchanged (6 pages)]
1. A processor comprising a multiple-thread execution pipeline (314) including a plurality of execution pathways respectively allocated to a plurality of independent execution threads (310, 312) extending to a plurality of pipeline registers, wherein functional properties of an independent execution thread state are stored throughout the pipeline extending to the pipeline registers to enable the processor to postpone execution of a stalling thread, relinquish the pipeline to a previously idle thread, later resuming execution of the postponed stalling thread at the precise state of the stalling thread immediately prior to switching of the thread; and a non-stallmg component coupled to the multiple-thread execution pathways so that the plurality of execution pathways converge into a single-pathway including the non-stalling component.
2. A processor according to Claim 1 wherein: the non-stallmg component is selected from non-stallmg components including caches (1256, 1212). translation look-aside buffers (TLBs) (1258, 1220),load buffer asynchronous interfaces, and external MMU interface.
3. A processor according to either Claim 1 or Claim 2 further comprising: thread tagging logic (610) coupled to the non-stall g component, the thread tagging logic for setting a thread identifier (TID) tag identifying threads m the non- stalling component.
4. A processor according to any of Claims 1-3 further comprising: a single-pathway component coupled to the multiple-thread execution pathways so that the plurality of execution pathways converge into the smgle-pathway of the smgle-pathway component, the smgle-pathway component being a non- stalling component
5. A processor according to Claim 4 wherein: the smgle-pathway component is shared among a plurality of threads, the single- pathway component maintaining compatibility among threads by physical duplication of structures and by verifying communication status after transfer of a thread.
6. A processor according to either Claim 4 or Claim 5 wherein: the multiple-thread execution pipeline includes a plurality of functional units (1232, 1234, 1236, 1238, 1240, 1242, 1244, 1246) allocated to an execution thread of a plurality of execution threads; the processor further comprising: a single-thread interface coupled to the plurality of processing units, the smgle-thread interface being shared among threads and maintaining thread compatibility by physical duplication of structures and by verifying communication status after thread transfer.
7. A processor according to any of Claims 1-6 further comprising: a smgle-thread cache (710, 712) coupled to the multiple-thread execution pipeline so that the plurality of execution pathways converge into the smgle-thread of the cache, the smgle-thread cache being shared among threads and maintaining thread compatibility by segregation of the cache into N parts.
8. A processor according to Claim 7 wherein: cache segregation separates the cache into N independent parts that are allocated to threads to avoid pollution, "cross-talk", and interference between threads.
9. A processor according to either Claim 7 or Claim 8 wherein the cache includes: a cache index (812) that allocates the threads into the N independent cache parts.
10. A processor according to Claim 9 wherein: the cache index includes a bit field allocated to received thread identification (TID) bits indicative of a part of the N parts of the segregated cache.
11. A processor according to any of Claims 7- 10 further comprising: a thread switch logic (612) coupled to the multiple-thread execution pipeline and coupled to the cache, the thread switch logic controlling thread selection and generating a thread identifier (TID) indicative of the selected thread.
12. A processor according to any of Claims 7-11 further comprising: a thread switch logic coupled to the multiple-thread execution pipeline and coupled to the cache, the thread switch logic controlling thread selection and generating a thread identifier (TID) indicative of the selected thread; and a thread control logic coupled to the thread switch logic and supporting lightweight processes and native threads, the thread control logic disabling thread ID tagging and disabling cache segregation for lightweight processes and native threads that share a single virtual tag space.
13. A processor according to any of Claims 1-12 wherein: the multiple-thread execution pipeline includes a plurality of pipelines respectively allocated to a plurality of execution threads, the multiple-thread execution pipeline including storage elements for holding the plurality of threads, the processor further comprising: a plurality of shared components coupled to the multiple-thread execution pipeline, the shared components being coupled in a sequence so that the plurality of pipelines converge into the sequence of shared components, the shared components being logic components that control but do not hold threads.
14. A processor according to Claim 13 wherein: the plurality of shared components are selected from among components including a memory management unit (MMU) (320, 330), a branch prediction unit, a next-fetch random access memory (RAM).
15. A processor according to either Claim 13 or Claim 14 further comprising: a cache control unit coupled to the multiple-thread execution pipeline; an LI cache coupled to the cache control unit; and anti-aliasing logic coupled to the LI cache so that the LI cache is shared among threads via anti-aliasing.
16. A processor according to Claim 15 wherein: the LI cache is a virtually-indexed, physically-tagged cache that is shared among threads; and the anti-aliasing logic avoids hazards that result from multiple virtual addresses mapping to one physical address, the anti-aliasing logic selectively invalidating or updating duplicate LI cache entries.
17. A processor according to Claim 15 wherein- the LI cache is a virtually-indexed, physically-tagged cache that is shared among threads; and the anti-aliasing logic includes logic supporting lightweight processes and native threads that disables thread ID tagging and disables cache segregation.
18. A processor according to Claim 15 wherein: the anti-aliasing logic avoids hazards that result from multiple virtual addresses mapping to one physical address.
19. A processor according to any of Claims 13-18 further comprising: a cache coupled to the multiple-thread execution pipeline, the cache including cache indexing logic; and a cache control unit coupled to the cache, the cache control unit segregating the cache segregation by separating the cache mto N independent parts that are allocated to threads to avoid pollution, "cross-talk", and interference between threads.
20. A processor according to any of Claims 1-19 wherein: the multiple-thread execution pipeline includes a plurality of pulse-based high-speed flip-flops (400), the pulse-based high-speed flip-flops having a latch structure coupled to a plurality of select-bus lines, the select-bus lines selecting an active thread from among the plurality of execution threads.
21. A processor according to any of Claims 1-20 further comprising. a smgle-thread interface including a load buffer and a store buffer that maintain compatibility with multiple threads so that, on a thread switch, the smgle- thread interface receives a new thread and maintains the state of a shared structure m a manner that is compatible with the replaced thread.
22. A processor according to any of Claims 1-21 further comprising: a smgle-thread interface including a load buffer and a store buffer that maintain compatibility with multiple threads by checking read-after-write status of the load buffer and the store buffer.
23 A processor according to any of Claims 1-22 further comprising. a smgle-thread interface including a load buffer and a store buffer that maintain compatibility with multiple threads by checking load operations against contents of a store buffer m an alternative thread so that read-after-wπte status information is stored and augmented to store results of read-after-wπte checks against content of all store buffers.
24. A processor according to any of Claims 1-23 further comprising: a smgle-thread interface that identifies a tag using a thread identifier (TID) tag.
25. A processor according to any of Claims 1-24 further comprising: a smgle-thread interface that is selected from among devices including caches, translation look-aside buffers, load buffer asynchronous interfaces, store buffer asynchronous interfaces, and memory management units.
26. A processor according to any of Claims 1-24 further comprising: a smgle-thread interface that is selected from among non-stallmg devices including caches, translation look-aside buffers, load buffer asynchronous interfaces, store buffer asynchronous interfaces, and memory management units.
27. A processor according to any of Claims 1-26 further comprising. a plurality of multiple-thread execution pipelines and a smgle-thread interface integrated onto a single mtegrated-circuit chip
28. A method of operating a processor compπsmg: executing a plurality of execution threads (310, 312) in a multiple-thread execution pipeline (314); respectively allocating pathways of the multiple-thread execution pipeline to the plurality of execution threads, sharing a smgle-thread interface among threads, comprising. allocating a plurality of execution pathways respectively to a plurality of independent execution threads (310, 312) extending to a plurality of pipeline registers; stoπng functional properties of an independent execution thread state throughout the pipeline extending to the pipeline registers; postponing execution of a stalling thread; relinquishing the pipeline to a previously idle thread; and later resuming execution of the postponed stalling thread at the precise state of the stalling thread immediately prior to switching of the thread; and maintaining thread compatibility by: physically duplicating structures; and veπfying communication status after thread transfer.
29. A method of operating a processor according to Claim 28 further compπsmg: converging the plurality of execution pathways converge into the smgle-thread of a single-thread cache; sharing the smgle-thread cache among threads; and maintaining thread compatibility by segregation of the cache into N parts.
PCT/US2000/012800 1999-05-11 2000-05-09 Multiple-thread processor with single-thread interface shared among threads WO2000068778A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/309,734 1999-05-11
US09/309,734 US6542991B1 (en) 1999-05-11 1999-05-11 Multiple-thread processor with single-thread interface shared among threads

Publications (4)

Publication Number Publication Date
WO2000068778A2 WO2000068778A2 (en) 2000-11-16
WO2000068778A3 WO2000068778A3 (en) 2001-08-09
WO2000068778B1 true WO2000068778B1 (en) 2001-10-04
WO2000068778A9 WO2000068778A9 (en) 2002-04-04

Family

ID=23199449

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/012800 WO2000068778A2 (en) 1999-05-11 2000-05-09 Multiple-thread processor with single-thread interface shared among threads

Country Status (2)

Country Link
US (4) US6542991B1 (en)
WO (1) WO2000068778A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108027777A (en) * 2015-09-25 2018-05-11 高通股份有限公司 Method and apparatus for realizing cache line data de-duplication via Data Matching

Families Citing this family (160)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2728559B1 (en) * 1994-12-23 1997-01-31 Saint Gobain Vitrage GLASS SUBSTRATES COATED WITH A STACK OF THIN LAYERS WITH INFRARED REFLECTION PROPERTIES AND / OR IN THE FIELD OF SOLAR RADIATION
JP3541669B2 (en) * 1998-03-30 2004-07-14 松下電器産業株式会社 Arithmetic processing unit
US6883171B1 (en) * 1999-06-02 2005-04-19 Microsoft Corporation Dynamic address windowing on a PCI bus
US7308686B1 (en) 1999-12-22 2007-12-11 Ubicom Inc. Software input/output using hard real time threads
AU2597401A (en) * 1999-12-22 2001-07-03 Ubicom, Inc. System and method for instruction level multithreading in an embedded processor using zero-time context switching
US7120783B2 (en) * 1999-12-22 2006-10-10 Ubicom, Inc. System and method for reading and writing a thread state in a multithreaded central processing unit
US20010042138A1 (en) * 1999-12-23 2001-11-15 Reinhard Buendgen Method and system for parallel and procedural computing
US6694425B1 (en) * 2000-05-04 2004-02-17 International Business Machines Corporation Selective flush of shared and other pipeline stages in a multithread processor
US7010612B1 (en) 2000-06-22 2006-03-07 Ubicom, Inc. Universal serializer/deserializer
US7047396B1 (en) 2000-06-22 2006-05-16 Ubicom, Inc. Fixed length memory to memory arithmetic and architecture for a communications embedded processor system
US6904594B1 (en) * 2000-07-06 2005-06-07 International Business Machines Corporation Method and system for apportioning changes in metric variables in an symmetric multiprocessor (SMP) environment
US6729699B1 (en) * 2000-10-04 2004-05-04 International Business Machines Corporation Invocation map based architecture for program execution
US7035998B1 (en) * 2000-11-03 2006-04-25 Mips Technologies, Inc. Clustering stream and/or instruction queues for multi-streaming processors
US7139898B1 (en) 2000-11-03 2006-11-21 Mips Technologies, Inc. Fetch and dispatch disassociation apparatus for multistreaming processors
US6662274B2 (en) * 2001-06-20 2003-12-09 Intel Corporation Method for using cache prefetch feature to improve garbage collection algorithm
US6857046B1 (en) * 2002-03-28 2005-02-15 Cisco Technology, Inc. Caching for context switching applications
US6912623B2 (en) * 2002-06-04 2005-06-28 Sandbridge Technologies, Inc. Method and apparatus for multithreaded cache with simplified implementation of cache replacement policy
US6990557B2 (en) * 2002-06-04 2006-01-24 Sandbridge Technologies, Inc. Method and apparatus for multithreaded cache with cache eviction based on thread identifier
US20030229740A1 (en) * 2002-06-10 2003-12-11 Maly John Warren Accessing resources in a microprocessor having resources of varying scope
JP3749208B2 (en) * 2002-08-14 2006-02-22 株式会社東芝 Process migration method, computer
US6904511B2 (en) * 2002-10-11 2005-06-07 Sandbridge Technologies, Inc. Method and apparatus for register file port reduction in a multithreaded processor
US7822950B1 (en) 2003-01-22 2010-10-26 Ubicom, Inc. Thread cancellation and recirculation in a computer processor for avoiding pipeline stalls
US20040154010A1 (en) * 2003-01-31 2004-08-05 Pedro Marcuello Control-quasi-independent-points guided speculative multithreading
US7487502B2 (en) * 2003-02-19 2009-02-03 Intel Corporation Programmable event driven yield mechanism which may activate other threads
US7849465B2 (en) * 2003-02-19 2010-12-07 Intel Corporation Programmable event driven yield mechanism which may activate service threads
US7000233B2 (en) * 2003-04-21 2006-02-14 International Business Machines Corporation Simultaneous multithread processor with result data delay path to adjust pipeline length for input to respective thread
EP1625504A1 (en) * 2003-05-08 2006-02-15 Koninklijke Philips Electronics N.V. Processing system and method for communicating data
US8266379B2 (en) * 2003-06-02 2012-09-11 Infineon Technologies Ag Multithreaded processor with multiple caches
GB0315504D0 (en) * 2003-07-02 2003-08-06 Advanced Risc Mach Ltd Coherent multi-processing system
KR100591755B1 (en) * 2003-07-22 2006-06-22 삼성전자주식회사 Apparatus and method for processing multiple threads simultaneously
US20050050305A1 (en) * 2003-08-28 2005-03-03 Kissell Kevin D. Integrated mechanism for suspension and deallocation of computational threads of execution in a processor
US7836450B2 (en) * 2003-08-28 2010-11-16 Mips Technologies, Inc. Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
US7849297B2 (en) * 2003-08-28 2010-12-07 Mips Technologies, Inc. Software emulation of directed exceptions in a multithreading processor
US7870553B2 (en) * 2003-08-28 2011-01-11 Mips Technologies, Inc. Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
US7594089B2 (en) * 2003-08-28 2009-09-22 Mips Technologies, Inc. Smart memory based synchronization controller for a multi-threaded multiprocessor SoC
US7418585B2 (en) * 2003-08-28 2008-08-26 Mips Technologies, Inc. Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
US7376954B2 (en) * 2003-08-28 2008-05-20 Mips Technologies, Inc. Mechanisms for assuring quality of service for programs executing on a multithreaded processor
JP4740851B2 (en) * 2003-08-28 2011-08-03 ミップス テクノロジーズ インコーポレイテッド Mechanism for dynamic configuration of virtual processor resources
US9032404B2 (en) * 2003-08-28 2015-05-12 Mips Technologies, Inc. Preemptive multitasking employing software emulation of directed exceptions in a multithreading processor
US7711931B2 (en) * 2003-08-28 2010-05-04 Mips Technologies, Inc. Synchronized storage providing multiple synchronization semantics
US7614056B1 (en) 2003-09-12 2009-11-03 Sun Microsystems, Inc. Processor specific dispatching in a heterogeneous configuration
TWI223756B (en) * 2003-10-09 2004-11-11 Univ Nat Sun Yat Sen Automatic register backup/restore system and method
US7743382B2 (en) * 2003-11-03 2010-06-22 Ramal Acquisition Corp. System for deadlock condition detection and correction by allowing a queue limit of a number of data tokens on the queue to increase
US7577947B2 (en) * 2003-12-19 2009-08-18 Intel Corporation Methods and apparatus to dynamically insert prefetch instructions based on garbage collector analysis and layout of objects
US8694976B2 (en) * 2003-12-19 2014-04-08 Intel Corporation Sleep state mechanism for virtual multithreading
US7206916B2 (en) * 2004-03-08 2007-04-17 Sun Microsystems, Inc. Partial address compares stored in translation lookaside buffer
US7889750B1 (en) * 2004-04-28 2011-02-15 Extreme Networks, Inc. Method of extending default fixed number of processing cycles in pipelined packet processor architecture
US7401206B2 (en) * 2004-06-30 2008-07-15 Sun Microsystems, Inc. Apparatus and method for fine-grained multithreading in a multipipelined processor core
US7373489B1 (en) 2004-06-30 2008-05-13 Sun Microsystems, Inc. Apparatus and method for floating-point exception prediction and recovery
US7353364B1 (en) 2004-06-30 2008-04-01 Sun Microsystems, Inc. Apparatus and method for sharing a functional unit execution resource among a plurality of functional units
US7519796B1 (en) 2004-06-30 2009-04-14 Sun Microsystems, Inc. Efficient utilization of a store buffer using counters
US7702887B1 (en) 2004-06-30 2010-04-20 Sun Microsystems, Inc. Performance instrumentation in a fine grain multithreaded multicore processor
US7509484B1 (en) 2004-06-30 2009-03-24 Sun Microsystems, Inc. Handling cache misses by selectively flushing the pipeline
US7343474B1 (en) 2004-06-30 2008-03-11 Sun Microsystems, Inc. Minimal address state in a fine grain multithreaded processor
US7543132B1 (en) 2004-06-30 2009-06-02 Sun Microsystems, Inc. Optimizing hardware TLB reload performance in a highly-threaded processor with multiple page sizes
US7330988B2 (en) * 2004-06-30 2008-02-12 Sun Microsystems, Inc. Method and apparatus for power throttling in a multi-thread processor
US7571284B1 (en) 2004-06-30 2009-08-04 Sun Microsystems, Inc. Out-of-order memory transactions in a fine-grain multithreaded/multi-core processor
US7290116B1 (en) 2004-06-30 2007-10-30 Sun Microsystems, Inc. Level 2 cache index hashing to avoid hot spots
US7533248B1 (en) 2004-06-30 2009-05-12 Sun Microsystems, Inc. Multithreaded processor including a functional unit shared between multiple requestors and arbitration therefor
US7941642B1 (en) 2004-06-30 2011-05-10 Oracle America, Inc. Method for selecting between divide instructions associated with respective threads in a multi-threaded processor
US7370243B1 (en) 2004-06-30 2008-05-06 Sun Microsystems, Inc. Precise error handling in a fine grain multithreaded multicore processor
US7861063B1 (en) 2004-06-30 2010-12-28 Oracle America, Inc. Delay slot handling in a processor
US7747771B1 (en) 2004-06-30 2010-06-29 Oracle America, Inc. Register access protocol in a multihreaded multi-core processor
US7437538B1 (en) 2004-06-30 2008-10-14 Sun Microsystems, Inc. Apparatus and method for reducing execution latency of floating point operations having special case operands
US7890734B2 (en) * 2004-06-30 2011-02-15 Open Computing Trust I & II Mechanism for selecting instructions for execution in a multithreaded processor
US7774393B1 (en) 2004-06-30 2010-08-10 Oracle America, Inc. Apparatus and method for integer to floating-point format conversion
US7383403B1 (en) 2004-06-30 2008-06-03 Sun Microsystems, Inc. Concurrent bypass to instruction buffers in a fine grain multithreaded processor
US7216216B1 (en) 2004-06-30 2007-05-08 Sun Microsystems, Inc. Register window management using first pipeline to change current window and second pipeline to read operand from old window and write operand to new window
US7185178B1 (en) 2004-06-30 2007-02-27 Sun Microsystems, Inc. Fetch speculation in a multithreaded processor
US7523330B2 (en) * 2004-06-30 2009-04-21 Sun Microsystems, Inc. Thread-based clock enabling in a multi-threaded processor
US7178005B1 (en) 2004-06-30 2007-02-13 Sun Microsystems, Inc. Efficient implementation of timers in a multithreaded processor
US8095778B1 (en) 2004-06-30 2012-01-10 Open Computing Trust I & II Method and system for sharing functional units of a multithreaded processor
US7478225B1 (en) 2004-06-30 2009-01-13 Sun Microsystems, Inc. Apparatus and method to support pipelining of differing-latency instructions in a multithreaded processor
US7366829B1 (en) 2004-06-30 2008-04-29 Sun Microsystems, Inc. TLB tag parity checking without CAM read
US8225034B1 (en) 2004-06-30 2012-07-17 Oracle America, Inc. Hybrid instruction buffer
US7676655B2 (en) * 2004-06-30 2010-03-09 Sun Microsystems, Inc. Single bit control of threads in a multithreaded multicore processor
US7426630B1 (en) 2004-06-30 2008-09-16 Sun Microsystems, Inc. Arbitration of window swap operations
US7434000B1 (en) 2004-06-30 2008-10-07 Sun Microsystems, Inc. Handling duplicate cache misses in a multithreaded/multi-core processor
US20060009265A1 (en) * 2004-06-30 2006-01-12 Clapper Edward O Communication blackout feature
JP4297846B2 (en) * 2004-07-27 2009-07-15 富士通株式会社 Address translation buffer control device and address translation buffer control method
JP4520788B2 (en) 2004-07-29 2010-08-11 富士通株式会社 Multithreaded processor
JP2006053830A (en) * 2004-08-13 2006-02-23 Toshiba Corp Branch estimation apparatus and branch estimation method
US8037250B1 (en) 2004-12-09 2011-10-11 Oracle America, Inc. Arbitrating cache misses in a multithreaded/multi-core processor
DE102004059972B4 (en) * 2004-12-13 2010-07-01 Infineon Technologies Ag Thread scheduling method, and thread list scheduler device
US8756605B2 (en) * 2004-12-17 2014-06-17 Oracle America, Inc. Method and apparatus for scheduling multiple threads for execution in a shared microprocessor pipeline
US7937709B2 (en) 2004-12-29 2011-05-03 Intel Corporation Synchronizing multiple threads efficiently
US7430643B2 (en) * 2004-12-30 2008-09-30 Sun Microsystems, Inc. Multiple contexts for efficient use of translation lookaside buffer
US7600101B2 (en) * 2005-01-13 2009-10-06 Hewlett-Packard Development Company, L.P. Multithreaded hardware systems and methods
US20060229638A1 (en) * 2005-03-29 2006-10-12 Abrams Robert M Articulating retrieval device
US20060294344A1 (en) * 2005-06-28 2006-12-28 Universal Network Machines, Inc. Computer processor pipeline with shadow registers for context switching, and method
US8301868B2 (en) 2005-09-23 2012-10-30 Intel Corporation System to profile and optimize user software in a managed run-time environment
US20080235450A1 (en) * 2005-09-28 2008-09-25 Yongxiang Han Updating Entries Cached by a Network Processor
US7711934B2 (en) * 2005-10-31 2010-05-04 Mips Technologies, Inc. Processor core and method for managing branch misprediction in an out-of-order processor pipeline
US7734901B2 (en) * 2005-10-31 2010-06-08 Mips Technologies, Inc. Processor core and method for managing program counter redirection in an out-of-order processor pipeline
US8275942B2 (en) 2005-12-22 2012-09-25 Intel Corporation Performance prioritization in multi-threaded processors
US8108863B2 (en) * 2005-12-30 2012-01-31 Intel Corporation Load balancing for multi-threaded applications via asymmetric power throttling
US8001549B2 (en) * 2006-04-27 2011-08-16 Panasonic Corporation Multithreaded computer system and multithread execution control method
US8453147B2 (en) 2006-06-05 2013-05-28 Cisco Technology, Inc. Techniques for reducing thread overhead for systems with multiple multi-threaded processors
US8549499B1 (en) * 2006-06-16 2013-10-01 University Of Rochester Parallel programming using possible parallel regions and its language profiling compiler, run-time system and debugging support
US8041929B2 (en) 2006-06-16 2011-10-18 Cisco Technology, Inc. Techniques for hardware-assisted multi-threaded processing
US7502913B2 (en) * 2006-06-16 2009-03-10 Microsoft Corporation Switch prefetch in a multicore computer chip
JP4783229B2 (en) * 2006-07-19 2011-09-28 パナソニック株式会社 Cache memory system
US8032737B2 (en) 2006-08-14 2011-10-04 Marvell World Trade Ltd. Methods and apparatus for handling switching among threads within a multithread processor
US8046775B2 (en) 2006-08-14 2011-10-25 Marvell World Trade Ltd. Event-based bandwidth allocation mode switching method and apparatus
US8010966B2 (en) * 2006-09-27 2011-08-30 Cisco Technology, Inc. Multi-threaded processing using path locks
US7996632B1 (en) 2006-12-22 2011-08-09 Oracle America, Inc. Device for misaligned atomics for a highly-threaded x86 processor
US7975272B2 (en) * 2006-12-30 2011-07-05 Intel Corporation Thread queuing method and apparatus
US8261049B1 (en) * 2007-04-10 2012-09-04 Marvell International Ltd. Determinative branch prediction indexing
US7681020B2 (en) * 2007-04-18 2010-03-16 International Business Machines Corporation Context switching and synchronization
US7958323B1 (en) * 2007-05-09 2011-06-07 Marvell Israel (M.I.S.L.) Ltd. Multithreading implementation for flops and register files
WO2008155838A1 (en) * 2007-06-20 2008-12-24 Fujitsu Limited Instruction processor
US20090024772A1 (en) * 2007-07-20 2009-01-22 Wenjeng Ko Overlayed separate dma mapping of adapters
US20090024823A1 (en) * 2007-07-20 2009-01-22 Wenjeng Ko Overlayed separate dma mapping of adapters
US8261284B2 (en) * 2007-09-13 2012-09-04 Microsoft Corporation Fast context switching using virtual cpus
JP5256685B2 (en) * 2007-10-18 2013-08-07 日本電気株式会社 Information processing device
US20090276448A1 (en) * 2008-04-30 2009-11-05 International Business Machines Corporation Parallel transformation of files
US8949569B2 (en) * 2008-04-30 2015-02-03 International Business Machines Corporation Enhanced direct memory access
US8677018B2 (en) * 2008-08-25 2014-03-18 Google Inc. Parallel, side-effect based DNS pre-caching
US9197486B2 (en) * 2008-08-29 2015-11-24 Google Inc. Adaptive accelerated application startup
US8024719B2 (en) 2008-11-03 2011-09-20 Advanced Micro Devices, Inc. Bounded hash table sorting in a dynamic program profiling system
US20100115494A1 (en) * 2008-11-03 2010-05-06 Gorton Jr Richard C System for dynamic program profiling
US8478948B2 (en) * 2008-12-04 2013-07-02 Oracle America, Inc. Method and system for efficient tracing and profiling of memory accesses during program execution
KR101547302B1 (en) * 2009-02-09 2015-08-26 삼성전자주식회사 Method of measuring setup time including clock skew absorbing characteristic of a pulse-based flip-flop
JP5414305B2 (en) * 2009-02-25 2014-02-12 キヤノン株式会社 Information processing apparatus, virtual storage management method, and program
US9225794B2 (en) 2009-03-31 2015-12-29 Google Inc. Adaptive DNS pre-resolution
KR101572879B1 (en) * 2009-04-29 2015-12-01 삼성전자주식회사 Dynamic parallel system and method for parallel application program
US8140646B2 (en) * 2009-06-04 2012-03-20 Microsoft Corporation Network application performance enhancement using speculative execution
US20110016367A1 (en) * 2009-07-14 2011-01-20 Bo Tang Skew tolerant scannable master/slave flip-flop including embedded logic
US8631411B1 (en) 2009-07-21 2014-01-14 The Research Foundation For The State University Of New York Energy aware processing load distribution system and method
US9367462B2 (en) * 2009-12-29 2016-06-14 Empire Technology Development Llc Shared memories for energy efficient multi-core processors
CA2793537A1 (en) 2010-04-13 2011-10-20 Et International, Inc. Runspace method, system and apparatus
EP2402859A1 (en) * 2010-07-02 2012-01-04 STMicroelectronics (Grenoble 2) SAS Die and package comprising a plurality of dies
JP5636109B2 (en) 2010-08-23 2014-12-03 エンパイア テクノロジー ディベロップメント エルエルシー Context switch
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
EP2652634A1 (en) 2010-12-16 2013-10-23 Et International Inc. Distributed computing architecture
CN102609240B (en) * 2011-01-20 2016-04-06 瑞昱半导体股份有限公司 The method of processor circuit and reading data
US8639884B2 (en) * 2011-02-28 2014-01-28 Freescale Semiconductor, Inc. Systems and methods for configuring load/store execution units
US9547593B2 (en) * 2011-02-28 2017-01-17 Nxp Usa, Inc. Systems and methods for reconfiguring cache memory
US9401869B1 (en) * 2012-06-04 2016-07-26 Google Inc. System and methods for sharing memory subsystem resources among datacenter applications
US8943252B2 (en) 2012-08-16 2015-01-27 Microsoft Corporation Latency sensitive software interrupt and thread scheduling
US9262323B1 (en) 2012-11-26 2016-02-16 Amazon Technologies, Inc. Replication in distributed caching cluster
US9529772B1 (en) 2012-11-26 2016-12-27 Amazon Technologies, Inc. Distributed caching cluster configuration
US9847907B2 (en) * 2012-11-26 2017-12-19 Amazon Technologies, Inc. Distributed caching cluster management
US9602614B1 (en) 2012-11-26 2017-03-21 Amazon Technologies, Inc. Distributed caching cluster client configuration
US9135067B2 (en) * 2013-02-28 2015-09-15 Mips Technologies, Inc. Resource sharing using process delay
WO2015041636A1 (en) * 2013-09-17 2015-03-26 Empire Technology Development, Llc Virtual machine switching based on processor power states
US9804846B2 (en) 2014-03-27 2017-10-31 International Business Machines Corporation Thread context preservation in a multithreading computer system
US9594660B2 (en) 2014-03-27 2017-03-14 International Business Machines Corporation Multithreading computer system and program product for executing a query instruction for idle time accumulation among cores
US9417876B2 (en) 2014-03-27 2016-08-16 International Business Machines Corporation Thread context restoration in a multithreading computer system
US9354883B2 (en) 2014-03-27 2016-05-31 International Business Machines Corporation Dynamic enablement of multithreading
US9921848B2 (en) 2014-03-27 2018-03-20 International Business Machines Corporation Address expansion and contraction in a multithreading computer system
US10102004B2 (en) 2014-03-27 2018-10-16 International Business Machines Corporation Hardware counters to track utilization in a multithreading computer system
US9996354B2 (en) * 2015-01-09 2018-06-12 International Business Machines Corporation Instruction stream tracing of multi-threaded processors
US10706101B2 (en) 2016-04-14 2020-07-07 Advanced Micro Devices, Inc. Bucketized hash tables with remap entries
WO2018021620A1 (en) * 2016-07-26 2018-02-01 주식회사 맴레이 Parallel processing unit, computing device comprising same, and thread group scheduling method
CN106293937A (en) * 2016-08-02 2017-01-04 合肥奇也信息科技有限公司 A kind of for distributing the method that data processing resources processes to data
CA3053391A1 (en) * 2017-02-20 2018-08-23 Intensivate Inc. Super-thread processor
US10269088B2 (en) * 2017-04-21 2019-04-23 Intel Corporation Dynamic thread execution arbitration
JP7367359B2 (en) * 2018-08-10 2023-10-24 株式会社デンソー Vehicle electronic control system, file transfer control method, file transfer control program and device
US10878857B2 (en) * 2018-11-02 2020-12-29 Bitmain Inc. Dynamic data storage element, and integrated circuit having the same

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4442487A (en) * 1981-12-31 1984-04-10 International Business Machines Corporation Three level memory hierarchy using write and share flags
US4695943A (en) * 1984-09-27 1987-09-22 Honeywell Information Systems Inc. Multiprocessor shared pipeline cache memory with split cycle and concurrent utilization
GB2234613B (en) * 1989-08-03 1993-07-07 Sun Microsystems Inc Method and apparatus for switching context of state elements in a microprocessor
US5255211A (en) 1990-02-22 1993-10-19 Redmond Productions, Inc. Methods and apparatus for generating and processing synthetic and absolute real time environments
US5452452A (en) 1990-06-11 1995-09-19 Cray Research, Inc. System having integrated dispatcher for self scheduling processors to execute multiple types of processes
US5590359A (en) * 1992-08-05 1996-12-31 Intel Corporation Method and apparatus for generating a status word in a pipelined processor
GB9223226D0 (en) 1992-11-05 1992-12-16 Algotronix Ltd Improved configurable cellular array (cal ii)
US5684993A (en) * 1993-01-04 1997-11-04 Microsoft Corporation Segregation of thread-specific information from shared task information
US5584023A (en) 1993-12-27 1996-12-10 Hsu; Mike S. C. Computer system including a transparent and secure file transform mechanism
JP3676411B2 (en) 1994-01-21 2005-07-27 サン・マイクロシステムズ・インコーポレイテッド Register file device and register file access method
US5742806A (en) 1994-01-31 1998-04-21 Sun Microsystems, Inc. Apparatus and method for decomposing database queries for database management system including multiprocessor digital data processing system
US5512130A (en) * 1994-03-09 1996-04-30 Texas Instruments Incorporated Method and apparatus of etching a clean trench in a semiconductor material
US5692193A (en) 1994-03-31 1997-11-25 Nec Research Institute, Inc. Software architecture for control of highly parallel computer systems
US5761285A (en) 1994-06-01 1998-06-02 Davox Corporation Universal telephony application client that is configurable from a profile for a telphone call campaign
US5752027A (en) 1994-11-30 1998-05-12 Dun & Bradstreet Software Services, Inc. Apparatus and process for creating and accessing a database centric object
US5724565A (en) * 1995-02-03 1998-03-03 International Business Machines Corporation Method and system for processing first and second sets of instructions by first and second types of processing systems
US5680641A (en) * 1995-08-16 1997-10-21 Sharp Microelectronics Technology, Inc. Multiple register bank system for concurrent I/O operation in a CPU datapath
JP3661235B2 (en) * 1995-08-28 2005-06-15 株式会社日立製作所 Shared memory system, parallel processor and memory LSI
US5860138A (en) * 1995-10-02 1999-01-12 International Business Machines Corporation Processor with compiler-allocated, variable length intermediate storage
JP3348367B2 (en) * 1995-12-06 2002-11-20 富士通株式会社 Multiple access method and multiple access cache memory device
US5809415A (en) 1995-12-11 1998-09-15 Unwired Planet, Inc. Method and architecture for an interactive two-way data communication network
US5778247A (en) 1996-03-06 1998-07-07 Sun Microsystems, Inc. Multi-pipeline microprocessor with data precision mode indicator
JP3139392B2 (en) * 1996-10-11 2001-02-26 日本電気株式会社 Parallel processing system
US5893145A (en) * 1996-12-02 1999-04-06 Compaq Computer Corp. System and method for routing operands within partitions of a source register to partitions within a destination register
US5835705A (en) * 1997-03-11 1998-11-10 International Business Machines Corporation Method and system for performance per-thread monitoring in a multithreaded processor
US6058466A (en) * 1997-06-24 2000-05-02 Sun Microsystems, Inc. System for allocation of execution resources amongst multiple executing processes
US6233599B1 (en) * 1997-07-10 2001-05-15 International Business Machines Corporation Apparatus and method for retrofitting multi-threaded operations on a computer by partitioning and overlapping registers
US5893159A (en) * 1997-10-22 1999-04-06 International Business Machines Corporation Methods and apparatus for managing scratchpad memory in a multiprocessor data processing system
US6105051A (en) * 1997-10-23 2000-08-15 International Business Machines Corporation Apparatus and method to guarantee forward progress in execution of threads in a multithreaded processor
US6076157A (en) 1997-10-23 2000-06-13 International Business Machines Corporation Method and apparatus to force a thread switch in a multithreaded processor
US6567839B1 (en) * 1997-10-23 2003-05-20 International Business Machines Corporation Thread switch control in a multithreaded processor system
US6061710A (en) * 1997-10-29 2000-05-09 International Business Machines Corporation Multithreaded processor incorporating a thread latch register for interrupt service new pending threads
US5913047A (en) * 1997-10-29 1999-06-15 Advanced Micro Devices, Inc. Pairing floating point exchange instruction with another floating point instruction to reduce dispatch latency
US6298431B1 (en) * 1997-12-31 2001-10-02 Intel Corporation Banked shadowed register file
US6205519B1 (en) * 1998-05-27 2001-03-20 Hewlett Packard Company Cache management for a multi-threaded processor
US6101599A (en) * 1998-06-29 2000-08-08 Cisco Technology, Inc. System for context switching between processing elements in a pipeline of processing elements
US6507862B1 (en) * 1999-05-11 2003-01-14 Sun Microsystems, Inc. Switching method in a multi-threaded processor
US6420903B1 (en) * 2000-08-14 2002-07-16 Sun Microsystems, Inc. High speed multiple-bit flip-flop

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108027777A (en) * 2015-09-25 2018-05-11 高通股份有限公司 Method and apparatus for realizing cache line data de-duplication via Data Matching

Also Published As

Publication number Publication date
US7185185B2 (en) 2007-02-27
WO2000068778A3 (en) 2001-08-09
US6801997B2 (en) 2004-10-05
US6542991B1 (en) 2003-04-01
US7587581B2 (en) 2009-09-08
US20020138717A1 (en) 2002-09-26
US20030191927A1 (en) 2003-10-09
WO2000068778A9 (en) 2002-04-04
US20070174597A1 (en) 2007-07-26
WO2000068778A2 (en) 2000-11-16

Similar Documents

Publication Publication Date Title
WO2000068778B1 (en) Multiple-thread processor with single-thread interface shared among threads
US10303620B2 (en) Maintaining processor resources during architectural events
EP0856797B1 (en) A cache system for concurrent processes
US6038647A (en) Cache memory device and method for providing concurrent independent multiple accesses to different subsets within the device
US8417913B2 (en) Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages
EP0797149B1 (en) Architecture and method for sharing tlb entries
CN103365627B (en) Data forwarding system in performance element and method
US7437514B2 (en) Cache system
US5390310A (en) Memory management unit having cross-domain control
WO1985000451A1 (en) Demand paging scheme for a multi-atb shared memory processing system
US6795937B2 (en) Multiple traps after faulty access to a resource
EP1204029A2 (en) Microprocessor and address translation method for microprocessor
CN106021131A (en) Memory management
JPH10293720A (en) Cache coherency mechanism in computer system, and method for changing coherency state of cache content about item held in main memory
Smith Cache memory design: An evolving art: Designers are looking to line size, degree of associativity, and virtual addresses as important parameters in speeding up the operation
US8688952B2 (en) Arithmetic processing unit and control method for evicting an entry from a TLB to another TLB
US8266379B2 (en) Multithreaded processor with multiple caches
EP0212129B1 (en) Method of updating information in a translation lookaside buffer
KR101102260B1 (en) A virtual address cache and method for sharing data using a unique task identifier
US20040221108A1 (en) Method and apparatus which implements a multi-ported LRU in a multiple-clock system
CN111338987A (en) Method for quickly invalidating set associative TLB
KR920005296B1 (en) Information processing device
Jacob et al. Memory Management Hardware, and its Support for Operating Systems
JPH03147039A (en) Address conversion device for data processing system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): IL JP KR SG

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: A3

Designated state(s): IL JP KR SG

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

AK Designated states

Kind code of ref document: B1

Designated state(s): IL JP KR SG

AL Designated countries for regional patents

Kind code of ref document: B1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

B Later publication of amended claims
AK Designated states

Kind code of ref document: C2

Designated state(s): IL JP KR SG

AL Designated countries for regional patents

Kind code of ref document: C2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

COP Corrected version of pamphlet

Free format text: PAGES 1/19-19/19, DRAWINGS, REPLACED BY NEW PAGES 1/21-21/21; DUE TO LATE TRANSMITTAL BY THE RECEIVING OFFICE

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP