Method and apparatus for synchronizing data queues in asymmetric reflective memories
First Claim
1. In a computer system, a method for synchronizing modification of a common data structure stored in an asymmetric reflective memory shared by a plurality of processors, comprising:
- in a first processor, storing a queue element in a global write-only address space of the asymmetric reflective memory, the asymmetric reflective memory to copy the queue element to a local read/write address space of a second processor, the queue element storing common data to be shared by the plurality of processors;
in the first processor, storing a queue header in the global write-only address space, the asymmetric reflective memory to copy the queue header to the local read/write address space of the second processor;
in the second processor, in response to detecting the queue element, reading the queue header and disabling the queue header, the reading and disabling performed atomically in the local read/write address space of the second processor;
in the second processor, processing the common data stored in the queue element; and
in the second processor, marking the queue element as processed in the global address space of the asymmetric reflective memory, the asymmetric reflective memory to copy the queue element to a local read/write address space of the first processor after marking.
3 Assignments
0 Petitions
Accused Products
Abstract
A network of processors synchronize modification of a common data structure stored in an asymmetric reflective memory by using a queue. A first processor stores a queue element in a global write-only address space of the reflective memory, the reflective memory to copy the queue element to a local read/write address space of a second processor. The first processor also stores a queue header in the global write-only address space. In response to detecting the queue element, the second processor reads the queue header and then overwrites the queue header with a zero. The reading and writing of the queue header are performed atomically in the local read/write address space of the second processor. The second processor processes the queue element, and marks the queue element as processed in the global address space of the reflective memory.
55 Citations
7 Claims
-
1. In a computer system, a method for synchronizing modification of a common data structure stored in an asymmetric reflective memory shared by a plurality of processors, comprising:
-
in a first processor, storing a queue element in a global write-only address space of the asymmetric reflective memory, the asymmetric reflective memory to copy the queue element to a local read/write address space of a second processor, the queue element storing common data to be shared by the plurality of processors; in the first processor, storing a queue header in the global write-only address space, the asymmetric reflective memory to copy the queue header to the local read/write address space of the second processor; in the second processor, in response to detecting the queue element, reading the queue header and disabling the queue header, the reading and disabling performed atomically in the local read/write address space of the second processor; in the second processor, processing the common data stored in the queue element; and in the second processor, marking the queue element as processed in the global address space of the asymmetric reflective memory, the asymmetric reflective memory to copy the queue element to a local read/write address space of the first processor after marking. - View Dependent Claims (2, 3)
-
-
4. An apparatus for synchronizing modification of a common data structure shared by a plurality of processors, comprising:
-
an asymmetric reflective memory having a global write-only address space shared by the plurality of processors and a local read/write address space for each of the plurality of processors; a queue element stored in the global write-only address space of the asymmetric reflective memory by a first processor, the asymmetric reflective memory to copy the queue element to the local read/write address space of a second processor the queue element storing common data to be shared by the plurality of processors; a queue header stored in the global write-only address space of the asymmetric reflective memory by the first processor, the asymmetric reflective memory to copy the queue header to the local read/write address space of the second processor; in response to detecting the queue element, means for reading the queue header and writing a zero in the queue header, the means for reading and writing the queue header performing the reading and writing steps atomically in the local read/write address space of the second processor; means for processing the common data stored in the queue element; and means for marking the queue element as processed in the global address space. - View Dependent Claims (5, 6)
-
-
7. In a computer system, a method for synchronizing modification of a queue, the queue including a header and queue elements, the queue stored in a memory shared by a plurality of processors, comprising:
-
writing a new queue element in a global write-only address space of an asymmetric reflective memory, the queue element storing common data to be shared by the plurality of processors, the asymmetric reflective memory copying the new queue element to a local read/write address space of the asymmetric reflective memory, the local read/write address space accessible by a second processor; writing an address of the new queue element in the queue header, the queue header stored in the global write-only address space; detecting the new queue element by the second processor; reading the queue header and writing a zero in the queue header, the reading and writing of the queue header performed atomically in the local read/write address space of the second processor; processing the common data stored in the new queue element by the second processor; and marking the new queue element as processed in the global address space of the asymmetric reflective memory.
-
Specification