ALUはすべての命令に使用されていますか?


1

フォン・ノイマン・アーキテクチャーに関するウィキペディアのページにこの写真があります。同様の写真がたくさんあります。(Von Neumann Architectureに関する多くの記事でも、ALUだけがプログラムを実行します。)ALU(I / O)には2つの矢印があり、I / Oには矢印がありません。コントロールユニットへ。(一部の写真には、メモリからALUへのデータバスのみを表す矢印があります)。これは私を混乱させます。CPUには命令をフェッチするコントロールユニットがあり、そのリソースを使用して実行することを理解しています。そのため、たとえば、ある場所から別の場所にデータをコピーするだけの命令(mov)、またはCPUに命令ポインターを特定の値(jmp)に設定させる命令、またはIRQがある場合、ALUは使用されません。フォンノイマンアーキテクチャは、数学演算のみを実行するコンピューターでのみ適用されたため、入力と出力は両方とも数字のみを表していたと思います。入力はメモリを変更できませんでした(ALUにのみ接続されていたため)。そのため、最新のコンピューターアーキテクチャは、命令とデータが同じメモリに格納され、CPUにはコントロールユニット、一部のレジスター、ALUが含まれることのみが継承されます(これも基本的なもので、最新のCPUにはこれ以上のものが含まれます)。私は正しいですか?


はい、フォンノイマンのような単純なモデルでは、すべての命令はALUによって実行されます。混乱の原因は、入力と出力がレジスターであり、入力レジスターを読み取る要求自体が命令であるためであるため、命令のみが入出力レジスターと対話する場合、ALUのみがそれらを使用する必要があります。CUはALUをフェッチしてALUにINor OUTまたはSTOor LDAに伝えますが、ALUは実際にそれらを実行します。
フランクトーマス

分かりません。命令のみがI / Oと対話する場合、ALUのみがそれらを使用する必要があるのはなぜですか?
PcAF

CUは命令INをフェッチして500にデコードし、ALUに送信します。ALUは入力を読み取り、計算機レジスタに配置します。これを行うには、CUは入力レジスタにアクセスする必要がなく、命令をフェッチしてデコードするだけでした。ALUは実際にデータを移動しました。次に、CUは命令をフェッチし、STO 99それを299にデコードし、ALUに送信します。ALUは計算機レジスタの値を取得し、mem addr 99に配置します。次のCUフェッチadd 001により、ALUは計算機レジスタを確認します。最後にOUT、ALUはcalc regをoutにコピーします。
フランクトーマス

LMCでの実際の入力は、RAMに命令をロードするのと同じように、見ている画像の外側にあることに注意してください。CUもALUもそのプロセスに関与していません。また、命令ポインタはALU内で管理されるため、プログラムフローを制御する命令もALUによって実行されることに注意してください。
フランクトーマス

1
@FrankThomasしたがって、この質問への答えは次のとおりです。正確なフォン・ノイマン・アーキテクトの場合はYESですが、現代のCPUの場合はNOです。私は正しいですか?
PcAF
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.