# PCCNoC: Packet Connected Circuit as Network on Chip for High Throughput and Low Latency SoCs
## 4 The NoC Workflow
### Transmission Mechanism  
The transmission task of NoC proposed in this paper contains three steps: establishing & locking, transmitting and canceling as depicted in Figure 9.  
**Establishing & Locking:** The network wrapper module completes the preparation of source routing packets according to the requirements of the source routing initiate module. To establish a data transmission, the tasks for each router are as follows.  
1. The router keeps a record of the occupancy of adjacent nodes.
2. According to the destination address of the route and the occupancy status of adjacent nodes, temporarily lock the input and output paths of the node according to data transfer direction, and send routing packets to the determined direction.
3. The routers along the transmitting path lock circuit to establish a directional locked data path.
4. The routing target node confirms the transmission request.
5. The routers along the transmitting path keep to support payload transmission.
6. The routing source node is equipped with timeout control, and the transmission with abnormal timeout will be terminated and reported to the system.  
**Transmitting:** After the circuit is locked, the data sender starts to transmit payload on the circuit, and the data sender could be routing source node or routing target node.  
**Canceling:** When the transmission finishes, the network wrapper module of the data sender sets enable bit unvalid. The data receiver catches the signal and sets unlink bit valid to unlock the circuit, and all nodes along the constructed path unlock and release the circuit resources.  
Figure 8: (**a**) shows the route path from (0,0) to (3,2); (**b**) shows the route path from (0,0) to (3,2) when the path from (2,0) to (3,0) is congested.  
Any nodes in the NoC can be used as a routing source. The routing source node starts and establishes a dynamic route, then temporarily locks a data transmission circuit connecting the source node to the target node. If the routing source is data sender, it starts to send data immediately when it receives the transmission grant from the data receiver. If the routing source node is a data receiver, it will receive payload and check CRC validation (if configured) and unlock the transmission path after data transmission. Every routing source is configured with a timer watchdog. If the transmission time runs out, the routing source will unlock the locked data path immediately and broadcast the timeout exception with special bits.  
The intermediate node participates in data transmission, and its related routing and data transmission are completed by router controller. The router controller at each routing node (including the routing source node and the routing target node) sends the node usage status to the adjacent nodes.  
Any node can be used as the routing target. The routing target node receives the route packet and starts the endpoint protocol immediately. If the routing target is data receiver, when the request of the routing source node is acceptable, the routing target returns the transmission grant signal to routing source immediately. If the request of the routing source cannot be accepted since the target node is busy, the target node immediately sends transmission refuse signal back to routing source node. If routing target is data sender, it will start to pack payload and send it out on the locked path.  
Figure 9: PCCNoC data transmission workflow.