x86 とか

最近あろはさんの文章を見ると必ず DIS りたくなるので、恋というやつだと思います。若者言葉で言うとツンデレのツンの方。

http://alohakun.blog7.fc2.com/blog-entry-952.html

まず Intel ってμop の仕様ってそれなりに公開してたような…と思って少しぐぐったけど、今一つ見当たらず。とりあえず x86 命令が何μopになるかとかいうの見つけたけど Pen Pro 時代とかだった…

http://download.intel.com/jp/developer/jpdoc/ia_opti.pdf

まぁなんにせよこう、なんかこうまるで情報囲い込んでちょっぱやコンパイラ作ってがっぽがっぽみたいなことは別にインテルさん思ってなくて、 CPU 屋なんだから単に自分とこの CPU を十分に使いこなせるコンパイラも作ることで CPU 売りやすくするってだけの話なんじゃないかなと素人考えでは思うので、まぁなんか。 GCCIntel の CPU をフルに使いこなしてくれたら Intel としては大歓迎なのではないか。

あと GCC が追いつけないってのは無論情報とかもあるだろうけど単に、 1. 特定 CPU に関して特化したコンパイラを 2. 企業の力を投入して作ってる、っていう 2 点の方が大きいんじゃないかしら、とこれも素人考えだけど。あと速いつってもだいぶ前に色々遊んでた時はせいぜい 5% 弱速くなるくらいかなぁという感じだったんだけど、今はどうなのかな。 5% つーとすごい気もするけど。あとこの時に SSE 命令吐くには吐くけど、それで劇的に速くなることとかは特になくて、その記憶から VMJIT するから SIMD 命令とか使えてうっへっへみたいな話はウソだと信じてるんだけど、まぁ今はもっとすごかったりするのかな。

まぁなんにせよそんな話はどうでもよくて、重要なのは call/ret いらんてのはまぁそうなんだけど、それを言うなら inc/dec/push/pop もいらないのだろうかとかいうような。この4命令だけで 32/256 もの空間が投下されている様を見て何かを感じない人はプロじゃないと思う。ちなみに何かとはすなわちゴルフのことで、プロとはプロゴルファーのことですが。 pop と言えば VC が sub で 4 引くより pop を選ぶとかいうのもゴルフな感じですね。

どんどん話が散乱していますがゴルフというか、 call とか ret とか無いアーキテクチャもあるんだよとかいう話で言うと、 MAXQ とかいうアーキテクチャに衝撃を受けたことを思い出します。以下が命令セットなわけですが

http://media.maxim-ic.com/images/appnotes/3222/3222-03.gif

  • 命令セットが 480x190 の GIF ファイル
  • opcode は 1bit
  • ていうか mov しか無い

と何かを感じる感じざるを得ない感じですばらしいですね。

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h