Un Scalable Coherency Fabric es una arquitectura de interconexión avanzada diseñada para facilitar la coherencia de caché entre múltiples agentes (CPUs, GPUs, aceleradores) que acceden a un espacio de memoria compartido. Su función principal es garantizar que todas las copias de un bloque de memoria en las cachés de diferentes agentes sean consistentes, incluso cuando se realizan escrituras. Esto se logra mediante protocolos de coherencia distribuidos que gestionan el estado de las líneas de caché (ej., Modified, Exclusive, Shared, Invalid - MESI o variaciones) y mecanismos de arbitraje para resolver conflictos de acceso, todo ello con el objetivo de minimizar la latencia y maximizar el ancho de banda a medida que el número de agentes escala.
En el mundo real, los Scalable Coherency Fabrics son fundamentales en arquitecturas de sistemas de alto rendimiento (HPC) y centros de datos. Ejemplos prominentes incluyen el "Infinity Fabric" de AMD, que interconecta CPUs, GPUs y otros componentes dentro de un mismo paquete o entre múltiples sockets, y el "NVLink" de NVIDIA, que proporciona una interconexión de alta velocidad y coherente entre GPUs y CPUs para cargas de trabajo de IA y HPC. Otro ejemplo es el "CCIX" (Cache Coherent Interconnect for Accelerators) y el "CXL" (Compute Express Link), estándares abiertos que permiten la coherencia de caché entre CPUs y aceleradores especializados, facilitando la integración de hardware heterogéneo en un sistema unificado.
Para un arquitecto de sistemas, la elección y el diseño de un Scalable Coherency Fabric son críticos. Impacta directamente en la escalabilidad del rendimiento, la latencia de comunicación entre componentes y la eficiencia energética. Un fabric bien diseñado puede reducir la complejidad del software al presentar una vista unificada de la memoria, pero introduce trade-offs en el costo de hardware, la complejidad del protocolo y el consumo de energía. Los arquitectos deben considerar la topología (ej., malla, anillo, árbol), el protocolo de coherencia (ej., snooping, directory-based), el ancho de banda, la latencia y la capacidad de expansión al diseñar sistemas que requieren una comunicación de memoria compartida eficiente y coherente entre múltiples procesadores o aceleradores, especialmente en escenarios de computación heterogénea y distribuida.