DMMX: Dynamic memory management extensions

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.

[1]  J. Morris Chang,et al.  A High-Performance Memory Allocator for Object-Oriented Systems , 1996, IEEE Trans. Computers.

[2]  Abraham Silberschatz,et al.  Operating System Concepts , 1983 .

[3]  Benjamin G. Zorn,et al.  Memory allocation costs in large C and C++ programs , 1994, Softw. Pract. Exp..

[4]  Dirk Grunwald,et al.  Quantifying Behavioral Differences Between C and C++ Programs , 1994 .

[5]  R. W. Atherton Moving Java to the factory , 1998 .

[6]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[7]  J. Morris Chang,et al.  Architectural support for dynamic memory management , 2000, Proceedings 2000 International Conference on Computer Design.

[8]  David A. Patterson,et al.  Computer architecture (2nd ed.): a quantitative approach , 1996 .

[9]  Lars Lundberg,et al.  Optimizing dynamic memory management in a multithreaded application executing on a multiprocessor , 1998, Proceedings. 1998 International Conference on Parallel Processing (Cat. No.98EX205).

[10]  J. Morris Chang,et al.  Scalable hardware-algorithm for mark-sweep garbage collection , 2000, Proceedings of the 26th Euromicro Conference. EUROMICRO 2000. Informatics: Inventing the Future.

[11]  J. Morris Chang,et al.  A quantitative simulator for dynamic memory managers , 2000, 2000 IEEE International Symposium on Performance Analysis of Systems and Software. ISPASS (Cat. No.00EX422).

[12]  Paul R. Wilson,et al.  Dynamic Storage Allocation: A Survey and Critical Review , 1995, IWMM.

[13]  J. Morris Chang,et al.  A hardware implementation of realloc function , 2000, Integr..

[14]  Rafael Dueire Lins,et al.  Garbage collection: algorithms for automatic dynamic memory management , 1996 .

[15]  J. C. Browne,et al.  The pressure is on [computer systems research] , 1999 .