Компютър на Атанасов-Бери

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене
Реплика (1997 г.) на компютъра Атанасов-Бери в Центъра Дъръм, Щатски университет на Айова.

Компютърът на Атанасов-Бери (на английски: Atanasoff-Berry Computer, съкратено ABC) е първият електронен цифров компютър с регенеративна памет[1]. Създаден е като университетски проект в периода от 1939 до 1942 г. от Джон Атанасов и Клифърд Бери. Макар че АВС все още не е днешният универсален компютър със запаметена програма [2], в него са реализирани някои принципни решения, които се използват и днес.

АВС е проектиран и създаден по време на работата на Джон Атанасов в катедрата по физика на Щатския колеж в Айова (на английски: Iowa State College, ISC). Целта е да се решават системи с до 29 линейни уравнения с 29 неизвестни по модифициран метод на Гаус, но проектът е прекъснат поради войната на стадий, на който машината е решавала системи уравнения с 3 до 5 неизвестни[3]. След това е демонтиран и забравен и става широко известен в края на 1960-те по повод на патентното дело за ENIAC.

История[редактиране | редактиране на кода]

Предпоставка за създаването на АВС е ежедневната необходимост от решаване на диференциални уравнения, което може да се сведе до решаване на системи от линейни уравнения. Първоначално Атанасов се опитва да използва табулатор на IBM, но без успех. През 1936 г. заедно с Глен Мърфи, колега атомен физик, създават малък аналогов калкулатор за изследване на геометрията на повърхности, който наричат „лапласиометър“. Той решава уравнение на Лаплас директно, без да преобразува диференциалните уравнения в системи от линейни уравнения.[1] Атанасов обаче установява, че той има недостатък, присъщ на аналоговите устройства – точността му прогресивно намалява с увеличаването на отклонението на отделните части на машината от номиналните параметри.

Към края на 1938 г. Атанасов стига до концепцията за принципно нова изчислителна машина – да бъде цифрова, да смята с двоични числа вместо с употребяваните дотогава десетични, да не брои, а да използва логически изрази, да извършва изчисленията на базата на електронни лампи, а не на релета, и да има памет отделно от изчислителния модул[4]. Според самия Атанасов той намира това решение по необичаен начин – една нощ, разочарован от множеството безплодни усилия по проекта, той се качва на колата си и кара без конкретна посока. След двеста километра спира в крайпътно заведение в Илинойс и там на чаша питие стига до това, което впоследствие ще се окаже практическата реализация[4]. Освен физик и математик, Атанасов е висококвалифициран експерт и в електронната техника, което му помага да проектира конкретните схемни решения. За построяването на машината Атанасов се нуждае от техническа помощ и неговият приятел Харолд Андерсън, също професор по физика в ISC, му препоръчва един от най-добрите си дипломанти – Клифърд Бери.

През март 1939 г. от ISC му отпускат 650 долара и Атанасов и Бери започват работа, като работата се извършва в приземието на лабораторията по физика. В края на декември на 1939 г. Атанасов и Бери създават малък настолен модел (прототип), който им позволява да тестват паметта и изчислителния модул в различни условия. Резултатите са добри, макар че операции се извършват с 8-разредни двоични еквиваленти на десетични числа, и те получават още 850 долара от ISC.[5][6] През 1940 г. Атанасов представя кратко описание на машината[7][8], кандидатства за финансиране и през 1941 получава 5330 долара от Research Corporation of New York[4][9]. До средата на 1942 г. успяват да създадат електронна изчислителна машина, която изпълнява операциите събиране и изваждане в двоичен код, като използва отделна памет от електростатичен тип, изпълнена с кондензатори. Поради някои конструктивни трудности успяват да решат системи с линейни уравнения само с 3 до 5 неизвестни[3]. По същото време Атанасов и Бери предават на ръководството на ISC подробно описание на машината според договора, сключен през 1941 при получаването на външното финансиране, но заявка за патентоване така и не е направена[4].

С развитието на Втората световна война Атанасов и Бери са мобилизирани да работят във военни проекти извън Айова и така и не се връщат към проекта. ABC е демонтиран, повечето компоненти са изгубени, запазва се само един от барабаните памет с кондензатори. Проектът става широко известен едва в края на 1960-те по повод на патентното дело за ENIAC, когато някои от документите и чертежите са предявени като основен аргумент срещу претенцията на Мокли и Екерт за създаването на първия електронен цифров компютър. През 1968 Атанасов нарича машината компютър на Атанасов-Бери [4](Бери умира през 1963).

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

Общ изглед на ABC

Атанасов решава да приложи модифициран метод на Гаус[notes 1], който отнема 10 пъти по-малко време[10], при който се извършват само операции събиране и изваждане. В дадена двойка уравнения онова, което има по-малък коефициент пред неизвестното х1, се изважда от другото уравнение толкова пъти, колкото е необходимо, за да стане коефициентът пред този член нула – полученото уравнение е с едно неизвестно по-малко. Процедурата се повтаря с друга двойка уравнения и се стига до второ уравнение с елиминирано същото неизвестно. Групирането на уравненията по двойки и елиминирането се повтарят докато се стигне до уравнение с едно неизвестно. То не се решава веднага, а с него и с всяко от първоначалните уравнения се образуват нови двойки, докато накрая се получат толкова уравнения с едно неизвестно, колкото са неизвестните и това всъщност е търсеното решение. Крайният резултат се изчислява ръчно, като константата във всяко уравнение се разделя на коефициента.

Според Бъркс[11] основните решения, които взема Атанасов при конструирането, са четири. Най-напред с оглед на постигането на висока точност той избира цифрови, а не аналогови изчисления. Второто важно решение е размерът на изчислителната задача, която си поставя: решаване на система от 29 уравнения с 29 неизвестни (една доста сериозна изчислителна задача за тогавашните времена, тъй като дотогава рядко се опитва решаването на системи от уравнения с повече от 10 неизвестни)[12], което означава обработка на 30 коефициента, при това той предвижда точност на представяне от 15 десетични знака. Третото решение е модификацията на метода на Гаус. От това произтичат следните конструктивни решения: необходими са изчислителен модул, отделна междинна памет, както и средства за вход и изход. За изчислителния модул Атанасов избира не релета, а електрически вериги с електронни лампи, които дават възможност за изпълнение на логически изрази. Четвъртото му важно решение е да избере двоичен формат за представяне на числата, а не десетичен, както е популярно в известните дотогава машини. Това го насочва за паметта да използва кондензатори, чиито две състояния – заредено и разредено – съответстват на 0 и 1. За да осигури точност от 15 десетични знака Атанасов избира 50-битово представяне на числата (плюс един бит за знак + или -).

Изчислителният модул представлява поредица от 30 идентични последователни суматора (на английски: Add-Substract Mechanism), работещи едновременно (днес бихме нарекли този модул аритметично-логическо устройство). Всеки суматор е предназначен за събиране или изваждане на една двойка числа (машинна дума). Те изваждат всеки коефициент на едното уравнение от съответния коефициент на второто и повтарят процедурата дотогава, докато коефициентът пред едно от неизвестните стане нула, т.е., броят им намалее с 1. След това полученото уравнение с едно неизвестно по-малко се записва като междинен резултат на подходящ носител и се подава отново за следваща операция по елиминиране[notes 2]. Паметта, върху които се записват коефициентите на една двойка уравнения, е във формата на два въртящи се барабана, разположени върху обща ос.

Корпусът на АВС е изработен от профилна стомана и има размери на голямо бюро: 1500 х 910 х 910 mm. Когато е поставен капакът на запаметяващите барабани, машината наподобява пиано. Тежи само 340 kg (за сравнение ENIAC заема 167 m2). Машината се захранва от електрически ток с напрежение 120 волта и честота 60 херца, която се използва и за задаване на такта. По-голяма част от работата по монтажа на ABC е дело на Клифърд Бери с помощта на студенти.

Вход-изход[редактиране | редактиране на кода]

Входно-изходните операции са два типа: външни и вътрешни. При външния вход коефициентите и константите на всяко едно от две уравнения се въвеждат посредством специално конструиран четец на стандартни перфокарти, записани като десетични числа на 80 колони и 10 реда[13]. Това позволява въвеждане наведнъж на пет 15-разредни коефициента, плюс знак. С помощта на преобразуващ барабан те се трансформират от десетичен в двоичен код и се записват в запаметяващите барабани. След приключване на изчисленията за извеждане на резултата (коефициент и свободен член на едно уравнение с едно неизвестно) се използва електромагнитен брояч, като преди това се преминава обратно към десетичен код. Окончателното разделяне на свободния член на коефициента се извършва на ръка с калкулатор.

Вътрешното циклично въвеждане и извеждане на междинните двоични резултати, което е необходимо за метода на елиминацията, е основен проблем за проекта, защото по това време не е известен метод за запис на двоичен код[14]. Затова Атанасов и Бери конструират оригинални двоични „карти“ с по-голям формат 8,5 х 11 инча, изработени от подходящ диелектрик (хартия). Идеята за тях е на Клифърд Бери, който предлага записът да става чрез прогарянето им с високоволтова искра, а четенето да се основава на намаленото пробивно напрежение на мястото на дупчиците. Тази идея се превръща в негова дипломна работа за придобиване на степен магистър.[15] Разработени са съответните електронни устройства за запис (прогаряне с високоволтов дъгов разряд), като дупката отбелязва логическа 1, а отсъствието ѝ е логическа 0, и за четене. На всяка карта се записват/четат 30 реда едновременно в 50 колони и, т.е. 1500 бита. Устройствата за запис и четене на двоични данни обаче не са достатъчно надеждни, тъй като е необходимо да се намери оптимална комбинация от напрежение на запис, напрежение на четене и свойства на диелектрика. Изпитванията показват случайни грешки[16], като вероятността за грешка нараства бързо след достигането на 104 бита[17], което означава, че могат да се решават успешно системи не с 29, а с по-малък брой неизвестни – до пет системи с пет неизвестни. При тестването на репликата през 1997 г. Густафсон отговаря на въпроса “Работил ли е ABC?” така: да, но проблемите с надеждността предотвратяват използването на пълния капацитет на паметта му[3].

Суматори[редактиране | редактиране на кода]

Изчислителният модул се състои от 30 идентични последователни суматора, които освен събиране и изваждане изпълняват и функциите прочитане и зареждане на точно определен ред от барабана. Всеки суматор използва по 7 радиолампи. В АВС са използвани общо 331 електронни лампи, включително тиратрони, но консумираната мощност не превишава 1000 вата. Използването на електронни лампи повишава значително скоростта на изчисление в сравнение с известните дотогава механични устройства. Едно 50-битово число се събира или изважда за 5/6 от секундата. Основната операция при АВС е паралелно събиране или изваждане, като целта е последователно елиминиране на коефициентите пред неизвестните в една двойка уравнения. Всяка секунда АВС извършва едновременно 30 събирания или изваждания автоматично, макар че се налага намеса на оператор за ръчно превключване в определени моменти и ръчно подаване на десетичните и двоичните перфокарти.

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

Решението за отделната памет е оригинално (в наши дни го приемаме за даденост, но в онези години няма такова разделение. Атанасов осъзнава нуждата от отделна памет по същото време като Конрад Цузе[3]). В ABC тя е регенеративна електростатична памет от кондензатори, разположени върху два въртящи се барабана в редове, които Атанасов нарича абаци[4]. В нея се записват началните коефициенти, междинните резултати и крайният резултат. Представлява два барабана с по 1600 кондензатора, като заредено състояние на кондензатора съответства на логическа 1, а незаредено – на 0. Изработени са във форма на два кухи цилиндъра, дълги около 28 cm с диаметър 13 cm, покрити са с изолационен материал, имат обща ос на въртене и правят един оборот в секунда. Всеки барабан съдържа 32 групи (30 плюс две резервни) от по 50 кондензатора по диаметъра на цилиндъра, което е равносилно на 30 числа (машинни думи) по 50 бита. Всички 30 думи се достъпват едновременно от тридесетте суматора и всеки суматор чете и записва данните последователно бит по бит при всяко стъпково завъртане на барабана (стъпката е 6 градуса). С други думи, при първата стъпка на завъртане се достъпва 0-вият бит на всички думи, при 2-рата стъпка на завъртане се достъпва 1-вият бит на всички думи, при 3-тата стъпка на завъртане – 2-рият бит на всички думи и т.н. до 49-бит. Това дава възможност за извършване на 30 операции в секунда. Едновременно могат да се обработват 60 числа от по 50 бита, т.е. 3000 бита, или общо АВС разполага с 0,3 Kb памет. При всеки оборот състоянието на кондензаторите се прочита и възстановява (регенерира).

Барабанното запаметяващо устройство е една от малкото запазени автентични части на ABC, открита в музея на Смитсоновия институт и послужила за изработването на репликата.

Спор за ENIAC[редактиране | редактиране на кода]

След войната изчислителната техника започва бурно да се развива, но АВС е забравен (за него не е имало никакви публикации с оглед предстоящото патентоване). През 1945 г. Джон Мокли и Дж. Проспър Екърт-младши създават ENIAC и до 1973 г. се смята, че той е първият електронен цифров компютър. През 1955 г. обаче започва съдебна битка относно патентите на ENIAC и във връзка с нея познанството на Мокли с Атанасов придобива значение. Двамата се срещат за първи път през декември 1940 г. на една конференция. Мокли има интерес към решаването на системи уравнения, а Атанасов го осведомява за своя проект и кани Мокли на гости в Еймс. В периода 14 – 20 юни 1941 г. Мокли гостува в дома му и двамата обсъждат конструкцията на компютъра АВС, както и други идеи на Атанасов, свързани с изчислителната техника. Мокли прочита меморандума на Атанасов от август 1940 г. и си води подробни бележки, защото Атанасов отказва да му даде копие. По време на визитата компютърът е почти завършен и гостът се запознава подробно с принципа на работа и техническа реализация. Дискусиите с Атанасов и неговия асистент са приятелски и откровени[12][18]. Не е ясно дали Атанасов е осъзнавал доколко критично е разкриването на информация преди подаването на заявка за патент, макар че в по-късни спомени той цитира свое мнение в тази посока, изразено в писмо до Мокли. Процедурата по патентоване е задължение на ISC, но колежът така и не е я завършва[4]. През март 1973 г. съдът стига до заключението, че в резултат на това посещение, на дискусиите с Атанасов и Бери, на демонстрациите на машината и запознаването с ръкописа, Мокли е знаел за ABC, но не го е споменал при представянето на съществуващото ниво в заявката си, т.е. претенцията му за изобретяването на първия „автоматичен цифров компютър“ е неоснователна.

Патентният спор бележи голяма част от живота на Джон Атанасов, защото той е призован да свидетелства. Делото тече с години – от 1966 до 1973, изписани са стотици страници със свидетелски показания по техническата страна на спора, разпитани са много експерти. На 19 октомври 1973 г. Федералният съд обявява патента за ENIAC за невалиден [19] поради редица процедурни нарушения. Процесът води до популяризиране на работата на Джон Атанасов по отношение на ABC и регенеративната памет[4]. В частност, в решението се казва:

Екерт и Мокли не са изобретили първи автоматичния електронен цифров компютър, а вместо това са извлекли идеята от един господин на име д-р Джон Винсент Атанасов

Larson, [19]
В оригинал
Eckert and Mauchly did not themselves first invent the automatic electronic digital computer, but instead derived that subject matter from one Dr. John Vincent Atanasoff.

Реплика[редактиране | редактиране на кода]

През 1997 г. екип от учени от Ames Laboratory (част от Университета на Айова) започват проект по изработването на работещо копие на компютъра на Джон Атанасов. Цената на проекта била $300 000[20]. Проектът за реконструкцията е документиран от Дел Блум[21], който описва процеса по намиране на финансирането и осигуряването на подходяща елементна база и списъка с участниците. През април 1997 репликата е предадена на Джон Густафсон за тестване и дебъгване и той описва работата си през 1998 г. [3]. Първата демонстрация на работещата реплика е пред Националния прес клуб във Вашингтон на 8 октомври 1997. Следва обиколка из САЩ с демонстрации, макар че самият Густафсон призовава да не се прекалява с демонстрациите[22]. Сега копието на АВС е разположено като експонат във фоайето на Центъра за изчислителна техника и комуникации Дърам в ISC[23].

Приносът на Атанасов[редактиране | редактиране на кода]

Работата по ABC компютъра никога не е публикувана и остава неизвестна за обществеността в продължение на 25 години. По време на разпита му като свидетел на въпрос „Защо не сте публикували?“, Атанасов отговаря „Предполагам, защото така съм решил.“.[16] – стр. 943) В решението на съда по патентното дело за ENIAC се констатира, че в продължение на 20 години Атанасов не е отстоявал своето изобретение.([15] – т. 13.25.2) Въздействието на ABC компютъра върху развитието на компютърните технологии е пречупено през призмата на ENIAC, като компютърната техника достига до технологичното ниво от 1967 г. косвено и благодарение на ABC (материали за проекта са публикувани след 1970 г.), но въпреки това приносите на Атанасов са съществени. Патентният спор ENIAC служи само да ги популяризира сред общественото мнение, с което създава привърженици и противници.

ABC компютърът е различен от всички компютри правени преди него. Някои негови характеристики са:

  • регенеративната памет – идеята, енергията заредена в кондензатор да се използва за съхраняване на двоична информация е най-същественият принос на Атанасов, който принцип се използва и в съвременните динамични компютърни памети. Година и половина след Атанасов (1943 г.) в Aquarius машината, която е част от Colossus се използва регенеративна лента (лента с кондензатори).([17] – стр.301)
  • паралелен процесор – процесорът на ABC (30 последователни суматора) заедно с процесора на Стибиц (два паралелни суматора), който обаче е електромеханичен (изграден с релета) са най-ранните решения на SIMD (Single instruction Multiple Data) паралелен процесор. И двете машини са двоични. Процесорът на ABC компютъра е оригинално решение – 30 последователни процесора с 30 двойки регистър/акумулатор, или пример за това как се решава технически проблем с минимални финансови средства. Паралелният еквивалент би използвал не по-малко от 21 хиляди електронни лампи (ако се използват двойни триоди), заедно с паметта – т.е. би бил по-голям от ENIAC. Най-настървените противници на Атанасов биха подчертали, че ABC компютърът е бавен, но трябва да се отчете, че с ABC компютъра постига целите си – точност на изчисленията с цена под 6000 долара, когато всички останали решения по онова време струват стотици хиляди.
  • автоматично изпълнение на операциите – подобно на компютъра на Джордж Стибиц ABC компютърът изпълнява фиксирана последователност от операции автоматично. Тези операции могат до се разглеждат като композитни операции.
  • използва двоична система – при проектирането на електронноизчислителните машини от 1930-те и 1940-те години дилемата дали да се използва двоична или десетична бройна система все още не е твърдо решена. ABC компютърът използва актуалната и до наши дни двоична бройна система и е първото известно експериментално електронно устройство (изпълнено с електронни лампи, а не с релета), което изпълнява двоична операция събиране.
  • използва логически изрази – през 1930-те и 1940-те години има два подхода при проектиране на изчислителна техника – броене или логически изрази. В ABC компютъра са използвани логически изрази.

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

  1. а б Burks 1989.
  2. Encyclopedia of Computer Science. second. New York, Petrocelli/Charter, 1976. ISBN 0-88405-321-0. с. 488 – 489.
  3. а б в г д ((en)) Густафсон, Джон. "Reconstruction of the Atanasoff-Berry Computer", paper presented in Paderborn, Germany in 1998. // Annals of the History of Computing. Посетен на 22 март 2017.
  4. а б в г д е ж з ((en)) Lee, J.A.N.. Computer pioneers:John Vincent Atanasoff. // IEEE Computer society. Посетен на 15 март 2017.
  5. Burks 1989, с. 7 – 8.
  6. Бончев 1990, с. 45.
  7. Atanasoff, J.V.. Computing Machine for the solution of large systems of linear algebraic equations. // Iowa State School Report. август 1940 (публикуван през 1973).
  8. Бончев 1990, с. 12.
  9. Бончев 1990, с. 110.
  10. Бончев 1990, с. 111.
  11. Burks 1989, с. 8 – 10.
  12. а б Протохристов, Хр. Създателят на първия модерен компютър. // Светът на физиката (2). 2004. с. 47.
  13. Burks 1989, с. 50.
  14. Burks 1989, с. 56.
  15. ((en)) Berry, C.E.. Design of Electrical Data Recording and Reading Mechanism. // MSc Thesis. Iowa State College, 1941.
  16. Бончев 1990, с. 129.
  17. Burks 1989, с. 63.
  18. Бончев 1990, с. 28.
  19. а б ((en)) Larson, E. R.. Findings of Fact, Conclusions of Law and Order for Judgement. // File. No. 4 – 67 CIV. 138, Honeywell v. Sperry Rand Corporation and Illinois Scientific Developments Inc.. US District Court, District of Minesota, Fourth Division,, 19 Oct. 1973.
  20. ABC Reconstruction, 1994 – 1997. // Посетен на 17 март 2017.
  21. Del Bluhm. Documenting the ABC Replica Project and its Contributors. // Atanasoff Today, 2013.
  22. Dr John L. Gustafson: Atanasoff-Berry Computer. // Посетен на 26 март 2017.
  23. ((en))  John Gustafson and Charles Shorb demonstrate the functionality and operation of the ABC Reconstruction (video). // Посетен на 17 март 2017.

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

Бележки[редактиране | редактиране на кода]

  1. При този метод неизвестните се изключват последователно чрез умножение и изваждане на коефициентите, като в резултат броят на уравненията в системата се намалява с единица. Процедурата се повтаря до достигането на едно уравнение с едно неизвестно, което се решава лесно. Изчислената стойност се замества в предходното уравнение, което също става с едно неизвестно и т.н. За решаване на система с 29 неизвестни методът на Гаус изисква извършването на 293 операции.
  2. В днешни термини може да се каже, че операнд А и B се изваждат и резултатът се запомня в операнд А

Външни препратки[редактиране | редактиране на кода]