ハードウェアのWeb教科書―コンピュータの仕組みを学ぼう!
コンピューターの制御・演算を行う処理装置のことをプロセッサといいます。CPUやMPUなどはプロセッサーの一つです。
この記事の目次です。
1. プロセッサとは
2. プロセッサとCPUの違い
3. プロセッサのアーキテクチャ
4. プロセッサの構造と方式
5. プロセッサの動作原理
6. プロセッサの性能
7. プロセッサの高速化技術
8. 並列処理
プロセッサとは、データを処理する装置のことをいいます。コンピュータでは、CPUやバス制御チップなどの半導体素子のことを言うことが多いです。 また、コンピュータから入出力装置を除いた機能を指す場合もあります。
プロセッサとCPUの違いは意味に含まれる対象の範囲が異なります。 プロセッサはCPUを含む処理装置のすべてをいいます。 CPUはコンピュータの処理装置の中の、中心に位置する処理装置のことをいいます。
CPUは、Central Processing Unitの略で中央処理装置のことを言いい、パソコンやスマホなどコンピュータの中枢部に相当します。 CPUとは何か、パソコンやスマホなどとつながるように、初心者の方でもわかりやすく解説していきます。
プロセッサのアーキテクチャについて見ていきます。
プロセッサのアーキテクチャによって、プロセッサが 1 命令で処理するデータサイズに違いがあります。
また、CPUの方が取り扱えるメモリ空間の論理上の上限にも違いがあります。 たとえば、32ビットCPUと64ビットCPUでは、64ビットCPUの方が取り扱えるメモリ空間の論理上の上限は大きいです。
プロセッサの構造と方式について補足していきます。
プログラムカウンタは、別名で命令ポインタなどといい、 割込み処理の終了後に、割込みによって中断された処理を割り込まれた場所から再開するために、 割込み発生時にプロセッサが保存するレジスタです。
プロセッサの動作原理についてまとめていきます。
AND回路、OR回路、NOT回路などの基本となる論理回路の組合せによって半加算器、全加算器が実現され、演算が行われています。
NAND回路は、NOT ANDの略で、読み方はナンド、論理積の否定を行う回路になります。
命令の実行手順(命令の取出し、命令部の解読、データの取出し、命令の実行)などプロセッサーにおける命令とアドレッシングについて見ていきます。
コンピュータの処理装置が一つの命令を取り出し実行する流れをマシンサイクルと呼びます。
マシンサイクルは命令取出し段階と命令実行段階に大別され、命令フェッチ→命令の解読→オペランド読出し→命令の実行の順で実行されます。
命令取出し段階は、次に実行する命令を主記憶装置から取り出す段階です。
プログラムカウンタの指すアドレスをもとに、主記憶装置に記憶された命令を1語、命令レジスタに取り出します。
命令を1語取り出すたびに、プログラムカウンタの値を1増加させます。 プルグラムカウンタは常に次に取り出す命令のアドレスを指します。
命令実行段階は、命令レジスタに取り出した命令を実行する段階です。
取り出した命令の命令部は命令解読器(デコーダ)に送られ解読されます。 解読の結果は制御信号に変換され、演算装置などに送られます。
アドレス部は、必要に応じてアドレス変換し、主記憶装置の指定アドレスからデータを取り出します。 データは汎用レジスタなどに記憶されます。
命令を実行します。 演算結果ならば、演算装置によって演算が実行され、その結果で、いくつかのレジスタの内容が更新されます。 また、読み書きの命令の場合、主記憶装置の指定アドレスとデータの転送が行われます。
割込みの仕組み、内部割込み、外部割込みに分類される割込みの種類、多重割込み時の処理についてまとめています。
マルチタスクを実現するためには、ある一定の時間間隔ごと、または入出力要求を出したタイミングなどでタスクを切り替えます。 この切り替える制御を割込みといいます。
割込みとは、プログラムの実行中に、何らかの条件によってプログラムの命令実行を強制的に中断し、他のプログラムに制御を移すことです。
割り込みが発生すると、コンピュータの各命令の実行ごとに、コンピュータの実行と非同期の事象が発生したかどうかを調べ、実行中のプログラムより優先順位の高い事象が生じていれば、特定番地の命令に制御を移します。
この場合、現在処理しているプログラムを一時待避させ、割り込んで入ってきたプログラムを実行します。 割り込みの処理が終了すると、待避させたプログラムを回復させ、中断したところから実行を再開します。
なお、ハード・ディスクやLANボードなど、 ハードウェアからの依頼により発生するものを外部割込み(ハードウェア割込み)といい、 ソフトウェアからの依頼により発生するものを内部割込み(ソフトウェア割込み)といいます。
内部割込みは、実行中のプログラムによって行われる割込みです。
内部割込みの種類は大きくわけて2タイプです。
プログラム実行中のエラーにより発生。桁あふれ、存在しない命令コードの実行、ゼロによる除算命令の実行、モード違反、アドレス指定エラー、記憶保護例外、ページ不在、セグメント不在など。
スーパーバイザコール、ページフォールトなど。
外部割込みは、入出力動作完了、タイマ通知、電源異常、各種センサ割込など、 プログラム(CPU)内部以外が原因で発生する割込みのことをいいます。
プロセッサの性能は、内部時計の速さや、単位時間に実行できる命令数などで表されます。
プロセッサの代表的な高速化技術の種類、特徴についてまとめています。
パイプライン処理方式とは、命令の実行を「取出し」と「実行」など、命令の処理工程(ステージ)に分け、ある命令のステージと次の命令のステージを並列に行う処理方式です。 パイプライン処理方式は、複数の命令をオーバーラップさせて同時実行可能とすることから、命令パイプラインとも呼ばれます。
例えば、RISCマシンは、ステージ1(IF:命令フェッチ)、ステージ2(ID:命令デコード)、ステージ3(EX:実行)、ステージ4(MEM:メモリアクセス)、ステージ5(WB:レジスタ・ライトバック)の5段階にステージに分割されていて、 これをパイプライン処理にすると表のようなイメージで実行されます。
サイクル1 | サイクル2 | サイクル3 | サイクル4 | サイクル5 | サイクル6 | ||
---|---|---|---|---|---|---|---|
命令1 | IF | ID | EX | MEM | WB | ||
命令2 | IF | ID | EX | MEM | WB | ||
命令3 | IF | ID | EX | MEM |
パイプラインを更に細分化することによって、高速化を図る方式です。
スーパースカラは、複数のパイプラインを用い、同時に複数の命令を実行可能にすることによってCPUやMPUなどプロセッサーを高速化する方式です。
VLIWとは、Very Long Instruction Wordの略で、 同時に実行可能な複数の命令をまとめて一つの命令として、同時に実行し、プロセッサの実行効率を上げる方式です。
VLIWは、プロセッサの高速化技法の一つとして、同時に実行可能な複数の動作を、 コンパイルの段階でまとめて一つの複合命令とし、高速化を図ります。
CPUの命令セットの中で、 同時に実行しても互いに影響しない複数の命令を組み合わせ、 一つの長い命令語とすることで、 並列実行におけるパイプラインの効率化を図る手法で 命令語を長く取り、一つの命令で複数の機能ユニットを同時に制御することによって高速化を図ります。
処理すべきベクトルの長さがベクトルレジスタより長い場合、ベクトルレジスタ長の組に分割して処理を繰り返す方式です。
その他に以下のような方式があります。
代表的な並列処理方式には以下があります。
SIMDとは、読み方はシムド、1つの命令で複数のデータを処理する方式です。
MIMDとは、Multiple Instruction stream/Multiple Data streamの略で、代表的な並列処理方式の1つです。
Copyright (C) 2021-2023 ハードウェアのWeb教科書. All Rights Reserved. Loarding…