Istoria maşinilor de calcul
Istoria
maşinilor de calcul cuprinde
evoluţia diverselor tehnici folosite de oameni pentru a efectua calcule
matematice şi a maşinilor şi aparatelor fizice de care s-au folosit pentru
acest scop. Multă vreme, aceste calcule se efectuau mintal, eventual cu ajutorul
unor dispozitive simple, cum ar fi abacul şi, din secolul al XVII-lea, rigla de calcul.
Primele maşini de calcul erau
aparate mecanice, care efectuau calcule analogice. Un plan îndrăzneţ pentru o
astfel de maşină a fost cel al inginerului englez Charles Babbage, în anii 1820. Proiectul său pentru o maşină mecanică era însă mult mai
complex decât orice alt dispozitiv realizat la acea vreme, şi nu s-au putut
realiza piese cu o precizie suficient de mare, şi proiectul său a fost în cele
din urmă abandonat. În acea perioadă a fost preluată o tehnologie folosită deja
la maşinile muzicale şi la războaiele de ţesut, tehnologia cartelelor perforate, adaptată pentru maşinile de calcul, ca tehnică principală de programare.
Tot atunci, au apărut primele maşini de calcul electrice, bazate pe simularea,
cu ajutorul elementelor de circuit electric, a proprietăţilor sistemelor în
care se efectuau calculele.
În prima jumătate a secolului al
XX-lea, s-au răspândit diverse mărci de calculatoare de birou, cum ar fi Curta
sau Friden şi s-a început dezvoltarea primelor calculatoare electronice, cu
ajutorul tuburilor
electronice.
Bazele calculatoarelor moderne
s-au pus, însă, în preajma celui de-al doilea război mondial. Alan Turing a descris în 1936 un model
matematic care astăzi îi poartă numele şi care rezumă funcţionarea unei maşini
de calcul programabile, iar Claude
Shannon a arătat că
orice funcţie din algebra booleană poate fi implementată mecanic cu ajutorul unor
circuite logice electronice. John von
Neumann a descris
şi el, pe când lucra la proiectul EDVAC, arhitectura von Neumann, o schemă structurală de bază a calculatoarelor. Aproape toate
calculatoarele moderne sunt construite din circuite logice, se bazează pe
arhitectura von Neumann şi implementează funcţional modelul maşinii
Turing. În timpul celui de-al doilea
război mondial, s-au construit calculatoare primitive pentru a calcula
traiectoriile balistice şi pentru a decripta comunicaţiile inamicului şi
proiectele realizate au fost continuate şi după război. Mai multe calculatoare
din această primă generaţie candidează la titlul de „primul calculator modern”,
printre care maşina Atanasoff-Berry (primul calculator electronic),
calculatorul britanic Colossus (primul calculator electronic programabil), maşinile inginerului german
Zuse (prima maşină Turing-completă) şi mainframe-ul ENIAC (primul
calculator generic). Primul calculator cu program stocat, funcţionând în
sistemul binar, Turing-complet şi construit exclusiv din componente electronice
a fost Manchester Small-Scale
Experimental Machine, pornit în iunie 1948.
Inventarea tranzistorului a declanşat o perioadă în care calculatoarele, la început uriaşe, scumpe
şi dificil de utilizat, au început să evolueze în sensul miniaturizării, al
reducerii costurilor de producţie şi utilizare şi al simplificării programării;
în paralel cu unităţile de efectuare a calculelor matematice, s-au dezvoltat şi
noi tehnologii pentru stocarea datelor. Calculatoarele cu circuite
semiconductoare din a doua generaţie au fost urmate de calculatoarele din a
treia generaţie (cu circuite logice integrate) şi din a patra generaţie (cu
microprocesor integrat). Ulterior, mai multe calculatoare din centre
universitare şi de cercetare au fost interconectate într-o reţea care s-a
dezvoltat apoi într-un Internet global. La începutul secolului
al XXI-lea, calculatoarele sunt omniprezente, de la telefoane mobile până la
sonde spaţiale.
Înainte de maşinile de calcul
La început, calculele dificile
sau complexe erau efectuate de oameni al căror unic rol era acesta. Aceşti calculatori
se ocupau de regulă de efectuarea calculelor unei expresii matematice, de
exemplu pentru efemeride în astronomie, pentru navigaţie sau pentru tabelele de
tragere în artilerie. Calculele acelor vremuri erau foarte specializate şi
costisitoare şi necesitau ani de pregătire matematică.
Primele aparate de calcul
De mii de ani s-a apelat la
diverse invenţii, pentru a face calculele mai simple, începând prin corespondenţa
unu-la-unu cu degetele. Primul dispozitiv a fost probabil sub forma beţelor de
numărat. Alte dispozitive pentru înregistrarea numerelor folosite în Cornul Abundenţei erau formele de lut, care reprezentau numărul unor
lucruri, probabil animale sau produse agricole, ţinute în vase.
Abacul era folosit pentru calcule aritmetice încă din 2400 î.e.n.
Mai multe variante de
calculatoare analogice au fost construite în antichitate şi în evul mediu
pentrua efectuarea de calcule astronomice. Printre acestea se numără mecanismul Antikythera şi astrolabul din Grecia antică (c. 150–100 î.e.n.), acestea fiind
considerate primele calculatoare analogice mecanice. Alte versiuni vechi de
aparate mecanice utilizate pentru calcule au fost planisfera şi invenţiile lui Abū Rayhān al-Bīrūnī (c. 1000 e.n.); equatoriumul şi astrolabul universal,
independent de latitudine al lui Abū Ishāq Ibrāhīm al-Zarqālī (c. 1015 e.n.);
calculatoarele analogice astronomice ale altor astronomi şi ingineri din lumea
arabă medievală; şi turnul cu ceasul
astronomic al lui Su Song (c. 1090 e.n.) din timpul dinastiei Song.
„Ceasul din castel”, un ceas
astronomic inventat de Al-Jazari în 1206, este considerat a fi
primul calculator analogic programabil. El afişa zodiacul, orbitele Lunii şi Soarelui,
un arătător în formă de semilună ce se deplasa de-a lungul unei porţi
determinând deschiderea automată a uşilor la fiecare oră, şi cinci cântăreţi
sculptaţi care cântau când erau loviţi cu o pârghie declanşată de un arbore cu came ataşat unei roţi cu apă. Durata zilei şi a nopţii
putea fi reprogramată în fiecare zi pentru a trata schimbarea duratei zilei şi
nopţii de-a lungul anului.
Matematicianul şi fizicianul
scoţian John Napier a notat că înmulţirea şi
împărţirea numerelor se pot efectua prin adăugarea, respectiv prin scăderea
logaritmilor acestor numere. La generarea primelor tabele de logaritmi, Napier
a avut nevoie să efectueze multe înmulţiri şi în acest punct a proiectat oasele lui Napier, un dispozitiv similar
abacului, utilizat pentru înmulţire şi împărţire. Întrucât numerele reale pot fi reprezentate ca distanţe sau intervale pe o
dreaptă, în anii 1620 a fost inventată rigla de calcul, pentru a mări semnificativ viteza de efectuare a
operaţiilor de înmulţire şi împărţire. Riglele de calcul au fost utilizate de
generaţii întregi de ingineri şi de profesionişti în domeniile ştiinţelor
exacte, până la inventarea calculatorului de buzunar. Inginerii ce lucrau la programul
Apollo,
proiectul de a trimite oameni pe lună, au efectuat multe din calculele lor cu
ajutorul riglelor de calcul, care aveau o precizie de trei sau patru cifre
semnificative.
Omul de ştiinţă german Wilhelm Schickard a construit primul calculator
numeric mecanic în 1623. Întrucât calculatorul său folosea tehnici cum ar fi
roţile dinţate, dezvoltate iniţial pentru ceasuri, acest calculator a fost
denumit „ceas calculator”. A fost utilizat de prietenul lui Schickard, Johannes Kepler, care a revoluţionat astronomia, formulând legile
mişcării planetelor. La muzeul Zwinger se păstrează un calculator
original al lui Pascal (1640). Au urmat maşinile lui
Blaise Pascal (Pascaline, 1642) şi Gottfried
Wilhelm von Leibniz (1671). Leibniz a spus odată că „este nedemn de un om excelent să
irosească ceasuri întregi trudind ca un sclav efectuând calcule pe care le-ar
putea liniştit lăsa în seama altora dacă s-ar folosi maşini”
Pe la 1820, Charles Xavier Thomas a creat primul calculator
mecanic produs în serie, aritmometrul Thomas, care putea efectua adunări,
scăderi, înmulţiri şi împărţiri. Calculatoarele mecanice, ca Addiator
(zecimal), comptometrul, calculatoarele Monroe, Curta
şi Addo-X au continuat să fie folosite până în anii 1970. Leibniz a fost cel
care a descris sistemul de numeraţie binar,[14] principiu central al tuturor
calculatoarelor moderne. Până în anii 1940, multe proiecte ulterioare (inclusiv
maşinile lui Charles
Babbage din anii
1800 şi chiar ENIAC din 1945) s-au bazat pe
sistemul zecimal; numărătoarele ENIAC emulau operarea roţilor cu cifre ale unei
maşini mecanice de adunat.
În Japonia, Ryoichi Yazu a brevetat un calculator
mecanic denumit aritmometru Yazu în 1903. Acesta consta dintr-un singur
cilindru şi 22 de roţi dinţate, şi folosea sistemele mixte în bază 2 şi 5, bine
cunoscute de utilizatorii sorobanului (abacul japonez). Transportul
şi sfârşitul calculului se determinau automat.[15] Acesta s-a vândut în peste
200 de exemplare, mai ales către agenţiile guvernamentale cum ar fi Ministerul
de Răzoi şi staţiilor experimentale agricole. Yazu a investit profitul într-o
fabrică ce urma să producă primul avion cu elice din Japonia, dar proiectul a
fost abandonat după ce Yazu a murit la 31 de ani.
Tehnologia cartelelor perforate
Încă din 1725, Basile Bouchon a folosit o buclă de hârtie
perforată într-un război de ţesut pentru a stabili şablonul reprodus pe
materialele textile, iar în 1726 colaboratorul său Jean-Baptiste Falcon a
îmbunătăţit proiectul acestuia, utilizând cartele de hârtie perforate prinse
una de alta pentru eficienţă în adaptarea şi modificarea programului. Războiul
de ţesut Bouchon-Falcon era semiautomat şi necesita introducerea manuală a
programului. În 1801, Joseph-Marie Jacquard a dezvoltat un război în care şablonul de ţesut era
controlat de cartele perforate. Seria de cartele putea fi schimbată fără
schimbarea designului mecanic al războiului.
O replică a motorului
diferenţial II, un proiect anterior şi mai limitat, este operaţional din 1991
la London Science Museum. Cu câteva modificări
triviale, el funcţionează aşa cum l-a proiectat Babbage şi arată că acesta avea
dreptate în teorie. Muzeul a utilizat maşini-unelte operate de calculator
pentru a construi componentele necesare, respectând toleranţe pe care un
maşinist al secolului al XIX-lea nu ar fi putut să le obţină. Nereuşita lui
Babbage poate fi atribuită dificultăţilor legate nu doar de finanţe şi de
politică, ci şi de dorinţa lui permanentă de a adăuga noi şi noi caracteristici
în proiect. Pe urmele lui Babbage, deşi fără cunoştinţă de munca acestuia, a
călcat Percy Ludgate, un contabil din Dublin,
Irlanda. El a proiectat separat un calculator mecanic programabil, pe care l-a
descris într-o lucrare publicată în 1909.
Spre sfârşitul anilor 1880, Herman
Hollerith a
inventat o tehnică de înregistrare a datelor pe un mediu de pe care să fie
ulterior citite de o maşină. Anterior, maşini care citesc medii de stocare
fuseseră folosite pentru diferite automate, războaie de ţesut sau maşini
muzicale, dar nu pentru date. Hollerith a ajuns să folosească cartele peforate
după ce a observat cum înregistrează conductorii de tren caracteristicile
personale ale fiecărui pasager pe biletele acestora. Pentru prelucrarea acestor
cartele perforate, cunoscute drept „cartele Hollerith”, el a inventat
tabulatorul şi maşina perforatoare. Aceste trei invenţii au format bazele
industriei moderne de prelucrarea informaţiei. Maşinile lui foloseau relee mecanice (şi solenoizi) pentru incrementarea numărătoarelor mecanice. Metoda
lui Hollerith a fost utilizată cu ocazia recensământului din 1890 din Statele
Unite, iar rezultatele finale au fost „... definitivate cu mai multe luni
înainte de termen, cu costuri mult mai mici decât cele estimate”. Compania lui
Hollerith a stat la baza IBM. IBM a transformat tehnologia
de perforare a cartelelor într-o unealtă puternică pentru prelucrarea de date
şi a produs o linie extinsă de unit record equipment. Până la 1950, cartelele IBM
erau omniprezente în industrie şi în instituţiile publice. Pe majoritatea
cartelelor ce trebuia să circule ca documente era scris avertismentul Do not
fold, spindle or mutilate, (Nu împăturiţi, nu înţepaţi şi nu mutilaţi),
care a devenit un motto al perioadei de după al Doilea Război Mondial.
Articolele lui Leslie Comrie despre metodele cu cartele
perforate şi articolul Punched Card Methods in Scientific Computation de
W.J. Eckert din 1940 descriau tehnici
suficient de avansate pentru a rezolva şi ecuaţii diferenţiale sau pentru a
efectua înmulţiri şi împărţiri cu reprezentări în virgulă mobilă, toate pe
cartele perforate.
Programarea calculatoarelor în
era cartelelor perforate avea ca element principal centrele de calcul.
Utilizatorii, de exemplu, studenţi la facultăţile tehnice şi ştiinţifice, îşi
depuneau temele la centrul de calcul sub formă de cartele perforate, fiecare
cartelă reprezentând o linie de cod. După aceea, ei trebuiau să aştepte rândul
programului lor să fie prelucrat, compilat şi executat. După un timp,
rezultatele tipărite, marcate cu datele de identificare ale autorului, se
depuneau la un ghişeu al centrului de calcul. În multe cazuri, aceste rezultate
erau compuse doar dintr-un mesaj de eroare, privind sintaxa limbajului etc.,
obligând autorul să efectueze un nou ciclu de editare-compilare-rulare. Cartele
perforate se mai utilizează încă, iar dimensiunile lor distinctive (Hollerith a
gândit dimensiunea cartelelor perforate pentru ca ele să încapă în cutiile
metalice în care se ţineau bancnote de un dolar din acea perioadă, mai mari
decât cele de astăzi) mai pot fi recunoscute în formulare, date vechi şi în
programe din toată lumea.
Anii 1930–1960: calculatoarele de birou
Până în secolul al XX-lea,
calculatoarele mecanice, casele de marcat, maşinile contabile, au fost
reproiectate în sensul utilizării motoarelor electrice, poziţia roţilor dinţate
reprezentând starea unei variabile. În preajma anilor 1920, interesul lui Lewis Fry Richardson pentru prognozarea vremii l-a
făcut să propună utilizarea analizei numerice de către calculatori pentru
modelarea fenomenelor meteorologice; la începutul secolului al XXI-lea, sunt
necesare cele mai puternice calculatoare de pe Pământ pentru o modelare
adecvată a atmosferei cu ajutorul ecuaţiilor Navier-Stokes. Începând cu anii 1930, mai
multe companii, precum Friden, Marchant Calculator şi Monroe au realizat calculatoare de
birou capabile să efectueze adunări, scăderi, înmulţiri şi împărţiri. În timpul
proiectului Manhattan, viitorul laureat al premiului Nobel Richard Feynman a supervizat o echipă de matematicieni calculatori,
printre care multe femei, care înţelegeau ecuaţiile diferenţiale ce trebuiau rezolvate. Chiar şi renumitul Stanisław Ulam a fost forţat muncească la
transformarea formulelor matematice în aproximaţii calculabile pentru bomba cu
hidrogen, după
război.
În 1948, a fost introdus
Curta, un calculator mecanic mic, portabil de dimensiunea unei râşniţe de
piper. În anii 1950 şi 1960 au apărut pe piaţă mai multe mărci de maşini de
calcul. Primul calculator de birou electronic a fost calculatorul de fabricaţie
britanică ANITA Mk.VII, care utiliza un afişaj cu tuburi Nixie şi 177 de tiratroane miniaturizate. În iunie 1963, Friden a introdus
maşina EC-130 cu patru funcţii. Aceasta costa 2200 de dolari şi fusese
proiectată folosind numai tranzistoare, avea o capacitate de 13 digiţi şi un
afişaj CRT de 130 mm, şi a introdus
forma poloneză inversă. Modelul ulterior EC-132 a adăugat funcţionalitatea de
calcul a rădăcinii pătrate şi cea a inversării funcţiilor. În 1965, Laboratoarele Wang au produs LOCI-2, un
calculator de birou cu 10 digiţi care utiliza un afişaj cu tuburi Nixie şi
putea calcula logaritmi.
Calculatoare analogice avansate
Înaintea celui de-al doilea război mondial, calculatoarele analogice
mecanice şi electrice erau considerate state of the art. Calculatoarele
analogice profită de similitudinile dintre matematica proprietăţilor
microscopice—poziţia şi mişcarea roţilor sau potenţialul şi curentul
electric—şi matematica altor fenomene fizice,[26] de exemplu, traiectoriile
balistice, inerţia, rezonanţa, transferul de energie, impulsul. Ele modelează fenomene
fizice cu ajutorul tensiunilor electrice şi al curenţilor electrici drept
cantităţi analogice.
În esenţă, aceste sisteme
analogice funcţionează prin crearea unor circuite electrice corespondente ale
altor sisteme, ceea ce permite utilizatorilor să prezică comportamentul acelor
sisteme de interes prin observarea corespondentelor lor analogice. Cea mai utilă dintre aceste analogii a fost
modul în care comportamentul la scară microscopică se poate reprezenta prin
ecuaţii diferenţiale şi integrale, şi ar putea fi astfel utilizat pentru a
rezolva acele ecuaţii. Un exemplu de astfel de maşină, care folosea apa drept cantitate analogică, a
fost integratorul cu apă construit în 1928; un exemplu
electric îl constituie maşina Mallock, construită în 1941. Un planimetru este un dispozitiv ce calculează
integrale, folosind distanţa drept cantitate analogică. Până în anii 1980,
sistemele HVAC au utilizat aer atât drept cantitate
analogică, cât şi ca element de control. Spre deosebire de calculatoarele
numerice moderne, calculatoarele analogice nu sunt foarte flexibile, şi trebuie
reconfigurate (reprogramate) manual pentru a le trece de la rezolvarea unei
probleme la alta. Calculatoarele analogice aveau, faţă de primele calculatoare
numerice, avantajul că puteau fi utilizate pentru a rezolva probleme complexe
folosind analogii comportamentale, pe când primele tentative pe calculatoarele
numerice au fost foarte limitate.
Deoarece calculatoarele erau
ceva rar în acea perioadă, soluţiile erau adesea hardcodate în forme de
hârtie cum ar fi nomogramele, care puteau produce soluţii analoage ale acestor
probleme, cum ar fi distribuţia presiunilor si temperaturilor într-un sistem de
încălzire. Unele dintre cele mai larg utilizate calculatoare analogice
conţineau dispozitive pentru ţintire, cum ar fi sistemul de ghidare a
bombardamentelor Norden şi sistemele de control al tragerilor. Unele au continuat
să fie folosite zeci de ani după al doilea război mondial; calculatorul de
control al tragerilor Mark I a fost folosit de marina Statelor Unite pe mai multe nave de la distrugătoare la cuirasate.
Printre alte calculatoare analogice s-a numărat Heathkit EC-1, şi calculatorul hidraulic MONIAC, folosit
pentru modelarea fluxurilor econometrice.
Ştiinţa calculatoarelor
analogice a atins apogeul cu analizorul diferenţial, inventat în 1876 de către James Thomson şi construit de H. W. Nieman
şi Vannevar Bush la MIT începând cu 1927. S-au
fabricat doar câteva astfel de dispozitive; cel mai puternic dintre ele a fost
construit la Şcoala Moore de Inginerie Electrică de la Universitatea Pennsylvania, unde s-a construit ulterior
şi ENIAC. Calculatoarele electronice
numerice, cum ar fi ENIAC au reprezentat sfârşitul majorităţii maşinilor
analogice de calcul, deşi s-a continuat să se mai folosească în aplicaţii
specializate unele calculatoare analogice hibride, controlate de electronică
digitală, de-a lungul anilor 1950 şi 1960.
Calculul digital
Era modernă a maşinilor de
calcul a început cu o frenezie a dezvoltării în perioada dinainte de şi după al doilea război mondial, când componentele
electronice (la acea vreme, relee, rezistoare, condensatoare, bobine, şi tuburi electronice) au înlocuit echivalentele lor mecanice, şi calculul
digital a înlocuit calculul analogic. Maşini cum ar fi Z3, calculatorul
Atanasoff–Berry, calculatoarele Colossus şi ENIAC au fost construite manual cu
ajutorul circuitelor ce conţineau relee sau tuburi electronice, şi adesea
foloseau cartelele sau benzile perforate ca dispozitiv de intrare şi ca mediu
de stocare.
În această perioadă, s-au
produs mai multe maşini cu capabilităţi din ce în ce mai vaste. La început, nu
exista nimic care să semene măcar cu un calculator modern, în afara planurilor
pierdute ale lui Charles
Babbage şi în
afara ideilor teoretice ale lui Alan Turing. La sfârşitul acestei
perioade, s-au construit dispozitive cum ar fi calculatoarele Colossus şi
EDSAC, unele din primele calculatoare electronice numerice, dar niciun moment
nu este unanim considerat a fi momentul naşterii calculatoarelor numerice.
Lucrarea lui Alan Turing din 1936 s-a dovedit extrem de influentă în domeniile
informaticii şi ştiinţei calculatoarelor. Scopul principal a fost cel de a
demonstra că există probleme (şi anume problema opririi) care nu pot fi rezolvate de
niciun proces secvenţial. Prin aceasta, Turing a dat o definiţie a
calculatorului universal care execută un program stocat pe o bandă. Această
construcţie a ajuns să fie denumită maşina Turing; ea a înlocuit limbajul
universal, mult mai complex şi bazat pe aritmetică, al lui Kurt Gödel. În afara limitarilor impuse de spaţiul finit de
stocare, calculatoarele moderne sunt denumite Turing-complete, adică au o capabilitate de a
executa algoritmi echivalentă cu cea a maşinii Turing universale.
Pentru ca o maşină de calcul
să fie un calculator universal, trebuie să existe un mecanism convenabilde
citire-scriere, cum ar fi banda perforată. Cunoscând modelul teoretic al maşinii
universale de calcul a lui Alan Turing, John von
Neumann a
definit o arhitectură ce utilizează aceeaşi memorie atât pentru stocarea
programelor cât şi a datelor: practic toate calculatoarele moderne utilizează
această arhitectură (sau una derivată din ea). Deşi, din punct de vedere
teoretic, după cum a arătat şi proiectul lui Babbage, se poate implementa un
calculator complet mecanic, electronica a făcut posibilă viteza şi gradul de
miniaturizare ce caracterizează calculatoarele moderne.
În perioada celui de-al doilea
război mondial, au existat trei fluxuri paralele de dezvoltare a tehnologiei
calculatoarelor, din care unul a fost complet ignorat, iar al doilea a fost
ţinut secret în mod deliberat. Cel ignorat a fost reprezentat de munca
germanului Konrad Zuse. Cel de-al doilea a fost
dezvoltarea secretă a calculatoarelor Colossus în Regatul Unit. Niciuna dintre acestea nu a avut o influenţă
deosebită asupra diverselor proiecte similare din Statele Unite. Al treilea flux de dezvoltare a fost şi cel mai
mediatizat, şi a fost reprezenta de maşinile ENIAC şi EDVAC ale lui Eckert şi
Mauchly.
În timp ce lucra la Laboratoarele Bell în noiembrie 1937, George Stibitz a inventat şi a construit un
calculator cu relee, denumit „Model K” (de la kitchen table–masă de
bucătărie, pe care a efectuat asamblarea), care a fost primul care a
efectuat calcule în formă binară.
Zuse
Izolat, în Germania, Konrad Zuse a demarat în 1936 construcţia
primului calculator din seria Z, calculatoare cu memorie şi programabile
(iniţial, programabilitatea era foarte restrânsă). Calculatorul Z1, pur mecanic, dar care lucra în binar, a fost
finalizat în 1938 şi nu a funcţionat niciodată corect din cauza unor probleme
în ce priveşte precizia unor piese.
Maşina ulterioară a lui Zuse, Z3, a fost terminată în 1941. Ea se baza pe relee
telefonice şi nici ea nu funcţiona satisfăcător. Totuşi, structura lui era
întrucâtva similară maşinilor moderne, putând efectua şi operaţii în virgulă
mobilă. Înlocuirea sistemului zecimal folosit anterior de Babbage, şi dificil
de implementat cu sistemul binar a avut ca efect simplificarea construcţiei
maşinii şi creşterea fiabilităţii în condiţiile tehnologiilor disponibile la
acea dată.
Programele erau introduse în
calculatorul Z3 pe filme perforate. Saltul condiţionat lipsea, dar în
anii 1990 s-a demonstrat teoretic că Z3 era totuşi o implementare de maşină
Turing. Prin două cereri de patentare, în 1936, Konrad Zuse a anticipat şi că
instrucţiunile maşinii vor putea fi stocate în acelaşi spaţiu cu datele –
amănunt-cheie în ceea ce ulterior a devenit arhitectura von Neumann care a fost implementată pentru prima oară în maşina
britanică EDSAC (1949). Zuse a susţinut şi că a proiectat primul limbaj de programare de nivel înalt, (Plankalkül), în 1945 (publicat în 1948)
deşi acesta a fost implementat pentru prima oară în 2000 de o echipă condusă de
Raúl Rojas de la Universitatea Liberă Berlin – la cinci ani după moartea
lui Zuse.
Zuse a întâmpinat dificultăţi
în timpul celui de-al doilea război mondial, când unele dintre maşinile
sale au fost distruse de campaniile de bombardamente ale Aliaţilor. Munca sa a
fost multă vreme necunoscută de inginerii din Regatul Unit şi din SUA, deşi IBM
avea informaţii despre ea, şi a finanţat compania lui Zuse în 1946, în schimbul
unei opţiuni pentru patentele obţinute de acesta.
Colossus
În timpul celui de-al doilea război mondial, la Bletchley Park (la 64 km nord de Londra) britanicii au repurtat
mai multe succese în descifrarea comunicaţiilor militare criptate ale
Germaniei. Maşina germană de criptare, Enigma, a fost atacată cu ajutorul
unor maşini electromecanice denumite Bombe. Maşinile Bombe, proiectate
de Alan Turing şi Gordon Welchman, după maşina criptografică
poloneză Bomba a lui Marian Rejewski (1938) au început să fie utilizate în 1941. Acestea
eliminau din setările posibile ale maşinii Enigma efectuând serii de deducţii
logice implementate electric. Majoritatea posibilităţilor conduceau la
contradicţii, iar cele puţine care mai rămâneau puteau fi verificate manual.
Germanii au dezvoltat şi alte
sisteme de criptare diferite de Enigma. Maşina Lorenz SZ 40/42 a fost utilizată pentru
comunicaţii militare la nivel înalt, denumite de către britanici Tunny. Primele interceptări de mesaje Lorenz au avut loc în
1941. Ca parte dintr-un atac asupra cifrurilor Tunny, profesorul Max Newman şi colegii săi au ajutat la
scrierea specificaţiilor calculatorului Colossus. Colossus Mk I a fost construit între martie şi
decembrie 1943 de Tommy Flowers şi colegii săi de la Post Office Research Station de la Dollis Hill din Londra şi a fost livrat
la Bletchley
Park în
ianuarie 1944.
Colossus a fost prima maşină
de calcul complet electronică. Ea utiliza un număr foarte mare de tuburi
electronice. Primea datele de intrare pe bandă de hârtie şi putea fi
configurată să efectueze diferite operaţii din logica booleană, nefiind însă Turing-completă. S-au construit nouă
exemplare de Colossus Mk II şi singurul exemplar de Mk I a fost îmbunătăţit şi
transformat şi el într-un Mk II. Detaliile despre existenţa, proiectarea, şi
utilizarea lor au fost păstrate secret până în anii 1970. Winston
Churchill personal
a ordonat ca ele să fie dezmembrate în componente nu mai mari decât mâna unui
om. Din cauza acestor constrângeri, calculatoarele Colossus nu au apărut în
multe istorii ale calculatoarelor. O copie reconstruită a unei maşini Colossus
este expusă la Bletchley Park.
Progresele din SUA
În 1937, Claude Shannon a arătat că există o corespondenţă unu-la-unu între conceptele logicii
booleene şi anumite circuite electrice, care astăzi poartă numele de porţi logice, şi sunt omniprezente în calculatoarele numerice. În
lucrarea sa de masterat[41] de la MIT, pentru prima dată în
istorie, Shannon a arătat că releele şi comutatoarele electronice pot calcula
expresii de algebră booleană. Intituată A Symbolic
Analysis of Relay and Switching Circuits (O analiză simbolică a releelor şi circuitelor de
comutaţie), teza lui Shannon a pus bazele proiectării practice a circuitelor
numerice. George Stibitz a realizat un calculator pe bază de relee, denumit de
el Model K pentru Laboratoarele Bell în noiembrie 1937. Laboratoarele Bell au autorizat un
program complet de cercetare condus de Stibitz spre sfârşitul lui 1938.
Proiectul Complex Number Calculator, terminat la 8 ianuarie 1940,
putea face calcule cu numere
complexe. Într-o
demonstraţie la conferinţa American Mathematical Society de la Dartmouth College în ziua de 11 septembrie
1940, Stibitz a reuşit să trimită comenzi la distanţă maşinii Complex Number
Calculator prin liniile telefonice cu ajutorul unui teletype. A fost prima maşină de calcul folosită vreodată la
distanţă. Printre participanţii la conferinţă care au fost de faţă la
demonstraţie s-au numărat John von
Neumann, John Mauchly şi Norbert Wiener, care au scris despre aceasta în memoriile lor.
În 1939, John Vincent
Atanasoff şi Clifford E. Berry de la Iowa State University au dezvoltat
Calculatorul Atanasoff–Berry (Atanasoff–Berry Computer, ABC), Proiectul a
folosit peste 300 de tuburi electronice cu vid şi folosea condensatoare fixate
într-un tambur mecanic rotativ pe post de memorie. Deşi maşina ABC nu era
programabilă, a fost prima care a avut un sumator cu tuburi electronice. ABC a
rămas un proiect uitat până când a devenit motivul procesului Honeywell v. Sperry Rand, care a invalidat patentul
ENIAC (şi câteva altele), printre altele, pentru că lucrările lui Atanasoff
l-au precedat.
În 1939, a început, în
laboratoarele Endicott de la IBM, dezvoltarea maşinii Harvard Mark I. Cunoscut oficial sub numele
de Automatic Sequence Controlled Calculator (Calculator Controlat cu
Secvenţă Automată), Mark I a fost un calculator electromecanic construit cu
finanţare de la IBM şi cu asistenţă din partea personalului IBM, sub conducerea
matematicianului Howard Aiken de la Harvard. Proiectul său a fost influenţat de
maşina analitică a lui Babbage, folosea aritmetică în baza 10 şi avea roţi de
stocare şi comutatoare rotitoare în plus faţă de releele electromagnetice. Se
putea programa cu o bandă de hârtie perforată, şi conţinea mai multe unităţi de
calcul ce lucrau în paralel. Versiunile ulterioare conţineau mai mult
ecititoare de bandă perforată, iar maşina putea comuta între dispozitivele de
intrare pe baza unei condiţii. Cu toate acestea, maşina nu era chiar
Turing-completă. Mark I a fost mutat la Universitatea Harvard şi a început să funcţioneze în mai 1944.
ENIAC
ENIAC (Electronic Numerical Integrator and Computer–Calculator Şi
Integrator Electronic Numeric), construit în SUA, a fost primul calculator
electronic generic. El combina, pentru prima dată, viteza mare a componentelor
electronice cu posibilitatea programării pentru probleme mai complexe. Putea
efectua 5000 de operaţii de adunare şi scădere pe secundă, fiind de o mie de
ori mai rapid decât alte maşini care efectuau aceste operaţii. Avea şi module
pentru înmulţire, împărţire şi rădăcină pătrată. Memoria de mare viteză era
limitată la 20 de cuvinte (aproximativ 80 de octeţi.) Construit sub conducerea
lui John Mauchly şi J. Presper Eckert la Universitatea Pennsylvania, dezvoltarea şi construcţia
lui ENIAC au durat din 1943 până la sfârşitul lui 1945. Maşina era uriaşă,
cântărea 30 de tone, şi conţinea peste 18.000 de tuburi. Una dintre marile
realizări inginereşti ale maşinii era minimizarea arderii tuburilor, problemă
comună la acea vreme. Maşina a fost utilizată aproape permanent de-a lungul
următorilor zece ani.
ENIAC era în mod clar un
dispozitiv Turing-complet. Putea calcula orice problemă care putea încăpea în
memorie. Un „program” de pe ENIAC, însă, era definit prin conexiunile
cablurilor şi prin comutatoare sale, fiind foarte departe de maşinile
electronice cu program stocat care au evoluat din el. Odată scris un program,
el trebuia să fie introdus manual.
Maşini von Neumann din prima generaţie
Chiar înainte de finalizarea
lui ENIAC, Eckert şi Mauchly au recunscut limitările acestuia şi au demarat
proiectul unui calculator cu program stocat, EDVAC. John von
Neumann este
autorul unui raport care descria proiectul EDVAC în care atât programul cât şi
datele de lucru aveau să fie stocate într-un singur spaţiu unificat. Acest
proiect simplu, denumit arhitectura von Neumann, avea să constituie baza dezvoltării tuturor
succesoarelor lui ENIAC din toată lumea. În cadrul acestei generaţii, spaţiul
temporar de stocare consta din linii cu întârziere, care foloseau timpul de
propagare a sunetului printr-un mediu, cum ar fi mercurul lichid (sau un cablu) pentru a stoca datele temporar.
O serie de impulsuri acustice sunt trimise de-a lungul unui tub; după un timp,
când impulsul ajunge la capătul tubului, circuitele electronice detectau dacă
acel impuls reprezintă un 1 sau un 0 şi determinau oscilatorul să-l
retransmită. Alte maşini foloseau tuburi Williams, care se bazau pe
proprietatea unui tub catodic de a stoca şi accesa date.
Până în 1954, memoriile cu ferite începuseră să înlocuiască
alte forme de mecanisme de stocare temporară, şi au dominat acest domeniu până
spre jumătatea anilor 1970.
EDVAC a fost primul calculator
cu program stocat care a fost proiectat, dar nu a fost primul care a
funcţionat. Eckert şi Mauchly au părăsit proiectul, iar construcţia acestuia a
întârziat. Prima maşină von Neumann funcţională a fost Manchester „Baby” sau Small-Scale Experimental Machine, dezvoltată de Frederic C.
Williams şi Tom Kilburn la Universitatea Manchester în 1948; Ea a fost urmată în
1949 de calculatorul Manchester Mark 1, un sistem complet, cu tuburi
Williams şi memorie cu tambur magnetic, şi care a introdus registrele index. Alt pretendent la titlul de „primul calculator
numeric cu program stocat” a fost EDSAC, proiectat şi construit la Universitatea Cambridge. Pus în funcţiune la mai puţin de un după Manchester
„Baby”, EDSAC era inspirat din planurile lui EDVAC (Electronic Discrete
Variable Automatic Computer), succesorul lui ENIAC; aceste planuri erau
deja întocmite în momentul când a fost realizat ENIAC. Spre deosebire de ENIAC,
care folosea prelucrarea paralelă, EDVAC utiliza o singura unitate de
prelucrare. Acest design era mai simplu şi a fost primul implementat în fiecare
etapă de miniaturizare care a urmat. Maşina Universităţii din Manchester
University a devenit prototipul pentru Ferranti Mark I. Prima maşină Ferranti Mark I
a fost livrată Universităţii în luna februarie 1951 şi, între 1951 şi 1957 s-au
mai vândut încă cel puţin nouă.
Primul calculator programabil
universal din URSS a fost creat de o echipă de oameni de ştiinţă sub conducerea
lui Serghei Alexeievici Lebedev de la Institutul de
Electrotehnologie Kiev. Calculatorul, denumit MESM (МЭСМ, Mică Maşină Electronică
de Calcul) a devenit operaţional în 1950. El avea aproximativ 6000 de
tuburi electronice şi un consum de 25 kW. Putea efectua aproximativ 3000
de operaţii pe secundă. Printre primele calculatoare s-a numărat şi CSIRAC, un proiect australian care şi-a rulat primul program de test în 1949.
CSIRAC este cel mai vechi calculator care încă mai funcţionează şi a fost
primul care a fost utilizat pentru ascultarea de muzică în format digital.
În octombrie 1947, directorii J. Lyons & Company, o companie britanică de
catering celebră pentru cafenelele sale şi interesată în tehnicile noi de
gestiune, a decis să se implice activ în promovarea dezvoltării comerciale a
calculatoarelor. Până în 1951, calculatorul LEO I era operaţional şi a rulat
primul job de rutină al unui calculator comercial. La 17 noiembrie 1951,
compania J. Lyons a demarat rularea săptămânală a unei operaţiuni de evaluări
financiare pe piaţa produselor de brutărie pe LEO (Lyons Electronic Office).
Aceasta a fost prima aplicaţie comercială funcţională bazată pe un calculator
cu program stocat.
Calculatoare comerciale
În iunie 1951, UNIVAC I (Universal Automatic Computer) a fost livrat
Biroului de Recensăminte al Statelor Unite. Remington Rand a vândut 46 de
maşini la preţuri de peste 1 milion de dolari bucata. UNIVAC a fost astfel
primul calculator produs în serie; toate predecesoarele sale fuseseră unicate,
sau în serii extrem de limitate. El utiliza 5200 de tuburi electronice şi avea
un consum de 125 kW. Folosea o memorie cu linii de întârziere cu mercur capabilă
să stocheze 1000 de cuvinte de câte 11 cifre zecimale plus semn (lungime
echivalentă în binar cu 72 biţi. O caracteristică esenţială a sistemului UNIVAC
a fost un nou tip de bandă magnetică metalică, şi o unitate de bandă de mare
viteză, pentru stocare pe mediu nevolatil.
În 1952, IBM a anunţat public
maşina electronică de prelucrare a datelor IBM 701, prima din seria IBM 700/7000 şi primul calculator IBM mainframe. IBM 704, introdus în 1954, utiliza memorie cu ferite, care a
devenit standard la maşinile mari. Primul limbaj de programare generic de nivel înalt care a fost implementat
vreodată, Fortran, era dezvoltat şi la IBM
pentru 704 în 1955–1956 şi a fost lansat la începutul lui 1957. În 1955 s-a
format un grup de utilizatori voluntari pentru a face schimb de experienţă şi
de software pentru IBM 701; acest grup, care există şi în anii 2000, a fost un
precursor al comunităţilor open source.
IBM a introdus în 1954 un
calculator mai mic şi mai ieftin care s-a dovedit foarte popular. IBM 650 cântărea peste 900 kg, sursa de alimentare
ataşată cântarea aproximativ 1350 kg şi cele două părţi stăteau în două
dulapuri separate, de aproximativ
metri. Costa 500.000 de dolari şi putea fi
închiriat pentru 3500 de dolari pe lună. Memoria sa cu tamburi putea stoca
iniţial doar 2000 de cuvinte de zece cifre, iar programarea sa era extrem de
dificilă şi importantă pentru o utilizare eficientă. Astfel de limitări de
memorie aveau să domine programarea timp de zeci de ani după aceea, până când
capabilităţile hardware au evoluat şi au permis un model de programare mai
simplu.

În 1955, Maurice Wilkes a inventat microprogramarea, care permite definirea unui
set de instrucţiuni de bază ce poate fi extins prin unele programe denumite
astăzi firmware sau microcod. Acest concept a fost utilizat în procesoarele şi în
unităţile de virgulă mobilă ale mainframe-urilor şi ale altor calculatoare,
cum ar fi cele din seria IBM 360.
În 1956, IBM a vândut primul
sistem de stocare pe disc magnetic, RAMAC (Random Access Method of Accounting and Control). Acesta utiliza 50
de discuri metalice de 610 mm, cu 100 de piste pe fiecare faţă. Acesta
putea stoca 5 megaocteţi de date şi costa 10.000 de
dolari pe megaoctet. La nivelul anului 2008, unităţile de stocare pe suport
magnetic, sub formă de hard diskuri, costau mai puţin de o
cincizecime de cent pe megaoctet.
A doua generaţie: calculatoarele cu tranzistoare
În a doua jumătate a anilor
1950, tranzistoarele bipolare (TBIP) au înlocuit tuburile electronice. Utilizarea
lor a dat naştere calculatoarelor de a doua generaţie. Iniţial, se credea că se
vor produce şi se vor utiliza foarte puţine calculatoare la nivel mondial.
Aceasta se datora dimensiunilor, costurilor, şi priceperii necesare pentru a le
folosi şi pentru a interpreta rezultatele. Tranzistoarele au redus masiv
dimensiunea calculatoarelor, costul iniţial şi cel de operare. Tranzistoarele
bipolare au fost inventate în 1947 şi americanii John Bardeen, Walter
Brattain şi William
Shockley au
primit în 1956 Premiul Nobel pentru Fizică pentru această realizare.
Dacă prin joncţiunea emitor-bază a unui tranzistor bipolar nu circulă curent, atunci nu circulă curent nici între colector şi emitor (iar tranzistorul
este blocat). Dacă circulă un curent suficient de mare prin joncţiunea
bază-emitor, trece curent şi între emitor şi colector (tranzistorul fiind saturat).
Saturaţia sau blocarea unui tranzistor reprezintă cifrele binare 0 şi 1. Prin
comparaţie cu tuburile electronice, tranzistoarele prezintă numeroase avantaje:
au costuri de fabricaţie mult mai mici şi sunt mult mai rapide, comutarea între
stările de 1 şi 0 consumând un timp de ordinul micro- sau nanosecundelor.
Volumul tranzistoarelor era de ordinul milimetrilor cubi, prin comparaţie cu
tuburile electronice de ordinul centimetrilor cubi. Temperatura mai joasă de
funcţionare a tranzistoarelor le conferă o fiabilitate mai mare, prin
comparaţie cu tuburile electronice. Calculatoarele cu tranzistoare puteau acum
să fie dotate cu zeci de mii de circuite logice binare într-un spaţiu relativ
compact.
Calculatoarele de a doua
generaţie erau compuse dintr-un mare număr de plăci cu cablaje imprimate, cum
ar fi IBM Standard Modular System fiecare cu 1–4 porţi logice sau bistabili. Un calculator din a doua
generaţie, IBM 1401, a reuşit să câştige aproape o treime din piaţa mondială de
tehnică de calcul. IBM a instalat peste o sută de mii de 1401 între 1960 şi
1964.
Electronica cu tranzistoare a
dus la îmbunătăţirea nu doar a procesoarelor, ci şi a dispozitivelor
periferice. IBM 350 RAMAC a fost introdus în 1956 şi a fost primul
hard-disk din lume. Unităţile de stocare pe disc magnetic din a doua generaţie
de calculatoare puteau stoca zeci de milioane de litere şi cifre. La procesor
se puteau conecta mai multe periferice, capacitatea totală de memorare crescând
la ordinul sutelor de milioane de caractere. Pe lângă unităţile fixe de
stocare, conectate la procesor prin legături de mare viteză, au apărut şi
unităţi de disc deconectabil. Astfel, o stivă de discuri se putea înlocui în
câteva secunde cu o alta. Deşi capacitatea unui disc deconectabil este mai mică
decât cea a unui disc fix, interşanjabilitatea lor garantează disponibilitatea
unei cantităţi cvasinelimitate de date. Pe de altă parte, banda magnetică a
continuat să furnizeze capabilităţi de arhivare a datelor cu costuri mai reduse
decât discurile.
Mai multe procesoare din a
doua generaţie delegau comunicaţiile periferice unui procesor secundar. Astfel,
în timp ce procesorul de comunicaţie controla, de exemplu citirea şi perforarea
de cartele, procesorul principal executa calcule şi instrucţiuni de
ramificaţie. O magistrală de date ducea datele de la procesorul principal şi
memoria principală cu viteza ciclului de fetch-execute a procesorului, iar
celelalte magistrale de date deserveau dispozitivele periferice. Pe PDP-1, ciclul memoriei era de 5 microsecunde; astfel, majoritatea
instrucţiunilor aritmetice durau 10 microsecunde (100.000 de operaţii pe
secundă) deoarece majoritatea operaţiilor durau cel puţin două cicluri de
memorie: unul pentru aducerea instrucţiunii, celălalt pentru aducerea operanzilor.
În timpul celei de-a doua
generaţii, au început să fie folosite din ce în ce mai mult terminalele la
distanţă, adesea sub formă de maşini teletype. Conexiunile telefonice
furnizau viteză suficientă pentru primele terminale la distanţă şi permiteau o
separare între centrul de calcul şi staţiile de lucru de sute de kilometri.
A treia şi a patra generaţie
Explozia gradului de utilizare
a calculatoarelor a început cu cele din a treia generaţie. Acestea se bazau pe
invenţia circuitului
integrat de către
Jack St.
Clair Kilby şi independent de Robert Noyce, tehnologie care a condus mai târziu la inventarea
microprocesorului, de către Ted Hoff, Federico Faggin, şi Stanley Mazor de la Intel. Primul procesor integrat, Intel 4004 (1971) avea 12 mm², şi era
compus din 2300 tranzistoare; prin comparaţie, procesorul Pentium Pro avea
306 mm² şi 5,5 milioane de tranzistoare. Circuitul integrat din imaginea
din dreapta, un Intel 8742, este un microcontroller pe opt biţi care conţine o unitate centrală de
procesare ce rulează la 12 MHz, are 128 de octeţi de RAM, 2048 de octeţi de EPROM, şi porturi de intrare/ieşire, toate pe acelaşi cip.
În anii 1960, utilizarea
calculatoarelor din generaţiile a doua şi a treia s-au suprapus considerabil.
IBM şi-a implementat modulele IBM Solid Logic Technology în circuitele hibride pentru IBM System/360 în
1964. Până în 1975, Sperry Univac a continuat să fabrice maşini din a doua
generaţie, cum ar fi UNIVAC 494. Sistemele mari Burroughs, cum ar fi B5000 erau
maşini cu stivă, simplu de programat. Aceste automate cu stivă erau implementate şi în
minicalculatoarele şi microprocesoarele de mai târziu, care au influenţat
proiectarea limbajelor de programare. Minicalculatoarele serveau drept centre
de calcul ieftine pentru industrie şi universităţi. Microprocesorul a condus la
dezvoltarea microcalculatoarelor, calculatoare mici şi ieftine ce puteau fi
vândute firmelor mici şi persoanelor private. Microcalculatoarele, care au
apărut în anii 1970, au devenit omniprezente după anii 1980. Steve Wozniak, cofondatorul companiei Apple Computer, este considerat a fi dezvoltatorul primului
calculator personal produs în serie. Primul calculator al acestuia, Apple I, a apărut însă după MOS Technology KIM-1 şi Altair 8800, iar primul calculator Apple
cu capabilităţi grafice şi de sunet a apărut după Commodore PET.
Sisteme de complexitatea
calculatoarelor aveau nevoie de fiabilitate mare. ENIAC a rămas pornit, în continuu între 1947 şi 1955, opt ani fără să fie oprit.
Deşi tuburile electronice se mai defectau, ele se înlocuiau fără a opri
sistemul. Prin simpla strategie de a nu opri ENIAC, s-au redus drastic
defectările majore. Hard diskurile hot-pluggable, care puteau fi cuplate sau
decuplate de la o maşină fără oprirea acesteia, continuă tradiţia reparaţiilor
efectuate în timpul funcţionării. Memoriile cu semiconductori operează fără
erori, fiind garantate de producători pe viaţă, deşi unele sisteme de operare,
cum ar fi Unix oferă posibilitatea rulării de teste de memorie pentru
verificarea funcţionalităţii hardware. În secolul al XXI-lea, nevoia de
fiabilitate este şi mai stringentă, ferme de servere fiind platformă de bază. Google utilizează software tolerant la defecte pentru a trata elegant defecţiunile hardware, şi
lucrează la conceptul de ferme de servere decuplabile.[65]
În secolul al XXI-lea, au
apărut pe piaţă microprocesoarele multinucleu. Tablourile de celule de memorare
din semiconductori sunt des întâlnite. După ce memoriile cu semiconductoare au
devenit omniprezente, dezvoltarea de software s-a simplificat şi codurile sursă
ale programelor au devenit mai uşor de înţeles. Programarea unei memorii cu
tamburi impunea programatorului să fie conştient de poziţia în timp real a
capului de citire, de-a lungul rotaţiilor tamburului. Când porţile logice
bazate pe tranzistoare cu efect de câmp CMOS au înlocuit tranzistoarele
bipolare, consumul de energie al calculatoarelor a putut scădea drastic şi
astfel utilizarea puterii de calcul a devenit foarte ieftină şi s-a răspândit
în toată lumea, sub multe forme, de la felicitări şi telefoane mobile la sateliţi
artificiali şi sonde spaţiale.
Немає коментарів:
Дописати коментар
Примітка: лише член цього блогу може опублікувати коментар.