¿Cuáles son los costos de latencia y rendimiento de compartir productor-consumidor de una ubicación de memoria entre hiper-hermanos versus no hiper-hermanos?

Dos hilos diferentes dentro de un solo proceso puedencompartir una ubicación de memoria común al leer y / o escribir en ella.

Por lo general, dicho intercambio (intencional) se implementa utilizando operaciones atómicas utilizando ellock prefijo en x86, que tiene costos bastante conocidos tanto para ellock prefijo en sí (es decir, el costo no previsto) y también costos de coherencia adicionales cuando la línea de caché esen realidad compartido (verdad ofalso compartir).

Aquí estoy interesado en los costos del consumidor producido donde un solo hiloP escribe en una ubicación de memoria y otro subproceso `C lee desde la ubicación de memoria, ambos utilizandollanura lee y escribe.

¿Cuál es la latencia y el rendimiento de una operación de este tipo cuando se realiza en núcleos separados en el mismo zócalo y, en comparación, cuando se realiza en hyperthreads hermanos en el mismo núcleo físico, en núcleos x86 recientes?

En el título estoy usando el término "hiper-hermanos" para referirme a dos hilos que se ejecutan en los dos hilos lógicos del mismo núcleo, y hermanos inter-núcleo para referirse al caso más habitual de dos hilos que se ejecutan en diferentes núcleos físicos .

Respuestas a la pregunta(2)

Su respuesta a la pregunta