June 02, 2005
The benefits of biomimicry
Scientific American has a fascinating article on neuromorphic computing (subscription required). The idea is to build computer systems that mimic biological systems at the level of hardware, not just software. This allows the researchers to build silicon retina chips that are remarkably effective at decoding images and do so in a way that is sufficiently compact and energy efficient that an artificial retinal implant is a possibility.
The key is that bioloigcal "computing" systems are evolved to serve particular roles, and hence are optimized for those roles (as much as evolution really optimizes anything). Biological systems cannot afford too much bloat. Inefficiency costs, and excessive functionality or computing power that is not used will rapidly get evolved out of the system. Even on the non-evolutionary level, the adaptivity of the body is such that your muscles will atrophy if you don't exercise them - the body will not waste resources on what is not being used. Parsimony is everything, and by incorporating this principle, we can build amazing new technology such as neuromorphic retinal implants.
Unfortunately, in computing systems, we have always preferred to build general purpose machines, rather than machines which fulfill a particular role. It's much easier to build such machines and saves us from the headache of trying to figure out what the machine may be used for beforehand. It also allows us more flexibility in allocating resources. All of this makes sense in a world where computing technology is rare and expensive, but as the cost of computing drops dramatically, so does the need for using general purpose hardware and software.
The problem with general purpose systems is not only that they are inefficient, but that they are much more prone to both errors and abuse, because of the excess functionality they support. Many computing systems would be a great deal more secure if the system was limited in functionality to what was actually needed. But this seldom happens - after all, it's much easier to slap a new linux kernel onto a system with all its functionality, than to take the time and effort to pare it down to the minimum necessary. In fact, constraining excessive functionality is precisely what a lot of security tools do, including many in the intrusion prevention category.
There is a dangerous trend of using general purpose computing platforms where highly specific sytems used to be deployed. For example, Microsoft recently announced its point-of-sale server based on the MS operating system. This seems like a very bad idea - in future, you will have to update your point-of-sale servers as well as all your PCs, and if a worm strikes, it could bring down everything. This is the wrong way to go: from dedicated hardware/software systems, to general purpose systems that have excessive bloat and far too much functionality/power for the task at hand. As another example, a recent article describes testing the "brainy Acura" car, which has an onboard computer that does a plethora of functions, but during the test, the computer had to be rebooted!
But I believe there is hope. Although bloated general-purpose systems are likely to be deployed in places like cars and stores, fortunately mobile devices (such as cell phones) exert a pressure against bloat. As mobile devices become more compact and more widely used, the biggest limiting factor for their usefulness will be battery power. That will drive the need for specialized hardware and software, designed to serve a particular role in the most efficient way possible, just like the silicon retina. And this will have the beneficial side-effects of greatly improving reliability and security. Specialize, specialize!
Posted by sana at 03:47 PM | Comments (0)