  In this paper, we present a load-balancing approach to analyze and partition
the UAV perception and navigation intelligence (PNI) code for parallel
execution, as well as assigning each parallel computational task to a
processing element in an Network-on-chip (NoC) architecture such that the total
communication energy is minimized and congestion is reduced. First, we
construct a data dependency graph (DDG) by converting the PNI high level
program into Low Level Virtual Machine (LLVM) Intermediate Representation (IR).
Second, we propose a scheduling algorithm to partition the PNI application into
clusters such that (1) inter-cluster communication is minimized, (2) NoC energy
is reduced and (3) the workloads of different cores are balanced for maximum
parallel execution. Finally, an energy-aware mapping scheme is adopted to
assign clusters onto tile-based NoCs. We validate this approach with a drone
self-navigation application and the experimental results show that our optimal
32-core design achieves an average 82% energy savings and 4.7x performance
speedup against the state-of-art flight controller.
