x86-64版Windows XP 64 54
ストーリー by Oliver
IA64-vs-x86-64 部門より
IA64-vs-x86-64 部門より
yuki-kun曰く、"Promの記事によると、AMDの次期プロセッサHammer用64bit Windows XPのアナウンスが今週末に行われる可能性があるらしい。IA-64用Windows XPは既に存在しているが、IntelのIPF(Itanium Processor Family)が今ひとつぱっとしない事への牽制と保険ということなのだろうか。"
そろそろ (スコア:1)
x86-64 命令 (スコア:3, 参考になる)
ツギハギだらけだけど それなりに「すっきり」した CISC の命令セットにはなっていると思います。
p.s.
www.x86-64.org [x86-64.org] から命令セット等の PDF が落とせるけど、AMD は本当に P6 系の命令セットをそのまんま拡張しているんですねぇ。
一応、汎用レジスタと SSE レジスタが増えています。
汎用レジスタ 32ビット8本 → 64ビット16本
SSE レジスタ 128ビット8本 → 128ビット16本
FPU(x86) レジスタと MMX レジスタは幅も数も そのままなので互換性のためだけに残されたような感じです。
レジスタは増えたけど演算の型式は RISC 風の 2入力1出力 (A) ではなく、昔ながらの (B) 形式です。
(A) r0 ← r1 + r2
(B) r0 ← r0 + r1
p.p.s.
ところで x86-64 にはすごい不自然な仕様があります。
64ビットモードでも 8、16、32ビット幅の演算があるのだけど、演算結果を格納するレジスタの上位ビットの扱いが異なるのです。
8、16ビット幅の演算の場合は、結果を格納するレジスタの上位ビットがそのまま保持されるのですが、32ビット幅の演算の場合は上位32ビットがゼロ拡張(ゼロクリア)を受けるのです。
おそらく C コンパイラを作りやすくするための仕様だと思うけど、命令セットだけ眺めるとすごい気持ちが悪いです。
コンタミは発見の母
Re:x86-64 命令 (スコア:1)
Nova->ECLIPSEとPDP->VAXの、16-32へビット長を増やしたのを比較して、VAXのほうのアーキテクチャが成功したという記事。
SSE2 (スコア:1)
AMD x86-64 Architecture Manuals (スコア:1)
私は持ってないので Hammer でサポートされている SSE2 命令の詳細は分りません。
コンタミは発見の母
Re:そろそろ (スコア:1, すばらしい洞察)
僕もいっそうしてほしい気持ちでいっぱいだが、それをしない、というのが企業として正解ではないか。AMDはうまくやるとおもうよ。64ビットCPUの分野で。Intelは正直、失敗に向かっていると思う。x86-64対抗アーキテクチャを出してくるらしいので、それでどれだけ路線を修正できるかどうかが今後の焦点になるはず。
それなら (スコア:2, 興味深い)
…なんか、コアの大半はPentiumエミュレーションのために浪費しそう。
ソフトウェアでエミュレーションしろと言うつっこみは却下です(^_^;
うじゃうじゃ
Re:それなら (スコア:1)
Re:それなら (スコア:1)
クールーソーだっけ?
Re:それなら (スコア:0)
> クールーソーだっけ?
コードモーフィングはまさに元コメントに書かれている↓です。
> ソフトウェアでエミュレーションしろと言うつっこみは却下です(^_^;
ちなみに .NET は MSIL というバイトコードで構成されていて
CPU に依存しないバイ
Re:それなら (スコア:1)
思い出したわしは爺ぃですか?
Re:それなら (スコア:0)
> 思い出したわしは爺ぃですか?
情報系の人(20代)と MSIL の話をしていたら
やっぱり USCD P-CODE のことを振られたりしました。
なので、年齢は関係ないんじゃないでしょうか。
Re:それなら (スコア:1)
Re:それなら (スコア:0)
USCDじゃなくてUCSD (University of California at San Diego) でしょ。
Re:それなら (スコア:1)
PowerPC615 のことですか?
Re:それなら (スコア:1)
>PowerPC615 のことですか?
すみません、意味が掴めません。
「ネイティブコードはx86非互換」なんです。
単にx86非互換のCPUならたくさんありますし、他の条件(仮想Pentiumモード)とかも満たしてくれないとあまり面白くないと思うのですが。
それとも、PPC615というのは何か他のPPCファミリとは異なるx86がらみの機能があるのでしょうか?
うじゃうじゃ
PowerPC615とは(Re:それなら) (スコア:1)
Pentium 互換モードを持った PowerPC です。
PowerPC 601 とか 603 とかの時代の話です。
# 昔、今は亡き PC-WAVE 誌で読んだ記憶で書いていますので、
# 間違っているかもしれません
Re:PowerPC615とは(Re:それなら) (スコア:1)
そういえば昔のIBMはx86の製造もしていましたしね。
勉強になりました。
うじゃうじゃ
Re:それなら (スコア:1)
Java は面白くて、古いコード (クラス、メソッド) はサポートしているものの、コンパイル時とかに「古いの使ってるよ、オプションつけないとコンパイルしないよー」と注意されます。
これ、わりと有効だと思います。 開発者だけじゃなくて、使用者も知ることができれば更に良いかも。
なので
・X86 コードも遅いながらサポートした環境 (CPU and/or OS) を用意
・エンドユーザが「ソフトウェアが古いX86」コードを使っているか簡単に知ることのできる仕組みを用意
・するとパソコン雑誌等には「良いソフトですが、ただまだX86コード使っているのが残念」などと書かれたりし、有料ソフトやシェウェアは対応せざるを得ない状況に。
という展開になるといいな、と個人的には思っています。
Re:それなら (スコア:1)
>最新の、遅いCPUなんて売れないと思う。
確かに。
実際、Itaniumは売れていない。
うじゃうじゃ
Re:それなら (スコア:1)
その危惧は確かにありますね。
ちなみに僕も Pro 使ってました。それもデュアルで。 (^-^;
# Pro の試みは心の中で応援してたんですが・・・
# コアは P3 に生まれ変わって幸せな人生を歩んだよ、と自分を納得させてたり
スレッドの流れでちょっと説明足りなかったんですが、
「x86 コードの中で高速化の足を引っ張っている盲腸コード」
が遅くなってもいいから、全体を高速化したらどうかな、という感じですね。
再コンパイルで既存のCPUより速くなるなら、UNIX系はすぐにバイナリが出回るでしょうし、
動きの遅い WIndows 系での移行を加速するために、「ユーザに見せること」を提案したいと。
↓のかんじの競争原理で。
>ユーザーはソフトが動いてくれればいいんだし。
ですね。ただソフトを購入する際に、雑誌の評価がかなーり影響しそうな気がして。 (^-^;
・・・まぁ最大の問題は競争原理が働かない Windows (API) それ自体なんだけど。 (^-^;
Re:そろそろ (スコア:1)
そのようにして時代は変わっていくのではないかと思うのです。もちろんノスタルジーや、独特の味わいなどで、古い技術に愛着を持つ人が居て、それが消えて無くなる事はないのかも知れませんけども。
Re:そろそろ (スコア:1, 興味深い)
ノスタルジーや独特の味わいなんて言うのは関係ない。既存の巨大なインストールベースに対抗するには、生半可な「革新」ではだめなの。IA-64なら、IA-32の10倍の性能くらいだせないと普及は難しいと思う。でないと、よりスムーズなアップグレードパスを提供するHammerに負ける。そゆこと。
Re:そろそろ (スコア:1)
X86はまだまだ挑戦者に打ち負かされるほど、引きずっている古いものの重さが過大にはなってないでしょう。
x86 は大丈夫だけど SPARC は... (スコア:1, 参考になる)
> 過大にはなってないでしょう。
そうなんですよね。
x86 は命令セットは古いんだけど、x86 命令を μOP やRISC86 と呼ばれる RISC 風命令に置き換えて実行するから、CPU の内部はバリバリのスーパースカラー RISC プロセッサなんですよ。
Pentium4 では変換後の μOP命令をそのまま溜め込むトレースキャッシュを実装しているので更にペナルティは小さいです。
一方、SUN の UNIX 機に載っている UltraSPARC 系の石はSPARC(Scalable Processor ARChitecuture) という命令セットを採用しています。
かつて RISC の星とされたその命令セットですが、 register window という「出た当時は大変便利だと思われた機構」が今では性能向上を阻害する要因になり果てています。
南無三。
コンタミは発見の母
Re:x86 は大丈夫だけど SPARC は... (スコア:3, 参考になる)
> (Scalable Processor ARChitecuture) という命令セットを採用しています。
> かつて RISC の星とされたその命令セットですが、 register
> window という「出た当時は大変便利だと思われた機構」が
> 今では性能向上を阻害する要因になり果てています。
SPARCにはもう少し言いたいことがあって、
・今ではあるだけ無駄な annul bit 付き delay slot
・命令デコードが終わるまでレジスタが決定できない浮動小数点系命令
(V9の話ね。64本レジスタがあるのに5bitしかないんだもん。)
とか、何とかならんかと思います。
最近では一部の命令は内部でμOPに分解してるそうなので、こちらももうRISCとはいえないかもしれない。
(過去の資産に頼っているようにも見えるし。)
# 「スコアの +1 ボーナスを使わない 」なんてできたんだ。内容で勝負ってわけね…
あぁ、「ン」が消えてるんですよ。「ビーフン・カレー」ね。
PA-RISC はさらに変態的 (スコア:1)
いい加減なことを書くのはまずいと思って、PA-RISC について調べものをしていたら遅くなってしまいました。
> SPARCにはもう少し言いたいことがあって、
> ・今ではあるだけ無駄な annul bit 付き delay slot
私は delay slot に関しては、SPARC 一人の罪ではないと許しています。
MIPS には分岐しない(not-taken) の場合には delay slot を無視する条件分岐命令群が用意されていますから annnul bit 付き branch があるのと実質同じです。
PA-RISC の条件分岐命令には delay slot が必ず掛かります。
しかし分岐命令に nullification を指定することで、delay slot に埋めた命令を nullify することが可能です(nullification = 分岐・演算命令に指定できる機能で、演算結果によって後続の命令をスキップする)。
この機能を使うと delay slot に入った命令を 前方条件分岐の時には分岐する(taken)の時にスキップ、後方条件分岐の時には分岐しない(not-taken)の時にスキップします。annul bit よりも面倒くさいです。
> ・命令デコードが終わるまでレジスタが決定できない浮動小数点系命令
> (V9の話ね。64本レジスタがあるのに5bitしかないんだもん。)
知らない人のために解説しておくと SPARC の前の命令セット(V8)までは FPU には 32本の単精度FP(float, 32bit幅) のレジスタがあるのが基本で、これを 偶数と奇数と 2本づつペアにして使って 16 本の倍精度FPレジスタ(double, 64bit) として使ったり、4本ペアにして倍々精度FPレジスタ(128bit)レジスタとして使ったりしていたのです。
ただし16本の double レジスタはアセンブラレベルでは f0 ~ f15 なのですが、命令のエンコーディングのレベルでは f0、f2、~ f14 というように偶数番目だけを指定するという方式を取りました。
つまり下のような感じです。
ビット表現 00000 00001 00010 00011 000100
float 演算 f0 f1 f2 f3 f4
double 演算 f0&f1 未使用 f2&f3 未使用 f4&f5
これだけならすっきりしていたのですが、V9 になった時に double は16本では少ないので 32本に拡張しました。
この時、x86 が ax(16bit) → eax(32bit) と拡張したように 各 float レジスタの後ろ側を拡張すればよかったのですが、V8 との互換性を重視したため、float レジスタが 64本に増やした(ような)イメージで拡張してしまったのです。
実際には、レジスタを指定するフィールドが 5 ビットなので float 演算では拡張された 32 本にはアクセスできず、double 以上でのみアクセス可能なのです。
ただし、命令のエンコーディングと対応するレジスタの関係が奇々怪々で
ビット表現 00000 00001 00010 00011 000100
float演算 f0 f1 f2 f3 f4
double演算 f0&f1 f32&f33 f2&f3 f34&f35 f4&f5
なんとも不可思議ですね。
PA-RISC にも 32本の 64-bit FP レジスタを 2本束ねて 16本の128-bit FP を作る機能がありますが、逆に 64-bit FP レジスタを上下で分割して 64 本の 32-bit FP レジスタを作っています。
こちらもインデックスに使えるフィールドは 5 ビットなのですが、float 演算に上半分を使う・下半分を使うという指定を付けることで 64本全部使うことが可能です。レジスタ間の直交性には欠けるのですが、、、
<余談>
MIPS は 1 CPU に 4 つまで FPU を載せられる命令セットになっています。1 FPU で 32本のレジスタが持てるので、最大 32 ×4 で 128 レジスタですね。
# でも FPU を 2 つ以上載せた実装を見たことがない。
</余談>
> とか、何とかならんかと思います。
> (過去の資産に頼っているようにも見えるし。)
なんとも ならんですよ。
ソフトはハードよりも「固い」のですから。
コンタミは発見の母
Re:そろそろ (スコア:1)
Re:そろそろ (スコア:1)
最近っていつや! と、突っ込んでみるテスト。:)
Re:そろそろ (スコア:1)
ノスタルジーにひたれます。
Re:そろそろ (スコア:1)
メモ帳が64Kバイト以上の編集出来るようになったのいつでしたっけ?
Re:そろそろ (スコア:1)
いつから、というはなしだと、NTが出現した94年、ということに なりましょう。
Re:そろそろ (スコア:1)
ブートストラップは8086の命令です。
.::.:... .::....: .::...:: .::.:.:: .::..:.: .:::..:.
I 1 2 B H4[keR. :-)
俺だって i8008 の命令表なんて持っていないんだが (スコア:1)
アナウンスされましたね (スコア:1)
K8のブランド名も、Opteronだそうで。
IDENTIFICATION DIVISION.
AUTHOR YUKI-KUN.
Re:アナウンスされましたね (スコア:0)
AMDのマーケティング担当者を小一時間…
かつてのNTは (スコア:0)
NT3.51→NT4.0→W2K
となるに従ってX86だけになってしまった。
こういうユーザをコケにした所業を過去にやったM$に
誰がついて来てくれるのか興味津々。
# 昔APLHAにNTを入れた方、今どうしてます?
Re:かつてのNTは (スコア:2, 参考になる)
MIPS/PowerPCのNTシステムって聞いたことすらない。
売れなかったんだろうな。
#PowerPC版は、H/Wもがお蔵入りになったと思ったが。
ただ、「ユーザーをこけにした」には同意しない。
企業として、採算が取れない部門から手を引くのは普通なんで。
Re:かつてのNTは (スコア:1)
Apple が CHRP のオープン化を阻害した為だと思うが。
Re:かつてのNTは (スコア:1)
売れないものを作らないのは、企業にとっては普通のことです。
ただ、そのおかげで、他 CPU への移植性が落ちてしまったのも事実で、
果たして本当に出来るのかが、楽しみだったりする。(笑)
その点、gcc や Linux って、凄いよなぁ。
Re:かつてのNTは (スコア:0)
そこに NT3.5や 3.51を動かして、その上でオフコンOS(AV-Xとか)をエミュレーションしてました。
だから実は沢山出回ったのでは?
うちの会社にも 2台あります。
#「これからはオープン系ですよ」って持ってきたのがこれかい! とあきれたおぼえが、、。
Re:かつてのNTは (スコア:1)
確かサービスパック2までしかなかったため、
毎日のように「また落ちた~」と悲鳴が聞こえてました。
#ファイルサーバとしてしか使っていなかったのにね。
Re:かつてのNTは (スコア:1)
確か NT には PowerPC 版もあったような記憶があります。
十年近く前、DEC のセールスの人が研究室に AXP を 売り込みに来た時に NT お勧めしてたという話を聞きました。
高エネ関係なんで迷わず「なんで?VMS だろ?」でしたけど。
Re:かつてのNTは (スコア:1)
FM-Towns→Epson互換機→PC9821版
もですね。
Re:かつてのNTは (スコア:0)
どーしよーもないので NetBSD 入れました。が HDD がクラッシュ
してしまい途方に暮れてます(うはは
Re:かつてのNTは (スコア:0)
それいったらSoralisのx86版もそうでんがな。
Re:かつてのNTは (スコア:1)
Re:かつてのNTは (スコア:0)
Re:かつてのNTは (スコア:0)
> 誰がついて来てくれるのか興味津々。
AlphaとかMIPSとかでNT使ってた人なんでしょうか?
誰がついてくるって、Windows全く使ってない方なんでしょうか?
Re:かつてのNTは (スコア:0)
リース返却済
#企業だとそういう時期じゃないのかな