対称型マルチプロセッシング (タイショウガタマルチプロセッシング) とは | 意味や読み方など丁寧でわかりやすい用語解説

作成日: 更新日:

対称型マルチプロセッシング (タイショウガタマルチプロセッシング) の読み方

日本語表記

対称型マルチプロセッシング (タイショウガタマルチプロセッシング)

英語表記

Symmetric Multiprocessing (シンメトリックマルチプロセッシング)

対称型マルチプロセッシング (タイショウガタマルチプロセッシング) の意味や用語解説

対称型マルチプロセッシング(Symmetric Multi-Processing、SMP)は、コンピュータの処理能力を向上させるための一つのアーキテクチャであり、単一のコンピュータシステム内に複数のプロセッサ(CPUやCPUコア)を搭載する方式である。この方式の根幹をなす特徴は、搭載されたすべてのプロセッサが「対称」、つまり機能的に同等であり、対等な関係にある点だ。各プロセッサは、単一のメインメモリやハードディスク、ネットワークカードといったI/Oデバイスを共有し、それらに平等にアクセスする権利を持つ。さらに重要なのは、どのプロセッサもオペレーティングシステム(OS)のカーネルコードを含む、あらゆる種類のタスクを実行できることである。これにより、特定のプロセッサにシステム管理などの特別な役割が割り当てられることはなく、OSは実行すべき処理を空いているプロセッサに動的に割り振ることが可能となる。この柔軟な負荷分散により、システム全体のスループット、すなわち単位時間あたりの処理能力が効率的に高められる。現代のパソコンやサーバで広く採用されているマルチコアプロセッサは、このSMPの概念を一つのチップ上で実現した典型例である。 SMPシステムの詳細な構造は、複数のプロセッサ、一つの共有メインメモリ、そしてこれらすべてを相互に接続する共有バス(データ転送経路)によって構成される。プログラムから見ると、プロセッサがいくつあってもメモリ空間は一つであり、どのプロセッサからも同じメモリアドレスで同じデータにアクセスできる。このメモリ共有モデルは、プログラマにとって直感的で扱いやすく、単一プロセッサ向けのソフトウェアをマルチプロセッサ環境へ移植する際の複雑さを比較的低く抑えることができる。しかし、この共有構造を円滑に機能させるためには、OSの役割が極めて重要となる。OSは、複数のプロセスやスレッドといった処理の単位を、各プロセッサに適切に分配するスケジューリングを担当する。また、複数のプロセッサが同時に共有メモリ上の同一のデータ領域を書き換えようとすると、データの内容が破壊されたり、意図しない結果になったりする競合状態が発生する。これを防ぐため、OSはセマフォやミューテックスといったロック機構を用いた排他制御を行い、あるデータへのアクセスが完了するまで他のプロセッサからのアクセスを待機させることで、データの一貫性を保証する。 性能をさらに向上させるため、SMPシステムでは各プロセッサが高速な専用のキャッシュメモリを備えている。キャッシュメモリは、メインメモリから頻繁に使うデータを一時的に保持しておくことで、低速なメインメモリアクセスを減らし、処理速度を高める役割を担う。しかし、これが新たな課題を生む。あるプロセッサが共有メモリ上のデータを自身のキャッシュにコピーして更新した場合、メインメモリや他のプロセッサのキャッシュには古いデータが残ったままとなり、データの不整合が発生する。この問題をキャッシュコヒーレンシ(キャッシュの一貫性)問題と呼ぶ。この問題を解決するため、SMPアーキテクチャには、ハードウェアレベルで各プロセッサのキャッシュの状態を常に監視し、いずれかのキャッシュでデータが更新された場合、その変更を他のすべてのキャッシュやメインメモリに反映させることで一貫性を維持する仕組み(キャッシュコヒーレンシプロトコル)が組み込まれている。 SMPは多くの利点を持つ一方で、スケーラビリティ、つまりプロセッサ数を増やした際の性能向上率には限界がある。プロセッサの数を増やしていくと、すべてのプロセッサが共有バスと共有メモリにアクセスしようとするため、アクセス要求が集中し、深刻なボトルネックとなる。バスやメモリの帯域幅が飽和すると、それ以上プロセッサを追加してもシステム全体の性能はほとんど向上しなくなる。このため、純粋なSMP構成は、比較的小規模から中規模のシステムで効果を発揮するが、数十から数百のプロセッサを搭載する大規模システムには向かない。このスケーラビリティの課題を克服するために、各プロセッサが高速にアクセスできるローカルメモリを持ちつつ、他のプロセッサのメモリにも(低速ながら)アクセス可能なNUMA(Non-Uniform Memory Access)アーキテクチャなどが考案されている。SMPは、現代のコンピューティングにおいて、並列処理を実現するための foundational な技術として、その地位を確立している。

対称型マルチプロセッシング (タイショウガタマルチプロセッシング) とは | 意味や読み方など丁寧でわかりやすい用語解説