The MMCO (Memory Modeling, Characterization and Optimization) tool targets the modeling and the optimization of various metrics for the memory hierarchy of a system. To implement these optimizations, the tools uses appropriately characterized memory models that allow the tool to be also used as an estimator of the various metrics. The MMCO tool has been originally developed as a standalone application that has been eventually modified for its integration into the COMPLEX flow, and specifically into the DSE framework.

The basic optimization strategy implemented by MMCO relies on sub-banking (i.e., partitioning) of a memory array. An application-driven, non-uniform partitioning allows yielding memories with better figures in all metrics. Such customized partitioning exploits one main characteristic of typical memory access patterns of an application, namely, its highly non-uniform distribution: most memory location have a small number of accesses, whereas a limited subset experiences the vast majority of the accesses.

Concerning the metrics targeted by the optimization, we considered energy and lifetime. The former refers to the total energy of a given application run by the system, while the latter refers to the time until which the memory can be reliably accessed. More specifically, we consider reliability effects determined by transistor aging (NBTI in particular). Notice that both metrics are affected by the application run by the system (and therefore its memory access pattern).

When used as an estimator, the tool simply evaluates the value of the two metrics without performing any modification of the memory hierarchy (i.e., partitioning). This mode is useful in the DSE loop to for evaluating the energy and lifetime impact of other optimizations.

In the standalone version, the tool requires only one inputs: the memory access trace (which can extracted with any profiler and just translated into a standard format), and

In Figure 24 we show an example of the typical output of MMCO. It is simply invoked feeding it with an execution trace (sim.memtrc.c.000) with the –f; the tool outputs the total energy and the expected lifetime of the memory.

To activate optimization in MMCO, additional switches in the command line are required. In particular, the –m <# of partitions> switch forces the optimization to be activated with the objective of optimizing the two metrics. Since the optimal result for each metric can be different, three different partitioning strategies are possible: joint energy/lifetime, energy only and lifetime only. These options are specified with the –e <value> switch, where <value> = {1,2,3} represent the three above strategies in that order.

Figure 2 shows an example of execution using –e 1. Notice that energy and lifetime savings are significant thanks to the high non-uniformity of the memory access distribution.

Figure 1: MMCO used as an estimator of memory energy and lifetime.

Figure 2: MMCO used as an energy and lifetime optimization tool.




Successful final review meeting
On Thursday, May 25th, the final COMPLEX review meeting has been held in Brussels.


Final public deliverables uploaded

All public COMPLEX deliverables are now available in the Deliverables section.


COMPLEX @ ISCUG'2013 conference
14-15 April, 2013 - Noida, India


Newsflash RSS Feed