Low latency lock for multiprocessor computer system
First Claim
1. A method of controlling access to a shared memory of a multiprocessor system, the multiprocessor system comprising a first bus and a second bus coupled to the shared memory, the first bus coupled to a first processor, and the second bus coupled to a second processor, the method comprising the steps of:
- requesting exclusive access to a first memory location of the shared memory by the first processor;
granting exclusive access to the first memory location of the shared memory to the first processor;
allowing access to a second memory location of the shared memory to the second processor while the first processor has exclusive access to the first memory location; and
storing access request information associated with the exclusive access in a first register in a first memory controller and in a second register in a second memory controller, the step of requesting exclusive access comprising the steps of;
asserting a lock signal on the first bus;
sending a lock request from the first processor to the first memory controller coupled to the first bus, the second bus, and the shared memory;
forwarding the lock request from the first memory controller to a switch; and
signaling the first processor to retry the lock request, the step of granting exclusive access comprising the steps of;
signaling the first memory controller by the switch to retry the lock request;
assigning exclusive access to the first memory location by the switch;
notifying the first memory controller of the exclusive access assigned in the assigning step; and
granting exclusive access to the first memory location by the first memory controller responsive to a retry of the lock request by the first processor, the step of assigning exclusive access to the first memory location by the switch comprising the steps of;
determining if the first memory location is currently assigned;
saving the access request information in a register in the switch if the first memory location is not currently assigned;
sending the access request information to the first memory controller; and
sending the access request information to the second memory controller.
3 Assignments
0 Petitions
Accused Products
Abstract
A multinodal multiprocessor computer system and method is provided in which a first processor can acquire exclusive access to a first memory location in a shared memory, and at the same time a second processor can access to a second memory location of the shared memory that is located in the same node or in any other node of the computer system. Memory controllers in each node of the computer system control access to the shared memory. A switch coupled to each of the memory controllers maintains a lock register, which is shadowed by each of the memory controllers, for controlling access to the first memory location.
-
Citations
37 Claims
-
1. A method of controlling access to a shared memory of a multiprocessor system, the multiprocessor system comprising a first bus and a second bus coupled to the shared memory, the first bus coupled to a first processor, and the second bus coupled to a second processor, the method comprising the steps of:
-
requesting exclusive access to a first memory location of the shared memory by the first processor;
granting exclusive access to the first memory location of the shared memory to the first processor;
allowing access to a second memory location of the shared memory to the second processor while the first processor has exclusive access to the first memory location; and
storing access request information associated with the exclusive access in a first register in a first memory controller and in a second register in a second memory controller, the step of requesting exclusive access comprising the steps of;
asserting a lock signal on the first bus;
sending a lock request from the first processor to the first memory controller coupled to the first bus, the second bus, and the shared memory;
forwarding the lock request from the first memory controller to a switch; and
signaling the first processor to retry the lock request, the step of granting exclusive access comprising the steps of;
signaling the first memory controller by the switch to retry the lock request;
assigning exclusive access to the first memory location by the switch;
notifying the first memory controller of the exclusive access assigned in the assigning step; and
granting exclusive access to the first memory location by the first memory controller responsive to a retry of the lock request by the first processor, the step of assigning exclusive access to the first memory location by the switch comprising the steps of;
determining if the first memory location is currently assigned;
saving the access request information in a register in the switch if the first memory location is not currently assigned;
sending the access request information to the first memory controller; and
sending the access request information to the second memory controller. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of controlling access to memory of a multinodal computer system, the multinodal computer system comprising a plurality of multiprocessor nodes, the method comprising the steps of:
-
requesting exclusive access to a first memory location of a shared memory in a first multiprocessor node of the plurality of multiprocessor nodes by a first processor of the first multiprocessor node;
grunting exclusive access to the first memory location of the shared memory to the first processor;
allowing access to a second memory location of the shared memory to a second processor of a second multiprocessor node of the plurality of multiprocessor nodes while the first processor has exclusive access to the first memory location;
communicating between the multiprocessor nodes through a switch; and
sending, by the switch, access request information associated with the exclusive access of the shared memory of the first multiprocessor node to the second multiprocessor node. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A computer system for utilizing a shared memory, the computer system comprising:
-
a first multiprocessor node, comprising;
a first processor bus;
a first processor, coupled to the first processor bus, the first processor comprising;
circuitry to generate an exclusive access request for a first memory location, a second processor bus;
a second processor, coupled to the second processor bus, the second processor adapted to;
request access to a second memory location;
a first memory;
a first memory controller, coupled to the first processor bus, the second processor bus, and the first memory, the first memory controller adapted to;
allow exclusive access to the first memory location by the first processor;
allow access to the second memory location by the second processor while the first processor has exclusive access to the first memory location;
a second multiprocessor node, comprising;
a third processor bus;
a third processor, coupled to the third processor bus, the third processor adapted to;
request access to a third memory location;
a second memory;
a second memory controller, coupled to the third processor bus, and the first memory, the second memory controller adapted to;
allow exclusive access to the first memory location by the first processor;
allow access to the second memory location by the second processor while the first processor has exclusive access to the first memory location; and
allow access to the third memory location by the third processor while the first processor has exclusive access to the first memory location; and
a switch, coupled to the first memory controller and the second memory controller, for switching transactions between the first multiprocessor node and the second multiprocessor node. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. A method of controlling access to a shared memory of a multiprocessor system, the multiprocessor system comprising a first bus and a second bus coupled to the shared memory, the first bus coupled to a first processor, and the second bus coupled to a second processor, the method comprising the steps of:
-
requesting exclusive access to a first memory location of the shared memory by the first processor;
granting exclusive access to the first memory location of the shared memory to the first processor;
allowing access to a second memory location of the shared memory to the second processor while the first processor has exclusive access to the first memory location;
wherein requesting exclusive access comprises;
sending a lock request from the first processor to a first memory controller coupled to the shared memory;
forwarding the lock request from the memory controller to a switch; and
the switch broadcasting lock request information to the first memory controller and at least another memory controller. - View Dependent Claims (34, 35)
-
-
36. A multiprocessor system comprising:
-
a plurality of multiprocessor nodes, each of the multiprocessor nodes comprising;
a shared memory;
a processor to request exclusive access of a memory location in the shared memory;
a memory controller to forward access request information associated with the exclusive access from the multiprocessor node for storage of the access request information in another multiprocessor node, the memory controller including a register; and
a switch coupled to the multiprocessor nodes, the switch to receive the access request information and to send the access request information to the multiprocessor nodes for storage of the access request information in the respective registers of the memory controllers. - View Dependent Claims (37)
-
Specification