連載
» 2016年01月26日 11時30分 UPDATE

Q&Aで学ぶマイコン講座(22):MCUとMPUの違いって何? (2/3)

[菅井賢(STマイクロエレクトロニクス),EDN Japan]
tt150416STNNNNEWIIII.jpg

「定義は明確ではありません」

 本記事では、具体的にMCUとMPUの違いを書きますが、結局は決まった定義(規定)があるわけではありません。ユーザーがそのマイコンの仕様と価格を総合的に見て、自分の用途に合ったマイコンを選べば良いのであって、あまりMCUとMPUの言葉にこだわらない方が良いと思います。カタログやマニュアルに、MCUとかMPUとか明確に書かれている場合もありますので、それはそれでマイコン選定の目安になります。

演算ビット数

 MCUと呼ばれているマイコンのCPUの演算ビット数は8ビット〜32ビットが主流です。昔は4ビットマイコンがありましたが、最近はリモコン用など超低価格の限られた用途だけで使われています。一方MPUは最低でも32ビットです。現在は64ビットが主流です。32ビットの場合の1回の演算は0〜42億9496万7295ですが、64ビットだと0〜1844京6744兆0737億0955万1615に増えますので、演算能力が高いのはいうまでもありません。

演算速度

 MCUの動作周波数は、8ビットマイコンでは数メガから数十メガヘルツ、16ビットマイコンで数十メガヘルツ、32ビットマイコンで数十メガから数百メガヘルツです。MPUの場合、数百メガから数ギガヘルツが主流ですので、MCUに比べると数百〜数千倍速いことになります。

 MPUでは動作周波数を高くするために、MOSのスイッチングが速いプロセス*3)を使用する他、内部クロックラインと内部ロジックの遅延時間を最適化するなどの技術を用いています。

*3)関連記事:マイコン入門!! 必携用語集(11):90nmプロセスの“90nm”ってどこの長さ?――マイコンの作り方

CPUのアーキテクチャ

 アーキテクチャは、RISCかCISCかの違い*4)がありますが、MCUは内部構成としては、主にパイプラインかランダム論理方式が採用されています。MPUでは主にスーパースカラが採用されています(図1参照)。

*4)関連記事:Q&Aで学ぶマイコン講座(1):CISCとRISC、何が違う?

tt160126STMCU001.jpg 図1 パイプラインとスーパースカラの違い (クリックで拡大)

 スーパースカラとは、複数のパイプラインを並列に実行して、パフォーマンスを上げるアーキテクチャです。複数の命令を同時にフェッチし、同時にデコードして、ALUで同時に演算する方式です。1つよりも複数のALUで処理した方がパフォーマンスが高くなりますが、ハードウェアが複数倍になるのでMPUのような処理能力優先のマイコンでしか使われていません。

 バスアーキテクチャは、昔、MCUには命令バスとデータバスが共通のフォン・ノイマンアーキテクチャ、MPUには命令バスとデータバスを分離したハーバードアーキテクチャが使われていましたが、最近では、MCUでもハーバードアーキテクチャが使われているものが多くあります(図2参照)。

tt160126STMCU002.jpg 図2 フォン・ノイマンアーキテクチャとハーバードアーキテクチャの違い (クリックで拡大)

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

RSSフィード

EDN 海外ネットワーク

All material on this site Copyright © 2005 - 2017 ITmedia Inc. All rights reserved.
This site contains articles under license from UBM Electronics, a division of United Business Media LLC.