An Adaptive Routing Technique Supporting In-Order Packet Delivery in Networks on Chip