書籍「超マシン誕生」とITの進化
トレーシー・キダー著「超マシン誕生」(日経BP)という書籍については、さまざまな媒体で何度も紹介してきた。本ブログでも以下の2つの記事を書いている。
会社のブログでも書いた。
個人ブログでも書いた
雑誌連載にも二度ほど書いた。1つは以下から参照できる。
何度も書いているが、それだけの価値がある書籍である。
「超マシン誕生」にはさまざまな読み方がある。プロジェクト管理の立場から読む人もいるだろうし、エンジニアのモチベーションについて考える人もいるだろう。もしかしたらマサチューセッツ州の税金について考えた人がいたかも知れない。マサチューセッツ州は、マサチューセッツ工科大学(MIT)を擁し、本書の舞台となったデータゼネラル社やライバルのDEC(ディジタルイクイップメント社)、初期のインターネットで重要な役割を果たしたBBN(Bolt Beranek and Newman)など先進的なIT系企業を数多く輩出した。しかし、税金の問題からIT業界の中心がカリフォルニア大学とスタンフォード大学を擁するカリフォルニア州に移ったという説がある。
筆者が何度か書いたのは互換性と革新の板挟みについてだ。IT分野では日々新しい技法が考案される。初期のコンピュータ業界は、ソフトウェア(つまり人間の労働力)よりも、ハードウェアの方が高価だった。そのため、過去のソフトウェア資産を考慮する必要はなかった。しかし、現在では最も高価な資源は人力である。ソフトウェア資産を損なうような技術革新は許されない。
ただし、互換性を維持する方法にはいくつかのやり方がある。アーキテクチャのみを維持する方法、モード切り替え、そして機能拡張だ。アプリケーションプログラマの負担はこの順で軽くなる。
アーキテクチャのみを維持する方法は、インテルが8ビットCPUの8080から16ビットCPUの8086へ移行した時のやり方だ。両CPUは概念的に似ているものの、完全な別物である。
モード切り替えは、16ビットCPUの8086から32ビットCPUのi386へ移行した時の方法だ。i386以降の32ビットCPUは、32ビット拡張モードに切り替わった状態で、16ビット互換の仮想モードを構成することができる(ただし64ビットモードにすると16ビット仮想モードが使えない)。
機能拡張はインテルおよびAMDが32ビットから64ビットへ移行した時の方法である。機能的にはモード切り替えと同様だが、64ビットモードでは32ビット命令がそのまま使え、64ビット命令は特別なプリフィックスが必要になる。「超マシン誕生」で採用された方式もこれとほぼ同じである。
インテルのCPUは、16→32→64ビットと進化しているが、そのたびに異なる技術を使って互換性が維持されていることがわかる。そして、新しいほどソフトウェア互換度が高くなっていることにも注意してほしい。
PCの場合、ハードウェアアーキテクチャの寿命は10年から20年だが、ソフトウェアの寿命はもっと長い。今後もソフトウェアの互換性を保った進化が続くだろう。
現在Windowsクライアントで最もホットな話題は64ビット(x64)への移行だ。一部に非互換機能が残るものの、Office 2010もx64に完全対応した。大量のメモリを必要とするグラフィックや動画関連の業務から徐々に移行することになるだろう。