SISD (Single Instruction stream, Single Data stream)とは
SISD(Single Instruction stream, Single Data stream)は、
コンピュータアーキテクチャの一種であり、単一のプロセッサ(ユニプロセッサ)が単一の命令ストリームを実行し、一度に一つのデータだけを操作する方式を指します。このアーキテクチャは、一般的にノイマン型アーキテクチャに対応しており、
コンピュータの基本的な動作原理を体現しています。
基本的な動作原理
SISDアーキテクチャでは、プログラムの命令が順次実行されます。
CPUは、メモリから命令を一つずつ読み込み、その命令に対応するデータをメモリから取得し、演算を行います。演算結果は再びメモリに格納されるか、次の命令の入力として使用されます。この一連の処理は、単一の命令ストリームと単一のデータストリームによって行われ、複数の命令やデータを同時に扱うことはありません。
ノイマン型アーキテクチャとの関連
SISDアーキテクチャは、ノイマン型アーキテクチャの基本的なモデルです。ノイマン型アーキテクチャでは、命令とデータが同じメモリ空間に格納され、
CPUがそのメモリ空間にアクセスして処理を行います。このシンプルな構造が、SISDアーキテクチャの特徴であり、初期の
コンピュータで広く採用されていました。
並列処理の可能性
フリンの分類によれば、SISDアーキテクチャは本来並列処理の能力を持ちませんが、実際には、パイプライン処理やスーパースカラ実装といった技術を用いることで、命令の並列実行を実現しています。
- - パイプライン処理: 複数の命令を少しずつ時間をずらして重ねて実行することで、CPUの処理能力を向上させる技術です。例えば、ある命令のフェッチ(命令の読み込み)が終わる前に、次の命令のフェッチを開始するなど、複数の段階に分けて処理を並行して進めます。これにより、見かけ上の処理速度を向上させることができます。
- - スーパースカラ実装: CPU内部に複数の演算ユニットを用意し、複数の命令を同時に実行する技術です。これにより、複数の命令を同時に処理できるようになり、並列処理の効果を得ることができます。
これらの技術によって、SISDアーキテクチャでも一定の並列処理の効果が得られるようになり、現代の
コンピュータでも広く使用されています。
SISDの現代における位置づけ
初期の
コンピュータではSISDが主流でしたが、現在ではより高度な並列処理アーキテクチャ(例えば、
MIMD:Multiple Instruction stream, Multiple Data stream)も一般的になっています。しかし、SISDアーキテクチャは、そのシンプルさから、組み込みシステムや一部の低電力デバイスなど、多くの場所で利用され続けています。また、並列処理技術を取り入れることで、性能向上が図られ、現代のプロセッサでも重要な役割を担っています。
まとめ
SISDアーキテクチャは、単一のプロセッサが単一の命令ストリームとデータストリームを扱う基本的な
コンピュータアーキテクチャです。ノイマン型アーキテクチャの基本的なモデルであり、パイプライン処理やスーパースカラ実装などの並列処理技術を取り入れることで、性能が向上しています。現代においても、多くのシステムで重要な役割を果たしています。
参考文献
Quinn, Michael J. "Chapter 2: Parallel Architectures." Parallel Programming in C with MPI and OpenMP
. Boston: McGraw Hill, 2004. ISBN 0-07-282256-2
Ibaroudene, Djaffer. "Parallel Processing, EG6370G: Chapter 1, Motivation and History." St. Mary's University, San Antonio, TX. Spring 2008.