Arquitectura de memoria de solo caché


La arquitectura de memoria de solo caché ( COMA ) es una organización de memoria de computadora para usar en multiprocesadores en los que las memorias locales (típicamente DRAM ) en cada nodo se usan como caché. Esto contrasta con el uso de las memorias locales como memoria principal real, como en las organizaciones NUMA .

En NUMA, a cada dirección del espacio de direcciones global se le suele asignar un nodo de inicio fijo. Cuando los procesadores acceden a algunos datos, se realiza una copia en su caché local, pero el espacio permanece asignado en el nodo principal. En cambio, con COMA, no hay hogar. Un acceso desde un nodo remoto puede hacer que esos datos migren. En comparación con NUMA, esto reduce la cantidad de copias redundantes y puede permitir un uso más eficiente de los recursos de memoria. Por otro lado, plantea problemas sobre cómo encontrar un dato en particular (ya no hay un nodo de inicio) y qué hacer si una memoria local se llena (migrar algunos datos a la memoria local necesita desalojar algunos otros datos, que no tiene casa a donde ir). Los mecanismos de coherencia de memoria de hardware se utilizan normalmente para implementar la migración.

Un gran cuerpo de investigación ha explorado estos temas. Se han desarrollado varias formas de directorios, políticas para mantener espacio libre en las memorias locales, políticas de migración y políticas para copias de solo lectura. También se han propuesto organizaciones híbridas NUMA-COMA, como Reactive NUMA, que permite que las páginas comiencen en modo NUMA y cambien a modo COMA si corresponde y se implementa en WildFire de Sun Microsystems. [1] [2] ScaleMP propuso e implementó una implementación NUMA-COMA híbrida basada en software, [3] que permite la creación de un sistema multiprocesador de memoria compartida a partir de un grupo de nodos básicos.