Software-controlled Scratch-Pad Memory (SPM) is a desirable candidate for on-chip memory units in embedded multi-core systems due to its advantages of small die area and low power consumption. In particular, data placement on SPMs can be explicitly controlled by software. Therefore, the technique of data distribution on SPMs for multi-core system becomes critical in exploiting the advantages of SPM. Previous research efforts on data allocation did not consider the placement of array data accessed in loops. Loops are the most time-consuming and energy-consuming part for most of the computationintensive applications. In this paper, we propose a highperformance, low-overhead data distribution technique, the Iterational Optimal Loop Data Distribution Algorithm based on dynamic programming. It optimizes data allocation of both scalar and array data for embedded multi-core systems with SPMs. The experimental results show that the IOLDD algorithm reduces the energy consumption by 30.12% and 14.52% on average compared with random data distribution and greedy stretagy, respectively. It also reduces the memory access time by 18.45% and 18.38% on average compared with the random distribution strategy and the greedy strategy, respectively.