2004 · 62 citations · 13 references
ComputingComputer EngineeringComputer ScienceCompilersComputer ArchitectureEmbedded SystemsMemory HierarchyMemory ManagementPerformance OptimizationVirtual MemoryClustering AlgorithmsDemand PagingExecutable Image GenerationFlash MemoryMemory Allocation OverheadMemory SpacePage Size OptimizationPaging
In this paper, we propose a novel, application specific demand paging mechanism for low-end embedded systems with flash memory as secondary storage. These systems are not equipped with virtual memory. A small memory space called an execution buffer is allocated to page an application. An application-specific page manager manages the buffer. The manager is generated by a compiler post-pass and combined with the application image. Our compiler post-pass analyzes the ELF executable image of an application and transforms function call/return instructions into calls to the page manager. As a result, each function of the code can be loaded into memory on demand at run time. To minimize the overhead of demand paging, code clustering algorithms are also presented. We evaluate our techniques with five embedded applications. We show that our approach can reduce the code memory size by 33% on average with reasonable performance degradation (8-20%) and energy consumption (10% more on average) for low-end embedded systems.
13
MiBench: A free, commercially representative embedded benchmark suite
Matthew R. Guthaus, Jeffrey Ringenberg, Daniel Ernst et al. · 2001 · 3.1K citations
Assigning Program and Data Objects to Scratchpad for Energy Reduction
Stefan Steinke, Lars Wehmeyer, Bo-Sik Lee et al. · 2002 · 316 citations
Dynamic power management for portable systems
T. Simunic, Luca Benini, Peter W. Glynn et al. · 2000 · 217 citations · Full text