Return to "Visible Storage"

*** Please note: This website (comp-hist) was completed before I found out about Wikipedia in 2002.
Since then I have added material occasionally.
Items are certainly not complete, and may be inaccurate.
Your information, comments, corrections, etc. are eagerly requested.
Send e-mail to Ed Thelen. Please include the URL under discussion. Thank you ***

ENIAC

Manufacturer University of Pennsylvania
Identification,ID -
Date of first manufacture-
Number produced -
Estimated price or cost-
location in museum -

Contents of this page:

Photo

Placard
-

Architecture
  • 20 individual 10 digit accumulators.
  • Accumulators can transmit numbers to other accumulators through the digit output terminals labeled A (for add) and S (for subtract).
  • Similarly, accumulators can receive numbers through 5 digit input terminals, labled Alpha, Beta, ...
  • Timing for transmission and reception of numbers is controlled by pulses received by the program pulse terminals. Each accumulator has twelve program controls. On each accumulator, Program Controls 1--4 are non-repeat controls that perform only one function when they receive a pulse on their program input terminal.

    Program Controls 5--12 are repeat program controls that can perform the same function up to nine times. A repeat program control begins to perform when it receives a pulse on its input terminal. When it is finished, it transmits a pulse on its output terminal

  • 10's Complement Negative numbers are stored in the Eniac by their 10's complement which is computed by subtracting a given number from M 9 999 999 999 and then adding one. For example, to find the way -84 is represented, we perform the subtraction:
        M  9  999  999  999
    -   P  0  000  000  084
    -----------------------
        M1 9  999  999  915
    
    We then add one, to get our result -84 = M 9 999 999 916
  • 1 multiply unit
  • 1 divide unit
  • 1 square root unit
  • 3 function generators
  • All of the above units could be wired (programed) to function in parallel

Special features
  • The most important technical achievement of the Eniac was its lightning speed. The Eniac takes only 200 microseconds to add or subtract. That means that it can perform 5000 addition cycles each second.
  • Another significant feature of the Eniac is its ability to perform digit discrimination and branch loops. The Eniac was the first machine to support common ``if statements'' that are so vital to the execution of useful programs.
  • Despite all its similarities to today's computers, the Eniac maintains some important differences. The main one is that it can not store its programs electronically. Programs must be hard-wired before the machine is started. The other interesting difference is that the machine is ``synchronous.'' The timing of all instructions is set up before a program is begun.
  • A Short History of the Second American Revolution states that the mean time between failures was greater than 12 hours, This was gained by"
    • Lower power levels and careful design alternatives were sought to minimize the amount of work demanded of the vacuum tubes.
    • Most tubes were found to fail early or late in their lives, which resulted in a regimen of preventive maintenance ensuring that only the healthiest" tubes were used in the ENIAC.
    • Eckert instituted rigid requirements for careful design and construction that had to be met by all engineers and technicians on the project where even a faulty soldering joint could render the entire machine useless.
    • Universal design standards, established collaboratively by all of the Moore School engineers ensured that components such as resistors, as well as the vacuum tubes, operated at a certain percentage of their rated capacity. "
  • from alt.folklore.computers "According to the official specs, the ENIAC used 17,468 tubes, but only 16 different types of tubes. (as reproduced in Nancy Stern's "From ENIAC to UNIVAC" for whatever it is worth)."

from R. Tim Coslet
Subject: I just finished reading the ENIAC Technical Manual
Date: Sat, Aug 27, 2016

The portions of the machine I found most difficult to understand were The Master Programmer unit and the punchcard equipment. The problem with the punchcard equipment did not surprise me, I always find that confusing.

However the Master Programmer unit is just strange! I think I understand it now however, but I will have to reread the entire section on it later to be sure. It is kind of a mixture between a collection of reconfigurable state machines using a combination of "One-Hot" ring counter Steppers (with 1 to 6 flipflops selected by a switch) and variable digit width (from 0 to 5 digits controlled by "associator" switches) ring counter Decades mechanisms, pulse counting digit value decoders, and 6-way pulse routing switches. The ability to "clear direct" or "count direct" any Stepper or "count direct" any Decade digit independently without sending an output pulse could be used to change the operation of any of the reconfigurable state machines.

Note: the ENIAC documents never use the terminology state machine. I only used it above to clarify things some for modern readers.

Fri, Nov 04, 2016

I sort of figured out ENIAC's Master Programmer Unit.

They seem to have decided to use a 6 stage Stepper counter mostly because the front panel of the Master Programmer did not have room for more than 6 rows of decade switches.

Historical Notes
At some later date, ENIAC was converted to a stored program machine.

The Moore School Lectures

Text by Jim Strickland
from https://s3.amazonaws.com/s3data.computerhistory.org/chmedu/VIE_05_003.pdf

Whether or not ENIAC is the “first computer,”
it is the platform from which all modern computers developed.

This is more than just a comment on timing or an opinion. It is true because of the Moore School lectures, “Theory and Techniques for Design of Electronic Digital Computers,” a series of lectures held between July 8, 1946 and August 30, 1946.

The lectures taught the ideas developed for the EDVAC (Electronic Discrete Variable Automatic Computer) which was to be a stored program computer and discussed ENIAC (Electronic Numerical Integrator and Computer) as a first step in that direction.

The lecturers were a who's who of early computing.
They both taught and attended lectures by others:

  • J. Presper Eckert and John W Mauchly of the Electronic Control Company. Eckert and Mauchly were, of course, inventors of ENIAC and had planned and begun development of EDVAC. They had left the Moore School in March of 1946, partly due to a patent dispute with the University and partly to form their own company. Later they would develop BINAC and UNIVAC.

  • John von Neumann from the Institute for Advanced Study. Von Neumann had contributed to, and summarized the ideas initiated by the ENIAC team as author of the First Draft of a Report on EDVAC (1945). He was architect of the IAS (Institute for Advanced Studies, Princeton, N.J.) computer “family.” He is also primarily responsible for the modifications to ENIAC which allowed it to have and to run in production, a “stored program,” (albeit stored in switches of the ENIAC Function tables). This was accomplished in 1947 and is arguably the first example of an electronic computer running a stored program. Later he served as a consultant to IBM and influenced design of the IBM 701, IBM's first entry in the fledgling computer business

  • Herman Goldstine of the IAS. Goldstine was the US Army Liaison to the Moore school and was a huge figure in ENIAC development. He left the Army in early in 1946. Later he joined John von Neumann in developing the IAS computer. Still later he joined IBM and became its chief scientist.

  • Arthur W. Burks of the IAS. Burks was a major developer of ENIAC, having responsibility for the Multiplier/divider. He had left the Moore school in March of 1946. He later that year would join the University of Michigan to start their computer department.

  • Jeffrey Chuan Chu of the Moore School. He had developed ENIAC's divider/square rooter. Chu would go on to Argonne National Laboratory and have responsibility for their AVIDAC and ORACLE (installed at Oakridge National Laboratory in Tennessee) computers based on the IAS design. Chu later moved to UNIVAC.

  • Howard Aiken of Harvard University. Aiken had led development of the Harvard Mark I, an early mechanical computer, built by IBM. He went on to build Mark II, III and IV with the Mark IV being all electronic. However, his computer architecture, called the Harvard architecture, separated the memory for program from the memory for data, which proved to be a dead end in computer development.

  • Jan Rajchman from RCA. He conceived and developed the selectively addressable storage tube, the ill-fated Selectron. The Selectron had many development problems. While it was installed on Johnniac, it never gained popularity and was replaced on Johnniac and in the market by core storage.

  • George Stibbitz, independent consultant. Stibbitz was the father of Relay Computer development at Bell Labs.

  • Douglas Hartree from the University of Manchester, England. Hartree visited ENIAC in February 1945. He became acquainted with drafts of von Neumann's report. He was influential in starting the computer projects at Manchester and Cambridge universities. He also was responsible for Harry Huskey's tenure at the NPL in the UK and for helping J. Lyons & co. Ltd. commercialize the EDSAC in the form of LEO I.

  • T. Kite Sharpless of the Moore School. He had developed ENIAC's master programmer unit. He became director of the EDVAC project at the Moore School.

  • C. Bradford Shephers of the Moore School. Later worked on mercury delay line memory for UNIVAC.

  • Other lecturers were: Sam B. Williams, consultant to the Moore School; Hans Rademacher, University of Pennsylvania; Perry Crawford Jr. from the U.S. Navy Office of Research and Inventions; John H. Curtiss from the National Bureau of Standards; Derrick Lehmer from the University of California, Berkeley; Calvin N. Moores from the Naval Ordnance Laboratory, Irven Travis of the Moore School.
Attending were:

  • From the Aberdeen proving Grounds Ballistics Research Laboratory BRL): Samuel Lubkin. The BRL which had funded ENIAC: would accept and run ENIAC; then fund and accept EDVAC; then develop their own ORDVAC (Ordnance Variable Automatic Computer) based on the IAS design.

  • From the U.S. Bureau of Standards: Edward W, Cannon and Roger Curtis. The bureau would later develop the SEAC (Standards Eastern Automatic Computer) and SWAC (Standards Western Automatic Computer).

  • From the Naval Ordnance Lab: R.D. Elbourne who worked for John Vincent Atanasoff, Phillip A Shafer Jr., D. H. Gridley, Lours Suss, James T. Pendergrass, Albert E. Smith and Sam Alexander. Alexander later led development of the SEAC, the first fully functional stored program electronic computer in the U.S.

  • From MIT: Arthur B. Horton, Warren S. Loud, Lou D. Wilson, David R. Brown, Robert P. Eferett, Frank M, Verzuh and Jay Forrester. After attending the classes, Forrester led the effort to change MIT's Whirlwind project from analog to digital.

  • From Manchester University, England: David Rees. Rees represented M. H. A. (Max) Newman, who along with Thomas Williams and Fredric Kilburn built the Manchester Baby, a proof of concept stored-program computer which was the first to ever run a program from its storage.

  • From Cambridge University: Maurice V. Wilkes. Wilkes led development of EDSAC, (Electronic Delay Storage Automatic Calculator) the second electronic digital stored program computer to go into regular service. Later the project led to the first commercially applied computer, LEO I, from J. Lyons and Co. Ltd.(a chain of Tea shops in the U. K.).It was on the boat home that Wilkes planned the original design of EDSAC.

  • From Bell Labs: Claude Shannon. Shannon is credited with founding both digital computer and digital circuit design theory in 1937, as a 21-year-old student at MIT. He showed that Boolean algebra and binary arithmetic could be used to simplify design of digital circuits. Shannon is famous for having founded information theory with a paper that he published in 1948. He later did early work in Artificial Intelligence with work on chess playing and a “mouse” which learned.

  • From IBM: Cuthbert Hurd. Hurd represented Alleghney College at the lectures. In 1949, he joined IBM and was instrumental in IBM's decision to develop the 701 and to enter the computer business.

  • Others Attending: from Reeves Instrument--H. I. Zagor; from the US Army--Herbert Galman, Joshua Rosenblom, Orin P. Gard and Albert Sayre; from the Moore School--Simon E. Gluck; from General Electric--Howard L. Clark and G.W. Hobbs; from the U.S. War Department--Mark Breiter

Later computer classes

  • In London, from December 1946 to February 1947, Alan Turing and his assistant Jim Wilkinson gave nine lectures. The lectures added substantially to the understanding of the design of the Pilot ACE. The lectures were attended by representatives of various organizations planning to use or build an electronic computer.

  • The success of the Moore School Lectures prompted Harvard University to host the first computer conference in January, 1947.

  • In 1947, the Association for Computing Machinery was founded as a professional society to organize future conferences.
Epilog

The ideas presented were debated, modified, and refined and disseminated. The seeds planted by the Moore School lectures took root all over the world.

By the end of 1947, at least six computers were under construction in America and the UK Still others followed on their heels. Also, some of the organizations represented in the lectures acquired very early computers from UNIVAC, IBM, ERA and others.

Second generation computers were underway and ENIAC was the platform from which they sprang.

A Surprising Absence: Harry Huskey

Harry Huskey had developed the ENIAC reader and printer units, which interfaced with the IBM card reader and card punch. He wrote the first technical specifications for EDVAC. Yet he was not present for the lectures.

Huskey had left the Moore School in June of 1946 to teach mathematics at the Army Air Forces Institute of Technology (now named the Air Force Institute of Technology) at Wright Patterson field in Dayton, Ohio for the summer of 1946. In December of 1946 he started a one-year stint at the NPL. Huskey went on to develop or influence a number of second generation projects:

  • EDVAC at the University of Pennsylvania

  • Pilot ACE (Automatic Computing Engine) at the National Physical laboratory (NPL) in the UK, with Allan Turing.

  • SEAC (Standards Eastern Automatic Computer) for the National Bureau of Standards.

  • SWAC (Standards Western Automatic Computer- 1950) for the National Bureau of Standards. He designed and developed SWAC which used Williams tube memory.

  • G-15 for Bendix Aviation Corp. (1956) which some consider to be the first "personal" computer in the world. He designed and developed the drum memory G-15.
With his ENIAC experience and EDVAC knowledge and looking back at his contributions to computer science it is hard to understand why he was not involved in the Moore School Lectures. But there it is.

Harry Huskey, a Fellow of the CHM, celebrated his 100th birthday on Jan 21, 2016

This Specimen
- This unit is one of the twenty accumulators. there were also other types of units such as a multiplier, 3 function generators, and switch input panels. The whole unit filled a very large room, and had 18,000 vacuum tubes.

From: "R. Tim Coslet" Aug 07, 2016
Subject: ENIAC & IBM 1620

I have been reading the ENIAC manuals,

Like the 1620 ENIAC used long shift registers to keep track of "program" state. On the 1620 these are the I & E flipflops, which are reset at power on to all 0 except I1 which is set to 1. On ENIAC these are the program flipflops within each unit, which are never reset but are allowed to "runout invalid programs" (i.e. shift their random state out resulting in all 0 state) during the first 10 seconds after DC power on.

The only flipflops in shift registers in ENIAC to be reset are the digit ring counters in the Accumulator units and they are reset so that all flipflops are 0 except the "0" and "P" flipflops which are set to 1 during the half second following the 10 seconds to "runout invalid programs".

ENIAC took 70.5 seconds after its "start" button was pressed before it was ready to operate: 1 minute to warmup heaters before DC power on, 10 seconds to "runout invalid programs" from the program shift registers in the various units, one half second to clear the Accumulator units.

The 1620 could wait as long as about 20 minutes for the core memory heaters to warm up if necessary. but could be ready to use immediately after the power switch was turned on if the memory was already warm.

As of the 1946 date of the ENIAC manuals I have all units except the Divider & Square Rooter unit could always "runout invalid programs" within the alloted 10 seconds and be in an idle program state waiting for the operator to "initiate" program execution. The Divider & Square Rooter unit had two things that could make it take an indeterminate time to "runout invalid programs", leaving "invalid programs" still running on it even when the machine is telling the operator that ENIAC is finished with the full 70.5 second startup period and is idle waiting for him.

  • If any "programs" on the Divider & Square Rooter unit were set for "divide" and the combination of random values at turn on in the numerator and denominator Accumulator units would take longer than 10 seconds to complete the division calculation. An obvious pathological state of this is if the random value at turn on in the denominator Accumulator unit was zero, the divide operation would run forever preventing "runout of the invalid divide program\" from ever happening. [recommended workaround: set all "programs" on the Divider & Square Rooter unit to "square root" until ENIAC is ready to operate, then set the "programs" to "divide" that the problem setup requires]

  • If any "programs" on the Divider & Square Rooter unit were set for "interlock" selected (a feature that allows programs in other units to run in parallel with a divide or square root program and synchronize their completion before starting the next program in another unit) the Divider & Square Rooter unit may not be able to "runout invalid programs". [recommended workaround: set all "programs" on the Divider & Square Rooter unit to "no interlock" until ENIAC is ready to operate, then set the "programs" to "interlock" that the problem setup requires]

    They say that they will redesign the Divider & Square Rooter unit to fix both problems before delivery to the Army BRL at Aberdeen.

    Unfortunately many of the drawings in the books are reduced for publication so much that they are not readable.

R. Tim Coslet

"To evaluate seven terms of a power series took 15 minutes on the Harvard [Mark I] device of which 3 minutes was set-up time, whereas it will take at least 15 minutes to set up ENIAC and about 1 second to do the computing."

September 2, 1944 letter to Colonel Paul Gillon, assistant director BRL from Lieutenant Herman Goldstine, U.S. Army liaison officer for Project PX (ENIAC)

From: "R. Tim Coslet" Aug 07, 2016
ENIAC numeric coding for transfers between units and peripherals.
ENIAC used different numeric coding systems in different places to transfer quantities:
  1. pulse coded 10's complement signed decimal via the Digit Trays (12 wires per tray: gnd wire, PM wire, and 10 digit wires) roughly halfway up the height of the panels. Can be connected as needed between the various units as required for the problem setup. Adapters can also be used to shift the number left or right, delete unneeded digits, etc.

  2. static coded 9's compliment signed decimal via the Static Trays (2 cables w/ 55 wires each per tray: 1 M wire, and 50 1-of-10 digit wires each cable, remaining 4 wires of each cable not identified possibly unused) at the top of the panels. Connects one Accumulator unit into an operand input of a specific special purpose unit (High Speed Multiplier unit, Divider & Square Rooter unit, or Printer unit) and cut to length for signal timing reasons. Also used to connect Master Programmer unit counters to an operand input of the Printer unit.

  3. BCD 1, 2, 2, 4 coded 9's compliment signed decimal from the IBM Card Reader to the Constant Transmitter unit, from the Portable Function Tables to the Function Table units, and in the multiplication lookup tables internal to the High Speed Multiplier unit.

  4. ENIAC punchcards always use signed magnitude decimal coding, so translations are happening in the IBM Card Reader and in the Printer unit to account for this. This was probably to be compatible with other IBM unit record machines.

The IBM Card Punch did not use a coded numeric system. Instead the Printer unit translated the 80 digits selected by its switches from static coded format to 12 groups of 80 punch control pulses matching the timing of the IBM Card Punch's 12 row emitters.

--

R. Tim Coslet

Interesting Web Sites

  • ENIAC as a stored program machine

  • How the World’s First Computer Was Rescued From the Scrap Heap - Wired Magazine - nine "panels" of ENIAC discovered at Ft. Sill, now on display

  • The ENIAC Story by Martin H. Weik, 1961

  • A Tribute to Dr. J. Presper Eckert Co-Inventor of ENIAC - courtesy Dan McGrath

  • Dr. Mike Williams provides The Electronic Numerical Integrator and Computer (ENIAC) by H.H. Goldstine and Adelle Goldstine. (2.2 MByte)

  • Simulation of the ENIAC,

  • A very comprehensive study of the machine. Gives an appreciation why no one would never architect or design a machine that way again.

  • Electronic Computers within the Ordnance Corps - Chapter II -- ENIAC

  • ENIAC History - has some on line documents

  • ENIAC-on-a-Chip, Moore School of Electrical Engineering, "The original ENIAC was programmed by physically connecting one module to another with cables. For "ENIAC-on-a-Chip", this has been accomplished by pre-connecting every possible input and output of every module and mediating the conduction of the connections with programmable switches. These switches can be programmed by an external source, e.g. a PC, which will determine the "cables" that conduct, thus achieving the desired effect."

    and from alt.folklore.computers
    My nomination for Useless Hack of the Computer Era:

    A professor at U P had his students cook up designs for ENIAC on a CHIP, a project that was quite successful.

    Even before the production run, I asked to buy one, figured it would be a kick to have something that could be stuck on a PCI board and (since the chip had the ability to connect any ENIAC unit connectable to any other in the original) to program the entire Moore School machine room in Visual Basic, displaying and allowing the plugging and setting of every ENIAC module for a run, maybe even adding in a random 3 hour MTBF tube killer.

    After much e-mail, I was informed that since so few chips were made, they were only available to museums and academic institutions. "Find a fab, run 'em off and sell 'em" I replied, to no avail.

    It would be tempting, since there was some NSF money involved, to gain the masks through a Freedom of Information Act request, something I'll be glad to help anyone willing to volunteer a fab with. - dmr

Other information
  • If you feel threatened by assembly language programming, you would go crazy "programming" an ENIAC.
  • Two of the 6 original ENIAC programmers spoke at the 2000 ACM Awards Banquet
    • Kay Mauchly Antonelli
    • Jean Bartik
  • Kathy Kleinman of the ACM (legal staff?) is writing a book, and has a large number of high quality photographs
  • pieces of ENIAC at ?
    • Computer History Museum, Mountain View, California
    • Arthur Burkes - computer science? - has 4 accumulators
    • Univ of Penn
    • West Point
    • University of Michigan (Ann Arbor) EECS building
    • The Eckert estate was auctioned off by Skinner of Boston. There was apparently a piece(s) of the Eniac. News group alt.folklore.computers had "Philadelphia Inquirer for Friday, April 28, 2000, page E8, reports that the lot was sold at the Skinner auction for $79,500, but does not state who was the buyer."
  • Sources
    • "ENIAC" by Scott McCartney, (reviewers say very non-technical, newspaper like)
  • The last survivor of the ENIAC development crew (the secretary, Akrevoe Kondopria Emmanouilides) died March 18, 2018, at age 89.
  • April 25, 2018. Dag Spicer (Senior Curator at the Computer History Museum) points out that Joe Cherney, who was involved with ENIAC maintenance at Aberdeen in 1950, is still alive - "... Joe Cherney, in his 90s… donated ORIGINAL ENIAC drawings to us two years ago."


If you have comments or suggestions, Send e-mail to Ed Thelen

Go to Antique Computer home page
Go to Visual Storage page
Go to top

Updated April 25, 2018