マルチプロセッサとは? わかりやすく解説

Weblio 辞書 > コンピュータ > IT用語辞典 > マルチプロセッサの意味・解説 

マルチプロセッサ

【英】multi-processor, MP

マルチプロセッサとは、1台のコンピューター複数マイクロプロセッサ搭載することである。処理を分散させることで、総体としての処理の高速化を図るものである

マルチプロセッサの中でも、どのプロセッサ同等に処理を分担するSMPSymmetric Multiple Processor)と、プロセッサごとに分担する処理があらかじめ定まっているASMPAsymmetric Multiple Processor)の2種類大別される

パソコン搭載され一般的なマイクロプロセッサに、マルチプロセッサ環境構築するために必要な機能備わっている場合少ない。しかしIntel社のXeonのようなサーバーへの搭載想定されているマイクロプロセッサは、おおむねマルチプロセッサ環境のための機能をあらかじめ備えている。

マイクロプロセッサのほかの用語一覧
CPU:  クアッドコアグラフィックス  マイクロプロセッサ  マルチコア  マルチプロセッサ  命令セット  メニーコア  ムーアの法則

マルチプロセッシング

(マルチプロセッサ から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/05/06 03:46 UTC 版)

マルチプロセッシング英語: multi processing)とは、(本来は)ひとつのプロセスだけではなく複数の並行プロセスを同一システム内で使用することを意味する。

マルチタスクと同様ひとつのCPUを複数のプロセスが共有することも示すが、ひとつのシステム内の複数のCPUが複数のスレッドを動作させることも意味する。マルチプロセッサと言う場合は一般に後者のみを指す。

マルチプロセッシングの種類

プロセッサの対称性

マルチプロセッシングシステムでは、全CPUが等価の場合といくつかのCPUが特別な用途に使われる場合がある。ハードウェアとオペレーティングシステムの設計によって、システムの対称性の度合いが決定される。例えば、ハードウェアまたはソフトウェアの制限によって1つのCPUだけがすべてのハードウェア割り込みに反応し、他のすべての作業が等しく全CPUに分配される場合もある。また、カーネルモードの実行がひとつのプロセッサに限定される場合もある(指定された特定のプロセッサの場合と、同時に複数のプロセッサでカーネルを実行できない場合がある)。このような制限がある場合、マルチプロセッシングシステムの設計は容易になるが、全CPUが対称に扱われるシステムよりも性能が低下する。

全CPUを等価に扱うシステムは対称型マルチプロセッシング(SMP)システムと呼ばれる。全CPUが等価ではないシステムには、内部資源の分割方式によっていくつかの種類がある。「非対称型マルチプロセッシング英語版」(ASMP)、「NUMA」マルチプロセッシング、「コンピュータ・クラスター」などである。非対称型マルチプロセッシングの例としては、IBMOS/360DECVMSがある。

命令とデータの流れ

マルチプロセッシングにおいて、単一システム内の複数のプロセッサ上で、独立した複数の命令列をそれぞれ別の複数のコンテキストに対して実行する場合がある。これをMIMDと呼ぶ。また、同一の命令列を複数のコンテキスト上で並行して実行する場合もある。これをSIMDまたはベクトル計算機と呼ぶ。また、複数の命令列を一つのコンテキストに対して実行するものをMISDと呼ぶ。MISDは一般に冗長化されたフォールトトレラントシステムを意味するが、パイプライン処理ハイパースレッディングを指すこともある。ちなみに、SISDは一般のマルチプロセッシングでないシステムを指す。

プロセッサ結合方式

密結合 (tightly coupled)
密結合マルチプロセッサシステムはバスレベルで結合された複数のCPUを持つ。そのプロセッサ群は共通の共有メモリにアクセスする(SMP)。あるいはメモリにローカルと共有の二階層を設ける(NUMA)。IBM p690 RegattaはハイエンドのSMPシステムの一例である。チップ上のマルチプロセッサであるマルチコア処理では、ひとつのチップ上に複数のプロセッサが実装されており、最も進んだ形式の密結合マルチプロセッシングと言う事ができる。メインフレームのマルチプロセッサシステムは密結合であることが多い。
疎結合 (loosely coupled)
疎結合マルチプロセッサシステム(コンピュータ・クラスターとも呼ばれる)は複数の独立したコンピュータを高速な通信システム(たとえばギガビット・イーサネットなど)で結合したものである。LinuxのBeowulfSCoreによるクラスターは疎結合システムの例である。

歴史的には、密結合システムの方が高性能で物理的にも小さかったが、高価だった。最近では普通のコンピュータが非常に小型化されてきたため、疎結合システムを安価に構築できるようになった。さらにマルチコア化によって普通のパソコンでも密結合システムが一般的になり、プロセッサ結合方式は密結合と疎結合が同時に存在するより複雑な系へと発展しメモリ局在性の管理とメッセージパッシングシステムの最適化はより重大な課題となっている。

ソフトウェア実装上の問題

MIMD

MIMDマルチプロセッシング・アーキテクチャは、個々に独立した様々なタスクを実行するのに適しており、それぞれが異なるデータセットに対して異なる命令を並行して実行する。このような用途はニーズがあり、実装も比較的容易なので、MIMD はマルチプロセッサの大半を占めている。

処理は複数のスレッドに分割され、それぞれがハード的なプロセッサ状態を持つ。これらスレッドはひとつのプロセス内に存在する場合もあるし、別々のプロセスに属していることもある。複数のスレッドがディスパッチされるのを待っている状態となるため、このアーキテクチャはハード資源の利用効率が高い。

MIMD ではデッドロック問題や資源の競合が発生する。しかしスレッドが資源にアクセスするかどうかは予測できないため、競合を効率的に管理するのは難しい。MIMD ではオペレーティングシステムに特別なコーディングを必要とする。アプリケーションはマルチスレッド化されない限りそのような配慮は必要としない。MIMD用のオペレーティングシステムは、シングルスレッドのアプリケーションにとっては透過的であることが多い(アプリケーション側が複数プロセスのスケジューリングなどを独自に行ったりする場合はその限りではない)。システムソフトウェアもユーザーソフトウェアも「セマフォ」(または「ロック」あるいは「ゲート」とも呼ばれる)のようなソフトウェアの排他制御機構を使って、他のスレッドが同じデータにアクセスしないように防止する。このようなロック処理はコードの複雑性を増し、性能を低下させ、評価の必要性を増すが、マルチプロセッシングの利点を否定するほどの問題ではない。

同様な競合は、CPU間でハードレベルでも発生し(例えば、キャッシュの競合と破損など)、それらはハードレベルまたはハードとソフトの共同で解決しなければならない(例えば、キャッシュ・クリア命令)。マルチプロセッシングを実装する場合、性能向上のためにキャッシュという高速メモリを僅かに各プロセッサ毎に持ち、より低速なメモリ本体へのアクセスを擬似的に高速化している。各プロセッサは個別に情報を持つ事になり、この情報をプロセッサ単位で書き換え、使用する事になる。本来、メモリ上の情報を共有しているはずなのに、あるプロセッサのキャッシュ上の変更(メモリ書き込み)を他のプロセッサのキャッシュに通知しないとデータを共有できなくなってしまう。

この問題はプログラミング技法で何とかなる話ではなく、ハードウェアで何らかのキャッシュ同期機構を設けなければならない。キャッシュ同期を可能とする解決法はいくつかあって非常に複雑である。以下に例を挙げる。

  • メモリへの書き込みの際にキャッシュに書き込むと同時にバスにそれをブロードキャストする。ただし、アドレスだけでありメモリには書き込まない。
  • 書き込みを行ったプロセッサ以外は、通知されたアドレスに対応したキャッシュラインを自分が持っていたら、それを消す。
  • メモリリードでキャッシュミスが発生したとき、メモリを読みに行くが、それにメモリではなく最新の内容を持っているプロセッサのキャッシュが自動的に応答する。

より簡単な方式として、他のプロセッサが読みに来たキャッシュラインをメモリに書き戻し(シュートダウン)し、使用する際にメモリから読ませる手法があるが、性能は劣化する。いずれにしても、キャッシュを同期させようとするとシングルプロセッサよりもバスを使用する頻度が多くなるため、バスの高性能化がシステム性能の向上に必要となる。つまり、単一バスに多数のプロセッサを接続するとバスがボトルネックとなって性能が頭打ちとなる。

SIMD

SIMDマルチプロセッシングは並列またはベクトル処理に適している。非常に大きなデータセットを部分に分割し、それぞれに同一だが独立な操作を施す。単一命令ストリームが複数の処理ユニットに与えられ、それらの処理ユニットが大量のデータに同時並行的に同じ処理を行うのである。

ある種の計算アプリケーションにとっては、このタイプのアーキテクチャは多大な性能向上をもたらす。特に与えられたタスクを完了するまでの経過時間が問題となるような場合に有効である。しかし、このアーキテクチャの問題は、アプリケーションやシステムタスクが並列に実行可能な部分に分割できないような場合にシステムの大部分がアイドル状態になってしまうことである。

さらに、アプリケーションはアーキテクチャの利点を最大限に利用するために慎重かつ特殊なコーディングを必要とし、そのような環境向けのコードを生成するよう設計された特殊な最適化コンパイラを使わなければならない。そのようなコンパイラでは、明示的に並列実行すべき箇所を指定するための拡張構文などが用意されることがある(例えばSIMD型スーパーコンピュータであるILLIAC IV用のFORTRANにある DO FOR ALL 文など)。

SIMDマルチプロセッシングはコンピュータによるシミュレーションなどの一定の分野で広く使われるが、汎用デスクトップや商用コンピュータ環境ではあまり使われていない。

SIMD実行ユニットは1990後半から汎用プロセッサで採用されている。スーパースケーラ実行ユニットが同時にすべてリザーブ/リタイヤされるようマイクロコードをスケジュールするよう専用の命令を設け、プロセッサ内部の全実行ユニットを使って複数データを一斉処理する方式が一般化した。現在ではSIMDと言った場合、この設計の事を指す。基礎技術はVLIWを大いに参考にし、またSIMD実行ユニットの発展系としてEPICアーキテクチャなどが開発された。

MISD

MISDマルチプロセッシングは主に冗長性を与えるのに便利である。複数の処理ユニットが同じタスクを同じデータに対して実行し、ひとつの処理ユニットで故障が発生しても処理を続行できるのである。そのようなMISDアーキテクチャでは、障害を検出するために処理ユニット間で処理結果を比較する必要がある。それ以外の用法では利点は無く、コストパフォーマンスが悪い。MISDによって性能が向上することはない。ソフトウェアからはMISDであることを意識しないで済むように実装することもできる。

宇宙開発における探査機や深海での作業ロボット、水中探査船の制御など、極限の環境での信頼性確保などに利用される事が多い。小惑星探査で有名な『はやぶさ』では、3重に冗長化され、多数決制御による処理を行うコンピュータが搭載されていた。

またプロセッサの異常が致命的な事態を招くシステムではMISDは必須となっている。例えば航空機のアビオニクスや、絶対の信頼性が原則である原子力発電などでは、法的にMISDかそれに等しい信頼性を持っている事を証明しなければならない。

関連項目


マルチプロセッサ

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/03/18 16:30 UTC 版)

バロース B5000」の記事における「マルチプロセッサ」の解説

B5000シリーズ高速バス相互接続されたマルチプロセッサにおいても先駆的役割果たしたB5000シリーズは2プロセッサ構成が可能であった。B7000シリーズ最大8プロセッサであった。マルチプロセッサに関する操作としては、以下のようなものがある: HEYU — プロセッサ間割り込み発生する。 RDLK — 不可分操作。Aレジスタの指すアドレス内容をAレジスタ読み込む同時に、Bレジスタ内容をそのアドレス書き込む。 WHOI — プロセッサ識別するIDLE割り込み受け付けるまでアイドル状態となる命令。 RDLKは非常に低レベルプロセッサ同期方法である。ユーザープログラムで使用するのはEVENTデータ型である。

※この「マルチプロセッサ」の解説は、「バロース B5000」の解説の一部です。
「マルチプロセッサ」を含む「バロース B5000」の記事については、「バロース B5000」の概要を参照ください。

ウィキペディア小見出し辞書の「マルチプロセッサ」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「マルチプロセッサ」の関連用語

マルチプロセッサのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



マルチプロセッサのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2025 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【マルチプロセッサ】の記事を利用しております。
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのマルチプロセッシング (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのバロース B5000 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS