マイクロアーキテクチャ 【microarchitecture】
概要
マイクロアーキテクチャ(microarchitecture)とは、コンピュータのCPU(MPU/マイクロプロセッサ)内部の回路の設計や構造のこと。信号の伝送路や機能ブロックなどの物理的な構成、命令の実行制御の方式などを定めている。マイクロプロセッサの設計には命令セットアーキテクチャ(ISA:Instruction Set Architecture)とマイクロアーキテクチャの二つがあり、前者はプログラムで使用できる命令語の体系を定めており、後者はこれを実際に実行するための物理的なプロセッサ内部の構成を定めている。
ソフトウェアや開発者側から見たプロセッサの仕様とは命令セットのことであり、命令セットに定義された命令を組み合わせてプログラムを記述し、コンピュータに実行させる。命令を内部でどのように解釈し、どのような制御方式によって実行していくかはマイクロアーキテクチャによって決められる。
この二つの設計が分離していることにより、同じ命令セットを持っていても内部のマイクロアーキテクチャが異なるプロセッサを開発することが可能で、同じメーカーの同系列の製品がマイクロアーキテクチャの再設計や改良により機能や性能を向上させつつ、旧製品向けの(命令セットで記述された)ソフトウェアもそのまま実行できるようになる。また、別のメーカーが同じ命令セットに対応した独自マイクロアーキテクチャの互換プロセッサを開発・販売する例もある。
同じ命令セットアーキテクチャのプロセッサ製品でもマイクロアーキテクチャが違えば性能や機能、特性、得意分野などが異なり、例えばサーバ向け製品ならば処理性能や実行並列度、データ伝送能力などを最大限に高めた設計となり、携帯機器向け製品ならば消費電力や発熱を極限まで抑え連続稼働時間をできるだけ伸ばす設計となる。
マイクロアーキテクチャに属する高速化技術には、キャッシュメモリ、パイプライン処理、スーパースカラ、分岐予測、投機的実行、アウトオブオーダー実行、マルチコア、同時マルチスレッディング(SMT)などがある。
(2019.1.29更新)