quadrupleize

ソフトウェア開発のために

CPU(中央処理装置)について

 CPUはパソコン内部でどのような処理をしているのか?

 CPU(中央処理装置)は、字義のとおり様々な処理の中心的な役割を果たす。四則演算や論理演算などの基本的な計算や、メモリにある命令を読みだしてそれを解釈(デコード)して実行する。命令の順序もコントロールする。ハードウェアとの通信とその通信内容に関する制御処理。またレジスタというCPUに属する高速な記憶装置で、その処理内容を一時保存する。ハードウェア割り込み(デバイスからの要求)やソフトウェア割り込み(プログラムからの要求)など割り込んでくる諸々にも対処してくれる。キャッシュ管理というデータをキャッシュに読み込み、メインメモリに書き戻しなどの処理。

 さて、このような処理はすべて0と1の処理であるが、この周期の速度をクロック周波数として表現される。クロック信号とは、クロック同期設計の論理回路が動作するときに複数の回路間でタイミングを合わせるために使用される、電圧が高い状態と低い状態をとる信号である。

 コンピューターの処理速度は、クロック周波数に依存するがそれだけではない。並行して処理ができる量はコア数が多いほど増える。それに加えてキャッシュメモリの容量と速度、命令セットの質にも依存する。

 このような処理をするにあたって命令セットが必要になる。命令コードとアドレッシングモードを組み合わせたもののことだ。命令セットの系統は、CPUの回路構成に最適化(依存)している。アドレッシングモードとは、データへのアクセス手法の定義。命令コードを分析すると演算や分岐、値の移動、判定、何もしないである。機械語では命令コードが動詞にあたり、オペランドと呼ばれる部分が述語になる。アドレッシングモードでは、直接指定と間接指定がある。分岐先の指定や値の格納場所の指定にはアドレスが使われる。プロセッサが実行できる命令の集合のことを命令セットと呼ぶが、レジスタの種類、アドレスの指定方法などについても指す。

 I/O空間とは、Input/Outputの略だ。ハードディスクなどの記憶媒体に対するデータの読み書きについては「ディスクI/O」、ネットワークに対する入出力については「ネットワークI/O」と、I/O負荷の発生場所によって区別して表記する。

 PC用のプロセッサをx86、携帯機器、スマートフォンタブレット、ゲーム機では、ARMと呼ばれる命令セットが使用されている。電子回路とは、そもそもトランジスタなどの物理的な部品で構成されていて非常に複雑な動作をしている。命令セットは、これらの複雑な動作を単純化し、可読性のために抽象化されたものです。

 命令セットとは、無形のためわかりづらいが、コンピューターが実行する命令の集まりというあくまで概念的なものだ。物理的実体などなく、情報として存在している。命令セットアーキテクチャは、ハードウェア特にCPUに組み込まれており、CPUの設計図として機能しています。RISCが発明されてから、命令コードを単純化して、回路を単純化して高速化された。