Dynamic Memory

14,000,000 Leading Edge Experts on the ideXlab platform

Scan Science and Technology

Contact Leading Edge Experts & Companies

Scan Science and Technology

Contact Leading Edge Experts & Companies

The Experts below are selected from a list of 95268 Experts worldwide ranked by ideXlab platform

Dimitrios Soudris - One of the best experts on this subject based on the ideXlab platform.

  • Application-Specific Multi-Threaded Dynamic Memory Management
    Scalable Multi-core Architectures, 2011
    Co-Authors: Sotirios Xydis, Alexandros Bartzas, Iraklis Anagnostopoulos, Dimitrios Soudris
    Abstract:

    This chapter presents the methodology and the corresponding software framework developed to systematically explore the design space of Multi-Threaded Dynamic Memory Management (MTh-DMM). We developed two exploration approaches: (a) a two-phase constraint-orthogonal and (b) a single-phase aggressive exploration methodologies. Pareto optimal configurations are generated considering various design targets. Experimental results evaluate the solution quality delivered by the proposed exploration approaches and by state-of-the art general purpose Dynamic Memory management solutions, based on a real-life multi-threaded network application.

  • Reducing Memory fragmentation in network applications with Dynamic Memory allocators optimized for performance
    Computer Communications, 2006
    Co-Authors: Stylianos Mamagkakis, Dimitrios Soudris, David Atienza, Francky Catthoor, Christos Baloukas, Antonios Thanailakis
    Abstract:

    The needs for run-time data storage in modern wired and wireless network applications are increasing. Additionally, the nature of these applications is very Dynamic, resulting in heavy reliance on Dynamic Memory allocation. The most significant problem in Dynamic Memory allocation is fragmentation, which can cause the system to run out of Memory and crash, if it is left unchecked. The available Dynamic Memory allocation solutions are provided by the real-time Operating Systems used in embedded or general-purpose systems. These state-of-the-art Dynamic Memory allocators are designed to satisfy the run-time Memory requests of a wide range of applications. Contrary to most applications, network applications need to allocate too many different Memory sizes (e.g., hundreds different sizes for packets) and have an extremely Dynamic allocation and de-allocation behavior (e.g., unpredictable web-browsing activity). Therefore, the performance and the de-fragmentation efficiency of these allocators is limited. In this paper, we analyze all the important issues of fragmentation and the ways to reduce it in network applications, while keeping the performance of the Dynamic Memory allocator unaffected or even improving it. We propose highly customized Dynamic Memory allocators, which can be configured for specific network needs. We assess the effectiveness of the proposed approach in three representative real-life case studies of wired and wireless network applications. Finally, we show very significant reduction in Memory fragmentation and increase in performance compared to state-of-the-art Dynamic Memory allocators utilized by real-time Operating Systems.

  • EMSOFT - Energy-efficient Dynamic Memory allocators at the middleware level of embedded systems
    Proceedings of the 6th ACM & IEEE International conference on Embedded software - EMSOFT '06, 2006
    Co-Authors: Stylianos Mamagkakis, David Atienza, Francky Catthoor, Christophe Poucet, Dimitrios Soudris
    Abstract:

    The next generation of embedded systems will be dominated by mobile devices, which are able to deliver communications and rich multimedia content anytime, anywhere. The major themes in these ubiquitous computing systems are applications with increased user control and interactivity with the environment. Therefore, the storage of Dynamic data increases, thus making the Dynamic Memory allocation of heap data at run time a very important component with heavy energy consumption. In this paper, we propose a novel script, which heavily customizes the Dynamic Memory allocator according to the target application domain and the underlying Memory hier-archy of the embedded system. The Dynamic Memory allocator resides in the middleware level or in the Operating System level (whenever it is available). The result of our script and automated tools is the reduction of energy consumption by 72% on average and the reduction of the execution time by 40% on average, which is demonstrated with the use of 1 real life wireless network appli-cation and 1 multimedia application.

  • Reducing Memory fragmentation with performance-optimized Dynamic Memory allocators in network applications
    Lecture Notes in Computer Science, 2005
    Co-Authors: Stylianos Mamagkakis, Dimitrios Soudris, David Atienza, Francky Catthoor, Jose M. Mendias, Christos Baloukas, Antonios Thanailakis
    Abstract:

    The needs for run-time data storage in modern wired and wireless network applications are increasing. Additionally, the nature of these applications is very Dynamic, resulting in heavy reliance to Dynamic Memory allocation. The most significant problem in Dynamic Memory allocation is fragmentation, which can cause the system to run out of Memory and crash, if it is left unchecked. The available Dynamic Memory allocation solutions are provided by the real time Operating Systems used in embedded or general-purpose systems. These state-of-the-art Dynamic Memory allocators are designed to satisfy the run-time Memory requests of a wide range of applications. Contrary to most applications, network applications need to allocate too many different Memory sizes (e.g. hundreds different sizes for packets) and have an extremely Dynamic allocation and de-allocation behavior (e.g. unpredictable web-browsing activity). Therefore, the performance and the de-fragmentation efficiency of these allocators is limited. In this paper, we analyze all the important issues of fragmentation and the ways to reduce it in network applications, while keeping the performance of the Dynamic Memory allocator unaffected or even improving it. We propose highly customized Dynamic Memory allocators, which can be configured for specific network needs. We assess the effectiveness of the proposed approach in two representative real-life case studies of wired and wireless network applications. Finally, we show very significant reduction in Memory fragmentation and increase in performance compared to state-of-the-art Dynamic Memory allocators utilized by real-time Operating Systems.

  • WWIC - Reducing Memory fragmentation with performance-optimized Dynamic Memory allocators in network applications
    Lecture Notes in Computer Science, 2005
    Co-Authors: Stylianos Mamagkakis, Dimitrios Soudris, David Atienza, Francky Catthoor, Jose M. Mendias, Christos Baloukas, Antonios Thanailakis
    Abstract:

    The needs for run-time data storage in modern wired and wireless network applications are increasing. Additionally, the nature of these applications is very Dynamic, resulting in heavy reliance to Dynamic Memory allocation. The most significant problem in Dynamic Memory allocation is fragmentation, which can cause the system to run out of Memory and crash, if it is left unchecked. The available Dynamic Memory allocation solutions are provided by the real time Operating Systems used in embedded or general-purpose systems. These state-of-the-art Dynamic Memory allocators are designed to satisfy the run-time Memory requests of a wide range of applications. Contrary to most applications, network applications need to allocate too many different Memory sizes (e.g. hundreds different sizes for packets) and have an extremely Dynamic allocation and de-allocation behavior (e.g. unpredictable web-browsing activity). Therefore, the performance and the de-fragmentation efficiency of these allocators is limited. In this paper, we analyze all the important issues of fragmentation and the ways to reduce it in network applications, while keeping the performance of the Dynamic Memory allocator unaffected or even improving it. We propose highly customized Dynamic Memory allocators, which can be configured for specific network needs. We assess the effectiveness of the proposed approach in two representative real-life case studies of wired and wireless network applications. Finally, we show very significant reduction in Memory fragmentation and increase in performance compared to state-of-the-art Dynamic Memory allocators utilized by real-time Operating Systems.

David Atienza - One of the best experts on this subject based on the ideXlab platform.

  • Reducing Memory fragmentation in network applications with Dynamic Memory allocators optimized for performance
    Computer Communications, 2006
    Co-Authors: Stylianos Mamagkakis, Dimitrios Soudris, David Atienza, Francky Catthoor, Christos Baloukas, Antonios Thanailakis
    Abstract:

    The needs for run-time data storage in modern wired and wireless network applications are increasing. Additionally, the nature of these applications is very Dynamic, resulting in heavy reliance on Dynamic Memory allocation. The most significant problem in Dynamic Memory allocation is fragmentation, which can cause the system to run out of Memory and crash, if it is left unchecked. The available Dynamic Memory allocation solutions are provided by the real-time Operating Systems used in embedded or general-purpose systems. These state-of-the-art Dynamic Memory allocators are designed to satisfy the run-time Memory requests of a wide range of applications. Contrary to most applications, network applications need to allocate too many different Memory sizes (e.g., hundreds different sizes for packets) and have an extremely Dynamic allocation and de-allocation behavior (e.g., unpredictable web-browsing activity). Therefore, the performance and the de-fragmentation efficiency of these allocators is limited. In this paper, we analyze all the important issues of fragmentation and the ways to reduce it in network applications, while keeping the performance of the Dynamic Memory allocator unaffected or even improving it. We propose highly customized Dynamic Memory allocators, which can be configured for specific network needs. We assess the effectiveness of the proposed approach in three representative real-life case studies of wired and wireless network applications. Finally, we show very significant reduction in Memory fragmentation and increase in performance compared to state-of-the-art Dynamic Memory allocators utilized by real-time Operating Systems.

  • EMSOFT - Energy-efficient Dynamic Memory allocators at the middleware level of embedded systems
    Proceedings of the 6th ACM & IEEE International conference on Embedded software - EMSOFT '06, 2006
    Co-Authors: Stylianos Mamagkakis, David Atienza, Francky Catthoor, Christophe Poucet, Dimitrios Soudris
    Abstract:

    The next generation of embedded systems will be dominated by mobile devices, which are able to deliver communications and rich multimedia content anytime, anywhere. The major themes in these ubiquitous computing systems are applications with increased user control and interactivity with the environment. Therefore, the storage of Dynamic data increases, thus making the Dynamic Memory allocation of heap data at run time a very important component with heavy energy consumption. In this paper, we propose a novel script, which heavily customizes the Dynamic Memory allocator according to the target application domain and the underlying Memory hier-archy of the embedded system. The Dynamic Memory allocator resides in the middleware level or in the Operating System level (whenever it is available). The result of our script and automated tools is the reduction of energy consumption by 72% on average and the reduction of the execution time by 40% on average, which is demonstrated with the use of 1 real life wireless network appli-cation and 1 multimedia application.

  • Reducing Memory fragmentation with performance-optimized Dynamic Memory allocators in network applications
    Lecture Notes in Computer Science, 2005
    Co-Authors: Stylianos Mamagkakis, Dimitrios Soudris, David Atienza, Francky Catthoor, Jose M. Mendias, Christos Baloukas, Antonios Thanailakis
    Abstract:

    The needs for run-time data storage in modern wired and wireless network applications are increasing. Additionally, the nature of these applications is very Dynamic, resulting in heavy reliance to Dynamic Memory allocation. The most significant problem in Dynamic Memory allocation is fragmentation, which can cause the system to run out of Memory and crash, if it is left unchecked. The available Dynamic Memory allocation solutions are provided by the real time Operating Systems used in embedded or general-purpose systems. These state-of-the-art Dynamic Memory allocators are designed to satisfy the run-time Memory requests of a wide range of applications. Contrary to most applications, network applications need to allocate too many different Memory sizes (e.g. hundreds different sizes for packets) and have an extremely Dynamic allocation and de-allocation behavior (e.g. unpredictable web-browsing activity). Therefore, the performance and the de-fragmentation efficiency of these allocators is limited. In this paper, we analyze all the important issues of fragmentation and the ways to reduce it in network applications, while keeping the performance of the Dynamic Memory allocator unaffected or even improving it. We propose highly customized Dynamic Memory allocators, which can be configured for specific network needs. We assess the effectiveness of the proposed approach in two representative real-life case studies of wired and wireless network applications. Finally, we show very significant reduction in Memory fragmentation and increase in performance compared to state-of-the-art Dynamic Memory allocators utilized by real-time Operating Systems.

  • WWIC - Reducing Memory fragmentation with performance-optimized Dynamic Memory allocators in network applications
    Lecture Notes in Computer Science, 2005
    Co-Authors: Stylianos Mamagkakis, Dimitrios Soudris, David Atienza, Francky Catthoor, Jose M. Mendias, Christos Baloukas, Antonios Thanailakis
    Abstract:

    The needs for run-time data storage in modern wired and wireless network applications are increasing. Additionally, the nature of these applications is very Dynamic, resulting in heavy reliance to Dynamic Memory allocation. The most significant problem in Dynamic Memory allocation is fragmentation, which can cause the system to run out of Memory and crash, if it is left unchecked. The available Dynamic Memory allocation solutions are provided by the real time Operating Systems used in embedded or general-purpose systems. These state-of-the-art Dynamic Memory allocators are designed to satisfy the run-time Memory requests of a wide range of applications. Contrary to most applications, network applications need to allocate too many different Memory sizes (e.g. hundreds different sizes for packets) and have an extremely Dynamic allocation and de-allocation behavior (e.g. unpredictable web-browsing activity). Therefore, the performance and the de-fragmentation efficiency of these allocators is limited. In this paper, we analyze all the important issues of fragmentation and the ways to reduce it in network applications, while keeping the performance of the Dynamic Memory allocator unaffected or even improving it. We propose highly customized Dynamic Memory allocators, which can be configured for specific network needs. We assess the effectiveness of the proposed approach in two representative real-life case studies of wired and wireless network applications. Finally, we show very significant reduction in Memory fragmentation and increase in performance compared to state-of-the-art Dynamic Memory allocators utilized by real-time Operating Systems.

  • custom design of multi level Dynamic Memory management subsystem for embedded systems
    Signal Processing Systems, 2004
    Co-Authors: Stylianos Mamagkakis, Dimitrios Soudris, David Atienza, Christophe Poucet, F Catthoor, J M Mendias
    Abstract:

    In this paper, we propose a new approach to design convenient Dynamic Memory management subsystems, profiting from the multiple Memory levels. It analyzes the logical phases involved in modem Dynamic applications to effectively distribute the Dynamically allocated data among the multi-level Memory hierarchies present in embedded devices. We assess the effectiveness of the proposed approach for three representative real-life case studies of the new Dynamic application domains (i.e., network and 3D rendering applications) ported to embedded systems. The results accomplished with our approach show a very significant reduction in energy consumption (up to 40%) over state-of-the-art solutions for Dynamic Memory management on embedded systems with typical cache-main Memory architectures while respecting the real-time requirements of these applications.

Stylianos Mamagkakis - One of the best experts on this subject based on the ideXlab platform.

  • Reducing Memory fragmentation in network applications with Dynamic Memory allocators optimized for performance
    Computer Communications, 2006
    Co-Authors: Stylianos Mamagkakis, Dimitrios Soudris, David Atienza, Francky Catthoor, Christos Baloukas, Antonios Thanailakis
    Abstract:

    The needs for run-time data storage in modern wired and wireless network applications are increasing. Additionally, the nature of these applications is very Dynamic, resulting in heavy reliance on Dynamic Memory allocation. The most significant problem in Dynamic Memory allocation is fragmentation, which can cause the system to run out of Memory and crash, if it is left unchecked. The available Dynamic Memory allocation solutions are provided by the real-time Operating Systems used in embedded or general-purpose systems. These state-of-the-art Dynamic Memory allocators are designed to satisfy the run-time Memory requests of a wide range of applications. Contrary to most applications, network applications need to allocate too many different Memory sizes (e.g., hundreds different sizes for packets) and have an extremely Dynamic allocation and de-allocation behavior (e.g., unpredictable web-browsing activity). Therefore, the performance and the de-fragmentation efficiency of these allocators is limited. In this paper, we analyze all the important issues of fragmentation and the ways to reduce it in network applications, while keeping the performance of the Dynamic Memory allocator unaffected or even improving it. We propose highly customized Dynamic Memory allocators, which can be configured for specific network needs. We assess the effectiveness of the proposed approach in three representative real-life case studies of wired and wireless network applications. Finally, we show very significant reduction in Memory fragmentation and increase in performance compared to state-of-the-art Dynamic Memory allocators utilized by real-time Operating Systems.

  • EMSOFT - Energy-efficient Dynamic Memory allocators at the middleware level of embedded systems
    Proceedings of the 6th ACM & IEEE International conference on Embedded software - EMSOFT '06, 2006
    Co-Authors: Stylianos Mamagkakis, David Atienza, Francky Catthoor, Christophe Poucet, Dimitrios Soudris
    Abstract:

    The next generation of embedded systems will be dominated by mobile devices, which are able to deliver communications and rich multimedia content anytime, anywhere. The major themes in these ubiquitous computing systems are applications with increased user control and interactivity with the environment. Therefore, the storage of Dynamic data increases, thus making the Dynamic Memory allocation of heap data at run time a very important component with heavy energy consumption. In this paper, we propose a novel script, which heavily customizes the Dynamic Memory allocator according to the target application domain and the underlying Memory hier-archy of the embedded system. The Dynamic Memory allocator resides in the middleware level or in the Operating System level (whenever it is available). The result of our script and automated tools is the reduction of energy consumption by 72% on average and the reduction of the execution time by 40% on average, which is demonstrated with the use of 1 real life wireless network appli-cation and 1 multimedia application.

  • Reducing Memory fragmentation with performance-optimized Dynamic Memory allocators in network applications
    Lecture Notes in Computer Science, 2005
    Co-Authors: Stylianos Mamagkakis, Dimitrios Soudris, David Atienza, Francky Catthoor, Jose M. Mendias, Christos Baloukas, Antonios Thanailakis
    Abstract:

    The needs for run-time data storage in modern wired and wireless network applications are increasing. Additionally, the nature of these applications is very Dynamic, resulting in heavy reliance to Dynamic Memory allocation. The most significant problem in Dynamic Memory allocation is fragmentation, which can cause the system to run out of Memory and crash, if it is left unchecked. The available Dynamic Memory allocation solutions are provided by the real time Operating Systems used in embedded or general-purpose systems. These state-of-the-art Dynamic Memory allocators are designed to satisfy the run-time Memory requests of a wide range of applications. Contrary to most applications, network applications need to allocate too many different Memory sizes (e.g. hundreds different sizes for packets) and have an extremely Dynamic allocation and de-allocation behavior (e.g. unpredictable web-browsing activity). Therefore, the performance and the de-fragmentation efficiency of these allocators is limited. In this paper, we analyze all the important issues of fragmentation and the ways to reduce it in network applications, while keeping the performance of the Dynamic Memory allocator unaffected or even improving it. We propose highly customized Dynamic Memory allocators, which can be configured for specific network needs. We assess the effectiveness of the proposed approach in two representative real-life case studies of wired and wireless network applications. Finally, we show very significant reduction in Memory fragmentation and increase in performance compared to state-of-the-art Dynamic Memory allocators utilized by real-time Operating Systems.

  • WWIC - Reducing Memory fragmentation with performance-optimized Dynamic Memory allocators in network applications
    Lecture Notes in Computer Science, 2005
    Co-Authors: Stylianos Mamagkakis, Dimitrios Soudris, David Atienza, Francky Catthoor, Jose M. Mendias, Christos Baloukas, Antonios Thanailakis
    Abstract:

    The needs for run-time data storage in modern wired and wireless network applications are increasing. Additionally, the nature of these applications is very Dynamic, resulting in heavy reliance to Dynamic Memory allocation. The most significant problem in Dynamic Memory allocation is fragmentation, which can cause the system to run out of Memory and crash, if it is left unchecked. The available Dynamic Memory allocation solutions are provided by the real time Operating Systems used in embedded or general-purpose systems. These state-of-the-art Dynamic Memory allocators are designed to satisfy the run-time Memory requests of a wide range of applications. Contrary to most applications, network applications need to allocate too many different Memory sizes (e.g. hundreds different sizes for packets) and have an extremely Dynamic allocation and de-allocation behavior (e.g. unpredictable web-browsing activity). Therefore, the performance and the de-fragmentation efficiency of these allocators is limited. In this paper, we analyze all the important issues of fragmentation and the ways to reduce it in network applications, while keeping the performance of the Dynamic Memory allocator unaffected or even improving it. We propose highly customized Dynamic Memory allocators, which can be configured for specific network needs. We assess the effectiveness of the proposed approach in two representative real-life case studies of wired and wireless network applications. Finally, we show very significant reduction in Memory fragmentation and increase in performance compared to state-of-the-art Dynamic Memory allocators utilized by real-time Operating Systems.

  • custom design of multi level Dynamic Memory management subsystem for embedded systems
    Signal Processing Systems, 2004
    Co-Authors: Stylianos Mamagkakis, Dimitrios Soudris, David Atienza, Christophe Poucet, F Catthoor, J M Mendias
    Abstract:

    In this paper, we propose a new approach to design convenient Dynamic Memory management subsystems, profiting from the multiple Memory levels. It analyzes the logical phases involved in modem Dynamic applications to effectively distribute the Dynamically allocated data among the multi-level Memory hierarchies present in embedded devices. We assess the effectiveness of the proposed approach for three representative real-life case studies of the new Dynamic application domains (i.e., network and 3D rendering applications) ported to embedded systems. The results accomplished with our approach show a very significant reduction in energy consumption (up to 40%) over state-of-the-art solutions for Dynamic Memory management on embedded systems with typical cache-main Memory architectures while respecting the real-time requirements of these applications.

J. Morris Chang - One of the best experts on this subject based on the ideXlab platform.

  • A high-performance space saving Dynamic Memory manager
    2005
    Co-Authors: J. Morris Chang, Yusuf Hasan
    Abstract:

    Managing program Dynamic Memory can consume up to 60% of program execution time. Object oriented languages like C++ allocate Dynamic Memory prolifically. Since computer Memory is a limited resource its efficient utilization is required to minimize wastage and keep costs down. It is known that different Memory allocation algorithms perform differently some being more expensive in terms of total heap Memory usage than others. The processing time cost of Memory allocation and deallocation also varies widely with allocating algorithms. Allocation algorithms such as best fit seem to minimize Memory consumption while segregated storage algorithms minimize the time cost. There is usually a tradeoff between time and space costs. The goal of a good allocation algorithm is to find a reasonable balance between the two. Fragmentation of the heap space is the basic problem of Dynamic Memory management but it has been poorly understood. It can lead to heap Memory waste. In this study we have clearly defined and measured fragmentation. We have also developed a tunable segregated fit allocation algorithm based on known data about the Dynamic Memory behavior of programs that shows excellent performance and Memory usage. It is also shown that Dynamic Memory waste is unavoidable in some programs.

  • An integrated Dynamic Memory tracing tool for C
    Information Sciences, 2003
    Co-Authors: Woo Hyong Lee, J. Morris Chang
    Abstract:

    Dynamic Memory management has been a high cost component in many software systems. A study has shown that Memory intensive C programs can consume up to 30% of the program run time in Memory allocation and liberation. Especially, in C++ programs, they tend to have object creation and deletion prolifically. C++ Memory allocation rate can be as much as 10 times higher than the comparable applications written in C. Despite the importance of Dynamic Memory management in C++, there exist few software tools to study Dynamic Memory in C++. This paper introduces a tracing tool, called mtrace++, to study the Dynamic Memory allocation behavior in C++ programs.Mtrace++ is a source code level instrumented tracing tool which produces records of allocation and deallocation information. The allocation information contains size, type and path. The allocation paths may lead to indirect Memory allocation. The collected traced data is analyzed by stat. Stat produces concise information from the traced data. Mtrace++ provides extended functionalities which include measuring life-spans and detecting Memory leaks. With limited overheads, mtrace++ can help programmers to solve Dynamic Memory problems with affordable cost.

  • DMMX: Dynamic Memory management extensions
    Journal of Systems and Software, 2002
    Co-Authors: J. Morris Chang, Witawas Srisa-an, Chia-tien Dan Lo, Edward F. Gehringer
    Abstract:

    Dynamic Memory management allows programmers to be more productive and increases system reliability and functionality. However, software algorithms for Memory management are slow and non-deterministic. It is well known that object-oriented applications tend to be Dynamic Memory intensive. This has led programmers to eschew Dynamic Memory allocation for many real-time and embedded systems. Instead, programmers using Java or C++ as a development language frequently decide to allocate Memory statically instead of Dynamically. In this paper, we present the design of a bitmap-based Memory allocator implemented primarily in combinational logic to allocate Memory in a small, predictable amount of time. It works in conjunction with an application-specific instruction-set extension called the Dynamic Memory management extension (DMMX). Allocation is done through a complete binary tree of combinational logic, which allows constant-time object creation. The garbage collection algorithm is mark sweep, where the sweeping phase can be accomplished in constant time. This hardware scheme can greatly improve the speed and predictability of Dynamic Memory management. The proposed DMMX is an add-on approach, which allows easy integration into any CPU, hardware-implemented Java virtual machine, or processor in Memory.

  • An efficient data structure for Dynamic Memory management
    Journal of Systems and Software, 2000
    Co-Authors: J. Morris Chang, Charles H. Daugherty
    Abstract:

    Abstract Advances in software engineering, such as graphical user interface and object-oriented programming, have caused applications to become more Memory intensive. The growing popularity of these applications increases the importance of high-performance Dynamic Memory management. This paper introduces a new data structure intended to increase the efficiency of implementations of common Dynamic Memory allocation and deallocation algorithms, including First Fit . The data structure, called the Common List , establishes a relationship between the allocated and free list. This strategy increases significantly the deallocation performance. Simulation results based on the traces from publicly available software applications are presented.

  • ICCD - Architectural support for Dynamic Memory management
    Proceedings 2000 International Conference on Computer Design, 1
    Co-Authors: J. Morris Chang, Witawas Srisa-an
    Abstract:

    Recent advances in software engineering, such as graphical user interfaces and object-oriented programming, have caused applications to become more Memory intensive. These applications tend to allocate Dynamic Memory prolifically. Moreover, automatic Dynamic Memory reclamation (garbage collection, GC) has become a popular feature in modern programming languages. As a result, the time consumed by Dynamic storage management can be up to one-third of the program execution time. This illustrates the need for a high-performance Memory management scheme. This paper presents a top-level design and evaluation of the proposed instruction extensions to facilitate heap management.

Francky Catthoor - One of the best experts on this subject based on the ideXlab platform.

  • Reducing Memory fragmentation in network applications with Dynamic Memory allocators optimized for performance
    Computer Communications, 2006
    Co-Authors: Stylianos Mamagkakis, Dimitrios Soudris, David Atienza, Francky Catthoor, Christos Baloukas, Antonios Thanailakis
    Abstract:

    The needs for run-time data storage in modern wired and wireless network applications are increasing. Additionally, the nature of these applications is very Dynamic, resulting in heavy reliance on Dynamic Memory allocation. The most significant problem in Dynamic Memory allocation is fragmentation, which can cause the system to run out of Memory and crash, if it is left unchecked. The available Dynamic Memory allocation solutions are provided by the real-time Operating Systems used in embedded or general-purpose systems. These state-of-the-art Dynamic Memory allocators are designed to satisfy the run-time Memory requests of a wide range of applications. Contrary to most applications, network applications need to allocate too many different Memory sizes (e.g., hundreds different sizes for packets) and have an extremely Dynamic allocation and de-allocation behavior (e.g., unpredictable web-browsing activity). Therefore, the performance and the de-fragmentation efficiency of these allocators is limited. In this paper, we analyze all the important issues of fragmentation and the ways to reduce it in network applications, while keeping the performance of the Dynamic Memory allocator unaffected or even improving it. We propose highly customized Dynamic Memory allocators, which can be configured for specific network needs. We assess the effectiveness of the proposed approach in three representative real-life case studies of wired and wireless network applications. Finally, we show very significant reduction in Memory fragmentation and increase in performance compared to state-of-the-art Dynamic Memory allocators utilized by real-time Operating Systems.

  • EMSOFT - Energy-efficient Dynamic Memory allocators at the middleware level of embedded systems
    Proceedings of the 6th ACM & IEEE International conference on Embedded software - EMSOFT '06, 2006
    Co-Authors: Stylianos Mamagkakis, David Atienza, Francky Catthoor, Christophe Poucet, Dimitrios Soudris
    Abstract:

    The next generation of embedded systems will be dominated by mobile devices, which are able to deliver communications and rich multimedia content anytime, anywhere. The major themes in these ubiquitous computing systems are applications with increased user control and interactivity with the environment. Therefore, the storage of Dynamic data increases, thus making the Dynamic Memory allocation of heap data at run time a very important component with heavy energy consumption. In this paper, we propose a novel script, which heavily customizes the Dynamic Memory allocator according to the target application domain and the underlying Memory hier-archy of the embedded system. The Dynamic Memory allocator resides in the middleware level or in the Operating System level (whenever it is available). The result of our script and automated tools is the reduction of energy consumption by 72% on average and the reduction of the execution time by 40% on average, which is demonstrated with the use of 1 real life wireless network appli-cation and 1 multimedia application.

  • Reducing Memory fragmentation with performance-optimized Dynamic Memory allocators in network applications
    Lecture Notes in Computer Science, 2005
    Co-Authors: Stylianos Mamagkakis, Dimitrios Soudris, David Atienza, Francky Catthoor, Jose M. Mendias, Christos Baloukas, Antonios Thanailakis
    Abstract:

    The needs for run-time data storage in modern wired and wireless network applications are increasing. Additionally, the nature of these applications is very Dynamic, resulting in heavy reliance to Dynamic Memory allocation. The most significant problem in Dynamic Memory allocation is fragmentation, which can cause the system to run out of Memory and crash, if it is left unchecked. The available Dynamic Memory allocation solutions are provided by the real time Operating Systems used in embedded or general-purpose systems. These state-of-the-art Dynamic Memory allocators are designed to satisfy the run-time Memory requests of a wide range of applications. Contrary to most applications, network applications need to allocate too many different Memory sizes (e.g. hundreds different sizes for packets) and have an extremely Dynamic allocation and de-allocation behavior (e.g. unpredictable web-browsing activity). Therefore, the performance and the de-fragmentation efficiency of these allocators is limited. In this paper, we analyze all the important issues of fragmentation and the ways to reduce it in network applications, while keeping the performance of the Dynamic Memory allocator unaffected or even improving it. We propose highly customized Dynamic Memory allocators, which can be configured for specific network needs. We assess the effectiveness of the proposed approach in two representative real-life case studies of wired and wireless network applications. Finally, we show very significant reduction in Memory fragmentation and increase in performance compared to state-of-the-art Dynamic Memory allocators utilized by real-time Operating Systems.

  • WWIC - Reducing Memory fragmentation with performance-optimized Dynamic Memory allocators in network applications
    Lecture Notes in Computer Science, 2005
    Co-Authors: Stylianos Mamagkakis, Dimitrios Soudris, David Atienza, Francky Catthoor, Jose M. Mendias, Christos Baloukas, Antonios Thanailakis
    Abstract:

    The needs for run-time data storage in modern wired and wireless network applications are increasing. Additionally, the nature of these applications is very Dynamic, resulting in heavy reliance to Dynamic Memory allocation. The most significant problem in Dynamic Memory allocation is fragmentation, which can cause the system to run out of Memory and crash, if it is left unchecked. The available Dynamic Memory allocation solutions are provided by the real time Operating Systems used in embedded or general-purpose systems. These state-of-the-art Dynamic Memory allocators are designed to satisfy the run-time Memory requests of a wide range of applications. Contrary to most applications, network applications need to allocate too many different Memory sizes (e.g. hundreds different sizes for packets) and have an extremely Dynamic allocation and de-allocation behavior (e.g. unpredictable web-browsing activity). Therefore, the performance and the de-fragmentation efficiency of these allocators is limited. In this paper, we analyze all the important issues of fragmentation and the ways to reduce it in network applications, while keeping the performance of the Dynamic Memory allocator unaffected or even improving it. We propose highly customized Dynamic Memory allocators, which can be configured for specific network needs. We assess the effectiveness of the proposed approach in two representative real-life case studies of wired and wireless network applications. Finally, we show very significant reduction in Memory fragmentation and increase in performance compared to state-of-the-art Dynamic Memory allocators utilized by real-time Operating Systems.

  • Power-Aware Tuning of Dynamic Memory Management for Embedded Real-Time Multimedia Applications
    2004
    Co-Authors: David Atienza, Stylianos Mamagkakis, Miguel Peon, Francky Catthoor, Jose M. Mendias, Dimitrios Soudris
    Abstract:

    In the near future, portable embedded devices must run multimedia applications with enormous computational requirements at low energy consumption. These applications demand extensive Memory footprint and must rely on Dynamic Memory due to the unpredictability of input data (e.g. 3D streams features) and system behaviour (e.g. variable number of applications running concurrently). Within this context, the Dynamic Memory subsystem is one of the main sources of power consumption and embedded systems have very limited batteries to provide efficient general-purpose Dynamic Memory management. As a result, consistent design methodologies that can efficiently tackle the complex Dynamic Memory behaviour of these new applications for low power embedded systems are in great need. In this paper we propose a step-wise system-level approach that allows the design of platform-specific Dynamic Memory management mechanisms with low power consumption for such kind of Dynamic applications. The experimental results in reallife case studies show that our approach improves power consumption up to 89% over current state-of-the-art Dynamic Memory managers for complex applications.