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:
- multiple hardware processing elements arranged to perform data processing, wherein the multiple hardware processing elements comprise a hardware producer element and a hardware consumer element;
- a system privileged agent arranged to run on one of the hardware multiple processing elements and to define a configuration of the data processing system;
- and
- interconnect circuitry arranged to couple the multiple hardware 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 hardware producer element and a hardware 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 hardware consumer element;
- the hardware producer element is configured to perform an atomic message store operation with respect to a block of message data targeting the hardware consumer element, wherein the hardware 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 hardware consumer element.
A method of operating a data processing system comprising:
- performing data processing in hardware multiple processing elements, wherein the hardware multiple processing elements comprise a hardware producer element and a hardware consumer element;
- defining a configuration of the data processing system by a system privileged agent running on one of the multiple hardware processing elements;
- coupling the multiple hardware processing elements with one another via interconnect circuitry;
- defining a message channel for communication between the hardware producer element and a hardware 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 hardware consumer element;
- performing an atomic message store operation by the hardware producer element with respect to a block of message data targeting the hardware consumer element, wherein the hardware 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 hardware consumer element via the interconnect circuitry.
Dependencies are inferred from the claim text.