Monday, August 3, 2020

Von Neumann Architecture

from Google

"The von Neumann architecture—also known as the von Neumann model or Princeton architecture—is a computer architecture based on a 1945 description by Hungarian-American mathematician and physicist John von Neumann and others in the First Draft of a Report on the EDVAC."

Just finished a blog post that tries to raise awareness to the general public that the very weird intriguing architecture of some prominent buildings in Seattle may have something to do with Japanese traditional architectural elements which post ended with the (in)famous kuji-in grid. The other day i plainly wrote something about von Neumann architecture, and having all these three things in my recent memory a fresh idea occurred. What if...

But first, an introduction to von Neumann architecture. Not reading anything, from my understanding only. It is based on a matrix or a grid of binary data deemed as memory. Intersection of each row with the columns represents data (or instruction, read bellow). Rows are called addresses. The columns exist physically as an equal number of wires (usually 64) which can carry each binary information, that is 0 or 1 materialized as 0 volts and 5 volts, called data bus, while the rows which are much more numerous (4 billions) can be activated by a similar or half size (width) address bus (usually 32 wires at current time) that carry again binary information which is not applied directly to the matrix but decoded and so it can activate (for read or write) only one row (address) out of 4 billions at a time (4 Gigs, 64 bits, sizes most common). At the intersection of each row and column there is a small electronic circuit called a cell that can memorize last voltage applied to it and yield that voltage when the row is activated.

Both buses end in the processor (CPU, Central Processing Unit).

Data is read or written in memory by the processor by simply formulating an address (a combination of zeros and ones on the address bus) and then supplying or retrieving the combination of resulting zeroes and ones on data bus. This type of memory or the working memory of any computer is called RAM (Random Access Memory, quite a confusing acronym which actually means that RAM memory can either (randomly) be written or read).

Now the most confusing part. Programs themselves represent a succession of binary numbers written in RAM memory line after line or address after address that can be decoded by CPU as instructions (machine code) or data. As per Von Neumann architecture we have thus in computer's memory both instructions and data to be processed using the instructions. The CPU knows which is which by sequence only. That is after it first reads an instruction, that instruction tells the processor what follows and if it's data, how long. RAM memory is volatile. It means that at startup of the computer there's nothing in it. A certain program has to be loaded by the CPU line by line from a more permanent memory (disk, SSID), and then processor starts reading sequentially that program from the very beginning executing instructions and using data.

Processors are much more complicated than this "external" architecture but what is important is that if they read an instruction, a certain number of circuits inside the processor are activated and execute that instruction which most of the time involves processing data on the addresses following that instruction.

Here is from Wikipedia a working schematic of a 4 bits wide memory with 4 addresses coded on a 2 bit bus. All RAM memories are similar except for size. Each cell can memorize a voltage of either 0 or 5 volts (actually ranges around those voltages) that is applied to. There is also a selector for read or write that i did not talk about.

All circuits inside a CPU that are activated by instructions are made by so called gates. That is small circuits with a few transistors each with two inputs and one output that are capable of executing instructions equivalent to basic binary operations like addition, multiplying, etc. again by processing voltages of 0 or 5 volts. (AND gate, OR gate, etc.). Because operations are binary they are also called logical operations (with only two possible outputs, 5 volts for true or 1 or 0 volts for false or 0).

Here is an AND gate schematic using two transistors in switching mode.


And 4 basic gates symbols and tables of truth

All these things are well known to computer engineers and everybody who took some electronics in a technical college like myself. What prompted me to write this is the analogy with the kuji-in grid from ninjutsu, the concept of mind gate also in ninjutsu and gate as an architectural unit in the landscape of Japan. Could those have been the source of inspiration for von Neumann?

We all heard nowadays of the word transistor. Very few outside the body of specialists know what it means. I guess fewer these days where everybody is more on social networks than following hobbies and are more enthusiastic about numbers, speed and size then the actual working principle.

We may have heard that newer computer processors have more and more transistors (while speed somehow got stuck @3 GHz). Hundreds of thousands per processor (core) is not uncommon at mid range prices. That is because more and more operations turned from sequential as in von Neumann architecture to parallel processing, that is more operations per instruction, requiring more circuitry thus more transistors. Instructions or machine cycles process whole blocks of memory data at the time due to a relatively newer component call DMA (Direct Memory Accessing) allow a more efficient use of memory. Multiple processors also allow more parallel processing. Nowadays overwhelming majority of computer processing is data transfer as opposed to math calculations.

But what is a transistor. Again, first described by an (Austro)-Hungarian scientist in 1926 and not realized until much later, it was a much sought for replacement for old vacuum tubes in early electronic devices. The holy grail of electronics if you want. An early superheterodyne radio contained 6 or more of those tubes also called valves.
Prototype Armstrong superheterodyne receiver 1920.jpg
But valves were big, fragile and required extra power to heat up by a filament.

Their main function was amplifying of a weak signal like those carried by radio waves into a strong one that could be heard in a speaker.

Transistors are done with semiconductors instead of vacuum. What is essential is there are two circuits. A weak signal circuit or input and a strong current circuit called output.

One single compact small transistor was replacing one valve and was solid and required no filament power. However there are power losses when transistors work as amplifier (output circuit is basically shorted to the ground through a resistor where there's no signal). That power loss has to be evacuated as heat with a radiator like in most stereo systems.

MOSFET transistors that are build by etching a single silicon crystal in the hundred of thousands to make computer chips have basically three terminals. Source, Gate and Drain. Question.  How many gates (both logical and semiconductors terminals) do you have in your octo-core smartphone processor (not counting the display, memory and other components)?

No comments:

Post a Comment

Friendly comments welcome

Note: Only a member of this blog may post a comment.