Contending memory in heterogeneous SoCs: Evolution in NVIDIA Tegra embedded platforms