●裏事情…なぜこんな付属基板になったのか?
この増刊号の企画がどうしてこうなったのかの裏事情を書いてみようと思います.しかし,裏事情すぎて,もしかしたら編集長様が墨を入れるかもしれません.そこはどうかご容赦ください.
この増刊号のそもそもの発端はNXP社のLPC1114という32ビットのCortex-M0コアのマイコンで何かできないかなあ,というところから始まっています.ここで,突然なぜそんな話が持ち上がったのか,については大人の事情であり,よって裏事情には該当しないのでここには書かないでおきましょう.
筆者はこれまでさまざまなマイコンを見て,使って,ついでにマイコン自体のLSI設計もしてきました.その中でこのマイコンを見た印象は,「なんとコンパクトなマイコンなのか」(と等価な意味の「なんつう○○○○○マイコン!」)でありました.CPUコア自体が8ビットや16ビットのマイコンを置き換えを狙ったコンパクトなCortex-M0を使っていることもありますが,FLASH ROMのサイズも周辺機能も非常に割り切った勢いでコンパクト化しています.32ビット・マイコンというと何かもう少しありそうなモンなところ,ここまで割り切った点は極めて「男らしい(ばっさり切り落とした意味で)」または「女らしい(繊細にスリム化した意味で)」と言えましょう.まあ,どっちでもいいんですが,ようするにそういうことです.
LPC111x系マイコンはNXP社のCortex-Mx系マイコン・シリーズの中で,明確にローエンド系,たとえば8051やPICマイコンが占めてきたボリューム・ゾーンを狙ったはっきりしたマーケティング戦略が読み取れます.気持ちいいですね.
さて,これが材料になります.これで付属基板を考えよう,ということになりました.USBからプログラムが書込めるようにすることは当然ですが,単にマイコンの端子信号を2.54mmピッチのピン・ヘッダに出すだけのマイコン基板だったら,はっきり言ってLPCXpresso評価基板だけ買う方がよっぽど良いでしょー,ということになると思われました.
さらに,ユーザ様に付属基板を活用いただくために,何らかの機能拡張基板も欲しいよねー,という話も(多少大人の事情もあり)持ち上がりました.付属基板だけで何か自分自身のシステムをこしらえる強者もおられれば,まずは学習用に何らかの入出力ができる基板が欲しいという方もおられます.この後者の方々へのソリューションとして拡張基板を考えようとしたのですが,このLPC1114自体が,FLASH ROMの容量,ピン数,周辺機能の種類や数も限られているので,あまり多機能な拡張基板にはできそうもなく,その姿形をどうすればいいのか,と悩みました.
ついでにいうと,実は初心者ほど潤沢なリソースを持つマイコンを使うほうがトラブルなく学習していけるのです.リソースが限られているマイコンは制約が多いので,逆にそこそこ経験のある人でないと機能をうまく使いこなせないことさえあります.
やはり,1個のLPC1114にあまり多くの処理をやらせるようなシステムにはできないな,と思ったところで,ハタと気がつきました.コンパクトさを逆に活用して,たくさん並べちゃえばいいではないか!と.ようするに今風の言葉で言えば,「マルチ・コア」です.
●マルチ・コアな付属基板
その発想に至ったのが昨年の4月.それ以降,ホイホイとアイディアが出て,この「MARYシステム」が誕生しました.ひとつのマイコンに小さい単位の仕事をやらせ,複数のマイコン同士を緩い通信チャネルで結び,お互いに協調・同期動作をやらせることで,全体として大きなシステムを組むことができるものです.
筆者はかつてマルチ・コア・システムを設計したことがあります.ひとつはデータ・フロー型コンピューターで,いわゆる非ノイマン型マシンです.そこに浮動小数点演算器をもつPE(Processing Element)を複数並べ,計算フロー全体の中で演算できる処理から自動的に空いているPEに処理を割当てて性能を向上させるものです.もうひとつは汎用プロセサと小型専用RISCコア16個を集積したヘテロジニアスマルチコアで,動画Codec処理を高速化するものでした.それらはそれらで非常におもしろい試みだったのですが,その都度,心の中にはもう一つの思いがありました.
ある世代以上の方は,1980年代に世に出た英国INMOS社のTransputerという製品を聞いたことがあるかもしれません.ひとつの小規模なプロセサに4つの高速通信チャネルを持たせ,そのプロセサを複数並べて互いに通信させながらプロセスを並列処理して高性能化するものでした.通信チャネルは当時としてはかなり高速なMbit/sec単位のレートを実現でき,並列処理記述言語Occumでプログラムできる先駆的でエレガントなものでした.Transputerは商業的には成功しませんでしたが,筆者は常にこのTransputerのような美しいアーキテクチャに憧れてきました.少しオーバーな表現かもしれませんが,そのイメージが「MARYシステム」として形作られたように思います.「MARYシステム」は4方向通信チャネルの速度や並列処理へのインフラなどはTransputerにかないませんが,CPUコア自体ははるかに強力であり,コア間通信方式はとても直感的でシンプルなので,多くの方に使いこなしていただけると思っています.
この「MARYシステム」で,皆様に楽しいアプリケーションを実現いただけることを心から願っています.
圓山 宗智
Twitter @Processing_Unit
●Twitterに投稿される方へのお願い
MARY基板関係でTwitter上に情報発信される際は,情報検索を容易にするため,下記ハッシュ・タグを付けてください.
#marykiban