Направо към съдържанието

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

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

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

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

В края на 1990-те е направена реплика на компютъра на Атанасов – Бери, изложена в Центъра за изчислителна техника и комуникации Дърам в Университета на Айова.[4]

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

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

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

През 1941 г. Джон Моукли, с когото Атанасов споделя общ интерес към методите за високопродуктивни обемни изчисления, идва на посещение в Еймс и разглежда машината. Това е добре документирано и изиграва голяма роля по-късно при решаването на патентния спор за ENIAC в края на 1960-те.

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

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

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

Според Бъркс[12] основните решения, които взема Атанасов при конструирането, са четири. Най-напред с оглед на постигането на висока точност той избира цифрови, а не аналогови изчисления. Второто важно решение е размерът на изчислителната задача, която си поставя: решаване на система от 29 уравнения с 29 неизвестни (една доста сериозна изчислителна задача за тогавашните времена, тъй като дотогава рядко се опитва решаването на системи от уравнения с повече от 10 неизвестни),[13] което означава обработка на 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 реда.[14] Това позволява въвеждане наведнъж на пет 15-разредни коефициента, плюс знак. С помощта на преобразуващ барабан те се трансформират от десетичен в двоичен код и се записват в запаметяващите барабани. След приключване на изчисленията за извеждане на резултата (коефициент и свободен член на едно уравнение с едно неизвестно) се използва електромагнитен брояч, като преди това се преминава обратно към десетичен код. Окончателното разделяне на свободния член на коефициента се извършва на ръка с калкулатор.

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

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

Решението за отделната памет е оригинално (в наши дни го приемаме за даденост, но в онези години няма такова разделение. Атанасов осъзнава нуждата от отделна памет по същото време като Конрад Цузе.[3] В ABC тя е регенеративна електростатична памет от кондензатори, разположени върху два въртящи се барабана в редове, които Атанасов нарича абаци.[5] В нея се записват началните коефициенти, междинните резултати и крайният резултат. Представлява два барабана с по 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, запазена в музея на Смитсоновия институт и послужила за изработването на репликата.

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

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

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

Larson, [20]
В оригинал
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 (част от Университета на Айова, на английски: Iowa State University of Science and Technology) инициират изработването на работещо копие на компютъра на Джон Атанасов. Проектът за реконструкцията възлиза на 300 000 долара[4] и е документиран от Дел Блум,[21] който описва процеса по намиране на финансиране и осигуряване на подходяща елементна база и привежда списъка на участниците. През април 1997 репликата е предадена за тестване и дебъгване на Джон Густафсон.[3] Първата демонстрация на работещата реплика е на 8 октомври 1997 пред Националния прес клуб във Вашингтон. Следва обиколка из САЩ с демонстрации, макар че самият Густафсон призовава да не се прекалява.[22] Сега копието на АВС е разположено като експонат във фоайето на Центъра за изчислителна техника и комуникации Дърам в Университета на Айова.[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. а б в г д Густафсон, Джон. "Reconstruction of the Atanasoff-Berry Computer", paper presented in Paderborn, Germany in 1998 // Annals of the History of Computing. Посетен на 22 март 2017. (на английски)
  4. а б ABC Reconstruction, 1994 – 1997 // Посетен на 16 ноември 2017. (на английски)
  5. а б в г д е ж з Lee, J.A.N. Computer pioneers:John Vincent Atanasoff // IEEE Computer society. Посетен на 15 март 2017. (на английски)
  6. Burks 1989, с. 7 – 8.
  7. Бончев 1990, с. 45.
  8. Atanasoff, J.V. Computing Machine for the solution of large systems of linear algebraic equations // Iowa State School Report. август 1940 (публикуван през 1973).[неработеща препратка]
  9. Бончев 1990, с. 12.
  10. Бончев 1990, с. 110.
  11. Бончев 1990, с. 111.
  12. Burks 1989, с. 8 – 10.
  13. а б Протохристов, Хр. Създателят на първия модерен компютър // Светът на физиката (2). 2004. с. 47. Посетен на 28 февруари 2017.
  14. Burks 1989, с. 50.
  15. Burks 1989, с. 56.
  16. Berry, C.E. Design of Electrical Data Recording and Reading Mechanism // MSc Thesis. Iowa State College, 1941. Архивиран от оригинала на 2017-02-18. Посетен на 2017-03-05. (на английски)
  17. Бончев 1990, с. 129.
  18. Burks 1989, с. 63.
  19. Бончев 1990, с. 28.
  20. а б 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. (на английски)
  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. John Gustafson and Charles Shorb demonstrate the functionality and operation of the ABC Reconstruction (video) // Посетен на 17 март 2017. (на английски)
  1. При този метод неизвестните се изключват последователно чрез умножение и изваждане на коефициентите, като в резултат броят на уравненията в системата се намалява с единица. Процедурата се повтаря до достигането на едно уравнение с едно неизвестно, което се решава лесно. Изчислената стойност се замества в предходното уравнение, което също става с едно неизвестно и т.н. За решаване на система с 29 неизвестни методът на Гаус изисква извършването на 293 операции.
  2. В днешни термини може да се каже, че операнд А и B се изваждат и резултатът се запомня в операнд А