Electrical computers and digital processing systems: memory – Storage accessing and control – Hierarchical memories
Reexamination Certificate
1998-12-03
2001-04-03
Robertson, David L. (Department: 2759)
Electrical computers and digital processing systems: memory
Storage accessing and control
Hierarchical memories
C711S003000, C711S123000, C711S120000
Reexamination Certificate
active
06212604
ABSTRACT:
FIELD OF THE INVENTION
The present invention relates generally to microprocessors and, more particularly, to a shared instruction cache for multiple processors.
BACKGROUND OF THE INVENTION
A microprocessor typically includes a cache memory for storing copies of recently accessed information. The cache memory is generally smaller but faster than main memory (e.g., disk). In particular, a microprocessor typically includes an instruction cache for storing recently accessed (i.e., recently used) instructions. The instruction cache is generally located on the same integrated circuit chip (or die) as the core logic of the microprocessor.
FIG. 1
is a block diagram of a prior art instruction cache subsystem of a multi-processor system
100
. In particular, multi-processor system
100
includes two processors, a P1 processor
102
and a P2 processor
104
. P1 processor
102
and P2 processor
104
each access a main memory
106
via a bus
108
. P1 processor
102
caches recently used instructions in an instruction cache
110
. P2 processor
104
caches recently used instructions in an instruction cache
112
. P1 processor
102
and instruction cache
110
reside on die (chip)
114
. P2 processor
104
and instruction cache
112
reside on die
116
. Accordingly, prior art system
100
represents an SMP (Symmetric Multi-Processing) system that shares memory, main memory
106
. Further, instruction cache
110
and instruction cache
112
typically each include two ports, a port for connecting to P1 processor
102
and P2 processor
104
, respectively, and a port for connecting to main memory
106
. The ports can be physical ports or logical ports.
SUMMARY OF THE INVENTION
The present invention provides a shared instruction cache for multiple processors. For example, the present invention provides a cost-effective and high performance instruction cache subsystem in a microprocessor that includes multiple processors (i.e., CPUs (Central Processing Units)).
In one embodiment, an apparatus for a microprocessor includes an instruction cache that is shared by a first processor and a second processor, a first register index base for the first processor, and a first memory address base for the first processor. The apparatus also includes a second register index base for the second processor, and a second memory address base for the second processor. On each processor, a register access is offset using the register index base (e.g., a register address specifier is concatenated with the register index base). Similarly, on each processor, a memory access is offset using the memory address base (e.g., a memory address specifier is concatenated with the memory address base). This embodiment provides a shared instruction cache for multiple processors that provides a hardware implemented segmentation of register files and main memory based on which processor is executing a particular instruction (e.g., an instruction that involves a register access or a memory access). For example, this embodiment allows a thread of a multi-threaded computer program that is executed by the first processor and the same thread that is executed by the second processor to generate register files that can later be combined, because the register index base can be set such that the execution of the same thread on the first processor and the second processor do not overlap in their register address specifiers' usage of registers. Similarly, the same thread can be executed on the first processor and on the second processor and by setting different values in the memory address base, the data written into the main memory can be insured to not overlap such that the results of the execution of the same thread on the first processor and the second processor can subsequently be compared or combined.
Other aspects and advantages of the present invention will become apparent from the following detailed description and accompanying drawings.
REFERENCES:
patent: 5692207 (1997-11-01), Ho-Lung et al.
patent: 5784630 (1998-07-01), Saito et al.
patent: 5958038 (1999-09-01), Agrawal et al.
patent: 0 588 341 A2 (1994-03-01), None
patent: 0 911 725 AR (1999-04-01), None
IBM Technical Disclosure Bulletin, Shared Instruction and/or Data Caches in a Multiprocessing System, vol. 27, No. 12, May 1985, pp. 6845-6846.
Robertson David L.
Skjerven Morrill & MacPherson LLP
Sun Microsystems Inc.
Terrile Stephen A.
LandOfFree
Shared instruction cache for multiple processors does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Shared instruction cache for multiple processors, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Shared instruction cache for multiple processors will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2534401