という事は承知しています:
より速いアクセス時間 >より高価
遅いアクセス時間>安価
また、レジスターが階層の最上位であり、アクセス時間が最も速いことも理解しています。私が研究するのに苦労しているのは、なぜそんなに高価なのですか?私の知る限り、レジスタは文字通り ALU に直接組み込まれた回路です。それらが文字通りCPUに組み込まれている場合(特にALU)、実際に最も高価になるのは何ですか?
それはサイズですか(もちろんレジスタは最小です)?
という事は承知しています:
より速いアクセス時間 >より高価
遅いアクセス時間>安価
また、レジスターが階層の最上位であり、アクセス時間が最も速いことも理解しています。私が研究するのに苦労しているのは、なぜそんなに高価なのですか?私の知る限り、レジスタは文字通り ALU に直接組み込まれた回路です。それらが文字通りCPUに組み込まれている場合(特にALU)、実際に最も高価になるのは何ですか?
それはサイズですか(もちろんレジスタは最小です)?
レジスタは非常に高速である必要があり、多くの場所から同時にアクセスする必要があるため、非常に高価です。
たとえば、ステートメント a = a + x; があるとします。b = b + x; c = c + x; すべて同じレジスタを読み取りたい 3 つの命令があります。したがって、レジスタは単なるメモリではありません。また、プロセッサ内に必要なすべてのデータ パスがあるため、x を保持するレジスタからの同じデータを同時に 3 つの命令に送信できます。また、データは非常に多くの場所に移動できます。double a = x; と書くと、x が整数の場合、レジスタ x を浮動小数点ユニットに送信するデータ パスが必要です。またはベクトル単位に。等々。
次に、データを保存する必要があるだけでなく、データが利用可能であることを確認する必要があるという問題があります。x = y + z; と書くと、a = a + x; 加算の結果が格納されるまで、最初の命令が実行された時点で x を保持するレジスタが現在有効ではないことを誰かが追跡し、2 番目の加算の実行を停止する必要があります。それは超高価です。
したがって、レジスタを構築するには、メモリを少し追加するだけでなく、それを支払う必要があります。また、レジスタはプロセッサの速度にとって非常に重要であるため、最も高価で最速のテクノロジを使用してそれらを構築しています。