コンピュータに関わる人なら一度ぐらいは「アーキテクチャ」という言葉を聞いたことがあるだろう。最近では、さまざまな「アーキテクチャ」を含む用語が増えてきた。本来、「アーキテクチャ」は、理解のために、それまで名前のなかったものに付けられた用語なのだが、現在のようにナントカ・アーキテクチャが氾濫することでかえって分かりにくいものになってしまった。
もともとの英単語は、「建築学」、「構造」を意味する単語で主に建築関係で使われる用語であった。コンピュータとの関連で、アーキテクチャが使われたのは、1959年にIBMのライル・R・ジョンソンとフレデリック・ブルックスによってである。ジョンソンは、IBM 7030(Stretch)についての報告で、詳細を省いたハードウェア記述に対して「アーキテクチャ」の語を使った。
その後、IBMが1964年にSystem/360を発表したとき、機種間で同じプログラムを実行可能にするものとして「アーキテクチャ」を使った。その後の論文では、アーキテクチャを「プログラマから見えるシステムの属性群。すなわち、概念的構造と機能的挙動」として説明し、意味を明確にした。
簡単にいうと、最初に登場したアーキテクチャとは、プログラマから見たハードウェアの記述であり、誤解を恐れずに説明すると、アーキテクチャとは命令セットだといえる。これに関しては、「ISA」(Instruction Set Architecture)という用語もある。
ただし、ハードウェアによっては、アーキテクチャは命令セットだけではないこともある。たとえば、I/Oとして演算機構が追加されており、特定アドレスの入出力で計算を行うような場合だ。ソニーのゲームコンソールPlay Station 2のベクトル演算ユニット(Vector Unit。VU)などがこの例に当てはまる。VUは、エモーションエンジンと呼ばれるプロセッサに含まれるものの、MIPSコアとは別になっており、DMAを介してデータのやりとりを行う。しかし、そのための専用命令があるわけではなく、MIPSの命令セットを使って、VUを利用する。
こうした例外を除くと、アーキテクチャとはほぼ命令セットであり、アーキテクチャは、命令セットが「定義」すると言っていい。言い方を変えると、命令セット定義の中にアーキテクチャの定義に必要な情報がすべて含まれている。たとえば、レジスタアクセス命令を見れば、汎用レジスタがいくつあるのかを知ることができる。逆にいうと、アクセスのための命令のないレジスタは、プログラマからみれば存在しないのと等価である。
ただし、命令セットからこうした意味をくみ取ることができる人はそれほど多くなく、一般的には、定義、解説文書をもってアーキテクチャの定義とすることが多い。
なお、アーキテクチャには、実装は含まれない。命令の実行をハードウェアで行うのか、未定義命令エラーを利用したソフトウェア・エミュレーションで行うのかは、アーキテクチャ外の事柄である。あるいは、割り算命令も単純な引き算の繰り返しや、ニュートン法によるもの、表を使う方法(Sweeney Robertson TocherによるSRT除算)など複数の選択肢がある。どれを使うのかは製品次第である。ハードウェアコストが高かったメインフレームなどでは、簡易なハードウェアとソフトウェアを組み合わせて低価格化した下位機種と、高速な演算が可能なハードウェアを使う上位機種といった作り分けがあった。
マイクロプロセッサの時代になると、命令セットはほぼ固定となったが、実装には大きな差ができた。こうした部分をインテルは「マイクロ・アーキテクチャ」と呼んだ。これは「アーキテクチャ」の実装方法を特徴としてまとめたものだ。マイクロ・アーキテクチャの違いが命令のレーテンシに影響を与えるため、分野によっては、プログラマに必要な情報を含んでいるともいえる。
今回のタイトルネタは、フィリップ・ホセ・ファーマー(Philip Jose Farmer)の「奇妙な関係(原題STRANGE RELATIONS,1960)」(創元推理文庫1981年)である。本書は、雑誌に発表された、一連の作品を収録したもので、最も早い初出である“Mother”は1953年に発表されている。いま読むと衝撃を受けるようなものではない「性的描写」だが、日本国内では、1951年にチャタレー事件(H・D・ロレンスの「チャタレー夫人の恋人」の日本語訳がわいせつ物頒布罪で摘発され出版社社長、訳者が起訴された)があってから、国内では、性的描写のある出版物に消極的になっていた時代。その後、サドの「悪徳の栄え」(1959年起訴)、永井荷風「四畳半襖の下張」(野坂昭如と出版社社長が1972年に起訴)など、1970年台まで「わいせつ物」の摘発が続いた。結局、本書の翻訳の出版までに初出から30年近くを要した。
