今日はスティーブ・ファーバー(Steve Furber)の誕生日(1953)。
最初に書いときます。僕、彼の業績ちゃんと認識していません (^^;
「今日は何の日」として調べてみたら出てきた、というのも紹介の理由ですが、彼が何をやったか知ったら、これは業績を理解していなくても紹介すべきだ、と思ったのです。
イギリスのコンピューター学者。BBC Micro と ARM CPU を設計しました。
まず「イギリスの」から解説。
コンピューターの歴史は、多くのマシンに彩られています。
世界初の電子計算機とされる ENIAC 、ノイマン型を最初に提唱したとされる EDVAC 、世界初の(成功した)商用コンピューター UNIVAC-I 、世界初の普及機種であった PDP シリーズ、世界でベストセラーとなった IBM 、世界初のスーパーコンピューター CRAY-I 、世界初の 1chipコンピューター Intel 4004、世界初のパソコン Altair 8800 、本格的な PC 時代をもたらした Apple II 、GUI の元となった Alto …
などなど。
これらすべて、アメリカの機械。まるで、アメリカがコンピューターを作ってきたかのようです。
でも、イギリスもコンピューターの発展に大きく寄与しています。
最初に、「計算する機械」を夢想したチャールズ・バベジはイギリス人。
現代的コンピューターの基礎理論である「チューリング機械」を提唱したアラン・チューリングは、イギリス人。
チューリングの理論をもとに、ENIAC 以前にコロッサスと呼ばれる電子計算機が、イギリスで作成されています。
コロッサスは軍事機密であったため後まで存在が公表されず、ENIAC が世界初、とされました。
ちなみに、コロッサスも ENIAC も、現代的な定義ではコンピューターではありません。
現代的な定義での最初のコンピューター、とされる試作機 Baby Mark-1 は、イギリスのマンチェスター大学で作られ、これを元に「マンチェスターマーク1」が作成されます。
マンチェスターマーク1は、コンピューターのプログラム上非常に重要な機能である、「インデックスレジスタ」を導入した最初の機械です。
さらに、EDVAC の思想を元に、先に完成した「世界初のノイマン型マシン」である EDSAC はイギリスで作られています。
このように、コンピューター黎明期ではイギリスは非常に重要な役割を果たしているのですが、「実用」で出遅れてアメリカに押されてしまった感があります。今ではどうも影が薄い。
それでも、8bit PC の黎明期にはまだイギリス独自の機械を作っていたりします。
そんな会社の一つが、 Acorn 社でした。ちなみに、Acorn てドングリのことね。
IBM PC の開発名も Acorn でしたが、共に「corn」を com (コンピューター)の意味で、A を最初に来る・優れたものの意味で、さらに Apple よりも(アルファベット順で)前に出る、などの意味でつけているらしい。
2015.4.13 追記
Acron って、単に「ドングリ」というだけでなく、オークなど、勇気や威厳、知性の象徴とされる樹木の実を意味するものでもあるそうです。
ヨーロッパでは、特に北欧を中心として樹木信仰があり、その実は翻訳すれば「ドングリ」ではあるのですが、実際に感じるイメージは、日本人とはずいぶん違う、とのこと。
なるほど、この名前が人気がある理由がわかりました。
イギリスの 8bit マシンと言うと、シンクレア・リサーチ社の ZX スペクトラムとか有名です。
このシンクレア・リサーチ社の創業者(出資者ではない)が後に作った別の会社が、Acorn コンピューターです。
同じ創業者で、同じ分野の企業。ライバルで争っていました。
今日が誕生日の、スティーブ・ファーバーは、この Acorn に在籍する技術者でした。
ある時、イギリスの国営放送局 BBC が、小さなコンピューターが世界を変える、というドキュメンタリー番組を制作します。
これがイギリスで世論を動かし、政府議会でも話題となり、コンピューター教育に力を入れることになります。
国としての事業ですから、特定の団体に利益が誘導されるようなことがあってはいけません。
しかし、教育現場でコンピューターを扱うのですから、学校ごとに非互換も困ります。
シンクレアも Acorn も、このプロジェクト用のマシンとして自社の機械を売り込んだようです。
ここで、ファーバーが Acorn で開発中だった 6502 ベースの廉価機が選定され、BBC Micro という名称で発売されます(1981/12/1発売 £235~)。
BBC お墨付きのマシンですから、爆発的に売れました。
これを買わなくてはならない、という決まりはなかったのですが、ほとんどの学校が、コンピューター導入に際して BBC Micro を選んだそうです。
#BBC は国営放送ですから、これが「私企業の商売を国が妨害した」ことになり、後まで問題になったようです。
Acorn は、後に Acorn Electron という機種を発売します。
BBC Micro と互換で、さらに廉価にした機種でした、この機種も含め、イギリス国内では大きなシェアを持っていました。
Acorn では、設計時点ですでに 6502 は時代遅れで、速度が遅いことを認識していました。
しかし、廉価機種を作るには一番良い CPU でした。
そのため、BBC Micro には「CPU を追加してバージョンアップできる」設計を持たせていました。
後からデュアル CPU に出来るのです。その際には、6502 は入出力だけを担当し、追加したメイン CPU と協調して動く設計でした。
ところが、実際に強力な CPU を搭載しようとしたところ、想定していたような「都合のよい」CPU が見つかりません。
大きなシェアを持つ BBC Micro を、そのまま強力にすることはビジネス上必要な事でした。
無いなら作ってしまおう…ファーバーを中心として、新たな CPU の作成が始まります。
設計が簡単で速度の出る、RISC CPU となりました。
この設計が非常に面白い。
CPU が命令を実行するとき、いろいろな処理が行われています。
まず、メモリから命令を取得します。
次に、命令がデータを必要とするか調べます。
データが必要なら、そのデータをメモリから取ってきたりします。
必要なものが全部そろったら、命令を実行します。
実行結果は、またメモリに書き戻されます。
昔の CPU では、命令ごとにこれらの動作を全て行い、それから次の命令を実行していました。
そのため、1つの命令の実行に、複数の「クロック」が必要となります。
#クロックは、電子回路の動作を行うための時間単位。1クロックで1つの動作を行う。
1つの動作ごとに、別々の回路が動きます。
じゃぁ、命令の実行を待たないで、同時に複数の回路を動かせばいいじゃん。
この仕組みを「パイプライン」と呼びます。
1つの「命令」に注目すると、やっぱ複数クロックで実行されている。
でも、1つの「クロック」で何が出来るかを見ると、毎クロックごとに命令の実行が行われている。
現在の CPU では、この仕組みによって「1クロック1命令実行」を実現しています。
非常に高速に動ける。
でも、実はパイプラインには落とし穴があります。
パイプラインでは、「次のアドレス」の命令が順次実行されるはず、と考えて命令を取り込んでいきます。
ところが、プログラムの中には、非常に条件分岐が多いのです。
分岐すると、取り込んでいた命令は「無駄」となります。
せっかく読み込んだものは捨て、新たに読み込みから始めます。読み込んだ命令が「実行」に至るまでは数クロックかかります。
この間、1クロック1命令実行、ではなくなるのです。
普通のプログラムは非常に分岐が多いので、かなり処理速度が落ちます。
取り込んでしまった命令は、ジャンプしても実行する「遅延実行」という手法もあります。(SH など)
遅延実行の場合、分岐の後の数命令(すでにパイプラインに取り込まれた命令)は、分岐の有無にかかわらず実行されます。
ただ、実際には条件分岐の判断有無にかかわらず出来ること、ってあまりなくて「何もしない」命令が詰め込まれるのがオチ。
分岐が予測されるなら、過去の実績からどちらに進みやすいか、確率的に判断して「はずれ」を引くことを減らそう、という手法もあります。
これ、少しでも被害を減らすという考えであって、被害は必ず出る。
その上、予測精度を上げようとすればするほど、回路は複雑になる。
当時の Acorn は、CPU 設計の専門家集団ではありません。
そんな複雑な回路を作ることはできない。
そこでファーバーが考えたのが、「全命令に条件判断を付ける」でした。
どんな命令であっても、フラグの状態によって「実行」するかどうかを変えられます。
条件によって「分岐しない」だけでなく、「足し算しない」「メモリに書き込まない」などなど。なんでも条件を付けられる。
プログラム中、条件分岐は非常に多いのですが、それは「変数の値が限界を超えたらリセット」とか、「キーが押されたら1足す」とか、非常に小さなものです。
じゃぁ、分岐させるまでもなく、命令をスキップさせてしまえばよい。これで、条件分岐の大半を無くすことができます。
これで、パイプラインが無駄になる、という被害を無くすことができます。
非常にユニークな問題回避方法でした。
6502 は、非常にシンプルな命令でありながら、組み合わせ次第で強力なプログラムが組めるようになっていました。
Acorn が作った CPU も、同じように「シンプルな命令を組み合わせる」仕組みになっていました。
Acorn RISC Machine…この CPU は、 ARM と名付けられます。
Acorn はこの後業績が悪化し、オリベッティ(これもユニークなコンピューターを作っていたイタリア企業)に買収されます。
この後、CPU 作成部門だけを別会社化し、ARM CPU として発売されます。
Apple の Newton メッセージパッドで採用され、3DO の CPU にも使用されます。
でも、この頃はまだ「廉価な割に性能がいい」程度の位置づけだったと思います。
廉価の割に、というのがミソで、実際にはそれほど性能は良くありません。
ARM は、CPU 設計専業の会社となりました。
設計だけを行い、製造は別の会社に任せます。場合によっては更なる改良を許可します。
これにより、DEC や Intel の改良が入り、性能が上がりました。
SH-2 の台頭の際には、それまでの「32bit アーキテクチャ」に加え、16bit 命令を拡充しました。
これにより、プログラムが小さくないと使えない組込み分野にも強くなります。
16bit 命令は、Thumb と名付けられています。ARM(腕)に対して Thumb (親指)。
イギリス童話の「親指トム」など、Thumb には「小さい」という意味があります。名付け方が非常にうまい。
その後、さらにパワフルな 64bit 命令などの拡張もあります。
ARM は、現在では、数多くのスマートフォン、タブレット端末、その他の機器で利用されています。
iOS と Android の戦い、が注目されがちですが、CPU はどちらも ARM です。
スマホ対任天堂 3DS 、みたいな構図も言われますが、CPU はどちらも ARM です。
サーバー分野でも、クラウドコンピューティングなど「性能が低めでも多くのCPUを用意する」ことが重要な分野で、ARM が積極的に使われています。
Intel は、もはや「PC だけ」に押し込められた状況。
Windows も RT で ARM に対応しましたが、どうも人気が出ずに ARM に移行しきれない様子。
#と言いつつ、マイクロソフトは最近は常に ARM 向け Windows を意識した行動に出ています。
昔は PowerPC 向けで頑張ってたよねー。
さて、話が長くなりました。
イギリスで教育用に普及したコンピューター BBC Micro と、現在世界中で数多く使われる ARM 。
この両方の設計の中心だったのが、今日誕生日のスティーブ・ファーバーです。
他にも業績多数、なのですが、最初に書いた通りちゃんと認識していません (^^;
それでも、上に書いた2点だけで紹介するには十分すぎる、と思っています。
先日、BBC が新たな機械 BBC Micro Bit を 100万台、イギリス国内の子供に無償配布することを決定しました。
名前からわかるように、BBC Micro を意識したもの。
以前の失敗(私企業の妨害と言われた件)を繰り返さないように、配布は一度きり、と決めているのだそうです。
もちろん、CPU は ARM です。
BBC Micro は、CPU はアメリカ製でしたが、今度は CPU までイギリス由来。
最初に書いた通り、コンピューターの歴史の中で、イギリスは重要な役割を担って来ました。
しかし、今は影が薄い。
イギリスは復権できるでしょうか?
同じテーマの日記(最近の一覧)
関連ページ
ビル・メンズチの誕生日(1945)【日記 15/02/09】
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |