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