Sadece farklı çekirdekler bellek aynı blokta okunan izin verilir, bunlar aynı anda yazmak için izin konum çok. Eğer "güvenli" ya da değil ise, bu tamamen farklı bir hikaye. Özel olarak izin vermediğiniz şekilde, aynı bellek bloğu üzerinde çakışan birden fazla çekirdekle korunmak için kodunuzda bir çeşit koruma (genellikle semaforlar veya türevleri ile yapılır) uygulamanız gerekir.
Bir çekirdek her seferinde okur, bu genellikle bir kayıt değerinin 32bit işlemci üzerindeki 32 bit, 64 bit işlemci için 64 bit ve bu şekilde devam eder. Akış bile dword tarafından dword yapılır (örneğin memcpy'ye bakın).
Eşzamanlı çoklu çekirdeğin gerçekte nasıl olduğu hakkında her çekirdek, belleğe okuma ve yazma için tek bir veriyolu kullanır, böylece herhangi bir kaynağa (ram, harici aygıtlar, kayan nokta işlem birimi) erişmek, bir kerede bir istektir bir anda çekirdek. Ancak çekirdeğin içindeki gerçek işlem tamamen eş zamanlıdır. DMA transferleri de otobüsü engellemez, eşzamanlı transferler sıraya alınır ve bir seferde işlenir (bence bu konuda% 100 emin değilim).
düzenleme: sadece açıklamak için, burada diğer yanıtın aksine, sadece bir önbellek senaryosundan bahsediyorum. Tabi ki hafıza önbelleğe alınmış salt okunur erişime sahipse tamamen eşzamanlıdır.
Herhangi bir bellek erişimi, modern işlemciler için gerçekten büyük bir önbellek hattı = 64 bayta sahiptir. Önbellek hattına erişim atomiktir. Hatlar okumak için çekirdekler tarafından paylaşılabilir. – osgx