命令セット
出典: フリー百科事典『ウィキペディア(Wikipedia)』
命令セット(めいれいせっと、instruction set)は、プログラマから見たコンピュータ・アーキテクチャを指す言葉で、データ型、命令、レジスタ、アドレッシングモード、メモリアーキテクチャ、割り込みと例外処理、(もしあれば)入出力などから構成される。命令セットアーキテクチャ (instruction set architecture, ISA) とも言う。
ISAは、CPUに実装された命令形式を二進数のコード(オペコード)のセットで表現したものである。オペコードのセットは、機械語とも呼ばれる。
目次 |
[編集] 概要
命令セットアーキテクチャは、マイクロアーキテクチャと区別するための用語でもある。マイクロアーキテクチャとは、ある命令セットを実装するためのプロセッサ設計上の技術を意味する(マイクロコード、パイプライン、キャッシュシステム、など)。 マイクロアーキテクチャの異なるコンピュータが同じ命令セットを共有することもある。 例えば、インテルのPentiumとAMDのAthlonは、実装しているx86命令セットはほとんど同じだが内部設計は全く異なる。
この概念を拡大したユニークなISAとしてTIMI (Technology-Independent Machine Interface) があり、これはシステム/38とAS/400で使われている。TIMIは最近では仮想機械として知られるソフトウェアで実現されている。これはプラットフォームとそこで動作するアプリケーションの寿命を延ばすために設計されたもので、プラットフォーム全体を全く異なるハードウェアに移行してもTIMI自身だけを移植すれば、その上のオペレーティングシステムもアプリケーションもそのまま動作する。このためIBMはAS/400のハードウェアを古いCISCからPOWERに移行させたが、OSを含めたソフトウェアは全く変更せずに済んだ。
マイクロアーキテクチャを設計するとき、技術者は Register Transfer Language (RTL) を使って ISA の各命令の処理を定義する。
ISAは、インタプリタによりソフトウェアとしてエミュレートすることもできる。 一般にエミュレーションで動作すると、直接ハードウェアで同じISAを実装したときよりも遅くなる。 今日、新たなISA(あるいはマイクロアーキテクチャ)を開発しようとするベンダーはソフトウェアエミュレータを作って、ハードウェアが完成する前にソフトウェア開発者が開発に取り掛かることができるようにするのが一般的である。
[編集] ISA一覧
この一覧は完全ではない。古いものは省かれていて、新しいものはこれからも出てくるだろう。 商用のマイクロプロセッサやマイクロコントローラは様々なISAを実装している。 ISAのカスタマイズも非常によく見られる。
[編集] ハードウェアで実装されたISA
- Alpha AXP (DEC Alpha)
- ARM
- IA-64 (Itanium)
- MIPS
- MC68000
- PA-RISC
- POWER
- PowerPC
- SPARC
- SuperH
- システム/360
- Tricore (Infineon)
- トランスピュータ (STMicroelectronics)
- VAX (DEC)
- x86 (IA-32, Pentium, Athlon) (AMD64, Intel 64)
[編集] ハードウェアでも実装されたが一般にはソフトウェアで実装されているISA
- p-Code (UCSD p-System Version III / ウェスタン・デジタル社のPascal Micro-Engine)
- Java仮想マシン (ARM Jazelle, PicoJava)
- FORTH
[編集] ハードウェアに実装されていないISA
- SECDマシン
- ALGOL Object Code
[編集] 関連項目
[編集] ISAのカテゴリー
- ASIC 完全カスタムISA
- CISC
- デジタルシグナルプロセッサ
- Graphics Processing Unit
- RISC
- ベクタープロセッサ
- VLIW