Manchester Mark 1

De la Wikipedia, enciclopedia liberă
Jump to navigation Jump to search

Manchester Mark 1 a fost unul dintre cele mai vechi calculatoare cu program stocat⁠(d), dezvoltat la Universitatea Victoria din Manchester⁠(d) din Small-Scale Experimental Machine (SSEM) sau „Baby” (operațional în iunie 1948). El a fost denumit și Manchester Automatic Digital Machine, sau MADM.[1] Lucrările au început în august 1948, iar prima versiune a fost operațională până în aprilie 1949; un program scris pentru a căuta numere prime Mersenne⁠(d) a rulat fără eroare timp de nouă ore, în noaptea de 16/17 iunie 1949.

Funcționarea reușită a mașinii a fost relatată pe larg în presa britanică, care a folosit expresia „creier electronic” la descrierile făcute pentru cititorii lor. Această descriere a provocat o reacție din partea șefului Catedrei de Neurochirurgie de la Universitatea din Manchester, declanșând o îndelungată dezbatere pe tema dacă un calculator electronic ar putea fi vreodată cu adevărat creativ.

Mark 1 era gândit pentru a oferi o resursă de calcul în cadrul universității, pentru a permite cercetătorilor să câștige experiență în utilizarea practică a calculatoarelor, dar a devenit foarte repede și un prototip pe care se putea baza designul modelului comercial al lui Ferranti⁠(d). Dezvoltarea a încetat la sfârșitul anului 1949, iar mașina a fost casată spre sfârșitul anului 1950, fiind înlocuită în februarie 1951 de un Ferranti Mark 1⁠(d), primul calculator generic disponibil în comerț.[2]

Computerul este deosebit de semnificativ din punct de vedere istoric din cauza faptului că pentru prima oară cuprindea registre de indexare⁠(d), o inovație care simplifica cititrea secvențială de către un program a unui șir de cuvinte⁠(d) consecutive din memorie. Din dezvoltarea mașinii au rezultat treizeci și patru de brevete, și multe din ideile sale de design au fost incluse în următoarele produse comerciale, cum ar fi IBM 701⁠(d) și 702⁠(d), precum și Ferranti Mark 1. Proiectanții-șef, Frederic C. Williams⁠(d) și Tom Kilburn⁠(d), au tras din experiențele lor cu Mark 1 concluzia că calculatoarele ar putea fi folosite mai mult în scopuri științifice decât în matematica pură. În 1951, au început lucrările de dezvoltare la Meg, succesorul lui Mark 1, care avea să aibă și o unitate de virgulă mobilă⁠(d).

Context[modificare | modificare sursă]

În 1936, matematicianul Alan Turing a publicat o definiție unei „mașini universale de calcul” teoretice, un calculator care își stoca programul pe o bandă, împreună cu datele pe care lucra. Turing a demonstrat că o astfel de mașină poate rezolva orice problemă de matematică posibilă pentru care poate fi scris un algoritm.[3] În anii 1940, Turing și alții, cum ar fi Konrad Zuse, au dezvoltat ideea de a folosi propria memorie a calculatorului, în locul benzii, pentru a stoca atât programul cât și datele,[4] dar matematicianul John von Neumann a fost cel care a ajuns să fie creditat în general cu definirea unei arhitecturi de calculator cu program stocat⁠(d), pe care se baza Manchester Mark 1.[5]

Construcția practică a unui calculator von Neumann depindea de disponibilitatea unui dispozitiv de memorie adecvat. Small-Scale Experimental Machine (SSEM) a Universității din Manchester, primul calculator cu program stocat din lume, reușise să demonstreze cât de practice sunt abordarea cu program stocat și tubul Williams⁠(d), o formă timpurie de memorie de calculator bazată pe un tub catodic (CRT) standard, rulându-și primul program în iunie 1948.[6] Primele calculatoare electronice erau în general programate prin recablare, sau prin panouri cu prize și cabluri; nu exista program separat stocat în memorie, ca la calculatoarele moderne. De exemplu, reprogramarea lui ENIAC putea dura până la câteva zile.[7] Calculatoare cu program stocat erau în dezvoltare și de către alți cercetători, în principal Pilot ACE⁠(d) de la National Physical Laboratory⁠(d), EDSAC de la Universitatea Cambridge, și EDVAC al Forțelor Terestre ale SUA.[8] SSEM și Mark 1 difereau în principal prin faptul că utilizau tuburi Williams⁠(d) drept dispozitive de memorie, în locul liniilor cu întârziere⁠(d) din mercur.[9]

Cam din august 1948, SSEM era dezvoltată intensiv ca prototop pentru Manchester Mark 1, inițial cu scopul de a da universității o aparatură de calcul mai realistă.[10] În octombrie 1948, directorul științific al guvernului britanic Ben Lockspeiser⁠(d) a văzut o demonstrație a prototipului lui Mark 1 într-o vizită la Universitatea din Manchester. Lockspeiser a fost atât de impresionat de ceea ce a văzut încât imediat a inițiat un contract guvernamental cu firma locală Ferranti⁠(d) pentru a produce o versiune comercială a mașinii, Ferranti Mark 1.[11] În scrisoarea adresată companiei, din data de 26 octombrie 1948, Lockspeiser a autorizat-o să „procedeze pe liniile pe care le-am discutat, anume să construiască o mașină electronică de calcul după instrucțiunile profesorului F. C. Williams”.[12] Din acel punct, dezvoltarea lui Mark 1 a avut scopul adițional de a furniza firmei Ferranti un proiect după care să-și producă mașina comercială.[13] Contractul guvernamental cu Ferranti s-a derulat timp de cinci ani începând din noiembrie 1948, și a implicat o sumă de circa 35.000 de lire pe an (echivalent cu to 1,06 milioane de lire[14] pe an în 2016).[15]

Dezvoltarea și proiectarea[modificare | modificare sursă]

Schemă funcțională unde tuburile Williams sunt figurate cu verde. Tubul C deține instrucțiunea curentă și adresa acesteia; A este acumulatorul; M este folosit pentru a reține deînmulțitul și înmulțitorul unei operațiuni de înmulțire; și B renține registrele de indexare, utilizate pentru a modifica instrucțiunile.

SSEM fusese proiectat de echipa formată din Frederic C. Williams⁠(d), Tom Kilburn⁠(d) și Geoff Tootill⁠(d). Pentru a dezvolta Mark 1, ei și-au asigurat asistența a doi studenți cercetători, D. B. G. Edwards și G. E. Thomas; lucrul a început în august 1948. Proiectul a căpătat curând dublul scop de a furniza pentru Ferranti un design funcțional pe care își pot baza o mașină comercială, Ferranti Mark 1, și pe construirea unui calculator care să permită altor cercetători să dobândească experiență despre cum ar putea fi folosită în practică o astfel de mașină. Prima din cele două versiuni de Manchester Mark 1 – cunoscută ca „Versiunea Intermediară” – era operațională în aprilie 1949.[10] Acestei prime versiuni îi lipseau însă unele funcționalități, cum ar fi instrucțiunile necesare pentru a transfera programatic datele între spațiul principal de stocare și nou-dezvoltatul spațiu de stocare magnetic, care se făcea doar oprind mașina și inițiind manual transferul. Aceste elemente lipsă au fost incluse în versiunea Specificației Finale, care a ajuns să fie deplin funcțională în octombrie 1949.[13] Mașina conținea 4050 de valve și avea un consum de putere de 25 kilowați.[16] Pentru a crește fiabilitatea, s-au folosit tuburi catodice produse la comandă de GEC⁠(d) în locul dispozitivelor standard utilizate la SSEM.[2]

Lungimea cuvântului⁠(d), care la SSEM era de 32 de biți, a fost crescută la 40 de biți. Fiecare cuvânt putea reține fie un număr pe 40 de biți, fie două instrucțiuni de program pe 20 de biți. Spațiul principal de stocare consta inițial din două tuburi Williams de densitate dublă, fiecare reținând două tablouri de 32 de cuvinte⁠(d) pe 40 de biți – denumite pagini⁠(d) – salvate și într-un tambur magnetic capabil de a stoca încă 32 de pagini. Capacitatea a fost crescută în versiunea Specificației Finale la opt pagini în spațiul principal pe patru tuburi Williams și 128 de pagini în spațiul tamburului magnetic.[17] Tamburul cu diametrul de 12-inch (300 mm),[18] denumit la început „roată magnetică”, conținea o serie de piste magnetice paralele pe suprafața sa, fiecare cu propriul ei cap de citire-scriere. Fiecare pistă stoca 2560 de biți, corespunzători la două pagini (2×32×40 biți). O rotație a tamburului dura 30 de milisecunde⁠(d), timp în care ambele pagini puteau fi transferate în memoria principală cu tub catodic, deși durata efectivă a transferului de date depindea de latență, timpul necesar pentru ca o pagină să ajungă sub capul de citire/scriere. Scrierea paginilor pe tambur dura aproximativ dublu față de citire.[13] Viteza de rotație a tamburului a fost sincronizată cu ceasul procesorului⁠(d) central, ceea ce a permis adăugarea de tamburi suplimentari. Datele erau înregistrate pe tambur folosind o tehnică de modulare în fază⁠(d) denumită și astăzi codificare Manchester⁠(d).[19]

Setul de instrucțiuni al mașinii a fost extins de la cele 7 ale lui SSEM la început la 26, inclusiv o operație de multiplicare făcută în hardware. Apoi s-a crescut setul la 30 de instrucțiuni în versiunea Specificației Finale. Zece biți din fiecare cuvânt erau alocați pentru reținerea codului instrucțiunii. Timpul standard pentru o instrucțiune era de 1,8 milisecunde, dar multiplicarea era mult mai lentă, în funcție de dimensiunea operandului⁠(d).[20]

Cea mai importantă inovație a mașinii este în general considerată a fi incorporarea registrelor de indexare⁠(d), ceva omniprezent la computerele moderne. SSEM inclusese două registre, implementate prin tuburi Williams: acumulatorul⁠(d) (A) și contorul program⁠(d) (C). Întrucât literele A și C fuseseră deja alocate, tuburile țineau cele două registre de indexare, denumite B-lines, au primit denumirea de B. Conținutul registrelor putea fi folosit pentru a modifica instrucțiuni ale programului, permițând iterarea convenabilă printr-o serie de numere stocate în memorie. Mark 1 avea și un al patrulea tub, (M), pentru a ține deînmulțitul și înmulțitorul pentru o operație de multiplicare.[19]

Programarea[modificare | modificare sursă]

Secțiune de bandă perforată care arată cum un cuvânt de 40 de biți a fost codificat ca opt caractere pe 5 biți.

Din cei 20 de biți alocați pentru fiecare instrucțiune a programului, 10 erau folosite pentru a ține codul instrucțiunii, ceea ce permitea 1024 (210) instrucțiuni diferite. Mașina avea inițial 26,[10] număr crescut la 30 când s-au adăugat și codurile pentru controlul programatic al transferului de date între tamburul magnetic și spațiul principal de stocare cu tub catodic (CRT). Programele de pe versiunea intermediară programe erau introduse prin comutatoare cu cheie, iar rezultatul era afișat ca o serie de puncte și linii pe un tub catodic cunoscut sub numele de dispozitivul de ieșire, ca și pe SSEM din care a fost dezvoltat Mark 1. Cu toate acestea, mașina în versiunea Specificației Finale, finalizată în octombrie 1949, beneficia de adăguarea unui teleprinter cu un cititor de bandă de hârtie și imprimator⁠(d).[13]

Matematicianul Alan Turing, care a fost desemnat în postul nominal de director adjunct al Laboratorului de Mașini de Calcul de la Universitatea din Manchester, în septembrie 1948,[10] a conceput o schemă de codificare în bază 32⁠(d) după standardul Baudot code⁠(d) pe 5 biți pentru teleprinter, care permitea ca programele și datele să fie scrise și citite de pe bandă de hârtie.[21] Sistemul ITA2 mapează fiecare dintre cele 32 de valori binare posibile care pot fi reprezentate în 5 biți (25) pentru un singur caracter. Astfel, "10010" reprezintă "D", "10001" reprezintă "Z", și așa mai departe. Turing a schimbat doar câteva dintre codificările standard; de exemplu, 00000 și 01000, care înseamnă "nici un efect" și "linie nouă" în cod teleprinter, reprezentau caracterele "/" și, respectiv, "@". Zero binar, reprezentat de slash, era cel mai frecvent caracter în programe și date, ceea ce ducea la secvențe scrise ca "///////////////". Unul dintre primii utilizatori a sugerat că alegerea de către Turing a caracterului slash este una subconștientă, ca o reprezentare a ploii văzută printr-o fereastră murdară, reflectând vremea „notoriu de sumbră” din Manchester.[22]

Pentru că Mark 1 avea cuvinte de 40 de biți, era nevoie de opt caractere de teleprinter pe 5 biți pentru a codifica fiecare cuvânt. Astfel, de exemplu, cuvântul binar 10001 10010 10100 01001 10001 11001 01010 10110 ar fi reprezentat pe bandă de hârtie ca ZDSLZWRF. Conținutul oricărui cuvânt stocat putea fi stabilit tot prin tastatura teleprinterului, și ieșirea era tot pe imprimanta acestuia. Mașina lucra intern în binar, dar putea să efectueze conversiile necesare din zecimal în binar și din binar în zecimal pentru intrare și, respectiv, ieșire.[23]

Nu exista un limbaj de asamblare definit pentru Mark 1. Programele trebuia să fie scrise și transmise în formă binară, codificate sub forma unor blocuri de 8 caractere pe 5 biți pentru fiecare cuvânt pe 40 de biți; programatorii au fost încurajați să memoreze schema modificată de codificare ITA2 pentru a-și ușura munca. Datele erau citite și scrise de pe bandă de hârtie perforată sub controlul programului. Mark 1 nu avea niciun sistem de întreruperi hardware⁠(d); programul continua după ce era inițiată o operație de citire sau scriere până se întâlnea o altă instrucțiune de intrare/ieșire, moment în care mașina aștepta ca prima astfel de operațiune să se termine.[24]

Primele programe[modificare | modificare sursă]

Primul program realist care a fost rulat pe Mark 1 a fost o căutare de numere prime Mersenne⁠(d), la începutul lunii aprilie 1949,[25] care a rulat fără erori timp de nouă ore, în noaptea de 16/17 iunie 1949.

Algoritmul a fost specificat de către Max Newman⁠(d), șeful Departamentului de Matematică de la Universitatea din Manchester, iar programul a fost scris de Kilburn și Tootill. Alan Turing a scris mai târziu o versiune optimizată a programului, numit Mersenne Express.[19]

Manchester Mark 1 a continuat să efectueze calcule matematice utile până în 1950, inclusiv o cercetare a ipotezei Riemann și calcule de optică.[26]

Evoluțiile ulterioare[modificare | modificare sursă]

Tootill a fost transferat temporar de la Universitatea din Manchester la Ferranti în august 1949, pentru a continua munca la proiectul Ferranti Mark 1, și a petrecut patru luni lucrând cu compania.[27] Manchester Mark 1 a fost demontat și casat în august 1950,[28] fiind înlocuit câteva luni mai târziu de primul Ferranti Mark 1, primul calculator de uz general disponibil comercial.[2]

Între 1946 și 1949, dimensiunea medie a echipei de design care lucra la Mark 1 și la predecesorul său, SSEM, a fost de aproximativ patru oameni. În acest timp, s-au înregistrat 34 de brevete pe baza muncii echipei, fie de către Ministerul Aprovizionării⁠(d), fie de către succesorul său, Corporația Națională de Cercetare-Dezvoltare⁠(d).[1] În iulie 1949, IBM l-a invitat pe Williams în Statele Unite într-o călătorie cu toate cheltuielile acoperite pentru a discuta despre proiectul Mark 1. Ulterior, compania a achiziționat licențe pe mai multe din brevetele dezvoltate din ideile apărute la crearea mașinii, inclusiv tubul Williams, în designul propriilor calculatoare 701⁠(d) și 702⁠(d).[29] Cea importantă moștenire a designului lui Manchester Mark 1 a fost, probabil, includerea registrelor de indexare, brevet înregistrat pe numele lui Williams, Kilburn, Tootill, și Newman.[1]

Kilburn și Williams au tras concluzia că computerele vor fi folosite mai mult în roluri științifice decât pentru matematică pură, și au hotărât să dezvolte o nouă mașină, care ar include și o unitate de virgulă mobilă⁠(d). Lucrările au început în 1951, și mașina rezultată, care a rulat primul program în mai 1954, a fost cunoscută sub numele de Meg, sau megacycle machine. Era mai mică și mai simplă decât Mark 1, și mult mai rapidă pentru probleme de matematică. Ferranti⁠(d) a produs o versiune de Meg cu tuburile Williams înlocuite cu mult mai fiabilele memorii cu ferite, comercializate sub titulatura Ferranti Mercury⁠(d).[30]

Impactul cultural[modificare | modificare sursă]

Funcționarea cu succes a lui Manchester Mark 1 și a predecesorului său, SSEM, a fost relatată pe larg în presa britanică, care a folosit expresia „creier electronic” pentru a descrie mașinile.[31] Lord Louis Mountbatten introdusese acest termen mai demult într-un discurs rostit la Institutul Britanic al Inginerilor Radio la 31 octombrie 1946, în care specula despre cum ar putea evolua calculatoarele primitive de la acea vreme.[32] Entuziasmul din jurul prezentării din 1949 a ceea ce a fost primul calculator modern recunoscut a provocat o reacție neașteptată de dezvoltatorii săi; Sir Geoffrey Jefferson⁠(d), profesor de neurochirurgie la Universitatea din Manchester, căruia i s-a solicitat să țină Discursul Lister⁠(d) la 9 iunie 1949 a ales drept subiect „Mintea unui om mecanic”. Scopul lui a fost de a „demitiza” proiectul Manchester.[33] În discursul său, el a spus:

„Not until a machine can write a sonnet or compose a concerto because of thoughts and emotions felt, and not by the chance fall of symbols, could we agree that machine equals brain – that is, not only write it but know that it had written it. No machine could feel pleasure at its success, grief when its valves fuse, be warmed by flattery, be made miserable by its mistakes, be charmed by sex, be angry or miserable when it cannot get what it wants.[33]

The Times a scris despre discursul lui Jefferson în ziua următoare, adăugând că Jefferson prevedea că „nu va veni ziua în care grațioasele încăperi de la Royal Society vor fi transformate în garaje în care să stea acești noi membri”. Acest lucru a fost interpretat ca o aluzie deliberată la Newman, care obținuse un grant din partea societății pentru a continua munca cu echipa din Manchester. În replică, Newman a scris un articol-răspuns pentru The Times, în care a susținut că există o strânsă analogie între structura lui Mark 1 și creierul uman.[34] Articolul său cuprindea și un interviu cu Turing, care a adăugat:

„This is only a foretaste of what is to come, and only the shadow of what is going to be. We have to have some experience with the machine before we really know its capabilities. It may take years before we settle down to the new possibilities, but I do not see why it should not enter any of the fields normally covered by the human intellect and eventually compete on equal terms.[35]

Note[modificare | modificare sursă]

  1. ^ a b c Lavington (1998), p. 20.
  2. ^ a b c „The Manchester Mark 1” (în engleză), University of Manchester, arhivat din original la , accesat în  
  3. ^ Turing, A. M. (), „On Computable Numbers, with an Application to the Entscheidungsproblem” (PDF), Proceedings of the London Mathematical Society, 2 (publicat la ), 42, pp. 230–265, doi:10.1112/plms/s2-42.1.230 .
  4. ^ Lee (2002), p. 67.
  5. ^ Lavington (1998), p. 7.
  6. ^ Enticknap, Nicholas (), „Computing's Golden Jubilee”, Resurrection, The Bulletin of the Computer Conservation Society (20), ISSN 0958-7403, accesat în  
  7. ^ „Early Electronic Computers (1946–51)”, University of Manchester, arhivat din original la , accesat în  
  8. ^ Lavington (1998), p. 9.
  9. ^ Lavington (1998), p. 8.
  10. ^ a b c d Lavington (1998), p. 17.
  11. ^ Lavington (1998), p. 21.
  12. ^ „Newman's Contribution to the Mark 1 Machines”, University of Manchester, arhivat din original la , accesat în  
  13. ^ a b c d Napper, R. B. E., „The Manchester Mark 1” (în engleză), University of Manchester, arhivat din original la , accesat în  
  14. ^ Inflația calculată automat.
  15. ^ Lavington (1980), p. 39.
  16. ^ Lavington, S. H. (iulie 1977), The Manchester Mark 1 and Atlas: a Historical Perspective (PDF), University of Central Florida, accesat în  . (Reprint of the paper published in Communications of the ACM (January 1978) 21 (1)
  17. ^ „The Manchester Mark I” (în engleză), University of Manchester, arhivat din original la , accesat în  
  18. ^ Kilburn, Tom, The University of Manchester Universal High-Speed Digital Computing Machine, University of Manchester, arhivat din original la , accesat în  . (Reprint of Kilburn, Tom (1949). "The University of Manchester Universal High-Speed Digital Computing Machine". Nature 164).
  19. ^ a b c Lavington (1998), p. 18.
  20. ^ Lavington (1998), pp. 17–18.
  21. ^ Leavitt (2007), p. 232.
  22. ^ Leavitt (2007), p. 233.
  23. ^ Kilburn, Tom, The University of Manchester Universal High-Speed Digital Computing Machine, University of Manchester, arhivat din original la , accesat în  . (Retipărire din Kilburn, Tom (1949). "Universitatea din Manchester Universal Digital de Mare Viteză Masina de Calcul". Natura 164).
  24. ^ „Programmers' Handbook (2nd Edition) for the Manchester Electronic Computer Mark II” (în engleză), University of Manchester, arhivat din original la , accesat în  
  25. ^ Napper (2000), p. 370.
  26. ^ Lavington (1998), p. 19.
  27. ^ Lavington (1998), pp. 24–25.
  28. ^ Lavington (1980), p. 38.
  29. ^ Lavington (1998), p. 23.
  30. ^ Lavington (1998), p. 31.
  31. ^ Fildes, Jonathan (), „One tonne 'Baby' marks its birth”, BBC News, accesat în  
  32. ^ „An Electronic Brain”, The Times, p. 2,  
  33. ^ a b Leavitt (2007), p. 236.
  34. ^ Leavitt (2007), p. 237.
  35. ^ Leavitt (2007), pp. 237–238.

Bibliografie[modificare | modificare sursă]

  • Lavington, Simon (). Early British computers (în engleză). Manchester University Press. ISBN 978-0-7190-0810-8. 
  • Lavington, Simon (). A History of Manchester Computers (în engleză) (ed. 2nd). The British Computer Society. ISBN 978-1-902505-01-5. 
  • Leavitt, David (). The Man Who Knew Too Much: Alan Turing and the Invention of the Computer (în engleză). Phoenix. ISBN 978-0-7538-2200-5. 
  • Lee, J. A. N. (). „Some Great Myths of the History of Computing”. În Brunnstein, Klaus; Berleur, Jacques. Human Choice and Computers: Issues of Choice and Quality of Life in the Information Society (în engleză). Springer. ISBN 978-1-4020-7185-0. 
  • Napper, R. B. E. (). „The Manchester Mark 1 Computers”. În Rojas, Raúl; Hashagen, Ulf. The First Computers: History and Architectures (în engleză). MIT Press. pp. 356–377. ISBN 978-0-262-68137-7.