Кіріспе

Сақталған бағдарламалы компьютердің алғашқы жарияланған сипаттамасы

EDVAC туралы баяндаманың бірінші жобасы (көбінесе Бірінші жоба деп қысқартылады) – Джон фон Нейман жазған және 1945 жылғы 30 маусымда құпия ENIAC жобасының қауіпсіздік офицері Герман Голдстин таратып жүрген 101 беттік толық емес құжат. Онда сақталған бағдарлама тұжырымдамасын қолдана отырып, компьютердің логикалық дизайнының алғашқы жарияланған сипаттамасы бар, ол фон Нейман архитектурасы деп белгілі болды; фон Нейманның басқа да үлес қосушыларды атамауы салдарынан бұл атау даулы болып кетті.

Тарих

Фон Нойман Лос-Аламосқа (Нью-Мексико) пойызбен бара жатып, баяндаманы қолмен жазып, жазылған жазбаларын Филадельфияға жіберді. Голдстайн баяндаманы теріп, көшірді. Теңгештелген есепте 30 маусым деп көрсетілгенімен, алғашқы нұсқаның 24 данасы EDVAC жобасымен тығыз байланысты адамдарға 25 маусымда, бес күн бұрын таратылды. Баяндамаға болған қызығушылық оны бүкіл әлемге таратты; Кембридж университетінің Морис Уилкс баяндаманың мазмұнына деген қуанышының өзінің 1946 жылғы жазда Мур мектебінің лекцияларына АҚШ-қа бару шешіміне түрткі болғанын айтты.

Қысқаша мазмұны

Фон Нейман "өте жоғары жылдамдықты автоматты цифрлық есептеу жүйесінің" толыққанды дизайнын сипаттайды. Ол оны алты негізгі бөлімге бөледі: орталық арифметикалық бөлім, CA; орталық басқару бөлімі, CC; жад, M; кіріс, I; шығыс, O; және (баяу) сыртқы жад, R, мысалы, перфокарталар, телетайп лентасы немесе магниттік сым немесе болат лента. CA қосу, алу, көбейту, бөлу және квадрат түбірді орындайды. Логарифмдер және тригонометриялық функциялар сияқты басқа математикалық операциялар кестелерді қарастыру және интерполяция арқылы, мүмкін екікүндік интерполяциямен жасалуы керек. Ол көбейту мен бөлуді логарифм кестелерімен жасауға болатынын, бірақ кестелерді жеткілікті кішкентай ұстау үшін интерполяция қажет екенін, ал ол өз кезегінде көбейтуді талап етеді, бірақ бәлкім, азырақ дәлдікпен. Сандар екілік нотацияда көрсетіледі. Ол 27 екілік цифрдың (ол 1948 жылы Клод Шеннон енгізген "бит" терминін қолданбады) жеткілікті болады деп есептейді (ондық разрядқа дейін 8 дәлдік береді), бірақ сандарды командалардан ажырату үшін таңба битімен және битпен 30 биттік сандарға дейін дөңгелектейді, нәтижесінде ол "кіші цикл" деп атайтын 32 биттік сөз пайда болады. Екілік толықтыру арифметикасы қолданылады, бұл алу амалын жеңілдетеді. Көбейту мен бөлу үшін ол екілік нүктені таңба битінен кейін орналастыруды ұсынады, яғни барлық сандар -1 мен +1 аралығында қарастырылады, сондықтан есептеу мәселелері тиісінше масштабталуы керек.

Сұлбаның құрылысы

Вакуумдық түтіктер релелердің орнына қолданылады, себебі түтіктер 10 миллисекундқа қарағанда бір микросекундта жұмыс істей алады. Фон Нейман (Sec. 5.6) компьютерді мүмкіндігінше қарапайым ұстауды, операцияларды үстемелеу арқылы өнімділікті арттыруға тырыспауды ұсынады. Арифметикалық операциялар бір уақытта бір бинарлық цифрдан орындалуы керек. Ол екі бинарлық цифрды қосуға бір микросекунд кеткенін, демек 30 биттік көбейту шамамен 302 микросекунд немесе шамамен бір миллисекундқа созылатынын, сол кездегі кез келген есептеу құрылғысынан әлдеқайда жылдам болатынын есептейді. Фон Нейманның дизайны «E элементтері» деп аталатын құрылғыларға негізделген, олар биологиялық нейронды модельдеуге арналған, бірақ ол бір немесе екі вакуумдық түтіктерді пайдаланып құрастырылатын цифрлық құрылғылар болып табылады. Қазіргі заманғы терминдермен айтқанда, оның ең қарапайым E элементі – кері кірісі бар (тежеу кірісі) екі кірісті ЖӘНЕ қақпасы. Көбірек кірісі бар E элементтері шекті мәнмен байланысты және оң кіріс сигналдарының саны шекті мәнге жеткенде немесе одан асқанда шығыс береді, егер (бір ғана) тежеу желісі импульс бермесе. Ол көбірек кірісі бар E элементтерін ең қарапайым нұсқадан құрастыруға болатынын айтады, бірақ оларды тікелей вакуумдық түтікшелік тізбектер ретінде құрастыруды ұсынады, себебі оған аз түтікшелер қажет болады. Осы E элементтерінен күрделірек функционалдық блоктар құрылуы керек. Ол осы E элементтерін қосу, алу, көбейту, бөлу және квадрат түбірді табу, сондай-ақ екі күйлі жад блоктары мен басқару тізбектерін құру үшін қалай қолдануға болатынын көрсетеді. Ол Бульдік логика терминологиясын қолданбайды. Тізбектер вакуумдық түтікше осцилляторынан алынған бас жүйелік сағатпен синхронды болуы керек, мүмкін кристаллмен басқарылатын. Оның логикалық схемаларында уақыт бірлігінің кешігуін көрсету үшін жебе басы символы бар, себебі синхронды жобада уақыт кешігулері ескерілуі керек. Ол бір микросекундта электр импульсі 300 метрді қозғалатынын атап өтеді, сондықтан сағаттың жылдамдығы әлдеқайда жоғары болғанша, мысалы, секундына 108 цикл (100 МГц), сымның ұзындығы мәселе тудырмайды. Қателерді анықтау және түзету қажеттілігі айтылады, бірақ толыққанды түсіндірілмейді.

Жад құрылымы

Кейіннен Фон Нейман архитектурасы деп аталатын негізгі дизайн тұжырымдамасы – сандар (деректер) мен бұйрықтар (нұсқаулар) бар бірыңғай жад. "Құрылғыға едәуір жад қажет. Осы жадтың әртүрлі бөліктері олардың табиғаты мен мақсаттары жағынан біршама өзгеше функцияларды орындауы керек деп табылса да, бүкіл жадты бір орган ретінде қарастыруға және оның бөліктерін жоғарыда санамаланған әртүрлі функциялар үшін мүмкіндігінше бір-біріне ауыстырып отыруға ұмтылуға болады". (Бөлім 2.5) "CC-ге келіп түскен бұйрықтар M-ден, яғни сандық материал сақталатын сол жерден келеді". (Бөлім 14.0) Фон Нейман математикалық мәселелердің бірнеше кластарына, соның ішінде қалыпты және дербес дифференциалдық теңдеулерге, сұрыптау және ықтималдық тәжірибелеріне негізделген жадтың қажетті көлемін бағалайды. Олардың ішінде екі өлшемді және уақытпен дербес дифференциалдық теңдеулер ең көп жадты қажет етеді, ал үш өлшемді және уақыт сол кездегі технология мүмкіндіктерінен асып түседі. Ол жад жүйенің ең үлкен бөлімшесі болады деген қорытындыға келеді және жобалау мақсаты ретінде 32 битті 8192 кіші циклді (сөзді) ұсынады, ал 2048 кіші цикл әлі де пайдалы болады. Оның пікірінше, бағдарламаны сақтау үшін бірнеше жүздеген кіші цикл жеткілікті. Ол жылдам жадтың екі түрін ұсынады: кешіктіру желісі және иконоскоп түтігі. Әрбір кіші цикл бірлік ретінде қарастырылады (сөздік адрестеу, Бөлім 12.8), ал нұсқаулар тізбектеп орындалады, жадтағы басқа нүктеге ауысу үшін арнайы нұсқаумен (яғни, секіру нұсқауы). Кешіктіру желісіндегі екілік цифрлар желі арқылы өтеді және бастапқы нүктеге қайтарылады. Кешіктіру желісіндегі деректерге қол жеткізу үшін қажетті деректердің қайтадан келуін күтуге уақыт жұмсалады. Осы уақыттық мәселелерді талдағаннан кейін ол кешіктіру желісі жадын 256 кешіктіру желісі "органына" (DLA) ұйымдастыруды ұсынады, әрқайсысы 1024 битті немесе 32 кіші циклді сақтайды, бұл негізгі цикл деп аталады. Жадқа қол жеткізу алдымен DLA-ны (8 бит) таңдайды, содан кейін DLA ішіндегі кіші циклді (5 бит), барлығы 13 адрес биті. Иконоскоп жады үшін ол түтік бетіндегі әрбір сканерлеу нүктесінің конденсатор екенін және конденсатор бір бит сақтай алатынын мойындайды. Мұндай жадқа өте жоғары дәлдікте сканерлеу қажет, және жадтың қызмет ету мерзімі қысқа болады, мүмкін бір секундқа ғана созылады, сондықтан оны мерзімді түрде қайтадан жаңарту (жаңарту) қажет болады.

Бұйрықтар (нұсқаулар)

14.1-бөлімде фон Нейман бұйрықтардың форматын ұсынады, оны ол код деп атайды. Бұйрық түрлеріне негізгі арифметикалық амалдар, CA мен M арасындағы кіші циклдарды жылжыту (қазіргі терминдерде сөзді жадқа жүктеу және сақтау), алдыңғы амалдың таңбасына қарай екі санның біреуін таңдайтын бұйрық(тар), кіріс және шығыс, сондай-ақ CC-ді басқа жад орнына (секіру) көшіру кіреді. Ол әртүрлі бұйрық түрлеріне қажетті биттердің санын анықтайды, келесі сөз операнды болатын дереу бұйрықтарды ұсынады және болашақта жадының адрестеу көлемін арттыру үшін бұйрық форматында бос биттерді қалдырудың маңыздылығын талқылайды, сондай-ақ басқа да белгіленбеген мақсаттарды қарастырады. Кіші циклда бірнеше бұйрықты сақтау мүмкіндігі талқыланады, бірақ бұл тәсілге көңілсіздікпен қаралады. Бұйрықтардың тізімі берілген, алайда кіріс және шығыс нұсқаулары туралы талқылау алғашқы нұсқада қамтылмаған.

Дау

Есептің жариялануы мен таратылуы EDVAC жобалау тобының екі фракциясы арасында екі себептен қатыгез даудың туындауына себеп болды. Біріншіден, есеп EDVAC патенттік өтінімі тіркелгенге дейін бір жылдан астам бұрын жарияланған құпиялы ақпарат деп танылды, бұл патентті күшін жойды. Екіншіден, EDVAC жобалау тобының бір бөлігі сақталған бағдарлама идеясы фон Нейман консультант ретінде жұмыс істеуге дейін Пенсильвания университетінің Мур электр инженерия мектебінде өткен кездесулерде қалыптасқан деп санды. Сондықтан, Бірінші жобада фон Нейман мен Голдстайн басқа авторларды көрсетпегендіктен, барлық еңбектің құрметі тек фон Нейманға ғана берілді. (Мэтью эффектісі және Стиглер заңына қараңыз).