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

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

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

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

【構成・動作原理】

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

【割込み】

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

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

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

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

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

【性能と特性】

項目 概要
クロック周波数 回路が処理の歩調をあわせるために用いる信号が、1秒間に何回発生するかを示す値です。クロック数ともいいます。1秒間にクロックが100個あれば動作周波数は100[Hz]となり、1クロックが0.01秒間で発生したことになります。クロック周波数の値が高いほど、多くの処理を同一時間内にこなすことができ、処理性能が高さを表します。
MIPS CPUが1秒間に実行可能な命令数を百万単位で表したものです(Million Instructions Per Secondの略)。

【構造と方式】

【RISCとCISC】

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

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

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

おすすめ記事
関連 【情報処理入門】テクノロジ系、マネジメント系、ストラテジ系、資格試験
関連記事