今回は、「RISC」と「CISC」の特徴、および制御用コンピュータとして利用される「システムLSI」について詳しく解説する。
前回の宿題【問題3】は、RISCの特徴に関する問題でした。MPUは、アーキテクチャにより「RISC」と「CISC」に分類されます。
今回も問題の解答に続いて、RISCとCISCの特徴、および制御用コンピュータとして利用される「システムLSI」について解説します。この機会にしっかりと理解しておきましょう。
それでは、解答を発表します!
問題3 RISCの特徴に関する次の記述のうち、正しいものはどれか? 答え. ア (←クリック) |
ア以外は、すべてCISCの特徴に関する記述になります。
それでは、RISCとCISCの特徴ついて解説します。
MPUは、アーキテクチャにより大きくRISC(Reduced Instruction Set Computer)とCISC(Complex Instruction Set Computer)に分類されます。RISC型とCISC型のMPUの最大の違いは、命令数と命令長です。
RISCは、簡潔な命令を必要最低限だけ用いることでハードウェアを単純化し、処理の高速化を図ることを目的としています。RISC型のMPUは、命令が固定長であるため、命令の解読時の負荷が小さくなります。また、ハードウェア内で物理的な結線により命令を実行する「ワイヤードロジック(結線論理)制御方式」を採用し、高速な処理を実現しています。
さらに、MPUの処理を高速化するための“パイプライン処理に適している”というのも、RISCの特徴の1つです。パイプライン処理では、命令を複数のステージに分けて、各ステージを重複して実行していくことで命令の実行速度を上げます。RISCは、命令が固定長であるため、パイプライン処理を効率的に実行することが可能です。
1980年代にRISC型のMPUが次々と登場すると、それまで主流だったMPUは、RISC型に対して、CISC型と呼ばれるようになりました。CISC型のMPUは、1つの命令で算術演算や浮動小数点演算といった複雑な処理を実行できます。命令数は非常に多く、命令長はまちまちです。また、基本のマイクロ命令を複数組み合わせて1つの複雑な命令を構成する「マイクロプログラム制御方式」を採用しています。そのため、ハードウェアの構造が複雑になり、パイプライン処理の効率が上がりにくくなります。
RISCとCISCの特徴を表1にまとめます。
RISC |
CISC |
|
命令長 |
固定 | 可変 |
命令数 |
少ない | 多い |
ハードウェア |
単純 | 複雑 |
制御方式 |
ワイヤードロジック制御方式 | マイクロプログラム制御方式 |
そのほか |
・パイプライン処理に適している ・遅延分岐による高速化が可能である ・レジスタ数を増やすことでメモリへのアクセス回数を減らす ・コンパイラが複雑になる |
・マイクロ命令の変更により、命令セットを容易に変えることができる ・アドレッシングモードが多く、オペランドの指定方法が多様である ・プログラムのコードを短くできる |
現在では、RISC型のMPUでも命令数を増やしたり、CISC型のMPUでも遅延分岐などのRISCの技術を取り入れたりしているため、MPUを厳密にRISCとCISCに分類することは難しくなっています。
連載第2回で説明したように、MPUは「クロック信号」に基づいて動作します。RISC型のMPUは、簡単にいえば、1クロックで1命令を実行できるように命令長を固定することで処理性能を向上させています。
MPUが、1命令を実行するのに必要なクロック数を「CPI(Clock cycles Per Instruction)」といいます。CPIは、MPUの性能を示す指標の1つです。理論上、MPUを高速化するためには、CPIをできる限り小さくすればよいことになります。現在では、MPUの高速化技術が進み、CPIが1を下回るMPUも多数存在します。そのため、逆に、1クロックで実行できる命令数を示す「IPC(Instructions Per Clock cycle)」でMPUの性能を示す場合もあります。
クロック周波数は、クロックジェネレータが1秒間に何回クロックを発振するかを表すものです。つまり、クロック周波数÷CPIで1秒間にMPUが実行できる命令数を求めることができます。また、CPIの逆数がIPCになるため、クロック周波数×IPCでも同様の値を求められます。
例えば、クロック周波数を200MHz、CPIを0.8とすると、1秒間に実行できる命令数は次のように求められます。
200MHz ÷ 0.8CPI = 250万命令 |
200MHz × ( 1 ÷ 0.8 )IPC = 200MHz × 1.25IPC = 250万命令 |
このように、MPUが1秒間に何百万回命令を実行するかを示す値を「MIPS(Millions Instruction Per Second)」といい、MPUの性能指標の1つとして用いられます。
MPUは、プログラム次第でさまざまな目的に利用できます。また、MPUのほかにメモリなどの必要な回路を1つのチップに搭載したワンチップマイコンも同様です。製品開発時に、制御用コンピュータとして市販の汎用的なMPUやワンチップマイコンを用いることができれば、それに越したことはありません。しかし、コストや機能などで折り合わない場合には、目的に応じて必要な機能を搭載したチップを開発することになります。このようなチップを総称してシステムLSIと呼びます。
「ASIC(Application Specific Integrated Circuit)」は、特定の用途向けに必要な機能を搭載したLSIです。特定の用途に特化しているため、処理速度を速くしたり、消費電力を小さくしたりといったカスタマイズが可能です。また、通常は大量生産により単価も安く済みます。
その一方で、開発に時間がかかる、開発費が高いといった短所もあります。また、一度作成したら回路の構成を変えることはできないため、設計にミスがあると数千万、あるいは数億単位の損失につながる場合もあります。
そこで、融通の利かないASICの代わりに、回路の書き換えが容易な「PLD(Programmable Logic Device)」が登場しました。PLDは、ユーザーがプログラムによって回路の構造を変えることができるセミカスタムLSIです。PLDによって、特定用途向けのチップ開発における開発期間の短縮やコストの削減が実現します。
PLDには、「CPLD(Complex Programmable Logic Device)」や「FPGA(Field Programmable Gate Array)」などの種類があります。どちらも、「HDL(Hardware Description Language)」によるプログラミングが可能であり、設計の変更が容易で、少数でも安価な生産が可能になります。CPLDは、集積度が小〜中規模で、プログラミング素子に不揮発性の「EEPROM」や「フラッシュROM」を使用しており、単純な制御処理に向いています。一方、FPGAは集積度が中〜大規模で、プログラミング素子には揮発性の「SRAM」を用います。CPLDより高機能・高性能であり、複雑で高速な処理が可能です。
関連リンク: | |
いまさら聞けない FPGA入門 http://monoist.atmarkit.co.jp/fembedded/special/fpga/fpga01.html |
問題4 SRAMの特徴に関する次の記述のうち、正しいものはどれか? 答え. 解答はこちら(←クリック) |
いかがでしたでしょうか? RISCとCISCの特徴について理解できましたか。次回は、「ROM」と「RAM」について解説します。ご期待ください!(次回に続く)
関連リンク: | |
組込みソフトウェア技術研修講座イーラーニング(サンプルIDプレゼント中) http://www.certpro.jp/elearning.html |
|
組込みソフトウェア技術者試験クラス2試験対策問題集(ETEC-SW2)(サンプルIDプレゼント中) http://www.certpro.jp/etecsw2test.html |
|
Copyright © ITmedia, Inc. All Rights Reserved.