低価格であることを求められる組み込み機器向けに、数多くの32ビットプロセッサが市場投入されている。その種のローエンド品は、8ビットや16ビットのプロセッサを代替することを目指して開発されたものだ。しかし、ローエンドの32ビット品と8ビット/16ビット品の比較検討を行う際には、価格に加えて、処理性能や消費電力、用途に対する適性などについても十分に調査する必要がある。
よく知られているように、ムーアの法則とは、半導体チップの単位面積当たりに集積されるトランジスタ数が、18カ月ごとに倍増するというものである。32ビットプロセッサが、8ビットプロセッサに取って代わると予測していた人々にとって、ムーアの法則は大きなよりどころとなってきた。実際、この法則に基づいてトランジスタサイズが縮小し、1つのチップにプロセッサコア以外にも非常に多くのトランジスタが集積されるようになった。その結果、8ビットプロセッサコアと32ビットプロセッサコアをチップ上で比較した場合、それらがチップに占める面積にほとんど差はなくなりつつある(写真1)。
2004年に、オランダPhilips社(現在のオランダNXP Semiconductors社)と米Atmel社は、英ARM社のプロセッサコア「ARM7」ベースのプロセッサを3米ドルという低価格で実現した。両社の製品は、アトミックなビット操作やブラウンアウト(低電圧)検出といった機能も備えていた。これらの製品により、32ビットプロセッサは、価格面において重要なマイルストーンを達成した。しかし、低価格の32ビットプロセッサが手に入るからといって、設計者がプロセッサを選択する際の評価プロセスが即座に変わるというわけではない。価格以外にも検討項目は存在するからである。それでも、価格が低下したことによって、新規に製品を開発する際には、32ビットプロセッサの採用が検討されるようになった。しかし、8ビットプロセッサの市場を終焉させるには至らなかったのである*1)。
2006年には、米Luminary Micro社(2009年に米Texas Instruments社が買収)が、ARM社の32ビットプロセッサコア「ARM Cortex-M3」ベースのマイコンを1米ドル未満の価格で販売し始めた。これにより、32ビットプロセッサの可能性はさらに広がった*2)。
2009年末には、NXP社が、ARM社のプロセッサコア「Cortex-M0」を採用した製品を65米セントという価格で発表した。この価格は、もはや8ビットプロセッサと同等である。公表されている価格情報の中で、最も安価な8ビットプロセッサは1個当たり45米セント、高いものだと10米ドルに達する*3)。多くの人々が予測していたとおり、32ビットプロセッサと8ビットプロセッサの価格の差は限りなくゼロに近づいているのだ。
Cortex-M0ベースのマイコンがこのような低価格を達成した背景には、興味深い事実が存在する。Cortex-M0の登場により、ARM社が提供するプロセッサコアの中で、最も小さく、最も消費電力が少なくてエネルギー効率が良いものは、Cortex-M3からCortex-M0へと移行した。この事実だけを見れば、Cortex-M3は、Cortex-M0によって代替される対象であるかのように思える。しかし、実際にはCortex-M3が同M0に完全に置き換わることはない。
Cortex-M0は、わずか1万2000ゲートで実装できるプロセッサコアである。しかし、ここまで規模を小さくするために、Cortex-M0には、Cortex-M3が完全にサポートする16ビットの命令セットアーキテクチャ「Thumb2」のうち、ほんの一部のサブセットしか実装されていない(図1)。ARM社は、Thumb2命令の中で、統計的に最もよく使用されるものを選んで、このサブセットを実装した。しかし、このような実装であることから、Thumb2を完全にサポートしていれば単一の命令で実行できるような処理が、Cortex-M0では複数の命令を使用しなければ実行できないことがある。
NXP社は、「われわれのCortex-M0ベースのプロセッサは、市場に存在する8ビット/16ビットプロセッサよりもコード密度が高い」と主張している。ここで言うコード密度は、ほぼ処理性能と比例すると言える性能値である。1つの機能を実現するのに必要となるコードが小さいほど、同一タスクに対するメモリーフェッチの回数が少なくて済むので、処理を高速に実行できる。
また、一般的に、高速なプロセッサは消費電力が多くなるが、より素早くスリープモードに復帰することもできる。このため、同一タスクを実行する場合の消費電力は、低速なプロセッサよりも少なく抑えられる可能性がある。このように、Cortex-M0に限らず、プロセッサについて検討する際には、調査すべき技術的な事柄がいくつも存在する。
32ビットプロセッサが従来の8ビットプロセッサの市場にどのくらい浸透しているかについては、1つの興味深い情報がある。それは、「Cortex-M0は、当社のどのプロセッサコアよりも速いペースで採用数が増加している」というARM社自身の主張である。また同社は、Cortex-M0のライセンスを受ける企業の半数が同社の新規顧客であることや、それらの企業が、これまで8ビット/16ビットプロセッサを利用していた分野を対象として事業を展開していることも強調している。現時点で、Cortex-M0を採用した企業で社名が公表されているのは、NXP社、米Triad Semiconductor社、韓国MELFAS社の3社だけである。しかし、すでに15社以上がCortex-M0のライセンスを購入していると言われており、このことだけでもCortex-M0は大きな成果を上げていると言えるだろう。それだけ多くの企業がライセンスを購入しているということは、Cortex-M0が、8ビット、16ビット、そしてローエンドの32ビットプロセッサの市場に変曲点をもたらしたことを意味するのかもしれない。
また、これまで8ビットおよび16ビットのプロセッサを提供してきた半導体メーカーも、独自の戦略に基づいて32ビットプロセッサの開発に乗り出している。米Microchip Technology社は、2007年に、8ビット/16ビットプロセッサで650以上もの製品をそろえる「PICシリーズ」に、米MIPS Technologies社のプロセッサコアを用いた32ビットプロセッサ「PIC32」を追加した。Microchip社は、PIC32について、「Explorer 16」というプラットフォームを利用することで、8ビットや16ビットのPICシリーズと同一の開発ツールセットを使用することができるようにしている。
2009年には米Cypress Semiconductor社が、プログラマブルなSoC(System on Chip)「PSoCシリーズ」の製品として、プロセッサコアに32ビットのCortex-M3を採用した「PSoC 5」と、米Intel社の8ビットコア「8051」を採用した「PSoC 3」を発表した。特に、8051を採用したPSoC3の投入には注目が集まった。同社は、何年もの間、「PSoC 1」に独自の8ビットプロセッサコア「M8C」を採用していたからである。
米Freescale Semiconductor社は2007年、同社のプロセッサ製品「Flexisファミリ」において、8ビットコアと32ビットコア、双方に対応するソフトウエア開発ツールの機能を強化した。Flexisファミリの8ビット/32ビットプロセッサでは、端子数、開発ツール、周辺回路IP(Intellectual Property)を共用することができる。そのため、使用するプロセッサを8ビットから32ビット、もしくは32ビットから8ビットに移行するのが容易である。
※1…Cravotta, Robert, "Reaching down: 32-bit processors aim for 8 bits," EDN, Feb 17, 2005, p.31
※2…『16ビットプロセッサは生き残れるか』(Robert Cravotta、EDN Japan 2007年5月号、p.51)
※3…Cravotta, Robert, "I'd like to buy a μ': The 36th annual microprocessor directory" EDN, Oct 22, 2009, p.28
Copyright © ITmedia, Inc. All Rights Reserved.