es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Es seguro el data race en ARMV8?

Como sabemos, el acceso a tipos de datos fundamentales alineados en la arquitectura INTEL X86 es atómico. ¿Qué pasa con ARMV8?
He intentado obtener el resultado del Manual de referencia de la Arquitectura Armv8, para la arquitectura A-profile, y encontré algo relacionado con la atomicidad. ARMV8 es atomicidad multi-copia. Promete que el acceso multi-hilos a una misma LOCALIZACIÓN es atómico. Pero dice que la LOCALIZACIÓN es un byte. Me pregunto si el hilo 1 escribe una memoria alineada uint64t sin bloqueo y el hilo 2 la lee o la escribe sin bloqueo al mismo tiempo. ¿Es atómico? (uint64t tiene 8 bytes, pero la LOCALIZACIÓN es solo de un byte)

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Basado en mi investigación en el Manual de Referencia de la Arquitectura Armv8 de Arm, para la arquitectura de perfil A, parece que ARMV8 es atómico de copia múltiple otra. Esto significa que las multi-hilos que acceden a la misma UBICACIÓN son atómicos, pero una UBICACIÓN está definida como un byte. Esto plantea la pregunta de si un hilo que escribe una memoria uint64_t alineada sin un bloqueo y otro hilo que la lee o la escribe sin un bloqueo al mismo tiempo se consideraría atómico. Dado que un uint64_t tiene 8 bytes, pero una UBICACIÓN solo tiene un byte, no está claro si esta operación se consideraría atómica en la arquitectura ARMV8. Se requeriría una prueba y una investigación más exhaustivas para determinar la atomicidad de esta operación.

Comments are closed.