1995 · 81 citations · 6 references
ComputingComputer EngineeringComputer ScienceCompilersComputer ArchitectureHardware-software Co-designCode GenerationCompiler ConstructionHigh-level SynthesisMemory Subsystem DesignParallel ArchitecturesRegister AllocationCode Quality ImprovementCompiler SupportCompiler-based High-level SynthesisMemory BandwidthMemory Bandwidth OptimizationMemory Bank OrganizationMicroarchitectural OptimizationRegister Assignment
Abstract—An architectural feature commonly found in digital signal processors (DSPs) is multiple data-memory banks. This fea-ture increases memory bandwidth by permitting multiple memory accesses to occur in parallel when the referenced variables belong to different memory banks and the registers involved are allocated according to a strict set of conditions. Unfortunately, current com-piler technology is unable to take advantage of the potential in-crease in parallelism offered by such architectures. Consequently, most application software for DSP systems is hand-written – a very time-consuming task. We present an algorithm which attempts to maximize the ben-efit of this architectural feature. While previous approaches have decoupled the phases of register allocation and memory bank as-signment, our algorithm performs these two phases simultaneously. Experimental results demonstrate that our algorithm substantially improves the code quality of many compiler-generated and even hand-written programs. I.
6
Optimization by Simulated Annealing
Scott Kirkpatrick, C. D. Gelatt, M.P. Vecchi · Science · 1983 · 44.6K citations
Register allocation via coloring
Gregory J. Chaitin, Marc Auslander, Ashok K. Chandra et al. · Computer Languages · 1981 · 731 citations
Programmable DSP architectures. II
Edward A. Lee · IEEE ASSP Magazine · 1989 · 166 citations
Storage assignment to decrease code size
Stan Liao, Srinivas Devadas, Kurt Keutzer et al. · 1995 · 131 citations