ENIAC () е първата електронна цифрова електронноизчислителна машина (компютър), която може да се препрограмира (но все още не съхранява програмата си в паметта, т.е. не е компютър със запаметена програма) и може да реши голям брой разнообразни изчислителни задачи. Построена е в САЩ по време на Втората световна война с първоначална цел да изчислява балистични таблици за нуждите на американската армия.Асенова, П. и колектив. Работа с компютри във фирмите, учебник за специалност „Сътрудник в дребния и средния бизнес“, ИК „Призма“, София, 2001. Конструиран е през 1945 г. от американците Джон Мокли и Дж. Преспър Екърт.

Дизайн Създаването на ENIAC е финансирано от американската армия. Договорът за изработването на ENIAC е подписан на 5 юни 1943 г., а работата по компютъра под кодовото име „Проект PX“ започва на следващия месец в условия на секретност в школата по електроинженерство Мур (), част от Пенисилванския университет. Ръководител на проекта е Джон Брайнърд, професор по физика в университета.

Конструктивният проект на ENIAC е дело на Джон Мокли и Дж. Преспър Екърт, учени от Пенисилванския университет. Екипът от инженери-дизайнери, участващи в разработката, включва още Робърт Шоу (функционални табла), Джефри Чу (система за делене и коренуване), Томас Шарплес и Франк Мурал (главни програмисти), Артър Бъркс (система за умножение), Хари Хъски (четец/принтер), Джак Дейвис (регистър за аритметични и логически операции). През 1946 г. те напускат университета и сформират компютърната компания „Екърт-Мокли“ (Eckert-Mauchly Computer Corporation).UShistory.org ENIAC Invetors Посетен на 4 февруари 2016 USHistory.org ENIAC Inventors. 

ENIAC е модулен компютър, който се състои от индивидуални панели, обработващи различни функции. Двадесет от тези модули са регистри, които могат не само да прибавят и изваждат, но и да запаметяват десетични числа с до 10 знака в паметта си. Числата биват предавани между частите през няколко шини с общо предназначение. За да се постигне висока скорост, процесът по изпращане и получаване на числа, пресмятане и запазване, както и задействане на следващата операция, се извършва без движещи се части. Ключова за ENIAC е способността му за разклонение: в зависимост от знака на пресметнатия резултат се задействат различни операции.

Компоненти Към края на експлоатацията си през 1955 г. ENIAC съдържа 17 468 електронни лампи, 7200 кристални диода, 1500 релета, 70 000 резистора, 10 000 кондензатора и около 5 000 000 ръчно запоени връзки. Тежи над 27 тона, има размери 2,4 m x 0,9 m x 30 m, заема 167 m² и консумира 150 kW Тази голяма консумация води до слух, че докато компютърът работи, си личи по промяната в осветлението. За въвеждане и извеждане на информация се използват перфокарти, с които впоследствие може да се отпечатват резултатите (IBM 405).

За запаметяване на цифри ENIAC използва кръгови броячи с десет позиции. За всяка цифра са нужни 36 електронни лампи, 10 от които съставят тригерите на кръговия брояч. Аритметичните операции се осъществяват чрез електронна симулация на цифровите колела на механична сметачна машина.

ENIAC има 20 десетцифрени регистъра, които използват метода за допълване до 10, за да изпълняват до 5000 прости операции (събиране и изваждане) в секунда при поискване (например от друг регистър или предавател). Възможно е няколко регистри да се свържат да работят паралелно, за да се постигне по-висока скорост на операцията.

Възможно е да се свържат два регистъра, за да се постигне двойна точност при числа с плаваща запетая, но дизайнът на регистрите не позволява свързване на повече от 2, което теоретично би довело и до още по-голяма точност. ENIAC използва 4 от регистрите (контролирани от специална система за умножение), за да изпълнява до 385 операции с умножение в секунда. За изпълнението на операции по деление и коренуване пет от регистрите се контролират от специална система и изпълняват до 40 операции с деление в секунда или до 3 операции с коренуване в секунда.

Другите 9 системи, използвани в ENIAC, са система за инициализация (която пуска и спира машината), система за синхронизация (която синхронизира системите), главна програмираща система (която контролира цикличните операции), система за четене (която контролира четеца на перфокарти), система за принтиране (която контролира перфоратора на карти), система за предаване на константи и 3 функционални табла.

Време за изпълнение на операция Основният машинен цикъл е 200 μs (20 цикъла на 100 kHz часовник в системата за цикли), или 5000 цикъла в секунда за операции с десетцифрени числа. Във всеки един от тези цикли ENIAC може да записва число в регистър, да чете число от регистър или да събира/изважда две числа.

Умножението на 10-цифрено число с d-цифрено число (за d<=10) отнема d+4 цикъла, например умножение на 10-цифрено с 10-цифрено число отнема 14 цикъла или 2800 μs – скорост от 357 такива операции в секунда. Ако едното от умножаваните числа има по-малко цифри, операцията е по-бърза.

Делението и коренуването отнема 13(d+1) цикъла, където d е броят на цифрите в резултата (частно или корен квадратен). Така делението/коренуването отнема до 143 цикъла или 28 600 μs – скорост от 35 такива операции в секунда. Ако резултатът има по-малко от 10 цифри, операцията е по-бърза.

Надеждност ENIAC използва обикновени електронни лампи с осем крачета. Десетичните регистри са реализирани с тригери 6SN7, а за логическите функции се използват тригери 6L7, 6SJ7, 6SA7 и 6AC7. Използвани са също така и множество 6L6 и 6V6 за съединителните проводници между панелите.

Всеки ден по няколко електронни лампи изгарят и това спира работата през половината от времето. До 1948 г. не са налични специални електронни лампи с висока надеждност. По-голямата част от повредите възникват по време на периодите на загряване и охлаждане, когато нагревателите и катодите на електронните лампи изпитват най-голямо температурно напрежение. Инженерите успяват да намалят повредите до по-приемливо положение – една изгоряла лампа на всеки 2 дни. В интервю от 1989 г. Екърт споделя: „Имахме по около една изгоряла електронна лампа на всеки два дни и можехме да локализираме проблема в рамките на 15 минути.“ През 1954 г. е засечен най-дългият период без повреди – 116 часа или около 5 дни.

Програмиране

ENIAC може да бъде програмирана така, че да извършва различни, сложни поредици от операции: цикли, разклонения и подпрограми. Съставянето на самата задача и въвеждането ѝ в машината е сложно и времеемко, обикновено отнема седмици. След като програмата се разпише върху лист хартия, програмирането на ЕNIAC става чрез превключване на релета и проводници в комутационен панел и обикновено отнема няколко дни. Следва период за постъпкова проверка на въведената програма, или дебъгване, чиято цел е да се отстранят грешките. Представа за това, как изглежда една програма на ENIAC, дава Ръководството за модулно програмиране.

Първите главни програмисти на ENIAC са жени: Кей МакНулти (по-късно става съпруга на Джон Моукли), Джийн Бартик, Бети Снайдер, Мерилин Уесков, Фран Билас и Рут Тейтелбаум. Te не само програмират ENIAC, но допринасят много и за разбирането на работата на машината. Програмистите отстраняват възникналите проблеми, като физически преглеждат масивния корпус на машината и откриват лошите спойки в проводниците и изгорелите лампи.

Програмистите се назначават от Херман Голдстайн, който ги нарича „оператори“, вместо предишното „изчислители“ (които пресмятат балистичните таблици с калкулатор и аналитични методи). Под управлението на Херман и Адел Голдстайн, операторите изучават чертежите на ENIAC и физическата ѝ структура, за да разберат как да превключват проводниците и щифтовете. Програмирането по онова време се смята за чисто техническа и чиновническа задача, затова ролята на жените програмисти за успешното пускане на ENIAC получава дължимото признание едва в края на 20 век.

След това екипът се разширява до стотици учени, които продължават работата по ENIAC. Между тях отново има и няколко жени, включително Глория Рут Гордон.

По-нататъшно развитие Завършената машина е представена публично на 14 февруари 1946 г. и официално открита в Университета на Пенсилвания на следващия ден. Първоначалната договорена цена е $61 700, а финалната сума достига почти $500 000 (приблизително $6 100 000 днес). През юли 1946 е приета официално от Артилерийския корпус на армията (U.S. Army Ordnance Corps). ENIAC е изключен за ремонт и обновяване на паметта на 9 ноември 1946 г. и е пренесен в Абърдинския изпитателен полигон в Мериленд през 1947 г. Там на 29 юли 1947 г. е включен отново и работи непрестанно до 23:45 часа на 2 октомври 1955 г.

ENIAC е използван за изчисления при разработването на водородната бомба в лабораторията Лос Аламос.

Лекции в Мурската школа и EDVAC Няколко месеца след завършването на ENIAC, през лятото на 1946 г., като част от „изключително усилие да се даде силен старт на изследвания в областта“,Scott McCartney p.140 (1999) Пентагонът кани „най-добрите учени в областите на математиката и електрониката от Великобритания и САЩ“ да изнесат серия от четиридесет и осем лекции на тема „Теория и техники за дизайн на дигитални компютри“, по-често известни като „Лекции на Мурската школа“. Половината от тези лекции са изнесени от изобретателите на ENIAC.McCartney, Scott (1999). ENIAC: The Triumphs and Tragedies of the World's First Computer. Walker & Co. ISBN 0-8027-1348-3. p.140: Екерт изнася 11 лекции, Мокли изнася 6, Голдстайн – 6, фон Нойман е трябвало да изнесе една, но не се появил и останалите 24 са разпределени между различни поканени учени и военни

Конструкцията на ENIAC впоследствие не е повторена. Тя датира от 1943 г. и не отразява нововъведенията, които започват бързо да се появяват след това. Най-значимото от тях е запаметяването на програмата в паметта на компютъра. Екерт и Мокли започват работа по нов проект, който по-късно е наречен EDVAC, като целта им е едновременно по-прост и по-мощен компютър. През 1944 г. Екерт описва запаметяващ модул, в който биха се съхранявали едновременно данните и програмата. Джон фон Нойман, консултант на Мурската школа по отношение на EDVAC, участва в срещите за разработване на идеята за запаметена програма и написва непълна поредица от записки First Draft of a Report on the EDVAC. Те са предназначени за използване като вътрешен меморандум и описват, развиват и формулират на формален и логичен език идеите, развили се по време на срещите. Въпреки това документът заема важно място в последвалото развитие на компютрите. Херман Голдстайн, администратор и отговорник по сигурността на ENIAC, го разпространява из правителствени и образователни учреждения, предизвиквайки интерес към създаването на ново поколение електронни изчислителни машини. Сред тях са Electronic Delay Storage Automatic Calculator (EDSAC) в Кеймбриджкия университет, Англия и SEAC в Американския институт по стандартизация.

Подобрения След 1948 г. в ENIAC са направени редица подобрения, включително е добавен примитивен механизъм за четене на запаметена програма,„A Logical Coding System Applied to the ENIAC“. Ftp.arl.mil. 1948-09-29. Посетен на 27 януари 2010. който използва функционалните табла като ROM. Идеята е включена в патента на ENIAC и е предложена независимо от Ричард Клипингър от BRL. Клипингър се консултира с фон Нойман какъв набор от инструкции да приложи. Той замисля триадресна архитектура, докато фон Нойман предлага едноадресна, защото е по-проста за прилагане. Три цифри от един регистър се използват като програмен брояч, друг регистър служи за главен, трети регистър се използва като адресен показалец за четене на данни от функционалните табла, а повечето от останалите акумулатори се използват като памет за данните.