メディア

RISCとCISC、それぞれの命令処理方式ハイレベルマイコン講座:【アーキテクチャ概論】(3)(4/4 ページ)

» 2019年01月29日 11時00分 公開
前のページへ 1|2|3|4       

【2】μ-プログラム

 マイコンの内部に、ユーザーに解放していないROMを持っていて、そこに命令の処理手順を前もってプログラムしておく。該当するマクロ命令がフェッチされてきたら、そのマクロ命令の処理に相当するプログラムを走らせて、マクロ命令を処理する。このROMをμ-ROMと呼び、プログラムをμ-プログラムと呼ぶ。μ-プログラムはμ-コード(マイクロコード)と呼ばれることもある。

 μ-ROMの構造やμ-プログラムの内容は、各マイコンメーカーにとって企業秘密中の企業秘密なので公開されることはない。そこで、一般的なμ-ROMの構造を簡単なブロック図にして図6に示す。実際はもっと複雑であり、特許の要素も入っているので、この図は実際と若干異なるが、μ-プログラムの処理手順を理解するには十分な図だと思う。

図6:μ-プログラム

 この図を基に、レジスタ1とレジスタ2を加算して、メモリ(RAMなど)の0x100番地に結果を入れる操作例を解説する。

  1. 命令用メモリ(フラッシュメモリなど)から、命令がフェッチされ、プリフェッチバッファ(FIFO:First In First Out)に入る
  2. プリフェッチバッファからμ-ROMへ命令が送られると、それに対応したμ-プログラムが起動する
  3. 最初のμ-プログラムでは「レジスタ1をALUの入力1に、レジスタ2をALUの入力2に接続する」が実行される
  4. このコードをデコーダがデコードして、レジスタ1とレジスタ2を開けて、ALUの該当する入力にデータを入れる制御信号が出力され、各ハードウェアが、その信号にしたがって動作する
  5. 1つのμ-プログラムが実行されると、自動的に次のクロックサイクルで、次のμ-プログラムが実行される。次は「ALUを加算機に設定し、演算する」。そしてハードウェアがこれに従って動作する
  6. 最後のμ-プログラムは「ALUの演算結果をデータ用メモリの0x100番地に入れる」。そして、ハードウェアがこれに従って動作する

 これで「レジスタ1+レジスタ2→メモリアドレス0x100」の演算は完了だ。実際はもっと複雑な処理を一度に処理する構造になっていて、できる限り少ないクロックサイクルで複雑な命令を処理するように設計される。

 このように、μ-プログラムを使用した演算処理は、1つのマクロ命令を実行するのに数クロックサイクルを要する。クロックサイクルごとにそのマクロ命令を実現するμ-プログラムの1ステップを実行するからである。そのため、非常に長い実行時間のマクロ命令が存在する場合もある。

 では、そのような実行時間の長いマクロ命令のμ-プログラムの実行中に割り込みが起きたら、どうなるのであろうか? 実は、μ-プログラムにも割り込みの概念があり、μ-プログラムの各ステップで、割り込みが発生していないかチェックする機能がある。もし、割り込みが発生した場合は、割り込み処理のμ-プログラムに分岐するようになっているので、同期だけでなく非同期の割り込みにも、クロックサイクルレベルでの対応は可能だ。

 マイコンの中に、もう1つ小さなマイコンが入っていると考えると理解しやすいと思う。

 さらに、図6を見て、マクロ命令のデコーダがないことにお気づきになっただろうか? これは、マクロ命令のコードをそのままμ-ROMのアドレスに使えば、マクロ命令が不要になるためだ。マクロ命令のコードが重なることはないので、μ-ROMのアドレスの重なることはない。この手法でマクロ命令のデコーダを簡略化できるわけだ。

 「μ-プログラムのデコーダが大きくなるのでは?」と思う読者もいるだろう。実はμ-ROMのビット数を数十ビットで構成し、各ビットに、こまごまと機能を割り付けると、各機能のデコーダが小さくなり、トータルでデコーダの論理規模を小さくできる。例えば、図7では、ALUの機能とALUの入力1になるソースと入力2のソースと、ALUの出力のディスティネーションを区分けして2ビットから4ビットで割り当てる。数十ビットを一度にデコードする場合のデコーダよりも、4ビット程度の比較的小さなデコーダが数個集まった方が、論理規模を小さくできる。

図7:μ-ROMのビット構成例

 このように、μ-ROMを使うと、ちょっとした工夫で回路規模を小さくできる。前述したように、マイコンの内部論理回路をランダム論理またはワイヤード論理で構成するよりも、論理規模を小さくし構造を簡素化でき、回路効率を高めることが可能になる。

前のページへ 1|2|3|4       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.