Message channels
AssigneeArm Limited
InventorsJonathan Curtis BEARD, Steven Douglas KRUEGER
Life of this patent
Estimating the term…
Abstract
A message channel functionality for a data processing system is disclosed. This provides communication channels which may be considered to be a shared resource. The approach combines atomic stores, which are fully completed in a single atomic transaction, and non-coherence to provide non-coherent atomic stores that are conditional to implement primitive communications channels that can be used to implement software queues and channels more efficiently. This enables the programmer to execute a store from registers on one side of a communications link and to have that data appear in the registers of a data consumer on that link directly, bypassing both the shared state upgrade problem and the parallel problem of acquiring a synchronization lock before data send.
Claims23
A data processing system comprising:
- a system privileged agent arranged to define a configuration of the data processing system;
- multiple processing elements arranged to perform data processing, wherein the multiple processing elements comprise a producer element and a consumer element;
- and
- interconnect circuitry arranged to couple the multiple processing elements with one another,
- wherein the data processing system supports a message channel functionality according to which:
- the system privileged agent is configured to define a message channel for communication between the producer element and a consumer element, the message channel being defined by a message channel identifier and a message channel target pointer, wherein the message channel target pointer indicates a non-cacheable target location associated with the consumer element;
- the producer element is configured to perform an atomic message store operation with respect to a block of message data targeting the consumer element, wherein the producer element specifies the message channel identifier and the block of message data;
- and
- the interconnect circuitry is configured to convey the block of message data atomically to the non-cacheable target location associated with the consumer element.
A method of operating a data processing system comprising:
- defining a configuration of the data processing system by a system privileged agent;
- performing data processing in multiple processing elements, wherein the multiple processing elements comprise a producer element and a consumer element;
- coupling the multiple processing elements with one another via interconnect circuitry;
- defining a message channel for communication between the producer element and a consumer element, the message channel being defined by a message channel identifier and a message channel target pointer, wherein the message channel target pointer indicates a non-cacheable target location associated with the consumer element;
- performing an atomic message store operation by the producer element with respect to a block of message data targeting the consumer element, wherein the producer element specifies the message channel identifier and the block of message data;
- and
- conveying the block of message data atomically to the non-cacheable target location associated with the consumer element via the interconnect circuitry.
Dependencies are inferred from the claim text.