Opportunistic Merge Element
Andrey Mokhov, Victor Khomenko, Danil Sokolov, Alex Yakovlev · 2015
The paper introduces a new reusable asynchronous component, called Opportunistic Merge element, that merges two or more request-acknowledgement channels into one and is allowed to opportunistically bundle requests from different input channels if they arrive sufficiently close to each other. We present a speed-independent implementation of this component and verify some of its correctness properties. An important characteristic of the presented implementation is that the arbitration is removed from the critical path, thereby providing a fast response to the incoming requests.