Embora a maioria das respostas se aproxime do lado do modelo de software e / ou hardware, a maneira mais limpa é considerar como os chips físicos de RAM funcionam. (O cache está localizado entre o processador e a memória e simplesmente usa o mesmo barramento de endereços, e sua operação é completamente transparente para o processador.) Os chips de RAM têm um único decodificador de endereço, que recebe o endereço da célula de memória, chegando ao o barramento de endereços (e da mesma forma um barramento de dados, dentro ou fora). As memórias atuais são construídas na "abordagem de processador único", ou seja, um processador é conectado através de um barramento a um chip de memória. Em outras palavras, esse é o "gargalo de von Neumann", pois todas as instruções devem fazer referência à memória pelo menos uma vez. Por esse motivo, em um fio (ou fios, também conhecido como barramento), apenas um sinal pode existir por vez, portanto, o chip de RAM pode receber um endereço de célula por vez. Até que você possa garantir que os dois núcleos coloquem o mesmo endereço no barramento de endereços, o acesso simultâneo ao barramento por dois drivers de barramento diferentes (como núcleos) não é fisicamente possível. (E, se for o mesmo, é redundante).
O resto é a chamada aceleração de hardware. O barramento de coerência, o cache, o acesso SIMD etc. são apenas algumas fachadas agradáveis em frente à RAM física, sua pergunta era sobre. Os aceleradores mencionados podem cobrir a luta pelo uso exclusivo do barramento de endereços, e os modelos de programação não têm muito a ver com sua pergunta. Observe também que o acesso simultâneo também seria contra a abstração "espaço de endereço privado".
Então, para as suas perguntas: o acesso direto simultâneo à RAM não é possível, nem com o mesmo nem com endereços diferentes. O uso do cache pode cobrir esse fato e, em alguns casos, permitir acesso aparentemente simultâneo. Depende do nível e da construção do cache, bem como da localidade espacial e temporal dos seus dados. E sim, você está certo: o processamento multi-core sem acesso aprimorado à RAM não ajudará muito em aplicativos que usam muita RAM.
Para uma melhor compreensão: lembre-se de como o Direct Memory Access funciona. Tanto a CPU quanto o dispositivo DMA podem colocar o endereço no barramento, de modo que eles precisam se excluir do uso simultâneo do barramento.