Estimating resources for a network-on-chip (NoC) before considering register-transfer level (RTL) is vitally important for system-on-chip (SoC) projects. A network needs to be able to deliver the necessary connectivity, bandwidth, buffering and routing capacity between the connected modules. Assuming the wrong amount of resources often leads to system congestion, timing issues, and increased power consumption. By carefully studying the characteristics of different workloads, patterns of data flow and physical limitations of the chip it is possible to make reasonable NoC resource estimations before diving into detailed specification and layout.
Define System Communication Requirements
The first necessary step towards calculating the Network on chip resource budget is making a list of IP modules which are going to connect to the network. CPUs, GPUs, memory modules, digital signal processors (DSPs), and other types of processors and accelerators present the most common examples, but different IPs can host unique transmission demands. The engineering team should build an understanding of the data flows which are going to appear between different network nodes, the transaction size and frequency, and the latency requirements for each type of data.
The traffic patterns for different network nodes and types of data should be examined with special focus on the difference between average and peak communications. When working simultaneously, multiple IPs will have to share the data transmission resources of the NoC. It is essential for estimating NoC resource requirements to design a network capable of sustaining the aggregate peak of all transactions, whether it takes place simultaneously or in rotational bursts within a single processing cycle.
Estimate Bandwidth and Link Capacity
Understanding the bandwidth demands of various data flows helps estimate the necessary resources more accurately. Each link has a limited transmission capacity range based on the data rate requirements of the connected modules. The estimation process can begin with defining bandwidths needed at specific points of the network. Then the link budgets can be estimated based on these maxima. By observing that the aggregate bandwidth of a point-to-point link or a shared channel needs to cover the combined capacity of its destination links, the necessary resources for all points can be evaluated as long as the traffic distribution patterns are understood.
The engineering team needs to look at the distribution of traffic between different points of the network. While there will probably be enough bandwidth to transmit data from an accelerator memory controller to a CPU, a link to a peripheral device should be designed with higher safety margins. Estimating the resource needs based on concurrent data flows helps avoid overprovisioning the system because the total bandwidth of all point-to-point links combined usually exceeds that of a shared channel. It becomes evident that the NoC architecture determines the overall resource budget, and individual link requirements depend on the traffic distribution patterns.
Determine Router and Topology Requirements
The choice of topology influences NoC resource requirements by determining overall link quantity and layout. In case of distributed processing, a mesh NoC might become necessary to maintain sufficient bandwidth, but there are often alternative solutions for such applications. The engineering team should take all available topologies into consideration regarding the number of endpoints, data flow patterns and aggregate link bandwidths in different directions in order to choose a design which best fits the physical size and power budget of the SoC. As bandwidths of different links can vary significantly per application, a careful estimation of NoC resource requirements in terms of routing becomes crucial.
The capacity of all input-output connections at a router needs to be considered as well. The width of a single point-to-point link will influence the overall area and power consumption budget just as much as the number of links in relation with their respective latencies and data format requirements. In preparation of the register-transfer level (RTL) description of the NoC, the necessary router quantities, link widths, and related power and area requirements should be examined closely within the context of the chosen architecture.
Calculate Buffering and Flow Control Needs
A vital part of any bandwidth-sharing solution is channel buffering, which facilitates temporal partitioning of a single physical channel into multiple logical virtual channels. There are two common methods for implementing NoC channel buffering that have to be reviewed when estimating NoC resource requirements. One method involves allocating a certain depth of buffer memory at each link or router port. The second method makes use of credits – signals indicating channel occupancy – which can provide flow control at distances that are too wide for standard buffers to cover.
NoC budget estimators should review the expected concurrent data traffic volumes in terms of data formats at all levels of data flow hierarchy. This will provide the required depth for the channel buffers at all link points as well as any intermediate memories, if any data conversion takes place between them. The engineers should analyze the expected NoC latencies and concurrency degree in order to find out whether the chosen flow control mechanism can support the data throughput rate without excessive idle time between data bursts. The resource costs of buffer memories in terms of area and power consumption must match the requirements of system applications.
Account for Physical and Power Constraints
All requirements for link latency, bandwidth, data format and buffer depths can be estimated with sufficient accuracy as long as a clear vision of the NoC Interconnect as a whole is provided. NoC resource budget estimators then should collaborate with physical designers and system engineering teams in order clarify which implications do different types of network resources have on the area budget in case of multi-channel NoC or mesh structures. This will give a rough estimation of required power for different link widths and data rates, and will provide a clear view of the trade-off ratio between different parts of network architecture.
Validate Estimates Before Implementation
Resource budget estimators can use architectural description tools and NoC traffic simulation programs in order to verify the general adequacy of their planning in due time. It may actually turn out in this process that certain link widths or aggregate bandwidths are over-dimensioned from the point of application-specific data flow patterns. Comparing simulation results of high load conditions with the requirements of critical data flows gives a fair estimation of link and NoC buffer size sufficiency for critical applications. In case of workload requirement evolution, such as application-specific accelerator integration, resource revision in terms of bandwidth or aggregate link data rates will still prove to be efficient compared to the time-cost of revising a complete set of NoC descriptions.
Conclusion
NoC resource estimation before RTL design calls for a collaborative effort of all engineering teams. An evaluation of communication workload patterns in regard to bandwidth, physical size and data flow concurrency will allow to define the resource requirements of individual links in relation to the channel structure of the chosen NoC architecture.
