Atomic Engine Component for Multi-Word Atomic Operations in SoC
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Systems-on-chips (SoCs) face challenges in ensuring atomic operations across multiple processors, leading to potential intermediate, erroneous data readings during execution, particularly due to non-atomic operations being interrupted by other threads.
Innovation Solution
The implementation of an atomic engine component within the SoC that determines the memory width based on the instruction's operator and operand, facilitating multi-word atomic operations by reserving and locking memory locations with widths greater than or equal to the operand width, ensuring operations complete without interruption.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If non-atomic operations are used in SoC multi-processor environments, then processing speed and throughput are improved, but data integrity and reliability deteriorate due to intermediate erroneous readings during execution
Solution Approach 1:
The atomic operation is segmented into distinct phases: reservation phase (locking the memory location), execution phase (performing the atomic operation), and release phase (unlocking the memory location). This segmentation ensures that the critical execution phase cannot be interrupted by other processors, thereby maintaining data integrity while allowing high-speed processing when atomic operations are not required
Solution Approach 2:
The memory location is reserved and locked before the atomic operation executes. This preliminary action prevents other processors from accessing the memory location during the critical execution window, ensuring that no intermediate erroneous readings occur. The reservation is established in advance, allowing the actual atomic operation to proceed without interruption at high speed
2Reliability
If atomic operations are implemented to ensure data integrity, then reliability is improved, but device complexity increases due to additional locking and reservation mechanisms
Solution Approach 1:
A dedicated atomic engine component is introduced as an intermediary between the processors and the memory system. This atomic engine handles all the complexity of reservation, locking, and atomic operation execution, while processors can simply issue atomic operation requests. The atomic engine translates high-level atomic operation requests into low-level locked/unlocked memory operations, thereby maintaining reliability without significantly increasing processor complexity
Solution Approach 2:
The atomic engine automatically manages the reservation and locking of memory locations without requiring explicit programmer intervention. When a processor issues an atomic operation request, the atomic engine autonomously reserves the memory location, executes the operation atomically, and releases the reservation. This self-service mechanism ensures data integrity while keeping the interface simple for processors
3Reliability
If memory locations are reserved and locked for atomic operations, then atomicity is ensured, but memory access efficiency and productivity decrease due to reduced concurrency
Solution Approach 1:
The reservation and locking mechanism applies only to the specific memory location involved in the atomic operation, not to the entire memory space. This localized approach allows other processors to continue accessing different memory locations concurrently without interference. The lock scope is minimized to only what is necessary for the atomic operation, thereby maintaining atomicity while preserving overall memory access efficiency
Solution Approach 2:
The memory location undergoes periodic states of being locked and unlocked. During the locked state, atomic operations are guaranteed; during the unlocked state, normal concurrent access is permitted. This periodic locking/unlocking pattern ensures atomicity when needed while maximizing concurrency during non-critical periods, thereby balancing reliability and productivity
Data Source
AI summary
Systems and methods that facilitate multi-word atomic operation support for systems on chip are described. One method involves: receiving an instruction associated with a calling process, and determining a first memory width associated with execution of the instruction based on an operator of the instruction and a width of at least one operand of the instruction. The instruction can be associated with an atomic operation. In some embodiments, the instruction contains a message having a first field identifying the operator and a second field identifying the operand.


