今日、Armコアのプロセッサというとまず間違いなくSoCプロセッサです。主要部品として、その外側にメモリをとりつければ「だいたいのシステム」が出来上がるという意味で。一方、x86プロセッサでは主流は単体のプロセッサ(現代的にはメモリコントローラやGPUのような「周辺」も取り込んでいるのでSoCと言えなくもないのですが、必ずお供のチップセットなど周辺チップを必要とする構成なのでSoC分類にはいれません。)で、x86コアのSoCプロセッサは傍流であり続けました。両者の使われ方はかなり大きく異なると言わざるを得ません。しかし、最初からArmもSoC主体だったわけじゃないのです。出発は単体プロセッサであったのです。今回も「黄昏」というタイトルに反して、「夜明け前」の時代、”ARM”がまだ単体プロセッサとして使われていたころに戻り、黎明のSoCプロセッサを振り返りたいと思います。
(「黄昏のSoC」改題)
前回のIntel 80186では、1980年代初頭に遡りましたが、今回 ARMの最初期のSoCでは、1990年代初頭に遡ることになります。その差は10年。ARMが大を成すに至った携帯電話は萌芽はあってもまだ大ブレークには至らず、です。そんな時代、ARMをCPUとして採用し、それなりに注目を集めた製品がありました。
Apple社のNewton(正式にはMessagePad)
今では「死語」になっている PDA=Personal Digital Assistance という言葉がまだ無かった時代にあらわれた「早すぎた」といわれるPDAです。当時、まだこの手のシステムを表す言葉がなかったので、初期の英語文献では
Portable and Pen-Based System
などと表現されていました。ちょうどこの時期、持ち運びができて、LCD表示で、ペンを使って入力ができるようなシステムが盛り上がりつつあったのです。その盛り上がりには以下のような「歴史認識」がありました。
メインフレーム>ミニコン>パソコン>次はもっと小さいやつ!
よって、AppleのNewtonだけでなく、この時期Penベースのシステムを開発していた会社は複数あったのです。しかし、この時期のシステムは、Newtonを含めどこも商業的にはうまく行きませんでした。この市場が本格的に立ち上がるのは、Palmの登場を待たないとなりませんが、それはまだ先。
さて、Newtonの開発者が、そのCPUに求めたことは何だったのでしょうか。手元にAppleのNewtonグループのLarry Tesler氏のプレゼン資料が残っています。翻訳の上引用すると
-
-
低パワー、低電圧
-
小さいダイサイズ(チップサイズ)、低価格
-
スタティック設計、クロック可変
-
高速処理、高速タスクスイッチ
-
高速なデータ圧縮、高いコードデンシティ
-
高集積のためのマクロセルがあること
-
柔軟な開発ツールがあること
-
などをあげています。そして上記の要求に見合うCPUとして、彼らはARMを採用したわけですが、採用したのは
ARM610 単体プロセッサ
でした。実はARM社(当時は大文字で綴っていた)はARM610と同時期にARM250とよぶ「高集積プロセッサ」も開発していたのです(この時、まだSoCという言葉は一般化していません。)当然、Apple社にはこちらもプッシュした筈。2つのチップを簡単に比べてみると以下のような感じになります。
ARM610=ARM CPU + 4Kbyte Cache + MMU
ARM250=ARM CPU + メモリコントローラ + ビデオ、オーディオI/F + I/O制御
ARM610はわざわざキャッシュとMMUなど、現代的なプロセッサならプロセッサ内部にあって当然の要素を外に書き出していていますが、ARM的にいうと、キャッシュとMMUを搭載するようになったのは前の機種のARM600からであるのに注意しないとなりません。そして、後にARMの大成功の代名詞となるARM7TDMIコアにはキャッシュもMMUも含まれていないのです。そういう点からするとARM610は、ARMにしたらかなり「ハイエンド」な味付けで処理速度重視といっていいかもしれません。「公式」価格(10万個ロット)が残っていますが、$30。かなりお高めと言わざるを得ません。
これに対してARM250、なかなか集積度が高いです。まず、I/O制御とありますが、この中にはタイマや簡単な割り込み制御ロジックなど含まれ、そしてPC/XT的な8ビットの拡張バスにつながるようになっています。80186のころに集積した周辺回路にほぼ相当する回路がすべて含まれているといってもよいでしょう。ARMというとAHBとかAPBとかARMの規格のバスが有名ですが、この時点ではそれすら存在しません。既に存在するPCに合わせたようです。そして、DRAMとROMに直結できるメモリコントローラ、この内部にはDMAコントローラや簡単なMMUも含まれます。さらに、スーパVGAの画像(当時はまだブラウン管の全盛期だった)とステレオ音声の出力まで可能になっています。なお、ジョイスティックが直結できるようになっています。
家庭用のゲーム機が作れるSoC(その言葉はまだ無いが)
としてかなり意識して作ったものじゃないかと思います。(ゲーム機にARM250がバカ売れしたという話も聞かないです。どなたか知っていたらお教えください。)これの公式価格がいまいち信用できないのですが、手元の資料だと$11(10万個ロット)とあります。本当か、そんなに安くて大丈夫か?(そんな30年前のチップに気をもんでもしょうがありませんが)
しかし、AppleのNewtonグループの開発者の人はARM610を採用します。プレゼン資料を読み込むとARM250も検討した形跡はあるのです。しかし、その後のNewton調べると ARM610からさらに速度の速い StrongARMへとCPUを取り換えたあげくに、滅亡することになります。多分、評判の悪かった初期の手書き文字認識の改善のためにソフトに手を入れると同時に、CPUのスピードアップが急務になっていたのだと思われます。想像するに、
ARM250確かに集積度高いけれど、帯に短し襷に長し
というところだったんじゃないでしょうか。AppleがARMコアのSoCを使って、モバイルの市場に戻ってくるまで、このNewtonの失敗後、少し待つ必要があります。何を待つか?
音楽プレーヤー iPod
です。