おまけ

逸話あれこれ

速さは力

昔々、NEC がまだ伝説的な国産 PC である PC-98x1 シリーズを精力的に販売していた当時のキャッチフレーズ
たしかに、現在においても PC の単純な比較にはベンチマークと言われる速度指標を表すソフトを使って行うことがほとんどだ。
しかし当時の NEC 機には、通常では「速さは力」を実現できないアーキテクチャが採用されていた
それはハードディスクを接続するインターフェイスである IDE の仕様である。

今日の Windows などの OS は、物理的なメモリ上限を緩和させるために仮想メモリという仕組みを用いている。
これは実際に実装しているメモリよりも大きなデータを一度に扱わなければならない場合に、アクセスされていないメモリの内容を一時的にハードディスクに待避して空き容量を作り、現在実行しているアプリケーションに割り当てようとするものである。
これによって、たとえ 256MB の物理メモリしか積んでいない環境で 512MB のメモリを要求しても OS が停止することがないわけだ。

しかしここで問題になるのは、ハードディスクの速度などメモリの速度に比べればカタツムリと新幹線ほどの差があると言うことだ。
つまり、メモリが足りなくなってハードディスクへの書き出し、スワップが起こると、速度が劇的に犠牲になるのだ。

さて、ここで問題です。
「速さは力」を謳っていた当時の NEC 機の標準内蔵ハードディスクは速かったでしょうか?

答えは否、激遅い。

これは IDE の実装方法に問題があった。
CPU が IDE を制御する際、実は CPU → PCI → C-Bus → IDE と、随分と遠回りをして制御していたのだ。
PCI ならばまだ速度はそんなに落ちなかっただろう。
しかし NEC の独自仕様であり、PC98x1 シリーズに標準的に付いていた C-Bus は登場した時期が古い分、激遅い仕様なのだ。
この下に IDE がぶら下がっていたということは、自ずと IDE も遅くなる。
しかも IDE というのは、その制御にモロに CPU が利用されるもの、即ちボトルネック以外の何物でもないのだ。

更に正確には、当時の NEC 機の IDE が PIO 転送しかサポートしていなかったという問題もあったらしい。
DMA 転送をサポートしていればもう少し改善できた筈だ。

こんな体験をした。
PC-9821Xa16 というマシンがある。
Pentium CPU 166MHz のマシンで、その時体感比較で使ったマシンはメモリが 32MB標準の内蔵ハードディスクで、OS が Windows95、ほぼ標準だった。
対して、PC-9821Ap3 というマシンがある。
Pentium の前身である 80486 CPU 100MHz を搭載している。
しかしこの Ap3、メモリは 80MB に増強されているばかりか、ハードディスクが SCSI-2 で接続されているというカスタマイズを受けていた。
この両者の体感速度を比較する。
CPU 的には完全に PC-9821Xa16 に軍配があがるはずだが、実際には遙かに PC-9821Ap3 が勝っていた
つまりスワップ頻度その物の差と、いざスワップがかかった場合の速度差が顕著に出てしまったのだ。

PC の速度というものはトータルバランスである。
CPU だけいくら速くしても、メモリが少なかったり、IDE 機器や USB 機器を使いまくっていたり、そもそもハードディスク速度が遅かったりすると全体のパフォーマンスは劇的なまでに落ちてしまう。
当時の NEC 機は「同じ CPU なら 3 割減」とすら言われていたのだ。

貴方も、トータルバランスに優れた PC を組んでみたいのなら、CPU だけでなく、様々な要素を考えてみるべきだ。
サーバ用途のハードディスク接続に SCSI が好んで使われるのは、理由のないことではないし、RAID によって速度を稼ごうとする発想は決して間違った選択ではない。

Valid HTML 4.01 Strict Valid CSS!