Google
 

Tuesday, July 8, 2008

The Engines

The Engines

Charles Babbage (1791-1871), computer pioneer, designed two classes of engine, Difference Engines, and Analytical Engines. Difference engines are so called because of the mathematical principle on which they are based, namely, the method of finite differences. The beauty of the method is that it uses only arithmetical addition and removes the need for multiplication and division which are more difficult to implement mechanically.

Difference engines are strictly calculators. They crunch numbers the only way they know how - by repeated addition according to the method of finite differences. They cannot be used for general arithmetical calculation. The Analytical Engine is much more than a calculator and marks the progression from the mechanized arithmetic of calculation to fully-fledged general-purpose computation. There were at least three designs at different stages of the evolution of his ideas. So it is strictly correct to refer to the Analytical Engines in the plural.

Binary, Decimal and Error Detection

Babbage's calculating engines are decimal digital machines. They are decimal in that they use the familiar ten numbers '0' to '9' and they are digital in the sense that only whole numbers are recognized as valid. Number values are represented by gear wheels and each digit of a number has its own wheel. If a wheel comes to rest in a position intermediate between whole number values, the value is regarded as indeterminate and the engine is designed to jam to indicate that the integrity of the calculation has been compromised. Jamming is a form of error-detection.

Babbage considered using number systems other than decimal including binary as well as number bases 3, 4, 5, 12, 16 and 100. He settled for decimal out of engineering efficiency - to reduce the number of moving parts - as well as for their everyday familiarity.

Difference Engine No. 1

Babbage began in 1821 with Difference Engine No. 1, designed to calculate and tabulate polynomial functions. The design describes a machine to calculate a series of values and print results automatically in a table. Integral to the concept of the design is a printing apparatus mechanically coupled to the calculating section and integral to it. Difference Engine No. 1 is the first complete design for an automatic calculating engine.

From time to time Babbage changed the capacity of the Engine. The 1830 design shows a machine calculating with sixteen digits and six orders of difference. The Engine called for some 25,000 parts shared equally between the calculating section and the printer. Had it been built it would have weighed an estimated fifteen tons and stood about eight feet high. Work was halted on the construction of the Engine in 1832 following a dispute with the engineer, Joseph Clement. Government funding was finally axed in 1842.

The Analytical Engine

With the construction project stalled, and freed from the nuts and bolts of detailed construction, Babbage conceived, in 1834, a more ambitious machine, later called Analytical Engine, a general-purpose programmable computing engine.

The Analytical Engine has many essential features found in the modern digital computer. It was programmable using punched cards, an idea borrowed from the Jacquard loom used for weaving complex patterns in textiles. The Engine had a 'Store' where numbers and intermediate results could be held, and a separate 'Mill' where the arithmetic processing was performed. It had an internal repertoire of the four arithmetical functions and could perform direct multiplication and division. It was also capable of functions for which we have modern names: conditional branching, looping (iteration), microprogramming, parallel processing, iteration, latching, polling, and pulse-shaping, amongst others, though Babbage nowhere used these terms. It had a variety of outputs including hardcopy printout, punched cards, graph plotting and the automatic production of stereotypes - trays of soft material into which results were impressed that could be used as molds for making printing plates.

The logical structure of the Analytical Engine was essentially the same as that which has dominated computer design in the electronic era - the separation of the memory (the 'Store') from the central processor (the 'Mill'), serial operation using a 'fetch-execute cycle', and facilities for inputting and outputting data and instructions. Calling Babbage 'the first computer pioneer' is not a casual tribute.

A New Difference Engine

With the groundbreaking work on the Analytical Engine largely complete by 1840, Babbage began to consider a new difference engine. Between 1847 and 1849 he completed the design of Difference Engine No. 2, an improved version of the original. This Engine calculates with numbers thirty-one digits long and can tabulate any polynomial up to the seventh order. The design was elegantly simple and required three times fewer parts than No. 1 for similar computing power.

Difference Engine No. 2 and the Analytical Engine share the same design for the printer - an output device with remarkable features. It not only produces hardcopy inked printout on paper as a checking copy, but also automatically stereotypes results, that is, impresses the results on soft material, Plaster of Paris for example, which could be used as a mold from which a printing plate could be made. The apparatus typesets results automatically and allows programmable formatting i.e. allows the operator to preset the layout of results on the page. User-alterable features include variable line height, variable numbers of columns, variable column margins, automatic line wrapping or column wrapping, and leaving blank lines every several lines for ease of reading.

Physical Legacy

Aside from a few partially complete mechanical assemblies and test models of small working sections, none of Babbage's designs was physically realized in its entirety in his lifetime. The major assembly he did complete was one-seventh of Difference Engine No. 1, a demonstration piece consisting of about 2,000 parts assembled in 1832. This works impeccably to this day and is the first successful automatic calculating device to embody mathematical rule in mechanism. A small experimental piece of the Analytical Engine was under construction at the time of Babbage's death in 1871. Many of the small experimental assemblies survived, as does a comprehensive archive of his drawings and notebooks.

The designs for Babbage's vast mechanical computing engines rank as one of the startling intellectual achievements of the 19th century. It is only in recent decades that his work has been studied in detail and that the extent of what he accomplished becomes increasingly evident.

No comments: