The Best Paper Award
Implementation of Stack Data Placement and Run Time Management Using a Scratch-Pad Memory for Energy Consumption Reduction of Embedded Applications
Lovic GAUTHIER,Tohru ISHIHARA
(英文論文誌A 平成23年12月号掲載)
Lovic Gauthier Tohru ISHIHARA        
 Since the 1990s embedded processors have been used in more and more products, from cars to cellular phones, with strict constraints on their energy consumption. Such processors utilize both external and internal memory devices. External memories are large, but accessing them is slow and consumes a large amount of energy whereas internal memories are small, but accessing them consumes comparatively very little energy. The latter can be configured as caches, whose access is managed by hardware, or scratch-pad memories (SPM) which have to be managed by software. Caches are the preferred solution for desktop systems as they are transparent to the software. However, caches are poorly deterministic and are larger in both area and energy consumption than SPMs. Hence, SPMs are often favored for embedded systems even though the application's code must be modified in order to exploit them. Several software structures exist for storing data. Among them, the stack, which holds the local data, is generally the most often accessed, making it a good candidate for being assigned to the SPM. This has been considered in several publications, but the proposed approaches are usually applied at high level (e.g., C level), whereas the content of the stack is decided at assembly level, so the feasibility of these approaches is arguable.
 Hence, instead of proposing a totally new approach, this paper aims to provide a realistic implementation and extension of the authors’ previous work presented in Estimedia 2009 (7th Workshop on Embedded Systems for Real-Time Multimedia, 2009, pages 116-125) which describes a compiling technique which sets up a software stack management that performs not only the placement but also the run-time displacement of stack frames (blocks of local variables) between the external memory and the SPM, to ensure optimal use of the limited space of the SPM. The present paper makes four contributions in this area. First, the previous technique is refined to also include management of some stack variables independently of the rest of their frame. Second, the practicability of the method is shown by explaining its detailed assembly implementation for the case of the MeP processor. Third, support for global data is added. Fourth, the total energy consumed by the memories and the processor for the data accesses is considered.
 Experiments showed that the proposed approach needs only a very small SPM to achieve an important reduction in energy: 1KB was enough to save on average 57% of the stack-related energy consumption.
 As mentioned above, this paper proposes a new and effective approach to reducing the energy consumption of embedded systems, and their contributions are greatly appreciated.

Close