期刊名称:IEEE Transactions on Emerging Topics in Computing
印刷版ISSN:2168-6750
出版年度:2017
卷号:5
期号:1
页码:95-107
DOI:10.1109/TETC.2016.2562598
出版社:IEEE Publishing
摘要:Workload allocation in embedded multicore platforms is an increasing challenging issue due to heterogeneity of components and their parallelism. Additionally, the impact of process variations in current and next generation technology nodes is becoming relevant and cannot be compensated at the device or architectural level. Intra-die process variations raising at the core level and platform level makes parallel multicore platforms intrinsically heterogeneous, because the various cores are clocked at different operational frequencies. Power consumption becomes heterogeneous too, both considering dynamic and leakage consumption. In this context, to fully exploit the computational capability of the platform parallelism, variability aware task allocation strategies must be adopted. Despite the consistent research performed to design variability-aware task allocation policies, little effort has been devoted make available to programmers a software toolchain enabling the exploitation of these policies. Such toolchain need to exploit fabrication-level information about core clock speed and power consumption. In this work, we address to present a methodology and the associated toolchain to program in presence of process variability, integrating power and performance variability information in all the steps of the toolchain. To this purpose, the proposed approach is vertically integrated, from high level modelling down to runtime management. Variability information is introduced through a XML configuration file that is exploited by toolchain components to make the appropriate runtime allocation decision. We demonstrate the proposed toolchain using state of art variability-aware task allocation policies on two multicore platforms: i) The MIPS-based GENEPY simulator with 4 and 8 parallel homogeneous cores and ii) The Tegra2-based Zynq platform, where the on-board FPGA has been used to map 10 microblaze slave cores. Experiments show that the proposed toolchain supports the integration of variability awareness in a simple yet effective programming environment.