Wednesday 10 November 2010

Intel64

IA64だと、Iternium を指すので、AMDのを含めて、x86 64 と言う方が正しいかな。Intelはレジスタ8本でやろうとしていたらしいので、AMDが先にレジスタ16本を出して良かったよ。

気が向いたので、つうか、REPの方が一段落したので、Intel64 用のコンパイラを書いてます。いや、他にもやることあるのだが。来週東京行きたくないです。

Intel 64だと、SSE2必須なので、128bit の xmm レジスタ16本が使える。これはうれしい。が、その分は書き直し。もっとも、PowerPC用のを持って来れば良いだけ。

あと、RIP相対があるので、PICな OS X では便利。

IA64が失敗だった理由はいくつかあると思うんだけど、メインフレーム向きの設計で、128bitに3命令ってのは少なすぎだった。コードがすかすかだからベンチマークでは良くてもね。VLIW と RISC は、結局、一時期の流行だったってことか。PowerPCの命令のどこが「Reduce」なんですか。

32bit 固定長も長すぎ。だから ARMのThumみたいなのが出来ちゃう。コンパイラ書きには迷惑なだけ :-p コードは圧縮してメモリに置いて CPU 内部で展開すれば良いのかも。

64bit ですが、実際のアドレスは48bit。じゃぁ、残り、16bit はタグに使ってとか、また、そんな話が出て来るんだろうな。せこい技術は寿命が短い。

No comments: