A SystemC channel provides general purpose interface between components.
The sc_signal channel should be used to obtain the compute/commit paradigm. This avoids non-determinacy from races in zero-delay models.
Other provided channels include FIFOs and semaphores.
Users can overload the channel class to implement channels with their own semantics if needed. A user-defined channel type can even contain other SystemC components but the importance of this is reduced when using the TLM libraries.