cpucpu-architecturevon-neumann

Some doubts regarding diagram of Von Neumann Arcitechture


alt text

Well I cant understand the above diagram of Von Neumann architecture [Cited from wikipedia] and not even sure whether it is correct. Some obvious doubts that I have -

How can ALU communicate with Memory? Isn't that supposed to be CU's Job?

How is accumulator a part of ALU?

And, What is exactly the job of accumulator?


Solution

  • Judging from the diagram of the IAS computer (which should be pretty similar to EDVAC, the computer von Neumann wrote about) the control unit provides addresses (register MAR) and controls the bus transactions with signals such as AS, R/W*. On the other hand, ALU is connected to the data bus (register MDR): it receives the data from memory and stores back the results. The diagram also shows that ALU receives the instructions and forwards them to the CU (register IBR).

    For example, suppose the control unit just fetched the instruction ADD $1234. Then the processing proceeds as follows:

    1. CU puts $1234 onto the address bus and initiates a read cycle
    2. the operand is received by ALU (register MDR) and added with accumulator (register AC)
    3. the result of addition is finally stored into the accumulator.

    Answers to your questions:

    1. ALU receives the data from memory, perform the operations and stores back the result. At the time all data were stored in memory (there were no general purpose registers), hence it was logical to put MDR in ALU, which means that ALU is supposed to be connected to the data bus.
    2. The IAS computer was designed in a way that one ALU input and the ALU output are hardwired to the accumulator. Hence it was logical to place accumulator in ALU.
    3. The accumulator is conceived as a place to store intermediate results, because having instructions with more than one memory operand was more difficult to implement.

    Finally, I believe this discussion is purely historical. There is no particular reason to prefer associating the MDR with ALU rather than CU. It was just that von Neumann happened to think that way when he was writing a paper about EDVAC. To make the story complete, Wikipedia says that EDVAC was actually designed by Eckert and Mauchly, while von Neumann only did consulting and writing.