1 word やポインタサイズは 64-bit になると倍になるかもだけど、命令のデコードの時間がそれに依存するわけじゃない(どちらかというとメモリの効率性が変わる

@orumin ありがとうございます。ちょっとよくわかっていないのですが64bitの1命令が32bitで収まるのなら別ですが、1命令が32bitをはみ出しているのなら64bitを32bitに翻訳する命令を必要で、その作業よりもRAM(32bitの2命令=64bitを1アドレスに収めることは可能なのか?)の速度がより影響するってことなんでしょうか

Follow

@uy 質問に答える前にまず根本的に CPU の命令設計に対する誤解があるような気がします。64-bit を 1 word とする CPU が 1 word の命令長の命令列を実行するのにわざわざ 0.5 word の命令 2 つと解釈して処理する、みたいなことは普通ないと思いますが……。

· · Web · 2 · 1 · 1

あー、大変申し訳無い。32bit CPUで64bitのソフトウェアを解釈するものだと勝手におもっていたようです(普通にありえない)。

@uy 私なりに誤解されてそうなところを推測して解説を加えますと、CPU は 1 word (1 語)を最低単位として、word を組み合わせて表現する命令を処理する機械になります。とりあえず Intel CPU を題材に、これに限って言うのであれば、32-bit の Intel CPU はそもそも 1 word が 32-bit なので、1 word の長さの命令は 32-bit、2 word の長さの命令は 32-bit × 2 ゠ 64-bit、となります。(続

@uy 承前)それで、Intel の 64-bit CPU、となりますと、そもそも 1 word 自体が 64-bit に拡張されていますので、1 word の長さの命令は 64-bit、2 word の長さの命令は 64-bit × 2 ゠128-bit、となります。

@uy ふつう現代の CPU は word 単位で処理しますので、Intel の 64-bit CPU というのは、決して 32-bit を 1 word とする CPU の上で擬似的に 64-bit = 1 word の CPU を再現するようなことはしません。それは単に 32-bit CPU 上でソフトウェアエミュレーションによって 64-bit CPU を実現するようなものかと思います。

@orumin 私が文脈読み違えて64bitの命令長を強引に32bit命令長に変換し直すと解釈していたので、一旦翻訳し直さないといけないんじゃないか(だから結果として遅くなるのではないか)と勘違いしておりました…。ご指摘ありがとうございます。

@uy なるほど、どのように行き違いが生まれていたのか得心が行きました。

Sign in to participate in the conversation
:don:

The place to express your ❤️ more freely. / あなたの「すき」をもっと自由に書き表すための場所。