Integrating the NoC subsystem with the core in an MPSoC is hardly trivial. It requires the design of complex NIs as well as tackle the problem of clock distribution, which requires appropriate synchronizers if the system clock cannot be distributed without skew as is often the case. The synchronizers must be reliable and yet minimize additional latency. Moreover, careful floor-planning is required to achieve good performance. Finally, any multi-and many-core environment must also efficiently solve the problem of cache coherence and therefore the NoC must support and even facilitate cache coherence mechanisms.