What is a Phase Transition?
Water boiling or melting is going through a phase transition. After a long period of apparently gradual change, there is an abrupt change of a different kind. In spite of very rapid progress, computing has been changing in a gradual way since the 60's. We're ready for a big jump.
Why a Phase Transition in Computing?
The way we use Silicon in a typical PC is less efficient than it could be. We already know how to do it better, indeed we have done for several decades. Back in the 80's companies like AMT produced 'smart memory', memory with integrated processing. This was used in advanced scientific and radar signal-processing applications. In the near future (5 years) we are likely to see more hybrid PC systems where processing is offloaded into memory. One route to this is via graphics cards. This is already happening. The competition for the fastest PC based database server was won by a database running on a hijacked graphics card. In time this will cease to be unusual. We'll have libraries for searching and sorting that run on graphics cards using the smart memory. Related technology includes FPGAs which integrate wide-bus memory, general purpose configurable FPGA fabric and PowerPC processor all on the same chip.
The trade off present in current technology gives us a choice between 1GB of 'dumb' memory or 100MB of 'smart' memory in the same chip area. Now the astonishing claim. Done right we can see a 100 fold improvement in performance in traditional computers on the most time critical parts without a significant advance in the underlying Silicon technology or increase in cost. The main advances required to achieve this will be relatively small changes in computer architecture, and relatively large changes in computer languages and libraries.
- The required advances in software are not so huge in the applications which will most benefit from removing the Von-Neumann bottleneck - searching and sorting. We can use existing technology there, replacing just the back end of the database.
- Note - if you update the timeline, there may be considerable delay before it shows correctly again.
- Content Addressable Memory - An important step in smart memory.
- Smart dust - Model of distributed processing without a rigid framework.
- Wikipedia:computational_RAM IRAM - computational RAM
- ASQ - Ask, Simplify, Query. A 'way out' computer language designed arround productivity of programmer time. The IDE queries you to help you refine your intentions. Code snippets (mangling of existing fragments of code) is core element. These are searched for on the internet. Way out nad extreme? Yes. But it makes you question your assumptions about what a programming language should look like.
(editors: this uses m:EasyTimeline)