RISCとCISCは、マイコンの命令セット(後述)のアーキテクチャを示すものである。
RISCはReduce Instruction Set Computer(縮小命令セットコンピュータ)の頭文字をとったもので、1つの命令が実行する動作は簡単だが、各命令は高速に実行される。複数の命令を組み合わせて一連の動作を効率良く実行する方式である。CISCはComplex Instruction Set Computer(複雑命令セットコンピュータ)の頭文字をとったもので、1つの命令で、一連の複雑な動作を実行する方式である。CISCとRISCについては「Q&Aで学ぶマイコン講座(1):CISCとRISC、何が違う?」で詳細に説明している。
RISCは固定命令長を採用し、パイプライン処理(後述)を使って、1サイクルにつき1命令を処理する。CISCよりも、マイコン内部の論理回路を簡略化できるのでコスト面で優位になる。さらに、マイコンの開発期間を短くできるという利点もある。しかし、分岐命令などを処理する際にパイプライン障害が発生し、1サイクルにつき1命令を実行するというルーティンが乱れる場合がある。パイプライン障害を最少に抑えるために、前もって分岐命令を予測する「分岐予測」や、分岐命令を処理してしまう「分岐投機」などの対策が施されるが、パイプライン障害を完全になくすことはできない。
CISCは、1命令を処理するのに複数サイクル必要とし、処理内容が複雑である。そのため、マイコンの内部回路が複雑になるデメリットがあるが、1命令が担う処理が多いので、コード効率はRISCよりも良くなる。
パフォーマンスは、どちらが良いかと言うと、一概にどちらが良いと断言はできない。なぜなら、最近のRISCマイコンには、複雑な命令(剰余算、積和演算、浮動小数点演算など)も実行できる命令セットのマイコンもあるため、結局、ユーザーコードの処理内容に依存する。強いていうならば、分岐命令が多く、コード効率を重視するのであればCISCで、比較的安価で、分岐命令が少ない場合はRISCが有利になる。
マイコンの「命令」は、ユーザーの意思をハードウェアに伝えるための重要な手段だ。したがって、どのような命令が準備されているかによって、マイコンの使い勝手と性能が決まる。準備されている命令の一群を「命令セット」と呼ぶ。これはRISCを選ぶかCISCを選ぶかにも関係してくるが、同じRISCやCISCの中で製品を比較するのであれば、「命令セット」はマイコン製品で異なるため、マイコン選定の重要な要素となる。「命令セット」は「命令セットアーキテクチャ(ISA:Instruction Set Architecture)」と呼ばれ、マイコンの特長や性能を示す重要な指標になっている。ISAが同じであれば、そのマイコン同士はソフトウェアで互換性を持つ関係であるといえる。
例えば、Cortex-Mシリーズでは、「Thumb2命令」と呼ばれる命令セットである。これは従来の32ビット長命令のArm命令と16ビット長命令のThumb命令を合体させ、さらに改善して作られたCortex-M用の命令セットで、32ビット長命令と16ビット長命令が混在している。図3にCortex-M4(浮動小数点演算機能付き)の命令セットを示す。Cortex-M4の命令セットがCortex-M3を包括し、さらにCortex-M3がCortex-M0/M0+を包括しているので、Cortex-M0/M0+、Cortex-M3、Cortex-M4の順で上位互換性があるといえる。
Copyright © ITmedia, Inc. All Rights Reserved.