ICDロゴ

マイクロコード (microcode)

最終更新日: 2004/12/02

 コンピュータのCPUの内部において、命令(インストラクション)を実行するための一連の手続きを記述した低レベルのコード。CPUを外部から制御する場合の命令単位は「インストラクション」だが、CPU内部では、ある命令を実行するために必要な一連の手続きがマイクロコードとして記述されている。

 マイクロコードのアイデアは、メインフレーム・コンピュータにおいて、容易に命令セットのバリエーションを追加できるようにするために、米ケンブリッジ大学のモーリス・ウィルクス氏(Maurice Wilkes)によって考案された。このマイクロコードの存在により、CPU内部にはマイクロコードで記述された第2の命令セットと、それを実行するための「ナノコンピュータ」が存在する構成になり、マイクロコードの設計を変更することで、複雑な命令セット・アーキテクチャを容易に実装したり、バグフィックスを行ったりできるようになる。つまりこのような構成をとることにより、最終的にどのような命令を実装するのかとは無関係に、コンピュータの内部を設計できるようになる。

 マイクロコードを使用することで、複雑な命令を容易に実装できるようになったことから、コンピュータがサポートする命令数は劇的に増加し、ソフトウェアは単一の命令セットでかなり高機能な演算を行えるようになり、同一の処理に必要なコード量が削減された。

 しかしマイクロコード方式では、CPUの内部に、さらにナノコンピュータが存在するという2重構造になり、オーバーヘッドが生じるという欠点がある。これに対して、限られた少数の命令セットしか実装しない代わりに、それらを高速で実行できるRISC(Reduced Instruction Set Computer)プロセッサが考案された。このRISCコンピュータに対し、多数の命令セットをサポートする従来のマイクロコードベースのコンピュータはCISC(Complex Instruction Set Computers)と呼ばれるようになった。ただし最近では、命令セット・アーキテクチャは従来のCISCを踏襲しながらも、内部ではRISC的な命令に分解して実行するという、両者が融合したアーキテクチャも開発されている。これにより、従来のコンピュータとの互換性を維持しながらも、RISCコンピュータ並みのパフォーマンスを実現できる。

Copyright (C) 2000-2007 Digital Advantage Corp.

アイティメディアの提供サービス

キャリアアップ