# PCCNoC: Packet Connected Circuit as Network on Chip for High Throughput and Low Latency SoCs
## 3 Proposed Architecture
### Router Design  
The main module in the NoC is the router, which is called the node. Compared with traditional NoC routers, the proposed router does not have income and outcome buffers, and it introduces a new structure called the data-path locker. When PE-A transfers data to PE-B the first time, the data-path locker locks the routing path to construct a dedicated data path. The following data transmission from PE-A to PE-B uses a dedicated data-path, similar to traditional CS NoC, to ensure lower latency. When an exception happens (e.g., time violation, CRC failed) or data transmission finishes, the established path can be quickly released and the locked path can be used for packet switching again, which makes for high flexibility similar to PS NoC. The router is re-constructed to adapt the feature of both PS NoCs and CS NoCs. The router in this design has two functions: (1) establish transmission circuit by packet routing and (2) lock the routed path to support fast circuit switching. Every node can be stated in two aspects: (1) as routing source or routing destination and (2) as a data receiver or data sender. These two aspects are uncoupled. The following abbreviations will be used afterwards. 1. **Routing source (RS)**: the node that initiates the transmission request;
2. **Routing target (RT)**: the node that accepts the transmission request;
3. **Data sender (DS)**: the node that sends data, which can be RS or RT;
4. **Data receiver (DR)**: the node that receives data, which can be RS or RT. The router is composed of network wrapper, router controller, timer watchdog, CRC, and datapath locker as shown in Figure 4.  
**Network wrapper (NW)**: It includes module entrance configuration circuit and output configuration circuit for linking a PE to a router and connecting neighbor routers. The main modules are wrappers and port controllers for input and output which are responsible for data transmission management. To establish a new transmission, the PE sends circuit setup request to wrapper. The in-port controller would assemble a packet according to the request and start to send to the target node. If the node is data sender, before the dedicate circuit is connected, the wrapper will backpressure the local module to hold the data. After  
Figure 3: A \(4\times 4\) mesh NoC architecture. R represents router and PE means processing element. receiving the acknowledgment that the circuit has been constructed, the in-port controller will package the rest data as circuit data and sent it out through the locked datapath. If the node is data receiver, the out-port controller will unpack the packet, check the validity of the payload, and send the in-order data to local module. **Router controller**: It is responsible for routing information processing and maintaining. If the link has been established, it will act as a transfer logic to send the data packet through the datapath locker. If there is no available constructed link, the router will parse the packet and send it to the corresponding output or PE according to the packet information and the occupancy status of adjacent nodes. Router controller also records and keeps updating the occupancy status of adjacent nodes. If the message is configured with a request for unlinking, the router controller will send request to datapath locker to release the lock between input and output after processing the packet. Multicasting and broadcasting are also processed by router controller. **Timer**: Before sending out the routing packet, the routing source shall reserve margin according to the routing time cost and data transmission time cost, set the timeout counter and start the countdown. When time violation happens, the routing source node will give a time violation signal to data sender and handle this failure. **CRC** (optional): When CRC error checking is required, the CRC module at data sender completes CRC coding according to the protocol. The CRC module at the data receiver completes CRC decoding and error checking according to the protocol.