ENIAC

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене
ENIAC във Филаделфия, Пенсилвания

ENIAC (на английски: Electronic Numerical Integrator and Computer) е първата електронна цифрова електронноизчислителна машина (компютър), която може да се препрограмира (но все още не съхранява програмата си в паметта, т.е. не е компютър със запаметена програма) и може да реши голям брой разнообразни изчислителни задачи. Построена е в САЩ по време на Втората световна война с първоначална цел да изчислява балистични таблици за нуждите на американската армия.[1] Конструиран е през 1945 г. от американците Джон Мокли и Дж. Преспър Екърт.

Дизайн[редактиране | редактиране на кода]

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

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

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

Компоненти[редактиране | редактиране на кода]

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

Функционално табло на ENIAC в Абърдийн

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

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

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

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

Време за изпълнение на операция[редактиране | редактиране на кода]

Основният машинен цикъл е 200 микросекунди (20 цикъла на 100 kHz часовник в системата за цикли), или 5 000 цикъла в секунда за операции с десетцифрени числа. Във всеки един от тези цикли ЕНИАК може да записва число в регистър, да чете число от регистър или да събира/изважда две числа.

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

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

Надеждност[редактиране | редактиране на кода]

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

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

Програмиране[редактиране | редактиране на кода]

Две от операторките на ENIAC

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

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

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

След това екипът се разширява до стотици учени, които продължават работата по 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 е използван за изчисления при разработването на водородната бомба в лабораторията Лос Аламос.[11]

Роля в разработването на EDVAC[редактиране | редактиране на кода]

Няколко месеца след завършването на ENIAC, през лятото на 1946 г., като част от „изключително усилие да се даде силен старт на изследвания в областта“[12], Пентагонът кани „най-добрите учени в областите на математиката и електрониката от Великобритания и САЩ“ да изнесат серия от четиридесет и осем лекции на тема „Теория и техники за дизайн на дигитални компютри“, по-често известни като „Лекции на Мурската школа“. Половината от тези лекции са изнесени от изобретателите на ENIAC[13].

Конструкцията на ENIAC впоследствие не е повторена. Тя датира от 1943 г. и не отразява нововъведенията, които започват бързо да се появяват след това. Най-значимото от тях е запаметяването на програмата в паметта на компютъра. Екерт и Мокли започват работа по нов проект, който по-късно е наречен EDVAC, като целта име е едновременно по-прост и по-мощен компютър. През 1944 г. Екерт описва запаметяващ модул, в който биха се съхранявали едновременно данните и програмата. Джон фон Нойман, консултант на Мурската школа по отношение на EDVAC, участва в срещите за разработване на идеята за запаметена програма и написва непълна поредица от записки First Draft of a Report on the EDVAC[14]. Тези записки са предназначени за използване като вътрешен меморандум и описват, развиват и формулират на формален и логичен език идеите, развили се по време на срещите.

Херман Голдщайн, администратор и отговорник по сигурността на ENIAC, разпространява записките из правителствени и образователни учреждения, предизвиквайки интерес към създаването на ново поколение електронни изчислителни машини. Сред тях са Electronic Delay Storage Automatic Calculator (EDSAC) в Кеймбриджкия университет, Англия и SEAC в Американския институт по стандартизация.

Подобрения[редактиране | редактиране на кода]

След 1948 г. в ENIAC са направени редица подобрения, включително е добавен примитивен механизъм за четене на запаметена програма[15], който използва Функционалните таблици като ROM. Идеята е включена в патента на ENIAC и е предложена независимо от Ричард Клипингър от BRL. Клипингър се консултира с фон Нойман какъв набор от инструкции да приложи. Той замисля триадресна архитектура, докато фон Нойман предлага едноадресна, защото е по проста за прилагане. Три цифри от един регистър (6) се използват като програмен брояч, друг регистър (15) служи за главен, трети регистър (8) се използва като адресен показалец за четене на данни от функционалните таблици, а повечето от останалите акумулатори (1 – 5, 7, 9 – 14, 17 – 19) се използват като памет за данните.

Програмирането на ENIAC е осъществено от Бети Дженингс, Клипингър и Адел Голдщайн. Машината работи за пръв път като компютър със запаметена програма на 16 септември 1948 г., когато е стартирана програма на Адел Голдщайн, написана за Джон фон Нойман. Тази модификация намалява скоростта на изчисления на ENIAC шест пъти и премахва възможността за паралелни изчисления, но намалява времето за препрограмиране от дни на часове и затова е приемлива. Освен това анализите показват, че поради разликата в електронната скорост на пресмятане и електромеханичната скорост на вход/изход, скоростта на изпълнение на почти всяка задача се определя напълно от скоростта на вход/изход („I/O bound“) дори без оглед на първоначалната възможност за паралелни изчисления. Повечето изчисления биха останали „I/O bound“ дори след намаляването на скоростта, наложено от тази модификация.

Сравнение с други ранни компютри[редактиране | редактиране на кода]

Механични и електрически изчислителни машини са познати от началото на 19 век, но за начало на съвременната компютърна ера се считат 30-те и 40-те години на 20 век.

ENIAC, както Z3 на Конрад Цузе, Harvard Mark I и британският Collosus, могат да извършват математически операции в произволна последователност, но не ги четат от магнитна лента, а се програмират чрез механични превключватели и проводници. ENIAC съчетава възможността за пълна програмируемост по Тюринг със скоростта на електронните изчисления. Компютърът на Атанасов-Бери (ABC), ENIAC и Collosus съдържат електронни лампи. Z3 и ABC извършват пресмятанията в двоична бройна система, ENIAC работи с десетична бройна система.

Както Collosus, до септември 1948 година ENIAC има нужда от ново свързване, за да бъде препрограмиран. Три месеца по-рано, през юни 1948 година, Манчестърската дребномащабна експериментална машина изпълнява първата си програма и получава отличие за първи програмируем компютър. Макар че идеята за програмируем компютър с памет за съхранение на програма и данни се заражда при разработването на ENIAC, приоритетът е машината да бъде завършена бързо заради войната и идеята не е реализирана.

Публичност[редактиране | редактиране на кода]

Z3 в Германия, Collosus в Англия, ABC и ENIAC в САЩ са разработени независимо един от друг през Втората световна война. Z3 е разрушен по време на бомбардировките на Берлин през 1943 година. Машините Collosus са част от ресурсите на армията на Великобритания. Тяхното съществуване става публично чак през 1970-те години, въпреки че информацията за техните възможности остава секретна. Всички те са унищожени през 1945 година, с изключение на две, останали в употреба до 60-те години на 20 век. Компютърът ABC в Университета на Айова е разглобен, след като Джон Атанасов е мобилизиран от армията за проект във Вашингтон.

За разлика от всички тях ENIAC е в центъра на вниманието на медиите през 1946 година.

Патент[редактиране | редактиране на кода]

Поради различни причини патентът за ENIAC, издаден през 1964 година е прекратен през 1973 година с решение на федералния съд по делото Honeywell, Inc. v. Sperry Rand Corp., с което Джон Атанасов се признава за изобретател на първия електронен цифров компютър.

Експонати[редактиране | редактиране на кода]

Части от ENIAC са експонирани в следните институции:

Два модула на ENIAC, експонирани в школата (института) по електроинженерство "Муур”
  • Университетът в Пенсилвания за инженерство и приложна наука притежава четири от четиридесетте оригинални панела и едно от трите функционални табла на ENIAC.
  • Смитсоновият институт има пет панела в Националния Музей на Американската История във Вашингтон.
  • Музеят на науката в Лондон има приемник на показ.
  • Музеят на компютърната история в Калифорния има три панела и функционално табло (на заем от Смитсоновият институт).
  • Университетът в Мичиган има четири панела.
  • Музеят на Военната Артилерия на САЩ има едно функционално табло.
  • Музеят на Военната Полева Артилерия на САЩ има седем панела.
  • Военната академия на САЩ има един от терминалите на ENIAC.
  • Музеят Хайнз Никсдорф има три панела.

Признание[редактиране | редактиране на кода]

ENIAC се включва в IEEE Milestone през 1987 година.

През 1995 година е създаден един много малък чип с размери 7.44 mm на 5.29 mm, който има същата функционалност като ENIAC. Въпреки че този 20 MHz чип е в пъти по-бърз от ENIAC, той е доста по-бавен от модерните за това време микропроцесори.

През 1997 година, шестте жени, които извършват по-голямата част от програмирането на ENIAC са въведени в Залата на славата на световната организация на жени в технологията. Ролята на програмистите на ENIAC се описва в документалния филм от 2010 година, озаглавен Top Secret Rosies: The Female „Computers“ of WWII, от ЛеАнн Ериксон. Документалният филм The Computers, от Кейт МакМахон описва историята на шестте програмистки.

През 2011 година, в чест на 65-тата годишнина от представянето на ENIAC, Филаделфия обявява 15 февруари за ден на ENIAC.

Вижте също[редактиране | редактиране на кода]

Източници[редактиране | редактиране на кода]

  1. Асенова, П. и колектив. Работа с компютри във фирмите, учебник за специалност „Сътрудник в дребния и средния бизнес“, ИК „Призма“, София, 2001.
  2. John_G._Brainerd. // Посетен на 13 октомври 2016.
  3. UShistory.org ENIAC Invetors Retrieved February 4, 2016 USHistory.org ENIAC Inventors.
  4. ENIAC. // Посетен на 29 March 2015.
  5. Ballistic Research Laboratories Report No. 971: A Survey of Domestic Electronic Digital Computing Systems. Aberdeen Proving Ground, MD, United States Department of Commerce Office of Technical Services, December 1955. с. 41. Посетен на 29 March 2015.
  6. Farrington, Gregory. ENIAC: Birth of the Information Age. Popular Science, March 1996. Посетен на 29 March 2015.
  7. ENIAC tutorial for the modulo function. // Посетен на 14 октомври 2016.
  8. ENIAC Programmers Project. // Посетен на 14 октомври 2016.
  9. Barkley Fritz, W. The Women of ENIAC. // IEEE Annals of the History of Computing 18 (3). 1996. с. 13.
  10. Light, Jennifer. When computers were women. // Technology and Culture. 1999. Посетен на 14 октомври 2016.
  11. Goldstine, Herman. The Computer: from Pascal to von Neumann. Princeton, New Jersey, Princeton University Press, 1972. ISBN 0-691-02367-0. с. 226.
  12. Scott McCartney p.140 (1999)
  13. Scott McCartney p.140 (1999): Екерт изнася 11 лекции, Мокли изнася 6, Голдщайн – 6, фон Нойман е трябвало да изнесе една, но не се появил и останалите 24 са разпределени между различни поканени учени и военни
  14. First Draft of a Report on the EDVAC. //
  15. „A Logical Coding System Applied to the ENIAC“. Ftp.arl.mil. 1948-09-29. Retrieved 2010-01-27.
Криейтив Комънс - Признание - Споделяне на споделеното Лиценз за свободна документация на ГНУ Тази страница частично или изцяло представлява превод на страницата „ENIAC“ в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс - Признание - Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година — от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница. Вижте източниците на оригиналната статия, състоянието ѝ при превода, и списъка на съавторите.