Load based adaptive routing for deadlock avoidance and energy aware communication in network on chip NoC systems