3.2. Manycores
Today’s manycores feature a large number of independent compute cores in a 2D mesh
NoC. Each compute core interacts with its switch using input and output queues that
are accessed via specialized registers as depicted in Figure 2(a). When the output
queue from the core to the switch becomes full, subsequent writes to this queue will
stall the pipeline until there is space for the write. The inverse also holds: when the
input queue is empty and the queue is read, the pipeline stalls until data is available.
Hence, NoC communication supports a blocking communication API at one level
and a nonblocking/interrupt triggered API for polling/event-driven communication at
another level.