Архитектура COMA: Кэш-память как основная память в многопроцессорных системах.
Cache-only memory architecture
COMA: архитектура памяти для мультипроцессоров, где локальная память используется как кэш. Отличие от NUMA – отсутствие фиксированного "дома" для данных.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Архитектура памяти только кэша (COMA) — это организация компьютерной памяти для использования в многопроцессорных системах, в которой локальные памяти (обычно DRAM) на каждом узле используются как кэш. Это отличается от использования локальных памятей в качестве основной памяти, как в организациях NUMA. В NUMA каждому адресу в глобальном адресном пространстве обычно назначается фиксированный домашний узел. Когда процессоры обращаются к данным, копия помещается в их локальный кэш, но место остаётся выделенным в домашнем узле. В отличие от этого, в COMA домашнего узла нет. Обращение с удалённого узла может вызвать миграцию данных. По сравнению с NUMA, это уменьшает количество избыточных копий и может обеспечить более эффективное использование ресурсов памяти. С другой стороны, это порождает проблемы поиска конкретных данных (домашнего узла больше нет) и действий при заполнении локальной памяти (миграция данных в локальную память требует вытеснения других данных, которым некуда вернуться). Для реализации миграции обычно используются аппаратные механизмы когерентности памяти. Большой объём исследований посвящён этим вопросам. Разработаны различные типы каталогов, политики поддержания свободного пространства в локальных памятьях, политики миграции и политики для копий, предназначенных только для чтения. Также были предложены гибридные организации NUMA COMA, такие как Reactive NUMA, которая позволяет страницам начинать работу в режиме NUMA и переключаться в режим COMA при необходимости, и реализована в WildFire от Sun Microsystems. Реализация гибридной NUMA COMA на основе программного обеспечения была предложена и реализована компанией ScaleMP, что позволило создать многопроцессорную систему с общей памятью из кластера стандартных узлов.
Cache only memory architecture (COMA) is a computer memory organization for use in multiprocessors in which the local memories (typically DRAM) at each node are used as cache. This is in contrast to using the local memories as actual main memory, as in NUMA organizations. In NUMA, each address in the global address space is typically assigned a fixed home node. When processors access some data, a copy is made in their local cache, but space remains allocated in the home node. Instead, with COMA, there is no home. An access from a remote node may cause that data to migrate. Compared to NUMA, this reduces the number of redundant copies and may allow more efficient use of the memory resources. On the other hand, it raises problems of how to find a particular data (there is no longer a home node) and what to do if a local memory fills up (migrating some data into the local memory then needs to evict some other data, which doesn't have a home to go to). Hardware memory coherence mechanisms are typically used to implement the migration. A huge body of research has explored these issues. Various forms of directories, policies for maintaining free space in the local memories, migration policies, and policies for read only copies have been developed. Hybrid NUMA COMA organizations have also been proposed, such as Reactive NUMA, which allows pages to start in NUMA mode and switch to COMA mode if appropriate and is implemented in the Sun Microsystems's WildFire. A software based Hybrid NUMA COMA implementation was proposed and implemented by ScaleMP, allowing for the creation of a shared memory multiprocessor system out of a cluster of commodity nodes.