Method and apparatus for synchronization of shared memory in a multiprocessor system
First Claim
Patent Images
1. An apparatus for synchronizing access to a memory shared among a plurality of processors, each of the plurality of processors having a primary bus for communicating with the memory and a secondary bus, the apparatus comprising:
- a synchronization block coupled to the secondary bus of each of the plurality of processors, at least a portion of the plurality of processors not capable of supporting a read-modify-write single instruction to the memory, the synchronization block having at least one semaphore for controlling access among the plurality of processors to at least one data segment stored within the memory;
the at least one semaphore being configured to control access among the plurality of processors to the at least one data segment stored within the memory;
the plurality of processors coupled between the synchronization block and the memory;
wherein access to and from the at least one semaphore by the plurality of processors is via the secondary bus and access to and from the memory by the plurality of processors is via the primary bus, the synchronization block, the plurality of processors, and the memory being coupled in series wherein traffic for the secondary bus does not contribute to traffic on the primary bus;
wherein the at least one semaphore comprises a plurality of registers, each of the plurality of registers having a set terminal, a clear terminal and an output terminal and an arbitration circuit coupled to the set terminal and the output terminal of each of the plurality of registers;
wherein the synchronization block further comprises a plurality of controllers, each of the plurality of controllers respectively coupled to the secondary bus, the clear terminal and the arbitration circuit; and
wherein each of the plurality of controllers comprises a decoder to provide read requests to the arbitration circuit and write requests to the clear terminal of a respective one of the plurality of registers in response to instructions from a respective one of the plurality of processors.
1 Assignment
0 Petitions
Accused Products
Abstract
Method and apparatus for synchronizing access to a memory shared among a plurality of processors is described. In one example, each of the plurality of processors includes a primary bus for communicating with the memory and a secondary bus. A synchronization block is coupled to the secondary bus of each of the plurality of processors. The synchronization block includes at least one semaphore for controlling access among the plurality of processors to at least one data segment stored within the memory.
42 Citations
27 Claims
-
1. An apparatus for synchronizing access to a memory shared among a plurality of processors, each of the plurality of processors having a primary bus for communicating with the memory and a secondary bus, the apparatus comprising:
-
a synchronization block coupled to the secondary bus of each of the plurality of processors, at least a portion of the plurality of processors not capable of supporting a read-modify-write single instruction to the memory, the synchronization block having at least one semaphore for controlling access among the plurality of processors to at least one data segment stored within the memory; the at least one semaphore being configured to control access among the plurality of processors to the at least one data segment stored within the memory;
the plurality of processors coupled between the synchronization block and the memory;wherein access to and from the at least one semaphore by the plurality of processors is via the secondary bus and access to and from the memory by the plurality of processors is via the primary bus, the synchronization block, the plurality of processors, and the memory being coupled in series wherein traffic for the secondary bus does not contribute to traffic on the primary bus; wherein the at least one semaphore comprises a plurality of registers, each of the plurality of registers having a set terminal, a clear terminal and an output terminal and an arbitration circuit coupled to the set terminal and the output terminal of each of the plurality of registers; wherein the synchronization block further comprises a plurality of controllers, each of the plurality of controllers respectively coupled to the secondary bus, the clear terminal and the arbitration circuit; and wherein each of the plurality of controllers comprises a decoder to provide read requests to the arbitration circuit and write requests to the clear terminal of a respective one of the plurality of registers in response to instructions from a respective one of the plurality of processors. - View Dependent Claims (2, 3, 4)
-
-
5. A data processing system, comprising:
-
a plurality of processors, each of the plurality of processors including a primary bus and a secondary bus, at least a portion of the plurality of processors not capable of supporting a read-modify-write single instruction to memory; the memory coupled to the primary bus of each of the plurality of processors; a synchronization block coupled to the secondary bus of each of the plurality of processors, the synchronization block having at least one semaphore for controlling access among the plurality of processors to the memory; and the plurality of processors coupled between the synchronization block and the memory; wherein access to and from the at least one semaphore by the plurality of processors is via the secondary bus and access to and from the memory by the plurality of processors is via the primary bus, the synchronization block, the plurality of processors, and the memory being coupled in series wherein traffic for the secondary bus does not contribute to traffic on the primary bus; wherein the at least one semaphore comprises a plurality of registers, each of the plurality of registers having a set terminal, a clear terminal and an output terminal and an arbitration circuit coupled to the set terminal and the output terminal of each of the plurality of registers; wherein the synchronization block further comprises a plurality of controllers, each of the plurality of controllers respectively coupled to the secondary bus, the clear terminal and the arbitration circuit; and wherein each of the plurality of controllers comprises a decoder to provide read requests to the arbitration circuit and write requests to the clear terminal of a respective one of the plurality of registers in response to instructions from a respective one of the plurality of processors. - View Dependent Claims (6, 7, 8, 9, 10, 11)
-
-
12. A method of synchronizing access to a memory shared among a plurality of processors, each of the plurality of processors having a primary bus for communicating with the memory and a secondary bus, the method comprising:
-
providing at least one semaphore; providing access to the at least one semaphore via the secondary bus of each of the plurality of processors; determining a state of the at least one semaphore; controlling access among the plurality of processors to at least one data segment stored within the memory in response to the state of the at least one semaphore, at least a portion of the plurality of processors not capable of supporting a read-modify-write single instruction to the memory; the at least one semaphore being configured to control access among the plurality of processors to the at least one data segment stored within the memory; and the plurality of processors coupled between a synchronization block in which the at least one semaphore is located and the memory; wherein access to and from the at least one semaphore by the plurality of processors is via the secondary bus and access to and from the memory by the plurality of processors is via the primary bus, the synchronization block, the plurality of processors, and the memory being coupled in series wherein traffic for the secondary bus does not contribute to traffic on the primary bus; wherein the at least one semaphore comprises a plurality of registers, each of the plurality of registers having a set terminal, a clear terminal and an output terminal and an arbitration circuit coupled to the set terminal and the output terminal of each of the plurality of registers; wherein controlling access comprises allowing one of the plurality of processors to access the at least one data segment if the state of the at least one semaphore is a first value and blocking access by others of the plurality of processors to the at least one data segment if the state of the at least one semaphore is a second value wherein the synchronization block further comprises a plurality of controllers, each of the plurality of controllers respectively coupled to the secondary bus, the clear terminal and the arbitration circuit; and wherein each of the plurality of controllers comprises a decoder to provide read requests to the arbitration circuit and write requests to the clear terminal of a respective one of the plurality of registers in response to instructions from a respective one of the plurality of processors. - View Dependent Claims (13)
-
-
14. A method of synchronizing access to a memory shared among a plurality of processors, each of the plurality of processors having a primary bus and a secondary bus, the primary bus for communicating with the memory, the method comprising:
-
providing a semaphore, the semaphore comprising a plurality of registers, each of the plurality of resisters having a set terminal, a clear terminal and an output terminal and an arbitration circuit coupled to the set terminal and the output terminal of each of the plurality of registers; reading a state of the semaphore via the secondary bus by one of the plurality of processors; locking shared data stored in the memory by blocking access to at least one address range associated with the shared data stored in the memory to others of the plurality of processors if the state of the semaphore indicates the memory is not locked; the plurality of processors coupled between a synchronization block in which the semaphore is located and the memory, at least a portion of the plurality of processors not capable of supporting a read-modify-write single instruction to the memory; wherein access to and from the semaphore by the plurality of processors is via the secondary bus and access to and from the memory by the plurality of processors is via the primary bus, the synchronization block, the plurality of processors, and the memory being coupled in series wherein traffic for the secondary bus does not contribute to traffic on the primary bus; wherein the synchronization block further comprises a plurality of controllers, each of the plurality of controllers respectively coupled to the secondary bus, the clear terminal and the arbitration circuit; and wherein each of the plurality of controllers comprises a decoder to provide read requests to the arbitration circuit and write requests to the clear terminal of a respective one of the plurality of registers in response to instructions from a respective one of the plurality of processors. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
-
Specification