This thesis presents a high-performance object-based memory architecture for object-oriented systems such as Smalltalk-80. Four main areas are covered, namely object addressing, memory caching, virtual memory and garbage collection.
A efficient address format is identified and the use of virtually addressed caches to avoid address translation and of fset addition is demonstrated. Furthermore, object-based caches are introduced and shown to be effective. The problems associated with implementing an object-based virtual memory are investigated. Object-swapping and conventional paged virtual memory platforms for Smalltalk-80 are evaluated. Based on these observations, a virtual memory architecture which dynamically groups objects is developed. The effectiveness of the dynamic grouping virtual memory is ascertained and implementation techniques are described. Finally, the behaviour of inaccessible objects in this system is studied.
The PostScript source is in several pieces: the main body, the fig on p17, the fig on p32, the fig on p34, and the fig on p54.