M-Opt is a tool designed to generate, for a given application data access pattern, the optimum data memory hierarchy and the data compression/decompression decisions.

M-Opt also returns optimal data assignment to memory components.

Tool is based on, XPress-MP, a commercial ILP (integer linear programming)  solver from Dash Optimization.

 

M-Opt is composed of two parts:

1. Data Memory Hierarchy Design

2. Data Compression

                

 

 

 

 

 

 

2.          Data Compression

One of the techniques that can be used to reduce memory space consumption (occupancy) of embedded applications is data compression. The goal of data compression is to represent an information source (e.g., a data file, a speech signal, an image, or a video signal) as accurately as possible using the fewest number of bits. While data compression can be an effective way of reducing memory space consumption of embedded applications, it needs to be invoked with care since performance and power costs of decompression can be overwhelming. Therefore, compression/decompression decisions must be made based on a careful analysis of data access pattern of the application.

Automated compiler support can help in deciding the set of data elements to compress/decompress and the points during execution at which these compressions/decompressions should be performed. Based on the data access pattern information,
M-Opt generates the data block locations and  their forms (compressed or uncompressed) along with the compression and decompression decisions. The compression calls target the data blocks that are not expected to be used in the near future, whereas the decompression calls target those data blocks with expected reuse but currently in compressed form.

 

1.          Data Memory Hierarchy Design

A critical component of a chip multiprocessor is its memory subsystem. This is because both power and performance behavior of a chip multiprocessor is largely shaped by its on-chip memory. For embedded systems that repeatedly execute the same application, it makes sense to design a customized, software-managed on-chip memory architecture.

M-Opt  returns an application-specific data memory hierarchy design for chip multiprocessors, based on the given data access pattern and the other input parameters. ILP solver returns the sizes of the memory components in the data memory hierarchy, how these memory components are shared across multiple processors in the system, and what data each memory component is to hold.

 

 

M-OptData Compression

ILP template file and sample input file can be used along with XPress-MP to obtain the optimum data block locations and  their forms (compressed or uncompressed) along with the compression and decompression decisions.

 

M-OptData Memory Hierarchy Design

ILP template file and sample input file can be used along with XPress-MP to obtain the sizes of the memory components in the optimum data memory hierarchy, how these memory components are shared across multiple processors in the system, and what data each memory component is to hold.

M-OptHow To Use

1. Install XPress-MP.

2. Modify the input file to reflect the properties of the given application and memory. For example the data access pattern of the application should be modified.

3. Modify the template file for possible modifications such as some design parameters. For example the number of processors in the chip multiprocessor should be updated as requested.

4. Run the template file on XPress-MP with the specific input file.

5. XPress-MP will return the optimum solution (if any) along with the values for each variable.

6. These values can be analyzed by the programmer, by a software, or by XPress-MP to obtain the optimum data memory hierarchy or data compression/decompression decisions.