Topic: Architecture of computing systems
The modern concept of architecture of computers was generated in the middle of the last century and since then is applied almost everywhere. Really, now it is possible that any computing system is that other as a combination of the active computing unit (the processor, the controler) and passive storage in which it is normal in one heap are piled both programs and the data. To this indestructible unity of the controler and storage various exterior devices with which help the system communicates with an external world are added. By such principle practically all today is arranged - from the controler of a coffee maker to management system by spaceships. The similar architecture seems absolutely natural and even it is difficult to think that it could be absolutely another.
However, if to ponder, it becomes clear that it is the most unnatural architecture what only could be invented. For example, why the processor should be one? Actually, very quickly the mankind came to that it and should not be one - systems with several processors began to appear. However, here problems also began. The matter is that this architecture in essence one-continuous - one processor - one storage. Attempts at first to launch some flows on one processor, and then also on several processors simultaneously, but with the general storage, quickly began to lead to the strong complication of all computing system - and iron and the software - here and mechanisms of switching of flows and processes, and necessity of support of the coordinated access to the general storage and other resources. However, anybody also did not think that the main problem here in the basic restriction of architecture. But the added concept already took hold by then of minds and to break it dared nobody.
In my opinion, the majority of the described can be solved creation of new architecture of the computing system, initially parallel. I now also will show a sketch of such architecture.
Principal element of new system is the computing matrix - the multidimentional grid consisting of a large quantity, tens and hundreds millions connected with each other of primitive elements. Each of these elements consists of two parts: an unit cell of the storage, capable to store one number and the elementary logical unit (the adder, the animator, the inverter etc.). Each primitive element can read number from a cell of storage of adjacent elements - these numbers are element inputs. One of inputs - the managing director, others - inputs of the data. On each step the element can fulfill one or the other actions depending on a state of a controlling input - it can or fulfill the logical action over the operands received from inputs of the data and to save result in the cell of storage. Or can do nothing.
The program for such computing system represents consists of several parts. In the first it sets a configuration of a subgraph of the computing matrix demanded for performance the program. In the second - starting values a cell of storage of all primitive elements of the selected subgraph. In the third - for each cell sets exterior conditions of modification - for example, for the specific selected cell can be specified that it should appropriate zero value as soon as it reaches certain value. At program load in a matrix the loader should find isomorphic to the graph demanded by the program the free subgraph of a matrix, to initialize values of elements and to launch a subgraph on performance.
It is easy to see that such system is initially parallel - even concept of a step of the program for it not so obviously, as for traditional architecture. Besides, the concept of a flow of execution for it is senseless - there is a new concept of the active subgraph of a matrix, with the program. And time is not present any flows and processes there is no also a problem of synchronization and other threading problems.