Where Hardware is Really Software

Jim Tomayko

Carnegie Mellon

Prior to the invention of stored programs, devices were programmable by intrinsically difficult or easier means. Babbage’s Difference Engine and certain analog computers are examples of the former, while Bush’s Differential Analyzer and the ENIAC are examples of the latter. After the development of stored memory, software for awhile was king, the hardware, although programmed, was single-purpose; the evolution from devices to "soft logic" was next. Today’s programmable devices are the latest trend.

This paper begins by discussing "software in the gears" and other ways algorithms are implemented in older analog machines. It progresses to the invention of software and the methods used to develop programs given that context. Finally, any lessons from software engineering applicable to what goes into programmable devices are presented.