標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第613回]

●64bitのCPUについて

前回、Windows7(64ビット版)で、16ビットのアプリケーションが拒否されてしまいましたことについて、これはMicrosoftの怠慢ではないか、というような意味のことを書きました。
しかし翌日になりましてから、[追記]いたしましたように、Microsoftのせい、というよりも、CPUの機能上の問題で、仕方がないことでもあるのかな、とも今は考えております。
あ。Windows7でもProfessionalとかUltimateとかのバージョンですとXP互換モードなるものがあるのだそうですが、私はそのようなバージョンを持っておりませんので、そのモードなら16ビットアプリケーションが実行できるのか、できないのかわかりません(多分XP互換モード(WOWのことか?)でも16ビットアプリケーションは実行できないようです)。

ところで、あとで詳しく書きますが、Windows7(32bit版)は16ビットアプリケーションが実行できることが確認できました。

Windows7(32ビット版)では16ビットアプリケーションが実行できるが、Windows7(64ビット版)では実行できない、というのはMicrosoftの怠慢というよりは、64ビットCPUの機能上の制約からではないか、ということのようです。

以下は主にWikipediaからの受け売りです。

64ビットCPUのアーキテクチャではAMDが開発を先行し、MicrosoftがAMD64の採用を決定したために(Intelにも独自規格があったのですけれど)、Microsoftには従わざるを得なかったので、さすがのIntelもAMD64を受け入れるしかなかった、のだそうでありますね。
その昔、Intel8080のセカンドソースメーカーであったAMDが30年の歳月を経て、ついに技術においてソースメーカーを抜いたというのは、なかなかにセンセーショナルな感があります。
東京出張の折に秋葉原の信越電機(今の秋月電子)で初めて手にしたCPUがAMD9080(intel8080のセカンドソース)でしたから、私にとってはなおさら興味深いものがあります。

そのAMD64アーキテクチャなのですが、long modeとlegacy modeがあるのだそうで、legacy modeはいままでの32ビットおよび16ビットCPUと同じ動作モードです。当然64ビットアプリケーションは実行できません。
long modeは64bit modeとcompatibility modeを切り換えて実行が可能で(う?同時に並行して実行可能、だったっけ?)、compatibility modeでは、32ビットおよび16ビットアプリケーションが実行できる、のだそうです。

なんだ。16ビットも実行できるじゃないか、と最初は思ったのですが、よくよく調べてみましたら、詳しくはわかりませんが、なんでもcompatibility modeでは、Windows98以後の、仮想86モードは実行できないのだそうです。
そこで、Microsoftは64ビット版のWindowsでは、仮想86モードによる16ビットアプリケーションの実行機能を断念した、のだそうです。

まあ。落ち着いて考えてみましたら、このご時世に、最新のWindowsについて、今だに16ビットのアプリケーションの実行ができることを要求する、というのは時代錯誤の最たるものかもしれません。
でも、今だにこうやって8ビットCPUをいじっている私から見ますと、8086の命令というのは、8ビット命令の延長として無理なく理解できますから、さわってみるべき価値がある、と思うのですけれど。

しかし、ほとんどの一般大衆からしてみましたら、そんなことはどうでもよいことなので、確かに機能UPこそが望まれるのでありましょう。
まことに無理からぬことではあります。

よくよく考えてみましたら、なにもWindowsにいつまでも16ビットアプリケーションの実行機能を求めなくてもよいではないか、とも思います。
Windows2000以後はマルチOSのデュアルブート機能が使えるわけですから、Windowsと一緒に、以前に紹介いたしましたフリーDOSなどをセットアップしてしまって、ブート時に切り換えて使用する、ということでもよいのでは、とも思います。
そういう時代なのですねえ。
そうなりますとプリインストール済みのメーカー製のパソコンにそういう細工をするといいますのは、なかなかに抵抗のあることだと思いますから、これはやっぱりパソコンを自作(組み立て)しなくては、ということになってきます。

しかし、たかだか16ビットのプログラムを実行するために、パソコンを自分で組み立てて、そしてそこにOSを、しかもマルチブートでセットアップしなければならない時代が目前にせまっている、というのは時代の流れとはいえ、ますます技術屋が育ちにくい世の中になってきているような気がします。

考えてみましたら、PC9801や初期のDOSの時代の方が、既製品をそのまま、技術の習得に利用することが今よりもずっと簡単だったように思えます。
技術の進歩、パソコンの機能の飛躍的な向上に反比例して、初歩的な技術の習得に利用するためのハードルが、かえって高くなってしまう、というのはなんとも皮肉なことだという気がします。

ああ。そんなことを書いていましたら、また時間がなくなってしまいました。
次回はWindows7(32ビット版)のセットアップと、そこで実行してみた16ビットアプリケーション、についてのご報告、の予定です。
2010.9.18upload

前へ
次へ
ホームページトップへ戻る