Хоча більшість відповідей підходять з боку програмної та / або апаратної моделі, найчистішим способом є врахування того, як працюють фізичні чіпи оперативної пам'яті. (Кеш розташований між процесором і пам'яттю, і він просто використовує ту саму шину адреси, і його робота повністю прозора для процесора.) Мікросхеми оперативної пам'яті мають один декодер єдиного адреси, який отримує адресу комірки пам'яті, що надходить на адресна шина (і аналогічно шина даних, вхідна або вихідна). Сучасні пам'яті побудовані в рамках "єдиного процесорного підходу", тобто один процесор підключений через одну шину до однієї мікросхеми пам'яті. Іншими словами, це "вузьке місце фон Неймана", оскільки кожна окрема інструкція повинна хоча б раз посилатися на пам'ять. Через це на одному проводі (або провідниках, також шині) одночасно може існувати лише один сигнал, тому чіп оперативної пам’яті може одночасно отримувати одну адресу комірки. Поки ви не зможете запевнити, що два ядра ставлять одну і ту ж адресу в адресну шину, одночасний доступ до шини двома різними драйверами шин (наприклад, ядрами) фізично неможливий. (І якщо воно те саме, то це зайве).
Решта - так зване апаратне прискорення. Шина узгодженості, кеш-пам'ять, доступ до SIMD тощо - це лише деякі приємні фасади перед фізичною оперативною пам’яттю. Згадані прискорювачі можуть охоплювати боротьбу за використання виключно шини адреси, а моделі програмування не мають великого відношення до вашого питання. Також зауважте, що одночасний доступ також буде проти абстракції "приватного адресного простору".
Отже, до ваших питань: одночасний прямий доступ до оперативної пам’яті неможливий ні з однаковою, ні з різною адресою. Використання кеша може охопити цей факт і може дати можливість очевидного одночасного доступу в деяких випадках. Це залежить від рівня кешу та конструкції, а також просторової та часової локальності ваших даних. І так, ви маєте рацію: багатоядерна обробка без розширеного доступу до оперативної пам’яті не дуже допоможе для інтенсивних програм.
Для кращого розуміння: просто згадайте, як працює Direct Memory Access. І процесор, і DMA пристрій можуть поставити адресу в шину, тому доведеться виключати один одного з одночасного використання шини.