Dataflow Memory Synchronization Tokens for External RAM Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In dataflow architectures, accessing external memory without proper synchronization can lead to inconsistent execution order of instructions, violating the intended sequence specified in high-level language code, which affects semantic correctness.
Innovation Solution
The implementation of synchronization tokens for memread and memwrite instructions ensures that data access to external RAM is synchronized by requiring availability of both address and synchronization tokens before executing these operations, maintaining the intended ordering through the use of synchronization tokens stored in the dataflow memory.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If external memory is accessed without synchronization tokens, then access speed is improved, but execution order correctness deteriorates
Solution Approach 1:
Synchronization tokens are introduced as intermediary elements that mediate between the dataflow memory and external memory access operations. The tokens carry address information and are used to control the timing and ordering of memory accesses, ensuring that reads and writes occur in the correct sequence without blocking the overall dataflow architecture.
Solution Approach 2:
Address tokens are prepared and stored in the dataflow memory in advance of the actual memory access operations. This preliminary action allows the system to maintain the correct execution order by having the necessary addressing information ready before the memory access is triggered, enabling synchronized access without compromising speed.
2Reliability
If synchronization tokens are used for every external memory access, then execution order correctness is improved, but system complexity deteriorates
Solution Approach 1:
The synchronization token mechanism is designed to be universal, handling both read and write operations to external memory through the same token-based approach. The dataflow memory serves multiple functions: storing data tokens, storing address tokens, and coordinating the timing of external memory accesses, reducing the need for separate synchronization mechanisms.
Solution Approach 2:
The system uses its own dataflow memory structure to store and manage synchronization tokens, rather than requiring external synchronization hardware or software. The token mechanism leverages the existing dataflow architecture's strengths, allowing the system to synchronize its own memory accesses using its inherent data storage and flow control capabilities.
3Reliability
If external memory access is synchronized with dataflow operations, then semantic correctness is improved, but productivity deteriorates
Solution Approach 1:
The synchronization mechanism is dynamic rather than static, allowing memory access operations to proceed as soon as the necessary tokens are available in the dataflow memory. This dynamic approach adapts to the actual data availability and dependency relationships, enabling parallel execution of independent operations while maintaining correct ordering where dependencies exist.
Solution Approach 2:
The token-based synchronization maintains continuous dataflow through the system by allowing operations to proceed continuously as tokens become available. Rather than introducing blocking synchronization points that halt execution, the system maintains continuous useful action by processing operations in parallel whenever their required tokens are present in the dataflow memory.
Data Source
AI summary
Approaches for synchronizing memory accesses in a dataflow computing system. A compute operation in the dataflow computing system is commenced in response to availability in a dataflow memory of each operand that is required to perform the compute operation. Output data from a compute operation is stored in the dataflow memory at completion of the compute operation. Write and read operations are supported for accessing an external memory. Accesses to the external memory are synchronized by storing synchronization tokens in the data flow memory. Each synchronization token signals when an address in the external memory may be accessed.


