アカウント名:
パスワード:
> short loops of less than 64 instructions that use AH, BH, CH or DH registers as well as their corresponding wider register (e.g. RAX, EAX or AX for AH) may cause unpredictable system behavior
x64って、8080時代から拡張を重ねてきたレジスタ(HL→BX→EBX→RBXみたいな)を持っているけど、下から2番目のバイト(AH/BH/CH/DH)を特に挙げているのって何故だろう? AL/BL/CL/DLでは問題ないのだろうか?あと、レジスタ演算を多用して64命令以内でループしたらほとんど一次キャッシュに納まったまま実行されそうだけど、それが関係するんだろうか。あと、すこしオフトピですまんけど、x64の時代になった今でも(8080のHLレジスタの子孫である)EBX/RBXって高頻度で使用されるレジスタなんでしょうか?
ハイパースレッディングのために1個のコアは2セットの論理レジスタ(と大量の物理レジスタ)を持っているけど、1次キャッシュに収まるようなループで忙しくなるとどちらのスレッドでどのレジスタを使っていたか分からなくなって間違ったレジスタにアクセスしてしまうのかなぁと想像した。
とりあえずPC Watchが簡単にまとめて [impress.co.jp]いた。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲは一日にしてならず -- アレゲ見習い
何が起こっているのか解説希望 (スコア:0)
> short loops of less than 64 instructions that use AH, BH, CH or DH registers as well as their corresponding wider register (e.g. RAX, EAX or AX for AH) may cause unpredictable system behavior
x64って、8080時代から拡張を重ねてきたレジスタ(HL→BX→EBX→RBXみたいな)を持っているけど、下から2番目のバイト(AH/BH/CH/DH)を特に挙げているのって何故だろう? AL/BL/CL/DLでは問題ないのだろうか?
あと、レジスタ演算を多用して64命令以内でループしたらほとんど一次キャッシュに納まったまま実行されそうだけど、それが関係するんだろうか。
あと、すこしオフトピですまんけど、x64の時代になった今でも(8080のHLレジスタの子孫である)EBX/RBXって高頻度で使用されるレジスタなんでしょうか?
Re:何が起こっているのか解説希望 (スコア:1)
ハイパースレッディングのために1個のコアは2セットの論理レジスタ(と大量の物理レジスタ)を持っているけど、
1次キャッシュに収まるようなループで忙しくなるとどちらのスレッドでどのレジスタを使っていたか分からなくなって
間違ったレジスタにアクセスしてしまうのかなぁと想像した。
とりあえずPC Watchが簡単にまとめて [impress.co.jp]いた。