Data diffusion architectures (also known as cache only memory architectures) provide a shared address space using physically distributed main memory that is associative. The associative nature of main memory decouples each address and its data item from any physical location, allowing data items to diffuse, or migrate and replicate, in any node of main memory according to use. Hence remote accesses tend to become local accesses, making the distributed organisation of main memory transparent to software.
However, for data to diffuse effectively with reasonable performance, a fraction of main memory must be reserved as diffusion space, to allow for data replication and freedom of data migration. At any moment the amount of distinct data resident in main memory must be less than the capacity of main memory. Otherwise data will keep moving around the interconnect medium and memory nodes, possibly continually displacing data in frequent use by the processors, resulting in poor performance.
We present an analysis of the issues in the provision of diffusion space using empirical data from a realistic environment. Our experimental platform is a multiprocessor emulation of a data diffusion architecture that includes the virtual memory component of the Mach operating system. For flexibility in the provision of diffusion space in the context of set-associative memory, our results suggest the need for a simple interaction between virtual memory software and the data diffusing hardware.