The Nub of Computation
Part of the article “Advance into the Past”,
Wireless World, January 1984, p59
The heading if this section [of the article] is purposedly inappropriate, to illustrate the problem at the very start. The ‘computer science’ discipline has come to think that is objective is ‘computation’, ‘information processing’ or some such. This is not true, or alternatively, if it is true, then ‘computer science’ is getting in the way of a much more important discipline, which is the application of technology to society’s needs.
In our society or culture, certain historical necessities arise. It is usually thought that whether or not a certain development was a historical necessity is proven after the event by whether such a thing in f act came to pass. I think this is wrong., For instance, the wheel and axle was clearly a historical necessity in both Europe and the Americas, and the fact that the natives of America never used the wheel and axle does not prove that it was not a historical necessity.
Our society may well avoid historical necessity in the development of computer science, but that does not in my opinion negate the fact that what follows is a historical necessity.
The proper objective for computer science or digital electronics is to apply technology to meet human and sociological needs. (This is a quote from my 1969 New Scientist article http://www.electromagnetism.demon.co.uk/nsc1969.htm ). I would probably limit the broad range of application to physical, not intellectual, needs.
Any physical situation which our technology can usefully be applied to will be a multi-dimensional array of values which need (a) analysis and (b) manipulation. Digital electronics won over analogue twenty years ago, I believe for ever, and so our machinery needs to contain a digital analogue or reality, and in fact always does so. One measure of the elegance of our machinery, and probably of its efficiency and simplicity is the ease with the analogue in our machine maps onto the reality of which it is the analogue. The design of an elegant (and also one suspects efficient) machine requires of the designer knowledge of the physical reality which is the target of our machine; of the nature of data manipulation and computation; and of the physical nature of the machine.
Since the ideal seems to be a machine which can be regarded as a physical analogue of reality, and the closeness with which the machine’s structure and information mimics the physical reality, the ‘computer scientist’ must have competence in all fields above.
The problem is that today, programmers, calling themselves computer scientists but having no competence in anything except the second (with perhaps a little competence in the first), think they can usefully contribute to the design and development of our future machines.
A second measure of the elegance of our machinery is the degree to which changes in the physical reality we are mimicking (or recording) in our machine can be easily effected in our machine. This is why a machine is very bad if it does not have content-addressable memory, and in fact it needs more than that. It needs processing capability in situ in the memory. This is because values or parameters in physical reality change in situ, influenced only by parameters which are physically nearby. This leads to the next requirement of a good machine, which is that since in physical reality there is no action at a distance but all interaction is local, our machine should have superior (or even only) interaction capability between values (vectors, scalars, etc.) which relate to physically close points in the physical reality. Further, it appears that the ability to effect interaction between values which relate to points which are physically distant in reality may not be necessary at all in our machine, although this is pushing the point rather far.
A further requirement of our machine is that updating, or interaction, capability between points in physical reality and the related points in our machine where the digital analogue of that region of physical reality is stored, should be as efficient as possible.
The task of our machine architect is to exploit the potential of his technologies to meet these requirements. I believe I have done the best compromise in the Property 1a invention [later superseded by Kernel], but it is not ideal, considering the above criteria. The above criteria are not merely a post hoc rartionalization tending to show that my architectures are the best.
From the point of view of the above analysis, the reigning computer architecture theorists are doomed to failure. They (e.g. Petri nets) concentrate on the mechanism of computation in the machine, the bottom horizontal lines between a and b [in the diagram, missing in www version].
However, this has no value if the thinker does not bear in mind the dualism; that the arrows between a and b are a reflection of arrows between A and B; that computation only has value to the extent that it mimics events which occur in the real world. (This relates to my statement in the fourth paragraph above that the ‘broad range of application’, by which I mean the main field of application for our machine, and therefore the paradigm which should control their architecture, is directed towards practical rather than intellectual applications.