しかし私の研究では、単語のサイズが の過去のものよりも小さく、徐々に増加していることがわかりました。
はい、非常に適切です。 Intelは、16ビットおよび32ビットCPU(それぞれ8086および80386プロセッサが最初のものでした)の先駆けとして、AMD64(別名x86-64または単にx64)アーキテクチャを開発しました。 Intelは80386で始まった32ビットx86アーキテクチャです。Intelはまったく新しいもの、IA-64アーキテクチャを作成しましたが、実際に誰もそれを使用していません。
私は大きな ワードサイズは1つのバスサイクル(それはバスを介し 一つの単語を転送するのにかかる時間)が長くかかることを意味するので、より大きなワードサイズは、常に良いではないと思われますか?
あなたのバスが輸送したいデーターと同じではないという前提で、これは正しいです。 16ビットバスで32ビットのデータを送信するには、実際には時間がかかります。しかし、64ビットバス上で64ビットデータを転送するには、16ビットバス上で16ビットデータを転送するのと同じくらい時間がかかります。
このため、ワードサイズはバスの幅と同じです。フォンノイマンマシンには3つのバスがあるので、実際にワードサイズとして定義するものについて何らかの論争がありましたが、通常はデータバスが意味されます。
したがって、ワードサイズが長年にわたって増加しているという事実は、技術の進歩によってもたらされます(関連:Moore's Law)。科学は進歩してより良い、より速いCPUを目指しています。
ここでは64ビットCPUがありますが、命令セットでは即値オペランド(リテラル)も64ビットとして扱われます。つまり、0x1
を64ビットレジスタにロードするには、最低9バイト(即値オペランド+オペコード)が必要です。アーキテクチャが64ビットレジスタに1つの符号拡張またはゼロ拡張バイトをロードする特別な命令を提供しない場合、これは明らかに不利になります。したがって、それを改善する方法、特に実行時間の増加を犠牲にしてコードサイズを縮小しようとする 命令セットが改善されました。
「最適なワードサイズ」はありません。アプリケーションと環境によって異なります。速度が必要なプログラムもあれば、サイズが小さくなければならないプログラムもあります。命令は非常に小さいので、それは「親指」と呼ばれていますなぜ私にはわからない
は、おそらく彼らはシンブルで収まります。
62ビット?そのことを聞いたことはありません。まあ、一つは、大きなワードサイズは、より広いアドレス空間にアクセスする能力を与え、ある程度命令の複雑さを増やします。 – babon
@babon Typo!ありがとう。 –