Method and apparatus for transferring data in a computer system
First Claim
Patent Images
1. A method of manipulating data in a computer system, the method comprising:
- executing a load instruction;
requesting ownership of a bus;
transferring a first data value from a first memory location to a second memory location via the bus during a single bus transaction in response to executing the load instruction; and
requesting invalidation, during the single bus transaction, of a copy of the first data value stored in a third memory location, thereby allowing the first data value to be placed in an exclusive state in the second memory location without re-requesting ownership of the bus, if the load instruction indicates to do so.
4 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for transferring data from a first memory location to a second memory location in a computer system. A load instruction is executed, and, in response, data is transferred from a first memory location to a second memory location during a single bus transaction. During the same bus transaction, a request is made to invalidate a copy of the data that is stored in a third memory location if the load instruction indicates to do so.
77 Citations
20 Claims
-
1. A method of manipulating data in a computer system, the method comprising:
-
executing a load instruction;
requesting ownership of a bus;
transferring a first data value from a first memory location to a second memory location via the bus during a single bus transaction in response to executing the load instruction; and
requesting invalidation, during the single bus transaction, of a copy of the first data value stored in a third memory location, thereby allowing the first data value to be placed in an exclusive state in the second memory location without re-requesting ownership of the bus, if the load instruction indicates to do so. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
modifying the first data value to create a modified data value; and
storing the modified data value in the second memory location.
-
-
3. The method of claim 1, further comprising transferring a second data value from a fourth memory location that is in the same page as the first memory location to a fifth memory location in a shared state.
-
4. The method of claim 3, wherein the load instruction indicates to request the invalidation if the load instruction is an exclusive load instruction, and the load instruction indicates to transfer the second data value in a shared state if the load instruction is a shared load instruction.
-
5. The method of claim 1, wherein the load instruction indicates to request the invalidation if the load instruction is an exclusive load instruction.
-
6. The method of claim 1, wherein transferring the first data value includes transferring the first data value from a first cache to a second cache, the second cache being a local cache in a processor of the computer system.
-
7. The method of claim 1, wherein transferring the first data value includes transferring the first data value from a first cache to a second cache, the second cache being a first local cache in a first processor of a multi-processor computer system, and further comprising invalidating, in response to requesting invalidation, a copy of the first data value stored in a second local cache in a second processor of the multi-processor computer system.
-
8. The method of claim 3, wherein transferring the first data value includes transferring the first data value from a first cache to a second cache, the second cache being a first local cache in a first processor of a multi-processor computer system, transferring the second data value transfers the second data value from the first cache to the second cache, and further comprising invalidating, in response to requesting invalidation, a copy of the first data value stored in a second local cache in a second processor of the multi-processor computer system.
-
9. The method of claim 1, wherein transferring the first data value includes transferring the first data value from a first cache to a second cache, the second cache being a first local cache in a first processor of the computer system, and further comprising invalidating, in response to requesting invalidation, a copy of the first data value stored in a bus master of the computer system.
-
10. A method of manipulating data in a computer system that includes a first processor, the method comprising:
-
executing an exclusive load instruction that instructs the first processor to, during a single bus transaction, cause a first data value to be transferred from a shared memory location to a first local cache of the first processor in an exclusive state, thereby circumventing placing the first data value in a shared state in the first local cache; and
executing a store instruction that instructs the first processor to store a modified version of the first data value in the first local cache. - View Dependent Claims (11, 12, 13)
-
-
14. A processor having an instruction set associated therewith, the instruction set including a first load instruction that, when executed by the processor, causes the processor to:
-
request ownership of a bus;
transfer a first data value from a first memory location to a second memory location, via the bus, during a single bus transaction; and
request, during the single bus transaction, invalidation of a copy of the first data value stored in a third memory location, thereby allowing the first data value to be placed in an exclusive state in the second memory location without re-requesting ownership of the bus. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification