Forum Discussion
Altera_Forum
Honored Contributor
7 years agoI/O channels do not have a stalling mechanism. Hence, if you have other stallable operations in your kernel, like stallable memory or on-chip channel operations, then stalls from these operations can propagate to the the I/O channel (which cannot be stalled) and hence, you will loose data. The obvious example of this is if you are reading from a network channel and writing into global memory; if the global memory operations is stalled due to contention, then the next data from the I/O channel will not be read and will be dropped. The only solution is if you implement a protocol on top of the I/O channel with a handshaking mechanism that ensures all dropped data is retransmitted.