3. CPU(Central Processor Unit)

3.1. 概要

PC/AT互換機を含むコンピュータの全ての処理を行う装置です。中央演算処理装置と呼ばれます。 CPUが起動するとDRAMやBIOS ROM、PCIなどCPUのメモリ空間上に 配置されたプログラムを順番に処理し続けます。
CPUの基本的な構成は以下のようになります。

スイッチやコンデンサなどの回路素子によって構成されています。 かつては回路構成やスイッチなどを手動で切り替えていましたが、 やがて真空管によってスイッチが置き換えられ、さらにトランジスタの発明でCPUは小型化しました。 加えて集積回路の発明によりマイクロプロセッサと呼ばれる現在のような大きさのCPUが出現しました。

現在のPC/AT互換機のCPUの原型となったIntel 4004は1971年にIntel社によって開発されました。 その後、Intelより後継CPUとして8008、8080などの開発を経て PC/ATアーキテクチャの根幹となる8086が開発されました。 それゆえPC/AT互換機CPUをx86アーキテクチャCPU(x86 CPU)と呼ぶのです。

そして80286でプロテクトモードが採用され、次の80386では32bitアーキテクチャ(IA-32)となり、 1995年に発売されたPentium Proで対照型マルチプロセッサに対応して、 現在のPC/ATアーキテクチャCPUの重要機能はほぼ実装されました。

一方、AMD(Advanced Micro Devices)社は、 Intelが8086開発後、x86CPUのセカンドソース品を製造を始めたことが 現在も続くIntelとの苛烈なCPU開発競争のきっかけでした。 後にセカンドソースの製造が認められなくなった後も続々とx86 CPU製品を開発し続け、 ついにはAthlon CPU(図3.1、図3.2)を開発し、ついにはIA-32互換の64bitアーキテクチャCPUである Athlon 64やOpteronを開発しました。 AMDが開発した64bit対応の命令セットはAMD64と呼ばれています。

IntelはAMD64命令セットが開発されるよりも前から、独自にIA-64と呼ぶ 64bitアーキテクチャを開発し、Itaniumという製品に採用していましたが、 IA-32互換であったにも関わらず、IA-32命令処理の遅さから後発のAMD64命令セットに後塵を拝し、 現在はIA-64採用CPUはサーバ用途のItanium2のみで、 大部分のCPUにはIntel 64というAMD64互換の命令セットを採用しています。

図3.1 CPU Athlon 上部外観図3.2 CPU Athlon 下部外観

3.2 インストラクション(命令)

新しいx86CPUが発売されるに従って、CPUには次々と新しいインストラクション(命令)セットが追加され、 80386では32bitの基本的な処理に必要な命令セットが追加されました。 その後、PC/ATには音声や画像、動画などのマルチメディア関連処理の高速化の要望が高まり、 IntelはSingle Instruction stream Multiple Data streams(SIMD)の概念を導入したMMXテクノロジを用いて MMX Pentiumを開発しました。 以降も続々と以下のようなSIMD拡張命令セットが追加されています。

また、MMX Pentium製品発売後、AMDはMMX命令セットに浮動小数点演算機能を付加した 3DNow!を発表しK6-2に搭載しました。 それからEnhanced 3DNow!や、SSEと互換性もある3DNow! Professionalなどを発表し、 これらは現在AMD製CPUに搭載されています。



次のページ