Error Control Schemes for On-chip Communication Links: the energy-reliability trade-off