【プロセッサ】種類、構成・動作原理、割込み、性能と特性など

プロセッサの種類、構成・動作原理、割込み、性能と特性などについて解説します。

【コンピュータ及びプロセッサの種類】

プロセッサ (processor) とは、ソフトウェアプログラムに記述された命令セットを実行するためのハードウェアです。
演算装置、命令や情報を格納するレジスタ、周辺回路などから構成されます。
命令は、プログラムカウンタが示す主記憶のアドレスから取り出され、制御装置内の命令デコーダによって解読されます。

【構成・動作原理】

コンピュータの五大機能・装置
演算装置 加減算やOR・ANDなどの論理演算、比較演算やシフト演算などを行う装置。
制御装置 プロセッサの演算装置やレジスタの動作、記憶装置の読み書き及び入出力などを制御する装置。
記憶装置 コンピュータが処理するデータを保存する装置。レジスタやキャッシュメモリ、主記憶、補助記憶装置や外部記憶装置など。
入力装置 コンピュータが利用者からの情報を読み込む装置。キーボードやマウスなど。
出力 コンピュータが実行状態や実行結果を出力する機能。ディスプレイやプリンタ、スピーカなど。

【割込み】

割込みとは、システムに問題が生じたときに、実行中のプログラムの処理を一旦停止し、問題対処を優先する仕組みです。
割込み発生時は次の手順で処理が実行されます。

手順
ユーザモードから特権モードへ移行します。
プログラムレジスタ(次に実行するべき命令の格納先である主記憶上のアドレスを保持するレジスタ)の値をスタックへ退避します。つまり、割込み処理終了後にもとの命令位置に戻れるように現在のプログラムカウンタの値をスタックに退避させます。
割込み処理ルーチンの開始番地を決定し、所定の割込み処理の開始アドレスを取得してプログラムカウンタにセットします。
割込み処理ルーチンを実行し、所定の割込み処理を行います。
割込み処理が終了したら、スタックは退避していたアドレスをプログラムカウンタに戻し、中断時の場所から処理を再開します。

割込み(Interrupt)は、すぐに対処しなくてはならない問題などがシステムに生じたときに、実行中のプログラムの処理をいったん停止し、優先的に事象の解決を図ることを可能にする仕組みです。

また、割込みは、実行中のプログラムが原因でCPU内部で発生する内部割込みと、それ以外の(CPU外部で発生する)外部割込みに分類することができます。

種別 概要
内部割込み 実行中のプログラムが原因で起こる割込み
外部割込み 内部割込み以外の原因で起こる割込み
内部割込みの例 概要
ゼロによる除算命令の実行 プログラム実行中に不正な処理が行われたことによって生じるプログラム割込み(内部割込み)です。(ゼロによる除算は、解が無限となってしまうため不正な処理として扱われます)
存在しない命令コードの実行 実行中のプログラムが原因で発生する割込みなので内部割込みに分類
ページフォールトの発生 プログラムが主記憶上に存在しないデータにアクセスしようとしたときに発生する割込みです(内部割込み)。
外部割込みの例 概要
タイマによる時間経過の通知 マルチタスクの制御などを行うときに、プログラムに割り当てられた所定時間が経過したことを通知する仕組みで外部割込みに分類。

【性能と特性】

項目 概要
クロック周波数 回路が処理の歩調をあわせるために用いる信号が、1秒間に何回発生するかを示す値です。クロック数ともいいます。1秒間にクロックが100個あれば動作周波数は100[Hz]となり、1クロックが0.01秒間で発生したことになります。クロック周波数の値が高いほど、多くの処理を同一時間内にこなすことができ、処理性能が高さを表します。
MIPS CPUが1秒間に実行可能な命令数を百万単位で表したものです(Million Instructions Per Secondの略)。
フォンノイマン・ボトルネック ノイマン型コンピュータの制約。CPU速度とCPU-主記憶間のデータ転送速度には大きな差があるため、CPU処理能力がデータ転送能力により制約を受ける。

【構造と方式】

【RISCとCISC】

VLIW(Very Long Instruction Word)とは、プログラムのコンパイル時に依存関係のない複数の命令を1つの複合命令にまとめ、同時に実行させる手法です。「very long」の名が示すように1つの命令がとても長くなります。

項目 概要
CISC 複雑で多機能な命令セットでコンピュータを構成する設計方法(Complex Instruction Set Computerの略)。
RISC CPUに与える命令を短く固定長化し、専用の論理回路で高速に実行できるようにした命令セットでコンピュータを構成する設計方法(Reduced Instruction Set Computerの略)。

【命令とアドレッシング】

命令実行の流れ
①命令フェッチ プログラムカウンタが示すアドレスから命令語を命令レジスタに取り出します。
②命令デコード 命令デコーダが取り出した命令を解読します。
③実効アドレスの計算 命令語のオペランド部の値を用いて、演算対象のデータを保持する主記憶のアドレスを計算します。
④オペランドフェッチ 計算されたアドレス値を用いて主記憶からデータを汎用レジスタに取り出します。
⑤実行 解読された命令と演算対象のデータで命令を用いて演算を行います。
用語 概要
アキュムレータ 演算途中の結果を一時的に保持しておくためのレジスタです。
データキャッシュ データ(オペランド)をキャッシュするキャッシュメモリの1つです。
プログラムレジスタ 次に実行するべき命令が格納されている主記憶上のアドレスを保持するレジスタです。(プログラムカウンタともいう)
命令レジスタ 主記憶から取り出された命令が格納される場所です。

【マルチコアプロセッサ】

【高速化】パイプライン制御、スーパースカラ

用語 概要
パイプライン制御 CPU処理を高速化させるため、1命令を、命令読出し(フェッチ)、解読(デコード)、アドレス計算、オペランド呼出し、実行 というような複数のステージに分け、各ステージを少しずつずらしながら独立した処理機構で並列に実行することで、処理時間全体を短縮する技術。
パイプラインの処理時間=(I+D-1)×P
I:命令数、D:パイプラインの深さ、P:パイプラインのピッチ
スーパースカラ CPU内部に複数のパイプラインを用意して、パイプラインの各ステージを並列に実行することで処理を高速化する手法です。
ベクトル処理方式 処理すべきベクトルの長さがベクトルレジスタより長い場合、ベクトルレジスタ長の組に分割して処理を繰り返す手法です。
スーパーパイプライン パイプラインを更に細分化することによって高速化を図る手法です。
VLIW Very Long Instruction Wordの略で、命令語を長く取って一つの命令で複数の機能ユニットを同時に制御することによって高速化を図る手法です。
MIMD 複数の命令とそれに対応するデータを、それぞれが独立している複数のプロセッサに振り分けて並列処理する。Multiple Instruction, Multiple Dataの略。
SISD 単一の命令で単一のデータを処理する。Single Instruction Single Dataの略。
SIMD 単一の命令で複数のデータを処理。Single Instruction Multiple Dataの略。
MISD 複数の命令で単一のデータを扱う。Multiple Instruction Single Dataの略。

EPYC

用語 概要
EPYC AMDが設計・開発している「サーバー・組み込みシステム向けプロセッサ」のブランド名です。
【情報処理入門】用語解説・資格試験対策まとめ
情報処理分野の用語・原理・資格試験対策について解説します。

コメント