
US Patent No: 7,237,093
Number of patents in Portfolio can not be more than 2000
Instruction fetching system in a multithreaded processor utilizing cache miss predictions to fetch instructions from multiple hardware streams
Stats
-
Jun 26, 2007
Issued date -
Jun 16, 2000
filing date -
09/595,776
serial no -
In Force
status
Importance
Abstract
In a multi-streaming processor having a memory cache, a system for fetching instructions from individual ones of multiple streams to an instruction pipeline is provided, comprising a fetch algorithm for selecting from which stream to fetch an instruction, and a hit/miss predictor for forecasting whether a load instruction will hit or miss the cache. The prediction by the hit-miss predictor is used by the fetch algorithm in determining from which stream to fetch. A hit prediction results in a next instruction being fetched from the same stream as the instruction tested by the hit/miss predictor, while a miss prediction results in the next instruction being fetched from a different stream, if any. The predictor is also used to determine which instructions to dispatch to functional units.
First Claim
Related Publications
International Classification(s)
- [Classification Symbol]
- [Patents Count]
Cited Art
| Patent Info | (Count) | # Cites | Year |
|---|---|---|---|
|
|
|||
| 4,200,927 Multi-instruction stream branch processing mechanism | 198 | 1978 | |
| 5,812,811 Executing speculative parallel instructions threads with forking and inter-thread communication | 133 | 1995 | |
| 5,784,613 Exception support mechanism for a threads-based operating system | 29 | 1995 | |
| 5,867,725 Concurrent multitasking in a uniprocessor | 43 | 1996 | |
| 5,913,054 Method and system for processing a multiple-register instruction that permit multiple data words to be written in a single processor cycle | 18 | 1996 | |
| 6,052,708 Performance monitoring of thread switch events in a multithreaded processor | 90 | 1997 | |
| 6,061,710 Multithreaded processor incorporating a thread latch register for interrupt service new pending threads | 100 | 1997 | |
| 6,018,759 Thread switch tuning tool for optimal performance in a computer processor | 68 | 1997 | |
| 6,119,203 Mechanism for sharing data cache resources between data prefetch operations and normal load/store operations in a data processing system | 42 | 1998 | |
| 6,493,749 System and method for an administration server | 34 | 1998 | |
| 6,442,675 Compressed string and multiple generation engine | 13 | 1999 | |
| 6,487,571 Method and system for generating actual random numbers within a multiprocessor system | 14 | 1999 | |
|
|
|||
| 5,361,337 Method and apparatus for rapidly switching processes in a computer system | 89 | 1992 | |
| 5,701,432 Multi-threaded processing system having a cache that is commonly accessible to each thread | 55 | 1995 | |
| 5,933,627 Thread switch on blocked load or store using instruction thread field | 166 | 1996 | |
| 6,260,077 Method, apparatus and program product for interfacing a multi-threaded, client-based API to a single-threaded, server-based API | 55 | 1997 | |
| 5,987,492 Method and apparatus for processor sharing | 34 | 1997 | |
| 6,115,802 Efficient hash table for use in multi-threaded environments | 73 | 1998 | |
|
|
|||
| 5,604,877 Method and apparatus for resolving return from subroutine instructions in a computer processor | 82 | 1994 | |
| 5,852,726 Method and apparatus for executing two types of instructions that specify registers of a shared logical register file in a stack and a non-stack referenced manner | 93 | 1995 | |
| 5,860,017 Processor and method for speculatively executing instructions from multiple instruction streams indicated by a branch instruction | 110 | 1996 | |
| 6,016,542 Detecting long latency pipeline stalls for thread switching | 63 | 1997 | |
| 6,535,905 Method and apparatus for thread switching within a multithreaded processor | 82 | 1999 | |
|
|
|||
| 5,321,823 Digital processor with bit mask for counting registers for fast register saves | 16 | 1990 | |
| 5,758,142 Trainable apparatus for predicting instruction outcomes in pipelined processors | 93 | 1994 | |
| 5,649,144 Apparatus, systems and methods for improving data cache hit rates | 34 | 1996 | |
|
|
|||
| 5,461,722 Parallel processing apparatus suitable for executing in parallel a plurality of instructions including at least two branch instructions | 28 | 1992 | |
| 5,572,704 System and method for controlling split-level caches in a multi-processor system including data loss and deadlock prevention schemes | 47 | 1993 | |
| 5,632,025 Method for preventing multi-level cache system deadlock in a multi-processor system | 42 | 1996 | |
|
|
|||
| 5,309,173 Frame buffer, systems and methods | 17 | 1991 | |
| 5,913,049 Multi-stream complex instruction set microprocessor | 73 | 1997 | |
| 6,029,228 Data prefetching of a load target buffer for post-branch instructions based on past prediction accuracy's of branch predictions | 46 | 1997 | |
|
|
|||
| 6,789,100 Interstream control and communications for multi-streaming digital processors | 25 | 2002 | |
| 2005/0081,214 Interstream control and communications for multi-streaming digital processors | 11 | 2004 | |
|
|
|||
| 6,076,157 Method and apparatus to force a thread switch in a multithreaded processor | 145 | 1997 | |
| 6,212,544 Altering thread priorities in a multithreaded processor | 200 | 1997 | |
|
|
|||
| 5,546,593 Multistream instruction processor able to reduce interlocks by having a wait state for an instruction stream | 87 | 1993 | |
| 6,105,127 Multithreaded processor for processing multiple instruction streams independently of each other by flexibly controlling throughput in each instruction stream | 99 | 1997 | |
|
|
|||
| 5,511,210 Vector processing device using address data and mask information to generate signal that indicates which addresses are to be accessed from the main memory | 24 | 1993 | |
| 5,713,038 Microprocessor having register file | 22 | 1995 | |
|
|
|||
| 5,946,711 System for locking data in a shared cache | 76 | 1997 | |
| 6,356,996 Cache fencing for interpretive environments | 33 | 1998 | |
|
|
|||
| 5,815,733 System for handling interrupts in a computer system using asic reset input line coupled to set of status circuits for presetting values in the status circuits | 23 | 1996 | |
|
|
|||
| 5,694,572 Controllably operable method and apparatus for predicting addresses of future operand requests by examination of addresses of prior cache misses | 15 | 1992 | |
|
|
|||
| 5,745,778 Apparatus and method for improved CPU affinity in a multiprocessor system | 193 | 1994 | |
|
|
|||
| 6,430,593 Method, device and article of manufacture for efficient task scheduling in a multi-tasking preemptive priority-based real-time operating system | 59 | 1998 | |
|
|
|||
| 4,335,431 Skid control method | 28 | 1980 | |
|
|
|||
| 6,308,261 Computer system having an instruction for probing memory latency | 27 | 1998 | |
|
|
|||
| 5,561,776 Processor architecture supporting multiple speculative branching | 120 | 1995 | |
|
|
|||
| 5,542,088 Method and apparatus for enabling control of task execution | 125 | 1994 | |
|
|
|||
| 6,192,384 System and method for performing compound vector operations | 46 | 1998 | |
|
|
|||
| 5,748,468 Prioritized co-processor resource manager and method | 165 | 1995 | |
|
|
|||
| 5,600,837 Multitask processor architecture having a plurality of instruction pointers | 31 | 1994 | |
|
|
|||
| 5,535,365 Method and apparatus for locking shared memory locations in multiprocessing systems | 46 | 1993 | |
|
|
|||
| 5,142,676 Separate content addressable memories for storing locked segment addresses and locking processor identifications for controlling access to shared memory | 70 | 1988 | |
|
|
|||
| 4,197,579 Multi-processor for simultaneously executing a plurality of programs in a time-interlaced manner | 40 | 1978 | |
Patent Citation Ranking
Maintenance Fees
| Fee | Large entity fee | small entity fee | micro entity fee | due date |
|---|---|---|---|---|
| 7.5 Year Payment | $3600.00 | $1800.00 | $900.00 | Dec 26, 2014 |
| 11.5 Year Payment | $7400.00 | $3700.00 | $1850.00 | Dec 26, 2018 |
| Fee | Large entity fee | small entity fee | micro entity fee |
|---|---|---|---|
| Surcharge - 7.5 year - Late payment within 6 months | $160.00 | $80.00 | $40.00 |
| Surcharge - 11.5 year - Late payment within 6 months | $160.00 | $80.00 | $40.00 |
| Surcharge after expiration - Late payment is unavoidable | $700.00 | $350.00 | $175.00 |
| Surcharge after expiration - Late payment is unintentional | $1,640.00 | $820.00 | $410.00 |