コンピュータの心臓部といえば、CPUですが、iPhoneやAndroidには一番有名なIntelのCPUは入っておらず、代わりにArm(アーム)が入っています。といっても、実際Arm社のCPUが物理的に存在するわけではなく、Arm社が創った仕様に基づくCPUを製造メーカーがライセンスを受けて作り、販売されているわけです。

Arm社の提供するCPUの仕様は、iPhoneなどの高速動作するものから、その部品として、またはおもちゃや家電に組み込むような低速で安価なものまで幅広く。私のお気に入りの110円で買えちゃうコンピュータLPC1114は、この低速安価シリーズのCortex-M0という立派なArmシリーズの1つなのです。

PCに接続して開発するのもそんな大変ではないのですが、作って試すのループは速ければ速いほどうれしいので、iPhoneなどの開発では必須なPC上で実験する環境、エミュレーターを作ってみました。


(LEDをチカチカさせる動作をPC上でも再現している様子)

コンピュータをコンピュータ上で動作させることを仮想化とも呼び、サーバーとして動かすコンピューターを必要に応じて増減させることができるクラウドにおける重要な技術です。PCでPCをエミュレートするには、結構余裕あるスペックが必要ですが、メモリ4KB(4GBの100万分の1)というコンパクトなLPC1114を題材にするとクラウドごっこや、マイコンをPC上で1万個動かすスパコンごっこもできちゃいます。

Armの仕様書(Arm Architecture Reference Manual)を見ていると、Z80というCPUで動くMSXを使っていた小中学生の頃、MSXやCPUの仕様書を穴のあくほど見ていた頃の懐かしい思い出がよみがえります。Arm自体、1985年に生まれて以来、基本設計がほとんど変わっていないので、Z80好きだった人はすんなり入れると思いますし、32bitを基本にしたシンプルで美しい仕様は、初心者にもオススメです!

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / RSS