Von Neumann's architecture: how a modern computer is made
Have you ever wondered how and why our modern computers are structured the way they are and who and when thought to design them this way? This post will try to answer this question, trying to give a simple and quick explanation of how computer instructions work and make computers a really interesting tool. As you already could have imagined, catastrophic events such as wars will always bring forth magnificient tools for subdueing other people, that's what Von Neumann and other scientists such as Alan Turing had in their minds during world war II. John Von Neumann was jewish by origins and obviously hated germans' ideas about shoah. Infant prodigy, it is narrated that he could, being 4-5 years old, learn whole telephone books pages. Later in the years he became a chemistry student, mathematician and logician. His best contribution to the US army was the conception of modern computer architecture (don't forget that John Von Neumann was part of the Manhattan project too). Below is an explanatory image of Von Neumann's architecture:
As you can see the structure of a modern computer is quite modular: the CPU (Control processing unit), is the actual "brain" of the calculator: it is divided into different parts: we have the ALU (Arithmetical-logical Unit), which calculates numbers and finds out truth/false values (boolean variables), the CU (control unit), which manages all components in the CPU and whole architecture, a clock (which works at a certain frequency to dictate the CPU duty cycle), and various registers (IR, PC, etc.), and whose understanding will be clear later.
The CPU has only a little memory (which is contained in the registers mentioned above), but where does it take the information to elaborate? Here RAM (Random Access Memory) plays a key role. Semiconductor device, it is like a big grid or table whose single cell contains a byte (or piece of information). It is called "Random" because the information of a program or application is not always stored sequentially in the table but "randomly" all inside of it. Moreover, once the machine is shut down, all contents in the RAM will be lost (that's why we need a secondary, slower memorization supports [I.E. hard disks, solid state drives, compact disks and so on]).
We couldn't have a modern computer if we hadn't the possibility to put data from the external world and to see the results of CPU computations, that's what input/output devices are for. Keyboards, mouses, scanners, card readers etc. are a means for inputting data into the CPU, Monitor, Printer and many more are for showing results to the external world. So we have three key components: CPU, Memory and Input/Output devices. How do they communicate? That's what system bus is for. System bus is divided into other three sub-bus systems:
Data bus: it transfers the real computations data from the memory (RAM) to the CPU (or viceversa);
Adress bus: it transfers information about where data is stored or will be stored in the memory from the memory to the CPU (or viceversa);
Control bus: it transfers information from the memory to the CPU (or viceversa), about the successful (or not) completion of an instruction/operation.
Obviously input/output devices can communicate with memory and CPU via system bus: different input/output registers (such as PDR [Peripherical Data Register], PCR [Peripherical Command Register] and PSR [Peripherical Status Register] are placed on the extremity of bus lines, so that data flow will be consistent within all the components of Von Neumann's architecture. Now we have enough awareness to practically see in detail, in the next post, how a real computer instructions is executed in modern computers.
Thanks John Von Neumann!












