What is COMA?


COMA stands for Cache-only memory access machines. A COMA machine includes several processing nodes connected by an interconnection network. Each processing node has a high-implementation processor, a cache, and an allocation of the global shared memory.

COMA machines try to avoid the problems of static memory allocation of NUMA and CC-NUMA machines by excluding main memory blocks from the local memory of nodes and employing only large caches as node memories. In these architectures only cache memories are present; no main memory is employed either in the form of a central shared memory as in UMA machines or the form of a distributed main memory as in NUMA and CC-NUMA computers.

There are two representatives COMA architectures are as follows −

  • DDM (Data Diffusion Machine)

DDM is a hierarchical, tree-like multiprocessor where the leaves of the tree represent the basic DDM architecture. The basic DDM is a single bus-based multiprocessor that contains several processor/attraction memory pairs connected to the DDM bus. An attraction memory consists of three main units such as state and data memory unit, controller, and output buffer.

The DDM employs an asynchronous split-transaction bus, that is, the bus is released between a requesting transaction and its response. A write invalidate snoopy-cache protocol is introduced which limits broadcast requirements to a smaller subsystem and extends with support for a replacement.

  • KSR1

The KSR1 machine was the first commercially available COMA machine in which the logically single address space is realized by a collection of local caches and by the so-called ALLCACHE Engine. The ALLCACHE Engine realizes a sequentially consistent cache coherence algorithm based on a distributed directory scheme. ALLCACHE stores data in pages and subpages. The unit of memory allocation in local caches is the page containing 16 Kbytes. The unit of data transfer among local caches is the subpage consisting of 128 bytes.

The distributed directory is a matrix in which a row is allocated for each subpage and a column for each subpage and a column for each local cache. A matrix element is empty if the corresponding local cache does not contain any copy of the subpage. Since it is the general case, the matrix is very sparse and therefore stored in a condensed way, excluding those elements that are empty. Non-empty elements can represent any of the following four states −

  • EO (Exclusive Owner) − This is the only valid copy in the whole machine.

  • C (Copy) − At least two valid copies of the subpage exist in the machine.

  • NO (Non-exclusive Owner) − When several copies of the subpage exist, one of them is marked as the non-exclusive owner.

  • I (Invalid) − Although a copy of the subpage exists in the local cache, it is invalid and will not be used.

Ginni
Ginni

e

Updated on: 23-Jul-2021

4K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements