マイクロシーケンサとその役割
マイクロシーケンサは、
マイクロプログラム方式において非常に重要な役割を果たします。この装置は、コントロール・ストアに格納されたマイクロプログラムを通じて、
CPUにおける段階的な命令処理のためのアドレスを生成します。主に、
CPUの制御ユニットに組み込まれる形で用いられ、独立したアドレス生成器としても機能します。
アドレス生成の仕組み
通常、アドレスはカウンタやマイクロ命令の特定のフィールド、さらには
命令レジスタ内の値のいくつかの組み合わせによって作成されます。カウンタは次に実行すべきマイクロ命令を指示する際によく使われ、マイクロ命令内のフィールドはジャンプやその他の制御ロジックに使用されます。
CPUが命令セットを実装しているため、命令の
ビットを直接マイクロシーケンサがデコードし、実行するためのマイクロ命令セットを選択することが可能です。
ほとんどの現代のCISCプロセッサは、パイプライン技術を活用して単純なオペコードを1クロックサイクルで処理できる仕組みを取り入れています。また、複雑で処理に時間を要するオペコードについてはマイクロコードを利用した制御を行います。このように、マイクロシーケンサはさまざまな複雑さの処理を効率化するために設計されています。
歴史的な進展
マイクロシーケンサの初期の実装例として、IBMが開発したPALMプロセッサがありました。このプロセッサでは、全ての命令をマイクロコードでエミュレートしており、初期のパーソナルコンピュータである
IBM 5100にも使用されました。最近の例では、MicroCore Labsによって開発されたMCL86、MCL51、およびMCL65コアが挙げられます。これらは、それぞれ
Intel 8086/8088、8051、
MOS 6502命令セットを完全にマイクロコードでエミュレートしています。
分岐処理のしくみ
分岐マイクロ命令は、次に実行すべき命令のアドレスを条件付きまたは無条件で指定します。例えば、条件付きマイクロ命令は、算術や論理命令にジャンプ修飾子を追加することで、リンクレジスタを使ったインデックス付き分岐機能を提供できるのです。また、デクリメントカウンタ修飾子を使うことで、ループ処理を行うことも可能になります。
さらに、実行オプションを指定することで、特定の命令を実行した後に元のマイクロ命令の実行を続けることもできます。これにより、柔軟性のある命令フローが実現します。
複雑なマイクロプログラミングの例
IBM System/360に代表されるマイクロプログラミングされたコンピュータも興味深い例です。このコンピュータは、マイクロストアに4,096個のマイクロ命令を格納し動作します。特にSystem/360モデル40のようなシステムでは、マイクロ命令が順次実行されるのではなく、次に実行するマイクロ命令のアドレスを指定することが特徴です。
マイクロ命令のアドレス生成には、特定のフィールドが影響を及ぼします。その一部には、次のアドレスに寄与する様々な
ビットと、異なるフォーマットが存在します。例えば、特定のフィールドに基づいて機能分岐と呼ばれるプロセスを通じて、マイクロストアの特定の命令ペアに制御が移ります。
小結
マイクロシーケンサは、
CPU内部での命令実行を効率良く運営するために不可欠な要素です。その働きによって、命令の流れがスムーズになり、高度なコンピュータ処理が可能となっています。加えて、初期の歴史的な実装から最近の進歩に至るまで、その技術の進化は多くの領域で見受けられます。