このページの本文へ

前へ 1 2 3 4 次へ

ロードマップでわかる!当世プロセッサー事情第160回

ARMの組み込み向けで普及するCortex-Mと苦戦するCortex-R

2012年07月17日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/

  • この記事をはてなブックマークに追加
  • 本文印刷

 今回も引き続き、今をときめくARMプロセッサーの最新事情を解説する。前回はスマートフォンやタブレットに使われる「Cortex-A」コアについて説明したので、今回は「Cortex-R」コアと「Cortex-M」コアについての説明しよう。まずはMCU向けとなるCortex-Mからだ。

Cortex-M、Cortex-Rのロードマップ

MPUとMCUの違いとは?

 少々長い前置きになるが、まずは「そもそもMCUとは何ぞや?」という話から始めたい。MCU(Micro Controller Unit)とMPU(Micro Processor Unit)の決定的な違いは何かと論じる場合、少なくとも「CPUコアそのもののが決定的に違う」という話には、あまりならない。例えば、CPU黒歴史でとりあげた「Am29000」は、MPUとMCUが基本的に同じコアから派生している。

 では何が違うのかと言えば、CPUの周囲である。MPUの場合、コアにはキャッシュとメモリーインターフェースなどが統合され、外側にDRAMを接続する(図1)。外部I/Oや周辺回路などは、専用バス経由で外部のチップセットと接続する構造だ。

図1 一般的なMPUの構造。PCをモデルした図で、最近のトレンドはこれらを1チップ化する方向にある

 他方でMCUの場合は、CPUコアに加えてSRAMとフラッシュメモリー、周辺回路などを、すべてチップ内に取り込んだ構成が普通である(図2)。プログラムはフラッシュメモリーなどに収められ、ここから読み出されて実行する。

図2 一般的なMCUの構造

 そのためプログラムを格納するフラッシュメモリーは、1MBとか4MBといった大きな容量を持つものもある。一方でRAM容量は1MBに達することはまずなく、大きくても128KB程度なのが普通である。MPUのように、RAMにプログラムをロードする必要はないので、RAMはデータ領域とかスタックなどに使う程度なので、サイズが小さくて済むわけだ。

 また周辺回路も大きく異なっている。MCUは電流/電圧の検知や制御、さまざまなセンサー類の接続などに直接使われるため、A/DコンバーターやD/Aコンバーター、アナログコンパレーター(電流/電圧の比較回路)、PWM(Pulse Width Modulation:パルス幅変調、モーターやLED照明の制御で多用)など、MPUとは異なった回路が搭載される。

 さらに低価格化のため、クロック発信器やリアルタイムクロック等までチップに内蔵する製品もある。MPUはさまざまな周辺回路が必要なのに対して、MCUは本当に電源さえつなげばそれだけで起動する、といったものも少なくない。逆にI/Oインターフェースは、USBとGPIO、USART※1などがほとんどで、PCIやPCI Expressなどはまずお目にかからない。むしろI2CとかSPIなど、実はPCのマザーボード上で使われているにも関わらず、それを目にすることのないインターフェースの方が広く利用できる場合が多い。
※1 Universal Synchronous Asynchronous Receiver Transmitter、RS232Cに代表される汎用の通信リンク

 MPUとMCUの特徴の違いは、そのままプロセスや動作周波数、およびCPUコアそのものにも影響を及ぼす。先述のとおり、MCUにはさまざまなアナログ回路をオンチップで集積することが珍しくない。こうしたアナログ回路は、デジタル回路の先端プロセスでは到底作れないもので、この結果として180nm~130nm世代がまだ主流であり、一部に90nmや65~55nm世代を使う製品がぼちぼち出てきたという程度である。

前へ 1 2 3 4 次へ

この連載の記事

注目ニュース

ASCII倶楽部

最新記事

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン