Shared Memory Synchronization Using Paired Wait and Signal Commands
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In computer graphics systems, sharing cache memory between multiple processing units in a pipelined system poses challenges, particularly in avoiding read-after-write hazards when switching access from one unit to another, as existing methods lack effective synchronization mechanisms.
Innovation Solution
Implementing a synchronization system using paired wait/signal commands with identifiers to manage access to shared memory, ensuring that only one module accesses the cache at a time by delaying access until identifiers match, thus preventing data loss and hazards.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple processing units share a cache memory in a pipelined system, then memory utilization and processing efficiency are improved, but read-after-write hazards and data loss risks increase
Solution Approach 1:
An identifier register acts as an intermediary between downstream and upstream processing units. The downstream unit writes its identifier to this register before accessing shared cache, and the upstream unit reads this identifier to verify it should proceed with memory access. This intermediary mechanism coordinates access without requiring complex external synchronization, resolving the contradiction between shared memory utilization and data integrity.
2Reliability
If synchronization mechanisms are added to prevent read-after-write hazards, then data integrity is improved, but system complexity and overhead increase
Solution Approach 1:
The synchronization mechanism is self-service in that each processing unit autonomously manages its own access coordination. The downstream unit automatically writes its identifier to the register before cache access, and the upstream unit automatically reads and compares identifiers before accessing memory. This eliminates the need for external synchronization controllers or complex inter-unit communication protocols, achieving data integrity with minimal added complexity.
3Reliability
If access to shared cache is delayed until synchronization is confirmed, then data integrity is improved, but access speed and throughput decrease
Solution Approach 1:
The downstream processing unit performs preliminary action by writing its identifier to the register before actually accessing the shared cache. This advance preparation allows the upstream unit to quickly verify identifier matching without causing delays in the actual data access operation. The synchronization check is performed in advance, enabling subsequent fast access when identifiers match.
Data Source
AI summary
The present disclosure provides system and method embodiments for synchronizing access to memory between a plurality of modules in a pipelined system. One system embodiment, among others, includes an upstream module and a downstream module that each share one or more locations in memory. The upstream module is configured to receive a command pair having matched identifiers, one half (wait command) of which enables the upstream module to delay access to the memory to avoid read-after-write (RAW) hazard, the other half (signal command) which is passed to the downstream module. The downstream module passes the identifier from the signal command to the upstream module at a time corresponding to the downstream module reaching an idle state, thus ceasing access to the memory. The upstream module, upon determining that the identifier received over a direct connection from the downstream module is from the command pair, accesses the one or more locations in the memory.


