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

ATTORNEY / AGENT: (SPONSORED)

Importance

Loading Importance Indicators... loading....

Abstract

See full text

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.

Loading the Abstract Image... loading....

First Claim

See full text

all claims..

Related Publications

Loading Related Publications... loading....

Patent Owner(s)

Patent OwnerAddressTotal Patents
ARM FINANCE OVERSEAS LIMITEDCAMBRIDGE, GB256

International Classification(s)

  • [Classification Symbol]
  • [Patents Count]

Inventor(s)

Inventor Name Address # of filed Patents Total Citations
Musoll, Enric San Jose, CA 13 138
Nemirovsky, Mario Saratoga, CA 62 617

Cited Art Landscape

Patent Info (Count) # Cites Year
 
INTERNATIONAL BUSINESS MACHINES CORPORATION (12)
4,200,927 Multi-instruction stream branch processing mechanism 200 1978
5,812,811 Executing speculative parallel instructions threads with forking and inter-thread communication 139 1995
5,784,613 Exception support mechanism for a threads-based operating system 31 1995
5,867,725 Concurrent multitasking in a uniprocessor 45 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 19 1996
6,052,708 Performance monitoring of thread switch events in a multithreaded processor 100 1997
6,061,710 Multithreaded processor incorporating a thread latch register for interrupt service new pending threads 107 1997
6,018,759 Thread switch tuning tool for optimal performance in a computer processor 80 1997
6,119,203 Mechanism for sharing data cache resources between data prefetch operations and normal load/store operations in a data processing system 46 1998
6,493,749 System and method for an administration server 38 1998
6,442,675 Compressed string and multiple generation engine 15 1999
6,487,571 Method and system for generating actual random numbers within a multiprocessor system 15 1999
 
SUN MICROSYSTEMS, INC. (6)
5,361,337 Method and apparatus for rapidly switching processes in a computer system 92 1992
5,701,432 Multi-threaded processing system having a cache that is commonly accessible to each thread 61 1995
5,933,627 Thread switch on blocked load or store using instruction thread field 182 1996
6,260,077 Method, apparatus and program product for interfacing a multi-threaded, client-based API to a single-threaded, server-based API 58 1997
5,987,492 Method and apparatus for processor sharing 39 1997
6,115,802 Efficient hash table for use in multi-threaded environments 92 1998
 
INTEL CORPORATION (5)
5,604,877 Method and apparatus for resolving return from subroutine instructions in a computer processor 84 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 107 1995
5,860,017 Processor and method for speculatively executing instructions from multiple instruction streams indicated by a branch instruction 111 1996
6,016,542 Detecting long latency pipeline stalls for thread switching 67 1997
6,535,905 Method and apparatus for thread switching within a multithreaded processor 89 1999
 
HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. (3)
5,321,823 Digital processor with bit mask for counting registers for fast register saves 17 1990
5,758,142 Trainable apparatus for predicting instruction outcomes in pipelined processors 96 1994
5,649,144 Apparatus, systems and methods for improving data cache hit rates 37 1996
 
KABUSHIKI KAISHA TOSHIBA (3)
5,461,722 Parallel processing apparatus suitable for executing in parallel a plurality of instructions including at least two branch instructions 29 1992
5,572,704 System and method for controlling split-level caches in a multi-processor system including data loss and deadlock prevention schemes 49 1993
5,632,025 Method for preventing multi-level cache system deadlock in a multi-processor system 43 1996
 
TEXAS INSTRUMENTS INCORPORATED (3)
5,309,173 Frame buffer, systems and methods 18 1991
5,913,049 Multi-stream complex instruction set microprocessor 75 1997
6,029,228 Data prefetching of a load target buffer for post-branch instructions based on past prediction accuracy's of branch predictions 53 1997
 
ARM FINANCE OVERSEAS LIMITED (2)
6,789,100 Interstream control and communications for multi-streaming digital processors 33 2002
2005/0081,214 Interstream control and communications for multi-streaming digital processors 16 2004
 
GOOGLE INC. (2)
6,076,157 Method and apparatus to force a thread switch in a multithreaded processor 170 1997
6,212,544 Altering thread priorities in a multithreaded processor 237 1997
 
MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD. (2)
5,546,593 Multistream instruction processor able to reduce interlocks by having a wait state for an instruction stream 92 1993
6,105,127 Multithreaded processor for processing multiple instruction streams independently of each other by flexibly controlling throughput in each instruction stream 108 1997
 
NEC CORPORATION (2)
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 26 1993
5,713,038 Microprocessor having register file 23 1995
 
ORACLE INTERNATIONAL CORPORATION (2)
5,946,711 System for locking data in a shared cache 87 1997
6,356,996 Cache fencing for interpretive environments 34 1998
 
APPLE COMPUTER, INC. (1)
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 24 1996
 
Bull HN Information Systems Inc. (1)
5,694,572 Controllably operable method and apparatus for predicting addresses of future operand requests by examination of addresses of prior cache misses 16 1992
 
Data General Corporation (1)
5,745,778 Apparatus and method for improved CPU affinity in a multiprocessor system 239 1994
 
FREESCALE SEMICONDUCTOR, INC. (1)
6,430,593 Method, device and article of manufacture for efficient task scheduling in a multi-tasking preemptive priority-based real-time operating system 64 1998
 
HITACHI, LTD. (1)
4,335,431 Skid control method 28 1980
 
HTC CORPORATION (1)
6,308,261 Computer system having an instruction for probing memory latency 28 1998
 
HYUNDAI ELECTRONICS AMERICA (1)
5,561,776 Processor architecture supporting multiple speculative branching 122 1995
 
INTERGRAPH HARDWARE TECHNOLOGIES COMPANY (1)
5,542,088 Method and apparatus for enabling control of task execution 138 1994
 
MASSACHUSETTS INSTITUTE OF TECHNOLOGY (1)
6,192,384 System and method for performing compound vector operations 49 1998
 
MICROSOFT CORPORATION (1)
5,748,468 Prioritized co-processor resource manager and method 214 1995
 
SGS-Thomson Microelectronics S.A. (1)
5,600,837 Multitask processor architecture having a plurality of instruction pointers 33 1994
 
SILICON GRAPHICS INTERNATIONAL, CORP. (1)
5,535,365 Method and apparatus for locking shared memory locations in multiprocessing systems 48 1993
 
VERIZON LABORATORIES INC. (1)
5,142,676 Separate content addressable memories for storing locked segment addresses and locking processor identifications for controlling access to shared memory 73 1988
 
Xebec Systems Incorporated (1)
4,197,579 Multi-processor for simultaneously executing a plurality of programs in a time-interlaced manner 41 1978

Patent Citation Ranking

Forward Cite Landscape

Patent Info (Count) # Cites Year
 
ARM FINANCE OVERSEAS LIMITED (5)
7,707,391 Methods and apparatus for improving fetching and dispatch of instructions in multithreaded processors 1 2006
7,650,605 Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors 2 2007
7,900,207 Interrupt and exception handling for multi-streaming digital processors 1 2008
7,926,062 Interrupt and exception handling for multi-streaming digital processors 1 2009
8,468,540 Interrupt and exception handling for multi-streaming digital processors 0 2011
 
ADVANCED MICRO DEVICES, INC. (1)
7,861,066 Mechanism for predicting and suppressing instruction replay in a processor 0 2007
 
BROADCOM CORPORATION (1)
8,726,292 System and method for communication in a multithread processor 0 2005
 
CISCO TECHNOLOGY, INC. (1)
8,635,305 Mechanisms for providing differentiated services within a web cache 0 2001
 
INTERNATIONAL BUSINESS MACHINES CORPORATION (1)
8,285,973 Thread completion rate controlled scheduling 0 2008

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