  As energy efficiency became a critical factor in the embedded systems domain,
dynamic voltage and frequency scaling (DVFS) techniques have emerged as means
to control the system's power and energy efficiency. Additionally, due to the
compact design, thermal issues become prominent. State of the art work promotes
software decoupled access-execution (DAE) that statically generates code
amenable to DVFS techniques. The compiler builds memory-bound access phases,
designed to prefetch data in the cache at low frequency, and compute-bound
phases, that consume the data and perform computations at high frequency. This
work investigates techniques to find the optimal balance between lightweight
and efficient access phases. A profiling step guides the selection of loads to
be prefetched in the access phase. For applications whose behavior vary
significantly with respect to the input data, the profiling can be performed
online, accompanied by just-in-time compilation. We evaluated the benefits in
energy efficiency and performance for both static and dynamic code generation
and showed that precise prefetching of critical loads can result in 20% energy
improvements, on average. DAE is particularly beneficial for embedded systems
as by alternating access phases (executed at low frequency) and execute phases
(at high frequency) DAE proactively reduces the temperature and therefore
prevents thermal emergencies.
