memory-barriers

¿Cómo Entiendo Leer Barreras de Memoria y Volátiles

Algunos lenguajes proporcionan un modificador volatile que se describe como realizar una "barrera de memoria de lectura" ante ... mo las lecturas antes de la barrera? O alguna otra interpretación? ¿Cuáles son las implicaciones prácticas de esta respuesta?

¿Es la llamada de función una barrera de memoria efectiva para las plataformas modernas?

En una base de código que revisé, encontré el siguiente modismo. void notify(struct actor_t act) { write(act.pipe, "M", ... arga y un aspecto realmente inteligente! Puntos extra si me puede mostrar un pedazo de código que demuestra que se equivoca!

Por qué necesitamos Hilo.MemoryBarrier()?

En "C # 4 in a Nutshell", el autor muestra que esta clase puede escribir 0 a veces sin MemoryBarrier, aunque no puedo reprodu ... ocesador cambia el orden de las operaciones, debe garantizar que el comportamiento no cambie. ¿Se molesta en usar barreras?

¿Tiene sentido usar la instrucción LFENCE en procesadores x86 / x86 64?

A menudo en Internet me parece que LFENCE no tiene sentido en los procesadores x86, es decir, no hace nada, por lo que en su ... SFENCE tiene sentido para evitar reordenar STORE-1 y LOAD-2. Para esto, el comando after STORE-1 SFENCE limpia Store-Buffer.

¿Son suficientes las funciones de bloqueo mutex sin volátiles?

Un compañero de trabajo y yo escribimos software para una variedad de plataformas que se ejecutan en x86, x64, Itanium, Power ... protegido sin volátil. Si el código anterior es correcto, ¿cómo es invulnerable a los problemas de almacenamiento en caché?

¿Cuándo es útil una barrera de memoria solo para compiladores (como std::atomic signal fence)?

La noción de un compilador fence a menudo aparece cuando estoy leyendo sobre modelos de memoria, barreras, orden, átomos, et ... a vez lo fuera, esperaría que solo compilador cercas como atomic_signal_fence para ser la herramienta de elección.) Gracias.

Barreras de Memoria C++ para Atomics

Soy un novato cuando se trata de esto. ¿Podría alguien proporcionar una explicación simplificada de las diferencias entre las ... l que es básicamente a lo largo de las líneas de hay más de una manera de implementar barreras de memoria bajo las cubiertas.

Barreras de memoria y el TLB

Las barreras de memoria garantizan que la caché de datos será consistente. Sin embargo, ¿garantiza que el TLB será consistent ... qué necesito intercambiar búferes? Porque estoy escribiendo muchos GB de datos y ByteBuffer no puede ser de 2 + GB de tamaño.

Orden y visibilidad del modelo de memoria?

Traté de buscar detalles sobre esto, incluso leí el estándar sobre mutexes y atomics... pero aún así no podía entender las ga ... atomic; } El segundo hilo dice { while (p==nullptr) { } assert(p[1234]==42);//1234-random idx in array }