6

代替テキスト

上記のフォン ノイマン アーキテクチャの図 [ウィキペディアから引用] を理解できず、それが正しいかどうかさえわかりません。私が持っているいくつかの明白な疑問 -

ALU はどのようにメモリと通信できますか? それがCUの仕事じゃないの?

アキュムレータはどのように ALU の一部ですか?

そして、アキュムレータの仕事とは正確には何ですか?

4

3 に答える 3

8

IAS コンピュータの図(EDVAC とかなり似ているはずで、フォン ノイマンが書いたコンピュータ)から判断すると、制御ユニットはアドレス (レジスタ MAR) を提供し、AS、R/W* などの信号でバス トランザクションを制御します。一方、ALU はデータ バス (レジスタ MDR) に接続されています。ALU はメモリからデータを受信し、結果を格納します。この図は、ALU が命令を受け取り、それを CU (レジスタ IBR) に転送することも示しています。

たとえば、制御ユニットが命令をフェッチしたとしますADD $1234。その後、処理は次のように進みます。

  1. CU が$1234アドレス バスに配置され、読み取りサイクルが開始されます。
  2. オペランドは ALU (レジスタ MDR) によって受信され、アキュムレータ (レジスタ AC) と加算されます。
  3. 加算の結果は最終的にアキュムレータに格納されます。

質問への回答:

  1. ALU はメモリからデータを受け取り、演算を実行して結果を保存します。当時はすべてのデータがメモリに格納されていたため (汎用レジスタはありませんでした)、MDR を ALU に配置することは論理的でした。これは、ALU がデータ バスに接続されることを意味します。
  2. IAS コンピュータは、1 つの ALU 入力と ALU 出力がアキュムレータに配線されるように設計されています。したがって、アキュムレータを ALU に配置することは論理的でした。
  3. アキュムレータは、複数のメモリオペランドを持つ命令を実装するのがより困難だったため、中間結果を格納する場所として考えられています。

最後に、この議論は純粋に歴史的なものだと思います。MDR を CU ではなく ALU に関連付けることを好む特別な理由はありません。フォン・ノイマンが EDVAC についての論文を書いていたとき、たまたまそのように考えただけでした。話を完全にするために、ウィキペディアによると、EDVAC は実際には Eckert と Mauchly によって設計されましたが、フォン ノイマンはコンサルティングと執筆のみを行いました。

于 2010-11-15T22:37:19.757 に答える
3

アキュムレータは、演算結果を一時的に格納するレジスタです。メインメモリを直接使用するよりも高速です。算術結果を格納するため、ALU の一部であることは理にかなっています。

コントロール ユニットは、他のコンポーネントにこれやあれを行うよう指示するコーディネーターのようなものです。しかし、それを行う方法を提供していないため、ALU はメモリと直接通信する必要があります。

于 2010-11-09T16:14:27.900 に答える
1

ALU は、何かを行うときにフラグ レジスタを変更します。そのため、メモリに接続されています (フラグは CU にも ALU にもありません。表示されているコンポーネントはこれらだけなので..)。また、アキュムレータは、ALU が処理するのを一時的に待っているデータを格納します。ALU に直接接続されているのは、ecx レジスタがカウンター回路に接続されているのと同じように、このレジスタが計算でサポートすると考えられていたためです。もちろん、ecx、edx を追加することは可能ですが、遅くなります。CPU に追加の回路を実装する必要があるため、ソース レジスタとデスティネーション レジスタの選択は非常に難しく、最近 (比較的) アーカイブされました。そのイメージはかなり古いです (ssegvic が正しいです!)。これは、アキュムレータを使用してのみ入出力が可能であることを示しているためです。私の意見では、これはより明確です。

ALU は内部バスに接続されていますが、接続されているすべてのものと通信できるわけではありません。最後に 1 つ: より良い画像を探していると、ALU が常にメモリに接続されているとは限らず、一部の画像では CU のみに接続されていることに気付きました。

于 2010-12-01T15:15:05.367 に答える