Aunque la mayoría de las respuestas se abordan desde el lado del software y / o el modelo de hardware, la forma más limpia es considerar cómo funcionan los chips físicos de RAM. (El caché se ubica entre el procesador y la memoria, y simplemente usa el mismo bus de direcciones, y su funcionamiento es completamente transparente para el procesador).
Los chips de RAM tienen un solo decodificador de dirección, que recibe la dirección de la celda de memoria, que llega al bus de direcciones (y de manera similar a un bus de datos, ya sea dentro o fuera). Las memorias actuales están integradas en el "enfoque de procesador único", es decir, un procesador está conectado a través de un bus a un chip de memoria. En otras palabras, este es el "cuello de botella de von Neumann", ya que cada instrucción debe hacer referencia a la memoria al menos una vez.
Debido a esto, en un cable (o cables, también conocido como bus) solo puede existir una señal a la vez, por lo que el chip RAM puede recibir una dirección de celda a la vez. Hasta que no pueda asegurarse de que los dos núcleos ponen la misma dirección en el bus de direcciones, el acceso simultáneo al bus por dos conductores de bus diferentes (como los núcleos) no es físicamente posible. (Y, si es lo mismo, es redundante).
El resto es la llamada aceleración de hardware. El bus de coherencia, el caché, el acceso a SIMD, etc. son solo algunas fachadas agradables frente a la memoria RAM física, de lo que se trataba su pregunta. Los aceleradores mencionados pueden cubrir la lucha por el uso exclusivo del bus de direcciones, y los modelos de programación no tienen mucho que ver con su pregunta. También tenga en cuenta que el acceso simultáneo también sería contrario a la abstracción del "espacio privado de direcciones".
Por lo tanto, a sus preguntas: el acceso directo a la memoria RAM no es posible, ni con la misma dirección ni con direcciones diferentes. El uso de la memoria caché puede cubrir este hecho y permitir el acceso aparentemente simultáneo en algunos casos. Depende del nivel y la construcción del caché, así como de la localidad espacial y temporal de sus datos.
Y sí, tiene razón: el procesamiento multi (núcleo) sin acceso RAM mejorado no ayudará mucho a las aplicaciones que utilizan mucha RAM.
Para una mejor comprensión: solo recuerda cómo funciona el acceso directo a la memoria. Tanto la CPU como el dispositivo DMA pueden poner la dirección en el bus, por lo que deben excluirse mutuamente del uso simultáneo del bus.