メディア
連載
» 2019年01月29日 11時00分 公開

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

[STマイクロエレクトロニクス,EDN Japan]

CISCの命令の内部処理(μ-OPとμ-プログラム)

 マイコンの雑誌やアーキテクチャの解説本やテクニカルマニュアルなどに、μ-OP(μOP)、マイクロオペレーションまたはマイクロ操作という言葉が出てくる。これらは、ほぼ同じ意味を示すが、厳密な定義はない。

 多くの場合、命令の内部処理操作を大幅に簡素化して処理する意味で使われる。一般に、より複雑な(例えば、命令長が可変で複雑な動作を行う)命令をマイコン内部で単純な単一操作または単一動作コマンドに変換し、その単一操作や動作を組み合わせて処理する手法を指す。筆者の記憶では、RISCが世に出る前から、CISCではよく使われていた。もう少し分かりやすく説明すると、CISCの複雑な命令を、マイコン内部でRISCのような簡単な命令に分解して、それらを組み合わせて実行する方式だと考えれば分かりやすい。もちろん必ずしもRISCのような単一動作コマンドに変換するのではなく、単一操作に分解して処理するマイコンもある。μ-OPは、命令が均一であるRISCでも、スーパースカラ方式のCortex-M7などでも採用されている。

 一方、μ-OPとよく似た方式にμ-プログラム(μ-命令)がある。これはマイコン内部にμ-ROMを設け、ここにμ-プログラムを入れておき、複雑な命令はμ-ROMの中のμ-プログラムを実行することで処理する。

 初期のCISCマイコンの内部論理回路はランダム論理またはワイヤード論理で構成された。そして、より複雑な命令をランダム論理またはワイヤード論理で処理しようとした場合に、論理規模が大きくなったり、構造が複雑になったりして回路効率が悪くなったため、μ-OPやμ-プログラムが考え出された。筆者も実際にμ-プラグラムのマイコンを開発した経験がある。その際にランダム論理またはワイヤード論理を使用した場合とμ-プログラム(論理回路規模はμ-ROMの大きさだと考える)を使用した場合の論理規模(トランジスタの使用数量と占有面積)を試算した。同じ機能ならば、μ-ROMの方がランダム論理またはワイヤード論理の半分以下の論理規模で実現可能である結果に至ったため、最終的にμ-プログラム(μ-ROM)を採用した。

【注意】
 今回、μ-プログラムを説明するにあたり、ユーザーが作成、実行する命令のプログラムとμ-プログラムと混乱しないように、ここで言葉を定義しておく。ユーザーが作成する命令(プログラム)はマクロ命令(マクロプログラム)と呼び、μ-プログラムと区別して解説を進める。

【1】μ-OP

 μ-OPは、主に1命令自体が複雑な操作をするCISCで用いられる手法だが、RISCでもスーパースカラの内部で採用されている。ここでは、Cortex-M7のスーパースカラの命令発行パイプラインを例にとって、具体的なμ-OPの動作を説明する。

 Cortex-M7では命令を64ビットでフェッチしてきて、それを32ビットに分けて、2つの命令としてデコードする。デコードされた命令をμ-OPに分解し、次段の発行へ受けわたす。ここで行われるμ-OPの操作はまず、データ依存状態のチェックになる。すなわち同時発行できるかどうかのチェックを行う。2つの命令に全く依存性がない場合や、どちらのALUでも実行可能な場合は、同時に発行されて、2つのALUで同時に実行される。イメージ図を描くと図5の上段になる。

図5:実際のμ-OP(Cortex-M7の命令発行パイプラインの場合)

 しかし、2つの命令が、同時発行できない関係にあったり、一方のALUでしか実行できない関係であったりする場合は、同時発行、同時実行ができない。そのため、一方の命令にインターロックがかかる。例えば、命令1の演算結果を命令2が参照する関係にある場合または、SIMD(Single Instruction Multiple Data)命令の場合は1つのALUでしか演算できないので、同時発行はできずに、片方はインターロックされることになる。その場合、μ-OPが一時的に停止され、図5の下段のように、命令2のμ-OPが待たされる。

 最初のμ-OPの処理が終わると、次のμ-OPにその結果が送られて、次のμ-OPの処理が始まる。このようにして複数のμ-OPが連携して、1つのマクロ命令を処理する。

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.