Heap memory is the pool of space that is allocated into linked data structures. It allocates a node in an ordinary read cycle, and recovers nodes in real time during an ordinary write cycle. It also supports efficient, asynchronous garbage collection, and offers full utility of address space. This device is the foundation of ongoing investigation into hardware support for heap-based programming languages, like Lisp, Scheme, ML, and, Haskell. It has also served as a testbed of digital design techniques under the DDD project.
Several extensions are under investigation.
A second version of RCM is designed to improve performance on tree-structured arrays by increasing the degree of nodes from two to four, halving access depth. It also provides for at-memory synchronization and efficient threading, increasing its effectiveness for circular structures. Technical support for this research is provided by Caleb Hess and Willie Hunt.