対称型マルチプロセッシング
出典: フリー百科事典『ウィキペディア(Wikipedia)』
対称型マルチプロセッシング(たいしょうがたマルチプロセッシング, Symmetric Multiprocessing, SMP)とは、物理メモリを共有して管理する「メモリ共有型並列コンピューティング(マルチプロセッシング)方式」のこと。
目次 |
[編集] アーキテクチャ
対称型マルチプロセッシングとは、特定のCPUに非対称的に割り付けられた処理に依存する事無く、全てのCPUに対して対称的、均一的に処理が割り付けられた複数プロセッサによる並列処理方式のことを言う。
OSカーネルとCPUキャッシュ同期機構により仮想化されたシステムメモリ、及び各種資源を細かく管理するロック制御方式を持ち、ソフトウェア/ハードウェアレベルの割り込み処理を均一的にCPUに割付け、その処理単位に必要な資源をロックして処理を行う。そのため、サーバの外から見るとあたかもひとつのCPUにて動作するサーバのように見える。
なお、実際には多くのSMP構成サーバにおいては、ハードウェア割り込みを特定のCPUに割り付ける事が多く、完全な対称型とはなっていない。また、起動処理においても、特定のマスタブートCPUによりIPL(初期プログラムローダ)が実行され、OSカーネルをメモリ上に読み込んだ後、スレーブCPUが組み込まれる形をとることが多い。
[編集] 歴史
当初、UNIXのSystem7やUNIBAC・IBMなどの汎用機にて試験的に構築/導入されたSMPだったが、汎用プロセッサの登場後、本格的な研究/開発が行われてきた。特に学術的な研究にUNIXが使用された事もあり、UNIXのSVR4系などでの実装研究が進んでいた。
1990年代前半からMIPSのR4000シリーズ、SPARCシリーズといったマルチプロセッシングを前提としたRISCプロセッサが登場し、マルチプロセッサ処理を前提としたUNIX SVR4.2MPの国産UNIX(UX/4800,UXP/DSなど)及び、SUNのSolarisなどでの採用が急速に進み、サーバにおける処理高速化手法の主流として汎用化していた。
しかし、安価な量産系サーバにおいては、CPU/メモリ間の接続はバス方式が主体であり、速度もそれほど早いものではなかったため、SMPの最大構成は8CPU、実効性能で単一CPUの5倍程度に留まり続けた。
1980年代後半に高価な特殊サーバにて使用されていたCPU間/メモリ間にクロスバースイッチが量産サーバにも採用され、ギガビット単位での情報速度を確保できるようになって以降、32/64/128といった大規模SMP構成がとれるようになっている。[1]
2006年現在、ほぼ全てのUNIX系OS(商用UNIX,Linuxなど)及び、Windows NT系OSでSMPは採用されている。
さらに、同じ時期に一般化した技術で、メインメモリを共有してはいるが、各プロセッサからのメモリへのアクセスがCPUからの一定サイズ単位に依存しない非均一メモリアクセス方式を採用したシステムをNUMA(Non-Uniform Memory Access)と呼び、SMPの高性能化手法として定着している。
[編集] 耐障害性など
商用UNIX向けの上位クラスのサーバや基幹系Windowsサーバの一部においては、ブートCPUを固定化せず、正常に動作するCPUの何れか(故障CPUが無い場合は固定的)によりIPLが実行され、ブート処理を行う。パソコンや簡易なSMP構成の場合、ブートCPUが固定されているのが普通である。
全てのSMP対応OS/サーバにおいては、起動時にCPU障害が見つかった場合には、異常CPUはシステムに組み込まれず、正常なCPUのみで動作する事になる。 一方、商用UNIXで高機能基幹系サーバを使用する場合、OSとファームウェアレベルにてCPUやキャッシュの機能チェックが稼動時に定常的に行われ、特定レベル以上のCPU障害の場合に動的にCPUを切り離し、業務を継続する。 それ以外のサーバにおいては、NMI(ノンマスカブルインタラプト)にてPanic(UNIX)するか、有名なブルー画面に移行(Windows)し、システムが異常停止してしまう。
Linuxにおいても、2.6カーネル以降、NUMA/ブートCPUの移動などを組み込んだ商用大規模サーバで使用する事が可能であり、富士通のPrimeQuestや日本電気のNX7700i、IBMのPシリーズなどが提供されている。
[編集] 脚注
- ↑ 最初のクロスバー型CPUはInmos(現在のTomson Semicondactor)のTransputerシリーズ
[編集] 関連項目
[編集] 外部リンク
カテゴリ: CPU | 並列コンピューティング