DMMX: dynamic memory management extensions

  • Authors:
  • J. Morris Chang;Witawas Srisa-an;Chia-Tien Dan Lo;Edward F. Gehringer

  • Affiliations:
  • Department of Electrical and Computer Engineering, Iowa State University, Ames, IA;Department of Electrical and Computer Engineering, Iowa State University, Ames, IA;Department of Computer Science, Illinois Institute of Technology, Chicago, IL;Department of Electrical and Computer Engineering, North Carolina State University, Raleigh, NC

  • Venue:
  • Journal of Systems and Software
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

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.