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.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call