Professional Documents
Culture Documents
G. BROMLEY
Charles Babbage commenced work on the design of the Analytical Engine in
1834 following the collapse of the project to build the Difference Engine. His
ideas evolved rapidly, and by 1838 most of the important concepts used in
his later designs were established. This paper introduces the design of the
Analytical Engine as it stood in early 1838, concentrating on the overall
functional organization of the mill (or central processing portion) and the
methods generally used for the basic arithmetic operations of multiplication,
division, and signed addition. The paper describes the working of the
mechanisms that Babbage devised for storing, transferring, and adding
numbers and how they were organized together by the microprogrammed
control system; the paper also introduces the facilities provided for userlevel programming. The intention of the paper is to show that an automatic
computing machine could be built using mechanical devices, and that
Babbages designs provide both an effective set of basic mechanisms and a
workable organization of a complete machine.
Categories and Subject Descriptors: K.2 [History of Computing]C. Babbage, hardware, software
General Terms: Design
Additional Key Words and Phrases: Analytical Engine
1. Introduction
Charles Babbage commenced work on the design of
the Analytical Engine shortly after the collapse in 1833
of the lo-year project to build the Difference Engine.
He was at the time 42 years o1d.l
Progress on the Analytical Engine went rapidly. The
first notes appeared in mid-1834, and by mid-1836 a
workable design had evolved. A major revision of the
design took place in late 1837. For the next decade
work on the Analytical Engine consisted largely of
refinement and elaboration of the basic design of 18370 1982 by the American Federation of Information Processing
Societies, Inc. Permission to copy without fee all or part of this
material is granted provided that the copies are not made or
distributed for direct commercial advantage, the AFIPS copyright
notice and the title of the publication and its date appear, and notice
is given that copying is by permission of the American Federation
of Information Processing Societies, Inc. To copy otherwise, or to
republish, requires specific permission.
Authors Address: Basser Department of Computer Science, Madsen Building F09, University of Sydney, NSW 2006, Australia.
For a thorough account of the history of Babbages involvement
with the design of calculating machines, see Collier (1970) and
Hyman (1982).
0 1982 AFIPS 0164-l 239/82/030196-217$01
.OO/OO
A.
G.
Bromley *
Analytical
Engine
Three other persons have studied the Babbage papers in the Science Museum collection. Collier (1970)
has provided an excellent overview of Babbages work
on automatic calculating devices. His study, based
largely on the notebooks and on the correspondence
in the British Library and the Buxton papers in Oxford, is primarily concerned with the intellectual history of Babbages ideas and in particular with the
transition from the special-purpose Difference Engine
to the general-purpose Analytical Engine. Wilkes
(1971) has studied the notebooks to achieve a more
detailed understanding of some aspects of the userprogramming facilities of the Analytical Engine than
is provided in the present paper. Hyman (1982) has
also provided an overview of Babbages calculating
machines in the context of a biographical study of
Babbages wide-ranging intellectual achievements.
The present paper is the first one based primarily
on a detailed study of Babbages notations and is
therefore the first to provide a detailed account of the
organization of the machine and in particular of the
sophistication of Babbages microprogramming ideas.
It discusses only one model out of the complete evolutionary range of Babbages designs (though one I
believe to be in most respects typical), and many of
the conclusions must therefore be regarded as tentative pending the extension of this study to other designs.
In almost all its facets Babbages work on the Analytical Engine was completely original-the only antecedent was his own Difference Engine. Only in the
adoption of the barrel, from automata and music
boxes, and punched cards, from the Jacquard loom, is
there any significant borrowing from an existing technology, but Babbages substantial elaboration of the
capabilities of these, as well as his specific application
of them, is again quite original.
2. Overview
The Analytical Engine was a decimal machine that
used a sign-and-magnitude representation for numbers
A. G. Bromley * Analytical
Engine
Figure 2. Basic process of addition. A digit is given off by the figure wheel on the
right and received by the figure wheel on the left. If the receiving figure wheel is
not originally at 0, it will finally come to stand at the sum of its original value and
the digit received. This process occurs simultaneously for all digits of numbers.
Off
A . G . B r o m l e y - Analytical
Engine
U
Figure 3. Practical realization of the method of digitwiseparallel addition. Two figure wheels are shown in each cage, so
two numbers may be stored on each figure axis. In practice the mechanism is arranged in a circle so that the axes
coincide. A number given off may therefore be received on the alternate set of figure wheels of the same axis.
4, Number
and
3, July 1982
A. G. Bromley -
Analytical
Engine
10s
10s
IS
1s
Figure 4. Process of stepping, or multiplication, and division by 10. The long pinions S are raised with their axis to
engage the long pinions L in the cage above. A number given off will therefore be stepped up a cage, or multiplied by 10. A
transfer in the reverse direction will divide by 10.
Annals of the History of Computing, Volume 4, Number 3, July 1982 - 201
100s
Figure 5. Elements of the carry mechanism. When the
carry figure wheel moves past 9 to 0 arm f acts on arm e to
rotate the carry warning indicating that a carry is
necessary into the cage above. A carry from the cage below
will raise the carry sector on axis C into gear with the
10s
4. Anticipating Carry
IS
100s
10s
203
A . G . B r o m l e y - Analytical
Engine
Figure 8. Barrel and its reducing apparatus. A microprogram word is represented by a vertical row of studs screwed
to the barrel. These act on the ends of the control levers when the barrel moves sideways. The reducing sectors of one,
two, and four teeth advance the barrel over the corresponding number of verticals, and several may act in combination at
one time. In the figure, reducing sector 1 is put into gear directly by order of the barrel via control lever a. Reducing sector
1 is put into gear by a running up from the carry apparatus if enabled to do so by the barrel and lever b. The effect is a
conditional transfer. A conditional arm is sensed by control lever c to provide an action conditional on a previous event.
6. Microprogram Control
With the mechanisms so far described to store, transfer, step, and add numbers, it should clearly be possible
to assemble a computing device of some power. An
automatic computing device requires, in addition,
some control mechanism by means of which these
elements may be coordinated to work together. This
was done in the Analytical Engine by a technique that
A.
G.
Bromley *
Analytical
Engine
A. G. Bromley - Analytical
Start
of
Cycle
2
3
4
Barrels
Advance
Put Axes
into Gear t
t
V
I
8
9
9 Units
for
Transfer
Addition
IO
11
12
Cycle
I
and
Retreat
5
6
Short
13
14
15
Or
Barrels
may
Rotate
I
1
I
I
JI
+
Carry Wires
Sectors
Y
19
C)VAe
Lockings
Carry
18
Long
4
4
I
I
17
16
Engine
Lockings
20
4
4
Figure 10. Plan of the general arrangement of the Analytical Engine. It also serves as a functional block diagram, as explained in
the text and Figure 11.
Figure 11. Major registers and data paths of the Analytical Engine. The store axes are arranged along the racks to the right, and
communicate with the mill via the ingress and egress axes, which act as buffer registers, The mill is arranged around the
central zuheels, which act as an internal data bus servicing accumulators A and A and table axes T, to Tg used in multiplication and
division. F, F, and F are the figure axes of the three sets of anticipating carry apparatus.
Figure 12. Actions during the main loop of multiplication. A partial product, selected by a digit of the multiplier, is given off by a
table axis (in this case T3) and added to the product on the head and tail axes A and A. Simultaneously, the multiplier is stepped
down on A to select the next partial product, and the table axes are all stepped up to maintain the correct alignment with the
product.
Head
000 000
650
000 650
9 75
0 1 0
Tail
Central
Wheels
T2
T3
3251
6501
9751
2513
5016
7519
5132
0165 5 1 9 7
1325
1650
6501
7519
4 0 0
32 5
042 900
T,
5132
1975
Figure 13. Stages in the pipeline of signed addition. An operand is fetched from, the store to the ingress axis I, added to or
subtracted from the total on A, the result converted into sign-and-magnitude representation on egress axis A, and returned to store,
in four separate steps that may be overlapped with one another for different operands.
The development of division also played an important role in the history of the Analytical Engine. An
examination of the tentative processes involved in the
determination of the quotient digits first led Babbage
to a clear understanding of conditional processes conditioned by events occurring during the calculation.
As we saw, these conditional processes are clearly
embodied in the reducing apparatus of the barrels.
Babbage continued to exert considerable energy to
improving the division process. Figure 10 shows a later
design than that just described. Table making is
shortened by first stepping the divisor to form ten
times it and then subtracting the divisor to form the
ninth, eighth, etc., multiples concurrently with the
formation of the smaller multiples by addition. The
same process can be applied in multiplication, of
course. Babbage also found a method of overlapping
a trial subtraction in division with the selection of the
next quotient digit and of avoiding the difficulties
created by choosing a trial quotient digit too large.
11. Signed Addition and Subtraction
A. G. B r o m l e y - Analytical Engine
(+I+7
Give-Off
(+I-8
Receive
(+I+5
(-I+6
l-1 - 3
- 8
.N h
(+I+7
(+I-8
5
6
W- -3
Additive
--w
Subtractive
+7
5 Complement
Negative
-5 Sign and
Magnitude
(+I+5
-1
(-I+6
+4
H - 3
-1
-2
- 2
1
Add
Card
Give-Off
\
li
P-A.1
t,
Subtr
6A.l
Subtrn
A.l+
A.2,A
ILA.2
A.2+
It
I).
w
A.l,A
Gwe-Off
Final
Card
I-CA 2
Final
Card
A. G. Bromley *
Analytical
Engine
A. G. Bromtey
* Analytical Engine
A. G. Bromley - A n a l y t i c a l Engine
14. Conclusion
REFERENCES
Babbages Analytical Engine is remarkably sophisticated, far more so than has previously been supposed,
as is most evident on examination of the design at the
level of the microprogramming of the operations of
multiplication, division, and signed addition.
The descriptions of the Analytical Engine provided
in this paper are introductory in two senses. First, the
paper is based on a detailed analysis of less than 10
percent of the material in the Science Museum collection and only a cursory examination of the remainder.
Doubtless further detailed examination will reveal the
design of the Analytical Engine to have been even
richer than I have suggested, but such an examination
will take several years. Second, this paper is introductory in the sense that it provides only a greatly simplified description of the designs on which it is based.
The study of Babbages Analytical Engine provides
an opportunity rare in the history of technology. The
design of the Analytical Engine was carried to a
considerable state of perfection, but was effectively
completely independent of modern developments.
Babbages papers were not subjected to any detailed
examination until 1969 and hence cannot have influenced the design of modern computers in more than
the most superficial manner.
In this circumstance it is remarkable that Babbages
design and many details of it seem so thoroughly
modern, especially in view of the enormous differences
in the technology used. Indeed, I am bothered that the
Analytical Engine is too much like a modern computer.
Do we infer that a computer can only be built in
fundamentally one sort of way? Or have we allowed
ourselves to be backed into a corner in using only
one computational style? Perhaps, in the long run,
questions such as these will prove to be important
fundamental issues that the study of the history of
computing should discuss.
Acknowledgments
I have not provided detailed references to the collection of Babbage papers at the Science Museum, London. They did not seem appropriate in an introductory
paper and would in any case have been difficult to
provide because the designs presented here are considerable simplifications of the originals; many details
and some salient points have been glossed over. A
detailed catalog of the Science Museum papers and a
technical history of all of Babbages designs is currently in preparation. The list of references is simply
a first-level guide to the principal sources of the one
design discussed in this paper. (Some items are referenced by the catalog numbers that have been assigned
to them.)
Figures l-7 in this paper are based on the plates in
Babbages Calculating Engines (Babbage 1889). Figure 8, showing the barrel and reducing apparatus, is
based on the drawing BAB.[A]35. Figure 9, showing
the timing of the cycles, is based on the notation
BAB.[F]77. The general-arrangement drawing (Figure
10) is from Babbage (1889). The design described is
detailed by the notations BAB.[F]74-107.
Babbage, Charles. 1837. On the Mathematical Powers of the
Calculating Engine. In Randell (1973).
Babbage, H. P. 1889. Babbages Calculating Engines. London, E. and F. N. Spon. (The Menabrea/Lovelace paper
appears in this volume.)
Bromley, A. G. 1980. The Mechanism of Charles Babbages
Analytical Engine circa 1838. Basser Dept. Comp. Sci.
Tech. Rept. No. 166, 39 pp.
Bromley, A. G. 1980. The Functional Algorithms and Control of Charles Babbages Analytical Engine circa 1838.
Basser Dept. Comp. Sci. Tech. Rept. No. 167, 41 pp.
Collier, Bruce. 1970. The Little Engines that Couldve: The
Calculating Machines of Charles Babbage. Ph.D. Thesis,
Harvard.
Dubbey, J. M. 1978. The Mathematical Work of Charles
Babbage. Cambridge, Cambridge University Press.
Hyman, Anthony. 1982. Charles Babbage: A Biography.
Oxford, Oxford University Press.
Randell, Brian. 1973. The Orzgins of Digital Computers.
Berlin,
Springer-Verlag.
Wilkes, M. V. 1971. Babbage as a Computer Pioneer. Proc.
Babbage Memorial Meeting, British Computer Society,
London. (Also in Historia Mathematics (1977), 415-440.)