Asynchronous Bridge Hybrid Handshake Protocol
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing handshaking procedures for asynchronous communication across clock and power domain boundaries in electronic devices are inefficient, leading to data loss due to desynchronization and throughput penalties, particularly when one or both sides reset or lose power.
Innovation Solution
A method using a reverse-channel terminator and initiator to form a reverse status mutex for arbitrating access, with a hybrid handshake protocol that initially performs a four-phase handshake for synchronization and then switches to a two-phase handshake for subsequent data transfers, ensuring robustness against desynchronization while maintaining high throughput.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If a two-phase handshaking procedure is used for asynchronous data transfer, then the transfer speed is fast, but data loss occurs when reset or power loss happens during handshake
Solution Approach 1:
The system dynamically switches between two-phase and four-phase handshaking procedures based on synchronization status. When synchronized, it uses the faster two-phase procedure; when desynchronization is detected, it transitions to the more reliable four-phase procedure, optimizing both speed and reliability under different conditions
Solution Approach 2:
A status mutex is introduced as an intermediary mechanism to track and manage the synchronization state between clock domains. This mutex acts as a mediator that determines which handshaking procedure should be used, preventing data loss by ensuring the appropriate protocol is selected based on current system state
2Reliability
If a four-phase handshaking procedure is used to prevent data loss, then reliability is improved, but throughput is reduced by twice as much
Solution Approach 1:
The system dynamically adjusts the handshaking procedure based on synchronization status. During normal synchronized operation, it uses the high-throughput two-phase procedure. Only when desynchronization is detected does it switch to the more reliable but slower four-phase procedure, minimizing the impact on overall throughput while maintaining reliability when needed
Solution Approach 2:
The system changes the operational parameters of the handshaking procedure based on the synchronization state. By modifying the number of phases from two to four only when necessary (upon detecting desynchronization), it optimizes the balance between reliability and throughput by adapting parameters to current system conditions
3Device complexity
If different power and clock domains operate independently, then device complexity is reduced, but desynchronization issues arise during data transfer
Solution Approach 1:
A status mutex is introduced as an intermediary mechanism that tracks synchronization state across independent power and clock domains. This mutex enables the system to maintain domain independence while providing a coordinated way to detect and respond to desynchronization events, preserving reliability without requiring complex global management
Solution Approach 2:
Each clock domain independently monitors its own synchronization status through the status mutex mechanism. The domains self-manage their synchronization state without requiring a global power and clock manager, reducing overall system complexity while maintaining reliable data transfer through autonomous desynchronization detection
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A method of transferring data from a first bus (11) to a second bus (13) across an asynchronous interface (7) using an asynchronous bridge (2). The bridge (2) comprises a bus slave module (4), connected to the first bus (11), comprising a forward-channel initiator (8) in a first power and/or clock domain; and a bus master module (6), connected to the second bus (13), comprising a forward-channel terminator (22) in a second power and/or clock domain. The forward-channel initiator (8) and terminator (22) are in communication to form a forward lockable mutex for arbitrating access to signals used to transfer data from the first domain to the second domain. If the mutex is locked (40), a forward data channel (43) is used to transfer data between the domains. Otherwise if the mutex is unlocked (40), the forward channel initiator (8) toggles a status request signal (36) and the forward channel terminator (22) toggles a status acknowledge signal (38) in response, the mutex thereby becoming locked.