The Philosophy of Creation in Virtual Worlds - - Von Neumann System
The more we are accustomed to things, may often contain great philosophy, the more simple things, may often contain great wisdom.
Today we will talk about the von Neumann system that supports the entire computer virtual world, supports the entire Internet, and supports the foundation of the Internet Tech Giants we are familiar with, such as Tencent, Alibaba, Microsoft, and Google.
Let’s see how simple it is, but how great it is at the same time, and feel the philosophy together.
What is the von Neumann system?
We often say now that there are two worlds, one is the real world and the other is the virtual world. The real world is a product of nature and the masterpiece of the creator. It has endless laws, such as same-sex repulsion, opposite-sex attraction, universal gravity, The speed of light does not change, etc. But these laws are not made by us, they are only discovered by us.
The virtual world is different. We are the creators of the virtual world. The rules of the virtual world are made by us rather than discovered, and one of the most basic rules of this world is the von Neumann system.
When we look at information technology as a whole, it seems so inappropriate to describe it as a building that you can’t even describe it as “a city”, in fact, it’s more like a whole new world out of nothing: ** It’s the von Neumann system that created the virtual world out of nothing **.
In the words of Taoism, “Tao produces one, one life produces two, two produces three, and three produces all things.” This von Neumann system is this Tao, and the specific products of the information age that we usually come into contact with are these things.
Born to solve all problems
** The fascinating thing about the von Neumann architecture is that, in terms of requirements, it wants to solve everything. Solve everything that can be solved by “computation”. What a great and fascinating starting point **.
Where are the boundaries of “computing”? None of us can really say it today. Can computing solve the problem of “intelligence”? Will computers one day achieve the same intelligence as humans through computing power?
The rise of the artificial intelligence craze today proves that we are optimistic about this problem: computing will eventually solve the problem of intelligence. Although we can’t be sure when we will get there, it is gratifying to know that we have been making progress - if human intelligence cannot complete further evolution, then we will continue to advance, eventually approaching or even surpassing human intelligence infinitely.
Specifications of the von Neumann system
In order to achieve the goal of “solving all problems that can be solved by’computation '”, von Neumann introduced five basic types of components:
arithmetic units
Controller
Storage
Input devices
Output devices
Central Processor is what we usually call CPU, which integrates arithmetic units, controllers, etc.
The memory in the von Neumann system refers to the memory that our CPU can directly read. It refers to the memory, which is divided into two parts, RAM and ROM. Among them, ROM is read-only, that is, it cannot be changed after the appearance. It is used to store our BIOS, that is, when we press the boot key, the CPU will read the system start-up program from here, and RAM is what we usually call memory. For example, if the computer is stuck, you will say that the memory is not enough. It refers to this RAM.
The input and output device is our usual mouse keyboard display, etc., but we should pay attention to one point, that is our hard disk, U disk, in fact, for the von Neumann system, it is not a memory, but an input and output device.
How the von Neumann system solved everything
This section covers another core issue in the field of software development, requirements analysis.
But the solution to this problem is not just applicable to the field of software development, its thinking is more like philosophy, a philosophy of the information age, that is, when I encounter a problem, how do I analyze its solution.
For example, now, my need is that I need a mechanism that can solve all problems (now do you feel more the greatness of the von Neumann system? From nothing, and can solve everything, so it creates a virtual world from nothingness).
Let’s analyze it together.
First, the demand can be roughly divided into two parts, one is the changing demand and the other is the stable demand.
The point of change in demand for this problem is that the problems to be solved are all-encompassing. How to support such changes with some stable but scalable architecture? On the other hand, the stability of demand is that the core capabilities of the computer are fixed, how to express the core capabilities of the computer?
We take a coincidence, we all know that the computer is also called the computer, what is its core capability?
What is calculation? It is to change one input into another output, just like our function in mathematics. In fact, what we usually encode is also called function.
At this point, we have analyzed it, and we need a place for calculation, which is called an arithmetic unit.
Next, the second question, the input and output of our function can be any data, text, pictures, videos, etc. For computers, they are all binary, but we have given binary a special meaning through a series of means, such as 110… 110 this binary, let Notepad read a piece of text, let iQIYI read a video.
We can abstract the function as:
1 | y = F(x) |
** The second question comes, where are x and y **, which leads to the design of ** memory **.
Then there is how F is expressed, and whether F can express everything is the key to whether it can solve everything.
Logically speaking, no matter how complex a custom function is, it can be defined by combining the following elements:
Built-in functions such as integer or decimal operations (addition, subtraction, multiplication and division, sin/cos, etc.);
Loops and conditional branches;
Sub-functions (also custom functions).
In this way, for any specific calculation (custom function), it can be expressed as a set of instruction sequences.
So where is function F physically? It is stored in the storage in the form of a sequence of instructions. So, the storage not only stores the data to be operated on by the calculation, but also stores the “calculation” itself.
And this is also a great innovation of the von Neumann system, because before this, functions could not be stored in previous computer systems.
However, the “calculation” stored in the storage is only data, and someone needs to understand and execute the calculation behavior behind the data before it becomes the real “calculation”. This executor is the Central Processor (CPU).
It supports many computational instructions, including executing built-in functions, loops and conditional branches, executing sub-functions, etc. This requires the use of a controller to help us execute stored instructions.
It’s just that if the computer only has “Central Processor + Storage”, then it is like a person with only a brain and no limbs and five senses. Although it may be very intelligent, this intelligence cannot be displayed because it cannot interact with the real world.
Interaction, in the abstract, is input and output. For humans, input depends on the five senses: eyes to see, ears to hear, nose to smell, tongue to taste, and touch produced by skin contact. Output depends on language (speech) and various movements such as smiles, winks, frowns, gestures, and so on.
The input device can be a mouse and keyboard, it can also be a touchpad, a camera, etc., as long as the information is streamed to the computer, even if it is an input device.
Output devices can be screens, speakers, lights, printers, etc.
That is to say, in addition to pure “computing” power, the Central Processor also has “data exchange” capability (or IO capability). Ultimately, the computer can be seen as consisting of “Central Processor + Storage + a series of input and output devices”
What is the fundamental solution to the problem of input and output devices? It is the infinite possible expansion capability of computers.
Summary
In order to create a world out of nothing, we must make this world capable of solving all problems.
To solve everything, it is necessary to abstract all problems into the most basic problems. These basic problems are stable places, and the change lies in how to use these simple problems to combine a rich world and describe a rich world
The way to solve all problems is to abstract them into functions y = F (x).
This is similar to the real world. To solve a problem, we need to know what we have, this is x, what we want, this is y, and F is how we use what we have to get what we want.
X and y in the real world have their own material carriers, and the virtual world also has them, so there is a ** memory **.
The real world F is our way of doing things, this method may be a lot of small steps to complete the combination, in the virtual world, these small steps are simply addition and subtraction, we need ** arithmetic unit ** to do these things, and we need to do these things in order, so we need ** controller **.
Ultimately, in order to make our expressive abilities richer, we need more colorful input and output devices to describe our world, to describe our different problems, is that input devices convert real-world information into binary to memory, the CPU reads binary calculations from memory, and then returns them to memory, and finally the output device interprets these binaries as real-world information.
The whole problem is not just von Neumann’s system, but also how to conduct demand analysis.