ハードウェアのWeb教科書―コンピュータの仕組みを学ぼう!

プロセッサ―コンピュータの制御・演算装置の知識

トップ コンピュータ 構成要素 プロセッサ

プロセッサはコンピュータの制御・演算装置です。プロセッサ関連の知識をまとめています。

▲記事トップへ

目次

このページの目次です。

1. プロセッサとは
2. コンピュータの種類
3. コンピュータの構成
4. プロセッサの種類
5. プロセッサの基本的な仕組み
6. プロセッサのアーキテクチャ
7. プロセッサの構造と方式
8. プロセッサの動作原理
9. マイクロプログラム制御
10. プロセッサの性能
11. プロセッサの高速化技術
12. 並列処理
13. マルチプロセッサシステム

更新履歴

1. プロセッサとは

コンピューターの制御・演算を行う処理装置のことをプロセッサといいます。CPUやMPUなどはプロセッサーの一つです。

詳細

2. コンピュータの種類

代表的なコンピュータの種類と特徴についてまとめました。

詳細

3. コンピュータの構成

コンピュータを構成する基本的な構成要素と、その中心であるプロセッサの基本的な仕組み、機能および性能の考え方を理解するためまずはコンピュータの構成についてまとめています。

コンピューターの五大機能・装置

コンピュータは、入力、記憶、演算、制御、出力の五つの機能・装置に分類されます。これら、コンピューターの五大機能(五大装置)について説明していきます。

詳細

4. プロセッサの種類

プロセッサの種類、それぞれの基本的な特徴、用途についてまとめています。

詳細

5. プロセッサの基本的な仕組み

プロセッサの基本的な仕組み、機能及び性能の考え方についてです。

演算

演算は、加算や減算、比較といった計算処理のことです。

制御

制御は、電子回路などを目的の状態にするために適当な操作・調整をすることです。

制御装置とは

制御装置は、主記憶装置にある命令を取り出して解読し、処理に必要な指示や命令を他の装置に与え制御を行う装置です。

詳細

CPUとは

CPUは、Central Processing Unitの略で中央処理装置のことを言いい、パソコンやスマホなどコンピュータの中枢部に相当します。 CPUとは何か、パソコンやスマホなどとつながるように、初心者の方でもわかりやすく解説していきます。

詳細

マルチコアプロセッサ

マルチコアプロセッサは、2つ以上のプロセッサコアを1個のパッケージに集積したプロセッサです。

GPU

GPUは、リアルタイム画像処理に特化したプロセッサです。

クロック周波数

クロック周波数は、コンピュータの動作を制御するための基準信号の周波数です。 1機械語命令あたりのクロック数のことをCPIといいます。

6. プロセッサのアーキテクチャ

プロセッサのアーキテクチャについてです。

データ処理の単位

プロセッサのアーキテクチャによって、プロセッサが1命令で処理するデータサイズに違いがあります。

ビット

ビットは、英語で「bit」、binary digitの2語の一部を組み合わせた用語です。 データの基本単位で2進数の1桁です。

キャラクタ

キャラクタは、英語で「character」、文字のことです。

バイト

バイトは、8ビット分のデータを1とするデータの単位です。

ワード

ワードは、英語で「word」、データ量の単位です。 4バイトだったり8バイトだったりとプロセッサやOSの種類などに応じて大きさが変わります。

量子ビット(Quantum bit)

量子ビットは、英語で「Quantum bit」、量子コンピューターで扱われる情報の最小単位です。 0と1のほか、0と1とを重ね合わせた状態も表すことができます。

命令形式

1命令で処理するオペランドの数で命令の形式を分類できます。

1オペランド形式

1オペランド形式はオペランドが1個ある命令形式です。

2オペランド形式

2オペランド形式はオペランドが2個ある命令形式です。

ワイヤドロジック制御方式

ワイヤドロジック制御方式は、コンピューターの制御部と演算部で行われるすべての命令の実行を、電子回路だけで制御する方式です。

命令セット

プロセッサのアーキテクチャによって命令セットに違いがあり、プロセッサアーキテクチャとしてはRISCとCISCがあります。

RISC

RISCは、固定長の少数の単純な命令のみを備え、実行効率を向上させるという考え方のプロセッサアーキテクチャです。 主に高性能コンピュータ向けや携帯機器向けのプロセッサ製品で採用されています。

CISC

CISCは、複雑で高度な機能を持つ命令語をなるべくたくさん用意する考え方のプロセッサアーキテクチャです。 パソコン向けなどで広く普及しているインテルのx86/x86-64系プロセッサなどが代表的で採用されています。

マイクロプログラム制御方式

マイクロプログラム制御方式は、プロセッサが実行する機械語の命令列を、より単純な命令の列であるマイクロコードに自動変換を行う方式です。

7. プロセッサの構造と方式

プロセッサの構造と方式についてです。

アキュムレータ

アキュムレータとは、論理演算や四則演算などを行う際に使われる演算専用のレジスタです。 英語はaccumulatorです。

補数器

補数の演算を行う回路を補数器といいます。

乗算器

乗算器は、二つの数についての乗算を行うための電子回路です。

積和演算器

積和演算器は、積和演算を行うための電子回路です。

命令アドレスレジスタ(命令カウンタ、プログラムカウンタ、逐次制御カウンタ)

命令アドレスレジスタは、次に実行すべき命令が格納されているメモリ上の番地(アドレス)を保存しているレジスタです。 命令カウンタ、プログラムカウンタ、逐次制御カウンタなどともいいます。

IR ( Instruction Register:命令レジスタ)

命令レジスタは、実行する命令の内容を格納するレジスタです。

GR(General Register:汎用レジスタ)

汎用レジスタは、状況に応じて様々な用途に用いることができるレジスタです。

インデックスレジスタ(指標レジスタ)

インデックスレジスタは、アクセスしたいメモリ上の番地(アドレス)の、基準値からの相対的な値を格納するためのレジスタです。 指標レジスタともいいます。

ベースレジスタ

ベースレジスタは、アクセスしたいメインメモリ上の番地(アドレス)の基準値や先頭位置を記憶しておくためのレジスタです。

MAR(Memory Address Register:メモリアドレスレジスタ)

メモリアドレスレジスタは、メインメモリ上の番地(メモリアドレス)を指定するために用意されたレジスタです。

DR(Data Register:データレジスタ)

データレジスタは、数値データを格納することができるレジスタです。

MR(Memory Register:メモリレジスタ)

メモリレジスタは、メインメモリから読み出されたデータを格納したり、書き込むデータを格納するレジスタです。

スタックポインタ

スタックポインタは、スタックと呼ばれるメモリ領域の現在の操作位置を保持するためのレジスタです。

8. プロセッサの動作原理

演算の仕組みや命令とアドレッシング、割込みなど、プロセッサの動作原理についてです。

演算の仕組み

AND回路、OR回路、NOT回路などの基本となる論理回路の組合せによって半加算器、全加算器が実現され、演算が行われています。

順序回路

順序回路は、過去に入った情報と現時点に入った情報との組合せで決まる論理回路です。

組合せ回路

組合せ回路は、出力がそのときの入力の状態のみで決まる論理回路です。

NAND回路

NAND回路は、否定論理積の演算を行う論理回路で、全ての入力の論理積(AND)をとったものの反転(NOT)する論理回路です。

命令とアドレッシング

代表的な機械語命令の種類について見ていきます。

算術演算命令

算術演算命令は、加算、減算、乗算、除算の四則演算など数値的な演算を行うための命令です。

論理演算命令

論理演算命令とは、論理演算における論理積(AND)、論理和(OR)、排他的論理和(XOR)、否定(NOT)の各命令のことをいいます。

転送命令

転送命令は、メインメモリーからレジスタ、レジスタからメモリーなどにデータを転送する命令です。

比較命令

比較命令は、レジスタやメモリの値の比較を行うための命令です。

分岐命令

分岐命令は、条件分岐を行う命令です。ジャンプ命令ともいいます。

シフト命令

シフト命令は、シフトを行う命令です。

入出力命令

入出力命令は、外から入力を受け付けたり、出力したりするときに使用される命令です。

アドレス部(オペランド)

アドレス部は、機械語で記述された命令のうち、アドレスが記されている部分のことをいいます。

オペランド

オペランドは、コンピュータの演算における値や変数のことをいいます。

フェッチ

フェッチは、機器やプログラムなどが特定の場所からデータなどを読み出す動作のことをいいます。

アドレス計算

アドレス計算は、オペランドの保存場所を導き出すことをいいます。

アドレス方式

アドレス方式は、アドレス計算を行う方式です。

アドレス修飾

アドレス修飾は、機械語命令のオペランドにあるアドレス情報を利用して、実行するべき命令の対象となるデータアドレスを決定することをいいます。

直接アドレス指定

直接アドレス指定は、データを取得する実際のメモリアドレス(有効アドレス)として、命令文の一部として記述された数値をそのままメモリ上の番地と解釈して用いる方式です。

間接アドレス指定

間接アドレス指定方式は、オペランド部に対象データの場所を示すメモリのアドレスが格納されている方式です。

インデックスアドレス指定(インデックス修飾)

インデックスアドレス指定は、データを取得する実際のメモリアドレス(有効アドレス)として、CPU内部の記憶装置の一種であるインデックスレジスタに保存された値と命令のアドレス部の値を足し合わせたものを用いる方式です。

インデックス修飾

インデックス修飾は、命令のアドレス部で指定されたメモリアドレスにインデックスレジスタの値を加算したものを実効アドレスとする方式です。

ベースアドレス指定

ベースアドレス指定は、アドレス部分を2つに分割し、ベースレジスタと呼ばれるレジスタとアドレスを示す部分に分け、実行アドレスがベースレジスタの内容とアドレスとの和となる方式です。

相対アドレス指定

相対アドレス指定は、アドレス部の値と、プログラムカウンターの値との和が有効アドレスである方式です。

絶対アドレス指定

絶対アドレス指定は、データを取得する実際のメモリアドレス(有効アドレス)として、命令文の一部として記述された数値をそのままメモリ上の番地と解釈して用いる方式です。

即値アドレス指定

即値アドレス指定は、オペランド部に対象となるデータそのものが入っている方式です。

有効アドレス(実効アドレス)

有効アドレスは、実効アドレスとも言い、制御装置が命令を実行する際に、実際に使用するアドレスのことをいいます。

割込み

割込みについてです。

SVC(SuperVisor Call)割込み

SVC割り込みとは、内部割込みの一種でプログラム自身があえて発生させる割込みです。

入出力割込み

入出力割込みとは、外部割り込みの一種で入出力が完了したときなどに発生する割込みです。

割込み制御

割込み制御は、割込み処理をコントロールする機構です。

マシンチェック割込み

マシンチェック割込みは、機械チェック割込みとも言い、外部割り込み機能のひとつで、ハードウェアに異常が検出された際に発生する割込みです。

プログラム割込み

プログラム割込みは、桁あふれ(オーバフロー、アンダフロー)や0による除算、記録保護違反など、プログラム上のエラーによって発生する内部割込みです。

9. マイクロプログラム制御

プロセッサの動作を制御する仕組みとして、1機械語命令を実行するためのプログラム(マイクロプログラム)をファームウェア化して内蔵する方式があります。

マイクロプログラムメモリ

マイクロプログラム制御ユニットは、制御信号を生成するためにソフトウェアアプローチを使用します。 制御信号の生成はプログラムの助けを借りて決定されます。 このプログラムは、より小さく高速なプロセッサの特別なメモリに格納されます。 このメモリをマイクロプログラムメモリまたはコントロールストアといい、プログラムをマイクロプログラムといいます。

マイクロプログラムメモリは英語で「microprogram memory」です。

マイクロプログラムカウンター

マイクロプログラムカウンタは、制御シーケンスを循環させるために使用されます。 条件は、マイクロプログラムのフローを決定するために使用されるビットです。 次のアドレスによって、次に実行されるマイクロワードが決まります。

エミュレーション

エミュレーションは、マイクロプログラム方式のコンピュータで、他のコンピュータの命令をマイクロプログラムで実現し、 他のコンピュータ用に作られたプログラムをすべてそのままそのコンピュータのうえで実行させることをいいいます。

水平型マイクロコード

水平型マイクロコード(マイクロプログラム)は、マイクロ命令が直接CPU各部の制御を行う方式のマイクロコードです。

垂直型マイクロコード

垂直型マイクロコード(マイクロプログラム)は、マイクロ命令を論理回路で解釈(デコード)して実行する方式のマイクロコードです。

10. プロセッサの性能

プロセッサの性能は、内部時計の速さや、単位時間に実行できる命令数などで表されます。 プロセッサの性能に関連するクロック周波数、MIPS(Million Instruction Per Second)、CPI(Cycles Per Instruction)の意味、関係式などプロセッサの性能指標についてをまとめています。

詳細

11. プロセッサの高速化技術

プロセッサの代表的な高速化技術について見ていきます。

パイプライン

パイプライン処理方式とは、命令の実行を「取出し」と「実行」など、命令の処理工程(ステージ)に分け、ある命令のステージと次の命令のステージを並列に行う処理方式です。 パイプライン処理方式は、複数の命令をオーバーラップさせて同時実行可能とすることから、命令パイプラインとも呼ばれます。

パイプライン処理方式の制御イメージ

例えば、RISCマシンは、ステージ1(IF:命令フェッチ)、ステージ2(ID:命令デコード)、ステージ3(EX:実行)、ステージ4(MEM:メモリアクセス)、ステージ5(WB:レジスタ・ライトバック)の5段階にステージに分割されていて、 これをパイプライン処理にすると表のようなイメージで実行されます。

表 パイプライン処理方式の制御イメージ
サイクル1サイクル2サイクル3サイクル4サイクル5サイクル6
命令1IFIDEXMEMWB
命令2IFIDEXMEMWB
命令3IFIDEXMEM

スーパパイプライン

パイプラインを更に細分化することによって、高速化を図る方式です。

スーパスカラ

スーパースカラは、複数のパイプラインを用い、同時に複数の命令を実行可能にすることによってCPUやMPUなどプロセッサーを高速化する方式です。

詳細

VLIW

VLIWとは、Very Long Instruction Wordの略で、 同時に実行可能な複数の命令をまとめて一つの命令として、同時に実行し、プロセッサの実行効率を上げる方式です。

VLIWは、プロセッサの高速化技法の一つとして、同時に実行可能な複数の動作を、 コンパイルの段階でまとめて一つの複合命令とし、高速化を図ります。

CPUの命令セットの中で、 同時に実行しても互いに影響しない複数の命令を組み合わせ、 一つの長い命令語とすることで、 並列実行におけるパイプラインの効率化を図る手法で 命令語を長く取り、一つの命令で複数の機能ユニットを同時に制御することによって高速化を図ります。

シングルコアプロセッサ

シングルコアプロセッサは、1つのプロセッサコアを搭載したプロセッサです。

マルチコアプロセッサ

マルチコアプロセッサは、2つ以上のプロセッサコアを1個のパッケージに集積したプロセッサです。

12. 並列処理

代表的な並列処理方式について見ていきます。

SISD

SISDは、Single Instruction stream, Single Data streamの略で、シングルプロセッサのコンピュータアーキテクチャです。 単一の命令ストリームを実行し、一度に1つのデータだけを操作する方式で、ノイマン型アーキテクチャに対応しています。

SIMD

SIMDとは、読み方はシムド、1つの命令で複数のデータを処理する方式です。

詳細

MISD

MISDは、Multiple Instruction stream, Single Data streamの略で、並列コンピューティングアーキテクチャです。 多数の機能ユニットが同じデータに対して異なる操作を同時に行います。

MIMD

MIMDとは、Multiple Instruction stream/Multiple Data streamの略で、代表的な並列処理方式の1つです。

詳細

13. マルチプロセッサシステム

複数のプロセッサを搭載し,高速化及び高信頼化を実現したシステムについて見ていきます。

疎結合マルチプロセッサシステム

疎結合マルチプロセッサシステムは、マルチプロセッサシステムの構成法の一つで、複数のプロセッサがそれぞれメインメモリなどを持ち、別々のOSインスタンスによって動作します。

密結合マルチプロセッサシステム

密結合マルチプロセッサシステムは、複数のプロセッサーが主記憶やディスクなどの資源を共有し、互いに連絡をとりながら1つのOSによって制御されるマルチプロセッサーシステムです。

アムダールの法則

アムダールの法則は、システムの処理性能改善に関する法則です。 アムダールの法則は、以下のような数式で表されます。

アムダールの法則

並列化によってrは高速できる割合、nはCPUの数、EがCPUを増やすことによって得られる計算速度向上の程度を示しています。

同期

同期は、時系列的にタイミングを合わせる制御のことを意味する用語です。 マルチプロセッサシステムのキャッシュメモリは、MESIプロトコルなどのキャッシュコヒーレンシプロトコルを使用して内容を同期させて一貫性を保ちます。

クラスタ

クラスタは、一つのシステムとして処理を実行するひとまとまりの複数のコンピュータ群です。 この技術の発展形としてクラウドコンピューティングがあります。

更新履歴

戻る

スポンサーリンク

カテゴリー

スポンサーリンク