Self-aware Memory: an adaptive memory management system for upcoming manycore architectures and its decentralized self-optimization process

Abstract

The number of cores per processor has been increased on and on in recent years. Carrying on with that, manycore processor systems will be the future system structure, and even within range for usage in desktop or mobile systems. But today’s manycore processors are primarily designed for high performance applications. Access to the external memory from the individual cores is avoided. As yet the system memory commonly consists of only one or a few memory components and offers access over a small number of controllers. This leads to congestion, inefficient memory assignment and the scalability of the memory is limited. However, there will be additional new scenarios, with multiple concurrently running dynamic applications, changing I/O characteristics and a not predictable memory usage in the near future. Highly dynamic workloads with varying memory usage have to be utilized. Consequently, the memory management must become more flexible and distributed in nature. Moreover, dynamic memory allocation will be a necessity, and a transparent optimization of the physical memory resource utilization can be done with integrated self-organization mechanisms, e.g. for locality, load distribution or energy efficiency issues. The autonomous self-optimizing memory architecture Self-aware Memory satisfies all these challenges with a scalable pooling of fully-decentralized interacting memory components. With it, flexible, reliable and scalable memory management is available. Access to private and shared memory is enabled in a flexible way and efficient synchronization mechanism are offered while contemporaneously providing comfortable usage and supporting well-known programming mechanisms. The presented evaluation addresses the parameters of the included self-optimization mechanism and their impact on the optimization. The results show that the overhead of the decentralized optimization process is amortized by the optimized runtime using the appropriate parameter settings.

This is a preview of subscription content, access via your institution.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19

References

  1. 1.

    Becker J, Brändle K, Brinkschulte U, Henkel J, Karl W, Köster T, Wenz M, Wörn H (2006) Digital on-demand computing organism for real-time systems. In: ARCS Workshops, pp 230–245

  2. 2.

    Buchty R, Mattes O, Karl W (2008) Self-aware memory: managing distributed memory in an autonomous multi-master environment. In: Architecture of computing systems—ARCS 2008, Lecture Notes in Computer Science, vol 4934, pp 98–113

  3. 3.

    Duato J (2009) Beyond the power and memory walls: The role of HyperTransport in future system architectures. In: First international workshop on hypertransport research and applications (WHTRA)

  4. 4.

    Fleig T, Mattes O, Karl W (2014) Evaluation of adaptive memory management techniques on the Tilera TILE-Gx Platform. In: 11th workshop on parallel systems and algorithms (PASA 2014), Lübeck

  5. 5.

    Gries M, Hoffmann U, Konow M, Riepen M (2011) SCC: A flexible architecture for many-core platform research. Comput Sci Eng 13(6):79–83

    Article  Google Scholar 

  6. 6.

    Heinecke A, Klemm M, Bungartz H-J (2012) From GPGPU to many-core: nvidia fermi and intel many integrated core architecture. Comput Sci Eng 14(2):78–83

    Article  Google Scholar 

  7. 7.

    Kalray: KALRAYs MPPA (2013) (Multi-Purpose Processor Array). http://www.kalray.eu/products/mppa-manycore/

  8. 8.

    Kephart JO, Chess DM (2003) The vision of autonomic computing. IEEE Comput Soc Press 36(1):41–50

    Article  Google Scholar 

  9. 9.

    Kramer D, Buchty R, Karl W (2011) Monitoring and self-awareness for heterogeneous, adaptive computing systems. In: Organic Computing - a paradigm shift for complex systems, autonomic systems, vol. 1. Springer, Basel, pp 163–177

  10. 10.

    Landwehr A, Zuckerman S, Gao GR (2013) Toward a Self-aware system for exascale architectures. In: CAPSL Technical Memo 123

  11. 11.

    Lee H, Cho S, Childers BR (2011) CloudCache: expanding and shrinking private caches. In: IEEE 17th international symposium on high performance computer architecture (HPCA), pp 219–230

  12. 12.

    Mathews G, Durrant-Whyte H, Prokopenko M (2007) Decentralized decision making for multiagent systems. In: Advances in applied self-organizing systems. Springer, London, pp 77–104

  13. 13.

    Mattes O (2013) An Autonomous self-optimizing memory system for upcoming manycore architectures. In: Proceedings of the first organic computing doctoral dissertation colloquium (OC-DDC’13). vol 2013–06, Fakultät für Angewandte Informatik der Universität Augsburg, pp 4–7

  14. 14.

    Mattes O, Karl W (2013) Self-aware memory - an autonomous self-optimizing memory system for upcoming manycore architectures. In: Memory architecture and organization Workshop (MeAOW’13), Embedded Systems Week 2013, Montreal

  15. 15.

    Mattes O, Schindewolf M, Sedler R, Buchty R, Karl W (2011) Efficient synchronization techniques in a decentralized memory management system enabling shared memory. PARS 2011, Rüschlikon, Switzerland, In: PARS Mitteilungen GI, vol 28, Gesellschaft für Informatik e.V

  16. 16.

    Richter U, Mnif M, Branke J, Müller-Schloer C, Schmeck H (2006) Towards a generic observer/controller architecture for organic computing. In: GI Jahrestagung, vol, pp 112–119

  17. 17.

    Schindewolf M, Mattes O, Karl W (2011) Thread creation for self-aware parallel systems. In: Facing the multicore-challenge, vol 6310., Lecture Notes in Computer Science. Springer, Berlin, pp 42–53

  18. 18.

    Taylor MB, Kim J, Miller J, Wentzlaff D, Ghodrat F, Greenwald B, Hoffman H, Johnson P, Lee JW, Lee W, Ma A, Saraf A, Seneski M, Shnidman N, Strumpen V, Frank M, Amarasinghe S, Agarwal A (2002) The Raw microprocessor: a computational fabric for software circuits and general-purpose programs. IEEE Micro 22(2):25–35

    Article  Google Scholar 

  19. 19.

    Tilera Corporation (2012) TILE-Gx8038 processor specification brief. San Jose, CA. http://www.tilera.com/sites/default/files/productbriefs/TILE-Gx8036_PB033-02_web.pdf

Download references

Author information

Affiliations

Authors

Corresponding author

Correspondence to Oliver Mattes.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Mattes, O., Karl, W. Self-aware Memory: an adaptive memory management system for upcoming manycore architectures and its decentralized self-optimization process. Des Autom Embed Syst 17, 739–769 (2013). https://doi.org/10.1007/s10617-014-9153-6

Download citation

Keywords

  • Optimization
  • Adaptation
  • Memory management
  • Self-aware Memory (SaM)
  • Manycore systems
  • Scalability