After personal computers arrived in the 1970's they went through a series of revolutionary changes delivered by a series of different platforms. It's been over a decade since we've seen anything truly revolutionary, will we see a revolution again? I believe we could not only see revolution again, we could build it today.
Permalink for comment
To read all comments associated with this story, please click here.
Most of today's computer systems all have 1 thing in common: they are programmed to do something with data. There is data, and one or more CPU's eat through streams of instructions, telling them what to do with that data.
Example:
(1) take one data element
(2) perform some operation on that data
(3) place modified data back into storage
(4) repeat (1) to (3) over and over, going through all data
Call them instruction-stream centered. In my vision the next big step: there is data, and all the programming does, is re-configure the way in which streams of data are processed. Call that: data-stream centered. The FPGA is a good example of how this works.
Example:
(1) configure what path data comes in, what operation is done, and along which path data should go out
(2) wait until all data has passed through the hardware
This is much more energy-efficient, and hardware to do this, exists (and is used) today. In my view the real problems are not building this hardware, but the software to control it. Think operating system, programming language design. Way more difficult than putting the IC's together.
I am convinced though, that the simpler the essentials become, the more useful they are in building complex systems. So the way to go: RISC CPU's, (lightweight) kernel languages, simple Virtual Machines, that sort of thing.
BTW. That Russian company mentioned is doing nothing new, it's called bytecode & JIT (Just In Time) compiling. Several modern languages, like Java, already use those techniques.
Most of today's computer systems all have 1 thing in common: they are programmed to do something with data. There is data, and one or more CPU's eat through streams of instructions, telling them what to do with that data.
Example:
(1) take one data element
(2) perform some operation on that data
(3) place modified data back into storage
(4) repeat (1) to (3) over and over, going through all data
Call them instruction-stream centered. In my vision the next big step: there is data, and all the programming does, is re-configure the way in which streams of data are processed. Call that: data-stream centered. The FPGA is a good example of how this works.
Example:
(1) configure what path data comes in, what operation is done, and along which path data should go out
(2) wait until all data has passed through the hardware
This is much more energy-efficient, and hardware to do this, exists (and is used) today. In my view the real problems are not building this hardware, but the software to control it. Think operating system, programming language design. Way more difficult than putting the IC's together.
I am convinced though, that the simpler the essentials become, the more useful they are in building complex systems. So the way to go: RISC CPU's, (lightweight) kernel languages, simple Virtual Machines, that sort of thing.
BTW. That Russian company mentioned is doing nothing new, it's called bytecode & JIT (Just In Time) compiling. Several modern languages, like Java, already use those techniques.