-
CPUから見たマイクロプログラム方式
CPUがメモリからフェッチした命令によってCPUの次にすべきことが決定される。デコードでは、命令をCPUにとって意味のある形式に分割する。命令を表す数値をどう分割するかは、予めそのCPUの命令セットで決定される。命令の一部の数値は命令コードと呼ばれ、実行すべき処理を指定する。その他の部分はオペランドと呼ばれ、その命令で使用する情報を示している。たとえば加算命令のオペランドは加算すべき数値を示している。オペランドには数値そのものが書かれていたり、数値のある場所(メモリのアドレスかレジスタの番号)が書かれている。古い設計では、デコーダ(デコードを行う部分)は変更不可能なハードウェア部品だった。しかし、より複雑で抽象的なCPUや命令セットではマイクロプログラム方式がしばしば使われ、命令を様々な信号に変換するのを助けている。このマイクロプログラムは書き換え可能な場合があり、製造後でも命令デコード方法を変更することができる。(CPU フレッシュアイペディアより)
-
CPUから見たEDVAC
CPUは、一般にソフトウェア(プログラム)を実行する装置として定義されるため、CPUと呼べる最初の装置はプログラム内蔵方式のコンピュータからである。プログラム内蔵方式の考え方は、ENIACの設計時にすでに存在していたが、マシンの完成を早期に可能とするため、ENIACの初期段階で採用されなかった。ENIACが完成する以前の1945年6月30日、数学者のジョン・フォン・ノイマンの名で、First Draft of a Report on the EDVAC という報告書が公開・配布された。この中で、プログラム内蔵方式のコンピュータの設計について概説されている(アイディアの元はENIACのプロジェクト中に検討されたもので、ノイマンは助言役として加わり、報告書の執筆者はノイマンである。報告書の著者がノイマンだけとされたことやアイディアを誰の功績とみるかについては諸説ある)。この報告書はEDSACなどに影響を与えた。EDVACは1949年8月に一応の完成を見、アバディーンに移された(モークリーとエッカートの離脱(理由については諸説)などがありごたついた。運用に入ったのは1951年)。EDVACは様々な命令の集まりを実行するよう設計されていた。命令を組み合わせることで実用的なプログラムを構成し、EDVACで動作させることができたのである。殊にEDVACではプログラムは高速なメモリに格納されており、物理的に配線を変更することで指定されるものではない点が重要である。ノイマン型の設計では、EDVACで動作させるプログラムを変更するにはメモリを書き換えればよかったのである(ノイマン型はプログラム内蔵だけでなく、プログラムがデータとして書き換え可能である点まで含む点に注意)。(CPU フレッシュアイペディアより)
-
CPUから見た静電容量
1970年代中頃に登場したマイクロプロセッサにより、CPUなどに使われるプロセッサは1チップの大規模集積回路(LSI IC)に集積されるようになった。当初は当時の微細化の限界から4ビットや8ビットのプロセッサであったが、1980年代には16ビットや32ビットで、それに加えプロセス保護などメインフレームに追いつくような機能を持つものや、周辺機能やメモリ等を集積した、いわゆるワンチップマイコンなども多数現れた。もうひとつの特色はMOS(特に1980年代後半からは、CMOS)であることである。原理上、消費電力は抑えられるが、当初は遅かったことから、電卓など消費電力が重要で速度が重要でない分野から広まったが、微細化が進めば進むほど静電容量が減り高速化できるという特長があり(デナード則)、動作周波数は当初の1MHz程度から、2010年代には数GHzまで上がっている。微細化は、より多くのゲートを載せることができる、ということでもあり、より複雑で高性能なプロセッサが作られるようにもなった(ただし近年は、性能向上以上に複雑化が進む傾向である(ポラックの法則))。微細化による集積度の向上の傾向はムーアの法則により定性的にモデル化されている。(CPU フレッシュアイペディアより)
-
CPUから見たRISC
フェッチとデコードの次は、実行ステップが行われる。このステップでは、CPUの多くの部分が接続され(たとえばマルチプレクサを切り替えるなどして)指定された操作を実行する。たとえば、加算を要求されている場合、加算器が所定の入力と接続され、出力と接続される。入力は加算すべき数値を提供し、出力には加算結果が格納される。加算結果が大きすぎてそのCPUに扱えない場合、算術オーバーフローフラグをフラグレジスタ(ステータスレジスタ)にセットする(RISCではフラグレジスタが存在しない場合もある)。入力や出力にはいろいろなものが使用される。演算結果が一時的かあるいはすぐに利用される場合にはレジスタと呼ばれる高速で小さなメモリ領域に格納される。メモリも入力や出力に使われる。レジスタ以外のメモリは低速だが、コスト的には一般的なメモリの方が安価であり大量のデータを格納できるため、コンピュータには必須である。(CPU フレッシュアイペディアより)