10
Reconfigurable Network-on-Chip Design
10.1 Introduction
Designing system containing multiple applications having almost common
set of cores leads to reconfigurable computation. In such a system, the same
hardware platform is utilized to implement the applications. In a networkon-chip (NoC) (Dally and Towles 2001; Atienza et al. 2008) environment,
the intellectual property (IP) cores communicate with each other using an
underlying router network. The routers are often connected in a predefined
fabric. Commonly used network topologies include mesh, tree, and star.
Out of these, mesh is the most widely used topology due to its regular
structure and short interconnections. A reconfigurable computation in any
such topology essentially means designing the NoC so that the performances of all applications become acceptable. The set of cores considering
all applications is mapped to the routers in such a fashion that the stated
objective is met.
A key point in optimizing the NoC power/performance is to place the cores
that are communicating more frequently, close to each other. This is typically
known as the application mapping problem, discussed in detail in Chapter
5. Application mapping has been a very well-researched domain. Many NoC
mapping strategies are available in the literature. Most of the existing NoC
mapping methods try to find an optimal mapping for the communication
pattern of a single application. For a set of applications, the NoC architecture for the design should closely match the traffic characteristics and performance requirements of different applications. As different applications have
different functionalities, the inter-IP communication characteristics can be
very different across the applications. In general, a NoC that is designed to
run exactly one application does not necessarily meet the design constraints
of other applications.
NoC reconfiguration problem can be addressed at various levels. First of
all, standard reprogrammable devices, such a field-programmable gate array
(FPGA) can be used to change the entire NoC logic—cores, routers, and
their interconnections can get modified per application. However, this is
289
