Demand-based larx-reserve protocol for SMP system buses
First Claim
1. A method of accessing a value from a memory device for use in a processing unit of a multi-processor computer system, the processing unit having at least first and second caches wherein contents of the first cache are included in the second cache, comprising the steps of:
- loading the value from the memory device into all of said caches;
marking the first cache which receives the value as reserved;
when the value is to be cast out of the first cache, sending a reserve bus operation from the first cache to the second cache; and
casting out the value from the first cache after said sending of the reserve bus operation to the second cache.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of handling load-and-reserve instructions in a multi-processor computer system wherein the processing units have multi-level caches. Symmetric multi-processor (SMP) computers use cache coherency to ensure the same values for a given memory address are provided to all processors in the system. Load-and-reserve instructions used, for example, in quick read-and-write operations, can become unnecessarily complicated. The present invention provides a method of accessing values in the computer'"'"'s memory by loading the value from the memory device into all of said caches, and sending a reserve bus operation from a higher-level cache to the next lower-level cache only when the value is to be cast out of the higher cache, and thereafter casting out the value from the higher cache after sending the reserve bus operation. This procedure is preferably used for all caches in a multi-level cache architecture, i.e., when the value is to be cast out of any given cache, a reserve bus operation is sent from the given cache to the next lower-level cache (i.e., the adjacent cache which lies closer to the bus), but the reserve bus operation is not sent to all lower caches. Any attempt by any other processing unit in the computer system to write to an address of the memory device which is associated with the value will then be forwarded to all higher-level caches. The marking of the block as reserved is removed in response to any such attempt to write to the address.
121 Citations
20 Claims
-
1. A method of accessing a value from a memory device for use in a processing unit of a multi-processor computer system, the processing unit having at least first and second caches wherein contents of the first cache are included in the second cache, comprising the steps of:
-
loading the value from the memory device into all of said caches; marking the first cache which receives the value as reserved; when the value is to be cast out of the first cache, sending a reserve bus operation from the first cache to the second cache; and casting out the value from the first cache after said sending of the reserve bus operation to the second cache. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A processing unit for a computer system, comprising:
-
a processor; and a plurality of caches for providing values to said processor, said caches being arranged in levels and adapted to send a reserve bus operation from a higher-level cache to a next lower-level cache which contains the contents of the higher-level cache, prior to casting out a reserved block from said higher-level cache. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A multi-processor computer system comprising:
-
a memory device; a bus connected to said memory device; and a plurality of processing units each connected to said bus, at least one of said processing units having a plurality of caches arranged in levels, said caches adapted to send a reserve bus operation from a higher-level cache to a next lower-level cache which contains the contents of the higher-level cache, prior to casting out a reserved block from said higher-level cache. - View Dependent Claims (17, 18, 19, 20)
-
Specification