2009 · 31 citations · 16 references
EngineeringComputer EngineeringComputer ScienceComputer ArchitectureEmbedded SystemsHardware-software Co-designCachingHardware AccelerationInstruction Set ArchitectureMicroarchitecture DesignProcessor MicroarchitectureCache ArchitectureCache DesignCache Miss PenaltyCache Miss RateCache Performance ModelingExecution Time AnalysisLockingReplacement
Cache memories in embedded systems play an important role in reducing the execution time of the applications. Various kinds of extensions have been added to cache hardware to enable software involvement in replacement decisions, thus improving the run-time over a purely hardware-managed cache. Novel embedded systems, like Intel's Xscale and ARM Cortex processors provide the facility of locking one or more lines in cache - this feature is called cache locking. This paper presents the first method in the literature for instruction-cache locking that is able to reduce the average-case run-time of the program. We devise a cost-benefit model to discover the memory addresses which should be locked in the cache. We implement our scheme inside a binary rewriter, thus widening the applicability of our scheme to binaries compiled using any compiler. Results obtained on a suite of MiBench and MediaBench benchmarks show up to 25% improvement in the instruction-cache miss rate on average and up to 13.5% improvement in the execution time on average for applications having instruction accesses as a bottleneck, depending on the cache configuration. The improvement in execution time is as high as 23.5% for some benchmarks.
16
R. M. Banakar, Stefan Steinke, Bo-Sik Lee et al. · 2002 · 661 citations
Assigning Program and Data Objects to Scratchpad for Energy Reduction
Stefan Steinke, Lars Wehmeyer, Bo-Sik Lee et al. · 2002 · 316 citations