アーキテクチャは、本来、建築やその他の構築物を設計する技術を意味し、また、設計された建造物そのものに対しても用いられる言葉であった。優れた建造物は沢山あるが、一つを選ぶなら、例えば、ガウディが設計したサグラダファミリア教会である。

ガウディの設計によれば、最終的には18の尖塔が立ち並び、中央の最大の塔は170mの高さになる予定である。このような建築は、外観の息を呑むような美しさと、物理的に建築物として安定に存在する力学的なバランスが成り立っていることが必要であり、さらに、教会としての使用にも役立つ実用性を兼ね備えていなければならない。そのためには、材料の強度や特性を熟知し、かつ、建築法にも通じている必要があり、それらのセンスと知識を総動員して設計することが必要であったことは想像に難くない。

また、最近の建築では、Burj Dubaiがある。Burjはアラビア語でタワーの意味だそうで、ドバイの塔という命名である。Burj Dubaiは2008年に完成予定で、完成時の正確な高さは発表されていないが、完成予想図と現状の高さを比較すると818m程度の高さになると推測されている。これだけの巨大なタワーを作り、給電、給排水、空調、エレベータなどを含めて全体として整合の取れた設計を行うのは想像を絶する作業であろう。なお、このBurj Dubai建設のメインコンストラクターは韓国の三星建設で、同社は、マレーシアのPetronas Tower(452m)や台湾のTaipei 101(508m)の建設実績がある。

物理的なサイズは桁違いであるが、コンピュータも非常に複雑な構造物であり、全体として筋の通った美しい構造と、高い実用性を持った設計が求められることから、コンピュータの基本設計に対してアーキテクチャ、それを行うエンジニアに対してアーキテクトというという言葉が用いられるようになった。

コンピュータの歴史でいうと、G Amdhal、G.Blaauw、F.Brooks, Jr.の3名が中心となって設計されたIBMのSystem 360のアーキテクチャや、S.Crayが設計したCRAY-1のアーキテクチャなどが、これらの建築物のアーキテクチャに相当するような美しさと整合の取れた設計になっている例といえるのではないかと思う。

IBM System360 Model30(左)とCRAY-1(右)。(出典:Computer History Museum)

しかし、全ての建築が、これらのように整合がとれた設計になっているわけではない。その代表の一つがWinchester Mystery Houseである。この邸宅は、ウインチェスター銃を開発し、製造販売して富を築いたウインチェスター氏が作ったのであるが、氏の没後、ウインチェスター銃で命を奪われた人達の呪いか、サラ夫人はノイローゼになり、建築音が響いていないと不安になることから絶え間なく増改築を行った。グランドデザインの無い場当たり的な増改築であるので、その結果、登って行くと天井に突き当たって行き止まりになっている階段とか、ドアを開けると壁とかいう意味の無い構造が出来上がった。

ウインチェスターミステリーハウスの全景と、天井に突き当たる階段。(出典:Winchester Mystery House, San Jose, CA)

コンピュータアーキテクチャも、ウインチェスターミステリーハウスのように絶え間なく増改築を繰り替えしたものが多く、その代表はx86アーキテクチャであろう。

もともと、8008/8080という8ビットマイクロプロセサのアーキテクチャの影響を色濃く残した8ビット/16ビットアーキテクチャで、人間で言えば、目立つ優等生ではなく、ごく普通の中くらいの出来の学生という感じである。それが、大規模な増改築だけでも、80286でセグメント方式のアドレス拡張をやり、MMX、SSE、SSE2/3/4、さらには64ビット化と増改築を繰り返して現在に到っている。その結果、x87浮動小数点演算命令のように、最近ではSSE系の浮動小数点演算命令に取って代わられて、行き止まりの階段になりかかっている部分も有るという状態である。

なお、ウインチェスターミステリーハウスとインテルのサンタクララの本社とは直線距離で6~7Kmしか離れていない。ウインチェスターミステリーハウスの呪いがインテルのx86アーキテクチャに乗り移り…というような話があれば面白いのであるが、残念ながらそういう話は一切ない。また、ウインチェスターミステリーハウスも建設当時は奇矯な建物であったが、今では、シリコンバレーを代表する観光スポットになっているので、結果的には良い投資であったのかも知れない。

建築の場合は、増改築も行われるが、一般的にはスクラップアンドビルドであり、新しいものは新しいアーキテクチャで建設されるというのが一般的である。また、小学校や公団住宅のように同一アーキテクチャで沢山の建物を作る場合もあるが、前記のような建築では一品一様でアーキテクチャが作られる。

コンピュータも黎明期には、ほぼ、一品一様の設計であったが、最近では大量生産である。そして、ハードウェアアーキテクチャの上で動くOSからアプリーケーションまでの大量のソフトウェアが蓄積されるため、これらのソフトウェア資産を利用できなくなるような新アーキテクチャを作ることは、技術的には可能であるとしても、商用としては、まず、不可能と言って良い。

このため、大学や研究所では、いろいろと先進的なアーキテクチャが試みられるが、産業界のアーキテクチャは以前の世代とのソフトウェア互換性を引き摺りながら、増改築が繰り返されるということになる。

インテルも、x86の増改築が最適ではないことは理解しており、全く新規のアーキテクチャとして、古くはiAPX432、80860 RISCプロセサ、さらにHPと協力して、2001年にItaniumを作った。技術的にみればx86よりも新規に設計したこれらのアーキテクチャの方が優れていると言えると思うが、商業的には、全く逆の状態である。

また、DECアルファプロセサのアーキテクチャは優れていると言われ、一時は成功を収めたが、結局は消えてしまったように、技術的にみたアーキテクチャの優劣だけでは商業的に成功するための決定的要因とはなり得ない。それ以上に、より多くのソフトウェア資産を蓄積し、安い価格で提供でき、広い範囲で利用されるように環境を整備することが重要である。

このように言うと、アーキテクチャは重要ではないように聞こえるかも知れないが、そうではない。コンピュータの設計においてアーキテクチャは、その一番の基本であり、その重要性は変わることはない。昔の一品一様の設計の時代は、技術的に良いアーキテクチャだけを考えていればよかったのであるが、最近では、商業的に成功するためにはソフトウェア互換性などの諸条件や、将来のコンピュータの使われ方などを前提とし、かつ、消費電力やコストを考えてアーキテクチャを設計することが重要になっているということである。

そこで、先ずは、先人に敬意を払って、コンピュータの基礎となった計算機械からそのアーキテクチャを見ていこう。