A coprocessor architecture for memory management in object-oriented systems
J. Morris Chang · 1993
Object-oriented systems exhibit a very high rate of object creation, but most of the objects are short-lived. As a result, memory-management overhead is significant. This thesis presents the design and evaluation of an application-specific coprocessor architecture to speed up object creation and memory reclamation in object-oriented systems. The architecture supports a bit-vector approach to dynamic storage allocation and liberation. Newly created objects reside in a cache which is reference counted. A simple hardware design for buddy-system allocation that takes advantage of the speed of a pure combinational-logic implementation, with less internal fragmentation than the original buddy system, is also presented. This thesis presents measurements of the performance of this coprocessor design. Simulation results show that 50% to 70% of objects die before they age out of the cache, greatly reducing the number of references to main memory. Overall, more than 60% of memory traffic is saved by the proposed scheme, and the interval between main-memory garbage collections is extended by more than 60%.