2016-09-07 6 views
1

マルチコアプロセッサが2つ以上の処理ユニット(すなわち、メイン実行ユニットALUなど)を持ち、パフォーマンスが優れていることを知りました。私は彼らが物理メモリを共有する方法を知りたい。以下の例を参考にして、質問をより明確にしてみましょう。物理メモリにはメモリ位置Mがあり、異なるコア上で実行されるスレッドT1とT2は2つあります。 T1とT2が同じ時刻にMにアクセスすることは可能ですか、またはアクセスを完了するために他のユーザーが待機する必要があるかどうかです。つまり、同じメモリバスを共有してお互いに待つ必要があります。同じ時刻に2つの異なるメモリバスからのM?前者が当てはまる場合、メモリバスが無料であるのを待たなければならないので、パフォーマンスの向上はあまりありません。マルチコア環境でRAMはどのように共有されますか?

  • 要約すると、メモリの動作が他のコアと独立しているのか、各コアはメモリバスが空きのときにのみ物理メモリにアクセスできますか?
+1

プロセッサは物理メモリに直接アクセスすることはなく、キャッシュのみにアクセスします。どの物理メモリの場所がキャッシュに存在すべきかを推測しようとするのは、プリフェッチャの仕事です。物理メモリの読み込みは、プロセッサが実際に必要とする数百サイクル前に発生する傾向があります。キャッシュに物理メモリの一貫したビューがあることを確認することは、あなたの仕事です。 –

+0

したがって、複数のコアを持つ利点は、計算能力が高く、より多くのキャッシュによって(メモリアクセスを防ぐために)だけですか? – AV94

答えて

0

メモリアクセスはRAMモジュールに依存し、CPUではなく、CPUコアはアクセスを要求できますが、最初にアクセス権が与えられているのはRAM自体に依存します。

+0

しかし、この場合、コアの数にかかわらず、それらのすべてがメモリバスを待つ必要があります!だから、私たちは多くのパフォーマンスを得ることができないかもしれません? – AV94

+0

これを見てください:[リンク](http://programmers.stackexchange.com/questions/183686/can-multiple-cpus-cores-access-the-same-ram-simutaneously) –

関連する問題