DSM Architecture & its Types

Distributed Shared Memory(DSM) Architecture

What ?

  • The distributed shared memory (DSM) implements the shared memory model in distributed systems, which have no physical shared memory
  • The shared memory model provides a virtual address space shared between all nodes
  • The overcome the high cost of communication in distributed systems, DSM systems move data to the location of access

How ?

  • Data moves between main memory and secondary memory (within a node) and between main memories of different nodes
  • Each data object is owned by a node :Initial owner is the node that created object Ownership can change as object moves from node to node
  • When a process accesses data in the shared address space, the mapping manager maps shared memory address to physical memory (local or remote)

Advantages of distributed shared memory (DSM)

  • Data sharing is implicit, hiding data movement.
  • Passing data structures containing pointers is easier.
  • Moving entire object to user takes advantage of locality difference
  • Less expensive to build than tightly coupled multiprocessor system.
  • Very large total physical memory for all nodes: Large programs can run more efficiently
  • No serial access to common bus for shared physical memory like in multiprocessor systems
  • Programs written for shared memory multiprocessors can be run on DSM systems with minimum changes.

Types of distributed shared memory (DSM)

1. On-Chip Memory

  • Such chips are widely used in appliances cars and even toys.
  • CPU portion of the chip has data.
  • Address lines directly connect to memory portion.
  • It is expensive and complicated to construct chip like this.

2. Bus-Based Multiprocessors

  • Connection between cpu and memory is set of parallel wires some holding address of cpu wants to read or write or for sending or receiving messages
  • Network traffic is reduced by using caches with each cpu.
  • Algorithms are used to prevent two cpu trying to access same memory simultaneously.
  • Having single bus makes it overloaded.

3. Ring-Based Multiprocessors

  • A single address line is partitioned into a private area and shared area.
  • Private area is divided up into regions so each machine has a piece for its stack
  • Shared area is divided into 32 byte blocks.
  • All machines are connected via token passing ring. All components are interconnected via Memnet device.
  • No centralized global memory.

4. Switched Multiprocessors

  • Two approaches can be taken to attack the problem of not enough bandwidth.
  • Reduce the amount of communication. E.g. Caching.
  • Increase the communication capacity. E.g. Changing topology.
  • One method is to build the system as a hierarchy. Build the system as multiple clusters and connect the clusters using an intercluster bus. As long as most CPUs communicate primarily within their own cluster, there will be relatively little intercluster traffic. If still more bandwidth is needed, collect a bus, tree, or grid of clusters together into a supercluster, and break the system into multiple superclusters.