Tengo algunas preguntas con respecto a las memorias de caché utilizadas en CPU multinúcleo o sistemas multiprocesador. (Aunque no directamente relacionado con la programación, que tiene muchas repercusiones, mientras que uno escribe el software para los procesadores multi-núcleo/sistemas multiprocesadores, por lo tanto, preguntando aquí!)¿Cómo se comparten las memorias caché en CPU Intel multinúcleo?
En un sistema multiprocesador o un procesador multi-núcleo (Intel Quad Core, Core dos Duo, etc.) ¿cada núcleo/procesador de la CPU tiene su propia memoria caché (datos y caché del programa)?
Puede un procesador/núcleo acceder a la memoria caché de cada uno, porque si se les permite acceder a la caché mutua, entonces creo que puede haber menos errores de caché, en el caso de que ese caché de procesadores en particular no tenga datos pero algún otro segundo caché de procesadores podría tenerlo evitando así una lectura de memoria en el caché del primer procesador? ¿Es esta suposición válida y verdadera?
¿Habrá algún problema para permitir que cualquier procesador acceda a la memoria caché de otro procesador?
Semirelacionado: [¿Cuáles son los costos de latencia y rendimiento del intercambio entre productores y consumidores de una ubicación de memoria entre hiper-hermanos versus no hiperactivos?] (Https://stackoverflow.com/questions/45602699/what-are -the-latency-and-throughput-costs-of-producer-consumer-sharing-of-a-memo). y también [¿Qué se usará para el intercambio de datos entre hilos se está ejecutando en un Core con HT?] (https://stackoverflow.com/questions/32979067/what-will-be-used-for-data-exchange-between- threads-are-executing-on-one-core-wi) –