応用情報に向けてCPU周りの勉強をしていたところ用語が多すぎて混乱してきたので、この記事ではマルチプロセッサの並列処理に関連する分類・用語について整理します
並列処理の3分類
マルチプロセッサに関する並列処理には主に以下の3つの分類があります
- 処理の分散方式(制御方式)による分類
- 主記憶装置との結合方式による分類
- フリンの分類(命令とデータの流れによる分類)
それぞれ以下のように分類されます
処理の分散方式(制御方式)による分類
- 対象型マルチプロセッサ
- 全ての処理を同等に扱って処理を並列化
- 非対称型マルチプロセッサ
- それぞれのプロセッサに対して違う役割を決めて処理を分散する
主記憶装置との結合方法による分類
- 密結合マルチプロセッサ
- 複数のプロセッサが主記憶を共有し、それを単一のOS(オペレーティングシステム)が制御する
- 疎結合マルチプロセッサ
- 複数のプロセッサそれぞれに対して独立した主記憶を割り当てる
- 各プロセッサにOSが必要
フリンの分類
- SISD(Single Instruction stream / Single Data stream)
- 1つの命令で1つのデータを処理する
- SIMD(Single Instruction stream / Multiple Data stream)
- 1つの命令で複数のデータを処理する
- MISD(Multiple Instruction stream / Single Data stream)
- 複数の命令で1つのデータを処理する
- MIMD(Multiple Instruction stream / Multiple Data stream)
- 複数の命令で複数のデータを処理する
世の中のプロセッサはどれを採用しているのか
一般的なコンピュータ
WindowsやLinuxなどのOSを持つ一般的なコンピュータでは対象型マルチプロセッサが使われているようです
またフリンの分類の中ではSISDが主に利用されています
組み込み機器
組み込み機器では非対称型マルチプロサッサ(AMP)の技術が使われていることが多いそうです
GPU
GPUはAIや画像・映像処理でよく使われ、対象のデータの並列処理が得意と言われています
この特徴はフリンの分類のSIMDに当てはまります
実際多くのGPUではこの方式を採用しているようです
最後に
色々な分類方法があり整理するのが大変ですが具体的に使われている例を知ると少し覚えやすいかなと思いまとめてみました
この記事が参考になると嬉しいです
コメント