アーキテクチャには、IntelであればIA-32アーキテクチャ(歴史的な通称はx86アーキテクチャ)のように呼ばれるものと、Netburstアーキテクチャ(Pentium 4)とか、Coreアーキテクチャとか、Core 2アーキテクチャと呼ばれるものがある。

x86アーキテクチャは命令セットレベルのアーキテクチャであり、使用できる命令の種類やその命令を実行した結果、どのようなことが起こるかを詳細に規定するが、命令を実行するハードウェアの作りについては、使用できるレジスタなどの最低限の構造しか規定していない。

車で言えば、ハンドルとアクセルとブレーキが一定の位置にあるというハードウェアの規定と、それらを操作するとどのように動くかという規定のようなもので、どのようなメカニズムで、アクセルを踏み込むと車が加速するかとか、ハンドルを廻すと進行方向が変わるかとかいう、車の作りについては規定していない。

一方、車の例で言えば、アクセルを踏み込むと車が加速される動力源として、ガソリンエンジンを使うか、ディーゼルエンジンを使うか、はたまた、モーターを使うかという選択があり、アクセルから動力源までの信号伝達や、動力源から車輪までの駆動力伝達をどうするかなどを設計しなければならない。

コンピュータの場合は、このレベルの設計をマイクロアーキテクチャ設計と呼んでいる。つまり、マイクロアーキテクチャは、命令セットアーキテクチャで規定した動作を行う物理的なプロセサの基本構造を規定するものである。IntelのNetburstとか、CoreとかCore 2とかいうアーキテクチャは、このマイクロアーキテクチャの名称であり、これらのマイクロアーキテクチャの命令セットは全てIA-32アーキテクチャである。

但し、IA-32アーキテクチャと言っても不変のものではなく、新たなSSE命令などが毎世代追加されて来ている。従って、古いマイクロアーキテクチャのプロセサで動いた命令は新しいマイクロアーキテクチャのプロセサでも動作するが、新しいプロセサで動作する全ての命令が、古いプロセサでも動作するとは限らない。

ノイマン型コンピュータは入力手段と出力手段を持ち、内部に格納されたプログラムを実行して、入力を処理して出力を出す。従って、入力手段から入力データを読み込む命令、出力手段にデータを出力する命令、データを演算加工する命令、そしてデータの値に応じてプログラムの実行順序を変更する命令を持つ必要がある。また、プログラムやデータを格納するためのメモリが必要であり、メモリのアドレスを指定して、その内容を読んだり、書いたりする命令も必要である。

基本的には、これだけの機能があれば、効率を問題にしなければ、たいていの処理は実行できる。従って、命令アーキテクチャを決めるということは、これらの機能を指令する命令をどのように決めるかということになる。