数値演算コプロセッサー

この記事は約2分で読めます。

昔のPCは数値演算コプロセッサーなる専用チップをオプションで載せることができた。
このチップは浮動小数点演算をするための専用のものである。何のことだ?と思う方が大半だろうが基本的に科学技術計算を行うものだ。勘定系で使われることは無い。三角関数や常用対数などの計算を爆速で行うものであった。実は今は標準搭載されているため、知らない人も多いだろう。
このチップは非常に高価で純正品は10万円近くしただろうか?
ほとんどの人は日常的に三角関数の計算なんかをすることは無いわけで、オプションなのは理にかなっていた。
ただ科学技術計算をするエンジニアには必須のアイテムだったかもしれない。

その昔、「CPUアクセラレーター」なる商品を購入したときに、この数値演算コプロセッサーが付属しているものがあった。価格はもちろん高くなるが1万円も差が無かったと思う。自分も折角だからと搭載されているタイプを購入した。
当時のINTEL製は非常に高価だったが、Cyrix社のCx87SLCは価格も安く80387よりも高速で大変お得だった。
ちなみにINTELは80486からCPUに内蔵する方向となり、純粋なコプロセッサーを販売していたのは80386までである。

このコプロセッサーだが、火を噴いたのは大学4年生の時だった。理系の学生だった自分は卒業研究のため毎日のように三角関数の計算をしていた。
当時のC言語コンパイラであるMS-Cには数値計算用に3つのオプションがあった。

  1. CPUを問わず数値演算ライブラリーを使用して計算する。
  2. 数値演算コプロセッサーの搭載を必須とする。生成される実行ファイルは最小になる。
  3. 数値演算コプロセッサーを搭載していれば自動的に使用し、無ければ数値演算ライブラリーを使用する。いいとこ取りだが生成される実行ファイルは一番大きい。

たしか標準は3であり、そのまま3を選択してコンパイルしていた。

大学にあったPCは、PC-9801 DAだった。基本的に自分が使っていたPC-9801 RXよりは高性能だ。通常時はCPUアクセラレーターを載せていたので、ほぼ同じような処理速度で利用できていたが浮動小数点演算となると驚くほど違った。
FFT(高速フーリエ変換)と呼ばれるプログラムを自前で組んだのだが、PC-9801 DAでは十数秒かかるところ、自宅のPCは本当に一瞬で終わった。同じプログラムを自宅で初めて実行させたときはバグで落ちたかと思うほどだった。

長いPC歴の中で、この数値演算コプロセッサーの実力を知ったときの驚きを超えるものは未だに無い。

コメント