(Translated by https://www.hiragana.jp/)
NUMA - Wikipedia コンテンツにスキップ

NUMA

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』

NUMAえい: Non-Uniform Memory Access)とは、共有きょうゆうメモリかたマルチプロセッサコンピュータシステムアーキテクチャのひとつで、複数ふくすうプロセッサ共有きょうゆうするメインメモリへのアクセスコストが、メモリ領域りょういきとプロセッサに依存いぞんして均一きんいつでないアーキテクチャである。日本語にほんごでは「均一きんいつメモリアクセス」や「均等きんとうメモリアクセス」とやくされる[1][2]

定義ていぎ

[編集へんしゅう]

プロセッサとメモリのたい(これをノードぶ)が複数ふくすう存在そんざいし、それらをインターコネクト(その詳細しょうさいわない)で接続せつぞくしたものを学術がくじゅつてきにはNUMAの定義ていぎとしている。ただし共有きょうゆうメモリがたであるのでかくプロセッサがぜんノードのメモリを利用りよう可能かのうである必要ひつようがあり、かくノードのメモリをぜんプロセッサに共通きょうつう物理ぶつりアドレス空間くうかんにマップできることが要件ようけんとなる。あるプロセッサからどういちノードのメモリを「ローカル」メモリ、ノードのメモリを「リモート」メモリとぶ。

一般いっぱんてきには

ローカルメモリのアクセス遅延ちえん時間じかん < リモートメモリのアクセス遅延ちえん時間じかん

である。

小規模しょうきぼ対称たいしょうがたマルチプロセッシング (SMP) システムでは単一たんいつバスうえにすべてのプロセッサとメモリが同居どうきょしているが、バスの特性とくせいとして複数ふくすうプロセッサによるメモリの同時どうじアクセスができないことがげられる。あるプロセッサがメモリアクセスをおこなっているあいだのプロセッサはつしかない。この現象げんしょうどういちバスに接続せつぞくされるプロセッサがえるにしたがって顕著けんちょとなる。したがってSMPシステムの並列へいれつしてスケールアップしていく場合ばあい単純たんじゅん小規模しょうきぼSMPシステムの設計せっけい拡張かくちょうしてバスに接続せつぞくするプロセッサすうやしていったのでは、プロセッサはほとんどの時間じかんをメモリアクセスの時間じかんついやすことになってしまうであろう。また、単一たんいつバスに接続せつぞくされるプロセッサがえるということはバス信号しんごうせん物理ぶつりてきながさの増大ぞうだい意味いみし、それはバスクロック向上こうじょう阻害そがい要因よういんとなってしまう(信号しんごうせん路上ろじょうつたわる電気でんき信号しんごうはやさは有限ゆうげんであるため)。

これを解決かいけつするため、メモリを複数ふくすうバンクに分割ぶんかつしプロセッサとメモリバンクあいだをクロスバースイッチなどでむす手法しゅほうメモリインターリーブ)も実際じっさいられているが、この手法しゅほうではローカルバスと比較ひかくしてつねおおきな遅延ちえんでアクセスすることになってしまう(このようなアーキテクチャは、NUMAの定義ていぎでノードを構成こうせいするプロセッサとメモリをプロセッサノードとメモリノードにデカップリングしたUMAアーキテクチャのいち形態けいたいである)。

また、メモリがわをマルチポートとすることもかんがえられるが、同時どうじアクセスによる遅延ちえんふせぐためポートをやすとそれだけインターコネクトのための信号しんごうせんえるためコスト増大ぞうだいまねいてしまう。

NUMA浸透しんとう背景はいけい

[編集へんしゅう]

ソフトウェアの動作どうさくわしく観察かんさつすると、ほとんどのメモリアクセスはある特定とくてい領域りょういき集中しゅうちゅうしている(参照さんしょう局所きょくしょせい)。オペレーティングシステム適切てきせつにメモリをてることによって、プロセッサが頻繁ひんぱん参照さんしょうする必要ひつようのあるデータをアクセスコストのひくいメモリに配置はいちし、アクセスコストのたかいメモリには頻繁ひんぱん参照さんしょうしないデータを配置はいちすることができる。

それによって、実際じっさいには均一きんいつなメモリアクセスコストをつアーキテクチャのシステム(実際じっさいのSMPてきシステム)でも理想りそうてきなSMPシステムにちか性能せいのう発揮はっきすることができる。このてん着目ちゃくもくしたのがNUMAアーキテクチャである。

NUMAの特徴とくちょうをまとめると、バスを共有きょうゆうするプロセッサすうおさえることでバスの輻輳ふくそうふせぎ、バスクロックの向上こうじょう容易よういにする。その一方いっぽうで、共有きょうゆうメモリがたのマルチプロセッサシステムであるのでNUMAシステムはソフトウェアてきには(すくなくともユーザアプリケーションからは)通常つうじょうのSMPシステムと同等どうとうえ、したがってSMPシステムよう開発かいはつされたアプリケーションがそのまま稼動かどうする。ただし、オペレーティングシステムがNUMAを意識いしきしたメモリ管理かんりおこなわない場合ばあい性能せいのう劣化れっかけられない。

歴史れきし

[編集へんしゅう]

初期しょき[いつ?]のNUMAシステムは、4ウェイ程度ていど小規模しょうきぼなSMPシステム(これを「ビルディング・ブロック」などとぶ)を比較的ひかくてき高速こうそくていレイテンシのインターコネクトによって接続せつぞくして構成こうせいされていた。

現在げんざい[いつ?]主流しゅりゅうのCPUにおいては、チップレベルでNUMAアーキテクチャをれているものがおおい(インテルItaniumNehalemけいなどや、AMDOpteronプロセッサなど)。

これらのプロセッサではメモリバスがプロセッサチップと直結ちょっけつしており、メモリとわせて単一たんいつのNUMAノードを構成こうせいし、リモートメモリアクセスをおこなうためのチップあいだ高速こうそくインターコネクトポートがオンチップで実装じっそうされている。

NUMAにたいして、メモリアクセスコストの均一きんいつせいたもったままだい規模きぼSMPシステムを構築こうちくするアーキテクチャを、とくにNUMAと区別くべつするためUMA(Uniform Memory Access)とぶことがある[注釈ちゅうしゃく 1]

NUMAを採用さいようした独自どくじ大型おおがたサーバを製造せいぞう販売はんばいしている会社かいしゃとしては、SGI[いつ?]IBMHP富士通ふじつう富士通ふじつうシーメンス)、NECサンマイクロシステム[いつ?]Crayなどがある。

脚注きゃくちゅう

[編集へんしゅう]

注釈ちゅうしゃく

[編集へんしゅう]
  1. ^ ユニファイドメモリアーキテクチャ(Unified Memory Architecture, UMA)と名前なまえているが、べつ概念がいねんである。

出典しゅってん

[編集へんしゅう]

関連かんれん項目こうもく

[編集へんしゅう]