Кіріспе

Біріккен Корольдікте салынған алғашқы компьютерлердің бірі – Pilot ACE (Automatic Computing Engine). 1950 жылдардың басында Ұлттық физикалық зертханада (NPL) салынған бұл машина, сонымен қатар алғашқы жалпы мақсаттағы, сақталған бағдарламалық компьютерлердің бірі болды. Ол Манчестер Mark 1 және EDSAC сияқты сол дәуірдегі Ұлыбританияның басқа да жобаларымен бірге жасалды. Бұл толық ACE-нің алдын ала нұсқасы еді, оның жобасын Алан Тьюринг жасаған, бірақ құрылысы аяқталмай тұрып NPL-ден кетіп қалды.

Тарих

Pilot ACE Тьюрингтің ACE толық дизайнының қысқартылған нұсқасына құрылды. Тьюринг NPL-ден кеткеннен кейін (ішінара АСЕ құрылысының баяу прогресіне көңілі қалғандықтан), Джеймс Х. Уилкинсон жобаны өз мойнына алды. Дональд Дэвис, Гарри Хаски және Майк Вудгер жобалауға қатысты. Pilot ACE өзінің алғашқы бағдарламасын 1950 жылдың 10 мамырында іске қосты және 1950 жылдың қарашасында баспасөзге көрсетілді. Бастапқыда прототип ретінде жоспарланғанмен, машинаның, әсіресе сол кездегі басқа есептеу құрылғыларының жетіспеуін ескере отырып, пайдалы ресурс болатыны анық болды. Оперативтік пайдалануды ыңғайлы ету үшін бірнеше жаңартулардан кейін, ол 1951 жылдың соңында пайдалануға берілді және келесі бірнеше жыл бойы кеңінен қолданылды. Pilot ACE-нің пайдалы болуының бір себебі – ол ғылыми есептеулер үшін қажетті қозғалмалы нүктелі арифметиканы орындай білді. Уилкинсон мұның қалай болғанын айтады. Бастапқыда Pilot ACE-де, сол кездегі басқа компьютерлерден өзгеше, көбейту және бөлуге арналған аппараттық құрал болмады. (Аппараттық көбейту кейін қосылды.) Pilot ACE бағдарламалық қамтамасыз ету ретінде іске асырылған тұрақты нүктелі көбейту мен бөлуді пайдалана бастады. Бірақ көп ұзамай тұрақты нүктелі арифметиканың жаман идея екені анық болды, себебі сандар тез арада диапазонынан шығып кетті. Pilot ACE-ге қозғалмалы нүктелі арифметиканы жүзеге асыруға мүмкіндік беретін жаңа бағдарламаны жазуға көп уақыт кетпеді. Содан кейін Джеймс Уилкинсон сарапшыға айналып, қозғалмалы нүктелі есептеулердегі дөңгелектеу қателері туралы кітап жазды, ол кейін жақсы сатылым көрсетті. Pilot ACE шамамен 800 вакуумдық түтікшелерді қолданды. Оның негізгі жады 32 биттен тұратын 128 сөздік зымырандық кешіктіру желілерінен құралды, кейін ол 352 сөздік көлемге дейін кеңейтілді. 1954 жылы 4096 сөздік барабандық жад қосылды. Оның негізгі тактық жиілігі 1 мегагерц болды, бұл сол кездегі британдық компьютерлердің арасындағы ең жоғары көрсеткіш еді. Нұсқауларды орындау уақыты олардың жадыдағы орналасуына тікелей байланысты болды (кешіктіру желілік жадты пайдаланудың нәтижесі). Қосу операциясы 64-тен 1024 микросекундқа дейін уақытты алуы мүмкін еді. Бұл машинаның сәттілігі соншалық, «Англия электр компаниясы» оның коммерциялық нұсқасын, «DEUCE» деп аталып, жасап сатты. Pilot ACE 1955 жылдың мамыр айында тоқтатылды және Ғылым мұражайына тапсырылды, онда ол бүгінгі күнге дейін сақталып тұр.

Бағдарламалық жасақтама

Магниттік барабанды орнату 1954 жылы матрицалармен жұмыс істейтін бағдарламаларды басқару бағдарламасын жасауға мүмкіндік берді. Британдық Ұшақ Корпорациясының Ж.М. Ханның ұсынысымен, Брайан В. Мундей "кирпіш" деп аталатын бағдарламалар жиынтығын іске қосу үшін қарапайым кодтық сөздерді қажет ететін Жалпы Түсіндірме Бағдарламасын (GIP) әзірледі. Әрбір кірпіш бір ғана міндетті орындай алады, мысалы, теңдеулер жиынтығын шешу, матрицаны инверсиялау және матрица көбейту. Бұл идея жаңа болмаса да, GIP-тің ерекшелігі матрицалардың шектерін көрсетпейтін кодтық сөздердің қарапайымдылығында болды. Шектер барабандағы матрицадан алынды, онда шектері екінші және үшінші элементтер ретінде сақталды. Ал егер матрица карталарға тегілсе, шектері алғашқы екі элемент ретінде беріледі. Осылайша, бағдарлама жазылғаннан кейін, оны өзгертудің қажеті болмай, әртүрлі өлшемдегі матрицалармен автоматты түрде жұмыс істеуге болады. GIP 1954 жылы жұмыс істеді және Pilot ACE-нің ізбасары DEUCE үшін қайта жазылды. GIP-пен қолданылатын кірпіштерді М. Вудгер жазды, ол массив элементтерін сақтаудың ерекше әдісін ойлап тапты, атап айтқанда, "блоктық қалқыту". Әдеттегі қалқыма нүктелерді пайдалану үшін әр элементке екі сөз қажет болар еді. Шешім – массивтің барлық элементтері үшін бір ғана көрсеткішті пайдалану болды. Осылайша, әр элемент үшін бір ғана сөз қажет болды. Тек ең үлкен элемент(тер) ғана қалыпқа келтірілді. Кіші элементтер сәйкес түрде масштабталды. Кіші элементтерге байланысты дәлдік жоғалғанымен, элементтер бір-біріне он есе жақын болғандықтан, бұл жоғалту айтарлық емес. Көрсеткіш матрицамен бірге, оның өлшемдерімен сақталды.