This paper presents a study of the memory coherence problem in shared virtual memory systems on loosely coupled multiprocessors. Two classes of algorithms, centralized and distributed, are proposed for solving the problem. A prototype shared virtual memory system based on these algorithms has been implemented on an Apollo ring. Both theoretical and practical results show that the memory coherence problem can be efficiently solved on a loosely coupled multiprocessor.
Shared virtual memory provides a single address space shared by multiple processors. It allows processes to run in parallel on different processors and naturally migrates data between processors. The main challenge is solving the memory coherence problem, which is similar to that in multicache systems but has different characteristics. The paper presents several algorithms for solving this problem, including centralized and distributed manager algorithms.
The paper discusses the design of shared virtual memory systems, focusing on the granularity of memory units and strategies for maintaining coherence. It presents a centralized manager algorithm that uses a monitor-like approach to manage page faults and ensure coherence. It also presents an improved centralized manager algorithm that reduces the number of messages required for page faults.
The paper also discusses distributed manager algorithms, including a fixed distributed manager algorithm, a broadcast distributed manager algorithm, and a dynamic distributed manager algorithm. The dynamic distributed manager algorithm is particularly effective, as it allows for efficient location of page owners and minimizes the number of messages required for page faults.
The paper concludes that shared virtual memory systems can provide a natural and efficient form of process migration between processors in a distributed system. The success of the prototype system suggests that such architectures can exploit the total processing power and memory capabilities of a loosely coupled multiprocessor in a more unified way than traditional message-passing approaches.This paper presents a study of the memory coherence problem in shared virtual memory systems on loosely coupled multiprocessors. Two classes of algorithms, centralized and distributed, are proposed for solving the problem. A prototype shared virtual memory system based on these algorithms has been implemented on an Apollo ring. Both theoretical and practical results show that the memory coherence problem can be efficiently solved on a loosely coupled multiprocessor.
Shared virtual memory provides a single address space shared by multiple processors. It allows processes to run in parallel on different processors and naturally migrates data between processors. The main challenge is solving the memory coherence problem, which is similar to that in multicache systems but has different characteristics. The paper presents several algorithms for solving this problem, including centralized and distributed manager algorithms.
The paper discusses the design of shared virtual memory systems, focusing on the granularity of memory units and strategies for maintaining coherence. It presents a centralized manager algorithm that uses a monitor-like approach to manage page faults and ensure coherence. It also presents an improved centralized manager algorithm that reduces the number of messages required for page faults.
The paper also discusses distributed manager algorithms, including a fixed distributed manager algorithm, a broadcast distributed manager algorithm, and a dynamic distributed manager algorithm. The dynamic distributed manager algorithm is particularly effective, as it allows for efficient location of page owners and minimizes the number of messages required for page faults.
The paper concludes that shared virtual memory systems can provide a natural and efficient form of process migration between processors in a distributed system. The success of the prototype system suggests that such architectures can exploit the total processing power and memory capabilities of a loosely coupled multiprocessor in a more unified way than traditional message-passing approaches.