見出し画像

80186とV30 - 互換性が大切

インテルが初の16ビットCPUとして1978年にリリースした8086ですが、翌年にデータバスを8ビットにシュリンクした8088をリリースして、これが1981年にIBM PCに採用されたあたりから広く使われるようになりました。

8086 - 今も生き残るアーキテクチャ

日本では1982年にPC9801(無印)で、NEC製の互換CPUであるμPD8086が採用され、MS-DOSの普及とともに8086/8088のソフトウェアが急速に整備されて、このアーキテクチャを持つCPUの時代が始まりました。

MS-DOSはその最初からビジネスベースでソフトウェアが展開されたために、ソースコードが流通することはあまり行われず、もっぱらバイナリが配布されて実行されるという形態が主流でした。このためCPUの機能を拡張するにしても、過去のバイナリが使えなくなることは避けなければいけなくなりました。研究や学術目的からスタートしたUNIXのように、新しいCPUになったから、ソースをリコンパイルすれば構わないというわけにはいかなくなったのです。もちろんUNIXも商用化の波にあらわれてBSDとATT系(Systemなんとか)に分かれていくことにはなったのですが。

これ以降のCPUは、同じバイナリが動作するアーキテクチャを維持して機能を拡張していくことになり、新しいアーキテクチャを導入するには、まずそれが動作するOSを普及させる必要があるという時代になりました。少なくともPCに使うようなCPUは、あまり新しいCPUが出てくるということは無くなりました。

インテルは1982年にまず大型機のようなメモリ保護機能を持ち16Mまでのメモリをアクセスできる80286を発表したのですが、これがすぐに使われることはなく(製造開始も少し時間がかかった)周辺チップを統合し、クロックあたりの動作速度も上がった80186を同年にリリースしました。ソフトウェア的には8086から殆ど変化することも無く、あまり広く使われたとは言えません。

Intel 80186

これに対しNECがPC9801VM以降で採用したV30は、80186との互換性を保った上で独自の命令も追加したもので、PC9801の普及とともに広く使われるようになりました。NECは8080の時代にも10進補正フラグの扱いを独自に変更して痛い目に合ったはずなのに、ここでもその轍を繰り返し、その後のPC9801シリーズにおいても、286だけではなくV30も搭載する羽目になったのは、知る人ぞ知るところです。

NEC Vシリーズ

ちょうど時代はIBM PCと互換機の間で、リバースエンジニアリングと権利侵害の戦いが始まっており、V30に関してもマイクロコードの権利でインテルと争うことになり、著作権侵害が無いことは認められたもののマイクロコードの著作権が確立したために、リスク回避と性能向上を狙ってV33が開発されることになったようです。もっともNECは、これに懲りたのかインテル互換CPUの道は諦めたようで、Vシリーズは独自の進化をするようになり、PC9801VX以降はインテルCPUを搭載するようになりました。NECは今度はEPSONとの間で互換機の戦いが始まったこともあり、いろいろと慎重になったのかもしれませんが、互換機で動作させないための小細工を駆使するようにもなったので、いくら会社を守るためとはいえ利用者から見れば褒められたものではありません。

ビジネスの規模が大きくなり、動くお金も半端ない時代に入ったので、それまでのような緩いことは出来なくなったのは確かだとは思いますが、ユーザ不在で争われてもそっぽを向かれます。この中で、パブリックドメインソフトウェアであるとかフリーソフトという権利が作られ、その後のGNUであるとかオープンソースという仕組みが整えられていくキッカケになったのだとは思います。ソフトウェア、特にソースコードの流通はデジタル社会の発展に無くてはならないものではありますが、その扱いについて明確になっていないと、使った場合のリスクが高すぎて有効に使うことができません。またクローズにした場合、今度は外部からセキュリティに対するリスクが評価できないというのは、痛し痒しで今でも捻りを加えながら議論と戦いが繰り返されているのは、必要悪なのかもしれません。

ヘッダ画像は、以下のものを使わせて頂きました。https://commons.wikimedia.org/wiki/File:KL_Intel_i186.jpg
By Konstantin Lanzet (with permission) - CPU collection Konstantin Lanzet, received per EMailCamera: Canon EOS 400D, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=4213079

https://commons.wikimedia.org/wiki/File:KL_NEC_V30.jpg
Konstantin Lanzet - CPU collection Konstantin Lanzet, CC 表示-継承 3.0, https://commons.wikimedia.org/w/index.php?curid=6188036による

#CPU #80186 #V30 #インテル #NEC #著作権 #ソースコード #互換性

この記事が気に入ったらサポートをしてみませんか?