CPU
フェッチとデコードの次は、実行ステップが行われる。このステップでは、CPUの多くの部分が接続され(たとえばマルチプレクサを切り替えるなどして)指定された操作を実行する。たとえば、加算を要求されている場合、加算器が所定の入力と接続され、出力と接続される。入力は加算すべき数値を提供し、出力には加算結果が格納される。加算結果が大きすぎてそのCPUに扱えない場合、算術オーバーフローフラグをフラグレジスタ(ステータスレジスタ)にセットする(RISCではフラグレジスタが存在しない場合もある)。入力や出力にはいろいろなものが使用される。演算結果が一時的かあるいはすぐに利用される場合にはレジスタと呼ばれる高速で小さなメモリ領域に格納される。メモリも入力や出力に使われる。レジスタ以外のメモリは低速だが、コスト的には一般的なメモリの方が安価であり大量のデータを格納できるため、コンピュータには必須である。
いくつかの命令はプログラムカウンタを操作する。それらは一般にジャンプ命令と呼ばれ、ループを構成したり、条件分岐をしたり、サブルーチンを実現するのに使われる。また、多くの命令はフラグレジスタを変化させる。それらのフラグはプログラムの動作に影響を与える。たとえば比較命令は二つの値を比較してフラグレジスタにその大小を示す値をセットする。そして、その値を使用してその後の処理の流れを決定する。
命令を実行後、同じ流れが繰り返されて次の命令をプログラムカウンタにしたがってフェッチする。もっと複雑なCPUでは、複数の命令をフェッチし、デコードし、同時に実行することもできる。しかし、基本的にどんなCPUでもやっていることはここで説明した流れと同じである。
「CPU」の意味は、厳密に言うと、「プロセッサ」や「マイクロプロセッサ」とは意味が異なっており、範囲の違いがある。
もともとは、コンピュータの中央処理装置(CPU)は、ディスクリート(ダイオードやトランジスタなど、単機能の個別半導体で構成された電子回路)から成るかなり大きなサイズの電子回路で作られた。やがて集積回路を作れるようになると、それを使い中央処理装置を作るようになった。(なお、大型汎用機を指す「メインフレーム」という語は、もともとは多数の架(フレーム)から成る大型汎用機システムにおいてCPUの収まる主要部(メイン)、という所から来ている。) さらに大規模集積回路(LSI)を作れるようになると、やがてCPUの機能を含んだマイクロプロセッサを製造できるようになり、それがCPUとして使われている(ただしマイクロプロセッサはCPU以外の用途で使われているほうがはるかに数が多い。例えばPCの電源部に内蔵されている制御用マイクロコントローラはマイクロプロセッサの一種だが、PCのCPUではない。)
IBMのSystem/360のCPU。
21世紀現在のコンピュータは、ほぼ全てが「二値論理」方式であり、そのうちの全てではないもののかなり多くが、二値論理に数の表現法として二進法をマッピングして演算などを行っているが、メインフレームや、電卓用に特別に設計されたマイコンなどには、広義の二進化十進表現に含まれるような方式でハードウェアによって直接に十進の計算を行う機能が強化されているものもある。1ビットが二進法の1桁である。ビット数を「ビット幅」などとも呼ぶ。
例えば、「ビット幅」や「データバス幅」が8ビットであるため8ビットCPUと呼ばれるCPUでは、主なレジスタ等の幅、あるいは、データバスの幅が8ビットである。8ビットでは、非負整数であれば二進法8桁で表せる範囲である「2の8乗 − 1」まで、つまり[0 〜 255]の範囲の整数が表現できる。
また「アドレス幅」はCPUが直接にメモリを指し示す(アドレッシングする)範囲を制限する。例えば、アドレス幅が32ビットのCPUでは、そのCPUが直接指定できるアドレスの範囲は、2の32乗、つまり4,294,967,296個の異なる位置になる。
System/360以降の多くの命令セットアーキテクチャ(ISA)では1バイトがアドレス付けの単位であるため(バイトアドレッシング)、4ギビバイトのメモリに、直接アクセスできる、ということになる。
これらはCPUのデータ幅やアドレス幅による単純な分類方法であり、実際のCPUではデータ信号線やアドレス指定方法に工夫することで、外部的に少ないデータバス幅や内部的に少ないアドレス幅でも効率的にメモリ・アクセスできるようにしているものがあるため、こういった分類は多少複雑になっている。
CPUを表現する場合のビット数の意味は以下の通りである。
アドレス幅(内部のアドレスレジスタ幅、外部アドレスバス幅)
データバス幅(内部データ幅、外部データバス幅)
内部演算幅(=演算装置の幅と整数レジスタ幅)
命令語長
1990年代以降は4ビットから64ビットまで多様なビット幅のCPUが製品化されている。高ビット幅のCPUは機能や性能が高い反面、高集積化や回路の複雑度から高価格で消費電力も大きく、低ビット幅のCPUは機能や性能が制限される代わりに安価で低消費電力であるなど特徴があり、状況に応じて使い分けられている。
1990年代後半から21世紀に入って、パーソナルコンピュータ用CPUで一般化した、いくぶん新たなCPU高速化技術については、複数CPUの搭載(マルチコア)やVLIW、スーパースケーラなどがある。これらはメインフレームなどの大型計算機ではずっと前から一般的だったが、PC用の技術として降りてくるまでにはプロセス微細化の発展や製造コスト低下を待たなければならなかった。