Some doubts about the Von Neumann Arcitechture chart

alt text

Well, I cannot understand the above von Neumann architecture diagram [Quoted from Wikipedia] and am not even sure if it is correct. Some obvious doubts I have are

How can an ALU interact with memory? Shouldn't it be CU Job?

How is the battery part of the ALU?

And what is the task of the battery?

+6
cpu computer-architecture von-neumann
source share
3 answers

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

For example, suppose the control unit simply retrieved the ADD $1234 command. Processing is then performed as follows:

  • CU places $1234 on the address bus and initiates a read cycle
  • the operand is received by the ALU (MDR register) and added using the battery (AC register)
  • the result of the addition is finally stored in the battery.

Answers to your questions:

  • ALU receives data from memory, performs operations and saves the result. At that time, all the data was stored in memory (there were no general registers), so it was logical to put the MDR in the ALU, which means that the ALU is supposed to be connected to the data bus.
  • The IAS computer was designed so that one ALU input and ALU output were connected to the battery. Therefore, it was logical to place the battery in the ALU.
  • The battery is perceived as a place to store intermediate results, since executing instructions with more than one memory operand was more difficult to implement.

Finally, I believe that this discussion is purely historical in nature. There is no particular reason to prefer binding the MDR to the ALU rather than to the CU. That is exactly what von Neumann thought when he wrote the paper on EDVAC. To make the story complete, Wikipedia says that EDVAC was actually designed by Eckert and Mauchly, while von Neumann only consulted and wrote.

+8
source share

A battery is a register where the result of an arithmetic operation is stored temporarily. This is faster than using the main memory directly. Since it stores arithmetic results, it makes sense to be part of ALU.

The control unit is similar to a coordinator that tells other components to do this and what. But this does not provide a means of how to do this, which is why the ALU needs to exchange data with memory.

+3
source share

Well, ALU changes the case of flags when it does something, so it is associated with memory (flags are not in CU and there are none in ALU, but since these are the only components that are shown.). The battery stores data temporarily waiting for the ALU to process it. It connected directly to the ALU, because it was believed that this register supports it with its calculations, just as the ecx register is connected to loop circuits. Of course, you can add ecx, edx, but slower. The choice of source and destination register is very difficult due to additional schemes necessary for implementation in the CPU, and it has recently been archived (relatively). This image is quite old (ssegvic is right!), Because it shows that input / output is possible only using a battery. In my opinion, this is more clear:

ALU is connected to the internal bus, but this does not mean that it will communicate with everything connected to it. Last: Searching for the best images, I noticed that ALU is not always associated with memory, in some of them it is associated only with CU.

+1
source share

All Articles