So far, we have looked at a broad selection of the ideas that have been used in the past to make more powerful computers.
As it has been envisaged that these ideas would be applied to a computer on a single chip, a major limiting factor in the speed at which computations can be carried out by such a chip is the speed at which information can be exchanged between that chip and external random-access memory.
This has been dealt with, up to this point, by placing some memory internal to the chip, either in the form of cache memory, or as large banks of registers, and having the computer do as much as it can with that memory, between references to external memory, and by reducing the amount of memory bandwidth needed to supply a program to the chip, both by making the machine language efficient and by providing numerous alternate modes of operation, so that one may be found suitable to any given type of problem.
The problem of bringing data to where there is processing power can also be addressed in the more direct fashion of bringing the processing power to the data. This section deals with some ways in which this might be accomplished.