Storage Order Optimization for Reducing Storage Size Requirements
Earlier, we have identified a crucial problem in an embedded multimedia application context: finding a good storage order for the data in a program such that the storage size requirements are minimized for a given execution ordering (largely determined in the previous steps). Before developing a practical optimization strategy, we have derived a powerful model of the problem in chapter 5 and gained some vital insights. Now we are ready to proceed with the development of a practical optimization strategy. In this chapter we present our solutions for the storage order optimization step. It mainly aims at reducing storage size requirements for data-dominated applications which can be statically analyzed. A two-step approach is selected from many possible alternatives. In the first substep we try to optimize the intra-array storage order (through the equivalent of data-reverse and data-interchange transformations) in order to obtain an as small as possible address reference window for each array. In the second substep, we approximate the shapes of the occupied address/time domains of the different arrays by rectangles. This allows us to reduce the second substep to a relatively simple placement.
KeywordsWindow Size Integer Linear Programming Execution Order Placement Algorithm Prototype Tool
Unable to display preview. Download preview PDF.