パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

x86-64版Windows XP 64」記事へのコメント

  • 過去の命令を一掃して欲しい気持ちでいっぱいです。
    • Re:そろそろ (スコア:1, すばらしい洞察)

      by Anonymous Coward
      で、その「技術的に正しい」魔の誘惑に乗ってしまった企業は失敗するってことだね。IntelやMicrosoftが今の支配的地位を築いた理由は、8086やDOSからの曲がりなりにもアップグレードパスを用意したからだと思う。

      僕もいっそうしてほしい気持ちでいっぱいだが、それをしない、というの

      • 過去への互換性のしがらみで既存企業の技術が複雑かつ冗長になっていけば、どこかで斬新かつ革新的なテクノロジーを持った企業との競争で不利になる局面が出てくるのではないかと思います。
        その
        • Re:そろそろ (スコア:1, 興味深い)

          by Anonymous Coward
          そう思うでしょ。だからこそ甘い誘惑なんだよ。いままでどれだけ革新的な技術が消えていったことか。どれだけ新世代なOSが死んだことか。たとえば、21世紀には当然分散OSなんぞを使っているんだろうと思っていたのが、いまだにたいして代わり映えもしないUNIXを使い続けている。

          ノスタルジーや独特

          • あ、そう言う意味でなら、私も現時点でIA-64が簡単に商売になるとは思えません。
            X86はまだまだ挑戦者に打ち負かされるほど、引きずっている古いものの重さが過大にはなってないでしょう。
            • > X86はまだまだ挑戦者に打ち負かされるほど、引きずっている古いものの重さが
              > 過大にはなってないでしょう。

              そうなんですよね。
              x86 は命令セットは古いんだけど、x86 命令を μOP やRISC86 と呼ばれる RISC 風命令に置き換えて実行するから、CPU の内部はバリバリのスーパースカラー RISC プロセッサなんですよ。
              Pentium4 では変換後の μOP命令をそのまま溜め込むトレースキャッシュを実装しているので更にペナルティは小さいです。

              一方、SUN の UNIX 機に
              --
              コンタミは発見の母
              • by boo (899) on 2002年04月25日 9時44分 (#86219) 日記
                > 一方、SUN の UNIX 機に載っている UltraSPARC 系の石はSPARC
                > (Scalable Processor ARChitecuture) という命令セットを採用しています。
                > かつて RISC の星とされたその命令セットですが、 register
                > window という「出た当時は大変便利だと思われた機構」が
                > 今では性能向上を阻害する要因になり果てています。

                SPARCにはもう少し言いたいことがあって、
                ・今ではあるだけ無駄な annul bit 付き delay slot
                ・命令デコードが終わるまでレジスタが決定できない浮動小数点系命令
                 (V9の話ね。64本レジスタがあるのに5bitしかないんだもん。)
                とか、何とかならんかと思います。

                最近では一部の命令は内部でμOPに分解してるそうなので、こちらももう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 つ以上載せた実装を見たことがない。
                </余談>

                > とか、何とかならんかと思います。

                > (過去の資産に頼っているようにも見えるし。)

                なんとも ならんですよ。
                ソフトはハードよりも「固い」のですから。
                --
                コンタミは発見の母
                親コメント

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

処理中...