ハードウェアによる共有メモリ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/01/22 20:55 UTC 版)
「共有メモリ」の記事における「ハードウェアによる共有メモリ」の解説
コンピュータのハードウェアによる共有メモリは、マルチプロセッサシステムにおける複数のCPUがアクセスできるRAMの(通常)大きなブロックを意味する。 共有メモリシステムでは、全プロセッサがデータを共有しているためプログラミングが比較的容易で、同じメモリ位置へのアクセスによって高速なプロセッサ間通信が可能である。問題は、CPUはなるべく高速なメモリアクセスを必要とするため、それぞれにキャッシュメモリを持っていることが多い点である。そのため、以下の2つの問題が生じる。 CPU-メモリ間がボトルネックになりやすい。共有メモリ型コンピュータはあまりプロセッサ数を増やせない(CPUを増やしてもCPU数に比例して性能が強化されなくなる)。多くの場合、10個かそれ以下のプロセッサ数である。 キャッシュコヒーレンシ問題。あるキャッシュ上であるメモリ位置の情報が更新され、それを他のプロセッサが必要とする場合、その更新を他のプロセッサにも反映させなければならない。さもないとそれぞれのプロセッサが一貫していないデータを使って動作することになる。そのためのプロトコルをコヒーレンシプロトコルと呼び、それがうまく機能すれば複数のプロセッサが高速に共有メモリ(上の情報)にアクセスできるようになる。しかし一方で、コヒーレンシプロトコルがオーバーヘッドとなり、性能のボトルネックになることもある。 ボトルネック問題を和らげる技術として、クロスバースイッチ、オメガネットワーク(英語版)、HyperTransport、CPUバスの分離(フロントサイドバスとバックサイドバス、等)などがある。 共有メモリ以外の方式として分散メモリ(英語版)や分散共有メモリがあるが、どちらにも似たような問題がある。また、NUMAも参照。
※この「ハードウェアによる共有メモリ」の解説は、「共有メモリ」の解説の一部です。
「ハードウェアによる共有メモリ」を含む「共有メモリ」の記事については、「共有メモリ」の概要を参照ください。
- ハードウェアによる共有メモリのページへのリンク