プロセッサー関係(シングルプロセッサー)


 問題として聞かれてくるのは、パイプライン関係と、その関係の処理の高速化技術です。単語と意味と仕組みを覚えてくと良いでしょう。

◆ プロセッサーとは

 データの処理装置の事、早い話が CPU(中央処理装置) の事を指します。 ・・・が、場合によってはメインメモリー+CPU の事を指す場合もあるようです。
 シングルプロセッサーには2種類あります。

RISC ・・・ 機能を絞り(命令を単純化)処理の高速化を重視したプロセッサーの事です。 処理をパイプライン化にしやすく、高級言語に向いていると言われています。

CISC ・・・ 機能を多く持ち、ソフトウェアで指定する命令を減らせるという利点を持ちますが、 パイプライン化しにくく、高速処理に向いていないと言われています。


 プロセッサー内での1つ命令を、以下の様な一般的なサイクルで処理します。

 (1) 命令の読み込み(命令フェッチ)
 (2) 命令の解析(命令でコード)
 (3) メモリアクセス(オペランド読み出し 要は必要なデータを取得してくる)
 (4) 実行
 (5) 結果の出力


◆ パイプライン

 プロセッサーで説明しましたが、命令は5つの処理で1サイクルになっています。 その処理は1つ1つは独立した処理機構らしく、例えば命令Aが読み込みが完了して解析に入った時、他の命令の読み込み処理ができるようになります。
 下の図もよく見るのではないかと思います。

命令ステップ実行時間
(1) (2) (3) (4) (5)
(1) (2) (3) (4) (5)
(1) (2) (3) (4) (5)
(1) (2) (3) (4) (5)

 上のように処理をずらしてあげれば、並行して命令を処理していく事ができます。これをパイプラインと言います。
 ちなみに過去問題で、たまに実行時間の事をきかれます。

 パイプラインの深さをD、パイプラインピッチをP秒 そして命令がI個あるとして、実行に要する時間は

 (I+D−1)×P

 です。

◆ スーパースカラ(スーパースケーラー)

 上記のパイプラインを複数持つ事いいます。
 通常パイプラインは、1つの処理で対応できるのは1つの命令だけですけど、スーパースカラだと1つの処理で、複数の命令に対応する事だそうです。
 (IntelのCPU Pentiumシリーズとかがこれに対応しているそうです。)

◆ 投機実行と遅延実行

 どちらもパイプラインを有効活用する手法です。
 投機実行とは、パイプラインの制御処理で分岐命令が出現し、その判定が決まる前に分岐先を予測して処理を実行してしまう手法です。 もちろん、予測が外れて処理が無駄になる事もあります。この事をパイプラインハザードと言います。
 逆に遅延実行とは、分岐命令が出現しても分岐先を予測せず、判定が決まるまでの空き時間に、判定と関係ない処理を先に実行してしまう手法です。





これより下は選択肢として出てきたもので、意味と問う問題として出るかどうかちょっと怪しい単語です。


◆ アウトオブオーダー実行

 命令の順序を無視して、実行する手法です。
 過去問題で、選択肢の1つとして出題されてますが、出るかどうかちょっと分かりません。


◆ VLIW

 Vrey Long Instruction Word の略で命令語が長い固定長の意味。
 コンパイル時に、ロード、ストア、演算、分岐などの命令をジュールを構成して、1度に実行する手法です。
 ですが、結局普及しなかったようで問題としてでるかどうか・・・


◆ SMT

 通称「ハイパースレッティング」(同時マルチスレッティング)。 単一CPUコアを論理的に複数にみせかける技術。
( Pentium4 とか Core i7 とかに実装されているそうです。:Core2はどうなんだろう?)




TOPページに戻る