Research has shown that cache subsystem has become significant contributor in the overall energy consumption [78, 104]. Since different programs may have distinct requirements of cache configuration during execution, significant energy efficiency as well as performance improvements can be achieved by employing dynamic cache reconfiguration (DCR) in the system. Although reconfigurable caches are highly beneficial in general-purpose platforms [38,156], it has not been well studied in realtime systems due to several fundamental challenges. The first important question is how to employ and make efficient use of reconfigurable caches in such systems. Determining the appropriate cache configuration typically requires time-consuming evaluation of different candidate configurations. Furthermore, any change in cache configuration on-the-fly may arbitrarily alter task execution time. In hard real-time systems, the benefit of reconfiguration is limited since both of these facts can make scheduling decisions difficult and eventually may lead to unpredictable system behavior. However, soft real-time systems offer much more flexibility, which can be exploited to achieve considerable energy savings at the cost of minor impact in user experience.This chapter presents a novel methodology for applying cache reconfiguration in soft real-time systems with preemptive task scheduling. The proposed approach provides an efficient scheduling-aware cache tuning strategy based on static profiling and is applicable for both statically and dynamically scheduled soft real-time systems. Generally speaking, this technique is useful in any multitasking systems. The goal is to optimize energy consumption with performance considerations via reconfigurable cache tuning while ensuring that the majority of the task deadlines are met. We first consider single-level cache reconfiguration. As shown in [124], L1 cache energy consumption can be a significant part in overall energy optimization. In fact, some small embedded systems executing light-weight kernels are very likely to not even have L2 cache. This approach is independent of the actual cache sizes and is applicable for both large systems with larger L1 caches and small systems with smaller L1 caches. Next, we study dynamic cache reconfiguration in systems W. Wang et al.,