Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
1940-1950 жылдардағы британдық компьютер
1940s–1950s British computer
Электрондық кешіктірулі сақтау автоматты есептегіші (EDSAC) – алғашқы британдық компьютерлердің бірі. Джон фон Нейманның EDVAC есебінің алғашқы нұсқасынан шабыттанған бұл машинаны Морис Уилкс және оның командасы Англиядағы Кембридж университетінің математикалық зертханасында құрастырды. EDSAC – тұрақты түрде қолданысқа енгізілген екінші электрондық цифрлық бағдарламаланатын компьютер. Кейін жобаға J. Lyons & Co. Ltd компаниясы қолдау көрсетті, коммерциялық мақсатта қолданылатын компьютерді жасауды және EDSAC дизайны негізінде LEO I-ді жасауды көздеді. EDSAC жұмысы 1947 жылы басталды және 1949 жылдың 6 мамырында алғашқы бағдарламаларын іске қосты, олар квадрат сандар кестесі мен жай сандар тізімін есептеді. EDSAC 1958 жылдың 11 шілдесінде тоқтатылды, оның орнына EDSAC 2 келді, ол 1965 жылға дейін қолданыста болды.
The Electronic Delay Storage Automatic Calculator (EDSAC) was an early British computer. Inspired by John von Neumann's seminal First Draft of a Report on the EDVAC, the machine was constructed by Maurice Wilkes and his team at the University of Cambridge Mathematical Laboratory in England. EDSAC was the second electronic digital stored program computer to go into regular service. Later the project was supported by J. Lyons & Co. Ltd., intending to develop a commercially applied computer and succeeding in Lyons' development of LEO I, based on the EDSAC design. Work on EDSAC started during 1947, and it ran its first programs on 6 May 1949, when it calculated a table of square numbers and a list of prime numbers. EDSAC was finally shut down on 11 July 1958, having been superseded by EDSAC 2, which remained in use until 1965.
Физикалық компоненттер
EDSAC іске қосылғаннан кейін университеттің ғылыми-зерттеу қажеттіліктерін қамтамасыз ете бастады. Ол жад үшін сынаптық кешіктіру желілерін, логикалық схемалар үшін төмендетілген қуатты вакуумдық түтікшелерді пайдаланды. Электр энергиясын тұтыну 11 кВт құрады. Барлық стандартты командалар үшін цикл уақыты 1,5 мс, көбейту үшін 6 мс болды. Деректерді енгізу бес тесікті перфокарта арқылы, нәтижелерді шығару телепринтер арқылы жүзеге асырылды. Бастапқыда регистрлер тек аккумулятор және көбейткіш регистрімен шектелді. 1953 жылы Дэвид Уилер Иллинойс университетінен оралғаннан кейін, бастапқы EDSAC аппараттық құралына қосымша индекстік регистрді жобалады. 1952 жылы магниттік лента құрылғысы қосылды, бірақ ол ешқашан толыққанды жұмыс істемей, пайдалы болған жоқ. 1952 жылға дейін қолжетімді негізгі жад (командалар мен деректер) тек 512 18 биттік сөзден тұратын, ал резервтік жад болмады. Кешіктіру желілері (немесе "бактар") әрқайсысы 512 сөзден тұратын екі батареяға орналастырылды. Екінші батарея 1952 жылы пайдалануға берілді, сол кезде бағдарламалардың көлемі шамамен 800 сөзбен шектелді. Джон Линдли (1958–1959 жылдары дипломдық студент) "50-ші жылдардың соңында қол жетімді қарапайым және сенімсіз үй жасаған перфорациялау, басып шығару және тексеру құралдарымен бір ғана дұрыс перфокарта жасаудың қаншалықты қиын болғанын" айтты.
As soon as EDSAC was operational, it began serving the university's research needs. It used mercury delay lines for memory and derated vacuum tubes for logic. Power consumption was 11 kW of electricity. Cycle time was 1.5 ms for all ordinary instructions, 6 ms for multiplication. Input was via five hole punched tape, and output was via a teleprinter. Initially registers were limited to an accumulator and a multiplier register. In 1953, David Wheeler, returning from a stay at the University of Illinois, designed an index register as an extension to the original EDSAC hardware. A magnetic tape drive was added in 1952 but never worked sufficiently well to be of real use. Until 1952, the available main memory (instructions and data) was only 512 18 bit words, and there was no backing store. The delay lines (or "tanks") were arranged in two batteries providing 512 words each. The second battery came into operation in 1952. limiting programs to about 800 words until then. John Lindley (diploma student 1958–1959) mentioned "the incredible difficulty we had ever to produce a single correct piece of paper tape with the crude and unreliable home made punching, printing and verifying gear available in the late 50s".
Жүйелік бағдарламалық қамтамасыз ету
Бастапқы тапсырыстар бірлік селекторлы коммутаторларға тікелей қосылды және жүйе іске қосылғанда жадтың төменгі жад ұяларына жүктелді. 1949 жылдың мамыр айына қарай, бастапқы тапсырыстар жоғарыда сипатталған еске түсіретін дизайнды пайдалана отырып, 31 сөзден тұратын қарапайым өздігінен жылғалынатын құрастырушыны қамтамасыз етті. Бұл әлемдегі алғашқы құрастырушы және, сәйкесінше, жаһандық бағдарламалық қамтамасыз ету индустриясының бастауы болды. EDSAC-тің симуляциясы, сондай-ақ бастапқы тапсырыстар мен алғашқы бағдарламалардың толық сипаттамасы қолжетімді. EDSAC-та орындалған алғашқы есептеу 1949 жылдың 6 мамырында квадрат санды есептейтін бағдарлама болды. Бағдарламаны машинаны зерттеу үшін Канададан келген Беатрис Ворсли жазған. Бұл туралы Фред Хойл өзінің "Қара бұлт" романында қысқаша айтады.
The initial orders were hard wired on a set of uniselector switches and loaded into the low words of memory at startup. By May 1949, the initial orders provided a primitive relocating assembler taking advantage of the mnemonic design described above, all in 31 words. This was the world's first assembler, and arguably the start of the global software industry. There is a simulation of EDSAC available, and a full description of the initial orders and first programs. The first calculation done by EDSAC was a square number program run on 6 May 1949. The program was written by Beatrice Worsley, who had travelled from Canada to study the machine. This is alluded to by Fred Hoyle in his novel The Black Cloud
Бағдарламалау техникасы
Алғашқы бағдарламалаушылар қазіргі кезде ұнамсыз саналатын әдістерді қолдануға мәжбүр болды, әсіресе өзін-өзі өзгертетін кодты пайдалану. Индекстік регистрлер көп уақыттан кейін ғана енгізілгендіктен, массивқа қол жеткізудің жалғыз жолы – белгілі бір нұсқаудың қай жад ұясын сілтемелегенін өзгерту болатын. Бұл жобада жұмыс істеп, әлемдегі алғашқы компьютер ғылымы докторы атанған Дэвид Уилерге субпрограмма тұжырымын ойлап табу есімі тіркелді. Пайдаланушылар аккумулятордағы қайтару мекенжайымен (яғни, секіру орнының өзінен кейінгі мекенжай) субпрограмманың басына секіріп, бағдарламаны шақыратын бағдарламалар жазды (Wheeler Jump). Конвенция бойынша, субпрограмма осыны күтетін және алғашқы әрекеті – аяқтау секіру нұсқауын сол қайтару мекенжайына өзгерту болатын. Пайдаланушы әрқайсысының ұзындығын білгенде бірнеше және ұяланған субпрограммаларды шақыруға болады, осылайша секіруге қажетті орналасуды есептеуге болады; рекурсивті шақыруларға рұқсат берілмейді. Содан кейін пайдаланушы субпрограмма кодын бастық таспадан өзінің таспасына, өзінің бағдарламасы аяқталғаннан кейін көшіретін. (Дегенмен, Алан Тьюринг 1945 жылғы NPL ACE жобалау ұсыныстары туралы мақаласында субпрограммаларды талқылады, тіпті рекурсияға мүмкіндік беретін қайтару мекенжайы стегі тұжырымын ойлап тапты.) Индекстік регистрдің болмауы субпрограмма жазушысына да қиындық тудырды, себебі олар субпрограмманың жадыда қайда жүктелетінін алдын ала біле алмайтындықтан, деректерді сақтау үшін пайдаланылатын кодтың кез келген бөлігіне қалай сілтеме жасау керектігін білмейді ("псевдо-нұсқаулар"). Бұл мәселе бастапқы кіріс режімін пайдалану арқылы шешілді, ол перфокартадан жадқа субпрограммаларды жүктеуге жауапты болды. Субпрограмманы жүктегенде, ол бастапқы орналасуын тіркеп, қажет болған жағдайда жад сілтемелерін өзгертті. Осылайша, Уилкс жазғандай, "машинаның сыртындағы бұйрықтарды бейнелеуге қолданылатын код, машинаның басқару схемаларының және бағдарламашының әртүрлі талаптарына байланысты, ішіндегі кодтан өзгеше". EDSAC бағдарламалаушылары шектеулі жадты тиімді пайдалану үшін арнайы әдістерді қолданды. Мысалы, субпрограмманы перфокартадан жадқа жүктеу кезінде белгілі бір тұрақтыны есептеу қажет болуы мүмкін, оны кейіннен қайта есептеудің қажеті болмайды. Мұндай жағдайда тұрақты "аралық" есептеледі. Тұрақтыны есептеуге қажетті код толық субпрограммамен бірге беріледі. Бастапқы кіріс режімі есептеу кодын жүктегеннен кейін, басқаруды осы кодқа ауыстырады. Тұрақты есептеліп, жадқа жазылғаннан кейін, басқару бастапқы кіріс режіміне қайта оралады, ол субпрограмманың қалған бөлігін жадқа жазуды жалғастырады, бірақ алдымен тұрақтыны есептеген кодты жазып тастау үшін бастапқы нүктесін реттейді. Бұл жалпы мақсаттағы субпрограммаға күрделі түзетулер енгізуге мүмкіндік берді, бірақ оның жадтағы соңғы көлемі нақты жағдайға бейімделгеннен гөрі үлкен болмады.
The early programmers had to make use of techniques frowned upon today—in particular, the use of self modifying code. As there was no index register until much later, the only way of accessing an array was to alter which memory location a particular instruction was referencing. David Wheeler, who earned the world's first Computer Science PhD working on the project, is credited with inventing the concept of a subroutine. Users wrote programs that called a routine by jumping to the start of the subroutine with the return address (i. e. the location plus one of the jump itself) in the accumulator (a Wheeler Jump). By convention the subroutine expected this, and the first thing it did was to modify its concluding jump instruction to that return address. Multiple and nested subroutines could be called so long as the user knew the length of each one in order to calculate the location to jump to; recursive calls were forbidden. The user then copied the code for the subroutine from a master tape onto their own tape following the end of their own program. (However, Alan Turing discussed subroutines in a paper of 1945 on design proposals for the NPL ACE, going so far as to invent the concept of a return address stack, which would have allowed recursion.) The lack of an index register also posed a problem to the writer of a subroutine in that they could not know in advance where in memory the subroutine would be loaded, and therefore they could not know how to address any regions of the code that were used for storage of data (so called "pseudo orders"). This was solved by use of an initial input routine, which was responsible for loading subroutines from punched tape into memory. On loading a subroutine, it would note the start location and increment internal memory references as required. Thus, as Wilkes wrote, "the code used to represent orders outside the machine differs from that used inside, the differences being dictated by the different requirements of the programmer on the one hand, and of the control circuits of the machine on the other". EDSAC's programmers used special techniques to make best use of the limited available memory. For example, at the point of loading a subroutine from punched tape into memory, it might happen that a particular constant would have to be calculated, a constant that would not subsequently need recalculation. In this situation, the constant would be calculated in an "interlude". The code required to calculate the constant would be supplied along with the full subroutine. After the initial input routine had loaded the calculation code, it would transfer control to this code. Once the constant had been calculated and written into memory, control would return to the initial input routine, which would continue to write the remainder of the subroutine into memory, but first adjusting its starting point so as to overwrite the code that had calculated the constant. This allowed quite complicated adjustments to be made to a general purpose subroutine without making its final footprint in memory any larger than had it been tailored to a specific circumstance.
EDSAC-тің қолдануы
EDSAC математикалық зертхананың есептеулерді қолдау қызметінің бір бөлігі ретінде әзірленді. Компьютерді пайдаланып есептеулер жасалған және жарияланған алғашқы ғылыми мақала Рональд Фишердің еңбегі болды. Уилкс және Уилер EDSAC-ті оның гендік жиіліктеріне қатысты дифференциалдық теңдеуді шешу үшін пайдаланды. 1951 жылы Миллер мен Уилер бұл машинаны 79 таңбалы жай санды табу үшін қолданды – сол кездегі ең үлкені. Үш Нобель сыйлығының иегерлері – Джон Кендрю мен Макс Перутц (химия, 1962), Эндрю Хаксли (медицина, 1963) және Мартин Райл (физика, 1974) EDSAC-тің революциялық есептеу қуатынан пайдаланды. Сыйлықты қабылдау кезіндегі сөздерінде олардың әрқайсысы EDSAC-тің өз зерттеулерінде атқарған рөлін мойындады. 1960 жылдардың басында Питер Суиннертон Дайер EDSAC компьютерін эллиптік қисықтардағы белгілі реті бар p саны үшін p модулі бойынша нүктелер санын (Np деп белгіленеді) есептеу үшін пайдаланды. Осы сандық нәтижелерге сүйене отырып, E қисығы үшін r дәрежесіндегі Np асимптотикалық заңдылыққа бағынады деп болжанды, бұл 2022 жылға дейін математикадағы шешілмеген маңызды мәселелердің бірі саналатын Берч пен Суиннертон Дайердің болжамы. "Ми" [компьютер] бір күні біздің деңгейімізге [қарапайым халыққа] түсіп, табыс салығын және бухгалтерлік есептеулерді жасауға көмектесе алады. Бірақ бұл әзірге тек болжам ғана, оның белгісі көрінбейді. 1949 жылғы маусым айында британдық "The Star" газеті EDSAC компьютері туралы мақала жариялады, бұл жеке компьютерлер дәуірінен көп бұрын болған.
EDSAC was designed specifically to form part of the Mathematical Laboratory's support service for calculation. The first scientific paper to be published using a computer for calculations was by Ronald Fisher. Wilkes and Wheeler had used EDSAC to solve a differential equation relating to gene frequencies for him. In 1951, Miller and Wheeler used the machine to discover a 79 digit prime – the largest known at the time. The winners of three Nobel Prizes John Kendrew and Max Perutz (Chemistry, 1962), Andrew Huxley (Medicine, 1963) and Martin Ryle (Physics, 1974) benefitted from EDSAC's revolutionary computing power. In their acceptance prize speeches, each acknowledged the role that EDSAC had played in their research. In the early 1960s Peter Swinnerton Dyer used the EDSAC computer to calculate the number of points modulo p (denoted by Np) for a large number of primes p on elliptic curves whose rank was known. Based on these numerical results, conjectured that Np for a curve E with rank r obeys an asymptotic law, the Birch and Swinnerton Dyer conjecture, considered one of the top unsolved problems in mathematics as of 2022. The "brain" [computer] may one day come down to our level [of the common people] and help with our income tax and book keeping calculations. But this is speculation and there is no sign of it so far. |British newspaper The Star in a June 1949 news article about the EDSAC computer, long before the era of the personal computers.
Ойындар
1952 жылы Сэнди Дуглас EDSAC үшін «крестики-нолики» (тактикалық аяқ) ойынының OXO нұсқасын, VCR97 6 дюймдік катодты сәулелі түтігіне графикалық шығарылыммен жасады. Бұл әлемдегі алғашқы бейне ойын болуы мүмкін. Стэнли Гилл тағы бір бейне ойын жасады, онда нүкте (қой деп аталды) екі қақпаның біреуін аша алатын сызыққа жақындады.
In 1952, Sandy Douglas developed OXO, a version of noughts and crosses (tic tac toe) for the EDSAC, with graphical output to a VCR97 6" cathode ray tube. This may well have been the world's first video game. Another video game was created by Stanley Gill and involved a dot (termed a sheep) approaching a line in which one of two gates could be opened.
Қосымша өзгерістер
EDSAC-тің мұрагері EDSAC 2 1958 жылы қолданысқа енгізілді. 1961 жылы Дэвид Хартли ғалымдар мен инженерлерге арналған, ALGOL-ға ұқсас жоғары деңгейдегі бағдарламалау тілі Autocode-тің EDSAC 2 нұсқасын жасады. 1960 жылдардың ортасында EDSAC 2-нің жаңа нұсқасы жоспарланған, бірақ оның орнына Манчестер университетінің, Ferranti және Plessey компаниялары жасаған Atlas компьютерінен дамытылған Atlas 2 прототипі – Titan жүйесіне көшті.
EDSAC's successor, EDSAC 2, was commissioned in 1958. In 1961, an EDSAC 2 version of Autocode, an ALGOL like high level programming language for scientists and engineers, was developed by David Hartley. In the mid 1960s, a successor to the EDSAC 2 was planned, but the move was instead made to the Titan, a prototype Atlas 2 developed from the Atlas Computer of the University of Manchester, Ferranti, and Plessey.
EDSAC репликасы жобасы
2011 жылдың 13 қаңтарында Компьютерлік сақтау қоғамы Блетчли паркіндегі Ұлттық есептеу музейінде (TNMoC) ЭДСАК машинасының жұмыс істейтін көшірмесін салуды жоспарлап отырғанын хабарлады. Бұл жұмысқа Морис Уилкспен оқыған Эндрю Герберт жетекшілік етті. Көшірменің алғашқы бөліктері 2014 жылдың қараша айында іске қосылды. ЭДСАК машинасының логикалық тізбектері симуляторды жасау және жаңадан табылған бастапқы схемаларды қайта қарау арқылы ұқыпты түрде қайта құрылды. Бұл құжаттама Creative Commons лицензиясымен жарияланды. Ағымдағы жоба мұражайға келушілерге ашық. 2016 жылы екі түпкілікті ЭДСАК операторы – Маргарет Маррс және Джойс Уилер жобаға көмектесу үшін мұражайға келді. 2016 жылдың қараша айында толыққанды аяқталған және жұмыс істейтін көшірмені іске қосу 2017 жылдың күзіне жоспарланған болатын. Дегенмен, жобада болған күтпеген кешігулерге байланысты толыққанды жұмыс істейтін машинаның аяқталу мерзімі әзірге белгісіз.
On 13 January 2011, the Computer Conservation Society announced that it planned to build a working replica of EDSAC, at the National Museum of Computing (TNMoC) in Bletchley Park supervised by Andrew Herbert, who studied under Maurice Wilkes. The first parts of the replica were switched on in November 2014. The EDSAC logical circuits were meticulously reconstructed through the development of a simulator and the reexamination of some rediscovered original schematics. This documentation has been released under a Creative Commons license. The ongoing project is open to visitors of the museum. In 2016, two original EDSAC operators, Margaret Marrs and Joyce Wheeler, visited the museum to assist the project. As of November 2016, commissioning of the fully completed and operational state of the replica was estimated to be the autumn of 2017. However, unforeseen project delays have resulted in an unknown date for a completed and fully operational machine.