無料 レンタルサーバー

CPUとは

商品名

CPU(シーピーユー、Central Processing Unit - セントラルプロセッシングユニット)は、プログラムによって様々な数値計算や情報処理、機器制御などを行うコンピュータにおける中心的な電子回路である
中央処理装置(ちゅうおうしょりそうち)あるいは中央演算処理装置(ちゅうおうえんざんしょりそうち)とも言われる

概要

商品名

CPUは記憶装置上にあるプログラムと呼ぶ命令列を順に読み込み、解釈し、その結果に従ってデータの移動や加工を行う
CPU外部にはバスやインタフェースを介して表示装置や通信装置、補助記憶装置などの周辺機器や主記憶装置が接続され、データやプログラムのやりとりを行う
このようなCPUを用いたプログラムによるコンピュータの逐次動作をプログラム内蔵方式と言い、ほとんどのコンピュータアーキテクチャの基本原理となっている
現在では概して1チップのLSIに集積されており、MPU(Micro Processing Unit)またはマイクロプロセッサと呼ぶこともある
また、算術演算機能を強化し信号処理に特化したDSPや、DA/AD,GPIO,シリアルコントローラ,タイマー,DMAC,メモリなどの周辺機器を搭載し組込み機器制御を目的としたマイクロコントローラ(マイコン)などの展開種も登場している
各種専用回路と比べ実行速度は遅いが、比較的簡易な構造でもプログラム次第で多様な処理を行えることから、非常に多岐にわたる用途に用いることが可能である
また、プログラムの命令には条件分岐などのプログラム制御命令も含まれるため、自律動作なども可能となる
以上のような特徴を持つため、CPUはおよそあらゆるシステムに内蔵され、現代の産業や生活の屋台骨を支える存在にまで普及している
現在最も普及しているCPUアーキテクチャの一つにARMアーキテクチャが挙げられる
ARMアーキテクチャは、2006年第2四半期までの一年間だけで20億2,600万以上の製品に搭載されるなど、家電製品から工業製品、携帯機器などに至るまで様々なシステムに組み込まれ、機器制御を司っている
また、PCなど現在の汎用コンピュータ製品における殆どのメインCPUにx86アーキテクチャが用いられており、特にインテルのx86系CPU出荷数は1978年6月9日の8086発売から2003年までの25年で10億個を越えた
CPU(Central Processing Unit)という用語は、特定のクラスのプログラム可能論理マシンを表す用語である
この定義は "CPU" という用語が広く使われるようになる前の初期のコンピュータにも適用可能である
この用語が一般に使われるようになったのは1960年代になってからだが、CPUの構造は1949年に世界最初のストアードプログラム方式コンピュータであるEDSACが発表された時点で現在とほぼ同じ仕組みが完成しており、CPUの発達史はスケールアップと高速化が中心となっている

構造と動作

構造と動作

構造
CPUは演算をするALU、データを一時記憶するレジスタ、メモリーや周辺機器との入出力を行うバスインターフェース、CPU全体を制御する制御部分などで構成される
その他 浮動小数点演算を行うFPU(浮動小数点演算ユニット)、レジスタより多くの情報を一時記憶するキャッシュメモリ、DMAコントローラ、タイマー、シリアルインターフェースなどの機能をCPUと同一IC内にもつものもある
また、メモリから読み込んだ命令語を内部的なオペレーションに置き換える変換部を持つものもある
CPUを構成する各部の動作はクロック信号によって規則正しいタイミングで統制されている
同じCPUであればクロック周波数が高い方が一定時間に多くの処理を行え、高速に動作する
1クロックで行える処理の内容はCPUの設計により異なり、1つの機械語命令を実行するのに複数クロックかかるものから1クロックで複数の命令の実行を同時に行えるものまである
クロック周波数1GHzのCPUであれば、1秒間に10億回の基本動作を行う事ができる
多くのCPUでは、大まかに言って制御部が命令の解釈とプログラムの流れの制御を行い、演算部が実行を行うので、同時に実行されるのは1命令だけであるが、非ノイマン型のCPUや画像処理など高速性が要求される用途向けのCPUでは、同時に複数の命令を実行できるように複数の実行部を同一IC内に持っているものがある

動作
CPUの基本的な動作は、その実装に関わらずプログラムと呼ばれる命令列を順番に実行することである
プログラムは数値列として何らかのメモリに格納されている
CPUでは、フェッチ、デコード、実行という3つのステップがほぼ必ず存在する
最初の段階であるフェッチとは、実行すべき命令(ある数値または数値の並び)をプログラムの置かれたメモリから取り出すことである
メモリ上の実行すべき命令の位置はプログラムカウンタで指定される
プログラムカウンタはCPUが現在見ているプログラム上の位置を示しているとも言える
命令フェッチに使用されると、プログラムカウンタはフェッチしたぶんだけ増加させられる
CPUがメモリからフェッチした命令によってCPUの次にすべきことが決定される
デコードでは、命令をCPUにとって意味のある形式に分割する
命令を表す数値をどう分割するかは、予めそのCPUの命令セットで決定される
命令の一部の数値は命令コードと呼ばれ、実行すべき処理を指定する
その他の部分はオペランドと呼ばれ、その命令で使用する情報を示している
たとえば加算命令のオペランドは加算すべき数値を示している
オペランドには数値そのものが書かれていたり、数値のある場所(メモリのアドレスかレジスタの番号)が書かれている
古い設計では、デコーダ(デコードを行う部分)は変更不可能なハードウェア部品だった
しかし、より複雑で抽象的なCPUや命令セットではマイクロプログラム方式がしばしば使われ、命令を様々な信号に変換するのを助けている
このマイクロプログラムは書き換え可能な場合があり、製造後でも命令デコード方法を変更することができる
フェッチとデコードの次は、実行ステップが行われる
このステップでは、CPUの多くの部分が接続され(たとえばマルチプレクサを切り替えるなどして)指定された操作を実行する
たとえば、加算を要求されている場合、ALUが所定の入力と接続され、出力と接続される
入力は加算すべき数値を提供し、出力には加算結果が格納される
加算結果が大きすぎてそのCPUに扱えない場合、算術オーバーフローフラグをフラグレジスタ(ステータスレジスタ)にセットする(RISCではフラグレジスタが存在しない場合もある)
入力や出力にはいろいろなものが使用される
演算結果が一時的かあるいはすぐに利用される場合にはレジスタと呼ばれる高速で小さなメモリ領域に格納される
メモリも入力や出力に使われる
レジスタ以外のメモリは低速だが、コスト的には一般的なメモリの方が安価であり大量のデータを格納できるため、コンピュータには必須である
いくつかの命令はプログラムカウンタを操作する
それらは一般にジャンプ命令と呼ばれ、ループを構成したり、条件分岐をしたり、サブルーチンを実現するのに使われる
また、多くの命令はフラグレジスタを変化させる
それらのフラグはプログラムの動作に影響を与える
たとえば比較命令は二つの値を比較してフラグレジスタにその大小を示す値をセットする
そして、その値を使用してその後の処理の流れを決定するのである
命令を実行後、同じ流れが繰り返されて次の命令をプログラムカウンタにしたがってフェッチする
もっと複雑なCPUでは、複数の命令をフェッチし、デコードし、同時に実行することもできる
しかし、基本的にどんなCPUでもやっていることはここで説明した流れと同じである

熟女

▲Page Top

無料 レンタルサーバー