Water and Ice
In The Roots of Hardware and elsewhere, I’ve spoken about the software-hardware relationship from a bird’s-eye view, but it can be helpful to zoom in a bit to see what’s important about the relationship. Ice and water are made of the same chemical compound - H2O, but in different states. One could cook or wash with ice cubes but things won’t work out as well as with water. Similarly, it would be ineffective to store perishable food in water. Hardware and software are both made from the same mathematical elements - boolean logic, but in different states. Hardware is fast but inflexible. Software has unlimited flexibility but runs more slowly. It wouldn’t be wise to program a payroll system into hardware because requirements can change. 3D graphics software without hardware assistance runs very slowly. I should note that a short but very powerful book - The Pattern on the Stone demystifies computers making it possible for anyone, regardless of technical background/aptitude to understand the basic inner workings of computing.
In our bodies ice is non-existent. Throughout the ecosystems we typically frequent each day, liquid water is more abundant and useful than ice. The same should be true of software and hardware but today’s hardware dominates the information ecosystem. This prematurely crystallized software frequently serves as an impediment to innovation.
Hardware is really just software crystallized early. It is there to make program schemes run as efficiently as possible. But far too often the hardware has been presented as a given and it is up to software designers to make it appear reasonable. This has caused low-level techniques and excessive optimization to hold back progress in program design. … In short, most hardware designs today are just re-optimizations of moribund architectures.
The software that best serves human interests needs to change rapidly. From individuals to Google, new code shows up on the Internet daily, but the pace of innovation is throttled by the slower changes in operating systems which in turn are constrained by horribly inflexible hardware designed independently of the software. We are not confined to speculation regarding alternatives since as far back as 1961, Burroughs computers provided competitive, software driven hardware architectures:
The B5000 was revolutionary at the time in that the architecture and instruction set were designed with the needs of software taken into consideration. This was a large departure from the computer system design of the time, where a processor and its instruction set would be designed and then handed over to the software people.
While it never dominated the marketplace(a topic for another entry), this architecture remains viable and competitive within it’s niche to this day with the Unisys ClearPath mainframe computers. In addition, the B5000 influenced the emergence of the personal computer at Xerox in 70’s, inspiring a much more fluid, organic approach to systems architecture:
Instead of trying to build the complex artifacts from
scratch—like trying to build living things cell by cell—many of
the most important projects built a kernel that could grow the artifact as new knowledge was gained—that is: get one cell’s DNA in good shape and let it help grow the whole system.For example: Chuck’s beautiful and parsimonious architecture
for the Alto allowed most functions that were normally frozen in hardware to be re-microcoded at will as new ideas came forth, without requiring the low-level HW to be redesigned and built.Alan Kay: The Power of the Context(emphasis mine)
The chips that have and continue to power PCs are general purpose devices whose capabilities are etched in silicon and cannot be modified to address new needs. Traditionally, the rationale for this has been economic. Chips are expensive to design and fabricate so they have to serve a broad spectrum of needs in order for vendors to be able to produce a large enough volume to recoup development costs. For many products where requirements can be predetermined, application-specific chips(ASIC) offer higher performance and/or lower cost. However, ASICs are just as inflexible as general purpose chips. Moreover, this economic rationale represents stale, industrial era thought. It overlooks the high costs of brittle designs, longer production introduction times, less engaging products and lost opportunities, Fortunately, change is underway. After 20 years more flexible hardware such as the Field Programmable Gate Array(FPGA) is finding it’s way into broader use. The capabilities of an FPGA chip can be modified after its creation to meet new needs. Previously FPGA usage tended to focus on very specific kinds of tasks but more general purpose applications have been emerging. One approach is a hybrid design in which FPGAs work in tandem with general purpose chips. Cray’s XD1 supercomputer was:
Designed from the outset to incorporate the FPGAs, the Cray XD1 system tightly integrates FPGAs through hardware, operating system and communications management software.
Application Acceleration with FPGA-based Reconfigurable Computing
Similarly, Intel competitor AMD’s Opteron chips can be customized with FPGA co-processors. This shift is a good one but more is needed for individuals, organizations and society at large faced with the challenges of the emerging meshverse. For a human-centric future, we need more software and less hardware - the Machine should be like us - lots of water, no ice.



August 2nd, 2007 at 11:53 pm
[…] Rhythmeering: Water and Ice […]
September 11th, 2007 at 1:33 am
[…] the way to hardware that is really fluid and adapable, software is weaving its way deeper and deeper into the hardware. A couple of writers envisioned the […]
October 8th, 2007 at 10:04 pm
[…] For the hands-on, hardware-minded folk, some links from a Squeak hardware mail list discussion on the state of the FPGA-based Plurion project which zoom in another level on the evolution hardware-software relationship. […]
October 17th, 2007 at 1:41 am
[…] Related Links: Water and Ice […]
October 19th, 2007 at 4:07 pm
FPGA-based Processors Move Forward…
Via Dwayne Lee at Sun the following video of a OpenSPARC T1 chip running on an FPGA
marks another step towards the kind of software-hardware relationship I think needs to develop. Sun’s next generation T2 has also been open sourced and should …