アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
クラックを法規制強化で止められると思ってる奴は頭がおかしい -- あるアレゲ人
参考リンク (スコア:5, 参考になる)
肩が凝った人のためにネタ [bogusne.ws]も置いておこう。
惜しい (スコア:1, すばらしい洞察)
アーキテクチャとかRISCとかの歴史的経緯とかを理解せずに書いてるように見える。
たぶん、ヘネパタとかをまともに読んだことないんじゃないかなあ?
Re:惜しい (スコア:0)
御意。全てが間違いと言うわけではないのですが、Out of Orderの説明、Register Renamingの説明なんか、思わずのけぞっちゃいました。
# リンクを張るなら内容を吟味してから
Re:惜しい (スコア:1)
ついでにどこらへんがと具体的なご指摘があると嬉しいです。
Re:惜しい (スコア:0)
では、せっかくなので添削を。
(以下、引用元は http://d.hatena.ne.jp/hyoshiok/20070916)
> 並列に実行しちゃうことをOut of Order (OOO)実行とか言っちゃうのだけど、
in orderなスーパースカラというのもあるので、「並列実行=out of order」という訳では無い。
> Aレジスタの値が代入されてからBレジスタの値が代入されるなどという順序は、プロセッサは保証していないのである。(ああああ〜)
念のため。保証されないのは実行順序だけで、実行結果はin order実行であってもout of order
Re:惜しい (スコア:1)
ありがとうございます。
>> なのだが、Aレジスタが内部的にはN個あって、それぞれ処理が独立であれば並列に実行可能なので、並列に実行されて、機械語的には、プロセッサがよきにはからって、プログラマにその挙動が観測されるのである。この内部的なレジスタをよきにはからって実行することを register renamingなどと呼ぶ。
> register renamingはデータ依存性ハザードの一部を回避するための技術なので、処理が独立で並列に実行可能であればregister renamingの出番は無い。
先の例ではAレジスタに対する依存性があるので、register renamingの出番はないとはいえないと思いますが。
1+ "2: movl 0(%4), %%eax\n" // from -> eax
2+ "21: movl 4(%4), %%edx\n" // from+4 -> edx
3+ " movnti %%eax, 0(%3)\n" // eax -> to
4+ " movnti %%edx, 4(%3)\n" // edx -> to+4
5+ "3: movl 8(%4), %%eax\n" // from+8 -> eax
6+ "31: movl 12(%4),%%edx\n" // from+12 -> edx
7+ " movnti %%eax, 8(%3)\n" // eax -> to+8
8+ " movnti %%edx, 12(%3)\n"// edx -> to+12
略
つまりアーキテクチャ的にはEAXレジスタというレジスタにロードしたりストアしたりするのだけど、データフロー的には別々なので、別の内部的なレジスターにロードしたりストアしたりして、命令をリタイアするときによきにはからうと。
>> ループをアンローリングして、山のようにmov命令を繰り返すとそれに比例してスループットが上がるのが観測される。
> スループットが上がる主な要因はループアンローリングの効果であるところの条件分岐命令が減っている分だけ処理時間が減っている所であって、register renamingの影響では無い。
と言い切っちゃっていますが、同じレジスタにループアンローリングでロードしたりストアしたりしているので、これが同時実行されるためにはregister renamingでやるしかないと考えますが。それとも、そのようなロード、ストアはシリアルにやっているということを言ってますか?
Re:惜しい (スコア:0)
だからまあ、あの説明が間違っているのです(あるいは不適切)。指摘はあくまでもレジスタの読み書きに対する依存性がある場合に云々とは書いていないあの文章に対するものです。
> と言い切っちゃっていますが、同じレジスタにループアンローリングでロードしたりストアしたりしているので、これが同時実行されるためにはregister renamingでやるしかないと考えますが。それとも、そのようなロード、ストアはシリアルにやっているということを言