Processing

Please wait...

Settings

Settings

Goto Application

1. WO2002021268 - METHOD AND APPARATUS FOR USING AN ASSIST PROCESSOR TO PREFETCH INSTRUCTIONS FOR A PRIMARY PROCESSOR

Publication Number WO/2002/021268
Publication Date 14.03.2002
International Application No. PCT/US2001/041962
International Filing Date 30.08.2001
Chapter 2 Demand Filed 28.02.2002
IPC
G06F 9/38 2006.01
GPHYSICS
06COMPUTING; CALCULATING OR COUNTING
FELECTRIC DIGITAL DATA PROCESSING
9Arrangements for program control, e.g. control units
06using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
30Arrangements for executing machine instructions, e.g. instruction decode
38Concurrent instruction execution, e.g. pipeline, look ahead
CPC
G06F 9/3802
GPHYSICS
06COMPUTING; CALCULATING; COUNTING
FELECTRIC DIGITAL DATA PROCESSING
9Arrangements for program control, e.g. control units
06using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
30Arrangements for executing machine instructions, e.g. instruction decode
38Concurrent instruction execution, e.g. pipeline, look ahead
3802Instruction prefetching
G06F 9/3808
GPHYSICS
06COMPUTING; CALCULATING; COUNTING
FELECTRIC DIGITAL DATA PROCESSING
9Arrangements for program control, e.g. control units
06using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
30Arrangements for executing machine instructions, e.g. instruction decode
38Concurrent instruction execution, e.g. pipeline, look ahead
3802Instruction prefetching
3808for instruction reuse, e.g. trace cache, branch target cache
G06F 9/3879
GPHYSICS
06COMPUTING; CALCULATING; COUNTING
FELECTRIC DIGITAL DATA PROCESSING
9Arrangements for program control, e.g. control units
06using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
30Arrangements for executing machine instructions, e.g. instruction decode
38Concurrent instruction execution, e.g. pipeline, look ahead
3877using a slave processor, e.g. coprocessor
3879for non-native instruction execution, e.g. executing a command; for Java instruction set
Applicants
  • SUN MICROSYSTEMS, INC. [US]/[US]
Inventors
  • CHAUDHRY, Shailender
  • TREMBLAY, Marc
Agents
  • PARK, Richard
Priority Data
60/231,45208.09.2000US
Publication Language English (EN)
Filing Language English (EN)
Designated States
Title
(EN) METHOD AND APPARATUS FOR USING AN ASSIST PROCESSOR TO PREFETCH INSTRUCTIONS FOR A PRIMARY PROCESSOR
(FR) PROCEDE ET APPAREIL UTILISANT UN PROCESSEUR D'ASSISTANCE POUR EFFECTUER UNE LECTURE ANTICIPEE DES INSTRUCTIONS D'UN PROCESSEUR PRIMAIRE
Abstract
(EN)
One embodiment of the present invention provides a system that prefetches instructions by using an assist processor to perform prefetch operations in advance of a primary processor. The system operates by executing executable code on the primary processor, and simultaneously executing a reduced version of the executable code on the assist processor. This reduced version of the executable code executes more quickly than the executable code, and performs prefetch operations for the primary processor in advance of when the primary processor requires the instructions. The system also stores the prefetched instructions into a cache that is accessible by the primary processor so that the primary processor is able to access the prefetched instructions without having to retrieve the prefetched instructions from a main memory. In one embodiment of the present invention, prior to executing the executable code, the system compiles source code into executable code for the primary processor. Next, the system profiles the executable code to create instruction traces for frequently referenced portions of the executable code. The system then produces the reduced version of the executable code for the assist processor by producing prefetch instructions to prefetch portions of the instruction traces into a cache that is accessible by the primary processor. The system also inserts communication instructions into the executable code for the primary processor and into the reduced version of the executable code for the assist processor to transfer progress information from the primary processor to the assist processor. This progress information triggers the assist processor to perform the prefetch operations.
(FR)
Dans un mode de réalisation, cette invention se rapporte à un système qui effectue la prélecture d'instructions en utilisant un processeur d'assistance pour réaliser les opérations de prélecture en anticipation d'un processeur primaire. Ce système fonctionne en exécutant un code exécutable sur le processeur primaire et en exécutant, simultanément, une version réduite de ce code exécutable sur le processeur d'assistance. Cette version réduite du code exécutable s'exécute plus rapidement que le code exécutable et réalise les opérations de prélecture pour le processeur primaire en anticipation du moment où le processeur primaire demande ces instructions. Ce système stocke également ces instructions ayant fait l'objet d'une prélecture dans une mémoire cache qui est accessible par le processeur primaire, pour que celui-ci puisse accéder aux instructions ayant fait l'objet d'une prélecture, sans avoir à extraire ces instructions d'une mémoire principale. Dans un autre mode de réalisation, avant d'exécuter le code exécutable, le système compile un code source en code exécutable pour le processeur primaire. Le système profile ensuite ce code exécutable pour créer des traces d'instructions pour les parties fréquemment référencées du code exécutable. Ce système produit ensuite la version réduite du code exécutable pour le processeur d'assistance en produisant des instructions de prélecture pour permettre la prélecture des parties de ces traces d'instructions dans une mémoire cache qui est accessible par le processeur primaire. Ce système insère également des instructions de communication dans le code exécutable pour le processeur primaire et dans la version réduite de ce code exécutable pour le processeur d'assistance, afin de transférer des informations de progression du processeur primaire vers le processeur d'assistance. Ces informations de progression déclenchent le processeur d'assistance pour la réalisation des opérations de prélecture.
Latest bibliographic data on file with the International Bureau