CAN TURING SYSTEMS MAKE VON NEUMANN OBSOLETE?
excerpt from the newsletter HPCwire
June 20, 1997
Compiled by Norris Parker Smith, editor at large
Is a Turing-style computer possible? If so, would the von Neumann computing strategy become obsolete -- and, with it, many of the burdens that are now familiar, including complex, verbose operating systems and applications?
Bernard A. Hodson, president of GENETIX Software, Inc, and an adjunct professor of computer science at the University of Ottawa, says that the Turing concept is feasible. Furthermore, he has developed a solution based on super-compact "software genes" that implements the concept.
The document that follows, quoted in full, could be a systematic hoax, a truly revolutionary idea, or something in between that might nevertheless stimulate thought about assumptions and practices that are now taken for granted.
THE VON NEUMANN MACHINE VERSUS THE TURING MACHINE
by BERNARD A HODSON
The history of computing has indicated two principles, one developed by Von Neumann, the other by Turing. Many current practitioners have said that the Turing machine can never be built. This paper argues that those practitioners are wrong and that a Turing Universal machine can be built, and in fact one has been built which works very well. Its implications are far reaching.
The philosophy of Von Neumann indicated that a computing machine, as interpreted by his contemporaries, should be such that it should modify a set of instructions contained within the machine, and that this was the only way in which a computing engine could be built. This meant that all programming had to be internal and has led to the awful software mess we have today, requiring ever more increasing resources before even one application is developed or run.
As an example we have millions of computers storing the 191 million bytes of that resource wasting Office 97, of which only a few percent will ever be needed by most users, the same for Windows 97 and the various office suites. What a terrible, obscene use of resources.
The Turing approach indicates that it should be possible to develop a machine which can do any type of information processing problem assigned to it. In this approach only one computer program, in the Von Neumann sense, is needed to not only develop but also run any and all applications. With this approach no operating system is needed because the main function of an operating system, to be a traffic policeman to manage the huge resources and multiple languages, is no longer required.
'Genes' enable supercompact software
Such a Universal system has been built and, using the concept of the 'virtual machine' along with a set of 'software genes' the Turing Universal machine has been proved to be not only feasible but also very practical. Remarkably the resource requirements for this Turing machine are very small. With the current implementation it requires only 2k bytes of conventional code, in the Von Neumann sense, and only 26k bytes for the set of 'software genes' developed to date. This is the ONLY code needed for whatever application is developed, the code also running the developed application along with any other applications that are needed. The 'software genes' are used in a similar sense to human genomes, building a large number of applications from a small and finite set of 'software genes'. The present implementation has so far developed about 600 of these 'software genes'.
The applications developed with the set of 'software genes' are themselves quite tiny, taking only a few dozen bytes for application which, with the Von Neumann approach, take tens and hundreds of thousands. For the moment it can, and does, interface with an operating system, but only for access to drivers.
Turing concept is unstructured
The Turing Universal machine has many advantages over the structured languages which are needed for the Von Neumann concept, such as JAVA, FORTH and C++, as the Turing concept is unstructured. With the structured approach you are stuck, once the limits of the structure have been reached. With the Turing machine all you do is develop a new 'software gene' and insert it in the 'software gene' database. The approach cuts significantly development time, virtually eliminates maintenance costs, and enormously reduces the resource needs of disc and memory.
What can the early version of the Turing Universal machine do? In fact quite a lot, as will be illustrated.
It can read and write any peripheral, do a variety of database work, word-processing, graphics, telecommunications, data mining (single unit or later in parallel), search remotely located data, high accuracy mathematics (128 digits or more), simple animation, shortly CDROM multimedia, and much more. All this is done with a Turing Universal machine requiring 2k bytes of Von Neumann style code and a small 'software gene' database of 26k bytes. The Von Neumann approach for all this activity takes many millions of bytes.
Start small with radical concept
The concept is so radical to the industry that it will have to be introduced carefully and marketed with expertise. To this end it is suggested that the initial thrusts be in areas in which the concept can be exploited, gaining industry acceptance with easy to implement developments. These are suggested as follows:
- Smart cards, in which The Universal machine concept can make the card almost equal in capability to existing computers, with the entire system being placed in the secure area of the card. Instead of being only able to do one or two applications on a card it will be possible to place many applications on the same card.
- Embedded systems, both the mass market of cars and appliances, and the dedicated, (but less voluminous), market. Embedded systems make up over 90% of all microprocessors sold (in volume not in dollars). They are what control many of our automobile functions, our microwaves, our remotely controlled television, handicapped wheelchairs, automated toll booths and such. These embedded systems will be able to handle many more applications simultaneously than they do now.
- Applications developed with this approach are so small (dozens of bytes rather than tens of thousands) that the 'software genes' they use can be transmitted in a few seconds, requiring very little bandwidth. This means that servers can be set up, (or else use spare switching capacity with the telephone or cable companies), or else use Internet, to rent out applications.
In this respect the software genes can be encrypted and sent with an encrypted time token, to be rented at very low cost, increasing enormously the availability of applications to users and reducing their need to buy application packages. Because of the small footprint only a minute or two of connect time is needed, reducing the telecommunications bottleneck on the Internet, or whatever communication path is chosen. This capability has already been developed, except for the encryption, and can be demonstrated. The encryption adds only a few seconds to the transmittal time.
Data mining and bypassing operating systems
- Another application very easy to implement, and currently being worked on, is that of data mining, in which the Turing Universal machine is placed as the front end to a CDROM server, and where multiple searches can be done in parallel. In fact, with this approach it is possible to establish very large databases and have them accessible from anywhere in the world.
- The Turing Universal approach can be placed on a CDROM, along with the peripheral drivers, and completely bypass the operating system, such as is done with several computer games today. There are some fundamental changes needed for which this approach can act as catalyst. For one thing no computer languages are needed, and there will shortly be no need for any operating system requirement. This obviously will have some impact on university and information technology courses, these needing to be replaced by courses on algorithms (or how to solve problems).
Turing on a chip - and in a telephone
Application development is so simple with this approach that such application development will be very boring to those who enjoy conventional programming. However, considering the scarcity of software engineers, the Turing approach should help alleviate this shortage of talent around the world.
Even more than that is the future potential. The Turing system takes up so little resource that it can be made into a chip or into 'firmware'. Initially being placed in simple network and cheap computers, along with the handheld variety, there is also no reason why the entire system could not be placed in a standard or mobile telephone, in which case we already have a worldwide network far greater in extent then anything being offered by Internet. In this case computing power becomes as standard as switching on the light or making a telephone call, with a similar charging structure, which is already available.